mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-08-01 16:43:37 +08:00
4.5 KiB
4.5 KiB
项目结构
本项目包含 CLI/TUI、本地 Server、Electron 桌面端、IM Adapter 和文档站。下面只列稳定的职责边界;具体文件以当前源码为准。
.
├── bin/
│ └── claude-haha # CLI 启动脚本
├── preload.ts # Bun preload 与构建期兼容入口
├── package.json # 根项目脚本和依赖
├── src/
│ ├── entrypoints/
│ │ └── cli.tsx # CLI 主入口
│ ├── main.tsx # TUI 主流程
│ ├── setup.ts # 启动初始化
│ ├── screens/ # REPL 等终端界面
│ ├── components/ # Ink UI 组件
│ ├── tools/ # Bash、Edit、Grep 等 Agent 工具
│ ├── commands/ # 斜杠命令
│ ├── services/ # Provider、MCP、OAuth 等共享服务
│ ├── utils/ # 运行时工具与 Computer Use 集成
│ ├── vendor/ # 受控的 vendored 实现
│ └── server/
│ ├── index.ts # Bun.serve HTTP/WebSocket 入口
│ ├── router.ts # REST 资源路由
│ ├── api/ # API 边界
│ ├── services/ # 会话、Provider、索引、诊断等服务
│ ├── ws/ # WebSocket 协议和生命周期
│ ├── proxy/ # Provider 协议转换
│ ├── middleware/ # Auth 与 CORS
│ └── config/ # Provider 预设
├── desktop/
│ ├── src/ # React Renderer
│ │ ├── api/ # Server API / WebSocket 客户端
│ │ ├── components/ # Chat、Workspace、Browser、布局组件
│ │ ├── features/ # Pets 等独立功能
│ │ ├── pages/ # 会话、设置、任务、诊断等页面
│ │ ├── stores/ # Zustand 状态
│ │ ├── i18n/ # 桌面多语言
│ │ └── lib/ # Renderer 运行时工具
│ ├── electron/
│ │ ├── main.ts # Electron main 入口
│ │ ├── preload.ts # 主窗口 Host bridge
│ │ ├── preview-preload.ts # 原生预览 bridge
│ │ ├── pet-preload.ts # 宠物窗口 bridge
│ │ ├── ipc/ # IPC channel 与校验
│ │ └── services/ # Sidecar、终端、更新、预览等服务
│ ├── sidecars/
│ │ └── claude-sidecar.ts # server / cli / adapters 统一入口
│ ├── scripts/ # 构建、打包和资源准备
│ └── src-tauri/ # 历史代码及现用打包资源;非当前 Host
├── adapters/
│ ├── common/ # 配置、配对、消息与 WS 共享层
│ ├── telegram/
│ ├── feishu/
│ ├── wechat/
│ ├── dingtalk/
│ └── whatsapp/
├── runtime/
│ ├── mac_helper.py # macOS Computer Use helper
│ ├── win_helper.py # Windows Computer Use helper
│ ├── requirements.txt
│ └── requirements-win.txt
├── scripts/ # 根项目质量门禁、发布与维护脚本
├── tests/ # 跨模块测试与测试资源
├── site/ # React 文档站、内容索引与静态构建
└── docs/ # 中英文 Markdown 文档内容
运行边界
| 入口 | 运行时 | 说明 |
|---|---|---|
src/entrypoints/cli.tsx |
Bun | CLI/TUI 与 Agent 工具 |
src/server/index.ts |
Bun / Bun.serve |
本地 HTTP、WebSocket 与 H5 |
desktop/electron/main.ts |
Electron main | 原生桌面 Host |
desktop/src/ |
Chromium Renderer | React 桌面 UI |
desktop/sidecars/claude-sidecar.ts |
Bun 编译 Sidecar | 打包后的 Server、CLI 与 Adapter 入口 |
adapters/<platform>/ |
Bun Sidecar | 平台消息接入 |
新增代码时应放在拥有该职责的边界内:桌面原生能力进入 desktop/electron/,共享业务 API 进入 src/server/,IM 平台差异进入 adapters/<platform>/,不要在 Renderer 中绕过这些边界。