Cherry-Studio-AICore核心架构图

graph TD
    %% UI Layer
    subgraph UILayer["UI Layer"]
        MR["MessageRenderer"]
        BR["BlockRenderer"]
        CI["ChatInterface"]
        
        MR --> |包含| MH["MessageHeader"]
        MR --> |包含| MG["MessageGroup"]
        MR --> |包含| ML["MessageList"]
        
        BR --> |包含| MTB["MainTextBlock"]
        BR --> |包含| THB["ThinkingBlock"]
        BR --> |包含| TB["ToolBlock"]
        BR --> |包含| IB["ImageBlock"]
        
        CI --> |包含| MI["MessageInput"]
        CI --> |包含| MS["ModelSelector"]
        CI --> |包含| PM["PluginManager"]
    end
    
    %% State Management Layer
    subgraph StateLayer["State Management Layer"]
        MST["Messages Store (Redux + Adapter)"]
        MBST["MessageBlocks Store (Redux + Adapter)"]
        
        MST <--> MBST
        
        MST --> |Actions| MST_A["updateMessage() addMessage() removeMessage()"]
        MBST --> |Block Types| MBST_T["MAIN_TEXT THINKING TOOL IMAGE TRANSLATION ERROR"]
    end
    
    %% Chunk System
    subgraph ChunkSystem["Chunk System"]
        CT["Content Types"]
        FT["Function Types"]
        LT["Lifecycle Types"]
        
        CT --> |类型| CT_T["TEXT_DELTA TEXT_COMPLETE THINKING_DELTA THINKING_COMPLETE IMAGE_CREATED IMAGE_DELTA AUDIO_DELTA ERROR"]
        FT --> |类型| FT_T["MCP_TOOL_CREATED MCP_TOOL_IN_PROGRESS MCP_TOOL_COMPLETE WEB_SEARCH_IN_PROGRESS"]
        LT --> |类型| LT_T["BLOCK_CREATED BLOCK_COMPLETE LLM_RESPONSE_CREATED LLM_RESPONSE_COMPLETE ERROR"]
        
        TS["TypeScript Union Type: Chunk = TextDeltaChunk | ThinkingDeltaChunk | ..."]
    end
    
    %% AI Core Layer
    subgraph AICore["AI Core Layer"]
        subgraph PR["Provider Registry"]
            OAI["OpenAI Dynamic Import"]
            ANT["Anthropic Dynamic Import"]
            GOO["Google Dynamic Import"]
            OAC["OpenAI-Comp Dynamic Import"]
        end
        
        subgraph PS["Plugin System"]
            WSP["Web Search Plugin Tavily, Searxng, Exa"]
            MTP["MCP Tools Plugin Protocol, Tool Call, Recursion"]
            RP["Reasoning Plugin o1 Model, Thinking, Time Track"]
            TP["Translation Plugin Multi-Language, Auto Lang"]
        end
        
        subgraph PF["Prepare Fetch"]
            CET["createexecutor"]
            CET --> |创建model| CBM["createBaseModel"]
            CET --> |创建插件| LMV["PuginEngine"]
            LMV --> |注册| SP["MiddleWare"]
        end
        subgraph Middleware["Middleware Registy"]
            M1["Stream Transform"]
            M2["..."]
        end
        %% Provider Services
        subgraph Fetch["Fetch"]
        end
        %% Connect the layers
        %% ModelServices --> PR
        LMV --> PS
        PR --> PF
        SP --> PS
        SP --> Middleware
        CBM --> |Streamtext| Fetch
        CBM --> |GenerateText| Fetch
        %% PS --> Fetch
    end
    
    %% Legacy model
    subgraph Legacy["Legacy Model (fallback) "]
        AP["Xxx ApiClient"]
        --> EAS["Legacy Middleware"]
        --> AICP["Leagcy Fetch"]
        --> SRC["Stream<RawChunk>"]
    end
    

 %% Middleware Layer
    subgraph MiddlewareLayer["Middleware Layer"]
        EHM["ErrorHandler Middleware"]
        SAM["StreamAdapter Middleware"]
        AHM["AbortHandler Middleware"]
        
        EHM --> MTCM["McpToolChunk Middleware"]
        SAM --> TTEM["ThinkingTag Extraction Middleware"]
        AHM --> TCM["TextChunk Middleware"]
        
        MTCM --> |功能| MTCM_F["Tool Detection Recursive Call Depth Control"]
        TTEM --> |功能| TTEM_F["&lt;think&gt; tags Tag Boundary State Machine"]
        TCM --> |功能| TCM_F["Text Delta Streaming Completion"]
        
        DF["Data Flow: ReadableStream<Chunk> -> TransformStream -> ProcessedStream"]
    end

    %% Connect the layers
    UILayer --> StateLayer
    StateLayer --> AICore
    EAS --> |创建、注册| MiddlewareLayer
    AICore --> Legacy
    DF --> SRC
    Legacy --> ChunkSystem
    AICore --> ChunkSystem
    ChunkSystem --> StateLayer
    StateLayer --> UILayer
    %% ExternalServices --> DataFlow

alt Cherry-Studio-AICore核心架构图