settings = $settings; $this->selected_tool = $settings['selected_ai_tool'] ?? null; } public function get_selected_tool(): ?string { return $this->selected_tool; } public function get_tool_instance(): ?object { switch (strtolower($this->selected_tool)) { case 'groq.ai': return new AI_WRITEX_GROQ_AI_Tool( $this->settings['groqai_bearer_token'], $this->settings['groqai_select_model'] ); case 'chatgpt': return new AI_WRITEX_ChatGPT_AI_Tool( $this->settings['chatgpt_api_key'], $this->settings['chatgpt_select_model'] ); case 'gemini': case 'gemini ai': case 'gemini.ai': case 'gimini.ai': $api_key = !empty($this->settings['geminiai_api_key']) ? $this->settings['geminiai_api_key'] : ($this->settings['giminiai_api_key'] ?? ''); $model = !empty($this->settings['geminiai_select_model']) ? $this->settings['geminiai_select_model'] : ($this->settings['giminiai_select_model'] ?? ''); return new AI_WRITEX_GEMINI_AI_Tool( $api_key, $model ); // case 'grok.ai': // return new GROK_AI_Tool( // $this->settings['grokai_api_key'], // $this->settings['grokai_oauth_token'], // $this->settings['grokai_select_model'] // ); default: return null; } } public function is_valid_tool(): bool { return $this->get_tool_instance() !== null; } }