Files

341 lines
11 KiB
Markdown
Raw Permalink Normal View History

0.39.0 (#274) - **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.
2026-08-29 13:21:22 +03:00
# Context ID Nodes
Context IDs address pieces of scene context (character attributes, world entries, etc.) with a uniform string format so they can be read, written, pinned and rendered generically.
<!-- glossary:generated - everything below this line is generated by `python -m talemate.game.engine.nodes.tools glossary --write` - do not edit -->
_11 nodes._
| Node | Registry path |
| --- | --- |
| [Character Context IDs](#character-context-ids) | `context_id/CharacterContextIDs` |
| [Compress Context ID Part](#compress-context-id-part) | `context_id/CompressContextIDPart` |
| [Context ID Get Value](#context-id-get-value) | `context_id/ContextIDGetValue` |
| [Context ID Meta Entries](#context-id-meta-entries) | `context_id/ContextIDMetaEntries` |
| [Context ID Set Value](#context-id-set-value) | `context_id/ContextIDSetValue` |
| [Is Pin Active](#is-pin-active) | `context_id/IsPinActive` |
| [Path to Context ID](#path-to-context-id) | `context_id/PathToContextID` |
| [Remove Pin](#remove-pin) | `context_id/RemovePin` |
| [Render Context IDs](#render-context-ids) | `context_id/RenderContextIDs` |
| [Scan Context IDs](#scan-context-ids) | `context_id/ScanContextIDs` |
| [Set Pin](#set-pin) | `context_id/SetPin` |
## Character Context IDs
`context_id/CharacterContextIDs`
Unpack a character into context ID items for its various context entries
(attributes, details, description, acting instructions and example dialogue).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `character` | `character` | The character to get context ID items for |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `character` | `character` | The character input, passed through |
| `attributes` | `list` | List of context ID items for the character's attributes |
| `details` | `list` | List of context ID items for the character's details |
| `description` | `context_id_item` | Context ID item for the character's description |
| `acting_instructions` | `context_id_item` | Context ID item for the character's acting instructions |
| `example_dialogue` | `list` | List of context ID items for the character's example dialogue |
## Compress Context ID Part
`context_id/CompressContextIDPart`
Compress a context ID part name into the short hash identifier used inside
context IDs (truncated SHA256).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `part` | `str` | The part name to compress |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `uncompressed` | `str` | The original part, passed through |
| `compressed` | `str` | The compressed part |
## Context ID Get Value
`context_id/ContextIDGetValue`
Get the value of a context ID
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `context_id_item` | `context_id_item` | |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `context_id_item` | `context_id_item` | |
| `value` | `any` | |
## Context ID Meta Entries
`context_id/ContextIDMetaEntries`
Get all defined context ID meta entries for the active scene, sorted by
context ID.
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `meta_entries` | `list` | List of context ID meta entries |
| `context_id_types` | `list` | List of unique context ID types found in the entries |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `filter_creative` | `bool` | `False` | Filter creative context ID meta entries |
## Context ID Set Value
`context_id/ContextIDSetValue`
Set the value of a context ID entry in the active scene.
The target entry can be given either as a context ID item or as a path
string (one of the two must be set). Raises an error if the entry cannot
be resolved.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | The graph state |
| `context_id_item` | `context_id_item` | The context ID item to set the value for (optional) |
| `path` | `str` | The context ID path to set the value for (optional) |
| `value` | `any` | The value to set |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | The state input, passed through |
| `context_id_item` | `context_id_item` | The context ID item that was set |
| `path` | `str` | The path input, passed through |
| `value` | `any` | The value that was set |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `str` | `""` | The path to set the value for |
## Is Pin Active
`context_id/IsPinActive`
Check whether the world state pin for a context entry is currently active.
The target entry can be given either as a context ID item or as a path
string (one of the two must be set).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | The graph state |
| `context_id_item` | `context_id_item` | The context ID item to check (optional) |
| `path` | `str` | The context ID path to check (optional) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | The state input, passed through |
| `context_id_item` | `context_id_item` | The context ID item that was checked |
| `path` | `str` | The path input, passed through |
| `active` | `bool` | Whether the pin is active |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `str` | `""` | The path to the context ID item |
## Path to Context ID
`context_id/PathToContextID`
Resolve a context ID path string into a context ID item and retrieve its
current value from the active scene.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `path` | `str` | The context ID path to resolve |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `context_id` | `context_id` | The resolved context ID (None if the path could not be resolved) |
| `context_id_item` | `context_id_item` | The resolved context ID item (None if the path could not be resolved) |
| `human_id` | `str` | Human readable identifier of the resolved item |
| `as_dict` | `dict` | The resolved item as a dictionary (empty if not resolved) |
| `name` | `str` | The name of the resolved item |
| `value` | `any` | The current value stored at the context ID |
| `exists` | `bool` | Whether the path resolved to an existing context ID item |
| `context_type` | `str` | The context type of the resolved item |
| `path` | `str` | The path input, passed through |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `str` | `""` | The path to convert to a context ID |
## Remove Pin
`context_id/RemovePin`
Remove the world state pin for a context entry and reload the scene's
active pins.
The target entry can be given either as a context ID item or as a path
string (one of the two must be set).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | The graph state |
| `context_id_item` | `context_id_item` | The context ID item to unpin (optional) |
| `path` | `str` | The context ID path to unpin (optional) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | The state input, passed through |
| `context_id_item` | `context_id_item` | The context ID item that was unpinned |
| `path` | `str` | The path input, passed through |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `str` | `""` | The path to the context ID item |
## Render Context IDs
`context_id/RenderContextIDs`
Render a list of context ID items to prompt-ready text using the
`common.context_id_items` prompt template.
A single item may be passed instead of a list and will be wrapped
automatically.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `items` | `list,context_id_item` | List of context ID items to render (a single item is also accepted) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `items` | `list` | The list of items that was rendered |
| `rendered` | `str` | The rendered text |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `display_mode` | `str` | `"compact"` | Display mode. Choices: `compact`, `subsection`, `normal`. |
## Scan Context IDs
`context_id/ScanContextIDs`
Scan text for context ID references, resolve them against the active scene
and return the results in various formats.
Resolved items are rendered through the `common.context_id_items` prompt
template and also wrapped in a dynamic instruction that can be injected
into agent prompts.
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `text` | `str` | The text to scan for context IDs |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `dynamic_instruction` | `dynamic_instruction` | Dynamic instruction containing the rendered context items |
| `rendered` | `str` | The rendered text of the resolved items |
| `context_id_items` | `list` | List of resolved context ID items |
| `unresolved` | `list` | List of context ID references that could not be resolved |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `header` | `str` | `"Relevant Context"` | The header of the dynamic instruction |
| `display_mode` | `str` | `"compact"` | The display mode of the dynamic instruction. Choices: `compact`, `subsection`, `normal`. |
## Set Pin
`context_id/SetPin`
Create or update a world state pin for a context entry, pinning it into the
AI context. The target entry can be given either as a context ID item or as
a path (one of the two must be set).
**Inputs**
| Input | Type | Description |
| --- | --- | --- |
| `state` | `any` | The graph state |
| `context_id_item` | `context_id_item` | The context ID item to pin (optional) |
| `path` | `str` | The context ID path to pin (optional) |
| `condition` | `str` | AI-evaluated condition that determines whether the pin is active (optional) |
| `condition_state` | `bool` | The current evaluation state of the condition (optional) |
| `active` | `bool` | Whether the pin is active (optional) |
| `decay` | `int` | Number of cycles the pin remains active once set, 0 for no decay (optional) |
**Outputs**
| Output | Type | Description |
| --- | --- | --- |
| `state` | `any` | The state input, passed through |
| `context_id_item` | `context_id_item` | The context ID item that was pinned |
| `path` | `str` | The path input, passed through |
| `condition` | `str` | The condition that was set |
| `condition_state` | `bool` | The condition state that was set |
| `active` | `bool` | The active state that was set |
| `decay` | `int` | The decay that was set |
**Properties**
| Property | Type | Default | Description |
| --- | --- | --- | --- |
| `path` | `str` | `""` | The path to the context ID item |
| `condition` | `str` | `""` | The condition to set the pin |
| `condition_state` | `bool` | `False` | The condition state to set the pin |
| `active` | `bool` | `False` | The active state to set the pin |
| `decay` | `int` | `0` | Number of cycles the pin remains active once set |