0.3.3 外网下载修复

This commit is contained in:
liaibo
2026-01-21 18:21:10 +08:00
parent f13de35321
commit 71de56850b
45 changed files with 2499 additions and 476 deletions
+51 -79
View File
@@ -2,94 +2,66 @@
本文用于后续开发“快速定位入口/职责/调用链”,按目录与功能点整理。路径以仓库根目录为基准。
## 关键事实(防止误判)
- **当前已使用 Convex 完全替换 Supabase**:数据读写、鉴权与权限控制以 Convex 为主线。
- 仓库内若仍出现 `supabase/``supabase.md``wolai-frontend/src/lib/supabase/``wolai-backend/app/services/supabase_rest.py` 等,均应视为**历史遗留**(除非任务明确要求,否则不要继续扩展)。
## 启动链路与关键入口
- 一键启动脚本:`scripts/desktop-hot.js`(启动 `wolai-frontend` + `wolai-backend`Redis 可用时启动 Celery)。
- 前端入口(Next App Router):
- 根布局`wolai-frontend/src/app/layout.tsx`创建 Supabase Server Client注入 `SupabaseProvider`/`QueryProvider`)。
- 首页跳转:`wolai-frontend/src/app/page.tsx`(未登录跳 `/login`;确保默认工作区;跳转首个文档或创建“新页面”)
- 后端入口(FastAPI):`wolai-backend/app/main.py`(挂载 `root_router``/api/v1``api_router`
- 一键启动脚本:`scripts/desktop-hot.js`(启动 `wolai-frontend` + `wolai-backend`Redis 可用时启动 Celery)。
- 前端入口(Next.js App Router):`wolai-frontend/src/app/layout.tsx`(注入 runtime config;挂载 Convex provider)。
- 运行期配置`wolai-frontend/src/lib/runtime-config.ts`读取 env / public 配置并注入 `window.__MNOTE_RUNTIME_CONFIG__`)。
- Convex 自托管(基础设施):`infra/convex/docker-compose.yml``infra/convex/README.md`
- Convex functions(后端逻辑/数据模型):`wolai-frontend/convex/`
- 后端入口(FastAPI):`wolai-backend/app/main.py`(辅助能力与集成服务,例如 OCR / OnlyOffice 等)。
## 前端(wolai-frontend
### 页面路由(App Router
- 登录`wolai-frontend/src/app/(auth)/login/page.tsx`
- 主应用布局:`wolai-frontend/src/app/(app)/layout.tsx`(组装侧边栏数据:workspaces、documents、trash、media、mindmap 资产等)
- 文档页:`wolai-frontend/src/app/(app)/documents/[id]/page.tsx`(读取 documents 表的标题/选项/统计,渲染 `DocumentShell`
- 思维导图全屏页:`wolai-frontend/src/app/mindmap/[docId]/[mindmapId]/page.tsx`
- 在线表格页`wolai-frontend/src/app/tables/[tableId]/view/page.tsx`
- OnlyOffice 页:`wolai-frontend/src/app/onlyoffice/page.tsx`
- 调试页:
- AI Agent`wolai-frontend/src/app/dev/ai-agent/page.tsx`
- Mindmap`wolai-frontend/src/app/dev/mindmap/page.tsx`
- 登录/鉴权`wolai-frontend/src/app/(auth)/`(如 `wolai-frontend/src/app/(auth)/auth/page.tsx`)。
- 主应用布局:`wolai-frontend/src/app/(app)/layout.tsx`
- 文档页:`wolai-frontend/src/app/(app)/documents/[id]/page.tsx`
- 思维导图全屏页:`wolai-frontend/src/app/mindmap/[docId]/[mindmapId]/page.tsx`
- OnlyOffice`wolai-frontend/src/app/onlyoffice/`
- 调试页:`wolai-frontend/src/app/dev/`AI Agent / Mindmap 等)。
### APINext Route Handlers
这些接口基本承担“鉴权 + 读写 Supabase + 返回前端”的 BFF 职责:
- 文档:`wolai-frontend/src/app/api/documents/*/route.ts`
- content/title/options/save/create/duplicate/move/delete/restore/purge/stats/copy-tree/...
- 思维导图:`wolai-frontend/src/app/api/mindmap/**/route.ts`
- `api/mindmap/[docId]/route.ts``api/mindmap/[docId]/[mindmapId]/route.ts``api/mindmap/[docId]/[mindmapId]/ops/route.ts`
- `api/mindmap/[id]/route.ts`(按 id 的路由分支)
- 思维导图 AI`wolai-frontend/src/app/api/mindmap-ai/*/route.ts`
- `agent` / `assets` / `expand-node` / `outline-to-mindmap` / `test-pdf`
- 媒体/附件:`wolai-frontend/src/app/api/media/*/route.ts`
- upload/sign/signed-url/assets/batch/ocr/empty-trash/purge
- AI Agent(统一入口)`wolai-frontend/src/app/api/ai-agent/run/route.ts`
- 负责:加载在线/本地模型配置、构建 tool registry、按 scope 过滤工具、SSE 流式返回
- 后端探活转发:`wolai-frontend/src/app/api/backend/health/route.ts`
- 其它:`wolai-frontend/src/app/api/search/*``wolai-frontend/src/app/api/sidebar/route.ts``wolai-frontend/src/app/api/workspaces/switch/route.ts` 等。
### APINext Route Handlers / BFF
这些接口承担“鉴权 + 调用 Convexquery/mutation/action+ 返回前端”的 BFF 职责:
- 文档相关`wolai-frontend/src/app/api/documents/*/route.ts`
- 思维导图相关:`wolai-frontend/src/app/api/mindmap/**/route.ts`
- 思维导图 AI`wolai-frontend/src/app/api/mindmap-ai/*/route.ts`
- 媒体/附件:`wolai-frontend/src/app/api/media/*/route.ts`
- AI Agent 统一入口:`wolai-frontend/src/app/api/ai-agent/run/route.ts`
- OnlyOffice 代理`wolai-frontend/src/app/api/onlyoffice/proxy/route.ts`
### Convex(前端接入层)
- Convex React Provider`wolai-frontend/src/components/providers/convex-provider.tsx`
- Convex API/Client 封装`wolai-frontend/src/lib/convex/`(如 `api.ts``route.ts``server.ts``enabled.ts`)。
- SidebarConvex 数据来源):`wolai-frontend/src/hooks/use-convex-sidebar-data.ts``wolai-frontend/src/components/sidebar/sidebar.tsx`
### 编辑器与核心 UI
- 文档壳(客户端动态加载编辑器)`wolai-frontend/src/components/editor/document-shell.tsx`
- 文档内容(核心编辑/保存/选项/历史/AI 面板)`wolai-frontend/src/components/editor/document-content.tsx`
- BlockNote 编辑器:`wolai-frontend/src/components/editor/blocknote-editor.tsx`
- Block 级功能(重点在思维导图/媒体/表格):
- 思维导图 Block`wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx`
- 思维导图侧栏/工具栏:`wolai-frontend/src/components/editor/blocks/MindmapSidebar.tsx``wolai-frontend/src/components/editor/blocks/MindmapToolbar.tsx`
- AI Agent 面板:`wolai-frontend/src/components/editor/blocks/MindmapAiAgentPanel.tsx``wolai-frontend/src/components/editor/DocumentAiAgentPanel.tsx`
- 侧边栏(文件树/回收站/资源):`wolai-frontend/src/components/sidebar/sidebar.tsx``wolai-frontend/src/components/sidebar/file-tree.tsx`
- 文档壳:`wolai-frontend/src/components/editor/document-shell.tsx`
- 文档内容:`wolai-frontend/src/components/editor/document-content.tsx`
- BlockNote 编辑器:`wolai-frontend/src/components/editor/blocknote-editor.tsx`
- 思维导图 Block`wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx`
- 侧边栏`wolai-frontend/src/components/sidebar/`
### 状态与业务库(lib/store
- Supabase 客户端封装`wolai-frontend/src/lib/supabase/{client.ts,server.ts,admin.ts}`
-作区与侧边栏数据`wolai-frontend/src/lib/workspaces.ts``wolai-frontend/src/lib/sidebar-tree.ts`
- 文件树算法与单测:`wolai-frontend/src/lib/file-tree/*``*.test.ts` 是 Vitest 单测入口之一)
- 思维导图存储/操作:`wolai-frontend/src/lib/mindmap/*``wolai-frontend/src/lib/mindmap-files.ts`
- AI 配置`wolai-frontend/src/lib/ai/*`
- AI Agent 引擎:
- 运行时:`wolai-frontend/src/lib/ai-agent/runtime/runAgent.ts`
- 工具注册:`wolai-frontend/src/lib/ai-agent/tools/registry.ts`
- 内置工具集合:`wolai-frontend/src/lib/ai-agent/tools/builtins/registryBuiltins.ts``tools/builtins/*/*Tools.ts`
- Zustand stores`wolai-frontend/src/store/*`(如 `editor-bridge.ts``sidebar.ts``ai-agent-ui.ts`
### AI Agent(工具系统
- 运行时`wolai-frontend/src/lib/ai-agent/runtime/runAgent.ts`
-具注册`wolai-frontend/src/lib/ai-agent/tools/builtins/registryBuiltins.ts`
### 状态管理
- Zustand stores`wolai-frontend/src/store/*`
## 后端(wolai-backend
后端主要承担辅助能力与集成服务(如 OCR/异步任务/OnlyOffice 等),数据主链路以 Convex 为准:
- FastAPI 入口:`wolai-backend/app/main.py`
- 路由聚合:`wolai-backend/app/routers/__init__.py`
- 健康检查:`wolai-backend/app/routers/health.py`
- OCR/任务相关:`wolai-backend/app/routers/tasks.py``wolai-backend/app/services/*`
- Celery`wolai-backend/app/workers/*`
### FastAPI 路由与鉴权
- 路由聚合:`wolai-backend/app/routers/__init__.py`
- `root_router``/health` + `ws`Luckysheet
- `api_router`(前缀 `/api/v1`):tasks/chat
- 健康检查:`wolai-backend/app/routers/health.py`GET `/health`
- 任务(OCR):`wolai-backend/app/routers/tasks.py`
- POST `/api/v1/tasks/ocr`(鉴权:`AuthDep`,创建 `background_tasks` 记录并投递 Celery
- GET `/api/v1/tasks/{task_id}`(查询任务状态)
- SSE 占位对话:`wolai-backend/app/routers/chat.py`GET `/api/v1/chat?query=...&document_id=...`
- Luckysheet 协同 WS`wolai-backend/app/routers/luckysheet_ws.py``/ws/luckysheet`,校验 Supabase 用户与 workspace 成员关系)
- 鉴权依赖:`wolai-backend/app/deps.py`(通过 Supabase `/auth/v1/user` 验证 Bearer token
### Celery 与服务层
- Celery 配置:`wolai-backend/app/workers/celery_app.py`
- Celery 任务:`wolai-backend/app/workers/tasks.py`
- `ocr_pipeline`stage0 占位实现(更新 `background_tasks` 状态;回写 `documents.content/raw_text/index_status`
- Supabase REST 封装:`wolai-backend/app/services/supabase_rest.py`
- 任务追踪:`wolai-backend/app/services/task_tracker.py`(写入/读取 `background_tasks`
- 占位集成点:
- MinerU`wolai-backend/app/services/mineru_service.py`
- LightRAG`wolai-backend/app/services/lightrag_service.py`
- 配置:`wolai-backend/app/config.py``.env`UTF-8
## Supabase(本地与迁移)
- 本地端口与 URL 说明:`supabase.md`
- 迁移目录:`supabase/migrations/`
## 备注(避免踩坑)
- `wolai-frontend` 才是 `desktop-hot` 启动的实际前端;根目录的 `src/` 与其结构相似,可能是历史/镜像目录,改动前建议先确认是否仍在使用。
- 路由目录包含括号与中括号(如 `(app)``[id]`),在 PowerShell 中操作建议用 `-LiteralPath` 避免通配符误匹配。
## 历史遗留(不要当作现行架构)
若你看到以下路径/模块,请默认它们不再是当前主线(除非任务明确要求处理):
- `supabase/``supabase.md`
- `wolai-frontend/src/lib/supabase/`
- `wolai-backend/app/services/supabase_rest.py`