#ifndef HUMANUS_FLOW_FACTORY_H #define HUMANUS_FLOW_FACTORY_H #include "base.h" #include "../agent/base.h" #include "flow_planning.h" namespace humanus { // Factory for creating different types of flows with support for multiple agents struct FlowFactory { static BaseFlow create_flow(FlowType flow_type, std::map> agents, std::vector> tools, std::string primary_agent_key) { switch (flow_type) { case FlowType::PLANNING: return std::make_shared(agents, tools, primary_agent_key); default: throw std::invalid_argument("Unknown flow type: " + std::to_string(static_cast(flow_type))); } } }; } #endif // HUMANUS_FLOW_FACTORY_H