|
Download docs/architecture/overview.md from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 14.7 kB
-
https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/docs/architecture/overview.md
- Command line
-
hf download hf://chenbhao/codev@afbc7edaae4e6bb0102ba024b49ce8be89d2264c/docs/architecture/overview.md
-
curl -L -o overview.md https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/docs/architecture/overview.md
14.7 kB
| # ้กน็ฎๆถๆๆฆ่ง | |
| ## ้กน็ฎๅฎไฝ | |
| VersperClaw ๆฏไธไธช AI CLI ๆบ่ฝไปฃ็๏ผๅบไบ Anthropic Claude Code ๆบไปฃ็ ๆๅปบ๏ผๅขๅผบไบๅฏนไปฅไธๅบๆฏ็ๆฏๆ๏ผ | |
| - **VRM ๆก้ขไผดไพฃ**๏ผFriend๏ผ๏ผๅจๅไธ่ฟ็จไธญ่ฟ่ก HTTP/SSE ๆๅก๏ผ้ฉฑๅจ 3D VRM ่ง่ฒ็่กจๆ ใ่ฏญ้ณๅๆๆฌๆฐๆณก | |
| - **ๅคๆจกๅๆไพ่ **๏ผ้่ฟๅๅไปฃ็ๅฑๅฐ Anthropic Messages API ๅ่ฎฎ็ฟป่ฏไธบ OpenAI Chat/Responses API ๅ่ฎฎ๏ผๆฏๆๆฐๅ็ง็ฌฌไธๆนๆจกๅ | |
| - **่ฏญ้ณๅฏน่ฏ**๏ผๅบไบ cpal๏ผRust ๅ็้ณ้ขๅบ๏ผ็่ฟ็จๅ ้ณ้ขๆ่ท๏ผ็ปๅ Silero VAD๏ผONNX ๅฎๆถ่ฏญ้ณๆดปๅจๆฃๆต๏ผๅๅค็ง STT/TTS ๅผๆ | |
| - **่ชๅจๅๆจกๅผ**๏ผ็ฎๆ ็ณป็ป๏ผGoals๏ผใๅๅฐไปปๅก๏ผBackground Tasks๏ผใMCP ๅทฅๅ ท้ๆใFeishu/Telegram Bot ๆกฅๆฅ | |
| ## ๆๆฏๆ | |
| | ็ฑปๅซ | ๆๆฏ | | |
| |------|------| | |
| | ่ฟ่กๆถ | **Bun 1.3+**๏ผJavaScript/TypeScript ่ฟ่กๆถไธๆๅ ๅจ๏ผ | | |
| | ่ฏญ่จ | **TypeScript**๏ผๅ จไปๅบไฝฟ็จ strict ๆจกๅผ๏ผ | | |
| | ็ป็ซฏ UI | **Ink v6**๏ผReact ็ป็ซฏๆธฒๆๆกๆถ๏ผ+ **React 19** | | |
| | 3D ๆธฒๆ | **Three.js**๏ผVRM ๅ็ซฏไฝฟ็จ๏ผ้่ฟ {React} Three Fiber๏ผ | | |
| | ่ฏญ้ณๆดปๅจๆฃๆต | **onnxruntime-web (WASM)** โ Silero VAD ONNX ๆจกๅ๏ผ้ onnxruntime-node๏ผ้ฟๅ Bun ๆฎต้่ฏฏ๏ผ | | |
| | ๆก้ข็ชๅฃ | **Tauri**๏ผๅฏ้ๆก้ข็ชๅฃๆจกๅผ๏ผ | | |
| | ๅ ็ฎก็ | **Bun** workspace๏ผmonorepo๏ผ๏ผ`packageManager: bun@1.3.11` | | |
| | ๆๅปบ | Bun ๅ ๅปบๆๅ `scripts/build.ts`๏ผๆฏๆ `feature()` ๆญปไปฃ็ ๆถ้ค | | |
| ## ๅ ฅๅฃๆต็จ | |
| ``` | |
| cli.tsx (bootstrap) | |
| โ | |
| โผ | |
| main.tsx (Commander CLI ๅฎไน) | |
| โ โโโ ๆณจๅ ~180+ ๅฝไปค๏ผcommands.ts โ command modules๏ผ | |
| โ โโโ ๆณจๅ ~60+ AI ๅทฅๅ ท๏ผtools.ts โ tool modules๏ผ | |
| โ | |
| โผ | |
| replLauncher.tsx | |
| โ | |
| โผ | |
| Ink REPL (screens/REPL.tsx) | |
| โโโ PromptInput๏ผๆๆฌ่พๅ ฅ็ปไปถ๏ผ | |
| โโโ messageQueueManager๏ผ็ปไธๅฝไปค้ๅ๏ผ | |
| โโโ query.ts๏ผAI ่ฏทๆฑๅๅ๏ผ | |
| โโโ useMergedTools๏ผๅทฅๅ ทๆฑ ่ฃ ้ ๏ผ | |
| ``` | |
| ### ๅฏๅจ้ถๆฎต่ฏฆ่งฃ | |
| 1. **`src/entrypoints/cli.tsx`** โ ๆๅคๅฑๅ ฅๅฃใๅ ๆซๆ `--version`/`-v`ใ`--dump-system-prompt`ใ`--bridge`ใ`--daemon`ใ`--tmux` ็ญๅฟซ้่ทฏๅพๆ ๅฟใ่ฅๆ ๅน้ ๅๅจๆๅฏผๅ ฅ `main.tsx` ๅนถ่ฐ็จ `cliMain()`ใ | |
| 2. **`src/main.tsx`** โ ๆๅปบ Commander CLI ๅฎไน๏ผ็บฆ 180+ ๅฝไปค๏ผใๆง่ก้ ็ฝฎๅ ่ฝฝใ็ญ็ฅๆฃๆฅใ้ฅๆตๅๅงๅใไผ่ฏๆขๅค็ญใๆๅ่ฐ็จ `launchRepl()` ๆธฒๆ็ป็ซฏ UIใ | |
| 3. **`src/replLauncher.tsx`** โ ่ด่ดฃๅจๆๅ ่ฝฝ `<App>` ๅ `<REPL>` ็ปไปถๅนถ่ฐ็จ `renderAndRun()`ใ | |
| 4. **`src/screens/REPL.tsx`** โ ไธป REPL ๅฑๅน๏ผๅ ๅซๆถๆฏๅๅฒใPromptInputใๅทฅๅ ท่ฐ็จๆธฒๆ็ญใ | |
| ## ๆถๆไบฎ็น | |
| ### 1. ๅ่ฟ็จๆถๆ | |
| Friend VRM ๆๅกไธ CLI ่ฟ่กๅจ**ๅไธ Bun ่ฟ็จ**ไธญ๏ผ | |
| - `friend/server.ts` ้่ฟ `Bun.serve()` ็ๅฌ `127.0.0.1:3456` | |
| - SSE๏ผServer-Sent Events๏ผ็จไบๆๅก็ซฏๅฐ VRM ๅ็ซฏ็ๅฎๆถๆจ้๏ผ่กจๆ ใ้ณ้ขใๆๆฌๆฐๆณก๏ผ | |
| - HTTP POST ็จไบ VRM ๅ็ซฏๅ FriendService ๅ้ๆถๆฏ | |
| - ๆถ้คไบ็ฌ็ซ็ๅญ่ฟ็จ็ฎก็ๅ CLI SDK ไผ่ฏ็ๅผ้ | |
| ### 2. ๆจกๅๅๅทฅๅ ท็ณป็ป | |
| 60+ AI ๅฏ่ฐ็จๅทฅๅ ท้่ฟ `buildTool()` ๆกๆถๆณจๅใๆ ธๅฟๅทฅๅ ทๅ ๆฌ๏ผ | |
| - **ๆไปถๆไฝ**: `BashTool`, `FileReadTool`, `FileEditTool`, `FileWriteTool`, `GlobTool`, `GrepTool` | |
| - **Web/ๆ็ดข**: `WebFetchTool`, `WebSearchTool` | |
| - **ไปปๅก็ฎก็**: `TaskCreateTool`, `TaskGetTool`, `TaskUpdateTool`, `TaskListTool`, `TaskStopTool` | |
| - **MCP**: `ListMcpResourcesTool`, `ReadMcpResourceTool` | |
| - **Friend ็นๆ**: `FriendEmotionTool`๏ผVRM ่กจๆ + ๅฟๆ ็ฎก็๏ผ, `FriendScreenObserveTool` | |
| - **็ฎๆ ็ณป็ป**: `GoalCreateTool`, `GoalGetTool`, `GoalUpdateTool` | |
| - **ๅทฅไฝๆต**: `WorkflowTool`๏ผ้่ฟ WORKFLOW_SCRIPTS feature flag๏ผ | |
| - **ๅ ถไป**: `AgentTool`, `SkillTool`, `TodoWriteTool`, `ToolSearchTool`, `ConfigTool` ็ญ | |
| ๅทฅๅ ท้่ฟ `assembleToolPool()` ไธ MCP ๅทฅๅ ทๅๅนถๅป้๏ผ็ปไธๆไพ็ป AI ๆจกๅใ | |
| ### 3. ๅค Provider ไปฃ็ | |
| `src/server/proxy/handler.ts` ๅฎ็ฐๅ่ฎฎ็ฟป่ฏๅๅไปฃ็๏ผ | |
| - **่พๅ ฅ**: CLI ไปฅ Anthropic Messages API ๆ ผๅผๅ้่ฏทๆฑๅฐ `POST /proxy/v1/messages` ๆ `POST /proxy/providers/:id/v1/messages` | |
| - **่ฝฌๆข**: `anthropicToOpenaiChat.ts` / `anthropicToOpenaiResponses.ts` ๅฐ่ฏทๆฑไฝ็ฟป่ฏไธบ OpenAI ๆ ผๅผ | |
| - **่ฝฌๅ**: ๅ้ๅฐไธๆธธ็ฌฌไธๆนๆไพๅ็ API | |
| - **ๅไผ **: `openaiChatToAnthropic.ts` / `openaiResponsesToAnthropic.ts` ๅฐๅๅบ็ฟป่ฏๅ Anthropic ๆ ผๅผ | |
| - **ๆตๅผ**: ๆฏๆ SSE ๆตๅผๅๅบ็ๅๅ่ฝฌๆข๏ผ`openaiChatStreamToAnthropic.ts` / `openaiResponsesStreamToAnthropic.ts`๏ผ | |
| ### 4. Feature Flag ็ณป็ป | |
| ้่ฟ `bun:bundle` ็ `feature()` ๅฝๆฐๅฎ็ฐ็ผ่ฏๆๆญปไปฃ็ ๆถ้ค๏ผ | |
| ```typescript | |
| import { feature } from 'bun:bundle' | |
| // ไปฅไธไปฃ็ ๅจ้ KAIROS ๆๅปบไธญ่ขซๅฎๅ จๆถ้ค | |
| const assistantModule = feature('KAIROS') | |
| ? require('./assistant/index.js') | |
| : null | |
| ``` | |
| ๅทฒๅฎไน็ feature flags๏ผ้จๅ๏ผ๏ผ`VOICE_MODE`, `KAIROS`, `DAEMON`, `BRIDGE_MODE`, `COORDINATOR_MODE`, `PROACTIVE`, `AGENT_TRIGGERS`, `MCP_SKILLS`, `WORKFLOW_SCRIPTS`, `BUDDY`, `FORK_SUBAGENT`, `MONITOR_TOOL`, `WEB_BROWSER_TOOL`, `TERMINAL_PANEL` ็ญใ | |
| ## ๆ ธๅฟๆจกๅไธ่ง | |
| | ็ฎๅฝ | ่่ดฃ | | |
| |------|------| | |
| | `src/entrypoints/` | ็จๅบๅ ฅๅฃ็น๏ผcli.tsx bootstrap, init.ts ๅๅงๅ๏ผ | | |
| | `src/main.tsx` | Commander CLI ๅฎไนใๅฏๅจๆต็จ็ผๆ | | |
| | `src/commands/` | 180+ ๆๆ ๅฝไปค๏ผ`/clear`, `/commit`, `/config`, `/friend` ็ญ๏ผ | | |
| | `src/commands.ts` | ๅฝไปคๆณจๅไธญๅฟ๏ผไปๅๆจกๅๅ ่ฝฝๅนถๅฏผๅบๅฝไปคๅ่กจ | | |
| | `src/tools/` | 60+ AI ๅทฅๅ ทๅฎ็ฐ๏ผBash, Read, Edit, WebSearch, FriendEmotion ็ญ๏ผ | | |
| | `src/tools.ts` | ๅทฅๅ ทๆณจๅไธญๅฟ๏ผ`getAllBaseTools()` ไธ `assembleToolPool()` | | |
| | `src/ink/` | Ink ็ป็ซฏๆธฒๆๅผๆ๏ผ่ชๅฎไน fork๏ผๅ ๅซ reconcilerใlayoutใrenderer ็ญ๏ผ | | |
| | `src/screens/` | ไธป่ฆ UI ๅฑๅน๏ผREPL ไธปๅฑๅนใ่ฎพ็ฝฎๅๅฏผ็ญ๏ผ | | |
| | `src/components/` | React ็ปไปถ๏ผApp, PromptInput, ๆ้่ฏทๆฑ็ญ๏ผ | | |
| | `src/hooks/` | React hooks๏ผuseMergedTools, useCommandQueue, useReplBridge ็ญ๏ผ | | |
| | `src/friend/` | VRM ๆก้ขไผดไพฃๆๅก๏ผFriendService, SSE, TTS, VAD, STT๏ผ | | |
| | `src/server/` | HTTP/WebSocket ๆๅกๅจ๏ผAPI ่ทฏ็ฑใProvider ไปฃ็ใMCPใH5 ่ฎฟ้ฎ๏ผ | | |
| | `src/server/proxy/` | ๅค Provider ๅๅไปฃ็๏ผๅ่ฎฎ็ฟป่ฏ๏ผAnthropic โ OpenAI๏ผ | | |
| | `src/bridge/` | ่ฟ็จๆกฅๆฅ๏ผWebSocket โ claude.ai ่ฟ็จไผ่ฏ๏ผ | | |
| | `src/query/` | AI ่ฏทๆฑๆฅ่ฏขๅผๆ๏ผ`query.ts`ใ`QueryEngine.ts`๏ผ | | |
| | `src/context/` | ็ณป็ปไธไธๆๆๅปบ๏ผ`context.ts`๏ผ็ๆ็ณป็ปๆ็คบ่ฏ๏ผ | | |
| | `src/services/` | ๅ็ซฏๆๅก๏ผAPI client, Analytics, MCP, PolicyLimits, Compact ็ญ๏ผ | | |
| | `src/utils/` | ๅทฅๅ ทๅฝๆฐ๏ผ้ ็ฝฎใ่ฎค่ฏใๆถๆฏ้ๅใๆ้ใMCP ๆไปถใ่ฎพ็ฝฎ็ญ๏ผ | | |
| | `src/state/` | ๅบ็จ็ถๆ็ฎก็๏ผAppStateStore๏ผ | | |
| | `src/types/` | TypeScript ็ฑปๅๅฎไน | | |
| | `src/constants/` | ๅธธ้๏ผOAuthใไบงๅๅใๆ็คบ่ฏใๅทฅๅ ทๅฎไน็ญ๏ผ | | |
| | `src/voice/` | ่ฏญ้ณๆจกๅผๅ ฅๅฃ๏ผ`voiceModeEnabled.ts`๏ผ | | |
| | `src/assistant/` | ๅฉๆๆจกๅผ๏ผKAIROS feature flag ๅฎๆค๏ผ | | |
| | `src/coordinator/` | ๅ่ฐๅจๆจกๅผ๏ผๅค agent ๅไฝ๏ผ | | |
| | `src/buddy/` | Buddy ๅญ agent ็ณป็ป๏ผBUDDY feature flag๏ผ | | |
| | `src/daemon/` | ๅฎๆค่ฟ็จๆจกๅผ๏ผ้ฟๆ่ฟ่ก็ๅๅฐๆๅก๏ผ | | |
| | `src/plugins/` | ๆไปถ็ณป็ป๏ผๆไปถๅ็ฐใๅ ่ฝฝใ็ๅฝๅจๆ๏ผ | | |
| | `src/skills/` | ๆ่ฝ็ณป็ป๏ผ็จๆท่ชๅฎไน prompt ๅผๅฝไปค๏ผ | | |
| | `src/tasks/` | ไปปๅก็ณป็ป๏ผLocalAgentTask, LocalShellTask, RemoteAgentTask ็ญ๏ผ | | |
| | `src/cli/` | CLI ๅทฅๅ ท๏ผbg.ts ๅๅฐไผ่ฏ็ฎก็ใtemplateJobs ๆจกๆฟไปปๅก๏ผ | | |
| | `src/bootstrap/` | ๅฏๅจ็ถๆ๏ผstate.ts ๅฏผๅ ฅๅ็ถๆ่ฎพ็ฝฎ๏ผ | | |
| | `src/config/` | ้ ็ฝฎๅค็ | | |
| | `src/vim/` | Vim ๆจกๅผๆฏๆ | | |
| | `src/migrations/` | ๆฐๆฎ่ฟ็งป | | |
| | `src/memdir/` | ่ฎฐๅฟ็ฎๅฝๆฏๆ | | |
| | `src/upstreamproxy/` | ไธๆธธไปฃ็ๆฏๆ | | |
| | `src/remote/` | ่ฟ็จๆงๅถๆฏๆ | | |
| | `native-modules/` | Rust/C++ ๅ็ๆจกๅ๏ผcpal ้ณ้ขๆ่ท็ญ๏ผ | | |
| ## ๆฐๆฎๆตๆป่ง | |
| ``` | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ CLI ่ฟ็จ (Bun) โ | |
| โ โ | |
| โ โโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ | |
| โ โ cli.tsx โโโโโถโ main.tsx โโโโโถโ REPL.tsx โโโโโถโ PromptInput โ โ | |
| โ โ (bootstrap) โ (Commander) โ (Ink UI) โ โ (่พๅ ฅๆก) โ โ | |
| โ โโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโโฌโโโโโโโ โ | |
| โ โ โ โ | |
| โ โ โโโโโโโโโโโโโโผโโโโโ โ | |
| โ โ โ messageQueue โ โ | |
| โ โ โ Manager.enqueue โ โ | |
| โ โ โโโโโโโโโโฌโโโโโโโโโ โ | |
| โ โ โ โ | |
| โ โ โโโโโโโโโโผโโโโโโโโโ โ | |
| โ โ โ query() โ โ | |
| โ โ โ (AI ่ฏทๆฑ) โ โ | |
| โ โ โโโโฌโโโโโฌโโโโโโโโโ โ | |
| โ โ โ โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโ โ โ | |
| โ โ โ โ โ | |
| โ โผ โ โโโโโโโโโโผโโโโโโโโโ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ Tool Execution โ โ | |
| โ โ Anthropic SDK (1P) โ โ โ (Bash/Read/Edit โ โ | |
| โ โ POST /v1/messages โ โ โ ...็ญ ~60 ๅทฅๅ ท) โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโ โ | |
| โ โ โ โ | |
| โ โโโโโโโโโโโโผโโโโโโโโโโโ โ โ | |
| โ โ server/proxy/ โ โ โ | |
| โ โ handler.ts โ โ โ | |
| โ โ (3P Provider ไปฃ็) โ โ โ | |
| โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ โ | |
| โ โ โ โ | |
| โ โผ โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ | |
| โ โ OpenAI Chat/Responses API โ โ โ | |
| โ โ (OpenAI/Groq/DeepSeek ็ญ) โ โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ | |
| โ โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ โ | |
| โ โ FriendService (ๅ่ฟ็จ) โ โ โ | |
| โ โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโผโโโโโโโ โ โ | |
| โ โ โ Silero โ โ STT โ โ SSE Server โ โ โ | |
| โ โ โ VAD โโโโ (Doubao/ โ โ :3456 โ โ โ | |
| โ โ โ (ONNX) โ โ Whisper) โ โโโโโโโโฌโโโโโโโโ โ โ | |
| โ โ โโโโโโโโโโโ โโโโโโโโโโโโ โ โ โ | |
| โ โ โโโโโโโโโโโ โโโโโโโโโโโโ โ โ โ | |
| โ โ โ TTS โ โ EdgeTTS/ โ โ โ โ | |
| โ โ โ Audio โโโโ QwenTTS โ โ โ โ | |
| โ โ โโโโโโโโโโโ โโโโโโโโโโโโ โ โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โผ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ VRM ๅ็ซฏ (Web/Desktop) โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ โ SSE โ VRMScene โ TextBubble โ โ | |
| โ โ โ EmoteController โ โ | |
| โ โ โ MotionController โ โ | |
| โ โ โ AudioPlayback โ โ | |
| โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ | |
| โ HTTP POST โ FriendService.sendText โ โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ``` | |