mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-10 22:43:37 +00:00
Normalize fabro_graphviz imports to use shorter re-exported paths
Replace fabro_graphviz::graph::types:: with fabro_graphviz::graph:: everywhere, since graph/mod.rs re-exports types::*. Also simplify the From<GraphvizError> impl. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b822a76f79
commit
49c7e329dd
7 changed files with 40 additions and 41 deletions
|
|
@ -11,7 +11,7 @@ use git2::{Oid, Repository, Signature};
|
|||
|
||||
use crate::checkpoint::Checkpoint;
|
||||
use crate::git::MetadataStore;
|
||||
use fabro_graphviz::graph::types::Graph;
|
||||
use fabro_graphviz::graph::Graph;
|
||||
|
||||
/// Rewind a workflow run to an earlier checkpoint.
|
||||
#[derive(Debug, Args)]
|
||||
|
|
@ -708,50 +708,50 @@ mod tests {
|
|||
#[test]
|
||||
fn parallel_interior_detection() {
|
||||
let mut graph = Graph::new("test");
|
||||
let mut parallel_node = fabro_graphviz::graph::types::Node::new("parallel1");
|
||||
let mut parallel_node = fabro_graphviz::graph::Node::new("parallel1");
|
||||
parallel_node.attrs.insert(
|
||||
"shape".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String("component".to_string()),
|
||||
fabro_graphviz::graph::AttrValue::String("component".to_string()),
|
||||
);
|
||||
graph.nodes.insert("parallel1".to_string(), parallel_node);
|
||||
|
||||
let mut fan_in = fabro_graphviz::graph::types::Node::new("fan_in1");
|
||||
let mut fan_in = fabro_graphviz::graph::Node::new("fan_in1");
|
||||
fan_in.attrs.insert(
|
||||
"shape".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String("tripleoctagon".to_string()),
|
||||
fabro_graphviz::graph::AttrValue::String("tripleoctagon".to_string()),
|
||||
);
|
||||
graph.nodes.insert("fan_in1".to_string(), fan_in);
|
||||
|
||||
let mut a = fabro_graphviz::graph::types::Node::new("a");
|
||||
let mut a = fabro_graphviz::graph::Node::new("a");
|
||||
a.attrs.insert(
|
||||
"shape".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String("box".to_string()),
|
||||
fabro_graphviz::graph::AttrValue::String("box".to_string()),
|
||||
);
|
||||
graph.nodes.insert("a".to_string(), a);
|
||||
|
||||
let mut b = fabro_graphviz::graph::types::Node::new("b");
|
||||
let mut b = fabro_graphviz::graph::Node::new("b");
|
||||
b.attrs.insert(
|
||||
"shape".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String("box".to_string()),
|
||||
fabro_graphviz::graph::AttrValue::String("box".to_string()),
|
||||
);
|
||||
graph.nodes.insert("b".to_string(), b);
|
||||
|
||||
graph.edges.push(fabro_graphviz::graph::types::Edge {
|
||||
graph.edges.push(fabro_graphviz::graph::Edge {
|
||||
from: "parallel1".to_string(),
|
||||
to: "a".to_string(),
|
||||
attrs: HashMap::new(),
|
||||
});
|
||||
graph.edges.push(fabro_graphviz::graph::types::Edge {
|
||||
graph.edges.push(fabro_graphviz::graph::Edge {
|
||||
from: "parallel1".to_string(),
|
||||
to: "b".to_string(),
|
||||
attrs: HashMap::new(),
|
||||
});
|
||||
graph.edges.push(fabro_graphviz::graph::types::Edge {
|
||||
graph.edges.push(fabro_graphviz::graph::Edge {
|
||||
from: "a".to_string(),
|
||||
to: "fan_in1".to_string(),
|
||||
attrs: HashMap::new(),
|
||||
});
|
||||
graph.edges.push(fabro_graphviz::graph::types::Edge {
|
||||
graph.edges.push(fabro_graphviz::graph::Edge {
|
||||
from: "b".to_string(),
|
||||
to: "fan_in1".to_string(),
|
||||
attrs: HashMap::new(),
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ fn resolve_cli_goal(
|
|||
/// Apply goal to the graph from TOML config or CLI flag.
|
||||
/// Precedence: CLI `--goal` / `--goal-file` > TOML `goal` > DOT `graph [goal="..."]`.
|
||||
fn apply_goal_override(
|
||||
graph: &mut fabro_graphviz::graph::types::Graph,
|
||||
graph: &mut fabro_graphviz::graph::Graph,
|
||||
cli_goal: Option<&str>,
|
||||
toml_goal: Option<&str>,
|
||||
) {
|
||||
|
|
@ -68,7 +68,7 @@ fn apply_goal_override(
|
|||
debug!(goal = %goal, "overriding graph goal");
|
||||
graph.attrs.insert(
|
||||
"goal".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String(goal.to_string()),
|
||||
fabro_graphviz::graph::AttrValue::String(goal.to_string()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -81,7 +81,7 @@ fn resolve_model_provider(
|
|||
cli_provider: Option<&str>,
|
||||
run_cfg: Option<&WorkflowRunConfig>,
|
||||
run_defaults: &RunDefaults,
|
||||
graph: &fabro_graphviz::graph::types::Graph,
|
||||
graph: &fabro_graphviz::graph::Graph,
|
||||
) -> (String, Option<String>) {
|
||||
let toml_model = run_cfg
|
||||
.and_then(|c| c.llm.as_ref())
|
||||
|
|
@ -403,13 +403,13 @@ pub async fn run_command(
|
|||
apply_goal_override(&mut graph, cli_goal.as_deref(), toml_goal);
|
||||
|
||||
// Inline @file references in the (possibly overridden) goal
|
||||
if let Some(fabro_graphviz::graph::types::AttrValue::String(goal)) = graph.attrs.get("goal") {
|
||||
if let Some(fabro_graphviz::graph::AttrValue::String(goal)) = graph.attrs.get("goal") {
|
||||
let fallback = dirs::home_dir().map(|h| h.join(".fabro"));
|
||||
let resolved = crate::transform::resolve_file_ref(goal, dot_dir, fallback.as_deref());
|
||||
if resolved != *goal {
|
||||
graph.attrs.insert(
|
||||
"goal".to_string(),
|
||||
fabro_graphviz::graph::types::AttrValue::String(resolved),
|
||||
fabro_graphviz::graph::AttrValue::String(resolved),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -1928,7 +1928,7 @@ fn print_assets(run_dir: &std::path::Path, styles: &Styles) {
|
|||
/// a styled check report.
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
async fn run_preflight(
|
||||
graph: &fabro_graphviz::graph::types::Graph,
|
||||
graph: &fabro_graphviz::graph::Graph,
|
||||
run_cfg: &Option<run_config::WorkflowRunConfig>,
|
||||
args: &RunArgs,
|
||||
run_defaults: &RunDefaults,
|
||||
|
|
@ -2113,7 +2113,7 @@ async fn run_preflight(
|
|||
// Collect all distinct (model, provider) pairs from LLM nodes
|
||||
let mut model_providers = std::collections::BTreeSet::new();
|
||||
for node in graph.nodes.values() {
|
||||
if !fabro_graphviz::graph::types::is_llm_handler_type(node.handler_type()) {
|
||||
if !fabro_graphviz::graph::is_llm_handler_type(node.handler_type()) {
|
||||
continue;
|
||||
}
|
||||
let node_model = node.model().unwrap_or(&model);
|
||||
|
|
@ -2501,7 +2501,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn apply_goal_override_cli_wins_over_toml() {
|
||||
use fabro_graphviz::graph::types::{AttrValue, Graph};
|
||||
use fabro_graphviz::graph::{AttrValue, Graph};
|
||||
let mut graph = Graph::new("test");
|
||||
graph.attrs.insert(
|
||||
"goal".to_string(),
|
||||
|
|
@ -2513,7 +2513,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn apply_goal_override_toml_wins_over_dot() {
|
||||
use fabro_graphviz::graph::types::{AttrValue, Graph};
|
||||
use fabro_graphviz::graph::{AttrValue, Graph};
|
||||
let mut graph = Graph::new("test");
|
||||
graph.attrs.insert(
|
||||
"goal".to_string(),
|
||||
|
|
@ -2525,7 +2525,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn apply_goal_override_noop_when_none() {
|
||||
use fabro_graphviz::graph::types::{AttrValue, Graph};
|
||||
use fabro_graphviz::graph::{AttrValue, Graph};
|
||||
let mut graph = Graph::new("test");
|
||||
graph.attrs.insert(
|
||||
"goal".to_string(),
|
||||
|
|
@ -2558,7 +2558,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_defaults() {
|
||||
let graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
let graph = fabro_graphviz::graph::Graph::new("test");
|
||||
let defaults = RunDefaults::default();
|
||||
let (model, provider) = resolve_model_provider(None, None, None, &defaults, &graph);
|
||||
assert_eq!(model, "claude-opus-4-6");
|
||||
|
|
@ -2568,7 +2568,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_cli_overrides_toml() {
|
||||
let graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
let graph = fabro_graphviz::graph::Graph::new("test");
|
||||
let defaults = RunDefaults::default();
|
||||
let cfg = run_config::WorkflowRunConfig {
|
||||
version: 1,
|
||||
|
|
@ -2603,8 +2603,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_toml_overrides_graph() {
|
||||
use fabro_graphviz::graph::types::AttrValue;
|
||||
let mut graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
use fabro_graphviz::graph::AttrValue;
|
||||
let mut graph = fabro_graphviz::graph::Graph::new("test");
|
||||
graph.attrs.insert(
|
||||
"default_model".to_string(),
|
||||
AttrValue::String("graph-model".to_string()),
|
||||
|
|
@ -2642,8 +2642,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_graph_attrs_used_as_fallback() {
|
||||
use fabro_graphviz::graph::types::AttrValue;
|
||||
let mut graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
use fabro_graphviz::graph::AttrValue;
|
||||
let mut graph = fabro_graphviz::graph::Graph::new("test");
|
||||
graph.attrs.insert(
|
||||
"default_model".to_string(),
|
||||
AttrValue::String("gpt-5.2".to_string()),
|
||||
|
|
@ -2661,7 +2661,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_alias_expansion() {
|
||||
let graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
let graph = fabro_graphviz::graph::Graph::new("test");
|
||||
let defaults = RunDefaults::default();
|
||||
let (model, provider) = resolve_model_provider(Some("opus"), None, None, &defaults, &graph);
|
||||
assert_eq!(model, "claude-opus-4-6");
|
||||
|
|
@ -2670,7 +2670,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_run_defaults_used() {
|
||||
let graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
let graph = fabro_graphviz::graph::Graph::new("test");
|
||||
let defaults = RunDefaults {
|
||||
llm: Some(run_config::LlmConfig {
|
||||
model: Some("default-model".to_string()),
|
||||
|
|
@ -2686,7 +2686,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn resolve_model_provider_toml_overrides_run_defaults() {
|
||||
let graph = fabro_graphviz::graph::types::Graph::new("test");
|
||||
let graph = fabro_graphviz::graph::Graph::new("test");
|
||||
let defaults = RunDefaults {
|
||||
llm: Some(run_config::LlmConfig {
|
||||
model: Some("default-model".to_string()),
|
||||
|
|
|
|||
|
|
@ -419,9 +419,8 @@ impl From<SdkError> for FabroError {
|
|||
|
||||
impl From<fabro_graphviz::error::GraphvizError> for FabroError {
|
||||
fn from(e: fabro_graphviz::error::GraphvizError) -> Self {
|
||||
match e {
|
||||
fabro_graphviz::error::GraphvizError::Parse(msg) => FabroError::Parse(msg),
|
||||
}
|
||||
let fabro_graphviz::error::GraphvizError::Parse(msg) = e;
|
||||
Self::Parse(msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ impl Handler for SubWorkflowHandler {
|
|||
let poll_interval = node
|
||||
.attrs
|
||||
.get("manager.poll_interval")
|
||||
.and_then(fabro_graphviz::graph::types::AttrValue::as_duration)
|
||||
.and_then(fabro_graphviz::graph::AttrValue::as_duration)
|
||||
.unwrap_or_else(|| {
|
||||
let raw = node
|
||||
.attrs
|
||||
|
|
@ -108,7 +108,7 @@ impl Handler for SubWorkflowHandler {
|
|||
let max_cycles = node
|
||||
.attrs
|
||||
.get("manager.max_cycles")
|
||||
.and_then(fabro_graphviz::graph::types::AttrValue::as_i64)
|
||||
.and_then(fabro_graphviz::graph::AttrValue::as_i64)
|
||||
.unwrap_or(1000);
|
||||
let max_cycles = u64::try_from(max_cycles).unwrap_or(1000).max(1);
|
||||
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ impl Handler for ParallelHandler {
|
|||
let max_parallel = node
|
||||
.attrs
|
||||
.get("max_parallel")
|
||||
.and_then(fabro_graphviz::graph::types::AttrValue::as_i64)
|
||||
.and_then(fabro_graphviz::graph::AttrValue::as_i64)
|
||||
.unwrap_or(4);
|
||||
let max_parallel = usize::try_from(max_parallel).unwrap_or(4).max(1);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::error::FabroError;
|
||||
use fabro_graphviz::graph::types::{AttrValue, Graph};
|
||||
use fabro_graphviz::graph::{AttrValue, Graph};
|
||||
|
||||
/// A parsed stylesheet selector.
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
|
|
@ -235,7 +235,7 @@ pub fn apply_stylesheet(stylesheet: &Stylesheet, graph: &mut Graph) {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use fabro_graphviz::graph::types::Node;
|
||||
use fabro_graphviz::graph::Node;
|
||||
|
||||
#[test]
|
||||
fn parse_empty_stylesheet() {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::path::Path;
|
|||
|
||||
use fabro_graphviz::parser::parse;
|
||||
|
||||
fn parse_attractor_dot(filename: &str) -> Result<fabro_graphviz::graph::types::Graph, String> {
|
||||
fn parse_attractor_dot(filename: &str) -> Result<fabro_graphviz::graph::Graph, String> {
|
||||
let path = Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("../../../test/attractor")
|
||||
.join(filename);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue