You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WorkflowFramework ships JSON workflow configuration support (JsonWorkflowDefinitionLoader). The README notes "YAML coming soon." This issue tracks delivering YAML parity.
Context
JD.AI (the primary consumer of WorkflowFramework) uses YAML extensively for policy documents (PolicyDocument), agent definitions (.agent.yaml, see JerrettDavis/JD.AI#201), and tool loadouts (.loadout.yaml, see JerrettDavis/JD.AI#214). A consistent YAML-first authoring experience across all JD.AI configuration is the goal. Having workflow definitions also in YAML eliminates the JSON outlier.
Goal
Implement YamlWorkflowDefinitionLoader with full feature parity to JsonWorkflowDefinitionLoader:
Overview
WorkflowFramework ships JSON workflow configuration support (
JsonWorkflowDefinitionLoader). The README notes "YAML coming soon." This issue tracks delivering YAML parity.Context
JD.AI (the primary consumer of WorkflowFramework) uses YAML extensively for policy documents (
PolicyDocument), agent definitions (.agent.yaml, see JerrettDavis/JD.AI#201), and tool loadouts (.loadout.yaml, see JerrettDavis/JD.AI#214). A consistent YAML-first authoring experience across all JD.AI configuration is the goal. Having workflow definitions also in YAML eliminates the JSON outlier.Goal
Implement
YamlWorkflowDefinitionLoaderwith full feature parity toJsonWorkflowDefinitionLoader:Scope
All step types supported in JSON should be supported in YAML:
step— standard step by class nameconditional— If/Then/Elseparallel— concurrent stepsforeach/while/dowhile/retry— loopstry/catch/finally— error handlingsubworkflow— nested workflow by nameapproval— human approval gatesaga— compensation-enabled groupAcceptance Criteria
YamlWorkflowDefinitionLoaderimplementing same interface asJsonWorkflowDefinitionLoaderWorkflowDefinitionobject model between JSON and YAML loaderstimeout,retry,name,order)WorkflowFramework.Extensions.Configurationextended withAddYamlWorkflowLoader()WorkflowFramework.Serializationupdated to support YAML format