How starryx727/valcoach works
ValCoach is a local VALORANT replay-review application. A player signs in, uploads a supported .vrf, follows or cancels parsing, then inspects match statistics, roster selections, round maps, profile trends, and asks a configurable LLM for evidence-backed coaching. The principal runtime boundary is the Rust API: it coordinates replay ingestion and persistence, while the web client presents results. The README documents Global and China parser support and coaching/provider capabilities; sampled excerpts do not expose every internal call, so uncertain wiring is omitted.
Main entry points: src/lib.rs SQLite store · main.rs API router · jobs.rs Replay jobs · src/lib.rs Replay adapter
Components 20
Web client
- Web UI
web/src/main.tsx
API and coaching
- API router
apps/server/src/main.rs - Authentication
apps/server/src/auth.rs - Replay jobs
apps/server/src/jobs.rs - Match views
apps/server/src/matches.rs - Profiles and trends
apps/server/src/profile.rs - Coach agent
apps/server/src/agent.rs
Replay processing
- Replay adapter
crates/replay_adapter/src/lib.rs - China transform
crates/replay_adapter/src/china.rs - Bundle reader
crates/replay_adapter/src/bundle.rs - VRF probe
crates/vrf_probe/src/lib.rs
Domain and storage
- Domain contracts
crates/domain/src/lib.rs - Map resolution
crates/maps/src/lib.rs - Replay metrics
crates/metrics/src/lib.rs - SQLite store
crates/db/src/lib.rs - Semantic analysis
crates/db/src/semantic.rs - Offline game content
web/public/game-content/catalog.json
Other components
- Player
- LLM provider
- Parser process
Connections 23
- Player → Web UI: uses
- Web UI → API router: API requests
- API router → Authentication: routes auth
- API router → Replay jobs: routes uploads
- API router → Match views: routes matches
- API router → Profiles and trends: routes profiles
- API router → Coach agent: routes coaching
- Authentication → SQLite store: reads and writes
- Replay jobs → Replay adapter: ingests replay
- Replay adapter → Parser process: runs export
- Replay adapter → Bundle reader: reads bundle
- Replay adapter → China transform: transforms China
- Replay jobs → VRF probe: probes container
- Replay jobs → SQLite store: persists match
- Match views → SQLite store: reads and updates
- Profiles and trends → SQLite store: reads and writes
- Coach agent → SQLite store: loads context and history
- Coach agent → LLM provider: requests coaching
- SQLite store → Semantic analysis: builds evidence
- Semantic analysis → Map resolution: resolves areas
- SQLite store → Domain contracts: stores domain records
- Replay metrics → Domain contracts: summarizes records
- Domain contracts → Offline game content: resolves names