| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package service
- import "strings"
- const featureKeyCodexImageGenerationBridge = "codex_image_generation_bridge"
- const (
- featureKeyCodexImageGenerationExplicitToolPolicy = "codex_image_generation_explicit_tool_policy"
- codexImageGenerationExplicitToolPolicyAllow = "allow"
- codexImageGenerationExplicitToolPolicyStrip = "strip"
- )
- func boolOverridePtr(v bool) *bool {
- return &v
- }
- func boolOverrideFromMap(values map[string]any, keys ...string) *bool {
- if values == nil {
- return nil
- }
- for _, key := range keys {
- if v, ok := values[key].(bool); ok {
- return boolOverridePtr(v)
- }
- }
- return nil
- }
- func stringOverrideFromMap(values map[string]any, keys ...string) (string, bool) {
- if values == nil {
- return "", false
- }
- for _, key := range keys {
- if v, ok := values[key].(string); ok {
- return v, true
- }
- }
- return "", false
- }
- func normalizeCodexImageGenerationExplicitToolPolicy(value string) string {
- switch strings.ToLower(strings.TrimSpace(value)) {
- case codexImageGenerationExplicitToolPolicyStrip, "remove", "drop":
- return codexImageGenerationExplicitToolPolicyStrip
- default:
- return codexImageGenerationExplicitToolPolicyAllow
- }
- }
- func platformBoolOverride(values map[string]any, key string, platform string) *bool {
- if values == nil {
- return nil
- }
- if v, ok := values[key].(bool); ok {
- return boolOverridePtr(v)
- }
- raw, ok := values[key].(map[string]any)
- if !ok {
- return nil
- }
- platform = strings.TrimSpace(platform)
- if platform == "" {
- return nil
- }
- if v, ok := raw[platform].(bool); ok {
- return boolOverridePtr(v)
- }
- return nil
- }
- // CodexImageGenerationBridgeOverride returns the channel-level override for Codex
- // image_generation bridge injection. Nil means follow the global/account policy.
- func (c *Channel) CodexImageGenerationBridgeOverride(platform string) *bool {
- if c == nil {
- return nil
- }
- return platformBoolOverride(c.FeaturesConfig, featureKeyCodexImageGenerationBridge, platform)
- }
- // CodexImageGenerationBridgeOverride returns the account-level override for Codex
- // image_generation bridge injection. Nil means follow the channel/global policy.
- func (a *Account) CodexImageGenerationBridgeOverride() *bool {
- if a == nil || a.Platform != PlatformOpenAI || a.Extra == nil {
- return nil
- }
- if override := boolOverrideFromMap(a.Extra, featureKeyCodexImageGenerationBridge, "codex_image_generation_bridge_enabled"); override != nil {
- return override
- }
- openaiConfig, _ := a.Extra[PlatformOpenAI].(map[string]any)
- return boolOverrideFromMap(openaiConfig, featureKeyCodexImageGenerationBridge, "codex_image_generation_bridge_enabled")
- }
- // CodexImageGenerationExplicitToolPolicy returns the account-level policy for
- // client-provided Codex /responses image_generation tools. Unknown or unset
- // values default to allow to preserve existing behavior.
- func (a *Account) CodexImageGenerationExplicitToolPolicy() string {
- if a == nil || a.Platform != PlatformOpenAI || a.Extra == nil {
- return codexImageGenerationExplicitToolPolicyAllow
- }
- if policy, ok := stringOverrideFromMap(a.Extra, featureKeyCodexImageGenerationExplicitToolPolicy); ok {
- return normalizeCodexImageGenerationExplicitToolPolicy(policy)
- }
- openaiConfig, _ := a.Extra[PlatformOpenAI].(map[string]any)
- if policy, ok := stringOverrideFromMap(openaiConfig, featureKeyCodexImageGenerationExplicitToolPolicy); ok {
- return normalizeCodexImageGenerationExplicitToolPolicy(policy)
- }
- return codexImageGenerationExplicitToolPolicyAllow
- }
|