Container View: Gesso AI

The AI abstraction layer. Providers hold no API keys: they call the frontend's API middleware, which calls the model.

flowchart LR
    gemini("Google Gemini<br/>[Software System]")
    vertex("Google Vertex AI<br/>[Software System]")

    subgraph gessoAI["Gesso AI [Software System]"]
        geminiProvider("Gemini Provider<br/>[Container]")
        vertexProvider("Vertex Provider<br/>[Container]")
    end

    gemini -. "Via API middleware" .-> geminiProvider
    vertex -. "Via API middleware" .-> vertexProvider

    classDef external fill:#64748b,stroke:#475569,color:#ffffff
    classDef container fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
    class gemini,vertex external
    class geminiProvider,vertexProvider container
    style gessoAI fill:none,stroke:#7d8794,stroke-width:2px,stroke-dasharray:6 4