'core/get-site-info', 'enabled' => 1, 'max_per_day' => 1000, 'max_per_hour' => 100, 'risk_level' => 'low', 'requires_user_approval' => 0, 'requires_admin_approval' => 0, 'min_capability' => 'read', 'description' => 'Get WordPress site information (name, URL, version, etc.)', 'reason_for_approval' => 'Read-only operation, safe for site analysis', ), array( 'name' => 'core/get-user-info', 'enabled' => 1, 'max_per_day' => 1000, 'max_per_hour' => 100, 'risk_level' => 'low', 'requires_user_approval' => 0, 'requires_admin_approval' => 0, 'min_capability' => 'read', 'description' => 'Get current user information (name, role, capabilities)', 'reason_for_approval' => 'Read-only operation, helps the AI understand user context', ), array( 'name' => 'core/get-environment-info', 'enabled' => 1, 'max_per_day' => 1000, 'max_per_hour' => 100, 'risk_level' => 'low', 'requires_user_approval' => 0, 'requires_admin_approval' => 0, 'min_capability' => 'read', 'description' => 'Get server environment information (PHP version, server type, etc.)', 'reason_for_approval' => 'Read-only operation, helps with troubleshooting', ), ); foreach ( $default_abilities as $ability ) { // Check if already registered. $existing = Abilities_Bridge_Ability_Permissions::get_all_permissions( false ); $already_exists = false; foreach ( $existing as $existing_ability ) { if ( $existing_ability['ability_name'] === $ability['name'] ) { $already_exists = true; break; } } // Only register if not already registered. if ( ! $already_exists ) { Abilities_Bridge_Ability_Permissions::register_ability( $ability['name'], array( 'enabled' => $ability['enabled'], 'max_per_day' => $ability['max_per_day'], 'max_per_hour' => $ability['max_per_hour'], 'risk_level' => $ability['risk_level'], 'requires_user_approval' => $ability['requires_user_approval'], 'requires_admin_approval' => $ability['requires_admin_approval'], 'min_capability' => $ability['min_capability'], 'description' => $ability['description'], 'reason_for_approval' => $ability['reason_for_approval'], ) ); } } } } // Initialize MCP integration. Abilities_Bridge_MCP_Integration::init();