Compare commits
1278 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6e86ab07dd | ||
|
89dd4cbf37 | ||
|
0ca880bf60 | ||
|
9eb404a275 | ||
|
b66e589b30 | ||
|
a3031d7986 | ||
|
fde4995ade | ||
|
303520be08 | ||
|
9f1a5f4606 | ||
|
da11ffe874 | ||
|
e8c5ce0669 | ||
|
b6de77935b | ||
|
08d21e9b17 | ||
|
52b64a823d | ||
|
21c064fc5b | ||
|
c91e7dd948 | ||
|
39c97f9b89 | ||
|
1315f0968b | ||
|
e1e0ef8730 | ||
|
2b30555f3a | ||
|
ce92385454 | ||
|
2ff1d600fc | ||
|
1f6a91ab5d | ||
|
3077df40e0 | ||
|
bdc7177b61 | ||
|
db1768e4ca | ||
|
21cefc0864 | ||
|
e626db70a2 | ||
|
ce18b33e73 | ||
|
b3f657bed5 | ||
|
5d74749fd0 | ||
|
f53c77b9d8 | ||
|
1b6e816525 | ||
|
de79cf74c6 | ||
|
847f471ed2 | ||
|
da63c26258 | ||
|
5a8973d12a | ||
|
5c318cd3f3 | ||
|
47f00d3755 | ||
|
32a04422e7 | ||
|
ddc3848b26 | ||
|
5dba4fa448 | ||
|
be2d658a2e | ||
|
7344b63109 | ||
|
e7e8ff06d0 | ||
|
da968e127b | ||
|
1d780feb08 | ||
|
aff4138263 | ||
|
241876be83 | ||
|
8ce2af16fb | ||
|
67d2bb9891 | ||
|
6eb74cb715 | ||
|
4d67d7d748 | ||
|
cee304fe29 | ||
|
2a3e71bf6e | ||
|
d3a7466929 | ||
|
26d506874f | ||
|
4828bd95f3 | ||
|
336674b724 | ||
|
f181d1a847 | ||
|
7149f46c9a | ||
|
2670709237 | ||
|
7fe329b5cf | ||
|
175a91f979 | ||
|
fcc00e0b26 | ||
|
2b50ab398b | ||
|
bf28ae07b3 | ||
|
76b822c627 | ||
|
bb39e852b8 | ||
|
f7d3a1c942 | ||
|
75099d3a22 | ||
|
5c3b799d65 | ||
|
1d6f038601 | ||
|
cba2b54531 | ||
|
d994528548 | ||
|
003066a036 | ||
|
be08e62fc1 | ||
|
a287ccfca2 | ||
|
38792d071b | ||
|
c34150fef0 | ||
|
e98f38b6da | ||
|
1c69ba1ae3 | ||
|
3803714465 | ||
|
fa1d45635b | ||
|
54c772622e | ||
|
1ab674ba28 | ||
|
b3577024f4 | ||
|
7ea560307c | ||
|
cc9eca8427 | ||
|
4e33253a91 | ||
|
b62cbdeebd | ||
|
0c129f6dbe | ||
|
c69c5e07e3 | ||
|
62a14fb74b | ||
|
bbb1a6e578 | ||
|
6b204ada9f | ||
|
889a552629 | ||
|
89e5562494 | ||
|
29ff0876a7 | ||
|
8136293593 | ||
|
902dfbcdcc | ||
|
e713b32bdc | ||
|
d3be6caaa1 | ||
|
46830a27d0 | ||
|
190bed8025 | ||
|
2293828f8e | ||
|
985c2dd031 | ||
|
043eead149 | ||
|
6653757c5c | ||
|
b29d32d518 | ||
|
b97dceeb7a | ||
|
11ca0dd22e | ||
|
9666b9920a | ||
|
7cf5a4cb2e | ||
|
54e111886b | ||
|
b8295ac8f5 | ||
|
cf56bfb6a9 | ||
|
537cfbc027 | ||
|
599c55938b | ||
|
8608bc92ae | ||
|
bd5592de7b | ||
|
79b8dc98eb | ||
|
4e083ebd4f | ||
|
5075534b2e | ||
|
b8ae54fb2c | ||
|
d5016ad672 | ||
|
d737c0f285 | ||
|
d084f579c5 | ||
|
124cbfdfa4 | ||
|
7bf793d2be | ||
|
f73986d23f | ||
|
1c6c9efba1 | ||
|
efb9fbcc7e | ||
|
360c2985f5 | ||
|
d64d16bdf2 | ||
|
52a803b6ab | ||
|
3b7540da05 | ||
|
b80b2d9a74 | ||
|
5b002c6e46 | ||
|
886b6fee64 | ||
|
54fb7a9030 | ||
|
aceca89080 | ||
|
719539c2ab | ||
|
ef0772bc9f | ||
|
8b1492a2d9 | ||
|
b1fa4d3038 | ||
|
d9536ae3a8 | ||
|
112e26a0ff | ||
|
584d0e6222 | ||
|
4e7232f13e | ||
|
ec58d9272a | ||
|
ff5f89bd5e | ||
|
cd9013cf73 | ||
|
717c524b01 | ||
|
c55452d0ea | ||
|
c8411b6dfb | ||
|
0c402e2a5f | ||
|
9113fae4fe | ||
|
071a77fe1a | ||
|
8034564c3e | ||
|
2ef6004bd5 | ||
|
d188795591 | ||
|
3e1b54c6f0 | ||
|
c3461307a0 | ||
|
1188cb46b8 | ||
|
0298849953 | ||
|
a030237641 | ||
|
24ae2b6fa6 | ||
|
01d38f9218 | ||
|
8dab4ecb06 | ||
|
083ea43971 | ||
|
d0f59edf09 | ||
|
2687618840 | ||
|
20a23c5e31 | ||
|
0276a2ef71 | ||
|
0f00adca0c | ||
|
bbd4d7e2fd | ||
|
6b716980be | ||
|
0e0bd0d3d9 | ||
|
650755198d | ||
|
45ae8d1060 | ||
|
e0000bade6 | ||
|
974b98ed8e | ||
|
3b1bd97845 | ||
|
990130d7c2 | ||
|
62a1cb1dce | ||
|
444705a5f8 | ||
|
675e7b1de3 | ||
|
1efc26759f | ||
|
d2b2856630 | ||
|
c8b9b62d8a | ||
|
508b685fdc | ||
|
cf9a5383a9 | ||
|
7a27c29695 | ||
|
db8fec7757 | ||
|
41ab90bb8e | ||
|
b188c176fd | ||
|
4b58a822db | ||
|
e7ab43527a | ||
|
a3dbcf3c2a | ||
|
b89afe6d13 | ||
|
55483e76e0 | ||
|
8b9afff30d | ||
|
893f4f3ed6 | ||
|
9059621dab | ||
|
14879af678 | ||
|
80496db482 | ||
|
3b03561d27 | ||
|
7e3e75875d | ||
|
e0a404e099 | ||
|
66210e9c0f | ||
|
8b5224e274 | ||
|
5db2254548 | ||
|
d1dd3a5433 | ||
|
59e1f9cca1 | ||
|
7c57132710 | ||
|
89a2e266a0 | ||
|
de7a5085b1 | ||
|
f2d64a7d08 | ||
|
3dcb4dee59 | ||
|
39362fd566 | ||
|
5de80f4c6d | ||
|
fa9ae4c979 | ||
|
946994af22 | ||
|
bd9c10c2eb | ||
|
b105a2ef24 | ||
|
a85ac96f82 | ||
|
4d493ca733 | ||
|
9b17f4e0c0 | ||
|
eb8f4bebe0 | ||
|
f3327c06ab | ||
|
6594b3c7fa | ||
|
2012bb49d2 | ||
|
e736283785 | ||
|
38cc4f789b | ||
|
e2593215bf | ||
|
278b526898 | ||
|
5a50ed97be | ||
|
d0b6243f77 | ||
|
eba0f54477 | ||
|
3a15e44d0f | ||
|
03cfbca7cf | ||
|
a161ebfcaf | ||
|
58a85fa0c8 | ||
|
7642b66a0e | ||
|
48621f1d50 | ||
|
42766a715d | ||
|
3e27f0213a | ||
|
9ec8aa3bf9 | ||
|
7875a65b44 | ||
|
461b73facf | ||
|
4b4ee7409b | ||
|
323f34f5d4 | ||
|
de1910268a | ||
|
a39a1a7cec | ||
|
d64647280a | ||
|
8564d6faa8 | ||
|
b8830e34d3 | ||
|
b448568aa3 | ||
|
b513043e4a | ||
|
0fe19bca47 | ||
|
b4559d3fd8 | ||
|
6c9f3a868d | ||
|
0f92c90b71 | ||
|
36ecf8a717 | ||
|
aa16ac446d | ||
|
a6e2692e52 | ||
|
26eb5f0926 | ||
|
07da2461d0 | ||
|
c79f1e4360 | ||
|
87915a5f79 | ||
|
d64b265a39 | ||
|
7c2b475e46 | ||
|
d02fbbb42f | ||
|
37930caade | ||
|
c6c8f91c99 | ||
|
473e11c773 | ||
|
9c2de78ad3 | ||
|
abb186db01 | ||
|
a00560d2b3 | ||
|
791ce3da86 | ||
|
6380e0a062 | ||
|
62bc550d3a | ||
|
e3714e9b6a | ||
|
da6d77cffd | ||
|
824d0a9b63 | ||
|
1ede346cbc | ||
|
3ab5cc1766 | ||
|
48077d200b | ||
|
30765550c8 | ||
|
f2cc66d414 | ||
|
56710fee39 | ||
|
7667231137 | ||
|
0c69b698b9 | ||
|
feb8321147 | ||
|
3092c68a05 | ||
|
2a1704add0 | ||
|
9c3cad2df2 | ||
|
aa473dd749 | ||
|
ab7b07ba28 | ||
|
e9f93ba748 | ||
|
a5baa3605f | ||
|
f092269c01 | ||
|
ffc84f5118 | ||
|
461b1a9d87 | ||
|
514ac27d00 | ||
|
2a4d11e6a6 | ||
|
c684bfbf52 | ||
|
0ffad7f4fe | ||
|
8d5876c2c8 | ||
|
75dfe87054 | ||
|
8e8b6b353a | ||
|
10fd2e1334 | ||
|
41befc3587 | ||
|
8812e09e8d | ||
|
00b44071a6 | ||
|
9923018a49 | ||
|
e6bd46acef | ||
|
190400eb6b | ||
|
e5c8a920ee | ||
|
fc488574c6 | ||
|
dca81aef3d | ||
|
e7772f04a4 | ||
|
7249294ffd | ||
|
e861a406a3 | ||
|
22d598c0f5 | ||
|
c3cbf33ba0 | ||
|
dadef92fdf | ||
|
88b6331aed | ||
|
a9c4422c87 | ||
|
08a0b1e828 | ||
|
b09e86fb53 | ||
|
feb7675d2f | ||
|
4d25856b4f | ||
|
c8eaa15f18 | ||
|
fe5289c495 | ||
|
5843bb788f | ||
|
4607b79a83 | ||
|
bca99a4d7f | ||
|
1d3914324f | ||
|
be9f34ab8a | ||
|
7f7ecdcca8 | ||
|
66d609c35f | ||
|
6f7ef25369 | ||
|
fca626d246 | ||
|
065d453477 | ||
|
316df6ed17 | ||
|
f67ed6d22a | ||
|
1a061c6ae5 | ||
|
1467c4539e | ||
|
60b09a431a | ||
|
e3a46df010 | ||
|
5ed4bd8748 | ||
|
a9143e8ea2 | ||
|
037ba84916 | ||
|
c7dc63200a | ||
|
084aa794f8 | ||
|
d75b30d51a | ||
|
5e44403346 | ||
|
861decd5c9 | ||
|
0fe579e782 | ||
|
aa513e1e3d | ||
|
7f284a3752 | ||
|
e5d9f2937e | ||
|
974d6275bf | ||
|
e5ba96d6aa | ||
|
716d407753 | ||
|
34e8cf476a | ||
|
51d7ba728f | ||
|
bba16f5263 | ||
|
67b7cbe920 | ||
|
4892f04a2a | ||
|
5860719780 | ||
|
101c735d91 | ||
|
3ca6795cde | ||
|
339428a4e9 | ||
|
3cafc22e1d | ||
|
788a313024 | ||
|
67dc5e5252 | ||
|
2ea0d6466c | ||
|
86ad8416df | ||
|
a91ba2a277 | ||
|
1ac2241d2c | ||
|
405fc1458c | ||
|
b22bc47c4f | ||
|
bda4958cb3 | ||
|
2aa8564522 | ||
|
5cb319771d | ||
|
cef65a17f9 | ||
|
3ede4aafbe | ||
|
560119bc3e | ||
|
4c81215a60 | ||
|
5699eb115d | ||
|
64698ac073 | ||
|
bdf7fccbae | ||
|
96f04a1c49 | ||
|
aa4bdec79c | ||
|
10a4e54a3b | ||
|
839d79f407 | ||
|
a1a9f0002c | ||
|
84ee968ab4 | ||
|
9c3176b29f | ||
|
d69263923a | ||
|
abed49c277 | ||
|
75512842d0 | ||
|
9a5d0e829b | ||
|
679b3587b5 | ||
|
860a2f6929 | ||
|
bb09f5a292 | ||
|
9fb9253dcc | ||
|
ea21de89c3 | ||
|
593f9b5832 | ||
|
4e447a59b5 | ||
|
b3e57dae85 | ||
|
d1ed983106 | ||
|
a20b2a566d | ||
|
fc03fea00a | ||
|
b814ba5b35 | ||
|
d14af1592e | ||
|
3e60d9e4d8 | ||
|
c8f3a0be40 | ||
|
de7f8de3e3 | ||
|
230215a211 | ||
|
bb48dfe084 | ||
|
1685f6ded0 | ||
|
3dfe10815d | ||
|
67f2c380a3 | ||
|
1ae6f05d09 | ||
|
2c171fdcfd | ||
|
305d60a28e | ||
|
4e822eeebb | ||
|
1dd21caa66 | ||
|
60b7164c28 | ||
|
10da7eb474 | ||
|
d98d811cc1 | ||
|
f05d90bada | ||
|
66fd973830 | ||
|
d1824acee0 | ||
|
61906d8dbe | ||
|
4dcb2acba5 | ||
|
64711109a6 | ||
|
d1b533cbfa | ||
|
d31eb639dc | ||
|
fae6ff481e | ||
|
bcfc4d5c64 | ||
|
39721b6a8f | ||
|
e2089b1e44 | ||
|
671b7ef7cb | ||
|
76c35d269b | ||
|
ff241dd0a9 | ||
|
179a099954 | ||
|
2c787f23c7 | ||
|
ff680f46cc | ||
|
0a3e91287d | ||
|
f04bbdf112 | ||
|
c911265dbd | ||
|
858e5f2efb | ||
|
144376fbb4 | ||
|
6bed373f0a | ||
|
cebaf2ee08 | ||
|
340b3920ac | ||
|
55a95c910f | ||
|
e8aba9fa5f | ||
|
6ac81c06db | ||
|
b8cbd93618 | ||
|
3bc68a1ac4 | ||
|
54660e2d66 | ||
|
e9d4a982c0 | ||
|
5cc4242c6f | ||
|
98905e0e53 | ||
|
9b969b283e | ||
|
91061c1d55 | ||
|
e93bc49b36 | ||
|
9318f94f08 | ||
|
9128c2128e | ||
|
d8949fddc7 | ||
|
89d1bc8341 | ||
|
6ca71c3e2c | ||
|
65cf9c8f4d | ||
|
20d12dc98e | ||
|
a41fe1d801 | ||
|
b559f2f559 | ||
|
2e23e78937 | ||
|
358d40f502 | ||
|
c939c544e2 | ||
|
d3327f7829 | ||
|
61968cb58f | ||
|
77b80da520 | ||
|
961e778a75 | ||
|
dbf1aa6816 | ||
|
d501c6cf6e | ||
|
abafdadf33 | ||
|
5ec2f33cb0 | ||
|
07cfc1fb0b | ||
|
7af27bb6a9 | ||
|
886f5adce7 | ||
|
1c6671df31 | ||
|
62eb790b0b | ||
|
e660ec1f14 | ||
|
760af12252 | ||
|
6228d1d3b1 | ||
|
e0ba516551 | ||
|
e3ec65fd31 | ||
|
716366070b | ||
|
43f52d5436 | ||
|
2c911a3ea2 | ||
|
6c3118549f | ||
|
d25ba41fb5 | ||
|
6a832bdf2a | ||
|
bc94bcb25c | ||
|
9ff2da4c8c | ||
|
e007fe7529 | ||
|
283bb2fa89 | ||
|
4eb6657b51 | ||
|
31eb0235c2 | ||
|
b904f501ba | ||
|
097894308e | ||
|
d350dbf0d7 | ||
|
110d343eea | ||
|
24b6f99abf | ||
|
2aeaf43c28 | ||
|
f27a83ef73 | ||
|
b833f36c75 | ||
|
7d983adc6e | ||
|
309eb80748 | ||
|
865c48bcc0 | ||
|
2b3dfc5ae2 | ||
|
c858fccc5f | ||
|
e66b270811 | ||
|
1d32749ed2 | ||
|
0024f96a99 | ||
|
4528655bb7 | ||
|
965dac6514 | ||
|
80e104e723 | ||
|
a6e6677c32 | ||
|
66db820c9e | ||
|
62a1919402 | ||
|
99e09f0b91 | ||
|
8726def6e0 | ||
|
1bc45d2869 | ||
|
2c049e5611 | ||
|
630111c737 | ||
|
311fb261a4 | ||
|
24224dc0b1 | ||
|
35e21c3568 | ||
|
813b9e6a4b | ||
|
b8e8e96f01 | ||
|
678a0ee136 | ||
|
00fc40408a | ||
|
31f4a34f5a | ||
|
ee2b09ec4c | ||
|
ef137f68c4 | ||
|
cb381595f9 | ||
|
b545185f1a | ||
|
fa6fc45e6f | ||
|
c6745d76a8 | ||
|
1e0efb73c5 | ||
|
73e6e3725d | ||
|
83bfe59991 | ||
|
df3552d0d8 | ||
|
c3544ba07d | ||
|
1c7e696549 | ||
|
b23f6944f1 | ||
|
1e15be34b6 | ||
|
dc8530049f | ||
|
a20c6bb01e | ||
|
33b22bd4f8 | ||
|
4f2543f7ae | ||
|
d9582062d2 | ||
|
439ef0dc5e | ||
|
da4f0f53be | ||
|
b20cf52fe6 | ||
|
761f903fdb | ||
|
a717e2ace8 | ||
|
5c3ad3e0bc | ||
|
1ed1e18304 | ||
|
0ebac0e2af | ||
|
800c94cb93 | ||
|
2f2a4fca35 | ||
|
d5f6849c8e | ||
|
61e5c32cd2 | ||
|
8bcb1ef2db | ||
|
0e7eff155d | ||
|
66454bb711 | ||
|
e1dfbc0bea | ||
|
7dc3b06d0f | ||
|
4d161768c0 | ||
|
967a7980f5 | ||
|
5450bacf0f | ||
|
97965b2de5 | ||
|
26572458b6 | ||
|
3a5dfadac5 | ||
|
33cec69df9 | ||
|
039f3b875b | ||
|
1f46d334b1 | ||
|
8a8e8a89dc | ||
|
a11231dd2e | ||
|
92cb70213a | ||
|
ab8c67ede6 | ||
|
23d3b85696 | ||
|
65c3dfb694 | ||
|
e8b96fec02 | ||
|
a251849f8f | ||
|
75a1ef4304 | ||
|
d33ca68620 | ||
|
29d817d549 | ||
|
6b66bc41fe | ||
|
46cd47bdfc | ||
|
5e970c8a51 | ||
|
bce8627644 | ||
|
0b95ea3f7b | ||
|
3dd4f2b94a | ||
|
d011d60351 | ||
|
a9c3a808ac | ||
|
d5533854cc | ||
|
74b6ed97c2 | ||
|
99d143263d | ||
|
a12df762a0 | ||
|
f5fccc0387 | ||
|
0371bf4e9f | ||
|
f56fecaa26 | ||
|
255cd1310d | ||
|
56392c1789 | ||
|
8b7a858e1f | ||
|
103c460f0a | ||
|
c1d8896db9 | ||
|
aae95f70c4 | ||
|
e582bb9117 | ||
|
3616c2acf0 | ||
|
19630735e0 | ||
|
c2ed5d07e2 | ||
|
319b0a543c | ||
|
e0ac189acc | ||
|
2c69d77fae | ||
|
f24aa1fa5f | ||
|
86af5ac217 | ||
|
0b06f9686b | ||
|
bac00659ef | ||
|
b1c9fee29e | ||
|
226852233f | ||
|
630b72f13a | ||
|
c21deb3a8c | ||
|
055defa204 | ||
|
0275f2ec15 | ||
|
d2ce1e17b3 | ||
|
7efe9cf209 | ||
|
5c243fa465 | ||
|
456e1124a3 | ||
|
9b1a254553 | ||
|
a119a5cbfb | ||
|
c2592d7d86 | ||
|
927dc4394d | ||
|
04ad1011f0 | ||
|
56d0ffc1fd | ||
|
3dc4c8ca39 | ||
|
09a575b783 | ||
|
3cd3890263 | ||
|
435821348a | ||
|
03bb911ee7 | ||
|
63f96f4dc7 | ||
|
db2c9a9926 | ||
|
1fc88e97f4 | ||
|
3d3914645d | ||
|
68ade7b384 | ||
|
071f232611 | ||
|
dff5ca7e92 | ||
|
a47dda79a3 | ||
|
549b2d52a4 | ||
|
ad3f677a9e | ||
|
0d68473010 | ||
|
6ed7729b18 | ||
|
0c36d4e67d | ||
|
d6a02e3c47 | ||
|
a8c9fe4dce | ||
|
454a71922d | ||
|
b4dc66f950 | ||
|
d902d0d202 | ||
|
b6cb08101b | ||
|
c10323424d | ||
|
df2710bcbe | ||
|
5506c81397 | ||
|
ed2e7a2f47 | ||
|
27e3a9201e | ||
|
863e0c3643 | ||
|
8d2b7a15dc | ||
|
67381cf493 | ||
|
86f54dccdc | ||
|
edf981a5a1 | ||
|
ab75680ed3 | ||
|
8c11d7e8e8 | ||
|
8b776491e8 | ||
|
884f26924c | ||
|
5f79579a4d | ||
|
82f56da16b | ||
|
bc2035d362 | ||
|
41f25edb15 | ||
|
cf28d6653c | ||
|
1eca18f287 | ||
|
6671c9aa80 | ||
|
53496d70f1 | ||
|
a17588fb1b | ||
|
dd06fddd17 | ||
|
e9c5618b10 | ||
|
b32330df0f | ||
|
3bd2edf4d2 | ||
|
697949c784 | ||
|
ee913be46b | ||
|
4f5813a6ce | ||
|
4a25821aba | ||
|
c049ff82cd | ||
|
64ee2d77b8 | ||
|
ce4106eb3d | ||
|
974d27ce26 | ||
|
dfe482b37b | ||
|
1f18694aa6 | ||
|
89de668241 | ||
|
963e525e07 | ||
|
94ee7167e0 | ||
|
48c075fb42 | ||
|
581e5f1f04 | ||
|
9637b3fbe1 | ||
|
c7232ae23c | ||
|
01912f5b3e | ||
|
db5e2d95c2 | ||
|
d9b55df883 | ||
|
4e9a113a35 | ||
|
70a35e9b49 | ||
|
bc4a8fbe1d | ||
|
d77a70b25a | ||
|
e49317a73c | ||
|
87cc28ae28 | ||
|
699d640845 | ||
|
93c3e9e1dd | ||
|
b93131ec7a | ||
|
4219468e20 | ||
|
4227968dfa | ||
|
09790bb994 | ||
|
bd1bfee941 | ||
|
0b3c49da90 | ||
|
c3d6e10795 | ||
|
1eae9bd18b | ||
|
99e24f5588 | ||
|
38e2bf955c | ||
|
0653dad5c5 | ||
|
51af830db8 | ||
|
2bde9d2b15 | ||
|
d9f9da99e6 | ||
|
64b0123acf | ||
|
35d853b851 | ||
|
1966baad84 | ||
|
a398566b33 | ||
|
9f2c473040 | ||
|
a73db4984a | ||
|
3498eb92bb | ||
|
455db18d71 | ||
|
2aeffe4095 | ||
|
c4fe9749d5 | ||
|
a0512585b1 | ||
|
c52bdb9a4a | ||
|
bbd9c89357 | ||
|
fb2190ace1 | ||
|
deb09bf5bf | ||
|
d951beb626 | ||
|
748dd5f2e6 | ||
|
75de4c8fcb | ||
|
432be09583 | ||
|
c822b9e2da | ||
|
c661fea07d | ||
|
782f85e05d | ||
|
96a9f7108c | ||
|
9475147435 | ||
|
909ec4191d | ||
|
59d00cca74 | ||
|
71a3e2c91b | ||
|
719202ba12 | ||
|
8ae4332110 | ||
|
964f53273c | ||
|
9e10022014 | ||
|
2eaabe13e3 | ||
|
3389b5dd16 | ||
|
3832afaeba | ||
|
e026ddf6be | ||
|
116fa673c6 | ||
|
517da9f972 | ||
|
74256dc411 | ||
|
1b23a62c13 | ||
|
97de520f9a | ||
|
a6333f3285 | ||
|
012f70336f | ||
|
7fbed26c26 | ||
|
a94af2678b | ||
|
eb57289b2a | ||
|
068b542c50 | ||
|
912fd36e29 | ||
|
b7a91770dc | ||
|
f0af503b4a | ||
|
3d023a5cf6 | ||
|
1e2d1aa118 | ||
|
ccfd3606dc | ||
|
fe95e09c8b | ||
|
bac90edfad | ||
|
b7043a428f | ||
|
5b47b83fe2 | ||
|
7289ed72f8 | ||
|
c4936ed535 | ||
|
8a5f05fb74 | ||
|
36f7bc4aae | ||
|
d5869e3f90 | ||
|
3b83d081db | ||
|
6861135925 | ||
|
b6f47c9927 | ||
|
796cc3c60c | ||
|
f1a57d76a2 | ||
|
87b61f7cff | ||
|
1999f607d6 | ||
|
bb2f553c46 | ||
|
6c2dc6756b | ||
|
f7c12264e8 | ||
|
9ef3dea884 | ||
|
cd90e252bf | ||
|
ac2475fb26 | ||
|
8f1a959da1 | ||
|
8c55e1b05b | ||
|
a0bbee8b79 | ||
|
caf85ad040 | ||
|
3999bee482 | ||
|
f0016b5368 | ||
|
1dec93de8a | ||
|
caf236d60a | ||
|
c8ed8e06f1 | ||
|
aa845b4727 | ||
|
1ebe5547d4 | ||
|
e2e7d5870a | ||
|
ea45d372f3 | ||
|
3113109f0a | ||
|
6ec51ff086 | ||
|
9eae4d9739 | ||
|
84aa746241 | ||
|
00ce078630 | ||
|
5426431adf | ||
|
726ec0fbfc | ||
|
094fc1f24b | ||
|
49cb8daf7d | ||
|
16660e995e | ||
|
8469f43285 | ||
|
6865f84eb1 | ||
|
036603c9e9 | ||
|
ab0f57aba3 | ||
|
13c755c197 | ||
|
5250d1fcaf | ||
|
492f857012 | ||
|
f1a0462ca3 | ||
|
6254ac6fbf | ||
|
5207b3a7f0 | ||
|
9e968de4e4 | ||
|
e3edb96568 | ||
|
dded42374c | ||
|
c561fb4fab | ||
|
67610b9f7f | ||
|
14aa70eea8 | ||
|
28da838bd1 | ||
|
fd18e0cc78 | ||
|
2a30a74886 | ||
|
6130ebb6d9 | ||
|
64500bfb37 | ||
|
cc077732c4 | ||
|
cd47f3b238 | ||
|
297519c401 | ||
|
118d2c5bcf | ||
|
6023eac4bb | ||
|
09d410ec48 | ||
|
1369025092 | ||
|
5147233391 | ||
|
38585cb6af | ||
|
f53775d3f5 | ||
|
14ba7fc646 | ||
|
5b7bfbaa98 | ||
|
1d75b98393 | ||
|
c7d75b7789 | ||
|
4ccedb939c | ||
|
4bb463dd56 | ||
|
0ba600bb2b | ||
|
9ed6ee2161 | ||
|
c4ade296ae | ||
|
0ed81e3b1a | ||
|
d1933be86a | ||
|
15ff8de45c | ||
|
45a080016e | ||
|
78cf6e9086 | ||
|
7d65a6e264 | ||
|
91945ec77e | ||
|
7b472f13af | ||
|
a93777e3b7 | ||
|
2f310c72fa | ||
|
6a4ee68113 | ||
|
e73b5713fd | ||
|
1f81086a21 | ||
|
3e48f4b805 | ||
|
432be2ee57 | ||
|
f421139402 | ||
|
081223cc8f | ||
|
27ccc6b090 | ||
|
62faddac8d | ||
|
6804e4c679 | ||
|
10ee002091 | ||
|
1430eb26ea | ||
|
e17a18ad5d | ||
|
eeaa52bf5d | ||
|
07a6cb1252 | ||
|
7a2f6fb63f | ||
|
bb3ac095c4 | ||
|
e18d554489 | ||
|
a2625ecec6 | ||
|
0252b21901 | ||
|
f6343436b4 | ||
|
9db2f1cb91 | ||
|
2fd59f5aef | ||
|
18d96bc346 | ||
|
535da63e52 | ||
|
e14c9506b6 | ||
|
88aae5978f | ||
|
b9d72bfdf4 | ||
|
f4bb4fe51e | ||
|
cf77b9e7ee | ||
|
ff1399d1ba | ||
|
eb273a1873 | ||
|
0587931cae | ||
|
7408673e41 | ||
|
3c0664dfb6 | ||
|
d2477bba0c | ||
|
f37e444791 | ||
|
1ae08f49c5 | ||
|
10fda0b220 | ||
|
61d5dde497 | ||
|
edc33584da | ||
|
883da48762 | ||
|
49d0d9f557 | ||
|
852bc15a94 | ||
|
c43ddd9d62 | ||
|
c851961234 | ||
|
01aacb9280 | ||
|
dfa8c6c3d4 | ||
|
fda0e886e4 | ||
|
5a45e64999 | ||
|
70a2f71e33 | ||
|
4a70e68c22 | ||
|
542018cecb | ||
|
5e7c214c89 | ||
|
12eabd167d | ||
|
c73bfbd7b0 | ||
|
7063fce2af | ||
|
694cf6f762 | ||
|
83c77c1f18 | ||
|
d54ccece5c | ||
|
96506947cb | ||
|
afc3071576 | ||
|
10727d9a02 | ||
|
55d31a976f | ||
|
181b5aff97 | ||
|
31f1b34911 | ||
|
ef5499c8dc | ||
|
292ecf580e | ||
|
de1ca9af74 | ||
|
75832c1ad6 | ||
|
39a54d158d | ||
|
2bf9869e5f | ||
|
b13434c505 | ||
|
5197809d6b | ||
|
204a934553 | ||
|
de1bb90c23 | ||
|
478be72659 | ||
|
d972ed5a2b | ||
|
932d3dc10c | ||
|
f610d5930c | ||
|
05db2552b3 | ||
|
7bfd666321 | ||
|
a02f5ead7e | ||
|
d9fae7a02c | ||
|
29e2e8f607 | ||
|
7bc87b6e28 | ||
|
ed65ddf981 | ||
|
3c2017c7b8 | ||
|
4e99c3e4cb | ||
|
6b2b849a26 | ||
|
b69c5bcd17 | ||
|
7b87f44518 | ||
|
5ab1e74c5f | ||
|
2bd239fe81 | ||
|
1a219e32fe | ||
|
203146f7e2 | ||
|
73bea1f454 | ||
|
408151c9cb | ||
|
f0adbc3c28 | ||
|
9acf057aae | ||
|
f796387e7e | ||
|
9f1c306920 | ||
|
2f85e50c6f | ||
|
eb4cae4e6d | ||
|
e4e6882f12 | ||
|
15a288b63d | ||
|
620cd6dfc2 | ||
|
a5475e7752 | ||
|
bddfd5763b | ||
|
21edb655d3 | ||
|
51f0d1f33e | ||
|
da31b6fda8 | ||
|
2b071bed90 | ||
|
1cf935eaf3 | ||
|
b33b5264e5 | ||
|
8ca50098d5 | ||
|
d82ed50fa4 | ||
|
f894237a12 | ||
|
9d8ebd7bd2 | ||
|
5c552a3d53 | ||
|
300b68177b | ||
|
83f79c1466 | ||
|
bc94e3992f | ||
|
1c44df8079 | ||
|
b6b1df6a7c | ||
|
b4aa7831e7 | ||
|
d1cdd60883 | ||
|
a850352eab | ||
|
d9d76ba16d | ||
|
993284f9c1 | ||
|
a7d3130f9a | ||
|
e0df5783f8 | ||
|
e4de6da5b8 | ||
|
87219f897e | ||
|
73cf58826f | ||
|
be4637a3a0 | ||
|
6ac6c7cfda | ||
|
94e9b8f4b1 | ||
|
bc6149deeb | ||
|
a0d975c3c0 | ||
|
d51b155e52 | ||
|
fb1b327f9a | ||
|
754cdc4d58 | ||
|
a73cb9ad3d | ||
|
58ecc0dc0d | ||
|
3821e91be0 | ||
|
de2bb7938a | ||
|
61e2877c4b | ||
|
d7ade487b8 | ||
|
6d04e93f34 | ||
|
d7a7af756a | ||
|
0c5fe3d637 | ||
|
eb0a116cc7 | ||
|
e08a21ebe7 | ||
|
49074effce | ||
|
ffe8b3c909 | ||
|
7856afee92 | ||
|
fe533b7c7f | ||
|
fc158ca176 | ||
|
f632888b4c | ||
|
8324632e4e | ||
|
be4b20af97 | ||
|
5a4e0a06e6 | ||
|
fb71d3b562 | ||
|
b96d1e79a0 | ||
|
0d310c434d | ||
|
b111834122 | ||
|
2847b5ee45 | ||
|
943906d8a3 | ||
|
cbedfa4664 | ||
|
01ccc32274 | ||
|
3b153a6c9b | ||
|
1bcdc2652c | ||
|
ea050b98ef | ||
|
b30d69b2a6 | ||
|
60e099e852 | ||
|
c49b37f968 | ||
|
404d9db359 | ||
|
5ac0390446 | ||
|
6e98fb1c5e | ||
|
053d7f9eaa | ||
|
5dcfda0514 | ||
|
b42125a654 | ||
|
413cec8a9f | ||
|
8e7ffab793 | ||
|
770aee4953 | ||
|
f479901c87 | ||
|
1dbe7897d4 | ||
|
c95956766e | ||
|
e92c0db6a2 | ||
|
3a8b8ed639 | ||
|
3a78d69b5b | ||
|
2e562d187a | ||
|
4521dde455 | ||
|
b64b0e3362 | ||
|
f8ca73265b | ||
|
1f7614af33 | ||
|
a48a9318c1 | ||
|
dcb042681d | ||
|
7df2f7e752 | ||
|
c3578d2cda | ||
|
8db39a58fb | ||
|
bbdbb08301 | ||
|
b06e09c030 | ||
|
bb2bcdbf61 | ||
|
2e278e7323 | ||
|
4c9d52422b | ||
|
f4ba1f68ef | ||
|
12497e8fb1 | ||
|
8153e747ef | ||
|
63b597beb8 | ||
|
cdbb0b21da | ||
|
b2f40e490b | ||
|
a96e1903a3 | ||
|
be7eb8b2b5 | ||
|
3b6372431a | ||
|
389ee7917f | ||
|
212e61d2a1 | ||
|
1b60e4a013 | ||
|
93cd93ada3 | ||
|
babb4cb57b | ||
|
dbcc75471f | ||
|
2a0497ca9e | ||
|
2d0767306e | ||
|
8ca83bb255 | ||
|
80a6406062 | ||
|
ff9345a843 | ||
|
fe663c4f04 | ||
|
9fbb012697 | ||
|
0070950911 | ||
|
62cf611fdc | ||
|
75814433a6 | ||
|
e59a5b4449 | ||
|
161e512805 | ||
|
305afb3713 | ||
|
1acbef1890 | ||
|
f90f370fed | ||
|
d34a0ee20e | ||
|
01e3964232 | ||
|
153638c2cd | ||
|
4bb719359c | ||
|
847eb60806 | ||
|
e799bd3920 | ||
|
2b1aee9e71 | ||
|
d65f068310 | ||
|
b1c199e650 | ||
|
51014e7a8d | ||
|
530bf81940 | ||
|
2bba186c9e | ||
|
61241df0d4 | ||
|
b6b9b542d7 | ||
|
71f41d5233 | ||
|
a421af9ea9 | ||
|
75372ad0cc | ||
|
d1f292f462 | ||
|
890cf81627 | ||
|
d97f0a4c4d | ||
|
4370db6bdc | ||
|
770f3e5da3 | ||
|
0f0895f345 | ||
|
6d1933c8f3 | ||
|
776260c85a | ||
|
5a5463bd5d | ||
|
2f45f50d37 | ||
|
41ad7c5d26 | ||
|
df93d43c36 | ||
|
bc9c70556e | ||
|
f75daba6c0 | ||
|
80ff8383fe | ||
|
5fd6202e60 | ||
|
ef5d505de3 | ||
|
5992c34fb5 | ||
|
bae74fbbd7 | ||
|
4264d170e2 | ||
|
ca89be8930 | ||
|
c2256c2ac7 | ||
|
78ce23750e | ||
|
e6ddbd1418 | ||
|
344146d837 | ||
|
15f0e491bf | ||
|
70c4e82b89 | ||
|
db78346bef | ||
|
b3bbec83b6 | ||
|
78d1d48ea9 | ||
|
3ff5884112 | ||
|
a3f6ce52e4 | ||
|
19ea1ee56c | ||
|
09d43403b2 | ||
|
dee8f45986 | ||
|
9d6a791443 | ||
|
d6fd351330 | ||
|
80de3fdd4c | ||
|
25cb598694 | ||
|
b69493d252 | ||
|
2eafa2a212 | ||
|
15a8adb0b9 | ||
|
8434f6e6cf | ||
|
fa66f39790 | ||
|
16785ae005 | ||
|
3822ae9356 | ||
|
f4f0a59e90 | ||
|
59bb04f1b3 | ||
|
47a06c14d9 | ||
|
88637adfe2 | ||
|
9a1ea7f226 | ||
|
4665db62f4 | ||
|
ab5b497562 | ||
|
5a614b5173 | ||
|
8546490bcc | ||
|
3dcea41c4e | ||
|
f947c1304a | ||
|
57314443ed | ||
|
242d57c14b | ||
|
71041ec764 | ||
|
2b12d3f8e8 | ||
|
022c180b62 | ||
|
0263be8c1f | ||
|
a8c118fd4a | ||
|
ddc55c7c22 | ||
|
0ad4f78a51 | ||
|
4e1a9da840 | ||
|
e8e3834fc0 | ||
|
790185f9e9 | ||
|
d02f81974c | ||
|
b340863d52 | ||
|
1a372abaff | ||
|
10aa268ea2 | ||
|
59657766b5 | ||
|
716d1fc988 | ||
|
e82fc8d617 | ||
|
2661f00dd4 | ||
|
afad169118 | ||
|
dcd89f2295 | ||
|
53386b35c9 | ||
|
2e14132a20 | ||
|
2fbcbe86d2 | ||
|
3f65051bd4 | ||
|
7183416d1f | ||
|
0662b5b4ae | ||
|
dcbeab0aef | ||
|
3e1ff9bc25 | ||
|
58359c9682 | ||
|
a3da248e3c | ||
|
396eeca73a | ||
|
d8092ec3eb | ||
|
31ba3cf039 | ||
|
ed14be08b9 | ||
|
1990a2d9bd | ||
|
c92df1168d | ||
|
01a4aa51f7 | ||
|
2306a4e34d | ||
|
bd4d8847ce | ||
|
2b29e14e9f | ||
|
14d7665072 | ||
|
09b44075ed | ||
|
8f1d2e0163 | ||
|
accebd00f5 | ||
|
4f3780979e | ||
|
56a72eea5c | ||
|
189d096834 | ||
|
31cc6e51b5 | ||
|
411a8ef8a7 | ||
|
497f38111f | ||
|
72792ae9f9 | ||
|
3f3e23420d | ||
|
af8627b999 | ||
|
6ad0364ace | ||
|
0230177d27 | ||
|
f8bf70f0cb | ||
|
f0aa0c5540 | ||
|
6be86be0a7 | ||
|
5ad498f3ca | ||
|
c0264f1cd6 | ||
|
0f105e0300 | ||
|
c6ffe4502a | ||
|
b07aef02c7 | ||
|
11193896b2 | ||
|
b07a6a9a78 | ||
|
cd5aec7368 | ||
|
b3b7017bf2 | ||
|
59daeeb37a | ||
|
ec896b8a12 | ||
|
6c44f5b3fd | ||
|
42083b371b |
@@ -1,9 +1,14 @@
|
||||
.git
|
||||
.github
|
||||
.vscode
|
||||
node_modules
|
||||
npm-debug.log
|
||||
readme*
|
||||
Start.bat
|
||||
/dist
|
||||
/backups/
|
||||
/backups
|
||||
cloudflared.exe
|
||||
access.log
|
||||
/data
|
||||
/cache
|
||||
.DS_Store
|
||||
|
@@ -5,7 +5,7 @@ end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{js, conf, json}]
|
||||
[*.{js, conf, json, css, less, html}]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
13
.eslintrc.js
@@ -42,11 +42,22 @@ module.exports = {
|
||||
showdownKatex: 'readonly',
|
||||
SVGInject: 'readonly',
|
||||
toastr: 'readonly',
|
||||
Readability: 'readonly',
|
||||
isProbablyReaderable: 'readonly',
|
||||
ePub: 'readonly',
|
||||
},
|
||||
},
|
||||
],
|
||||
// There are various vendored libraries that shouldn't be linted
|
||||
ignorePatterns: ['public/lib/**/*', '*.min.js', 'src/ai_horde/**/*'],
|
||||
ignorePatterns: [
|
||||
'public/lib/**/*',
|
||||
'*.min.js',
|
||||
'src/ai_horde/**/*',
|
||||
'plugins/**/*',
|
||||
'data/**/*',
|
||||
'backups/**/*',
|
||||
'node_modules/**/*',
|
||||
],
|
||||
rules: {
|
||||
'no-unused-vars': ['error', { args: 'none' }],
|
||||
'no-control-regex': 'off',
|
||||
|
2
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: Bug Report 🐛
|
||||
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!
|
||||
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! Please use English only.
|
||||
title: '[BUG] <title>'
|
||||
labels: ['🐛 Bug']
|
||||
body:
|
||||
|
2
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: Feature Request ✨
|
||||
description: Suggest an idea for future development of this project
|
||||
description: Suggest an idea for future development of this project. Please use English only.
|
||||
title: '[FEATURE_REQUEST] <title>'
|
||||
labels: ['🦄 Feature Request']
|
||||
|
||||
|
5
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<!-- Put X in the box below to confirm -->
|
||||
|
||||
## Checklist:
|
||||
|
||||
- [ ] I have read the [Contributing guidelines](https://github.com/SillyTavern/SillyTavern/blob/release/CONTRIBUTING.md).
|
102
.github/readme.md
vendored
@@ -144,12 +144,14 @@ A full list of included extensions and tutorials on how to use them can be found
|
||||
8. The server will then start, and SillyTavern will pop up in your browser.
|
||||
|
||||
## Installing via SillyTavern Launcher
|
||||
1. Install [Git for Windows](https://gitforwindows.org/)
|
||||
2. Open Windows Explorer (`Win+E`) and make or choose a folder where you wanna install the launcher to
|
||||
3. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
|
||||
4. When you see a black box, insert the following command: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
|
||||
5. Double-click on `installer.bat` and choose what you wanna install
|
||||
6. After installation double-click on `launcher.bat`
|
||||
1. On your keyboard: press **`WINDOWS + R`** to open Run dialog box. Then, run the following command to install git:
|
||||
```shell
|
||||
cmd /c winget install -e --id Git.Git
|
||||
```
|
||||
2. On your keyboard: press **`WINDOWS + E`** to open File Explorer, then navigate to the folder where you want to install the launcher. Once in the desired folder, type `cmd` into the address bar and press enter. Then, run the following command:
|
||||
```shell
|
||||
git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher && start installer.bat
|
||||
```
|
||||
|
||||
## Installing via GitHub Desktop
|
||||
(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/))
|
||||
@@ -183,18 +185,79 @@ For MacOS / Linux all of these will be done in a Terminal.
|
||||
|
||||
### For Linux users
|
||||
1. Open your favorite terminal and install git
|
||||
2. Download Sillytavern Launcher with: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
|
||||
3. Navigate to the SillyTavern-Launcher with: `cd SillyTavern-Launcher`
|
||||
4. Start the install launcher with: `chmod +x install.sh && ./install.sh` and choose what you wanna install
|
||||
5. After installation start the launcher with: `chmod +x launcher.sh && ./launcher.sh`
|
||||
2. Git clone the Sillytavern-Launcher with:
|
||||
```shell
|
||||
git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher
|
||||
```
|
||||
3. Start the installer.sh with:
|
||||
```shell
|
||||
chmod +x install.sh && ./install.sh
|
||||
```
|
||||
4. After installation start the launcher.sh with:
|
||||
```shell
|
||||
chmod +x launcher.sh && ./launcher.sh
|
||||
```
|
||||
|
||||
### For Mac users
|
||||
1. Open a terminal and install brew with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
|
||||
2. Then install git with: `brew install git`
|
||||
3. Download Sillytavern Launcher with: `git clone https://github.com/SillyTavern/SillyTavern-Launcher.git`
|
||||
4. Navigate to the SillyTavern-Launcher with: `cd SillyTavern-Launcher`
|
||||
5. Start the install launcher with: `chmod +x install.sh && ./install.sh` and choose what you wanna install
|
||||
6. After installation start the launcher with: `chmod +x launcher.sh && ./launcher.sh`
|
||||
1. Open a terminal and install brew with:
|
||||
```shell
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
```
|
||||
2. Install git with:
|
||||
```shell
|
||||
brew install git
|
||||
```
|
||||
3. Git clone the Sillytavern-Launcher with:
|
||||
```shell
|
||||
git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher
|
||||
```
|
||||
4. Start the installer.sh with:
|
||||
```shell
|
||||
chmod +x install.sh && ./install.sh
|
||||
```
|
||||
5. After installation start the launcher.sh with:
|
||||
```shell
|
||||
chmod +x launcher.sh && ./launcher.sh
|
||||
```
|
||||
|
||||
## 🐋 Installing via Docker
|
||||
|
||||
These instructions assume you have installed Docker, are able to access your command line for the installation of containers, and familiar with their general operation.
|
||||
|
||||
### Building the image yourself
|
||||
|
||||
We have a comprehensive guide on using SillyTavern in Docker [here](http://docs.sillytavern.app/installation/docker/) which covers installations on Windows, macOS and Linux! Give it a read if you wish to build the image yourself.
|
||||
|
||||
### Using the GitHub Container Registry (easiest)
|
||||
|
||||
You will need two mandatory directory mappings and a port mapping to allow SillyTavern to function. In the command, replace your selections in the following places:
|
||||
|
||||
#### Container Variables
|
||||
|
||||
##### Volume Mappings
|
||||
|
||||
- [config] - The directory where SillyTavern configuration files will be stored on your host machine
|
||||
- [data] - The directory where SillyTavern user data (including characters) will be stored on your host machine
|
||||
- [plugins] - (optional) The directory where SillyTavern server plugins will be stored on your host machine
|
||||
|
||||
##### Port Mappings
|
||||
|
||||
- [PublicPort] - The port to expose the traffic on. This is mandatory, as you will be accessing the instance from outside of its virtual machine container. DO NOT expose this to the internet without implementing a separate service for security.
|
||||
|
||||
##### Additional Settings
|
||||
|
||||
- [TimeZone] - The timezone your instance should use. This is useful for making logs match your local time for easier troubleshooting. Use your TZ Identifier. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
||||
- [DockerNet] - The docker network that the container should be created with a connection to. If you don't know what it is, see the [official Docker documentation](https://docs.docker.com/reference/cli/docker/network/).
|
||||
- [version] - On the right-hand side of this GitHub page, you'll see "Packages". Select the "sillytavern" package and you'll see the image versions. The image tag "latest" will keep you up-to-date with the current release. You can also utilize "staging" and "release" tags that point to the nightly images of the respective branches, but this may not be appropriate, if you are utilizing extensions that could be broken, and may need time to update.
|
||||
|
||||
#### Install command
|
||||
|
||||
1. Open your Command Line
|
||||
2. Run the following command
|
||||
|
||||
`docker create --name='sillytavern' --net='[DockerNet]' -e TZ="[TimeZone]" -p '8000:8000/tcp' -v '[plugins]':'/home/node/app/plugins':'rw' -v '[config]':'/home/node/app/config':'rw' -v '[data]':'/home/node/app/data':'rw' 'ghcr.io/sillytavern/sillytavern:[version]'`
|
||||
|
||||
> Note that 8000 is a default listening port. Don't forget to use an appropriate port if you change it in the config.
|
||||
|
||||
## 📱 Mobile - Installing via termux
|
||||
|
||||
@@ -205,7 +268,7 @@ For MacOS / Linux all of these will be done in a Terminal.
|
||||
|
||||
## API keys management
|
||||
|
||||
SillyTavern saves your API keys to a `secrets.json` file in the server directory.
|
||||
SillyTavern saves your API keys to a `secrets.json` file in the user data directory (`/data/default-user/secrets.json` is the default path).
|
||||
|
||||
By default, they will not be exposed to a frontend after you enter them and reload the page.
|
||||
|
||||
@@ -220,7 +283,7 @@ Most often this is for people who want to use SillyTavern on their mobile phones
|
||||
|
||||
However, it can be used to allow remote connections from anywhere as well.
|
||||
|
||||
**IMPORTANT: SillyTavern is a single-user program, so anyone who logs in will be able to see all characters and chats, and be able to change any settings inside the UI.**
|
||||
**IMPORTANT: Refer to the official guide if you want to configure SillyTavern user accounts with (optional) password protection: [Users](https://docs.sillytavern.app/installation/st-1.12.0-migration-guide/#users).**
|
||||
|
||||
### 1. Managing whitelisted IPs
|
||||
|
||||
@@ -326,7 +389,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.**
|
||||
|
||||
* TAI Base by Humi: Unknown license
|
||||
* TAI Base by Humi: MIT
|
||||
* Cohee's modifications and derived code: AGPL v3
|
||||
* RossAscends' additions: AGPL v3
|
||||
* Portions of CncAnon's TavernAITurbo mod: Unknown license
|
||||
@@ -347,6 +410,7 @@ GNU Affero General Public License for more details.**
|
||||
* Korean translation by @doloroushyeonse
|
||||
* k_euler_a support for Horde by <https://github.com/Teashrock>
|
||||
* Chinese translation by [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
|
||||
* Docker guide by [@mrguymiah](https://github.com/mrguymiah) and [@Bronya-Rand](https://github.com/Bronya-Rand)
|
||||
|
||||
<!-- LINK GROUP -->
|
||||
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
|
||||
|
1
.github/workflows/check-merge-conflicts.yml
vendored
@@ -6,6 +6,7 @@ on:
|
||||
- staging
|
||||
jobs:
|
||||
check-conflicts:
|
||||
if: github.repository == 'SillyTavern/SillyTavern'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: mschilde/auto-label-merge-conflicts@master
|
||||
|
17
.github/workflows/docker-publish.yml
vendored
@@ -21,6 +21,7 @@ env:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: github.repository == 'SillyTavern/SillyTavern'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
@@ -29,7 +30,7 @@ jobs:
|
||||
run: |
|
||||
echo "IMAGE_NAME=${REPO,,}" >> ${GITHUB_ENV}
|
||||
|
||||
# Using the following workaround because currently GitHub Actions
|
||||
# Using the following workaround because currently GitHub Actions
|
||||
# does not support logical AND/OR operations on triggers
|
||||
# It's currently not possible to have `branches` under the `schedule` trigger
|
||||
- name: Checkout the release branch (on release)
|
||||
@@ -64,7 +65,12 @@ jobs:
|
||||
id: metadata
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: ${{ env.BRANCH_NAME }}
|
||||
# Release version tag if the workflow is triggered by a release
|
||||
# Branch name tag if the workflow is triggered by a push
|
||||
# Latest tag if the branch is release and the workflow is triggered by a push
|
||||
tags: |
|
||||
${{ github.event_name == 'release' && github.ref_name || env.BRANCH_NAME }}
|
||||
${{ github.event_name == 'push' && env.BRANCH_NAME == 'release' && 'latest' || '' }}
|
||||
|
||||
# Login into package repository as the person who created the release
|
||||
- name: Log in to the Container registry
|
||||
@@ -86,10 +92,3 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.metadata.outputs.tags }}
|
||||
labels: ${{ steps.metadata.outputs.labels }}
|
||||
|
||||
# If the workflow is triggered by a release, marks and push the image as such
|
||||
- name: Docker tag latest and push
|
||||
if: ${{ github.event_name == 'release' }}
|
||||
run: |
|
||||
docker tag $IMAGE_NAME:${{ github.ref_name }} $IMAGE_NAME:latest
|
||||
docker push $IMAGE_NAME:latest
|
||||
|
43
.github/workflows/update-docs.yml
vendored
@@ -1,43 +0,0 @@
|
||||
name: Update SillyTavern-Docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
update_docs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout current repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Checkout SillyTavern-Docs repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: SillyTavern/SillyTavern-Docs
|
||||
path: SillyTavern-Docs
|
||||
|
||||
- name: Clone SillyTavern wiki into SillyTavern-Docs/extensions
|
||||
run: rm -rf SillyTavern-Docs/extensions && git clone https://github.com/SillyTavern/SillyTavern.wiki.git SillyTavern-Docs/extensions && rm -rf SillyTavern-Docs/extensions/.git
|
||||
|
||||
- name: Copy files
|
||||
run: |
|
||||
cp public/notes/content.md SillyTavern-Docs/guidebook.md
|
||||
cp faq.md SillyTavern-Docs/faq.md
|
||||
cp readme.md SillyTavern-Docs/readme.md
|
||||
cp public/notes/update.md SillyTavern-Docs/update.md
|
||||
|
||||
- name: Deploy to external repository
|
||||
uses: cpina/github-action-push-to-another-repository@main
|
||||
env:
|
||||
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
|
||||
with:
|
||||
# GitHub Action output files
|
||||
source-directory: SillyTavern-Docs/
|
||||
destination-github-username: SillyTavern
|
||||
destination-repository-name: SillyTavern-Docs
|
||||
user-email: github-actions[bot]@users.noreply.github.com
|
||||
user-name: "GitHub Actions"
|
||||
target-branch: "main"
|
32
.github/workflows/update-i18n.yaml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Update i18n data
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions: # Job-level permissions configuration starts here
|
||||
contents: write # 'write' access to repository contents
|
||||
steps:
|
||||
- name: disable auto crlf
|
||||
uses: steve02081504/disable-autocrlf@v1
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.
|
||||
- name: Create local changes
|
||||
run: |
|
||||
aria2c https://raw.githubusercontent.com/SillyTavern/SillyTavern-i18n/main/generate.py
|
||||
aria2c https://raw.githubusercontent.com/SillyTavern/SillyTavern-i18n/main/requirements.txt
|
||||
pip install -r ./requirements.txt
|
||||
python ./generate.py "" --sort-keys
|
||||
rm -f ./generate.py ./requirements.txt
|
||||
- name: add all
|
||||
run: git add -A
|
||||
- name: push
|
||||
uses: actions-go/push@master
|
||||
with:
|
||||
author-email: 41898282+github-actions[bot]@users.noreply.github.com
|
||||
author-name: github-actions[bot]
|
||||
commit-message: 'i18n changes'
|
||||
remote: origin
|
3
.gitignore
vendored
@@ -25,6 +25,7 @@ public/stats.json
|
||||
/docker/config
|
||||
/docker/user
|
||||
/docker/extensions
|
||||
/docker/data
|
||||
.DS_Store
|
||||
public/settings.json
|
||||
/thumbnails
|
||||
@@ -46,3 +47,5 @@ access.log
|
||||
public/css/user.css
|
||||
/plugins/
|
||||
/data
|
||||
/default/scaffold
|
||||
public/scripts/extensions/third-party
|
||||
|
@@ -5,4 +5,9 @@ node_modules/
|
||||
secrets.json
|
||||
/dist
|
||||
/backups/
|
||||
/data
|
||||
/cache
|
||||
access.log
|
||||
.github
|
||||
.vscode
|
||||
.git
|
||||
|
3
.vscode/extensions.json
vendored
@@ -4,7 +4,8 @@
|
||||
// List of extensions which should be recommended for users of this workspace.
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"EditorConfig.EditorConfig"
|
||||
"EditorConfig.EditorConfig",
|
||||
"mrcrowl.easy-less"
|
||||
],
|
||||
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
||||
"unwantedRecommendations": []
|
||||
|
32
CONTRIBUTING.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# How to contribute to SillyTavern
|
||||
|
||||
## Setting up the dev environment
|
||||
|
||||
1. Required software: git and node.
|
||||
2. Recommended editor: Visual Studio Code.
|
||||
3. You can also use GitHub Codespaces which sets up everything for you.
|
||||
|
||||
## Getting the code ready
|
||||
|
||||
1. Register a GitHub account.
|
||||
2. Fork this repository under your account.
|
||||
3. Clone the fork onto your machine.
|
||||
4. Open the cloned repository in the code editor.
|
||||
5. Create a git branch (recommended).
|
||||
6. Make your changes and test them locally.
|
||||
7. Commit the changes and push the branch to the remote repo.
|
||||
8. Go to GitHub, and open a pull request, targeting the upstream branch.
|
||||
|
||||
## Contribution guidelines
|
||||
|
||||
1. Our standards are pretty low, but make sure the code is not too ugly:
|
||||
- Run VS Code's autoformat when you're done.
|
||||
- Check with ESLint by running `npm run lint`, then fix the errors.
|
||||
- Use common sense and follow existing naming conventions.
|
||||
2. Create pull requests for the staging branch, 99% of contributions should go there. That way people could test your code before the next stable release.
|
||||
3. You can still send a pull request for release in the following scenarios:
|
||||
- Updating README.
|
||||
- Updating GitHub Actions.
|
||||
- Hotfixing a critical bug.
|
||||
4. Project maintainers will test and can change your code before merging.
|
||||
5. Mind the license. Your contributions will be licensed under the GNU Affero General Public License. If you don't know what that implies, consult your lawyer.
|
16
Dockerfile
@@ -1,4 +1,4 @@
|
||||
FROM node:19.1.0-alpine3.16
|
||||
FROM node:lts-alpine3.18
|
||||
|
||||
# Arguments
|
||||
ARG APP_HOME=/home/node/app
|
||||
@@ -26,19 +26,9 @@ COPY . ./
|
||||
|
||||
# Copy default chats, characters and user avatars to <folder>.default folder
|
||||
RUN \
|
||||
IFS="," RESOURCES="assets,backgrounds,user,context,instruct,QuickReplies,movingUI,themes,characters,chats,groups,group chats,User Avatars,worlds,OpenAI Settings,NovelAI Settings,KoboldAI Settings,TextGen Settings" && \
|
||||
\
|
||||
echo "*** Store default $RESOURCES in <folder>.default ***" && \
|
||||
for R in $RESOURCES; do mv "public/$R" "public/$R.default"; done || true && \
|
||||
\
|
||||
echo "*** Create symbolic links to config directory ***" && \
|
||||
for R in $RESOURCES; do ln -s "../config/$R" "public/$R"; done || true && \
|
||||
\
|
||||
rm -f "config.yaml" "public/settings.json" || true && \
|
||||
rm -f "config.yaml" || true && \
|
||||
ln -s "./config/config.yaml" "config.yaml" || true && \
|
||||
ln -s "../config/settings.json" "public/settings.json" || true && \
|
||||
mkdir "config" || true && \
|
||||
mkdir -p "public/user" || true
|
||||
mkdir "config" || true
|
||||
|
||||
# Cleanup unnecessary files
|
||||
RUN \
|
||||
|
@@ -33,7 +33,14 @@ If you insist on installing via a zip, here is the tedious process for doing the
|
||||
2. Unzip it into a folder OUTSIDE of your current ST installation.
|
||||
3. Do the usual setup procedure for your OS to install the NodeJS requirements.
|
||||
|
||||
4. Copy the following files/folders as necessary(*) from your old ST installation:
|
||||
4a. Updating 1.12.0 and above
|
||||
|
||||
Copy the user data directory from your data root into the data root of the new install.
|
||||
|
||||
By default: /data/default-user
|
||||
|
||||
4a. Migrating from <1.12.0 to >=1.20.0
|
||||
Copy the following files/folders as necessary(*) from your old ST installation:
|
||||
|
||||
- Assets
|
||||
- Backgrounds
|
||||
@@ -54,16 +61,15 @@ If you insist on installing via a zip, here is the tedious process for doing the
|
||||
- Worlds
|
||||
- User
|
||||
- settings.json
|
||||
- secrets.json <---- this one is in the base folder, not /public/
|
||||
- secrets.json <---- This one is in the base folder, not /public/
|
||||
|
||||
(*) 'As necessary' = "If you made any custom content related to those folders".
|
||||
None of the folders are mandatory, so only copy what you need.
|
||||
|
||||
**NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER.**
|
||||
Doing so could break the new install and prevent new features from being present.
|
||||
Paste those items into the /data/default-user folder of the new install.
|
||||
|
||||
5. Paste those items into the /Public/ folder of the new install.
|
||||
5. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
|
||||
|
||||
6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
|
||||
|
||||
7. If everything shows up, you can safely delete the old ST folder.
|
||||
6. If everything shows up, you can safely delete the old ST folder.
|
||||
|
9
backups/!README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Looking for setting snapshots or chat backups?
|
||||
|
||||
Individual user backups are now located in the data directory.
|
||||
|
||||
Example for the default user under default data root:
|
||||
|
||||
/data/default-user/backups
|
||||
|
||||
This folder remains for historical purposes only.
|
@@ -1,10 +1,16 @@
|
||||
# -- NETWORK CONFIGURATION --
|
||||
# -- DATA CONFIGURATION --
|
||||
# Root directory for user data storage
|
||||
dataRoot: ./data
|
||||
# -- SERVER CONFIGURATION --
|
||||
# Listen for incoming connections
|
||||
listen: false
|
||||
# Server port
|
||||
port: 8000
|
||||
# -- SECURITY CONFIGURATION --
|
||||
# Toggle whitelist mode
|
||||
whitelistMode: true
|
||||
# Whitelist will also verify IP in X-Forwarded-For / X-Real-IP headers
|
||||
enableForwardedWhitelist: true
|
||||
# Whitelist of allowed IP addresses
|
||||
whitelist:
|
||||
- 127.0.0.1
|
||||
@@ -16,7 +22,15 @@ basicAuthUser:
|
||||
password: "password"
|
||||
# Enables CORS proxy middleware
|
||||
enableCorsProxy: false
|
||||
# Disable security checks - NOT RECOMMENDED
|
||||
# Enable multi-user mode
|
||||
enableUserAccounts: false
|
||||
# Enable discreet login mode: hides user list on the login screen
|
||||
enableDiscreetLogin: false
|
||||
# Used to sign session cookies. Will be auto-generated if not set
|
||||
cookieSecret: ''
|
||||
# Disable CSRF protection - NOT RECOMMENDED
|
||||
disableCsrfProtection: false
|
||||
# Disable startup security checks - NOT RECOMMENDED
|
||||
securityOverride: false
|
||||
# -- ADVANCED CONFIGURATION --
|
||||
# Open the browser automatically
|
||||
@@ -34,6 +48,14 @@ allowKeysExposure: false
|
||||
skipContentCheck: false
|
||||
# Disable automatic chats backup
|
||||
disableChatBackup: false
|
||||
# Number of backups to keep for each chat and settings file
|
||||
numberOfBackups: 50
|
||||
# Allowed hosts for card downloads
|
||||
whitelistImportDomains:
|
||||
- localhost
|
||||
- cdn.discordapp.com
|
||||
- files.catbox.moe
|
||||
- raw.githubusercontent.com
|
||||
# API request overrides (for KoboldAI and Text Completion APIs)
|
||||
## Note: host includes the port number if it's not the default (80 or 443)
|
||||
## Format is an array of objects:
|
||||
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 384 KiB After Width: | Height: | Size: 384 KiB |
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 487 KiB |
Before Width: | Height: | Size: 307 KiB After Width: | Height: | Size: 307 KiB |
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 318 KiB |
Before Width: | Height: | Size: 581 KiB After Width: | Height: | Size: 581 KiB |
Before Width: | Height: | Size: 561 KiB After Width: | Height: | Size: 561 KiB |
Before Width: | Height: | Size: 505 KiB After Width: | Height: | Size: 505 KiB |
Before Width: | Height: | Size: 501 KiB After Width: | Height: | Size: 501 KiB |
Before Width: | Height: | Size: 443 KiB After Width: | Height: | Size: 443 KiB |
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 480 KiB |
Before Width: | Height: | Size: 660 KiB After Width: | Height: | Size: 660 KiB |
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 616 KiB After Width: | Height: | Size: 616 KiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 305 KiB |
Before Width: | Height: | Size: 436 KiB After Width: | Height: | Size: 436 KiB |
Before Width: | Height: | Size: 426 KiB After Width: | Height: | Size: 426 KiB |
Before Width: | Height: | Size: 629 KiB After Width: | Height: | Size: 629 KiB |
Before Width: | Height: | Size: 656 KiB After Width: | Height: | Size: 656 KiB |
Before Width: | Height: | Size: 528 KiB After Width: | Height: | Size: 528 KiB |
Before Width: | Height: | Size: 338 KiB |
Before Width: | Height: | Size: 598 KiB |
@@ -1,16 +1,120 @@
|
||||
[
|
||||
{
|
||||
"filename": "settings.json",
|
||||
"type": "settings"
|
||||
},
|
||||
{
|
||||
"filename": "themes/Dark Lite.json",
|
||||
"type": "theme"
|
||||
},
|
||||
{
|
||||
"filename": "themes/Cappuccino.json",
|
||||
"type": "theme"
|
||||
},
|
||||
{
|
||||
"filename": "themes/Celestial Macaron.json",
|
||||
"type": "theme"
|
||||
},
|
||||
{
|
||||
"filename": "themes/Dark V 1.0.json",
|
||||
"type": "theme"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/__transparent.png",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/_black.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/_white.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/bedroom clean.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/bedroom cyberpunk.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/bedroom red.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/bedroom tatami.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/cityscape medieval market.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/cityscape medieval night.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/cityscape postapoc.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/forest treehouse fireworks air baloons (by kallmeflocc).jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/japan classroom side.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/japan classroom.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/japan path cherry blossom.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/japan university.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape autumn great tree.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape beach day.png",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape beach night.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape mountain lake.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape postapoc.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/landscape winter lake house.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/royal.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/tavern day.jpg",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "default_Seraphina.png",
|
||||
"type": "character"
|
||||
},
|
||||
{
|
||||
"filename": "default_CodingSensei.png",
|
||||
"type": "character"
|
||||
},
|
||||
{
|
||||
"filename": "default_FluxTheCat.png",
|
||||
"type": "character"
|
||||
},
|
||||
{
|
||||
"filename": "Seraphina",
|
||||
"type": "sprites"
|
||||
@@ -211,7 +315,6 @@
|
||||
"filename": "presets/novel/Writers-Daemon-Kayra.json",
|
||||
"type": "novel_preset"
|
||||
},
|
||||
|
||||
{
|
||||
"filename": "presets/textgen/Asterism.json",
|
||||
"type": "textgen_preset"
|
||||
@@ -381,7 +484,11 @@
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/DreamGen Role-Play V1.json",
|
||||
"filename": "presets/context/DreamGen Role-Play V1 ChatML.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/DreamGen Role-Play V1 Llama3.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
@@ -436,6 +543,10 @@
|
||||
"filename": "presets/context/Llama 3 Instruct.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/Phi.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Adventure.json",
|
||||
"type": "instruct"
|
||||
@@ -457,7 +568,11 @@
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/DreamGen Role-Play V1.json",
|
||||
"filename": "presets/instruct/DreamGen Role-Play V1 ChatML.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/DreamGen Role-Play V1 Llama3.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
@@ -527,5 +642,37 @@
|
||||
{
|
||||
"filename": "presets/instruct/Llama 3 Instruct.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Phi.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/moving-ui/Default.json",
|
||||
"type": "moving_ui"
|
||||
},
|
||||
{
|
||||
"filename": "presets/moving-ui/Black Magic Time.json",
|
||||
"type": "moving_ui"
|
||||
},
|
||||
{
|
||||
"filename": "presets/quick-replies/Default.json",
|
||||
"type": "quick_replies"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/Llama-3-Instruct-Names.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/instruct/ChatML-Names.json",
|
||||
"type": "instruct"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/Llama-3-Instruct-Names.json",
|
||||
"type": "context"
|
||||
},
|
||||
{
|
||||
"filename": "presets/context/ChatML-Names.json",
|
||||
"type": "context"
|
||||
}
|
||||
]
|
||||
|
12
default/content/presets/context/ChatML-Names.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"story_string": "<|im_start|>system\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|im_end|>",
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"include_newline": false,
|
||||
"single_line": false,
|
||||
"name": "ChatML-Names"
|
||||
}
|
@@ -8,5 +8,5 @@
|
||||
"trim_sentences": true,
|
||||
"include_newline": false,
|
||||
"single_line": false,
|
||||
"name": "DreamGen Role-Play V1"
|
||||
"name": "DreamGen Role-Play V1 ChatML"
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"story_string": "<|start_header_id|>system<|end_header_id|>\n\n{{#if system}}{{system}}\n\n\n{{/if}}## Overall plot description:\n\n{{#if scenario}}{{scenario}}{{else}}Conversation between {{char}} and {{user}}.{{/if}}{{#if wiBefore}}\n\n{{wiBefore}}{{/if}}\n\n\n## Characters:\n\n### {{char}}\n\n{{#if description}}{{description}}\n\n{{/if}}{{#if personality}}{{personality}}\n\n{{/if}}### {{user}}\n\n{{#if persona}}{{persona}}{{else}}{{user}} is the protagonist of the role-play.{{/if}}{{#if wiAfter}}\n\n{{wiAfter}}{{/if}}{{#if mesExamples}}\n\n{{mesExamples}}{{/if}}",
|
||||
"example_separator": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nWrite an example narrative / conversation that is not part of the main story.",
|
||||
"chat_start": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nStart the role-play between {{char}} and {{user}}.",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": false,
|
||||
"trim_sentences": true,
|
||||
"include_newline": false,
|
||||
"single_line": false,
|
||||
"name": "DreamGen Role-Play V1 Llama3"
|
||||
}
|
12
default/content/presets/context/Llama-3-Instruct-Names.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"story_string": "<|start_header_id|>system<|end_header_id|>\n\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|eot_id|>",
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"include_newline": false,
|
||||
"single_line": false,
|
||||
"name": "Llama-3-Instruct-Names"
|
||||
}
|
12
default/content/presets/context/Phi.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"story_string": "<|system|>\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|end|>\n",
|
||||
"example_separator": "",
|
||||
"chat_start": "",
|
||||
"use_stop_strings": false,
|
||||
"allow_jailbreak": false,
|
||||
"always_force_name2": true,
|
||||
"trim_sentences": false,
|
||||
"include_newline": false,
|
||||
"single_line": false,
|
||||
"name": "Phi"
|
||||
}
|
24
default/content/presets/instruct/ChatML-Names.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"system_prompt": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}.",
|
||||
"input_sequence": "<|im_start|>[{{name}}]",
|
||||
"output_sequence": "<|im_start|>[{{name}}]",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence": "<|im_start|>system",
|
||||
"stop_sequence": "<|im_end|>",
|
||||
"wrap": true,
|
||||
"macro": true,
|
||||
"names": false,
|
||||
"names_force_groups": false,
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
"first_output_sequence": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|im_end|>\n",
|
||||
"input_suffix": "<|im_end|>\n",
|
||||
"system_suffix": "<|im_end|>\n",
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": false,
|
||||
"last_system_sequence": "",
|
||||
"name": "ChatML-Names"
|
||||
}
|
@@ -20,5 +20,5 @@
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": true,
|
||||
"last_system_sequence": "",
|
||||
"name": "DreamGen Role-Play V1"
|
||||
"name": "DreamGen Role-Play V1 ChatML"
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"system_prompt": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below.",
|
||||
"input_sequence": "<|eot_id|>\n<|start_header_id|>writer character: {{user}}<|end_header_id|>\n\n",
|
||||
"output_sequence": "<|eot_id|>\n<|start_header_id|>writer character: {{char}}<|end_header_id|>\n\n",
|
||||
"first_output_sequence": "",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
"stop_sequence": "",
|
||||
"separator_sequence": "",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names": false,
|
||||
"names_force_groups": false,
|
||||
"activation_regex": "",
|
||||
"skip_examples": false,
|
||||
"name": "DreamGen Role-Play V1 Llama3"
|
||||
}
|
24
default/content/presets/instruct/Llama-3-Instruct-Names.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"system_prompt": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
|
||||
"input_sequence": "<|start_header_id|>[{{name}}]<|end_header_id|>\n\n",
|
||||
"output_sequence": "<|start_header_id|>[{{name}}]<|end_header_id|>\n\n",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence": "<|start_header_id|>system<|end_header_id|>\n\n",
|
||||
"stop_sequence": "<|eot_id|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names": false,
|
||||
"names_force_groups": false,
|
||||
"activation_regex": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
"first_output_sequence": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|eot_id|>",
|
||||
"input_suffix": "<|eot_id|>",
|
||||
"system_suffix": "<|eot_id|>",
|
||||
"user_alignment_message": "",
|
||||
"system_same_as_user": true,
|
||||
"last_system_sequence": "",
|
||||
"name": "Llama-3-Instruct-Names"
|
||||
}
|
24
default/content/presets/instruct/Phi.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"system_prompt": "Write {{char}}'s next reply in this fictional roleplay with {{user}}.",
|
||||
"input_sequence": "<|user|>\n",
|
||||
"output_sequence": "<|assistant|>\n",
|
||||
"first_output_sequence": "",
|
||||
"last_output_sequence": "",
|
||||
"system_sequence_prefix": "",
|
||||
"system_sequence_suffix": "",
|
||||
"stop_sequence": "<|end|>",
|
||||
"wrap": false,
|
||||
"macro": true,
|
||||
"names": true,
|
||||
"names_force_groups": true,
|
||||
"activation_regex": "",
|
||||
"skip_examples": false,
|
||||
"output_suffix": "<|end|>\n",
|
||||
"input_suffix": "<|end|>\n",
|
||||
"system_sequence": "<|system|>\n",
|
||||
"system_suffix": "<|end|>\n",
|
||||
"user_alignment_message": "",
|
||||
"last_system_sequence": "",
|
||||
"system_same_as_user": false,
|
||||
"name": "Phi"
|
||||
}
|
@@ -231,6 +231,7 @@
|
||||
"api_url_scale": "",
|
||||
"show_external_models": false,
|
||||
"assistant_prefill": "",
|
||||
"assistant_impersonation": "",
|
||||
"human_sysprompt_message": "Let's get started. Please generate your response based on the information and instructions provided above.",
|
||||
"use_ai21_tokenizer": false,
|
||||
"use_google_tokenizer": false,
|
||||
|
@@ -33,8 +33,8 @@
|
||||
"negative_prompt": "",
|
||||
"grammar_string": "",
|
||||
"banned_tokens": "",
|
||||
"ignore_eos_token_aphrodite": false,
|
||||
"spaces_between_special_tokens_aphrodite": true,
|
||||
"ignore_eos_token": false,
|
||||
"spaces_between_special_tokens": true,
|
||||
"type": "ooba",
|
||||
"legacy_api": false,
|
||||
"sampler_order": [
|
||||
|
@@ -33,8 +33,8 @@
|
||||
"negative_prompt": "",
|
||||
"grammar_string": "",
|
||||
"banned_tokens": "",
|
||||
"ignore_eos_token_aphrodite": false,
|
||||
"spaces_between_special_tokens_aphrodite": true,
|
||||
"ignore_eos_token": false,
|
||||
"spaces_between_special_tokens": true,
|
||||
"type": "ooba",
|
||||
"legacy_api": false,
|
||||
"sampler_order": [
|
||||
|
@@ -33,8 +33,8 @@
|
||||
"negative_prompt": "",
|
||||
"grammar_string": "",
|
||||
"banned_tokens": "",
|
||||
"ignore_eos_token_aphrodite": false,
|
||||
"spaces_between_special_tokens_aphrodite": true,
|
||||
"ignore_eos_token": false,
|
||||
"spaces_between_special_tokens": true,
|
||||
"type": "ooba",
|
||||
"legacy_api": false,
|
||||
"sampler_order": [
|
||||
|
@@ -95,7 +95,7 @@
|
||||
"user_prompt_bias": "",
|
||||
"show_user_prompt_bias": true,
|
||||
"markdown_escape_strings": "",
|
||||
"fast_ui_mode": false,
|
||||
"fast_ui_mode": true,
|
||||
"avatar_style": 0,
|
||||
"chat_display": 0,
|
||||
"chat_width": 50,
|
||||
@@ -115,16 +115,17 @@
|
||||
"italics_text_color": "rgba(145, 145, 145, 1)",
|
||||
"underline_text_color": "rgba(188, 231, 207, 1)",
|
||||
"quote_text_color": "rgba(225, 138, 36, 1)",
|
||||
"chat_tint_color": "rgba(23, 23, 23, 1)",
|
||||
"blur_tint_color": "rgba(23, 23, 23, 1)",
|
||||
"user_mes_blur_tint_color": "rgba(0, 0, 0, 0.9)",
|
||||
"bot_mes_blur_tint_color": "rgba(0, 0, 0, 0.9)",
|
||||
"user_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
|
||||
"bot_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
|
||||
"shadow_color": "rgba(0, 0, 0, 1)",
|
||||
"waifuMode": false,
|
||||
"movingUI": false,
|
||||
"movingUIState": {},
|
||||
"movingUIPreset": "Default",
|
||||
"noShadows": true,
|
||||
"theme": "Default (Dark) 1.7.1",
|
||||
"theme": "Dark Lite",
|
||||
"auto_swipe": false,
|
||||
"auto_swipe_minimum_length": 0,
|
||||
"auto_swipe_blacklist": [],
|
||||
@@ -139,7 +140,7 @@
|
||||
"hotswap_enabled": true,
|
||||
"timer_enabled": false,
|
||||
"timestamps_enabled": true,
|
||||
"timestamp_model_icon": false,
|
||||
"timestamp_model_icon": true,
|
||||
"mesIDDisplay_enabled": false,
|
||||
"max_context_unlocked": false,
|
||||
"prefer_character_prompt": true,
|
||||
@@ -193,7 +194,8 @@
|
||||
"encode_tags": false,
|
||||
"enableLabMode": false,
|
||||
"enableZenSliders": false,
|
||||
"ui_mode": 1
|
||||
"ui_mode": 1,
|
||||
"forbid_external_media": true
|
||||
},
|
||||
"extension_settings": {
|
||||
"apiUrl": "http://localhost:5100",
|
||||
@@ -385,14 +387,8 @@
|
||||
}
|
||||
],
|
||||
"tag_map": {
|
||||
"default_FluxTheCat.png": [
|
||||
"1345561466591"
|
||||
],
|
||||
"default_Seraphina.png": [
|
||||
"1345561466591"
|
||||
],
|
||||
"default_CodingSensei.png": [
|
||||
"1345561466591"
|
||||
]
|
||||
},
|
||||
"nai_settings": {
|
||||
@@ -628,6 +624,7 @@
|
||||
"show_external_models": false,
|
||||
"proxy_password": "",
|
||||
"assistant_prefill": "",
|
||||
"assistant_impersonation": "",
|
||||
"use_ai21_tokenizer": false
|
||||
}
|
||||
}
|
35
default/content/themes/Cappuccino.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Cappuccino",
|
||||
"blur_strength": 3,
|
||||
"main_text_color": "rgba(235, 235, 235, 1)",
|
||||
"italics_text_color": "rgba(230, 210, 190, 1)",
|
||||
"underline_text_color": "rgba(205, 180, 160, 1)",
|
||||
"quote_text_color": "rgba(165, 140, 115, 1)",
|
||||
"blur_tint_color": "rgba(34, 30, 32, 0.95)",
|
||||
"chat_tint_color": "rgba(50, 45, 50, 0.75)",
|
||||
"user_mes_blur_tint_color": "rgba(34, 30, 32, 0.75)",
|
||||
"bot_mes_blur_tint_color": "rgba(34, 30, 32, 0.75)",
|
||||
"shadow_color": "rgba(0, 0, 0, 0.3)",
|
||||
"shadow_width": 1,
|
||||
"border_color": "rgba(80, 80, 80, 0.89)",
|
||||
"font_scale": 1,
|
||||
"fast_ui_mode": false,
|
||||
"waifuMode": false,
|
||||
"avatar_style": 0,
|
||||
"chat_display": 1,
|
||||
"noShadows": false,
|
||||
"chat_width": 50,
|
||||
"timer_enabled": false,
|
||||
"timestamps_enabled": true,
|
||||
"timestamp_model_icon": true,
|
||||
"mesIDDisplay_enabled": true,
|
||||
"message_token_count_enabled": false,
|
||||
"expand_message_actions": false,
|
||||
"enableZenSliders": false,
|
||||
"enableLabMode": false,
|
||||
"hotswap_enabled": true,
|
||||
"custom_css": "",
|
||||
"bogus_folders": true,
|
||||
"reduced_motion": false,
|
||||
"compact_input_area": true
|
||||
}
|
37
default/content/themes/Celestial Macaron.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "Celestial Macaron",
|
||||
"blur_strength": 10,
|
||||
"main_text_color": "rgba(229, 175, 162, 1)",
|
||||
"italics_text_color": "rgba(146, 147, 161, 1)",
|
||||
"underline_text_color": "rgba(157, 215, 198, 1)",
|
||||
"quote_text_color": "rgba(197, 202, 206, 1)",
|
||||
"blur_tint_color": "rgba(23, 36, 55, 0.9)",
|
||||
"chat_tint_color": "rgba(18, 26, 40, 0.9)",
|
||||
"user_mes_blur_tint_color": "rgba(51, 67, 90, 0.7)",
|
||||
"bot_mes_blur_tint_color": "rgba(23, 36, 55, 0.75)",
|
||||
"shadow_color": "rgba(0, 0, 0, 0.3)",
|
||||
"shadow_width": 1,
|
||||
"border_color": "rgba(60, 74, 110, 0.93)",
|
||||
"font_scale": 1,
|
||||
"fast_ui_mode": false,
|
||||
"waifuMode": false,
|
||||
"avatar_style": 0,
|
||||
"chat_display": 1,
|
||||
"noShadows": true,
|
||||
"chat_width": 58,
|
||||
"timer_enabled": true,
|
||||
"timestamps_enabled": true,
|
||||
"timestamp_model_icon": false,
|
||||
"mesIDDisplay_enabled": true,
|
||||
"hideChatAvatars_enabled": false,
|
||||
"message_token_count_enabled": true,
|
||||
"expand_message_actions": true,
|
||||
"enableZenSliders": false,
|
||||
"enableLabMode": false,
|
||||
"hotswap_enabled": true,
|
||||
"custom_css": "",
|
||||
"bogus_folders": true,
|
||||
"zoomed_avatar_magnification": false,
|
||||
"reduced_motion": false,
|
||||
"compact_input_area": true
|
||||
}
|
35
default/content/themes/Dark Lite.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Dark Lite",
|
||||
"blur_strength": 10,
|
||||
"main_text_color": "rgba(220, 220, 210, 1)",
|
||||
"italics_text_color": "rgba(145, 145, 145, 1)",
|
||||
"underline_text_color": "rgba(188, 231, 207, 1)",
|
||||
"quote_text_color": "rgba(225, 138, 36, 1)",
|
||||
"blur_tint_color": "rgba(23, 23, 23, 1)",
|
||||
"chat_tint_color": "rgba(23, 23, 23, 1)",
|
||||
"user_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
|
||||
"bot_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
|
||||
"shadow_color": "rgba(0, 0, 0, 1)",
|
||||
"shadow_width": 2,
|
||||
"border_color": "rgba(0, 0, 0, 1)",
|
||||
"font_scale": 1,
|
||||
"fast_ui_mode": true,
|
||||
"waifuMode": false,
|
||||
"avatar_style": 0,
|
||||
"chat_display": 0,
|
||||
"noShadows": true,
|
||||
"chat_width": 50,
|
||||
"timer_enabled": false,
|
||||
"timestamps_enabled": true,
|
||||
"timestamp_model_icon": true,
|
||||
"mesIDDisplay_enabled": false,
|
||||
"message_token_count_enabled": false,
|
||||
"expand_message_actions": false,
|
||||
"enableZenSliders": "",
|
||||
"enableLabMode": "",
|
||||
"hotswap_enabled": true,
|
||||
"custom_css": "",
|
||||
"bogus_folders": true,
|
||||
"reduced_motion": false,
|
||||
"compact_input_area": true
|
||||
}
|
37
default/content/themes/Dark V 1.0.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "Dark V 1.0",
|
||||
"blur_strength": 13,
|
||||
"main_text_color": "rgba(207, 207, 197, 1)",
|
||||
"italics_text_color": "rgba(145, 145, 145, 1)",
|
||||
"underline_text_color": "rgba(145, 145, 145, 1)",
|
||||
"quote_text_color": "rgba(198, 193, 151, 1)",
|
||||
"blur_tint_color": "rgba(29, 33, 40, 0.9)",
|
||||
"chat_tint_color": "rgba(29, 33, 40, 0.9)",
|
||||
"user_mes_blur_tint_color": "rgba(29, 33, 40, 0.9)",
|
||||
"bot_mes_blur_tint_color": "rgba(29, 33, 40, 0.9)",
|
||||
"shadow_color": "rgba(0, 0, 0, 0.9)",
|
||||
"shadow_width": 2,
|
||||
"border_color": "rgba(0, 0, 0, 1)",
|
||||
"font_scale": 1,
|
||||
"fast_ui_mode": false,
|
||||
"waifuMode": false,
|
||||
"avatar_style": 0,
|
||||
"chat_display": 0,
|
||||
"noShadows": false,
|
||||
"chat_width": 55,
|
||||
"timer_enabled": false,
|
||||
"timestamps_enabled": false,
|
||||
"timestamp_model_icon": false,
|
||||
"mesIDDisplay_enabled": false,
|
||||
"hideChatAvatars_enabled": false,
|
||||
"message_token_count_enabled": false,
|
||||
"expand_message_actions": false,
|
||||
"enableZenSliders": false,
|
||||
"enableLabMode": false,
|
||||
"hotswap_enabled": true,
|
||||
"custom_css": "",
|
||||
"bogus_folders": true,
|
||||
"zoomed_avatar_magnification": true,
|
||||
"reduced_motion": true,
|
||||
"compact_input_area": false
|
||||
}
|
26
default/scaffold/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Content Scaffolding
|
||||
|
||||
Content files in this folder will be copied for all users (old and new) on the server startup.
|
||||
|
||||
1. You **must** create an `index.json` file in `/default/scaffold` for it to work. The syntax is the same as for default content.
|
||||
2. All file paths should be relative to `/default/scaffold`, the use of subdirectories is allowed.
|
||||
3. Scaffolded files are copied first, so they override any of the default files (presets/settings/etc.) that have the same file name.
|
||||
|
||||
## Example
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"filename": "themes/Midnight.json",
|
||||
"type": "theme"
|
||||
},
|
||||
{
|
||||
"filename": "backgrounds/city.png",
|
||||
"type": "background"
|
||||
},
|
||||
{
|
||||
"filename": "characters/Charlie.png",
|
||||
"type": "character"
|
||||
}
|
||||
]
|
||||
```
|
@@ -8,7 +8,7 @@ services:
|
||||
ports:
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- "./extensions:/home/node/app/public/scripts/extensions/third-party"
|
||||
- "./config:/home/node/app/config"
|
||||
- "./user:/home/node/app/public/user"
|
||||
- "./data:/home/node/app/data"
|
||||
- "./plugins:/home/node/app/plugins"
|
||||
restart: unless-stopped
|
||||
|
@@ -1,38 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Initialize missing user files
|
||||
IFS="," RESOURCES="assets,backgrounds,user,context,instruct,QuickReplies,movingUI,themes,characters,chats,groups,group chats,User Avatars,worlds,OpenAI Settings,NovelAI Settings,KoboldAI Settings,TextGen Settings"
|
||||
for R in $RESOURCES; do
|
||||
if [ ! -e "config/$R" ]; then
|
||||
echo "Resource not found, copying from defaults: $R"
|
||||
cp -r "public/$R.default" "config/$R"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -e "config/config.yaml" ]; then
|
||||
echo "Resource not found, copying from defaults: config.yaml"
|
||||
cp -r "default/config.yaml" "config/config.yaml"
|
||||
fi
|
||||
|
||||
if [ ! -e "config/settings.json" ]; then
|
||||
echo "Resource not found, copying from defaults: settings.json"
|
||||
cp -r "default/settings.json" "config/settings.json"
|
||||
fi
|
||||
|
||||
CONFIG_FILE="config.yaml"
|
||||
|
||||
echo "Starting with the following config:"
|
||||
cat $CONFIG_FILE
|
||||
|
||||
if grep -q "listen: false" $CONFIG_FILE; then
|
||||
echo -e "\033[1;31mThe listen parameter is set to false. If you can't connect to the server, edit the \"docker/config/config.yaml\" file and restart the container.\033[0m"
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if grep -q "whitelistMode: true" $CONFIG_FILE; then
|
||||
echo -e "\033[1;31mThe whitelistMode parameter is set to true. If you can't connect to the server, edit the \"docker/config/config.yaml\" file and restart the container.\033[0m"
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
# Start the server
|
||||
exec node server.js
|
||||
exec node server.js --listen
|
||||
|
20
index.d.ts
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import { UserDirectoryList, User } from "./src/users";
|
||||
|
||||
declare global {
|
||||
namespace Express {
|
||||
export interface Request {
|
||||
user: {
|
||||
profile: User;
|
||||
directories: UserDirectoryList;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare module 'express-session' {
|
||||
export interface SessionData {
|
||||
handle: string;
|
||||
touch: number;
|
||||
// other properties...
|
||||
}
|
||||
}
|
@@ -12,6 +12,14 @@
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"**/node_modules/*"
|
||||
"**/node_modules/*",
|
||||
"public/lib",
|
||||
"backups/*",
|
||||
"data/*",
|
||||
"**/dist/*",
|
||||
"dist/*",
|
||||
"cache/*",
|
||||
"src/tokenizers/*",
|
||||
"docker/*",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
1031
package-lock.json
generated
29
package.json
@@ -2,19 +2,21 @@
|
||||
"dependencies": {
|
||||
"@agnai/sentencepiece-js": "^1.1.1",
|
||||
"@agnai/web-tokenizers": "^0.1.3",
|
||||
"@dqbd/tiktoken": "^1.0.13",
|
||||
"@zeldafan0225/ai_horde": "^4.0.1",
|
||||
"@zeldafan0225/ai_horde": "^5.1.0",
|
||||
"archiver": "^7.0.1",
|
||||
"bing-translate-api": "^2.9.1",
|
||||
"body-parser": "^1.20.2",
|
||||
"command-exists": "^1.2.9",
|
||||
"compression": "^1",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cookie-session": "^2.1.0",
|
||||
"cors": "^2.8.5",
|
||||
"csrf-csrf": "^2.2.3",
|
||||
"express": "^4.19.2",
|
||||
"form-data": "^4.0.0",
|
||||
"google-translate-api-browser": "^3.0.1",
|
||||
"gpt3-tokenizer": "^1.1.5",
|
||||
"he": "^1.2.0",
|
||||
"helmet": "^7.1.0",
|
||||
"ip-matching": "^2.1.2",
|
||||
"ipaddr.js": "^2.0.1",
|
||||
"jimp": "^0.22.10",
|
||||
@@ -22,22 +24,28 @@
|
||||
"mime-types": "^2.1.35",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"node-fetch": "^2.6.11",
|
||||
"node-persist": "^4.0.1",
|
||||
"open": "^8.4.2",
|
||||
"png-chunk-text": "^1.0.0",
|
||||
"png-chunks-encode": "^1.0.0",
|
||||
"png-chunks-extract": "^1.0.0",
|
||||
"rate-limiter-flexible": "^5.0.0",
|
||||
"response-time": "^2.3.2",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"sillytavern-transformers": "^2.14.6",
|
||||
"simple-git": "^3.19.1",
|
||||
"tiktoken": "^1.0.15",
|
||||
"vectra": "^0.2.2",
|
||||
"wavefile": "^11.0.0",
|
||||
"write-file-atomic": "^5.0.1",
|
||||
"ws": "^8.13.0",
|
||||
"ws": "^8.17.1",
|
||||
"yaml": "^2.3.4",
|
||||
"yargs": "^17.7.1",
|
||||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"overrides": {
|
||||
"parse-bmfont-xml": {
|
||||
"xml2js": "^0.5.0"
|
||||
@@ -51,8 +59,8 @@
|
||||
"axios": {
|
||||
"follow-redirects": "^1.15.4"
|
||||
},
|
||||
"@zeldafan0225/ai_horde": {
|
||||
"esbuild": "npm:dry-uninstall"
|
||||
"node-fetch": {
|
||||
"whatwg-url": "^14.0.0"
|
||||
}
|
||||
},
|
||||
"name": "sillytavern",
|
||||
@@ -62,13 +70,15 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/SillyTavern/SillyTavern.git"
|
||||
},
|
||||
"version": "1.11.8",
|
||||
"version": "1.12.3",
|
||||
"scripts": {
|
||||
"start": "node server.js",
|
||||
"start-multi": "node server.js --disableCsrf",
|
||||
"start:no-csrf": "node server.js --disableCsrf",
|
||||
"postinstall": "node post-install.js",
|
||||
"lint": "eslint \"src/**/*.js\" \"public/**/*.js\" ./*.js",
|
||||
"lint-fix": "eslint \"src/**/*.js\" \"public/**/*.js\" ./*.js --fix"
|
||||
"lint:fix": "eslint \"src/**/*.js\" \"public/**/*.js\" ./*.js --fix",
|
||||
"plugins:update": "node plugins update",
|
||||
"plugins:install": "node plugins install"
|
||||
},
|
||||
"bin": {
|
||||
"sillytavern": "./server.js"
|
||||
@@ -79,6 +89,7 @@
|
||||
},
|
||||
"main": "server.js",
|
||||
"devDependencies": {
|
||||
"@types/jquery": "^3.5.29",
|
||||
"eslint": "^8.55.0",
|
||||
"jquery": "^3.6.4"
|
||||
}
|
||||
|
75
plugins.js
Normal file
@@ -0,0 +1,75 @@
|
||||
// Plugin manager script.
|
||||
// Usage: node plugins.js update
|
||||
// More operations coming soon.
|
||||
const { default: git } = require('simple-git');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { color } = require('./src/util');
|
||||
|
||||
const pluginsPath = './plugins';
|
||||
|
||||
const command = process.argv[2];
|
||||
|
||||
if (command === 'update') {
|
||||
console.log(color.magenta('Updating all plugins'));
|
||||
updatePlugins();
|
||||
}
|
||||
|
||||
if (command === 'install') {
|
||||
const pluginName = process.argv[3];
|
||||
console.log('Installing a new plugin', color.green(pluginName));
|
||||
installPlugin(pluginName);
|
||||
}
|
||||
|
||||
async function updatePlugins() {
|
||||
const directories = fs.readdirSync(pluginsPath)
|
||||
.filter(file => !file.startsWith('.'))
|
||||
.filter(file => fs.statSync(path.join(pluginsPath, file)).isDirectory());
|
||||
|
||||
console.log(`Found ${color.cyan(directories.length)} directories in ./plugins`);
|
||||
|
||||
for (const directory of directories) {
|
||||
try {
|
||||
console.log(`Updating plugin ${color.green(directory)}...`);
|
||||
const pluginPath = path.join(pluginsPath, directory);
|
||||
const pluginRepo = git(pluginPath);
|
||||
await pluginRepo.fetch();
|
||||
const commitHash = await pluginRepo.revparse(['HEAD']);
|
||||
const trackingBranch = await pluginRepo.revparse(['--abbrev-ref', '@{u}']);
|
||||
const log = await pluginRepo.log({
|
||||
from: commitHash,
|
||||
to: trackingBranch,
|
||||
});
|
||||
|
||||
if (log.total === 0) {
|
||||
console.log(`Plugin ${color.blue(directory)} is already up to date`);
|
||||
continue;
|
||||
}
|
||||
|
||||
await pluginRepo.pull();
|
||||
const latestCommit = await pluginRepo.revparse(['HEAD']);
|
||||
console.log(`Plugin ${color.green(directory)} updated to commit ${color.cyan(latestCommit)}`);
|
||||
} catch (error) {
|
||||
console.error(color.red(`Failed to update plugin ${directory}: ${error.message}`));
|
||||
}
|
||||
}
|
||||
|
||||
console.log(color.magenta('All plugins updated!'));
|
||||
|
||||
}
|
||||
|
||||
async function installPlugin(pluginName) {
|
||||
try {
|
||||
const pluginPath = path.join(pluginsPath, path.basename(pluginName, '.git'));
|
||||
|
||||
if (fs.existsSync(pluginPath)) {
|
||||
return console.log(color.yellow(`Directory already exists at ${pluginPath}`));
|
||||
}
|
||||
|
||||
await git().clone(pluginName, pluginPath, { '--depth': 1 });
|
||||
console.log(`Plugin ${color.green(pluginName)} installed to ${color.cyan(pluginPath)}`);
|
||||
}
|
||||
catch (error) {
|
||||
console.error(color.red(`Failed to install plugin ${pluginName}`), error);
|
||||
}
|
||||
}
|
@@ -60,7 +60,8 @@ function convertConfig() {
|
||||
try {
|
||||
console.log(color.blue('Converting config.conf to config.yaml. Your old config.conf will be renamed to config.conf.bak'));
|
||||
const config = require(path.join(process.cwd(), './config.conf'));
|
||||
fs.renameSync('./config.conf', './config.conf.bak');
|
||||
fs.copyFileSync('./config.conf', './config.conf.bak');
|
||||
fs.rmSync('./config.conf');
|
||||
fs.writeFileSync('./config.yaml', yaml.stringify(config));
|
||||
console.log(color.green('Conversion successful. Please check your config.yaml and fix it if necessary.'));
|
||||
} catch (error) {
|
||||
@@ -106,7 +107,6 @@ function addMissingConfigValues() {
|
||||
*/
|
||||
function createDefaultFiles() {
|
||||
const files = {
|
||||
settings: './public/settings.json',
|
||||
config: './config.yaml',
|
||||
user: './public/css/user.css',
|
||||
};
|
||||
@@ -167,29 +167,6 @@ function copyWasmFiles() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the custom background into settings.json.
|
||||
*/
|
||||
function migrateBackground() {
|
||||
if (!fs.existsSync('./public/css/bg_load.css')) return;
|
||||
|
||||
const bgCSS = fs.readFileSync('./public/css/bg_load.css', 'utf-8');
|
||||
const bgMatch = /url\('([^']*)'\)/.exec(bgCSS);
|
||||
if (!bgMatch) return;
|
||||
const bgFilename = bgMatch[1].replace('../backgrounds/', '');
|
||||
|
||||
const settings = fs.readFileSync('./public/settings.json', 'utf-8');
|
||||
const settingsJSON = JSON.parse(settings);
|
||||
if (Object.hasOwn(settingsJSON, 'background')) {
|
||||
console.log(color.yellow('Both bg_load.css and the "background" setting exist. Please delete bg_load.css manually.'));
|
||||
return;
|
||||
}
|
||||
|
||||
settingsJSON.background = { name: bgFilename, url: `url('backgrounds/${bgFilename}')` };
|
||||
fs.writeFileSync('./public/settings.json', JSON.stringify(settingsJSON, null, 4));
|
||||
fs.rmSync('./public/css/bg_load.css');
|
||||
}
|
||||
|
||||
try {
|
||||
// 0. Convert config.conf to config.yaml
|
||||
convertConfig();
|
||||
@@ -199,8 +176,6 @@ try {
|
||||
copyWasmFiles();
|
||||
// 3. Add missing config values
|
||||
addMissingConfigValues();
|
||||
// 4. Migrate bg_load.css to settings.json
|
||||
migrateBackground();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
@@ -1 +0,0 @@
|
||||
# Put images here to select them as a user persona avatar.
|
@@ -1 +0,0 @@
|
||||
Put ambient audio files here.
|
@@ -1 +0,0 @@
|
||||
Put bgm audio files here
|
@@ -1 +0,0 @@
|
||||
Put blip audio files here
|
@@ -1 +0,0 @@
|
||||
Put live2d model folders here
|
@@ -1 +0,0 @@
|
||||
Put VRM animation files here
|
@@ -1 +0,0 @@
|
||||
Put VRM model files here
|
@@ -1,8 +0,0 @@
|
||||
# Put PNG character cards here.
|
||||
|
||||
To create a sprites folder, name it the same as your character (NOT the PNG file).
|
||||
|
||||
For example:
|
||||
|
||||
- Character: /characters/Asuka Langley.png
|
||||
- Sprite: /characters/Asuka Langley/joy.png
|
@@ -1,5 +0,0 @@
|
||||
# Put Chat JSONL files here in subfolders corresponding to character names
|
||||
|
||||
For example:
|
||||
|
||||
- /chats/Robot/chat.jsonl
|
5
public/css/accounts.css
Normal file
@@ -0,0 +1,5 @@
|
||||
.userAccount {
|
||||
border: 1px solid var(--SmartThemeBorderColor);
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
122
public/css/animations.css
Normal file
@@ -0,0 +1,122 @@
|
||||
/* Fade animations with opacity */
|
||||
@keyframes fade-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fade-out {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Pop animations with opacity and vertical scaling */
|
||||
@keyframes pop-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scaleY(0);
|
||||
}
|
||||
|
||||
/* Make the scaling faster on pop-in, otherwise it looks a bit weird */
|
||||
33% {
|
||||
transform: scaleY(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scaleY(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pop-out {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: scaleY(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scaleY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Flashing for highlighting animation */
|
||||
@keyframes flash {
|
||||
|
||||
20%,
|
||||
60%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
0%,
|
||||
40%,
|
||||
80% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
/* Pulsing highlight, slightly resizing the element */
|
||||
@keyframes pulse {
|
||||
from {
|
||||
transform: scale(1);
|
||||
filter: brightness(1.1);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: scale(1.01);
|
||||
filter: brightness(1.3);
|
||||
}
|
||||
}
|
||||
|
||||
/* Ellipsis animation */
|
||||
@keyframes ellipsis {
|
||||
0% {
|
||||
content: ""
|
||||
}
|
||||
|
||||
25% {
|
||||
content: "."
|
||||
}
|
||||
|
||||
50% {
|
||||
content: ".."
|
||||
}
|
||||
|
||||
75% {
|
||||
content: "..."
|
||||
}
|
||||
}
|
||||
|
||||
/* HEINOUS */
|
||||
@keyframes infinite-spinning {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* STscript animation */
|
||||
@keyframes script_progress_pulse {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
border-top-color: var(--progColor);
|
||||
}
|
||||
|
||||
50% {
|
||||
border-top-color: var(--progFlashColor);
|
||||
}
|
||||
}
|
6
public/css/brands.min.css
vendored
Normal file
@@ -36,7 +36,6 @@ label[for="extensions_autoconnect"] {
|
||||
|
||||
.extensions_info {
|
||||
text-align: left;
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
.extensions_info h3 {
|
||||
@@ -97,110 +96,11 @@ input.extension_missing[type="checkbox"] {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/** LEFT COLUMN **/
|
||||
/* Must be always on top */
|
||||
#extensions_settings>#assets_ui {
|
||||
order: -1;
|
||||
/* Fixes order of settings for extensions */
|
||||
.extension_container {
|
||||
display: contents;
|
||||
}
|
||||
|
||||
#extensions_settings>.expression_settings {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
#extensions_settings>.background_settings {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
#extensions_settings>.sd_settings {
|
||||
order: 4;
|
||||
}
|
||||
|
||||
#extensions_settings>#tts_settings {
|
||||
order: 5;
|
||||
}
|
||||
|
||||
#extensions_settings>#rvc_settings {
|
||||
order: 6;
|
||||
}
|
||||
|
||||
#extensions_settings>.objective-settings {
|
||||
order: 7;
|
||||
}
|
||||
|
||||
#extensions_settings>#speech_recognition_settings {
|
||||
order: 8;
|
||||
}
|
||||
|
||||
#extensions_settings>#audio_settings {
|
||||
order: 9;
|
||||
}
|
||||
|
||||
/** RIGHT COLUMN **/
|
||||
#extensions_settings2>.translation_settings {
|
||||
order: 1;
|
||||
}
|
||||
|
||||
#extensions_settings2>.caption_settings {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
#extensions_settings2>.quickReplySettings {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
#extensions_settings2>.idle-settings {
|
||||
order: 4;
|
||||
}
|
||||
|
||||
#extensions_settings2>#memory_settings {
|
||||
order: 5;
|
||||
}
|
||||
|
||||
#extensions_settings2>.hypebot_settings {
|
||||
order: 6;
|
||||
}
|
||||
|
||||
#extensions_settings2>.regex_settings {
|
||||
order: 7;
|
||||
}
|
||||
|
||||
#extensions_settings2>.vectors_settings {
|
||||
order: 8;
|
||||
}
|
||||
|
||||
#extensions_settings2>.chromadb_settings {
|
||||
order: 9;
|
||||
}
|
||||
|
||||
#extensions_settings2>.randomizer_settings {
|
||||
order: 10;
|
||||
}
|
||||
|
||||
/** WAND MENU **/
|
||||
#extensionsMenu>#ttsExtensionMenuItem {
|
||||
order: 1;
|
||||
}
|
||||
|
||||
#extensionsMenu>#sd_gen {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
#extensionsMenu>#send_picture {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
#extensionsMenu>#token_counter {
|
||||
order: 4;
|
||||
}
|
||||
|
||||
#extensionsMenu>#objective-task-manual-check-menu-item {
|
||||
order: 5;
|
||||
}
|
||||
|
||||
#extensionsMenu>#roll_dice {
|
||||
order: 6;
|
||||
}
|
||||
|
||||
#extensionsMenu>#translate_chat {
|
||||
order: 7;
|
||||
#extensionsMenu>div.extension_container:empty {
|
||||
display: none;
|
||||
}
|
||||
|
8488
public/css/fontawesome.css
vendored
9
public/css/fontawesome.min.css
vendored
Normal file
@@ -1,4 +1,4 @@
|
||||
#loader, #preloader {
|
||||
#preloader {
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
44
public/css/login.css
Normal file
@@ -0,0 +1,44 @@
|
||||
body.login #shadow_popup {
|
||||
opacity: 1;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
body.login .logo {
|
||||
max-width: 30px;
|
||||
}
|
||||
|
||||
body.login #logoBlock {
|
||||
align-items: center;
|
||||
margin: 0 auto;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
body.login .userSelect {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: var(--SmartThemeBodyColor);
|
||||
border: 1px solid var(--SmartThemeBorderColor);
|
||||
border-radius: 5px;
|
||||
padding: 3px 5px;
|
||||
width: 30%;
|
||||
cursor: pointer;
|
||||
margin: 5px 0;
|
||||
transition: background-color 0.15s ease-in-out;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body.login .userSelect .userName,
|
||||
body.login .userSelect .userHandle {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
body.login .userSelect:hover {
|
||||
background-color: var(--black30a);
|
||||
}
|
@@ -98,7 +98,7 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.logprobs_top_candidate:not([disabled]):hover, .logprobs_top_candidate:not([disabled]):focus {
|
||||
.logprobs_top_candidate:not([disabled]):hover {
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
|