orchestrated-discussions/docs/diagrams/architecture-component.puml

112 lines
2.9 KiB
Plaintext

@startuml Architecture Component Diagram
!theme plain
skinparam componentStyle uml2
skinparam linetype ortho
title Orchestrated Discussions - Component Architecture
package "User Layer" {
component [CLI] as CLI
component [GUI\n(Dear PyGui)] as GUI
component [TUI\n(urwid)] as TUI
}
package "Orchestrated Discussions" {
component [Discussion\nModel] as Model
component [Runner\n(Pipeline)] as Runner
component [Participant\nRegistry] as Registry
package "Local Helpers" {
component [Markers\nParser] as Markers
component [Voting\nCalculator] as Voting
}
}
package "SmartTools" {
package "Utility Tools" {
component [discussion-parser] as Parser
component [discussion-validator] as Validator
component [discussion-summarizer] as Summarizer
}
package "Orchestration Tools" {
component [discussion-vote-counter] as VoteCounter
component [discussion-mention-router] as Router
component [discussion-status-promoter] as Promoter
component [discussion-turn-appender] as Appender
component [discussion-config] as Config
}
package "Participant Tools" {
component [discussion-architect] as Architect
component [discussion-security] as Security
component [discussion-pragmatist] as Pragmatist
component [discussion-moderator] as Moderator
component [discussion-diagram-editor] as DiagramEditor
}
}
package "External" {
component [AI Providers\n(Claude, etc.)] as AI
database [Discussion\nFiles (.md)] as Files
database [Templates\n(.yaml)] as Templates
}
' User Layer connections
CLI --> Runner : invokes
GUI --> Runner : invokes
TUI --> Runner : invokes
CLI --> Model : load/save
GUI --> Model : load/save
TUI --> Model : load/save
' Runner connections
Runner --> Parser : subprocess
Runner --> Router : subprocess
Runner --> Appender : subprocess
Runner --> VoteCounter : subprocess
Runner --> Promoter : subprocess
' Participant calls
Runner --> Architect : subprocess
Runner --> Security : subprocess
Runner --> Pragmatist : subprocess
Runner --> Moderator : subprocess
Runner --> DiagramEditor : subprocess
' Model connections
Model --> Files : read/write
Model --> Markers : parse markers
Model --> Voting : check consensus
' Registry
Registry ..> "Participant Tools" : discovers
' SmartTools to AI
Architect --> AI : inference
Security --> AI : inference
Pragmatist --> AI : inference
Moderator --> AI : inference
DiagramEditor --> AI : inference
Summarizer --> AI : inference
' Template usage
Runner --> Templates : load pipeline
note right of Runner
**Thin Orchestration**
- Pipes data between tools
- No business logic
- Parallel execution
end note
note bottom of "SmartTools"
**Unix Philosophy**
- Each tool does one thing
- stdin/stdout communication
- Independently testable
end note
@enduml