Clean em-dashes and smart quotes from markdown files

This commit is contained in:
Nyx Nimmerverse
2026-08-02 16:09:49 +00:00
parent 2cb32029a6
commit 192ac8f702
13 changed files with 177 additions and 177 deletions

View File

@@ -6,14 +6,14 @@ Each agent is selected via a "variant" in `overwrite/.../config/OpenRouter.yaml`
| Variant | Model alias | Endpoint (this install) | `max_tokens` | Purpose |
|---|---|---|---|---|
| `gamemaster_evaluation` | `claude-sonnet-4-5-20250929` | `127.0.0.1:8000` (local Claude proxy) | **256** | "Should I act and how?" fires GM action selector |
| `gamemaster_evaluation` | `claude-sonnet-4-5-20250929` | `127.0.0.1:8000` (local Claude proxy) | **256** | "Should I act and how?" - fires GM action selector |
| `AgentDefault` (Dialogue) | `eva` (custom local alias) | `10.0.30.21:31000` | 4096 | NPC dialogue generation |
| `meta` | `omega` | `10.0.30.22:31004` | 100 | Mood eval, memory query gen, classifiers, target selection |
| `vision` | `Qwen3-VL-8B-Instruct-abliterated-v2.Q4_K_M.gguf` | `10.0.30.22:31005` | 4000 | OmniSight scene description from screenshot |
| `combat` / `action_evaluation` | `eva` | same as AgentDefault | 500 | Combat-flavor dialogue / native action selection |
| `gamemaster_scene_planner` | (no dedicated variant captured likely uses `AgentDefault`) | | | Pre-plans 4-6-beat scenes (consumed by `gamemaster_action_selector.prompt:96-119` via `scene_plan` context var) |
| `intel_story_dm` | `claude-sonnet-4-5-20250929` | local proxy | | IntelEngine plugin's persistent narrative DM |
| `gamemaster_evaluation` (TTON) | `claude-sonnet-4-5-20250929` | local proxy | | OstimNet plugin's nearby-NPC GM |
| `gamemaster_scene_planner` | (no dedicated variant captured - likely uses `AgentDefault`) | - | - | Pre-plans 4-6-beat scenes (consumed by `gamemaster_action_selector.prompt:96-119` via `scene_plan` context var) |
| `intel_story_dm` | `claude-sonnet-4-5-20250929` | local proxy | - | IntelEngine plugin's persistent narrative DM |
| `gamemaster_evaluation` (TTON) | `claude-sonnet-4-5-20250929` | local proxy | - | OstimNet plugin's nearby-NPC GM |
`[note]` Models can be reconfigured per-agent by editing `OpenRouter.yaml`. The aliases (`eva`, `omega`) are user-defined and resolved by the OpenRouter routing layer.
@@ -26,25 +26,25 @@ Each agent is selected via a "variant" in `overwrite/.../config/OpenRouter.yaml`
**When it fires** `[verified]` from trace dump:
- Polling tick in continuous mode, roughly every `gamemaster.continuousSceneCooldownSeconds` (= 30s in this install). `[hypothesis]` exact timer source not isolated.
- On player input arrival.
- After a non-trivial in-game event (combat start, NPC death, location change) though events are filterable via `Events.yaml`.
- After a non-trivial in-game event (combat start, NPC death, location change) - though events are filterable via `Events.yaml`.
**Input context:**
- Recent events (`gamemaster.recentEventsCount: 25` controls volume).
- Nearby actors (`gamemaster.nearbyActorRadius: 600`).
- Eligible actions list (populated dynamically from C++; in continuous mode `ACTION: None` is allowed only if exposed by the prompt see `bugs-and-fixes.md` Bug #1).
- Eligible actions list (populated dynamically from C++; in continuous mode `ACTION: None` is allowed only if exposed by the prompt - see `bugs-and-fixes.md` Bug #1).
- Optional `scene_plan` if scene planner has run.
**Output:** exactly one line of the form
```
ACTION: ActionName PARAMS: {"key": "value", ...}
```
or `ACTION: None`. `max_tokens: 256` enforces this no room for prose.
or `ACTION: None`. `max_tokens: 256` enforces this - no room for prose.
**Consumers:** the C++ orchestrator parses the ACTION line and dispatches:
- `StartConversation` / `ContinueConversation` → kicks the Dialogue pipeline for the named speaker/target with the given topic.
- `Narrate` → triggers a narration-mode LLM call (no specific TTS speaker).
- `None` → no-op, scene breathes.
- Native actions (e.g. `OpenTrade`) when registered as eligible fires the Papyrus/C++ callback.
- Native actions (e.g. `OpenTrade`) when registered as eligible - fires the Papyrus/C++ callback.
---
@@ -74,14 +74,14 @@ or `ACTION: None`. `max_tokens: 256` enforces this — no room for prose.
A family of small classifier/helper calls, all capped at `max_tokens: 100`.
**Prompts:**
- `prompts/helpers/evaluate_mood.prompt` post-dialogue mood update for the speaker
- `prompts/helpers/generate_search_query.prompt` turns a dialogue into a memory-retrieval query
- `prompts/helpers/generate_profile.prompt` generates/updates a character profile
- `prompts/target_selectors/dialogue_speaker_selector.prompt` picks who in a group should respond to player
- `prompts/target_selectors/player_dialogue_target_selector.prompt` picks the best NPC for player to address
- `prompts/memory/generate_memory.prompt` and `memory_ranker.prompt` memory creation/ranking
- `prompts/transformers/native_dialogue_transformer.prompt` text→text transformations
- `prompts/transformers/universal_translator.prompt` translation pipeline
- `prompts/helpers/evaluate_mood.prompt` - post-dialogue mood update for the speaker
- `prompts/helpers/generate_search_query.prompt` - turns a dialogue into a memory-retrieval query
- `prompts/helpers/generate_profile.prompt` - generates/updates a character profile
- `prompts/target_selectors/dialogue_speaker_selector.prompt` - picks who in a group should respond to player
- `prompts/target_selectors/player_dialogue_target_selector.prompt` - picks the best NPC for player to address
- `prompts/memory/generate_memory.prompt` and `memory_ranker.prompt` - memory creation/ranking
- `prompts/transformers/native_dialogue_transformer.prompt` - text→text transformations
- `prompts/transformers/universal_translator.prompt` - translation pipeline
**When they fire:** mostly post-dialogue. `target_selection_llm` runs *before* dialogue when player input arrives.
@@ -93,7 +93,7 @@ A family of small classifier/helper calls, all capped at `max_tokens: 100`.
**Prompts:** `prompts/native_action_selector.prompt` (stage 1: pick category) + `prompts/native_action_selector_drilldown.prompt` (stage 2: pick leaf action under that category).
**When it fires:** *after* the Dialogue agent produces text, asking "what in-game action does this dialogue imply?". `[hypothesis]` may not fire if `embed_actions_in_dialogue: true` and the Dialogue agent already emitted a valid `ACTION:` line needs verification (see `open-questions.md`).
**When it fires:** *after* the Dialogue agent produces text, asking "what in-game action does this dialogue imply?". `[hypothesis]` may not fire if `embed_actions_in_dialogue: true` and the Dialogue agent already emitted a valid `ACTION:` line - needs verification (see `open-questions.md`).
**Input:** the NPC's just-spoken line + the eligible action list with category groupings.
@@ -105,7 +105,7 @@ A family of small classifier/helper calls, all capped at `max_tokens: 100`.
---
## Vision Agent (`vision` variant OmniSight)
## Vision Agent (`vision` variant - OmniSight)
**Prompts:** `prompts/omnisight/describe_actor.prompt`, `describe_scene.prompt`, `describe_item.prompt`, `describe_location.prompt`, `describe_furniture.prompt`, with rendering-mode submodules in `submodules/omnisight_*/`.
@@ -113,7 +113,7 @@ A family of small classifier/helper calls, all capped at `max_tokens: 100`.
**Output:** scene description text (up to 4000 tokens), inserted into the Dialogue agent's context as the `omnisight` block.
**Consumers:** the Dialogue agent uses this to ground its response in what's visually present (objects, characters, environment) not just what's in event logs.
**Consumers:** the Dialogue agent uses this to ground its response in what's visually present (objects, characters, environment) - not just what's in event logs.
---