OctopusOS 支持平台分析
基于代码中的适配器实现、构建配置和契约定义,分析 OctopusOS 覆盖的全平台矩阵。
1. 服务端平台
生产环境:Ubuntu Linux
代码证据:
docs/milestone_node_v1.md— octopus-os 节点运行 Ubuntukernel/core/orchestration/central_orchestrator.py— 从/proc/meminfo读取内存信息(Linux 特有)- 9 个 systemd 服务单元 — Linux systemd 依赖
支持的主机硬件
| 组件 | 规格 | 代码证据 |
|---|---|---|
| CPU | x86_64(Intel i9-14900) | docs/milestone_node_v1.md |
| GPU | NVIDIA RTX 4060 | NVIDIA 驱动 + CUDA |
| 存储 | NVMe SSD | os.statvfs 磁盘检测 |
运行时环境
| 环境 | 版本要求 | 代码证据 |
|---|---|---|
| Python | ≥ 3.11 | kernel/pyproject.toml |
| Node.js | via nvm | 主机工具链 |
| Docker | 最新 | 容器运行时 |
| Redis | 标准 | :6379 任务队列 |
2. 桌面平台(Tauri + ScreenOS)
2.1 原生应用(Tauri 2.x)
Tauri 通过 Rust 编译为原生二进制,支持三大桌面 OS。
代码证据: products/desktop/package.json
| 平台 | 构建命令 | 输出格式 |
|---|---|---|
| macOS | npm run tauri:build | .dmg / .app |
| Windows | npm run tauri:build | .msi / .exe |
| Linux | npm run tauri:build | .deb / .AppImage |
2.2 ScreenOS 桌面适配器
通过 ScreenPort 抽象,在不同桌面 OS 上使用不同底层自动化技术。
代码证据:
| 平台 | 适配器文件 | 底层技术 | 测试文件 |
|---|---|---|---|
| macOS | ports_impl/screen_desktop/ | pyautogui + Accessibility API | test_screen_desktop_mac_p3.py |
| Windows | ports_impl/screen_desktop/ | UIA (UI Automation) | test_screen_desktop_win_uia.py |
| Linux | ports_impl/screen_desktop/ | pyautogui | test_screen_desktop_integration.py |
2.3 ScreenOS 契约中的平台定义
# kernel/contracts/screen_os.py
# ScreenSnapshot.platform 支持的值
platform: Literal["macos", "windows", "linux", "android", "ios"]
3. 移动平台(Expo + ScreenOS)
3.1 原生应用(React Native / Expo)
代码证据: products/mobile/package.json
| 平台 | 框架 | 版本 |
|---|---|---|
| iOS | React Native 0.79.2 + Expo 53.0.0 | iOS 15+ |
| Android | React Native 0.79.2 + Expo 53.0.0 | Android 6.0+ |
响应式适配
代码证据: products/mobile/App.tsx
| 设备类型 | 断点 | 布局 |
|---|---|---|
| 手机(Portrait) | < 768px | Tab Bar + 全宽内容 |
| 平板(Landscape) | ≥ 768px | Sidebar + Content |
3.2 ScreenOS 移动适配器
代码证据:
| 平台 | 适配器目录 | 底层技术 | 测试文件 |
|---|---|---|---|
| Android | ports_impl/screen_mobile/ | Appium + UiAutomator2 | test_screen_mobile_android_uia2.py |
| iOS | ports_impl/screen_mobile/ | Appium + XCUITest | test_screen_mobile_base.py |
移动端 UI 节点角色
ScreenOS 为移动端定义了专用 NodeRole:
# kernel/contracts/screen_os.py — 移动端角色
NodeRole = Literal[
...,
"activity", # Android Activity
"snackbar", # 移动端通知条
"bottom_sheet", # 底部弹出面板
"fab", # 浮动操作按钮
...
]
移动端操作类型
# kernel/contracts/screen_os.py — 移动端专用操作
ActionType = Literal[
"click", "type_text", "scroll", "drag", # 通用
"tap", # 移动端点击
"swipe", # 移动端滑动
"back", # Android 返回键
"home", # Home 键
]
4. Web 平台
4.1 Web 控制台
代码证据: products/web/
| 维度 | 支持 |
|---|---|
| 浏览器 | Chrome/Firefox/Safari/Edge(现代浏览器) |
| 框架 | React 18.3.1 + TypeScript 5.6.2 |
| 构建 | Vite 5.4.10 |
| 路由 | React Router v6 |
| 测试 | Vitest + jsdom |
4.2 ScreenOS 浏览器适配器
代码证据:
| 适配器 | 文件 | 底层技术 |
|---|---|---|
| Playwright | ports_impl/screen_playwright.py | Playwright Accessibility Tree |
ARIA 角色映射: 40+ ARIA 角色映射到 28 种 NodeRole
# screen_playwright.py
# ARIA role → NodeRole 映射示例
"button" → "button"
"textbox" → "text_field"
"checkbox" → "checkbox"
"dialog" → "dialog"
"menu" → "menu"
"tab" → "tab"
# ... 40+ 映射
5. 终端平台
5.1 CLI 产品
代码证据: products/cli/
| 维度 | 支持 |
|---|---|
| 平台 | 任何 Python 3.11+ 终端 |
| 交互 | argparse + REPL |
| 输出 | ANSI 彩色终端(纯 escape code,无外部依赖) |
| 补全 | Tab 补全(/commands + 角色名) |
| 管道 | --pipe 标志支持非交互模式 |
5.2 TUI 产品
代码证据: products/tui/
| 维度 | 支持 |
|---|---|
| 框架 | Textual(Python 终端 UI) |
| 平台 | 任何支持 ANSI 的终端 |
| 布局 | Header + Footer + Sidebar + Content |
| 导航 | F1-F5 快捷键切换 5 个屏幕 |
| 刷新 | 10 秒自动刷新 |
6. 云平台集成
Capability 包覆盖
代码证据: server/shared/capabilities/ 能力包
| 云平台 | 能力包 | 能力 |
|---|---|---|
| AWS | cloud/aws_inspect | EC2、CloudWatch、Cost、IAM |
| Azure | cloud/azure_inspect | VMs、Resources |
| GCP | cloud/gcp_inspect | Compute、Storage |
| Kubernetes | cloud/kubernetes_inspect | Pods、Services、Deployments |
| IaC | cloud/iac_plan | Terraform Plan |
MCP 云服务器
| 平台 | MCP 服务器数 | 示例 |
|---|---|---|
| AWS | 26 | api, core, s3-tables, eks, lambda, iam, cost-explorer 等 |
| Cloudflare | 1 | cloudflare MCP |
| Docker | 2 | GitHub MCP, Prometheus MCP 镜像 |
云 API 路由
代码证据: server/shared/adapters/http/_routes_cloud.py
GET /api/cloud/aws/ec2/instances # EC2 实例列表
GET /api/cloud/aws/cloudwatch/metrics # CloudWatch 指标
GET /api/cloud/aws/cost/summary # 费用摘要
GET /api/cloud/azure/vms # Azure VM 列表
7. 外部服务平台集成
通信平台
| 平台 | 集成方式 | 代码证据 |
|---|---|---|
| Slack | MCP Server | mcp-catalog.yaml |
| Microsoft Teams | Capability Package + MCP | teams_integration/, _routes_teams.py |
| Notion | MCP Server | mcp-catalog.yaml |
| Twilio | MCP Server | mcp-catalog.yaml |
| LINE | MCP Server | mcp-catalog.yaml |
| Mailgun | MCP Server | mcp-catalog.yaml |
商业平台
| 平台 | 集成方式 | 代码证据 |
|---|---|---|
| Stripe | MCP Server | mcp-catalog.yaml |
| PayPal | MCP Server | mcp-catalog.yaml |
| HubSpot | MCP Server | mcp-catalog.yaml |
| Xero | MCP Server | mcp-catalog.yaml |
| WordPress | MCP Server | mcp-catalog.yaml |
| MCP Server | mcp-catalog.yaml | |
| Sentry | MCP Server | mcp-catalog.yaml |
数据库平台
| 平台 | 集成方式 | 代码证据 |
|---|---|---|
| MongoDB | MCP Server | mcp-catalog.yaml |
| MariaDB | MCP Server | mcp-catalog.yaml |
| Redis | MCP Server + 原生 | 本地 :6379 + MCP |
| PostgreSQL | AWS MCP | awslabs.postgres |
| MySQL | AWS MCP | awslabs.mysql |
| DynamoDB | AWS MCP | awslabs.dynamodb |
| SQLite | 原生 Port 实现 | 6 个 *_sqlite.py 适配器 |
DevOps 平台
| 平台 | 集成方式 | 代码证据 |
|---|---|---|
| GitHub | MCP Server (Docker) | ghcr.io/github/github-mcp-server |
| Terraform | MCP Server | mcp-catalog.yaml |
| Prometheus | MCP Server (Docker) | ghcr.io/pab1it0/prometheus-mcp-server |
8. 安全测试平台
Kali Linux 节点
代码证据: MEMORY.md kali-node.md
| 维度 | 配置 |
|---|---|
| 主机 | (内网节点) |
| OS | Kali Linux |
| 用户 | pangge |
| 服务 | octopus-kali.service (:8001) |
| 角色 | kali-engineer v1.0 |
| 能力 | Kali Linux 工具集(渗透测试、安全评估) |
9. Platform Baseline(21 平台基线)
Kernel 内建了 21 个平台的基线定义,用于技能成熟度评估。
代码证据: kernel/contracts/platform_baseline.py
# PlatformBaseline — 21 个平台,约 230 个服务族
# 每个平台定义核心服务、安全要求、监控需求
| 平台类别 | 预期覆盖 |
|---|---|
| 云提供商 | AWS, Azure, GCP |
| 容器编排 | Kubernetes, Docker Swarm |
| CI/CD | GitHub Actions, GitLab CI, Jenkins |
| 监控 | Prometheus, Grafana, Datadog |
| 数据库 | PostgreSQL, MySQL, MongoDB, Redis |
| 消息队列 | Kafka, RabbitMQ, SQS |
| … | 共计 ~230 服务族 |
10. 平台支持全景图
┌─────────────────────────────────────────────────────────────┐
│ 运行平台 │
│ │
│ 服务端 桌面端 移动端 终端 │
│ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Ubuntu │ │ macOS │ │ iOS │ │ CLI │ │
│ │ Linux │ │ Windows │ │ Android │ │ TUI │ │
│ │ systemd │ │ Linux │ │ Tablet │ │ ANSI │ │
│ └─────────┘ └──────────┘ └──────────┘ └─────────┘ │
│ │
│ Web 平台 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Chrome │ Firefox │ Safari │ Edge │ │
│ │ React 18 + Vite 5 + TypeScript 5.6 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ScreenOS 适配器 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Playwright│ │pyautogui │ │ Appium │ │
│ │(Browser) │ │UIA(Win) │ │UiAuto2 │ │
│ │ARIA Tree │ │A11y(Mac) │ │XCUITest │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 外部平台集成 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 云: AWS(26) │ Azure │ GCP │ K8s │ Terraform │ │
│ │ 通信: Slack │ Teams │ Notion │ Twilio │ LINE │ │
│ │ 商业: Stripe│ PayPal│ HubSpot│ Sentry│ Xero │ │
│ │ 数据: Mongo │ Maria │ Redis │ Postgres│ DynamoDB │ │
│ │ 安全: Kali Linux (内网节点) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘