pygpt-net 2.6.47__py3-none-any.whl → 2.6.49__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 +8 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app_core.py +39 -39
- pygpt_net/controller/__init__.py +72 -62
- pygpt_net/controller/ctx/common.py +0 -7
- pygpt_net/controller/ctx/ctx.py +176 -8
- pygpt_net/controller/ctx/extra.py +3 -3
- pygpt_net/controller/settings/editor.py +3 -1
- pygpt_net/controller/theme/common.py +8 -2
- pygpt_net/controller/ui/tabs.py +10 -43
- pygpt_net/core/ctx/ctx.py +79 -26
- pygpt_net/core/render/web/renderer.py +4 -10
- pygpt_net/core/tabs/tabs.py +50 -11
- pygpt_net/data/config/config.json +3 -3
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/css/web-blocks.css +256 -270
- pygpt_net/data/css/web-chatgpt.css +276 -301
- pygpt_net/data/css/web-chatgpt_wide.css +286 -294
- pygpt_net/provider/core/config/patch.py +9 -0
- pygpt_net/provider/core/ctx/db_sqlite/storage.py +19 -5
- pygpt_net/tools/code_interpreter/ui/html.py +176 -31
- pygpt_net/tools/code_interpreter/ui/widgets.py +1 -4
- pygpt_net/tools/html_canvas/ui/widgets.py +2 -5
- pygpt_net/ui/__init__.py +9 -14
- pygpt_net/ui/layout/chat/chat.py +2 -2
- pygpt_net/ui/layout/ctx/ctx_list.py +71 -1
- pygpt_net/ui/widget/lists/base.py +32 -1
- pygpt_net/ui/widget/lists/context.py +45 -2
- pygpt_net/ui/widget/tabs/body.py +23 -1
- pygpt_net/ui/widget/textarea/web.py +85 -45
- {pygpt_net-2.6.47.dist-info → pygpt_net-2.6.49.dist-info}/METADATA +10 -2
- {pygpt_net-2.6.47.dist-info → pygpt_net-2.6.49.dist-info}/RECORD +35 -35
- {pygpt_net-2.6.47.dist-info → pygpt_net-2.6.49.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.47.dist-info → pygpt_net-2.6.49.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.47.dist-info → pygpt_net-2.6.49.dist-info}/entry_points.txt +0 -0
|
@@ -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.09.
|
|
9
|
+
# Updated Date: 2025.09.15 22:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
import datetime
|
|
@@ -17,7 +17,7 @@ from PySide6.QtCore import Qt, QPoint, QItemSelectionModel
|
|
|
17
17
|
from PySide6.QtGui import QIcon, QColor, QPixmap, QStandardItem
|
|
18
18
|
from PySide6.QtWidgets import QMenu
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from .base import BaseList
|
|
21
21
|
from pygpt_net.utils import trans
|
|
22
22
|
|
|
23
23
|
|
|
@@ -67,6 +67,30 @@ class ContextList(BaseList):
|
|
|
67
67
|
# Safe no-op if the underlying view does not support setIndentation
|
|
68
68
|
pass
|
|
69
69
|
|
|
70
|
+
self._loading_more = False # guard to avoid multiple triggers while updating
|
|
71
|
+
try:
|
|
72
|
+
self.verticalScrollBar().valueChanged.connect(self._on_vertical_scroll)
|
|
73
|
+
except Exception:
|
|
74
|
+
pass # safe no-op if view doesn't expose verticalScrollBar
|
|
75
|
+
|
|
76
|
+
def _on_vertical_scroll(self, value: int):
|
|
77
|
+
"""
|
|
78
|
+
Trigger infinite scroll: when scrollbar reaches bottom, request the next page.
|
|
79
|
+
"""
|
|
80
|
+
try:
|
|
81
|
+
sb = self.verticalScrollBar()
|
|
82
|
+
except Exception:
|
|
83
|
+
return
|
|
84
|
+
if sb.maximum() <= 0:
|
|
85
|
+
return # nothing to scroll
|
|
86
|
+
# Close-to-bottom detection; keep a tiny threshold for stability
|
|
87
|
+
if not self._loading_more and value >= sb.maximum():
|
|
88
|
+
self._loading_more = True
|
|
89
|
+
# Ask controller to increase the total limit and refresh the list
|
|
90
|
+
self.window.controller.ctx.load_more()
|
|
91
|
+
# Release the guard shortly after model updates
|
|
92
|
+
QtCore.QTimer.singleShot(250, lambda: setattr(self, "_loading_more", False))
|
|
93
|
+
|
|
70
94
|
@property
|
|
71
95
|
def _model(self):
|
|
72
96
|
return self.window.ui.models['ctx.list']
|
|
@@ -292,6 +316,25 @@ class ContextList(BaseList):
|
|
|
292
316
|
self.restore_after_ctx_menu = True
|
|
293
317
|
self.restore_scroll_position()
|
|
294
318
|
|
|
319
|
+
def get_visible_unpaged_ids(self) -> set:
|
|
320
|
+
"""
|
|
321
|
+
Return a set of IDs for currently visible, ungrouped and not pinned items (top-level only).
|
|
322
|
+
"""
|
|
323
|
+
ids = set()
|
|
324
|
+
model = self._model
|
|
325
|
+
for r in range(model.rowCount()):
|
|
326
|
+
it = model.item(r)
|
|
327
|
+
# skip groups and date sections
|
|
328
|
+
if isinstance(it, GroupItem) or isinstance(it, SectionItem):
|
|
329
|
+
continue
|
|
330
|
+
if isinstance(it, Item):
|
|
331
|
+
data = it.data(QtCore.Qt.ItemDataRole.UserRole) or {}
|
|
332
|
+
in_group = bool(data.get("in_group", False))
|
|
333
|
+
is_important = bool(data.get("is_important", False))
|
|
334
|
+
if not in_group and not is_important and hasattr(it, "id"):
|
|
335
|
+
ids.add(int(it.id))
|
|
336
|
+
return ids
|
|
337
|
+
|
|
295
338
|
def action_open(self, id: int, idx: int = None):
|
|
296
339
|
"""
|
|
297
340
|
Open context action handler
|
pygpt_net/ui/widget/tabs/body.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.09.
|
|
9
|
+
# Updated Date: 2025.09.16 02:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from typing import Any
|
|
@@ -35,6 +35,28 @@ class TabBody(QTabWidget):
|
|
|
35
35
|
self.on_delete(self)
|
|
36
36
|
self.delete_refs()
|
|
37
37
|
|
|
38
|
+
def remove_widget(self, widget: QWidget) -> None:
|
|
39
|
+
"""
|
|
40
|
+
Remove widget from tab body
|
|
41
|
+
|
|
42
|
+
:param widget: widget to remove
|
|
43
|
+
"""
|
|
44
|
+
layout = self.layout()
|
|
45
|
+
if layout is not None:
|
|
46
|
+
layout.removeWidget(widget)
|
|
47
|
+
self.delete_ref(widget)
|
|
48
|
+
|
|
49
|
+
def remove_all_widgets(self) -> None:
|
|
50
|
+
"""
|
|
51
|
+
Remove all widgets from tab body
|
|
52
|
+
"""
|
|
53
|
+
layout = self.layout()
|
|
54
|
+
if layout is not None:
|
|
55
|
+
while layout.count():
|
|
56
|
+
item = layout.takeAt(0)
|
|
57
|
+
widget = item.widget()
|
|
58
|
+
layout.removeWidget(widget)
|
|
59
|
+
|
|
38
60
|
def add_ref(self, ref: Any) -> None:
|
|
39
61
|
"""
|
|
40
62
|
Add reference to widget in this tab
|
|
@@ -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.09.
|
|
9
|
+
# Updated Date: 2025.09.16 02:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from PySide6.QtCore import Qt, QObject, Signal, Slot, QEvent, QUrl, QCoreApplication, QEventLoop
|
|
@@ -22,6 +22,7 @@ from pygpt_net.core.text.web_finder import WebFinder
|
|
|
22
22
|
from pygpt_net.ui.widget.tabs.layout import FocusEventFilter
|
|
23
23
|
from pygpt_net.utils import trans
|
|
24
24
|
|
|
25
|
+
|
|
25
26
|
class ChatWebOutput(QWebEngineView):
|
|
26
27
|
def __init__(self, window=None):
|
|
27
28
|
"""
|
|
@@ -47,113 +48,153 @@ class ChatWebOutput(QWebEngineView):
|
|
|
47
48
|
# OpenGL widgets
|
|
48
49
|
self._glwidget = None
|
|
49
50
|
self._glwidget_filter_installed = False
|
|
51
|
+
self._unloaded = False
|
|
52
|
+
self._destroyed = False
|
|
50
53
|
|
|
51
54
|
# set the page with a shared profile
|
|
52
55
|
self.setUpdatesEnabled(False) # disable updates until the page is set, re-enable in `on_page_loaded`
|
|
53
56
|
|
|
54
|
-
self._profile =
|
|
57
|
+
# self._profile = self._make_profile(self)
|
|
58
|
+
self.setPage(CustomWebEnginePage(self.window, self, profile=None))
|
|
59
|
+
|
|
60
|
+
def _make_profile(self, parent=None) -> QWebEngineProfile:
|
|
61
|
+
"""Make profile"""
|
|
62
|
+
profile = QWebEngineProfile(parent)
|
|
55
63
|
# self._profile.setHttpCacheType(QWebEngineProfile.MemoryHttpCache)
|
|
56
64
|
# self._profile.setHttpCacheMaximumSize(32 * 1024 * 1024) # 32MB
|
|
57
|
-
|
|
65
|
+
profile.setPersistentCookiesPolicy(QWebEngineProfile.NoPersistentCookies)
|
|
58
66
|
# self._profile.setHttpCacheType(QWebEngineProfile.NoCache)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
profile.setSpellCheckEnabled(False)
|
|
68
|
+
return profile
|
|
69
|
+
|
|
62
70
|
|
|
63
71
|
def _detach_gl_event_filter(self):
|
|
64
72
|
"""Detach OpenGL widget event filter if installed"""
|
|
65
73
|
if self._glwidget and self._glwidget_filter_installed:
|
|
66
74
|
try:
|
|
67
75
|
self._glwidget.removeEventFilter(self)
|
|
68
|
-
except Exception:
|
|
69
|
-
|
|
76
|
+
except Exception as e:
|
|
77
|
+
self._on_delete_failed(e)
|
|
70
78
|
self._glwidget = None
|
|
71
79
|
self._glwidget_filter_installed = False
|
|
72
80
|
|
|
81
|
+
def _on_delete_failed(self, e):
|
|
82
|
+
"""
|
|
83
|
+
Handle delete failure
|
|
84
|
+
|
|
85
|
+
:param e: Exception instance
|
|
86
|
+
"""
|
|
87
|
+
pass
|
|
88
|
+
# self.window.core.debug.log(e)
|
|
89
|
+
|
|
90
|
+
def unload(self):
|
|
91
|
+
"""Unload the current page and free resources"""
|
|
92
|
+
try:
|
|
93
|
+
self.hide()
|
|
94
|
+
p = self.page()
|
|
95
|
+
p.triggerAction(QWebEnginePage.Stop)
|
|
96
|
+
p.setUrl(QUrl("about:blank"))
|
|
97
|
+
p.history().clear()
|
|
98
|
+
p.setLifecycleState(QWebEnginePage.LifecycleState.Discarded)
|
|
99
|
+
except Exception as e:
|
|
100
|
+
self._on_delete_failed(e)
|
|
101
|
+
finally:
|
|
102
|
+
self._unloaded = True
|
|
103
|
+
|
|
73
104
|
def on_delete(self):
|
|
74
105
|
"""Clean up on delete"""
|
|
106
|
+
if self._destroyed:
|
|
107
|
+
return
|
|
108
|
+
if not self._unloaded:
|
|
109
|
+
self.unload()
|
|
110
|
+
|
|
75
111
|
self.hide()
|
|
76
112
|
self._detach_gl_event_filter()
|
|
77
|
-
|
|
113
|
+
|
|
78
114
|
if self.finder:
|
|
79
115
|
try:
|
|
80
116
|
self.finder.disconnect()
|
|
81
|
-
except Exception:
|
|
82
|
-
|
|
83
|
-
|
|
117
|
+
except Exception as e:
|
|
118
|
+
self._on_delete_failed(e)
|
|
119
|
+
finally:
|
|
120
|
+
self.finder = None
|
|
84
121
|
|
|
85
122
|
self.tab = None
|
|
86
123
|
self.meta = None
|
|
87
124
|
|
|
88
125
|
# safely unhook signals (may not have been hooked)
|
|
89
126
|
for sig, slot in (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
127
|
+
(self.loadFinished, self.on_page_loaded),
|
|
128
|
+
(self.customContextMenuRequested, self.on_context_menu),
|
|
129
|
+
(self.signals.save_as, getattr(self.window.controller.chat.render, "handle_save_as", None)),
|
|
130
|
+
(self.signals.audio_read, getattr(self.window.controller.chat.render, "handle_audio_read", None)),
|
|
94
131
|
):
|
|
95
132
|
if slot:
|
|
96
133
|
try:
|
|
97
134
|
sig.disconnect(slot)
|
|
98
|
-
except Exception:
|
|
99
|
-
|
|
135
|
+
except Exception as e:
|
|
136
|
+
self._on_delete_failed(e)
|
|
100
137
|
|
|
101
138
|
page = self.page()
|
|
102
139
|
page.set_loaded(False)
|
|
103
140
|
|
|
104
141
|
try:
|
|
105
142
|
page.triggerAction(QWebEnginePage.Stop)
|
|
106
|
-
except Exception:
|
|
107
|
-
|
|
143
|
+
except Exception as e:
|
|
144
|
+
self._on_delete_failed(e)
|
|
145
|
+
|
|
108
146
|
try:
|
|
109
147
|
page.setUrl(QUrl("about:blank"))
|
|
110
|
-
except Exception:
|
|
111
|
-
|
|
148
|
+
except Exception as e:
|
|
149
|
+
self._on_delete_failed(e)
|
|
150
|
+
|
|
112
151
|
try:
|
|
113
152
|
page.history().clear()
|
|
114
|
-
except Exception:
|
|
115
|
-
|
|
153
|
+
except Exception as e:
|
|
154
|
+
self._on_delete_failed(e)
|
|
155
|
+
|
|
116
156
|
try:
|
|
117
157
|
page.setLifecycleState(QWebEnginePage.LifecycleState.Discarded)
|
|
118
|
-
except Exception:
|
|
119
|
-
|
|
158
|
+
except Exception as e:
|
|
159
|
+
self._on_delete_failed(e)
|
|
160
|
+
|
|
120
161
|
try:
|
|
121
162
|
if hasattr(page, "setWebChannel"):
|
|
122
163
|
page.setWebChannel(None)
|
|
123
|
-
except Exception:
|
|
124
|
-
|
|
125
|
-
try:
|
|
126
|
-
self.disconnect()
|
|
127
|
-
except Exception:
|
|
128
|
-
pass
|
|
164
|
+
except Exception as e:
|
|
165
|
+
self._on_delete_failed(e)
|
|
129
166
|
|
|
130
167
|
prof = None
|
|
131
168
|
try:
|
|
132
169
|
prof = page.profile()
|
|
133
|
-
except Exception:
|
|
134
|
-
|
|
170
|
+
except Exception as e:
|
|
171
|
+
self._on_delete_failed(e)
|
|
135
172
|
|
|
136
173
|
try:
|
|
137
174
|
page.cleanup()
|
|
138
|
-
except Exception:
|
|
139
|
-
|
|
175
|
+
except Exception as e:
|
|
176
|
+
self._on_delete_failed(e)
|
|
140
177
|
|
|
178
|
+
"""
|
|
141
179
|
if prof is not None:
|
|
142
180
|
try:
|
|
143
181
|
prof.deleteLater()
|
|
144
|
-
except Exception:
|
|
145
|
-
|
|
182
|
+
except Exception as e:
|
|
183
|
+
self._on_delete_failed(e)
|
|
184
|
+
"""
|
|
146
185
|
|
|
147
186
|
try:
|
|
148
187
|
self.deleteLater()
|
|
149
|
-
except Exception:
|
|
150
|
-
|
|
188
|
+
except Exception as e:
|
|
189
|
+
self._on_delete_failed(e)
|
|
151
190
|
|
|
152
191
|
try:
|
|
153
192
|
QCoreApplication.sendPostedEvents(None, QEvent.DeferredDelete)
|
|
154
193
|
QCoreApplication.processEvents(QEventLoop.AllEvents, 50)
|
|
155
|
-
except Exception:
|
|
156
|
-
|
|
194
|
+
except Exception as e:
|
|
195
|
+
self._on_delete_failed(e)
|
|
196
|
+
|
|
197
|
+
self._destroyed = True
|
|
157
198
|
|
|
158
199
|
def eventFilter(self, source, event):
|
|
159
200
|
"""
|
|
@@ -390,6 +431,7 @@ class ChatWebOutput(QWebEngineView):
|
|
|
390
431
|
|
|
391
432
|
class CustomWebEnginePage(QWebEnginePage):
|
|
392
433
|
"""Custom WebEnginePage to handle web events"""
|
|
434
|
+
|
|
393
435
|
def __init__(self, window, view, profile: QWebEngineProfile = None):
|
|
394
436
|
|
|
395
437
|
# use the profile if provided, otherwise the default
|
|
@@ -495,12 +537,10 @@ class CustomWebEnginePage(QWebEnginePage):
|
|
|
495
537
|
pass
|
|
496
538
|
self.signals = None
|
|
497
539
|
|
|
498
|
-
# delete the page object
|
|
499
|
-
self.deleteLater()
|
|
500
|
-
|
|
501
540
|
|
|
502
541
|
class Bridge(QObject):
|
|
503
542
|
"""Bridge between Python and JavaScript"""
|
|
543
|
+
|
|
504
544
|
def __init__(self, window, parent=None):
|
|
505
545
|
super(Bridge, self).__init__(parent)
|
|
506
546
|
self.window = window
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pygpt-net
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.49
|
|
4
4
|
Summary: Desktop AI Assistant powered by: OpenAI GPT-5, GPT-4, o1, o3, Gemini, Claude, Grok, DeepSeek, and other models supported by Llama Index, and Ollama. Chatbot, agents, completion, image generation, vision analysis, speech-to-text, plugins, internet access, file handling, command execution and more.
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: ai,api,api key,app,assistant,bielik,chat,chatbot,chatgpt,claude,dall-e,deepseek,desktop,gemini,gpt,gpt-3.5,gpt-4,gpt-4-vision,gpt-4o,gpt-5,gpt-oss,gpt3.5,gpt4,grok,langchain,llama-index,llama3,mistral,o1,o3,ollama,openai,presets,py-gpt,py_gpt,pygpt,pyside,qt,text completion,tts,ui,vision,whisper
|
|
@@ -118,7 +118,7 @@ Description-Content-Type: text/markdown
|
|
|
118
118
|
|
|
119
119
|
[](https://snapcraft.io/pygpt)
|
|
120
120
|
|
|
121
|
-
Release: **2.6.
|
|
121
|
+
Release: **2.6.49** | build: **2025-09-16** | Python: **>=3.10, <3.14**
|
|
122
122
|
|
|
123
123
|
> Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
|
|
124
124
|
>
|
|
@@ -3612,6 +3612,14 @@ may consume additional tokens that are not displayed in the main window.
|
|
|
3612
3612
|
|
|
3613
3613
|
## Recent changes:
|
|
3614
3614
|
|
|
3615
|
+
**2.6.49 (2025-09-16)**
|
|
3616
|
+
|
|
3617
|
+
- Fixed: Occasional crashes when focusing on an output container unloaded from memory in the second column.
|
|
3618
|
+
|
|
3619
|
+
**2.6.48 (2025-09-15)**
|
|
3620
|
+
|
|
3621
|
+
- Added: auto-loading of next items to the list of contexts when scrolling to the end of the list.
|
|
3622
|
+
|
|
3615
3623
|
**2.6.47 (2025-09-15)**
|
|
3616
3624
|
|
|
3617
3625
|
- Improved: Parsing of custom markup tags.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
pygpt_net/CHANGELOG.txt,sha256=
|
|
1
|
+
pygpt_net/CHANGELOG.txt,sha256=p65ExEC2HTbdlw2RFL75_4I2T5TAc2R0j4Pi4uNh2vc,106378
|
|
2
2
|
pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
|
|
3
|
-
pygpt_net/__init__.py,sha256=
|
|
3
|
+
pygpt_net/__init__.py,sha256=vxaKvvX5rLWJ_cLCuVaUaVEvyJon-6Ja6Ga0CG4wb4k,1373
|
|
4
4
|
pygpt_net/app.py,sha256=prS80WfKSu8U_Ox9oUdxgzgHgRB1nvQQAMFTNltiECY,21954
|
|
5
|
-
pygpt_net/app_core.py,sha256=
|
|
5
|
+
pygpt_net/app_core.py,sha256=PwBOV9wZLtr-O6SxBiazABhYXMHH8kZ6OgbvSv2OiZA,3827
|
|
6
6
|
pygpt_net/config.py,sha256=SCps_FfwdrynVAgpn37Ci1qTN8BFC05IGl9sYIi9e0w,16720
|
|
7
|
-
pygpt_net/controller/__init__.py,sha256=
|
|
7
|
+
pygpt_net/controller/__init__.py,sha256=_j2LRj4lYVXeP_JteINlOJwuBbxbOj3WP3v5bw1nDqE,6060
|
|
8
8
|
pygpt_net/controller/access/__init__.py,sha256=_XZxGy5U93JGU49GbIB9E_I26_uRV_Zbz18lcp7u23A,510
|
|
9
9
|
pygpt_net/controller/access/access.py,sha256=nPttwQf6RZHJAlXZ-3fnlcplwXxcJWp8ciq3FMsSssI,3974
|
|
10
10
|
pygpt_net/controller/access/control.py,sha256=MhtgCBB2eIpr358qB5uzBkGX8EkT48u84dhZqyuXDss,17182
|
|
@@ -71,9 +71,9 @@ pygpt_net/controller/config/field/slider.py,sha256=dYbICd3ID-aLlc2a-bvFgWS4jceVz
|
|
|
71
71
|
pygpt_net/controller/config/field/textarea.py,sha256=Ln545IHzXBeFIjnfMIpmlUr-V3wNYjw4qGiz4NYRw34,2796
|
|
72
72
|
pygpt_net/controller/config/placeholder.py,sha256=-PWPNILPVkxMsY64aYnKTWvgUIvx7KA2Nwfd2LW_K30,16711
|
|
73
73
|
pygpt_net/controller/ctx/__init__.py,sha256=0wH7ziC75WscBW8cxpeGBwEz5tolo_kCxGPoz2udI_E,507
|
|
74
|
-
pygpt_net/controller/ctx/common.py,sha256=
|
|
75
|
-
pygpt_net/controller/ctx/ctx.py,sha256=
|
|
76
|
-
pygpt_net/controller/ctx/extra.py,sha256=
|
|
74
|
+
pygpt_net/controller/ctx/common.py,sha256=1oR7cUgVzO_asqiRln4L4vZaxXsssAPtGyAp-B0FUE4,6409
|
|
75
|
+
pygpt_net/controller/ctx/ctx.py,sha256=bjz0qCFRAoFpAR3EglV-Lo3yX-sRIo9I85i1sgzfaCs,46250
|
|
76
|
+
pygpt_net/controller/ctx/extra.py,sha256=0r-G6Tlm9WPDkLRmgPDlgyRr_XLfCJntnUGlYPJiXVw,8598
|
|
77
77
|
pygpt_net/controller/ctx/summarizer.py,sha256=UNsq-JTARblGNT97uSMpZEVzdUuDJ8YA2j2dw9R2X3o,3079
|
|
78
78
|
pygpt_net/controller/debug/__init__.py,sha256=dOJGTICjvTtrPIEDOsxCzcOHsfu8AFPLpSKbdN0q0KI,509
|
|
79
79
|
pygpt_net/controller/debug/debug.py,sha256=Bn8DIGjlHJ_Nm2CtYDtn1IHbsqJsami8lgrw2CY9Rrs,8990
|
|
@@ -132,12 +132,12 @@ pygpt_net/controller/realtime/__init__.py,sha256=MhvJb5wBqcpX6uylof01qEDRdU3SepT
|
|
|
132
132
|
pygpt_net/controller/realtime/manager.py,sha256=qtifO3sAtT1ROtRs9N_8t6A8_wgxOxxGl-PfLHzhdxY,1762
|
|
133
133
|
pygpt_net/controller/realtime/realtime.py,sha256=VFeunTSdyD7dxh_5l1q6PnLrF-egQQdqxrYB-TOEBQg,10710
|
|
134
134
|
pygpt_net/controller/settings/__init__.py,sha256=hn5n_Hti6byJQdQCs4Ld2EbPoZF7dHVMwqaBPscePQ8,512
|
|
135
|
-
pygpt_net/controller/settings/editor.py,sha256=
|
|
135
|
+
pygpt_net/controller/settings/editor.py,sha256=Qz0hlUPv0X4KHLKfs7Tyo3-Vv5x75mxAldpo3Jy4s2M,18900
|
|
136
136
|
pygpt_net/controller/settings/profile.py,sha256=L9tEorMfT36aiWP9faE5jhyoU087R7u2ReOWCqXMYJc,18586
|
|
137
137
|
pygpt_net/controller/settings/settings.py,sha256=cFA4ZKjcsu8uoapWMTllUUB9DvJXVBzbxLT6InRS4zU,7768
|
|
138
138
|
pygpt_net/controller/settings/workdir.py,sha256=h1-S6xU4_naPvfOCOtonOUrSnPlhX3_y7km_oD43D0Y,22163
|
|
139
139
|
pygpt_net/controller/theme/__init__.py,sha256=-HMDkTGRa7Q6_AGomkZPVyasIOgNCqeez0Ocw_z9gMc,509
|
|
140
|
-
pygpt_net/controller/theme/common.py,sha256
|
|
140
|
+
pygpt_net/controller/theme/common.py,sha256=-0wW231FH9RPAOfPQGgV4qWWchQGApoH9bv7dizFEvg,7392
|
|
141
141
|
pygpt_net/controller/theme/markdown.py,sha256=ot4LQEDyavt1sb7-Tw3d9MXIlPMlF5MOHh-sS7e851U,6172
|
|
142
142
|
pygpt_net/controller/theme/menu.py,sha256=17D8mW5i97D_nENKFM2EZ9KgR7RP0whiaYXLzHO2rb8,7452
|
|
143
143
|
pygpt_net/controller/theme/nodes.py,sha256=RTaxLR2aXXDrVNIpS9585xbFQlqrGI3gAO7Jng8NUHs,4871
|
|
@@ -146,7 +146,7 @@ pygpt_net/controller/tools/__init__.py,sha256=ds63rOuwLEIe-SlY_sQkhWSdXS0lfVwseU
|
|
|
146
146
|
pygpt_net/controller/tools/tools.py,sha256=bWxdwL3J2-WHBS3MBiKsS3kTW_rQI_nS9z8-8iKifKg,2920
|
|
147
147
|
pygpt_net/controller/ui/__init__.py,sha256=cxfh2SYeEDATGAZpcYDqCxYfp4KReQ1CYehevSf89EU,507
|
|
148
148
|
pygpt_net/controller/ui/mode.py,sha256=35J5TRCg33D-RP9epFsWD-ZO-jQ2O0Q41iuqrePC1zM,9107
|
|
149
|
-
pygpt_net/controller/ui/tabs.py,sha256=
|
|
149
|
+
pygpt_net/controller/ui/tabs.py,sha256=Pih53K5G6hD3dWeCF_EWaG5VIF6-x1z1Vs1enmpA6q0,29190
|
|
150
150
|
pygpt_net/controller/ui/ui.py,sha256=w6rxJ0bNk_43Hd0vZB0roxZo7h-AmISEhr8ZiqcBTgA,8496
|
|
151
151
|
pygpt_net/controller/ui/vision.py,sha256=tnzllFV2-sYDHfrP12ATY6ZKi6FcGtQofrsoKF6UcCU,2407
|
|
152
152
|
pygpt_net/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -223,7 +223,7 @@ pygpt_net/core/command/command.py,sha256=Ix8Y_T8Ayn2a86tZdVGcFJ5VEoSW2IkcU-_Aog5
|
|
|
223
223
|
pygpt_net/core/ctx/__init__.py,sha256=hsqzIDxcwIIjF-7Zr5SkkhQV9LLmIYndQ_dohK20bg0,507
|
|
224
224
|
pygpt_net/core/ctx/bag.py,sha256=j_10HBqkswdz5vW140SuGvJRf7E7J7hQyz6DCVe5D44,1570
|
|
225
225
|
pygpt_net/core/ctx/container.py,sha256=5nlgM_8laH0igUASILD5zIiK3YhB-BA9pTKI0jVqHeQ,4938
|
|
226
|
-
pygpt_net/core/ctx/ctx.py,sha256=
|
|
226
|
+
pygpt_net/core/ctx/ctx.py,sha256=nl-xYi8u6bmqRCX51wwd6bXcd2FaOH1pdaSVJcgH9kM,43530
|
|
227
227
|
pygpt_net/core/ctx/idx.py,sha256=3Zi-48OWlU80si-Z7mVjnsc7TYATXK9g1dM0M5sXsV4,8167
|
|
228
228
|
pygpt_net/core/ctx/output.py,sha256=ecb7tgU7C9Ip5ww16M-HejScN1Btp9IlPgzQyadOCls,8829
|
|
229
229
|
pygpt_net/core/ctx/reply.py,sha256=nm-TzBoIDE9GrYyNjtIT7DvJVf8duAS2fVMeInHNEH4,2324
|
|
@@ -354,13 +354,13 @@ pygpt_net/core/render/web/debug.py,sha256=784RYXF6inn_bkRtYD1_FllQSyk67JmxKGWPiA
|
|
|
354
354
|
pygpt_net/core/render/web/helpers.py,sha256=8-JkbEOOLoCEAkylJWr8yk3aIliQBMyqcatsyW99VWY,7340
|
|
355
355
|
pygpt_net/core/render/web/parser.py,sha256=pDFc9Tf8P-jvrDilXyT1fukcQHbixHRJ9Dn9hF10Gko,12892
|
|
356
356
|
pygpt_net/core/render/web/pid.py,sha256=F33x_OtrHL9BDMXx_JUbfo8-DOiN4vo1Tv4rrRVADTo,4343
|
|
357
|
-
pygpt_net/core/render/web/renderer.py,sha256=
|
|
357
|
+
pygpt_net/core/render/web/renderer.py,sha256=baP3vaZHk21k_M6aIiMIaj7p-Bi3CtgmkR3L7EQ_MOE,68859
|
|
358
358
|
pygpt_net/core/render/web/syntax_highlight.py,sha256=QSLGF5cJL_Xeqej7_TYwY_5C2w9enXV_cMEuaJ3C43U,2005
|
|
359
359
|
pygpt_net/core/settings/__init__.py,sha256=GQ6_gJ2jf_Chm7ZuZLvkcvEh_sfMDVMBieeoJi2iPI4,512
|
|
360
360
|
pygpt_net/core/settings/settings.py,sha256=Ix06y-gJ3q7NJDf55XAWBBYulBLpinBqzYqsytH_9mo,8686
|
|
361
361
|
pygpt_net/core/tabs/__init__.py,sha256=reDufOWWDQsZwfvtnXrFQROEdl9nqoKI7S3bFA3D9As,508
|
|
362
362
|
pygpt_net/core/tabs/tab.py,sha256=oUQEBWLmVEAp8ck7ur6BI9Ax98csQEHgKiAf1BnWjQk,6138
|
|
363
|
-
pygpt_net/core/tabs/tabs.py,sha256=
|
|
363
|
+
pygpt_net/core/tabs/tabs.py,sha256=D18xA9dkQw2AhkA6Mbqmcc3-x9GHLA3mo1k2pSciwng,32359
|
|
364
364
|
pygpt_net/core/text/__init__.py,sha256=6aEjrckL5kWVfyxpi5mVpSPB6XWV83e_30g_V5meL1M,19
|
|
365
365
|
pygpt_net/core/text/finder.py,sha256=NBzYUE_Av3oZH8RlCrSe6EeLcHpfz79WJV_vSK0P1jI,6656
|
|
366
366
|
pygpt_net/core/text/text.py,sha256=WyQdXx4TpBGgr3XU6AhPILvhaipB57S2XtIs8FYif84,3217
|
|
@@ -395,8 +395,8 @@ pygpt_net/css_rc.py,sha256=PX6g9z5BsD-DXISuR2oq3jHcjiKfcJ4HsgcHez6wGMc,27762
|
|
|
395
395
|
pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
|
|
396
396
|
pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
|
|
397
397
|
pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
|
|
398
|
-
pygpt_net/data/config/config.json,sha256=
|
|
399
|
-
pygpt_net/data/config/models.json,sha256=
|
|
398
|
+
pygpt_net/data/config/config.json,sha256=H-h9zQr_rSrCy5MsXResKny8XtUDaUE3S98q4477h0Y,30845
|
|
399
|
+
pygpt_net/data/config/models.json,sha256=Jrqq-Jgyx730ZlXrdDASa5MN57BQYRkmEieBKrl_x_k,118192
|
|
400
400
|
pygpt_net/data/config/modes.json,sha256=IpjLOm428_vs6Ma9U-YQTNKJNtZw-qyM1lwhh73xl1w,2111
|
|
401
401
|
pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
|
|
402
402
|
pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
|
|
@@ -442,15 +442,15 @@ pygpt_net/data/css/markdown.light.css,sha256=UZdv0jtuFgJ_4bYWsDaDQ4X4AP9tVNLUHBA
|
|
|
442
442
|
pygpt_net/data/css/style.css,sha256=dgVlVqEL38zF-4Ok-y1rwfALC8zETJAIuIbkwat_hTk,337
|
|
443
443
|
pygpt_net/data/css/style.dark.css,sha256=_GxmvAJgBc_YnbKFBcSSr533EOyRh24TXfQ2rnu7Hsw,2441
|
|
444
444
|
pygpt_net/data/css/style.light.css,sha256=qJumh5HSwzGiDPoYKcKz_-8cOvV8D9QM74PtxnHBOqE,4914
|
|
445
|
-
pygpt_net/data/css/web-blocks.css,sha256=
|
|
445
|
+
pygpt_net/data/css/web-blocks.css,sha256=naAJKmdLqFYaVey_urdbZ1rNCwUdVgbBMypUHxuQA5M,7420
|
|
446
446
|
pygpt_net/data/css/web-blocks.dark.css,sha256=J4koULn9xZynOPsCM8zI0HwG0ChwwROaac00oOduqvA,1579
|
|
447
447
|
pygpt_net/data/css/web-blocks.darkest.css,sha256=425pvVNX-HDMnPe-uarrK28kiEr4teudwwW8Qk8MtKI,1531
|
|
448
448
|
pygpt_net/data/css/web-blocks.light.css,sha256=Sa6SLiVBA_ck6o2TXhXT7qAWZMWxwzKdaJZF7YH6kZk,1541
|
|
449
|
-
pygpt_net/data/css/web-chatgpt.css,sha256=
|
|
449
|
+
pygpt_net/data/css/web-chatgpt.css,sha256=1zyYs8XPPErh4GB4_Bb8g1yPwH2YtKHyqFbj6RZZu1k,7829
|
|
450
450
|
pygpt_net/data/css/web-chatgpt.dark.css,sha256=C4wgIbI8oOQ7BdnCTX3ceuXRDBsp8pvvCBjiOhn0ZO0,1500
|
|
451
451
|
pygpt_net/data/css/web-chatgpt.darkest.css,sha256=oclQT4ZjjIU-icpNaBoci81Ya6jWRoRYP9dtnofR5xg,1452
|
|
452
452
|
pygpt_net/data/css/web-chatgpt.light.css,sha256=AW8d8jppB6jGqFRDSUqL1Al_G9--UIqR696Ucu95llo,1536
|
|
453
|
-
pygpt_net/data/css/web-chatgpt_wide.css,sha256=
|
|
453
|
+
pygpt_net/data/css/web-chatgpt_wide.css,sha256=Bn_9omkRu0SqSCzvHzZdnrudQf-Vd6zEJf_CmyhRm5A,8046
|
|
454
454
|
pygpt_net/data/css/web-chatgpt_wide.dark.css,sha256=C4wgIbI8oOQ7BdnCTX3ceuXRDBsp8pvvCBjiOhn0ZO0,1500
|
|
455
455
|
pygpt_net/data/css/web-chatgpt_wide.darkest.css,sha256=oclQT4ZjjIU-icpNaBoci81Ya6jWRoRYP9dtnofR5xg,1452
|
|
456
456
|
pygpt_net/data/css/web-chatgpt_wide.light.css,sha256=hDe7OqU7kd8ST9nuFcZmB-KuNKex6WyBNGKl2pHYjYk,1503
|
|
@@ -2171,7 +2171,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
|
|
|
2171
2171
|
pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
|
|
2172
2172
|
pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
|
|
2173
2173
|
pygpt_net/provider/core/config/json_file.py,sha256=GCcpCRQnBiSLWwlGbG9T3ZgiHkTfp5Jsg2KYkZcakBw,6789
|
|
2174
|
-
pygpt_net/provider/core/config/patch.py,sha256=
|
|
2174
|
+
pygpt_net/provider/core/config/patch.py,sha256=OLobSe5baE7abffQYiw94zAlgWNJlCQjMX0OlGFW-JE,4224
|
|
2175
2175
|
pygpt_net/provider/core/config/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2176
2176
|
pygpt_net/provider/core/config/patches/patch_before_2_6_42.py,sha256=LRjSyLwpLObmN4JWnzQpjLIdf4PHvq-l-5q6ZdNV_WY,127092
|
|
2177
2177
|
pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
|
|
@@ -2179,7 +2179,7 @@ pygpt_net/provider/core/ctx/base.py,sha256=Tfb4MDNe9BXXPU3lbzpdYwJF9S1oa2-mzgu5X
|
|
|
2179
2179
|
pygpt_net/provider/core/ctx/db_sqlite/__init__.py,sha256=0dP8VhI4bnFsQQKxAkaleKFlyaMycDD_cnE7gBCa57Y,512
|
|
2180
2180
|
pygpt_net/provider/core/ctx/db_sqlite/patch.py,sha256=YN_KRCvV8WqW_wmtbLurqikhT_46PbhoFpZcMNksKag,3121
|
|
2181
2181
|
pygpt_net/provider/core/ctx/db_sqlite/provider.py,sha256=G2pB7kZfREJRLJZmfv3DKTslXC-K7EhNN2sn56q6BFA,11753
|
|
2182
|
-
pygpt_net/provider/core/ctx/db_sqlite/storage.py,sha256=
|
|
2182
|
+
pygpt_net/provider/core/ctx/db_sqlite/storage.py,sha256=JYFFiyo7I9QBxx5pf53YZRZIdwSBsbOwzmsQohtAvpk,44326
|
|
2183
2183
|
pygpt_net/provider/core/ctx/db_sqlite/utils.py,sha256=NwzD1HMOUkbroF7KJ1EpAw4cUfMbBjTJelFmGEG4Xzs,8953
|
|
2184
2184
|
pygpt_net/provider/core/ctx/json_file.py,sha256=g1U4vOxfyA2jydwYvPQ9HpUIQihyBK2K4K6SQ75jEEs,11665
|
|
2185
2185
|
pygpt_net/provider/core/history/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
|
|
@@ -2340,13 +2340,13 @@ pygpt_net/tools/code_interpreter/body.py,sha256=jDEHJuAI8U1RjV0Dhm5CcL4Y8b09UNDw
|
|
|
2340
2340
|
pygpt_net/tools/code_interpreter/tool.py,sha256=XH3_ZUWp1tp21rGlj6-ULI723DXfY1xs7dN9Ye03Pm8,24185
|
|
2341
2341
|
pygpt_net/tools/code_interpreter/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2342
2342
|
pygpt_net/tools/code_interpreter/ui/dialogs.py,sha256=iYCtmn_gPMKhvy8Ygga_oYPVg80zP3-10SZgv0O6xYQ,5429
|
|
2343
|
-
pygpt_net/tools/code_interpreter/ui/html.py,sha256=
|
|
2344
|
-
pygpt_net/tools/code_interpreter/ui/widgets.py,sha256=
|
|
2343
|
+
pygpt_net/tools/code_interpreter/ui/html.py,sha256=8XI_RVZsOm6x95LTp3Lol4xmuTb_Mnb08lnNHxp6QpM,27414
|
|
2344
|
+
pygpt_net/tools/code_interpreter/ui/widgets.py,sha256=noOvecQNHcZKDfyfmgnupNr8KtY8WPvfbds63z6vOV0,18020
|
|
2345
2345
|
pygpt_net/tools/html_canvas/__init__.py,sha256=7FScUoJWFBsF6Rbmt14zb2YEERcywW_xAeX0GTAHhX4,508
|
|
2346
2346
|
pygpt_net/tools/html_canvas/tool.py,sha256=F0rozMO1rva7ABr1hXhOBCW9XWq9hL8RjTWsI6cp-wc,9875
|
|
2347
2347
|
pygpt_net/tools/html_canvas/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2348
2348
|
pygpt_net/tools/html_canvas/ui/dialogs.py,sha256=zw4XusCoZ-52ks8ogcasEVAxDHQwSHh88FtW2rk4HP0,4825
|
|
2349
|
-
pygpt_net/tools/html_canvas/ui/widgets.py,sha256=
|
|
2349
|
+
pygpt_net/tools/html_canvas/ui/widgets.py,sha256=Yp_IP1VhAF5zRymdQ2ADG_wObKOf44rNgI58Vn2c3_4,5050
|
|
2350
2350
|
pygpt_net/tools/image_viewer/__init__.py,sha256=BQLr8Kg670xPAyv_qoRA_EjWq5WZclqoc4OpTk5V11k,508
|
|
2351
2351
|
pygpt_net/tools/image_viewer/tool.py,sha256=8cIcEG9R0HGUXwikD8XOxQHqt0QZkgB4LzpiQ4GAWwU,9269
|
|
2352
2352
|
pygpt_net/tools/image_viewer/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -2375,7 +2375,7 @@ pygpt_net/tools/translator/tool.py,sha256=hm3dEfQJRo8u45gyRXyIOp92khQuBJ6hnqIxO9
|
|
|
2375
2375
|
pygpt_net/tools/translator/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2376
2376
|
pygpt_net/tools/translator/ui/dialogs.py,sha256=qC-dCNtOLbOe-h586iBmsBTlv4KlUoxCkPqYOq8336k,4137
|
|
2377
2377
|
pygpt_net/tools/translator/ui/widgets.py,sha256=6gEVlMd96tHOwKKDV6eoMoItTOcr2Bd_ig5Y2KihZ5o,17735
|
|
2378
|
-
pygpt_net/ui/__init__.py,sha256=
|
|
2378
|
+
pygpt_net/ui/__init__.py,sha256=YjRnv1py7ZtxeD6Q1pPtG89uXRYQl8WHGKLmvzT_KRk,9136
|
|
2379
2379
|
pygpt_net/ui/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2380
2380
|
pygpt_net/ui/base/config_dialog.py,sha256=P-7u7DQUZtr9D237SBjFt-QcYOeAWD8hD_rDJLc-C0Y,8913
|
|
2381
2381
|
pygpt_net/ui/base/context_menu.py,sha256=l-Z9LqPa_xGsjdV3ay65Rqu8JLzZDx2s8GUzYMt4eSk,4462
|
|
@@ -2415,7 +2415,7 @@ pygpt_net/ui/layout/chat/attachments.py,sha256=yjW3RAQrp-h-0yWslKoaaI1q0dnkka82Y
|
|
|
2415
2415
|
pygpt_net/ui/layout/chat/attachments_ctx.py,sha256=JOQldJFWPMIvV-QMkw9Zqb6N-1utwZDgeQSEsvQ9JTM,6809
|
|
2416
2416
|
pygpt_net/ui/layout/chat/attachments_uploaded.py,sha256=MZA0aFOm9iKbYc6NrM7Ivg2i_AovAL2x8SM4IeyUtNI,5207
|
|
2417
2417
|
pygpt_net/ui/layout/chat/calendar.py,sha256=hE9Gl0h5kPXe0OUkimRfys2aFti0Y4wzKxhh1gyGnjs,6578
|
|
2418
|
-
pygpt_net/ui/layout/chat/chat.py,sha256=
|
|
2418
|
+
pygpt_net/ui/layout/chat/chat.py,sha256=xfdVb_HUqiC9HkV-iXbt1ucqnFeIVYVVc8yG0cW3ff4,2173
|
|
2419
2419
|
pygpt_net/ui/layout/chat/explorer.py,sha256=Jg6aK5qTCTNgb4EXr-zeZXSexARQSzn4W8unqV1MGe8,1358
|
|
2420
2420
|
pygpt_net/ui/layout/chat/input.py,sha256=Wnb29-1MQPD4AUU4CZN4vz6tba_L6tgIyJX-Xr4cgxY,9969
|
|
2421
2421
|
pygpt_net/ui/layout/chat/markdown.py,sha256=hjYY8Da1z0IZZD086_csMcDY1wwagpuQTDZ-XfgeNgs,18656
|
|
@@ -2423,7 +2423,7 @@ pygpt_net/ui/layout/chat/output.py,sha256=Skt2-Zeka7fY_uzh_8H8MsvusJaWpaesfk2Ezy
|
|
|
2423
2423
|
pygpt_net/ui/layout/chat/painter.py,sha256=XmogOPKRIBMldZOmJDNSVZLqFC_JTCXLu6Eyfw1Da3c,8552
|
|
2424
2424
|
pygpt_net/ui/layout/ctx/__init__.py,sha256=NJ9L0yJKIx1nKnk2sczp7ILWVbu2hfpvUz4E56EFuPI,509
|
|
2425
2425
|
pygpt_net/ui/layout/ctx/ctx.py,sha256=GDJyolAnFlAd49bbu9-LGsCxOUTAImSH5In4i8YHFOo,1653
|
|
2426
|
-
pygpt_net/ui/layout/ctx/ctx_list.py,sha256=
|
|
2426
|
+
pygpt_net/ui/layout/ctx/ctx_list.py,sha256=GuVyk85vcWvYxwdKstssCd8j-QYm9fXDeBsjWF7PMf0,14950
|
|
2427
2427
|
pygpt_net/ui/layout/ctx/search_input.py,sha256=yM_X2sxeR09JRqmkd2R4z82GRo3I1k4rOb75PgIFydE,1441
|
|
2428
2428
|
pygpt_net/ui/layout/ctx/video.py,sha256=RzzyGObhlXamXIJHRqA9D2o6eVVulF4kNPVf3BkURGI,1068
|
|
2429
2429
|
pygpt_net/ui/layout/status.py,sha256=bhRCXP25ODBZHl-aXCZft68Y_6ccprDkrQjJVIG_ulM,2015
|
|
@@ -2513,10 +2513,10 @@ pygpt_net/ui/widget/lists/assistant.py,sha256=496IcQQ9Vk1_UMyeVyGV-X6yEcK_8u6zoI
|
|
|
2513
2513
|
pygpt_net/ui/widget/lists/assistant_store.py,sha256=WupZMOI4-x-r21JCg8rdR45NMyAxI_yQxFXkvGhC7GM,3715
|
|
2514
2514
|
pygpt_net/ui/widget/lists/attachment.py,sha256=QHoOQLg86RWEyGpjvRg7hnQEMTTnJiJyIkv20G5GiWo,8678
|
|
2515
2515
|
pygpt_net/ui/widget/lists/attachment_ctx.py,sha256=emcm2BMrKL4RlzmzKR1-_QJ0fxbFXsflWo_sFJvylzM,5474
|
|
2516
|
-
pygpt_net/ui/widget/lists/base.py,sha256=
|
|
2516
|
+
pygpt_net/ui/widget/lists/base.py,sha256=HGRmr3PHooQsidZ_K8FPIa9lhkJCpy8u1mXNfJ2r9Ak,4812
|
|
2517
2517
|
pygpt_net/ui/widget/lists/base_combo.py,sha256=-ZXvof8eJfSoB0_ONVxVuCJP8acss-f066XreG_GfnY,4132
|
|
2518
2518
|
pygpt_net/ui/widget/lists/base_list_combo.py,sha256=DTm5qiT08pfHu8DKH_gA6aodDY3XELtKfDudJTOL3RU,5721
|
|
2519
|
-
pygpt_net/ui/widget/lists/context.py,sha256=
|
|
2519
|
+
pygpt_net/ui/widget/lists/context.py,sha256=spJFFcOOne34D10mfhAJ8RvycZ4Ss2AZr0jOHSayuDs,29453
|
|
2520
2520
|
pygpt_net/ui/widget/lists/db.py,sha256=2eKdcSY78WHxCHBAMSpZoSChACJ6Sjfbb2gkt-6l8uM,5908
|
|
2521
2521
|
pygpt_net/ui/widget/lists/debug.py,sha256=POWO_G8ah4wTNjXKxp6Si-07OkttJ7WL27dmSsNRIuQ,3705
|
|
2522
2522
|
pygpt_net/ui/widget/lists/experts.py,sha256=c6o0TIQ6YkIAMHoHHYBA-474z9tyPPw7YUn4R-oaXio,5957
|
|
@@ -2549,7 +2549,7 @@ pygpt_net/ui/widget/option/toggle.py,sha256=ainYgH-1UKeHf_BP0yZ48luD0k4zAvZ5jMLd
|
|
|
2549
2549
|
pygpt_net/ui/widget/option/toggle_label.py,sha256=JZwI_mpqLX6Ml9ovijXMWBHTT0t_nf3aYTqRqTYFtpY,2271
|
|
2550
2550
|
pygpt_net/ui/widget/tabs/Input.py,sha256=ELHpaWjhHJdKRhtTjDIByaMF_BqaHCyKwEWDofm0Gls,1875
|
|
2551
2551
|
pygpt_net/ui/widget/tabs/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
2552
|
-
pygpt_net/ui/widget/tabs/body.py,sha256=
|
|
2552
|
+
pygpt_net/ui/widget/tabs/body.py,sha256=dNHfsQ1c6qVylg44I3PvDN21zyJKOkUz2KdH93St5l8,4373
|
|
2553
2553
|
pygpt_net/ui/widget/tabs/layout.py,sha256=6b6bN04IFS0I0cYvq-nUxN2eWwHVUBiNwPXoNgLokM4,6628
|
|
2554
2554
|
pygpt_net/ui/widget/tabs/output.py,sha256=OwlRYcAwb12kMp5RT-DjsEOkXHG9FNQfJuVQBL7XnKA,25082
|
|
2555
2555
|
pygpt_net/ui/widget/textarea/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
@@ -2566,12 +2566,12 @@ pygpt_net/ui/widget/textarea/output.py,sha256=krWta3GHwdlPOqcxLln150bo7iUOtbFL_y
|
|
|
2566
2566
|
pygpt_net/ui/widget/textarea/rename.py,sha256=NwuGRIeWMo7WfsMguAFpTqdOz1eTiXbxrDXGsbWF_TY,1358
|
|
2567
2567
|
pygpt_net/ui/widget/textarea/search_input.py,sha256=aoOlunBwxn-z3gIMNKfnghHX00sC36wQHl87dRlDJlM,5227
|
|
2568
2568
|
pygpt_net/ui/widget/textarea/url.py,sha256=xbNQxoM5fYI1ZWbvybQkPmNPrIq3yhtNPBOSOWftZCg,1337
|
|
2569
|
-
pygpt_net/ui/widget/textarea/web.py,sha256=
|
|
2569
|
+
pygpt_net/ui/widget/textarea/web.py,sha256=FGS0NGSpzKgtP8AzMwnC-LHDXEOY7baHImmnxsbIyGY,19279
|
|
2570
2570
|
pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
|
|
2571
2571
|
pygpt_net/ui/widget/vision/camera.py,sha256=v1qEncaZr5pXocO5Cpk_lsgfCMvfFigdJmzsYfzvCl0,1877
|
|
2572
2572
|
pygpt_net/utils.py,sha256=7lZj_YSzx7ZfvqFtjYThEvRJNSBZzrJyK7ZxDAtYPAQ,9708
|
|
2573
|
-
pygpt_net-2.6.
|
|
2574
|
-
pygpt_net-2.6.
|
|
2575
|
-
pygpt_net-2.6.
|
|
2576
|
-
pygpt_net-2.6.
|
|
2577
|
-
pygpt_net-2.6.
|
|
2573
|
+
pygpt_net-2.6.49.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
|
|
2574
|
+
pygpt_net-2.6.49.dist-info/METADATA,sha256=AykZ3KQvjl_5RGn7sLhu76V2NsPRRCFZDPg9aKAB7Uo,163340
|
|
2575
|
+
pygpt_net-2.6.49.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
2576
|
+
pygpt_net-2.6.49.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
|
|
2577
|
+
pygpt_net-2.6.49.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|