sillytavern 1.11.6 → 1.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/.github/ISSUE_TEMPLATE/bug-report.yml +11 -11
  2. package/.github/ISSUE_TEMPLATE/feature-request.yml +7 -7
  3. package/.github/labeler.yml +18 -0
  4. package/.github/readme.md +85 -58
  5. package/.github/workflows/docker-publish.yml +53 -20
  6. package/.github/workflows/labeler.yml +19 -0
  7. package/Start.bat +1 -0
  8. package/Update-Instructions.txt +3 -0
  9. package/UpdateForkAndStart.bat +103 -0
  10. package/default/content/index.json +156 -0
  11. package/{public → default/content/presets}/context/Adventure.json +2 -0
  12. package/{public → default/content/presets}/context/Alpaca-Roleplay.json +9 -3
  13. package/{public → default/content/presets}/context/Alpaca-Single-Turn.json +1 -0
  14. package/default/content/presets/context/Alpaca.json +12 -0
  15. package/{public → default/content/presets}/context/ChatML.json +8 -2
  16. package/{public → default/content/presets}/context/Default.json +9 -3
  17. package/{public → default/content/presets}/context/DreamGen Role-Play V1.json +1 -0
  18. package/{public → default/content/presets}/context/Libra-32B.json +7 -1
  19. package/{public → default/content/presets}/context/Lightning 1.1.json +8 -2
  20. package/default/content/presets/context/Llama 2 Chat.json +12 -0
  21. package/{public → default/content/presets}/context/Minimalist.json +9 -3
  22. package/{public → default/content/presets}/context/Mistral.json +9 -3
  23. package/{public → default/content/presets}/context/NovelAI.json +8 -2
  24. package/{public → default/content/presets}/context/OldDefault.json +7 -1
  25. package/default/content/presets/context/Pygmalion.json +12 -0
  26. package/{public → default/content/presets}/context/Story.json +7 -1
  27. package/{public/context/Pygmalion.json → default/content/presets/context/Synthia.json} +8 -2
  28. package/{public → default/content/presets}/context/simple-proxy-for-tavern.json +9 -3
  29. package/{public → default/content/presets}/instruct/Adventure.json +8 -2
  30. package/default/content/presets/instruct/Alpaca-Roleplay.json +24 -0
  31. package/{public → default/content/presets}/instruct/Alpaca-Single-Turn.json +12 -5
  32. package/{public → default/content/presets}/instruct/Alpaca.json +13 -6
  33. package/default/content/presets/instruct/ChatML.json +24 -0
  34. package/{public → default/content/presets}/instruct/DreamGen Role-Play V1.json +14 -8
  35. package/{public → default/content/presets}/instruct/Koala.json +13 -6
  36. package/{public → default/content/presets}/instruct/Libra-32B.json +15 -8
  37. package/{public → default/content/presets}/instruct/Lightning 1.1.json +13 -7
  38. package/default/content/presets/instruct/Llama 2 Chat.json +24 -0
  39. package/{public → default/content/presets}/instruct/Metharme.json +13 -6
  40. package/{public → default/content/presets}/instruct/Mistral.json +16 -9
  41. package/{public → default/content/presets}/instruct/OpenOrca-OpenChat.json +15 -8
  42. package/{public → default/content/presets}/instruct/Pygmalion.json +13 -6
  43. package/{public → default/content/presets}/instruct/Story.json +8 -2
  44. package/{public → default/content/presets}/instruct/Synthia.json +16 -9
  45. package/{public → default/content/presets}/instruct/Vicuna 1.0.json +13 -6
  46. package/{public → default/content/presets}/instruct/Vicuna 1.1.json +13 -6
  47. package/{public → default/content/presets}/instruct/WizardLM-13B.json +13 -6
  48. package/{public → default/content/presets}/instruct/WizardLM.json +13 -6
  49. package/{public → default/content/presets}/instruct/simple-proxy-for-tavern.json +16 -9
  50. package/default/content/presets/openai/Default.json +245 -15
  51. package/default/settings.json +11 -6
  52. package/package.json +2 -2
  53. package/public/context/.gitkeep +0 -0
  54. package/public/css/logprobs.css +8 -0
  55. package/public/css/mobile-styles.css +9 -2
  56. package/public/css/promptmanager.css +14 -3
  57. package/public/css/st-tailwind.css +9 -0
  58. package/public/css/tags.css +93 -4
  59. package/public/css/toggle-dependent.css +98 -37
  60. package/public/img/cohere.svg +12 -0
  61. package/public/index.html +539 -177
  62. package/public/instruct/.gitkeep +0 -0
  63. package/public/lib/eventemitter.js +16 -2
  64. package/public/locales/ar-sa.json +60 -2
  65. package/public/locales/de-de.json +921 -0
  66. package/public/locales/es-es.json +905 -149
  67. package/public/locales/fr-fr.json +59 -3
  68. package/public/locales/is-is.json +58 -2
  69. package/public/locales/it-it.json +805 -643
  70. package/public/locales/ja-jp.json +59 -3
  71. package/public/locales/ko-kr.json +835 -471
  72. package/public/locales/lang.json +15 -14
  73. package/public/locales/nl-nl.json +61 -5
  74. package/public/locales/pt-pt.json +791 -628
  75. package/public/locales/ru-ru.json +86 -1
  76. package/public/locales/uk-ua.json +58 -1
  77. package/public/locales/vi-vn.json +59 -3
  78. package/public/locales/zh-cn.json +715 -350
  79. package/public/script.js +864 -369
  80. package/public/scripts/BulkEditOverlay.js +290 -67
  81. package/public/scripts/PromptManager.js +83 -23
  82. package/public/scripts/RossAscends-mods.js +87 -104
  83. package/public/scripts/authors-note.js +36 -3
  84. package/public/scripts/bulk-edit.js +43 -34
  85. package/public/scripts/chats.js +82 -0
  86. package/public/scripts/extensions/assets/index.js +54 -1
  87. package/public/scripts/extensions/assets/style.css +1 -1
  88. package/public/scripts/extensions/assets/window.html +5 -0
  89. package/public/scripts/extensions/caption/index.js +13 -5
  90. package/public/scripts/extensions/expressions/index.js +18 -1
  91. package/public/scripts/extensions/gallery/index.js +2 -2
  92. package/public/scripts/extensions/memory/index.js +294 -93
  93. package/public/scripts/extensions/memory/settings.html +136 -0
  94. package/public/scripts/extensions/memory/style.css +11 -1
  95. package/public/scripts/extensions/quick-reply/html/qrEditor.html +10 -2
  96. package/public/scripts/extensions/quick-reply/index.js +1 -1
  97. package/public/scripts/extensions/quick-reply/src/QuickReply.js +15 -0
  98. package/public/scripts/extensions/quick-reply/src/QuickReplySet.js +2 -2
  99. package/public/scripts/extensions/regex/engine.js +1 -1
  100. package/public/scripts/extensions/stable-diffusion/index.js +208 -11
  101. package/public/scripts/extensions/stable-diffusion/settings.html +37 -7
  102. package/public/scripts/extensions/token-counter/index.js +4 -2
  103. package/public/scripts/extensions/tts/index.js +20 -1
  104. package/public/scripts/extensions/tts/novel.js +2 -0
  105. package/public/scripts/extensions.js +1 -1
  106. package/public/scripts/filters.js +74 -12
  107. package/public/scripts/group-chats.js +61 -15
  108. package/public/scripts/instruct-mode.js +206 -54
  109. package/public/scripts/kai-settings.js +2 -2
  110. package/public/scripts/logprobs.js +9 -4
  111. package/public/scripts/macros.js +88 -30
  112. package/public/scripts/nai-settings.js +2 -2
  113. package/public/scripts/openai.js +316 -74
  114. package/public/scripts/personas.js +2 -9
  115. package/public/scripts/power-user.js +122 -16
  116. package/public/scripts/preset-manager.js +1 -1
  117. package/public/scripts/secrets.js +4 -0
  118. package/public/scripts/slash-commands.js +80 -26
  119. package/public/scripts/sse-stream.js +215 -0
  120. package/public/scripts/tags.js +800 -130
  121. package/public/scripts/templates/macros.html +15 -9
  122. package/public/scripts/textgen-settings.js +93 -69
  123. package/public/scripts/utils.js +50 -4
  124. package/public/scripts/world-info.js +85 -50
  125. package/public/settings.json +11 -6
  126. package/public/style.css +224 -67
  127. package/public/themes/.gitkeep +0 -0
  128. package/server.js +83 -206
  129. package/src/additional-headers.js +23 -34
  130. package/src/constants.js +2 -1
  131. package/src/endpoints/avatars.js +62 -0
  132. package/src/endpoints/backends/chat-completions.js +151 -2
  133. package/src/endpoints/backgrounds.js +1 -1
  134. package/src/endpoints/characters.js +7 -2
  135. package/src/endpoints/content-manager.js +5 -1
  136. package/src/endpoints/images.js +94 -0
  137. package/src/endpoints/moving-ui.js +22 -0
  138. package/src/endpoints/novelai.js +4 -3
  139. package/src/endpoints/quick-replies.js +36 -0
  140. package/src/endpoints/secrets.js +2 -0
  141. package/src/endpoints/stable-diffusion.js +73 -0
  142. package/src/endpoints/themes.js +41 -0
  143. package/src/endpoints/tokenizers.js +3 -3
  144. package/src/middleware/whitelist.js +31 -25
  145. package/src/nomicai-vectors.js +1 -1
  146. package/src/polyfill.js +8 -0
  147. package/src/{endpoints/prompt-converters.js → prompt-converters.js} +129 -43
  148. package/src/util.js +16 -4
  149. package/public/instruct/Alpaca-Roleplay.json +0 -17
  150. package/public/instruct/ChatML.json +0 -17
  151. package/public/instruct/Llama 2 Chat.json +0 -17
  152. /package/public/characters/{README.md → .gitkeep} +0 -0
  153. /package/public/chats/{README.md → .gitkeep} +0 -0
  154. /package/public/group chats/{README.md → .gitkeep} +0 -0
  155. /package/public/groups/{README.md → .gitkeep} +0 -0
@@ -1,7 +1,7 @@
1
1
  name: Bug Report 🐛
2
2
  description: Report something that's not working the intended way. Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!
3
3
  title: '[BUG] <title>'
4
- labels: ['bug']
4
+ labels: ['🐛 Bug']
5
5
  body:
6
6
  - type: dropdown
7
7
  id: environment
@@ -9,11 +9,11 @@ body:
9
9
  label: Environment
10
10
  description: Where are you running SillyTavern?
11
11
  options:
12
- - Self-Hosted (Bare Metal)
13
- - Self-Hosted (Docker)
14
- - Android (Termux)
15
- - Cloud Service (Static)
16
- - Other (Specify below)
12
+ - 🪟 Windows
13
+ - 🐧 Linux
14
+ - 📱 Termux
15
+ - 🐋 Docker
16
+ - 🍎 Mac
17
17
  validations:
18
18
  required: true
19
19
 
@@ -69,16 +69,16 @@ body:
69
69
  required: false
70
70
 
71
71
  - type: checkboxes
72
- id: idiot-check
72
+ id: user-check
73
73
  attributes:
74
74
  label: Please tick the boxes
75
- description: Before submitting, please ensure that
75
+ description: Before submitting, please ensure that you have completed the following checklist
76
76
  options:
77
- - label: You have explained the issue clearly, and included all relevant info
77
+ - label: I have explained the issue clearly, and I included all relevant info
78
78
  required: true
79
- - label: You've checked that this [issue hasn't already been raised](https://github.com/SillyTavern/SillyTavern/issues?q=is%3Aissue)
79
+ - label: I have checked that this [issue hasn't already been raised](https://github.com/SillyTavern/SillyTavern/issues?q=is%3Aissue)
80
80
  required: true
81
- - label: You've checked the [docs](https://docs.sillytavern.app/) ![important](https://img.shields.io/badge/Important!-F6094E)
81
+ - label: I have checked the [docs](https://docs.sillytavern.app/) ![important](https://img.shields.io/badge/Important!-F6094E)
82
82
  required: true
83
83
 
84
84
  - type: markdown
@@ -1,7 +1,7 @@
1
1
  name: Feature Request ✨
2
2
  description: Suggest an idea for future development of this project
3
3
  title: '[FEATURE_REQUEST] <title>'
4
- labels: ['enhancement']
4
+ labels: ['🦄 Feature Request']
5
5
 
6
6
  body:
7
7
 
@@ -15,7 +15,7 @@ body:
15
15
  - 'No'
16
16
  - 'Yes'
17
17
  validations:
18
- required: false
18
+ required: true
19
19
 
20
20
  # Field 2 - Is it bug-related
21
21
  - type: textarea
@@ -67,16 +67,16 @@ body:
67
67
  validations:
68
68
  required: true
69
69
 
70
- # Field 7 - Can the user implement
70
+ # Field 7 - Can the user user test in staging
71
71
  - type: dropdown
72
- id: canImplement
72
+ id: canTestStaging
73
73
  attributes:
74
- label: Is this something you would be keen to implement?
75
- description: Are you raising this ticket in order to get an issue number for your PR?
74
+ label: Are you willing to test this on staging/unstable branch if this is implemented?
75
+ description: Otherwise you'll need to wait until the next stable release after the feature is developed.
76
76
  options:
77
77
  - 'No'
78
78
  - 'Maybe'
79
- - 'Yes!'
79
+ - 'Yes'
80
80
  validations:
81
81
  required: false
82
82
 
@@ -0,0 +1,18 @@
1
+ # Add/remove 'critical' label if issue contains the words 'urgent' or 'critical'
2
+ #critical:
3
+ # - '(critical|urgent)'
4
+
5
+ 🪟 Windows:
6
+ - '(🪟 Windows)'
7
+
8
+ 🍎 Mac:
9
+ - '(🍎 Mac)'
10
+
11
+ 🐋 Docker:
12
+ - '(🐋 Docker)'
13
+
14
+ 📱 Termux:
15
+ - '(📱 Termux)'
16
+
17
+ 🐧 Linux:
18
+ - '(🐧 Linux)'
package/.github/readme.md CHANGED
@@ -1,6 +1,8 @@
1
+ <a name="readme-top"></a>
2
+
1
3
  English | [中文](readme-zh_cn.md) | [日本語](readme-ja_jp.md)
2
4
 
3
- ![SillyTavern-Banner](https://github.com/SillyTavern/SillyTavern/assets/18619528/c2be4c3f-aada-4f64-87a3-ae35a68b61a4)
5
+ ![][cover]
4
6
 
5
7
  Mobile-friendly layout, Multi-API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), VN-like Waifu Mode, Stable Diffusion, TTS, WorldInfo (lorebooks), customizable UI, auto-translate, and more prompt options than you'd ever want or need + ability to install third-party extensions.
6
8
 
@@ -22,6 +24,11 @@ SillyTavern is a user interface you can install on your computer (and Android ph
22
24
 
23
25
  SillyTavern is a fork of TavernAI 1.2.8 which is under more active development and has added many major features. At this point, they can be thought of as completely independent programs.
24
26
 
27
+ ## Screenshots
28
+
29
+ <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/e902c7a2-45a6-4415-97aa-c59c597669c1">
30
+ <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/f8a79c47-4fe9-4564-9e4a-bf247ed1c961">
31
+
25
32
  ### Branches
26
33
 
27
34
  SillyTavern is being developed using a two-branch system to ensure a smooth experience for all users.
@@ -31,36 +38,25 @@ SillyTavern is being developed using a two-branch system to ensure a smooth expe
31
38
 
32
39
  If you're not familiar with using the git CLI or don't understand what a branch is, don't worry! The release branch is always the preferable option for you.
33
40
 
34
- ### What do I need other than Tavern?
35
-
36
- On its own Tavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](https://docs.sillytavern.app/usage/faq/).
37
-
38
- ### Do I need a powerful PC to run Tavern?
41
+ ### What do I need other than SillyTavern?
39
42
 
40
- Since Tavern is only a user interface, it has tiny hardware requirements, it will run on anything. It's the AI system backend that needs to be powerful.
43
+ On its own SillyTavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](https://docs.sillytavern.app/usage/faq/).
41
44
 
42
- ## Mobile support
45
+ ### Do I need a powerful PC to run SillyTavern?
43
46
 
44
- > **Note**
45
-
46
- > **This fork can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
47
-
48
- <https://rentry.org/STAI-Termux>
47
+ Since SillyTavern is only a user interface, it has tiny hardware requirements, it will run on anything. It's the AI system backend that needs to be powerful.
49
48
 
50
49
  ## Questions or suggestions?
51
50
 
52
51
  ### We now have a community Discord server
53
52
 
54
- Get support, share favorite characters and prompts:
55
-
56
- ### [Join](https://discord.gg/sillytavern)
57
-
58
- ***
53
+ | [![][discord-shield-badge]][discord-link] | [Join our Discord community!](https://discord.gg/sillytavern) Get support, share favorite characters and prompts. |
54
+ | :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
59
55
 
60
- Get in touch with the developers directly:
56
+ Or get in touch with the developers directly:
61
57
 
62
58
  * Discord: cohee or rossascends
63
- * Reddit: /u/RossAscends or /u/sillylossy
59
+ * Reddit: [/u/RossAscends](https://www.reddit.com/user/RossAscends/) or [/u/sillylossy](https://www.reddit.com/user/sillylossy/)
64
60
  * [Post a GitHub issue](https://github.com/SillyTavern/SillyTavern/issues)
65
61
 
66
62
  ## This version includes
@@ -124,61 +120,88 @@ A full list of included extensions and tutorials on how to use them can be found
124
120
  * Customizable page colors for 'main text', 'quoted text', and 'italics text'.
125
121
  * Customizable UI background color and blur amount
126
122
 
127
- ## Installation
128
-
129
- *NOTE: This software is intended for local install purposes, and has not been thoroughly tested on a colab or other cloud notebook service.*
130
-
131
- > **Warning**
132
-
133
- > DO NOT INSTALL INTO ANY WINDOWS CONTROLLED FOLDER (Program Files, System32, etc).
123
+ # Installation
134
124
 
135
- > DO NOT RUN START.BAT WITH ADMIN PERMISSIONS
125
+ > \[!WARNING]
126
+ > * DO NOT INSTALL INTO ANY WINDOWS CONTROLLED FOLDER (Program Files, System32, etc).
127
+ > * DO NOT RUN START.BAT WITH ADMIN PERMISSIONS
128
+ > * INSTALLATION ON WINDOWS 7 IS IMPOSSIBLE AS IT CAN NOT RUN NODEJS 18.16
136
129
 
137
- ### Windows
138
-
139
- Installing via Git (recommended for easy updating)
140
-
141
- An easy-to-follow guide with pretty pictures:
142
- <https://docs.sillytavern.app/installation/windows/>
130
+ ## 🪟 Windows
143
131
 
132
+ ## Installing via Git
144
133
  1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
145
- 2. Install [GitHub Desktop](https://central.github.com/deployments/desktop/desktop/latest/win32)
134
+ 2. Install [Git for Windows](https://gitforwindows.org/)
146
135
  3. Open Windows Explorer (`Win+E`)
147
136
  4. Browse to or Create a folder that is not controlled or monitored by Windows. (ex: C:\MySpecialFolder\)
148
137
  5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
149
138
  6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter:
150
139
 
151
- * for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
152
- * for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
140
+ - for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
141
+ - for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
153
142
 
154
143
  7. Once everything is cloned, double-click `Start.bat` to make NodeJS install its requirements.
155
144
  8. The server will then start, and SillyTavern will pop up in your browser.
156
145
 
157
- Installing via ZIP download (discouraged)
146
+ ## Installing via SillyTavern Launcher
147
+ 1. Install [Git for Windows](https://gitforwindows.org/)
148
+ 2. Open Windows Explorer (`Win+E`) and make or choose a folder where you wanna install the launcher to
149
+ 3. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
150
+ 4. When you see a black box, insert the following command: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
151
+ 5. Double-click on `installer.bat` and choose what you wanna install
152
+ 6. After installation double-click on `launcher.bat`
158
153
 
154
+ ## Installing via GitHub Desktop
155
+ (This allows git usage **only** in GitHub Desktop, if you want to use `git` on the command line too, you also need to install [Git for Windows](https://gitforwindows.org/))
159
156
  1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
160
- 2. Download the zip from this GitHub repo. (Get the `Source code (zip)` from [Releases](https://github.com/SillyTavern/SillyTavern/releases/latest))
161
- 3. Unzip it into a folder of your choice
162
- 4. Run `Start.bat` by double-clicking or in a command line.
163
- 5. Once the server has prepared everything for you, it will open a tab in your browser.
157
+ 2. Install [GitHub Desktop](https://central.github.com/deployments/desktop/desktop/latest/win32)
158
+ 3. After installing GitHub Desktop, click on `Clone a repository from the internet....` (Note: You **do NOT need** to create a GitHub account for this step)
159
+ 4. On the menu, click the URL tab, enter this URL `https://github.com/SillyTavern/SillyTavern`, and click Clone. You can change the Local path to change where SillyTavern is going to be downloaded.
160
+ 6. To open SillyTavern, use Windows Explorer to browse into the folder where you cloned the repository. By default, the repository will be cloned here: `C:\Users\[Your Windows Username]\Documents\GitHub\SillyTavern`
161
+ 7. Double-click on the `start.bat` file. (Note: the `.bat` part of the file name might be hidden by your OS, in that case, it will look like a file called "`Start`". This is what you double-click to run SillyTavern)
162
+ 8. After double-clicking, a large black command console window should open and SillyTavern will begin to install what it needs to operate.
163
+ 9. After the installation process, if everything is working, the command console window should look like this and a SillyTavern tab should be open in your browser:
164
+ 10. Connect to any of the [supported APIs](https://docs.sillytavern.app/usage/api-connections/) and start chatting!
165
+
166
+ ## 🐧 Linux & 🍎 MacOS
167
+
168
+ For MacOS / Linux all of these will be done in a Terminal.
169
+
170
+ 1. Install git and nodeJS (the method for doing this will vary depending on your OS)
171
+ 2. Clone the repo
164
172
 
165
- ### Linux
173
+ - for Release Branch: `git clone https://github.com/SillyTavern/SillyTavern -b release`
174
+ - for Staging Branch: `git clone https://github.com/SillyTavern/SillyTavern -b staging`
166
175
 
167
- #### Unofficial Debian/Ubuntu PKGBUILD
176
+ 3. `cd SillyTavern` to navigate into the install folder.
177
+ 4. Run the `start.sh` script with one of these commands:
168
178
 
169
- > **This installation method is unofficial and not supported by the project. Report any issues to the PKGBUILD maintainer.**
170
- > The method is intended for Debian-based distributions (Ubuntu, Mint, etc).
179
+ - `./start.sh`
180
+ - `bash start.sh`
171
181
 
172
- 1. Install [makedeb](https://www.makedeb.org/).
173
- 2. Ensure you have Node.js v18 or higher installed by running `node -v`. If you need to upgrade, you can install a [node.js repo](https://mpr.makedeb.org/packages/nodejs-repo) (you'll might need to edit the version inside the PKGBUILD). As an alternative, install and configure [nvm](https://mpr.makedeb.org/packages/nvm) to manage multiple node.js installations. Finally, you can [install node.js manually](https://nodejs.org/en/download), but you will need to update the PATH variable of your environment.
174
- 3. Now build the [sillytavern package](https://mpr.makedeb.org/packages/sillytavern). The build needs to run with the correct node.js version.
182
+ ## Installing via SillyTavern Launcher
175
183
 
176
- #### Manual
184
+ ### For Linux users
185
+ 1. Open your favorite terminal and install git
186
+ 2. Download Sillytavern Launcher with: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
187
+ 3. Navigate to the SillyTavern-Launcher with: `cd SillyTavern-Launcher`
188
+ 4. Start the install launcher with: `chmod +x install.sh && ./install.sh` and choose what you wanna install
189
+ 5. After installation start the launcher with: `chmod +x launcher.sh && ./launcher.sh`
190
+
191
+ ### For Mac users
192
+ 1. Open a terminal and install brew with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
193
+ 2. Then install git with: `brew install git`
194
+ 3. Download Sillytavern Launcher with: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
195
+ 4. Navigate to the SillyTavern-Launcher with: `cd SillyTavern-Launcher`
196
+ 5. Start the install launcher with: `chmod +x install.sh && ./install.sh` and choose what you wanna install
197
+ 6. After installation start the launcher with: `chmod +x launcher.sh && ./launcher.sh`
198
+
199
+ ## 📱 Mobile - Installing via termux
200
+
201
+ > \[!NOTE]
202
+ > **SillyTavern can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
203
+ > * <https://rentry.org/STAI-Termux>
177
204
 
178
- 1. Ensure you have Node.js v18 or higher (the latest [LTS version](https://nodejs.org/en/download/) is recommended) installed by running `node -v`.
179
- Alternatively, use the [Node Version Manager](https://github.com/nvm-sh/nvm#installing-and-updating) script to quickly and easily manage your Node installations.
180
- 2. Run the `start.sh` script.
181
- 3. Enjoy.
182
205
 
183
206
  ## API keys management
184
207
 
@@ -222,7 +245,7 @@ or
222
245
  CIDR masks are also accepted (eg. 10.0.0.0/24).
223
246
 
224
247
  * Save the `whitelist.txt` file.
225
- * Restart your TAI server.
248
+ * Restart your ST server.
226
249
 
227
250
  Now devices which have the IP specified in the file will be able to connect.
228
251
 
@@ -293,10 +316,7 @@ You can find them archived here:
293
316
 
294
317
  <https://files.catbox.moe/1xevnc.zip>
295
318
 
296
- ## Screenshots
297
319
 
298
- <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/e902c7a2-45a6-4415-97aa-c59c597669c1">
299
- <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern/assets/61471128/f8a79c47-4fe9-4564-9e4a-bf247ed1c961">
300
320
 
301
321
 
302
322
  ## License and credits
@@ -327,3 +347,10 @@ GNU Affero General Public License for more details.**
327
347
  * Korean translation by @doloroushyeonse
328
348
  * k_euler_a support for Horde by <https://github.com/Teashrock>
329
349
  * Chinese translation by [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
350
+
351
+ <!-- LINK GROUP -->
352
+ [back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
353
+ [cover]: https://github.com/SillyTavern/SillyTavern/assets/18619528/c2be4c3f-aada-4f64-87a3-ae35a68b61a4
354
+ [discord-link]: https://discord.gg/sillytavern
355
+ [discord-shield]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
356
+ [discord-shield-badge]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
@@ -1,45 +1,78 @@
1
1
  # This workflow will publish a docker image for every full release to the GitHub package repository
2
2
 
3
- name: Create Docker Image on Release
3
+ name: Create Docker Image (Release and Staging)
4
4
 
5
5
  on:
6
6
  release:
7
7
  # Allow pre-releases
8
8
  types: [published]
9
+ schedule:
10
+ # Build the staging image everyday at 00:00 UTC
11
+ - cron: "0 0 * * *"
9
12
 
10
13
  env:
11
14
  # This should allow creation of docker images even in forked repositories
12
- # Image name may not contain uppercase characters, so we can not use the repository name
13
- # Creates a string like: ghcr.io/SillyTavern/sillytavern
14
- image_name: ghcr.io/sillytavern/sillytavern
15
+ IMAGE_NAME: ${{ github.repository }}
16
+ REGISTRY: ghcr.io
15
17
 
16
18
  jobs:
17
-
18
19
  build:
19
-
20
20
  runs-on: ubuntu-latest
21
21
 
22
22
  steps:
23
- - name: Checkout
23
+ # Using the following workaround because currently GitHub Actions
24
+ # does not support logical AND/OR operations on triggers
25
+ # It's currently not possible to have `branches` under the `schedule` trigger
26
+ - name: Checkout the release branch
27
+ if: ${{ github.event_name == 'release' }}
24
28
  uses: actions/checkout@v3
29
+ with:
30
+ ref: "release"
25
31
 
26
- # Build docker image using dockerfile and tag it with branch name
27
- # Assumes branch name is the version number
28
- - name: Build the Docker image
29
- run: |
30
- docker build . --file Dockerfile --tag $image_name:${{ github.ref_name }}
32
+ - name: Checkout the staging branch
33
+ if: ${{ github.event_name == 'schedule' }}
34
+ uses: actions/checkout@v3
35
+ with:
36
+ ref: "staging"
37
+
38
+ # Setting up QEMU for multi-arch image build
39
+ - name: Set up QEMU
40
+ uses: docker/setup-qemu-action@v3
41
+
42
+ - name: Set up Docker Buildx
43
+ uses: docker/setup-buildx-action@v3
44
+
45
+ - name: Extract metadata (tags, labels) for the image
46
+ uses: docker/metadata-action@v5.5.1
47
+ id: metadata
48
+ with:
49
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
50
+ tags: ${{ github.ref_name }}
31
51
 
32
52
  # Login into package repository as the person who created the release
33
- - name: Login to GitHub Container Registry
34
- uses: docker/login-action@v1
53
+ - name: Log in to the Container registry
54
+ uses: docker/login-action@v3
35
55
  with:
36
- registry: ghcr.io
56
+ registry: ${{ env.REGISTRY }}
37
57
  username: ${{ github.actor }}
38
58
  password: ${{ secrets.GITHUB_TOKEN }}
39
59
 
40
- # Assumes release is the latest and marks image as such
41
- - name: Docker Tag and Push
60
+ # Build docker image using dockerfile for amd64 and arm64
61
+ # Tag it with branch name
62
+ # Assumes branch name is the version number
63
+ - name: Build and push
64
+ uses: docker/build-push-action@v5.3.0
65
+ with:
66
+ context: .
67
+ platforms: linux/amd64,linux/arm64
68
+ file: Dockerfile
69
+ push: true
70
+ tags: ${{ steps.metadata.outputs.tags }}
71
+ labels: ${{ steps.metadata.outputs.labels }}
72
+
73
+ # If the workflow is triggered by a release, marks and push the image as such
74
+ - name: Docker tag latest and push
75
+ if: ${{ github.event_name == 'release' }}
42
76
  run: |
43
- docker tag $image_name:${{ github.ref_name }} $image_name:latest
44
- docker push $image_name:${{ github.ref_name }}
45
- docker push $image_name:latest
77
+ docker tag $IMAGE_NAME:${{ github.ref_name }} $IMAGE_NAME:latest
78
+ docker push $IMAGE_NAME:latest
@@ -0,0 +1,19 @@
1
+ name: "Issue Labeler"
2
+ on:
3
+ issues:
4
+ types: [opened, edited]
5
+
6
+ permissions:
7
+ issues: write
8
+ contents: read
9
+
10
+ jobs:
11
+ triage:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: github/issue-labeler@v3.4
15
+ with:
16
+ configuration-path: .github/labeler.yml
17
+ # not-before: 2020-01-15T02:54:32Z # optional and will result in any issues prior to this timestamp to be ignored.
18
+ enable-versioned-regex: 0
19
+ repo-token: ${{ github.token }}
package/Start.bat CHANGED
@@ -1,3 +1,4 @@
1
+ @echo off
1
2
  pushd %~dp0
2
3
  set NODE_ENV=production
3
4
  call npm install --no-audit --no-fund --quiet --omit=dev
@@ -22,6 +22,9 @@ You can also try running the 'UpdateAndStart.bat' file, which will almost do the
22
22
  Alternatively, if the command prompt gives you problems (and you have GitHub Desktop installed), you can use the 'Repository' menu and select 'Pull'.
23
23
  The updates are applied automatically and safely.
24
24
 
25
+ If you are a developer and use a fork of ST or switch branches regularly, you can use the 'UpdateForkAndStart.bat', which works similarly to 'UpdateAndStart.bat',
26
+ but automatically pulls changes into your fork and handles switched branches gracefully by asking if you want to switch back.
27
+
25
28
  Method 2 - ZIP
26
29
 
27
30
  If you insist on installing via a zip, here is the tedious process for doing the update:
@@ -0,0 +1,103 @@
1
+ @echo off
2
+ @setlocal enabledelayedexpansion
3
+ pushd %~dp0
4
+
5
+ echo Checking Git installation
6
+ git --version > nul 2>&1
7
+ if %errorlevel% neq 0 (
8
+ echo Git is not installed on this system. Skipping update.
9
+ echo If you installed with a zip file, you will need to download the new zip and install it manually.
10
+ goto end
11
+ )
12
+
13
+ REM Checking current branch
14
+ FOR /F "tokens=*" %%i IN ('git rev-parse --abbrev-ref HEAD') DO SET CURRENT_BRANCH=%%i
15
+ echo Current branch: %CURRENT_BRANCH%
16
+
17
+ REM Checking for automatic branch switching configuration
18
+ set AUTO_SWITCH=
19
+ FOR /F "tokens=*" %%j IN ('git config --local script.autoSwitch') DO SET AUTO_SWITCH=%%j
20
+
21
+ SET TARGET_BRANCH=%CURRENT_BRANCH%
22
+
23
+ if NOT "!AUTO_SWITCH!"=="" (
24
+ if "!AUTO_SWITCH!"=="s" (
25
+ goto autoswitch-staging
26
+ )
27
+ if "!AUTO_SWITCH!"=="r" (
28
+ goto autoswitch-release
29
+ )
30
+
31
+ if "!AUTO_SWITCH!"=="staging" (
32
+ :autoswitch-staging
33
+ echo Auto-switching to staging branch
34
+ git checkout staging
35
+ SET TARGET_BRANCH=staging
36
+ goto update
37
+ )
38
+ if "!AUTO_SWITCH!"=="release" (
39
+ :autoswitch-release
40
+ echo Auto-switching to release branch
41
+ git checkout release
42
+ SET TARGET_BRANCH=release
43
+ goto update
44
+ )
45
+
46
+ echo Auto-switching defined to stay on current branch
47
+ goto update
48
+ )
49
+
50
+ if "!CURRENT_BRANCH!"=="staging" (
51
+ echo Staying on the current branch
52
+ goto update
53
+ )
54
+ if "!CURRENT_BRANCH!"=="release" (
55
+ echo Staying on the current branch
56
+ goto update
57
+ )
58
+
59
+ echo You are not on 'staging' or 'release'. You are on '!CURRENT_BRANCH!'.
60
+ set /p "CHOICE=Do you want to switch to 'staging' (s), 'release' (r), or stay (any other key)? "
61
+ if /i "!CHOICE!"=="s" (
62
+ echo Switching to staging branch
63
+ git checkout staging
64
+ SET TARGET_BRANCH=staging
65
+ goto update
66
+ )
67
+ if /i "!CHOICE!"=="r" (
68
+ echo Switching to release branch
69
+ git checkout release
70
+ SET TARGET_BRANCH=release
71
+ goto update
72
+ )
73
+
74
+ echo Staying on the current branch
75
+
76
+ :update
77
+ REM Checking for 'upstream' remote
78
+ git remote | findstr "upstream" > nul
79
+ if %errorlevel% equ 0 (
80
+ echo Updating and rebasing against 'upstream'
81
+ git fetch upstream
82
+ git rebase upstream/%TARGET_BRANCH% --autostash
83
+ goto install
84
+ )
85
+
86
+ echo Updating and rebasing against 'origin'
87
+ git pull --rebase --autostash origin %TARGET_BRANCH%
88
+
89
+
90
+ :install
91
+ if %errorlevel% neq 0 (
92
+ echo There were errors while updating. Please check manually.
93
+ goto end
94
+ )
95
+
96
+ echo Installing npm packages and starting server
97
+ set NODE_ENV=production
98
+ call npm install --no-audit --no-fund --quiet --omit=dev
99
+ node server.js %*
100
+
101
+ :end
102
+ pause
103
+ popd