splinter-keep/tools
Dejvino d265dfc7f7 DM tool loop, player roll modal, free-form input
- 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.
2026-06-25 15:14:35 +02:00
..
__init__.py TUI now owns the full game loop with embedded LLM engine 2026-06-25 12:12:04 +02:00
ambience.py add ambience music system: TUI crossfade, yt-dlp fetch, source tracking 2026-06-24 21:44:18 +02:00
draw.py Initial commit: The Chaos TTRPG solo campaign skeleton 2026-06-23 23:15:17 +02:00
engine.py DM tool loop, player roll modal, free-form input 2026-06-25 15:14:35 +02:00
music-fetch.py music-fetch: duration filter (11 min default, --allow-long-songs); populate dungeon-synth themed ambience tracks (9 tracks across 8 ambiences) 2026-06-24 21:56:42 +02:00
roll.py Initial commit: The Chaos TTRPG solo campaign skeleton 2026-06-23 23:15:17 +02:00
run.py DM tool loop, player roll modal, free-form input 2026-06-25 15:14:35 +02:00
store_turn.py drop turn_prompt.md — prompt is implicit in the DM asking the player 2026-06-25 08:34:17 +02:00