feat(city): add airports, ATC agent, luminous signs, and AI model fallback chain
- Add two airports (north/south) with full geometry: runways, taxiways,
aprons, terminals, hangars, stands, and helipads; walkable airport
grounds extend beyond city bounds.
- Introduce ATC AI agent ("Torre de Controle City10") using AI_ATC_MODEL
to generate takeoff clearances; includes dispatch endpoint with
30-second cooldown and deterministic fallback on failure.
- Implement AI model fallback chain: preferred model → AI_FALLBACK_MODEL
before failing, applied in ChatController and PersonTalkController.
- Add luminous sign labels (letreiros) for plazas, beach, food, hospital,
school, city hall, and airports with day/night glow.
- Fix city presence cache: compute is_me per viewer instead of baking
into shared per-second cache to prevent cross-user flag leakage.
- Add tests: AirportTest, CityPresenceTest, SignLabelsTest, and
PersonTalkTest fallback model retry scenario.
This commit is contained in:
@@ -35,9 +35,13 @@ ao trabalhar neste repositório.
|
||||
|
||||
## 2. Regras para Modelos de IA (Agentes do City10)
|
||||
|
||||
2.1. **Somente modelos gratuitos allow-listed.** Agentes só podem usar
|
||||
modelos definidos em `config/ai.php` (`allowed_models`). A validação
|
||||
acontece no backend (`AiAgentRequest`) — não contorne.
|
||||
2.1. **Somente modelos allow-listed.** Agentes só podem usar modelos
|
||||
definidos em `config/ai.php` (`allowed_models`). A validação
|
||||
acontece no backend (`AiAgentRequest`) — não contorne. Por padrão a
|
||||
lista contém modelos gratuitos; **exceção aprovada pelo responsável**:
|
||||
`xiaomi/mimo-v2.6-flash` (pago, custo mínimo ~1,4e-7/token,
|
||||
verificado ao vivo) — atua como **modelo de fallback** das cadeias
|
||||
de chamada (`AI_FALLBACK_MODEL`): preferido → default → fallback.
|
||||
|
||||
2.2. **Nunca envie dados pessoais ao modelo.** Ao chamar o OpenRouter, envie
|
||||
apenas contexto simulado da cidade (posições, metas, estado de lojas).
|
||||
|
||||
Reference in New Issue
Block a user