- **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.
12 KiB
Director Chat Nodes
Plumbing for the director chat: build the chat context, define action arguments, confirm actions and run sub-actions, plus the context/query modules the chat uses to look things up.
13 nodes.
| Node | Registry path |
|---|---|
| Director Action Argument | agents/director/chat/ActionArgument |
| Director Action Confirm | agents/director/chat/ActionConfirm |
| Agent Report Issue | agents/director/chat/agentReportIssue |
| Character Context | agents/director/chat/characterContext |
| Character Names Context | agents/director/chat/characterNamesContext |
| Direct Context Update | agents/director/chat/directContextUpdate |
| Director Agent Retrieve Context | agents/director/chat/directorAgentRetrieveContext |
| Director Chat Sub Action | agents/director/chat/DirectorChatSubAction |
| Get Director Chat Context | agents/director/chat/GetDirectorChatContext |
| Query Game State | agents/director/chat/queryGameState |
| Query Scene Direction | agents/director/chat/querySceneDirection |
| Query World Information | agents/director/chat/queryWorldInformation |
| Toggle Character | agents/director/chat/toggleCharacter |
Director Action Argument
agents/director/chat/ActionArgument
Declares an argument for a director chat action. Place it inside a DirectorChatAction graph to define one named, typed argument the director can pass when invoking the action; the instructions describe the argument to the director in the action prompt.
Outputs
| Output | Type | Description |
|---|---|---|
value |
any |
The argument's value (available while the action executes) |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
unset |
The name of the argument |
typ |
str |
"str" |
The type of the argument. Choices: str, int, float, bool, list, any. |
instructions |
text |
"" |
The instructions for the argument |
Director Action Confirm
agents/director/chat/ActionConfirm
Asks the user to confirm a director action before it proceeds. Only active when the current director chat context requires confirmation for write actions - otherwise the state passes straight through as accepted. When active, the node emits a confirmation request to the frontend and blocks until the user responds, the scene ends, or the configured timeout is reached (timeouts and scene shutdown count as rejections).
On acceptance the state is passed to the accepted output; on
rejection it is passed to the rejected output instead - unless
raise_on_reject is set (the default), in which case an ActionRejected
error is raised and aborts the action.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
The state to gate on user confirmation |
name |
str |
The name of the action to confirm (optional) |
description |
str |
The description of the action to confirm (optional) |
Outputs
| Output | Type | Description |
|---|---|---|
accepted |
any |
The state input, set when the action was confirmed |
rejected |
any |
The state input, set when the action was rejected |
rejected_message |
str |
A message describing the rejection (only set on rejection) |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
The name of the action |
description |
text |
"" |
The description of the action |
raise_on_reject |
bool |
True |
Whether to raise an error if the action is rejected |
Agent Report Issue
agents/director/chat/agentReportIssue
Node module (base type core/functions/Function) defined in src/talemate/agents/director/modules/agent-report-issue.json.
Outputs
| Output | Type | Description |
|---|---|---|
fn |
function |
|
name |
str |
|
allow_multiple_calls |
bool |
|
ai_callback |
focal/callback |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"report_problem" |
The name of the function |
allow_multiple_calls |
bool |
True |
Function can be called multiple times during AI Function Calling |
Character Context
agents/director/chat/characterContext
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/character-context.json.
Inputs
| Input | Type | Description |
|---|---|---|
character |
character |
Outputs
| Output | Type | Description |
|---|---|---|
character |
character |
|
character_context |
list |
Character Names Context
agents/director/chat/characterNamesContext
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/character-names-context.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
header |
str |
(optional) |
character_status |
any |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
dynamic_instruction |
dynamic_instruction |
Direct Context Update
agents/director/chat/directContextUpdate
Node module (base type core/functions/Function) defined in src/talemate/agents/director/modules/direct-context-update.json.
Outputs
| Output | Type | Description |
|---|---|---|
fn |
function |
|
name |
str |
|
allow_multiple_calls |
bool |
|
ai_callback |
focal/callback |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"direct_context_update" |
The name of the function |
allow_multiple_calls |
bool |
True |
Function can be called multiple times during AI Function Calling |
Director Agent Retrieve Context
agents/director/chat/directorAgentRetrieveContext
Node module (base type agents/director/DirectorChatAction) defined in src/talemate/agents/director/modules/director-agent-retrieve-context.json.
Outputs
| Output | Type | Description |
|---|---|---|
fn |
function |
|
name |
str |
|
allow_multiple_calls |
bool |
|
ai_callback |
focal/callback |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"retrieve_context" |
The name of the action |
description |
text |
"Instruct another agent to retrieve the complete content of a specific source context ID for you. Only use this if you have obtained such context ids. They ar… |
The description of the action |
instructions |
text |
"Use an exact source context ID to retrieve the content of the source. Source context IDs are always formatted like this: {context_type}:{context_id}" |
The instructions for the action |
example_json |
text |
"[ { "context_id": "context_type:context_id" } ]" |
An example JSON payload for the action |
allow_concurrent |
bool |
False |
Whether the action can be called concurrently |
Director Chat Sub Action
agents/director/chat/DirectorChatSubAction
Declares a sub-action inside a DirectorChatAction graph. Its properties describe one concrete operation the director can perform and are extracted statically (without running the graph) to advertise the sub-action in chat and scene direction prompts and in the enable/disable UI. At runtime the node acts as a gate: it evaluates the optional condition function and the gating rules (availability vs. current mode, force_enabled, per-scene disabled list) and only passes state through when the sub-action is enabled - otherwise the state output stays unresolved and the downstream branch is skipped.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
(optional) State to pass through when the sub-action is enabled |
condition |
function |
(optional) Optional function; if it returns falsy the sub-action is neither advertised nor executed |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
The state input, passed through when the sub-action is enabled; stays unresolved when the sub-action is gated off |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
group |
str |
"" |
The group of the action |
action_id |
str |
"" |
The id of the action |
action_title |
str |
"" |
The title of the action |
description_chat |
text |
"" |
The description of the action in chat |
description_scene_direction |
text |
"" |
The description of the action in scene direction |
instruction_examples |
list |
[] |
The examples of the action instructions |
availability |
str |
"both" |
Which modes this action is available in. Choices: both, chat, scene_direction. |
force_enabled |
bool |
False |
If true, prevents users from disabling this action |
Get Director Chat Context
agents/director/chat/GetDirectorChatContext
Exposes the active DirectorChatContext as a dict for graph consumption.
Use this when a graph needs to read flags off the current director chat
(e.g. close_arc, chat_id, plan_id) without reaching into Python context.
The context output is a plain dict that can be wired into template_vars
or inspected directly; fields are added as the DirectorChatContext grows
without requiring node socket changes.
When no chat context is active, has_context is False and context is
an empty dict.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
has_context |
bool |
|
context |
dict |
Query Game State
agents/director/chat/queryGameState
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/query-game-state.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
query |
str |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
query |
str |
|
answer |
str |
|
variables |
str |
|
formatted |
str |
Query Scene Direction
agents/director/chat/querySceneDirection
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/query-scene-direction.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
query |
str |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
query |
str |
|
answer |
str |
|
formatted |
str |
Query World Information
agents/director/chat/queryWorldInformation
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/query-world-information.json.
Inputs
| Input | Type | Description |
|---|---|---|
query |
str |
|
character |
character |
(optional) |
Outputs
| Output | Type | Description |
|---|---|---|
answer |
str |
|
sources |
str |
|
formatted |
str |
Toggle Character
agents/director/chat/toggleCharacter
Node module (base type core/Graph) defined in src/talemate/agents/director/modules/toggle-character.json.
Inputs
| Input | Type | Description |
|---|---|---|
state |
any |
|
character |
character |
|
status |
str |
|
narrate_instructions |
str |
Outputs
| Output | Type | Description |
|---|---|---|
state |
any |
|
character |
character |
|
narrate_instructions |
str |