#* The ThoughtFrame chat transcript, rendered to one HTML document. SCI-FI EDITION. Values (all plain data): $turns list of { role: user|agent|system, body: string } $background hex rgb, workbench widget background $foreground hex rgb, workbench widget foreground $code hex rgb, code/tint background $dim hex rgb, label colour $scrollToBottom whether the document should jump to the end on load $markdown MarkdownTool; Velocity cannot parse markdown itself Design notes (read before changing): A mission-log HUD, not a chat. Chrome is monospace and uppercase; the palette is still ONLY $background/$foreground/$code/$dim, so the whole thing tracks whatever Eclipse theme is active. Everything "glowy" is a low-alpha tint of $foreground (#${foreground}XX) - there is no literal colour except the logo tile, which is brand. Effects are additive: strip the scanlines, glow, clip-paths and animation and the layout still reads (older SWT browsers simply ignore what they cannot parse). VELOCITY GOTCHA: never write #{ ... } and never a literal hex - always #$var or #${var}XX. *#
ThoughtFrame Transcript ${turns.size()} turns
#foreach($turn in $turns)
#if($foreach.count < 10)0#end$foreach.count #if($turn.role == "user") You #elseif($turn.role == "agent") ThoughtFrame #else System #end
#if($turn.role == "user")
$markdown.escape($turn.body)
#elseif($turn.role == "agent")
$markdown.toHtml($turn.body)
#else
$markdown.escape($turn.body)
#end
#end