def run(self, query: str, *args, **kwargs) -> AgentResponse:
        """
        Get the answer to the query of agent

        :param query: Query for the pricing agent for estimation scenarios.
        :param args: Additional positional arguments.
        :param kwargs: Additional keyword arguments.
        :return: The response containing query output.
        :rtype: AgentResponse
        """
        try:
            text_content = TextContent(agent_name=self.agent_name)
            text_content.status_message = "Calculating pricing.."
            self.output_message.content.append(text_content)
            self.output_message.push_update()

            pricing_llm_prompt = f"{PRICING_AGENT_PROMPT} user query: {query}"
            pricing_llm_message = ContextMessage(
                content=pricing_llm_prompt, role=RoleTypes.user
            )
            llm_response = self.llm.chat_completions([pricing_llm_message.to_llm_msg()])

            if not llm_response.status:
                logger.error(f"LLM failed with {llm_response}")
                text_content.status = MsgStatus.failed
                text_content.status_message = "Failed to generate the response."
                self.output_message.publish()
                return AgentResponse(
                    status=AgentStatus.ERROR,
                    message="Pricing failed due to LLM error.",
                )
            text_content.text = llm_response.content
            text_content.status = MsgStatus.success
            text_content.status_message = "Pricing estimation is ready."
            self.output_message.publish()
        except Exception:
            logger.exception(f"Error in {self.agent_name}")
            error_message = "Error in calculating pricing."
            text_content.status = MsgStatus.error
            text_content.status_message = error_message
            self.output_message.publish()
            return AgentResponse(status=AgentStatus.ERROR, message=error_message)

        return AgentResponse(
            status=AgentStatus.SUCCESS,
            message="Agent run successful",
            data={
                "response": llm_response.content
            },
        )

        Get the answer to the query of agent

        :param query: Query for the pricing agent for estimation scenarios.
        :param args: Additional positional arguments.
        :param kwargs: Additional keyword arguments.
        :return: The response containing query output.
        :rtype: AgentResponse
        
backend/director/agents/pricing.py