pygpt-net 2.7.1__py3-none-any.whl → 2.7.2__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 CHANGED
@@ -1,3 +1,9 @@
1
+ 2.7.2 (2025-12-29)
2
+
3
+ - Fixed: non-searchable combobox width.
4
+ - Improved updater.
5
+ - Added .AppImage build.
6
+
1
7
  2.7.1 (2025-12-28)
2
8
 
3
9
  - Improved UI elements.
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.12.28 00:00:00 #
9
+ # Updated Date: 2025.12.29 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.7.1"
17
- __build__ = "2025-12-28"
16
+ __version__ = "2.7.2"
17
+ __build__ = "2025-12-29"
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"
@@ -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.25 18:00:00 #
9
+ # Updated Date: 2025.12.29 21:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import platform
@@ -127,6 +127,17 @@ class Platforms:
127
127
  return True
128
128
  return False
129
129
 
130
+ def is_appimage(self) -> bool:
131
+ """
132
+ Return True if app is running as AppImage
133
+
134
+ :return: True if app is running as AppImage
135
+ """
136
+ path = os.path.join(self.window.core.config.get_app_path(), 'data', 'appimage.conf')
137
+ if os.path.exists(path):
138
+ return True
139
+ return False
140
+
130
141
  def get_as_string(self, env_suffix: bool = True) -> str:
131
142
  """
132
143
  Return platform as string
@@ -147,6 +158,8 @@ class Platforms:
147
158
  suffix = ''
148
159
  if self.is_snap():
149
160
  suffix = ' (snap)'
161
+ elif self.is_appimage():
162
+ suffix = ' (AppImage)'
150
163
  elif self.window.core.config.is_compiled():
151
164
  suffix = ' (standalone)'
152
165
  if self.is_windows():
@@ -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.11 00:00:00 #
9
+ # Updated Date: 2025.12.29 21:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -26,13 +26,14 @@ from packaging.version import parse as parse_version, Version
26
26
  from pygpt_net.utils import trans
27
27
 
28
28
 
29
- class Updater:
29
+ class Updater(QObject):
30
30
  def __init__(self, window=None):
31
31
  """
32
32
  Updater core (config data patcher)
33
33
 
34
34
  :param window: Window instance
35
35
  """
36
+ super(Updater, self).__init__()
36
37
  self.window = window
37
38
  self.thanks = None # cache
38
39
 
@@ -261,11 +262,11 @@ class Updater:
261
262
  return self.get_thanks()
262
263
  return self.thanks
263
264
 
264
- def check_silent(self) -> Tuple[bool, str, str, str, str, str]:
265
+ def check_silent(self) -> Tuple[bool, str, str, str, str, str, str]:
265
266
  """
266
267
  Check version in background
267
268
 
268
- :return: (is_new, newest_version, newest_build, changelog, download_windows, download_linux)
269
+ :return: (is_new, newest_version, newest_build, changelog, download_windows, download_linux, download_appimage)
269
270
  """
270
271
  url = self.get_updater_url()
271
272
  is_new = False
@@ -274,6 +275,7 @@ class Updater:
274
275
  changelog = ""
275
276
  download_windows = ""
276
277
  download_linux = ""
278
+ download_appimage = ""
277
279
 
278
280
  try:
279
281
  ctx = ssl.create_default_context()
@@ -315,6 +317,8 @@ class Updater:
315
317
  download_windows = data_json["download_windows"]
316
318
  if "download_linux" in data_json:
317
319
  download_linux = data_json["download_linux"]
320
+ if "download_appimage" in data_json:
321
+ download_appimage = data_json["download_appimage"]
318
322
  if "thanks" in data_json:
319
323
  self.thanks = self.parse_thanks(data_json["thanks"])
320
324
 
@@ -331,7 +335,7 @@ class Updater:
331
335
  self.window.core.debug.log(e)
332
336
  print("Failed to check for updates")
333
337
 
334
- return is_new, newest_version, newest_build, changelog, download_windows, download_linux
338
+ return is_new, newest_version, newest_build, changelog, download_windows, download_linux, download_appimage
335
339
 
336
340
  def parse_thanks(self, people: str) -> str:
337
341
  """
@@ -352,7 +356,7 @@ class Updater:
352
356
  :return: True if force show version dialog
353
357
  """
354
358
  print("Checking for updates...")
355
- is_new, version, build, changelog, download_windows, download_linux = self.check_silent()
359
+ is_new, version, build, changelog, download_windows, download_linux, download_appimage = self.check_silent()
356
360
  if is_new or force:
357
361
  self.show_version_dialog(
358
362
  version,
@@ -360,6 +364,7 @@ class Updater:
360
364
  changelog,
361
365
  download_windows,
362
366
  download_linux,
367
+ download_appimage,
363
368
  is_new
364
369
  )
365
370
  return True
@@ -373,6 +378,7 @@ class Updater:
373
378
  changelog: str,
374
379
  download_windows: str,
375
380
  download_linux: str,
381
+ download_appimage: str = "",
376
382
  is_new: bool = False
377
383
  ):
378
384
  """
@@ -383,6 +389,7 @@ class Updater:
383
389
  :param changelog: changelog
384
390
  :param download_windows: windows download link
385
391
  :param download_linux: linux download link
392
+ :param download_appimage: appimage download link
386
393
  :param is_new: True if is new version available
387
394
  """
388
395
  self.window.ui.dialog['update'].set_data(
@@ -391,7 +398,8 @@ class Updater:
391
398
  build,
392
399
  changelog,
393
400
  download_windows,
394
- download_linux
401
+ download_linux,
402
+ download_appimage
395
403
  )
396
404
  self.window.ui.dialogs.open('update', height=600)
397
405
 
@@ -419,14 +427,15 @@ class Updater:
419
427
 
420
428
  return updated
421
429
 
422
- @Slot(str, str, str, str, str)
430
+ @Slot(str, str, str, str, str, str)
423
431
  def handle_new_version(
424
432
  self,
425
433
  version: str,
426
434
  build: str,
427
435
  changelog: str,
428
- download_windows: str = "",
429
- download_linux: str = ""
436
+ download_windows: str,
437
+ download_linux: str,
438
+ download_appimage: str
430
439
  ):
431
440
  """
432
441
  Handle new version signal
@@ -436,6 +445,7 @@ class Updater:
436
445
  :param changelog: changelog
437
446
  :param download_windows: download link for windows
438
447
  :param download_linux: download link for linux
448
+ :param download_appimage: download link for appimage
439
449
  """
440
450
  if self.window.ui.tray.is_tray:
441
451
  self.window.ui.tray.show_msg(
@@ -450,6 +460,7 @@ class Updater:
450
460
  changelog,
451
461
  download_windows,
452
462
  download_linux,
463
+ download_appimage,
453
464
  True
454
465
  )
455
466
 
@@ -468,7 +479,7 @@ class Updater:
468
479
 
469
480
 
470
481
  class UpdaterSignals(QObject):
471
- version_changed = Signal(str, str, str, str, str)
482
+ version_changed = Signal(str, str, str, str, str, str)
472
483
 
473
484
 
474
485
  class UpdaterWorker(QRunnable):
@@ -498,7 +509,7 @@ class UpdaterWorker(QRunnable):
498
509
  if self.force:
499
510
  print("Checking for updates...")
500
511
 
501
- is_new, version, build, changelog, download_windows, download_linux = self.checker()
512
+ is_new, version, build, changelog, download_windows, download_linux, download_appimage = self.checker()
502
513
  if is_new:
503
514
  if self.force or (parsed_prev_checked is None or parsed_prev_checked < parse_version(version)):
504
515
  self.signals.version_changed.emit(
@@ -507,6 +518,7 @@ class UpdaterWorker(QRunnable):
507
518
  changelog,
508
519
  download_windows,
509
520
  download_linux,
521
+ download_appimage
510
522
  )
511
523
  return
512
524
  if self.force:
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.7.1",
4
- "app.version": "2.7.1",
5
- "updated_at": "2025-12-28T00:00:00"
3
+ "version": "2.7.2",
4
+ "app.version": "2.7.2",
5
+ "updated_at": "2025-12-29T00: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.7.1",
4
- "app.version": "2.7.1",
5
- "updated_at": "2025-12-28T00:00:00"
3
+ "version": "2.7.2",
4
+ "app.version": "2.7.2",
5
+ "updated_at": "2025-12-29T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
@@ -187,7 +187,7 @@ QListView#ComboPopupList {{
187
187
  border: 2px solid #4f5b62;
188
188
  }}
189
189
 
190
- QComboBox QAbstractItemView::item,
190
+ QComboBox[name="SearchableCombo"] QAbstractItemView::item,
191
191
  QListView#ComboPopupList::item {{
192
192
  min-height: 20px;
193
193
  padding: 8px 33px;
@@ -305,7 +305,7 @@ QListView#ComboPopupList {{
305
305
  border: 0px solid #d6d6d6;
306
306
  }}
307
307
 
308
- QComboBox QAbstractItemView::item,
308
+ QComboBox[name="SearchableCombo"] QAbstractItemView::item,
309
309
  QListView#ComboPopupList::item {{
310
310
  min-height: 20px;
311
311
  padding: 8px 32px;
@@ -199,6 +199,14 @@ class Patch:
199
199
  patch_css('style.dark.css', True)
200
200
  updated = True
201
201
 
202
+ # < 2.7.2
203
+ if old < parse_version("2.7.2"):
204
+ print("Migrating config from < 2.7.2...")
205
+ # fix: combo boxes css width
206
+ patch_css('style.light.css', True)
207
+ patch_css('style.dark.css', True)
208
+ updated = True
209
+
202
210
  # update file
203
211
  migrated = False
204
212
  if updated:
pygpt_net/ui/main.py CHANGED
@@ -46,6 +46,7 @@ class MainWindow(QMainWindow, QtStyleTools):
46
46
  :param args: launcher arguments
47
47
  """
48
48
  super().__init__()
49
+ self.setWindowFlags(self.windowFlags() | Qt.WindowMinMaxButtonsHint | Qt.WindowMaximizeButtonHint)
49
50
  self.app = app
50
51
  self.args = args
51
52
  self.timer = None
@@ -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.03 14:00:00 #
9
+ # Updated Date: 2025.12.29 21:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import os
@@ -32,8 +32,11 @@ class UpdateDialog(BaseDialog):
32
32
  self.window = window
33
33
  self.setParent(window)
34
34
  self.setWindowTitle(trans('update.title'))
35
+
36
+ version = self.window.meta['version']
35
37
  self.cmd_pip = "pip install --upgrade pygpt-net"
36
38
  self.cmd_snap = "sudo snap refresh pygpt"
39
+ self.cmd_appimage = f"appimageupdatetool ./PyGPT-{version}-x86_64.AppImage"
37
40
 
38
41
  # www
39
42
  self.www = QPushButton(trans('update.download'))
@@ -133,8 +136,9 @@ class UpdateDialog(BaseDialog):
133
136
  version: str,
134
137
  build: str,
135
138
  changelog: str,
136
- download_windows: str,
137
- download_linux: str
139
+ download_windows: str = "",
140
+ download_linux: str = "",
141
+ download_appimage: str = ""
138
142
  ):
139
143
  """
140
144
  Set update data
@@ -145,6 +149,7 @@ class UpdateDialog(BaseDialog):
145
149
  :param changelog: changelog
146
150
  :param download_windows: download link for windows
147
151
  :param download_linux: download link for linux
152
+ :param download_appimage: download link for appimage
148
153
  """
149
154
  # prepare data
150
155
  info = trans("update.info")
@@ -179,8 +184,8 @@ class UpdateDialog(BaseDialog):
179
184
  if self.window.core.platforms.is_snap(): # snap
180
185
  self.cmd.setText(self.cmd_snap)
181
186
  self.cmd.setVisible(True)
182
- elif self.window.core.config.is_compiled(): # compiled
183
- if self.window.core.platforms.is_windows():
187
+ elif self.window.core.config.is_compiled(): # compiled versions
188
+ if self.window.core.platforms.is_windows(): # Windows
184
189
  self.download_link = download_windows
185
190
  self.download_file.setText("{} .msi ({})".format(trans("action.download"), version))
186
191
  if is_store:
@@ -191,11 +196,17 @@ class UpdateDialog(BaseDialog):
191
196
  self.download_file.setVisible(True)
192
197
  self.info_upgrade.setVisible(True)
193
198
  self.www.setVisible(False)
194
- elif self.window.core.platforms.is_linux():
199
+ elif self.window.core.platforms.is_linux(): # Linux
195
200
  self.download_link = download_linux
196
201
  self.download_file.setText("{} .tar.gz ({})".format(trans("action.download"), version))
197
202
  self.download_file.setVisible(True)
198
- else: # pip
203
+ elif self.window.core.platforms.is_appimage(): # AppImage
204
+ self.cmd.setText(self.cmd_appimage)
205
+ self.cmd.setVisible(True)
206
+ self.download_link = download_appimage
207
+ self.download_file.setText("{} .AppImage ({})".format(trans("action.download"), version))
208
+ self.download_file.setVisible(True)
209
+ else: # PyPi package
199
210
  self.cmd.setText(self.cmd_pip)
200
211
  self.cmd.setVisible(True)
201
212
 
@@ -379,7 +379,9 @@ class SearchableCombo(SeparatorComboBox):
379
379
  """
380
380
  def __init__(self, parent=None):
381
381
  super().__init__(parent)
382
+ self.setObjectName("SearchableCombo")
382
383
  self.search: bool = True
384
+
383
385
  self._popup_open: bool = False
384
386
  self._search_line: QLineEdit | None = None
385
387
  self._search_action = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.7.1
3
+ Version: 2.7.2
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, MCP, 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
@@ -119,7 +119,7 @@ Description-Content-Type: text/markdown
119
119
 
120
120
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
121
121
 
122
- Release: **2.7.1** | build: **2025-12-28** | Python: **>=3.10, <3.14**
122
+ Release: **2.7.2** | build: **2025-12-29** | Python: **>=3.10, <3.14**
123
123
 
124
124
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
125
125
  >
@@ -216,7 +216,33 @@ You can download compiled binary versions for `Linux` and `Windows` (10/11).
216
216
 
217
217
  Linux version requires `GLIBC` >= `2.35`.
218
218
 
219
- ## Snap Store
219
+ ## Microsoft Store (Windows)
220
+
221
+ For Windows 10/11, you can install **PyGPT** directly from Microsoft Store:
222
+
223
+ [![Get it from Microsoft Store](https://get.microsoft.com/images/en-us%20dark.svg)](https://apps.microsoft.com/detail/XP99R4MX3X65VQ)
224
+
225
+ Link to MS Store: https://apps.microsoft.com/detail/XP99R4MX3X65VQ
226
+
227
+ ## AppImage (Linux)
228
+
229
+ You can download the latest **PyGPT** `AppImage` for Linux from the release page:
230
+
231
+ **Releases:** https://github.com/szczyglis-dev/py-gpt/releases
232
+
233
+ **Tip:** Remember to give execution permissions to the downloaded file:
234
+
235
+ ```chmod +x ./PyGPT-X.X.X-x86_64.AppImage```
236
+
237
+ To manage future updates you can use `AppImageUpdate` tool:
238
+
239
+ You can download it from: https://github.com/AppImage/AppImageUpdate/releases
240
+
241
+ After downloading, run the following command in terminal:
242
+
243
+ ```appimageupdatetool ./PyGPT-X.X.X-x86_64.AppImage```
244
+
245
+ ## Snap Store (Linux)
220
246
 
221
247
  You can install **PyGPT** directly from Snap Store:
222
248
 
@@ -224,7 +250,7 @@ You can install **PyGPT** directly from Snap Store:
224
250
  sudo snap install pygpt
225
251
  ```
226
252
 
227
- To manage future updates just use:
253
+ To manage future updates use:
228
254
 
229
255
  ```commandline
230
256
  sudo snap refresh pygpt
@@ -3753,6 +3779,12 @@ may consume additional tokens that are not displayed in the main window.
3753
3779
 
3754
3780
  ## Recent changes:
3755
3781
 
3782
+ **2.7.2 (2025-12-29)**
3783
+
3784
+ - Fixed: non-searchable combobox width.
3785
+ - Improved updater.
3786
+ - Added .AppImage build.
3787
+
3756
3788
  **2.7.1 (2025-12-28)**
3757
3789
 
3758
3790
  - Improved UI elements.
@@ -1,6 +1,6 @@
1
- pygpt_net/CHANGELOG.txt,sha256=7IWjxZ4U7vrkz7Rm11SYVlx86JVVvPuB9KlnlE5g9CE,111266
1
+ pygpt_net/CHANGELOG.txt,sha256=opyjVHDzLy4dzClQfz3U3t3g6x65e4mTbazHXboFqpY,111372
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=HE-0lPnwAxTlfnrMK-HgSrmc0jBRQPs0VqekO_IUv2o,1372
3
+ pygpt_net/__init__.py,sha256=oZLbWKFXTi7d4UvffTI_nfQT_-Mg7ske84JqOw2G0A0,1372
4
4
  pygpt_net/app.py,sha256=W-2rCYLndMgVV7cZZqeloqzifCggjISrFdMhHg0dMvM,23419
5
5
  pygpt_net/app_core.py,sha256=PwBOV9wZLtr-O6SxBiazABhYXMHH8kZ6OgbvSv2OiZA,3827
6
6
  pygpt_net/config.py,sha256=3CA7xXPKQsdRie1CY8_b5-Kk1taWMciUP9CesXRQNNY,18302
@@ -336,7 +336,7 @@ pygpt_net/core/node_editor/utils.py,sha256=FLnHXHQ6W2ZPYz39e5WqVY7SkBLoqVtPFGVNb
336
336
  pygpt_net/core/notepad/__init__.py,sha256=Uro9_4CfihHzn92I2Ar0q0t-MAGkikUMrY5kGAuLlSw,511
337
337
  pygpt_net/core/notepad/notepad.py,sha256=zYE7BRERDOxROMMfjTwS6M5Vk08DXxXqHdKi1aX33i0,4243
338
338
  pygpt_net/core/platforms/__init__.py,sha256=NRmTzf4xFxcYseYs1mgCPZA0YUH2v0Aufq4CG1_mKDE,513
339
- pygpt_net/core/platforms/platforms.py,sha256=4zCAfzZQnxwsJ8lMwKTDvHj7EOMgVS7H4-lTGEErbQA,5203
339
+ pygpt_net/core/platforms/platforms.py,sha256=1cxu8blqHz3f1dYggxKifh5AOjBMJ21afieUkukqwdw,5605
340
340
  pygpt_net/core/plugins/__init__.py,sha256=NOKL-CNsF4rrKTBpsN-ue92H4pTUGKlgDCwr1iA0geY,511
341
341
  pygpt_net/core/plugins/plugins.py,sha256=BGGo-q6VLdk-fcsb4vQjORuh9LHGjHVPMO9-roTNZ5A,17131
342
342
  pygpt_net/core/presets/__init__.py,sha256=NZjBxjGv4fgEX6Hp8FznsWK5QqD1Tl7zyp2Ir3ufXv4,511
@@ -404,7 +404,7 @@ pygpt_net/core/types/multimodal.py,sha256=yeKLZ5MrCHU5LhWwFE-yGApt-FB59kTmElo3G7
404
404
  pygpt_net/core/types/openai.py,sha256=LQyJ506IbG2EJxLVHgKBDAjMLi_qbIC7ow_kM2zHwkw,1516
405
405
  pygpt_net/core/types/tools.py,sha256=BdonNwytk5SxYtYdlDkMg5lMvFoXz3CQJHZ__oVlm_8,1223
406
406
  pygpt_net/core/updater/__init__.py,sha256=fC4g0Xn9S8lLxGbop1q2o2qi9IZegoVayNVWemgBwds,511
407
- pygpt_net/core/updater/updater.py,sha256=RArlEaYWNw5PIKcG2hMWqZI3DLbi8vq7Ip_rc8TBBNI,17045
407
+ pygpt_net/core/updater/updater.py,sha256=YHv8zbndCe5RapaunirTAIZq-eRjpdceX-Fi2cZcxUw,17656
408
408
  pygpt_net/core/video/__init__.py,sha256=PBAsunvkPSJJvcx2XivIul96XsbcW8mPAda_CX3dK1U,513
409
409
  pygpt_net/core/video/video.py,sha256=-EUt5halPea0I77oktZqoVCw0mmpDMbUX20gUb7FYfI,10078
410
410
  pygpt_net/core/vision/__init__.py,sha256=dFEilXM2Z128SmgBlLn1DvyLCksdcyqFI7rln_VPsf8,510
@@ -420,8 +420,8 @@ pygpt_net/css_rc.py,sha256=PX6g9z5BsD-DXISuR2oq3jHcjiKfcJ4HsgcHez6wGMc,27762
420
420
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
421
421
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
422
422
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
423
- pygpt_net/data/config/config.json,sha256=rv9pIgW5IdvTirnfEPGnYOFYCsgkEeFvqxbKIM6SHRY,30935
424
- pygpt_net/data/config/models.json,sha256=zrESWVgJiPu5njHiaaxEaZH05BF54i9pIgN81DRJM_0,135705
423
+ pygpt_net/data/config/config.json,sha256=cE-1UMv5Lq8fibZ9_mifDCNZCMyX26hmp6wfm4b4Sjw,30935
424
+ pygpt_net/data/config/models.json,sha256=xWo4_f1kP6ZLIvXasdmuc0u7qZtKT5PZ4orYCoK3Xg8,135705
425
425
  pygpt_net/data/config/modes.json,sha256=IpjLOm428_vs6Ma9U-YQTNKJNtZw-qyM1lwhh73xl1w,2111
426
426
  pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
427
427
  pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
@@ -465,8 +465,8 @@ pygpt_net/data/css/markdown.css,sha256=yaoJPogZZ_ghbqP8vTXTycwVyD61Ik5_033NpzuUz
465
465
  pygpt_net/data/css/markdown.dark.css,sha256=ixAwuT69QLesZttKhO4RAy-QukplZwwfXCZsWLN9TP4,730
466
466
  pygpt_net/data/css/markdown.light.css,sha256=UZdv0jtuFgJ_4bYWsDaDQ4X4AP9tVNLUHBAckC_oD8k,833
467
467
  pygpt_net/data/css/style.css,sha256=dgVlVqEL38zF-4Ok-y1rwfALC8zETJAIuIbkwat_hTk,337
468
- pygpt_net/data/css/style.dark.css,sha256=_N9UYcU7XHcXBaRsknie0NibiS6CfvbKYgogtHkYH5I,4132
469
- pygpt_net/data/css/style.light.css,sha256=Zf8AV0uE1vg2Dum7fRHkfGhJf_WBLM5DnHx8zYYfxYg,6470
468
+ pygpt_net/data/css/style.dark.css,sha256=CJGXyfC3EgCb32me8baFCvi2fTg3pklVj7dZ2oBkY1k,4156
469
+ pygpt_net/data/css/style.light.css,sha256=qsooKdqMSJzV1QYWeyzQnZmn839fpmkPf88O7KK8xxA,6494
470
470
  pygpt_net/data/css/web-blocks.css,sha256=i8BwIwauKvKiWq3bte45R6_bI6bjFyjKyshkTb2JWgs,7598
471
471
  pygpt_net/data/css/web-blocks.dark.css,sha256=mck2u9KiO-pvnms0N0XJkoM_RBuf8QdC_3iSWAg8r40,1855
472
472
  pygpt_net/data/css/web-blocks.darkest.css,sha256=p3929omAaS1yxNtcOk9yR6cdVGkTVLCIyVsmltxLVf4,1807
@@ -2250,7 +2250,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
2250
2250
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
2251
2251
  pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
2252
2252
  pygpt_net/provider/core/config/json_file.py,sha256=GCcpCRQnBiSLWwlGbG9T3ZgiHkTfp5Jsg2KYkZcakBw,6789
2253
- pygpt_net/provider/core/config/patch.py,sha256=r73m4AOulhoS-8sXAaQpjiWy7TfTaj7WV7CHV9BzA2g,8535
2253
+ pygpt_net/provider/core/config/patch.py,sha256=XD39PBWrJUoShasOtJq8Q_-22boHZsW4-tBpK2XvdFg,8838
2254
2254
  pygpt_net/provider/core/config/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2255
2255
  pygpt_net/provider/core/config/patches/patch_before_2_6_42.py,sha256=_IcpB3DdiD01P2_jpt2ZvUs8WJRIeO6t5oQeNxY6_eE,126808
2256
2256
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
@@ -2535,7 +2535,7 @@ pygpt_net/ui/layout/toolbox/split.py,sha256=Hs9hZPciLXCRV_izoayrBlJSCuTGumdNki6z
2535
2535
  pygpt_net/ui/layout/toolbox/toolbox.py,sha256=VHzyzm7LjcAN30h111SEP6fdXwi84DYyf8CE1X3pdt8,2799
2536
2536
  pygpt_net/ui/layout/toolbox/video.py,sha256=2XmLlFns53H65xd_9RaIkCrOdh-ZKQ96MssHgvVaaM0,2197
2537
2537
  pygpt_net/ui/layout/toolbox/vision.py,sha256=E6-lLfU3vrWdlprayr6gxFs7F7AGkn4OIrFXrQ9p5XA,2035
2538
- pygpt_net/ui/main.py,sha256=PYPVQf_5l3CVdsTB7S4lmO3Qs3aEVYhtwuXeOQeGFsM,14311
2538
+ pygpt_net/ui/main.py,sha256=IIxb9UmVBl-hI64rjTTRhnxycQGfHjVzkx9WY5A4Ynk,14418
2539
2539
  pygpt_net/ui/menu/__init__.py,sha256=wAIKG9wLWfYv6tpXCTXptWb_XKoCc-4lYWLDvV1bVYk,508
2540
2540
  pygpt_net/ui/menu/about.py,sha256=BtelbYhpXJGgsoEwsPuw61wVuGkzogpY3FVvWtd09HE,4619
2541
2541
  pygpt_net/ui/menu/audio.py,sha256=3vQhMq8vk_h7yb_Gk2dZMRviFR2PExgR_ynpgOkyl-g,4226
@@ -2584,7 +2584,7 @@ pygpt_net/ui/widget/dialog/rename.py,sha256=HcImKH_gUHcyB1k5llwStmrlXvcSpxgR2V6I
2584
2584
  pygpt_net/ui/widget/dialog/settings.py,sha256=fKzbme2tdxzTSiQMNnCEgyD3lwCzFjLi85ikWulisGw,1614
2585
2585
  pygpt_net/ui/widget/dialog/settings_plugin.py,sha256=Kf1ZK_RY9CAnfeuzPoQ4wgsFb2yQl7X-VKzsYETA55o,1696
2586
2586
  pygpt_net/ui/widget/dialog/snap.py,sha256=4JojKDrDECFbNBnsE0505z336xLVskFz9TK3XF02Mtk,4074
2587
- pygpt_net/ui/widget/dialog/update.py,sha256=YGUouxuEqvO8rkjI52F7wG4R8OgqcpJKB1FVqksOsC4,7453
2587
+ pygpt_net/ui/widget/dialog/update.py,sha256=eaZc160dk_fb7cq5k-dIL635IfoirLptA4XXVdz-ywk,8110
2588
2588
  pygpt_net/ui/widget/dialog/url.py,sha256=7I17Pp9P2c3G1pODEY5dum_AF0nFnu2BMfbWTgEES-M,8765
2589
2589
  pygpt_net/ui/widget/dialog/workdir.py,sha256=D-C3YIt-wCoI-Eh7z--Z4R6P1UvtpkxeiaVcI-ycFck,1523
2590
2590
  pygpt_net/ui/widget/draw/__init__.py,sha256=oSYKtNEGNL0vDjn3wCgdnBAbxUqNGIEIf-75I2DIn7Q,488
@@ -2638,7 +2638,7 @@ pygpt_net/ui/widget/option/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5e
2638
2638
  pygpt_net/ui/widget/option/checkbox.py,sha256=duzgGPOVbHFnWILVEu5gDUa6sHeDOvQaaj9IsY-HbU8,3954
2639
2639
  pygpt_net/ui/widget/option/checkbox_list.py,sha256=SgnkLTlVZCcU3ehqAfi_w28x693w_AeNsK-_0k-uOwA,6198
2640
2640
  pygpt_net/ui/widget/option/cmd.py,sha256=Ii_i9hR4oRmG4-TPZ-FHuTv3I1vL96YLcDP2QSKmAbI,5800
2641
- pygpt_net/ui/widget/option/combo.py,sha256=gU6kNDEg7RgKxxhPkhjjuUVGHY_BJkVqL4l-UeqD_Jk,53852
2641
+ pygpt_net/ui/widget/option/combo.py,sha256=d1NIki7rH_Q4BnQ9iBY3lYRKhJYdOIGcuedz_646bxM,53899
2642
2642
  pygpt_net/ui/widget/option/dictionary.py,sha256=ZeaBk-wEZ0SBU_iBBL6eHUEIGOrahh-z2xTa7LBvsdM,14736
2643
2643
  pygpt_net/ui/widget/option/input.py,sha256=-pLXzkOO2OvOoUKTuocbOt8JcPWQO3W3cmrSh0WhJcc,9718
2644
2644
  pygpt_net/ui/widget/option/prompt.py,sha256=SgRd0acp13_c19tWjYYChcGgAwik9tsZKKsX1Ciqgp4,2818
@@ -2669,8 +2669,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=sVRSmudPwPfjK2h7q-e6Ae4b-677BHLe20t-x
2669
2669
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2670
2670
  pygpt_net/ui/widget/vision/camera.py,sha256=DCx7h1nHruuUkU0Tw8Ay4OUVoNJhkuLsW4hIvGF5Skw,6985
2671
2671
  pygpt_net/utils.py,sha256=r-Dum4brfBaZaHJr-ux86FfdMuMHFwyuUL2bEFirdhc,14649
2672
- pygpt_net-2.7.1.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2673
- pygpt_net-2.7.1.dist-info/METADATA,sha256=0kgOzOlnrDmM8eCA-BKS7HtYyKGVUKbaa7n7owqRR-8,169942
2674
- pygpt_net-2.7.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2675
- pygpt_net-2.7.1.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2676
- pygpt_net-2.7.1.dist-info/RECORD,,
2672
+ pygpt_net-2.7.2.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2673
+ pygpt_net-2.7.2.dist-info/METADATA,sha256=f5cbwnrsihuXuJ9Mz5x8caC-PO8u7Zljx4-YpjmvkYc,170907
2674
+ pygpt_net-2.7.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2675
+ pygpt_net-2.7.2.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2676
+ pygpt_net-2.7.2.dist-info/RECORD,,