Director Planning Nodes
Director plans: create plans and tasks, advance and complete them, and read plan state from graphs.
13 nodes.
| Node | Registry path |
|---|---|
| Complete Task | agents/director/plan/CompleteTask |
| Create Outline | agents/director/plan/CreateOutline |
| Create Plan | agents/director/plan/CreatePlan |
| Critique Outline | agents/director/plan/critiqueOutline |
| Delete Plan | agents/director/plan/DeletePlan |
| Edit Task | agents/director/plan/EditTask |
| Estimate Words | agents/director/plan/EstimateWords |
| Expand Story Arc | agents/director/plan/ExpandStoryArc |
| Get Active Chat Plan ID | agents/director/plan/GetActiveChatPlanId |
| Get Active Plan | agents/director/plan/GetActivePlan |
| Insert Task | agents/director/plan/InsertTask |
| Manage Plan | agents/director/plan/managePlan |
| Remove Task | agents/director/plan/RemoveTask |
Complete Task
agents/director/plan/CompleteTask
Marks a task as completed in a plan.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
task_id |
str |
|
plan_id |
str |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |
Create Outline
agents/director/plan/CreateOutline
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/create-outline.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
instructions |
str |
|
beat_count |
int |
|
critique |
bool |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
instructions |
str |
|
beat_count |
int |
|
critique |
bool |
|
plan_id |
str |
|
summary |
str |
Create Plan
agents/director/plan/CreatePlan
Creates a plan with tasks and saves it to agent state.
Accepts a list of task dicts — automatically validates each as Beat (if beat-specific fields are present) or generic Task.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
instructions |
str |
|
tasks |
list |
|
meta |
dict |
(optional) |
status |
str |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
plan_id |
str |
|
result |
str |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
instructions |
text |
"" |
Instructions for the plan |
status |
str |
"ready" |
Initial plan status. Choices: planning, ready, executing, completed, cancelled. |
Critique Outline
agents/director/plan/critiqueOutline
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/critique-outline.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
outline_instructions |
str |
|
outline |
list |
|
perspective |
str |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
outline_instructions |
str |
|
orig_outline |
list |
|
perspective |
str |
|
new_outline |
list |
|
outline |
list |
|
changes |
str |
Delete Plan
agents/director/plan/DeletePlan
Deletes the active plan.
Also unlinks the plan from the active director chat.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |
Edit Task
agents/director/plan/EditTask
Patch-updates a task's fields in the active plan.
Accepts a dict of field updates — only provided fields are changed. The 'id' and 'order' fields are protected and cannot be changed. Blocked if the plan is completed.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
task_id |
str |
|
updates |
dict |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |
Estimate Words
agents/director/plan/EstimateWords
Estimates total word output for a given number of beats based on narrator and conversation agent token settings.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
beat_count |
int |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
beat_count |
int |
|
estimated_words |
int |
|
estimated_reading_minutes |
float |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
beat_count |
int |
8 |
Number of beats to estimate for |
Expand Story Arc
agents/director/plan/ExpandStoryArc
Expands a plan's beats into full prose and pushes them to scene history.
Delegates to the director's PlanMixin.expand_beats() which handles chunking, template calls, revision, emission, and task completion.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
plan_id |
str |
|
beats |
list |
|
perspective |
str |
|
director_notes |
str |
(optional) |
chunk_size |
int |
(optional) |
expand_critique |
bool |
(optional) |
close_arc |
bool |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |
|
word_count |
int |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
chunk_size |
int |
5 |
Number of beats per expansion chunk. Range: 3 – 12. |
Get Active Chat Plan ID
agents/director/plan/GetActiveChatPlanId
Returns the plan_id linked to the currently active director chat, or None if no chat is active or no plan is linked.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
plan_id |
str |
|
has_plan |
bool |
Get Active Plan
agents/director/plan/GetActivePlan
Returns the plan linked to the currently active director chat.
When no chat is active or no plan is linked, has_plan is False and the plan output is empty. The perspective falls back to the scene's default perspective (or "Third person, past tense.") when the plan doesn't specify one.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The graph state |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The state input, passed through |
plan_id |
str |
The plan's ID (empty string if no plan) |
plan |
any |
The full plan object (or None) |
beats |
list |
The plan's Beat tasks only (excludes generic tasks) |
perspective |
str |
The plan's perspective, with fallback as described above |
close_arc |
bool |
The plan's close_arc meta flag |
has_plan |
bool |
Whether a plan was found |
Insert Task
agents/director/plan/InsertTask
Inserts a new task into the active plan at a given position.
Position can be "start", "end", or an existing task ID (inserts after that task). The task dict is auto-validated as Beat or Task based on fields present. Blocked if the plan is completed.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
task |
dict |
|
position |
str |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
position |
str |
"end" |
Where to insert: 'start', 'end', or a task ID to insert after |
Manage Plan
agents/director/plan/managePlan
Node module (base type agents/director/DirectorChatAction) defined in src/talemate/agents/director/modules/manage-plan.json.
Outputs
| Output | Type | Description |
|---|---|---|
fn |
function |
|
name |
str |
|
allow_multiple_calls |
bool |
|
ai_callback |
focal/callback |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"manage_plan" |
The name of the action |
description |
text |
"Allows you set up, track and update your current set of tasks. Use this to setup general plans or plans for creating multiple beats of content over a specific … |
The description of the action |
instructions |
text |
"Manage your task plans. Pass plain text instructions describing what you want to do. To create a scene outline: describe the scene and specify the beat count.… |
The instructions for the action |
example_json |
text |
"[{"instructions": "Create a 6-beat scene outline: A tense encounter in the library where two strangers discover they're searching for the same book."}, {"instr… |
An example JSON payload for the action |
allow_concurrent |
bool |
False |
Whether the action can be called concurrently |
Remove Task
agents/director/plan/RemoveTask
Removes a task from the active plan by task ID.
Renumbers remaining tasks to keep contiguous ordering. Blocked if the plan is completed.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
task_id |
str |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
result |
str |