browser-trace

3周前发布 6 0 0 0

browserbase/skills#browser-trace

Skill 安装

多 Agent 安装
npx skills add https://github.com/browserbase/skills --skill browser-trace

使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。

Skill 调研报告

browserbase/skills#browser-trace

Skill 更新日志

版本列表
无版本号
更新技能以使用经过验证的 Browserbase 会话 (#106)
无版本号
docs: 将 bb/browse-cli 引用重命名为统一的 browse CLI (#111) * docs: 将 bb/browse-cli 引用重命名为统一的 browse CLI `@browserbasehq/cli` (bb) 和 `@browserbasehq/browse-cli` 包 已合并为单一的 `browse` 包(`npm install -g browse`)。 更新所有技能文档、脚本和示例以使用新的命令 接口: - `bb fetch|search|sessions|projects|contexts|extensions` → `browse cloud ...` - `bb functions ...` → `browse functions ...` - `bb templates ...` → `browse templates ...` - `bb skills install` → `browse skills install` - `bb browse ` → 顶层 `browse ` (open, get, click, …) - `pnpm bb dev|publish` → `browse functions dev|publish` - `# bb call N/TOTAL` 强制注释 → `# browse call N/TOTAL` - extract_page.mjs 中的 `bbFetch`/`bbBrowseMarkdown` 辅助函数已重命名并 重构为调用新的 `browse cloud fetch` / `browse get markdown` 接口。 - bb-capture.mjs / bb-finalize.mjs 通过 shell 调用 `browse cloud sessions ...` SDK 变量名(`const bb = new Browserbase()`)和 `x-bb-api-key` HTTP 头保持不变。 Co-Authored-By: Claude Opus 4.7 (1M context) * fix: 使 browse 命令示例与 0.6 保持一致 * docs: 注明已弃用的 context 上传刷新 * docs: 阐明 trace 示例中 cdp 标志的用法 * docs: 在 trace 示例中依赖 cdp 守护进程持久化 * docs(browser-trace): 在后续命令中去掉多余的 target 标志 browse 守护进程在第一条命令后会缓存 target,因此 在 `browse open --cdp 9222`(或 `--remote --session "$SID"`)之后的命令 无需重复 target 标志。回应 PR #111 审查意见中 关于 EXAMPLES.md 中 `--cdp` 重复的问题。 Co-Authored-By: Claude Opus 4.7 (1M context) * docs: 阐明 cdp 守护进程行为 * fix(extract_page): 在 `browse get` 上去掉多余的 --local --headless browse 守护进程在 `browse open --local --headless` 后会缓存 target, 因此后续的 `browse get markdown` 调用不应重复模式标志。 与 skills/browser/SKILL.md 的约定一致(“将 --local、--remote、 --auto-connect 或 --cdp 放在第一条浏览器命令上”),也与 Shrey 在 5468e0e 中对 browser-trace 应用的相同修复一致。 回应 PR #111 上的 Cursor Bugbot 发现。 Co-Authored-By: Claude Opus 4.7 (1M context) * docs: 对齐 browse 生命周期示例 * docs: 移除过时的 fill 标志引用 * docs: 收紧 browse 技能迁移措辞 * docs: 阐明 browse stop 模式切换 * docs: 验证 browse 命令注意事项 --------- Co-authored-by: Claude Opus 4.7 (1M context) Co-authored-by: Shrey Pandya
无版本号
添加 browser-trace 技能 (#83) * 添加 browser-observability 技能 在任何浏览器自动化(browse、Stagehand、Playwright、Puppeteer ——任何支持 CDP 的工具)旁边捕获完整的 CDP 数据流以及定期截图和 DOM 转储, 然后将流按顶级导航切分为每页可搜索的桶。 该技能纯粹是观察性的:它添加第二个 CDP 客户端, 启用只读域(Network、Console、Runtime、Log、Page), 并且从不发送操作命令,因此它可以附加到正在进行的自动化 而不干扰它。 在 .o11y// 下生成的布局: manifest.json, index.jsonl cdp/raw.ndjson 完整数据流,NDJSON cdp/summary.json {sessionId, duration, totalEvents, pages[]} cdp//... 会话范围的桶 cdp/pages// 每页切片,由 Page.frameNavigated 索引 summary.json, raw.jsonl, network/, console/, page/, ... screenshots/.png, dom/.html browserbase/ 在远程运行时由 bb-finalize.sh 添加 脚本(纯 bash + jq,除现有 browse CLI 外无 Python/Node 依赖): start-capture.sh / stop-capture.sh / snapshot-loop.sh bisect-cdp.sh — 将 raw.ndjson 拆分为会话范围和每页桶, 写入结构化 summary.json query.sh — 下钻辅助工具:list、page [bucket]、errors、 hosts、host 、timeline、summary bb-capture.sh / bb-finalize.sh — Browserbase 包装器;bb-capture 处理 --keep-alive + connectUrl 解析 + 使用 会话 id、区域和实时调试器 URL 标记 manifest;bb-finalize 写入 browserbase/{session.json, logs.json, downloads.zip} 并可选择释放会话 CDP 数据流通过 `browse cdp ` 获取,它以 NDJSON 流式传输 DevTools 协议事件。该命令需要 @browserbasehq/browse-cli alpha 或包含 browserbase/stagehand#1905 的版本;生命周期事件特别需要 browserbase/stagehand#2056。 Co-Authored-By: Claude Opus 4.7 (1M context) * 将 browser-observability 脚本从 bash 转换为 .mjs 镜像 cookie-sync 技能的模式:每个脚本变为 Node ESM 模块,使用共享的 scripts/lib.mjs 存放通用辅助函数,以及一个最小的 package.json(无依赖——纯 Node 标准库,因此无需 `npm install` 步骤)。 scripts/lib.mjs 共享辅助函数、BUCKETS 表、isTopNav scripts/start-capture.mjs 启动分离的 `browse cdp` + 采样器 scripts/snapshot-loop.mjs 截图+DOM+url 轮询循环(内部) scripts/stop-capture.mjs SIGTERM+宽限+SIGKILL,清理 .partials scripts/bisect-cdp.mjs 页面感知的切分 + 结构化 summary.json scripts/query.mjs 下钻:list/page/errors/hosts/host/timeline scripts/bb-capture.mjs Browserbase 包装器(--new 或按 id 附加) scripts/bb-finalize.mjs 拉取 session.json/logs.json/downloads.zip 输出布局、每页切分逻辑、summary.json 结构以及 query.mjs 子命令与 bash 版本完全相同。SKILL.md、 REFERENCE.md 和 EXAMPLES.md 已更新为调用 `node scripts/foo.mjs` 而不是 `bash scripts/foo.sh`。 已针对 Browserbase 会话和保存的 /Users/d/Desktop/browserbase/o11y-demo-1 运行进行了端到端自测——页面切分、 持续时间、错误归因、主机计数均与 bash 输出匹配。 Co-Authored-By: Claude Opus 4.7 (1M context) * 将 browser-observability 重命名为 browser-trace 更短、更面向动作的名称,作为斜杠命令读起来更清晰, 并与 autobrowse 技能自然搭配(后者可以将 trace 输出用作其循环的结构化“刚刚发生了什么”数据)。 重命名: - skills/browser-observability/ → skills/browser-trace/ - SKILL.md frontmatter `name`、文档 H1、package.json name - marketplace.json 插件条目(name、skills 路径、description、keywords) - README.md 技能表行 - 全文将“observer”改为“tracer”以与新名称保持一致 无行为变更——所有脚本接口、输出布局、summary.json 结构以及 query.mjs 子命令均未改变。 Co-Authored-By: Claude Opus 4.7 (1M context) * 回应 browser-trace 上的 Cursor Bugbot 审查 修复 PR #83 上标记的三个问题: - query.mjs cmdTimeline:之前会先打印每个导航,然后打印每个 生命周期事件,因此所有 `[NAV …]` 行都挤在任何 `[init]`/`[load]` 行之前。现在直接读取 cdp/raw.ndjson,并按实际流顺序 输出顶级 frameNavigated 和生命周期事件。 - query.mjs cmdHost:之前使用 `url.startsWith('https://' + hostname)`, 当用户请求 `api.example.com` 时,会匹配 `https://api.example.com.evil.tld/...`。 已通过一个小型 `hostMatches` 辅助函数切换为精确的 `new URL(url).hostname` 比较。 - query.mjs:移除了未使用的 `emitJsonl` 辅助函数(已定义但从未 调用——与 Bugbot 针对 bash 版本 `cat_bucket_across` 提出的 同类死代码问题)。 Bugbot 还标记了 bash bb-capture.sh 的 `| grep ... || true`,它会 静默吞掉 start-capture 失败。.mjs 版本已通过 `if (start.status !== 0) process.exit(...)` 正确处理此问题, 因此那里无需更改。 Co-Authored-By: Claude Opus 4.7 (1M context) * 修复 Console 域桶 + 对齐 hosts/host 端口处理 来自 PR #83 上 Cursor Bugbot 的另外两个问题: 1. Console 错误和警告被静默地从 每页摘要中丢弃。computePageSummary 通过 `method.split('.')[0]` 对每个事件分类,这会将 Runtime.consoleAPICalled 事件 放入 `Runtime` 桶——但这些事件中的错误/警告 被记录在键 `Console` 下。输出循环遍历 `counts.entries()` 并按该域键查找错误/警告, 因此 Console 错误/警告从未进入汇总。 添加了一个 `domainFor(method)` 辅助函数,对于 `Runtime.consoleAPICalled` 返回 'Console',否则返回标准的 `method.split('.')[0]`。现在与 SKILL.md 中记录的 模式匹配。 2. cmdHosts 按 `URL.host`(包含端口)分组,但 cmdHost 与 `URL.hostname`(去除端口)比较,因此当存在端口时,`hosts` 输出 无法管道传入 `host`。已将 `hostMatches` 切换为 `URL.host` 以保持一致。冒名保护 (对 `example.com` 查询拒绝 `example.com.evil.tld`) 通过精确相等检查得以保留。 已针对 /Users/d/Desktop/browserbase/o11y-demo-1 验证:每个页面 现在都显示 Console + Runtime 作为不同的域块;第 4 页 (httpbin/418) 正确地将 418 状态归因于 Log 错误。 Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context)

暂无评论

none
暂无评论...