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>');
}