feat(antigravity): add session ID generation and mutex for random source

This commit is contained in:
Evan Nguyen
2025-12-21 17:50:41 +07:00
parent bc6c4cdbfc
commit a87f09bad2

View File

@@ -15,6 +15,7 @@ import (
"net/url" "net/url"
"strconv" "strconv"
"strings" "strings"
"sync"
"time" "time"
"github.com/google/uuid" "github.com/google/uuid"
@@ -44,7 +45,10 @@ const (
refreshSkew = 3000 * time.Second refreshSkew = 3000 * time.Second
) )
var randSource = rand.New(rand.NewSource(time.Now().UnixNano())) var (
randSource = rand.New(rand.NewSource(time.Now().UnixNano()))
randSourceMutex sync.Mutex
)
// AntigravityExecutor proxies requests to the antigravity upstream. // AntigravityExecutor proxies requests to the antigravity upstream.
type AntigravityExecutor struct { type AntigravityExecutor struct {
@@ -1146,8 +1150,9 @@ func antigravityBaseURLFallbackOrder(auth *cliproxyauth.Auth) []string {
return []string{base} return []string{base}
} }
return []string{ return []string{
antigravityBaseURLProd,
antigravityBaseURLDaily, antigravityBaseURLDaily,
// antigravityBaseURLAutopush,
antigravityBaseURLProd,
} }
} }
@@ -1182,6 +1187,7 @@ func geminiToAntigravity(modelName string, payload []byte, projectID string) []b
template, _ = sjson.Set(template, "project", generateProjectID()) template, _ = sjson.Set(template, "project", generateProjectID())
} }
template, _ = sjson.Set(template, "requestId", generateRequestID()) template, _ = sjson.Set(template, "requestId", generateRequestID())
template, _ = sjson.Set(template, "request.sessionId", generateSessionID())
template, _ = sjson.Delete(template, "request.safetySettings") template, _ = sjson.Delete(template, "request.safetySettings")
template, _ = sjson.Set(template, "request.toolConfig.functionCallingConfig.mode", "VALIDATED") template, _ = sjson.Set(template, "request.toolConfig.functionCallingConfig.mode", "VALIDATED")
@@ -1216,11 +1222,20 @@ func generateRequestID() string {
return "agent-" + uuid.NewString() return "agent-" + uuid.NewString()
} }
func generateSessionID() string {
randSourceMutex.Lock()
n := randSource.Int63n(9_000_000_000_000_000_000)
randSourceMutex.Unlock()
return "-" + strconv.FormatInt(n, 10)
}
func generateProjectID() string { func generateProjectID() string {
adjectives := []string{"useful", "bright", "swift", "calm", "bold"} adjectives := []string{"useful", "bright", "swift", "calm", "bold"}
nouns := []string{"fuze", "wave", "spark", "flow", "core"} nouns := []string{"fuze", "wave", "spark", "flow", "core"}
randSourceMutex.Lock()
adj := adjectives[randSource.Intn(len(adjectives))] adj := adjectives[randSource.Intn(len(adjectives))]
noun := nouns[randSource.Intn(len(nouns))] noun := nouns[randSource.Intn(len(nouns))]
randSourceMutex.Unlock()
randomPart := strings.ToLower(uuid.NewString())[:5] randomPart := strings.ToLower(uuid.NewString())[:5]
return adj + "-" + noun + "-" + randomPart return adj + "-" + noun + "-" + randomPart
} }