34051a4631
- Updated labels in the AI Agents dashboard for clarity, changing "流程状态" to "Playbook 状态" and "未发布流程" to "未发布 Playbook". - Introduced AI Agent rollout percentage management in channel editing, allowing users to set and rollback rollout percentages. - Added new API endpoints for rolling back AI Agent rollout and fetching agent run metrics. - Implemented new UI components for displaying agent run details, including status, duration, and input/output tokens. - Enhanced type definitions for AdminChannel and AIAgent to include rollout percentages and runtime modes. - Updated navigation to include a section for agent runs. - Added new translations for agent run features in both English and Chinese.
26 lines
752 B
Go
26 lines
752 B
Go
package tooling
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
const maxPreviewChars = 4000
|
|
|
|
var secretAssignmentPattern = regexp.MustCompile(`(?i)(?:"|')?(api[_-]?key|authorization|password|secret|token|cookie)(?:"|')?\s*([:=])\s*(?:"[^"]*"|'[^']*'|[^\s,;}]+)`)
|
|
|
|
// SanitizePreview keeps audit/model previews bounded and masks common secrets.
|
|
// It intentionally operates on plain text so it also covers malformed JSON.
|
|
func SanitizePreview(value string) string {
|
|
value = strings.TrimSpace(value)
|
|
if value == "" {
|
|
return ""
|
|
}
|
|
value = secretAssignmentPattern.ReplaceAllString(value, "$1$2***")
|
|
runes := []rune(value)
|
|
if len(runes) <= maxPreviewChars {
|
|
return value
|
|
}
|
|
return strings.TrimSpace(string(runes[:maxPreviewChars])) + "\n[preview truncated]"
|
|
}
|