diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8e3c64a..f7b3929 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,6 +46,7 @@ jobs:
run: |
dotnet test WorkflowFramework.slnx \
--configuration Release \
+ --no-restore \
--filter "Category!=E2E&Category!=UI" \
--collect:"XPlat Code Coverage" \
-- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura \
@@ -159,6 +160,7 @@ jobs:
run: |
dotnet test WorkflowFramework.slnx \
--configuration Release \
+ --no-restore \
--filter "Category!=E2E&Category!=UI" \
--collect:"XPlat Code Coverage" \
-- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura \
diff --git a/.gitignore b/.gitignore
index 805d873..704aa48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,3 +49,8 @@ docs/api/
*.db
*.db-shm
*.db-wal
+
+# Aspire AppHost and UITests use RestorePackagesWithLockFile=false; exclude their
+# ephemeral lock files that --use-lock-file can create at restore time.
+src/WorkflowFramework.Dashboard.AppHost/packages.lock.json
+tests/WorkflowFramework.Dashboard.UITests/packages.lock.json
diff --git a/benchmarks/WorkflowFramework.Benchmarks/packages.lock.json b/benchmarks/WorkflowFramework.Benchmarks/packages.lock.json
index 4c4c9c2..194344e 100644
--- a/benchmarks/WorkflowFramework.Benchmarks/packages.lock.json
+++ b/benchmarks/WorkflowFramework.Benchmarks/packages.lock.json
@@ -60,7 +60,9 @@
"resolved": "4.14.0",
"contentHash": "PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==",
"dependencies": {
- "Microsoft.CodeAnalysis.Analyzers": "3.11.0"
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0",
+ "System.Collections.Immutable": "9.0.0",
+ "System.Reflection.Metadata": "9.0.0"
}
},
"Microsoft.Diagnostics.NETCore.Client": {
@@ -85,7 +87,12 @@
"contentHash": "/OrJFKaojSR6TkUKtwh8/qA9XWNtxLrXMqvEb89dBSKCWjaGVTbKMYodIUgF5deCEtmd6GXuRerciXGl5bhZ7Q==",
"dependencies": {
"Microsoft.Diagnostics.NETCore.Client": "0.2.510501",
- "System.Reflection.TypeExtensions": "4.7.0"
+ "Microsoft.Win32.Registry": "5.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Reflection.TypeExtensions": "4.7.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Json": "8.0.5"
}
},
"Microsoft.DotNet.PlatformAbstractions": {
@@ -126,7 +133,8 @@
"Microsoft.Extensions.DependencyInjection": "6.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
- "Microsoft.Extensions.Options": "6.0.0"
+ "Microsoft.Extensions.Options": "6.0.0",
+ "System.Diagnostics.DiagnosticSource": "6.0.0"
}
},
"Microsoft.Extensions.Primitives": {
@@ -134,11 +142,25 @@
"resolved": "10.0.3",
"contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg=="
},
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
},
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
"Perfolizer": {
"type": "Transitive",
"resolved": "0.6.1",
@@ -157,6 +179,11 @@
"resolved": "9.0.5",
"contentHash": "cuzLM2MWutf9ZBEMPYYfd0DXwYdvntp7VCT6a/wvbKCa2ZuvGmW74xi+YBa2mrfEieAXqM4TNKlMmSnfAfpUoQ=="
},
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w=="
+ },
"System.Management": {
"type": "Transitive",
"resolved": "9.0.5",
@@ -165,11 +192,35 @@
"System.CodeDom": "9.0.5"
}
},
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "ANiqLu3DxW9kol/hMmTWbt3414t9ftdIuiIU7j80okq2YzAueo120M442xk1kDJWtmZTqWQn7wHDvMRipVOEOQ=="
+ },
"System.Reflection.TypeExtensions": {
"type": "Transitive",
"resolved": "4.7.0",
"contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
},
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
"workflowframework": {
"type": "Project",
"dependencies": {
@@ -181,6 +232,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -197,7 +249,9 @@
"contentHash": "568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==",
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.11.0",
- "Microsoft.CodeAnalysis.Common": "[4.14.0]"
+ "Microsoft.CodeAnalysis.Common": "[4.14.0]",
+ "System.Collections.Immutable": "9.0.0",
+ "System.Reflection.Metadata": "9.0.0"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -206,7 +260,8 @@
"resolved": "6.0.0",
"contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
@@ -246,6 +301,18 @@
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
"Microsoft.Extensions.Primitives": "10.0.3"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "8.0.5",
+ "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg=="
}
},
"net8.0": {
diff --git a/samples/WorkflowFramework.Samples.TaskStream/packages.lock.json b/samples/WorkflowFramework.Samples.TaskStream/packages.lock.json
index bfc5de5..ec60e7b 100644
--- a/samples/WorkflowFramework.Samples.TaskStream/packages.lock.json
+++ b/samples/WorkflowFramework.Samples.TaskStream/packages.lock.json
@@ -110,7 +110,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
@@ -222,7 +223,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"System.ClientModel": {
@@ -239,6 +241,11 @@
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
@@ -269,6 +276,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -300,6 +308,18 @@
"Microsoft.SemanticKernel.Connectors.AzureOpenAI": "1.71.0",
"Microsoft.SemanticKernel.Core": "1.71.0"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
}
}
diff --git a/samples/WorkflowFramework.Samples.VoiceWorkflows/packages.lock.json b/samples/WorkflowFramework.Samples.VoiceWorkflows/packages.lock.json
index 2c6cce0..df3dda3 100644
--- a/samples/WorkflowFramework.Samples.VoiceWorkflows/packages.lock.json
+++ b/samples/WorkflowFramework.Samples.VoiceWorkflows/packages.lock.json
@@ -110,7 +110,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
@@ -222,7 +223,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"System.ClientModel": {
@@ -239,6 +241,11 @@
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
@@ -255,6 +262,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -313,6 +321,18 @@
"Microsoft.SemanticKernel.Connectors.AzureOpenAI": "1.71.0",
"Microsoft.SemanticKernel.Core": "1.71.0"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
}
}
diff --git a/samples/WorkflowFramework.Samples.WebApi/packages.lock.json b/samples/WorkflowFramework.Samples.WebApi/packages.lock.json
index d6b3dec..b8aa7e8 100644
--- a/samples/WorkflowFramework.Samples.WebApi/packages.lock.json
+++ b/samples/WorkflowFramework.Samples.WebApi/packages.lock.json
@@ -17,23 +17,65 @@
"resolved": "8.0.0",
"contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
},
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Options": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "rwGWGY2Vg+8NWS+nOLrnf47K4EM1IsTffb2oOLrUyxlsq7WbVTTwTn5BUiViMZI+lLzSGVB5ItBo6hcB65uVaA=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg=="
+ },
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
},
"workflowframework": {
- "type": "Project"
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
+ }
},
"workflowframework.extensions.dependencyinjection": {
"type": "Project",
"dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
},
"workflowframework.extensions.hosting": {
"type": "Project",
"dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "[10.0.3, )",
+ "Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.DependencyInjection": "[1.0.0, )",
"WorkflowFramework.Extensions.Scheduling": "[1.0.0, )"
@@ -44,6 +86,56 @@
"dependencies": {
"WorkflowFramework": "[1.0.0, )"
}
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ehHItAEsfgyEaomzj+GG7wBModWKkpho7v08i1Y6FfkBA0T9qsBbcqn2PpMpYnZag+SxjIbqfeQIrLT01jGAWg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Options": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.3",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
}
}
}
diff --git a/samples/WorkflowFramework.Samples/packages.lock.json b/samples/WorkflowFramework.Samples/packages.lock.json
index 3706624..1a1e147 100644
--- a/samples/WorkflowFramework.Samples/packages.lock.json
+++ b/samples/WorkflowFramework.Samples/packages.lock.json
@@ -63,6 +63,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -103,6 +104,12 @@
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
"Microsoft.Extensions.Primitives": "10.0.3"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
}
}
}
diff --git a/src/WorkflowFramework.Dashboard.Api/packages.lock.json b/src/WorkflowFramework.Dashboard.Api/packages.lock.json
index f7579eb..182c20e 100644
--- a/src/WorkflowFramework.Dashboard.Api/packages.lock.json
+++ b/src/WorkflowFramework.Dashboard.Api/packages.lock.json
@@ -80,8 +80,12 @@
"dependencies": {
"Microsoft.Data.Sqlite.Core": "9.0.6",
"Microsoft.EntityFrameworkCore.Relational": "9.0.6",
+ "Microsoft.Extensions.Caching.Memory": "9.0.6",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
"Microsoft.Extensions.DependencyModel": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10"
+ "Microsoft.Extensions.Logging": "9.0.6",
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.AI": {
@@ -90,6 +94,9 @@
"contentHash": "hKLdKfwzwQ30Z5hA1DwHFvJJtRuyPmf41Es6t8DXW4PE/6caWK4qSDRY3i+QYmYbIVXnPlVR5xXQjYNz07giNg==",
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.2.0",
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.2",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.2",
"System.Numerics.Tensors": "10.0.2"
}
},
@@ -105,33 +112,139 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.AmbientMetadata.Application": {
"type": "Transitive",
"resolved": "9.5.0",
- "contentHash": "GHgq9tfncuDSaPtwd1od9It3omPuq5PmHDkTWC91VRy75SWvvT7AX+zyDEurp1+oYgLEObQ6PICv+hZvht8dig=="
+ "contentHash": "GHgq9tfncuDSaPtwd1od9It3omPuq5PmHDkTWC91VRy75SWvvT7AX+zyDEurp1+oYgLEObQ6PICv+hZvht8dig==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.5",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.2"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "9.0.6",
+ "contentHash": "qPW2d798tBPZcRmrlaBJqyChf2+0odDdE+0Lxvrr0ywkSNl1oNMK8AKrOfDwyXyjuLCv0ua7p6nrUExCeXhCcg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "9.0.6",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.6",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
+ "Microsoft.Extensions.Options": "9.0.6",
+ "Microsoft.Extensions.Primitives": "9.0.6"
+ }
},
"Microsoft.Extensions.Compliance.Abstractions": {
"type": "Transitive",
"resolved": "9.5.0",
- "contentHash": "jK7bWPhu60GvcVSqMXOdV6ZLOP5rnwvmlqSD2E5fTkAXwoGYUV/5U3tQbvlZtOpeXTu509eg2VEb+l66d7dtSg=="
+ "contentHash": "jK7bWPhu60GvcVSqMXOdV6ZLOP5rnwvmlqSD2E5fTkAXwoGYUV/5U3tQbvlZtOpeXTu509eg2VEb+l66d7dtSg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
+ "Microsoft.Extensions.ObjectPool": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "uYXLg2Gt8KUH5nT3u+TBpg9VrRcN5+2zPmIjqEHR4kOoBwsbtMDncEJw9HiLvZqGgIo2TR4oraibAoy5hXn2bQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Primitives": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "7pQ4Tkyofm8DFWFhqn9ZmG8qSAC2VitWleATj5qob9V9KtoxCVdwRtmiVl/ha3WAgjkEfW++JLWXox9MJwMgkg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.5"
+ }
},
"Microsoft.Extensions.DependencyInjection.AutoActivation": {
"type": "Transitive",
"resolved": "9.5.0",
- "contentHash": "JT0VpQl0yrkqdQB8IrN3IqI5frfH8BzuHSsHbNU0Y1qbG/F+gF6A7rBAZTR4NfxQHTwTrO7tnrrVixEmBQ/PyQ=="
+ "contentHash": "JT0VpQl0yrkqdQB8IrN3IqI5frfH8BzuHSsHbNU0Y1qbG/F+gF6A7rBAZTR4NfxQHTwTrO7tnrrVixEmBQ/PyQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.5"
+ }
},
"Microsoft.Extensions.DependencyModel": {
"type": "Transitive",
"resolved": "9.0.6",
"contentHash": "grVU1ixgMHp+kuhIgvEzhE73jXRY6XmxNBPWrotmbjB9AvJvkwHnIzm1JlOsPpyixFgnzreh/bFBMJAjveX+fQ=="
},
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "fRiUjmhm9e4vMp6WEO9MgWNxVtWSr4Pcgh1W4DyJIr8bRANlZz9JU7uicf7ShzMspDxo/9Ejo9zJ6qQZY0IhVw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.5",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Options": "10.0.3"
+ }
+ },
"Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
"type": "Transitive",
"resolved": "9.5.0",
- "contentHash": "QKLs7fG05WqLyp5zOGENZ18XZzVJ2TCw7WTnsQcDwQqA34YOev2vBmIk4FwtPqPieGdqQhzcN032nZkKacIrdQ=="
+ "contentHash": "QKLs7fG05WqLyp5zOGENZ18XZzVJ2TCw7WTnsQcDwQqA34YOev2vBmIk4FwtPqPieGdqQhzcN032nZkKacIrdQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Features": {
+ "type": "Transitive",
+ "resolved": "8.0.15",
+ "contentHash": "QUBxyUDGAyHppX5lDgE5XogfQ9fFtm3o4Un8cb46OMinto5hgYfKj3zZTR68QHAqKIM1iOoO6qrh1UbHUZkDQw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "6vbo3XjyEc+w/kv/Dkfv9NA7iSdIdX5dlU9Shk3wJJ0fiZpCVzVW5FJtNoIePX5hS0ENNpHPClq/qtq06yM4FQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Diagnostics": "9.0.5",
+ "Microsoft.Extensions.Logging": "9.0.5",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Options": "9.0.5"
+ }
},
"Microsoft.Extensions.Http.Diagnostics": {
"type": "Transitive",
@@ -139,15 +252,67 @@
"contentHash": "K5VI2QA3Y2s675IyyhA34xKkUK0XZKgXU0ddXOkuCuHiEWLKs/McNVGP1Qw5B5UEGxrei7aj20Ssm+9JJ6yTlg==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.AutoActivation": "9.5.0",
- "Microsoft.Extensions.Telemetry": "9.5.0"
+ "Microsoft.Extensions.Http": "9.0.5",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5",
+ "Microsoft.Extensions.Telemetry": "9.5.0",
+ "System.IO.Pipelines": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "9.0.6",
+ "contentHash": "XBzjitTFaQhF8EbJ645vblZezV1p52ePTxKHoVkRidHF11Xkjxg94qr0Rvp2qyxK2vBJ4OIZ41NB15YUyxTGMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "9.0.6",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.6",
+ "Microsoft.Extensions.Options": "9.0.6"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "WgYTJ1/dxdzqaYYMrgC6cZXJVmaoxUmWgsvR9Kg5ZARpy0LMw7fZIZMIiVuaxhItwwFIW0ruhAN+Er2/oVZgmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.5",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Logging": "9.0.5",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Options": "9.0.5",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "C0VDKwSwNfc3YCLuno6Dip0un9LFmvuSvhpCC4ckpz6nrOmiM5JSJspQiY1dGCDRXJKFeZxa2hDpCLRL8WiBhw=="
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "CJbAVdovKPFh2FoKxesu20odRVSbL/vtvzzObnG+5u38sOfzRS2Ncy25id0TjYUGQzMhNnJUHgTUzTMDl/3c9g==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
+ "Microsoft.Extensions.Options": "9.0.5",
+ "Microsoft.Extensions.Primitives": "9.0.5"
}
},
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg=="
+ },
"Microsoft.Extensions.Resilience": {
"type": "Transitive",
"resolved": "9.5.0",
"contentHash": "KoL2rlNW/l+CWfiIFb8ZjBaqgY5DSnla5ZIxBvt5BdkGZ+xoe7ZMEw62FeQ+yot053VEPbPpZ/iTnX3zZ6kB3Q==",
"dependencies": {
+ "Microsoft.Extensions.Diagnostics": "9.0.5",
"Microsoft.Extensions.Diagnostics.ExceptionSummarization": "9.5.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5",
"Microsoft.Extensions.Telemetry.Abstractions": "9.5.0",
"Polly.Extensions": "8.4.2",
"Polly.RateLimiting": "8.4.2"
@@ -156,7 +321,16 @@
"Microsoft.Extensions.ServiceDiscovery.Abstractions": {
"type": "Transitive",
"resolved": "9.2.1",
- "contentHash": "Y6YmAkiJ9iPCmja2JCXe+jYanoHdaThX/uLfvQnUOW2rdbCRRUDh0BW96C//L7wSDDu2Jo4IMmbLJMRAblZpUg=="
+ "contentHash": "Y6YmAkiJ9iPCmja2JCXe+jYanoHdaThX/uLfvQnUOW2rdbCRRUDh0BW96C//L7wSDDu2Jo4IMmbLJMRAblZpUg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.2",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
+ "Microsoft.Extensions.Features": "8.0.15",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "Microsoft.Extensions.Options": "8.0.2",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
},
"Microsoft.Extensions.Telemetry": {
"type": "Transitive",
@@ -165,6 +339,8 @@
"dependencies": {
"Microsoft.Extensions.AmbientMetadata.Application": "9.5.0",
"Microsoft.Extensions.DependencyInjection.AutoActivation": "9.5.0",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.5",
+ "Microsoft.Extensions.ObjectPool": "9.0.5",
"Microsoft.Extensions.Telemetry.Abstractions": "9.5.0"
}
},
@@ -173,7 +349,10 @@
"resolved": "9.5.0",
"contentHash": "vYQAUcMkW06G973ocSzJT5WFWSN7J5l3yZTQF99nUhWP/pJ1SjYBxXXCk/7jqYnBjFJgsmdrP+JxqJio/EvyQQ==",
"dependencies": {
- "Microsoft.Extensions.Compliance.Abstractions": "9.5.0"
+ "Microsoft.Extensions.Compliance.Abstractions": "9.5.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.5",
+ "Microsoft.Extensions.ObjectPool": "9.0.5",
+ "Microsoft.Extensions.Options": "9.0.5"
}
},
"Microsoft.Extensions.VectorData.Abstractions": {
@@ -265,6 +444,7 @@
"resolved": "1.71.0",
"contentHash": "z3yTf23PhJhEASnT57JQMt7AM+DpnSST4i+2Q59uk2CVZAFotiLJtI2MHyo3P+MegNy++Zf5gmBi31Ymq6pI/Q==",
"dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.2",
"Microsoft.SemanticKernel.Abstractions": "1.71.0",
"System.Numerics.Tensors": "10.0.2"
}
@@ -279,7 +459,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"OpenTelemetry": {
@@ -287,19 +468,25 @@
"resolved": "1.12.0",
"contentHash": "aIEu2O3xFOdwIVH0AJsIHPIMH1YuX18nzu7BHyaDNQ6NWSk4Zyrs9Pp6y8SATuSbvdtmvue4mj/QZ3838srbwA==",
"dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.0",
"OpenTelemetry.Api.ProviderBuilderExtensions": "1.12.0"
}
},
"OpenTelemetry.Api": {
"type": "Transitive",
"resolved": "1.12.0",
- "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw=="
+ "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw==",
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "9.0.0"
+ }
},
"OpenTelemetry.Api.ProviderBuilderExtensions": {
"type": "Transitive",
"resolved": "1.12.0",
"contentHash": "t6Vk1143BfiisCWYbRcyzkAuN6Aq5RkYtfOSMoqCIRMvtN9p1e1xzc0nWQ+fccNGOVgHn3aMK5xFn2+iWMcr8A==",
"dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
"OpenTelemetry.Api": "1.12.0"
}
},
@@ -308,6 +495,8 @@
"resolved": "8.4.2",
"contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
"dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
"Polly.Core": "8.4.2"
}
},
@@ -316,7 +505,8 @@
"resolved": "8.4.2",
"contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
"dependencies": {
- "Polly.Core": "8.4.2"
+ "Polly.Core": "8.4.2",
+ "System.Threading.RateLimiting": "8.0.0"
}
},
"SQLitePCLRaw.bundle_e_sqlite3": {
@@ -331,7 +521,10 @@
"SQLitePCLRaw.core": {
"type": "Transitive",
"resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw=="
+ "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
@@ -351,6 +544,7 @@
"resolved": "1.8.1",
"contentHash": "4oUQgw/vaO4FBOk3YsH40hbrjxRED1l95rRLvTMtHXfQxapXya9IfPpm/KgwValFFtYTfYGFOs/qzGmGyexicQ==",
"dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
"System.Memory.Data": "8.0.1"
}
},
@@ -363,18 +557,42 @@
"Microsoft.IdentityModel.Tokens": "8.0.1"
}
},
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "5WXo+3MGcnYn54+1ojf+kRzKq1Q6sDUnovujNJ2ky1nl1/kP3+PMil9LPbFvZ2mkhvAGmQcY07G2sfHat/v0Fw=="
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.3",
+ "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+ },
"System.Memory.Data": {
"type": "Transitive",
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
"contentHash": "EzimXy5WX7RJxf1pHBfolBApA4GR7qje1cY9XofD4C+cQepx0a5ZVlZjde8NHk+W1+6kltrbbfa8LIOVpTM6yQ=="
},
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
"workflowframework": {
- "type": "Project"
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
+ }
},
"workflowframework.dashboard.persistence": {
"type": "Project",
@@ -398,6 +616,8 @@
"workflowframework.extensions.agents": {
"type": "Project",
"dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -434,7 +654,9 @@
"contentHash": "r5hzM6Bhw4X3z28l5vmsaCPjk9VsQP4zaaY01THh1SAYjgTMVadYIvpNkCfmrv/Klks6aIf2A9eY7cpGZab/hg==",
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "9.0.6",
- "Microsoft.EntityFrameworkCore.Analyzers": "9.0.6"
+ "Microsoft.EntityFrameworkCore.Analyzers": "9.0.6",
+ "Microsoft.Extensions.Caching.Memory": "9.0.6",
+ "Microsoft.Extensions.Logging": "9.0.6"
}
},
"Microsoft.EntityFrameworkCore.Relational": {
@@ -443,7 +665,10 @@
"resolved": "9.0.6",
"contentHash": "Ht6OT17sYnO31Dx+hX72YHrc5kZt53g5napaw0FpyIekXCvb+gUVvufEG55Fa7taFm8ccy0Vzs+JVNR9NL0JlA==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "9.0.6"
+ "Microsoft.EntityFrameworkCore": "9.0.6",
+ "Microsoft.Extensions.Caching.Memory": "9.0.6",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
+ "Microsoft.Extensions.Logging": "9.0.6"
}
},
"Microsoft.EntityFrameworkCore.Sqlite": {
@@ -453,9 +678,41 @@
"contentHash": "bVSdfFrqIo3ZeQfWYYfnVVanP1GWghkdw+MnEmZJz7jUwtdPQpBKHr0BW9dMizPamzU+SMA1Qu4nXuRTlKVAGQ==",
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite.Core": "9.0.6",
+ "Microsoft.Extensions.Caching.Memory": "9.0.6",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
"Microsoft.Extensions.DependencyModel": "9.0.6",
+ "Microsoft.Extensions.Logging": "9.0.6",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.2",
+ "contentHash": "J/Zmp6fY93JbaiZ11ckWvcyxMPjD6XVwIHQXBjryTBgn7O6O20HYg9uVLFcZlNfgH78MnreE/7EH+hjfzn7VyA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.3",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.3"
}
},
"Microsoft.Extensions.Http.Resilience": {
@@ -464,16 +721,45 @@
"resolved": "9.5.0",
"contentHash": "6+D5dTm6t+Rg93ODzQ/obWuUxl+YPEm6bU4lz6dA2lxPjJmqbsUKP3l2bXlMcahj3EFj9n4gpRD7fzF46q+ecQ==",
"dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "9.0.5",
"Microsoft.Extensions.Http.Diagnostics": "9.5.0",
+ "Microsoft.Extensions.ObjectPool": "9.0.5",
"Microsoft.Extensions.Resilience": "9.5.0"
}
},
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
"Microsoft.Extensions.ServiceDiscovery": {
"type": "CentralTransitive",
"requested": "[9.2.1, )",
"resolved": "9.2.1",
"contentHash": "7hX4v/B4/i7HiBSrfNn2OWq6IKv8Z4ip8+RlVddfxilFKgOt3ci3e8umHiGukZ5svebqDUxuIHrgv9jNivviFQ==",
"dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.2",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
+ "Microsoft.Extensions.Features": "8.0.15",
+ "Microsoft.Extensions.Http": "8.0.1",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "Microsoft.Extensions.Options": "8.0.2",
+ "Microsoft.Extensions.Primitives": "8.0.0",
"Microsoft.Extensions.ServiceDiscovery.Abstractions": "9.2.1"
}
},
@@ -502,6 +788,7 @@
"resolved": "1.12.0",
"contentHash": "6/8O6rsJRwslg5/Fm3bscBelw4Yh9T9CN24p7cAsuEFkrmmeSO9gkYUCK02Qi+CmPM2KHYTLjKi0lJaCsDMWQA==",
"dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.0",
"OpenTelemetry": "1.12.0"
}
},
@@ -520,6 +807,8 @@
"resolved": "1.12.0",
"contentHash": "0rW+MbHgUQAdbvBtRxPYoQBosbNdWegL7cYkRlxq+KQ/VFyU8itt4pWTccmu1/FWmTgqJyT3LaujyDZoRrm8Yg==",
"dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.0",
+ "Microsoft.Extensions.Options": "9.0.0",
"OpenTelemetry.Api.ProviderBuilderExtensions": "[1.12.0, 2.0.0)"
}
},
@@ -537,6 +826,18 @@
"requested": "[8.6.0, )",
"resolved": "8.4.2",
"contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
}
}
diff --git a/src/WorkflowFramework.Dashboard.AppHost/WorkflowFramework.Dashboard.AppHost.csproj b/src/WorkflowFramework.Dashboard.AppHost/WorkflowFramework.Dashboard.AppHost.csproj
index f1edc71..acb155b 100644
--- a/src/WorkflowFramework.Dashboard.AppHost/WorkflowFramework.Dashboard.AppHost.csproj
+++ b/src/WorkflowFramework.Dashboard.AppHost/WorkflowFramework.Dashboard.AppHost.csproj
@@ -9,6 +9,10 @@
true
false
false false
+
+ false
diff --git a/src/WorkflowFramework.Dashboard.AppHost/packages.lock.json b/src/WorkflowFramework.Dashboard.AppHost/packages.lock.json
deleted file mode 100644
index 1bad767..0000000
--- a/src/WorkflowFramework.Dashboard.AppHost/packages.lock.json
+++ /dev/null
@@ -1,671 +0,0 @@
-{
- "version": 2,
- "dependencies": {
- "net10.0": {
- "Aspire.Dashboard.Sdk.win-x64": {
- "type": "Direct",
- "requested": "[9.2.1, )",
- "resolved": "9.2.1",
- "contentHash": "Ps8SfLO0BfNfKhthJ8o+3Rd6ritF2eCafCcWW9vfdT9wcMvn9pujPWPMJo6XVjk1C3zHrPyva9UMTbOT48HKTg=="
- },
- "Aspire.Hosting.AppHost": {
- "type": "Direct",
- "requested": "[9.2.1, )",
- "resolved": "9.2.1",
- "contentHash": "fnJKXvMD82ma7nEug+b9BZq0zUcyD+TJZei+f7BWkfRrTKznch56P2hNWmQHCRG0ZicTB6SbKuRtVa3i7uFf1Q==",
- "dependencies": {
- "AspNetCore.HealthChecks.Uris": "9.0.0",
- "Aspire.Hosting": "9.2.1",
- "Google.Protobuf": "3.30.1",
- "Grpc.AspNetCore": "2.70.0",
- "Grpc.Net.ClientFactory": "2.70.0",
- "Grpc.Tools": "2.71.0",
- "Humanizer.Core": "2.14.1",
- "JsonPatch.Net": "3.3.0",
- "KubernetesClient": "16.0.2",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Binder": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Diagnostics.HealthChecks": "9.0.4",
- "Microsoft.Extensions.Hosting": "9.0.4",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
- "Microsoft.Extensions.Http": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4",
- "Newtonsoft.Json": "13.0.3",
- "Polly.Core": "8.5.2",
- "StreamJsonRpc": "2.21.69",
- "System.IO.Hashing": "9.0.3"
- }
- },
- "Aspire.Hosting.Orchestration.win-x64": {
- "type": "Direct",
- "requested": "[9.2.1, )",
- "resolved": "9.2.1",
- "contentHash": "zql5k3nKMwCBfpODLt/sy/nKsZM272+LV67e3ehv9Ec2+0mUuPRs2DGx9mzvh7sBYBq53pF7A7pn9E3V6FkOXw=="
- },
- "Microsoft.SourceLink.GitHub": {
- "type": "Direct",
- "requested": "[8.0.0, )",
- "resolved": "8.0.0",
- "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==",
- "dependencies": {
- "Microsoft.Build.Tasks.Git": "8.0.0",
- "Microsoft.SourceLink.Common": "8.0.0"
- }
- },
- "Aspire.Hosting": {
- "type": "Transitive",
- "resolved": "9.2.1",
- "contentHash": "Awidk6C7nris+LT3Yq48oihv5uVbGmP/4rpO1sLxvxwuxSXEnPkrB2MTGCCqr3Z/e68u9J54s6p8RBdIYwTe0w==",
- "dependencies": {
- "AspNetCore.HealthChecks.Uris": "9.0.0",
- "Google.Protobuf": "3.30.1",
- "Grpc.AspNetCore": "2.70.0",
- "Grpc.Net.ClientFactory": "2.70.0",
- "Grpc.Tools": "2.71.0",
- "Humanizer.Core": "2.14.1",
- "JsonPatch.Net": "3.3.0",
- "KubernetesClient": "16.0.2",
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Configuration.Binder": "8.0.2",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
- "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.15",
- "Microsoft.Extensions.Hosting": "8.0.1",
- "Microsoft.Extensions.Hosting.Abstractions": "8.0.1",
- "Microsoft.Extensions.Http": "8.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
- "Microsoft.Extensions.Options": "8.0.2",
- "Microsoft.Extensions.Primitives": "8.0.0",
- "Newtonsoft.Json": "13.0.3",
- "Polly.Core": "8.5.2",
- "StreamJsonRpc": "2.21.69",
- "System.IO.Hashing": "9.0.3"
- }
- },
- "AspNetCore.HealthChecks.Uris": {
- "type": "Transitive",
- "resolved": "9.0.0",
- "contentHash": "XYdNlA437KeF8p9qOpZFyNqAN+c0FXt/JjTvzH/Qans0q0O3pPE8KPnn39ucQQjR/Roum1vLTP3kXiUs8VHyuA==",
- "dependencies": {
- "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
- "Microsoft.Extensions.Http": "8.0.0"
- }
- },
- "Fractions": {
- "type": "Transitive",
- "resolved": "7.3.0",
- "contentHash": "2bETFWLBc8b7Ut2SVi+bxhGVwiSpknHYGBh2PADyGWONLkTxT7bKyDRhF8ao+XUv90tq8Fl7GTPxSI5bacIRJw=="
- },
- "Google.Protobuf": {
- "type": "Transitive",
- "resolved": "3.30.1",
- "contentHash": "HeWXDQBabQn/sCGicbeLJ0HMunknfC4FdLrOQOsaMJHcpqx3HVIpyyJqTrqJlWnza870twhOb+rBcaTiC/TlNA=="
- },
- "Grpc.AspNetCore": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "s29ST5F2/PZLzOnfqfeDn0emAZajBtYnV9G7hkbK8Eu9+XphoL3KfiEsg2eBsx7P9YYQXcksDbE+CbHApMZeJA==",
- "dependencies": {
- "Google.Protobuf": "3.27.0",
- "Grpc.AspNetCore.Server.ClientFactory": "2.70.0",
- "Grpc.Tools": "2.70.0"
- }
- },
- "Grpc.AspNetCore.Server": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "9d6JuMLSxwOX4zERV7HBwq1XL8DD48a6FSoxD5dDXrCz/o0HqMXE2+lRcXHckOlz1JCesznW8XMMJdsU1FfY7w==",
- "dependencies": {
- "Grpc.Net.Common": "2.70.0"
- }
- },
- "Grpc.AspNetCore.Server.ClientFactory": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "k4GrvUAgVWm7DyhnV55MHdX4bQSpZVEQmlZO3bdSmGZ+z6Hx+CwDlhqiReczCm6qbzSUbS1YW0t7z7UEObTwKA==",
- "dependencies": {
- "Grpc.AspNetCore.Server": "2.70.0",
- "Grpc.Net.ClientFactory": "2.70.0"
- }
- },
- "Grpc.Core.Api": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "66UotvWcSIq41oiQhLWcQACyKPM4umxXNiht5DQTLZJfNwEswWOcS7Z0xIEHyNIBE7ZpjotH22bEjTkvhPxmVw=="
- },
- "Grpc.Net.Client": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "xNv0FFCVJa5S1beUtye82WFCxKThuE1jbN8DO1x1Rj8VSIWXLBUmfSID5a1fGzsU2R/EMfwPoWclJ2RMfQuGXw==",
- "dependencies": {
- "Grpc.Net.Common": "2.70.0",
- "Microsoft.Extensions.Logging.Abstractions": "6.0.0"
- }
- },
- "Grpc.Net.ClientFactory": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "Qg+93oj/8RdEw3PnLZNNYWnWCWyJYC/ZYZcjeln/pLaxLaPvdXES1peiqSJUI4wLFZ1JwGlbWt8+nM1i2E7ihg==",
- "dependencies": {
- "Grpc.Net.Client": "2.70.0",
- "Microsoft.Extensions.Http": "6.0.0"
- }
- },
- "Grpc.Net.Common": {
- "type": "Transitive",
- "resolved": "2.70.0",
- "contentHash": "rBdEUMyCwa+iB8mqC6JKyPbj3SBHHkReJj/yy/XKJI63GcG6w9DJMMGTVcYHqq4Ci2W4m0HT4jt2pFfFscar8g==",
- "dependencies": {
- "Grpc.Core.Api": "2.70.0"
- }
- },
- "Grpc.Tools": {
- "type": "Transitive",
- "resolved": "2.71.0",
- "contentHash": "r8zHZm7kHdMrtujnkcuQ0BNDH2969at/8Va1ZzQgVblaQzR7tm8JlA3G+5Z5IFbvvf9PcAr1/VcoSR+g7j4Nyw=="
- },
- "Humanizer.Core": {
- "type": "Transitive",
- "resolved": "2.14.1",
- "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw=="
- },
- "IdentityModel": {
- "type": "Transitive",
- "resolved": "7.0.0",
- "contentHash": "to99aLL5Gev1GOb2gUao/UZXT/uXMyjEmHPNrf/vJI2HBD1LMCTeC4SBCe/cqMIB12V9v+eSieq7ff0lju9pOQ=="
- },
- "IdentityModel.OidcClient": {
- "type": "Transitive",
- "resolved": "6.0.0",
- "contentHash": "m2PZbjeG3nXIQ72NLZvFz3FLFk7GmqLnxO/ifUvaTEE3BDZXp7DXAdjDP6TQKaL20+wDnej2ffA1Yh3vVcJOkA==",
- "dependencies": {
- "IdentityModel": "7.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0"
- }
- },
- "Json.More.Net": {
- "type": "Transitive",
- "resolved": "2.1.0",
- "contentHash": "qtwsyAsL55y2vB2/sK4Pjg3ZyVzD5KKSpV3lOAMHlnjFfsjQ/86eHJfQT9aV1YysVXzF4+xyHOZbh7Iu3YQ7Lg=="
- },
- "JsonPatch.Net": {
- "type": "Transitive",
- "resolved": "3.3.0",
- "contentHash": "GIcMMDtzfzVfIpQgey8w7dhzcw6jG5nD4DDAdQCTmHfblkCvN7mI8K03to8YyUhKMl4PTR6D6nLSvWmyOGFNTg==",
- "dependencies": {
- "JsonPointer.Net": "5.2.0"
- }
- },
- "JsonPointer.Net": {
- "type": "Transitive",
- "resolved": "5.2.0",
- "contentHash": "qe1F7Tr/p4mgwLPU9P60MbYkp+xnL2uCPnWXGgzfR/AZCunAZIC0RZ32dLGJJEhSuLEfm0YF/1R3u5C7mEVq+w==",
- "dependencies": {
- "Humanizer.Core": "2.14.1",
- "Json.More.Net": "2.1.0"
- }
- },
- "KubernetesClient": {
- "type": "Transitive",
- "resolved": "16.0.2",
- "contentHash": "MTec7O7S23OtffS7lGnt75Q3h2/Jdl+y54uoJyP6MeGnvzeuAGq5n8QSaqUkLvDILvD92FS5kcEqpiCr79UnWQ==",
- "dependencies": {
- "Fractions": "7.3.0",
- "IdentityModel.OidcClient": "6.0.0",
- "System.IdentityModel.Tokens.Jwt": "8.3.0",
- "YamlDotNet": "16.3.0"
- }
- },
- "MessagePack": {
- "type": "Transitive",
- "resolved": "2.5.192",
- "contentHash": "Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==",
- "dependencies": {
- "MessagePack.Annotations": "2.5.192",
- "Microsoft.NET.StringTools": "17.6.3"
- }
- },
- "MessagePack.Annotations": {
- "type": "Transitive",
- "resolved": "2.5.192",
- "contentHash": "jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg=="
- },
- "Microsoft.Bcl.AsyncInterfaces": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw=="
- },
- "Microsoft.Build.Tasks.Git": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
- },
- "Microsoft.Extensions.Configuration": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.Binder": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "cdrjcl9RIcwt3ECbnpP0Gt1+pkjdW90mq5yFYy8D9qRj2NqFFcv3yDp141iEamsd9E218sGxK8WHaIOcrqgDJg==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.CommandLine": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "TbM2HElARG7z1gxwakdppmOkm1SykPqDcu3EF97daEwSb/+TXnRrFfJtF+5FWWxcsNhbRrmLfS2WszYcab7u1A==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.EnvironmentVariables": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "2IGiG3FtVnD83IA6HYGuNei8dOw455C09yEhGl8bjcY6aGZgoC6yhYvDnozw8wlTowfoG9bxVrdTsr2ACZOYHg==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.FileExtensions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "UY864WQ3AS2Fkc8fYLombWnjrXwYt+BEHHps0hY4sxlgqaVW06AxbpgRZjfYf8PyRbplJqruzZDB/nSLT+7RLQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.Json": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "vVXI70CgT/dmXV3MM+n/BR2rLXEoAyoK0hQT+8MrbCMuJBiLRxnTtSrksNiASWCwOtxo/Tyy7CO8AGthbsYxnw==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Configuration.UserSecrets": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "zuvyC72gJkJyodyGowCuz3EQ1QvzNXJtKusuRzmjoHr17aeB3X0aSiKFB++HMHnQIWWlPOBf9YHTQfEqzbgl1g==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Json": "9.0.4",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.4"
- }
- },
- "Microsoft.Extensions.Diagnostics": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "1bCSQrGv9+bpF5MGKF6THbnRFUZqQDrWPA39NDeVW9djeHBmow8kX4SX6/8KkeKI8gmUDG7jsG/bVuNAcY/ATQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Diagnostics.Abstractions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "IAucBcHYtiCmMyFag+Vrp5m+cjGRlDttJk9Vx7Dqpq+Ama4BzVUOk0JARQakgFFr7ZTBSgLKlHmtY5MiItB7Cg==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "XM6WwNbDkVuGhDN89eKxA2Og2eMDXB0PVI7PEzl2R0MbFjYUlfTh7D7vBPEWUVCf2zPDAFiwcMlnVzi6Umq5mg=="
- },
- "Microsoft.Extensions.FileProviders.Abstractions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "gQN2o/KnBfVk6Bd71E2YsvO5lsqrqHmaepDGk+FB/C4aiQY9B0XKKNKfl5/TqcNOs9OEithm4opiMHAErMFyEw==",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.FileProviders.Physical": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "qkQ9V7KFZdTWNThT7ke7E/Jad38s46atSs3QUYZB8f3thBTrcrousdY4Y/tyCtcH5YjsPSiByjuN+L8W/ThMQg==",
- "dependencies": {
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileSystemGlobbing": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.FileSystemGlobbing": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "05Lh2ItSk4mzTdDWATW9nEcSybwprN8Tz42Fs5B+jwdXUpauktdAQUI1Am4sUQi2C63E5hvQp8gXvfwfg9mQGQ=="
- },
- "Microsoft.Extensions.Hosting": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "1rZwLE+tTUIyZRUzmlk/DQj+v+Eqox+rjb+X7Fi+cYTbQfIZPYwpf1pVybsV3oje8+Pe4GaNukpBVUlPYeQdeQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Binder": "9.0.4",
- "Microsoft.Extensions.Configuration.CommandLine": "9.0.4",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.4",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
- "Microsoft.Extensions.Configuration.Json": "9.0.4",
- "Microsoft.Extensions.Configuration.UserSecrets": "9.0.4",
- "Microsoft.Extensions.DependencyInjection": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Diagnostics": "9.0.4",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging.Configuration": "9.0.4",
- "Microsoft.Extensions.Logging.Console": "9.0.4",
- "Microsoft.Extensions.Logging.Debug": "9.0.4",
- "Microsoft.Extensions.Logging.EventLog": "9.0.4",
- "Microsoft.Extensions.Logging.EventSource": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Http": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "ezelU6HJgmq4862YoWuEbHGSV+JnfnonTSbNSJVh6n6wDehyiJn4hBtcK7rGbf2KO3QeSvK5y8E7uzn1oaRH5w==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Diagnostics": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "xW6QPYsqhbuWBO9/1oA43g/XPKbohJx+7G8FLQgQXIriYvY7s+gxr2wjQJfRoPO900dvvv2vVH7wZovG+M1m6w==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.Configuration": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "/kF+rSnoo3/nIwGzWsR4RgBnoTOdZ3lzz2qFRyp/GgaNid4j6hOAQrs/O+QHXhlcAdZxjg37MvtIE+pAvIgi9g==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Binder": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.Console": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "cI0lQe0js65INCTCtAgnlVJWKgzgoRHVAW1B1zwCbmcliO4IZoTf92f1SYbLeLk7FzMJ/GlCvjLvJegJ6kltmQ==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging.Configuration": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.Debug": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "D1jy+jy+huUUxnkZ0H480RZK8vqKn8NsQxYpMpPL/ALPPh1WATVLcr/uXI3RUBB45wMW5265O+hk9x3jnnXFuA==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.EventLog": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "bApxdklf7QTsONOLR5ow6SdDFXR5ncHvumSEg2+QnCvxvkzc2z5kNn7yQCyupRLRN4jKbnlTkVX8x9qLlwL6Qg==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "System.Diagnostics.EventLog": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.EventSource": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "R600zTxVJNw2IeAEOvdOJGNA1lHr1m3vo460hSF5G1DjwP0FNpyeH4lpLDMuf34diKwB1LTt5hBw1iF1/iuwsQ==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.Options.ConfigurationExtensions": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "aridVhAT3Ep+vsirR1pzjaOw0Jwiob6dc73VFQn2XmDfBA2X98M8YKO1GarvsXRX7gX1Aj+hj2ijMzrMHDOm0A==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Binder": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Microsoft.Extensions.Primitives": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA=="
- },
- "Microsoft.IdentityModel.Abstractions": {
- "type": "Transitive",
- "resolved": "8.3.0",
- "contentHash": "jNin7yvWZu+K3U24q+6kD+LmGSRfbkHl9Px8hN1XrGwq6ZHgKGi/zuTm5m08G27fwqKfVXIWuIcUeq4Y1VQUOg=="
- },
- "Microsoft.IdentityModel.JsonWebTokens": {
- "type": "Transitive",
- "resolved": "8.3.0",
- "contentHash": "4SVXLT8sDG7CrHiszEBrsDYi+aDW0W9d+fuWUGdZPBdan56aM6fGXJDjbI0TVGEDjJhXbACQd8F/BnC7a+m2RQ==",
- "dependencies": {
- "Microsoft.IdentityModel.Tokens": "8.3.0"
- }
- },
- "Microsoft.IdentityModel.Logging": {
- "type": "Transitive",
- "resolved": "8.3.0",
- "contentHash": "4w4pSIGHhCCLTHqtVNR2Cc/zbDIUWIBHTZCu/9ZHm2SVwrXY3RJMcZ7EFGiKqmKZMQZJzA0bpwCZ6R8Yb7i5VQ==",
- "dependencies": {
- "Microsoft.IdentityModel.Abstractions": "8.3.0"
- }
- },
- "Microsoft.IdentityModel.Tokens": {
- "type": "Transitive",
- "resolved": "8.3.0",
- "contentHash": "yGzqmk+kInH50zeSEH/L1/J0G4/yqTQNq4YmdzOhpE7s/86tz37NS2YbbY2ievbyGjmeBI1mq26QH+yBR6AK3Q==",
- "dependencies": {
- "Microsoft.IdentityModel.Logging": "8.3.0"
- }
- },
- "Microsoft.NET.StringTools": {
- "type": "Transitive",
- "resolved": "17.6.3",
- "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA=="
- },
- "Microsoft.SourceLink.Common": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
- },
- "Microsoft.VisualStudio.Threading.Only": {
- "type": "Transitive",
- "resolved": "17.13.61",
- "contentHash": "vl5a2URJYCO5m+aZZtNlAXAMz28e2pUotRuoHD7RnCWOCeoyd8hWp5ZBaLNYq4iEj2oeJx5ZxiSboAjVmB20Qg==",
- "dependencies": {
- "Microsoft.VisualStudio.Validation": "17.8.8"
- }
- },
- "Microsoft.VisualStudio.Validation": {
- "type": "Transitive",
- "resolved": "17.8.8",
- "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g=="
- },
- "Nerdbank.Streams": {
- "type": "Transitive",
- "resolved": "2.11.90",
- "contentHash": "7jrOfU6b/PVBccqzNLfw9u84WWzkSpvWLb2mZxvwdQkOx/V9FXWkmnp/rjOnBFDOhrO/ev4+gQ5QS13FkgNSBA==",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
- "Microsoft.VisualStudio.Threading.Only": "17.13.61",
- "Microsoft.VisualStudio.Validation": "17.8.8"
- }
- },
- "Newtonsoft.Json": {
- "type": "Transitive",
- "resolved": "13.0.3",
- "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
- },
- "StreamJsonRpc": {
- "type": "Transitive",
- "resolved": "2.21.69",
- "contentHash": "WbTpn/PIo+HpFYnsOCiOOe0kHUE2N1eiVRi7MO70DFBTMG3pAOfrgHtwUpOJ37dfDETq/9P9WNIbHom4ABZfrA==",
- "dependencies": {
- "MessagePack": "2.5.192",
- "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
- "Microsoft.VisualStudio.Threading.Only": "17.13.61",
- "Microsoft.VisualStudio.Validation": "17.8.8",
- "Nerdbank.Streams": "2.11.90",
- "Newtonsoft.Json": "13.0.3"
- }
- },
- "System.Diagnostics.EventLog": {
- "type": "Transitive",
- "resolved": "9.0.4",
- "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
- },
- "System.IdentityModel.Tokens.Jwt": {
- "type": "Transitive",
- "resolved": "8.3.0",
- "contentHash": "9GESpDG0Zb17HD5mBW/uEWi2yz/uKPmCthX2UhyLnk42moGH2FpMgXA2Y4l2Qc7P75eXSUTA6wb/c9D9GSVkzw==",
- "dependencies": {
- "Microsoft.IdentityModel.JsonWebTokens": "8.3.0",
- "Microsoft.IdentityModel.Tokens": "8.3.0"
- }
- },
- "System.IO.Hashing": {
- "type": "Transitive",
- "resolved": "9.0.3",
- "contentHash": "BrMGzDRLz410PE4qC8UeKeAc0hFRjBkiCUOLTwuod65NAjqg5tDNqYU7gP0A09taEXtecB+HJc1NNnnTjsKFAQ=="
- },
- "Microsoft.Extensions.DependencyInjection": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "f2MTUaS2EQ3lX4325ytPAISZqgBfXmY0WvgD80ji6Z20AoDNiCESxsqo6mFRwHJD/jfVKRw9FsW6+86gNre3ug==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg=="
- },
- "Microsoft.Extensions.Diagnostics.HealthChecks": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "jW9lhWQzOOL5sBUCNtAiS6B7tGeLlxJVDjwNuQAQl6dDt9PAAxt3+T2F2jtcvi7KoujgzAdkKQKtGoRaAGlD9w==",
- "dependencies": {
- "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "9.0.4",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- }
- },
- "Microsoft.Extensions.Hosting.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "bXkwRPMo4x19YKH6/V9XotU7KYQJlihXhcWO1RDclAY3yfY3XNg4QtSEBvng4kK/DnboE0O/nwSl+6Jiv9P+FA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Logging.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
- }
- },
- "Microsoft.Extensions.Options": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "9.0.4",
- "contentHash": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- }
- },
- "Polly.Core": {
- "type": "CentralTransitive",
- "requested": "[8.6.0, )",
- "resolved": "8.5.2",
- "contentHash": "1MJKdxv4zwDmiWvYvVN24DsrWUfgQ4F83voH8bhbtLMdPuGy8CfTUzsgQhvyrl1a7hrM6f/ydwLVdVUI0xooUw=="
- },
- "YamlDotNet": {
- "type": "CentralTransitive",
- "requested": "[16.3.0, )",
- "resolved": "16.3.0",
- "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA=="
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/WorkflowFramework.Dashboard.Web/packages.lock.json b/src/WorkflowFramework.Dashboard.Web/packages.lock.json
index 289ac54..4b08041 100644
--- a/src/WorkflowFramework.Dashboard.Web/packages.lock.json
+++ b/src/WorkflowFramework.Dashboard.Web/packages.lock.json
@@ -4,9 +4,9 @@
"net10.0": {
"Microsoft.AspNetCore.App.Internal.Assets": {
"type": "Direct",
- "requested": "[10.0.4, )",
- "resolved": "10.0.4",
- "contentHash": "M942X5Vy726SlvFBuoAC4cDczEMlPAFt1mmyFlrkw/QcpdVwVU0DkF4P9JabxX6eWNm9RvaYZHe25FN7oXoxpQ=="
+ "requested": "[10.0.5, )",
+ "resolved": "10.0.5",
+ "contentHash": "Oxw9Ps1/nd6c/EMCAI13AeJFEqXezAvCEOshMjUWmL7LeGirHJNzytR2e/3jINYg0j2TmPvNUowGHf+gp8zDSQ=="
},
"Microsoft.AspNetCore.SignalR.Client": {
"type": "Direct",
diff --git a/src/WorkflowFramework.Dashboard/packages.lock.json b/src/WorkflowFramework.Dashboard/packages.lock.json
index 787872b..c9f9c50 100644
--- a/src/WorkflowFramework.Dashboard/packages.lock.json
+++ b/src/WorkflowFramework.Dashboard/packages.lock.json
@@ -4,9 +4,9 @@
"net10.0": {
"Microsoft.AspNetCore.App.Internal.Assets": {
"type": "Direct",
- "requested": "[10.0.4, )",
- "resolved": "10.0.4",
- "contentHash": "M942X5Vy726SlvFBuoAC4cDczEMlPAFt1mmyFlrkw/QcpdVwVU0DkF4P9JabxX6eWNm9RvaYZHe25FN7oXoxpQ=="
+ "requested": "[10.0.5, )",
+ "resolved": "10.0.5",
+ "contentHash": "Oxw9Ps1/nd6c/EMCAI13AeJFEqXezAvCEOshMjUWmL7LeGirHJNzytR2e/3jINYg0j2TmPvNUowGHf+gp8zDSQ=="
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
@@ -23,19 +23,99 @@
"resolved": "8.0.0",
"contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
},
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "xVDHL0+SIgemfh95fTO9cGLe17TWv/ZP0n7m01z8X6pzt2DmQpucioWR/mYZA1sRlkWnkXzfl0JweLNWmE9WMg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "mQiTzAj7PIJ2A9YXR5QhgulS1fTWhmQc3ckd1Mrf3hKW07d03fBDqx8vVaFw+cRTebDOeB6pNqdWdnRxsi1hBA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Options": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "4TD9AXDRsipTmaemwnjt/DM5Ri0de2JzHQhvZ4woBTjUtL4XrPNsMrOk5oiLJAx1gTrE6pOIhxv+lEde5F6CZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "GEcpTwo7sUoLGGNTqV1FZEuL+tTD9m81NX/mh099dqGNna07/UGZShKQNZRw4hv6nlliSUwYQgSYc7OR99Jufg=="
+ },
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
},
"workflowframework": {
- "type": "Project"
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
+ }
},
"workflowframework.extensions.diagnostics": {
"type": "Project",
"dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "GdMpC10Jf6poxSvUJ4lgYpJ5F/kJeaAoJmrPufjBoPYyCTKKY5Dyl0rZA+LBNvFqTq1cZa/lhlptlUhNvU6xrg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.3",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.3",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "hU6WzGTPvPoLA2ng1ILvWQb3g0qORdlHNsxI8IcPLumJb3suimYUl+bbDzdo1V4KFsvVhnMWzysHpKbZaoDQPQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
+ "Microsoft.Extensions.Primitives": "10.0.3"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
}
},
"net8.0": {
diff --git a/src/WorkflowFramework.Extensions.Agents.Mcp/packages.lock.json b/src/WorkflowFramework.Extensions.Agents.Mcp/packages.lock.json
index fdca96e..a4d3182 100644
--- a/src/WorkflowFramework.Extensions.Agents.Mcp/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Agents.Mcp/packages.lock.json
@@ -332,7 +332,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
@@ -431,7 +432,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"System.ClientModel": {
@@ -448,6 +450,11 @@
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
@@ -464,6 +471,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -525,6 +533,18 @@
"Microsoft.SemanticKernel.Connectors.AzureOpenAI": "1.71.0",
"Microsoft.SemanticKernel.Core": "1.71.0"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
},
"net8.0": {
diff --git a/src/WorkflowFramework.Extensions.Agents.Skills/packages.lock.json b/src/WorkflowFramework.Extensions.Agents.Skills/packages.lock.json
index a653baf..a7796d5 100644
--- a/src/WorkflowFramework.Extensions.Agents.Skills/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Agents.Skills/packages.lock.json
@@ -332,7 +332,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.Caching.Abstractions": {
@@ -431,7 +432,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"System.ClientModel": {
@@ -448,6 +450,11 @@
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
@@ -464,6 +471,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -525,6 +533,18 @@
"Microsoft.SemanticKernel.Connectors.AzureOpenAI": "1.71.0",
"Microsoft.SemanticKernel.Core": "1.71.0"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
},
"net8.0": {
diff --git a/src/WorkflowFramework.Extensions.Configuration/IWorkflowDefinitionLoader.cs b/src/WorkflowFramework.Extensions.Configuration/IWorkflowDefinitionLoader.cs
index c5d80cd..eceba13 100644
--- a/src/WorkflowFramework.Extensions.Configuration/IWorkflowDefinitionLoader.cs
+++ b/src/WorkflowFramework.Extensions.Configuration/IWorkflowDefinitionLoader.cs
@@ -1,5 +1,7 @@
+using System.Reflection;
using System.Text.Json;
using WorkflowFramework.Builder;
+using YamlDotNet.RepresentationModel;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
@@ -127,7 +129,8 @@ public sealed class YamlWorkflowDefinitionLoader : IWorkflowDefinitionLoader
public WorkflowDefinition Load(string content)
{
if (content == null) throw new ArgumentNullException(nameof(content));
- return Deserializer.Deserialize(content)
+ var normalized = NormalizeThenElseLists(content);
+ return Deserializer.Deserialize(normalized)
?? throw new InvalidOperationException("Failed to deserialize YAML workflow definition.");
}
@@ -138,6 +141,65 @@ public WorkflowDefinition LoadFromFile(string filePath)
var content = File.ReadAllText(filePath);
return Load(content);
}
+
+ ///
+ /// Rewrites the YAML document so that any then: or else: key whose value is
+ /// a YAML sequence is renamed to thenSteps: or elseSteps: respectively.
+ /// This allows authors to write then: [...] / else: [...] as natural list
+ /// aliases rather than having to remember the longer thenSteps / elseSteps keys.
+ /// Scalar values (legacy single-class format) are left unchanged.
+ ///
+ private static string NormalizeThenElseLists(string yaml)
+ {
+ var stream = new YamlStream();
+ using var reader = new StringReader(yaml);
+ stream.Load(reader);
+
+ foreach (var document in stream.Documents)
+ NormalizeNode(document.RootNode);
+
+ using var writer = new StringWriter();
+ stream.Save(writer, assignAnchors: false);
+ return writer.ToString();
+ }
+
+ private static void NormalizeNode(YamlNode node)
+ {
+ if (node is YamlMappingNode mapping)
+ {
+ // Collect renames first to avoid mutating the dictionary while iterating.
+ List<(YamlScalarNode OldKey, string NewName)>? renames = null;
+ foreach (var child in mapping.Children)
+ {
+ if (child.Key is YamlScalarNode scalar && child.Value is YamlSequenceNode)
+ {
+ if (scalar.Value == "then")
+ (renames ??= []).Add((scalar, "thenSteps"));
+ else if (scalar.Value == "else")
+ (renames ??= []).Add((scalar, "elseSteps"));
+ }
+ }
+
+ if (renames != null)
+ {
+ foreach (var (oldKey, newName) in renames)
+ {
+ var value = mapping.Children[oldKey];
+ mapping.Children.Remove(oldKey);
+ mapping.Children.Add(new YamlScalarNode(newName), value);
+ }
+ }
+
+ // Recurse into all child values.
+ foreach (var child in mapping.Children.Values)
+ NormalizeNode(child);
+ }
+ else if (node is YamlSequenceNode sequence)
+ {
+ foreach (var child in sequence.Children)
+ NormalizeNode(child);
+ }
+ }
}
///
@@ -145,15 +207,27 @@ public WorkflowDefinition LoadFromFile(string filePath)
///
public sealed class WorkflowDefinitionBuilder
{
+ private static readonly HashSet KnownCategories = new(StringComparer.OrdinalIgnoreCase)
+ {
+ "step", "conditional", "parallel", "foreach", "while", "dowhile",
+ "retry", "try", "subworkflow", "approval", "saga"
+ };
+
+ /// Cache of exception type name → to avoid repeated assembly scans.
+ private static readonly System.Collections.Concurrent.ConcurrentDictionary ExceptionTypeCache = new();
+
private readonly IStepRegistry _stepRegistry;
+ private readonly IReadOnlyDictionary? _subWorkflows;
///
/// Initializes a new instance of .
///
- /// The step registry.
- public WorkflowDefinitionBuilder(IStepRegistry stepRegistry)
+ /// The step registry used to resolve step class names.
+ /// Optional registry of named sub-workflows (used for type: subworkflow).
+ public WorkflowDefinitionBuilder(IStepRegistry stepRegistry, IReadOnlyDictionary? subWorkflows = null)
{
_stepRegistry = stepRegistry;
+ _subWorkflows = subWorkflows;
}
///
@@ -178,49 +252,724 @@ public IWorkflow Build(WorkflowDefinition definition)
private void BuildSteps(IWorkflowBuilder builder, List steps)
{
foreach (var stepDef in steps)
+ BuildStep(builder, stepDef);
+ }
+
+ private void BuildStep(IWorkflowBuilder builder, StepDefinition stepDef)
+ {
+ // When TimeoutSeconds is configured, capture the built step via a temp builder and wrap it.
+ // This ensures timeout is applied to the entire composite step (not just its body steps).
+ if (stepDef.TimeoutSeconds is > 0)
+ {
+ var tempCapture = Workflow.Create("_capture");
+ BuildStepCore(tempCapture, stepDef);
+ builder.Step(ApplyTimeout(tempCapture.Build().Steps[0], stepDef.TimeoutSeconds));
+ }
+ else
+ {
+ BuildStepCore(builder, stepDef);
+ }
+ }
+
+ private void BuildStepCore(IWorkflowBuilder builder, StepDefinition stepDef)
+ {
+ var typeCategory = stepDef.Type?.ToLowerInvariant() ?? string.Empty;
+
+ if (KnownCategories.Contains(typeCategory))
+ {
+ // New format: type is a composite step category
+ switch (typeCategory)
+ {
+ case "step":
+ var className = stepDef.Class
+ ?? throw new InvalidOperationException(
+ $"Step '{stepDef.Name ?? "unnamed"}' of type 'step' requires a 'class' property.");
+ builder.Step(ApplyName(_stepRegistry.Resolve(className), stepDef.Name));
+ break;
+
+ case "conditional":
+ BuildConditionalStep(builder, stepDef);
+ break;
+
+ case "parallel":
+ BuildParallelStep(builder, stepDef);
+ break;
+
+ case "foreach":
+ BuildForEachStep(builder, stepDef);
+ break;
+
+ case "while":
+ BuildWhileStep(builder, stepDef);
+ break;
+
+ case "dowhile":
+ BuildDoWhileStep(builder, stepDef);
+ break;
+
+ case "retry":
+ BuildRetryGroupStep(builder, stepDef);
+ break;
+
+ case "try":
+ BuildTryStep(builder, stepDef);
+ break;
+
+ case "subworkflow":
+ BuildSubWorkflowStep(builder, stepDef);
+ break;
+
+ case "approval":
+ BuildApprovalStep(builder, stepDef);
+ break;
+
+ case "saga":
+ BuildSagaStep(builder, stepDef);
+ break;
+ }
+ }
+ else if (stepDef.Parallel != null && stepDef.Parallel.Count > 0)
+ {
+ // Legacy format: parallel with a flat list of class names
+ // Use a temp builder to capture the created step so we can apply the configured name.
+ var tempBuilder = Workflow.Create("_temp");
+ tempBuilder.Parallel(p =>
+ {
+ foreach (var parallelType in stepDef.Parallel)
+ p.Step(_stepRegistry.Resolve(parallelType));
+ });
+ builder.Step(ApplyName(tempBuilder.Build().Steps[0], stepDef.Name));
+ }
+ else if (stepDef.Condition != null && (stepDef.Then != null || stepDef.ThenSteps?.Count > 0))
+ {
+ // Legacy conditional format — delegate to BuildConditionalStep so ApplyName is applied consistently.
+ BuildConditionalStep(builder, stepDef);
+ }
+ else if (stepDef.Retry != null && !string.IsNullOrEmpty(stepDef.Type))
+ {
+ // Legacy format: single step with retry wrapping
+ // Use a temp builder to capture the created step so we can apply the configured name.
+ var retryStep = _stepRegistry.Resolve(stepDef.Type);
+ var tempBuilder = Workflow.Create("_temp");
+ tempBuilder.Retry(b => b.Step(retryStep), Math.Max(1, stepDef.Retry.MaxAttempts));
+ builder.Step(ApplyName(tempBuilder.Build().Steps[0], stepDef.Name));
+ }
+ else if (!string.IsNullOrEmpty(stepDef.Class))
+ {
+ // New format shorthand: class without explicit category
+ builder.Step(ApplyName(_stepRegistry.Resolve(stepDef.Class), stepDef.Name));
+ }
+ else if (!string.IsNullOrEmpty(stepDef.Type))
+ {
+ // Legacy format: type is the class name
+ builder.Step(ApplyName(_stepRegistry.Resolve(stepDef.Type), stepDef.Name));
+ }
+ else
+ {
+ throw new InvalidOperationException(
+ $"Step '{stepDef.Name ?? "unnamed"}' has no 'type' or 'class' specified.");
+ }
+ }
+
+ private void BuildConditionalStep(IWorkflowBuilder builder, StepDefinition stepDef)
+ {
+ var conditionKey = stepDef.Condition
+ ?? throw new InvalidOperationException(
+ $"Conditional step '{stepDef.Name ?? "unnamed"}' requires a 'condition' property.");
+
+ Func predicate = ctx =>
+ {
+ ctx.Properties.TryGetValue(conditionKey, out var val);
+ return val is true or "true";
+ };
+
+ // Prefer nested step definitions; fall back to legacy class-name strings
+ var thenSteps = stepDef.ThenSteps;
+ var elseSteps = stepDef.ElseSteps;
+ // Use the condition key as the default name so that multiple unnamed conditionals with
+ // different condition expressions produce unique branch-group names and don't collide in
+ // DefaultWorkflowValidator's duplicate-step-name check.
+ var stepName = stepDef.Name ?? conditionKey;
+
+ IStep thenStep;
+ if (thenSteps != null && thenSteps.Count > 0)
+ {
+ thenStep = BuildStepsAsGroupStep($"{stepName}_then", thenSteps);
+ }
+ else if (stepDef.Then != null)
+ {
+ thenStep = _stepRegistry.Resolve(stepDef.Then);
+ }
+ else
+ {
+ throw new InvalidOperationException(
+ $"Conditional step '{stepDef.Name ?? "unnamed"}' requires 'then', 'thenSteps', or equivalent.");
+ }
+
+ // Use a temp builder to capture the created ConditionalStep so we can apply the configured name.
+ var tempBuilder = Workflow.Create("_temp");
+ if (elseSteps != null && elseSteps.Count > 0)
+ {
+ var elseStep = BuildStepsAsGroupStep($"{stepName}_else", elseSteps);
+ tempBuilder.If(predicate).Then(thenStep).Else(elseStep);
+ }
+ else if (stepDef.Else != null)
+ {
+ var elseStep = _stepRegistry.Resolve(stepDef.Else);
+ tempBuilder.If(predicate).Then(thenStep).Else(elseStep);
+ }
+ else
+ {
+ tempBuilder.If(predicate).Then(thenStep).EndIf();
+ }
+ builder.Step(ApplyName(tempBuilder.Build().Steps[0], stepName));
+ }
+
+ private void BuildParallelStep(IWorkflowBuilder builder, StepDefinition stepDef)
+ {
+ var childSteps = stepDef.Steps;
+ if (childSteps == null || childSteps.Count == 0)
+ throw new InvalidOperationException(
+ $"Parallel step '{stepDef.Name ?? "unnamed"}' requires a non-empty 'steps' list.");
+
+ // Use a temp builder to capture the created step so we can apply the configured name.
+ var tempBuilder = Workflow.Create("_temp");
+ tempBuilder.Parallel(p =>
+ {
+ for (var i = 0; i < childSteps.Count; i++)
+ {
+ var child = childSteps[i];
+ // Build each branch step directly (not through InlineWorkflowStep) so that exceptions
+ // from a failing branch propagate as-thrown, giving WorkflowStatus.Faulted on the
+ // outer workflow. Wrapping via InlineWorkflowStep would absorb the exception and set
+ // IsAborted instead, silently swallowing the fault and breaking ParallelErrorTests.
+ var branchBuilder = Workflow.Create("_branch");
+ BuildStep(branchBuilder, child);
+ p.Step(branchBuilder.Build().Steps[0]);
+ }
+ });
+ builder.Step(ApplyName(tempBuilder.Build().Steps[0], stepDef.Name));
+ }
+
+ private void BuildForEachStep(IWorkflowBuilder builder, StepDefinition stepDef)
+ {
+ var bodySteps = stepDef.Steps ?? [];
+ var itemsKey = stepDef.Condition ?? "items";
+
+ // Use a temp builder to capture the created step so we can apply the configured name.
+ // Fall back to itemsKey so multiple unnamed foreach steps with different item sources
+ // produce distinct step names and pass DefaultWorkflowValidator.
+ var tempBuilder = Workflow.Create("_temp");
+ tempBuilder.ForEach
+
diff --git a/src/WorkflowFramework.Extensions.Configuration/packages.lock.json b/src/WorkflowFramework.Extensions.Configuration/packages.lock.json
index d05242e..f51c524 100644
--- a/src/WorkflowFramework.Extensions.Configuration/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Configuration/packages.lock.json
@@ -2,6 +2,16 @@
"version": 2,
"dependencies": {
".NETStandard,Version=v2.0": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[8.0.2, )",
+ "resolved": "8.0.2",
+ "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[8.0.0, )",
@@ -129,6 +139,12 @@
}
},
".NETStandard,Version=v2.1": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[8.0.2, )",
+ "resolved": "8.0.2",
+ "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg=="
+ },
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[8.0.0, )",
@@ -201,6 +217,12 @@
}
},
"net10.0": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[8.0.0, )",
@@ -270,12 +292,6 @@
"Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
}
},
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "10.0.3",
- "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
- },
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "CentralTransitive",
"requested": "[10.0.3, )",
@@ -310,6 +326,12 @@
}
},
"net8.0": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[8.0.0, )",
@@ -394,12 +416,6 @@
"Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
}
},
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "10.0.3",
- "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
- },
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "CentralTransitive",
"requested": "[10.0.3, )",
@@ -441,6 +457,12 @@
}
},
"net9.0": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
+ },
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[8.0.0, )",
@@ -525,12 +547,6 @@
"Microsoft.Extensions.Hosting.Abstractions": "[10.0.3, )"
}
},
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "CentralTransitive",
- "requested": "[10.0.3, )",
- "resolved": "10.0.3",
- "contentHash": "bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw=="
- },
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "CentralTransitive",
"requested": "[10.0.3, )",
diff --git a/src/WorkflowFramework.Extensions.DataMapping.Formats/packages.lock.json b/src/WorkflowFramework.Extensions.DataMapping.Formats/packages.lock.json
index a7db023..276fb70 100644
--- a/src/WorkflowFramework.Extensions.DataMapping.Formats/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.DataMapping.Formats/packages.lock.json
@@ -300,6 +300,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -340,6 +341,12 @@
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
"Microsoft.Extensions.Primitives": "10.0.3"
}
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "EsgwDgU1PFqhrFA9l5n+RBu76wFhNGCEwu8ITrBNhjPP3MxLyklroU5GIF8o6JYpYg6T4KD/VICfMdgPAvNp5g=="
}
},
"net8.0": {
diff --git a/src/WorkflowFramework.Extensions.DataMapping.Schema/packages.lock.json b/src/WorkflowFramework.Extensions.DataMapping.Schema/packages.lock.json
index 46a1bf6..c230bb6 100644
--- a/src/WorkflowFramework.Extensions.DataMapping.Schema/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.DataMapping.Schema/packages.lock.json
@@ -288,6 +288,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
diff --git a/src/WorkflowFramework.Extensions.Distributed.PostgreSQL/packages.lock.json b/src/WorkflowFramework.Extensions.Distributed.PostgreSQL/packages.lock.json
index d1faae5..9950f90 100644
--- a/src/WorkflowFramework.Extensions.Distributed.PostgreSQL/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Distributed.PostgreSQL/packages.lock.json
@@ -83,6 +83,7 @@
"workflowframework.extensions.distributed": {
"type": "Project",
"dependencies": {
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
diff --git a/src/WorkflowFramework.Extensions.Distributed.Redis/packages.lock.json b/src/WorkflowFramework.Extensions.Distributed.Redis/packages.lock.json
index 3ee896d..51f2228 100644
--- a/src/WorkflowFramework.Extensions.Distributed.Redis/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Distributed.Redis/packages.lock.json
@@ -71,7 +71,15 @@
"Pipelines.Sockets.Unofficial": {
"type": "Transitive",
"resolved": "2.2.8",
- "contentHash": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ=="
+ "contentHash": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
+ "dependencies": {
+ "System.IO.Pipelines": "5.0.1"
+ }
+ },
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "5.0.1",
+ "contentHash": "qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg=="
},
"workflowframework": {
"type": "Project",
@@ -83,6 +91,7 @@
"workflowframework.extensions.distributed": {
"type": "Project",
"dependencies": {
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
diff --git a/src/WorkflowFramework.Extensions.Persistence.PostgreSQL/packages.lock.json b/src/WorkflowFramework.Extensions.Persistence.PostgreSQL/packages.lock.json
index 64607e4..f0f6555 100644
--- a/src/WorkflowFramework.Extensions.Persistence.PostgreSQL/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Persistence.PostgreSQL/packages.lock.json
@@ -121,6 +121,7 @@
"dependencies": {
"Microsoft.EntityFrameworkCore": "[9.0.6, )",
"Microsoft.EntityFrameworkCore.Relational": "[9.0.6, )",
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -197,6 +198,12 @@
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "EsgwDgU1PFqhrFA9l5n+RBu76wFhNGCEwu8ITrBNhjPP3MxLyklroU5GIF8o6JYpYg6T4KD/VICfMdgPAvNp5g=="
}
},
"net8.0": {
diff --git a/src/WorkflowFramework.Extensions.Persistence.SqlServer/packages.lock.json b/src/WorkflowFramework.Extensions.Persistence.SqlServer/packages.lock.json
index e17ba5c..7c43ae0 100644
--- a/src/WorkflowFramework.Extensions.Persistence.SqlServer/packages.lock.json
+++ b/src/WorkflowFramework.Extensions.Persistence.SqlServer/packages.lock.json
@@ -12,7 +12,9 @@
"Microsoft.EntityFrameworkCore.Relational": "9.0.6",
"Microsoft.Extensions.Caching.Memory": "9.0.6",
"Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
- "Microsoft.Extensions.Logging": "9.0.6"
+ "Microsoft.Extensions.Logging": "9.0.6",
+ "System.Formats.Asn1": "9.0.6",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
@@ -38,7 +40,12 @@
"dependencies": {
"Microsoft.Bcl.AsyncInterfaces": "1.1.1",
"System.ClientModel": "1.0.0",
- "System.Memory.Data": "1.0.2"
+ "System.Diagnostics.DiagnosticSource": "6.0.1",
+ "System.Memory.Data": "1.0.2",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Text.Encodings.Web": "4.7.2",
+ "System.Text.Json": "4.7.2",
+ "System.Threading.Tasks.Extensions": "4.5.4"
}
},
"Azure.Identity": {
@@ -49,7 +56,10 @@
"Azure.Core": "1.38.0",
"Microsoft.Identity.Client": "4.61.3",
"Microsoft.Identity.Client.Extensions.Msal": "4.61.3",
- "System.Security.Cryptography.ProtectedData": "4.7.0"
+ "System.Memory": "4.5.4",
+ "System.Security.Cryptography.ProtectedData": "4.7.0",
+ "System.Text.Json": "4.7.2",
+ "System.Threading.Tasks.Extensions": "4.5.4"
}
},
"Microsoft.Bcl.AsyncInterfaces": {
@@ -62,6 +72,11 @@
"resolved": "8.0.0",
"contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
},
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ=="
+ },
"Microsoft.Data.SqlClient": {
"type": "Transitive",
"resolved": "5.1.6",
@@ -74,7 +89,12 @@
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0",
"Microsoft.SqlServer.Server": "1.0.0",
"System.Configuration.ConfigurationManager": "6.0.1",
- "System.Runtime.Caching": "6.0.0"
+ "System.Diagnostics.DiagnosticSource": "6.0.1",
+ "System.Runtime.Caching": "6.0.0",
+ "System.Security.Cryptography.Cng": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0",
+ "System.Text.Encoding.CodePages": "6.0.0",
+ "System.Text.Encodings.Web": "6.0.0"
}
},
"Microsoft.Data.SqlClient.SNI.runtime": {
@@ -157,7 +177,8 @@
"resolved": "4.61.3",
"contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==",
"dependencies": {
- "Microsoft.IdentityModel.Abstractions": "6.35.0"
+ "Microsoft.IdentityModel.Abstractions": "6.35.0",
+ "System.Diagnostics.DiagnosticSource": "6.0.1"
}
},
"Microsoft.Identity.Client.Extensions.Msal": {
@@ -179,7 +200,10 @@
"resolved": "6.35.0",
"contentHash": "9wxai3hKgZUb4/NjdRKfQd0QJvtXKDlvmGMYACbEC8DFaicMFCFhQFZq9ZET1kJLwZahf2lfY5Gtcpsx8zYzbg==",
"dependencies": {
- "Microsoft.IdentityModel.Tokens": "6.35.0"
+ "Microsoft.IdentityModel.Tokens": "6.35.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encodings.Web": "4.7.2",
+ "System.Text.Json": "4.7.2"
}
},
"Microsoft.IdentityModel.Logging": {
@@ -213,9 +237,21 @@
"resolved": "6.35.0",
"contentHash": "RN7lvp7s3Boucg1NaNAbqDbxtlLj5Qeb+4uSS1TeK5FSBVM40P4DKaTKChT43sHyKfh7V0zkrMph6DdHvyA4bg==",
"dependencies": {
- "Microsoft.IdentityModel.Logging": "6.35.0"
+ "Microsoft.CSharp": "4.5.0",
+ "Microsoft.IdentityModel.Logging": "6.35.0",
+ "System.Security.Cryptography.Cng": "4.5.0"
}
},
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
@@ -236,7 +272,8 @@
"resolved": "1.0.0",
"contentHash": "I3CVkvxeqFYjIVEP59DnjbeoGNfo/+SZrCLpRz2v/g0gpCHaEMPtWSY0s9k/7jR1rAsLNg2z2u1JRB76tPjnIw==",
"dependencies": {
- "System.Memory.Data": "1.0.2"
+ "System.Memory.Data": "1.0.2",
+ "System.Text.Json": "4.7.2"
}
},
"System.Configuration.ConfigurationManager": {
@@ -256,6 +293,11 @@
"Microsoft.Win32.SystemEvents": "6.0.0"
}
},
+ "System.Formats.Asn1": {
+ "type": "Transitive",
+ "resolved": "9.0.6",
+ "contentHash": "8LbKs3WVqyDSszFZJA9Uxg9z+C6WbPbFTSPm/HjFEsWx49XWs0ueqaAKPWncvFJ8yl4H4C/RTnUMhCKoXkddkg=="
+ },
"System.IdentityModel.Tokens.Jwt": {
"type": "Transitive",
"resolved": "6.35.0",
@@ -265,10 +307,33 @@
"Microsoft.IdentityModel.Tokens": "6.35.0"
}
},
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
"System.Memory.Data": {
"type": "Transitive",
"resolved": "1.0.2",
- "contentHash": "JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw=="
+ "contentHash": "JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "4.7.2",
+ "System.Text.Json": "4.6.0"
+ }
+ },
+ "System.Numerics.Vectors": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
},
"System.Runtime.Caching": {
"type": "Transitive",
@@ -278,6 +343,24 @@
"System.Configuration.ConfigurationManager": "6.0.0"
}
},
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ=="
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0"
+ }
+ },
"System.Security.Cryptography.ProtectedData": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -288,9 +371,46 @@
"resolved": "6.0.0",
"contentHash": "T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
"dependencies": {
+ "System.Security.AccessControl": "6.0.0",
"System.Windows.Extensions": "6.0.0"
}
},
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==",
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "System.Text.Encodings.Web": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==",
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg=="
+ },
"System.Windows.Extensions": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -311,6 +431,7 @@
"dependencies": {
"Microsoft.EntityFrameworkCore": "[9.0.6, )",
"Microsoft.EntityFrameworkCore.Relational": "[9.0.6, )",
+ "System.Text.Json": "[10.0.1, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -378,6 +499,21 @@
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
"Microsoft.Extensions.Primitives": "10.0.3"
}
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "6.0.1",
+ "contentHash": "KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==",
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "EsgwDgU1PFqhrFA9l5n+RBu76wFhNGCEwu8ITrBNhjPP3MxLyklroU5GIF8o6JYpYg6T4KD/VICfMdgPAvNp5g=="
}
},
"net8.0": {
diff --git a/tests/WorkflowFramework.Dashboard.Api.Tests/packages.lock.json b/tests/WorkflowFramework.Dashboard.Api.Tests/packages.lock.json
index 7d66f39..c18d7f3 100644
--- a/tests/WorkflowFramework.Dashboard.Api.Tests/packages.lock.json
+++ b/tests/WorkflowFramework.Dashboard.Api.Tests/packages.lock.json
@@ -20,7 +20,8 @@
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.NET.Test.Sdk": {
@@ -128,7 +129,8 @@
"Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.AI": {
@@ -155,7 +157,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.AmbientMetadata.Application": {
@@ -296,7 +299,8 @@
"Microsoft.Extensions.DependencyInjection.AutoActivation": "9.5.0",
"Microsoft.Extensions.Http": "9.0.5",
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5",
- "Microsoft.Extensions.Telemetry": "9.5.0"
+ "Microsoft.Extensions.Telemetry": "9.5.0",
+ "System.IO.Pipelines": "9.0.5"
}
},
"Microsoft.Extensions.Logging": {
@@ -498,7 +502,10 @@
"Microsoft.TestPlatform.ObjectModel": {
"type": "Transitive",
"resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ=="
+ "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "dependencies": {
+ "System.Reflection.Metadata": "8.0.0"
+ }
},
"Microsoft.TestPlatform.TestHost": {
"type": "Transitive",
@@ -519,7 +526,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"OpenTelemetry": {
@@ -535,7 +543,10 @@
"OpenTelemetry.Api": {
"type": "Transitive",
"resolved": "1.12.0",
- "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw=="
+ "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw==",
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "9.0.0"
+ }
},
"OpenTelemetry.Api.ProviderBuilderExtensions": {
"type": "Transitive",
@@ -577,7 +588,10 @@
"SQLitePCLRaw.core": {
"type": "Transitive",
"resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw=="
+ "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
@@ -601,6 +615,11 @@
"System.Memory.Data": "8.0.1"
}
},
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg=="
+ },
"System.IdentityModel.Tokens.Jwt": {
"type": "Transitive",
"resolved": "8.0.1",
@@ -610,16 +629,39 @@
"Microsoft.IdentityModel.Tokens": "8.0.1"
}
},
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "5WXo+3MGcnYn54+1ojf+kRzKq1Q6sDUnovujNJ2ky1nl1/kP3+PMil9LPbFvZ2mkhvAGmQcY07G2sfHat/v0Fw=="
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.3",
+ "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+ },
"System.Memory.Data": {
"type": "Transitive",
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
"contentHash": "EzimXy5WX7RJxf1pHBfolBApA4GR7qje1cY9XofD4C+cQepx0a5ZVlZjde8NHk+W1+6kltrbbfa8LIOVpTM6yQ=="
},
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
"System.Threading.RateLimiting": {
"type": "Transitive",
"resolved": "8.0.0",
@@ -709,6 +751,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -910,6 +953,12 @@
"requested": "[8.6.0, )",
"resolved": "8.4.2",
"contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
}
}
}
diff --git a/tests/WorkflowFramework.Dashboard.Persistence.Tests/packages.lock.json b/tests/WorkflowFramework.Dashboard.Persistence.Tests/packages.lock.json
index 7d66f39..c18d7f3 100644
--- a/tests/WorkflowFramework.Dashboard.Persistence.Tests/packages.lock.json
+++ b/tests/WorkflowFramework.Dashboard.Persistence.Tests/packages.lock.json
@@ -20,7 +20,8 @@
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.NET.Test.Sdk": {
@@ -128,7 +129,8 @@
"Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.AI": {
@@ -155,7 +157,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.AmbientMetadata.Application": {
@@ -296,7 +299,8 @@
"Microsoft.Extensions.DependencyInjection.AutoActivation": "9.5.0",
"Microsoft.Extensions.Http": "9.0.5",
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5",
- "Microsoft.Extensions.Telemetry": "9.5.0"
+ "Microsoft.Extensions.Telemetry": "9.5.0",
+ "System.IO.Pipelines": "9.0.5"
}
},
"Microsoft.Extensions.Logging": {
@@ -498,7 +502,10 @@
"Microsoft.TestPlatform.ObjectModel": {
"type": "Transitive",
"resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ=="
+ "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "dependencies": {
+ "System.Reflection.Metadata": "8.0.0"
+ }
},
"Microsoft.TestPlatform.TestHost": {
"type": "Transitive",
@@ -519,7 +526,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"OpenTelemetry": {
@@ -535,7 +543,10 @@
"OpenTelemetry.Api": {
"type": "Transitive",
"resolved": "1.12.0",
- "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw=="
+ "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw==",
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "9.0.0"
+ }
},
"OpenTelemetry.Api.ProviderBuilderExtensions": {
"type": "Transitive",
@@ -577,7 +588,10 @@
"SQLitePCLRaw.core": {
"type": "Transitive",
"resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw=="
+ "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
@@ -601,6 +615,11 @@
"System.Memory.Data": "8.0.1"
}
},
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg=="
+ },
"System.IdentityModel.Tokens.Jwt": {
"type": "Transitive",
"resolved": "8.0.1",
@@ -610,16 +629,39 @@
"Microsoft.IdentityModel.Tokens": "8.0.1"
}
},
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "5WXo+3MGcnYn54+1ojf+kRzKq1Q6sDUnovujNJ2ky1nl1/kP3+PMil9LPbFvZ2mkhvAGmQcY07G2sfHat/v0Fw=="
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.3",
+ "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+ },
"System.Memory.Data": {
"type": "Transitive",
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
"contentHash": "EzimXy5WX7RJxf1pHBfolBApA4GR7qje1cY9XofD4C+cQepx0a5ZVlZjde8NHk+W1+6kltrbbfa8LIOVpTM6yQ=="
},
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
"System.Threading.RateLimiting": {
"type": "Transitive",
"resolved": "8.0.0",
@@ -709,6 +751,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -910,6 +953,12 @@
"requested": "[8.6.0, )",
"resolved": "8.4.2",
"contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
}
}
}
diff --git a/tests/WorkflowFramework.Dashboard.Tests/packages.lock.json b/tests/WorkflowFramework.Dashboard.Tests/packages.lock.json
index a3a218c..479a404 100644
--- a/tests/WorkflowFramework.Dashboard.Tests/packages.lock.json
+++ b/tests/WorkflowFramework.Dashboard.Tests/packages.lock.json
@@ -190,7 +190,8 @@
"Microsoft.Extensions.Configuration.Abstractions": "9.0.6",
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.AI": {
@@ -217,7 +218,8 @@
"dependencies": {
"Microsoft.Extensions.AI.Abstractions": "10.0.1",
"OpenAI": "2.7.0",
- "System.Memory.Data": "10.0.0"
+ "System.Memory.Data": "10.0.0",
+ "System.Text.Json": "10.0.0"
}
},
"Microsoft.Extensions.AmbientMetadata.Application": {
@@ -358,7 +360,8 @@
"Microsoft.Extensions.DependencyInjection.AutoActivation": "9.5.0",
"Microsoft.Extensions.Http": "9.0.5",
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.5",
- "Microsoft.Extensions.Telemetry": "9.5.0"
+ "Microsoft.Extensions.Telemetry": "9.5.0",
+ "System.IO.Pipelines": "9.0.5"
}
},
"Microsoft.Extensions.Logging": {
@@ -560,7 +563,10 @@
"Microsoft.TestPlatform.ObjectModel": {
"type": "Transitive",
"resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ=="
+ "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "dependencies": {
+ "System.Reflection.Metadata": "8.0.0"
+ }
},
"Microsoft.TestPlatform.TestHost": {
"type": "Transitive",
@@ -581,7 +587,8 @@
"resolved": "2.7.0",
"contentHash": "zodE/lrDzSUxgFzuHP+fiR56VBQZyy3H7le8VH9fiuB8SCgs7YSKpK/pwSpYZln3HVX6RyPDuALIOVPQMhnRFQ==",
"dependencies": {
- "System.ClientModel": "1.8.1"
+ "System.ClientModel": "1.8.1",
+ "System.Net.ServerSentEvents": "9.0.9"
}
},
"OpenTelemetry": {
@@ -597,7 +604,10 @@
"OpenTelemetry.Api": {
"type": "Transitive",
"resolved": "1.12.0",
- "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw=="
+ "contentHash": "Xt0qldi+iE2szGrM3jAqzEMEJd48YBtqI6mge0+ArXTZg3aTpRmyhL6CKKl3bLioaFSSVbBpEbPin8u6Z46Yrw==",
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "9.0.0"
+ }
},
"OpenTelemetry.Api.ProviderBuilderExtensions": {
"type": "Transitive",
@@ -639,7 +649,10 @@
"SQLitePCLRaw.core": {
"type": "Transitive",
"resolved": "2.1.10",
- "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw=="
+ "contentHash": "Ii8JCbC7oiVclaE/mbDEK000EFIJ+ShRPwAvvV89GOZhQ+ZLtlnSWl6ksCNMKu/VGXA4Nfi2B7LhN/QFN9oBcw==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
},
"SQLitePCLRaw.lib.e_sqlite3": {
"type": "Transitive",
@@ -663,6 +676,11 @@
"System.Memory.Data": "8.0.1"
}
},
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg=="
+ },
"System.Diagnostics.EventLog": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -677,16 +695,39 @@
"Microsoft.IdentityModel.Tokens": "8.0.1"
}
},
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "9.0.5",
+ "contentHash": "5WXo+3MGcnYn54+1ojf+kRzKq1Q6sDUnovujNJ2ky1nl1/kP3+PMil9LPbFvZ2mkhvAGmQcY07G2sfHat/v0Fw=="
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.3",
+ "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+ },
"System.Memory.Data": {
"type": "Transitive",
"resolved": "10.0.0",
"contentHash": "r+m+05b+TndDQIN6/yMkotk7wNsUPpYgLKOac8QR9DdU9gcPTJIU1RoyXY8otCqPxH55XF4hewEt6lJu0lSz3Q=="
},
+ "System.Net.ServerSentEvents": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "zEISfefh8BYD5m+GMsYJnodiTaz2fDBEOrLgYH7VsQhMIzNkcuSsg9Df/d3zywYX5ohCyCJ5AOax50XLKnXyjw=="
+ },
"System.Numerics.Tensors": {
"type": "Transitive",
"resolved": "10.0.2",
"contentHash": "EzimXy5WX7RJxf1pHBfolBApA4GR7qje1cY9XofD4C+cQepx0a5ZVlZjde8NHk+W1+6kltrbbfa8LIOVpTM6yQ=="
},
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
"System.Threading.RateLimiting": {
"type": "Transitive",
"resolved": "8.0.0",
@@ -790,6 +831,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )",
"WorkflowFramework.Extensions.AI": "[1.0.0, )"
}
@@ -805,6 +847,7 @@
"type": "Project",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "[10.0.3, )",
+ "System.Diagnostics.DiagnosticSource": "[10.0.3, )",
"WorkflowFramework": "[1.0.0, )"
}
},
@@ -881,7 +924,8 @@
"Microsoft.Extensions.DependencyModel": "9.0.6",
"Microsoft.Extensions.Logging": "9.0.6",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.10",
- "SQLitePCLRaw.core": "2.1.10"
+ "SQLitePCLRaw.core": "2.1.10",
+ "System.Text.Json": "9.0.6"
}
},
"Microsoft.Extensions.DependencyInjection": {
@@ -1023,6 +1067,18 @@
"requested": "[8.6.0, )",
"resolved": "8.4.2",
"contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "IuZXyF3K5X+mCsBKIQ87Cn/V4Nyb39vyCbzfH/AkoneSWNV/ExGQ/I0m4CEaVAeFh9fW6kp2NVObkmevd1Ys7A=="
+ },
+ "System.Text.Json": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.0",
+ "contentHash": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw=="
}
},
"net8.0": {
diff --git a/tests/WorkflowFramework.Dashboard.UITests/Features/PropertiesPanel.feature.cs b/tests/WorkflowFramework.Dashboard.UITests/Features/PropertiesPanel.feature.cs
index ea1d71c..324c323 100644
--- a/tests/WorkflowFramework.Dashboard.UITests/Features/PropertiesPanel.feature.cs
+++ b/tests/WorkflowFramework.Dashboard.UITests/Features/PropertiesPanel.feature.cs
@@ -107,216 +107,216 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa
private static global::Io.Cucumber.Messages.Types.Source SourceFunc()
{
- return new global::Io.Cucumber.Messages.Types.Source("Features/PropertiesPanel.feature", "@UI\r\nFeature: Properties Panel\r\n Step properties show appropriate controls based" +
- " on step type\r\n\r\n Scenario: Action step shows expression field\r\n Given the d" +
- "ashboard is running\r\n And I have a workflow with an Action step\r\n When I s" +
- "elect the Action step\r\n Then the properties panel should show \"Expression\" fi" +
- "eld\r\n And the field should be a text input\r\n\r\n Scenario: LLM step shows prov" +
- "ider dropdown and prompt textarea\r\n Given the dashboard is running\r\n And I" +
- " have a workflow with a LlmCallStep\r\n When I select the LlmCallStep\r\n Then" +
- " the properties panel should show a provider dropdown\r\n And the properties pa" +
- "nel should show a model dropdown\r\n And the properties panel should show a pro" +
- "mpt textarea\r\n And the properties panel should show a temperature slider\r\n\r\n " +
- " Scenario: HTTP step shows method dropdown and URL field\r\n Given the dashboar" +
- "d is running\r\n And I have a workflow with an HttpStep\r\n When I select the " +
- "HttpStep\r\n Then the properties panel should show a method dropdown with optio" +
- "ns \"GET,POST,PUT,DELETE,PATCH\"\r\n And the properties panel should show a URL t" +
- "ext field\r\n And the properties panel should show a headers JSON editor\r\n A" +
- "nd the properties panel should show a body JSON editor\r\n\r\n Scenario: Human task" +
- " step shows priority dropdown\r\n Given the dashboard is running\r\n And I hav" +
- "e a workflow with a HumanTaskStep\r\n When I select the HumanTaskStep\r\n Then" +
- " the properties panel should show a priority dropdown with options \"Low,Medium,H" +
- "igh,Critical\"\r\n And the properties panel should show an assignee field\r\n\r\n S" +
- "cenario: Edit step name persists\r\n Given the dashboard is running\r\n And I " +
- "have a workflow with an Action step named \"MyStep\"\r\n When I select the Action" +
- " step\r\n And I change the step name to \"RenamedStep\"\r\n Then the step name s" +
- "hould update on the canvas\r\n\r\n Scenario: Action node inline editor syncs with s" +
- "idebar\r\n Given the dashboard is running\r\n And I have a workflow with an Ac" +
- "tion step named \"InlineAction\"\r\n When I select the Action step\r\n Then the " +
- "action node quick editor should be visible\r\n When I update the inline action " +
- "step name to \"InlineRenamed\"\r\n And I update the inline action expression to \"" +
- "return transcript.trim();\"\r\n And I save and reopen the current workflow\r\n " +
- "Then the properties panel step name should be \"InlineRenamed\"\r\n And the prope" +
- "rties panel expression should be \"return transcript.trim();\"\r\n And the action" +
- " node summary should contain \"return transcript.trim();\"\r\n\r\n Scenario: Edit not" +
- "es persists\r\n Given the dashboard is running\r\n And I have a workflow with " +
- "an Action step\r\n When I select the Action step\r\n And I type \"This does imp" +
- "ortant work\" in the notes field\r\n Then the notes should be saved\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN);
+ return new global::Io.Cucumber.Messages.Types.Source("Features/PropertiesPanel.feature", "@UI\nFeature: Properties Panel\n Step properties show appropriate controls based o" +
+ "n step type\n\n Scenario: Action step shows expression field\n Given the dashbo" +
+ "ard is running\n And I have a workflow with an Action step\n When I select t" +
+ "he Action step\n Then the properties panel should show \"Expression\" field\n " +
+ "And the field should be a text input\n\n Scenario: LLM step shows provider dropdo" +
+ "wn and prompt textarea\n Given the dashboard is running\n And I have a workf" +
+ "low with a LlmCallStep\n When I select the LlmCallStep\n Then the properties" +
+ " panel should show a provider dropdown\n And the properties panel should show " +
+ "a model dropdown\n And the properties panel should show a prompt textarea\n " +
+ "And the properties panel should show a temperature slider\n\n Scenario: HTTP step" +
+ " shows method dropdown and URL field\n Given the dashboard is running\n And " +
+ "I have a workflow with an HttpStep\n When I select the HttpStep\n Then the p" +
+ "roperties panel should show a method dropdown with options \"GET,POST,PUT,DELETE," +
+ "PATCH\"\n And the properties panel should show a URL text field\n And the pro" +
+ "perties panel should show a headers JSON editor\n And the properties panel sho" +
+ "uld show a body JSON editor\n\n Scenario: Human task step shows priority dropdown" +
+ "\n Given the dashboard is running\n And I have a workflow with a HumanTaskSt" +
+ "ep\n When I select the HumanTaskStep\n Then the properties panel should show" +
+ " a priority dropdown with options \"Low,Medium,High,Critical\"\n And the propert" +
+ "ies panel should show an assignee field\n\n Scenario: Edit step name persists\n " +
+ " Given the dashboard is running\n And I have a workflow with an Action step na" +
+ "med \"MyStep\"\n When I select the Action step\n And I change the step name to" +
+ " \"RenamedStep\"\n Then the step name should update on the canvas\n\n Scenario: A" +
+ "ction node inline editor syncs with sidebar\n Given the dashboard is running\n " +
+ " And I have a workflow with an Action step named \"InlineAction\"\n When I sel" +
+ "ect the Action step\n Then the action node quick editor should be visible\n " +
+ "When I update the inline action step name to \"InlineRenamed\"\n And I update th" +
+ "e inline action expression to \"return transcript.trim();\"\n And I save and reo" +
+ "pen the current workflow\n Then the properties panel step name should be \"Inli" +
+ "neRenamed\"\n And the properties panel expression should be \"return transcript." +
+ "trim();\"\n And the action node summary should contain \"return transcript.trim(" +
+ ");\"\n\n Scenario: Edit notes persists\n Given the dashboard is running\n And " +
+ "I have a workflow with an Action step\n When I select the Action step\n And " +
+ "I type \"This does important work\" in the notes field\n Then the notes should b" +
+ "e saved\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN);
}
private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc()
{
return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/PropertiesPanel.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(2, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[] {
- new global::Io.Cucumber.Messages.Types.Tag(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), "@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), "en", "Feature", "Properties Panel", " Step properties show appropriate controls based on step type", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] {
+ new global::Io.Cucumber.Messages.Types.Tag(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), "@UI", "344fba705a16db5d9b7c4ef0512727db")}), "en", "Feature", "Properties Panel", " Step properties show appropriate controls based on step type", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] {
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(5, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Action step shows expression field", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "a300092987da9d5b82e18e6af1c71ec8"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step", null, null, "55c2bf80513d5459b54e40bca4876714"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "9815d01a1257b75ca6856db3be2eded9"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show \"Expression\" field", null, null, "6dba4e300af41b5286267c2835040949"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the field should be a text input", null, null, "e64dbd530f9cff5599775ab60225d671")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cdf93107ba6c5a5b9c29ce13c91e4673")),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "9e7bce0005dcc25bba49f74175cc5494"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step", null, null, "63d3c6166907425fbce191c19ff962e3"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "1baa35341d0eae51ab2c4a8e48fa4c53"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show \"Expression\" field", null, null, "56ce9a481cba115db4a4828882b3be6f"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the field should be a text input", null, null, "fbc483070152a552a172553f6ca6c32c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "565bc8a6dc17b25eae2ab6ab85daae5f")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "LLM step shows provider dropdown and prompt textarea", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "243b6627a9454d5f98ab3d94fe4f92e6"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with a LlmCallStep", null, null, "c5dee100e00070518d80c8c2e6c911d1"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the LlmCallStep", null, null, "90e9c1ddad2fbf59b708954184d16884"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show a provider dropdown", null, null, "dec8069c24087e5f8c5f76759527135f"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a model dropdown", null, null, "bbd818cb03bde951986b6e5eaf4f7749"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a prompt textarea", null, null, "883beb7d86e0755babfea85e640dbac8"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a temperature slider", null, null, "a62543752ae3e258b0d4c3e702efb3be")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "06de3f7dfd3b3b5cbab0c9edf4ff1051")),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "bd8055c6867d555c915b8572a15e9957"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with a LlmCallStep", null, null, "d5e67a9914e7f05bb589b4916d875f53"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the LlmCallStep", null, null, "a862cb81dcf96f5487022315f5812c26"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show a provider dropdown", null, null, "9b022296d837205b90c88930ea21dd3f"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a model dropdown", null, null, "4c8e68802faa4559862c38871451c3c6"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a prompt textarea", null, null, "63c44b44995f495d866a30a4ee4c5d11"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a temperature slider", null, null, "a274ea4699b0675aa5a357503cf72eca")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "8491c61cf501795d8f4c36c5f941b916")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "HTTP step shows method dropdown and URL field", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "236cfb392ecc0c54b6860f286d3bafc0"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an HttpStep", null, null, "cb46fea9f6c1ad50be4c01973b5b2f9f"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the HttpStep", null, null, "84fcf8f5c594f85a982aa541877359c1"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "f6059d05ef6e2d5481a39910eafb4800"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an HttpStep", null, null, "220d963a61049e5a82d44578dc9c9e7b"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the HttpStep", null, null, "14e83e05c265855e892dbe3e9d11ec7c"),
new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show a method dropdown with options \"GET,POST,PUT,DEL" +
- "ETE,PATCH\"", null, null, "e2c94e53c59c915484edcf99cb2959e8"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a URL text field", null, null, "425036e607708c5e85783a5a16e86933"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a headers JSON editor", null, null, "9cf6fd38275a5a5cb245abe96a9251d0"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a body JSON editor", null, null, "a33ae820c29807539f722945c7ecfdc1")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "b5902bfad9224a5e821fa47fb12f16bf")),
+ "ETE,PATCH\"", null, null, "5b18451ce6f5ef5bbb6e026e7119fa25"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a URL text field", null, null, "3dc56888f281495d98e6498e036ac13d"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a headers JSON editor", null, null, "7ebe4c7a8fdef956a3ebc624f281dfcd"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show a body JSON editor", null, null, "a1deff61c1806c57aacd54de90917074")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "54d56522f980cc55ba11e0e915734855")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Human task step shows priority dropdown", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "105309c05a9ab650a4c846fcd1c718c7"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with a HumanTaskStep", null, null, "4e3f1d19eaf8685cbb137600f1c6913f"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the HumanTaskStep", null, null, "8b56e2b57272e15a86b9925d850a884c"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "602319acf7c64c5ab146cd50003d04b0"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with a HumanTaskStep", null, null, "e221ff70f8a8f250802eeed0db385d0d"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the HumanTaskStep", null, null, "cb5e5ce86190a850940cd7cfe5edfb83"),
new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel should show a priority dropdown with options \"Low,Medium,Hig" +
- "h,Critical\"", null, null, "b051f7a620d613529f6a83585c52b1da"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show an assignee field", null, null, "4869bc31c6b53953ac4cf6f126478568")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "409388fa1974db508b424b944249647d")),
+ "h,Critical\"", null, null, "276c2df6b6138a529f1acab04e461cf1"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel should show an assignee field", null, null, "6cdd9bcdf2f6115dae336ec5bab0ac4d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0a47ddaf53d8ce5385eb9f1111d999b9")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Edit step name persists", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "92679df9a1fe7e59b1cc3151e11fedcf"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step named \"MyStep\"", null, null, "7c55c174d308575c8f80be08bb117d6e"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "28601a817dd6055183d384ee3a032e80"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I change the step name to \"RenamedStep\"", null, null, "d131b7cd11da5c548df1133652a6304f"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the step name should update on the canvas", null, null, "4759a193fa44455380cc838a65b33e85")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3052a069fcf25d5b8a852a51399e6677")),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "5cf3e91dc1397651bda486b16131d79e"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step named \"MyStep\"", null, null, "c83ce49e1ca98755ad0ad3cec8f22981"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "ffc1262066ae4f55b759c8bf2703111c"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I change the step name to \"RenamedStep\"", null, null, "efc8b0d2ad86c451b84764c26e608e51"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the step name should update on the canvas", null, null, "bc0c5dcbbd445c51ac3de860cd96f277")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "86c776a8eb181d52ae186fd98ef09dda")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Action node inline editor syncs with sidebar", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "b4037648fee17c5a91b0ea6593760198"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step named \"InlineAction\"", null, null, "66a9e163567afb5288c76f243c59b96c"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "ce6c44ba88ea0c5b9d8ccfc5788536fb"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the action node quick editor should be visible", null, null, "b078d61113b5fe5cbe836243cdb14650"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I update the inline action step name to \"InlineRenamed\"", null, null, "5e110942a5f1485e9b9da0fae9e1b3ee"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I update the inline action expression to \"return transcript.trim();\"", null, null, "8c78b375b28067599d19d64cd993562d"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I save and reopen the current workflow", null, null, "097756a3a25ad058bb14a9fe1bad3e4f"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel step name should be \"InlineRenamed\"", null, null, "5ebba2e514b01854bf17cac11aca04a9"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel expression should be \"return transcript.trim();\"", null, null, "3a9a0878ac9f9850899632fc2a40fa43"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the action node summary should contain \"return transcript.trim();\"", null, null, "174e19749ed78a548c635ab2b9aaa787")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0167f87aff57b45098e67efa6ab27bdd")),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "8aa423c57e9eb757b2749ec274bf3355"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step named \"InlineAction\"", null, null, "9340ddc858dbec53a31ffd8adc6bbd87"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "6612db64b74a0e569385f6168bb91a9b"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the action node quick editor should be visible", null, null, "39fd4f6f5f771858ac3db99c9506fede"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I update the inline action step name to \"InlineRenamed\"", null, null, "a03ad1e0eb17765a8b2373c6d0f0db5e"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I update the inline action expression to \"return transcript.trim();\"", null, null, "d065a40f828bcb58be30393e7175427a"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I save and reopen the current workflow", null, null, "d47c3d61c8f1f5589107aede50eefc1e"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the properties panel step name should be \"InlineRenamed\"", null, null, "00e61b98546a765baf5dff229a2354bd"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the properties panel expression should be \"return transcript.trim();\"", null, null, "6438db2828318f5cba7edaf85aee27bc"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the action node summary should contain \"return transcript.trim();\"", null, null, "a6a89c5b4da3ce519f9696e3d108a34c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a4b888d755284257a51f2178b79ac1de")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Edit notes persists", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "10390480f4362c5db557b187cbe4ef8c"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step", null, null, "42eb73ed2f0e895aa7ef2eb30d18d122"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "3eb8c10a6b875a559fa29ea4864875fe"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(60, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I type \"This does important work\" in the notes field", null, null, "ec17ce4f0a14b0588fdeada74b325b4e"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the notes should be saved", null, null, "8c0ebe6eaf8abd53a4904f911f90f0d5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cbdcee7ba5abb45cbeef114af795a1b3"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[0]));
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the dashboard is running", null, null, "d77736f69d7872508bf3273ef570f665"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I have a workflow with an Action step", null, null, "5265875cb2df6851aea6f71eee5f0435"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I select the Action step", null, null, "2c6bb301ae069653bdb64c2e6d0fa89b"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(60, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I type \"This does important work\" in the notes field", null, null, "8b6989777cafd0569eb35b288ba7b368"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the notes should be saved", null, null, "4f3cba3b2b1ef9508bd1a0d45e0475c1")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "f61e5dfb324b3058a36a29874b04d5d6"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[0]));
}
private static global::System.Collections.Generic.IEnumerable PicklesFunc()
{
return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] {
- new global::Io.Cucumber.Messages.Types.Pickle("6972ea923c7da059adb8e1bb86c35ad9", "Features/PropertiesPanel.feature", "Action step shows expression field", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ new global::Io.Cucumber.Messages.Types.Pickle("19b2089e90af925bb8ac0de9f6f39160", "Features/PropertiesPanel.feature", "Action step shows expression field", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "a300092987da9d5b82e18e6af1c71ec8"}), "21c00e3d6fb64652ba262aa1996a1edb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "9e7bce0005dcc25bba49f74175cc5494"}), "5a6397af9a063557a04a5ebeafbe156d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "55c2bf80513d5459b54e40bca4876714"}), "af15dacab52dcd57b794a839ed36ea90", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step"),
+ "63d3c6166907425fbce191c19ff962e3"}), "426d8d1f33a4a85eb2eeb0940cd307f9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "9815d01a1257b75ca6856db3be2eded9"}), "d1b0494a7edcf85daf42f47aa1b607ea", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
+ "1baa35341d0eae51ab2c4a8e48fa4c53"}), "34430eca29841f5e88bdb3a696f1e6f3", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "6dba4e300af41b5286267c2835040949"}), "68496c6c25a7825281343786b8156c41", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show \"Expression\" field"),
+ "56ce9a481cba115db4a4828882b3be6f"}), "ebf8ea3b442ef355b25f822ab84da4cd", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show \"Expression\" field"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "e64dbd530f9cff5599775ab60225d671"}), "8f53d7d76afcef53acb5fd55ff5ea485", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the field should be a text input")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "cdf93107ba6c5a5b9c29ce13c91e4673"})),
- new global::Io.Cucumber.Messages.Types.Pickle("747ebcc358c56457a38fba8c1ffdd7de", "Features/PropertiesPanel.feature", "LLM step shows provider dropdown and prompt textarea", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "fbc483070152a552a172553f6ca6c32c"}), "71f160b45df95e5d9629d1fed6100140", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the field should be a text input")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "565bc8a6dc17b25eae2ab6ab85daae5f"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("a83a356349b3835485b61609b18baf17", "Features/PropertiesPanel.feature", "LLM step shows provider dropdown and prompt textarea", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "243b6627a9454d5f98ab3d94fe4f92e6"}), "4fe5bffe73d9885fa380a4c094e2a45f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "bd8055c6867d555c915b8572a15e9957"}), "e0ddf282673ff95da1ec93528e513adf", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "c5dee100e00070518d80c8c2e6c911d1"}), "84187abab8ee175db99d58537cb54b98", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with a LlmCallStep"),
+ "d5e67a9914e7f05bb589b4916d875f53"}), "aa20ab668be1b35a99db300cf37aa1f2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with a LlmCallStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "90e9c1ddad2fbf59b708954184d16884"}), "b567124a08c94e5ca081edf0153dc497", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the LlmCallStep"),
+ "a862cb81dcf96f5487022315f5812c26"}), "02148fc1fd5de35185a8c3acc87fbaa8", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the LlmCallStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "dec8069c24087e5f8c5f76759527135f"}), "bba0b16798946f56a40aa42e0518b0cb", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a provider dropdown"),
+ "9b022296d837205b90c88930ea21dd3f"}), "fefc10d475c1b253b6825c11b031caec", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a provider dropdown"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "bbd818cb03bde951986b6e5eaf4f7749"}), "39045bb4d3c83b5e802f185b6c2716f9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a model dropdown"),
+ "4c8e68802faa4559862c38871451c3c6"}), "9d12716d9e177e5796ba8848fef9ee9a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a model dropdown"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "883beb7d86e0755babfea85e640dbac8"}), "55ad6dab83d4575c82258fe25fe32dd3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a prompt textarea"),
+ "63c44b44995f495d866a30a4ee4c5d11"}), "d8adf26aae83d95bb51430a731c3649b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a prompt textarea"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "a62543752ae3e258b0d4c3e702efb3be"}), "0f0f3385cd36fa5098b73c52649daec7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a temperature slider")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "06de3f7dfd3b3b5cbab0c9edf4ff1051"})),
- new global::Io.Cucumber.Messages.Types.Pickle("00068241bc32405cb738bc4b254687f8", "Features/PropertiesPanel.feature", "HTTP step shows method dropdown and URL field", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "a274ea4699b0675aa5a357503cf72eca"}), "9913ec3a1c44f15aaf5518ebd4e8f001", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a temperature slider")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "8491c61cf501795d8f4c36c5f941b916"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("d54a73e05a2496559546c0cf0c0bff55", "Features/PropertiesPanel.feature", "HTTP step shows method dropdown and URL field", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "236cfb392ecc0c54b6860f286d3bafc0"}), "f1d75d296c9df658a0eb3e6d339b80d4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "f6059d05ef6e2d5481a39910eafb4800"}), "19ebe4bb965c2851a9fe1b3631ce352a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "cb46fea9f6c1ad50be4c01973b5b2f9f"}), "30815e27fa45b35381d12c7ea1c0103a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an HttpStep"),
+ "220d963a61049e5a82d44578dc9c9e7b"}), "86600e6721c8f45180df6ce98bc17dd3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an HttpStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "84fcf8f5c594f85a982aa541877359c1"}), "48cede607eb7715795140341c4d76d1b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the HttpStep"),
+ "14e83e05c265855e892dbe3e9d11ec7c"}), "68bb865e40d26e56a2650f321d502bfb", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the HttpStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "e2c94e53c59c915484edcf99cb2959e8"}), "d4ec228bc432b459b3723f01b4b2d52c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a method dropdown with options \"GET,POST,PUT,DEL" +
+ "5b18451ce6f5ef5bbb6e026e7119fa25"}), "1f5eac7cfa946b5bb6c42fce920f565d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a method dropdown with options \"GET,POST,PUT,DEL" +
"ETE,PATCH\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "425036e607708c5e85783a5a16e86933"}), "0b6ce2ba1cb44054bdcf432046a21507", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a URL text field"),
+ "3dc56888f281495d98e6498e036ac13d"}), "4d4882e77069405fb12b0f034cf900b2", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a URL text field"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "9cf6fd38275a5a5cb245abe96a9251d0"}), "77ff59b9d12f8059ae9f604ea391bbcd", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a headers JSON editor"),
+ "7ebe4c7a8fdef956a3ebc624f281dfcd"}), "b2a9819ebcc03a508698e0bb88692e5b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a headers JSON editor"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "a33ae820c29807539f722945c7ecfdc1"}), "06c609a87fca9f5ab4bb1b51e72a8c3b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a body JSON editor")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "b5902bfad9224a5e821fa47fb12f16bf"})),
- new global::Io.Cucumber.Messages.Types.Pickle("5ed9bc8832f6615b81e1c9736efc352e", "Features/PropertiesPanel.feature", "Human task step shows priority dropdown", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "a1deff61c1806c57aacd54de90917074"}), "686aba03f0e75954a304b0a283904236", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a body JSON editor")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "54d56522f980cc55ba11e0e915734855"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("8d9119f11195555a965b23932ab013fd", "Features/PropertiesPanel.feature", "Human task step shows priority dropdown", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "105309c05a9ab650a4c846fcd1c718c7"}), "42e345ef223d6455b1b4269adeda31e4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "602319acf7c64c5ab146cd50003d04b0"}), "b2f3914265263657bfb3e707618d2eef", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "4e3f1d19eaf8685cbb137600f1c6913f"}), "f580098efbe0835bb424b024433ef842", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with a HumanTaskStep"),
+ "e221ff70f8a8f250802eeed0db385d0d"}), "7d870fdba779185eb73930a02545171c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with a HumanTaskStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "8b56e2b57272e15a86b9925d850a884c"}), "bf4f15a60926d757a2aae4794ffef06a", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the HumanTaskStep"),
+ "cb5e5ce86190a850940cd7cfe5edfb83"}), "8f6607e69fd24b54ae4ebf76aaf21579", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the HumanTaskStep"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "b051f7a620d613529f6a83585c52b1da"}), "93fb9ea57e948650a1bfd0d7836d8a70", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a priority dropdown with options \"Low,Medium,Hig" +
+ "276c2df6b6138a529f1acab04e461cf1"}), "4dba8523ed89005d9bca5fb1e703d1a4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show a priority dropdown with options \"Low,Medium,Hig" +
"h,Critical\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "4869bc31c6b53953ac4cf6f126478568"}), "920926dc9efe245b99962afd255ce903", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show an assignee field")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "409388fa1974db508b424b944249647d"})),
- new global::Io.Cucumber.Messages.Types.Pickle("51c18e404ad28f5fa3d5d0d9a25d0ff4", "Features/PropertiesPanel.feature", "Edit step name persists", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "6cdd9bcdf2f6115dae336ec5bab0ac4d"}), "07458da5a57f1553a2e933889ecc3d07", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel should show an assignee field")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "0a47ddaf53d8ce5385eb9f1111d999b9"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("ff44637540e83d50ba180dc1bfffe4fc", "Features/PropertiesPanel.feature", "Edit step name persists", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "92679df9a1fe7e59b1cc3151e11fedcf"}), "4467fbdbc77f0d5d8c072ad3abb68d9f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "5cf3e91dc1397651bda486b16131d79e"}), "f672ddad6ac9f358a3c6b5c18b657380", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "7c55c174d308575c8f80be08bb117d6e"}), "66b2375338e15353b7dc75c2da12f4a5", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step named \"MyStep\""),
+ "c83ce49e1ca98755ad0ad3cec8f22981"}), "5d922c9dc63c2e59bb8c0e3cb577421e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step named \"MyStep\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "28601a817dd6055183d384ee3a032e80"}), "89caeaab3979c75e8e0f19a108dafd35", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
+ "ffc1262066ae4f55b759c8bf2703111c"}), "38b3ddf2c066005a90d0d8487e0c5f6d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "d131b7cd11da5c548df1133652a6304f"}), "ea8abe3fb880ba538b6ba3b688385e27", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I change the step name to \"RenamedStep\""),
+ "efc8b0d2ad86c451b84764c26e608e51"}), "cff7d6abf8667456b817206ec358d97b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I change the step name to \"RenamedStep\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "4759a193fa44455380cc838a65b33e85"}), "0925cdd3d696c854a0f2875fc9ce99df", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the step name should update on the canvas")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "3052a069fcf25d5b8a852a51399e6677"})),
- new global::Io.Cucumber.Messages.Types.Pickle("e1731c0633b9805e8760ba6ad292fc1f", "Features/PropertiesPanel.feature", "Action node inline editor syncs with sidebar", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "bc0c5dcbbd445c51ac3de860cd96f277"}), "d2a2726d7a40285ea1a16874b8e1c48b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the step name should update on the canvas")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "86c776a8eb181d52ae186fd98ef09dda"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("da2cb510d19101569e295641ac07b39a", "Features/PropertiesPanel.feature", "Action node inline editor syncs with sidebar", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "b4037648fee17c5a91b0ea6593760198"}), "880788c8b95c2051b16b0b54d139a279", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "8aa423c57e9eb757b2749ec274bf3355"}), "4fb669cc7a56835b89de8d9db218400b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "66a9e163567afb5288c76f243c59b96c"}), "675c9199f3db505fb95104f470062e1f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step named \"InlineAction\""),
+ "9340ddc858dbec53a31ffd8adc6bbd87"}), "ad29d7813032765cafa9264dca186cdf", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step named \"InlineAction\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "ce6c44ba88ea0c5b9d8ccfc5788536fb"}), "470d77d57989b55a940bd275a5aeb8bc", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
+ "6612db64b74a0e569385f6168bb91a9b"}), "96358870abe72250a1569904deb9c6ad", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "b078d61113b5fe5cbe836243cdb14650"}), "ca8622abacd2a658be2da8b812bf4207", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the action node quick editor should be visible"),
+ "39fd4f6f5f771858ac3db99c9506fede"}), "23879ca6f764965cb2192f65ce561a7e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the action node quick editor should be visible"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "5e110942a5f1485e9b9da0fae9e1b3ee"}), "e66886a159649850a7c53a9fd9ef321f", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I update the inline action step name to \"InlineRenamed\""),
+ "a03ad1e0eb17765a8b2373c6d0f0db5e"}), "4cc8547224a980549d1789696cd58556", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I update the inline action step name to \"InlineRenamed\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "8c78b375b28067599d19d64cd993562d"}), "3149c950b8bcfa5093efbc5d3426cddf", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I update the inline action expression to \"return transcript.trim();\""),
+ "d065a40f828bcb58be30393e7175427a"}), "5a39065e21fc215f8afae9312357aad8", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I update the inline action expression to \"return transcript.trim();\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "097756a3a25ad058bb14a9fe1bad3e4f"}), "89575be78d663352ad59ba4078ec129d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I save and reopen the current workflow"),
+ "d47c3d61c8f1f5589107aede50eefc1e"}), "99c7641abab5b65fab816a771352d5e2", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I save and reopen the current workflow"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "5ebba2e514b01854bf17cac11aca04a9"}), "d4a5fd401634495ebff69b1e7b1586f3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel step name should be \"InlineRenamed\""),
+ "00e61b98546a765baf5dff229a2354bd"}), "5f12e2072f59a35dae584dd80451758c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel step name should be \"InlineRenamed\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "3a9a0878ac9f9850899632fc2a40fa43"}), "1e276a07a7e7e655a655130309ccaf14", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel expression should be \"return transcript.trim();\""),
+ "6438db2828318f5cba7edaf85aee27bc"}), "8e413d946e2654598bd32e6ea51a5a07", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the properties panel expression should be \"return transcript.trim();\""),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "174e19749ed78a548c635ab2b9aaa787"}), "74c55576020f145285187939a30073bc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the action node summary should contain \"return transcript.trim();\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "0167f87aff57b45098e67efa6ab27bdd"})),
- new global::Io.Cucumber.Messages.Types.Pickle("c33449aa45491f50bb14891ca0daf554", "Features/PropertiesPanel.feature", "Edit notes persists", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
+ "a6a89c5b4da3ce519f9696e3d108a34c"}), "fb0cf35b515ea750bdc73adb7faa2b02", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the action node summary should contain \"return transcript.trim();\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "a4b888d755284257a51f2178b79ac1de"})),
+ new global::Io.Cucumber.Messages.Types.Pickle("029cbb08f6d1a452a27b13d643c267ba", "Features/PropertiesPanel.feature", "Edit notes persists", "en", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] {
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "10390480f4362c5db557b187cbe4ef8c"}), "5120052df0946a51b7a83ef88c4edb54", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
+ "d77736f69d7872508bf3273ef570f665"}), "b797228a6321fe59a85ba476c7937c82", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the dashboard is running"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "42eb73ed2f0e895aa7ef2eb30d18d122"}), "b34dc7cd5e61f456a74025b16700f8e3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step"),
+ "5265875cb2df6851aea6f71eee5f0435"}), "9e0d41cf6445495ab8b62766f70ee139", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I have a workflow with an Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "3eb8c10a6b875a559fa29ea4864875fe"}), "a1f4fdc668ac23529069fb0f24f8d1b5", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
+ "2c6bb301ae069653bdb64c2e6d0fa89b"}), "bbdc60f7b72f605bb87844112f20d860", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I select the Action step"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "ec17ce4f0a14b0588fdeada74b325b4e"}), "9f40e8dbc8b8f75a85e1236a6ebdce59", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I type \"This does important work\" in the notes field"),
+ "8b6989777cafd0569eb35b288ba7b368"}), "cb42a6a78b86ef59a518bc94a458fda2", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I type \"This does important work\" in the notes field"),
new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] {
- "8c0ebe6eaf8abd53a4904f911f90f0d5"}), "3992c059bb57c15fbfa009fd2d3fa43b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the notes should be saved")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
- new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "9596ab6e8c47675099a66e2cedbdd97e")}), new System.Collections.Generic.List(new string[] {
- "cbdcee7ba5abb45cbeef114af795a1b3"}))});
+ "4f3cba3b2b1ef9508bd1a0d45e0475c1"}), "7bb6b96a5bfa1c598846dbbafd111a5e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the notes should be saved")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[] {
+ new global::Io.Cucumber.Messages.Types.PickleTag("@UI", "344fba705a16db5d9b7c4ef0512727db")}), new System.Collections.Generic.List(new string[] {
+ "f61e5dfb324b3058a36a29874b04d5d6"}))});
}
private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages()
diff --git a/tests/WorkflowFramework.Dashboard.UITests/Features/RunAssistant.feature.cs b/tests/WorkflowFramework.Dashboard.UITests/Features/RunAssistant.feature.cs
index 05f2565..a3642b9 100644
--- a/tests/WorkflowFramework.Dashboard.UITests/Features/RunAssistant.feature.cs
+++ b/tests/WorkflowFramework.Dashboard.UITests/Features/RunAssistant.feature.cs
@@ -108,134 +108,133 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa
private static global::Io.Cucumber.Messages.Types.Source SourceFunc()
{
- return new global::Io.Cucumber.Messages.Types.Source("Features/RunAssistant.feature", "@UI\r\nFeature: Run Assistant\r\n Audio workflows should provide interactive recordi" +
- "ng UX and stay free of interop exceptions\r\n\r\n Scenario: Blog Interview workflow" +
- " opens guided recording tasks\r\n Given the browser voice recorder is mocked\r\n " +
- " And the dashboard is running\r\n And I open the \"Blog Interview\" sample work" +
- "flow\r\n When I run the workflow\r\n Then the run assistant should open with r" +
- "ecording controls\r\n And the run assistant should expose multiple interactive " +
- "tasks\r\n And the browser should not report run assistant interop errors\r\n\r\n S" +
- "cenario: Record audio in run assistant for Quick Transcript workflow\r\n Given " +
- "the browser voice recorder is mocked\r\n And the dashboard is running\r\n And " +
- "I open the \"Quick Transcript\" sample workflow\r\n When I run the workflow\r\n " +
- "Then the run assistant should open with recording controls\r\n When I start rec" +
- "ording in the run assistant\r\n And I stop recording in the run assistant\r\n " +
- "Then the run assistant should show captured audio\r\n When I complete the run a" +
- "ssistant flow and start the workflow\r\n Then the output feed should show detai" +
- "led execution telemetry\r\n And the browser should not report run assistant int" +
- "erop errors\r\n\r\n Scenario: Run assistant recovers when stopping recording fails\r" +
- "\n Given the browser voice recorder stop fails after transcription halts\r\n " +
- "And the dashboard is running\r\n And I open the \"Quick Transcript\" sample workf" +
- "low\r\n When I run the workflow\r\n Then the run assistant should open with re" +
- "cording controls\r\n When I start recording in the run assistant\r\n And stopp" +
- "ing recording fails in the run assistant\r\n Then the run assistant should rese" +
- "t recording controls after a stop failure\r\n And the browser should not report" +
- " run assistant interop errors\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN);
+ return new global::Io.Cucumber.Messages.Types.Source("Features/RunAssistant.feature", "@UI\nFeature: Run Assistant\n Audio workflows should provide interactive recording" +
+ " UX and stay free of interop exceptions\n\n Scenario: Blog Interview workflow ope" +
+ "ns guided recording tasks\n Given the browser voice recorder is mocked\n And" +
+ " the dashboard is running\n And I open the \"Blog Interview\" sample workflow\n " +
+ " When I run the workflow\n Then the run assistant should open with recording " +
+ "controls\n And the run assistant should expose multiple interactive tasks\n " +
+ "And the browser should not report run assistant interop errors\n\n Scenario: Reco" +
+ "rd audio in run assistant for Quick Transcript workflow\n Given the browser vo" +
+ "ice recorder is mocked\n And the dashboard is running\n And I open the \"Quic" +
+ "k Transcript\" sample workflow\n When I run the workflow\n Then the run assis" +
+ "tant should open with recording controls\n When I start recording in the run a" +
+ "ssistant\n And I stop recording in the run assistant\n Then the run assistan" +
+ "t should show captured audio\n When I complete the run assistant flow and star" +
+ "t the workflow\n Then the output feed should show detailed execution telemetry" +
+ "\n And the browser should not report run assistant interop errors\n\n Scenario:" +
+ " Run assistant recovers when stopping recording fails\n Given the browser voic" +
+ "e recorder stop fails after transcription halts\n And the dashboard is running" +
+ "\n And I open the \"Quick Transcript\" sample workflow\n When I run the workfl" +
+ "ow\n Then the run assistant should open with recording controls\n When I sta" +
+ "rt recording in the run assistant\n And stopping recording fails in the run as" +
+ "sistant\n Then the run assistant should reset recording controls after a stop " +
+ "failure\n And the browser should not report run assistant interop errors\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN);
}
private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc()
{
return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/RunAssistant.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(2, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[] {
- new global::Io.Cucumber.Messages.Types.Tag(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), "@UI", "2bd853a50ad8e65facd10eaa9a3050ef")}), "en", "Feature", "Run Assistant", " Audio workflows should provide interactive recording UX and stay free of intero" +
+ new global::Io.Cucumber.Messages.Types.Tag(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), "@UI", "4358eba403bf9d5a88e2991d960afce7")}), "en", "Feature", "Run Assistant", " Audio workflows should provide interactive recording UX and stay free of intero" +
"p exceptions", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] {
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(5, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Blog Interview workflow opens guided recording tasks", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the browser voice recorder is mocked", null, null, "d0d6825ec39b5156aabf306809cfda37"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the dashboard is running", null, null, "5dcd0cfb17b5b057bcbdc1163d8bbe19"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I open the \"Blog Interview\" sample workflow", null, null, "78b25ef69820605691708d5771f43a10"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I run the workflow", null, null, "3a7e05cf6a4b5d5c83b23b1941629afe"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the run assistant should open with recording controls", null, null, "0e376378dd76945db643a62115685277"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the run assistant should expose multiple interactive tasks", null, null, "7c8be190ddd4405f9f762810c9974cbe"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the browser should not report run assistant interop errors", null, null, "b694fac46ce1405f9e0d95229ad212cc")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "31933ec86090f45abf4e3b1702dc23d4")),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the browser voice recorder is mocked", null, null, "d62aa228d7997951a15ff9274b7713fd"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the dashboard is running", null, null, "773a10631667dd57a60dc22ec7df26fa"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I open the \"Blog Interview\" sample workflow", null, null, "d40ea23f8205b15ab3e35e980cf0a08c"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I run the workflow", null, null, "9a6ddedd2f37125b8a432d0e75c526c9"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the run assistant should open with recording controls", null, null, "52b92355f9185f56bf942f60f4c23622"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the run assistant should expose multiple interactive tasks", null, null, "5fb9c706ba95945dbaa9d51c68f32a90"),
+ new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the browser should not report run assistant interop errors", null, null, "7bf5b821ae9bcb5b8c7a9be90de3b9bb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "bc70882ce67f035482dc06e4e41bc9c3")),
new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Record audio in run assistant for Quick Transcript workflow", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] {
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the browser voice recorder is mocked", null, null, "579e4219670c0d578a2272d044526079"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the dashboard is running", null, null, "5ab82dffd07d5056b662dc982476775a"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I open the \"Quick Transcript\" sample workflow", null, null, "217065ce25b48057b2bfbb3397e864f4"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I run the workflow", null, null, "d091d09e6e2c99599fd69b58804eaa87"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the run assistant should open with recording controls", null, null, "a3e34632d7fdd35484a1255d83760e98"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I start recording in the run assistant", null, null, "bd2873d6de57af53b190b3a3c5d70138"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop recording in the run assistant", null, null, "e105d5fe019d615db9073b07a6a38b64"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the run assistant should show captured audio", null, null, "92fc879d403425588bde6cb8f5c1df5b"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I complete the run assistant flow and start the workflow", null, null, "9ef988855c5b7750908f442bfd2ad8d7"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the output feed should show detailed execution telemetry", null, null, "0482cd69f0834455b6539eefd5785cf8"),
- new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable