def invoke_format(self) -> str:
        """Gets the format string for invoking this command with arguments.

        Returns either the custom signature with argument placeholders replaced,
        or a default format of "command arg1 arg2 ...".
        """
        if self.signature:
            # First validate that all arguments are present in the original signature
            if not all(
                f"<{arg.name}>" in self.signature
                or f"[<{arg.name}>]" in self.signature
                or f"{{{arg.name}}}" in self.signature
                for arg in self.arguments
            ):
                msg = (
                    f"Missing arguments in signature: {self.signature}. Did you format the signature correctly? "
                    "You must include all argument names in the signature with <name>, [<name>], or {name} notation."
                )
                raise ValueError(msg)

            # Then do the replacement
            return re.sub(rf"\[?<({ARGUMENT_NAME_PATTERN})>\]?", r"{\1}", self.signature)
        else:
            # cmd arg_format_1 arg_format_2 ...
            _invoke_format = f"{self.name} "
            for arg in self.arguments:
                _invoke_format += f"{{{arg.name}}} "
            return _invoke_format
Gets the format string for invoking this command with arguments.

        Returns either the custom signature with argument placeholders replaced,
        or a default format of "command arg1 arg2 ...".
        
sweagent/tools/commands.py