feat(render): wire table state machine and finalize hook
This commit is contained in:
@@ -421,7 +421,13 @@ impl AppConfig {
|
||||
if *IS_STDOUT_TERMINAL {
|
||||
let render_options = self.render_options()?;
|
||||
let mut markdown_render = MarkdownRender::init(render_options)?;
|
||||
println!("{}", markdown_render.render(text));
|
||||
let body = markdown_render.render(text);
|
||||
let tail = markdown_render.finalize();
|
||||
if tail.is_empty() {
|
||||
println!("{body}");
|
||||
} else {
|
||||
println!("{body}\n{tail}");
|
||||
}
|
||||
} else {
|
||||
println!("{text}");
|
||||
}
|
||||
|
||||
+15
-5
@@ -368,14 +368,24 @@ impl Session {
|
||||
for message in &self.messages {
|
||||
match message.role {
|
||||
MessageRole::System => {
|
||||
lines.push(
|
||||
render
|
||||
.render(&message.content.render_input(resolve_url_fn, agent_info)),
|
||||
);
|
||||
let body = render
|
||||
.render(&message.content.render_input(resolve_url_fn, agent_info));
|
||||
let tail = render.finalize();
|
||||
if tail.is_empty() {
|
||||
lines.push(body);
|
||||
} else {
|
||||
lines.push(format!("{body}\n{tail}"));
|
||||
}
|
||||
}
|
||||
MessageRole::Assistant => {
|
||||
if let MessageContent::Text(text) = &message.content {
|
||||
lines.push(render.render(text));
|
||||
let body = render.render(text);
|
||||
let tail = render.finalize();
|
||||
if tail.is_empty() {
|
||||
lines.push(body);
|
||||
} else {
|
||||
lines.push(format!("{body}\n{tail}"));
|
||||
}
|
||||
}
|
||||
lines.push("".into());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user