#* The ThoughtFrame chat transcript, rendered to one HTML document. 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 Layout is pure CSS with the workbench palette injected as variables - Bootstrap is loaded for its component classes but the page never depends on it, so an offline SWT browser or a blocked CDN degrades to the same layout rather than an unstyled document. *#
#if(!$turns || $turns.isEmpty())