Skip to content

feat: probe-cli — Site Archaeology 自动化工具#46

Open
RachelXiaolan wants to merge 1 commit into
better-world-ai:mainfrom
RachelXiaolan:probe-cli
Open

feat: probe-cli — Site Archaeology 自动化工具#46
RachelXiaolan wants to merge 1 commit into
better-world-ai:mainfrom
RachelXiaolan:probe-cli

Conversation

@RachelXiaolan

Copy link
Copy Markdown
Contributor

💡 背景

在做 fish-audio-cli 的时候,我发现 Site Archaeology(站点考古)阶段花了大约 60-80 分钟,是整个 CLI 开发过程中最耗时的环节。主要是手动 curl 6 步协议来探测认证方式、抓网络请求、分析 DOM 结构。

这个 PR 提议新增一个 probe-cli 工具,把这套手动流程自动化。

🔍 probe-cli 做什么

给定任意 URL,自动完成:

  1. 认证检测 — 扫描 localStorage / sessionStorage / cookie,识别 Bearer / CSRF / Cookie-only 等模式
  2. DOM 提取 — 找到所有 forms、inputs、buttons 及其选择器
  3. 网络分析 — 捕获 XHR/Fetch 请求,过滤静态资源,检查 auth headers
  4. 模式推荐 — 自动判断最佳 CLI 模式(dom-scrape / api-reverse / form-submit / async-poll)
  5. 输出 site profile JSON — Agent 拿到后可以直接跳到 Phase 4(实现)

📐 跟 Site Archaeology 协议的对应

协议步骤 probe-cli 自动化
Step 1: Navigate ✅ 自动导航
Step 2: Snapshot ✅ 自动提取 DOM 元素
Step 3: Start network ✅ 导航前自动启动
Step 4: Stop + list ✅ 页面加载后自动停止
Step 5: Inspect detail ✅ 自动分析 auth headers
Step 6: Verify evaluate ✅ 认证模式检测 + 推荐

🚀 用法

# 全量探测(auth + DOM + network)
probe-cli https://example.com

# 快速模式(跳过网络捕获)
probe-cli https://example.com --quick

输出标准 JSON site profile,可以直接喂给 agent-cli-creator 的 Phase 4。

🏗️ 架构

完全遵循 x-cli 的约定:Go + Cobra,复用 browser/client.go 模板,标准 output/output.go JSON 输出。

probe-cli/
├── main.go              # 入口
├── browser/client.go    # kimi-webbridge 客户端
├── output/output.go     # JSON 标准输出
├── probe/
│   ├── probe.go         # 6 阶段流水线编排
│   ├── auth.go          # 认证检测
│   ├── dom.go           # DOM 元素提取
│   ├── network.go       # 网络捕获 + 分析
│   └── pattern.go       # 模式打分 + 推荐
├── cmd/root.go          # Cobra CLI
└── README.md

💭 设计考虑

  • probe-cli 本身也是一个 x-cli 生态的 CLI,所以架构完全一致
  • auth 检测用的 JS 是注入到浏览器执行的,利用用户的真实登录态
  • network 捕获在 navigate 之前启动,确保不遗漏页面加载请求
  • 静态资源(.js/.css/图片等)自动过滤,只关注 XHR/Fetch API
  • 模式打分是加权评分,不是硬编码规则

⚠️ 局限性

  • 依赖 kimi-webbridge daemon 运行
  • 对于 SPA 页面,3 秒等待可能不够(可以考虑加 --wait 参数)
  • 异步加载的内容可能需要用户手动触发后再跑一次

欢迎提意见!这个工具如果方向对的话,后续可以考虑集成到 agent-cli-creator 的 SKILL.md 里,让 Agent 自动调用 probe 而不是手动跑 6 步。

probe-cli 自动化 agent-cli-creator 的 Site Archaeology 6 步协议,将手动 30-60 分钟的站点探测缩短为 30 秒自动检测。

功能:
- 自动检测认证方式 (localStorage/cookie/sessionStorage/CSRF)
- 自动提取 DOM 元素 (表单/输入框/按钮)
- 自动捕获网络请求并过滤 XHR/Fetch API
- 自动分析认证 header
- 自动推荐 CLI 模式 (dom-scrape/api-reverse/form-submit/async-poll)
- 输出标准化 JSON site profile
@RachelXiaolan

Copy link
Copy Markdown
Contributor Author

📌 关于 cli-hub 命名冲突

顺便提一下:CLI-Anything 项目里也有一个叫 cli-hub 的工具(Python 包管理器,用于安装 GIMP/Blender 等 GUI 应用的 CLI wrapper)。

虽然两个生态不重叠(CLI-Anything 是 Python GUI wrapper 生态,x-cli 是 Go 网站自动化生态),但如果后续要做一个 x-cli 社区 Hub 的话,命名上可能需要考虑区分一下,避免用户混淆。

比如可以叫 x-hubcli-scannerx-cli-registry 之类的。这个到时候再定就好。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant