success(SettingsService::getFeatures()); } public function publicSettings() { $allow = SettingsService::get('allow_register', true); return $this->success([ 'site_name' => SettingsService::get('site_name', 'AI Chat'), 'allow_register' => $allow === true || $allow === 'true', 'registration_requires_invite' => true, 'features' => SettingsService::getFeatures(), 'voice_persona' => CosyVoiceService::publicPersona(), ]); } public function models() { $user = $this->authUser(); if (GuestAccessService::isGuest($user)) { $model = GuestAccessService::model(); return $this->success([[ 'id' => (int) $model->id, 'name' => $model->name, 'provider' => $model->provider, 'model_id' => $model->model_id, 'is_default' => 1, 'support_context' => (int) $model->support_context, 'support_image' => 0, ]]); } $list = AiModel::where('enabled', 1) ->field('id,name,provider,model_id,is_default,support_context,support_image') ->order('sort_order,id') ->select(); return $this->success($list); } public function agents() { if (GuestAccessService::isGuest($this->authUser())) { return $this->success([]); } return $this->success(AgentCatalog::publicList()); } }