1```mermaid
 2%% ROUTER Mode Data Flow (multi-model)
 3%% Detailed flows: ./flows/server-flow.mmd, ./flows/models-flow.mmd, ./flows/chat-flow.mmd
 4
 5sequenceDiagram
 6    participant User as ๐Ÿ‘ค User
 7    participant UI as ๐Ÿงฉ UI
 8    participant Stores as ๐Ÿ—„๏ธ Stores
 9    participant DB as ๐Ÿ’พ IndexedDB
10    participant API as ๐ŸŒ llama-server
11
12    Note over User,API: ๐Ÿš€ Initialization (see: server-flow.mmd, models-flow.mmd)
13
14    UI->>Stores: initialize()
15    Stores->>DB: load conversations
16    Stores->>API: GET /props
17    API-->>Stores: {role: "router"}
18    Stores->>API: GET /v1/models
19    API-->>Stores: models[] with status (loaded/available)
20    loop each loaded model
21        Stores->>API: GET /props?model=X
22        API-->>Stores: modalities (vision/audio)
23    end
24
25    Note over User,API: ๐Ÿ”„ Model Selection (see: models-flow.mmd)
26
27    User->>UI: select model
28    alt model not loaded
29        Stores->>API: POST /models/load
30        loop poll status
31            Stores->>API: GET /v1/models
32            API-->>Stores: check if loaded
33        end
34        Stores->>API: GET /props?model=X
35        API-->>Stores: cache modalities
36    end
37    Stores->>Stores: validate modalities vs conversation
38    alt valid
39        Stores->>Stores: select model
40    else invalid
41        Stores->>API: POST /models/unload
42        UI->>User: show error toast
43    end
44
45    Note over User,API: ๐Ÿ’ฌ Chat Flow (see: chat-flow.mmd)
46
47    User->>UI: send message
48    UI->>Stores: sendMessage()
49    Stores->>DB: save user message
50    Stores->>API: POST /v1/chat/completions {model: X}
51    Note right of API: router forwards to model
52    loop streaming
53        API-->>Stores: SSE chunks + model info
54        Stores-->>UI: reactive update
55    end
56    API-->>Stores: done + timings
57    Stores->>DB: save assistant message + model used
58
59    Note over User,API: ๐Ÿ” Regenerate (optional: different model)
60
61    User->>UI: regenerate
62    Stores->>Stores: validate modalities up to this message
63    Stores->>DB: create message branch
64    Note right of Stores: same streaming flow
65
66    Note over User,API: โน๏ธ Stop
67
68    User->>UI: stop
69    Stores->>Stores: abort stream
70    Stores->>DB: save partial response
71
72    Note over User,API: ๐Ÿ—‘๏ธ LRU Unloading
73
74    Note right of API: Server auto-unloads LRU models<br/>when cache full
75    User->>UI: select unloaded model
76    Note right of Stores: triggers load flow again
77```