¸ÄÓñ¾»ú¶ÀÁ¢ CA£¬»ָ´ CLI TLS УÑ飬±£»¤ƾ¾ÝÓëÅäÖò¢·¢±£´档 д Cursor Êý¾ݡ¢»Ự·¾¶¡¢´úÀíÉúÃüÖÜÆڡ¢ģÐÍÇëÇóÓë Skills Îļþ²Ù×÷¡£ Ϊ¶ÀÁ¢ Tab ·þÎñÔö¼ӿͻ§¶˼øȨ£¬Éý¼¶ÒÀÀµÓ빤¾ßÁ´£¬ÍêÉƷ¢²¼ԪÐÅϢͬ²½¡£ Ñé֤£ºÁ½¸ö Go ģ¿éµIJâÊÔ/vet¡¢¹ؼüģ¿é race¡¢ǰ¶˲âÊÔ/Éú²ú¹¹½¨/Éó¼ơ¢ Go ¿ɴï©¶´ɨÃèÓë macOS/Linux ¿ÉÐÐģ¿齻²æ±àÒë¾ùͨ¹ý¡£ Windows ¸ôÀëÆô¶¯ͨ¹ý£»δÍê³ɵĵã»÷ðÑ̺ÍԭÉúƽ̨Ñé֤¼ûÉó²鱨¸档
34 lines
824 B
Go
34 lines
824 B
Go
package config
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"errors"
|
|
)
|
|
|
|
var ErrConfigConflict = errors.New("CONFIG_CONFLICT: 配置已在其他窗口更改,请重新加载后再保存;当前编辑内容已保留")
|
|
|
|
func cloneConfig(cfg Config) Config {
|
|
cfg.ModelAdapters = append([]ModelAdapterConfig(nil), cfg.ModelAdapters...)
|
|
if cfg.HomeMetrics.PersistentMode != nil {
|
|
value := *cfg.HomeMetrics.PersistentMode
|
|
cfg.HomeMetrics.PersistentMode = &value
|
|
}
|
|
return cfg
|
|
}
|
|
|
|
func withRevision(cfg Config) Config {
|
|
cfg = cloneConfig(cfg)
|
|
view := cloneConfig(cfg)
|
|
view.Revision = ""
|
|
view.LastAgentModelHash = ""
|
|
for i := range view.ModelAdapters {
|
|
view.ModelAdapters[i].ID = ""
|
|
}
|
|
data, _ := json.Marshal(view)
|
|
sum := sha256.Sum256(data)
|
|
cfg.Revision = hex.EncodeToString(sum[:])
|
|
return cfg
|
|
}
|