Commit Graph

346 Commits

Author SHA1 Message Date
Cohee 1ad57e6ff6
Merge pull request #2568 from SillyTavern/wi-apply-sorting-order-fix
Fix apply WI sorting to order field
2024-07-27 21:44:02 +03:00
Wolfsblvt 5e2e48c84d More sensible UI WI entries sorting
- Use same secondary/tertiary sorting for all sortings
- Refactor and streamline code
2024-07-27 19:56:14 +02:00
Wolfsblvt ad65fbc1fc Fix apply WI sorting to order field
- Fix using wrong values because of displayIndex
- Expand it to take any current sorting, not just the "custom" one
2024-07-27 19:27:55 +02:00
Cohee 256f0a58db
Merge pull request #2542 from SillyTavern/wi-slash-commands-performance-improvements
World Info: slash commands performance improvements
2024-07-22 22:51:53 +03:00
Cohee 1e2293713d Clone WI cache only on get 2024-07-22 22:34:53 +03:00
Cohee 8777526f8a Unasync getWorldEntry 2024-07-22 15:21:07 +00:00
Wolfsblvt d57e43df54 Remove not needed await on global context 2024-07-22 09:22:02 +02:00
Wolfsblvt 7cbaa15aad Fix double cloning and unnecessary await 2024-07-22 09:11:37 +02:00
Wolfsblvt 4acf68cc30 Explicitly use async for saveWorldInfo 2024-07-22 04:23:05 +02:00
Wolfsblvt 0975843f1d WI entry update slash commands use debounced
- WI entry updates utilize debounced save
- Trade-off between consistency of possible data loss and performance issues in STscript loops that update multiple things in a WI file are not worth it.
2024-07-22 03:22:20 +02:00
Wolfsblvt 731d2864de Proper caching for loaded WI
- Implement StructurecCloneMap, which is a map that provides structured clones on both get and set
- Don't delete WI cache on save, but update the cache
- Ensure that cache is updated immediately, so any future get will load the new saved data already
- Still be consistent with clones, so requested cache data that wasn't saved isn't taken into account
2024-07-22 03:17:06 +02:00
Wolfsblvt 41c709e291 WI slash only reload world if it was selected 2024-07-22 02:11:11 +02:00
Wolfsblvt 5ef6315b25 Allow values below entry count, just warn 2024-07-22 01:42:54 +02:00
Wolfsblvt 8e3f3e9331 WI update "Order" from custom sorting button
- Adds a button that automatically updates the "Order" values of entries based on the custom sorting order ("displayIndex")
- Shows popup to choose starting value, because it's descending (default: 100)
- shows warnings/errors if any issues appear with the value
- warning inside popup if more than 100 entries exist, and a higher value has to be chosen
- Implements #2533
2024-07-22 01:30:08 +02:00
Cohee 3c059d19ef #2529 Prioritize disabled for UI entry state 2024-07-19 01:54:49 +03:00
Cohee 42bc8af6f4 Add decorators to typedef 2024-07-14 23:13:19 +03:00
Cohee 2c1720d4f7 Merge staging 2024-07-14 23:04:54 +03:00
Cohee d2ca90bb2c Merge branch 'staging' into wi-processing-refactoring 2024-07-14 22:50:04 +03:00
Cohee 3fb83e47ec Run eslint 2024-07-14 14:07:23 +03:00
Cohee c90a25e0cd Fix import syntax 2024-07-12 01:19:34 +03:00
kwaroran 3b0e07d093 move decorators effect right before constant 2024-07-12 06:43:19 +09:00
kwaroran 33347f1c7c make decorator only parse once 2024-07-12 06:42:06 +09:00
kwaroran 2d0ad688f1 fix world info decorator fallback 2024-07-12 06:30:35 +09:00
Wolfsblvt f2089ed994 Linting in world-info.js 2024-07-11 23:23:26 +02:00
kwaroran c3185d34c7 Add v3 writing and decorators 2024-07-11 15:11:35 +09:00
Wolfsblvt 03a8b14a93 Change min activation scan to full increased range 2024-07-06 20:00:27 +02:00
Cohee 6dbbf89d65 #2482 Fix embedded content confirmation 2024-07-06 16:55:57 +03:00
Cohee c6e612f15a Add WI prefix to timed effect logs 2024-07-06 15:26:45 +03:00
Cohee 9327ee4b8e Log which entries actually end in the prompt 2024-07-06 15:07:02 +03:00
Cohee 34d6cdfbcc Merge branch 'staging' into wi-processing-refactoring 2024-07-06 14:58:48 +03:00
Wolfsblvt ff23808d3b Add WI toggle to include/exclude names in scanning 2024-07-06 03:23:02 +02:00
Wolfsblvt 5e89dc35e3 Fix min activations not checking recursion 2024-07-06 02:44:26 +02:00
Wolfsblvt 02989a9a78 Reduce nesting and simply WI check loop 2024-07-06 02:35:41 +02:00
Wolfsblvt 0b9431cd9a Remove double-loop nesting of WI key processing 2024-07-06 01:53:26 +02:00
Cohee b5f77a2164 Fix ESLint squigglies 2024-07-06 00:42:49 +03:00
Wolfsblvt e7382e184d Reduce log amount 2024-07-05 22:50:20 +02:00
Wolfsblvt 831773216a Refactor probability checking conditions
- This changes the flow and checking of the conditions on probability roles. Bit "bigger" refactoring
2024-07-05 21:59:31 +02:00
Wolfsblvt f7abd3f5d9 Break out on result of secondary key checks 2024-07-05 21:16:43 +02:00
Wolfsblvt 6da36c630e No need to get scan text for each key 2024-07-05 20:52:24 +02:00
Wolfsblvt 56c6955f23 WI entries with world name obj format
- Changed format of WI entry objects for debugging purposes. Moved the world name right after uid, so it looks better in debugger
2024-07-05 20:50:30 +02:00
Wolfsblvt dfa2236fba Refactor WI log messages
- This should only be changes to logging messages, and splitting some if into multiple blocks. No actual code/flow changes
2024-07-05 20:49:17 +02:00
Cohee be8eb19139 Fix enum value
I wasted @Wolfsblvt half an hour
2024-07-05 01:01:55 +03:00
Cohee 35b7fc3186 Ignore recurse buffer for min activation steps 2024-07-04 00:28:34 +03:00
Cohee 47b679202f Introduce a proper initial state 2024-07-04 00:18:46 +03:00
Cohee df67a7cdc4 #2467 Fix min activations for non-recursable entries 2024-07-03 23:42:27 +03:00
Cohee 79b8dc98eb Fix performance of WI editor when adding a new entry 2024-06-27 10:04:49 +00:00
Cohee 886b6fee64 Add WI entry delay 2024-06-26 22:43:30 +03:00
Wolfsblvt cd9013cf73 Update some WI confirm/input popups to new popup 2024-06-26 05:29:08 +02:00
Cohee 4b58a822db Fix off-by-one in timed effects. Add protected status 2024-06-24 11:51:04 +00:00
Cohee b89afe6d13 Ignore advancement requirement for immediately set cooldown 2024-06-24 03:13:27 +03:00
Cohee 8b9afff30d Generalize onEnded callbacks 2024-06-24 02:33:51 +03:00
Cohee 893f4f3ed6 Use raw metadata for set effect command 2024-06-24 01:28:37 +03:00
Cohee 14879af678 Add format variable to get timed effect command 2024-06-24 01:20:39 +03:00
Cohee 80496db482 Remove resolveVariable calls 2024-06-24 01:08:24 +03:00
Cohee 3b03561d27 Merge branch 'staging' into timed-wi 2024-06-24 01:07:44 +03:00
Cohee 7e3e75875d Remove undocumented calls to resolveVariable in WI slash commands 2024-06-24 01:07:24 +03:00
Cohee 66210e9c0f Add command for checking WI state 2024-06-23 21:35:31 +03:00
Cohee 8b5224e274 Add slash command for setting sticky/cooldown. Normalize naming: timed event => timed effect 2024-06-23 21:18:18 +03:00
Cohee 5db2254548 Generalize effect methods 2024-06-23 20:34:07 +03:00
Cohee d1dd3a5433 Merge branch 'staging' into timed-wi 2024-06-23 20:24:53 +03:00
Cohee 59e1f9cca1 Accept JSON-serialized string arrays for /setentryfield. Return JSON lists in /getentryfield 2024-06-23 19:43:56 +03:00
Cohee 3dcb4dee59 Pre-cache related WI entries on chat load 2024-06-23 18:50:40 +03:00
Cohee 39362fd566 Fix some type errors 2024-06-23 18:41:49 +03:00
Cohee 5de80f4c6d Merge branch 'staging' into timed-wi 2024-06-23 18:31:40 +03:00
Cohee e736283785 Return cache to WI 2024-06-23 16:24:33 +03:00
Cohee 3e27f0213a Fix cooldown debug log 2024-06-23 01:58:18 +03:00
Cohee 9ec8aa3bf9 Fix JSDocs 2024-06-23 01:53:45 +03:00
Cohee 7875a65b44 Kinda misleading comment 2024-06-23 01:52:10 +03:00
Cohee b513043e4a Prevent sticky from using probability 2024-06-22 15:04:49 +03:00
Cohee 0fe19bca47 Non-static map. Better typing. 2024-06-22 14:56:46 +03:00
Cohee b4559d3fd8 Use WeakMap for WI cache 2024-06-22 14:43:15 +03:00
Cohee d02fbbb42f Change type of timed events metadata 2024-06-22 03:54:54 +03:00
Cohee 37930caade Refactor timed events funcs 2024-06-22 03:15:13 +03:00
Wolfsblvt 48077d200b More slash command enums (nearly done) 2024-06-21 20:04:55 +02:00
Cohee 30765550c8 Place sticky + cooldown entry on cooldown when unstuck 2024-06-21 20:50:18 +03:00
Cohee 9c3cad2df2 Fix sticky/cooldown interaction. Add icons 2024-06-21 02:42:15 +03:00
Cohee ab7b07ba28 Add sticky and cooldown for timed WI entries 2024-06-21 00:53:00 +03:00
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