'includes/class-plugin.php', 'Aivexa_Loader' => 'includes/class-loader.php', 'Aivexa_Activator' => 'includes/class-activator.php', 'Aivexa_Deactivator' => 'includes/class-deactivator.php', 'Aivexa_Settings' => 'includes/class-settings.php', 'Aivexa_REST_API' => 'includes/class-rest-api.php', 'Aivexa_Client' => 'includes/class-ai-client.php', 'Aivexa_Abilities' => 'includes/class-abilities.php', 'Aivexa_Agent' => 'includes/class-agent.php', 'Aivexa_Memory' => 'includes/class-memory.php', 'Aivexa_Logger' => 'includes/class-logger.php', 'Aivexa_Security' => 'includes/class-security.php', 'Aivexa_Tool_Interface' => 'includes/tools/interface-tool.php', 'Aivexa_Calculator_Tool' => 'includes/tools/class-calculator-tool.php', 'Aivexa_Site_Search_Tool' => 'includes/tools/class-site-search-tool.php', 'Aivexa_Post_Search_Tool' => 'includes/tools/class-post-search-tool.php', 'Aivexa_Page_Search_Tool' => 'includes/tools/class-page-search-tool.php', 'Aivexa_Site_Info_Tool' => 'includes/tools/class-site-info-tool.php', 'Aivexa_Contact_Tool' => 'includes/tools/class-contact-tool.php', 'Aivexa_Admin' => 'admin/class-admin.php', 'Aivexa_Public' => 'public/class-public.php', ); if ( isset( $map[ $class_name ] ) ) { require_once AIVEXA_PLUGIN_DIR . $map[ $class_name ]; } } spl_autoload_register( 'aivexa_autoload' ); /** * Whether the WordPress AI Client API is available. */ function aivexa_ai_client_available(): bool { return function_exists( 'wp_ai_client_prompt' ); } /** * Admin notice when the AI Client API is missing. */ function aivexa_ai_client_missing_notice(): void { if ( ! current_user_can( 'activate_plugins' ) ) { return; } printf( '

%s

', esc_html__( 'Aivexa is active, but the WordPress AI Client API (wp_ai_client_prompt) is not available on this site. Chat features stay disabled until WordPress provides that API. Configure providers under Settings → Connectors once available.', 'aivexa' ) ); } /** * Run plugin activation. */ function aivexa_activate(): void { require_once AIVEXA_PLUGIN_DIR . 'includes/class-activator.php'; Aivexa_Activator::activate(); } /** * Run plugin deactivation. */ function aivexa_deactivate(): void { require_once AIVEXA_PLUGIN_DIR . 'includes/class-deactivator.php'; Aivexa_Deactivator::deactivate(); } register_activation_hook( __FILE__, 'aivexa_activate' ); register_deactivation_hook( __FILE__, 'aivexa_deactivate' ); /** * Initialize plugin. */ function aivexa_run(): void { if ( ! aivexa_ai_client_available() ) { add_action( 'admin_notices', 'aivexa_ai_client_missing_notice' ); } Aivexa_Abilities::init(); $plugin = Aivexa_Plugin::get_instance(); $plugin->run(); } add_action( 'plugins_loaded', 'aivexa_run' );