load_dependencies();
$this->init_hooks();
}
/**
* Load required dependencies.
*/
private function load_dependencies() {
// Core classes are autoloaded via spl_autoload_register in main plugin file.
// Ensure critical classes are loaded.
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-memory-functions.php';
// Load MCP classes.
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-mcp-rest-api.php';
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-mcp-server.php';
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-oauth-scopes.php';
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-mcp-oauth.php';
// Load admin classes.
if ( is_admin() ) {
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'admin/class-abilities-bridge-admin-page.php';
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'admin/class-abilities-bridge-settings-page.php';
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'admin/class-abilities-bridge-activity-log-page.php';
}
}
/**
* Initialize hooks.
*/
private function init_hooks() {
// Only run database upgrades in admin context, not during API requests.
if ( is_admin() && ! wp_doing_ajax() && ! ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) {
require_once ABILITIES_BRIDGE_PLUGIN_DIR . 'includes/class-abilities-bridge-database.php';
// Check if upgrade needed (version-based).
$db_version = get_option( 'abilities_bridge_db_version', '0' );
if ( version_compare( $db_version, ABILITIES_BRIDGE_VERSION, '<' ) ) {
Abilities_Bridge_Database::upgrade_database();
update_option( 'abilities_bridge_db_version', ABILITIES_BRIDGE_VERSION );
}
}
// Initialize MCP components.
$mcp_rest_api = new Abilities_Bridge_MCP_REST_API();
$mcp_rest_api->init();
$mcp_oauth = new Abilities_Bridge_MCP_OAuth();
$mcp_oauth->init();
// Initialize admin pages.
if ( is_admin() ) {
$admin_page = new Abilities_Bridge_Admin_Page();
$admin_page->init();
$settings_page = new Abilities_Bridge_Settings_Page();
$settings_page->init();
Abilities_Bridge_Activity_Log_Page::init();
}
// Add settings link to plugins page.
add_filter( 'plugin_action_links_' . ABILITIES_BRIDGE_PLUGIN_BASENAME, array( $this, 'add_action_links' ) );
}
/**
* Add action links to plugin list.
*
* @param array $links Existing links.
* @return array Modified links.
*/
public function add_action_links( $links ) {
$plugin_links = array(
'' . __( 'Dashboard', 'abilities-bridge' ) . '',
'' . __( 'Settings', 'abilities-bridge' ) . '',
);
return array_merge( $plugin_links, $links );
}
}