Commit Graph

149 Commits

Author SHA1 Message Date
Wolfsblvt ffc84f5118 Merge branch 'staging' into slash-command-enums 2024-06-20 20:38:55 +02:00
Cohee be9f34ab8a Fix data-i18n removing options 2024-06-17 11:23:59 +03:00
Wolfsblvt 7f7ecdcca8 Merge branch 'staging' into slash-command-enums 2024-06-17 07:06:26 +02:00
Wolfsblvt 66d609c35f Several million refactoring of existing slash commands with enums (really) 2024-06-17 07:04:10 +02:00
steve green 5e44403346
fixup translates (#2382)
* Update i18n.js

* fixup

* update i18n CI

* fix trigger?

* i18n changes

* Update zh-cn.json

* add missing keys

* Revert "i18n changes"

This reverts commit ebe0ede6e1.

* Revert "update i18n CI"

This reverts commit ac923c8bd6.

* Revert "Update i18n.js"

This reverts commit 14a845836b.

* typo fix

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Touch-Night <1762918301@qq.com>
2024-06-16 14:39:46 +03:00
Cohee 974d6275bf Revert "#2369 Ignore invalid characters in getLastCharacterMessage" 2024-06-16 11:27:11 +03:00
Cohee 101c735d91 Add enum provider for /emote 2024-06-15 18:21:44 +03:00
Cohee 3ca6795cde #2369 Ignore invalid characters in getLastCharacterMessage 2024-06-15 18:13:59 +03:00
Cohee b22bc47c4f Update ext.macro calls in built-in extensions 2024-06-15 01:40:16 +03:00
steve green 3ede4aafbe
Update zh-cn.json (#2376)
* Update zh-cn.json

* html changes

* `div`->`span`

* fixes

* fixes

* more fixes

* Revert last divs

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-06-14 22:46:40 +03:00
Cohee ef137f68c4 Fallback to Fuse if not parsed expression 2024-05-25 17:32:11 +03:00
Cohee b545185f1a Transform LLM emotion response to lower 2024-05-25 17:11:58 +03:00
Cohee fa6fc45e6f Function calling for Cohere 2024-05-25 17:09:47 +03:00
Cohee dc8530049f Reference implementation: Set expressions with function calling 2024-05-25 15:38:32 +03:00
Cohee b93131ec7a Lint fix 2024-05-18 18:58:25 +03:00
Matěj Račinský bd1bfee941 fix: correct usage of fuzzy search 2024-05-18 17:05:55 +02:00
Len 1d75b98393
STscript Parser Rewrite (#1965)
* set isForced to true on input

* make floating auto-complete follow horizontal scrolling

* add callable closure vars

* changes to /let and /var for callable closures

* fix error message

* fix scope for closure arguments

* if should return the pipe result from closures

* use /run to call closures and no arguments on immediate closures

* throw exception from QRs window-function if no match

* when to show autocomplete vs info only

* autocomplete positioning

* autocomplete styling

* add theming to autocomplete (theme, dark, light)

* improve autocomplete show/hide logic and editor selection

* use blur tint color instead of chat tint color and use blur setting

* cleanup and docs

* use scope macros for QR args

* add enter to select autocomplete

* fix no executor found

* cleanup and comment

* fix alias list in help string

* fallback to empty string piped value if null or undefined

* fix typo

* blur textarea on ctrl+enter execute (and refocus after)

* stop executeSlashCommand if parser throws

* move /let and /var callbacks into functions

* switch textarea to monospace when value starts with slash

* add double pipe a pipe breaker

* fix /? slash

* remove some logging

* add "/:name" as shorthand for "/run name" after all

* move shit around

* fix error message

* use testRunShorthandEnd

* use parseQuotedValue and parseValue to determine name for "/:"

QR labels and set names can include spaces

* add some adjustments to make autocomplete work properly

some hint in there about "/:" would still be nice

* add autocomplete style  selector

* only strip quotes from subcommand if they are at both ends

* fix JSDoc

* escaping

* allow open quotes on dry run

* throwing shit at the wall for /: autocomplete

* escapes only for symbols

* clean up autocomplete

* improve performance

* fix scope macros

* remove unescaping of pipes

* fix macros in scope copy

* fix "/? slash"

* don't run parser for getNameAt if text has not changed

* fix options filter

* re-enable blur listener

* restore selection on non-replace select

* fix for escaping first character of value

* add support for {{pipe}} and {{var::}} closures

* add index support to var macro

* add scoped var macro to macro help

* more escape fixes

* reduce autocomplete render debounce

* cleanup

* restore old escape handling and parser flag for strict escaping

* fix "no match" autocomplete message

* add dummy commands for comments and parser flag

* fix type annotations

* somewhat safer macro replacements

* fix autocomplete select on blank / "no match"

* fix cutting off handled part in substitution

* add parser flag REPLACE_GETVAR

Replaces all {{getvar::}} and {{getglobalvar::}} macros with {{var::}}.
Inserts a series of command executors before the command with the macros that:
- save {{pipe}} to a var
- call /getvar or /getglobalvar to get the variable used in the macro
- call /let to save the retrieved variable
- return the saved {{pipe}} value

This helps to avoid double-substitutions when the var values contain text that could be interpreted as macros.

* remove old parser

* fix send on enter when no match

* deal with pipes in quoted values (loose escaping)

* add default parser flags to user settings

* allow quoted values in unnamed argument

* set parser flag without explicit state to "on"

* add click hint on parser error toast

* dirty more detailed cmd defs

* remove name from unnamed arg

* move autocomplete into class and floating with details

* replace jQuery's trigger('input') on #send_textarea with native events because jQuery does not dispatch the native event

* fix ctrl+space

* fix arrow navigation

* add comments

* fix pointer block

* add static fromProps

* fix up dummy commands

* migrate all commands to addCommandObject

* remove commented comment command

* fix alias in details

* add range as argument type

* switch to addCommandObject

* switch to addCommandObject

* fix height

* fix floating details position on left

* re-enable blur event

* use auto width for full details on floating autocomplete

* auto-size floating full details

* fix typo

* re-enable blur listener

* don't prevent enter when selected item is fully typed out

* add autocomplete details tooltips

* add language to slash command examples

* move makeItem into option and command and fix click select

* use autocomplete parts in /? slash

* fix alias formatting

* add language to slash command examples

* fix details position on initial input history

* small screen styles

* replace registerSlashCommand with detailed declarations

* put name on first line

* add missing returns

* fix missing comma

* fix alias display in autocomplete list

* remove args from help string

* move parser settings to its own section

* jsdoc

* hljs stscript lang

* add hljs to autocomplete help examples

* add missing import

* apply autocomplete colors to stscript codeblocks (hljs)

* add fromProps

* cache autocomplete elements

* towards generic autocomplete

* remove unused imports

* fix blanks

* add return types

* re-enable blur

* fix blank check

* Caption messages by id

* add aborting command execution

* fix return type

* fix chat input font reset

* add slash command progress indicator

* add missing return

* mark registerSlashCommand deprecated

* why??

* separate abort logic for commands

* remove parsing of quoted values from unnamed arg

* add adjustable autocomplete width

* revert stop button pulse

* add progress and pause/abort to QR editor

* add resize event on autocomplete width change

* add key= argument to all get vars

* refactoring

* introduce NamedArgumentAsignment

* add TODOs

* refactoring

* record start and end of named arg assignment

* refactoring

* prevent duplicate calls to show

* refactoring

* remove macro ac

* add secondary autocomplete and enum descriptions

* add syntax highlighting to QR editor

* add enum descriptions to /while

* add /let key=... to scope variable names

* add unnamed argument assignment class and unnamed argument splitting

* fix QR editor style

* remove dash before autocomplete help text

* add autocomplete for unnamed enums

* fix remaining dom after holding backslash

* fix for unnamed enums

* fix autocomplete for /parser-flag

* add parser-flag enum help

* fix type annotations

* fix autocomplete result for /:

* add colored autocomplete type icons

* collapse second line autocomplete help if empty

* mark optional named args in autocomplete

* fix when what

* remove duplicate debug buttons

* dispatch input on autocomplete select

* prevent grow from editor syntax layer

* add auto-adjust qr editor caret color

* remove text-shadow from autocomplete

* join value strings in /let and /var

* add /abort syntax highlight

* fix attempting secondary result when there is none

* rename settings headers and split autocomplete / stscript

* add parser flag tooltips

* add tooltips to chat width stops

* fix typo

* return clone of help item

* fix enum string

* don't make optional notice for autocomplete arguments smaller

* avoid scrollbar in chat input

* add rudimentary macro autocomplete

* strip macro from helptext

* finally remove closure delimiters around root

* cleanup

* fix index stuff for removed closure delimiters

* fix type hint

* add child commands to progress indicator

* include sub-separator in macro autocomplete

* remove all mentions of interruptsGeneration and purge

* remove unused imports

* fix syntax highlight with newline at end of input

* cleanup select pointer events

* coalesce onProgress call

* add regex to STscript syntax highlighting

* fix closure end

* fix autocomplete type icon alignment

* adjustments for small screens

* fix removing wrong element

* add missing "at=" arg to /sys, /comment, /sendas

* add font scale setting for autocomplete

* add target=_blank for parser flag links

* fix for searching enums

* remove REGEXP_MODE from hljs
just causes trouble

* fix autocomplete in closures

* fix typo

* fix type hint

* Get rid of scroll bar on load

* Add type hint for /send name argument. Fix 'at' types

* Add 'negative' arg hint to /sd command

* reenable blur event

* Allow /summarize to process any text

* Compact layout of script toggles

* Expand CSS by default

* fix double ranger indicator and adjust to narrow container

* make custom css input fill available vertical space

* reduce scroll lag

* use default cursor on scrollbar

* Clean-up module loading in index.html

* fix tab indent with hljs

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-05-12 22:15:05 +03:00
deffcolony 0252b21901 move expression buttons above Sprite set
+moves the buttons above the Sprite set so user does not have to scroll all the way down to find the buttons now it will be directly visiable
2024-05-09 16:33:04 +02:00
Cohee 5e7c214c89 Substitute macros in text to classify 2024-05-06 22:02:13 +03:00
Cohee 478be72659 #2181 Unstuck moving images 2024-05-04 14:20:59 +03:00
Cohee 6ac6c7cfda #2159 Move debounce constants to a separate module 2024-04-28 19:47:53 +03:00
Wolfsblvt d7ade487b8 Refactor common enum for debounce timeouts 2024-04-28 06:21:47 +02:00
Cohee 62cf611fdc
Merge pull request #2138 from Wolfsblvt/fix-expression-list-resolve
Fix expression list resolve
2024-04-25 11:00:34 +03:00
Wolfsblvt 161e512805 Fix expression list resolve
- New expression api "LLM" still queried local classify model for expressions, fixed by returning default list
- Fixed failed API calls crashing Expressions extension
2024-04-25 04:29:20 +02:00
Cohee bc9c70556e Clean-up mentions of /public/ 2024-04-21 23:53:46 +03:00
Cohee b3bbec83b6 Merge branch 'staging' into neo-server 2024-04-20 02:56:05 +03:00
Cohee 366e2abb8b Move expressions LLM request setting mode listener 2024-04-19 23:01:31 +03:00
Cohee 88637adfe2 Merge branch 'staging' into neo-server 2024-04-17 19:39:57 +03:00
Cohee 341f02e425 Fix default classify API migration 2024-04-15 04:04:30 +03:00
Cohee 022c180b62 Lint and clean-up 2024-04-15 00:39:15 +03:00
Cohee f5955bdd37 Throw if couldn't classify 2024-04-14 20:02:34 +03:00
Cohee 0ff5d0b5f1 Substitute macro is LLM prompt 2024-04-14 19:53:40 +03:00
Cohee 6dca8b28fe Fix talkinghead check 2024-04-14 19:46:33 +03:00
Cohee 3e60919289 Specify LLM prompt in case JSON schema is not supported 2024-04-14 17:13:54 +03:00
Cohee b02394008c Fix settings migration. Add lint rule. 2024-04-14 15:40:10 +03:00
kingbri 913085ba74 Expressions: Let the user know if classification failed
Send a message if the classifer fails and fallback to the default
expression.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-04-13 01:29:54 -04:00
kingbri 8c4dd6ce1e Expressions: Ignore stopping strings
Don't use stopping strings when triggering a classify generation.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-04-12 09:57:09 -04:00
kingbri bea63a2efe Expressions: Remove TalkingHead from choices
This is a sub-choice under extras.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-04-12 01:59:44 -04:00
kingbri 6b656bf380 Expressions: Classify using LLM
Rather than using a separate BERT model to classify the last message,
use the LLM itself to get the classified expression label as a JSON
and set that as the current sprite. Doing this should take more information
into consideration and cut down on extra processing.

This is made possible by the use of constrained generation with JSON
schemas. Only available to TabbyAPI since it's the only backend that
supports the use of JSON schemas, but there can hopefully be a way
to use this with other backends as well.

Intercepts the generation and sets top_k = 1 (for greedy sampling)
and the json_schema to an emotion enum. Doing this also prevents
reingestion of the entire context every time a message is sent and
then asked to be classified, which doesn't compromise the chat
experience.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-04-12 01:55:16 -04:00
Cohee 356f1f9c39 Clean-up non-character state checks 2024-04-11 23:50:01 +03:00
Cohee 123131074c Change built-in extensions template render to async 2024-04-11 23:38:44 +03:00
Cohee 6290dff3d9 #2065 Add option to translate text before classification 2024-04-11 22:09:05 +03:00
Wolfsblvt e26c7827bc Fallback expression reset if custom expression deleted 2024-04-07 06:26:48 +02:00
Wolfsblvt 2ffb44b4e1 Add extension setting for fallback expression 2024-04-07 06:12:52 +02:00
Cohee cdbd5c6130 /classify help text clarity 2024-04-06 00:45:38 +03:00
Cohee e75f5550e3 Add /classify command 2024-04-05 22:33:16 +03:00
Cohee c3129da879 [skip ci] Lint fix 2024-02-07 19:28:34 +02:00
Cohee b158a86c25 Firefox copium for expression images 2024-02-05 02:21:20 +02:00
Juha Jeronen ad48d6666a fix bug: when switching talkinghead off, set character expression 2024-02-05 00:47:14 +02:00
Juha Jeronen 2a39db799a auto-pause Talkinghead when ST tab is hidden to save GPU resources 2024-02-05 00:46:44 +02:00