pygpt-net 2.6.11__py3-none-any.whl → 2.6.12__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.
@@ -6,9 +6,10 @@
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.18 01:00:00 #
9
+ # Updated Date: 2025.08.19 07:00:00 #
10
10
  # ================================================== #
11
11
 
12
+ from PySide6 import QtCore
12
13
  from PySide6.QtCore import Qt, QObject, Signal, Slot, QEvent, QTimer
13
14
  from PySide6.QtWebChannel import QWebChannel
14
15
  from PySide6.QtWebEngineCore import QWebEngineSettings, QWebEnginePage, QWebEngineProfile
@@ -22,6 +23,16 @@ from pygpt_net.core.text.web_finder import WebFinder
22
23
  from pygpt_net.ui.widget.tabs.layout import FocusEventFilter
23
24
  from pygpt_net.utils import trans, mem_clean
24
25
 
26
+ def make_shared_profile():
27
+ prof = QWebEngineProfile("app", None)
28
+ prof.setHttpCacheType(QWebEngineProfile.MemoryHttpCache)
29
+ prof.setHttpCacheMaximumSize(32 * 1024 * 1024) # 32MB
30
+ prof.setPersistentCookiesPolicy(QWebEngineProfile.NoPersistentCookies)
31
+ prof.setSpellCheckEnabled(False)
32
+ return prof
33
+
34
+ SHARED_PROFILE = None
35
+
25
36
  import pygpt_net.icons_rc
26
37
 
27
38
  class ChatWebOutput(QWebEngineView):
@@ -41,17 +52,20 @@ class ChatWebOutput(QWebEngineView):
41
52
  self.filter = FocusEventFilter(self, self.on_focus)
42
53
  self.installEventFilter(self)
43
54
 
44
- self.plain = ""
45
- self.html_content = ""
55
+ global SHARED_PROFILE
56
+ if not SHARED_PROFILE:
57
+ SHARED_PROFILE = make_shared_profile()
58
+
59
+ self.plain = None
60
+ self.html_content = None
46
61
  self.meta = None
47
62
  self.tab = None
48
63
  self.setProperty('class', 'layout-output-web')
49
64
 
50
65
  self._glwidget = None
51
66
  self._glwidget_filter_installed = False
52
- self._profile = self._create_profile(parent=self)
53
67
 
54
- self.setPage(CustomWebEnginePage(self.window, self, profile=self._profile))
68
+ self.setPage(CustomWebEnginePage(self.window, self, profile=SHARED_PROFILE))
55
69
 
56
70
  def _detach_gl_event_filter(self):
57
71
  """Detach OpenGL widget event filter if installed"""
@@ -113,6 +127,7 @@ class ChatWebOutput(QWebEngineView):
113
127
  p.setHttpCacheType(QWebEngineProfile.NoCache)
114
128
  p.setHttpCacheMaximumSize(0)
115
129
  p.setPersistentCookiesPolicy(QWebEngineProfile.NoPersistentCookies)
130
+ p.setSpellCheckEnabled(False)
116
131
  except Exception:
117
132
  pass
118
133
  return p
@@ -167,26 +182,22 @@ class ChatWebOutput(QWebEngineView):
167
182
  return new_view
168
183
 
169
184
  def resetPage(self):
170
- """Reset current page (clear memory)"""
171
- self.meta = None
172
- self.plain = ""
173
- self.html_content = ""
174
-
175
- old_page = self.page()
176
- old_profile = getattr(self, "_profile", None)
177
-
178
- self.setUpdatesEnabled(False)
179
- new_profile = self._create_profile(parent=self)
180
- new_page = CustomWebEnginePage(self.window, self, profile=new_profile)
181
- self.setPage(new_page)
182
-
183
- if old_page:
184
- self._teardown_page(old_page)
185
-
186
- self._release_profile_after_page(old_page, old_profile)
187
- self._profile = new_profile
185
+ """Reset current page without creating a new one"""
186
+ self.plain = None
187
+ self.html_content = None
188
+ p = self.page()
189
+ if not p:
190
+ self.setPage(CustomWebEnginePage(self.window, self, profile=SHARED_PROFILE))
191
+ p = self.page()
188
192
 
189
- QTimer.singleShot(0, lambda: QApplication.sendPostedEvents(None, QEvent.DeferredDelete))
193
+ p.runJavaScript(
194
+ f"""clean();"""
195
+ )
196
+ p.profile().clearHttpCache()
197
+ try:
198
+ p.history().clear()
199
+ except Exception:
200
+ pass
190
201
  mem_clean()
191
202
 
192
203
  def on_delete(self):
@@ -208,8 +219,6 @@ class ChatWebOutput(QWebEngineView):
208
219
  if page:
209
220
  self._teardown_page(page)
210
221
 
211
- self._release_profile_after_page(page, prof)
212
-
213
222
  # safely unhook signals (may not have been hooked)
214
223
  for sig, slot in (
215
224
  (self.loadFinished, self.on_page_loaded),
@@ -511,6 +520,7 @@ class CustomWebEnginePage(QWebEnginePage):
511
520
  return super().acceptNavigationRequest(url, _type, isMainFrame)
512
521
 
513
522
  def javaScriptConsoleMessage(self, level, message, line_number, source_id):
523
+ # print("[JS CONSOLE] Line", line_number, ":", message)
514
524
  self.signals.js_message.emit(line_number, message, source_id) # handled in debug controller
515
525
 
516
526
  def cleanup(self):
pygpt_net/utils.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.16 00:00:00 #
9
+ # Updated Date: 2025.08.19 07:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import json
@@ -14,7 +14,8 @@ import os
14
14
  import re
15
15
  from datetime import datetime
16
16
 
17
- from PySide6.QtCore import QEvent, QCoreApplication
17
+ from PySide6 import QtCore, QtGui
18
+ from PySide6.QtWidgets import QApplication
18
19
 
19
20
  from pygpt_net.core.locale import Locale
20
21
 
@@ -268,19 +269,25 @@ def mem_clean():
268
269
  gc.collect()
269
270
  except Exception:
270
271
  pass
272
+
271
273
  try:
272
- QCoreApplication.sendPostedEvents(None, QEvent.DeferredDelete)
274
+ QApplication.sendPostedEvents(None, QtCore.QEvent.DeferredDelete)
275
+ QApplication.processEvents(QtCore.QEventLoop.AllEvents, 50)
273
276
  except Exception:
274
277
  pass
278
+
279
+ try:
280
+ QtGui.QPixmapCache.clear()
281
+ except Exception:
282
+ pass
283
+
275
284
  try:
276
285
  if sys.platform.startswith("linux"):
277
286
  import ctypes, ctypes.util
278
- libc_path = ctypes.util.find_library("c") or "libc.so.6"
279
- libc = ctypes.CDLL(libc_path, use_errno=True)
287
+ libc = ctypes.CDLL(ctypes.util.find_library("c") or "libc.so.6")
280
288
  if hasattr(libc, "malloc_trim"):
281
- libc.malloc_trim.argtypes = [ctypes.c_size_t]
282
- libc.malloc_trim.restype = ctypes.c_int
283
- ok = bool(libc.malloc_trim(0))
289
+ libc.malloc_trim(0)
290
+ ok = True
284
291
  elif sys.platform == "win32":
285
292
  import ctypes, ctypes.wintypes
286
293
  kernel32 = ctypes.WinDLL("kernel32", use_last_error=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.6.11
3
+ Version: 2.6.12
4
4
  Summary: Desktop AI Assistant powered by: OpenAI GPT-5, o1, o3, GPT-4, 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: py_gpt,py-gpt,pygpt,desktop,app,o1,o3,gpt-5,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,grok,deepseek,bielik,claude,tts,whisper,vision,chatgpt,dall-e,chat,chatbot,assistant,text completion,image generation,ai,api,openai,api key,langchain,llama-index,ollama,presets,ui,qt,pyside
@@ -108,7 +108,7 @@ Description-Content-Type: text/markdown
108
108
 
109
109
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
110
110
 
111
- Release: **2.6.11** | build: **2025-08-18** | Python: **>=3.10, <3.14**
111
+ Release: **2.6.12** | build: **2025-08-19** | Python: **>=3.10, <3.14**
112
112
 
113
113
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
114
114
  >
@@ -4566,6 +4566,10 @@ may consume additional tokens that are not displayed in the main window.
4566
4566
 
4567
4567
  ## Recent changes:
4568
4568
 
4569
+ **2.6.12 (2025-08-19)**
4570
+
4571
+ - Optimized web renderer memory cleanup.
4572
+
4569
4573
  **2.6.11 (2025-08-18)**
4570
4574
 
4571
4575
  - Added the ability to close the dialog window with the Esc key.
@@ -1,7 +1,7 @@
1
- pygpt_net/CHANGELOG.txt,sha256=Lr-bYpotbtOF6XfQ9THptqmPCoeSPxZyuPskh9vsv5E,99547
1
+ pygpt_net/CHANGELOG.txt,sha256=gEIPus9VmASjLbiQjZvhZR9-sgBQER3PfEL46R57xz4,99610
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=C1-aw-8KzcYF1WCMN9YnTZyLV6SmY_ptdDlpvF_IE_E,1373
4
- pygpt_net/app.py,sha256=i5Rnw_-dvuSVPJf1oX4rA1raCCaMK6RKRHGzX2MGf70,20827
3
+ pygpt_net/__init__.py,sha256=1_gsJg2YfCYG2fGGUHA1yUGFG0C-20YiqcLOldiEyW8,1373
4
+ pygpt_net/app.py,sha256=2IXjjYJ0tm-iFn3pHu3-JGoFAnN9YvmXGHPmeOhpU3Y,20999
5
5
  pygpt_net/config.py,sha256=LCKrqQfePVNrAvH3EY_1oZx1Go754sDoyUneJ0iGWFI,16660
6
6
  pygpt_net/container.py,sha256=NsMSHURaEC_eW8vrCNdztwqkxB7jui3yVlzUOMYvCHg,4124
7
7
  pygpt_net/controller/__init__.py,sha256=FiAP-Md0a57HSH1sSFflB4aq6Jho9M1lejk9VJxM8is,5969
@@ -42,8 +42,8 @@ pygpt_net/controller/chat/image.py,sha256=yPX26gsz0fLnyXR88lpVyvvHnKA-yZwfXJ4paU
42
42
  pygpt_net/controller/chat/input.py,sha256=EPA90r6GqHIlu4JJbr0cuvKIEYSs6LVkimxrWHAyyX0,12390
43
43
  pygpt_net/controller/chat/output.py,sha256=VL4OmC6MMy2KvJlMo6ipFqvd0oVNUK9F14BzUHWFfno,10860
44
44
  pygpt_net/controller/chat/render.py,sha256=YIKWMZIUXD3f_11p9mXjgg-TtudZTjJ26iHXTn553Qc,20401
45
- pygpt_net/controller/chat/response.py,sha256=t_JHyTIlGx9ssZcj5z9M3QOp2EBdeMr4amJHb0LttlY,12391
46
- pygpt_net/controller/chat/stream.py,sha256=q8Uip3RKbcKqisPJH7fYzIzDoeZd7tMOsg2gJY79gJo,21844
45
+ pygpt_net/controller/chat/response.py,sha256=6Z9IdMCbkWebM6kTzL19tLqSHRrjQqe6QV7ildGxIpE,12391
46
+ pygpt_net/controller/chat/stream.py,sha256=zmDGI_Z9Rn8IYv6vEIVBMTOGjjY0zlfmM3qJMddRGRI,21994
47
47
  pygpt_net/controller/chat/text.py,sha256=ktluNw9ItG4g9p3OpOSmgALhFf1Gnonhl3J9kLzdTqU,10743
48
48
  pygpt_net/controller/chat/vision.py,sha256=LsFc0TZZwY8dVtJH6Q5iha8rUQCf5HhOMuRXMtnLzZU,3578
49
49
  pygpt_net/controller/command/__init__.py,sha256=xHOjVYXKiHT-FEXNSGJZoYcU8SslQ2vr6DMqJcVPDNE,511
@@ -192,7 +192,7 @@ pygpt_net/core/chain/completion.py,sha256=GGRA-q6sQgPnSibiwHBwk7jgT0MgOkka1_jK2-
192
192
  pygpt_net/core/command/__init__.py,sha256=3pjRwUt1VGN8P5HE1i2rokNhxtiCL-drc_mmu4tDe-o,512
193
193
  pygpt_net/core/command/command.py,sha256=1UvkQ_xCGiZFH7BpX8QAwsknRAoEbVUDvXxnT6-cdb8,23149
194
194
  pygpt_net/core/ctx/__init__.py,sha256=hsqzIDxcwIIjF-7Zr5SkkhQV9LLmIYndQ_dohK20bg0,507
195
- pygpt_net/core/ctx/bag.py,sha256=N6fDDHJgQobB2MCR5HlGzE3IMaxOA_aqelNcrleZD3A,1316
195
+ pygpt_net/core/ctx/bag.py,sha256=IcUrmS8KafOHwS_7ufhet6GY90fp4xmG7dS6W17gw4o,1340
196
196
  pygpt_net/core/ctx/container.py,sha256=D2GOOThsOb974xd6uJWlWv-nwm1FJ7pGGH_LXNBzgkY,5063
197
197
  pygpt_net/core/ctx/ctx.py,sha256=YBsUNlJPuyTpEUvD9K-U_3CF-Piv6-A28meIPlWDmKA,41340
198
198
  pygpt_net/core/ctx/idx.py,sha256=3Zi-48OWlU80si-Z7mVjnsc7TYATXK9g1dM0M5sXsV4,8167
@@ -210,7 +210,7 @@ pygpt_net/core/debug/console/__init__.py,sha256=HAeCpOIaHnDNzW8Y_E-2W7pvKiCwwzBc
210
210
  pygpt_net/core/debug/console/console.py,sha256=m_L5-AHlUSJ96wYYp3Qph_Jpt4hRuGZWQSZmlkyXRss,3644
211
211
  pygpt_net/core/debug/context.py,sha256=pNGrYBe6bmyMCU1MJPjAXNT-4SubEu-1DFGJafXwI_U,5838
212
212
  pygpt_net/core/debug/db.py,sha256=TQtNpCjrcFw943nae3OIyq0af_okjr-aTfFKS_QhQQk,776
213
- pygpt_net/core/debug/debug.py,sha256=v1Pn105upNL2tFlOYtStFdT0W0OpEL_EUwutU3rRXAw,13354
213
+ pygpt_net/core/debug/debug.py,sha256=jBbNlHYPy17UQYiW6f8jrPUmq046shdYeNHi_i8Cff4,13748
214
214
  pygpt_net/core/debug/events.py,sha256=OCVWSCCHkZkoQFjwO8c76xL02Gdcphv8eRJoXKrd-dQ,2206
215
215
  pygpt_net/core/debug/indexes.py,sha256=M8Uf6NT1LswyXOdpZ_QzkBbhvv08U1rhMb6PV7OaNtE,5416
216
216
  pygpt_net/core/debug/kernel.py,sha256=kFw3dp2Azl_g6omMoxlieV8E8pn5JqtI2PTHBmJ0fAU,1317
@@ -303,11 +303,11 @@ pygpt_net/core/render/plain/helpers.py,sha256=CMF84kSeuQnkgZVHmN_9YWaL5BC958tDE9
303
303
  pygpt_net/core/render/plain/pid.py,sha256=Pz3v1tnLj-XI_9vcaVkCf9SZ2EgVs4LYV4qzelBMoOg,1119
304
304
  pygpt_net/core/render/plain/renderer.py,sha256=Cm-HXHd5Mc6LAiDW5qNXOyZoLKlUo16I_cU-B2cGnYM,15595
305
305
  pygpt_net/core/render/web/__init__.py,sha256=istp5dsn6EkLEP7lOBeDb8RjodUcWZqjcEvTroaTT-w,489
306
- pygpt_net/core/render/web/body.py,sha256=Zj7DCaaLGmnk_MkW0Zg1Jgm-3aMN0BD-KWzZyRFwCwI,53057
306
+ pygpt_net/core/render/web/body.py,sha256=rybg76GiLWowR-qEvM0Y64woSsO4KSBnww4f8BU7GgI,54872
307
307
  pygpt_net/core/render/web/helpers.py,sha256=ivrXrCqRIUWHDmu3INu-i6XUlB2W9IOO8iYyqpbnSRU,5438
308
308
  pygpt_net/core/render/web/parser.py,sha256=pDFc9Tf8P-jvrDilXyT1fukcQHbixHRJ9Dn9hF10Gko,12892
309
- pygpt_net/core/render/web/pid.py,sha256=EOp8hUJMFXNgZs8Kl5Qt8fz3Rslj6meK8Yn9aDmUrdM,3092
310
- pygpt_net/core/render/web/renderer.py,sha256=l5Wxhjx_FSXIGf12xoK7dkn5ZX4TKWgqPxozG_nkmHM,47678
309
+ pygpt_net/core/render/web/pid.py,sha256=4NuTQAb7LyljKOjmbXUG_o-HBU7hbfPWJdrLsMNglAU,3658
310
+ pygpt_net/core/render/web/renderer.py,sha256=bIg6lKOAy2_k9xkwOYVS80mDAMl56ePQjTP-RoSz3Ss,50710
311
311
  pygpt_net/core/render/web/syntax_highlight.py,sha256=QSLGF5cJL_Xeqej7_TYwY_5C2w9enXV_cMEuaJ3C43U,2005
312
312
  pygpt_net/core/settings/__init__.py,sha256=GQ6_gJ2jf_Chm7ZuZLvkcvEh_sfMDVMBieeoJi2iPI4,512
313
313
  pygpt_net/core/settings/settings.py,sha256=onqwNiICm2VhHfmXLvp1MiEJ14m2jzeeI2pjUiaUwtY,7787
@@ -343,8 +343,8 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
343
343
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
344
344
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
345
345
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
346
- pygpt_net/data/config/config.json,sha256=nkZb_Rbl3G-6pxyU9GGJiIFfb3NDPuA58PHCnXqc208,24924
347
- pygpt_net/data/config/models.json,sha256=knUghtUJaWlE3rhhuhK8_XM7Innb7K-qTFHDqbNjJQI,109650
346
+ pygpt_net/data/config/config.json,sha256=Qg03MSmjEyjvVZy-DIaLQfInXRGWFhiFn3VtgmvZ2w8,24924
347
+ pygpt_net/data/config/models.json,sha256=4w3c_lo1lAhChheQKalYiVJE_wRWwb9X7bKDUtZOAAU,109650
348
348
  pygpt_net/data/config/modes.json,sha256=M882iiqX_R2sNQl9cqZ3k-uneEvO9wpARtHRMLx_LHw,2265
349
349
  pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
350
350
  pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
@@ -1798,7 +1798,7 @@ pygpt_net/item/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,48
1798
1798
  pygpt_net/item/assistant.py,sha256=65NZlvvR2VHWi6ZbPGi46qX0n0iJpbGHF2AxWXAIQlU,9588
1799
1799
  pygpt_net/item/attachment.py,sha256=Wo-36L_R-P--JjDEpnpbaYo3vuIqr1s82m5rman9h28,2818
1800
1800
  pygpt_net/item/calendar_note.py,sha256=EBhAAS09E5tIO3XhW_iA_wofSUywLWlYtiiMJJzVc3g,2114
1801
- pygpt_net/item/ctx.py,sha256=7vz_uBxerKJEhFYjoyMYrrGRTBPZ3G5nEGQ69KI35V8,20764
1801
+ pygpt_net/item/ctx.py,sha256=EboFJD0eVQZ5jMqOG94O4SvzF6J2C7EPvR-oSHYqMqg,20770
1802
1802
  pygpt_net/item/index.py,sha256=2feQPpOzrNkAGF4f8nKMAQzxDBAMpt6DKzCcYpCBE1E,1682
1803
1803
  pygpt_net/item/mode.py,sha256=zMgJUA8943vg_WfF7Qwa63BdR3lMn7H8ItMpAj8z2Z0,601
1804
1804
  pygpt_net/item/model.py,sha256=H_q20RZEebN5MJnswnf291LQUNJAaFuSHagq9xE4NCE,11104
@@ -1807,7 +1807,7 @@ pygpt_net/item/preset.py,sha256=35J8o0JueG5tbfnL7vP-EUHEE8e-Jc4G1HuyV90Dcug,6892
1807
1807
  pygpt_net/item/prompt.py,sha256=BXaAOw95n6NdXNRJgSFBIms0ypLrJl_0wpedOOFsjE4,1564
1808
1808
  pygpt_net/js.qrc,sha256=OqPzGN6U2Y-uENLFlfDY2BxywCAnU0uds4QcbB7me5Q,542
1809
1809
  pygpt_net/js_rc.py,sha256=5f7l2zJIzW-gHHndytWVXz2sjKyR924GCpOSmDX9sZI,2456868
1810
- pygpt_net/launcher.py,sha256=xQRCKkBsbVJkzltgxSjSPRbAUFk8Ui8jXxv3tdRwpiI,10316
1810
+ pygpt_net/launcher.py,sha256=bqR175OVZ_Q3yKsIM5NiHB1S1b-vXrIglsQyr6zyrWU,10125
1811
1811
  pygpt_net/migrations/Version20231227152900.py,sha256=1Rw1mK2mVQs0B2HrbxHICu1Pd1X5jg4yZIrytnR5N5Y,2849
1812
1812
  pygpt_net/migrations/Version20231230095000.py,sha256=A1_e9oC_E4LSo9uBFiiI2dKH7N-SERFp7DMX1R_8LXQ,906
1813
1813
  pygpt_net/migrations/Version20231231230000.py,sha256=SICzfCBpm32P_YMlVIW1LRumEvPbuI2cb9eKsHpcBqg,901
@@ -2078,7 +2078,7 @@ pygpt_net/provider/core/preset/patch.py,sha256=b0agSLVfen7KX8wYvb8Haed8sw7Mhqvr2
2078
2078
  pygpt_net/provider/core/prompt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2079
2079
  pygpt_net/provider/core/prompt/base.py,sha256=EYUA30T1QwJ9RSD0uW5x6VEstgIXNwgutmaXI64BWhw,1304
2080
2080
  pygpt_net/provider/core/prompt/json_file.py,sha256=5yfW1RgEa36tX4-ntze4PavWLry0YG43D2LO23_MrzE,4838
2081
- pygpt_net/provider/gpt/__init__.py,sha256=4LgcEakRV3lGrOgMQWsaXA3G9Qk3yMFZEAUk3MG7tio,10474
2081
+ pygpt_net/provider/gpt/__init__.py,sha256=JHlM1Ec6-O6ZSbsnzRLAN6EsYx9REOB-l5z_QE6oVs8,10942
2082
2082
  pygpt_net/provider/gpt/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2083
2083
  pygpt_net/provider/gpt/agents/client.py,sha256=opH2DnYPVRuWvc284AMjJBWUhipV8hdWcs3yqWA2g7s,2372
2084
2084
  pygpt_net/provider/gpt/agents/computer.py,sha256=y4ARywdK4vv1gajaQt5Zi4doVrRjRM734bUE6IjmVlc,11757
@@ -2207,7 +2207,7 @@ pygpt_net/tools/audio_transcriber/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
2207
2207
  pygpt_net/tools/audio_transcriber/ui/dialogs.py,sha256=D-roLNGj5Zkl7_2nlahGX4fwDzanBbrtr4TLQ30-S_E,5666
2208
2208
  pygpt_net/tools/base.py,sha256=KxTSYGIG8eQyL_loyAWP2loPJni0TOg_wwvlq5tLYrg,3833
2209
2209
  pygpt_net/tools/code_interpreter/__init__.py,sha256=7FScUoJWFBsF6Rbmt14zb2YEERcywW_xAeX0GTAHhX4,508
2210
- pygpt_net/tools/code_interpreter/body.py,sha256=mMdkosviBgpMLB9-9kAnWe3YVMC3GLooe6MuQn37zp4,14139
2210
+ pygpt_net/tools/code_interpreter/body.py,sha256=tR_RJflalCCjbQeTt9gkDe32kh2WI-nL_-xgZybLiGA,14094
2211
2211
  pygpt_net/tools/code_interpreter/tool.py,sha256=MV3lQONFzJiSl81hHzQel3kB3SvtWGmP77rvdLOchpA,23994
2212
2212
  pygpt_net/tools/code_interpreter/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2213
2213
  pygpt_net/tools/code_interpreter/ui/dialogs.py,sha256=iYCtmn_gPMKhvy8Ygga_oYPVg80zP3-10SZgv0O6xYQ,5429
@@ -2312,7 +2312,7 @@ pygpt_net/ui/layout/toolbox/presets.py,sha256=uEmMy3gudpjKFQbDVNShjK1iBw-bl-1IXS
2312
2312
  pygpt_net/ui/layout/toolbox/prompt.py,sha256=jebF-q1S1Et6ISa9vI0_nM4sb7liDesAXJHtZ5Ll7ZI,4006
2313
2313
  pygpt_net/ui/layout/toolbox/toolbox.py,sha256=zEZr_XDz9QbPKL0u0KMSt1b8yOG-ao1gmZPvWWVpuVs,3392
2314
2314
  pygpt_net/ui/layout/toolbox/vision.py,sha256=GZY-N2z8re1LN1ntsy-3Ius8OY4DujmJpyJ1qP2ZRxs,2447
2315
- pygpt_net/ui/main.py,sha256=g2_daPgF_DEnG-oT2dPXiUomikZIdJ96ZgSX9hbJ32E,13891
2315
+ pygpt_net/ui/main.py,sha256=ycgY02hqLqBFo9Sy8M5EnOXIEBHfmVwBpRhXgeUyKR4,14066
2316
2316
  pygpt_net/ui/menu/__init__.py,sha256=wAIKG9wLWfYv6tpXCTXptWb_XKoCc-4lYWLDvV1bVYk,508
2317
2317
  pygpt_net/ui/menu/about.py,sha256=Y5Ok96MVsFPekvL4dPYK01QPGUUbZvfAsZztcxQhXh8,7232
2318
2318
  pygpt_net/ui/menu/audio.py,sha256=Sb8NTAyMnPj4johTvBKwocHzq67XypIdw7K7hjf2760,3494
@@ -2425,7 +2425,7 @@ pygpt_net/ui/widget/textarea/console.py,sha256=nCV92S5JR4DiRWH6akWhygxg9kaLLxnCP
2425
2425
  pygpt_net/ui/widget/textarea/create.py,sha256=f4SrAW-2hjkKYIPrwVliSYH-LkgsQP8G13Jkq8EKhuI,1358
2426
2426
  pygpt_net/ui/widget/textarea/editor.py,sha256=dX1PQnMxKF7WsMgOEGDyc9XVJM440PueHVflJH1h258,6024
2427
2427
  pygpt_net/ui/widget/textarea/find.py,sha256=29-5i6VByMI45M_yz_84bXpwN-Z0alUHg7sVOXZD6So,1543
2428
- pygpt_net/ui/widget/textarea/html.py,sha256=qTALvHnvGlCzAraHzh2QwAstmHKqJ1lsNJayTIW3FvI,12621
2428
+ pygpt_net/ui/widget/textarea/html.py,sha256=QnrCTYc5daqqm5pWhRAQETv0Mkpa-XlSAaBW_36oI8Q,12431
2429
2429
  pygpt_net/ui/widget/textarea/input.py,sha256=SYrkkO7lomp2fT1GzzsqR-J2_UuHcZcghgJ9kT8K1h8,6664
2430
2430
  pygpt_net/ui/widget/textarea/name.py,sha256=vcyAY_pJWJoS_IJqdJjhIeDSniTL9rfpt8aaobWNFVY,1132
2431
2431
  pygpt_net/ui/widget/textarea/notepad.py,sha256=fLG3hmdOYM8FBMZ1pGe0CcQXiSe5LfFNv5u7toeEo3M,9568
@@ -2433,12 +2433,12 @@ pygpt_net/ui/widget/textarea/output.py,sha256=8T2spzqVYHKopSB83p1ULazGZ14nFJhXLB
2433
2433
  pygpt_net/ui/widget/textarea/rename.py,sha256=NwuGRIeWMo7WfsMguAFpTqdOz1eTiXbxrDXGsbWF_TY,1358
2434
2434
  pygpt_net/ui/widget/textarea/search_input.py,sha256=phEXf50VcfCRBen0p2iEAzuX2zmrSE3nWVRfWmtHKpo,5228
2435
2435
  pygpt_net/ui/widget/textarea/url.py,sha256=xbNQxoM5fYI1ZWbvybQkPmNPrIq3yhtNPBOSOWftZCg,1337
2436
- pygpt_net/ui/widget/textarea/web.py,sha256=o4roVGJjGzIs5nhKDGzpFF9v5FaJHkLz2nYL7uaVpo8,19255
2436
+ pygpt_net/ui/widget/textarea/web.py,sha256=EWx9mE3Qxn_6zuVtM8wB_V572Vx_Z_48jCdw7rbQnas,19520
2437
2437
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2438
2438
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2439
- pygpt_net/utils.py,sha256=YL0czRa1v6ilKNszAI9NyaE9Lgz6HiUGpNFAYQ9Wj8s,8835
2440
- pygpt_net-2.6.11.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2441
- pygpt_net-2.6.11.dist-info/METADATA,sha256=MCIrtEVCK8a4zkiE8bctpHYrwYQxqPy3M_2_eQJ9mHk,189250
2442
- pygpt_net-2.6.11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2443
- pygpt_net-2.6.11.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2444
- pygpt_net-2.6.11.dist-info/RECORD,,
2439
+ pygpt_net/utils.py,sha256=gGbw-lBTodGg_uBx6zKEwa58GaVNZN1I9zY_ZDyJ9xg,8872
2440
+ pygpt_net-2.6.12.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2441
+ pygpt_net-2.6.12.dist-info/METADATA,sha256=J5a2R9BBBuEl2cai2hgfwLHYP71UbcMNbiZNM3MXxEM,189317
2442
+ pygpt_net-2.6.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2443
+ pygpt_net-2.6.12.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2444
+ pygpt_net-2.6.12.dist-info/RECORD,,