GPTEL-REQUEST
                                             │
                                             v
╭────────────────────────────╮  ╭────────────┴──────────────╮
│        Environment         │  │Single or multi-part PROMPT│
│                            │  │                           │
│ gptel-model                │  │Single or multi-part SYSTEM│
│ gptel-backend              │  ╰────────────┬──────────────╯
│                            │               v
│ gptel-use-context          │     ╭─────────┴──────────╮
│ gptel-use-tools            ├────>│   Create payload   ├·····>··
│ gptel-tools                │     │        INFO        │       ·
│ gptel-cache                │     ╰─────────┬──────────╯       ·
│ gptel-include-reasoning    │               v                  ·
│ gptel-track-response       │     ╔═════════╧══════════╗       ·
│                            │     ║    Send request    ║       ·
│ gptel-org-convert-response │     ╚═════════╤══════════╝       ·
╰────────────────────────────╯               v                  ·
                                          ╶──┴──╴               ·
                                        ╭ ─ ─ ─ ─ ─╮            ·
                                         ASYNC WAIT             ·
                                        ╰ ─ ─ ─ ─  ╯            ·
                                          ╶──┬──╴               ·
                                             v                  ·
                                ╭────────────┴─────────────╮    ·
                                │          Call            │    ·
                                │ (CALLBACK response INFO) │··<··
                                ╰────────────┬─────────────╯
                                             v
                                          ╶──┴──╴