- 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.
85 lines
2.0 KiB
Bash
Executable File
85 lines
2.0 KiB
Bash
Executable File
APP_NAME=City10
|
|
APP_ENV=local
|
|
APP_KEY=
|
|
APP_DEBUG=true
|
|
APP_URL=http://localhost:16980
|
|
|
|
APP_LOCALE=pt_BR
|
|
APP_FALLBACK_LOCALE=en
|
|
APP_FAKER_LOCALE=pt_BR
|
|
|
|
APP_MAINTENANCE_DRIVER=file
|
|
# APP_MAINTENANCE_STORE=database
|
|
|
|
# PHP_CLI_SERVER_WORKERS=4
|
|
|
|
BCRYPT_ROUNDS=12
|
|
|
|
LOG_CHANNEL=stack
|
|
LOG_STACK=single
|
|
LOG_DEPRECATIONS_CHANNEL=null
|
|
LOG_LEVEL=debug
|
|
|
|
DB_CONNECTION=mariadb
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=laravel
|
|
DB_USERNAME=root
|
|
DB_PASSWORD=
|
|
|
|
SESSION_DRIVER=database
|
|
SESSION_LIFETIME=120
|
|
SESSION_ENCRYPT=false
|
|
SESSION_PATH=/
|
|
SESSION_DOMAIN=null
|
|
|
|
BROADCAST_CONNECTION=log
|
|
FILESYSTEM_DISK=local
|
|
QUEUE_CONNECTION=database
|
|
|
|
CACHE_STORE=database
|
|
# CACHE_PREFIX=
|
|
|
|
MEMCACHED_HOST=127.0.0.1
|
|
|
|
REDIS_CLIENT=phpredis
|
|
REDIS_HOST=127.0.0.1
|
|
REDIS_PASSWORD=null
|
|
REDIS_PORT=6379
|
|
|
|
MAIL_MAILER=log
|
|
MAIL_SCHEME=null
|
|
MAIL_HOST=127.0.0.1
|
|
MAIL_PORT=2525
|
|
MAIL_USERNAME=null
|
|
MAIL_PASSWORD=null
|
|
MAIL_FROM_ADDRESS="no-reply@syspanel.com.br"
|
|
MAIL_FROM_NAME="${APP_NAME}"
|
|
|
|
# OpenRouter.ai — keep the key in .env only, never commit it.
|
|
OPENROUTER_API_KEY=
|
|
AI_DEFAULT_MODEL=deepseek/deepseek-v4-flash-0731
|
|
|
|
# AI_MODELS: pool of allow-listed free OpenRouter models distributed
|
|
# deterministically across characters (each character keeps its own model).
|
|
AI_MODELS=deepseek/deepseek-v4-flash-0731,nvidia/nemotron-3.5-lightning:free,liquid/lfm-2.5-2.6b:free,openrouter/free,nvidia/nemotron-3-ultra-550b-a55b:free
|
|
# AI_CHARACTER_MODELS: per-character override "name or id=model" (comma
|
|
# separated), e.g. Maria=liquid/lfm-2.5-2.6b:free,7=openrouter/free
|
|
AI_CHARACTER_MODELS=
|
|
|
|
# AI_ATC_MODEL: default model of the control-tower agent (airport
|
|
# clearances: takeoff authorizations). Must be allow-listed.
|
|
AI_ATC_MODEL=poolside/laguna-xs-2.1:free
|
|
|
|
# AI_FALLBACK_MODEL: tried when the preferred model of a call fails
|
|
# (owner-approved paid model with near-zero cost).
|
|
AI_FALLBACK_MODEL=xiaomi/mimo-v2.6-flash
|
|
|
|
AWS_ACCESS_KEY_ID=
|
|
AWS_SECRET_ACCESS_KEY=
|
|
AWS_DEFAULT_REGION=us-east-1
|
|
AWS_BUCKET=
|
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
|
|
|
VITE_APP_NAME="${APP_NAME}"
|