1. Remove yellow highlights in hotswaps list.
2. Decrease font size of group members list, make it respect the block limits (1 row for small avatars, 3 rows for big avatars).
3. Fix autoload loading the first character if the latest selected entity was a group.
4. Fix tag key potentially skipping the first character.
5. Fix being unable to open groups from the hotswaps panel.
6. Fix left alignment of hotswaps panel, now centered.
7. Fix rounding of missing group avatars (most noticeable when favorited).
- Refactored to one general printTagList method
- Made a robust getTagKeyForEntity function
- Fixed group not displaying tags if autoloaded
- Fixed added tags on character/groups not being auto sorted
- Fixed autoload of group/character that I killed
- Fixed typo
API docs: https://dreamgen.com/docs/models/opus/v1
API keys: https://dreamgen.com/account/api-keys
I decided to base this on the text-completion API since it's more
flexible with SillyTavern's prompt formating capabilities.
This also means that custom context and instruct settings are required.
Will add documentation in a followup PR.
Right now all it does is handle returning if there's already a message
being generated, but I'll extend it with more logic that I want to move
out of Generate().
We don't need the server to tell us our user agent--we can get it
ourselves through navigator.userAgent and parse it on the frontend.
I've replaced device-detector-js with Bowser because device-detector-js
is really slow, freezing for up to 500ms to parse a single user agent.
We were using getDeviceInfo to check whether we were on a desktop or a
mobile device. This can be done more simply with isMobile, which means
we can stop exporting getDeviceInfo.