Initial commit of Descrybe v2 without local scratch artifacts.
Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package processing
|
||||
|
||||
import "strings"
|
||||
|
||||
// Analytics provider mode labels (must match aiprovider.AnalyticsMode contract).
|
||||
const (
|
||||
AIProviderInternal = "internal"
|
||||
AIProviderCustom = "custom"
|
||||
AIProviderUnknown = "unknown"
|
||||
)
|
||||
|
||||
// ProviderLabeler optionally reports the analytics mode for a Completer.
|
||||
type ProviderLabeler interface {
|
||||
ProviderModeLabel() string
|
||||
}
|
||||
|
||||
// CompleterProviderMode returns the analytics label for a Completer.
|
||||
func CompleterProviderMode(c Completer) string {
|
||||
if c == nil {
|
||||
return AIProviderUnknown
|
||||
}
|
||||
if p, ok := c.(ProviderLabeler); ok {
|
||||
return normalizeProviderMode(p.ProviderModeLabel())
|
||||
}
|
||||
// Historical env-backed OpenAI clients without an explicit label.
|
||||
return AIProviderInternal
|
||||
}
|
||||
|
||||
// EngineProviderMode returns Engine.ProviderMode when set, else CompleterProviderMode.
|
||||
func (e *Engine) EngineProviderMode() string {
|
||||
if e == nil {
|
||||
return AIProviderUnknown
|
||||
}
|
||||
if label := strings.TrimSpace(e.ProviderMode); label != "" {
|
||||
return normalizeProviderMode(label)
|
||||
}
|
||||
return CompleterProviderMode(e.Completer)
|
||||
}
|
||||
|
||||
func normalizeProviderMode(label string) string {
|
||||
m := strings.ToLower(strings.TrimSpace(label))
|
||||
switch {
|
||||
case m == "" || m == AIProviderUnknown:
|
||||
return AIProviderUnknown
|
||||
case m == AIProviderInternal:
|
||||
return AIProviderInternal
|
||||
case m == AIProviderCustom:
|
||||
return AIProviderCustom
|
||||
case strings.HasPrefix(m, "popular:"):
|
||||
name := strings.TrimSpace(strings.TrimPrefix(m, "popular:"))
|
||||
if name == "" {
|
||||
name = "unknown"
|
||||
}
|
||||
return "popular:" + name
|
||||
default:
|
||||
return AIProviderUnknown
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user