core.graph
Dependency graph construction and condition evaluation.
Pure functions for building execution dependency graphs from prompt lists, determining which prompts are ready for execution, and evaluating prompt conditions.
Dependency graph construction and condition evaluation.
Pure functions for building execution dependency graphs from prompt lists, determining which prompts are ready for execution, and evaluating prompt conditions.
- class DependencyEdge(from_seq, to_seq, source, condition_text=None)[source]
Bases:
objectA single dependency edge in the execution graph.
- class ExecutionGraph(nodes=<factory>, edges=<factory>, max_level=0)[source]
Bases:
objectComplete execution graph with dependency metadata.
- Parameters:
nodes (dict[int, PromptNode])
edges (list[DependencyEdge])
max_level (int)
- nodes
Dictionary mapping sequence numbers to PromptNodes.
- Type:
- edges
List of all dependency edges with source information.
- nodes: dict[int, PromptNode]
- edges: list[DependencyEdge]
- build_execution_graph(prompts)[source]
Build dependency graph for parallel execution.
Delegates to build_execution_graph_with_edges and returns only the nodes dict for backward compatibility.
- Parameters:
prompts (Sequence[dict[str, Any]]) – List of prompt dictionaries with sequence, prompt_name, history, and condition fields.
- Returns:
Dictionary mapping sequence numbers to PromptNodes.
- Raises:
ValueError – If a dependency cycle is detected.
- Return type:
- build_execution_graph_with_edges(prompts)[source]
Build execution graph with full edge source metadata.
- Parameters:
prompts (Sequence[dict[str, Any]]) – List of prompt dictionaries.
- Returns:
ExecutionGraph with nodes, edges, and max_level.
- Raises:
ValueError – If a dependency cycle is detected.
- Return type:
- get_ready_prompts(state, nodes)[source]
Get prompts ready for execution (all dependencies completed).
- Parameters:
state (ExecutionState) – Current execution state.
nodes (dict[int, PromptNode]) – Execution graph nodes.
- Returns:
List of PromptNodes ready for execution, sorted by level and sequence.
- Return type:
- evaluate_condition(prompt, results_by_name, condition_field='condition')[source]
Evaluate a prompt’s condition.
- Parameters:
- Returns:
Tuple of (should_execute, condition_result, condition_error).
- Return type:
- evaluate_condition_with_trace(prompt, results_by_name, condition_field='condition')[source]
Evaluate a prompt’s condition and return the resolved trace.
- Parameters:
- Returns:
Tuple of (should_execute, condition_result, condition_error, condition_trace).
- Return type:
Classes
- class DependencyEdge(from_seq, to_seq, source, condition_text=None)[source]
Bases:
objectA single dependency edge in the execution graph.
- class ExecutionGraph(nodes=<factory>, edges=<factory>, max_level=0)[source]
Bases:
objectComplete execution graph with dependency metadata.
- Parameters:
nodes (dict[int, PromptNode])
edges (list[DependencyEdge])
max_level (int)
- nodes
Dictionary mapping sequence numbers to PromptNodes.
- Type:
- edges
List of all dependency edges with source information.
- nodes: dict[int, PromptNode]
- edges: list[DependencyEdge]
Functions
- build_execution_graph(prompts)[source]
Build dependency graph for parallel execution.
Delegates to build_execution_graph_with_edges and returns only the nodes dict for backward compatibility.
- Parameters:
prompts (Sequence[dict[str, Any]]) – List of prompt dictionaries with sequence, prompt_name, history, and condition fields.
- Returns:
Dictionary mapping sequence numbers to PromptNodes.
- Raises:
ValueError – If a dependency cycle is detected.
- Return type:
- build_execution_graph_with_edges(prompts)[source]
Build execution graph with full edge source metadata.
- Parameters:
prompts (Sequence[dict[str, Any]]) – List of prompt dictionaries.
- Returns:
ExecutionGraph with nodes, edges, and max_level.
- Raises:
ValueError – If a dependency cycle is detected.
- Return type:
- evaluate_condition(prompt, results_by_name, condition_field='condition')[source]
Evaluate a prompt’s condition.
- Parameters:
- Returns:
Tuple of (should_execute, condition_result, condition_error).
- Return type:
- evaluate_condition_with_trace(prompt, results_by_name, condition_field='condition')[source]
Evaluate a prompt’s condition and return the resolved trace.
- Parameters:
- Returns:
Tuple of (should_execute, condition_result, condition_error, condition_trace).
- Return type:
- get_ready_prompts(state, nodes)[source]
Get prompts ready for execution (all dependencies completed).
- Parameters:
state (ExecutionState) – Current execution state.
nodes (dict[int, PromptNode]) – Execution graph nodes.
- Returns:
List of PromptNodes ready for execution, sorted by level and sequence.
- Return type: