pygpt-net 2.6.60__py3-none-any.whl → 2.6.61__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 (60) hide show
  1. pygpt_net/CHANGELOG.txt +7 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/controller/chat/common.py +115 -6
  4. pygpt_net/controller/chat/input.py +4 -1
  5. pygpt_net/controller/presets/presets.py +121 -6
  6. pygpt_net/controller/settings/editor.py +0 -15
  7. pygpt_net/controller/theme/markdown.py +2 -5
  8. pygpt_net/controller/ui/ui.py +4 -7
  9. pygpt_net/core/agents/custom/__init__.py +7 -1
  10. pygpt_net/core/agents/custom/llama_index/factory.py +17 -6
  11. pygpt_net/core/agents/custom/llama_index/runner.py +35 -2
  12. pygpt_net/core/agents/custom/llama_index/utils.py +12 -1
  13. pygpt_net/core/agents/custom/router.py +45 -6
  14. pygpt_net/core/agents/custom/runner.py +2 -1
  15. pygpt_net/core/agents/custom/schema.py +3 -1
  16. pygpt_net/core/agents/custom/utils.py +13 -1
  17. pygpt_net/core/db/viewer.py +11 -5
  18. pygpt_net/core/node_editor/graph.py +18 -9
  19. pygpt_net/core/node_editor/models.py +9 -2
  20. pygpt_net/core/node_editor/types.py +3 -1
  21. pygpt_net/core/presets/presets.py +216 -29
  22. pygpt_net/core/render/markdown/parser.py +0 -2
  23. pygpt_net/data/config/config.json +5 -6
  24. pygpt_net/data/config/models.json +3 -3
  25. pygpt_net/data/config/settings.json +2 -38
  26. pygpt_net/data/locale/locale.de.ini +64 -1
  27. pygpt_net/data/locale/locale.en.ini +62 -3
  28. pygpt_net/data/locale/locale.es.ini +64 -1
  29. pygpt_net/data/locale/locale.fr.ini +64 -1
  30. pygpt_net/data/locale/locale.it.ini +64 -1
  31. pygpt_net/data/locale/locale.pl.ini +65 -2
  32. pygpt_net/data/locale/locale.uk.ini +64 -1
  33. pygpt_net/data/locale/locale.zh.ini +64 -1
  34. pygpt_net/data/locale/plugin.cmd_system.en.ini +62 -66
  35. pygpt_net/provider/agents/llama_index/flow_from_schema.py +2 -2
  36. pygpt_net/provider/core/config/patch.py +10 -1
  37. pygpt_net/provider/core/config/patches/patch_before_2_6_42.py +0 -6
  38. pygpt_net/tools/agent_builder/tool.py +42 -26
  39. pygpt_net/tools/agent_builder/ui/dialogs.py +60 -11
  40. pygpt_net/ui/__init__.py +2 -4
  41. pygpt_net/ui/dialog/about.py +58 -38
  42. pygpt_net/ui/dialog/db.py +142 -3
  43. pygpt_net/ui/dialog/preset.py +47 -8
  44. pygpt_net/ui/layout/toolbox/presets.py +52 -16
  45. pygpt_net/ui/widget/dialog/db.py +0 -0
  46. pygpt_net/ui/widget/lists/preset.py +644 -60
  47. pygpt_net/ui/widget/node_editor/command.py +10 -10
  48. pygpt_net/ui/widget/node_editor/config.py +157 -0
  49. pygpt_net/ui/widget/node_editor/editor.py +183 -151
  50. pygpt_net/ui/widget/node_editor/item.py +12 -11
  51. pygpt_net/ui/widget/node_editor/node.py +267 -12
  52. pygpt_net/ui/widget/node_editor/view.py +180 -63
  53. pygpt_net/ui/widget/tabs/output.py +1 -1
  54. pygpt_net/ui/widget/textarea/input.py +2 -2
  55. pygpt_net/utils.py +114 -2
  56. {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.61.dist-info}/METADATA +11 -94
  57. {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.61.dist-info}/RECORD +59 -58
  58. {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.61.dist-info}/LICENSE +0 -0
  59. {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.61.dist-info}/WHEEL +0 -0
  60. {pygpt_net-2.6.60.dist-info → pygpt_net-2.6.61.dist-info}/entry_points.txt +0 -0
@@ -43,6 +43,7 @@ action.profile.delete = Видалити профіль (лише зі спис
43
43
  action.profile.delete_all = Видалити профіль (і всі файли користувача)
44
44
  action.redo = Повторити
45
45
  action.refresh = Оновити
46
+ action.reload: Перезавантажити
46
47
  action.rename = Перейменувати
47
48
  action.reset = Скинути
48
49
  action.restore = Відновити
@@ -50,7 +51,8 @@ action.save = Зберегти
50
51
  action.save_as = Зберегти як...
51
52
  action.save_selection_as = Зберегти вибір як...
52
53
  action.select_all = Вибрати все
53
- action.tab.add.chat = Додати новий чат
54
+ action.tab.add.chat: Додати новий чат
55
+ action.tab.add.chat.tooltip: Додати новий чат (ПКМ для більше опцій...)
54
56
  action.tab.add.notepad = Додати новий блокнот
55
57
  action.tab.add.tool = Додати новий інструмент
56
58
  action.tab.close = Закрити
@@ -72,6 +74,8 @@ action.use.read_cmd = Попросіть прочитати цей файл...
72
74
  action.video.open = Відкрити відео або аудіо...
73
75
  action.video.play = Відтворити відео або аудіо...
74
76
  action.video.transcribe = Транскрибувати аудіо...
77
+ agent.builder.title = Редактор Агентів
78
+ agent.builder.tooltip = Відкрити Редактор Агентів
75
79
  agent.coder.additional.label = Додаткова підказка
76
80
  agent.coder.additional.prompt.desc = Додаткова підказка для агента (буде додано до базової підказки)
77
81
  agent.coder.base.label = Базова підказка
@@ -101,6 +105,7 @@ agent.option.prompt.planner.desc = Підказка для планувальн
101
105
  agent.option.prompt.search.desc = Підказка для пошукового агента
102
106
  agent.option.prompt.supervisor.desc = Підказка для супервізора
103
107
  agent.option.prompt.worker.desc = Підказка для працівника
108
+ agent.option.role = Короткий опис роботи агента для інструкцій моделі (необов'язково)
104
109
  agent.option.section.base = Базовий агент
105
110
  agent.option.section.chooser = Вибирач
106
111
  agent.option.section.feedback = Відгук
@@ -239,6 +244,8 @@ clipboard.copied_to = Скопійовано до буфера обміну:
239
244
  cmd.enabled = + Інструменти
240
245
  cmd.tip = Порада: Щоб увімкнути виконання інструментів із плагінів, ви повинні увімкнути опцію "+ Інструменти".
241
246
  coming_soon = Незабаром...
247
+ common.down = Перемістити вниз
248
+ common.up = Перемістити вгору
242
249
  confirm.assistant.delete = Видалити помічника?
243
250
  confirm.assistant.files.clear = Очистити файли (лише локально)?
244
251
  confirm.assistant.files.truncate = Ви впевнені, що хочете видалити усі файли з усіх баз?
@@ -678,6 +685,8 @@ html_canvas.clear.confirm = Очистити вихідні дані HTML-кан
678
685
  icon.audio.input = Увімкнути/вимкнути аудіовхід
679
686
  icon.audio.output = Увімкнути/вимкнути аудіовихід
680
687
  icon.remote_tool.web = Пошук у мережі (віддалений інструмент, не локальний інструмент)
688
+ icon.remote_tool.web.disabled: Пошук в Інтернеті (віддалений інструмент, не локальний) - вимкнено
689
+ icon.remote_tool.web.enabled: Пошук в Інтернеті (віддалений інструмент, не локальний) - увімкнено
681
690
  icon.video.capture = Увімкнути/вимкнути захоплення відео з камери
682
691
  idx.btn.clear = Очистити індекс
683
692
  idx.btn.index_all = Індексувати все
@@ -773,6 +782,7 @@ menu.config.save = Зберегти конфігурацію
773
782
  menu.config.settings = Налаштування...
774
783
  menu.debug = Відладка
775
784
  menu.debug.agent = Агент...
785
+ menu.debug.agent_builder = Редактор Агентів
776
786
  menu.debug.app.log = Переглянути файл логів (app.log)
777
787
  menu.debug.assistants = Помічники...
778
788
  menu.debug.attachments = Файли / вкладення...
@@ -826,6 +836,7 @@ menu.theme.style = Стиль...
826
836
  menu.theme.syntax = Підсвітка синтаксису коду...
827
837
  menu.theme.tooltips = Показувати підказки
828
838
  menu.tools = Інструменти
839
+ menu.tools.agent.builder = Редактор Агентів
829
840
  menu.tools.audio.transcribe = Транскрибувати аудіо/відео файли
830
841
  menu.tools.html_canvas = HTML/JS Canvas
831
842
  menu.tools.image.viewer = Переглядач зображень
@@ -933,6 +944,57 @@ multimodal.audio = Аудіо
933
944
  multimodal.image = Зображення
934
945
  multimodal.text = Текст
935
946
  multimodal.video = Відео
947
+ node.editor.bottom.tip: Правий клік: додати вузол / скасувати / повторити • Середній клік: панорамування • Ctrl + колесо миші: зум; Лівий клік на порт: створити з'єднання • Ctrl + лівий клік на порт: перепід'єднати або від'єднати • Правий клік або DEL вузол/з'єднання: видалити
948
+ node.editor.cap.na: н/д
949
+ node.editor.cap.unlimited: необмежено (∞)
950
+ node.editor.cmd.add: Додати
951
+ node.editor.cmd.clear: Очистити
952
+ node.editor.cmd.connect: Підключити
953
+ node.editor.cmd.delete_connection: Видалити з'єднання
954
+ node.editor.cmd.delete_node: Видалити вузол
955
+ node.editor.cmd.move_node: Перемістити вузол
956
+ node.editor.cmd.resize_node: Змінити розмір вузла
957
+ node.editor.cmd.rewire_connection: Перепід'єднати
958
+ node.editor.edge.delete: Видалити з'єднання
959
+ node.editor.hint.click_start: Клік: почати нове з'єднання
960
+ node.editor.hint.ctrl_rewire: Ctrl+Клік: перепід'єднати/від'єднати існуюче
961
+ node.editor.label.id: ID
962
+ node.editor.lbl.allowed: Дозволені з'єднання:
963
+ node.editor.lbl.node: Вузол:
964
+ node.editor.lbl.port: Порт:
965
+ node.editor.list.tip: Список доданих користувацьких агентів
966
+ node.editor.macro.delete_selection: Видалити вибране
967
+ node.editor.menu.add: Додати
968
+ node.editor.menu.clear: Очистити
969
+ node.editor.menu.redo: Повторити
970
+ node.editor.menu.undo: Скасувати
971
+ node.editor.node.delete: Видалити
972
+ node.editor.node.rename: Перейменувати
973
+ node.editor.overlay.grab: Схопити: перемикнути глобальне панорамування з ЛКМ
974
+ node.editor.overlay.zoom_in: Збільшити
975
+ node.editor.overlay.zoom_out: Зменшити
976
+ node.editor.property.agent.name = Агент
977
+ node.editor.property.input.name = Вхід
978
+ node.editor.property.instruction.name = Інструкція
979
+ node.editor.property.instruction.placeholder = Системна інструкція для агента
980
+ node.editor.property.local_tools.name = Локальні інструменти
981
+ node.editor.property.memory.name = Пам'ять
982
+ node.editor.property.name.name = Ім'я
983
+ node.editor.property.name.placeholder = Ім'я агента
984
+ node.editor.property.output.name = Вивід
985
+ node.editor.property.remote_tools.name = Віддалені інструменти
986
+ node.editor.property.role.name = Роль
987
+ node.editor.property.role.placeholder = Необов'язковий короткий опис призначення агента
988
+ node.editor.rename.label: Ім'я:
989
+ node.editor.rename.title: Перейменувати вузол
990
+ node.editor.side.input: Вхід
991
+ node.editor.side.output: Вихід
992
+ node.editor.spec.agent.title = Агент
993
+ node.editor.spec.end.title = Кінець
994
+ node.editor.spec.memory.title = Пам'ять (Контекст)
995
+ node.editor.spec.start.title = Початок
996
+ node.editor.status.no_nodes: Немає вузлів
997
+ node.editor.type.unknown: Невідомо
936
998
  notify.agent.goal.content = Агент: мету досягнуто.
937
999
  notify.agent.goal.title = Мету досягнуто
938
1000
  notify.agent.stop.content = Агент: зупинено
@@ -1418,6 +1480,7 @@ settings.vision.capture.idx = Пристрій Камери
1418
1480
  settings.vision.capture.idx.desc = Виберіть пристрій камери для відеозйомки в реальному часі
1419
1481
  settings.vision.capture.quality = Якість зйомки (%)
1420
1482
  settings.vision.capture.width = Ширина зйомки (у пікселях)
1483
+ settings.zero.limit.desc: Встановіть 0, щоб вимкнути обмеження.
1421
1484
  settings.zoom = Збільшення вікна виводу чату
1422
1485
  speech.enable = Говоріть
1423
1486
  speech.listening = Говоріть зараз...
@@ -43,6 +43,7 @@ action.profile.delete = 删除个人资料(仅从列表中删除)
43
43
  action.profile.delete_all = 删除个人资料(及所有用户文件)
44
44
  action.redo = 重做
45
45
  action.refresh = 刷新
46
+ action.reload: 重新加载
46
47
  action.rename = 重命名
47
48
  action.reset = 重置
48
49
  action.restore = 恢復
@@ -50,7 +51,8 @@ action.save = 保存
50
51
  action.save_as = 另存為...
51
52
  action.save_selection_as = 将选择保存为...
52
53
  action.select_all = 选择全部
53
- action.tab.add.chat = 添加新聊天
54
+ action.tab.add.chat: 添加新聊天
55
+ action.tab.add.chat.tooltip: 添加新聊天(右键单击获取更多选项...)
54
56
  action.tab.add.notepad = 添加新记事本
55
57
  action.tab.add.tool = 添加新工具
56
58
  action.tab.close = 关闭
@@ -72,6 +74,8 @@ action.use.read_cmd = 請求讀取此文件...
72
74
  action.video.open = 打开视频或音频...
73
75
  action.video.play = 播放视频或音频...
74
76
  action.video.transcribe = 转录音频...
77
+ agent.builder.title = 代理编辑器
78
+ agent.builder.tooltip = 打开代理编辑器
75
79
  agent.coder.additional.label = 额外提示
76
80
  agent.coder.additional.prompt.desc = 代理的额外提示(将添加到基础提示)
77
81
  agent.coder.base.label = 基础提示
@@ -101,6 +105,7 @@ agent.option.prompt.planner.desc = 规划代理的提示
101
105
  agent.option.prompt.search.desc = 搜索代理的提示
102
106
  agent.option.prompt.supervisor.desc = 监督者的提示
103
107
  agent.option.prompt.worker.desc = 工作者的提示
108
+ agent.option.role = 用于指导模型的代理操作简要说明(可选)
104
109
  agent.option.section.base = 基础代理
105
110
  agent.option.section.chooser = 选择器
106
111
  agent.option.section.feedback = 反馈
@@ -239,6 +244,8 @@ clipboard.copied_to = 已複製到剪貼板:
239
244
  cmd.enabled = + 工具
240
245
  cmd.tip = 提示:要启用从插件中执行工具,您必须启用“+ 工具”选项。
241
246
  coming_soon = 即將推出...
247
+ common.down = 下移
248
+ common.up = 上移
242
249
  confirm.assistant.delete = 删除助手?
243
250
  confirm.assistant.files.clear = 清除文件(仅本地)?
244
251
  confirm.assistant.files.truncate = 确定要从所有存储中移除所有文件吗?
@@ -678,6 +685,8 @@ html_canvas.clear.confirm = 清除HTML画布输出?
678
685
  icon.audio.input = 啟用/禁用音頻輸入
679
686
  icon.audio.output = 啟用/禁用音頻輸出
680
687
  icon.remote_tool.web = 网页搜索(远程工具,非本地工具)
688
+ icon.remote_tool.web.disabled: 网络搜索(远程工具,非本地工具)- 禁用
689
+ icon.remote_tool.web.enabled: 网络搜索(远程工具,非本地工具)- 启用
681
690
  icon.video.capture = 啟用/禁用相機捕捉
682
691
  idx.btn.clear = 清除索引
683
692
  idx.btn.index_all = 全部索引
@@ -773,6 +782,7 @@ menu.config.save = 保存配置
773
782
  menu.config.settings = 設置...
774
783
  menu.debug = 調試
775
784
  menu.debug.agent = 代理...
785
+ menu.debug.agent_builder = 代理编辑器
776
786
  menu.debug.app.log = 查看日誌文件(app.log)
777
787
  menu.debug.assistants = 助手...
778
788
  menu.debug.attachments = 文件/附件...
@@ -826,6 +836,7 @@ menu.theme.style = 风格...
826
836
  menu.theme.syntax = 代码语法高亮显示...
827
837
  menu.theme.tooltips = 顯示工具提示
828
838
  menu.tools = 工具
839
+ menu.tools.agent.builder = 代理编辑器
829
840
  menu.tools.audio.transcribe = 转录音频/视频文件
830
841
  menu.tools.html_canvas = HTML/JS 画布
831
842
  menu.tools.image.viewer = 图片查看器
@@ -933,6 +944,57 @@ multimodal.audio = 音频
933
944
  multimodal.image = 图像
934
945
  multimodal.text = 文本
935
946
  multimodal.video = 视频
947
+ node.editor.bottom.tip: 右键单击: 添加节点 / 撤销 / 重做 • 中键单击: 平移视图 • Ctrl + 滚轮: 缩放; 左键单击一个端口: 创建连接 • Ctrl + 左键单击一个端口: 重新连接或断开 • 右键单击或删除键删除节点/连接
948
+ node.editor.cap.na: 不适用
949
+ node.editor.cap.unlimited: 无限 (∞)
950
+ node.editor.cmd.add: 添加
951
+ node.editor.cmd.clear: 清除
952
+ node.editor.cmd.connect: 连接
953
+ node.editor.cmd.delete_connection: 删除连接
954
+ node.editor.cmd.delete_node: 删除节点
955
+ node.editor.cmd.move_node: 移动节点
956
+ node.editor.cmd.resize_node: 调整节点大小
957
+ node.editor.cmd.rewire_connection: 重新连接
958
+ node.editor.edge.delete: 删除连接
959
+ node.editor.hint.click_start: 点击: 开始新的连接
960
+ node.editor.hint.ctrl_rewire: Ctrl+点击: 重新连接/断开现有
961
+ node.editor.label.id: ID
962
+ node.editor.lbl.allowed: 允许连接:
963
+ node.editor.lbl.node: 节点:
964
+ node.editor.lbl.port: 端口:
965
+ node.editor.list.tip: 添加的自定义代理工作流列表
966
+ node.editor.macro.delete_selection: 删除选择
967
+ node.editor.menu.add: 添加
968
+ node.editor.menu.clear: 清除
969
+ node.editor.menu.redo: 重做
970
+ node.editor.menu.undo: 撤销
971
+ node.editor.node.delete: 删除
972
+ node.editor.node.rename: 重命名
973
+ node.editor.overlay.grab: 抓取: 用鼠标左键切换全局平移
974
+ node.editor.overlay.zoom_in: 放大
975
+ node.editor.overlay.zoom_out: 缩小
976
+ node.editor.property.agent.name = 代理
977
+ node.editor.property.input.name = 输入
978
+ node.editor.property.instruction.name = 指令
979
+ node.editor.property.instruction.placeholder = 系统为代理提供的指令
980
+ node.editor.property.local_tools.name = 本地工具
981
+ node.editor.property.memory.name = 内存
982
+ node.editor.property.name.name = 名称
983
+ node.editor.property.name.placeholder = 代理的名称
984
+ node.editor.property.output.name = 输出
985
+ node.editor.property.remote_tools.name = 远程工具
986
+ node.editor.property.role.name = 角色
987
+ node.editor.property.role.placeholder = 代理的目的的可选简短描述
988
+ node.editor.rename.label: 名称:
989
+ node.editor.rename.title: 重命名节点
990
+ node.editor.side.input: 输入
991
+ node.editor.side.output: 输出
992
+ node.editor.spec.agent.title = 代理
993
+ node.editor.spec.end.title = 结束
994
+ node.editor.spec.memory.title = 内存(上下文)
995
+ node.editor.spec.start.title = 开始
996
+ node.editor.status.no_nodes: 无节点
997
+ node.editor.type.unknown: 未知
936
998
  notify.agent.goal.content = 代理:目標已達成。
937
999
  notify.agent.goal.title = 目標達成
938
1000
  notify.agent.stop.content = 代理:已停止
@@ -1418,6 +1480,7 @@ settings.vision.capture.idx = 摄像设备
1418
1480
  settings.vision.capture.idx.desc = 选择实时视频捕捉的摄像设备
1419
1481
  settings.vision.capture.quality = 拍摄质量(%)
1420
1482
  settings.vision.capture.width = 拍摄宽度(像素)
1483
+ settings.zero.limit.desc: 设为0以禁用限制。
1421
1484
  settings.zoom = 聊天输出窗口缩放
1422
1485
  speech.enable = 启用语音
1423
1486
  speech.listening = 现在说话...
@@ -3,6 +3,60 @@ auto_cwd.description = Automatically append the current working directory to the
3
3
  auto_cwd.label = Auto-append CWD to sys_exec
4
4
  cmd.sys_exec.description = Enable the execution of system commands via sys_exec. When enabled, allows the execution of system commands.
5
5
  cmd.sys_exec.label = Enable: System Command Execution
6
+ cmd.win_always_on_top.description = Toggles topmost flag of a window.
7
+ cmd.win_always_on_top.label = Enable: Always On Top
8
+ cmd.win_area_screenshot.description = Captures a rectangular area of the screen to PNG file.
9
+ cmd.win_area_screenshot.label = Enable: Area Screenshot
10
+ cmd.win_children.description = Lists child windows for a parent HWND.
11
+ cmd.win_children.label = Enable: List Child Windows
12
+ cmd.win_click.description = Sends a mouse click at given coordinates.
13
+ cmd.win_click.label = Enable: Mouse Click
14
+ cmd.win_clipboard_get.description = Gets text from clipboard.
15
+ cmd.win_clipboard_get.label = Enable: Clipboard Get
16
+ cmd.win_clipboard_set.description = Sets text to clipboard.
17
+ cmd.win_clipboard_set.label = Enable: Clipboard Set
18
+ cmd.win_close.description = Closes a window using WM_CLOSE.
19
+ cmd.win_close.label = Enable: Close Window
20
+ cmd.win_cursor_get.description = Gets the cursor position.
21
+ cmd.win_cursor_get.label = Enable: Cursor Get
22
+ cmd.win_cursor_set.description = Sets the cursor position.
23
+ cmd.win_cursor_set.label = Enable: Cursor Set
24
+ cmd.win_drag.description = Performs a mouse drag from one point to another.
25
+ cmd.win_drag.label = Enable: Mouse Drag
26
+ cmd.win_find.description = Finds windows by title/class/exe/pid.
27
+ cmd.win_find.label = Enable: Find Windows
28
+ cmd.win_focus.description = Brings a selected window to the foreground.
29
+ cmd.win_focus.label = Enable: Focus Window
30
+ cmd.win_foreground.description = Returns information about the current foreground window.
31
+ cmd.win_foreground.label = Enable: Foreground Window Info
32
+ cmd.win_get_state.description = Returns window metadata and flags.
33
+ cmd.win_get_state.label = Enable: Get Window State
34
+ cmd.win_hide.description = Hides a window.
35
+ cmd.win_hide.label = Enable: Hide Window
36
+ cmd.win_keys_send.description = Sends key combinations to active window.
37
+ cmd.win_keys_send.label = Enable: Send Key Combos
38
+ cmd.win_keys_text.description = Types Unicode text into active window.
39
+ cmd.win_keys_text.label = Enable: Type Text
40
+ cmd.win_list.description = Lists top-level windows (HWND, title, class, PID, EXE, rect, etc.)
41
+ cmd.win_list.label = Enable: List Windows
42
+ cmd.win_maximize.description = Maximizes a window.
43
+ cmd.win_maximize.label = Enable: Maximize Window
44
+ cmd.win_minimize.description = Minimizes a window.
45
+ cmd.win_minimize.label = Enable: Minimize Window
46
+ cmd.win_monitors.description = Lists monitors/screens and their geometry.
47
+ cmd.win_monitors.label = Enable: List Monitors
48
+ cmd.win_move_resize.description = Moves and resizes a window.
49
+ cmd.win_move_resize.label = Enable: Move/Resize Window
50
+ cmd.win_rect.description = Returns window rectangle (geometry).
51
+ cmd.win_rect.label = Enable: Get Window Rect
52
+ cmd.win_restore.description = Restores a window to normal state.
53
+ cmd.win_restore.label = Enable: Restore Window
54
+ cmd.win_screenshot.description = Captures a window to PNG file.
55
+ cmd.win_screenshot.label = Enable: Window Screenshot
56
+ cmd.win_set_opacity.description = Sets window opacity via layered window attributes.
57
+ cmd.win_set_opacity.label = Enable: Set Opacity
58
+ cmd.win_show.description = Shows a window.
59
+ cmd.win_show.label = Enable: Show Window
6
60
  container_name.description = Custom container name
7
61
  container_name.label = Docker container name
8
62
  docker_entrypoint.description = Command to run when starting the container
@@ -21,71 +75,13 @@ sandbox_docker.description = Executes all system commands within a sandbox envir
21
75
  sandbox_docker_image.description = Specifies the Docker image to use for the sandbox.
22
76
  sandbox_docker_image.label = Docker Image
23
77
  sandbox_docker.label = Sandbox (Docker Container)
24
-
25
- # WinAPI tab/options
26
- winapi_enabled.label = Enable WinAPI
27
78
  winapi_enabled.description = Enable Windows API features on Microsoft Windows.
28
- win_keys_per_char_delay_ms.label = Keys: per-char delay (ms)
29
- win_keys_per_char_delay_ms.description = Delay between characters for win_keys_text.
30
- win_keys_hold_ms.label = Keys: hold (ms)
31
- win_keys_hold_ms.description = Hold duration for modifiers in win_keys_send.
32
- win_keys_gap_ms.label = Keys: gap (ms)
33
- win_keys_gap_ms.description = Gap between normal key taps in win_keys_send.
34
- win_drag_step_delay_ms.label = Drag: step delay (ms)
79
+ winapi_enabled.label = Enable WinAPI
35
80
  win_drag_step_delay_ms.description = Delay between intermediate drag steps in win_drag.
36
-
37
- # WinAPI commands labels/descriptions
38
- cmd.win_list.label = Enable: List Windows
39
- cmd.win_list.description = Lists top-level windows (HWND, title, class, PID, EXE, rect, etc.)
40
- cmd.win_find.label = Enable: Find Windows
41
- cmd.win_find.description = Finds windows by title/class/exe/pid.
42
- cmd.win_children.label = Enable: List Child Windows
43
- cmd.win_children.description = Lists child windows for a parent HWND.
44
- cmd.win_foreground.label = Enable: Foreground Window Info
45
- cmd.win_foreground.description = Returns information about the current foreground window.
46
- cmd.win_rect.label = Enable: Get Window Rect
47
- cmd.win_rect.description = Returns window rectangle (geometry).
48
- cmd.win_get_state.label = Enable: Get Window State
49
- cmd.win_get_state.description = Returns window metadata and flags.
50
- cmd.win_focus.label = Enable: Focus Window
51
- cmd.win_focus.description = Brings a selected window to the foreground.
52
- cmd.win_move_resize.label = Enable: Move/Resize Window
53
- cmd.win_move_resize.description = Moves and resizes a window.
54
- cmd.win_minimize.label = Enable: Minimize Window
55
- cmd.win_minimize.description = Minimizes a window.
56
- cmd.win_maximize.label = Enable: Maximize Window
57
- cmd.win_maximize.description = Maximizes a window.
58
- cmd.win_restore.label = Enable: Restore Window
59
- cmd.win_restore.description = Restores a window to normal state.
60
- cmd.win_close.label = Enable: Close Window
61
- cmd.win_close.description = Closes a window using WM_CLOSE.
62
- cmd.win_show.label = Enable: Show Window
63
- cmd.win_show.description = Shows a window.
64
- cmd.win_hide.label = Enable: Hide Window
65
- cmd.win_hide.description = Hides a window.
66
- cmd.win_always_on_top.label = Enable: Always On Top
67
- cmd.win_always_on_top.description = Toggles topmost flag of a window.
68
- cmd.win_set_opacity.label = Enable: Set Opacity
69
- cmd.win_set_opacity.description = Sets window opacity via layered window attributes.
70
- cmd.win_screenshot.label = Enable: Window Screenshot
71
- cmd.win_screenshot.description = Captures a window to PNG file.
72
- cmd.win_area_screenshot.label = Enable: Area Screenshot
73
- cmd.win_area_screenshot.description = Captures a rectangular area of the screen to PNG file.
74
- cmd.win_clipboard_get.label = Enable: Clipboard Get
75
- cmd.win_clipboard_get.description = Gets text from clipboard.
76
- cmd.win_clipboard_set.label = Enable: Clipboard Set
77
- cmd.win_clipboard_set.description = Sets text to clipboard.
78
- cmd.win_cursor_get.label = Enable: Cursor Get
79
- cmd.win_cursor_get.description = Gets the cursor position.
80
- cmd.win_cursor_set.label = Enable: Cursor Set
81
- cmd.win_cursor_set.description = Sets the cursor position.
82
- cmd.win_keys_text.label = Enable: Type Text
83
- cmd.win_keys_text.description = Types Unicode text into active window.
84
- cmd.win_keys_send.label = Enable: Send Key Combos
85
- cmd.win_keys_send.description = Sends key combinations to active window.
86
- cmd.win_click.label = Enable: Mouse Click
87
- cmd.win_click.description = Sends a mouse click at given coordinates.
88
- cmd.win_drag.label = Enable: Mouse Drag
89
- cmd.win_drag.description = Performs a mouse drag from one point to another.
90
- cmd.win_monitors.label = Enable: List Monitors
91
- cmd.win_monitors.description = Lists monitors/screens and their geometry.
81
+ win_drag_step_delay_ms.label = Drag: step delay (ms)
82
+ win_keys_gap_ms.description = Gap between normal key taps in win_keys_send.
83
+ win_keys_gap_ms.label = Keys: gap (ms)
84
+ win_keys_hold_ms.description = Hold duration for modifiers in win_keys_send.
85
+ win_keys_hold_ms.label = Keys: hold (ms)
86
+ win_keys_per_char_delay_ms.description = Delay between characters for win_keys_text.
87
+ win_keys_per_char_delay_ms.label = Keys: per-char delay (ms)
@@ -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.24 23:00:00 #
9
+ # Updated Date: 2025.09.25 14:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from __future__ import annotations
@@ -85,7 +85,7 @@ class Agent(BaseAgent):
85
85
  stream=stream,
86
86
  base_prompt=base_prompt,
87
87
  timeout=120,
88
- verbose=True,
88
+ verbose=verbose,
89
89
  )
90
90
 
91
91
  async def run(self, *args, **kwargs) -> Tuple[Any, str, str]:
@@ -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.22 19:00:00 #
9
+ # Updated Date: 2025.09.26 03:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -151,6 +151,15 @@ class Patch:
151
151
  data["ctx.urls.internal"] = False
152
152
  updated = True
153
153
 
154
+ # < 2.6.61
155
+ if old < parse_version("2.6.61"):
156
+ print("Migrating config from < 2.6.61...")
157
+ if "presets.drag_and_drop.enabled" not in data:
158
+ data["presets.drag_and_drop.enabled"] = True
159
+ if "presets_order" not in data:
160
+ data["presets_order"] = {}
161
+ updated = True
162
+
154
163
  # update file
155
164
  migrated = False
156
165
  if updated:
@@ -367,8 +367,6 @@ class Patch:
367
367
  # < 2.0.72
368
368
  if old < parse_version("2.0.72"):
369
369
  print("Migrating config from < 2.0.72...")
370
- if 'theme.markdown' not in data:
371
- data['theme.markdown'] = True
372
370
  prompt = 'IMAGE GENERATION: Whenever I provide a basic idea or concept for an image, such as \'a picture of ' \
373
371
  'mountains\', I want you to ALWAYS translate it into English and expand and elaborate on this idea. ' \
374
372
  'Use your knowledge and creativity to add details that would make the image more vivid and ' \
@@ -1301,8 +1299,6 @@ class Patch:
1301
1299
  data["render.code_syntax"] = "github-dark"
1302
1300
  if 'zoom' not in data:
1303
1301
  data["zoom"] = 1.0
1304
- if 'ctx.convert_lists' not in data:
1305
- data["ctx.convert_lists"] = False
1306
1302
  if 'render.engine' not in data:
1307
1303
  data["render.engine"] = "web"
1308
1304
  if 'render.open_gl' not in data:
@@ -1668,8 +1664,6 @@ class Patch:
1668
1664
  # < 2.4.19
1669
1665
  if old < parse_version("2.4.19"):
1670
1666
  print("Migrating config from < 2.4.19...")
1671
- if 'layout.animation.disable' not in data:
1672
- data["layout.animation.disable"] = cfg_get_base('layout.animation.disable')
1673
1667
  if 'cmd_code_interpreter' in data['plugins'] \
1674
1668
  and 'cmd.ipython_execute' in data['plugins']['cmd_code_interpreter']:
1675
1669
  # remove
@@ -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.24 00:00:00 #
9
+ # Updated Date: 2025.09.25 14:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -312,6 +312,14 @@ class AgentBuilder(BaseTool):
312
312
  next_id = idx.data(QtCore.Qt.UserRole)
313
313
  self.edit_agent(next_id)
314
314
 
315
+ def editing_allowed(self) -> bool:
316
+ """
317
+ Check if editing is enabled (dialog is open and not closing/restoring)
318
+
319
+ :return: True if editing is enabled
320
+ """
321
+ return self.opened and not self._closing and not self._restoring and self.current_agent is not None
322
+
315
323
  def update_presets(self):
316
324
  """Update presets in the tools"""
317
325
  self.window.controller.presets.editor.reload_all(all=True)
@@ -380,66 +388,74 @@ class AgentBuilder(BaseTool):
380
388
  :return: NodeTypeRegistry
381
389
  """
382
390
  registry = NodeTypeRegistry(empty=True)
383
- # Tip: to allow multiple connections to an input or output, set allowed_inputs/allowed_outputs to -1.
384
391
 
385
392
  # Start
386
393
  registry.register(NodeTypeSpec(
387
394
  type_name="Flow/Start",
388
- title="Start",
395
+ title=trans("node.editor.spec.start.title"),
389
396
  base_id="start",
390
397
  export_kind="start",
391
398
  bg_color="#2D5A27",
392
399
  properties=[
393
- PropertySpec(id="output", type="flow", name="Output", editable=False, allowed_inputs=0,
394
- allowed_outputs=1),
395
- PropertySpec(id="memory", type="memory", name="Memory", editable=False, allowed_inputs=0,
396
- allowed_outputs=-1),
397
- # base_id will be auto-injected as read-only property at creation
400
+ PropertySpec(id="output", type="flow", name=trans("node.editor.property.output.name"), editable=False,
401
+ allowed_inputs=0, allowed_outputs=1),
402
+ PropertySpec(id="memory", type="memory", name=trans("node.editor.property.memory.name"), editable=False,
403
+ allowed_inputs=0, allowed_outputs=-1),
398
404
  ],
399
405
  ))
400
406
  # Agent
401
407
  registry.register(NodeTypeSpec(
402
408
  type_name="Flow/Agent",
403
- title="Agent",
409
+ title=trans("node.editor.spec.agent.title"),
404
410
  base_id="agent",
405
411
  export_kind="agent",
406
412
  bg_color="#304A6E",
407
413
  properties=[
408
- PropertySpec(id="name", type="str", name="Name", editable=True, value=""),
409
- PropertySpec(id="instruction", type="text", name="Instruction", editable=True, value=""),
410
- PropertySpec(id="remote_tools", type="bool", name="Remote tools", editable=True, value=True),
411
- PropertySpec(id="local_tools", type="bool", name="Local tools", editable=True, value=True),
412
- PropertySpec(id="input", type="flow", name="Input", editable=False, allowed_inputs=-1,
413
- allowed_outputs=0),
414
- PropertySpec(id="output", type="flow", name="Output", editable=False, allowed_inputs=0,
415
- allowed_outputs=-1),
416
- PropertySpec(id="memory", type="memory", name="Memory", editable=False, allowed_inputs=0,
417
- allowed_outputs=1),
414
+ PropertySpec(id="name", type="str", name=trans("node.editor.property.name.name"), editable=True,
415
+ value="",
416
+ placeholder=trans("node.editor.property.name.placeholder")),
417
+ PropertySpec(id="role", type="str", name=trans("node.editor.property.role.name"), editable=True,
418
+ value="",
419
+ placeholder=trans("node.editor.property.role.placeholder")),
420
+ PropertySpec(id="instruction", type="text", name=trans("node.editor.property.instruction.name"),
421
+ editable=True, value="",
422
+ placeholder=trans("node.editor.property.instruction.placeholder")),
423
+ PropertySpec(id="remote_tools", type="bool", name=trans("node.editor.property.remote_tools.name"),
424
+ editable=True, value=True),
425
+ PropertySpec(id="local_tools", type="bool", name=trans("node.editor.property.local_tools.name"),
426
+ editable=True, value=True),
427
+ PropertySpec(id="input", type="flow", name=trans("node.editor.property.input.name"), editable=False,
428
+ allowed_inputs=-1, allowed_outputs=0),
429
+ PropertySpec(id="output", type="flow", name=trans("node.editor.property.output.name"), editable=False,
430
+ allowed_inputs=0, allowed_outputs=-1),
431
+ PropertySpec(id="memory", type="memory", name=trans("node.editor.property.memory.name"), editable=False,
432
+ allowed_inputs=0, allowed_outputs=1),
418
433
  ],
419
434
  ))
420
435
  # Memory
421
436
  registry.register(NodeTypeSpec(
422
437
  type_name="Flow/Memory",
423
- title="Memory (Context)",
438
+ title=trans("node.editor.spec.memory.title"),
424
439
  base_id="mem",
425
440
  export_kind="memory",
426
441
  bg_color="#593E78",
427
442
  properties=[
428
- PropertySpec(id="name", type="str", name="Name", editable=True, value=""),
429
- PropertySpec(id="input", type="memory", name="Agent", editable=False, allowed_inputs=-1,
430
- allowed_outputs=0),
443
+ PropertySpec(id="name", type="str", name=trans("node.editor.property.name.name"), editable=True,
444
+ value=""),
445
+ PropertySpec(id="input", type="memory", name=trans("node.editor.property.agent.name"), editable=False,
446
+ allowed_inputs=-1, allowed_outputs=0),
431
447
  ],
432
448
  ))
433
449
  # End
434
450
  registry.register(NodeTypeSpec(
435
451
  type_name="Flow/End",
436
- title="End",
452
+ title=trans("node.editor.spec.end.title"),
437
453
  base_id="end",
438
454
  export_kind="end",
439
455
  bg_color="#6B2E2E",
440
456
  properties=[
441
- PropertySpec(id="input", type="flow", name="Input", editable=False, allowed_inputs=-1,
442
- allowed_outputs=0),
457
+ PropertySpec(id="input", type="flow", name=trans("node.editor.property.input.name"), editable=False,
458
+ allowed_inputs=-1, allowed_outputs=0),
443
459
  ],
444
460
  ))
445
461
  return registry