using MyAgent.Core; using MyAgent.Tools; using Xunit; namespace MyAgent.Tests.Core; public sealed class ExecutionPlanCompilerTests { [Fact] public void Compile_CreatesParallelToolsAndDependentAnalyst() { var compiler = new ExecutionPlanCompiler(new SubagentRegistry(), new ToolCatalog()); var decision = new PlannerDecisionEnvelope { NeedsTool = true, NeedsAnalysis = true, Route = new RouteDecision { WebPolicy = WebPolicy.Required }, Tools = [ new RouteToolRequest { Name = "web_search", Query = "one" }, new RouteToolRequest { Name = "web_fetch", Url = "https://example.com" } ] }; var plan = compiler.Compile(decision); Assert.Equal(3, plan.Nodes.Count); Assert.Empty(plan.Nodes[0].DependsOn); Assert.Empty(plan.Nodes[1].DependsOn); Assert.Equal(["tool-1", "tool-2"], plan.Nodes[2].DependsOn); Assert.Equal("analyst", plan.Nodes[2].AgentId); Assert.Equal(2, plan.MaxConcurrency); } }