plebsaber.stream/AGENTS.md

1.6 KiB

AGENT NOTES

  • SvelteKit app under src/; tools require BeatLeader auth and rank gating.
  • Shared logic lives in src/lib/utils/plebsaber-utils.ts (requirements, playlist helpers, etc.).
  • Tool routes (/tools/*) use a layout that fetches the BeatLeader profile once (+layout.server.ts).
  • UI components for gating (e.g., HasToolAccess.svelte) handle supporter/top-3k restrictions.
  • BeatLeader session info exposed via /api/beatleader/me; navbar warns if outside allowed rank.
  • OAuth callback stores identity in a long-lived session (plebsaber_session via .data/plebsaber_sessions.json).
  • Tools expect BeatLeader supporter or global rank better than pleb's current rank; navbar dropdown warns when outside that threshold.
  • Global navigation lives in src/lib/components/NavBar.svelte; it houses the BeatLeader login dropdown with profile, testing (dev) and logout actions.
  • Core BeatLeader tool pages reuse shared components such as PlayerCompareForm.svelte, MapCard.svelte, PlayerCard.svelte, and SongPlayer.svelte for consistent UI/UX.
  • /player-info route consumes /api/beatleader/me to display and log raw BeatLeader session data for debugging.
  • /tools/stats (admin-only, BL id 76561199407393962) lists every stored BeatLeader session with full player profiles, skill triangles, and last-seen timestamps; navigation link only appears for that account.
  • /tools/compare-histories compares two players' play histories and displays their profiles with skill triangles when comparing.

Shell command guidance

  • Whitelisted commands: grep
  • DO NOT USE: cd (prefer pwd)