@startuml
!theme plain
package "infra-workflow" {
  interface WorkflowLoader
  class TomlWorkflowLoader
  class ConditionSpec
  class ConditionFactory
  interface PromptLoader
  class FileSystemPromptLoader
  class PromptNotFoundException
  class WorkflowValidationException
}
interface WorkflowGraph <<core:transitions>>
WorkflowLoader --> WorkflowGraph : load()
WorkflowLoader <|.. TomlWorkflowLoader
TomlWorkflowLoader --> ConditionSpec : parses
TomlWorkflowLoader --> ConditionFactory : uses
ConditionFactory --> ConditionSpec : converts
PromptLoader <|.. FileSystemPromptLoader
TommWorkflowLoader --> WorkflowValidationException : throws
FileSystemPromptLoader --> PromptNotFoundException : throws
@enduml
