import { normalizeProviderId } from "../agents/provider-id.js" ;
import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js" ;
export const ANTHROPIC_SETUP_TOKEN_PREFIX = "sk-ant-oat01-" ;
export const ANTHROPIC_SETUP_TOKEN_MIN_LENGTH = 80 ;
export const DEFAULT_TOKEN_PROFILE_NAME = "default" ;
export function normalizeTokenProfileName(raw: string): string {
const trimmed = raw.trim();
if (!trimmed) {
return DEFAULT_TOKEN_PROFILE_NAME;
}
const slug = normalizeLowercaseStringOrEmpty(trimmed)
.replace(/[^a-z0-9 ._-]+/g, "-" )
.replace(/-+/g, "-" )
.replace(/^-+|-+$/g, "" );
return slug || DEFAULT_TOKEN_PROFILE_NAME;
}
export function buildTokenProfileId(params: { provider: string; name: string }): string {
const provider = normalizeProviderId(params.provider);
const name = normalizeTokenProfileName(params.name);
return `${provider}:${name}`;
}
export function validateAnthropicSetupToken(raw: string): string | undefined {
const trimmed = raw.trim();
if (!trimmed) {
return "Required" ;
}
if (!trimmed.startsWith(ANTHROPIC_SETUP_TOKEN_PREFIX)) {
return `Expected token starting with ${ANTHROPIC_SETUP_TOKEN_PREFIX}`;
}
if (trimmed.length < ANTHROPIC_SETUP_TOKEN_MIN_LENGTH) {
return "Token looks too short; paste the full setup-token" ;
}
return undefined;
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland