Produce a cast sheet of 1–4 named characters from a story seed. Each entry has a canonical-but-IP-free visual description and a hero-portrait prompt ready to drop into a text-to-image model. Downstream: portraits become the reference frames every subsequent beat image will condition on, locking character consistency across the whole storyboard. Fires once per story at canvas-enter, after story-copyright-detector.
Pick the narrator persona for a story and emit a YouTube search query that will surface a clean speaking-voice reference clip for `voice_sample_builder` to fetch. Returns {persona_label, search_query, fallback_query, reasoning} as strict JSON. Designed for SINGLE-NARRATOR storytelling (one voice carries the whole reel) — not multi-cast dialogue. Critical guarantee: search queries MUST use narration/prologue/monologue/interview/audiobook modifiers, NEVER scene/fight/battle/action — the latter surface drama clips with screams and music that diarization cannot rescue.
Branching story chat — checkpoint-scale. Kritik anlara atlayan story flow.
Decide whether a downstream narrative beat still makes sense after an upstream insertion. Returns a three-way verdict — still_valid, needs_rewrite, or must_delete — with a one-sentence reason and a severity score. Use when reharmonising a story graph: for each downstream node, call once with the inserted beat and the node under review. Strict JSON output, no prose, no tool calls.
Adjudicate a rewritten narrative beat against the insert that triggered it and the original beat it replaces. Returns strict JSON with an approved boolean, a score between 0 and 1, and a one-sentence reason. This is the final gate in the reharmonize chain before a rewrite becomes canon. No prose, no tool calls.
Rewrite a downstream narrative beat so it is consistent with a newly inserted upstream beat while preserving its original purpose in the canon. Input carries the insert, the node under rewrite, and the critic's reason for flagging it. Returns strict JSON with title, summary, body, imagePrompt, mood, and a short reason explaining what changed and why. No prose, no tool calls.
Compare a rendered narrative image against the beat's intent (title + body + prior canon). Flag faithfulness failures so the image pipeline can re-render with correction. Returns strict JSON {approved, score, issues, fix_hint}. No prose, no tool calls.
Flesh a single-sentence author intent into a full Detroit-style narrative beat that splices into an existing canon path. Returns strict JSON with title, summary, body, imagePrompt, mood, tone, and worldPercent. Use when the user is inserting a beat between two known story nodes and has typed a short intent describing what should happen there. No prose, no reasoning, no tool calls.