Files
mnote/CODE_INDEX.md
T
2026-01-11 12:35:53 +08:00

6.5 KiB
Raw Blame History

代码索引(前后端)

本文用于后续开发“快速定位入口/职责/调用链”,按目录与功能点整理。路径以仓库根目录为基准。

启动链路与关键入口

  • 一键启动脚本:scripts/desktop-hot.js(启动 wolai-frontend + wolai-backendRedis 可用时启动 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/v1api_router)。

前端(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 Agentwolai-frontend/src/app/dev/ai-agent/page.tsx
    • Mindmapwolai-frontend/src/app/dev/mindmap/page.tsx

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.tsapi/mindmap/[docId]/[mindmapId]/route.tsapi/mindmap/[docId]/[mindmapId]/ops/route.ts
    • api/mindmap/[id]/route.ts(按 id 的路由分支)
  • 思维导图 AIwolai-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.tswolai-frontend/src/app/api/workspaces/switch/route.ts 等。

编辑器与核心 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 级功能(重点在思维导图/媒体/表格):
    • 思维导图 Blockwolai-frontend/src/components/editor/blocks/MindmapBlock.tsx
    • 思维导图侧栏/工具栏:wolai-frontend/src/components/editor/blocks/MindmapSidebar.tsxwolai-frontend/src/components/editor/blocks/MindmapToolbar.tsx
    • AI Agent 面板:wolai-frontend/src/components/editor/blocks/MindmapAiAgentPanel.tsxwolai-frontend/src/components/editor/DocumentAiAgentPanel.tsx
  • 侧边栏(文件树/回收站/资源):wolai-frontend/src/components/sidebar/sidebar.tsxwolai-frontend/src/components/sidebar/file-tree.tsx

状态与业务库(lib/store

  • Supabase 客户端封装:wolai-frontend/src/lib/supabase/{client.ts,server.ts,admin.ts}
  • 工作区与侧边栏数据:wolai-frontend/src/lib/workspaces.tswolai-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.tstools/builtins/*/*Tools.ts
  • Zustand storeswolai-frontend/src/store/*(如 editor-bridge.tssidebar.tsai-agent-ui.ts

后端(wolai-backend

FastAPI 路由与鉴权

  • 路由聚合:wolai-backend/app/routers/__init__.py
    • root_router/health + wsLuckysheet
    • api_router(前缀 /api/v1):tasks/chat
  • 健康检查:wolai-backend/app/routers/health.pyGET /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.pyGET /api/v1/chat?query=...&document_id=...
  • Luckysheet 协同 WSwolai-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_pipelinestage0 占位实现(更新 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
  • 占位集成点:
    • MinerUwolai-backend/app/services/mineru_service.py
    • LightRAGwolai-backend/app/services/lightrag_service.py
  • 配置:wolai-backend/app/config.py.envUTF-8

Supabase(本地与迁移)

  • 本地端口与 URL 说明:supabase.md
  • 迁移目录:supabase/migrations/

备注(避免踩坑)

  • wolai-frontend 才是 desktop-hot 启动的实际前端;根目录的 src/ 与其结构相似,可能是历史/镜像目录,改动前建议先确认是否仍在使用。
  • 路由目录包含括号与中括号(如 (app)[id]),在 PowerShell 中操作建议用 -LiteralPath 避免通配符误匹配。