Add protocol selection to Claude and Codex provider forms referencing CCSwitch

This commit is contained in:
kate522 committed 2026-10-18 23:00:05 +08:00
1 parent bae24cc439
commit 16957decb2
14 files changed
+274 -25

No files matched your search

+20 -8
View File
@@ -17,12 +17,14 @@ import (
// providerInput is the provider payload accepted by the management API.
type providerInput struct {
Name string `json:"name"`
Preset string `json:"preset"`
BaseURL string `json:"base_url"`
APIKey string `json:"api_key"`
Models config.Models `json:"models"`
Target string `json:"target"`
Name string `json:"name"`
Preset string `json:"preset"`
BaseURL string `json:"base_url"`
APIKey string `json:"api_key"`
Models config.Models `json:"models"`
Target string `json:"target"`
Protocol string `json:"protocol"`
APIFormat string `json:"api_format"`
}
func (s *Server) handleStatus(w http.ResponseWriter, r *http.Request) {
@@ -34,6 +36,7 @@ func (s *Server) handleStatus(w http.ResponseWriter, r *http.Request) {
"name": p.Name,
"base_url": p.BaseURL,
"models": p.Models,
"protocol": p.Protocol,
}
}
var activeCodex any
@@ -43,6 +46,7 @@ func (s *Server) handleStatus(w http.ResponseWriter, r *http.Request) {
"name": p.Name,
"base_url": p.BaseURL,
"models": p.Models,
"protocol": p.Protocol,
}
}
writeJSON(w, http.StatusOK, map[string]any{
@@ -124,7 +128,11 @@ func (s *Server) handleCreateProvider(w http.ResponseWriter, r *http.Request) {
writeAPIError(w, http.StatusBadRequest, "invalid request body: "+err.Error())
return
}
p, err := s.store.AddProvider(in.Name, in.Preset, in.BaseURL, in.APIKey, in.Models, in.Target)
proto := strings.TrimSpace(in.Protocol)
if proto == "" {
proto = strings.TrimSpace(in.APIFormat)
}
p, err := s.store.AddProvider(in.Name, in.Preset, in.BaseURL, in.APIKey, in.Models, in.Target, proto)
if err != nil {
writeAPIError(w, http.StatusBadRequest, err.Error())
return
@@ -139,7 +147,11 @@ func (s *Server) handleUpdateProvider(w http.ResponseWriter, r *http.Request) {
writeAPIError(w, http.StatusBadRequest, "invalid request body: "+err.Error())
return
}
p, err := s.store.UpdateProvider(id, in.Name, in.Preset, in.BaseURL, in.APIKey, in.Models, in.Target)
proto := strings.TrimSpace(in.Protocol)
if proto == "" {
proto = strings.TrimSpace(in.APIFormat)
}
p, err := s.store.UpdateProvider(id, in.Name, in.Preset, in.BaseURL, in.APIKey, in.Models, in.Target, proto)
if err != nil {
writeAPIError(w, http.StatusBadRequest, err.Error())
return