lasso-mcp 1.23.0 → 1.24.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.
Files changed (52) hide show
  1. package/README.en.md +5 -3
  2. package/README.md +6 -4
  3. package/dist/config/config.d.ts +20 -0
  4. package/dist/config/config.d.ts.map +1 -1
  5. package/dist/config/config.js +28 -0
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/doctor/chrome-status.d.ts +27 -0
  8. package/dist/doctor/chrome-status.d.ts.map +1 -1
  9. package/dist/doctor/chrome-status.js +56 -1
  10. package/dist/doctor/chrome-status.js.map +1 -1
  11. package/dist/doctor/doctor.d.ts +1 -1
  12. package/dist/doctor/doctor.d.ts.map +1 -1
  13. package/dist/doctor/doctor.js +12 -3
  14. package/dist/doctor/doctor.js.map +1 -1
  15. package/dist/index.js +45 -8
  16. package/dist/index.js.map +1 -1
  17. package/dist/launcher/chrome-idle-reaper.d.ts +52 -10
  18. package/dist/launcher/chrome-idle-reaper.d.ts.map +1 -1
  19. package/dist/launcher/chrome-idle-reaper.js +69 -16
  20. package/dist/launcher/chrome-idle-reaper.js.map +1 -1
  21. package/dist/launcher/chrome-ledger.d.ts +30 -0
  22. package/dist/launcher/chrome-ledger.d.ts.map +1 -1
  23. package/dist/launcher/chrome-ledger.js +25 -0
  24. package/dist/launcher/chrome-ledger.js.map +1 -1
  25. package/dist/launcher/desired-hide-enforcer.d.ts +19 -2
  26. package/dist/launcher/desired-hide-enforcer.d.ts.map +1 -1
  27. package/dist/launcher/desired-hide-enforcer.js +12 -3
  28. package/dist/launcher/desired-hide-enforcer.js.map +1 -1
  29. package/dist/launcher/launch-chrome.d.ts +11 -0
  30. package/dist/launcher/launch-chrome.d.ts.map +1 -1
  31. package/dist/launcher/launch-chrome.js +8 -0
  32. package/dist/launcher/launch-chrome.js.map +1 -1
  33. package/doc/bugs/02-chrome-idle-reaper-second-consumer.md +4 -0
  34. package/doc/bugs/03-2026-09-07-hidden/346/241/243/345/212/253/346/214/201/347/224/250/346/210/267Chrome/346/277/200/346/264/273.md +5 -1
  35. package/doc/bugs/06-2026-09-10-/346/227/245/345/270/270/346/241/243idle0/345/271/275/347/201/265/345/270/270/351/251/273-/347/241/254/351/241/266/344/270/216/351/205/215/346/226/271/346/262/273/347/220/206/345/206/263/350/256/256.md +197 -0
  36. package/doc/bugs/06-/346/266/210/350/264/271/346/226/271/351/200/232/347/237/245/350/246/201/347/202/271-cc-control/344/270/216media-gen-mcp.md +27 -0
  37. package/doc/testing/01-/345/212/237/350/203/275/346/265/213/350/257/225/346/270/205/345/215/225.md +4 -0
  38. package/doc/usage/01-KEY-GUIDE.md +4 -1
  39. package/doc/usage/02-TROUBLESHOOTING.md +9 -3
  40. package/doc//345/257/271/346/216/245/345/256/236/346/226/275/350/257/264/346/230/216-/346/270/262/346/237/223/346/241/243x-media-gen-mcp.md +4 -0
  41. package/doc//346/270/262/346/237/223/346/241/243/350/256/276/350/256/241/345/206/263/350/256/256.md +4 -0
  42. package/doc//351/234/200/346/261/202-/346/270/262/346/237/223/346/241/243/346/265/217/350/247/210/345/231/250/346/262/273/347/220/206.md +4 -0
  43. package/package.json +1 -1
  44. package/src/config/config.ts +35 -0
  45. package/src/doctor/chrome-status.ts +89 -1
  46. package/src/doctor/doctor.ts +12 -3
  47. package/src/index.ts +45 -8
  48. package/src/invariants/check-invariants.mjs +110 -0
  49. package/src/launcher/chrome-idle-reaper.ts +90 -16
  50. package/src/launcher/chrome-ledger.ts +34 -0
  51. package/src/launcher/desired-hide-enforcer.ts +22 -3
  52. package/src/launcher/launch-chrome.ts +16 -0
package/README.en.md CHANGED
@@ -210,7 +210,7 @@ Goes to the Internet Archive (Wayback Machine) to find the last archived copy of
210
210
 
211
211
  ## Install
212
212
 
213
- **Current version v1.23.0** (changelog in the collapsed block at the end of this section).
213
+ **Current version v1.24.0** (changelog in the collapsed block at the end of this section).
214
214
 
215
215
  Prerequisites: Node.js ≥ 20 + Claude Code (or any MCP-capable client).
216
216
 
@@ -227,6 +227,8 @@ Restart Claude Code → `/mcp` → `lasso ✓ Connected`. **That's the one line
227
227
  <details>
228
228
  <summary>📋 Changelog (v1.8 → v1.18.6 — click to see what each version changed)</summary>
229
229
 
230
+ - **v1.24.0 (unreleased, merged in this working tree)**: 🔴 **behavior change (BUG-06 — root fix for the 12-hour ghost-resident incident, doc/bugs/06)** — ① `--idle-ms 0` / `LASSO_LAUNCH_IDLE_MS=0` semantics change from "never reap" to "**hard-cap reap after 24 hours of no activity**" (counted from the last activity signal — lasso browse now writes the touch file automatically, external consumers keep it alive with `touch ~/.cache/lasso/chrome-touch-<port>`, so **active use never triggers it**; new key `LASSO_LAUNCH_HARD_CAP_MS` tunes or disables it); truly never reap = the two-flag deliberate form `--idle-ms 0 --no-hard-cap`, or deployment-level `LASSO_LAUNCH_HARD_CAP_MS=0`. visible / user-claimed (chrome-show) exemptions unchanged (r2: a claim landing between the reap decision and the kill is honored too — the reaper's default stop now re-evaluates userTakenAt at kill time, closing the adversarial-review P2 TOCTOU); the render tier is untouched (`LASSO_RENDER_IDLE_MS` stays independent, pinned by the INV-94 tripwire). **On upgrade, pre-existing over-age idle-0 ledger records are reaped by the first reaper tick (≤15s)** — this is intended (such instances are exactly the incident's ghost form); nohup recipes relying on 0=infinite without touching should migrate (see TROUBLESHOOTING §9.3 / KEY-GUIDE). ② cross-process activity source of truth (A-7): `lasso browse` activity now lands in the touch file on disk — visible to the enforcer reaper host (previously it only touched in-server process memory, leaving a 24h/30min mis-reap blind spot whenever both hosts coexist, fixed in the same stroke); ③ over-age observability (B): chrome-status/doctor continuously emit an advisory warn block for capped records past 50% of the cap (expected reap time + touch keep-alive recipe + the user's own chrome-stop exit) with zero new kill/directive surface; ④ with global `LASSO_LAUNCH_IDLE_MS=0` the reaper now runs in cap-only mode (D2 — disabling idle reaping no longer also dismantles the hard-cap backstop). Adversarial round r1 adopted both P1 findings (N1 cross-process blind spot / N2 default flipped to 0 and sunk into the assembly layers); round r2 closed the reaper TOCTOU (P2 — the default reap exit now re-evaluates userTakenAt at kill time); new invariant INV-94.
231
+ - **v1.24.0**: ghost-instance root-fix batch (BUG-06, driven by a live 12-hour instance) — ① 🔴 **behavior change**: `launch-chrome --idle-ms 0` changes from "never reap" to "**no self-reaping, but a 24-hour hard cap as a safety net**" — a windowless hidden instance can no longer linger indefinitely as an "invisible, uncloseable ghost" (this batch's trigger: a 12-hour instance invisible in the Dock and menu bar with no way to close it). True unlimited now requires the additional explicit `--no-hard-cap` (**double intent** — prevents scripts passing 0 casually); deployments can tune or disable via `LASSO_LAUNCH_HARD_CAP_MS` (`=0` disables entirely); failure direction is always safe (invalid values fall back to capped). Old scripts relying on "0 = forever" should add `--no-hard-cap`. ② **cross-process liveness truth**: before hard-cap reaping, the touch-file heartbeat is consulted (any session / any consumer still using it → no wrongful kill); userTakenAt / visible exemptions carry over natively (re-evaluated at kill time, the race window sealed). ③ **over-age observability**: `doctor` / `chrome-status` warn early on instances past half the hard cap (no new kill surface added). Six live-machine acceptance checks all PASS + two clean adversarial rounds (three mutations all red / wrongful-kill panorama replayed with live stand-in processes, zero casualties / render tier zero cross-contamination).
230
232
  - **v1.23.0**: local-file & debugging batch (BUG-05, novel-engine field driven) — ① **`LASSO_ALLOW_FILE_FROM` file:// directory allowlist**: testing local single-file HTML (a staple for offline-artifact acceptance) used to be flat-blocked by the SSRF guard — now, with `LASSO_ALLOW_FILE_FROM=/your/project/dir`, `browse_*` can navigate/snapshot/extract/screenshot local files **inside the designated directory subtree** (still denied by default; zero-config = zero behavior change; `../` traversal, symlink escapes, prefix forgery and trailing-symlink write escapes all sealed — 18 read-side + 10 write-side attack variants, zero escapes); ② new **`console` action**: read the current page's console messages since the last navigation (severity filter + most-recent-N) — no more window.onerror injection detours when debugging rendering defects; ③ **`ignored_options` honesty contract**: options keys you passed that the current action doesn't consume are listed verbatim in the response (never silently dropped — one root cause of the "worked but no screenshot" trap the consumer hit); and to be explicit: navigate-then-screenshot in one step **is already what `action=screenshot` does**; ④ **`LASSO_SCREENSHOT_DIR` screenshot write-root constraint**: custom screenshot output paths are denied by default (arbitrary-write protection), opt-in and confined to the designated subtree. Two clean adversarial rounds: 6/6 mutations killed + proof the core SSRF guard is unweakened + consumer scenario (real single-file HTML over both http and file://) fully verified on a live machine.
231
233
  - **v1.22.1**: audit & stability batch — ① six consumer-deep-inspection callback items closed: the cc-control hook sample **fixed for three defects and now ships in-repo with 17 vector tests** (samples must live in-repo, docs only point — deliverable-quality rule established), doctor port-probe detail wording made honest across four outcome shapes, version-alignment tests generalized (assertions read package.json as the single source of truth), `npm run gate` gate hardening (explicit count assertions — pipes can no longer swallow exit codes); ② full review per the 03 audit checklist (four-track six-dimension + Gauntlet verification + clean double-blind adversarial); ③ three timing flakes fixed (wall-clock boundary → fixed-clock injection, sleep-for-disk → polling, threshold aligned to the discrimination surface) — verified by five consecutive full-suite green runs + gate.
232
234
  - **v1.22.0**: ownership-verdict & channel-self-heal batch (BUG-04, consumer-field driven) — ① new subcommand **`chrome-status [--port N]`**: takes "who occupies this port and may I touch it" out of the AI's hands — lasso classifies it directly in ten categories (ledger zombie / stale / suspected user asset …) and outputs a human decision message + machine-readable directives (`allowed_commands` / `must_report` — on a "suspected user asset" verdict the AI is explicitly told it has **zero allowed actions and must report to you**) + a paste-ready report pack; companion `chrome-stop --zombie-gate` is the only machine kill exit (in-ledger + fingerprint match + ledger re-read at kill time — triple gate). Existing commands unchanged. ② fixes the `browse_logged_in` **selected-page wedge** (P1, channel-level): root cause is a structural flaw in the upstream engine — once the selected page closes, every later navigate/evaluate/snapshot fails forever until restart; the wedge signature is now detected and healed by quietly taking over with a background page of our own, with an honest prefix when healing fails. ③ `evaluate` accepts the `(async () => {...})()` form (previously "fn is not a function"); ④ your own bad JS no longer trips the fallback chain (script errors vs channel errors classified); ⑤ doctor port-probe wording made honest ("HTTP 404" → four real outcome shapes). Two clean adversarial rounds: 5/5 mutations killed + live-machine sovereignty checks against a real user Chrome + report-pack weaponization tests. For heavy automation users: a PreToolUse hook sample (hard-blocking AI killing browsers via Bash) is in doc/bugs/04 appendix E.
@@ -308,7 +310,7 @@ lasso launch-chrome
308
310
  The first time, log in to your accounts in that window (handle 2FA yourself) — **the login state is reused from then on**. Afterwards, just say "open my logged-in Jira" to Claude.
309
311
 
310
312
  - Works **silently with zero window** by default — never steals focus, always muted; add `--mode visible` to watch it work
311
- - CLI-launched Chrome **auto-collects after 30 min of no activity by default** (BUG-03 A1 — "stays alive while in use, auto-collected when idle"; external tools keep it alive with one `touch ~/.cache/lasso/chrome-touch-<port>`; long sessions opt out with `--idle-ms 0`); `lasso chrome-stop` closes it manually at any time
313
+ - CLI-launched Chrome **auto-collects after 30 min of no activity by default** (BUG-03 A1 — "stays alive while in use, auto-collected when idle"; external tools keep it alive with one `touch ~/.cache/lasso/chrome-touch-<port>`; long sessions opt out of idle reaping with `--idle-ms 0` — which now carries a **24-hour no-activity hard cap** (BUG-06); truly never reap requires the `--idle-ms 0 --no-hard-cap` two-flag form); `lasso chrome-stop` closes it manually at any time
312
314
  - Tabs it opens in your Chrome are restored to the original list when you say `admin {action:"tab_restore", reason:"done"}` after a task (the same happens automatically on server exit)
313
315
 
314
316
  > 🔴 **Red line**: 2FA / verification codes / CAPTCHA — Lasso doesn't solve these for you; pass them manually once in the window.
@@ -319,7 +321,7 @@ The first time, log in to your accounts in that window (handle 2FA yourself) —
319
321
  - Since v1.8, a dedicated Lasso profile is used by default (Chrome 136+ forbids opening a debug port on the default profile — the old way would exit instantly); to reuse an existing profile, use `lasso launch-chrome --profile <dir>`.
320
322
  - After launch, the debug port is probed automatically; if Chrome didn't come up or the port is taken, it fails loudly instead of faking success.
321
323
  - Auto-close threshold: `LASSO_LAUNCH_IDLE_MS` (default 60000; `300000` reverts to 5 minutes; `0` disables). To let a single long task through: `--idle-ms 3600000`. Since BUG-03 an **explicit CLI launch defaults to `--idle-ms 1800000` (30 min)** — a server exit never guilt-by-associates CLI-launched Chromes (owner filtering), and the enforcer process (alive even without a server) collects on expiry; explicit env / config.json still wins.
322
- - **Keep-alive for external CDP consumers** (v1.18.5; wording revised in BUG-03): when other tools (chrome-devtools-mcp, automation scripts, …) connect straight to this Chrome's debug port, a single `touch ~/.cache/lasso/chrome-touch-<port>` counts as "just used" (the promise is now **stays alive while in use** — only silent expiry collects); no resident Chrome is needed (hidden-tier cold start reaches a usable CDP in ~1.5 s measured); for a whole working session launch with `--idle-ms 0` (explicit opt-out of auto-collect) or touch periodically.
324
+ - **Keep-alive for external CDP consumers** (v1.18.5; wording revised in BUG-03; as of BUG-06 lasso browse also lands in the same touch file automatically — the keep-alive signal is visible across reaper hosts): when other tools (chrome-devtools-mcp, automation scripts, …) connect straight to this Chrome's debug port, a single `touch ~/.cache/lasso/chrome-touch-<port>` counts as "just used" (the promise is now **stays alive while in use** — only silent expiry collects); no resident Chrome is needed (hidden-tier cold start reaches a usable CDP in ~1.5 s measured); for a whole working session launch with `--idle-ms 3600000` (auto-collects on expiry) or touch periodically — `--idle-ms 0` now carries the 24h hard cap (BUG-06) and is no longer an unbounded resident.
323
325
  - The headless browser auto-recycles after 5 minutes idle (`LASSO_HEADLESS_IDLE_MS` to tune or disable).
324
326
  - Honest boundary: running `lasso launch-chrome` standalone (outside the server) has no idle auto-close — the exit is `chrome-stop`; `browse_logged_in` connecting to **your own visible Chrome** is "low-disturbance, not zero-disturbance" (a macOS platform-level limitation — occasional operations may steal focus once) — for pure silence use the hidden tier or `browse_headless`; `desktop` simulates a real human's keyboard and mouse, so it occupies the physical keyboard/mouse by design — there is no silent form.
325
327
  - chrome-stop only closes the Chromes Lasso itself launched, with verified ownership — it never touches your manually-opened browsers.
package/README.md CHANGED
@@ -219,7 +219,7 @@ macOS 上能控 Finder / Mail / Safari / Notes / 系统设置等任何原生 app
219
219
 
220
220
  ## 安装
221
221
 
222
- **当前版本 v1.23.0**(更新日志见本节末尾折叠块)。
222
+ **当前版本 v1.24.0**(更新日志见本节末尾折叠块)。
223
223
 
224
224
  前提:Node.js ≥ 20 + Claude Code(或任何支持 MCP 的客户端)。
225
225
 
@@ -234,8 +234,10 @@ claude mcp add lasso -- npx -y lasso-mcp
234
234
  **给其它 AI 工具当确定性渲染浏览器(渲染档)**:如果你在用 media-gen-mcp 这类要求「同一输入必须产出同一像素」的渲染工具,装好 lasso 后只需一行 `npx -y lasso-mcp render-chrome --ensure`——它会在 9224 端口拉起一个确定性 headless Chrome(冻结旗标快照 + 独立临时 profile),输出消费方直连用的 `wsEndpoint`;**消费方进程被强杀浏览器也照常存活**(生命周期归属 lasso),空闲 10 分钟自动回收并连带清理 profile(`LASSO_RENDER_IDLE_MS` 可调)。配套:`render-chrome --status` 自省 / `--stop` 收尾(认 `LASSO_RENDER_PORT`:显式设 port 只收该 port,未设=全部 render 记录,非法值 exit 1;全局收口仍可用 `chrome-stop --modes render`)/ `render-chrome doctor [--clean]` 孤儿与陈年 profile 清理(默认只报告;认 `LASSO_RENDER_PORT`,同 `--stop`:显式设 port 只判该 port,未设=全扫,非法值 exit 1;touch 心跳 10 分钟内的在用实例豁免不判孤儿)。**同机多 agent 并行验收**(多个 agent 各自清场会互杀对方实例)需配三 env 契命名空间隔离:`LASSO_RENDER_PORT` + `LASSO_LAUNCHED_CHROMES_PATH` + `LASSO_RENDER_GUARDIAN_PID_PATH`,配齐后并行互不可见,配方与清场纪律见 [doc/渲染档-并行验收隔离配方.md](doc/渲染档-并行验收隔离配方.md)。
235
235
 
236
236
  <details>
237
- <summary>📋 更新日志(v1.8 → v1.18.6,点开看每版改了什么)</summary>
237
+ <summary>📋 更新日志(v1.8 → v1.23.0,点开看每版改了什么)</summary>
238
238
 
239
+ - **v1.24.0(未发版,本批已合入工作树)**:🔴 **行为变更(BUG-06,12h 幽灵常驻事故根治,doc/bugs/06)**——① `--idle-ms 0` / `LASSO_LAUNCH_IDLE_MS=0` 语义从「永不回收」改为「**无活动 24 小时硬顶回收**」(自最近活动起算——lasso browse 自动落盘 touch 文件或外部 `touch ~/.cache/lasso/chrome-touch-<端口>` 续命,**在用永不触发**;`LASSO_LAUNCH_HARD_CAP_MS` 新键可调/禁);真·无限常驻 = `--idle-ms 0 --no-hard-cap` 双旗,或部署级 `LASSO_LAUNCH_HARD_CAP_MS=0`。visible/用户认领(chrome-show)档豁免不变(r2:收割判定与执行间隙落下的认领同样豁免——reaper 默认收割出口在 kill 时刻重估 userTakenAt,对抗复审 P2 TOCTOU 闭口);渲染档零变化(`LASSO_RENDER_IDLE_MS` 独立,INV-94 tripwire 钉死)。**升级瞬间存量超龄 idle-0 记录将被首个收割 tick(≤15s)回收**——属预期(该类实例即事故幽灵形态);依赖 0=无限且不 touch 的 nohup 配方请迁移(TROUBLESHOOTING §9.3 / KEY-GUIDE)。② 跨进程活动真源(A-7):`lasso browse` 活动现自动落盘 touch 文件——执守收割宿主可见(此前只写 server 进程内存,双宿主并时有 24h/30min 误杀盲区,同型同修);③ 超龄可观测(B):chrome-status/doctor 对硬顶过半(>50%)的在案实例持续给出 warn 咨询块(预期回收时刻 + touch 续命法 + 用户 chrome-stop 出口),零新增 kill/指令面;④ 全局 `LASSO_LAUNCH_IDLE_MS=0` 下 reaper 以 cap-only 模式运行(D2——不再连硬顶兜底一起拆)。对抗复审 r1 两项 P1 采纳(N1 跨进程盲区 / N2 缺省反转 0 下沉装配层);r2 闭 reaper TOCTOU(P2——默认收割出口 kill 时刻对 userTakenAt 重估);新不变量 INV-94。
240
+ - **v1.24.0**:幽灵常驻根治批(BUG-06,用户 12 小时实例实锤驱动)——① 🔴 **行为变更**:`launch-chrome --idle-ms 0` 的语义从「永不回收」改为「**不自收,但 24 小时硬顶保命**」——无窗口的隐藏实例从此不可能无限常驻成「看不见也关不掉的幽灵」(本轮用户实锤:一个 12 小时实例,Dock/菜单栏不可见无从关闭)。要真正无限需再显式 `--no-hard-cap`(**双重意图**,防脚本顺手传 0);部署级可用 `LASSO_LAUNCH_HARD_CAP_MS` 调整或 `=0` 全禁;失效方向恒安全(非法值回退有顶)。旧脚本若依赖「0=无限」请加 `--no-hard-cap`。② **跨进程活动真源**:硬顶收割前看 touch 文件心跳(任何会话/任何消费方还在用 → 不误杀);userTakenAt / visible 豁免天然继承(kill 时刻二次重估,竞态窗口封口)。③ **超龄可观测**:`doctor` / `chrome-status` 对过半硬顶的实例提前 warn(不新增任何 kill 面)。真机验收六项全 PASS + 对抗两轮 clean(三变异全红 / 误杀全景真活替身重放零误伤 / 渲染档零交叉)。
239
241
  - **v1.23.0**:本地文件与排障能力批(BUG-05,novel-engine 实测驱动)——① **`LASSO_ALLOW_FILE_FROM` file:// 目录白名单**:测本地单文件 HTML(离线产物验收的标配场景)此前被 SSRF 守卫一刀切拦——现在设 `LASSO_ALLOW_FILE_FROM=/你的项目目录` 后 `browse_*` 可导航/快照/抽取/截图**指定目录子树内**的本地文件(默认仍拒、零配置零行为变化;`../` 穿越、symlink 逃逸、目录前缀伪造、末段 symlink 写逃逸全封口——读面 18+写面 10 攻击变体零逃逸);② 新 **`console` action**:直接读当前页自上次导航以来的 console 消息(按严重度过滤 + 最近 N 条)——渲染类缺陷排查不再需要注入 window.onerror 绕路;③ **`ignored_options` 诚实契约**:你传了但当前 action 用不上的 options 键会在响应里如实列出(不再静默丢弃——novel-engine 实测踩到的「worked 但截图没生成」根因之一);顺带明确:navigate+截图一步走**本就是 `action=screenshot` 的行为**(先导航再截图);④ **`LASSO_SCREENSHOT_DIR` 截图写根约束**:自定义截图落盘路径默认拒(防任意写盘),opt-in 且限指定目录子树内。对抗两轮 clean:6 变异全红+SSRF 守卫本体零削弱证明+消费方场景(真实单文件 HTML http/file:// 双路径)真机全通。
240
242
  - **v1.22.1**:审查与稳定性批——① 消费方深检回告六项收口:给 cc-control 的 hook 硬拦样例**回修三处缺陷并落仓自带 17 向量测试**(样例必落仓、文档只指路——交付物质量制度成型)、doctor 端口探测 detail 文案四形态如实化、版本对齐测试泛化(断言读 package.json 单一真源,不再逐版手改)、`npm run gate` 门禁固化(显式计数断言防管道吞退出码);② 03 审查测试清单全面审查(四轨六维+Gauntlet 验证+双盲对抗 clean);③ 三个时序 flake 收口(墙钟边界改固定时钟注入/sleep 赌落盘改轮询/阈值贴判别面)——全量连跑 5 轮 + gate 全绿实证。
241
243
  - **v1.22.0**:归属鉴定与通道自愈批(BUG-04,消费方实战驱动)——① 新子命令 **`chrome-status [--port N]`**:把「这个端口被谁占着、我能不能动它」的鉴定权从 AI 手里收走——lasso 直接十分类(账本僵尸/陈留/疑似用户资产…),输出人类决策文案 + 机器可读指令(`allowed_commands` / `must_report`——AI 拿到「疑似用户资产」分类时被明确告知**零允许操作、必须上报你**)+ 可直接粘贴的上报包;配套 `chrome-stop --zombie-gate` 唯一机器代杀出口(台账在案+指纹对+kill 时刻重读台账三重门)。旧命令行为零变化。② 修复 `browse_logged_in` **选中页死锁**(P1 通道级):根因是上游引擎的结构性缺陷——选中页一旦被关闭,后续 navigate/evaluate/snapshot 永久报错只能重启;现在自动检测楔死签名并后台自建页接管自愈,修不掉时如实前缀上报。③ `evaluate` 兼容 `(async () => {...})()` 形态(此前报 fn is not a function);④ 调用方自己写错 JS 不再拉响备用通道(脚本错误与通道错误分类);⑤ doctor 端口探测措辞如实化(「HTTP 404」→ 四形态真实归因)。对抗两轮 clean:5 变异全杀 + 真实用户 Chrome 主权实机验证 + 上报包武器化测试不破防。给重度自动化用户的配套:PreToolUse hook 硬拦样例(拦 AI 经 Bash kill 浏览器)见 doc/bugs/04-附录E。
@@ -328,7 +330,7 @@ lasso launch-chrome
328
330
  以后对 Claude 说「打开我已登录的 Jira」就行。想再看窗口随时 `lasso chrome-show`(可逆,登录态不动)。
329
331
 
330
332
  - 默认**零窗口静默**干活、不抢焦点、永远静音;想看着它干加 `--mode visible`
331
- - 命令行拉起的 Chrome **默认 30 分钟无活动自动收**(BUG-03 A1——「有活动就活,无消费者到期自动收」;外部工具 `touch ~/.cache/lasso/chrome-touch-<端口>` 一行续命;长会话显式 `--idle-ms 0` 永不自动收),手动关随时 `lasso chrome-stop`
333
+ - 命令行拉起的 Chrome **默认 30 分钟无活动自动收**(BUG-03 A1——「有活动就活,无消费者到期自动收」;外部工具 `touch ~/.cache/lasso/chrome-touch-<端口>` 一行续命;长会话显式 `--idle-ms 0` 不做 idle 回收、但**无活动 24 小时硬顶回收**(BUG-06),真·无限须 `--idle-ms 0 --no-hard-cap` 双旗),手动关随时 `lasso chrome-stop`
332
334
  - 它在你 Chrome 里开的 tab,任务后说 `admin {action:"tab_restore", reason:"完成"}` 恢复原列表(server 退出也会自动做)
333
335
 
334
336
  > 🔴 **红线**:2FA / 验证码 / CAPTCHA——Lasso 不替你解,你在窗口里手动过一次。
@@ -339,7 +341,7 @@ lasso launch-chrome
339
341
  - v1.8 起默认用 Lasso 独立 profile(Chrome 136+ 禁止对默认 profile 开调试端口,老办法会秒退);复用已有 profile 用 `lasso launch-chrome --profile <目录>`。
340
342
  - 启动后自动探活调试端口,Chrome 没起来 / 端口被占会明确报错,不假报成功。
341
343
  - 自动关阈值:`LASSO_LAUNCH_IDLE_MS`(默认 60000;`300000` 回退 5 分钟;`0` 禁用)。单次长任务放行:`--idle-ms 3600000`。BUG-03 轮起**命令行显式拉起默认 `--idle-ms 1800000`(30 分钟)**——server 退出不再连坐任何 CLI 拉起的 Chrome(归属过滤),执守进程(server 不在也活着)负责到期收割;显式配置 env / config.json 仍最高优先。
342
- - **外部 CDP 消费者续命**(v1.18.5,BUG-03 口径修订):其他工具(chrome-devtools-mcp、自动化脚本等)直连这条 Chrome 的调试端口时,一行 `touch ~/.cache/lasso/chrome-touch-<端口>` 即视为「刚用过」(承诺口径 = **在用就一直活**,无信号才到期收);不需要常驻(hidden 档冷启动实测 1.5s 内 CDP 可用),一整段会话要用就拉起时配 `--idle-ms 0`(显式退出自动收)或定期 touch。
344
+ - **外部 CDP 消费者续命**(v1.18.5,BUG-03 口径修订;BUG-06 起 lasso browse 自动落盘同一 touch 文件——续命信号跨收割宿主可见):其他工具(chrome-devtools-mcp、自动化脚本等)直连这条 Chrome 的调试端口时,一行 `touch ~/.cache/lasso/chrome-touch-<端口>` 即视为「刚用过」(承诺口径 = **在用就一直活**,无信号才到期收);不需要常驻(hidden 档冷启动实测 1.5s 内 CDP 可用),一整段会话要用就拉起时配 `--idle-ms 3600000`(到点自动收)或定期 touch——`--idle-ms 0` 现带 24h 硬顶(BUG-06),不再是无上界常驻。
343
345
  - 登录后自动收窗:`LASSO_AUTO_HIDE_AFTER_LOGIN`(默认 false;开启后只在「见过登录页 → 登录页消失 → 等 10 秒 → Claude 没在用」四关全过时才收,收错方向保守——拿不准就不收)。等待时长 `LASSO_AUTO_HIDE_AFTER_LOGIN_DELAY_MS`(默认 10000)。只在 server 会话运行期间生效(CLI 单独 `launch-chrome` 没有调度器,仍走手动 `chrome-hide`)。
344
346
  - 无头浏览器空闲 5 分钟自动回收(`LASSO_HEADLESS_IDLE_MS` 可调/禁用)。
345
347
  - 诚实边界:单独跑 `lasso launch-chrome`(不经 server)没有 idle 自动关,出口是 `chrome-stop`;它起的 Chrome 在 Dock / 任务栏会多一个图标(浏览器有头进程的注册行为,lasso 控制不了),要零图标用 `browse_headless`;`browse_logged_in` 连**你自己开的可见 Chrome** 时会在你的 Chrome 里临时开一个后台 tab 干活(不抢焦点不发声,结束自动关,v1.17.2 起你的 tab 一律不被改写)——但你的 Chrome 本身不静音(lasso 不改写你的浏览器参数),浏览到自动播放页面会真出声;`desktop` 模拟真人键鼠,设计上就占用物理键鼠,没有静默形态。
@@ -32,6 +32,14 @@ export interface LassoConfig {
32
32
  * HEADLESS=MCP spec 子进程树(白盒 §6.1)。
33
33
  */
34
34
  launchIdleMs: number;
35
+ /**
36
+ * BUG-06 决议 A-1(doc/bugs/06,2026-09-10):launch-chrome 台账 Chrome 回收
37
+ * 硬顶天花板(ms)。env LASSO_LAUNCH_HARD_CAP_MS / config.json 同名键
38
+ * (默认 86_400_000 = 24h;0 = 部署级禁用硬顶)。idleMs<=0 记录按 cap 兜底
39
+ * 回收;idleMs>cap 记录按 min(idleMs, cap) 夹紧(ZooKeeper 式)。渲染档
40
+ * LASSO_RENDER_IDLE_MS 语义独立不受影响(决议 D3 豁免)。
41
+ */
42
+ launchHardCapMs: number;
35
43
  /**
36
44
  * v1.10(parse18 §3 机制二):launch-chrome 启动档。
37
45
  * env LASSO_LAUNCH_MODE(默认 "hidden" = 0 窗口零打扰;"visible" = v1.9 可见行为)。
@@ -64,6 +72,18 @@ export declare const DEFAULT_HEADLESS_IDLE_MS = 300000;
64
72
  * 配 300000 即回退「5min 才关」语义(5min 保留给用户,parse18 §2.4)。
65
73
  */
66
74
  export declare const DEFAULT_LAUNCH_IDLE_MS = 60000;
75
+ /**
76
+ * BUG-06 决议 A-1(doc/bugs/06,2026-09-10):LASSO_LAUNCH_IDLE_MS=0 语义的
77
+ * 硬顶天花板(默认 24h = LAUNCH_HARD_CAP_DEFAULT_MS)。
78
+ *
79
+ * 解析(失效方向必须偏「有顶」——防笔误静默拆掉安全网):
80
+ * - 未设 / NaN / 负数 → 回退 24h 默认
81
+ * - 显式 0 → 0(全局禁用硬顶——部署级策略开关,真·无限常驻的部署面出口)
82
+ * 命名沿用 LASSO_LAUNCH_IDLE_MS 域前缀,刻意区别于渲染档 LASSO_RENDER_IDLE_MS
83
+ * (三套 idle 勿互抄的既训)。config.json 扁平层 key 同 env 名(合并机制自动继承)。
84
+ * 导出供 chrome-status/doctor 超龄 watch 折算(BUG-06 决议 B——单一解析真源)。
85
+ */
86
+ export declare function parseLaunchHardCapMs(raw: string | undefined): number;
67
87
  /**
68
88
  * v1.11(round1 T12):LASSO_CDP_PORT 解析(NaN/越界守卫)。
69
89
  * parseInt 后 NaN / ≤0 / >65535 → 回退默认 9222 + logger.warn config_invalid_value
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK1D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAGvC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,cAAc,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAMD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAchD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAc7C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa5D;AAED,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,EAAE,QAAQ,GAAG,SAAoB,CAAC;AAiClE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA8BnD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,SAAS,GAAE,MAAM,CAAC,UAAwB,GACzC,MAAM,CAAC,UAAU,CAEnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW,CA0E/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAGvC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,cAAc,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAMD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAchD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAc7C;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKpE;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa5D;AAED,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,EAAE,QAAQ,GAAG,SAAoB,CAAC;AAiClE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAiCnD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,SAAS,GAAE,MAAM,CAAC,UAAwB,GACzC,MAAM,CAAC,UAAU,CAEnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW,CA6E/D"}
@@ -43,6 +43,9 @@ import { ProviderRegistry } from "./provider-registry.js";
43
43
  import { logger } from "../util/logger.js";
44
44
  // C2(v1.18,doc/governance/09 D-2):延迟窗默认值单一真源在 reaper(消费方语义所有者)
45
45
  import { AUTO_HIDE_AFTER_LOGIN_DELAY_MS } from "../launcher/chrome-idle-reaper.js";
46
+ // BUG-06 决议 A-1(doc/bugs/06):硬顶默认 24h 单一真源在 chrome-ledger
47
+ // (config 反向 import 无环——chrome-ledger 只 import node:*)
48
+ import { LAUNCH_HARD_CAP_DEFAULT_MS } from "../launcher/chrome-ledger.js";
46
49
  function defaultCacheDir() {
47
50
  return path.join(os.homedir(), ".cache", "lasso");
48
51
  }
@@ -85,6 +88,25 @@ function parseLaunchIdleMs(raw) {
85
88
  return DEFAULT_LAUNCH_IDLE_MS;
86
89
  return n;
87
90
  }
91
+ /**
92
+ * BUG-06 决议 A-1(doc/bugs/06,2026-09-10):LASSO_LAUNCH_IDLE_MS=0 语义的
93
+ * 硬顶天花板(默认 24h = LAUNCH_HARD_CAP_DEFAULT_MS)。
94
+ *
95
+ * 解析(失效方向必须偏「有顶」——防笔误静默拆掉安全网):
96
+ * - 未设 / NaN / 负数 → 回退 24h 默认
97
+ * - 显式 0 → 0(全局禁用硬顶——部署级策略开关,真·无限常驻的部署面出口)
98
+ * 命名沿用 LASSO_LAUNCH_IDLE_MS 域前缀,刻意区别于渲染档 LASSO_RENDER_IDLE_MS
99
+ * (三套 idle 勿互抄的既训)。config.json 扁平层 key 同 env 名(合并机制自动继承)。
100
+ * 导出供 chrome-status/doctor 超龄 watch 折算(BUG-06 决议 B——单一解析真源)。
101
+ */
102
+ export function parseLaunchHardCapMs(raw) {
103
+ if (raw === undefined || raw.trim() === "")
104
+ return LAUNCH_HARD_CAP_DEFAULT_MS;
105
+ const n = parseInt(raw, 10);
106
+ if (Number.isNaN(n) || n < 0)
107
+ return LAUNCH_HARD_CAP_DEFAULT_MS;
108
+ return n;
109
+ }
88
110
  /**
89
111
  * v1.11(round1 T12):LASSO_CDP_PORT 解析(NaN/越界守卫)。
90
112
  * parseInt 后 NaN / ≤0 / >65535 → 回退默认 9222 + logger.warn config_invalid_value
@@ -250,6 +272,9 @@ export const CONFIG_TEMPLATE = {
250
272
  // v1.10(parse18 §2.4 + §3):台账 Chrome 用完即关 + 隐藏启动档
251
273
  LASSO_LAUNCH_MODE: "hidden",
252
274
  LASSO_LAUNCH_IDLE_MS: 60000,
275
+ // BUG-06 决议 A-1(doc/bugs/06,2026-09-10):idle=0 语义的 24h 硬顶天花板
276
+ // (0 = 部署级禁用;NaN/负数 parse 回退默认——失效方向偏有顶)
277
+ LASSO_LAUNCH_HARD_CAP_MS: 86400000,
253
278
  // C2(v1.18,doc/governance/09 D-2):登录完成自动转后台静默(opt-in;默认 false)
254
279
  LASSO_AUTO_HIDE_AFTER_LOGIN: false,
255
280
  LASSO_AUTO_HIDE_AFTER_LOGIN_DELAY_MS: 10000,
@@ -344,6 +369,8 @@ export function loadConfig(opts) {
344
369
  const headlessIdleMs = parseHeadlessIdleMs(env.LASSO_HEADLESS_IDLE_MS);
345
370
  // v1.10(parse18 机制一/二):台账 Chrome 用完即关阈值 + 启动档(0 = 禁用 reaper)
346
371
  const launchIdleMs = parseLaunchIdleMs(env.LASSO_LAUNCH_IDLE_MS);
372
+ // BUG-06 决议 A-1:idle=0 语义的硬顶天花板(未设 → 24h;显式 0 → 部署级禁用)
373
+ const launchHardCapMs = parseLaunchHardCapMs(env.LASSO_LAUNCH_HARD_CAP_MS);
347
374
  const launchMode = parseLaunchMode(env.LASSO_LAUNCH_MODE);
348
375
  // C2(v1.18,doc/governance/09 D-2):登录完成自动转后台(opt-in 默认 off)+ 延迟窗
349
376
  const autoHideAfterLogin = parseAutoHideAfterLogin(env.LASSO_AUTO_HIDE_AFTER_LOGIN);
@@ -359,6 +386,7 @@ export function loadConfig(opts) {
359
386
  searchFreeOnly,
360
387
  headlessIdleMs,
361
388
  launchIdleMs,
389
+ launchHardCapMs,
362
390
  launchMode,
363
391
  autoHideAfterLogin,
364
392
  autoHideAfterLoginDelayMs,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export interface PortOccupierEvidence {
23
23
  status: LaunchedChromeRecord["status"];
24
24
  launchMode?: LaunchedChromeRecord["launchMode"];
25
25
  userTakenAt?: number;
26
+ /** BUG-06 决议 B:per-record idle 覆盖(超龄 watch 的判定输入之一)。 */
27
+ idleMs?: number;
26
28
  };
27
29
  cdp: {
28
30
  /** /json/version 是否返回 200 且可解析。 */
@@ -33,6 +35,24 @@ export interface PortOccupierEvidence {
33
35
  };
34
36
  /** 台账记录的 cmdline 归属验证是否通过(verifyOwnership)。 */
35
37
  ownership_verified?: boolean;
38
+ /**
39
+ * BUG-06 决议 B(doc/bugs/06,2026-09-10):硬顶超龄咨询块(只读 advisory——
40
+ * 零新增 kill/指令面,classification 与 AGENT_DIRECTIVES 不变)。命中条件:
41
+ * 台账在案 + 非用户拥有(isUserOwnedRecord 前置)+ 非 render + 非 hardCapExempt
42
+ * + 有效回收期限 = cap(idleMs<=0 或 idleMs>cap)+ lastUse 龄 > 50% cap。
43
+ * 12h 幽灵事故在 24h cap 下的新行为 = 12h 起持续 warn、24h 自动收——
44
+ * 「可发现可关闭」宪法闭环的发现面。
45
+ */
46
+ hard_cap_watch?: {
47
+ /** 生效硬顶 ms(parseLaunchHardCapMs 折算:未设→24h;显式 0→关)。 */
48
+ cap_ms: number;
49
+ /** lastUse(launchedAt 与 touch 文件 mtime 取 max)距今 ms。 */
50
+ idle_for_ms: number;
51
+ /** idle_for_ms / cap_ms(0.5+ 才在场)。 */
52
+ ratio: number;
53
+ /** 预期回收时刻 epoch ms(lastUse + cap)。 */
54
+ reap_at_epoch_ms: number;
55
+ };
36
56
  }
37
57
  export interface PortOccupierDirective {
38
58
  /**
@@ -76,6 +96,13 @@ export interface ClassifyPortOccupierDeps {
76
96
  aliveFn?: (pid: number) => boolean;
77
97
  /** 时钟注入(R3 单测)。 */
78
98
  now?: () => number;
99
+ /**
100
+ * BUG-06 决议 B:touch 文件 mtime 注入(默认 chromeTouchMtimeSync——超龄
101
+ * watch 的 lastUse 与 reaper 三源 max 同源,touch 新鲜 = 不告警)。
102
+ */
103
+ touchStatFn?: (port: number) => number | undefined;
104
+ /** BUG-06 决议 B:硬顶值注入(默认 parseLaunchHardCapMs 折算 env/config 层)。 */
105
+ hardCapMs?: number;
79
106
  }
80
107
  /**
81
108
  * TCP 三态探测(区别 launch-chrome.tcpConnectable 的二态——R1 要求把
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-status.d.ts","sourceRoot":"","sources":["../../src/doctor/chrome-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chrome-status.d.ts","sourceRoot":"","sources":["../../src/doctor/chrome-status.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,10 @@ import * as net from "node:net";
42
42
  import process from "node:process";
43
43
  import { readLedgerSync, isUserOwnedRecord, isLaunchingRecord, } from "../launcher/chrome-ledger.js";
44
44
  import { verifyOwnership } from "../launcher/chrome-stop.js";
45
+ // BUG-06 决议 B(doc/bugs/06):超龄可观测——touch 文件 mtime(与 reaper 三源
46
+ // max 同源)+ 硬顶值折算(parseLaunchHardCapMs 单一真源,失效方向偏有顶)
47
+ import { chromeTouchMtimeSync } from "../launcher/chrome-touch.js";
48
+ import { parseLaunchHardCapMs, mergedEnv } from "../config/config.js";
45
49
  // ============================================================
46
50
  // 默认探针(全只读)
47
51
  // ============================================================
@@ -255,6 +259,10 @@ export async function classifyPortOccupier(port, deps = {}) {
255
259
  const readLedgerFn = deps.readLedgerFn ?? readLedgerSync;
256
260
  const aliveFn = deps.aliveFn ?? defaultAliveFn;
257
261
  const now = deps.now ?? Date.now;
262
+ const touchStatFn = deps.touchStatFn ?? ((p) => chromeTouchMtimeSync(p));
263
+ // 折算经 mergedEnv(config.json 扁平层 + env)——与 reaper 装配侧 loadConfig
264
+ // 同一合并顺序,watch 口径与执行口径一致(R-CI-02 单一真源精神)
265
+ const hardCapMs = deps.hardCapMs ?? parseLaunchHardCapMs(mergedEnv().LASSO_LAUNCH_HARD_CAP_MS);
258
266
  const evidence = { cdp: { reachable: false } };
259
267
  const finalize = (classification, extraLedger) => {
260
268
  if (extraLedger) {
@@ -267,6 +275,7 @@ export async function classifyPortOccupier(port, deps = {}) {
267
275
  ...(extraLedger.userTakenAt !== undefined
268
276
  ? { userTakenAt: extraLedger.userTakenAt }
269
277
  : {}),
278
+ ...(extraLedger.idleMs !== undefined ? { idleMs: extraLedger.idleMs } : {}),
270
279
  };
271
280
  }
272
281
  return {
@@ -333,6 +342,9 @@ export async function classifyPortOccupier(port, deps = {}) {
333
342
  // 4. 台账判定
334
343
  const rec = readLedgerFn().find((r) => r.port === port);
335
344
  if (rec) {
345
+ // BUG-06 决议 B:硬顶超龄咨询块(只读;分类与指令面零改动)。attach 在一切
346
+ // 分类分支之前——用户拥有(isUserOwnedRecord 前置)与 render 档结构性无 watch。
347
+ attachHardCapWatch(evidence, rec, port, { hardCapMs, now: now(), touchStatFn });
336
348
  evidence.pid_match = lsofPid === rec.pid;
337
349
  const ownedAlive = aliveFn(rec.pid);
338
350
  if (evidence.pid_match && ownedAlive) {
@@ -371,6 +383,42 @@ function classifyByOccupierIdentity(cmdline) {
371
383
  return "external_occupier";
372
384
  }
373
385
  // ============================================================
386
+ // BUG-06 决议 B:硬顶超龄 watch(只读 advisory——零新增 kill/指令面)
387
+ // ============================================================
388
+ /**
389
+ * 命中条件(决议 B 全集):台账在案 + 非用户拥有(isUserOwnedRecord——visible/
390
+ * userTakenAt 档豁免语义零变化)+ 非 render(D3 红线隔离)+ 非 hardCapExempt
391
+ * (--no-hard-cap 双意图)+ **有效回收期限 = cap**(rec.idleMs<=0 或 >cap——
392
+ * undefined 不判:其有效 idle 取决于收割宿主缺省,chrome-status 无法判定则不
393
+ * 告警,失败方向偏安静)+ lastUse 龄 > 50% cap(launchedAt 与 touch 文件 mtime
394
+ * 取 max——touch 新鲜即不告警,与 reaper「在用永不杀」同源)。
395
+ */
396
+ function attachHardCapWatch(evidence, rec, port, ctx) {
397
+ if (ctx.hardCapMs <= 0)
398
+ return; // 部署级禁用(LASSO_LAUNCH_HARD_CAP_MS=0)
399
+ if (isUserOwnedRecord(rec))
400
+ return; // visible / userTakenAt 豁免(前置短路)
401
+ if (rec.launchMode === "render")
402
+ return; // 渲染档 D3 红线隔离
403
+ if (rec.hardCapExempt === true)
404
+ return; // --no-hard-cap 双意图豁免
405
+ if (rec.idleMs === undefined)
406
+ return; // 有效 idle 宿主依赖,不可判则不告警
407
+ if (rec.idleMs > 0 && rec.idleMs <= ctx.hardCapMs)
408
+ return; // idle 阈值先于 cap 生效
409
+ const lastUse = Math.max(rec.launchedAt, ctx.touchStatFn(port) ?? 0);
410
+ const idleForMs = ctx.now - lastUse;
411
+ const ratio = idleForMs / ctx.hardCapMs;
412
+ if (ratio <= 0.5)
413
+ return; // 未过半不告警(12h 事故 = 24h cap 的 12h 起持续 warn)
414
+ evidence.hard_cap_watch = {
415
+ cap_ms: ctx.hardCapMs,
416
+ idle_for_ms: idleForMs,
417
+ ratio,
418
+ reap_at_epoch_ms: lastUse + ctx.hardCapMs,
419
+ };
420
+ }
421
+ // ============================================================
374
422
  // 上报包(user_paste_pack——「零 kill 逃生口」的替代物)
375
423
  // ============================================================
376
424
  /**
@@ -388,11 +436,18 @@ export function buildUserPastePack(port, classification, ev) {
388
436
  ];
389
437
  if (ev.ledger_record) {
390
438
  const r = ev.ledger_record;
391
- lines.push(`ledger: pid=${r.pid} mode=${r.launchMode ?? "hidden"} status=${r.status} launchedAt=${new Date(r.launchedAt).toISOString()}${r.userTakenAt !== undefined ? ` userTakenAt=${new Date(r.userTakenAt).toISOString()}` : ""} pid_match=${ev.pid_match}`);
439
+ lines.push(`ledger: pid=${r.pid} mode=${r.launchMode ?? "hidden"} status=${r.status} launchedAt=${new Date(r.launchedAt).toISOString()}${r.userTakenAt !== undefined ? ` userTakenAt=${new Date(r.userTakenAt).toISOString()}` : ""}${r.idleMs !== undefined ? ` idleMs=${r.idleMs}` : ""} pid_match=${ev.pid_match}`);
392
440
  }
393
441
  else {
394
442
  lines.push("ledger: (no record for this port)");
395
443
  }
444
+ // BUG-06 决议 B:硬顶超龄行(预期回收时刻 + touch 续命法 + 用户本人 chrome-stop
445
+ // 出口——paste 语境的用户专属出口,不受 allowed_commands 约束)
446
+ if (ev.hard_cap_watch) {
447
+ const w = ev.hard_cap_watch;
448
+ const pct = Math.round(w.ratio * 100);
449
+ lines.push(`hard-cap watch: idle for ${Math.round(w.idle_for_ms / 60_000)}min = ${pct}% of the ${Math.round(w.cap_ms / 3_600_000)}h no-activity hard cap — auto-reaps at ${new Date(w.reap_at_epoch_ms).toISOString()} unless used; keep alive: touch ~/.cache/lasso/chrome-touch-${port}; your exit anytime: lasso-mcp chrome-stop --port ${port}`);
450
+ }
396
451
  lines.push("lasso will NEVER kill this process on its own (never_kill_user_asset).");
397
452
  lines.push("Your exits (user-only): close it yourself, or run it yourself:");
398
453
  lines.push(` lasso-mcp chrome-stop --port ${port}`);
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-status.js","sourceRoot":"","sources":["../../src/doctor/chrome-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AA+F7D,+DAA+D;AAC/D,YAAY;AACZ,+DAA+D;AAC/D;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAiB,EAAE,EAAE;YACjC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAwB,EAAE,EAAE;YAChD,iDAAiD;YACjD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,eAAe,EAAE;QAChE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAyB,CAAC;IACtD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,EAAE;YAC7D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAc,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,SAAS,CACjB,MAAM,EACN,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,EAC9C,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CACrC,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,wDAAwD;QACxD,wEAAwE;QACxE,8DAA8D;QAC9D,uCAAuC;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE;YAClE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,CAAC,oBAAoB;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,yDAAyD;QACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,mCAAmC;AACnC,+DAA+D;AAC/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB;IACF,IAAI,EAAE;QACJ,gBAAgB,EAAE,CAAC,uCAAuC,CAAC;QAC3D,WAAW,EAAE,KAAK;KACnB;IACD,eAAe,EAAE;QACf,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,UAAU,EAAE;QACV,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,KAAK;KACnB;IACD,yBAAyB,EAAE;QACzB,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;QACvE,WAAW,EAAE,KAAK;KACnB;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,YAAY,EAAE;QACZ,2CAA2C;QAC3C,qCAAqC;QACrC,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;QACvE,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,8BAA8B,EAAE;QAC9B,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,oBAAoB,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,YAAY,EAAE;QACZ,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;CACF,CAAC;AAEF,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAC/D;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG;IACjC,8BAA8B;IAC9B,wBAAwB;CACzB,CAAC;AAEF,SAAS,0BAA0B,CAAC,OAAe;IACjD,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,wDAAwD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,+DAA+D;AAC/D,QAAQ;AACR,+DAA+D;AAC/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAiC,EAAE;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAEjC,MAAM,QAAQ,GAAyB,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,CACf,cAA0C,EAC1C,WAAkC,EACd,EAAE;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,aAAa,GAAG;gBACvB,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI;YACJ,cAAc;YACd,QAAQ;YACR,eAAe,EAAE;gBACf,GAAG,gBAAgB,CAAC,cAAc,CAAC;gBACnC,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAClC;aACF;YACD,eAAe,EAAE,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC;SACpE,CAAC;IACJ,CAAC,CAAC;IAEF,YAAY;IACZ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC,eAAe,GAAG,0BAA0B,CAAC;QACtD,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,wCAAwC;QACxC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACxD,IAAI,GAAG,EAAE,CAAC;YACR,kDAAkD;YAClD,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,OAAO,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,iDAAiD;IACjD,YAAY;IACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,eAAe,GAAG,iCAAiC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,eAAe,GAAG,2CAA2C,CAAC;QACvE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,4DAA4D;IAC5D,iEAAiE;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,6BAA6B;IACtF,QAAQ,CAAC,KAAK,GAAG,IAAI;QACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAEjD,oCAAoC;IACpC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAE/C,UAAU;IACV,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,IAAI,GAAG,EAAE,CAAC;QACR,QAAQ,CAAC,SAAS,GAAG,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;YACrC,4DAA4D;YAC5D,8CAA8C;YAC9C,QAAQ,CAAC,kBAAkB,GAAG,eAAe,CAC3C,OAAO,EACP,GAAG,CAAC,UAAU,EACd,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;YACF,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBAChC,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAAE,OAAO,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;gBACtE,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS;oBAAE,OAAO,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;gBAC/D,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAAE,OAAO,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAC3E,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAChC,qDAAqD;oBACrD,4CAA4C;oBAC5C,8BAA8B;oBAC9B,OAAO,QAAQ,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;gBACD,OAAO,QAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,+CAA+C;QAC/C,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,mBAAmB;IACnB,OAAO,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,qCAAqC;AACrC,SAAS,0BAA0B,CAAC,OAAe;IACjD,IAAI,0BAA0B,CAAC,OAAO,CAAC;QAAE,OAAO,gCAAgC,CAAC;IACjF,IAAI,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAC5D,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,+DAA+D;AAC/D,yCAAyC;AACzC,+DAA+D;AAC/D;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,cAA0C,EAC1C,EAAwB;IAExB,MAAM,KAAK,GAAa;QACtB,8BAA8B,IAAI,MAAM,cAAc,EAAE;QACxD,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,IAAI,GAAG,GAAG;QACpF,YAAY,EAAE,CAAC,eAAe,IAAI,eAAe,EAAE;QACnD,kBAAkB,EAAE,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACnK,CAAC;IACF,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,UAAU,IAAI,QAAQ,WAAW,CAAC,CAAC,MAAM,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,CACrP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAYD,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAKlD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC;aACzC,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;aAChC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;QACN,CAAC;QACD,4CAA4C;IAC9C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IACnB,QAAQ,GAAG,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,iCAAiC,CAAC;QAClD,KAAK,iBAAiB;YACpB,OAAO,MAAM,CAAC,2FAA2F,CAAC;QAC5G,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,8BAA8B,GAAG,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QAChF,KAAK,2BAA2B;YAC9B,OAAO,MAAM,CAAC,iCAAiC,GAAG,CAAC,QAAQ,CAAC,GAAG,mFAAmF,CAAC,mBAAmB,CAAC;QACzK,KAAK,mBAAmB;YACtB,OAAO,MAAM,CAAC,oCAAoC,GAAG,CAAC,QAAQ,CAAC,GAAG,kFAAkF,CAAC,oBAAoB,CAAC;QAC5K,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,4BAA4B,GAAG,CAAC,QAAQ,CAAC,SAAS,wDAAwD,CAAC,yDAAyD,CAAC;QACrL,KAAK,gCAAgC;YACnC,OAAO,MAAM,CAAC,yHAAyH,CAAC;QAC1I,KAAK,sBAAsB;YACzB,OAAO,MAAM,CAAC,kHAAkH,CAAC;QACnI,KAAK,mBAAmB;YACtB,OAAO,MAAM,CAAC,2FAA2F,CAAC;QAC5G,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,uGAAuG,CAAC;IAC1H,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACtC,OAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sDAAsD,CAAC,GAAG,IAAI,CAAC,CAAC;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,qBAAqB,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,CAAC,eAAe,CAAC,WAAW,OAAO,GAAG,CAAC,eAAe,IAAI,CAC/L,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"chrome-status.js","sourceRoot":"","sources":["../../src/doctor/chrome-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,6DAA6D;AAC7D,oDAAoD;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA0HtE,+DAA+D;AAC/D,YAAY;AACZ,+DAA+D;AAC/D;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAiB,EAAE,EAAE;YACjC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAwB,EAAE,EAAE;YAChD,iDAAiD;YACjD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,eAAe,EAAE;QAChE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAyB,CAAC;IACtD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,EAAE;YAC7D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAc,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,SAAS,CACjB,MAAM,EACN,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,EAC9C,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CACrC,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,wDAAwD;QACxD,wEAAwE;QACxE,8DAA8D;QAC9D,uCAAuC;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE;YAClE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,CAAC,oBAAoB;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,yDAAyD;QACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,mCAAmC;AACnC,+DAA+D;AAC/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB;IACF,IAAI,EAAE;QACJ,gBAAgB,EAAE,CAAC,uCAAuC,CAAC;QAC3D,WAAW,EAAE,KAAK;KACnB;IACD,eAAe,EAAE;QACf,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,UAAU,EAAE;QACV,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,KAAK;KACnB;IACD,yBAAyB,EAAE;QACzB,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;QACvE,WAAW,EAAE,KAAK;KACnB;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,YAAY,EAAE;QACZ,2CAA2C;QAC3C,qCAAqC;QACrC,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;QACvE,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,8BAA8B,EAAE;QAC9B,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,oBAAoB,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;IACD,YAAY,EAAE;QACZ,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,qBAAqB,EAAE,IAAI;KAC5B;CACF,CAAC;AAEF,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAC/D;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG;IACjC,8BAA8B;IAC9B,wBAAwB;CACzB,CAAC;AAEF,SAAS,0BAA0B,CAAC,OAAe;IACjD,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,wDAAwD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,+DAA+D;AAC/D,QAAQ;AACR,+DAA+D;AAC/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAiC,EAAE;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,gEAAgE;IAChE,yCAAyC;IACzC,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,IAAI,oBAAoB,CAAC,SAAS,EAAE,CAAC,wBAAwB,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAyB,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,CACf,cAA0C,EAC1C,WAAkC,EACd,EAAE;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,aAAa,GAAG;gBACvB,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI;YACJ,cAAc;YACd,QAAQ;YACR,eAAe,EAAE;gBACf,GAAG,gBAAgB,CAAC,cAAc,CAAC;gBACnC,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAClC;aACF;YACD,eAAe,EAAE,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC;SACpE,CAAC;IACJ,CAAC,CAAC;IAEF,YAAY;IACZ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC,eAAe,GAAG,0BAA0B,CAAC;QACtD,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,wCAAwC;QACxC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACxD,IAAI,GAAG,EAAE,CAAC;YACR,kDAAkD;YAClD,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,OAAO,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,iDAAiD;IACjD,YAAY;IACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,eAAe,GAAG,iCAAiC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,eAAe,GAAG,2CAA2C,CAAC;QACvE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,4DAA4D;IAC5D,iEAAiE;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,6BAA6B;IACtF,QAAQ,CAAC,KAAK,GAAG,IAAI;QACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAEjD,oCAAoC;IACpC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAE/C,UAAU;IACV,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,IAAI,GAAG,EAAE,CAAC;QACR,+CAA+C;QAC/C,0DAA0D;QAC1D,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,SAAS,GAAG,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;YACrC,4DAA4D;YAC5D,8CAA8C;YAC9C,QAAQ,CAAC,kBAAkB,GAAG,eAAe,CAC3C,OAAO,EACP,GAAG,CAAC,UAAU,EACd,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;YACF,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBAChC,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAAE,OAAO,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;gBACtE,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS;oBAAE,OAAO,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;gBAC/D,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAAE,OAAO,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAC3E,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAChC,qDAAqD;oBACrD,4CAA4C;oBAC5C,8BAA8B;oBAC9B,OAAO,QAAQ,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;gBACD,OAAO,QAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,+CAA+C;QAC/C,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,mBAAmB;IACnB,OAAO,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,qCAAqC;AACrC,SAAS,0BAA0B,CAAC,OAAe;IACjD,IAAI,0BAA0B,CAAC,OAAO,CAAC;QAAE,OAAO,gCAAgC,CAAC;IACjF,IAAI,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAC5D,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,+DAA+D;AAC/D,oDAAoD;AACpD,+DAA+D;AAC/D;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,QAA8B,EAC9B,GAAyB,EACzB,IAAY,EACZ,GAIC;IAED,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC;QAAE,OAAO,CAAC,oCAAoC;IACpE,IAAI,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,iCAAiC;IACrE,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,CAAC,cAAc;IACvD,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;QAAE,OAAO,CAAC,sBAAsB;IAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,uBAAuB;IAC7D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,CAAC,mBAAmB;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;IACpC,MAAM,KAAK,GAAG,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IACxC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,0CAA0C;IACpE,QAAQ,CAAC,cAAc,GAAG;QACxB,MAAM,EAAE,GAAG,CAAC,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,KAAK;QACL,gBAAgB,EAAE,OAAO,GAAG,GAAG,CAAC,SAAS;KAC1C,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,yCAAyC;AACzC,+DAA+D;AAC/D;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,cAA0C,EAC1C,EAAwB;IAExB,MAAM,KAAK,GAAa;QACtB,8BAA8B,IAAI,MAAM,cAAc,EAAE;QACxD,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,IAAI,GAAG,GAAG;QACpF,YAAY,EAAE,CAAC,eAAe,IAAI,eAAe,EAAE;QACnD,kBAAkB,EAAE,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KACnK,CAAC;IACF,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,UAAU,IAAI,QAAQ,WAAW,CAAC,CAAC,MAAM,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,CAC3S,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;IACD,0DAA0D;IAC1D,8CAA8C;IAC9C,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CACR,4BAA4B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,GAAG,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,0CAA0C,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,+DAA+D,IAAI,qDAAqD,IAAI,EAAE,CACzU,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAYD,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAKlD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC;aACzC,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;aAChC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;QACN,CAAC;QACD,4CAA4C;IAC9C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IACnB,QAAQ,GAAG,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,iCAAiC,CAAC;QAClD,KAAK,iBAAiB;YACpB,OAAO,MAAM,CAAC,2FAA2F,CAAC;QAC5G,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,8BAA8B,GAAG,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QAChF,KAAK,2BAA2B;YAC9B,OAAO,MAAM,CAAC,iCAAiC,GAAG,CAAC,QAAQ,CAAC,GAAG,mFAAmF,CAAC,mBAAmB,CAAC;QACzK,KAAK,mBAAmB;YACtB,OAAO,MAAM,CAAC,oCAAoC,GAAG,CAAC,QAAQ,CAAC,GAAG,kFAAkF,CAAC,oBAAoB,CAAC;QAC5K,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,4BAA4B,GAAG,CAAC,QAAQ,CAAC,SAAS,wDAAwD,CAAC,yDAAyD,CAAC;QACrL,KAAK,gCAAgC;YACnC,OAAO,MAAM,CAAC,yHAAyH,CAAC;QAC1I,KAAK,sBAAsB;YACzB,OAAO,MAAM,CAAC,kHAAkH,CAAC;QACnI,KAAK,mBAAmB;YACtB,OAAO,MAAM,CAAC,2FAA2F,CAAC;QAC5G,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,uGAAuG,CAAC;IAC1H,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACtC,OAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sDAAsD,CAAC,GAAG,IAAI,CAAC,CAAC;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,qBAAqB,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,CAAC,eAAe,CAAC,WAAW,OAAO,GAAG,CAAC,eAAe,IAAI,CAC/L,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -2,7 +2,7 @@ import { type RustBridgeLike } from "../desktop/desktop-doctor-checks.js";
2
2
  import { classifyPortOccupier } from "./chrome-status.js";
3
3
  import { type StealthProfileName } from "../browse/stealth-profiles.js";
4
4
  import type { McpClient } from "../subprocess/McpClient.js";
5
- export declare const LASSO_VERSION = "1.23.0";
5
+ export declare const LASSO_VERSION = "1.24.0";
6
6
  export interface DoctorCheck {
7
7
  name: string;
8
8
  status: "pass" | "fail" | "warn";
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/doctor/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/doctor/doctor.ts"],"names":[],"mappings":"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"}
@@ -148,7 +148,7 @@ import { probeCreepjs } from "./creepjs-probe.js";
148
148
  import { defaultHeadlessProfileForHost } from "../browse/stealth-profiles.js";
149
149
  const execFileP = promisify(execFile);
150
150
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
151
- export const LASSO_VERSION = "1.23.0";
151
+ export const LASSO_VERSION = "1.24.0";
152
152
  // ============================================================
153
153
  // runDoctor
154
154
  // ============================================================
@@ -559,8 +559,17 @@ function nextStepTextForClassification(res) {
559
559
  return `端口 ${port} 空闲(TCP 主动拒连):可 \`lasso-mcp launch-chrome --port ${port}\``;
560
560
  case "lasso_launching":
561
561
  return `端口 ${port} 的 lasso Chrome 仍在慢启动宽限窗(台账记录 <60s;launch 时刻不代 kill——会误杀慢启动 Chrome):等待 ≥60s 后重跑 doctor 或 \`lasso-mcp chrome-status --port ${port}\`;永不 kill(never_kill_user_asset)`;
562
- case "lasso_live":
563
- return `端口 ${port} 是 lasso 台账在案且健康的 Chrome(pid ${pid},CDP 可达):正常使用即可`;
562
+ case "lasso_live": {
563
+ // BUG-06 决议 B(doc/bugs/06):超龄观察行——数据来自 chrome-status 单一真源
564
+ // (evidence.hard_cap_watch,attachHardCapWatch 命中才在场),doctor 纯渲染
565
+ // 不自算(既有 A4 分工不变)。12h 幽灵事故在 24h cap 下的新形态 = 持续 warn
566
+ // + 到顶自动收——「可发现可关闭」宪法闭环。
567
+ const w = res.evidence.hard_cap_watch;
568
+ const watchNote = w
569
+ ? `;硬顶超龄观察:无活动已达上限的 ${Math.round(w.ratio * 100)}%(${Math.round(w.idle_for_ms / 60_000)} 分钟 / ${Math.round(w.cap_ms / 3_600_000)}h 上限),预计 ${new Date(w.reap_at_epoch_ms).toISOString()} 无活动将自动回收——在用即续命(lasso browse 自动 / 外部消费者 \`touch ~/.cache/lasso/chrome-touch-${port}\`),用户本人随时可 \`lasso-mcp chrome-stop --port ${port}\``
570
+ : "";
571
+ return `端口 ${port} 是 lasso 台账在案且健康的 Chrome(pid ${pid},CDP 可达):正常使用即可${watchNote}`;
572
+ }
564
573
  case "ledger_zombie_collectible":
565
574
  return `端口 ${port} 被 lasso 台账在案的自家 Chrome(pid ${pid},疑似 CDP 挂死;归属验证通过、非用户拥有、非慢启动)占用:先 \`lasso-mcp chrome-stop --zombie-gate --port ${port}\` 清僵尸(kill 时刻重估用户认领门),再 \`lasso-mcp launch-chrome --port ${port}\`;完整证据面跑 \`lasso-mcp chrome-status --port ${port}\``;
566
575
  case "ledger_user_owned":