includes(); $this->init_modules(); } /** * Prevent cloning. */ private function __clone() {} /** * Prevent unserialization. */ public function __wakeup() { throw new \Exception( 'Cannot unserialize singleton' ); } /** * Include required files. */ private function includes() { require_once AISH_PLUGIN_DIR . 'includes/class-aish-logger.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-partner-store.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-scorer.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-rest.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-admin.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-verifier.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-frontend.php'; require_once AISH_PLUGIN_DIR . 'includes/class-aish-cron.php'; } /** * Initialize modules and store references. */ private function init_modules() { $this->modules['rest'] = new AISH_REST(); $this->modules['admin'] = new AISH_Admin(); $this->modules['verifier'] = new AISH_Verifier(); $this->modules['frontend'] = new AISH_Frontend(); $this->modules['cron'] = new AISH_Cron(); } /** * Get a module instance. * * @param string $name Module name. * @return object|null */ public function get_module( $name ) { return isset( $this->modules[ $name ] ) ? $this->modules[ $name ] : null; } } // Backward compatibility for existing integrations using the legacy class name. if ( ! class_exists( 'AI_Semantic_Handshake', false ) ) { class_alias( 'AISH_AI_Semantic_Handshake', 'AI_Semantic_Handshake' ); }