- Add tool-use loop in generate_with_tools(): LLM can call read_file, roll, player_roll, and think tools via tool fenced blocks before producing the final json response. Tool results fed back for multi-round reasoning. - Add player_roll tool: shows a modal overlay asking the player to physically roll dice and type the result. Blocks the worker thread via threading.Event until the player responds. - Add RollModal Screen with dice label, reason, input, and submit. - Every tool call updates status bar with a specific DM action message (e.g. "DM is rolling dice", "DM is reading the character sheet") instead of the generic "weaving the narrative". The thinking-dot animation uses the last-reported action as its base. - Replace all user-facing "LLM" references with "DM". - Remove predefined choices: no more choice buttons or choice container. Player types freely. System prompt says "never present predefined choices" and all instruction templates say "let the player decide". - Add book story context to system prompt — last 3 turns from book.md injected as "Recent Story" section. - Fix build_user_message: detects existing book content; if story exists, sends "continue from where it left off" instead of "establish the opening scene". - Improve parse_response: add JSON-only fallback when no json fenced block is found. |
||
|---|---|---|
| rules | ||
| session | ||
| tools | ||
| .gitignore | ||
| AGENTS.md | ||
| run.sh | ||