feat(herdr): complete Herdr 0.8.0 adaptation and sanitize module

This commit is contained in:
2026-08-14 23:09:08 +09:00
parent 1c24732be0
commit 301ff5bb1f
7 changed files with 117 additions and 111 deletions
+30
View File
@@ -0,0 +1,30 @@
# sanitize.py — Unified agent name sanitization contract for herdr 0.8.0 (E3 & E4)
import re
def sanitize_herdr_agent_name(name: str) -> str:
"""
Sanitizes an agent name according to herdr 0.8.0 rules:
1. Convert to lowercase.
2. Replace invalid characters ([^a-z0-9_-]) with '-'.
3. Ensure starts with a lowercase letter [a-z], prefixing with 'x-' if needed.
4. Truncate to maximum 32 characters (16 + '-' + 15).
"""
if not name:
return "agent"
# 1. Lowercase
s = str(name).lower()
# 2. Replace illegal characters with '-'
s = re.sub(r'[^a-z0-9_-]', '-', s)
# 3. Ensure starts with a letter [a-z]
if not s or not s[0].isalpha():
s = "x-" + s
# 4. Truncate to 32 chars if needed
if len(s) > 32:
s = s[:16] + '-' + s[-15:]
return s