Initial commit of the complete City10 virtual city simulation platform. Backend (Laravel 13): - REST API with Sanctum tokens and session-based web authentication - Role-based access control (admin/user) with middleware protection - AI agent CRUD with OpenRouter.ai integration restricted to free models - Store management with 3D coordinates and AI shopkeeper assignment - Versioned legal documents (Terms, Privacy, Cookies) with LGPD audit trail - Math CAPTCHA on public forms and multi-language support (pt_BR, en, es) Frontend: - Responsive Blade templates with Tailwind CSS v4 - Three.js 3D city viewer with SSE chat streaming to AI agents - Admin panel for store and user administration Infrastructure: - MariaDB/MySQL database with comprehensive migrations - Database seeders for demo content and test accounts - PHPUnit test suite and Laravel Pint code styling - Vite build configuration with hot reload
79 lines
2.7 KiB
PHP
Executable File
79 lines
2.7 KiB
PHP
Executable File
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| OpenRouter.ai Integration
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Credentials and behaviour settings used by the AI agents to take
|
|
| strategic decisions through the OpenRouter.ai chat completions API.
|
|
| The API key must be provided via the OPENROUTER_API_KEY env variable
|
|
| and must never be committed to version control.
|
|
|
|
|
*/
|
|
|
|
'openrouter' => [
|
|
'api_key' => env('OPENROUTER_API_KEY'),
|
|
'base_url' => env('OPENROUTER_BASE_URL', 'https://openrouter.ai/api/v1'),
|
|
'timeout' => (int) env('OPENROUTER_TIMEOUT', 30),
|
|
'app_name' => env('APP_NAME', 'City10'),
|
|
'app_url' => env('APP_URL', 'http://localhost:16980'),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Allow-listed Free Models
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Only the free models listed below may be selected for AI agents.
|
|
| Administrators cannot register agents with models outside this list,
|
|
| which keeps operating costs at zero and enforces the platform policy.
|
|
|
|
|
*/
|
|
|
|
'allowed_models' => [
|
|
'poolside/laguna-m.1:free',
|
|
'cohere/north-mini-code:free',
|
|
'deepseek/deepseek-v4-flash-0731:free',
|
|
'qwen/qwen3.8-27b:free',
|
|
'nvidia/nemotron-3-ultra-550b-a55b:free',
|
|
'nvidia/nemotron-3-super-120b-a12b:free',
|
|
'google/gemma-4-31b-it:free',
|
|
'google/gemma-4-26b-a4b-it:free',
|
|
'openai/gpt-oss-20b:free',
|
|
'nvidia/nemotron-nano-12b-v2-vl:free',
|
|
'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free',
|
|
'nvidia/nemotron-3-nano-30b-a3b:free',
|
|
'nvidia/nemotron-nano-9b-v2:free',
|
|
'poolside/laguna-xs-2.1:free',
|
|
'inclusionai/ling-3.0-flash-vl:free',
|
|
'qwen/qwen3.7-flash:free',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Default Model
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Model assigned to newly created agents when none is specified.
|
|
|
|
|
*/
|
|
|
|
'default_model' => env('AI_DEFAULT_MODEL', 'deepseek/deepseek-v4-flash-0731'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Agent Decision Cadence (seconds)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Minimum interval between two reasoning calls for the same agent,
|
|
| protecting the upstream API from excessive usage.
|
|
|
|
|
*/
|
|
|
|
'think_interval' => (int) env('AI_THINK_INTERVAL', 60),
|
|
|
|
];
|