f9b9785857
When a player creates a game without pasting their own adventure, the DM previously improvised turn-by-turn with no overall arc, ending, or calibrated difficulty. Now the setup-chat interview generates a full outline (hook, three-to-four-part structure, milestone leveling, explicit ending condition, GM guidance) as a follow-up LLM call once genre/length/experience are known, and feeds it through the existing adventure_text -> RAG ingestion -> "follow strictly" pipeline exactly like a pasted adventure. Falls back silently to today's improvised behavior if generation fails. Verified end-to-end in the browser: setup interview -> outline generated and previewed -> game created -> RAG chunks ingested -> has_adventure true -> cascade-cleaned on delete. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
19 lines
384 B
Python
19 lines
384 B
Python
from pydantic import BaseModel
|
|
|
|
|
|
class GameSetupChatRequest(BaseModel):
|
|
messages: list[dict] = []
|
|
adventure_text: str = ""
|
|
|
|
|
|
class GameSetupProposal(BaseModel):
|
|
name: str
|
|
description: str
|
|
|
|
|
|
class GameSetupChatResponse(BaseModel):
|
|
messages: list[dict]
|
|
assistant_text: str | None
|
|
proposal: GameSetupProposal | None
|
|
generated_adventure: str | None = None
|