pygpt-net 2.6.27__py3-none-any.whl → 2.6.29__py3-none-any.whl
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.
- pygpt_net/CHANGELOG.txt +12 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +5 -1
- pygpt_net/controller/kernel/kernel.py +2 -0
- pygpt_net/controller/notepad/notepad.py +10 -1
- pygpt_net/controller/theme/common.py +2 -0
- pygpt_net/controller/theme/markdown.py +2 -0
- pygpt_net/controller/theme/theme.py +3 -0
- pygpt_net/controller/ui/tabs.py +5 -0
- pygpt_net/core/audio/backend/native.py +1 -3
- pygpt_net/core/command/command.py +2 -0
- pygpt_net/core/idx/llm.py +21 -3
- pygpt_net/core/render/web/helpers.py +13 -3
- pygpt_net/core/render/web/renderer.py +3 -3
- pygpt_net/data/config/config.json +3 -3
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/config/settings.json +27 -28
- pygpt_net/data/css/web-blocks.darkest.css +91 -0
- pygpt_net/data/css/web-chatgpt.css +7 -5
- pygpt_net/data/css/web-chatgpt.dark.css +5 -2
- pygpt_net/data/css/web-chatgpt.darkest.css +91 -0
- pygpt_net/data/css/web-chatgpt.light.css +8 -2
- pygpt_net/data/css/web-chatgpt_wide.css +7 -4
- pygpt_net/data/css/web-chatgpt_wide.dark.css +5 -2
- pygpt_net/data/css/web-chatgpt_wide.darkest.css +91 -0
- pygpt_net/data/css/web-chatgpt_wide.light.css +9 -6
- pygpt_net/data/themes/dark_darkest.css +31 -0
- pygpt_net/data/themes/dark_darkest.xml +10 -0
- pygpt_net/plugin/tuya/__init__.py +12 -0
- pygpt_net/plugin/tuya/config.py +256 -0
- pygpt_net/plugin/tuya/plugin.py +117 -0
- pygpt_net/plugin/tuya/worker.py +588 -0
- pygpt_net/plugin/wikipedia/__init__.py +12 -0
- pygpt_net/plugin/wikipedia/config.py +228 -0
- pygpt_net/plugin/wikipedia/plugin.py +114 -0
- pygpt_net/plugin/wikipedia/worker.py +430 -0
- pygpt_net/provider/core/config/patch.py +11 -0
- pygpt_net/ui/widget/tabs/output.py +2 -0
- pygpt_net/ui/widget/textarea/input.py +10 -7
- {pygpt_net-2.6.27.dist-info → pygpt_net-2.6.29.dist-info}/METADATA +50 -6
- {pygpt_net-2.6.27.dist-info → pygpt_net-2.6.29.dist-info}/RECORD +44 -31
- {pygpt_net-2.6.27.dist-info → pygpt_net-2.6.29.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.27.dist-info → pygpt_net-2.6.29.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.27.dist-info → pygpt_net-2.6.29.dist-info}/entry_points.txt +0 -0
pygpt_net/CHANGELOG.txt
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
2.6.29 (2025-08-28)
|
|
2
|
+
|
|
3
|
+
- Verbose options have been moved to the Developer section in settings.
|
|
4
|
+
- Enhanced logging of embeddings usage.
|
|
5
|
+
- Fixed styles list.
|
|
6
|
+
|
|
7
|
+
2.6.28 (2025-08-27)
|
|
8
|
+
|
|
9
|
+
- Added new plugins: Tuya (IoT) and Wikipedia.
|
|
10
|
+
- Improved formatting of JSON command output.
|
|
11
|
+
- Fixed CSS issues.
|
|
12
|
+
|
|
1
13
|
2.6.27 (2025-08-26)
|
|
2
14
|
|
|
3
15
|
- Simplified audio input: A microphone icon has been added to the input field.
|
pygpt_net/__init__.py
CHANGED
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.08.
|
|
9
|
+
# Updated Date: 2025.08.28 00:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
__author__ = "Marcin Szczygliński"
|
|
13
13
|
__copyright__ = "Copyright 2025, Marcin Szczygliński"
|
|
14
14
|
__credits__ = ["Marcin Szczygliński"]
|
|
15
15
|
__license__ = "MIT"
|
|
16
|
-
__version__ = "2.6.
|
|
17
|
-
__build__ = "2025-08-
|
|
16
|
+
__version__ = "2.6.29"
|
|
17
|
+
__build__ = "2025-08-28"
|
|
18
18
|
__maintainer__ = "Marcin Szczygliński"
|
|
19
19
|
__github__ = "https://github.com/szczyglis-dev/py-gpt"
|
|
20
20
|
__report__ = "https://github.com/szczyglis-dev/py-gpt/issues"
|
pygpt_net/app.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.08.
|
|
9
|
+
# Updated Date: 2025.08.27 20:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os
|
|
@@ -89,6 +89,8 @@ from pygpt_net.plugin.slack import Plugin as SlackPlugin
|
|
|
89
89
|
from pygpt_net.plugin.github import Plugin as GithubPlugin
|
|
90
90
|
from pygpt_net.plugin.bitbucket import Plugin as BitbucketPlugin
|
|
91
91
|
from pygpt_net.plugin.server import Plugin as ServerPlugin
|
|
92
|
+
from pygpt_net.plugin.tuya import Plugin as TuyaPlugin
|
|
93
|
+
from pygpt_net.plugin.wikipedia import Plugin as WikipediaPlugin
|
|
92
94
|
|
|
93
95
|
# agents (Llama-index)
|
|
94
96
|
# from pygpt_net.provider.agents.llama_index.legacy.openai import OpenAIAgent
|
|
@@ -410,6 +412,8 @@ def run(**kwargs):
|
|
|
410
412
|
launcher.add_plugin(GithubPlugin())
|
|
411
413
|
launcher.add_plugin(BitbucketPlugin())
|
|
412
414
|
launcher.add_plugin(ServerPlugin())
|
|
415
|
+
launcher.add_plugin(TuyaPlugin())
|
|
416
|
+
launcher.add_plugin(WikipediaPlugin())
|
|
413
417
|
|
|
414
418
|
# register custom plugins
|
|
415
419
|
plugins = kwargs.get('plugins', None)
|
|
@@ -13,6 +13,7 @@ import threading
|
|
|
13
13
|
from typing import Any, Dict, Optional, Union, List
|
|
14
14
|
|
|
15
15
|
from PySide6.QtCore import QObject, Slot
|
|
16
|
+
from PySide6.QtWidgets import QApplication
|
|
16
17
|
|
|
17
18
|
from pygpt_net.core.types import (
|
|
18
19
|
MODE_AGENT,
|
|
@@ -337,6 +338,7 @@ class Kernel:
|
|
|
337
338
|
"""
|
|
338
339
|
self.status = status
|
|
339
340
|
self.window.ui.status(status)
|
|
341
|
+
QApplication.processEvents() # process events to update UI
|
|
340
342
|
|
|
341
343
|
def resume(self):
|
|
342
344
|
"""
|
|
@@ -350,4 +350,13 @@ class Notepad:
|
|
|
350
350
|
if not widget.opened:
|
|
351
351
|
widget.opened = True
|
|
352
352
|
if idx not in self.opened_idx:
|
|
353
|
-
self.opened_idx.add(idx)
|
|
353
|
+
self.opened_idx.add(idx)
|
|
354
|
+
|
|
355
|
+
def focus_opened(self, tab = None):
|
|
356
|
+
"""Focus opened notepad"""
|
|
357
|
+
if tab is None:
|
|
358
|
+
tab = self.window.controller.ui.tabs.get_current_tab()
|
|
359
|
+
if tab is not None and tab.type == Tab.TAB_NOTEPAD:
|
|
360
|
+
widget = self.window.ui.notepad.get(tab.data_id)
|
|
361
|
+
if widget is not None:
|
|
362
|
+
QTimer.singleShot(100, widget.textarea.setFocus)
|
|
@@ -196,6 +196,8 @@ class Common:
|
|
|
196
196
|
continue
|
|
197
197
|
for file in os.listdir(path):
|
|
198
198
|
if file.startswith("web-") and file.endswith('.css'):
|
|
199
|
+
if file.endswith("darkest.css"):
|
|
200
|
+
continue
|
|
199
201
|
to_replace = ['web-', '.css', '.light', '.dark']
|
|
200
202
|
for item in to_replace:
|
|
201
203
|
file = file.replace(item, '')
|
|
@@ -114,6 +114,9 @@ class Theme:
|
|
|
114
114
|
|
|
115
115
|
:param name: web style name
|
|
116
116
|
"""
|
|
117
|
+
styles_list = self.common.get_styles_list()
|
|
118
|
+
if name not in styles_list:
|
|
119
|
+
name = "chatgpt"
|
|
117
120
|
QApplication.processEvents()
|
|
118
121
|
core = self.window.core
|
|
119
122
|
core.config.set('theme.style', name)
|
pygpt_net/controller/ui/tabs.py
CHANGED
|
@@ -170,6 +170,7 @@ class Tabs:
|
|
|
170
170
|
w = self.window
|
|
171
171
|
core = w.core
|
|
172
172
|
tabs_core = core.tabs
|
|
173
|
+
appended = self.appended
|
|
173
174
|
|
|
174
175
|
tab = tabs_core.get_tab_by_index(idx, column_idx)
|
|
175
176
|
if tab is None:
|
|
@@ -185,6 +186,8 @@ class Tabs:
|
|
|
185
186
|
if meta is not None:
|
|
186
187
|
w.controller.ctx.load(meta.id)
|
|
187
188
|
self.create_new_on_tab = True
|
|
189
|
+
else:
|
|
190
|
+
self.current = idx
|
|
188
191
|
|
|
189
192
|
prev_tab = self.current
|
|
190
193
|
prev_column = self.column_idx
|
|
@@ -197,6 +200,8 @@ class Tabs:
|
|
|
197
200
|
if tab.type == Tab.TAB_NOTEPAD:
|
|
198
201
|
w.controller.notepad.opened_once = True
|
|
199
202
|
w.controller.notepad.on_open(idx, column_idx)
|
|
203
|
+
if appended:
|
|
204
|
+
w.controller.notepad.focus_opened(tab)
|
|
200
205
|
elif tab.type == Tab.TAB_CHAT:
|
|
201
206
|
meta_id = tab.data_id
|
|
202
207
|
if meta_id is None:
|
|
@@ -507,9 +507,6 @@ class NativeBackend(QObject):
|
|
|
507
507
|
:param signals: Signals to emit on playback
|
|
508
508
|
:return: True if started
|
|
509
509
|
"""
|
|
510
|
-
if signals is not None:
|
|
511
|
-
signals.playback.emit(event_name)
|
|
512
|
-
|
|
513
510
|
self.audio_output = QAudioOutput()
|
|
514
511
|
self.audio_output.setVolume(1.0)
|
|
515
512
|
|
|
@@ -561,6 +558,7 @@ class NativeBackend(QObject):
|
|
|
561
558
|
self.playback_timer.start()
|
|
562
559
|
self.volume_timer.start()
|
|
563
560
|
signals.volume_changed.emit(0)
|
|
561
|
+
signals.playback.emit(event_name)
|
|
564
562
|
|
|
565
563
|
def stop_timers(self):
|
|
566
564
|
"""
|
pygpt_net/core/idx/llm.py
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import os.path
|
|
13
|
-
from typing import Optional, Union
|
|
13
|
+
from typing import Optional, Union, List, Dict
|
|
14
14
|
|
|
15
15
|
from llama_index.core.llms.llm import BaseLLM
|
|
16
16
|
from llama_index.core.multi_modal_llms import MultiModalLLM
|
|
@@ -119,6 +119,8 @@ class Llm:
|
|
|
119
119
|
window=self.window,
|
|
120
120
|
env=env,
|
|
121
121
|
)
|
|
122
|
+
model_name = self.extract_model_name_from_args(args)
|
|
123
|
+
self.window.core.idx.log(f"Embeddings: using global provider: {provider}, model_name: {model_name}")
|
|
122
124
|
return self.window.core.llm.llms[provider].get_embeddings_model(
|
|
123
125
|
window=self.window,
|
|
124
126
|
config=args,
|
|
@@ -162,8 +164,8 @@ class Llm:
|
|
|
162
164
|
|
|
163
165
|
# try to get custom args from config for the model provider
|
|
164
166
|
is_custom_provider = False
|
|
165
|
-
|
|
166
|
-
for item in
|
|
167
|
+
defaults = self.window.core.config.get("llama.idx.embeddings.default", [])
|
|
168
|
+
for item in defaults:
|
|
167
169
|
provider = item.get("provider", "")
|
|
168
170
|
if provider and provider == model.provider:
|
|
169
171
|
is_custom_provider = True
|
|
@@ -188,6 +190,7 @@ class Llm:
|
|
|
188
190
|
"value": client_args.get("api_key", ""),
|
|
189
191
|
}
|
|
190
192
|
)
|
|
193
|
+
self.window.core.idx.log(f"Embeddings: trying to use {m.provider}, model_name: {model_name}")
|
|
191
194
|
break
|
|
192
195
|
|
|
193
196
|
if is_custom_provider:
|
|
@@ -196,5 +199,20 @@ class Llm:
|
|
|
196
199
|
config=args,
|
|
197
200
|
)
|
|
198
201
|
if not embed_model:
|
|
202
|
+
self.window.core.idx.log(f"Embeddings: not configured for {model.provider}. Fallback: using global provider.")
|
|
199
203
|
embed_model = self.get_embeddings_provider()
|
|
200
204
|
return embed_model
|
|
205
|
+
|
|
206
|
+
def extract_model_name_from_args(self, args: List[Dict]) -> str:
|
|
207
|
+
"""
|
|
208
|
+
Extract model name from provider args
|
|
209
|
+
|
|
210
|
+
:param args: List of args
|
|
211
|
+
:return: Model name if configured
|
|
212
|
+
"""
|
|
213
|
+
model_name = ""
|
|
214
|
+
for item in args:
|
|
215
|
+
if item.get("name") in ["model", "model_name"]:
|
|
216
|
+
model_name = item.get("value")
|
|
217
|
+
break
|
|
218
|
+
return model_name
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
9
|
# Updated Date: 2025.08.24 02:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
|
-
|
|
11
|
+
import json
|
|
12
12
|
import re
|
|
13
13
|
import html
|
|
14
14
|
|
|
@@ -155,14 +155,24 @@ class Helpers:
|
|
|
155
155
|
s = f'<div class="cmd">> {s}</div>'
|
|
156
156
|
return s
|
|
157
157
|
|
|
158
|
-
def format_cmd_text(self, text: str) -> str:
|
|
158
|
+
def format_cmd_text(self, text: str, indent: bool = False) -> str:
|
|
159
159
|
"""
|
|
160
160
|
Post-format cmd text
|
|
161
161
|
|
|
162
162
|
:param text: text to format
|
|
163
|
+
:param indent: whether to indent text
|
|
163
164
|
:return: formatted text
|
|
164
165
|
"""
|
|
165
|
-
|
|
166
|
+
if not text:
|
|
167
|
+
return ""
|
|
168
|
+
if not indent:
|
|
169
|
+
return html.escape(text)
|
|
170
|
+
else:
|
|
171
|
+
try:
|
|
172
|
+
return html.escape(json.dumps(json.loads(text), indent=2))
|
|
173
|
+
except Exception:
|
|
174
|
+
return html.escape(text)
|
|
175
|
+
|
|
166
176
|
|
|
167
177
|
def format_chunk(self, text: str) -> str:
|
|
168
178
|
"""
|
|
@@ -1317,15 +1317,15 @@ class Renderer(BaseRenderer):
|
|
|
1317
1317
|
if is_cmd:
|
|
1318
1318
|
if ctx.results is not None and len(ctx.results) > 0 \
|
|
1319
1319
|
and isinstance(ctx.extra, dict) and "agent_step" in ctx.extra:
|
|
1320
|
-
tool_output = self.helpers.format_cmd_text(str(ctx.input))
|
|
1320
|
+
tool_output = self.helpers.format_cmd_text(str(ctx.input), indent=True)
|
|
1321
1321
|
output_class = ""
|
|
1322
1322
|
else:
|
|
1323
|
-
tool_output = self.helpers.format_cmd_text(str(next_ctx.input))
|
|
1323
|
+
tool_output = self.helpers.format_cmd_text(str(next_ctx.input), indent=True)
|
|
1324
1324
|
output_class = ""
|
|
1325
1325
|
|
|
1326
1326
|
elif ctx.results is not None and len(ctx.results) > 0 \
|
|
1327
1327
|
and isinstance(ctx.extra, dict) and "agent_step" in ctx.extra:
|
|
1328
|
-
tool_output = self.helpers.format_cmd_text(str(ctx.input))
|
|
1328
|
+
tool_output = self.helpers.format_cmd_text(str(ctx.input), indent=True)
|
|
1329
1329
|
else:
|
|
1330
1330
|
out = (getattr(ctx, "output", "") or "")
|
|
1331
1331
|
cmds = getattr(ctx, "cmds", ())
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-08-
|
|
3
|
+
"version": "2.6.29",
|
|
4
|
+
"app.version": "2.6.29",
|
|
5
|
+
"updated_at": "2025-08-28T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"access.audio.event.speech": false,
|
|
8
8
|
"access.audio.event.speech.disabled": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-08-
|
|
3
|
+
"version": "2.6.29",
|
|
4
|
+
"app.version": "2.6.29",
|
|
5
|
+
"updated_at": "2025-08-28T23:07:35"
|
|
6
6
|
},
|
|
7
7
|
"items": {
|
|
8
8
|
"SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
|
|
@@ -683,20 +683,7 @@
|
|
|
683
683
|
"multiplier": null,
|
|
684
684
|
"step": null,
|
|
685
685
|
"advanced": false
|
|
686
|
-
},
|
|
687
|
-
"ctx.attachment.verbose": {
|
|
688
|
-
"section": "files",
|
|
689
|
-
"type": "bool",
|
|
690
|
-
"slider": false,
|
|
691
|
-
"label": "settings.ctx.attachment.verbose",
|
|
692
|
-
"description": "settings.ctx.attachment.verbose.desc",
|
|
693
|
-
"value": false,
|
|
694
|
-
"min": null,
|
|
695
|
-
"max": null,
|
|
696
|
-
"multiplier": null,
|
|
697
|
-
"step": null,
|
|
698
|
-
"advanced": false
|
|
699
|
-
},
|
|
686
|
+
},
|
|
700
687
|
"ctx.attachment.img": {
|
|
701
688
|
"section": "files",
|
|
702
689
|
"type": "bool",
|
|
@@ -2047,20 +2034,7 @@
|
|
|
2047
2034
|
"step": 1,
|
|
2048
2035
|
"advanced": false,
|
|
2049
2036
|
"tab": "llama"
|
|
2050
|
-
},
|
|
2051
|
-
"agent.llama.verbose": {
|
|
2052
|
-
"section": "agent",
|
|
2053
|
-
"type": "bool",
|
|
2054
|
-
"slider": false,
|
|
2055
|
-
"label": "settings.agent.llama.verbose",
|
|
2056
|
-
"value": false,
|
|
2057
|
-
"min": 0,
|
|
2058
|
-
"max": 0,
|
|
2059
|
-
"multiplier": 1,
|
|
2060
|
-
"step": 1,
|
|
2061
|
-
"advanced": false,
|
|
2062
|
-
"tab": "general"
|
|
2063
|
-
},
|
|
2037
|
+
},
|
|
2064
2038
|
"agent.idx.auto_retrieve": {
|
|
2065
2039
|
"section": "agent",
|
|
2066
2040
|
"type": "bool",
|
|
@@ -2318,6 +2292,31 @@
|
|
|
2318
2292
|
"step": null,
|
|
2319
2293
|
"advanced": false
|
|
2320
2294
|
},
|
|
2295
|
+
"ctx.attachment.verbose": {
|
|
2296
|
+
"section": "developer",
|
|
2297
|
+
"type": "bool",
|
|
2298
|
+
"slider": false,
|
|
2299
|
+
"label": "Log attachments usage to console",
|
|
2300
|
+
"value": false,
|
|
2301
|
+
"min": null,
|
|
2302
|
+
"max": null,
|
|
2303
|
+
"multiplier": null,
|
|
2304
|
+
"step": null,
|
|
2305
|
+
"advanced": false
|
|
2306
|
+
},
|
|
2307
|
+
"agent.llama.verbose": {
|
|
2308
|
+
"section": "developer",
|
|
2309
|
+
"type": "bool",
|
|
2310
|
+
"slider": false,
|
|
2311
|
+
"label": "Log Agents usage to console",
|
|
2312
|
+
"value": false,
|
|
2313
|
+
"min": 0,
|
|
2314
|
+
"max": 0,
|
|
2315
|
+
"multiplier": 1,
|
|
2316
|
+
"step": 1,
|
|
2317
|
+
"advanced": false,
|
|
2318
|
+
"tab": "general"
|
|
2319
|
+
},
|
|
2321
2320
|
"log.llama": {
|
|
2322
2321
|
"section": "developer",
|
|
2323
2322
|
"type": "bool",
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
body {{
|
|
2
|
+
color: #fff;
|
|
3
|
+
background-color: #202020;
|
|
4
|
+
}}
|
|
5
|
+
::-webkit-scrollbar {{
|
|
6
|
+
background: #1c1c1c;
|
|
7
|
+
}}
|
|
8
|
+
::-webkit-scrollbar-thumb {{
|
|
9
|
+
background: #282828;
|
|
10
|
+
}}
|
|
11
|
+
::-webkit-scrollbar-thumb:hover {{
|
|
12
|
+
background: #333333;
|
|
13
|
+
}}
|
|
14
|
+
::-webkit-scrollbar-corner {{
|
|
15
|
+
background: #232629;
|
|
16
|
+
}}
|
|
17
|
+
a {{
|
|
18
|
+
color: #a1b5c4 !important;
|
|
19
|
+
}}
|
|
20
|
+
a:hover {{
|
|
21
|
+
color: #b8cad7 !important;
|
|
22
|
+
}}
|
|
23
|
+
.msg-user {{
|
|
24
|
+
color: #cbcbcb;
|
|
25
|
+
}}
|
|
26
|
+
.msg-user p {{
|
|
27
|
+
color: #cbcbcb;
|
|
28
|
+
}}
|
|
29
|
+
.msg-bot {{
|
|
30
|
+
color: #fff;
|
|
31
|
+
}}
|
|
32
|
+
.msg-bot p {{
|
|
33
|
+
color: #fff;
|
|
34
|
+
}}
|
|
35
|
+
.msg-highlight {{
|
|
36
|
+
border: 1px solid #323436;
|
|
37
|
+
background-color: #272a2d;
|
|
38
|
+
}}
|
|
39
|
+
.cmd {{
|
|
40
|
+
color: #4d4d4d;
|
|
41
|
+
}}
|
|
42
|
+
.ts {{
|
|
43
|
+
color: #4d4d4d;
|
|
44
|
+
}}
|
|
45
|
+
.list {{
|
|
46
|
+
}}
|
|
47
|
+
code {{
|
|
48
|
+
color: {QTMATERIAL_PRIMARYLIGHTCOLOR};
|
|
49
|
+
}}
|
|
50
|
+
.code-wrapper {{
|
|
51
|
+
border: 1px solid #1d1f21;
|
|
52
|
+
}}
|
|
53
|
+
.code-header-wrapper {{
|
|
54
|
+
background-color: #1d1f21;
|
|
55
|
+
}}
|
|
56
|
+
.code-header-copy {{
|
|
57
|
+
color: #a0a0a0;
|
|
58
|
+
}}
|
|
59
|
+
.code-header-copy:hover {{
|
|
60
|
+
color: #fff;
|
|
61
|
+
}}
|
|
62
|
+
.code-header-lang {{
|
|
63
|
+
color: #686868;
|
|
64
|
+
}}
|
|
65
|
+
.action-icons a:hover {{
|
|
66
|
+
filter: brightness(130%);
|
|
67
|
+
}}
|
|
68
|
+
.display-blocks {{
|
|
69
|
+
background-color: #31363b;
|
|
70
|
+
}}
|
|
71
|
+
.display-blocks .msg-box {{
|
|
72
|
+
background-color: #232629;
|
|
73
|
+
border: 1px solid gray;
|
|
74
|
+
}}
|
|
75
|
+
.display-blocks .name-bot::before {{
|
|
76
|
+
background-color: {QTMATERIAL_PRIMARYLIGHTCOLOR};
|
|
77
|
+
}}
|
|
78
|
+
.display-blocks .name-user::before {{
|
|
79
|
+
background-color: silver;
|
|
80
|
+
}}
|
|
81
|
+
/* loader */
|
|
82
|
+
.lds-ring {{
|
|
83
|
+
color: #fff;
|
|
84
|
+
}}
|
|
85
|
+
|
|
86
|
+
.tips p {{
|
|
87
|
+
color: #5e5e5e;
|
|
88
|
+
}}
|
|
89
|
+
.msg-box .name-header.name-bot {{
|
|
90
|
+
color: #cfcfcf;
|
|
91
|
+
}}
|
|
@@ -55,10 +55,11 @@ p {{
|
|
|
55
55
|
|
|
56
56
|
/* cmd */
|
|
57
57
|
.cmd {{
|
|
58
|
-
font-family: '
|
|
58
|
+
font-family: 'Monaspace Neon';
|
|
59
59
|
text-decoration: none;
|
|
60
|
+
padding-top: 5px;
|
|
60
61
|
padding-bottom: 0px;
|
|
61
|
-
font-size: 0.
|
|
62
|
+
font-size: 0.75rem;
|
|
62
63
|
}}
|
|
63
64
|
|
|
64
65
|
/* lists, code */
|
|
@@ -249,13 +250,14 @@ code {{
|
|
|
249
250
|
color: gray;
|
|
250
251
|
}}
|
|
251
252
|
.tool-output .content {{
|
|
253
|
+
font-family: 'Monaspace Neon';
|
|
252
254
|
padding: 10px;
|
|
253
255
|
color: #4d4d4d !important;
|
|
254
|
-
font-size: 0.
|
|
256
|
+
font-size: 0.75rem;
|
|
255
257
|
}}
|
|
256
258
|
.tool-output .toggle-cmd-output {{
|
|
257
259
|
cursor: pointer;
|
|
258
|
-
padding-top:
|
|
260
|
+
padding-top: 0px;
|
|
259
261
|
display: block;
|
|
260
262
|
color: gray;
|
|
261
263
|
}}
|
|
@@ -308,7 +310,7 @@ code {{
|
|
|
308
310
|
height: 150px;
|
|
309
311
|
margin: 0;
|
|
310
312
|
margin-bottom: 0px !important;
|
|
311
|
-
border-radius:
|
|
313
|
+
border-radius: 0;
|
|
312
314
|
width: auto;
|
|
313
315
|
}}
|
|
314
316
|
.extra-src-img-box .img-wrapper:hover {{
|
|
@@ -18,7 +18,7 @@ p {{
|
|
|
18
18
|
color: #fff;
|
|
19
19
|
}}
|
|
20
20
|
a {{
|
|
21
|
-
color: #
|
|
21
|
+
color: #b5c3cd !important;
|
|
22
22
|
}}
|
|
23
23
|
a:hover {{
|
|
24
24
|
color: #b8cad7 !important;
|
|
@@ -37,7 +37,7 @@ a:hover {{
|
|
|
37
37
|
color: #fff;
|
|
38
38
|
}}
|
|
39
39
|
.cmd {{
|
|
40
|
-
color: #4d4d4d;
|
|
40
|
+
color: #4d4d4d !important;
|
|
41
41
|
}}
|
|
42
42
|
.ts {{
|
|
43
43
|
color: #4d4d4d;
|
|
@@ -71,6 +71,9 @@ code {{
|
|
|
71
71
|
.name-user::before {{
|
|
72
72
|
background-color: silver;
|
|
73
73
|
}}
|
|
74
|
+
.tool-output .content {{
|
|
75
|
+
color: #4d4d4d !important;
|
|
76
|
+
}}
|
|
74
77
|
|
|
75
78
|
/* loader */
|
|
76
79
|
.lds-ring {{
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
body {{
|
|
2
|
+
color: #fff;
|
|
3
|
+
background-color: #202020;
|
|
4
|
+
}}
|
|
5
|
+
::-webkit-scrollbar {{
|
|
6
|
+
background: #1c1c1c;
|
|
7
|
+
}}
|
|
8
|
+
::-webkit-scrollbar-thumb {{
|
|
9
|
+
background: #282828;
|
|
10
|
+
}}
|
|
11
|
+
::-webkit-scrollbar-thumb:hover {{
|
|
12
|
+
background: #333333;
|
|
13
|
+
}}
|
|
14
|
+
::-webkit-scrollbar-corner {{
|
|
15
|
+
background: #232629;
|
|
16
|
+
}}
|
|
17
|
+
p {{
|
|
18
|
+
color: #fff;
|
|
19
|
+
}}
|
|
20
|
+
a {{
|
|
21
|
+
color: #b5c3cd !important;
|
|
22
|
+
}}
|
|
23
|
+
a:hover {{
|
|
24
|
+
color: #b8cad7 !important;
|
|
25
|
+
}}
|
|
26
|
+
.msg-user {{
|
|
27
|
+
background: #303030;
|
|
28
|
+
color: #fff;
|
|
29
|
+
}}
|
|
30
|
+
.msg-user p {{
|
|
31
|
+
color: #fff;
|
|
32
|
+
}}
|
|
33
|
+
.msg-bot {{
|
|
34
|
+
color: #fff;
|
|
35
|
+
}}
|
|
36
|
+
.msg-bot p {{
|
|
37
|
+
color: #fff;
|
|
38
|
+
}}
|
|
39
|
+
.cmd {{
|
|
40
|
+
color: #4d4d4d !important;
|
|
41
|
+
}}
|
|
42
|
+
.ts {{
|
|
43
|
+
color: #4d4d4d;
|
|
44
|
+
}}
|
|
45
|
+
.list {{
|
|
46
|
+
}}
|
|
47
|
+
code {{
|
|
48
|
+
color: {QTMATERIAL_PRIMARYLIGHTCOLOR};
|
|
49
|
+
}}
|
|
50
|
+
.code-header-wrapper {{
|
|
51
|
+
background-color: #303030;
|
|
52
|
+
}}
|
|
53
|
+
.code-header-action {{
|
|
54
|
+
color: silver !important;
|
|
55
|
+
}}
|
|
56
|
+
.code-header-action:hover {{
|
|
57
|
+
color: #fff;
|
|
58
|
+
}}
|
|
59
|
+
.code-header-action:hover img {{
|
|
60
|
+
filter: brightness(130%);
|
|
61
|
+
}}
|
|
62
|
+
.code-header-lang {{
|
|
63
|
+
color: #686868;
|
|
64
|
+
}}
|
|
65
|
+
.action-icons a:hover {{
|
|
66
|
+
filter: brightness(130%);
|
|
67
|
+
}}
|
|
68
|
+
.name-bot::before {{
|
|
69
|
+
background-color: {QTMATERIAL_PRIMARYLIGHTCOLOR};
|
|
70
|
+
}}
|
|
71
|
+
.name-user::before {{
|
|
72
|
+
background-color: silver;
|
|
73
|
+
}}
|
|
74
|
+
.tool-output .content {{
|
|
75
|
+
color: #4d4d4d !important;
|
|
76
|
+
}}
|
|
77
|
+
|
|
78
|
+
/* loader */
|
|
79
|
+
.lds-ring {{
|
|
80
|
+
color: #fff;
|
|
81
|
+
}}
|
|
82
|
+
.append_live {{
|
|
83
|
+
color: gray;
|
|
84
|
+
}}
|
|
85
|
+
|
|
86
|
+
.tips p {{
|
|
87
|
+
color: #5e5e5e;
|
|
88
|
+
}}
|
|
89
|
+
.msg-box .name-header.name-bot {{
|
|
90
|
+
color: #cfcfcf;
|
|
91
|
+
}}
|
|
@@ -18,7 +18,10 @@ p {{
|
|
|
18
18
|
color: #000;
|
|
19
19
|
}}
|
|
20
20
|
a {{
|
|
21
|
-
color: #
|
|
21
|
+
color: #2b4e67 !important;
|
|
22
|
+
}}
|
|
23
|
+
a:hover {{
|
|
24
|
+
color: #426f90 !important;
|
|
22
25
|
}}
|
|
23
26
|
.msg-user {{
|
|
24
27
|
color: #000;
|
|
@@ -33,7 +36,7 @@ a {{
|
|
|
33
36
|
color: #000;
|
|
34
37
|
}}
|
|
35
38
|
.cmd {{
|
|
36
|
-
color: #
|
|
39
|
+
color: #888787 !important;
|
|
37
40
|
text-decoration: none;
|
|
38
41
|
}}
|
|
39
42
|
.ts {{
|
|
@@ -76,6 +79,9 @@ code {{
|
|
|
76
79
|
.action-icons a:hover {{
|
|
77
80
|
filter: brightness(60%);
|
|
78
81
|
}}
|
|
82
|
+
.tool-output .content {{
|
|
83
|
+
color: #888787 !important;
|
|
84
|
+
}}
|
|
79
85
|
|
|
80
86
|
/* loader */
|
|
81
87
|
.lds-ring {{
|