AI-Repo-Commander/Docs/diagrams/overview_diagrams/config.js.class.puml

91 lines
2.0 KiB
Plaintext

@startuml
title AI Repo Commander — Config overview (safe)
class ConfigManager {
+load() : object
+save() : void
+get(keyPath) : any
+set(keyPath, value) : void
+mergeConfigs(defaults, saved) : object
+deepClone(o) : any
}
class STORAGE_KEYS {
history : "ai_repo_commander_executed"
cfg : "ai_repo_commander_cfg"
panel : "ai_repo_commander_panel_state"
}
' Split DEFAULT_CONFIG into simple classes (no quotes, no =)
class DEFAULT_META {
version : 1.6.2
}
class DEFAULT_API {
enabled : boolean
timeout : number
maxRetries : number
bridgeKey : string
}
class DEFAULT_DEBUG {
enabled : boolean
level : number
maxLines : number
showPanel : boolean
}
class DEFAULT_EXECUTION {
debounceDelay : ms
settleCheckMs : ms
settlePollMs : ms
requireTerminator : boolean
coldStartMs : ms
stuckAfterMs : ms
scanDebounceMs : ms
fastWarnMs : ms
slowWarnMs : ms
clusterRescanMs : ms
clusterMaxLookahead : count
}
class DEFAULT_QUEUE {
minDelayMs : ms
maxPerMinute : count
maxPerMessage : count
waitForComposerMs : ms
}
class DEFAULT_UI {
autoSubmit : boolean
appendTrailingNewline : boolean
postPasteDelayMs : ms
showExecutedMarker : boolean
processExisting : boolean
submitMode : "enter|ctrl+enter"
maxComposerWaitMs : ms
submitMaxRetries : count
}
class DEFAULT_STORAGE {
dedupeTtlMs : ms
cleanupAfterMs : ms
cleanupIntervalMs : ms
}
class DEFAULT_RESPONSE {
bufferFlushDelayMs : ms
sectionHeadings : boolean
maxPasteChars : number
splitLongResponses : boolean
}
class DEFAULT_RUNTIME {
paused : boolean
'(note: runtime is not persisted)
}
ConfigManager --> STORAGE_KEYS : uses localStorage keys
ConfigManager --> DEFAULT_META : deepClone/merge
ConfigManager --> DEFAULT_API
ConfigManager --> DEFAULT_DEBUG
ConfigManager --> DEFAULT_EXECUTION
ConfigManager --> DEFAULT_QUEUE
ConfigManager --> DEFAULT_UI
ConfigManager --> DEFAULT_STORAGE
ConfigManager --> DEFAULT_RESPONSE
ConfigManager --> DEFAULT_RUNTIME : in-memory only
@enduml