def custom_selector_func()

in orchestration/strategies/multimodal_agent_strategy.py [0:0]


        def custom_selector_func(messages):
            """
            Selects the next agent based on the source of the last message.
            
            Transition Rules:
                user -> triage_agent
                triage_agent (ToolCallSummaryMessage) -> multimodal_creator
                multimodal_creator -> assistant
                Other -> None (SelectorGroupChat will handle transition)
            """            
            last_msg = messages[-1]
            logging.debug(f"[multimodal_agent_strategy] last message: {last_msg}")

            agent_selection = {
                "user": "triage_agent",
                "triage_agent": "multimodal_creator" if isinstance(last_msg, ToolCallSummaryMessage) else None,
                "multimodal_creator": "main_assistant",
                "main_assistant": "chat_closure",
            }

            selected_agent = agent_selection.get(last_msg.source)

            if selected_agent is None and last_msg.source == "triage_agent":
                selected_agent = "chat_closure"

            if selected_agent:
                logging.debug(f"[multimodal_agent_strategy] selected {selected_agent} agent")
                return selected_agent

            logging.debug("[multimodal_agent_strategy] selected None")
            return None