pygpt-net 2.7.5__py3-none-any.whl → 2.7.7__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.
Files changed (82) hide show
  1. pygpt_net/CHANGELOG.txt +14 -0
  2. pygpt_net/__init__.py +4 -4
  3. pygpt_net/controller/chat/remote_tools.py +3 -9
  4. pygpt_net/controller/chat/stream.py +2 -2
  5. pygpt_net/controller/chat/{handler/worker.py → stream_worker.py} +20 -64
  6. pygpt_net/controller/debug/fixtures.py +3 -2
  7. pygpt_net/controller/files/files.py +65 -4
  8. pygpt_net/core/debug/models.py +2 -2
  9. pygpt_net/core/filesystem/url.py +4 -1
  10. pygpt_net/core/render/web/body.py +3 -2
  11. pygpt_net/core/types/chunk.py +27 -0
  12. pygpt_net/data/config/config.json +14 -4
  13. pygpt_net/data/config/models.json +192 -4
  14. pygpt_net/data/config/settings.json +126 -36
  15. pygpt_net/data/js/app/template.js +1 -1
  16. pygpt_net/data/js/app.min.js +2 -2
  17. pygpt_net/data/locale/locale.de.ini +5 -0
  18. pygpt_net/data/locale/locale.en.ini +35 -8
  19. pygpt_net/data/locale/locale.es.ini +5 -0
  20. pygpt_net/data/locale/locale.fr.ini +5 -0
  21. pygpt_net/data/locale/locale.it.ini +5 -0
  22. pygpt_net/data/locale/locale.pl.ini +5 -0
  23. pygpt_net/data/locale/locale.uk.ini +5 -0
  24. pygpt_net/data/locale/locale.zh.ini +5 -0
  25. pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini +2 -2
  26. pygpt_net/item/ctx.py +3 -5
  27. pygpt_net/js_rc.py +2449 -2447
  28. pygpt_net/plugin/cmd_mouse_control/config.py +8 -7
  29. pygpt_net/plugin/cmd_mouse_control/plugin.py +3 -4
  30. pygpt_net/plugin/cmd_mouse_control/worker.py +2 -1
  31. pygpt_net/plugin/cmd_mouse_control/worker_sandbox.py +2 -1
  32. pygpt_net/provider/api/anthropic/__init__.py +16 -9
  33. pygpt_net/provider/api/anthropic/chat.py +259 -11
  34. pygpt_net/provider/api/anthropic/computer.py +844 -0
  35. pygpt_net/provider/api/anthropic/remote_tools.py +172 -0
  36. pygpt_net/{controller/chat/handler/anthropic_stream.py → provider/api/anthropic/stream.py} +24 -10
  37. pygpt_net/provider/api/anthropic/tools.py +32 -77
  38. pygpt_net/provider/api/anthropic/utils.py +30 -0
  39. pygpt_net/provider/api/google/__init__.py +6 -5
  40. pygpt_net/provider/api/google/chat.py +3 -8
  41. pygpt_net/{controller/chat/handler/google_stream.py → provider/api/google/stream.py} +1 -1
  42. pygpt_net/provider/api/google/utils.py +185 -0
  43. pygpt_net/{controller/chat/handler → provider/api/langchain}/__init__.py +0 -0
  44. pygpt_net/{controller/chat/handler/langchain_stream.py → provider/api/langchain/stream.py} +1 -1
  45. pygpt_net/provider/api/llama_index/__init__.py +0 -0
  46. pygpt_net/{controller/chat/handler/llamaindex_stream.py → provider/api/llama_index/stream.py} +1 -1
  47. pygpt_net/provider/api/openai/__init__.py +7 -3
  48. pygpt_net/provider/api/openai/image.py +2 -2
  49. pygpt_net/provider/api/openai/responses.py +0 -0
  50. pygpt_net/{controller/chat/handler/openai_stream.py → provider/api/openai/stream.py} +1 -1
  51. pygpt_net/provider/api/openai/utils.py +69 -3
  52. pygpt_net/provider/api/x_ai/__init__.py +117 -17
  53. pygpt_net/provider/api/x_ai/chat.py +272 -102
  54. pygpt_net/provider/api/x_ai/image.py +149 -47
  55. pygpt_net/provider/api/x_ai/{remote.py → remote_tools.py} +165 -70
  56. pygpt_net/provider/api/x_ai/responses.py +507 -0
  57. pygpt_net/provider/api/x_ai/stream.py +715 -0
  58. pygpt_net/provider/api/x_ai/tools.py +59 -8
  59. pygpt_net/{controller/chat/handler → provider/api/x_ai}/utils.py +1 -2
  60. pygpt_net/provider/api/x_ai/vision.py +1 -4
  61. pygpt_net/provider/core/config/patch.py +22 -1
  62. pygpt_net/provider/core/model/patch.py +26 -1
  63. pygpt_net/tools/image_viewer/ui/dialogs.py +300 -13
  64. pygpt_net/tools/text_editor/ui/dialogs.py +3 -2
  65. pygpt_net/tools/text_editor/ui/widgets.py +5 -1
  66. pygpt_net/ui/base/context_menu.py +44 -1
  67. pygpt_net/ui/layout/toolbox/indexes.py +22 -19
  68. pygpt_net/ui/layout/toolbox/model.py +28 -5
  69. pygpt_net/ui/widget/dialog/base.py +16 -5
  70. pygpt_net/ui/widget/image/display.py +25 -8
  71. pygpt_net/ui/widget/tabs/output.py +9 -1
  72. pygpt_net/ui/widget/textarea/editor.py +14 -1
  73. pygpt_net/ui/widget/textarea/input.py +20 -7
  74. pygpt_net/ui/widget/textarea/notepad.py +24 -1
  75. pygpt_net/ui/widget/textarea/output.py +23 -1
  76. pygpt_net/ui/widget/textarea/web.py +16 -1
  77. {pygpt_net-2.7.5.dist-info → pygpt_net-2.7.7.dist-info}/METADATA +16 -2
  78. {pygpt_net-2.7.5.dist-info → pygpt_net-2.7.7.dist-info}/RECORD +80 -73
  79. pygpt_net/controller/chat/handler/xai_stream.py +0 -135
  80. {pygpt_net-2.7.5.dist-info → pygpt_net-2.7.7.dist-info}/LICENSE +0 -0
  81. {pygpt_net-2.7.5.dist-info → pygpt_net-2.7.7.dist-info}/WHEEL +0 -0
  82. {pygpt_net-2.7.5.dist-info → pygpt_net-2.7.7.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
- pygpt_net/CHANGELOG.txt,sha256=wyl0d7T4Pqq-AS8dufoxHoauaKm4m7-ji-OtEWW6pBc,112319
1
+ pygpt_net/CHANGELOG.txt,sha256=ERVDm3n6D0ahVII8J5QKaEd2CmzKZMSTVbDvP3BKtRo,112831
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=eZ0MYAb4k9TL9u4Hi042oho3qNd8mX1NSRvC2pho_ms,1372
3
+ pygpt_net/__init__.py,sha256=rd5-KyVOM-XQtqyA_jzdjSai6qgZDJcw5CiuSpVjrvU,1372
4
4
  pygpt_net/app.py,sha256=m_j9ZxNzfp3KKKJxh87uYEPbRAo_L_prOUGyLlL3tJM,26197
5
5
  pygpt_net/app_core.py,sha256=nFKChQ66naIft6jGXr1HCg7povnhIfa44h_VhsadOpo,3926
6
6
  pygpt_net/config.py,sha256=3CA7xXPKQsdRie1CY8_b5-Kk1taWMciUP9CesXRQNNY,18302
@@ -38,22 +38,14 @@ pygpt_net/controller/chat/chat.py,sha256=o9z6ba9IWArvyLpIGicHsiyjfDIWs-CNzKJreo8
38
38
  pygpt_net/controller/chat/command.py,sha256=eKFQzP0tehZ3S_G7RoZVMTebQFSjPIpix3t7vDB7MWc,5291
39
39
  pygpt_net/controller/chat/common.py,sha256=7sbMLm4rDZCi3hCUE4ajrmEiAZYkUy8_WSPcxmiqKh8,19960
40
40
  pygpt_net/controller/chat/files.py,sha256=QZAi1Io57EU7htKt9M5I9OoGAFX51OH2V5-NsJktOto,2838
41
- pygpt_net/controller/chat/handler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- pygpt_net/controller/chat/handler/anthropic_stream.py,sha256=dfzZVVW0d0Vjy8mKya2pTJKO98ZHe5Oc6WDzFJBaJpI,5903
43
- pygpt_net/controller/chat/handler/google_stream.py,sha256=lKMWNwRMysdBiQSzWGtKZCtte8u3u8SUZx9c7mFocWc,20846
44
- pygpt_net/controller/chat/handler/langchain_stream.py,sha256=bEV9FT9K6vVBAVrB73sMhGcVzlt_OFAdT2HNzwxgR2I,810
45
- pygpt_net/controller/chat/handler/llamaindex_stream.py,sha256=UPx7N4TeY1XZoKJOR7NdiyitD6xW9z-MygRG20AdzVQ,1851
46
- pygpt_net/controller/chat/handler/openai_stream.py,sha256=t8l133VBgdOXUoyO4ZD3qavKQ20XxcSGYq1g__me2nc,13112
47
- pygpt_net/controller/chat/handler/utils.py,sha256=5B5fxQtLHv_WXU9clGHU_UTcKw1wd-94XL5GqeW7wOY,7235
48
- pygpt_net/controller/chat/handler/worker.py,sha256=4v_E8bKIYDqFvFHTtYIOJbVhuuZuknkbUEgcqfH1Wjk,20803
49
- pygpt_net/controller/chat/handler/xai_stream.py,sha256=OVgQA-Za1y73C_BhHbUggth7HdLehSIl5jnG-_7GmKI,4303
50
41
  pygpt_net/controller/chat/image.py,sha256=hHUKmakMAov7zpk2_3zgxyHbpIODV8F6Ybw4hiED57A,10123
51
42
  pygpt_net/controller/chat/input.py,sha256=q3mZp9qU-b4NrHsGNbHituVM-5MmZZSp3f28FEtWiuk,7928
52
43
  pygpt_net/controller/chat/output.py,sha256=j0yaQUiRMGAcjRUpxTZlC7EnoBpk84ibUhmRo22E7Xk,8390
53
- pygpt_net/controller/chat/remote_tools.py,sha256=ElnBvXQ9hHKf8pfiSKdiiiSMg5wK7JJOuFiYSAOLwCc,4098
44
+ pygpt_net/controller/chat/remote_tools.py,sha256=feIv03HmzZo8evwSpaiN376svv2ZY9uT_hxUM8NzzJA,3889
54
45
  pygpt_net/controller/chat/render.py,sha256=QaYwfDEEbjhq0KQIVQx5QhY7CGjZGKi6WjK6gspA3y4,21087
55
46
  pygpt_net/controller/chat/response.py,sha256=scXg0l2Qu0IgSwrzAxInaunb9jySp-dgu0leq1FvPcI,11722
56
- pygpt_net/controller/chat/stream.py,sha256=8uIwYXwxPEwks4oMKovDXWsG3jBeq2RugdWpYkp9My4,5519
47
+ pygpt_net/controller/chat/stream.py,sha256=3JpeLGDkiNy8KoqwgfhC3p0hpZX5KoIo866LaoYLXNg,5518
48
+ pygpt_net/controller/chat/stream_worker.py,sha256=Jl1tHnJKX4zZ8FJmwk1tB0YvFkRAfLETAIWystSkzEc,19516
57
49
  pygpt_net/controller/chat/text.py,sha256=xJP9KDPQL_IfPkUGGvIY831VPwonCEg1S2kHqb0svis,8767
58
50
  pygpt_net/controller/chat/vision.py,sha256=ZvbdMPf5SzPmIfjJUH4To2UJi41MuELkGIj5mxACxdc,3361
59
51
  pygpt_net/controller/command/__init__.py,sha256=xHOjVYXKiHT-FEXNSGJZoYcU8SslQ2vr6DMqJcVPDNE,511
@@ -77,14 +69,14 @@ pygpt_net/controller/ctx/extra.py,sha256=0r-G6Tlm9WPDkLRmgPDlgyRr_XLfCJntnUGlYPJ
77
69
  pygpt_net/controller/ctx/summarizer.py,sha256=UNsq-JTARblGNT97uSMpZEVzdUuDJ8YA2j2dw9R2X3o,3079
78
70
  pygpt_net/controller/debug/__init__.py,sha256=dOJGTICjvTtrPIEDOsxCzcOHsfu8AFPLpSKbdN0q0KI,509
79
71
  pygpt_net/controller/debug/debug.py,sha256=HbyAnxSjH8vbkOTlNrRz6YHOrrXCPcsd9rGJnN1BcWQ,9684
80
- pygpt_net/controller/debug/fixtures.py,sha256=Wvp_xaB9ukfcHAHhxYW5uCLn2G_47JDhYdWFZBL6hmc,2749
72
+ pygpt_net/controller/debug/fixtures.py,sha256=vLVjI_0BIO_WnRxm6tVCxN-WWBw15bSvfsFklAqT6Ng,2804
81
73
  pygpt_net/controller/dialogs/__init__.py,sha256=jI2WisG3lzbeyf__1Y7g7wWrxlr1QnYBDDt4t_3eeYk,513
82
74
  pygpt_net/controller/dialogs/confirm.py,sha256=c6hXUZP1ZgTZFRGs9LFGNaKe_cl4iicjFWn2IIE0Wxc,18545
83
75
  pygpt_net/controller/dialogs/debug.py,sha256=TZN5dvw21dtpgE0uCQ0-djRYsrL9eEFGlZQGuSCV3G4,6166
84
76
  pygpt_net/controller/dialogs/dialogs.py,sha256=sJHyZxkAn9QKTegUqx_xETesN2ecMBkrtf-VsCubr2w,1008
85
77
  pygpt_net/controller/dialogs/info.py,sha256=qfG1T2_K11-h_97gBUwV2vHAdICQzSUoQOFBmibIapM,3993
86
78
  pygpt_net/controller/files/__init__.py,sha256=4dJY1HOUTQ6GPAvvUQmTNwTRJKoShyCP8Lo8j2dD0ec,509
87
- pygpt_net/controller/files/files.py,sha256=QcMhpEtAWPCc_l2XsVmC_b1dcj7YXLmm1F6S0d_Haes,20816
79
+ pygpt_net/controller/files/files.py,sha256=T8kHW9MlkTFQD494TUDiro1iHWV6_cfjp6RQWnpHmUg,23219
88
80
  pygpt_net/controller/finder/__init__.py,sha256=EUogcwzk4T0zyms2PJXduL3o1PzWwu0Q0qSo8Eu_8bw,510
89
81
  pygpt_net/controller/finder/finder.py,sha256=4jl8EzTVR1Wc0dJkVwacAdvBiuF1CyOSKB4Qewju0Jw,4955
90
82
  pygpt_net/controller/idx/__init__.py,sha256=EJ6C2RaW3RO72I7exGSoCcT6ooK-cuaLimM_9C_c7MA,507
@@ -268,7 +260,7 @@ pygpt_net/core/debug/debug.py,sha256=aQTzqxHgf0Uq8b30FO7vA9V7Zz44ld3jAbRo2S1CQG8
268
260
  pygpt_net/core/debug/events.py,sha256=0ZlZtefxBcboGZPgP3djZ95kgpdW90YqgZlEDtIGyFQ,2095
269
261
  pygpt_net/core/debug/indexes.py,sha256=nLMf9jU63Bt-7kVydc-Xc8qqnAbfsFcuQQW2_edUgSc,3414
270
262
  pygpt_net/core/debug/kernel.py,sha256=nsC6ts1XOzESQdrkVL0DqVtGYKaNTYGlKXmxVCx5GTs,1235
271
- pygpt_net/core/debug/models.py,sha256=EZf2xZRKSsZGG4pyTY_aoQHBKgi5fGdcy1FsJTdDryI,2329
263
+ pygpt_net/core/debug/models.py,sha256=XJBYT_80KFNFRLoztDtn12WhvYXNktCwDZzPuYh5_hc,2328
272
264
  pygpt_net/core/debug/plugins.py,sha256=jKw0_uRMqxCilAzWpxtwCN2nhJCh5jjHXv53oZTUeEk,1263
273
265
  pygpt_net/core/debug/presets.py,sha256=EsWB-Vi5X01SDqLXuTSQ6qSvSA07et_dnUKVHw8wxIc,2703
274
266
  pygpt_net/core/debug/tabs.py,sha256=IDA_ORtJN1R2xg-mbe5a7PgzV_reYzrrPx-7gEhmVTg,2343
@@ -297,7 +289,7 @@ pygpt_net/core/filesystem/opener.py,sha256=8EkieR_FwSz0HBykLcmV8TEw8Bn0e7WHqqiPT
297
289
  pygpt_net/core/filesystem/packer.py,sha256=aXxdxaoFmFjN1QCBkyXyh1_61H_-8pCGVzoSsRh_iBY,8435
298
290
  pygpt_net/core/filesystem/parser.py,sha256=CLESCdASVQ1-cJ_6ZxbgDSxvwC-haznj_coE1_tWaQE,3548
299
291
  pygpt_net/core/filesystem/types.py,sha256=1HFubxAHYup_SLQ7SlR5EvZb3KgVyd8K8vBRUkTcqaA,3458
300
- pygpt_net/core/filesystem/url.py,sha256=VsWT0svGZPJ8aZSwxOzGUEMuQUCkliXTsOIxpOD16ZY,3863
292
+ pygpt_net/core/filesystem/url.py,sha256=nYiziDshPZgBprDDQ2aXHOC34WQSaXKwfqRoDviM4ho,4055
301
293
  pygpt_net/core/fixtures/__init__,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
302
294
  pygpt_net/core/fixtures/stream/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
303
295
  pygpt_net/core/fixtures/stream/generator.py,sha256=Gjm68CMUOpQiYLRwG0dxVgSPw_cMJLYcG74Ll_i2hvg,9331
@@ -388,7 +380,7 @@ pygpt_net/core/render/plain/helpers.py,sha256=tWbdJZBfjnuHLAUDVYLTfv3Vt-h7XN1tg6
388
380
  pygpt_net/core/render/plain/pid.py,sha256=uM7KSWBkZGTFSRzIE30coT6Pl6aOaZORnPYkPy8dsC8,1537
389
381
  pygpt_net/core/render/plain/renderer.py,sha256=AxYE3X8TuF36HEpsqM_z7u7PNoG8u44lhSgXxv6g_Lo,17431
390
382
  pygpt_net/core/render/web/__init__.py,sha256=istp5dsn6EkLEP7lOBeDb8RjodUcWZqjcEvTroaTT-w,489
391
- pygpt_net/core/render/web/body.py,sha256=53q9TasA8yl92YVu9V6KXAD7CDh2zceRXDhGQ1l4iEc,31729
383
+ pygpt_net/core/render/web/body.py,sha256=0IumypRcfIh62SmC_bwAiP2Xfiu9zwNN9gLydOYW1_E,31788
392
384
  pygpt_net/core/render/web/debug.py,sha256=784RYXF6inn_bkRtYD1_FllQSyk67JmxKGWPiAyscKw,7138
393
385
  pygpt_net/core/render/web/helpers.py,sha256=URCvjucN-IhHpeDAMGi4wZaEYSSGP40V_DGdVIOH85U,7574
394
386
  pygpt_net/core/render/web/parser.py,sha256=pDFc9Tf8P-jvrDilXyT1fukcQHbixHRJ9Dn9hF10Gko,12892
@@ -410,6 +402,7 @@ pygpt_net/core/tokens/tokens.py,sha256=M-97eNqXqnlgoDdFYTydifF4VhStCbO5dSt9PoBCT
410
402
  pygpt_net/core/types/__init__.py,sha256=GHk9e0IaR7mNqD5qMNQnJxFpaXvPURy-IIkCzS7PFgE,660
411
403
  pygpt_net/core/types/agent.py,sha256=74GRk_T1hSt7P2CSYjn0oTeYH3j3-ZLKsG_62Abu674,872
412
404
  pygpt_net/core/types/base.py,sha256=ZLJkuQwaeSmIkTBQMwHtW8rsTKJD9wFpaEjwMOSzNfI,638
405
+ pygpt_net/core/types/chunk.py,sha256=LlPXAL1nD8i9E5lzn-NmKA95myYZ_ArVmwgaTNxG-n0,1167
413
406
  pygpt_net/core/types/console.py,sha256=vzYZ4fYkwK71ECJB7Qop0qcVIC6USLxxKuFN-ZweuB0,713
414
407
  pygpt_net/core/types/image.py,sha256=J_zLX9RdMz0WjDJsGpQ1g2ZBnYzS9J39HqYucPTOplU,3295
415
408
  pygpt_net/core/types/mode.py,sha256=yY_6B2n8xEszbqph7mWTbgECHmJjAgal8CFNcUgyG7M,904
@@ -434,8 +427,8 @@ pygpt_net/css_rc.py,sha256=PX6g9z5BsD-DXISuR2oq3jHcjiKfcJ4HsgcHez6wGMc,27762
434
427
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
435
428
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
436
429
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
437
- pygpt_net/data/config/config.json,sha256=_QLHzsaBSaD4l4Aig6GWJVe9fQHytw1FB7Bo9zv65M0,31127
438
- pygpt_net/data/config/models.json,sha256=yud9tO5XwnXI480VlkrdZ_12vrLL6r78Z1-aBsWzEu0,137934
430
+ pygpt_net/data/config/config.json,sha256=yMD6cGaWR2Rs9EeIJk8-S-9y_ayG5qti_KjFjR0753o,31876
431
+ pygpt_net/data/config/models.json,sha256=QSBoC9PHD91Gt-tcL7RLh5y6LYL85MiEywivhNdB_kc,143466
439
432
  pygpt_net/data/config/modes.json,sha256=IpjLOm428_vs6Ma9U-YQTNKJNtZw-qyM1lwhh73xl1w,2111
440
433
  pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
441
434
  pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
@@ -470,7 +463,7 @@ pygpt_net/data/config/presets/current.vision.json,sha256=x1ll5B3ROSKYQA6l27PRGXU
470
463
  pygpt_net/data/config/presets/dalle_white_cat.json,sha256=esqUb43cqY8dAo7B5u99tRC0MBV5lmlrVLnJhTSkL8w,552
471
464
  pygpt_net/data/config/presets/joke_agent.json,sha256=R6n9P7KRb0s-vZWZE7kHdlOfXAx1yYrPmUw8uLyw8OE,474
472
465
  pygpt_net/data/config/presets/joke_expert.json,sha256=jjcoIYEOaEp8kLoIbecxQROiq4J3Zess5w8_HmngPOY,671
473
- pygpt_net/data/config/settings.json,sha256=0XSRzV9J16Xmytf17B7wUzEXn9ToV0Mw7co25cWEBUs,85505
466
+ pygpt_net/data/config/settings.json,sha256=qS-nU7ByOEwsOewpNGogp8a_jX6G8XW6rK5jeJ7vi60,88504
474
467
  pygpt_net/data/config/settings_section.json,sha256=pcfOFk0_eIRaa4nKRxhSVzDXe531YxWJgVx5rLV0J9U,1150
475
468
  pygpt_net/data/css/fix_windows.css,sha256=Mks14Vg25ncbMqZJfAMStrhvZmgHF6kU75ohTWRZeI8,664
476
469
  pygpt_net/data/css/fix_windows.dark.css,sha256=7hGbT_qI5tphYC_WlFpJRDAcmjBb0AQ2Yc-y-_Zzf2M,161
@@ -723,12 +716,12 @@ pygpt_net/data/js/app/raf.js,sha256=1tuRUKinRHYWCMWRujJ8yPj-TqI14eDDnw63z_bftIw,
723
716
  pygpt_net/data/js/app/runtime.js,sha256=yi1E6makgka-e5M8XImX13ogRWag7AaRQdjM9Az_UfE,19276
724
717
  pygpt_net/data/js/app/scroll.js,sha256=KlHG8nlo_4VZTsL7YR5LilfU8IeGd_j63wJF7XZqofQ,12344
725
718
  pygpt_net/data/js/app/stream.js,sha256=ivecd0Io1c9Xa13rJ9Nn0koHfwNhrx49Rv-GiXTwUbc,88438
726
- pygpt_net/data/js/app/template.js,sha256=IV7LfHuSRbXJn8d7NYQ7CnEr2fTicdvKohvv4XAGWSI,10725
719
+ pygpt_net/data/js/app/template.js,sha256=je2iAfnFiPBQ6afXKYSv6dCSW4uH_euKGyrEGKSNOSM,10746
727
720
  pygpt_net/data/js/app/tool.js,sha256=uZ_tTba6rD8V4rNBhe7HMB_ZQUQlTDrvAqXFTYIF6E0,2515
728
721
  pygpt_net/data/js/app/ui.js,sha256=YraukEC04Ws2mpAbqhfZPWVI34rh6pyORTLYEiPGff0,5822
729
722
  pygpt_net/data/js/app/user.js,sha256=oa936iXquRv0layy6H1vxsMS4aTcGkRPesLpMV-KjcE,10318
730
723
  pygpt_net/data/js/app/utils.js,sha256=nl1Gbt6I7Mf9LfKwqb-NaKJUWRZTD2s8xO6c3BwEXOc,1794
731
- pygpt_net/data/js/app.min.js,sha256=sjhWSBWT3RkP2IFjrMxaSNdzWBrhCyQnDh7GQ19f_UQ,212932
724
+ pygpt_net/data/js/app.min.js,sha256=bPjhuz_yfJk3aImsWALQ_DIUZKzWovewAa1t7hGSmZ8,212953
732
725
  pygpt_net/data/js/highlight/DIGESTS.md,sha256=bFIjBE_BrA2dkd0CM5SXLKQIccKOUcUeRFUK4c_3kWM,75091
733
726
  pygpt_net/data/js/highlight/LICENSE,sha256=bAgUMVkdnfaWyC3FmP4UI3ZbiimbIA7QCyga_Q9kxJA,1514
734
727
  pygpt_net/data/js/highlight/README.md,sha256=iUuAsk62y3lZEbACdBntj-_CEEN4gUfcbi4hkmEL6n0,1717
@@ -1744,14 +1737,14 @@ pygpt_net/data/js/katex/katex.min.js,sha256=KLASOtKS2x8pUxWVzCDmlWJ4jhuLb0vtrgak
1744
1737
  pygpt_net/data/js/markdown-it/markdown-it-katex.min.js,sha256=-wMst2a9i8Borapa9_hxPvpQysfFE-yph8GrBmDoA68,1670
1745
1738
  pygpt_net/data/js/markdown-it/markdown-it.min.js,sha256=OMcKHnypGrQOLZ5uYBKYUacX7Rx9Ssu91Bv5UDeRz2g,123618
1746
1739
  pygpt_net/data/languages.csv,sha256=fvtER6vnTXFHQslCh-e0xCfZDQ-ijgW4GYpOJG4U7LY,8289
1747
- pygpt_net/data/locale/locale.de.ini,sha256=-VyAI_0zQtTLULixiL8l_JfqkXTzJIinjVrm3XcZGjk,113160
1748
- pygpt_net/data/locale/locale.en.ini,sha256=0ZUkW7zDx0nOAgRb2a2yZdVerO3VfBcWa_dQb1O1Fxc,107984
1749
- pygpt_net/data/locale/locale.es.ini,sha256=bFTUMx7Hgayc0FAwC4YIAu7qdoeAXunOC6Yg3QWGxfQ,113689
1750
- pygpt_net/data/locale/locale.fr.ini,sha256=FN4VGP-3uaegQasz4WbvskV8UcmvSYoatQHnOCLvqpo,116627
1751
- pygpt_net/data/locale/locale.it.ini,sha256=OHYicnNwePsAPN590IOdrXltPYUSGZL7y9xbt5vn10Y,111367
1752
- pygpt_net/data/locale/locale.pl.ini,sha256=aCXx6igiJYH0PvMlYVAly0-OJbIljwmw_aSEQav7p-0,111071
1753
- pygpt_net/data/locale/locale.uk.ini,sha256=aS9w5jLU-1ooVflsVNCLSZ1QRuRvALDTBQesND7oqkE,154901
1754
- pygpt_net/data/locale/locale.zh.ini,sha256=0ssB0NauPmEwIe-BTBhtO4DUoL_AJUGLt4ZfrJGEpbA,99369
1740
+ pygpt_net/data/locale/locale.de.ini,sha256=OrJJb6uKqwPLVITkmZ52AX1p_NrC4u7qM3W6ieakhxc,113561
1741
+ pygpt_net/data/locale/locale.en.ini,sha256=RMhdWdSN7pyNN8IXHJXPv9ckbDnIQIQhISfx2RVA5QI,109919
1742
+ pygpt_net/data/locale/locale.es.ini,sha256=yKr3ocYlGt5nMed6_3iIOsLFZLhTP2bsux43pzHIWkg,114059
1743
+ pygpt_net/data/locale/locale.fr.ini,sha256=eSZOayaFFZFWf9ryR-g3g-4Qk2WrbHwfMLr4B4zEZCU,116994
1744
+ pygpt_net/data/locale/locale.it.ini,sha256=X2Ec5RA3SLGnNEILy0hB7UXcryWrxQBiQEKfd4jq4WM,111741
1745
+ pygpt_net/data/locale/locale.pl.ini,sha256=w9ZJ0Whl75hbM4ygG5SJt6Ch5icx537VVPywLA_gB3E,111437
1746
+ pygpt_net/data/locale/locale.uk.ini,sha256=UIuXv5JV2Qrmbc9KE2hN684ayzYob7K1ZBInqkoaEXY,155432
1747
+ pygpt_net/data/locale/locale.zh.ini,sha256=s1Kwa8n-g_QshDDcI_W-sETDCsbvFxgqZnXNYMJLGKo,99657
1755
1748
  pygpt_net/data/locale/plugin.agent.de.ini,sha256=BY28KpfFvgfVYJzcw2o5ScWnR4uuErIYGyc3NVHlmTw,1714
1756
1749
  pygpt_net/data/locale/plugin.agent.en.ini,sha256=HwOWCI7e8uzlIgyRWRVyr1x6Xzs8Xjv5pfEc7jfLOo4,1728
1757
1750
  pygpt_net/data/locale/plugin.agent.es.ini,sha256=bqaJQne8HPKFVtZ8Ukzo1TSqVW41yhYbGUqW3j2x1p8,1680
@@ -1817,7 +1810,7 @@ pygpt_net/data/locale/plugin.cmd_history.pl.ini,sha256=mJhpM-Pg6sr06t6bKEyFEp9sD
1817
1810
  pygpt_net/data/locale/plugin.cmd_history.uk.ini,sha256=fSQny1XysmVquhw13wYEvIeu2XKbRHHz7nayopn5oL4,4101
1818
1811
  pygpt_net/data/locale/plugin.cmd_history.zh.ini,sha256=Py5HhbXMOjabXTCKosPTku30j2UacwIBandc5fat49I,2345
1819
1812
  pygpt_net/data/locale/plugin.cmd_mouse_control.de.ini,sha256=O3MZ5A1iTRQlfQrFKHiA-4n4gXPOc3jT722cwbnS8y8,2200
1820
- pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini,sha256=wrNRtNHPdiGaiWeWgLSvtpHNIW8RfAOh5FgT1-jL9fQ,3318
1813
+ pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini,sha256=5kf0jZFz0ThnZR7w0pkk6G3Q607xkv_yo5Xu4x7bqlA,3322
1821
1814
  pygpt_net/data/locale/plugin.cmd_mouse_control.es.ini,sha256=GieAsEfU5uWKBc587y5LFLOUP5kHLB7rOnYena5qv0M,2273
1822
1815
  pygpt_net/data/locale/plugin.cmd_mouse_control.fr.ini,sha256=TulhtdRQdwCdd8jxOgIfbUYKQxaBN9Qo8owTBZpYSfg,2268
1823
1816
  pygpt_net/data/locale/plugin.cmd_mouse_control.it.ini,sha256=k4OBbuiCEQjTE-lcT-inS34c0mgaOMZFNrZczi2N9qY,2263
@@ -1946,7 +1939,7 @@ pygpt_net/item/assistant.py,sha256=Od8k7xrqzj2a_wmaHDNFiuG4sQiVf6p_tHnkHwh08ec,5
1946
1939
  pygpt_net/item/attachment.py,sha256=nsyvOnTS_gimcdzwJNI7bC-1KSrSu66XkMtaNwg2IYk,2970
1947
1940
  pygpt_net/item/builder_layout.py,sha256=u_VxSs_JrbVArVL7x6vMXmHNChmSpeCeqAoNjvJb9CA,1509
1948
1941
  pygpt_net/item/calendar_note.py,sha256=ab2cegCxr-p9WU_r3FkCNg0TwLHhfV4--O4Gei-Lshs,2507
1949
- pygpt_net/item/ctx.py,sha256=B-iJS12UzYBhgmEadD14DnLcuwD-Hy0KNG1dRdOZXv4,25917
1942
+ pygpt_net/item/ctx.py,sha256=Sq2I-AwNH6pdjFLr_0gqU5kcTaKCouUc2moBBFeEMw8,25748
1950
1943
  pygpt_net/item/index.py,sha256=NTDBgNjiyaixTFJu_1oBqoVajf92c2U1Oa3BKQ11poU,1920
1951
1944
  pygpt_net/item/mode.py,sha256=0uPU7ciqVLaEcijUA-D73ABMoLUFtgPytdXUuwqtews,688
1952
1945
  pygpt_net/item/model.py,sha256=Gt20je8pTQ_cAQwbw6tQqHF3eEmXWoNCTakFLNJRk7k,10113
@@ -1955,7 +1948,7 @@ pygpt_net/item/preset.py,sha256=nkLoyfHoZnjoqKKynDo0alJDb_o8BFxTZRYk7_2uQss,8991
1955
1948
  pygpt_net/item/prompt.py,sha256=xequZDTEv4eKjmC5OLqZnNrbyy0YA4LHe0k2RpPiBw0,1745
1956
1949
  pygpt_net/item/store.py,sha256=LZGXTbXNVMpmQCnPcF_7LmTAZ9fxKdXBnyn372_V_wE,6628
1957
1950
  pygpt_net/js.qrc,sha256=0ur8_O4TeD2NEmj2gPb7z1XKH5PRxgDo3H8awPPb7zg,2001
1958
- pygpt_net/js_rc.py,sha256=aD_ZJ1f_3uKEyGxlWy4Ss6R-I5uvatU5gAKRbz8YVN0,2789791
1951
+ pygpt_net/js_rc.py,sha256=P3aWJPiWsuJbZH919QYsTK-ijyQeRoRkb20BS-tO3M8,2789834
1959
1952
  pygpt_net/launcher.py,sha256=ES8Ouqwu2N7Uis0vrjbfMUPO5bC5uobNFYQSaWjmx3I,12222
1960
1953
  pygpt_net/migrations/Version20231227152900.py,sha256=1Rw1mK2mVQs0B2HrbxHICu1Pd1X5jg4yZIrytnR5N5Y,2849
1961
1954
  pygpt_net/migrations/Version20231230095000.py,sha256=A1_e9oC_E4LSo9uBFiiI2dKH7N-SERFp7DMX1R_8LXQ,906
@@ -2025,10 +2018,10 @@ pygpt_net/plugin/cmd_history/config.py,sha256=RrjssJshpdkyRFQ8u8y6KI2Nrqxr3IwZ6f
2025
2018
  pygpt_net/plugin/cmd_history/plugin.py,sha256=2zFhf4_TT8mt-KkC1e1E32zocoGyUTvNb7wBtExB3No,11160
2026
2019
  pygpt_net/plugin/cmd_history/worker.py,sha256=MrGSwFHqqjBC-UeJo2gP8nVyGJFJxRkhUqGkrl0X78c,6340
2027
2020
  pygpt_net/plugin/cmd_mouse_control/__init__.py,sha256=0JTjrVoiNztoH9ReDkmUTMBgPfbSEdnSNrXGHXeM6Hw,510
2028
- pygpt_net/plugin/cmd_mouse_control/config.py,sha256=ha6T5idrfr7euH9K4jmYYtzXKNBlraw7tulF_sXKVy8,31722
2029
- pygpt_net/plugin/cmd_mouse_control/plugin.py,sha256=fspMK6brROl7UAW0aBgEA9eDTjM63rOTlVst1gJjCy8,25354
2030
- pygpt_net/plugin/cmd_mouse_control/worker.py,sha256=xb71Zm43_nSN0UIDVpMI56ETuGoRaKgIlOFqhk-rn5I,37091
2031
- pygpt_net/plugin/cmd_mouse_control/worker_sandbox.py,sha256=5xmyvoq1KX9Mk6U7EIAzU2mRrocS18V_W7nYTONfh_4,27980
2021
+ pygpt_net/plugin/cmd_mouse_control/config.py,sha256=QFZVH0rwQjVjVTbra2ACb4xieWrho3ycBiM7GdEbBD0,31643
2022
+ pygpt_net/plugin/cmd_mouse_control/plugin.py,sha256=foKQDpUFJcfFKrruHyakDqX0oolwepeYUq5f22jD5Gs,25320
2023
+ pygpt_net/plugin/cmd_mouse_control/worker.py,sha256=5XpWCpNZtWxM5j-ZYK5YUDVoqHGUfORhUD1X197wZGY,37124
2024
+ pygpt_net/plugin/cmd_mouse_control/worker_sandbox.py,sha256=2yBANpRTtaImfMLP4kFJ21Y6R5RZy3ZikA3ayL-Ogsc,28013
2032
2025
  pygpt_net/plugin/cmd_serial/__init__.py,sha256=qIXiIKpGz5-DvKXXKouwLowJkNqfdOgoJUKxweBhUMQ,510
2033
2026
  pygpt_net/plugin/cmd_serial/config.py,sha256=oXtnKRL42yadG7fUoCAwpvdgWAU-lOjeryHKnRyaWE4,3261
2034
2027
  pygpt_net/plugin/cmd_serial/plugin.py,sha256=42qeqL-3FSCXFVeA-qF3fEQIQoKKkVgTM-h3LR6mWRA,2945
@@ -2166,15 +2159,19 @@ pygpt_net/provider/agents/openai/evolve.py,sha256=0wYOc1zNFL5wxzetZ5redMHR_vqY78
2166
2159
  pygpt_net/provider/agents/openai/flow_from_schema.py,sha256=Ih8HMsjGBVLqQ0khLHR_VHkEs56hKfab0cfYc03MYDE,3986
2167
2160
  pygpt_net/provider/agents/openai/supervisor.py,sha256=9l8GAteHho9Jy8V3A-scQ4G9xzAit5EM9uqJ01EBTgg,23414
2168
2161
  pygpt_net/provider/api/__init__.py,sha256=Daaev4XktvnciogLCfXcuokzrBUrbeoeRfU7usY5Svw,933
2169
- pygpt_net/provider/api/anthropic/__init__.py,sha256=IVWpeh5TxGug3kMCkYMkyC27wdjjZeDjlp0U3kW3SvM,7583
2162
+ pygpt_net/provider/api/anthropic/__init__.py,sha256=pFEJwLTObYJOxKKwAUhCy9CsDO8HmtOU8ilQADfN-To,7818
2170
2163
  pygpt_net/provider/api/anthropic/audio.py,sha256=AUfcTW2ysT9YSNyz7aNQGuXbdNnX9H-PHTStiIe46-o,1087
2171
- pygpt_net/provider/api/anthropic/chat.py,sha256=E13TzVCd1F-WqqzFWz8zEMh935VgIcnE290rLfHK0XM,12395
2164
+ pygpt_net/provider/api/anthropic/chat.py,sha256=R_ldw4vxxotJzM_46rCEewZ565pZ6njESzUGb3oawtg,22508
2165
+ pygpt_net/provider/api/anthropic/computer.py,sha256=0GB-PNkYXHVcwt5BquSEccbAsX_D6Ev38GpoyD7H5eg,34339
2172
2166
  pygpt_net/provider/api/anthropic/image.py,sha256=BrWrGsz_f2bAG8f5s25YdwtV6HJKLB6Tk2xhtD85RMc,935
2173
- pygpt_net/provider/api/anthropic/tools.py,sha256=eLnxTsH_tgrcDBsAD4--j8Tbn2e1863VogFMzKqedNY,10098
2167
+ pygpt_net/provider/api/anthropic/remote_tools.py,sha256=raX2xQPmF2kfvs89_aCjBVJwcWLdP9fntbSlNCsMKiU,7802
2168
+ pygpt_net/provider/api/anthropic/stream.py,sha256=pBhzNzkuE6Rupo2FlXvMjxzueaLwSTvY9IcmkQiMGZg,6661
2169
+ pygpt_net/provider/api/anthropic/tools.py,sha256=gVlRcuzUXuekDoGtLuEWfFm1geqrsF2L9iwVFl9ALsg,7993
2170
+ pygpt_net/provider/api/anthropic/utils.py,sha256=GYwbW-2xT997ULJPuuVrQwH9E2cD7rarWMxBDnBRi-Y,868
2174
2171
  pygpt_net/provider/api/anthropic/vision.py,sha256=amP0FNHrJM-iSVO4j0AkVDYo1JFdmg0e5IqTuaEqeCM,4377
2175
- pygpt_net/provider/api/google/__init__.py,sha256=fJcqfPDNM3UCWLBYFS79U9uhYoQyxFqAZlwCYpolUY8,11464
2172
+ pygpt_net/provider/api/google/__init__.py,sha256=ureMgX863YoMWZjnEgl7xBE7UCH8Yos-UzZUOUix2xw,11596
2176
2173
  pygpt_net/provider/api/google/audio.py,sha256=Ymq_Q3WofC-8TfYOGu5NmNuRW_omvl8UCS3Q0WEBxnA,4149
2177
- pygpt_net/provider/api/google/chat.py,sha256=es3kCitzneaNNgg-75qSWx3nBSBJ5_uQlgLN0hrlZQ4,40405
2174
+ pygpt_net/provider/api/google/chat.py,sha256=ZIvaAWeIuJc25EM-RvWZWhiOaD7THN2fS0keEqiwiNM,40228
2178
2175
  pygpt_net/provider/api/google/computer.py,sha256=4MHyoZQv1E_YsUYnQVILOeXlvroO8FOIpExyKEBDi58,7432
2179
2176
  pygpt_net/provider/api/google/image.py,sha256=jyZrRkre33Mcm_tLnq32VLu9ytXzx5Wvsy6mO4hKA3o,36464
2180
2177
  pygpt_net/provider/api/google/music.py,sha256=pxLn-7ATTMvX5loCTX_H6Uq69pcTo4Df8sn69YyzelQ,14394
@@ -2183,12 +2180,18 @@ pygpt_net/provider/api/google/realtime/client.py,sha256=w3aYhj4PSXBX-eIginaofWTR
2183
2180
  pygpt_net/provider/api/google/realtime/realtime.py,sha256=daLxuFVadN7gVtci9JCjS6IDKHf5fumdUKe81RxJzvg,7373
2184
2181
  pygpt_net/provider/api/google/remote_tools.py,sha256=4_yst06f2axETDKbE0RuGIeXslI39KN4obyjgU2FpNQ,3906
2185
2182
  pygpt_net/provider/api/google/store.py,sha256=dJYQTDhbPueQ3DFcpKUc2hRa2cRvyaK-_kPFjQ8SBS0,17858
2183
+ pygpt_net/provider/api/google/stream.py,sha256=I61BFjdAnVy7RGaPKgg7j6g1xgT_UbKHe21Xc28OETU,20846
2186
2184
  pygpt_net/provider/api/google/tools.py,sha256=YtrnkTQb8NrKpB6MfdYEqq_6Vhz-250eJNDKRhtmD_k,8856
2185
+ pygpt_net/provider/api/google/utils.py,sha256=DCw8FIh4sg05piPLpKbD9rxzeY5_f8_gUWtxALMNpYY,6307
2187
2186
  pygpt_net/provider/api/google/video.py,sha256=4hfIifTKg1LWGxWslOXITqh9xnGPVGQGTfUWIEeuY2g,22327
2188
2187
  pygpt_net/provider/api/google/vision.py,sha256=yWeA86v5FPvhm5rYiNZJ3cR9KdzYQp_AdGd1tyldphc,4026
2189
2188
  pygpt_net/provider/api/google/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2190
2189
  pygpt_net/provider/api/google/worker/importer.py,sha256=tqDrhFaW6MiwxtODyyWeWWkv9xj6YCDb9btzy9H7D0w,14861
2191
- pygpt_net/provider/api/openai/__init__.py,sha256=JY-wZu2R11wmVEWZG00nFyRoFbunMbz13RHfF1Jj3vI,12325
2190
+ pygpt_net/provider/api/langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2191
+ pygpt_net/provider/api/langchain/stream.py,sha256=DUHM65CYFm209NFjPmU0K0K0hVbKAgn3UFfUj6peWQ0,810
2192
+ pygpt_net/provider/api/llama_index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2193
+ pygpt_net/provider/api/llama_index/stream.py,sha256=NaVt2IEHloPLt3-6gZFNscPuh794pIvAf3H5-Ns_8r0,1851
2194
+ pygpt_net/provider/api/openai/__init__.py,sha256=gcnFy4OAKnaSMtv3jQJpyiLlplaUP0Ap-qd21fP2PTQ,12554
2192
2195
  pygpt_net/provider/api/openai/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2193
2196
  pygpt_net/provider/api/openai/agents/client.py,sha256=opH2DnYPVRuWvc284AMjJBWUhipV8hdWcs3yqWA2g7s,2372
2194
2197
  pygpt_net/provider/api/openai/agents/computer.py,sha256=wilD84b9Wl20ZRbBVgW-97k-a-9fYrMb2fbtQZoTqYk,11764
@@ -2202,28 +2205,32 @@ pygpt_net/provider/api/openai/chat.py,sha256=DzsEISEW-XkDz4ey9PRkElMwZ0iOKPSJyO5
2202
2205
  pygpt_net/provider/api/openai/completion.py,sha256=9nWYcwvqwu16Qg1mWhWLAEzMTj-5ff40WN_O94b8T2o,6231
2203
2206
  pygpt_net/provider/api/openai/computer.py,sha256=DVkSBMdmYnxrDqhrh4YJndYBoQ_EDAMNojXtri4rhkU,12307
2204
2207
  pygpt_net/provider/api/openai/container.py,sha256=jWsFkgofa5SKjztQnJZdfhryX-dYAceijv9F3iQkbl0,4922
2205
- pygpt_net/provider/api/openai/image.py,sha256=3TVwVorBnVGT6S83Al0piPw0sywTWAG9MZfnyUaugH0,16716
2208
+ pygpt_net/provider/api/openai/image.py,sha256=Bqaz9aJiSIsV8ZdJJ4nTjjJSCzPLDMhL9cpK4a7-RhU,16751
2206
2209
  pygpt_net/provider/api/openai/realtime/__init__.py,sha256=Ism0i9dihgxYuzQHgA6vzmsswZnBOAvVqQp0j5G2JLQ,519
2207
2210
  pygpt_net/provider/api/openai/realtime/client.py,sha256=4_Evnlb0vobuNbJwNEej1oL9cAhlnfV02tbons7JQSY,76208
2208
2211
  pygpt_net/provider/api/openai/realtime/realtime.py,sha256=tStZJwBHhzyp3yejLsr58LtNwATqpCgyCtvDM5ZqTSA,7424
2209
2212
  pygpt_net/provider/api/openai/remote_tools.py,sha256=B_-o_lnljvGUJyu9jqV2k0mQdW-evNrYa4EOGDYzKbA,5935
2210
2213
  pygpt_net/provider/api/openai/responses.py,sha256=omtMvXmpYqqtnwThkXuAv-TtvWK9ycHRx7gthHQJJd8,29801
2211
2214
  pygpt_net/provider/api/openai/store.py,sha256=TsMMkadSL-f3oQQqu7l-5c25kaImXejo8NsTAgkEbSQ,18697
2215
+ pygpt_net/provider/api/openai/stream.py,sha256=7qcn-EupQuFBuiuoPeRGn3f2wbeIoYS-UIakqN926ZM,13112
2212
2216
  pygpt_net/provider/api/openai/summarizer.py,sha256=vuJz6mj9F9Psiat0d-fn1zNGgXc-WkXJyi0jrvijO6E,2978
2213
2217
  pygpt_net/provider/api/openai/tools.py,sha256=Oh9mnGIXfnwoRTx6f-9ZItD-v3loyr4OtcvhmgroyrY,3146
2214
- pygpt_net/provider/api/openai/utils.py,sha256=O0H0EPb4lXUMfE1bFdWB56yuWLv7M5owVIGWRyDDv-E,855
2218
+ pygpt_net/provider/api/openai/utils.py,sha256=ovubqixt_FX7ysmF86h7c7l7EdGJ8JHE8CbvkXU48MY,2851
2215
2219
  pygpt_net/provider/api/openai/video.py,sha256=695vbzkSJQXD3yPb4telt1IEnNFW02NdYPVMEqVFVmA,25743
2216
2220
  pygpt_net/provider/api/openai/vision.py,sha256=dsG-pAr1MP-A1aQLc3Yn2QzPNwMlPGQEi4LM1ry3YY4,12883
2217
2221
  pygpt_net/provider/api/openai/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2218
2222
  pygpt_net/provider/api/openai/worker/assistants.py,sha256=z1fZzl59FYMVXxv48r9JVIzSCFgLzYOeKXhreZcIzO8,21538
2219
2223
  pygpt_net/provider/api/openai/worker/importer.py,sha256=e019pxV4zH3dzAkLJxDb7bIkTifi-6blK0FQSOfSkQY,16562
2220
- pygpt_net/provider/api/x_ai/__init__.py,sha256=Ae8uW0lJqK6avq0U8MPZXk6NmlwbG1ku448xa64i3Ow,8193
2224
+ pygpt_net/provider/api/x_ai/__init__.py,sha256=vEE_o2L5G_A6_-DUPA5Dk7AtxDe9zoE24-Xx6f7J600,11849
2221
2225
  pygpt_net/provider/api/x_ai/audio.py,sha256=6ePxjNqokUPmiuh0utC8udgFU9Jha5ScBJ6TKcIDZR8,1065
2222
- pygpt_net/provider/api/x_ai/chat.py,sha256=uiWabPG6QmWVxbwt-4gNLCzL-zK2rmJVdr9HB7u826k,38257
2223
- pygpt_net/provider/api/x_ai/image.py,sha256=nZiAGvRFQcrqXibZxWFGTVFFO_aI2QxMKkey4vPWW9w,8973
2224
- pygpt_net/provider/api/x_ai/remote.py,sha256=Ols0_XABst0FcIv4bkwe9Wkd1Gihbh4uqb33kWf_B4o,10482
2225
- pygpt_net/provider/api/x_ai/tools.py,sha256=JpmAwHiru_DJ9hETkKmq1aePdDLSLH2B4FH1VqfaAF4,4299
2226
- pygpt_net/provider/api/x_ai/vision.py,sha256=Unqsdb9rIzwSoq4icMNET7XG17QQUC32rTNhA9lLh18,3819
2226
+ pygpt_net/provider/api/x_ai/chat.py,sha256=Q-GIA-mfCFhLA0Fcpy88eXJ0i1citA4Q-_NxkDR4-Dc,46786
2227
+ pygpt_net/provider/api/x_ai/image.py,sha256=cE6ZH8NCYIIYHp1F8joWdsROSeaqLDxrUfGGQWCUDBk,12797
2228
+ pygpt_net/provider/api/x_ai/remote_tools.py,sha256=g5eifO5XIljYvIbxemprmI3gGI1HUiYLJdD5ycWSYfU,13763
2229
+ pygpt_net/provider/api/x_ai/responses.py,sha256=n_fT_Rgs4q3Ka5jpc17e03DZrfh8r4mRY78A1SYR44o,18986
2230
+ pygpt_net/provider/api/x_ai/stream.py,sha256=xQK9sM51dXx-SGVjf0UfoEt_zXcCDsKzGm-Yxp0oy3Q,26558
2231
+ pygpt_net/provider/api/x_ai/tools.py,sha256=svTvjdon_j1cKKWpaHHNH9wZbdzXGmmoFj9lgsZymtk,6016
2232
+ pygpt_net/provider/api/x_ai/utils.py,sha256=9qayMXp0SUNiQ1yxKoJ9UY4LLm2JFRxFv2GPCjQ-5JQ,7221
2233
+ pygpt_net/provider/api/x_ai/vision.py,sha256=Y7_wkMp9XFev2uQwBX--SqUsw9yqWqf7Ns8Y2pOOhhg,3656
2227
2234
  pygpt_net/provider/audio_input/__init__.py,sha256=lOkgAiuNUqkAl_QrIG3ZsUznIZeJYtokgzEnDB8gRic,488
2228
2235
  pygpt_net/provider/audio_input/base.py,sha256=2PxE9QeEd4fODLYx_sO-1iVdAFOxHVHjtse7-GIqix8,1826
2229
2236
  pygpt_net/provider/audio_input/bing_speech_recognition.py,sha256=Rmpo7yaU8pU7r8KaH57U8Lc-NVE9EpF5wToL_qpMKhw,2825
@@ -2258,7 +2265,7 @@ pygpt_net/provider/core/calendar/db_sqlite/storage.py,sha256=QDclQCQdr4QyRIqjgGX
2258
2265
  pygpt_net/provider/core/config/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
2259
2266
  pygpt_net/provider/core/config/base.py,sha256=cbvzbMNqL2XgC-36gGubnU37t94AX7LEw0lecb2Nm80,1365
2260
2267
  pygpt_net/provider/core/config/json_file.py,sha256=GCcpCRQnBiSLWwlGbG9T3ZgiHkTfp5Jsg2KYkZcakBw,6789
2261
- pygpt_net/provider/core/config/patch.py,sha256=ZtBLeDltE5uibbAuyoOjfNV_mO4u3jCDTq4eZ_fi9YQ,10262
2268
+ pygpt_net/provider/core/config/patch.py,sha256=CPrguQMWY7-rNuMrLIQtjFWCz4pX1olEhKD0GFKr87M,11183
2262
2269
  pygpt_net/provider/core/config/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2263
2270
  pygpt_net/provider/core/config/patches/patch_before_2_6_42.py,sha256=MzWclHzLoXOthuRup2n3xsuRFkVHFp37v5bfDmJOgnw,126816
2264
2271
  pygpt_net/provider/core/ctx/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
@@ -2289,7 +2296,7 @@ pygpt_net/provider/core/mode/patch.py,sha256=VS2KCYW05jxLd-lcStNY1k4fHKUUrVVLTdR
2289
2296
  pygpt_net/provider/core/model/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
2290
2297
  pygpt_net/provider/core/model/base.py,sha256=L1x2rHha8a8hnCUYxZr88utay1EWEx5qBXW_2acpAN0,1319
2291
2298
  pygpt_net/provider/core/model/json_file.py,sha256=l74l_n5PEHNp-FsoHtO9LHflz3RFKwDwKwOKN0stgZw,8418
2292
- pygpt_net/provider/core/model/patch.py,sha256=DhjB3DwGLaPL8LPeKlhtzZ9UkBowQDYq6yiPF55Mzc0,4958
2299
+ pygpt_net/provider/core/model/patch.py,sha256=CnAITr6X4WKhfUcxFJ0yDAto4zNTLyUt63CHzjnAU0M,5933
2293
2300
  pygpt_net/provider/core/model/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2294
2301
  pygpt_net/provider/core/model/patches/patch_before_2_6_42.py,sha256=4z10uc4NnmCCL9AYWrXfzi1Xet5OZFjc7K-Nf0s4T1s,37729
2295
2302
  pygpt_net/provider/core/notepad/__init__.py,sha256=jQQgG9u_ZLsZWXustoc1uvC-abUvj4RBKPAM30-f2Kc,488
@@ -2458,7 +2465,7 @@ pygpt_net/tools/html_canvas/ui/widgets.py,sha256=IdrxVSs-FR4K1dEO8kJDIO0puyMHEF3
2458
2465
  pygpt_net/tools/image_viewer/__init__.py,sha256=BQLr8Kg670xPAyv_qoRA_EjWq5WZclqoc4OpTk5V11k,508
2459
2466
  pygpt_net/tools/image_viewer/tool.py,sha256=yorykUAYTpoU8i1Dcr45YuUcOyhy0clS-6rZ9zYLN98,9664
2460
2467
  pygpt_net/tools/image_viewer/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2461
- pygpt_net/tools/image_viewer/ui/dialogs.py,sha256=qBBoXUrqS8hU4ldiSDSBwnhUbup5K4uEKqfL5Jh6-Ms,5369
2468
+ pygpt_net/tools/image_viewer/ui/dialogs.py,sha256=MOE_FjB0e-cExhNzCR8s0sqvLvWzN0T2oL8NMKupL_8,16527
2462
2469
  pygpt_net/tools/indexer/__init__.py,sha256=0rE5HM0os0k0_LpMdGt7sozEQfckN7qm_b3KEwMb1wc,508
2463
2470
  pygpt_net/tools/indexer/tool.py,sha256=VZF1ZB7qbqnd_o5dv9AHmAD4CzsaesLrBEyryOakcGU,17277
2464
2471
  pygpt_net/tools/indexer/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -2476,8 +2483,8 @@ pygpt_net/tools/media_player/ui/widgets.py,sha256=DFEUwrQpxc_cw2k9Tpj_kz0ESZgjhA
2476
2483
  pygpt_net/tools/text_editor/__init__.py,sha256=BQLr8Kg670xPAyv_qoRA_EjWq5WZclqoc4OpTk5V11k,508
2477
2484
  pygpt_net/tools/text_editor/tool.py,sha256=scxA2GR3IIt6f_l9ryfKVu-lyfgge_OWW6VyaFap-LY,8814
2478
2485
  pygpt_net/tools/text_editor/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2479
- pygpt_net/tools/text_editor/ui/dialogs.py,sha256=0nJjDsw9lzP7K5JLA1Fp4mzTSj8M7k5TZ0Wn_rIL85M,2918
2480
- pygpt_net/tools/text_editor/ui/widgets.py,sha256=bvg3uJgWf5d3Vo_j5dMcoUchrvEA9e9uJK5aAy9-ZJc,2758
2486
+ pygpt_net/tools/text_editor/ui/dialogs.py,sha256=6lWAYenPAC9tP3Nu0U2f3UACRHS8pd_VfKAj1sjRAwg,2932
2487
+ pygpt_net/tools/text_editor/ui/widgets.py,sha256=YB-0QUyH4O6Zj2OLqK6pFcXvEnW3TlvoQu7lHmZf99I,2930
2481
2488
  pygpt_net/tools/translator/__init__.py,sha256=R4-y_danRZamZRwXctX1b0tI9oz4qM_xcVthXNyYjcU,508
2482
2489
  pygpt_net/tools/translator/tool.py,sha256=hm3dEfQJRo8u45gyRXyIOp92khQuBJ6hnqIxO92meDU,14537
2483
2490
  pygpt_net/tools/translator/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -2491,7 +2498,7 @@ pygpt_net/tools/web_browser/ui/widgets.py,sha256=T7_-5m3hYjTupwjP4PE8Vya-XtY4YdD
2491
2498
  pygpt_net/ui/__init__.py,sha256=8E7hcx-7TscDf8XqCBDjyy_vOih1ccV0Zbq0aEGVHt0,9134
2492
2499
  pygpt_net/ui/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2493
2500
  pygpt_net/ui/base/config_dialog.py,sha256=CSqMsuMEnmuBofqxY18DUHFQInkcPpRbWYvGYW8TReg,9017
2494
- pygpt_net/ui/base/context_menu.py,sha256=l-Z9LqPa_xGsjdV3ay65Rqu8JLzZDx2s8GUzYMt4eSk,4462
2501
+ pygpt_net/ui/base/context_menu.py,sha256=t7RFAWLAgtNizQTlI9zMwpPuoKlFZr3iJdVCVwH8KwI,6449
2495
2502
  pygpt_net/ui/base/flow_layout.py,sha256=t6TeNSdmScs0NQKlIdzbFmR6oLogekzJGKPOYJUvXls,2803
2496
2503
  pygpt_net/ui/dialog/__init__.py,sha256=1SGZ5i2G1UnKQpyj_HYkN0t-HLepD6jU_ICw1waaxlk,488
2497
2504
  pygpt_net/ui/dialog/about.py,sha256=hES3qj_5snhWWGnuGS0rjzhh-QnEHbTJiAyHM2vLCQs,7568
@@ -2549,9 +2556,9 @@ pygpt_net/ui/layout/toolbox/audio.py,sha256=8k2qYzVmSv6g0KXhQBY9_diuGBPODSe7VHiE
2549
2556
  pygpt_net/ui/layout/toolbox/computer_env.py,sha256=hw8qMqKdSLoaeUjP9qTnS-0PtEYEtwaymf9ImRJhT9E,2899
2550
2557
  pygpt_net/ui/layout/toolbox/footer.py,sha256=LbLDXbcarPfH-tpBKgXlQqkAvm1HcNZpR7fPjbD76KA,4278
2551
2558
  pygpt_net/ui/layout/toolbox/image.py,sha256=SxMElizDwnv_i-3CRqlHf5vcwjmKpOQcIjDNnMHzAn0,2567
2552
- pygpt_net/ui/layout/toolbox/indexes.py,sha256=GfiQ-DA-mE-fr_1P5r-8jeMJ_LeQR9PvpH5oo4oBEwc,6882
2559
+ pygpt_net/ui/layout/toolbox/indexes.py,sha256=F2hR75PhAeziIID0rBs6V00cyzP1-1dUQxiBMuingk0,7373
2553
2560
  pygpt_net/ui/layout/toolbox/mode.py,sha256=MfVunjZZ3Wi0o4sbWBqg74c2-W6BNDHr3ylZevLZb8c,2085
2554
- pygpt_net/ui/layout/toolbox/model.py,sha256=OxcxSyFCQ3z6XAwj991X4KiSb78Upfn4v4m3991yvsw,1707
2561
+ pygpt_net/ui/layout/toolbox/model.py,sha256=VCxmHUUP9GRnjkrGY_nF2PU9lfA9Lq5UFgqqV2s72U0,3048
2555
2562
  pygpt_net/ui/layout/toolbox/presets.py,sha256=dOpZBcbE6ygIOjLrj-O5O0Cj6IIoH7Y5SerOYmBTpI4,8150
2556
2563
  pygpt_net/ui/layout/toolbox/prompt.py,sha256=subUUZJgkCmvSRekZcgVYs6wzl-MYPBLXKTs0wcJFgw,2663
2557
2564
  pygpt_net/ui/layout/toolbox/raw.py,sha256=ifZXr3dE_HQODsALXO-h2yaZ-zfDQnnx9dtFWsBp5Pg,1821
@@ -2587,7 +2594,7 @@ pygpt_net/ui/widget/dialog/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5e
2587
2594
  pygpt_net/ui/widget/dialog/alert.py,sha256=6EYiiac1kuuWq3hcnm1DjVPRFdSYWaEe0gJ5LOsiEzg,1429
2588
2595
  pygpt_net/ui/widget/dialog/applog.py,sha256=T9ZHk__9Bm0HGJLZtps4NecNbpapu7R9TIkzxOfTPCs,1502
2589
2596
  pygpt_net/ui/widget/dialog/audio.py,sha256=CgKi1wGw9xVZsHua3HelrXdOgQ_G-CypR_JLznzh6rw,551
2590
- pygpt_net/ui/widget/dialog/base.py,sha256=w-DGYvjXBgIM6eZ8fuzcCQMxmaF_SX2PeQIw1MZLOd0,3661
2597
+ pygpt_net/ui/widget/dialog/base.py,sha256=k7iPhMamSyk6H36bbZ8bJl6njIXRfjxLI9UO7vGn61A,3908
2591
2598
  pygpt_net/ui/widget/dialog/confirm.py,sha256=vnDvlhiipr9w6W-mq6Cro83GvZoMHk3LTfHJTn6wznk,4534
2592
2599
  pygpt_net/ui/widget/dialog/create.py,sha256=BaTn9SVL4QiGk6JCcsArVLQOOsmrdfkdExm_T5rHJe8,2191
2593
2600
  pygpt_net/ui/widget/dialog/db.py,sha256=arTJ27_znjUXnu6EKji1NBjOgq6WUEAT4SnSjDahyV0,1585
@@ -2623,7 +2630,7 @@ pygpt_net/ui/widget/element/status.py,sha256=csRP1xzqB2yNyW2wdYQdGy7VVvzBucKHzjZ
2623
2630
  pygpt_net/ui/widget/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2624
2631
  pygpt_net/ui/widget/filesystem/explorer.py,sha256=T-0cQ-jwmlYglo2gKjaj02Q0V5Z6XMiztCB7nqf2rAQ,68297
2625
2632
  pygpt_net/ui/widget/image/__init__.py,sha256=X9-pucLqQF9_ocDV-qNY6EQAJ_4dubGb-7TcWIzCXBo,488
2626
- pygpt_net/ui/widget/image/display.py,sha256=73lBXCdmdAxjCCD2XV3HBdvYU6PgL_PpybweONMOSik,3771
2633
+ pygpt_net/ui/widget/image/display.py,sha256=4aG5GTruk4VF0-rAyJu0zRvDPuu-eG1uluHjXUwq69s,4152
2627
2634
  pygpt_net/ui/widget/lists/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2628
2635
  pygpt_net/ui/widget/lists/assistant.py,sha256=yYA4b5chF7bGMm9KOFK-7DIM_eKJUAdbNSJuHebIcFs,10608
2629
2636
  pygpt_net/ui/widget/lists/attachment.py,sha256=pQseXaK3_-LzDpJO2sVREO6nML0oCt9PqxYVi50wx08,16533
@@ -2676,28 +2683,28 @@ pygpt_net/ui/widget/tabs/Input.py,sha256=ELHpaWjhHJdKRhtTjDIByaMF_BqaHCyKwEWDofm
2676
2683
  pygpt_net/ui/widget/tabs/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2677
2684
  pygpt_net/ui/widget/tabs/body.py,sha256=rJRsa5b3Wc0CQP54LOwggXvrh9zraK3LoSd4cWXtpLI,4913
2678
2685
  pygpt_net/ui/widget/tabs/layout.py,sha256=6b6bN04IFS0I0cYvq-nUxN2eWwHVUBiNwPXoNgLokM4,6628
2679
- pygpt_net/ui/widget/tabs/output.py,sha256=znL2dJzjeVHChmlBYcwpWiJqbARMcEk-KONzKQ6zx20,25090
2686
+ pygpt_net/ui/widget/tabs/output.py,sha256=TpW8jESR0a5KpAnoOFNfapomnNfEDP_YMtjzOnF9FL4,25381
2680
2687
  pygpt_net/ui/widget/textarea/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2681
2688
  pygpt_net/ui/widget/textarea/calendar_note.py,sha256=4LsPZ2ZHHZAsgjvgn6iZLKupKFq9fLGDu1PFEQVkaGw,5896
2682
2689
  pygpt_net/ui/widget/textarea/console.py,sha256=nCV92S5JR4DiRWH6akWhygxg9kaLLxnCPoqXV0ZRK74,1333
2683
2690
  pygpt_net/ui/widget/textarea/create.py,sha256=f4SrAW-2hjkKYIPrwVliSYH-LkgsQP8G13Jkq8EKhuI,1358
2684
- pygpt_net/ui/widget/textarea/editor.py,sha256=gmNzsMrCQXGkFyVfl0woc_klmjsyiXuOdcG8Lk2PSR4,5038
2691
+ pygpt_net/ui/widget/textarea/editor.py,sha256=kDUOLEknAhytfTkfw4XiH944DJ_dcOZpAlJpYyb7gbc,5444
2685
2692
  pygpt_net/ui/widget/textarea/find.py,sha256=fQu6t-_LTZGFRNCkezywtMVsL-DocIkGBR_HbRFq61g,1534
2686
2693
  pygpt_net/ui/widget/textarea/html.py,sha256=J-xCGyjpBL1wMps2ty-nIWZvJOVDC7k0z-BSD7C8row,16340
2687
- pygpt_net/ui/widget/textarea/input.py,sha256=97lNMP7epjHPxpYuL2BmK1lOPWix5pqehQR1qEb-DTQ,43329
2694
+ pygpt_net/ui/widget/textarea/input.py,sha256=L9LdSV66U4um3F3pjHauj5HAzKg5DP1nk6nif86rp3A,43699
2688
2695
  pygpt_net/ui/widget/textarea/input_extra.py,sha256=4lvqkh0PZWlWoYcXC5t6YlaoHnOuY10KFBaJhnqcM2g,25839
2689
2696
  pygpt_net/ui/widget/textarea/name.py,sha256=vcyAY_pJWJoS_IJqdJjhIeDSniTL9rfpt8aaobWNFVY,1132
2690
- pygpt_net/ui/widget/textarea/notepad.py,sha256=yGXXUN3pBs5UQgx4ipa8_Xn8JWxbNEoYVsnLg4BvtcY,9718
2691
- pygpt_net/ui/widget/textarea/output.py,sha256=3yvlnxXhss-i5eRHwmNxxRZMhP4fiTbKA3esNyhrBt8,6934
2697
+ pygpt_net/ui/widget/textarea/notepad.py,sha256=NAaOcawAB8xPh8DNSBMJTNAMbGgnyOvhskOzpoU7-fk,10517
2698
+ pygpt_net/ui/widget/textarea/output.py,sha256=QHtlB_6FTOI5oGQLbaBOkvCeW4Di4V5NrsczhMevan4,7612
2692
2699
  pygpt_net/ui/widget/textarea/rename.py,sha256=NwuGRIeWMo7WfsMguAFpTqdOz1eTiXbxrDXGsbWF_TY,1358
2693
2700
  pygpt_net/ui/widget/textarea/search_input.py,sha256=aoOlunBwxn-z3gIMNKfnghHX00sC36wQHl87dRlDJlM,5227
2694
2701
  pygpt_net/ui/widget/textarea/url.py,sha256=xbNQxoM5fYI1ZWbvybQkPmNPrIq3yhtNPBOSOWftZCg,1337
2695
- pygpt_net/ui/widget/textarea/web.py,sha256=sVRSmudPwPfjK2h7q-e6Ae4b-677BHLe20t-xjxcDDI,20269
2702
+ pygpt_net/ui/widget/textarea/web.py,sha256=kt1HvnaoiHL0SMnS3rCEolHoJtADAcw5EhUTI2AHnHE,20730
2696
2703
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2697
2704
  pygpt_net/ui/widget/vision/camera.py,sha256=DCx7h1nHruuUkU0Tw8Ay4OUVoNJhkuLsW4hIvGF5Skw,6985
2698
2705
  pygpt_net/utils.py,sha256=r-Dum4brfBaZaHJr-ux86FfdMuMHFwyuUL2bEFirdhc,14649
2699
- pygpt_net-2.7.5.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2700
- pygpt_net-2.7.5.dist-info/METADATA,sha256=JnDI277n2Kbn1pHNbouQZstebUAI2FQNqCQOcQlNnLE,172950
2701
- pygpt_net-2.7.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2702
- pygpt_net-2.7.5.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2703
- pygpt_net-2.7.5.dist-info/RECORD,,
2706
+ pygpt_net-2.7.7.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2707
+ pygpt_net-2.7.7.dist-info/METADATA,sha256=5QYpuCmeXxdzZ1S61CI8RLGzM-n43KlgvrXEEeTAouk,173470
2708
+ pygpt_net-2.7.7.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2709
+ pygpt_net-2.7.7.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2710
+ pygpt_net-2.7.7.dist-info/RECORD,,
@@ -1,135 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # ================================================== #
4
- # This file is a part of PYGPT package #
5
- # Website: https://pygpt.net #
6
- # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
- # MIT License #
8
- # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.09.05 00:00:00 #
10
- # ================================================== #
11
-
12
- from typing import Optional
13
-
14
-
15
- def process_xai_sdk_chunk(ctx, core, state, item) -> Optional[str]:
16
- """
17
- xAI SDK native streaming chunk.
18
-
19
- :param ctx: Chat context
20
- :param core: Core controller
21
- :param state: Chat state
22
- :param item: Incoming streaming chunk (tuple of (response, chunk))
23
- :return: Extracted text delta or None
24
- """
25
- try:
26
- response, chunk = item
27
- except Exception:
28
- return None
29
-
30
- state.xai_last_response = response
31
-
32
- try:
33
- if hasattr(chunk, "content") and chunk.content is not None:
34
- return str(chunk.content)
35
- if isinstance(chunk, str):
36
- return chunk
37
- except Exception:
38
- pass
39
- return None
40
-
41
-
42
- def xai_extract_tool_calls(response) -> list[dict]:
43
- """
44
- Extract tool calls from xAI SDK final response (proto).
45
-
46
- :param response: xAI final response object
47
- :return: List of tool calls in normalized dict format
48
- """
49
- out: list[dict] = []
50
- try:
51
- proto = getattr(response, "proto", None)
52
- if not proto:
53
- return out
54
- choices = getattr(proto, "choices", None) or []
55
- if not choices:
56
- return out
57
- msg = getattr(choices[0], "message", None)
58
- if not msg:
59
- return out
60
- tool_calls = getattr(msg, "tool_calls", None) or []
61
- for tc in tool_calls:
62
- try:
63
- name = getattr(getattr(tc, "function", None), "name", "") or ""
64
- args = getattr(getattr(tc, "function", None), "arguments", "") or "{}"
65
- out.append({
66
- "id": getattr(tc, "id", "") or "",
67
- "type": "function",
68
- "function": {"name": name, "arguments": args},
69
- })
70
- except Exception:
71
- continue
72
- except Exception:
73
- pass
74
- return out
75
-
76
-
77
- def xai_extract_citations(response) -> list[str]:
78
- """
79
- Extract citations (URLs) from xAI final response if present.
80
-
81
- :param response: xAI final response object
82
- :return: List of citation URLs
83
- """
84
- urls: list[str] = []
85
- try:
86
- cites = getattr(response, "citations", None)
87
- if isinstance(cites, (list, tuple)):
88
- for u in cites:
89
- if isinstance(u, str) and (u.startswith("http://") or u.startswith("https://")):
90
- if u not in urls:
91
- urls.append(u)
92
- except Exception:
93
- pass
94
- try:
95
- proto = getattr(response, "proto", None)
96
- if proto:
97
- proto_cites = getattr(proto, "citations", None) or []
98
- for u in proto_cites:
99
- if isinstance(u, str) and (u.startswith("http://") or u.startswith("https://")):
100
- if u not in urls:
101
- urls.append(u)
102
- except Exception:
103
- pass
104
- return urls
105
-
106
-
107
- def xai_extract_usage(response) -> dict:
108
- """
109
- Extract usage from xAI final response via proto. Return {'in','out','reasoning','total'}.
110
-
111
- :param response: xAI final response object
112
- :return: Usage dict
113
- """
114
- try:
115
- proto = getattr(response, "proto", None)
116
- usage = getattr(proto, "usage", None) if proto else None
117
- if not usage:
118
- return {}
119
-
120
- def _as_int(v):
121
- try:
122
- return int(v)
123
- except Exception:
124
- try:
125
- return int(float(v))
126
- except Exception:
127
- return 0
128
-
129
- p = _as_int(getattr(usage, "prompt_tokens", 0) or 0)
130
- c = _as_int(getattr(usage, "completion_tokens", 0) or 0)
131
- t = _as_int(getattr(usage, "total_tokens", (p + c)) or (p + c))
132
- out_total = max(0, t - p) if t else c
133
- return {"in": p, "out": out_total, "reasoning": 0, "total": t}
134
- except Exception:
135
- return {}