@@ -822,58 +822,34 @@ fn paint_launch_header(area: Rect, buf: &mut Buffer, full: bool) -> u16 {
822822// Boards 01–10
823823// ---------------------------------------------------------------------------
824824
825+ fn paint_splash_chrome ( area : Rect , buf : & mut Buffer , composer : Composer < ' _ > ) {
826+ let y = paint_launch_header ( area, buf, true ) ;
827+ paint_composer ( area, buf, y, composer) ;
828+ paint_footer ( area, buf, & format ! ( "{MODEL} · Agent · 100% context" ) ) ;
829+ }
830+
825831fn board_splash ( area : Rect , buf : & mut Buffer ) {
826- paint_hero ( area, buf, HeroScene :: Splash ) ;
832+ paint_splash_chrome ( area, buf, Composer :: Ghost ( GHOST_IDLE ) ) ;
827833}
828834
829835fn board_typing ( area : Rect , buf : & mut Buffer ) {
830- paint_hero ( area, buf, HeroScene :: Typing ( USER_PROMPT ) ) ;
831- }
832-
833- /// README hero beat: signed splash, typing, working, then local command boards.
834- #[ derive( Debug , Clone , Copy ) ]
835- pub enum HeroScene < ' a > {
836- /// Dual-hairline splash with the idle placeholder.
837- Splash ,
838- /// Splash chrome with `text` in the composer (partial or full prompt).
839- Typing ( & ' a str ) ,
840- /// Submitted prompt plus the working indicator.
841- Working ,
842- /// Slash palette (`/` typed) — local commands, not a cloud handoff.
843- Palette ,
844- /// `/model` picker with effort radios.
845- Model ,
846- /// Live Shell tool row (`✓` mint on passing tests).
847- Shell ,
848- /// Back to the idle composer after the first user turn (no welcome card).
849- Composer ,
850- }
851-
852- /// Paint one README-hero / lock frame from the signed chrome.
853- pub fn paint_hero ( area : Rect , buf : & mut Buffer , scene : HeroScene < ' _ > ) {
854- match scene {
855- HeroScene :: Splash => {
856- let y = paint_launch_header ( area, buf, true ) ;
857- paint_composer ( area, buf, y, Composer :: Ghost ( GHOST_IDLE ) ) ;
858- paint_footer ( area, buf, & format ! ( "{MODEL} · Agent · 100% context" ) ) ;
859- }
860- HeroScene :: Typing ( text) => {
861- let y = paint_launch_header ( area, buf, true ) ;
862- paint_composer ( area, buf, y, Composer :: Typed ( text) ) ;
863- paint_footer ( area, buf, & format ! ( "{MODEL} · Agent · 100% context" ) ) ;
864- }
865- HeroScene :: Working => board_working ( area, buf) ,
866- HeroScene :: Palette => board_palette ( area, buf) ,
867- HeroScene :: Model => board_model_full ( area, buf) ,
868- HeroScene :: Shell => board_shell ( area, buf) ,
869- HeroScene :: Composer => paint_session (
870- area,
871- buf,
872- user_prompt_lines ( area) ,
873- & format ! ( "{MODEL} · Agent · 92% context" ) ,
874- GHOST_IDLE ,
875- ) ,
876- }
836+ paint_splash_chrome ( area, buf, Composer :: Typed ( USER_PROMPT ) ) ;
837+ }
838+
839+ /// README hero typing frames use a partial prompt; lock board 02 uses the full one.
840+ pub ( crate ) fn paint_typed_splash ( area : Rect , buf : & mut Buffer , text : & str ) {
841+ paint_splash_chrome ( area, buf, Composer :: Typed ( text) ) ;
842+ }
843+
844+ /// README hero return-to-composer beat: past user turn + idle ghost, no splash.
845+ pub ( crate ) fn paint_hero_composer ( area : Rect , buf : & mut Buffer ) {
846+ paint_session (
847+ area,
848+ buf,
849+ user_prompt_lines ( area) ,
850+ & format ! ( "{MODEL} · Agent · 92% context" ) ,
851+ GHOST_IDLE ,
852+ ) ;
877853}
878854
879855const PALETTE_ROWS : & [ ( & str , & str ) ] = & [
0 commit comments