Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.255
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
local /
softaculous /
lib /
classes /
ai /
core /
Delete
Unzip
Name
Size
Permission
Date
Action
class_ai_client.php
26.22
KB
-rw-r--r--
2026-05-18 07:05
class_ai_file_handler.php
2.35
KB
-rw-r--r--
2026-05-18 07:05
class_conversation.php
11.96
KB
-rw-r--r--
2026-05-18 07:05
class_file_manager.php
11.42
KB
-rw-r--r--
2026-05-18 07:05
class_project.php
3.4
KB
-rw-r--r--
2026-05-18 07:05
class_project_context.php
5.47
KB
-rw-r--r--
2026-05-18 07:05
class_session.php
2.18
KB
-rw-r--r--
2026-05-18 07:05
class_settings.php
6.13
KB
-rw-r--r--
2026-05-18 07:05
class_snapshot_manager.php
7.34
KB
-rw-r--r--
2026-05-18 07:05
class_tool_definitions.php
10.13
KB
-rw-r--r--
2026-05-18 07:05
class_tool_executor.php
32.77
KB
-rw-r--r--
2026-05-18 07:05
Save
Rename
<?php if(!defined('SOFTACULOUS')){ die('Hacking Attempt'); } require_once(__DIR__ . '/class_ai_file_handler.php'); class AISettings { private $file_path; private $data; public function __construct(string $username){ $dir = AIFileHandler::get_ai_base_dir($username); $this->file_path = $dir . '/settings.json.php'; $json_data = AIFileHandler::read($this->file_path); if($json_data === null){ $this->data = ['providers' => []]; }else{ $this->data = $json_data; } } public function get_connected_providers(): array{ return $this->data['providers'] ?? []; } public function is_provider_connected(string $provider_id): bool{ if(!empty($this->data['providers'][$provider_id])) return true; $no_key = ['opencode_zen']; if(in_array($provider_id, $no_key)) return true; if(strpos($provider_id, 'custom:') === 0 && !empty($this->data['providers'][$provider_id])) return true; return false; } public function get_provider_config(string $provider_id): ?array{ return $this->data['providers'][$provider_id] ?? null; } public function get_api_key(string $provider_id): string{ $config = $this->data['providers'][$provider_id] ?? []; $key = $config['api_key'] ?? ''; if(empty($key)){ $no_key = ['opencode_zen']; if(in_array($provider_id, $no_key)) return 'public'; } return $key; } public function save_provider(string $provider_id, array $config): void{ $config['connected_at'] = $config['connected_at'] ?? time(); $this->data['providers'][$provider_id] = $config; $this->save(); } public function delete_provider(string $provider_id): void{ unset($this->data['providers'][$provider_id]); $this->save(); } public function get_all_providers(): array{ require_once(__DIR__ . '/../providers/interface_ai_provider.php'); require_once(__DIR__ . '/../providers/class_providers.php'); $builtin = [ ['id' => 'openai', 'name' => 'OpenAI', 'logo' => 'openai', 'auth_type' => 'api_key', 'models' => ['gpt-4o' => 'GPT-4o', 'gpt-4o-mini' => 'GPT-4o Mini', 'gpt-4-turbo' => 'GPT-4 Turbo']], ['id' => 'anthropic', 'name' => 'Anthropic', 'logo' => 'anthropic', 'auth_type' => 'api_key', 'models' => ['claude-sonnet-4-20250514' => 'Claude Sonnet 4', 'claude-opus-4-20250514' => 'Claude Opus 4', 'claude-3-5-sonnet-20241022' => 'Claude 3.5 Sonnet', 'claude-3-5-haiku-20241022' => 'Claude 3.5 Haiku']], ['id' => 'google', 'name' => 'Google', 'logo' => 'google', 'auth_type' => 'api_key', 'models' => ['gemini-2.5-pro' => 'Gemini 2.5 Pro', 'gemini-2.5-flash' => 'Gemini 2.5 Flash', 'gemini-1.5-pro' => 'Gemini 1.5 Pro']], ['id' => 'openrouter', 'name' => 'OpenRouter', 'logo' => 'openrouter', 'auth_type' => 'api_key', 'models' => ['anthropic/claude-sonnet-4-20250514' => 'Claude Sonnet 4', 'openai/gpt-4o' => 'GPT-4o', 'google/gemini-2.5-pro' => 'Gemini 2.5 Pro']], ['id' => 'groq', 'name' => 'Groq', 'logo' => 'groq', 'auth_type' => 'api_key', 'models' => ['llama-3.3-70b-versatile' => 'Llama 3.3 70B', 'llama-3.1-8b-instant' => 'Llama 3.1 8B']], ['id' => 'deepseek', 'name' => 'DeepSeek', 'logo' => 'deepseek', 'auth_type' => 'api_key', 'models' => ['deepseek-chat' => 'DeepSeek Chat', 'deepseek-coder' => 'DeepSeek Coder']], ['id' => 'together', 'name' => 'Together AI', 'logo' => 'together', 'auth_type' => 'api_key', 'models' => ['meta-llama/Llama-3-70b' => 'Llama 3 70B', 'deepseek-ai/DeepSeek-R1' => 'DeepSeek R1']], ['id' => 'ollama', 'name' => 'Ollama (Local)', 'logo' => 'ollama', 'auth_type' => 'none', 'models' => ['llama3' => 'Llama 3', 'codellama' => 'Code Llama', 'mistral' => 'Mistral']], ['id' => 'minimax', 'name' => 'MiniMax', 'logo' => 'minimax', 'auth_type' => 'api_key', 'base_url' => 'https://api.minimax.chat/v1', 'models' => ['MiniMax-Text-01' => 'MiniMax-Text-01', 'MiniMax-M1' => 'MiniMax-M1']], ['id' => 'opencode_zen', 'name' => 'OpenCode Zen (Free)', 'logo' => 'opencode', 'auth_type' => 'none', 'base_url' => 'https://opencode.ai/zen/v1', 'models' => [ 'big-pickle' => 'Big Pickle', 'minimax-m2.5-free' => 'MiniMax M2.5 Free', 'nemotron-3-super-free' => 'Nemotron 3 Super Free', 'trinity-large-preview-free' => 'Trinity Large Preview', ], 'no_key' => true], ['id' => 'opencode_zen_premium', 'name' => 'OpenCode Zen (Premium)', 'logo' => 'opencode', 'auth_type' => 'api_key', 'base_url' => 'https://opencode.ai/zen/v1', 'extra_headers' => ['HTTP-Referer: https://opencode.ai/', 'X-Title: opencode'], 'models' => [ 'claude-sonnet-4' => 'Claude Sonnet 4', 'claude-opus-4-7' => 'Claude Opus 4.7', 'gpt-5.4' => 'GPT-5.4', 'gpt-5.4-nano' => 'GPT-5.4 Nano', 'gemini-3-flash' => 'Gemini 3 Flash', 'gemini-3.1-pro' => 'Gemini 3.1 Pro', 'glm-5' => 'GLM-5', 'minimax-m2.7' => 'MiniMax M2.7', 'kimi-k2.6' => 'Kimi K2.6', 'qwen3.6-plus' => 'Qwen3.6 Plus', ], 'no_key' => false], ['id' => 'custom', 'name' => 'Custom Provider (OpenAI Compatible)', 'logo' => 'custom', 'auth_type' => 'api_key', 'is_custom_type' => true, 'models' => [], 'no_key' => false], ]; foreach($builtin as &$p){ if(!empty($p['is_custom_type'])){ $p['connected'] = false; }else{ $p['connected'] = $this->is_provider_connected($p['id']); } } foreach($this->data['providers'] as $pid => $config){ if(strpos($pid, 'custom:') === 0){ $entry = [ 'id' => $pid, 'name' => $config['name'] ?? 'Custom Provider', 'logo' => 'custom', 'auth_type' => 'api_key', 'models' => $config['models'] ?? [], 'connected' => true, 'is_custom' => true ]; if(!empty($config['base_url'])){ $entry['base_url'] = $config['base_url']; } $builtin[] = $entry; } } return $builtin; } public function get_all_models(): array{ $providers = $this->get_all_providers(); $models = []; foreach($providers as $p){ if(!$p['connected']) continue; foreach($p['models'] as $mid => $mname){ $models[] = ['id' => $mid, 'name' => is_array($mname) ? ($mname['name'] ?? $mid) : $mname, 'provider' => $p['id'], 'provider_name' => $p['name']]; } } return $models; } public function save(): bool{ return AIFileHandler::write($this->file_path, $this->data); } }