graph TB
    classDef supervisor fill:#667eea,stroke:#fff,stroke-width:3px,color:#fff
    classDef orchestrator fill:#764ba2,stroke:#fff,stroke-width:2px,color:#fff
    classDef workflow fill:#f093fb,stroke:#333,stroke-width:2px,color:#333
    classDef agent fill:#ff6b6b,stroke:#333,stroke-width:2px,color:#333
    classDef node fill:#4ecdc4,stroke:#333,stroke-width:1px,color:#333
    classDef startEnd fill:#4CAF50,stroke:#fff,stroke-width:2px,color:#fff

    START((USER QUERY)):::startEnd
    END((RESPONSE)):::startEnd

    SUPERVISOR[SUPERVISOR - RAG Orchestrator]:::supervisor
    QUERY_SPLITTER[Query Splitter]:::node
    ORCHESTRATOR[Orchestrator]:::orchestrator
    SYNTHESIZER[Synthesizer]:::node
    ROUTER{{Workflow Router}}:::node

    CHAT_WF[Chat Workflow]:::workflow
    RAG_RAW_WF[RAG Raw]:::workflow
    RAG_AI_WF[RAG + AI]:::workflow
    SHOP_WF[Shop Integration]:::workflow

    subgraph AGENTS[Agent Registry]
        RAG_AGENT[RAG Agent]:::agent
        CHAT_AGENT[Chat Agent]:::agent
        INTEGRATION_AGENT[Integration Agent]:::agent
    end

    subgraph SHOP_AGENTS[Shop Agents]
        SHOP_DB[DB Agent]:::agent
        SHOP_ANALYSIS[Analysis]:::agent
        SHOP_VIZ[Visualization]:::agent
    end

    START --> SUPERVISOR
    SUPERVISOR --> QUERY_SPLITTER
    QUERY_SPLITTER --> ROUTER

    ROUTER -->|chat| CHAT_WF
    ROUTER -->|rag raw| RAG_RAW_WF
    ROUTER -->|rag ai| RAG_AI_WF
    ROUTER -->|shop| SHOP_WF

    CHAT_WF --> ORCHESTRATOR
    RAG_RAW_WF --> ORCHESTRATOR
    RAG_AI_WF --> ORCHESTRATOR
    SHOP_WF --> ORCHESTRATOR

    ORCHESTRATOR -.-> RAG_AGENT
    ORCHESTRATOR -.-> CHAT_AGENT
    ORCHESTRATOR -.-> INTEGRATION_AGENT

    INTEGRATION_AGENT -.-> SHOP_DB
    INTEGRATION_AGENT -.-> SHOP_ANALYSIS
    INTEGRATION_AGENT -.-> SHOP_VIZ

    ORCHESTRATOR --> SYNTHESIZER
    SYNTHESIZER --> END