112 lines
2.9 KiB
Plaintext
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
|