- **Help Agent** — A new agent that answers questions about Talemate itself — settings, agents, clients, the world editor — grounded in the bundled documentation, and able to change agent and application settings on request. - **Timeline Rollback** — Scrub a slider across a scene's automatic version history, preview the message history at any revision, then roll the scene back in place or fork the revision into a new save. - **Pi Bridge Client** — A new client type that drives generations through the pi coding agent's headless RPC mode, making any model pi can reach usable in Talemate. - **Application Settings** — Settings move out of their modal into an always-available Settings tab, with a single topic-grouped sidebar, a settings search, all API keys on one page, and unsaved-change tracking. - **Scene Library** — The home screen is rebuilt as a full-page landing view with a file-tree scene library, cover thumbnails and per-save metadata, scene and save deletion, and a drag-and-drop import dropzone. - **Fast Character Creation** — Generate a character in a single request instead of one prompt per aspect, with a Consolidate multi-select, a token budget, and a Fill in misses pass. Off by default. - **Scene Backdrop** — Set any scene illustration as a backdrop filling the scene view behind the messages, saved with the scene, with configurable text legibility and an Immersive quick-toggle. - **Scene Visual Manager** — World Editor → Scene gains a Visuals tab to browse, upload, generate and delete the scene's backgrounds and illustrations, and set the cover image and backdrop. - **Visual Prompt Finalization** — Post-processing actions — match and replace, or a free-form AI instruction — rewrite image prompts right before they reach the image backend, with per-scene and per-character overrides and reusable template sets. - fixes #271 - fixes #275 Plus 25 improvements and 39 bug fixes — see [CHANGELOG.md](https://github.com/vegu-ai/talemate/blob/prep-0.39.0/CHANGELOG.md#0390) for the full list.
9.7 KiB
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 |