lasso-mcp 1.18.6 → 1.18.7

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.
Files changed (140) hide show
  1. package/ARCHITECTURE.md +1 -1
  2. package/README.en.md +2 -1
  3. package/README.md +2 -1
  4. package/dist/browse/ExpectPoll.js +1 -10
  5. package/dist/browse/ExpectPoll.js.map +1 -1
  6. package/dist/browse/StealthEngine.js +1 -10
  7. package/dist/browse/StealthEngine.js.map +1 -1
  8. package/dist/browse/cdp-actions.d.ts.map +1 -1
  9. package/dist/browse/cdp-actions.js +1 -12
  10. package/dist/browse/cdp-actions.js.map +1 -1
  11. package/dist/browse/stealth-profiles.d.ts +19 -0
  12. package/dist/browse/stealth-profiles.d.ts.map +1 -1
  13. package/dist/browse/stealth-profiles.js +21 -0
  14. package/dist/browse/stealth-profiles.js.map +1 -1
  15. package/dist/channels/BraveChannel.d.ts +3 -3
  16. package/dist/channels/BraveChannel.d.ts.map +1 -1
  17. package/dist/channels/BraveChannel.js +1 -1
  18. package/dist/channels/BraveChannel.js.map +1 -1
  19. package/dist/channels/BrowseChannel.d.ts +24 -0
  20. package/dist/channels/BrowseChannel.d.ts.map +1 -1
  21. package/dist/channels/BrowseChannel.js +78 -12
  22. package/dist/channels/BrowseChannel.js.map +1 -1
  23. package/dist/channels/HeadlessChannel.d.ts +3 -11
  24. package/dist/channels/HeadlessChannel.d.ts.map +1 -1
  25. package/dist/channels/HeadlessChannel.js +4 -14
  26. package/dist/channels/HeadlessChannel.js.map +1 -1
  27. package/dist/channels/MachineMcpSearchChannel.d.ts.map +1 -1
  28. package/dist/channels/MachineMcpSearchChannel.js +12 -5
  29. package/dist/channels/MachineMcpSearchChannel.js.map +1 -1
  30. package/dist/doctor/creepjs-probe.js +1 -10
  31. package/dist/doctor/creepjs-probe.js.map +1 -1
  32. package/dist/doctor/doctor-cli.js +4 -1
  33. package/dist/doctor/doctor-cli.js.map +1 -1
  34. package/dist/doctor/doctor.d.ts +2 -2
  35. package/dist/doctor/doctor.d.ts.map +1 -1
  36. package/dist/doctor/doctor.js +4 -2
  37. package/dist/doctor/doctor.js.map +1 -1
  38. package/dist/index.js +20 -12
  39. package/dist/index.js.map +1 -1
  40. package/dist/search/ContentSecondHop.d.ts +2 -2
  41. package/dist/search/SearchCache.d.ts +5 -7
  42. package/dist/search/SearchCache.d.ts.map +1 -1
  43. package/dist/search/SearchCache.js +13 -17
  44. package/dist/search/SearchCache.js.map +1 -1
  45. package/dist/serp/ChangeDetection.d.ts +4 -2
  46. package/dist/serp/ChangeDetection.d.ts.map +1 -1
  47. package/dist/serp/ChangeDetection.js +6 -6
  48. package/dist/serp/ChangeDetection.js.map +1 -1
  49. package/dist/serp/RecordingStore.d.ts +4 -2
  50. package/dist/serp/RecordingStore.d.ts.map +1 -1
  51. package/dist/serp/RecordingStore.js +8 -8
  52. package/dist/serp/RecordingStore.js.map +1 -1
  53. package/dist/serp/http-serp.d.ts +2 -2
  54. package/dist/serp/http-serp.d.ts.map +1 -1
  55. package/dist/serp/http-serp.js +3 -3
  56. package/dist/subprocess/SubprocessManager.d.ts +8 -20
  57. package/dist/subprocess/SubprocessManager.d.ts.map +1 -1
  58. package/dist/subprocess/SubprocessManager.js +10 -39
  59. package/dist/subprocess/SubprocessManager.js.map +1 -1
  60. package/dist/tools/browse.d.ts.map +1 -1
  61. package/dist/tools/browse.js +7 -6
  62. package/dist/tools/browse.js.map +1 -1
  63. package/dist/tools/browserbase.d.ts.map +1 -1
  64. package/dist/tools/browserbase.js +5 -17
  65. package/dist/tools/browserbase.js.map +1 -1
  66. package/dist/tools/descriptions.d.ts.map +1 -1
  67. package/dist/tools/descriptions.js +12 -12
  68. package/dist/tools/descriptions.js.map +1 -1
  69. package/dist/tools/fetch-feed.d.ts +3 -4
  70. package/dist/tools/fetch-feed.d.ts.map +1 -1
  71. package/dist/tools/fetch-feed.js +5 -5
  72. package/dist/tools/fetch-feed.js.map +1 -1
  73. package/dist/tools/fetch-url.d.ts +6 -7
  74. package/dist/tools/fetch-url.d.ts.map +1 -1
  75. package/dist/tools/fetch-url.js +7 -7
  76. package/dist/tools/fetch-url.js.map +1 -1
  77. package/dist/tools/network.d.ts +0 -3
  78. package/dist/tools/network.d.ts.map +1 -1
  79. package/dist/tools/network.js +4 -5
  80. package/dist/tools/network.js.map +1 -1
  81. package/dist/tools/pdf.d.ts +0 -6
  82. package/dist/tools/pdf.d.ts.map +1 -1
  83. package/dist/tools/pdf.js +2 -8
  84. package/dist/tools/pdf.js.map +1 -1
  85. package/dist/tools/screenshot.d.ts +0 -58
  86. package/dist/tools/screenshot.d.ts.map +1 -1
  87. package/dist/tools/screenshot.js +10 -52
  88. package/dist/tools/screenshot.js.map +1 -1
  89. package/dist/tools/search.d.ts +1 -1
  90. package/dist/tools/search.js +1 -1
  91. package/dist/tools/steel.d.ts.map +1 -1
  92. package/dist/tools/steel.js +5 -14
  93. package/dist/tools/steel.js.map +1 -1
  94. package/dist/tools/wayback.d.ts +3 -4
  95. package/dist/tools/wayback.d.ts.map +1 -1
  96. package/dist/tools/wayback.js +5 -5
  97. package/dist/tools/wayback.js.map +1 -1
  98. package/dist/types.d.ts +14 -25
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/util/http-pool.d.ts +12 -0
  101. package/dist/util/http-pool.d.ts.map +1 -0
  102. package/dist/util/http-pool.js +50 -0
  103. package/dist/util/http-pool.js.map +1 -0
  104. package/doc/architecture/02-/345/256/236/346/226/275/346/216/222/346/234/237.md +1 -1
  105. package/doc/governance/07-/346/226/207/346/241/243/346/237/245/347/274/272/350/241/245/346/274/217/gap-matrix.md +1 -1
  106. package/doc/testing/01-/345/212/237/350/203/275/346/265/213/350/257/225/346/270/205/345/215/225.md +1 -1
  107. package/doc/usage/02-TROUBLESHOOTING.md +2 -2
  108. package/package.json +1 -1
  109. package/src/browse/ExpectPoll.ts +2 -14
  110. package/src/browse/StealthEngine.ts +3 -17
  111. package/src/browse/cdp-actions.ts +7 -23
  112. package/src/browse/stealth-profiles.ts +22 -0
  113. package/src/channels/BraveChannel.ts +2 -2
  114. package/src/channels/BrowseChannel.ts +89 -12
  115. package/src/channels/HeadlessChannel.ts +4 -14
  116. package/src/channels/MachineMcpSearchChannel.ts +12 -5
  117. package/src/doctor/creepjs-probe.ts +2 -16
  118. package/src/doctor/doctor-cli.ts +4 -4
  119. package/src/doctor/doctor.ts +4 -3
  120. package/src/index.ts +20 -15
  121. package/src/invariants/check-invariants.mjs +73 -18
  122. package/src/search/ContentSecondHop.ts +2 -2
  123. package/src/search/SearchCache.ts +15 -26
  124. package/src/serp/ChangeDetection.ts +6 -7
  125. package/src/serp/RecordingStore.ts +8 -9
  126. package/src/serp/http-serp.ts +5 -5
  127. package/src/subprocess/SubprocessManager.ts +10 -53
  128. package/src/tools/browse.ts +7 -6
  129. package/src/tools/browserbase.ts +5 -17
  130. package/src/tools/descriptions.ts +12 -12
  131. package/src/tools/fetch-feed.ts +2 -11
  132. package/src/tools/fetch-url.ts +7 -9
  133. package/src/tools/network.ts +4 -5
  134. package/src/tools/pdf.ts +2 -9
  135. package/src/tools/screenshot.ts +10 -52
  136. package/src/tools/search.ts +1 -1
  137. package/src/tools/steel.ts +5 -14
  138. package/src/tools/wayback.ts +2 -6
  139. package/src/types.ts +18 -20
  140. package/src/util/http-pool.ts +66 -0
package/ARCHITECTURE.md CHANGED
@@ -318,7 +318,7 @@ engine=auto(默认)→ 多源扇出(machine_mcp + brave 两 API 源)
318
318
  | INV 自测 | `inv-selftest.mjs`(`npm run inv-selftest`) | 抽样 INV 做「注入违规 → 必红」复证 | **20 样本**(外部契约类全覆盖;未验证 pin 显性化报告) |
319
319
  | TS 单测 | vitest | channel / fallback / forest / doctor / launcher / outline-contract / replay-baseline / stealth / lifecycle / cdp-actions / search-local / content-second-hop / elicitation / extract-refs / quality / http-serp / fetch-feed 等 | **2253 测试**(135 文件;doc/testing/01 ft-round1 门禁两轮独立复跑在档 + doc/governance/08 静默性审计补测) |
320
320
  | Rust 单测 | cargo test | ax / applescript / cgevent(+keymap) / screenshot / tcc / windows / protocol / role-map | **207 测试**(cargo test 实跑;rust-helper 自 v1.13 起零改) |
321
- | 跨平台编译 | cargo check --target | Windows (x86_64-pc-windows-msvc) + Linux (x86_64-unknown-linux-gnu) | CI Linux runner |
321
+ | 跨平台编译 | cargo check --target | Windows (x86_64-pc-windows-msvc) + Linux (x86_64-unknown-linux-gnu) | 本地手测(CI JS 门禁三件套,不含 Rust 步骤) |
322
322
  | 录制回放回归 | npm run replay-baseline | fixtures/serp-baseline/ × 三引擎 × 多 query | 12+ fixtures |
323
323
  | 故障注入 | vitest | fallback 链 / 限流 / 政策 gate / SERP 改版 | ~20 场景 |
324
324
  | 全量功能测试 | doc/testing/01 清单 + ft 执行记录 | 四面板(search / browse / infra / perf)~170 用例真机 | ft-round1 **ALL-CLEAN**(2026-08-18) |
package/README.en.md CHANGED
@@ -206,7 +206,7 @@ Goes to the Internet Archive (Wayback Machine) to find the last archived copy of
206
206
 
207
207
  ## Install
208
208
 
209
- **Current version v1.18.6** (changelog in the collapsed block at the end of this section).
209
+ **Current version v1.18.7** (changelog in the collapsed block at the end of this section).
210
210
 
211
211
  Prerequisites: Node.js ≥ 20 + Claude Code (or any MCP-capable client).
212
212
 
@@ -221,6 +221,7 @@ Restart Claude Code → `/mcp` → `lasso ✓ Connected`. **That's the one line
221
221
  <details>
222
222
  <summary>📋 Changelog (v1.8 → v1.18.6 — click to see what each version changed)</summary>
223
223
 
224
+ - **v1.18.7**: architecture re-review landed (five-dimension checklist with fix loops) — ① browse-family interface honesty: `wait_until` / `timeout_ms` / `screenshot.element` / `stealth_profile` — four **never-effective dead parameters** — removed from tool descriptions and schema (previously silently ignored; docs no longer promise nonexistent behavior; non-breaking — unknown keys are silently stripped); ② four false statements about the CI cargo face corrected in docs; ③ internals: doctor decoupled from channels, firstText single definition, test-only pass-through methods converged (2 new architecture invariants, INV 82→84; tests 2446→2455).
224
225
  - **v1.18.6**: external-consumer & hide-enforcement closure — ① a CLI-launched Chrome **is no longer silently reaped after 60 s** (external CDP-direct tools previously died reliably at 60–75 s, e.g. automation workflows); external consumers can also stay alive with one line, `touch ~/.cache/lasso/chrome-touch-<port>`; ② "the hidden Chrome sometimes won't stay hidden" fixed for good — the hidden tier writes the sticky ledger at birth + a standalone enforcer process presses back within ~2 s even with no server alive (self-exits on an empty ledger, leaving nothing resident).
225
226
  - **v1.18.5**: release-package cleanup — ① **the npm packages of v1.18.1 ~ v1.18.4 accidentally shipped application-domain files** (intermediate artifacts of a course-scraping project, unrelated to Lasso itself; those versions are deprecated). Do not install them. From this version on the published package contains only Lasso proper; size drops from ~28 MB back to normal.
226
227
  - **v1.18.4**: desktop-channel fix — ① previously, when the server was not started from the repo root (e.g. launched by a host such as Claude Code from any directory), all desktop tools failed with `rust_helper_crashed`; the helper path is now resolved from the install location, **works from any directory**; ② startup failures now fail fast with a self-diagnosing message (actual path, cwd, and fix suggestions; missing file / points-to-directory / no-exec-bit / corrupt-binary each get their own wording, failing in seconds instead of hanging); ③ binaries are ad-hoc signed during build (skipped silently on machines without codesign); ④ GitHub CI added (full test suite on every push).
package/README.md CHANGED
@@ -215,7 +215,7 @@ macOS 上能控 Finder / Mail / Safari / Notes / 系统设置等任何原生 app
215
215
 
216
216
  ## 安装
217
217
 
218
- **当前版本 v1.18.6**(更新日志见本节末尾折叠块)。
218
+ **当前版本 v1.18.7**(更新日志见本节末尾折叠块)。
219
219
 
220
220
  前提:Node.js ≥ 20 + Claude Code(或任何支持 MCP 的客户端)。
221
221
 
@@ -230,6 +230,7 @@ claude mcp add lasso -- npx -y lasso-mcp
230
230
  <details>
231
231
  <summary>📋 更新日志(v1.8 → v1.18.6,点开看每版改了什么)</summary>
232
232
 
233
+ - **v1.18.7**:架构重审落地(03 清单五维+循环修复)——① browse 族接口面诚实化:`wait_until` / `timeout_ms` / `screenshot.element` / `stealth_profile` 四个**从未生效的死参数**从工具描述与 schema 移除(此前传入会被静默忽略,现在文档不再承诺不存在的行为;非破坏——传了也会被静默剥离);② 「隐藏的 Chrome」文档中关于 CI 的四处失实描述改真;③ 内部:doctor 与 channels 解耦、firstText 单一定义、测试穿堂方法收敛(新增 2 条架构不变量,INV 总数 82→84;测试 2446→2455)。
233
234
  - **v1.18.6**:外部消费与隐藏执守闭环——① 命令行拉起的 Chrome 默认**不再 60s 被后台静默回收**(外部 CDP 直连工具之前稳定 60-75s 被误杀,如自动化工作流);外部消费者还可用 `touch ~/.cache/lasso/chrome-touch-<端口>` 一行续命;② 「隐藏的 Chrome 有时藏不住」根治——hidden 档出生即写粘滞账 + 独立执守进程兜底(server 不在也 ≤2s 压回,账空自退不留常驻进程)。
234
235
  - **v1.18.5**:发布包清理——**v1.18.1 ~ v1.18.4 的 npm 包误含应用域文件**(某课程抓取工程的中间产物,与 lasso 本体功能无关,已弃用),这些版本请勿安装;本版起发布面收敛为 lasso 本体,体积从 ~28MB 降回正常。
235
236
  - **v1.18.4**:desktop 通道修复——① 此前 server 不是从仓库根目录启动时(比如由 Claude Code 等宿主在任意目录拉起),desktop 工具会全部报错 `rust_helper_crashed`:现在 helper 路径按安装位置自动解析,**任意目录启动都可用**;② desktop 起不来时的报错从「裸错误码」变成一眼自诊断(附实际路径、当前目录、修复办法;缺文件/指到目录/缺执行权限/文件损坏各说各话,秒级失败不空等);③ 二进制构建时自动 ad-hoc 签名(无签名环境的机器跳过不报错);④ 新增 GitHub CI(每次推送自动跑全量测试)。
@@ -1,4 +1,4 @@
1
- import { evalTextValue } from "./upstream-response.js";
1
+ import { evalTextValue, firstText } from "./upstream-response.js";
2
2
  // ============================================================
3
3
  // 常量
4
4
  // ============================================================
@@ -138,13 +138,4 @@ export function buildConditionExpr(cond) {
138
138
  function sleep(ms) {
139
139
  return new Promise((r) => setTimeout(r, ms));
140
140
  }
141
- function firstText(r) {
142
- if (!r?.content)
143
- return undefined;
144
- for (const b of r.content) {
145
- if (b.type === "text" && b.text)
146
- return b.text;
147
- }
148
- return undefined;
149
- }
150
141
  //# sourceMappingURL=ExpectPoll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpectPoll.js","sourceRoot":"","sources":["../../src/browse/ExpectPoll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpectPoll.js","sourceRoot":"","sources":["../../src/browse/ExpectPoll.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { logger } from "../util/logger.js";
2
- import { evalTextValue } from "./upstream-response.js";
2
+ import { evalTextValue, firstText } from "./upstream-response.js";
3
3
  import { STEALTH_PROFILES, STEALTH_INJECTION_SCRIPT, CLOUDFLARE_DETECTION_SCRIPT, CLOUDFLARE_DETECTION_REGEX, } from "./stealth-profiles.js";
4
4
  // ============================================================
5
5
  // StealthEngine
@@ -241,13 +241,4 @@ export function buildUserAgentOverrideScript(profile) {
241
241
  } catch (e) {}
242
242
  }`;
243
243
  }
244
- function firstText(r) {
245
- if (!r?.content)
246
- return undefined;
247
- for (const b of r.content) {
248
- if (b.type === "text" && b.text)
249
- return b.text;
250
- }
251
- return undefined;
252
- }
253
244
  //# sourceMappingURL=StealthEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StealthEngine.js","sourceRoot":"","sources":["../../src/browse/StealthEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StealthEngine.js","sourceRoot":"","sources":["../../src/browse/StealthEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-actions.d.ts","sourceRoot":"","sources":["../../src/browse/cdp-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK/D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB;IAClC,wEAAwE;;IAExE;;;;;OAKG;;IAEH,+BAA+B;;IAE/B;;;OAGG;;IAEH,qEAAqE;;EAErE,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAInE,CAAC;AA6BH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,KAAK,CACzB,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAsChC;AAKD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,SAAS,CAC7B,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAiChC;AAED,uDAAuD;AACvD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAqBD;AAKD;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAC7B,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAgBhC;AAED,+CAA+C;AAC/C,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAuBD"}
1
+ {"version":3,"file":"cdp-actions.d.ts","sourceRoot":"","sources":["../../src/browse/cdp-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM/D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB;IAClC,wEAAwE;;IAExE;;;;;OAKG;;IAEH,+BAA+B;;IAE/B;;;OAGG;;IAEH,qEAAqE;;EAErE,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAInE,CAAC;AAuBH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,KAAK,CACzB,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAsChC;AAKD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,SAAS,CAC7B,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAiChC;AAED,uDAAuD;AACvD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAqBD;AAKD;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAC7B,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAgBhC;AAED,+CAA+C;AAC/C,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAuBD"}
@@ -1,3 +1,4 @@
1
+ import { firstText } from "./upstream-response.js";
1
2
  // ============================================================
2
3
  // 顶级 const:chrome-devtools-mcp 上游工具名集中表(parse6 §4.4 决策)
3
4
  // ============================================================
@@ -243,16 +244,4 @@ export function parseConsoleMessageLines(text) {
243
244
  }
244
245
  return out;
245
246
  }
246
- // ============================================================
247
- // helper:firstText(与 BrowseChannel.ts 同构)
248
- // ============================================================
249
- function firstText(r) {
250
- if (!r?.content)
251
- return undefined;
252
- for (const b of r.content) {
253
- if (b.type === "text" && b.text)
254
- return b.text;
255
- }
256
- return undefined;
257
- }
258
247
  //# sourceMappingURL=cdp-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-actions.js","sourceRoot":"","sources":["../../src/browse/cdp-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdp-actions.js","sourceRoot":"","sources":["../../src/browse/cdp-actions.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,SAAS,EAA8B,MAAM,wBAAwB,CAAC;AAE/E,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAC/D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,wEAAwE;IACxE,GAAG,EAAE,KAAK;IACV;;;;;OAKG;IACH,WAAW,EAAE,uBAAuB;IACpC,+BAA+B;IAC/B,WAAW,EAAE,qBAAqB;IAClC;;;OAGG;IACH,WAAW,EAAE,uBAAuB;IACpC,qEAAqE;IACrE,eAAe,EAAE,iBAAiB;CACnC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqC,MAAM,CAAC,MAAM,CAAC;IACrF,GAAG,EAAE,uBAAuB,CAAC,GAAG;IAChC,OAAO,EAAE,uBAAuB,CAAC,WAAW;IAC5C,OAAO,EAAE,uBAAuB,CAAC,WAAW;CAC7C,CAAC,CAAC;AAEH;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,wBAAwB,GAAyC;IACrE,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,OAAO,CAAC;IACd,WAAW,EAAE,SAAS;IACtB,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,+DAA+D;AAC/D,6CAA6C;AAC7C,+DAA+D;AAC/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QAC/B,SAAS,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;QACtC,eAAe,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;QAClD,SAAS,EAAE,IAAI,CAAC,cAAc,IAAI,GAAG;QACrC,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAAI,GAAG;QAC3C,UAAU,EAAE,IAAI,CAAC,eAAe,IAAI,GAAG;QACvC,WAAW,EAAE,IAAI,CAAC,gBAAgB,IAAI,GAAG;KAC1C,CAAC;IAEF,uEAAuE;IACvE,mEAAmE;IACnE,2DAA2D;IAC3D,uEAAuE;IACvE,gEAAgE;IAChE,2EAA2E;IAC3E,IAAI,CAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAA0B,CAAC;IACrF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,sCAAsC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,qEAAqE;IACrE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,+DAA+D;AAC/D,0DAA0D;AAC1D,+DAA+D;AAC/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,CAAY,EACZ,IAAY,EACZ,IAAmB;IAEnB,4CAA4C;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;IAC5C,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,CAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,EAAE;YACzD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAA0B,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,wEAAwE;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,0CAA0C;IAC1C,yEAAyE;IACzE,2CAA2C;IAC3C,MAAM,aAAa,GACjB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,GAAG,CAAC;QACJ,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KAC/E,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,wBAAwB,CAAC,IAAY;IAOnD,MAAM,GAAG,GAMJ,EAAE,CAAC;IACR,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,0EAA0E;QAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACV,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACb,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,mEAAmE;AACnE,+DAA+D;AAC/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,CAAY,EACZ,IAAY,EACZ,KAAoB;IAEpB,IAAI,CAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,EAAE,EAAE,CAAC,CAA0B,CAAC;IAC3F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,wBAAwB,CAAC,IAAY;IAOnD,MAAM,GAAG,GAMJ,EAAE,CAAC;IACR,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,+CAA+C;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAClB,kFAAkF,CACnF,CAAC;QACF,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACV,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACV,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -6,6 +6,8 @@
6
6
  * 铁律(parse5 §3.3 + INV-30,类比 INV-14 / INV-27 anti-gaming):
7
7
  * - 本文件**只放顶级 const 数据**:STEALTH_PROFILES / STEALTH_INJECTION_SCRIPT /
8
8
  * CLOUDFLARE_DETECTION_SCRIPT / CLOUDFLARE_CHALLENGE_MARKERS。
9
+ * (例外:defaultHeadlessProfileForHost()——3 行纯选择函数,review-r1 自
10
+ * HeadlessChannel.ts 迁入;仍只读 process.platform,不触 env/config。)
9
11
  * - **不从 config / env / ProviderRegistry 读**(防 LLM 通过 channel 改 env 绕过)。
10
12
  * - 加新 profile = 加 STEALTH_PROFILES 一行(≤2 处改动守 02 §4)。
11
13
  *
@@ -184,6 +186,23 @@ export declare const STEALTH_PROFILES: {
184
186
  export type StealthProfileName = keyof typeof STEALTH_PROFILES;
185
187
  /** profile 名清单(白盒供 test 遍历 + doctor 自检)。 */
186
188
  export declare const STEALTH_PROFILE_NAMES: StealthProfileName[];
189
+ /**
190
+ * v1.12(round2 T2-1):宿主平台对齐的默认 stealth profile。
191
+ *
192
+ * darwin → mac_chrome:chrome-devtools-mcp 1.7.0 不暴露 setExtraHTTPHeaders,
193
+ * 低熵 client hints(sec-ch-ua-platform)发宿主真值——windows profile 在 mac
194
+ * 宿主上产生「UA 称 Windows、hints 招供 macOS」的 OS 级 shape 矛盾(round2-browser
195
+ * E1 实测)。非 darwin → windows_chrome_120(Windows 宿主自洽;Linux 宿主为已知
196
+ * 残余矛盾,round2-verdict T2-1 记档)。
197
+ *
198
+ * 构造期确定性选择(process.platform 只读),非 env/config 可配——不触 INV-30
199
+ * anti-gaming 面(profile 数据本体仍在 stealth-profiles.ts 顶级 const)。
200
+ *
201
+ * 2026-08-31(review-r1):从 channels/HeadlessChannel.ts 迁入本文件(StealthProfileName
202
+ * 的定义处)——消除 doctor → channels 的唯一 value 依赖(doctor 与 channels 保持单向:
203
+ * 组合根实例化只在 doctor-cli.ts / index.ts)。
204
+ */
205
+ export declare function defaultHeadlessProfileForHost(): StealthProfileName;
187
206
  /**
188
207
  * 16 路反检测注入脚本(CORE 3 路 + 12 路 vendored evasion;join 成单字符串)。
189
208
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stealth-profiles.d.ts","sourceRoot":"","sources":["../../src/browse/stealth-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAkBH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGsB,CAAC;AAEpD,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE/D,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,EAE7B,kBAAkB,EAAE,CAAC;AA8E1B;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAczB,CAAC;AAKb;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,qHAM/B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QAWtC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAGtC,CAAC"}
1
+ {"version":3,"file":"stealth-profiles.d.ts","sourceRoot":"","sources":["../../src/browse/stealth-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAkBH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGsB,CAAC;AAEpD,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE/D,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,EAE7B,kBAAkB,EAAE,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,IAAI,kBAAkB,CAElE;AA8ED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAczB,CAAC;AAKb;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,qHAM/B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QAWtC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAGtC,CAAC"}
@@ -6,6 +6,8 @@
6
6
  * 铁律(parse5 §3.3 + INV-30,类比 INV-14 / INV-27 anti-gaming):
7
7
  * - 本文件**只放顶级 const 数据**:STEALTH_PROFILES / STEALTH_INJECTION_SCRIPT /
8
8
  * CLOUDFLARE_DETECTION_SCRIPT / CLOUDFLARE_CHALLENGE_MARKERS。
9
+ * (例外:defaultHeadlessProfileForHost()——3 行纯选择函数,review-r1 自
10
+ * HeadlessChannel.ts 迁入;仍只读 process.platform,不触 env/config。)
9
11
  * - **不从 config / env / ProviderRegistry 读**(防 LLM 通过 channel 改 env 绕过)。
10
12
  * - 加新 profile = 加 STEALTH_PROFILES 一行(≤2 处改动守 02 §4)。
11
13
  *
@@ -161,6 +163,25 @@ export const STEALTH_PROFILES = {
161
163
  };
162
164
  /** profile 名清单(白盒供 test 遍历 + doctor 自检)。 */
163
165
  export const STEALTH_PROFILE_NAMES = Object.keys(STEALTH_PROFILES);
166
+ /**
167
+ * v1.12(round2 T2-1):宿主平台对齐的默认 stealth profile。
168
+ *
169
+ * darwin → mac_chrome:chrome-devtools-mcp 1.7.0 不暴露 setExtraHTTPHeaders,
170
+ * 低熵 client hints(sec-ch-ua-platform)发宿主真值——windows profile 在 mac
171
+ * 宿主上产生「UA 称 Windows、hints 招供 macOS」的 OS 级 shape 矛盾(round2-browser
172
+ * E1 实测)。非 darwin → windows_chrome_120(Windows 宿主自洽;Linux 宿主为已知
173
+ * 残余矛盾,round2-verdict T2-1 记档)。
174
+ *
175
+ * 构造期确定性选择(process.platform 只读),非 env/config 可配——不触 INV-30
176
+ * anti-gaming 面(profile 数据本体仍在 stealth-profiles.ts 顶级 const)。
177
+ *
178
+ * 2026-08-31(review-r1):从 channels/HeadlessChannel.ts 迁入本文件(StealthProfileName
179
+ * 的定义处)——消除 doctor → channels 的唯一 value 依赖(doctor 与 channels 保持单向:
180
+ * 组合根实例化只在 doctor-cli.ts / index.ts)。
181
+ */
182
+ export function defaultHeadlessProfileForHost() {
183
+ return process.platform === "darwin" ? "mac_chrome" : "windows_chrome_120";
184
+ }
164
185
  // ============================================================
165
186
  // STEALTH_INJECTION_SCRIPT 顶级 const(parse5 §3.3.1 + v1.5 parse13 §3.1 16 路)
166
187
  // ============================================================
@@ -1 +1 @@
1
- {"version":3,"file":"stealth-profiles.js","sourceRoot":"","sources":["../../src/browse/stealth-profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stealth-profiles.js","sourceRoot":"","sources":["../../src/browse/stealth-profiles.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ export interface BraveOpts {
53
53
  export declare const BRAVE_FRESHNESS_MAP: Record<string, string>;
54
54
  /**
55
55
  * 注入式 HTTP client,便于测试 mock fetch。
56
- * SubprocessManager.acquireHttpClient 返回 keep-alive 版;测试返 vi.fn().
56
+ * util/http-pool acquireHttpClient 返回 keep-alive 版;测试返 vi.fn().
57
57
  */
58
58
  export interface BraveHttpClient {
59
59
  fetch: typeof fetch;
@@ -63,7 +63,7 @@ export declare class BraveChannel extends BaseChannel {
63
63
  private readonly endpoint;
64
64
  /** 多 Key 池账本(INV-10:禁直读 env,必须经 ledger)。 */
65
65
  private readonly ledger;
66
- /** HTTP client(注入,便于测试 mock;生产走 SubprocessManager.acquireHttpClient)。 */
66
+ /** HTTP client(注入,便于测试 mock;生产走 util/http-pool acquireHttpClient)。 */
67
67
  private readonly httpClient;
68
68
  readonly name = "search.brave";
69
69
  constructor(
@@ -71,7 +71,7 @@ export declare class BraveChannel extends BaseChannel {
71
71
  endpoint: string,
72
72
  /** 多 Key 池账本(INV-10:禁直读 env,必须经 ledger)。 */
73
73
  ledger: QuotaLedger,
74
- /** HTTP client(注入,便于测试 mock;生产走 SubprocessManager.acquireHttpClient)。 */
74
+ /** HTTP client(注入,便于测试 mock;生产走 util/http-pool acquireHttpClient)。 */
75
75
  httpClient: BraveHttpClient);
76
76
  isAvailable(): Promise<boolean>;
77
77
  status(): Promise<ChannelStatus>;
@@ -1 +1 @@
1
- {"version":3,"file":"BraveChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BraveChannel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,cAAc,EAEd,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKtD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,KAAK,CAAC;CACrB;AAKD,qBAAa,YAAa,SAAQ,WAAW;IAIzC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,QAAQ,CAAC,IAAI,kBAAkB;;IAG7B,yEAAyE;IACxD,QAAQ,EAAE,MAAM;IACjC,4CAA4C;IAC3B,MAAM,EAAE,WAAW;IACpC,yEAAyE;IACxD,UAAU,EAAE,eAAe;IAKxC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IA2BhC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAOpC;;;OAGG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAmF1B,UAAU;CAoDzB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAkBxE"}
1
+ {"version":3,"file":"BraveChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BraveChannel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,cAAc,EAEd,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKtD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,KAAK,CAAC;CACrB;AAKD,qBAAa,YAAa,SAAQ,WAAW;IAIzC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,QAAQ,CAAC,IAAI,kBAAkB;;IAG7B,yEAAyE;IACxD,QAAQ,EAAE,MAAM;IACjC,4CAA4C;IAC3B,MAAM,EAAE,WAAW;IACpC,sEAAsE;IACrD,UAAU,EAAE,eAAe;IAKxC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IA2BhC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAOpC;;;OAGG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAmF1B,UAAU;CAoDzB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAkBxE"}
@@ -59,7 +59,7 @@ export class BraveChannel extends BaseChannel {
59
59
  endpoint,
60
60
  /** 多 Key 池账本(INV-10:禁直读 env,必须经 ledger)。 */
61
61
  ledger,
62
- /** HTTP client(注入,便于测试 mock;生产走 SubprocessManager.acquireHttpClient)。 */
62
+ /** HTTP client(注入,便于测试 mock;生产走 util/http-pool acquireHttpClient)。 */
63
63
  httpClient) {
64
64
  super();
65
65
  this.endpoint = endpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"BraveChannel.js","sourceRoot":"","sources":["../../src/channels/BraveChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BraveChannel.js","sourceRoot":"","sources":["../../src/channels/BraveChannel.ts"],"names":[],"mappings":"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"}
@@ -82,8 +82,32 @@ export declare abstract class BrowseChannel extends UiChannel {
82
82
  /**
83
83
  * W2-DEF-N1 的执行体(P6 v1.18.1 抽出以便自愈重试原样复跑):
84
84
  * NAV_FIRST 采集类 action 先导航,再跑 handler。
85
+ *
86
+ * review-r3 F3:导航的 final_url 透传进 handler 结果(`partial.final_url ??
87
+ * navFinalUrl`)——此前 nav-first 路径丢弃 nav 返回,browseSingle 兜底
88
+ * `partial.final_url ?? url` 回显请求 url(重定向后即伪造)。
89
+ *
90
+ * review-r3 F3(blank-gated nav-first):snapshot/extract 只在**会话页仍空白**
91
+ * (本 client 生命周期从未导航 → 恒 about:blank)时先导航——兑现工具契约
92
+ * 「url (required) 定向采集」(descriptions:extract — full-page text
93
+ * extraction)。已导航会话保持「作用于当前页」语义(T-BROWSE-33 记录的设计):
94
+ * navigate → click → extract 的点击后观察态不被回灌导航破坏;interact_observe/
95
+ * act(@pN) 经 InteractDispatcher 也走本路径,同享此保证。
85
96
  */
86
97
  private dispatchAction;
98
+ /**
99
+ * review-r3 F3:FRESH_PAGE_NAV_ACTIONS 命中 + 本 client 会话从未导航(当前页
100
+ * = 上游新开空白页,L3 实证:此时单发 extract/snapshot 返 about:blank 空内容
101
+ * + outcome=worked)+ url 非占位 about:blank(forest 调度器缺 subtitle 时的
102
+ * 兜底值,无可导航目标)→ 返 true 需先导航。
103
+ */
104
+ private needsFreshPageNav;
105
+ /**
106
+ * review-r3 F3:已导航会话集(WeakSet——上游 respawn 换 McpClient 实例自动
107
+ * 重置为「空白」,fresh-page 门控重新生效)。单一写者(dispatchAction),
108
+ * 不构成共享 mutable state 耦合面。
109
+ */
110
+ private readonly navSeenClients;
87
111
  /**
88
112
  * P6(v1.18.1,得到实战问题集 P6):"No page selected" 零页面自愈钩子。
89
113
  * 默认 false(HeadlessChannel 上游自管浏览器无 0-page 形态,行为零变化);
@@ -1 +1 @@
1
- {"version":3,"file":"BrowseChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrowseChannel.d.ts","sourceRoot":"","sources":["../../src/channels/BrowseChannel.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ import { expectPoll, } from "../browse/ExpectPoll.js";
42
42
  import { StepEngine } from "../browse/StepEngine.js";
43
43
  import { BudgetTracker, DEFAULT_CHAIN_BUDGET_MS, clampChainBudgetMs } from "../fallback/BudgetTracker.js";
44
44
  import { applyOutputEnvelope } from "../util/output-envelope.js";
45
- import { parseEvalResult, imageBlock, firstText as upstreamFirstText, } from "../browse/upstream-response.js";
45
+ import { parseEvalResult, imageBlock, firstText, } from "../browse/upstream-response.js";
46
46
  // v0.5 M0.5b/M0.5c(parse6 §2.1 + §3.3.3 + §3.4.2):doPdf + doConsole + doNetwork
47
47
  // 追加进 actionDispatch Map
48
48
  // INV-33 守:pdf + console + network 三 action 必经 dispatch Map,禁第二套 dispatch
@@ -234,15 +234,52 @@ export class BrowseChannel extends UiChannel {
234
234
  /**
235
235
  * W2-DEF-N1 的执行体(P6 v1.18.1 抽出以便自愈重试原样复跑):
236
236
  * NAV_FIRST 采集类 action 先导航,再跑 handler。
237
+ *
238
+ * review-r3 F3:导航的 final_url 透传进 handler 结果(`partial.final_url ??
239
+ * navFinalUrl`)——此前 nav-first 路径丢弃 nav 返回,browseSingle 兜底
240
+ * `partial.final_url ?? url` 回显请求 url(重定向后即伪造)。
241
+ *
242
+ * review-r3 F3(blank-gated nav-first):snapshot/extract 只在**会话页仍空白**
243
+ * (本 client 生命周期从未导航 → 恒 about:blank)时先导航——兑现工具契约
244
+ * 「url (required) 定向采集」(descriptions:extract — full-page text
245
+ * extraction)。已导航会话保持「作用于当前页」语义(T-BROWSE-33 记录的设计):
246
+ * navigate → click → extract 的点击后观察态不被回灌导航破坏;interact_observe/
247
+ * act(@pN) 经 InteractDispatcher 也走本路径,同享此保证。
237
248
  */
238
249
  async dispatchAction(c, action, url, options, handler) {
239
- if (NAV_FIRST_ACTIONS.has(action)) {
250
+ if (NAV_FIRST_ACTIONS.has(action) ||
251
+ this.needsFreshPageNav(c, action, url)) {
240
252
  const nav = this.actionDispatch.get("navigate");
253
+ let navFinalUrl;
241
254
  if (nav)
242
- await nav(c, url, options);
255
+ navFinalUrl = (await nav(c, url, options)).final_url;
256
+ this.navSeenClients.add(c);
257
+ const partial = await handler(c, url, options);
258
+ return { ...partial, final_url: partial.final_url ?? navFinalUrl };
243
259
  }
244
- return await handler(c, url, options);
260
+ const partial = await handler(c, url, options);
261
+ // navigate 自身成功后才标记会话已导航(失败不标——下次 snapshot/extract 仍门控导航)
262
+ if (action === "navigate")
263
+ this.navSeenClients.add(c);
264
+ return partial;
265
+ }
266
+ /**
267
+ * review-r3 F3:FRESH_PAGE_NAV_ACTIONS 命中 + 本 client 会话从未导航(当前页
268
+ * = 上游新开空白页,L3 实证:此时单发 extract/snapshot 返 about:blank 空内容
269
+ * + outcome=worked)+ url 非占位 about:blank(forest 调度器缺 subtitle 时的
270
+ * 兜底值,无可导航目标)→ 返 true 需先导航。
271
+ */
272
+ needsFreshPageNav(c, action, url) {
273
+ return (FRESH_PAGE_NAV_ACTIONS.has(action) &&
274
+ url !== "about:blank" &&
275
+ !this.navSeenClients.has(c));
245
276
  }
277
+ /**
278
+ * review-r3 F3:已导航会话集(WeakSet——上游 respawn 换 McpClient 实例自动
279
+ * 重置为「空白」,fresh-page 门控重新生效)。单一写者(dispatchAction),
280
+ * 不构成共享 mutable state 耦合面。
281
+ */
282
+ navSeenClients = new WeakSet();
246
283
  /**
247
284
  * P6(v1.18.1,得到实战问题集 P6):"No page selected" 零页面自愈钩子。
248
285
  * 默认 false(HeadlessChannel 上游自管浏览器无 0-page 形态,行为零变化);
@@ -781,7 +818,8 @@ async function verifyNavigatedPage(c, navText) {
781
818
  async function doSnapshot(c, _url, _opts) {
782
819
  const r = (await c.callTool("take_snapshot", {}));
783
820
  const { title, text } = extractSnapshot(r);
784
- return { title, preview: text };
821
+ // review-r3 F3:final_url = a11y 树里的真实页面 URL(miss → browseSingle 兜底)
822
+ return { title, preview: text, final_url: extractRootWebAreaUrl(text) };
785
823
  }
786
824
  async function doScreenshot(c, _url, opts) {
787
825
  // W1-DEF-3(v1.8):chrome-devtools-mcp@0.3.0 take_screenshot 无 filePath 参数
@@ -833,7 +871,11 @@ async function doExtract(c, _url, opts) {
833
871
  // v1.0 路径 byte-identical:take_snapshot → a11y 文本树
834
872
  const r = (await c.callTool("take_snapshot", {}));
835
873
  const { title, text } = extractSnapshot(r);
836
- return includeRefs ? { title, preview: text, ignored_include_refs: true } : { title, preview: text };
874
+ // review-r3 F3:final_url 诚实化(同 doSnapshot——a11y 树真实页面 URL)
875
+ const fu = extractRootWebAreaUrl(text);
876
+ return includeRefs
877
+ ? { title, preview: text, ignored_include_refs: true, final_url: fu }
878
+ : { title, preview: text, final_url: fu };
837
879
  }
838
880
  // ---------- markdown / markdown_cited 档(v1.1 新增) ----------
839
881
  // 取渲染后 HTML(evaluate_script 注入 document.documentElement.outerHTML)。
@@ -883,6 +925,9 @@ async function doExtract(c, _url, opts) {
883
925
  return {
884
926
  title: mdResult.title ?? parsed.title ?? undefined,
885
927
  preview,
928
+ // review-r3 F3:markdown 档 evaluate 已抓 window.location.href——透传为
929
+ // final_url(真实页面 URL,不回显未被消费的请求 url)
930
+ final_url: parsed.url || undefined,
886
931
  // markdown 专属元数据(v1.1 扩展;raw 档不填,v1.0 调用方不读)
887
932
  ...(mdResult.byline ? { byline: mdResult.byline } : {}),
888
933
  ...(mdResult.citations ? { citations: mdResult.citations } : {}),
@@ -1052,13 +1097,24 @@ function extractSnapshot(r) {
1052
1097
  const firstLine = txt.split("\n", 1)[0]?.trim();
1053
1098
  return { title: firstLine || undefined, text: txt };
1054
1099
  }
1100
+ /**
1101
+ * review-r3 F3:从 a11y 文本树解析真实页面 URL。chrome-devtools-mcp snapshot
1102
+ * 的 RootWebArea 行带 url="..."(L3 真机实证两种形态:带 title
1103
+ * `RootWebArea "Example Domain" url="https://..."` 与裸 `RootWebArea url="..."`;
1104
+ * about:blank 场景可检出——r3 空内容缺陷的取证信号)。
1105
+ * 宽松匹配 + miss 返 undefined(格式漂移时退回 browseSingle 的 `?? url` 兜底,
1106
+ * 不新增失败模式)。用途:snapshot/raw extract 的 final_url 诚实化——不再回显
1107
+ * 未被消费的请求 url 伪装成已导航。
1108
+ */
1109
+ function extractRootWebAreaUrl(snapshotText) {
1110
+ const m = snapshotText.match(/RootWebArea(?:\s+"[^"]*")?\s+url="([^"]*)"/);
1111
+ return m ? m[1] : undefined;
1112
+ }
1055
1113
  function extractEvalPreview(r) {
1056
1114
  return firstText(r) ?? "(no eval output)";
1057
1115
  }
1058
- // W1-DEF-1b(v1.8):firstText 统一来自 upstream-response 适配器(单一权威解析入口)
1059
- function firstText(r) {
1060
- return upstreamFirstText(r);
1061
- }
1116
+ // W1-DEF-1b(v1.8):firstText 直接 import 自 upstream-response 适配器
1117
+ // (单一权威解析入口;r1 收敛:删除本地委托包装,全仓唯一定义)
1062
1118
  // ============================================================
1063
1119
  // 工具
1064
1120
  // ============================================================
@@ -1095,10 +1151,20 @@ export function truncatePreviewKeepingRefs(s) {
1095
1151
  * - timeout / 429 / 5xx / 网络错 → unknown
1096
1152
  * action 名拼错不在这里出现(browse() 提前 didnt 返回)。
1097
1153
  */
1098
- // W2-DEF-N1(v1.8.1):这些 URL 驱动的采集 action 要求目标页已加载——
1154
+ // W2-DEF-N1(v1.8.1):这些 URL 驱动的采集 action **无条件**先导航——
1099
1155
  // browseSingle 先 navigate 再 dispatch(工具注释自 v0.5 起就承诺「URL → navigate + X」,
1100
- // v1.8.1 补上真实导航)。snapshot/extract/wait/click 等保持原语义(作用于当前页)。
1156
+ // v1.8.1 补上真实导航)。wait/click 等保持原语义(作用于当前页)。
1101
1157
  const NAV_FIRST_ACTIONS = new Set(["network", "screenshot", "pdf"]);
1158
+ // review-r3 F3:URL 驱动但**会话语义敏感**的采集 action——只在会话页仍空白时
1159
+ // 先导航(needsFreshPageNav 门控),已导航会话作用于当前页。理由:
1160
+ // - snapshot/extract 是工具默认 action + descriptions 承诺 URL 定向——空白会话
1161
+ // 单发返 about:blank 空内容 + worked + final_url 回显请求 url(L3 真机 ×6 实证,
1162
+ // 生产实例同病),是必修缺陷;
1163
+ // - 但它们同时是「观察当前页」的合法用法(navigate → click → extract 看
1164
+ // 点击后状态;interact_observe/act(@pN) 经 InteractDispatcher 走同一
1165
+ // dispatchAction)——无条件 nav-first 会把 root 注册 URL 回灌导航、破坏
1166
+ // 观察态(r3 原提案的反证,故收敛为空白门控)。
1167
+ const FRESH_PAGE_NAV_ACTIONS = new Set(["snapshot", "extract"]);
1102
1168
  function classifyBrowseError(msg, _action) {
1103
1169
  const m = msg.toLowerCase();
1104
1170
  if (m.includes("needs_manual_2fa"))