How jianwang97/jubensha-ai works
JubenSha-ai is a web-based AI murder-mystery game: users manage or generate scripts, then run an AI-driven case through investigation, discussion, voting, and revelation, with live updates and optional speech and image generation. The map preserves script authoring, gameplay, history, and media as distinct product branches. The README documents these capabilities; sampled source confirms selected game, agent, image, storage, authentication, and persistence behavior, but not every route-to-service connection.
Main entry points: game_engine.py Game engine · server.py HTTP API · image_generation_routes.py Image API · llm_service.py LLM service
Components 29
Web experience
- Web app
frontend/src/pages/game/index.tsx - Script tools
frontend/src/pages/script-manager/index.tsx - History UI
frontend/src/pages/game-history/index.tsx - Auth client
frontend/src/services/authService.ts
API and authoring
- HTTP API
backend/src/core/server.py - Auth routes
backend/src/api/routes/auth_routes.py - Auth service
backend/src/services/auth_service.py - Script routes
backend/src/api/routes/script_routes.py - Script generation
backend/src/services/script_generation_service.py - Script editing
backend/src/services/script_editor_service.py - Game routes
backend/src/api/routes/game_routes.py - Game history
backend/src/services/game_history_service.py - Image API
backend/src/api/routes/image_generation_routes.py
Game runtime
- Game engine
backend/src/core/game_engine.py - Character agents
backend/src/agents/character_agent_manager.py - Evidence manager
backend/src/core/evidence_manager.py - Voting manager
backend/src/core/voting_manager.py - Live sync
backend/src/core/websocket_server.py
AI and media
- LLM service
backend/src/services/llm_service.py - TTS service
backend/src/services/tts_service.py - Image generation
backend/src/services/image_generation_service.py
Persistence
- Asset storage
backend/src/core/storage.py - Script repository
backend/src/db/repositories/script_repository.py - Session repository
backend/src/db/repositories/game_session_repository.py - Relational database
backend/src/db/session.py
Other components
- Player / author
- Image provider
- Speech provider
- LLM provider
Connections 37
- Player / author → Web app: plays
- Player / author → Script tools: authors
- Web app → HTTP API: requests game
- Script tools → HTTP API: requests scripts
- History UI → HTTP API: requests history
- Auth client → Auth routes: calls auth API
- HTTP API → Auth routes: dispatches
- Auth routes → Auth service: authenticates
- HTTP API → Script routes: dispatches
- Script routes → Script repository: reads / writes
- Script tools → Script generation: generates scripts
- Script tools → Script editing: edits scripts
- Script routes → Script generation: generates content
- Script routes → Script editing: edits content
- Script generation → LLM service: requests completion
- Script editing → LLM service: requests completion
- HTTP API → Game routes: dispatches
- Game routes → Game engine: controls game
- Game engine → Character agents: requests character turns
- Character agents → LLM service: requests responses
- Game engine → Evidence manager: tracks discoveries
- Game engine → Voting manager: manages votes
- Game engine → Live sync: broadcasts state
- Game engine → Session repository: persists sessions
- Game history → Session repository: reads session events
- Session repository → Relational database: reads / writes
- Script repository → Relational database: reads / writes
- HTTP API → Image API: dispatches
- Image API → Image generation: requests image
- Image API → LLM service: optimizes prompt
- Image API → Asset storage: stores generated asset
- Image API → Script repository: loads script details
- Image generation → Image provider: generates image
- LLM service → LLM provider: completes prompts
- Game engine → TTS service: requests speech
- TTS service → Speech provider: synthesizes speech
- History UI → Game history: retrieves replays