Commit Graph

219 Commits

Author SHA1 Message Date
Wolfsblvt ffc84f5118 Merge branch 'staging' into slash-command-enums 2024-06-20 20:38:55 +02:00
Wolfsblvt 461b1a9d87 Even more enum refactorings (not done yet)
- Add common enum icons
- enum def for existing enum types, with color description
2024-06-20 20:33:45 +02:00
Cohee e7772f04a4 Don't require a primary WI to use additionals 2024-06-18 12:09:28 +03:00
Wolfsblvt 6f7ef25369 Rework slash command enum values pt.2
- Fix jsconfig module resolution for imports in frontend scripts
- Add file with common slash command enum values
2024-06-17 03:30:52 +02:00
Len 5cb319771d
Parser followup (#2377)
* set pipe to empty string on empty closure

* fix missing parser flags and scope

* add closure serializing

* add enum provider function to slash command arguments

* add enum providers for /bg, /ask, and /go

* fix index out of bounds returning undefined

* keep whitespace as is in mixed unnamed args (string+closure)

* add _hasUnnamedArgument to named arguments dictionary

* allow /var key=x retrieval

* add enum provider to /tag-add

* fix typo (case)

* add option to make enum matching optional

* add executor to enum provider

* change /tag-add enum provider to only show tags not already assigned

* add enum provider to /tag-remove

* fix name enum provider excluding groups

* remove void from slash command callback return types

* Lint undefined and null pipes

* enable pointer events in chat autocomplete

* fix type hint

---------

Co-authored-by: LenAnderson <Anderson.Len@outlook.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-06-15 00:48:41 +03:00
Wolfsblvt 64698ac073 Fix WI keys regex tokenization breaking falsely
- Change regex tokenization to check commas inside regexes via opening and closing delimiter.
- Fixes #2375
2024-06-14 01:02:59 +02:00
Cohee e660ec1f14 Remove stray newlines from WI/AN entries 2024-05-30 21:23:13 +03:00
steve green 00fc40408a
allow char scpoed regex (#2271)
* Update engine.js to allow char scpoed regex

no ui because i'm not good at it, but works.

* add typedef

* update

* little fix

* Rework scoped scripts UI

* Add locale attributes

* Purge allowance on delete

* add d&d for `saved_scoped_scripts`

* better code

* Save settings on regex scope toggle

* Fix reordering logic

* Fix scoped setter

* Add unique ids for regex scripts

* Wording

* Reload chat after deleting scripts

* Reload chat after toggling scoped regex

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-05-26 17:19:00 +03:00
Wolfsblvt 92cb70213a Fix no sanitize check on wi create 2024-05-23 00:39:49 +02:00
Wolfsblvt ab8c67ede6 Refactor overwrite check to utility function
- Refactor overwrite check to utility function
- Don't mind me refactoring character delete functions. I tried something, but I think the refactoring still makes sense
2024-05-22 23:52:35 +02:00
Wolfsblvt a251849f8f WI import checking for existing worlds too
- WI import uses the same check as create new world
- API endpoint to get server-side sanitized filenames
- Small changes to toast messages
2024-05-22 21:11:39 +02:00
Wolfsblvt 29d817d549 Implement failsafe for world creation with same name
- Fixes #2297
- Added another utils function for string comparison
2024-05-22 18:19:01 +02:00
steve green 3dd4f2b94a
Always make sure that the delete ****** available 2024-05-22 19:23:51 +08:00
Cohee df2710bcbe Transform WI haystack after regex matching 2024-05-20 13:44:12 +03:00
Cohee a398566b33 [BUG]In the lorebooks management panel, when in the Custom sorting mode, entries may be incorrectly placed above the table header. #2262 2024-05-18 13:27:22 +03:00
Cohee 75de4c8fcb Resolve boolean fields to constant values when searching WI entries with command 2024-05-17 14:32:57 +03:00
Cohee 8ae4332110 Fix secondary key expansion 2024-05-17 00:03:41 +03:00
Wolfsblvt a94af2678b Re-enable autofit height on plaintext key input 2024-05-15 23:47:48 +02:00
Cohee ac2475fb26 Merge branch 'staging' into wi-regex-keys 2024-05-15 01:21:45 +03:00
Wolfsblvt 8f1a959da1 WI key input default to plaintext 2024-05-15 00:19:09 +02:00
Cohee a0bbee8b79 Merge branch 'staging' into wi-multiple-inlcusion-groups 2024-05-15 00:54:27 +03:00
Wolfsblvt 00ce078630 WI key input mode switch fancy/plaintext
- Implemented switch between fancy and plaintext input controls
- Fixed splitting keys into regexes index issue
- Fixed focus falsely adding text as key
2024-05-14 04:51:22 +02:00
Wolfsblvt 5426431adf Merge branch 'staging' into wi-regex-keys 2024-05-14 01:56:36 +02:00
Wolfsblvt 726ec0fbfc WI automation/inclusionGroup not autocompleting to itself 2024-05-14 00:54:43 +02:00
Wolfsblvt 094fc1f24b WI allow multiple inclusion groups on a single entry 2024-05-14 00:16:41 +02:00
Wolfsblvt 6865f84eb1 Someone forgot preventRecursion default value 2024-05-13 22:39:21 +02:00
Wolfsblvt 036603c9e9 WI entry setting "Delay until recursion" 2024-05-13 22:33:25 +02:00
Cohee 2a30a74886
Merge pull request #2221 from steve02081504/patch-1
More worldinfo page sizes
2024-05-13 16:56:53 +03:00
Cohee 297519c401 Default to 100% probability in external imported lorebooks 2024-05-13 15:24:16 +03:00
steve green 1369025092
More worldinfo page sizes
I have a WIbook with more than 100 entries and it's a hassle to edit
So I want to raise the cap to 1000
2024-05-13 17:51:42 +08: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
Wolfsblvt bb3ac095c4 WI key input allow click to edit
- Allow click on WI keys to edit
- Removes them from the key list, allowing direct text editing
- Refactor select2 click subscribe some more, fixing a few issues
2024-05-10 00:42:35 +02:00
Wolfsblvt e18d554489 Refactor select2 choice click event to utils 2024-05-09 23:30:18 +02:00
Wolfsblvt a2625ecec6 Merge branch 'staging' into wi-regex-keys 2024-05-09 22:54:27 +02:00
Cohee 18d96bc346 Merge branch 'staging' into wi-no-doube-substitution 2024-05-09 15:11:16 +03:00
Cohee e14c9506b6 Revert entry post-process 2024-05-09 14:55:09 +03:00
Cohee 88aae5978f Simplify condition. Add debug log 2024-05-09 14:53:17 +03:00
Wolfsblvt b9d72bfdf4 Do not double-parse WI content on "always on" 2024-05-09 06:37:14 +02:00
Wolfsblvt f4bb4fe51e Merge branch 'staging' into wi-regex-keys 2024-05-09 04:23:14 +02:00
Wolfsblvt cf77b9e7ee WI regex key syntax highlighting 2024-05-09 03:35:36 +02:00
steve green ff1399d1ba remove empty lines from WIs 2024-05-09 08:30:40 +08:00
Wolfsblvt eb273a1873 WI key dropdown templating shows all keys
- Cache all keys for the loaded lorebook
- Key selection dropdown shows all keys and how often they are used already
- More templating changes
2024-05-08 20:34:53 +02:00
Cohee 7408673e41 Back to const 2024-05-08 20:59:59 +03:00
Cohee 3c0664dfb6 Fix naming and improve regex application 2024-05-08 20:10:52 +03:00
steve green d2477bba0c also run regex on worldinfo 2024-05-08 23:41:18 +08:00
Cohee 49d0d9f557 Fix return type on empty WI 2024-05-08 15:04:17 +03:00
kingbri 01aacb9280 World Info: Add example messages insertion point
Allow insertion above and below mesExamples (also known as the
"examples of dialogue") box.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-05-07 21:55:26 -04:00
Wolfsblvt fda0e886e4 WI custom styling for regex keys
- WI custom style for regex keys
- moved select2 styling to its own file
2024-05-07 05:44:18 +02:00
Wolfsblvt 5a45e64999 Regex matching for keys and secondary keys 2024-05-07 02:52:22 +02:00
Wolfsblvt 70a2f71e33 WI switch key controls to multi input
- Switch key/secondarykey controls to select2 input
- Custom tokenizer for regex parsing, allowing comma in regex
- Keep mobile-compatibility by switching to textarea
- select2 utility method to pre-fill options
- New inline display mode of select2 multi to save space
2024-05-07 02:01:54 +02:00