# aduc_framework/engineers/deformes_2D.py # # Copyright (C) August 4, 2025 Carlos Rodrigues dos Santos # # Versão 1.0.0 (High-Level Task Fragmenter) import logging from typing import List, Dict, Any logger = logging.getLogger(__name__) class Deformes2D: """ O Deformes2D atua como o Engenheiro-Chefe da pré-produção. Sua responsabilidade é receber a demanda inicial e fragmentá-la em um plano de execução de alto nível para o Composer. Ele NÃO interage diretamente com o LLM. """ def create_pre_production_plan( self, global_prompt: str, num_scenes: int, max_duration_per_act: float ) -> List[Dict[str, Any]]: """ Cria a lista de tarefas estratégicas para a pré-produção. """ logger.info("Deformes2D: Criando plano de execução de pré-produção...") # Este é o "Plano da Obra" execution_plan = [ { "task_id": "PREPROD_01_CATALOG_ASSETS", "description": "Catalogar todos os assets visuais (cenários, personagens, objetos).", "inputs": {"global_prompt": global_prompt}, "status": "pending" }, { "task_id": "PREPROD_02_SCORE_ASSETS", "description": "Pontuar a relevância de cada asset para o contexto global.", "inputs": {"global_prompt": global_prompt}, "depends_on": "PREPROD_01_CATALOG_ASSETS", "status": "pending" }, { "task_id": "PREPROD_03_CREATE_SUMMARY", "description": "Criar um resumo narrativo da história.", "inputs": {"global_prompt": global_prompt, "num_scenes": num_scenes}, "depends_on": "PREPROD_02_SCORE_ASSETS", "status": "pending" }, { "task_id": "PREPROD_04_FRAGMENT_SCENES", "description": "Fragmentar o resumo da história em cenas principais.", "inputs": {"num_scenes": num_scenes}, "depends_on": "PREPROD_03_CREATE_SUMMARY", "status": "pending" }, { "task_id": "PREPROD_05_REVIEW_PLAN", "description": "Revisar o plano de cenas e fazer ajustes de coerência.", "inputs": {}, "depends_on": "PREPROD_04_FRAGMENT_SCENES", "status": "pending" }, { "task_id": "PREPROD_06_FRAGMENT_ACTS", "description": "Fragmentar cada cena em atos cinematográficos.", "inputs": {"max_duration_per_act": max_duration_per_act}, "depends_on": "PREPROD_05_REVIEW_PLAN", "status": "pending" } ] logger.info(f"Deformes2D: Plano de execução com {len(execution_plan)} tarefas criado.") return execution_plan # Instância Singleton deformes_2d_singleton = Deformes2D()