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 'gimini.ai': return new AI_WRITEX_GIMINI_AI_Tool( $this->settings['giminiai_api_key'], $this->settings['giminiai_select_model'], $this->settings['giminiai_token'] ); // 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; } }