feat: add City10 platform with Laravel 13, AI agents, 3D viewer, and LGPD compliance
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
This commit is contained in:
Executable
+78
@@ -0,0 +1,78 @@
|
||||
<?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),
|
||||
|
||||
];
|
||||
Reference in New Issue
Block a user