sequenceDiagram participant UI as Next.js UI participant API as FastAPI Gateway participant AUTH as Supabase Auth participant ENT as RevenueCat participant REDIS as Redis Cache participant PG as Supabase pgvector participant LLM as LangChain Orchestrator

UI->>API: POST /generate-context {library, version, user_context} API-->>AUTH: Verify JWT API-->>ENT: Check entitlement (10/day or pro) API-->>REDIS: GET profile:{eco}:{pkg}:{ver} alt cache hit REDIS-->>API: profile summary else cache miss API-->>PG: SELECT documentation chunks alt PG empty API->>API: async POST /build-profile API-->>UI: 202 Accepted, “Processing…” loop worker PG->>REDIS: SET profile summary (TTL 35 d) end else PG-->>API: chunks API->>REDIS: SET profile summary end end API->>LLM: filter_context + qna_sweep + compose_answer LLM-->>API: markdown + citations API-->>UI: 200 OK {answer, tokens_saved}