f7a720204a
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
4.4 KiB
4.4 KiB
项目结构
这是 NomiFun 的当前仓库地图。后端分层详见
../architecture/backend-crates.md,运行时总览见
../architecture/overview.md。
顶层布局
nomifun-tauri/
├── apps/
│ ├── web/ nomifun-web:独立 Web/API host
│ └── desktop/ nomifun-desktop:Tauri 桌面壳
├── crates/
│ ├── agent/ 15 个 nomi-* crate,AI agent 引擎
│ ├── backend/ 29 个 nomifun-* crate,HTTP/WS 后端
│ └── shared/ 2 个真正跨层共享 crate
├── ui/ React SPA,Vite + UnoCSS,唯一 Bun workspace
├── docs/ 当前文档、历史设计、审计与归档说明
├── packaging/linux/ nomifun-web systemd unit 与部署说明
├── Cargo.toml Rust workspace
├── package.json Bun/Tauri/Cargo 入口脚本
├── Dockerfile nomifun-web 容器镜像
├── docker-compose.yml Web host compose 示例
├── Caddyfile 可选 TLS reverse proxy
├── README.md
└── STATUS.md
Cargo workspace 当前成员:
members = ["crates/agent/*", "crates/backend/*", "crates/shared/*", "apps/web", "apps/desktop"]
App Host
| 路径 | Binary | 职责 |
|---|---|---|
apps/web |
nomifun-web |
独立 Web/API host。进程内启动 nomifun-app,同端口提供 API、WebSocket 和 SPA。默认开启登录;--insecure-no-auth 仅供可信本地开发。 |
apps/desktop |
nomifun-desktop |
Tauri 桌面壳。进程内启动同一个后端,选择空闲 localhost 端口,注入 window.__backendPort 与 window.__nomiLocalTrust,WebView 通过本地信任 token 访问后端。 |
两个 host 都直接链接 nomifun-app。nomicore 仍作为 nomifun-app 的独立
binary 存在,用于诊断、stdio MCP bridge、公开能力调用和无头场景;桌面/Web host
不会 spawn 它。
Crate 分组
| 目录 | 前缀 | 数量 | 职责 |
|---|---|---|---|
crates/agent/ |
nomi-* |
15 | AI agent 引擎,尽量保持独立。 |
crates/backend/ |
nomifun-* |
29 | HTTP/WS 后端、数据层、认证、会话、cron、knowledge、terminal、companion、public gateway 等。 |
crates/shared/ |
mixed | 2 | 真正跨 agent/backend 使用的共享工具。 |
Agent 层接缝
后端代码需要 agent 类型或执行能力时,默认应通过
crates/backend/nomifun-ai-agent。
它再导出常用的 nomi_config、nomi_types 和 RequirementSink。
当前 workspace 仍存在少数 feature-gated 直接依赖例外:nomifun-app 与
nomifun-gateway 为 browser/computer-use bridge 工具直接触达部分 nomi-*
crate。新增后端 crate 时不要随手添加 nomi-* 依赖;若确实是 bridge/facade
例外,需要用 feature gate 并在架构文档中说明。
关键目录
| 路径 | 内容 |
|---|---|
ui/src/common/ |
跨 host 的 API client、类型、adapter、工具函数。 |
ui/src/platform/ |
host bridge:storage、logger、theme、平台能力。 |
ui/src/renderer/ |
页面、组件、hooks、服务、样式和 renderer 入口。 |
ui/src/common/utils/shims/ |
renderer-safe 兼容 shim 与构建别名目标。 |
docs/getting-started/ |
安装与首次运行。 |
docs/guides/ |
用户任务指南。 |
docs/architecture/ |
当前架构说明。 |
docs/reference/ |
配置、API、FAQ、troubleshooting。 |
制品位置
| 构建 | 输出 |
|---|---|
bun run build:ui |
ui/dist/ |
cargo build -p nomifun-web |
target/<profile>/nomifun-web |
cargo build -p nomifun-app --bin nomicore |
target/<profile>/nomicore |
bun run build |
target/<profile>/bundle/<format>/... |
docker compose build |
本地镜像 nomifun-web:local |
更多打包细节见 building-and-packaging.zh.md。