Files
openclaw/src/agents/prompt-cache-stability.ts
2026-04-07 17:50:37 +01:00

23 lines
732 B
TypeScript

import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";
export function normalizeStructuredPromptSection(text: string): string {
return text
.replace(/\r\n?/g, "\n")
.replace(/[ \t]+$/gm, "")
.trim();
}
export function normalizePromptCapabilityIds(capabilities: ReadonlyArray<string>): string[] {
const seen = new Set<string>();
const normalized: string[] = [];
for (const capability of capabilities) {
const value = normalizeLowercaseStringOrEmpty(normalizeStructuredPromptSection(capability));
if (!value || seen.has(value)) {
continue;
}
seen.add(value);
normalized.push(value);
}
return normalized.toSorted((left, right) => left.localeCompare(right));
}