65 lines
1.3 KiB
Plaintext
65 lines
1.3 KiB
Plaintext
@startuml
|
|
!theme plain
|
|
skinparam componentStyle rectangle
|
|
|
|
package "Artifact Editor" {
|
|
[CLI Entry] as cli
|
|
[Editor Core] as core
|
|
[State Manager] as state
|
|
|
|
package "Renderers" {
|
|
[Renderer Registry] as registry
|
|
[Mermaid Renderer] as mermaid
|
|
[PlantUML Renderer] as plantuml
|
|
[OpenSCAD Renderer] as openscad
|
|
}
|
|
|
|
package "UI Layer" {
|
|
[Code Editor Panel] as code_panel
|
|
[Preview Panel] as preview
|
|
[Voice Input Button] as voice
|
|
}
|
|
}
|
|
|
|
package "SmartTools (subprocess)" {
|
|
[dictate] as dictate
|
|
[artifact-generate] as ai_gen
|
|
[artifact-modify] as ai_mod
|
|
}
|
|
|
|
package "External Renderers (subprocess)" {
|
|
[mmdc] as mmdc_bin
|
|
[plantuml.jar] as puml_bin
|
|
[openscad] as oscad_bin
|
|
}
|
|
|
|
cli --> core : args
|
|
core --> state : manage
|
|
core --> registry : render request
|
|
registry --> mermaid
|
|
registry --> plantuml
|
|
registry --> openscad
|
|
|
|
mermaid --> mmdc_bin : subprocess
|
|
plantuml --> puml_bin : subprocess
|
|
openscad --> oscad_bin : subprocess
|
|
|
|
code_panel --> core : code changes
|
|
voice --> dictate : subprocess
|
|
dictate --> ai_gen : pipe
|
|
ai_gen --> core : generated code
|
|
|
|
preview <-- registry : rendered image
|
|
state --> code_panel : undo/redo
|
|
|
|
note right of ai_gen
|
|
SmartTools called via
|
|
subprocess, never imported
|
|
end note
|
|
|
|
note bottom of registry
|
|
All renderers run in
|
|
isolated subprocess with
|
|
timeout and cancellation
|
|
end note
|
|
@enduml |