This commit is contained in:
@@ -12,6 +12,7 @@ type ProjectConfig struct {
|
||||
Streaming StreamingConfig `yaml:"streaming"`
|
||||
Markdown MarkdownConfig `yaml:"markdown"`
|
||||
UI UIConfig `yaml:"ui"`
|
||||
TTS TTSConfig `yaml:"tts"`
|
||||
}
|
||||
|
||||
type StreamingConfig struct {
|
||||
@@ -29,6 +30,12 @@ type UIConfig struct {
|
||||
UserPrefix string `yaml:"user_prefix"`
|
||||
}
|
||||
|
||||
type TTSConfig struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Port int `yaml:"port"`
|
||||
Auto bool `yaml:"auto"`
|
||||
}
|
||||
|
||||
var (
|
||||
defaultCfg = ProjectConfig{
|
||||
Streaming: StreamingConfig{
|
||||
@@ -43,6 +50,11 @@ var (
|
||||
Logo: "🦐",
|
||||
UserPrefix: "👀 ",
|
||||
},
|
||||
TTS: TTSConfig{
|
||||
Enabled: false,
|
||||
Port: 9876,
|
||||
Auto: true,
|
||||
},
|
||||
}
|
||||
projCfg *ProjectConfig
|
||||
projCfgLock sync.RWMutex
|
||||
@@ -90,6 +102,9 @@ func LoadProjectConfig() error {
|
||||
if cfg.UI.UserPrefix == "" {
|
||||
cfg.UI.UserPrefix = defaultCfg.UI.UserPrefix
|
||||
}
|
||||
if cfg.TTS.Port <= 0 {
|
||||
cfg.TTS.Port = defaultCfg.TTS.Port
|
||||
}
|
||||
|
||||
projCfg = &cfg
|
||||
return nil
|
||||
|
||||
@@ -49,7 +49,8 @@ func GetConfigPath() string {
|
||||
|
||||
// Readline 实例包装
|
||||
type Readline struct {
|
||||
rl *readline.Instance
|
||||
rl *readline.Instance
|
||||
basePrompt string
|
||||
}
|
||||
|
||||
// NewReadline 创建一个新的 Readline 实例
|
||||
@@ -68,7 +69,18 @@ func NewReadline(prompt string) (*Readline, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Readline{rl: rl}, nil
|
||||
return &Readline{rl: rl, basePrompt: prompt}, nil
|
||||
}
|
||||
|
||||
// SetPrompt 更新提示符
|
||||
func (r *Readline) SetPrompt(prompt string) {
|
||||
r.basePrompt = prompt
|
||||
r.rl.SetPrompt(prompt)
|
||||
}
|
||||
|
||||
// GetBasePrompt 返回基础提示符
|
||||
func (r *Readline) GetBasePrompt() string {
|
||||
return r.basePrompt
|
||||
}
|
||||
|
||||
// Readline 读取一行输入
|
||||
|
||||
Reference in New Issue
Block a user