{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "baoyu-danger-gemini-web",
  "built": "2026-10-26",
  "control_level": 5,
  "control_level_label": "L5 严管",
  "capabilities": [
    "reverse_api",
    "terms_compliance",
    "credential",
    "execute_command",
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "isolated_environment",
      "per_use_authorization"
    ],
    "admin": [
      "strict_authorization",
      "full_audit",
      "compliance_signoff"
    ]
  },
  "evidence": [
    {
      "file": "SKILL.md / 脚本",
      "summary": "Calls undocumented or reverse-engineered private APIs / spoofs client identity"
    },
    {
      "file": "SKILL.md / 脚本参数",
      "summary": "Bypasses automation detection, disables host sandboxes, or skips SSL certificate verification"
    },
    {
      "file": "SKILL.md / 会话存储",
      "summary": "Reads or reuses browser user login states and session cookies"
    },
    {
      "file": "本地凭据 / 浏览器配置",
      "summary": "Reads user login cookies/sessions/keyrings: browser session cookies: __Secure-1PSID / __Secure-1PSIDTS (from local cookies.json or via CDP Network)"
    },
    {
      "file": "scripts/",
      "summary": "Executes local scripts or commands: scripts/main.ts (run with bun; launches or attaches to Chrome debugging sessions on demand)"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: https://gemini.google.com/app (INIT to retrieve SNlM0e token)"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: cookies.json (credential persistence: writes __Secure-1PSID/1PSIDTS)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（换角度抓第一遍的错）：① 全量文件清单核对：scripts/main.ts + gemini-webapi 下 22 个 ts + package.json + bun.lock + client.test.ts，无第二个入口、无混淆/压缩代码（均为可读 TS）；② 端点重扫：constants.ts 的 5 个端点逐个核对用途，另单独 grep 全目录 URL，确认 lh3.googleusercontent.com 等只出现在图像下载/常量处，无未记录的外发域名；③ 凭据面穷举：grep 1PSID/SAPISID/keychain/process.env/Network.getCookies/writeFile，逐条落到 cookie-file.ts、rotate-1psidts.ts、load-browser-cookies.ts、paths.ts 四处证据；④ 反向质询“是否更严重”：检查 rejectUnauthorized/NODE_TLS_REJECT_UNAUTHORIZED/--ignore-certificate（零命中）→ 无 TLS 降级；检查 webdriver/playwright/puppeteer/patchright/blink-features/stealth（零命中）→ 无技术性反自动化伪装；检查是否有批量枚举/爬取循环（无，只有每次调用的 init 重试与 540s cookie 刷新）；⑤ 功能声明核对：description 的 text/image/vision/multi-turn 四项在 main.ts 与 client.ts 均有对应实现，未见夸大。",
    "second_pass": [
      {
        "item": "逆向 API 而非官方 API（red 主因之一）",
        "status": "ok",
        "detail": "constants.ts 直指 gemini.google.com 的 StreamGenerate 私有路径；get-access-token.ts 用正则从页面抓 SNlM0e；SKILL.md/description 自述 reverse-engineered，README 有 Disclaimer 段落。"
      },
      {
        "item": "读取浏览器 cookie（red 主因之二）",
        "status": "ok",
        "detail": "load-browser-cookies.ts 走 CDP（引用 'Network.getCookies'）读 cookie；get-access-token.ts 优先本地 cookie 文件，失败回落 CDP；client.ts 在 init/refresh 两处写 cookie 文件。"
      },
      {
        "item": "CDP 复用已运行 Chrome 调试会话",
        "status": "ok",
        "detail": "SKILL.md 原文与 load-browser-cookies.ts 的 fetch_cookies_from_existing_chrome(30_000, ...) 一致；另有 hasExplicitProfile 判断（设了 --profile-dir 或 GEMINI_WEB_CHROME_PROFILE_DIR 才跳过复用）。"
      },
      {
        "item": "token 落盘",
        "status": "ok",
        "detail": "cookie-file.ts write_cookie_file → writeFile(p, JSON.stringify(payload, null, 2))；rotate-1psidts.ts 另写 .cached_1psidts_<sid>.txt。paths.ts 默认数据目录可用 GEMINI_WEB_DATA_DIR/GEMINI_WEB_COOKIE_PATH 覆盖。"
      },
      {
        "item": "无 TLS 降级 / 无 stealth 反检测 / 无任意代码执行",
        "status": "ok",
        "detail": "grep rejectUnauthorized / NODE_TLS / --ignore-certificate 与 webdriver / patchright / blink-features 均零命中；无 eval/new Function/远程脚本加载；Chrome 以本机真实 profile 启动（--remote-debugging-port），未做指纹伪装。"
      },
      {
        "item": "consent 门禁存在但为“软门禁”",
        "status": "ok",
        "detail": "SKILL.md 要求先建 consent.json 再使用；但门禁由 agent 按文档执行，脚本自身不校验该文件——属文档级约束，已在 risks 写明。"
      },
      {
        "item": "meta 元数据",
        "status": "ok",
        "detail": "GitHub API：MIT、25926 stars、pushed_at 2026-09-10T15:13:43Z；本地 HEAD 与 pin 1567581c26ec… 一致。"
      }
    ],
    "level": 2,
    "level_label": "V2 已复核",
    "commit": "1567581c26ec29f4216c6e6835415bf30343b0e3",
    "sha256": "076923f8aed801817e5e57dada02b922ceb0abd2568e6efdfc1042aa29d875dc",
    "reviewed_by": "skills-bayx-audit",
    "reviewed_at": "2026-10-25"
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-09-15/baoyu-danger-gemini-web.tar.gz",
    "sha256": "076923f8aed801817e5e57dada02b922ceb0abd2568e6efdfc1042aa29d875dc",
    "commit": "1567581c26ec29f4216c6e6835415bf30343b0e3"
  },
  "original": {
    "github": "https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-danger-gemini-web",
    "path": "skills/baoyu-danger-gemini-web",
    "commit": "1567581c26ec29f4216c6e6835415bf30343b0e3"
  }
}