Provider status
Every data slot — flights, lodging, routing, weather, events, currency, cars, rail — is served through a swappable provider adapter. Mock mode needs no API keys and powers the complete local demo.
| Slot | Provider | Mode | Configured | Kill switch |
|---|---|---|---|---|
| flights | MockFlights | Mock | Ready | Off |
| lodging | MockLodging | Mock | Ready | Off |
| routing | MockRouting | Mock | Ready | Off |
| weather | OpenMeteoWeather | Live | Ready | Off |
| events | MockEvents | Mock | Ready | Off |
| currency | FrankfurterCurrency | Live | Ready | Off |
| cars | MockCarRental | Mock | Ready | Off |
| rail | MockRail | Mock | Ready | Off |
Mock mode (default)
Mock providers are deterministic and require no keys — the seeded Cotswolds scenario runs end to end without any external service. Every mock price is labeled “Mock data” wherever it appears, so it can never be mistaken for a live quote.
Live data is Phase 2: each slot switches independently via its environment variable and falls back to mock (visibly, never silently) when credentials are missing or its kill switch is on.
Enabling live providers
Set the slot to live and provide its credentials in .env.local:
FLIGHT_PROVIDER=live+DUFFEL_API_KEYLODGING_PROVIDER=live+DUFFEL_API_KEYROUTING_PROVIDER=live+GOOGLE_ROUTES_API_KEYWEATHER_PROVIDER=live(no credentials required)EVENTS_PROVIDER=live+TICKETMASTER_API_KEYCURRENCY_PROVIDER=live+EXCHANGE_RATE_API_KEYCAR_PROVIDER=live+CAR_RENTAL_API_KEYRAIL_PROVIDER=live+RAIL_API_KEY
Kill switches (KILL_FLIGHTS=true etc.) instantly force a slot back to mock without redeploying. Credentials stay server-side and are never exposed to the browser.