整体架构
四层架构
┌─────────────────────────────────────────────────────────────────────┐
│ 应用层 (Application Layer) │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ xbrowser │ │ Other Apps │ │ Custom Apps │ │
│ │ Browser CLI │ │ Database CLI │ │ API Tools │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
└───────────┼───────────────────┼───────────────────┼────────────────┘
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────┐
│ 框架层 (Framework Layer) │
│ ┌─────────────────────────────┐ │
│ │ @dyyz1993/xcli-core │ │
│ │ Plugin System / Command │ │
│ │ Scope / Session / Daemon │ │
│ │ WebSocket / Scaffolding │ │
│ └──────────────┬──────────────┘ │
└───────────────────────────┼───────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 引擎层 (Engine Layer) │
│ ┌─────────────────────────┐ ┌─────────────────────────────┐ │
│ │ @dyyz1993/xpage (mpage)│ │ Playwright │ │
│ │ Command Execution │ │ Browser Launch / CDP │ │
│ │ Recording/Playback │ │ Page Management │ │
│ │ Structure / A11y │ │ Element Interaction │ │
│ └─────────────────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 浏览器层 (Browser Layer) │
│ ┌─────────────────────────┐ ┌─────────────────────────────┐ │
│ │ Chromium │ │ Chrome │ │
│ │ CDP / Headless │ │ Remote Debugging │ │
│ └─────────────────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘关键架构决策
为什么三个独立项目?
| 项目 | 关注点 | 面向 |
|---|---|---|
| @dyyz1993/xpage | 浏览器自动化引擎 | 库开发者 |
| @dyyz1993/xcli-core | CLI 框架 | CLI 工具开发者 |
| xcli-browser | 端到端浏览器 CLI | 终端用户 |
依赖关系
- xcli-core 可以完全脱离浏览器独立使用
- mpage 不依赖 xcli-core
- xcli-browser 是桥接层,粘合两者
xcli-core 内部分层
┌─────────────────────────────────────────────────────┐
│ Core 入口层 │
│ Core 类: 命令路由、参数解析、帮助生成、版本管理 │
├─────────────────────────────────────────────────────┤
│ 插件协议层 │
│ XCLIAPI / SiteInstance / CommandContext │
├─────────────────────────────────────────────────────┤
│ 功能模块层 │
│ PluginLoader / ScaffoldEngine / SessionManager │
│ ScopeRegistry / OutputFormatter / HelpGenerator │
├─────────────────────────────────────────────────────┤
│ 基础设施层 │
│ Daemon / WorkerManager / HTTP Server / WS Server │
│ PluginStorage / IPC / ArgParser │
└─────────────────────────────────────────────────────┘