def run(
        self, job_type: str, video_generation_comparison: list, *args, **kwargs
    ) -> AgentResponse:
        """
        Compare outputs from multiple runs of video generation

        :param str job_type: Type of comparison to perform
        :param list video_generation_comparison: Parameters for video gen runs
        :param args: Additional positional arguments
        :param kwargs: Additional keyword arguments
        :return: Response containing comparison results
        :rtype: AgentResponse
        """
        try:
            if job_type == "video_generation_comparison":
                self.videos_content = VideosContent(
                    agent_name=self.agent_name,
                    ui_config=VideosContentUIConfig(columns=3),
                    status=MsgStatus.progress,
                    status_message="Generating videos (Usually takes 3-7 mins)",
                    videos=[],
                )
                for params in video_generation_comparison:
                    video_data = VideoData(
                        name=params["text_to_video"]["name"],
                        stream_url="",
                    )
                    self.videos_content.videos.append(video_data)

                self.output_message.content.append(self.videos_content)
                self.output_message.push_update()

                self.run_tasks(video_generation_comparison)

                self.videos_content.status = MsgStatus.success
                self.videos_content.status_message = "Here are your generated videos"
                agent_response_message = f"Video generation comparison complete with {len(self.videos_content.videos)} videos"
                for video in self.videos_content.videos:
                    if video.error:
                        agent_response_message += (
                            f"\n Failed Video : {video.name}: Reason {video.error}"
                        )
                return AgentResponse(
                    status=AgentStatus.SUCCESS,
                    message=agent_response_message,
                    data={"videos": self.videos_content},
                )
            else:
                raise Exception(f"Unsupported comparison type: {job_type}")

        except Exception as e:
            logger.exception(f"Error in {self.agent_name} agent: {e}")
            return AgentResponse(status=AgentStatus.ERROR, message=str(e))

        Compare outputs from multiple runs of video generation

        :param str job_type: Type of comparison to perform
        :param list video_generation_comparison: Parameters for video gen runs
        :param args: Additional positional arguments
        :param kwargs: Additional keyword arguments
        :return: Response containing comparison results
        :rtype: AgentResponse
        
backend/director/agents/comparison.py