| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package service
- import (
- "bytes"
- "strings"
- "github.com/gin-gonic/gin"
- "github.com/tidwall/gjson"
- )
- const openAICompatMessagesBridgeContextKey = "openai_compat_messages_bridge"
- func isOpenAICompatMessagesBridgeBody(body []byte) bool {
- if len(body) == 0 {
- return false
- }
- if bytes.Contains(body, []byte(openAICompatClaudeCodeTodoGuardMarker)) {
- return true
- }
- return isOpenAICompatMessagesBridgePromptCacheKey(gjson.GetBytes(body, "prompt_cache_key").String())
- }
- func isOpenAICompatMessagesBridgeRequestBody(reqBody map[string]any) bool {
- if reqBody == nil {
- return false
- }
- if input, ok := reqBody["input"].([]any); ok && inputContainsText(input, openAICompatClaudeCodeTodoGuardMarker) {
- return true
- }
- return isOpenAICompatMessagesBridgePromptCacheKey(firstNonEmptyString(reqBody["prompt_cache_key"]))
- }
- func isOpenAICompatMessagesBridgePromptCacheKey(key string) bool {
- key = strings.TrimSpace(key)
- return strings.HasPrefix(key, "anthropic-metadata-") ||
- strings.HasPrefix(key, "anthropic-cache-") ||
- strings.HasPrefix(key, "anthropic-digest-")
- }
- func setOpenAICompatMessagesBridgeContext(c *gin.Context, enabled bool) {
- if c == nil || !enabled {
- return
- }
- c.Set(openAICompatMessagesBridgeContextKey, true)
- }
- func isOpenAICompatMessagesBridgeContext(c *gin.Context) bool {
- if c == nil {
- return false
- }
- value, ok := c.Get(openAICompatMessagesBridgeContextKey)
- if !ok {
- return false
- }
- enabled, ok := value.(bool)
- return ok && enabled
- }
|