File size: 821 Bytes
dbb1bf9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /**
* Pure post-processing for analyst markdown HTML output.
* Takes the HTML string produced by marked.parse() and promotes ALL-CAPS-only
* paragraphs to section-header divs, preserving the analyst prompt's SIGNAL /
* THESIS / RISK / WATCH visual treatment.
*
* No DOM dependency — safe to import in Node.js test runners.
*/
// **SIGNAL** → <div class="chat-section-header">SIGNAL</div>
const BOLD_CAPS_RE = /<p><strong>([A-Z][A-Z\s/]{1,29})<\/strong><\/p>/g;
// Plain SIGNAL (4–25 chars, all caps/spaces) → section header
const PLAIN_CAPS_RE = /<p>([A-Z][A-Z\s]{3,24})<\/p>/g;
export function postProcessAnalystHtml(html: string): string {
return html
.replace(BOLD_CAPS_RE, '<div class="chat-section-header">$1</div>')
.replace(PLAIN_CAPS_RE, '<div class="chat-section-header">$1</div>');
}
|