haive.agents.planning.rewoo.models.join_step ============================================ .. py:module:: haive.agents.planning.rewoo.models.join_step .. autoapi-nested-parse:: Join Step - Automatic DAG and Parallelization with Auto-detection. Inspired by haive.core.common.structures.tree, this implements a JoinStep that automatically detects parallel branches and creates join points for DAG execution. Similar to AutoTree's pattern of automatically detecting BaseModel relationships, JoinStep automatically detects step dependencies and creates optimal join points for parallel execution. Classes ------- .. autoapisummary:: haive.agents.planning.rewoo.models.join_step.JoinStep haive.agents.planning.rewoo.models.join_step.JoinStrategy Module Contents --------------- .. py:class:: JoinStep(**data) Bases: :py:obj:`haive.agents.planning.rewoo.models.steps.AbstractStep` A step that automatically creates join points for parallel execution. Like AutoTree automatically detects BaseModel relationships, JoinStep automatically detects dependency patterns and creates optimal join points. This enables automatic DAG creation where parallel branches are automatically detected and joined at the optimal points. Init . :returns: Add return description] :rtype: [TODO .. py:method:: analyze_dag_structure(steps) :classmethod: Analyze entire DAG structure and suggest join optimizations. Like AutoTree's tree analysis, this provides DAG-wide analysis. .. py:method:: analyze_dependency_patterns(all_steps) Analyze dependency patterns across all steps to detect DAG structure. Similar to how AutoTree analyzes type relationships, this analyzes step dependency relationships to detect optimal parallelization. .. py:method:: can_execute(completed_steps) Check if this join step can execute based on strategy. .. py:method:: create_auto_join(description, dependencies, strategy = JoinStrategy.WAIT_ALL, **kwargs) :classmethod: Factory method to create a JoinStep with automatic detection. .. py:method:: execute(context) Execute the join operation. .. py:method:: get_join_info() Get comprehensive information about this join step. .. py:property:: can_optimize_parallel :type: bool Whether this join can be optimized for parallel execution. .. py:property:: estimated_wait_time :type: float Estimated wait time based on join strategy and branch count. .. py:property:: is_join_point :type: bool Whether this step is a join point (has multiple dependencies). .. py:property:: join_complexity :type: str Complexity classification of the join operation. .. py:property:: parallel_branch_count :type: int Number of parallel branches this step joins. .. py:class:: JoinStrategy Bases: :py:obj:`str`, :py:obj:`enum.Enum` Strategies for joining parallel branches. Initialize self. See help(type(self)) for accurate signature.