def probe_functionality(self, functionality: str):
        """
        Format and send a probe message to the hub to check if using a functionality is approved.

        Args:
            functionality (str): The functionality to be probed.

        Returns:
            tuple: A tuple containing the message type and the function schema if available.

        """
        # check whether the functionality is in the functionality list
        if functionality not in self.functionality_list:
            return None

        # format the functionality probe message
        probe_message = Message.function_probe_request(self.spoke_id, functionality)

        # make request to probe functionality request format
        self.child_sock.send(probe_message)
        response = self.child_sock.recv()

        if response["message_type"] == "function_probe_response":
            function_schema = response["functionality_offered"]
        else:
            function_schema = None

        return response["message_type"], function_schema

        Format and send a probe message to the hub to check if using a functionality is approved.

        Args:
            functionality (str): The functionality to be probed.

        Returns:
            tuple: A tuple containing the message type and the function schema if available.

        
llama-index-packs/llama-index-packs-secgpt/llama_index/packs/secgpt/spoke_operator.py