[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A soup ladle discovers a secret passage under dinner
show_state JSON: {"beat_index":3,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"The stage backdrop leaned closer, and I respect its commitment.","speaker":"Gus Gingham"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Juniper Jingle"}],"setting":"a cardboard moon base with glitter stars and a squeaky hatch","show_title":"The Soup Ladle Discovers Secret","stage_lighting":"blue_spotlight","story_phase":"complication","target_beats":12}
actor JSON: {"avatar":"bell","current_goal":"Use the audience interruption without losing pacing.","goal":"Turn awkward pauses into musical cues.","goal_progress":"Following the clue across the painted flats.","held_props":[],"mood":"confident","name":"Juniper Jingle","recent_memory":["The painted door demanded a compliment earlier.","The orchestra coughed during the important pause."],"secret":"Rings whenever someone lies politely.","secret_status":"hidden","speaking_style":"bright, rhythmic, and suspiciously tuneful","tools":["consult_stage_oracle"]}
director_instruction: Make the next problem clear without solving it yet.

[Assistant] {"intent":"clarify_problem","line":"This tiny soup problem just became legally theatrical.","emotion":"delighted","gesture":"taps chin with one tiny puppet hand","stage_effect":"warm_spotlight","memory_update":null,"tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A wizard's laundry basket predicts tomorrow's weather
show_state JSON: {"beat_index":5,"finale_requested":false,"latest_audience_action":"Audience threw origami crown onto the stage.","latest_prop":"origami crown","max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Zelda Zipper"},{"line":"I bow to the stage door, and it applauds.","speaker":"Ruby Ruckus"}],"setting":"a pocket-sized stage with painted flats and a wobbly spotlight","show_title":"The Wizard'S Laundry Basket Predicts","stage_lighting":"moonlit_lighting","story_phase":"complication","target_beats":12}
actor JSON: {"avatar":"drum","current_goal":"Use the audience interruption without losing pacing.","goal":"Escalate the scene exactly one beat too far.","goal_progress":"Looking for a laugh that still serves the story.","held_props":["origami crown"],"mood":"delighted","name":"Ruby Ruckus","recent_memory":["The spotlight blinked whenever someone said clue.","The curtains whispered that the finale was hiding nearby."],"secret":"Keeps a tiny cymbal for emergencies.","secret_status":"hidden","speaking_style":"rowdy, warm, and rhythmically suspicious","tools":["change_lighting"]}
director_instruction: Make the prop feel important enough for the Director to notice.

[Assistant] {"intent":"inspect_prop","line":"I inspect this origami crown and find theatrical fingerprints everywhere.","emotion":"triumphant","gesture":"leans toward the glowing prop","stage_effect":"prop_table_glow","memory_update":"Noted that the origami crown behaved like evidence.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The royal gardener grows clues instead of roses
show_state JSON: {"beat_index":1,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"I trust this stage spotlight only when it stops coughing.","speaker":"Professor Buttonhook"},{"line":"The stage map is upside down, unless we are the map.","speaker":"Captain Taffeta"}],"setting":"a rainy cardboard alley lit by one dramatic desk lamp","show_title":"The Royal Gardener Grows Clues","stage_lighting":"memory_echo","story_phase":"complication","target_beats":7}
actor JSON: {"avatar":"sailboat","current_goal":"Steer every scene through theatrical weather.","goal":"Steer every scene through theatrical weather.","goal_progress":"Turning a contradiction into stage business.","held_props":[],"mood":"determined","name":"Captain Taffeta","recent_memory":["The backdrop changed color after the audience heckled.","The final bow was briefly visible in the wings."],"secret":"Cannot tell port from stage left.","secret_status":"hidden","speaking_style":"booming, nautical, and cheerfully mistaken","tools":["consult_stage_oracle","change_lighting"]}
director_instruction: Consult the oracle about the next theatrical turn.

[Assistant] {"intent":"consult_oracle","line":"Oracle, point our tiny shoes toward the useful mystery.","emotion":"hopeful","gesture":"peers upward as the oracle haze gathers","stage_effect":"blue_spotlight","memory_update":"Kept the oracle clue visible for the scene.","tool_request":{"tool":"consult_stage_oracle","args":{"question":"Which clue wants the spotlight?"},"reason":"The oracle can sharpen the next beat."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A nervous toaster auditions for a royal banquet
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"The stage backdrop leaned closer, and I respect its commitment.","speaker":"Rafi Ribbon"},{"line":"The stage evidence is backwards, or my shoes narrate.","speaker":"Velvet Crumb"}],"setting":"a tiny kitchen counter where every appliance has stage fright","show_title":"The Nervous Toaster Auditions Royal","stage_lighting":"stormy_lighting","story_phase":"chaos","target_beats":7}
actor JSON: {"avatar":"cupcake","current_goal":"Make every clue sound like dessert.","goal":"Make every clue sound like dessert.","goal_progress":"Trying to make the prop matter.","held_props":[],"mood":"ready","name":"Velvet Crumb","recent_memory":["The prop table glowed before anyone touched it.","A bell rang twice when the secret was mentioned."],"secret":"Can hear the curtains whisper reviews.","secret_status":"hidden","speaking_style":"warm, dramatic, and gently mischievous","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: Use a lighting cue as stage business, not decoration.

[Assistant] {"intent":"change_lighting","line":"Cue golden lights; this nervous accusation deserves sparkle.","emotion":"commanding","gesture":"shades eyes as the lamps change","stage_effect":"moonlit_lighting","memory_update":"Saved the new lighting cue for the next actor.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A shoelace detective solves crimes nobody can tie together
show_state JSON: {"beat_index":7,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[{"result":"The accordion suitcase pointed stage left.","stage_effect":"prop_table_glow","tool":"inspect_prop"}],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Pip the Director"},{"line":"I object, unless that stage noise was my cue.","speaker":"Zelda Zipper"}],"setting":"a velvet courtroom with a squeaky judge's bench","show_title":"The Shoelace Detective Solves Crimes","stage_lighting":"stormy_lighting","story_phase":"reveal","target_beats":7}
actor JSON: {"avatar":"zipper","current_goal":"Open hidden compartments in the plot.","goal":"Open hidden compartments in the plot.","goal_progress":"Preparing a clean turn toward the finale.","held_props":[],"mood":"curious","name":"Zelda Zipper","recent_memory":["The smallest prop seemed unusually confident."],"secret":"Knows which pocket holds the missing clue.","secret_status":"hinted","speaking_style":"quick, clipped, and conspiratorial","tools":["inspect_prop"]}
director_instruction: Echo a prior beat without repeating the same wording.

[Assistant] {"intent":"recall_memory","line":"I recall that glow; it followed the guilty pause.","emotion":"remembering","gesture":"points stage left with sudden recognition","stage_effect":"memory_echo","memory_update":"Brought back the earlier curtain whisper.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The sun forgets its entrance and asks the moon for notes
show_state JSON: {"beat_index":2,"finale_requested":false,"latest_audience_action":null,"latest_prop":"rubber duck","max_beats":14,"min_beats":9,"recent_tool_results":[{"result":"Secrets knock twice before entering.","stage_effect":"oracle_haze","tool":"consult_stage_oracle"}],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Orville Oddsock"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Nora Needlewhistle"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Forgets Entrance Asks Moon","stage_lighting":"memory_echo","story_phase":"reveal","target_beats":12}
actor JSON: {"avatar":"needle","current_goal":"Stitch loose clues into a tidy stage pattern.","goal":"Stitch loose clues into a tidy stage pattern.","goal_progress":"Trying to make the prop matter.","held_props":[],"mood":"delighted","name":"Nora Needlewhistle","recent_memory":["The prop table glowed before anyone touched it.","The curtains whispered that the finale was hiding nearby."],"secret":"Once sewed the curtain shut during a finale.","secret_status":"hinted","speaking_style":"nimble, exact, and full of tiny warnings","tools":["inspect_prop","change_lighting"]}
director_instruction: Give the audience a secret-shaped clue, not a long confession.

[Assistant] {"intent":"hint_secret","line":"My secret squeaks louder whenever the rubber duck gets nervous.","emotion":"relieved","gesture":"leans close to the front row","stage_effect":"single_spotlight","memory_update":"Marked the secret as publicly useful.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A soup ladle discovers a secret passage under dinner
show_state JSON: {"beat_index":5,"finale_requested":true,"latest_audience_action":"Audience requested a finale.","latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"This stage scene smells like mystery and nervous paint.","speaker":"Mossy Crank"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Captain Taffeta"}],"setting":"a toy library where the shelves whisper stage directions","show_title":"The Soup Ladle Discovers Secret","stage_lighting":"confetti_rustle","story_phase":"finale","target_beats":12}
actor JSON: {"avatar":"sailboat","current_goal":"Steer every scene through theatrical weather.","goal":"Steer every scene through theatrical weather.","goal_progress":"Testing whether the audience interruption is useful.","held_props":[],"mood":"mischievous","name":"Captain Taffeta","recent_memory":["A previous clue pointed stage left.","Someone bowed before the reveal was ready."],"secret":"Cannot tell port from stage left.","secret_status":"revealed","speaking_style":"booming, nautical, and cheerfully mistaken","tools":["consult_stage_oracle","change_lighting"]}
director_instruction: End with a short button and a bow.

[Assistant] {"intent":"deliver_finale","line":"We solved the soup wobble and saved the spotlight.","emotion":"proud","gesture":"sweeps a tiny hat toward the audience","stage_effect":"curtain_fall","memory_update":"Scene resolved with a clean bow.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A cardboard courtroom tries a missing birthday candle
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":"Audience heckled: That clue is wearing a hat.","latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"This stage scene smells like mystery and nervous paint.","speaker":"Velvet Crumb"},{"line":"I bow to the stage door, and it applauds.","speaker":"Mossy Crank"}],"setting":"a rainy cardboard alley lit by one dramatic desk lamp","show_title":"The Cardboard Courtroom Tries Missing","stage_lighting":"blue_spotlight","story_phase":"chaos","target_beats":10}
actor JSON: {"avatar":"gear","current_goal":"Fix the scene using questionable machinery.","goal":"Fix the scene using questionable machinery.","goal_progress":"Waiting for the next cue.","held_props":[],"mood":"hopeful","name":"Mossy Crank","recent_memory":["The audience threw a prop during the contradiction.","The final bow was briefly visible in the wings."],"secret":"Built a trapdoor that only opens emotionally.","secret_status":"hinted","speaking_style":"grumbly, mechanical, and secretly tender","tools":["inspect_prop","change_lighting"]}
director_instruction: Confuse one clue with another, then recover enough to continue.

[Assistant] {"intent":"comic_confusion","line":"I thought the cardboard clue was a hat, but it was Tuesday.","emotion":"panicked","gesture":"spins once and faces the wrong flat","stage_effect":"squeaky_floor","memory_update":"Logged the mistake as playable chaos.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A detective mailbox investigates missing love letters
show_state JSON: {"beat_index":6,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Tula Teaspoon"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Pip the Director"}],"setting":"a pocket-sized stage with painted flats and a wobbly spotlight","show_title":"The Detective Mailbox Investigates Missing","stage_lighting":"warm_spotlight","story_phase":"complication","target_beats":12}
actor JSON: {"avatar":"clapperboard","current_goal":"Keep the scene moving toward a crisp finale.","goal":"Keep the scene moving toward a crisp finale.","goal_progress":"Testing whether the audience interruption is useful.","held_props":[],"mood":"nervous","name":"Pip the Director","recent_memory":["Someone bowed before the reveal was ready.","The final bow was briefly visible in the wings."],"secret":"Has already misplaced the final cue card.","secret_status":"hinted","speaking_style":"brisk, theatrical, and slightly overconfident","tools":["change_lighting","consult_stage_oracle"]}
director_instruction: Make the next problem clear without solving it yet.

[Assistant] {"intent":"react_to_event","line":"This tiny detective problem just became legally theatrical.","emotion":"curious","gesture":"tilts head under the warm spotlight","stage_effect":"painted_flat_wobble","memory_update":null,"tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: Two umbrellas debate who caused the indoor rainstorm
show_state JSON: {"beat_index":5,"finale_requested":false,"latest_audience_action":"Audience threw velvet potato onto the stage.","latest_prop":"velvet potato","max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"I trust this stage spotlight only when it stops coughing.","speaker":"Nora Needlewhistle"},{"line":"I object, unless that stage noise was my cue.","speaker":"Pip the Director"}],"setting":"a paper harbor with blue ribbons for waves","show_title":"The Umbrellas Debate Caused Indoor","stage_lighting":"blue_spotlight","story_phase":"complication","target_beats":10}
actor JSON: {"avatar":"clapperboard","current_goal":"Use the audience interruption without losing pacing.","goal":"Keep the scene moving toward a crisp finale.","goal_progress":"Preparing a clean turn toward the finale.","held_props":["velvet potato"],"mood":"suspicious","name":"Pip the Director","recent_memory":["A trapdoor sighed but did not open.","The painted door demanded a compliment earlier."],"secret":"Has already misplaced the final cue card.","secret_status":"hidden","speaking_style":"brisk, theatrical, and slightly overconfident","tools":["change_lighting","consult_stage_oracle"]}
director_instruction: Make the prop feel important enough for the Director to notice.

[Assistant] {"intent":"inspect_prop","line":"The velvet potato points stage left, which feels legally important.","emotion":"startled","gesture":"presents the clue on both tiny palms","stage_effect":"tiny_chime","memory_update":"Noted that the velvet potato behaved like evidence.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: Two umbrellas debate who caused the indoor rainstorm
show_state JSON: {"beat_index":7,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Professor Buttonhook"},{"line":"I object, unless that stage noise was my cue.","speaker":"Silas Sockdolager"}],"setting":"a toy library where the shelves whisper stage directions","show_title":"The Umbrellas Debate Caused Indoor","stage_lighting":"oracle_haze","story_phase":"complication","target_beats":7}
actor JSON: {"avatar":"megaphone","current_goal":"Deliver the biggest line in the smallest voice.","goal":"Deliver the biggest line in the smallest voice.","goal_progress":"Waiting for the next cue.","held_props":[],"mood":"grand","name":"Silas Sockdolager","recent_memory":["The prop table glowed before anyone touched it.","A bell rang twice when the secret was mentioned."],"secret":"Lost his indoor voice under the orchestra pit.","secret_status":"hidden","speaking_style":"grand, booming, and suddenly tiny","tools":["change_lighting","consult_stage_oracle"]}
director_instruction: Invite a mysterious clue without making the scene too serious.

[Assistant] {"intent":"consult_oracle","line":"I request one clue, preferably with dramatic lighting.","emotion":"mystified","gesture":"raises both hands toward the stage rafters","stage_effect":"blue_spotlight","memory_update":"Kept the oracle clue visible for the scene.","tool_request":{"tool":"consult_stage_oracle","args":{"question":"Which clue wants the spotlight?"},"reason":"The oracle can sharpen the next beat."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A cardboard courtroom tries a missing birthday candle
show_state JSON: {"beat_index":7,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"The stage problem just winked, so we investigate politely.","speaker":"Captain Taffeta"},{"line":"I bow to the stage door, and it applauds.","speaker":"Benny Breadcrumb"}],"setting":"a pocket-sized stage with painted flats and a wobbly spotlight","show_title":"The Cardboard Courtroom Tries Missing","stage_lighting":"moonlit_lighting","story_phase":"chaos","target_beats":10}
actor JSON: {"avatar":"bread","current_goal":"Use the audience interruption without losing pacing.","goal":"Leave a trail of clues nobody can ignore.","goal_progress":"Waiting for the next cue.","held_props":[],"mood":"startled","name":"Benny Breadcrumb","recent_memory":["A shadow crossed the stage wearing tap shoes.","The painted door demanded a compliment earlier."],"secret":"Ate the map corner during rehearsal.","secret_status":"hidden","speaking_style":"crumbly, earnest, and accidentally useful","tools":["inspect_prop"]}
director_instruction: Use a lighting cue as stage business, not decoration.

[Assistant] {"intent":"change_lighting","line":"Cue golden lights; this cardboard accusation deserves sparkle.","emotion":"dramatic","gesture":"points to the spotlight with grand certainty","stage_effect":"golden_lighting","memory_update":"Remembered the lighting shift as an emotional cue.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A train conductor schedules a parade inside a suitcase
show_state JSON: {"beat_index":4,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[{"result":"The tin trumpet pointed stage left.","stage_effect":"prop_table_glow","tool":"inspect_prop"}],"recent_transcript":[{"line":"The stage backdrop leaned closer, and I respect its commitment.","speaker":"Quincy Quill"},{"line":"The stage map is upside down, unless we are the map.","speaker":"Benny Breadcrumb"}],"setting":"a paper harbor with blue ribbons for waves","show_title":"The Train Conductor Schedules Parade","stage_lighting":"final_bow_lights","story_phase":"reveal","target_beats":7}
actor JSON: {"avatar":"bread","current_goal":"Use the audience interruption without losing pacing.","goal":"Leave a trail of clues nobody can ignore.","goal_progress":"Carrying a small suspicion toward center stage.","held_props":[],"mood":"hopeful","name":"Benny Breadcrumb","recent_memory":["The final bow was briefly visible in the wings."],"secret":"Ate the map corner during rehearsal.","secret_status":"hinted","speaking_style":"crumbly, earnest, and accidentally useful","tools":["inspect_prop"]}
director_instruction: Connect an earlier audience action to the current clue.

[Assistant] {"intent":"recall_memory","line":"The trapdoor sighed before, and now the tin trumpet answers.","emotion":"wistful","gesture":"taps forehead with a tiny puppet finger","stage_effect":"soft_reprise","memory_update":"Recalled the earlier stage-left clue.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The lighthouse insists it saw a submarine wearing a hat
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":null,"latest_prop":"porcelain whistle","max_beats":9,"min_beats":5,"recent_tool_results":[{"result":"Secrets knock twice before entering.","stage_effect":"oracle_haze","tool":"consult_stage_oracle"}],"recent_transcript":[{"line":"I trust this stage spotlight only when it stops coughing.","speaker":"Benny Breadcrumb"},{"line":"The stage map is upside down, unless we are the map.","speaker":"Rafi Ribbon"}],"setting":"a toy library where the shelves whisper stage directions","show_title":"The Lighthouse Insists Submarine Wearing","stage_lighting":"prop_table_glow","story_phase":"reveal","target_beats":7}
actor JSON: {"avatar":"ribbon","current_goal":"Use the audience interruption without losing pacing.","goal":"Tie every contradiction into a decorative bow.","goal_progress":"Carrying a small suspicion toward center stage.","held_props":[],"mood":"delighted","name":"Rafi Ribbon","recent_memory":["The stage oracle warned everyone about small objects.","The smallest prop seemed unusually confident."],"secret":"Keeps emergency applause in his sleeve.","secret_status":"hinted","speaking_style":"smooth, charming, and neatly dramatic","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: Give the audience a secret-shaped clue, not a long confession.

[Assistant] {"intent":"hint_secret","line":"Fine, my lighthouse secret rehearsed with the missing clue.","emotion":"relieved","gesture":"covers mouth with one felt hand","stage_effect":"secret_chime","memory_update":"Secret moved from hint to reveal.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A lantern insists the darkness stole its punchline
show_state JSON: {"beat_index":1,"finale_requested":true,"latest_audience_action":"Audience requested a finale.","latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Bolt McJiggle"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Velvet Crumb"}],"setting":"a pocket-sized stage with painted flats and a wobbly spotlight","show_title":"The Lantern Insists Darkness Stole","stage_lighting":"confetti_rustle","story_phase":"finale","target_beats":7}
actor JSON: {"avatar":"cupcake","current_goal":"Make every clue sound like dessert.","goal":"Make every clue sound like dessert.","goal_progress":"Looking for a laugh that still serves the story.","held_props":[],"mood":"confident","name":"Velvet Crumb","recent_memory":["A trapdoor sighed but did not open.","A summoned actor entered carrying yesterday's clue."],"secret":"Can hear the curtains whisper reviews.","secret_status":"resolved","speaking_style":"warm, dramatic, and gently mischievous","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: End with a short button and a bow.

[Assistant] {"intent":"deliver_finale","line":"The lantern clue is home, and we bow.","emotion":"resolved","gesture":"joins hands with the nearest puppet","stage_effect":"final_bow_lights","memory_update":"Scene resolved with a clean bow.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A library book refuses to return from vacation
show_state JSON: {"beat_index":3,"finale_requested":false,"latest_audience_action":"Audience heckled: That clue is wearing a hat.","latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"I hear stage suspense tapping behind the painted flats.","speaker":"Juniper Jingle"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Mina Moonbutton"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Library Book Refuses Return","stage_lighting":"single_spotlight","story_phase":"chaos","target_beats":10}
actor JSON: {"avatar":"crescent moon","current_goal":"Use the audience interruption without losing pacing.","goal":"Find the emotional truth hiding inside the premise.","goal_progress":"Looking for a laugh that still serves the story.","held_props":[],"mood":"suspicious","name":"Mina Moonbutton","recent_memory":["A shadow crossed the stage wearing tap shoes.","A trapdoor sighed but did not open."],"secret":"Believes every prop is personally judging her.","secret_status":"hinted","speaking_style":"earnest, poetic, and prone to dramatic pauses","tools":["consult_stage_oracle","change_lighting"]}
director_instruction: Make a wrong conclusion that gives the next actor something usable.

[Assistant] {"intent":"comic_confusion","line":"I thought the library clue was a hat, but it was Tuesday.","emotion":"flustered","gesture":"looks under a tiny hat for answers","stage_effect":"squeaky_floor","memory_update":"Logged the mistake as playable chaos.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A pirate parrot opens a school for dramatic pauses
show_state JSON: {"beat_index":0,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"This stage scene smells like mystery and nervous paint.","speaker":"Marigold Mumble"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Professor Buttonhook"}],"setting":"a pocket-sized stage with painted flats and a wobbly spotlight","show_title":"The Pirate Parrot Opens School","stage_lighting":"prop_table_glow","story_phase":"opening","target_beats":7}
actor JSON: {"avatar":"spectacles","current_goal":"Explain chaos as if it were in the syllabus.","goal":"Explain chaos as if it were in the syllabus.","goal_progress":"Looking for a laugh that still serves the story.","held_props":[],"mood":"hopeful","name":"Professor Buttonhook","recent_memory":["The prop table glowed before anyone touched it.","The curtains whispered that the finale was hiding nearby."],"secret":"Never learned how trapdoors work.","secret_status":"hinted","speaking_style":"precise, fussy, and accidentally grand","tools":["consult_stage_oracle"]}
director_instruction: Make the next problem clear without solving it yet.

[Assistant] {"intent":"clarify_problem","line":"Everyone stay dramatic; the pirate clue is taking attendance.","emotion":"delighted","gesture":"taps chin with one tiny puppet hand","stage_effect":"soft_drumroll","memory_update":"Noted the first clear suspicion.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A cardboard courtroom tries a missing birthday candle
show_state JSON: {"beat_index":2,"finale_requested":false,"latest_audience_action":"Audience threw accordion suitcase onto the stage.","latest_prop":"accordion suitcase","max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"I hear stage suspense tapping behind the painted flats.","speaker":"Gus Gingham"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Bolt McJiggle"}],"setting":"a toy library where the shelves whisper stage directions","show_title":"The Cardboard Courtroom Tries Missing","stage_lighting":"golden_lighting","story_phase":"complication","target_beats":12}
actor JSON: {"avatar":"toolbox","current_goal":"Use the audience interruption without losing pacing.","goal":"Turn every problem into a practical stage gag.","goal_progress":"Keeping one eye on the restless curtains.","held_props":["accordion suitcase"],"mood":"suspicious","name":"Bolt McJiggle","recent_memory":["The painted door demanded a compliment earlier.","A summoned actor entered carrying yesterday's clue."],"secret":"Is secretly building a confetti finale backstage.","secret_status":"hinted","speaking_style":"punchy, practical, and full of suspicious confidence","tools":["inspect_prop","change_lighting"]}
director_instruction: Turn the prop into a concrete clue and keep the line short.

[Assistant] {"intent":"inspect_prop","line":"Hold still, accordion suitcase; your glitter is confessing under pressure.","emotion":"startled","gesture":"leans toward the glowing prop","stage_effect":"magnifier_sparkle","memory_update":"Saved the prop clue for the Director.","tool_request":{"tool":"inspect_prop","args":{"prop":"accordion suitcase"},"reason":"The prop may reveal a stage clue."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A pancake knight guards a syrup drawbridge at dawn
show_state JSON: {"beat_index":1,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"Everyone stay dramatic; the stage clue is taking attendance.","speaker":"Ruby Ruckus"},{"line":"I thought the stage clue was a hat, but it was Tuesday.","speaker":"Juniper Jingle"}],"setting":"a paper harbor with blue ribbons for waves","show_title":"The Pancake Knight Guards Syrup","stage_lighting":"single_spotlight","story_phase":"complication","target_beats":10}
actor JSON: {"avatar":"bell","current_goal":"Turn awkward pauses into musical cues.","goal":"Turn awkward pauses into musical cues.","goal_progress":"Trying to make the prop matter.","held_props":[],"mood":"ready","name":"Juniper Jingle","recent_memory":["A previous clue pointed stage left.","The stage oracle warned everyone about small objects."],"secret":"Rings whenever someone lies politely.","secret_status":"hinted","speaking_style":"bright, rhythmic, and suspiciously tuneful","tools":["consult_stage_oracle"]}
director_instruction: Use the oracle to connect the premise and latest confusion.

[Assistant] {"intent":"consult_oracle","line":"Oracle, tell us which bow is hiding the truth.","emotion":"hopeful","gesture":"listens closely to the whispering curtains","stage_effect":"oracle_haze","memory_update":"Noted that the oracle pointed toward the spotlight.","tool_request":{"tool":"consult_stage_oracle","args":{"question":"What should we notice next?"},"reason":"The oracle can sharpen the next beat."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The puppet mayor appoints a potato as royal advisor
show_state JSON: {"beat_index":0,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Otto Origami"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Mina Moonbutton"}],"setting":"a cardboard moon base with glitter stars and a squeaky hatch","show_title":"The Puppet Mayor Appoints Potato","stage_lighting":"memory_echo","story_phase":"chaos","target_beats":12}
actor JSON: {"avatar":"crescent moon","current_goal":"Find the emotional truth hiding inside the premise.","goal":"Find the emotional truth hiding inside the premise.","goal_progress":"Waiting for the next cue.","held_props":[],"mood":"ready","name":"Mina Moonbutton","recent_memory":["The smallest prop seemed unusually confident.","A trapdoor sighed but did not open."],"secret":"Believes every prop is personally judging her.","secret_status":"hidden","speaking_style":"earnest, poetic, and prone to dramatic pauses","tools":["consult_stage_oracle","change_lighting"]}
director_instruction: Cue lights dramatically while keeping the line speakable.

[Assistant] {"intent":"change_lighting","line":"Dim the corners; puppet secrets dislike excellent visibility.","emotion":"commanding","gesture":"shades eyes as the lamps change","stage_effect":"golden_lighting","memory_update":"Saved the new lighting cue for the next actor.","tool_request":{"tool":"change_lighting","args":{"mood":"warm suspicion"},"reason":"Lighting should clarify the emotional turn."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A shy volcano hosts a talent show for umbrellas
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[{"result":"The glitter crown pointed stage left.","stage_effect":"prop_table_glow","tool":"inspect_prop"}],"recent_transcript":[{"line":"The stage problem just winked, so we investigate politely.","speaker":"Benny Breadcrumb"},{"line":"I bow to the stage door, and it applauds.","speaker":"Rafi Ribbon"}],"setting":"a cardboard moon base with glitter stars and a squeaky hatch","show_title":"The Volcano Hosts Talent Show","stage_lighting":"warm_spotlight","story_phase":"reveal","target_beats":10}
actor JSON: {"avatar":"ribbon","current_goal":"Tie every contradiction into a decorative bow.","goal":"Tie every contradiction into a decorative bow.","goal_progress":"Carrying a small suspicion toward center stage.","held_props":[],"mood":"bold","name":"Rafi Ribbon","recent_memory":["The stage oracle warned everyone about small objects."],"secret":"Keeps emergency applause in his sleeve.","secret_status":"hidden","speaking_style":"smooth, charming, and neatly dramatic","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: Echo a prior beat without repeating the same wording.

[Assistant] {"intent":"recall_memory","line":"The same squeak appeared when the backdrop changed color.","emotion":"wistful","gesture":"taps forehead with a tiny puppet finger","stage_effect":"stage_left_glimmer","memory_update":"Linked the old glow to the current suspicion.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A robot gardener teaches flowers to bow on cue
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":null,"latest_prop":"origami crown","max_beats":14,"min_beats":9,"recent_tool_results":[{"result":"Secrets knock twice before entering.","stage_effect":"oracle_haze","tool":"consult_stage_oracle"}],"recent_transcript":[{"line":"I trust this stage spotlight only when it stops coughing.","speaker":"Tula Teaspoon"},{"line":"The stage map is upside down, unless we are the map.","speaker":"Captain Taffeta"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Robot Gardener Teaches Flowers","stage_lighting":"memory_echo","story_phase":"reveal","target_beats":12}
actor JSON: {"avatar":"sailboat","current_goal":"Use the audience interruption without losing pacing.","goal":"Steer every scene through theatrical weather.","goal_progress":"Turning a contradiction into stage business.","held_props":[],"mood":"grand","name":"Captain Taffeta","recent_memory":["The audience threw a prop during the contradiction.","The backdrop changed color after the audience heckled."],"secret":"Cannot tell port from stage left.","secret_status":"revealed","speaking_style":"booming, nautical, and cheerfully mistaken","tools":["consult_stage_oracle","change_lighting"]}
director_instruction: Reveal a playful secret and keep the scene moving.

[Assistant] {"intent":"reveal_secret","line":"My secret squeaks louder whenever the origami crown gets nervous.","emotion":"relieved","gesture":"leans close to the front row","stage_effect":"curtain_rustle","memory_update":"Saved the reveal as a new complication.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A shy volcano hosts a talent show for umbrellas
show_state JSON: {"beat_index":9,"finale_requested":true,"latest_audience_action":"Audience requested a finale.","latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"The stage problem just winked, so we investigate politely.","speaker":"Orville Oddsock"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Petra Popcorn"}],"setting":"a paper harbor with blue ribbons for waves","show_title":"The Volcano Hosts Talent Show","stage_lighting":"blue_spotlight","story_phase":"finale","target_beats":10}
actor JSON: {"avatar":"popcorn","current_goal":"Use the audience interruption without losing pacing.","goal":"Make the audience reaction part of the plot.","goal_progress":"Following the clue across the painted flats.","held_props":[],"mood":"bold","name":"Petra Popcorn","recent_memory":["The orchestra coughed during the important pause.","A summoned actor entered carrying yesterday's clue."],"secret":"Can predict heckles three kernels early.","secret_status":"resolved","speaking_style":"poppy, fast, and delighted by chaos","tools":["change_lighting"]}
director_instruction: Signal the curtain clearly and let the ensemble win.

[Assistant] {"intent":"deliver_finale","line":"Final bow, tiny friends; the volcano mystery exits smiling.","emotion":"joyful","gesture":"joins hands with the nearest puppet","stage_effect":"confetti_rustle","memory_update":"Scene resolved with a clean bow.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A polite comet asks permission to crash the tea party
show_state JSON: {"beat_index":1,"finale_requested":false,"latest_audience_action":"Audience heckled: That clue is wearing a hat.","latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"This tiny stage problem just became legally theatrical.","speaker":"Ivy Inkblot"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Rafi Ribbon"}],"setting":"a tiny kitchen counter where every appliance has stage fright","show_title":"The Polite Comet Asks Permission","stage_lighting":"memory_echo","story_phase":"chaos","target_beats":10}
actor JSON: {"avatar":"ribbon","current_goal":"Use the audience interruption without losing pacing.","goal":"Tie every contradiction into a decorative bow.","goal_progress":"Keeping one eye on the restless curtains.","held_props":[],"mood":"curious","name":"Rafi Ribbon","recent_memory":["A summoned actor entered carrying yesterday's clue.","The painted door demanded a compliment earlier."],"secret":"Keeps emergency applause in his sleeve.","secret_status":"hidden","speaking_style":"smooth, charming, and neatly dramatic","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: Make a wrong conclusion that gives the next actor something usable.

[Assistant] {"intent":"comic_confusion","line":"I object, unless that polite noise was my cue.","emotion":"goofy","gesture":"drops an imaginary cue card","stage_effect":"hat_tumble","memory_update":"Confusion briefly raised the stakes.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The lighthouse insists it saw a submarine wearing a hat
show_state JSON: {"beat_index":3,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"Everyone stay dramatic; the stage clue is taking attendance.","speaker":"Captain Taffeta"},{"line":"The spotlight blinked twice, so I blamed the stage.","speaker":"Nora Needlewhistle"}],"setting":"a cardboard moon base with glitter stars and a squeaky hatch","show_title":"The Lighthouse Insists Submarine Wearing","stage_lighting":"warm_spotlight","story_phase":"complication","target_beats":12}
actor JSON: {"avatar":"needle","current_goal":"Use the audience interruption without losing pacing.","goal":"Stitch loose clues into a tidy stage pattern.","goal_progress":"Keeping one eye on the restless curtains.","held_props":[],"mood":"delighted","name":"Nora Needlewhistle","recent_memory":["The final bow was briefly visible in the wings.","A summoned actor entered carrying yesterday's clue."],"secret":"Once sewed the curtain shut during a finale.","secret_status":"hidden","speaking_style":"nimble, exact, and full of tiny warnings","tools":["inspect_prop","change_lighting"]}
director_instruction: Name what changed on stage and invite the next beat.

[Assistant] {"intent":"react_to_event","line":"The lighthouse backdrop leaned closer, and I respect its commitment.","emotion":"suspicious","gesture":"steps toward the painted backdrop","stage_effect":"soft_drumroll","memory_update":"Noted the first clear suspicion.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The puppet mayor appoints a potato as royal advisor
show_state JSON: {"beat_index":6,"finale_requested":false,"latest_audience_action":"Audience threw candle stub onto the stage.","latest_prop":"candle stub","max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"This tiny stage problem just became legally theatrical.","speaker":"Juniper Jingle"},{"line":"The spotlight blinked twice, so I blamed the stage.","speaker":"Gus Gingham"}],"setting":"a rainy cardboard alley lit by one dramatic desk lamp","show_title":"The Puppet Mayor Appoints Potato","stage_lighting":"blue_spotlight","story_phase":"complication","target_beats":10}
actor JSON: {"avatar":"tablecloth","current_goal":"Keep everyone civil while the table collapses.","goal":"Keep everyone civil while the table collapses.","goal_progress":"Trying to make the prop matter.","held_props":["candle stub"],"mood":"hopeful","name":"Gus Gingham","recent_memory":["The backdrop changed color after the audience heckled.","A trapdoor sighed but did not open."],"secret":"Was once mistaken for the royal flag.","secret_status":"hinted","speaking_style":"homespun, patient, and quietly ridiculous","tools":["change_lighting","consult_stage_oracle"]}
director_instruction: Make the prop feel important enough for the Director to notice.

[Assistant] {"intent":"inspect_prop","line":"Behold, the candle stub is sweating under the footlights.","emotion":"triumphant","gesture":"holds the prop up to the footlights","stage_effect":"tiny_chime","memory_update":"Noted that the candle stub behaved like evidence.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: Detectives investigate why the castle keeps applauding
show_state JSON: {"beat_index":6,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"The stage problem just winked, so we investigate politely.","speaker":"Finch Feltcap"},{"line":"The stage evidence is backwards, or my shoes narrate.","speaker":"Lola Lampshade"}],"setting":"a velvet courtroom with a squeaky judge's bench","show_title":"The Detectives Investigate Castle Keeps","stage_lighting":"single_spotlight","story_phase":"complication","target_beats":7}
actor JSON: {"avatar":"lamp","current_goal":"Use the audience interruption without losing pacing.","goal":"Reveal the truth with tasteful illumination.","goal_progress":"Looking for a laugh that still serves the story.","held_props":[],"mood":"nervous","name":"Lola Lampshade","recent_memory":["A summoned actor entered carrying yesterday's clue.","A bell rang twice when the secret was mentioned."],"secret":"Overhears everything said near warm lighting.","secret_status":"hidden","speaking_style":"glowing, elegant, and dryly observant","tools":["change_lighting","consult_stage_oracle"]}
director_instruction: Ask the oracle something specific enough to guide the next beat.

[Assistant] {"intent":"consult_oracle","line":"Oracle, tell us which bow is hiding the truth.","emotion":"hopeful","gesture":"listens closely to the whispering curtains","stage_effect":"oracle_haze","memory_update":"Remembered the oracle's clue for the next beat.","tool_request":{"tool":"consult_stage_oracle","args":{"question":"What should we notice next?"},"reason":"The oracle can sharpen the next beat."}}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The town orchestra loses its conductor inside a trumpet
show_state JSON: {"beat_index":0,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[],"recent_transcript":[{"line":"Let us follow the stage wobble before it complains.","speaker":"Ivy Inkblot"},{"line":"Nobody panic; I interrogated the stage backdrop.","speaker":"Finch Feltcap"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Town Orchestra Loses Conductor","stage_lighting":"prop_table_glow","story_phase":"chaos","target_beats":12}
actor JSON: {"avatar":"hat","current_goal":"Use the audience interruption without losing pacing.","goal":"Keep secrets tucked safely under the brim.","goal_progress":"Carrying a small suspicion toward center stage.","held_props":[],"mood":"flustered","name":"Finch Feltcap","recent_memory":["The stage oracle warned everyone about small objects.","The curtains whispered that the finale was hiding nearby."],"secret":"The brim contains three emergency finales.","secret_status":"hidden","speaking_style":"dapper, soft-spoken, and evasive","tools":["consult_stage_oracle","inspect_prop"]}
director_instruction: Cue lights dramatically while keeping the line speakable.

[Assistant] {"intent":"change_lighting","line":"Lights to moonlit town; my eyebrows need proper shadows.","emotion":"dramatic","gesture":"shades eyes as the lamps change","stage_effect":"moonlit_lighting","memory_update":"Saved the new lighting cue for the next actor.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The village well starts returning everyone else's wishes
show_state JSON: {"beat_index":6,"finale_requested":false,"latest_audience_action":null,"latest_prop":null,"max_beats":14,"min_beats":9,"recent_tool_results":[{"result":"The toy hourglass pointed stage left.","stage_effect":"prop_table_glow","tool":"inspect_prop"}],"recent_transcript":[{"line":"The stage backdrop leaned closer, and I respect its commitment.","speaker":"Quincy Quill"},{"line":"The stage evidence is backwards, or my shoes narrate.","speaker":"Professor Buttonhook"}],"setting":"a cardboard moon base with glitter stars and a squeaky hatch","show_title":"The Village Well Starts Returning","stage_lighting":"prop_table_glow","story_phase":"reveal","target_beats":12}
actor JSON: {"avatar":"spectacles","current_goal":"Use the audience interruption without losing pacing.","goal":"Explain chaos as if it were in the syllabus.","goal_progress":"Testing whether the audience interruption is useful.","held_props":[],"mood":"curious","name":"Professor Buttonhook","recent_memory":["A shadow crossed the stage wearing tap shoes."],"secret":"Never learned how trapdoors work.","secret_status":"hinted","speaking_style":"precise, fussy, and accidentally grand","tools":["consult_stage_oracle"]}
director_instruction: Bring back a prior stage detail in one clear line.

[Assistant] {"intent":"recall_memory","line":"That old clue returns wearing suspiciously fresh tap shoes.","emotion":"alert","gesture":"clutches chest as the old clue returns","stage_effect":"soft_reprise","memory_update":"Recalled the earlier stage-left clue.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The lighthouse insists it saw a submarine wearing a hat
show_state JSON: {"beat_index":9,"finale_requested":false,"latest_audience_action":null,"latest_prop":"tin trumpet","max_beats":9,"min_beats":5,"recent_tool_results":[{"result":"Secrets knock twice before entering.","stage_effect":"oracle_haze","tool":"consult_stage_oracle"}],"recent_transcript":[{"line":"This stage scene smells like mystery and nervous paint.","speaker":"Gus Gingham"},{"line":"I followed the stage clue into my sleeve.","speaker":"Velvet Crumb"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Lighthouse Insists Submarine Wearing","stage_lighting":"final_bow_lights","story_phase":"reveal","target_beats":7}
actor JSON: {"avatar":"cupcake","current_goal":"Make every clue sound like dessert.","goal":"Make every clue sound like dessert.","goal_progress":"Preparing a clean turn toward the finale.","held_props":[],"mood":"determined","name":"Velvet Crumb","recent_memory":["The prop table glowed before anyone touched it.","The smallest prop seemed unusually confident."],"secret":"Can hear the curtains whisper reviews.","secret_status":"revealed","speaking_style":"warm, dramatic, and gently mischievous","tools":["inspect_prop","consult_stage_oracle"]}
director_instruction: Reveal a playful secret and keep the scene moving.

[Assistant] {"intent":"reveal_secret","line":"The tin trumpet knows me, and that is inconvenient.","emotion":"nervous","gesture":"covers mouth with one felt hand","stage_effect":"curtain_rustle","memory_update":"Saved the reveal as a new complication.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: A paper airplane delivers invitations to the wrong century
show_state JSON: {"beat_index":3,"finale_requested":true,"latest_audience_action":"Audience requested a finale.","latest_prop":null,"max_beats":12,"min_beats":7,"recent_tool_results":[],"recent_transcript":[{"line":"Everyone stay dramatic; the stage clue is taking attendance.","speaker":"Lola Lampshade"},{"line":"I object, unless that stage noise was my cue.","speaker":"Benny Breadcrumb"}],"setting":"a shoebox castle with velvet curtains and one suspicious tower","show_title":"The Paper Airplane Delivers Invitations","stage_lighting":"confetti_rustle","story_phase":"finale","target_beats":10}
actor JSON: {"avatar":"bread","current_goal":"Use the audience interruption without losing pacing.","goal":"Leave a trail of clues nobody can ignore.","goal_progress":"Waiting for the next cue.","held_props":[],"mood":"confident","name":"Benny Breadcrumb","recent_memory":["The final bow was briefly visible in the wings.","The curtains whispered that the finale was hiding nearby."],"secret":"Ate the map corner during rehearsal.","secret_status":"resolved","speaking_style":"crumbly, earnest, and accidentally useful","tools":["inspect_prop"]}
director_instruction: End with a short button and a bow.

[Assistant] {"intent":"deliver_finale","line":"We found the paper truth and bow together.","emotion":"grand","gesture":"holds a proud curtain-call pose","stage_effect":"curtain_fall","memory_update":"Scene resolved with a clean bow.","tool_request":null}


[System] You are an Actor agent in AI Puppet Theater. Return only one valid JSON object. No markdown. No commentary. Keep the puppet line short, theatrical, and speakable.

[User]
premise: The bakery's rolling pin claims it solved the mystery
show_state JSON: {"beat_index":5,"finale_requested":false,"latest_audience_action":"Audience heckled: That clue is wearing a hat.","latest_prop":null,"max_beats":9,"min_beats":5,"recent_tool_results":[],"recent_transcript":[{"line":"I hear stage suspense tapping behind the painted flats.","speaker":"Pip the Director"},{"line":"I followed the stage clue into my sleeve.","speaker":"Zelda Zipper"}],"setting":"a paper harbor with blue ribbons for waves","show_title":"The Bakery'S Rolling Claims Solved","stage_lighting":"oracle_haze","story_phase":"chaos","target_beats":7}
actor JSON: {"avatar":"zipper","current_goal":"Open hidden compartments in the plot.","goal":"Open hidden compartments in the plot.","goal_progress":"Carrying a small suspicion toward center stage.","held_props":[],"mood":"flustered","name":"Zelda Zipper","recent_memory":["The stage oracle warned everyone about small objects.","The backdrop changed color after the audience heckled."],"secret":"Knows which pocket holds the missing clue.","secret_status":"hidden","speaking_style":"quick, clipped, and conspiratorial","tools":["inspect_prop"]}
director_instruction: Escalate confusion briefly, then leave room for the next actor.

[Assistant] {"intent":"comic_confusion","line":"The spotlight blinked twice, so I blamed the bakery's.","emotion":"goofy","gesture":"freezes midstep with baffled dignity","stage_effect":"quick_blackout","memory_update":"Confusion briefly raised the stakes.","tool_request":null}