diff --git a/src/talemate/agents/director/plan/nodes.py b/src/talemate/agents/director/plan/nodes.py index 07502273..0873d223 100644 --- a/src/talemate/agents/director/plan/nodes.py +++ b/src/talemate/agents/director/plan/nodes.py @@ -268,9 +268,14 @@ class GetActivePlan(Node): beats = [] if plan: - perspective = plan.meta.get("perspective", "") + perspective = plan.meta.get("perspective") or "" beats = [t for t in plan.tasks if isinstance(t, Beat)] + # Fall back to scene perspective or a sensible default + if not perspective: + scene = active_scene.get() + perspective = getattr(scene, "perspective", "") or "Third person, past tense." + self.set_output_values( { "state": input_state, @@ -364,7 +369,7 @@ class ExpandStoryArc(AgentNode): input_state = self.require_input("state") plan_id = self.require_input("plan_id") beats = self.require_input("beats") - perspective = self.require_input("perspective") + perspective = self.normalized_input_value("perspective") or "Third person, past tense." director_notes = self.normalized_input_value("director_notes") or "" chunk_size = self.normalized_input_value("chunk_size") or int( self.get_property("chunk_size")