pygpt-net 2.6.55__py3-none-any.whl → 2.6.56__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 +6 -0
- pygpt_net/__init__.py +3 -3
- pygpt_net/app.py +26 -22
- pygpt_net/controller/audio/audio.py +0 -0
- pygpt_net/controller/calendar/calendar.py +0 -0
- pygpt_net/controller/calendar/note.py +0 -0
- pygpt_net/controller/chat/chat.py +0 -0
- pygpt_net/controller/chat/handler/openai_stream.py +2 -1
- pygpt_net/controller/chat/handler/worker.py +0 -0
- pygpt_net/controller/chat/remote_tools.py +0 -0
- pygpt_net/controller/chat/render.py +0 -0
- pygpt_net/controller/chat/text.py +0 -0
- pygpt_net/controller/ctx/common.py +0 -0
- pygpt_net/controller/debug/debug.py +26 -2
- pygpt_net/controller/debug/fixtures.py +1 -1
- pygpt_net/controller/dialogs/confirm.py +15 -1
- pygpt_net/controller/dialogs/debug.py +2 -0
- pygpt_net/controller/lang/mapping.py +0 -0
- pygpt_net/controller/launcher/launcher.py +0 -0
- pygpt_net/controller/mode/mode.py +0 -0
- pygpt_net/controller/presets/presets.py +0 -0
- pygpt_net/controller/realtime/realtime.py +0 -0
- pygpt_net/controller/theme/theme.py +0 -0
- pygpt_net/controller/ui/mode.py +0 -0
- pygpt_net/controller/ui/tabs.py +0 -0
- pygpt_net/core/agents/agents.py +3 -1
- pygpt_net/core/agents/custom.py +150 -0
- pygpt_net/core/agents/provider.py +0 -0
- pygpt_net/core/builder/__init__.py +12 -0
- pygpt_net/core/builder/graph.py +478 -0
- pygpt_net/core/calendar/calendar.py +0 -0
- pygpt_net/core/ctx/ctx.py +0 -0
- pygpt_net/core/ctx/output.py +0 -0
- pygpt_net/core/debug/agent.py +0 -0
- pygpt_net/core/debug/agent_builder.py +29 -0
- pygpt_net/core/debug/console/console.py +0 -0
- pygpt_net/core/debug/db.py +0 -0
- pygpt_net/core/debug/debug.py +0 -0
- pygpt_net/core/debug/events.py +0 -0
- pygpt_net/core/debug/indexes.py +0 -0
- pygpt_net/core/debug/kernel.py +0 -0
- pygpt_net/core/debug/tabs.py +0 -0
- pygpt_net/core/filesystem/filesystem.py +0 -0
- pygpt_net/core/fixtures/__init__ +0 -0
- pygpt_net/core/fixtures/stream/__init__.py +0 -0
- pygpt_net/core/fixtures/stream/generator.py +0 -0
- pygpt_net/core/models/models.py +0 -0
- pygpt_net/core/render/plain/pid.py +0 -0
- pygpt_net/core/render/plain/renderer.py +26 -4
- pygpt_net/core/render/web/body.py +46 -4
- pygpt_net/core/render/web/debug.py +0 -0
- pygpt_net/core/render/web/helpers.py +0 -0
- pygpt_net/core/render/web/pid.py +0 -0
- pygpt_net/core/render/web/renderer.py +15 -20
- pygpt_net/core/tabs/tab.py +0 -0
- pygpt_net/core/tabs/tabs.py +0 -0
- pygpt_net/core/text/utils.py +0 -0
- pygpt_net/css.qrc +0 -0
- pygpt_net/css_rc.py +0 -0
- pygpt_net/data/config/config.json +7 -7
- pygpt_net/data/config/models.json +3 -3
- pygpt_net/data/css/web-blocks.css +9 -0
- pygpt_net/data/css/web-blocks.dark.css +6 -0
- pygpt_net/data/css/web-blocks.darkest.css +6 -0
- pygpt_net/data/css/web-chatgpt.css +14 -6
- pygpt_net/data/css/web-chatgpt.dark.css +6 -0
- pygpt_net/data/css/web-chatgpt.darkest.css +6 -0
- pygpt_net/data/css/web-chatgpt.light.css +6 -0
- pygpt_net/data/css/web-chatgpt_wide.css +14 -6
- pygpt_net/data/css/web-chatgpt_wide.dark.css +6 -0
- pygpt_net/data/css/web-chatgpt_wide.darkest.css +6 -0
- pygpt_net/data/css/web-chatgpt_wide.light.css +6 -0
- pygpt_net/data/fixtures/fake_stream.txt +14 -1
- pygpt_net/data/icons/case.svg +0 -0
- pygpt_net/data/icons/chat1.svg +0 -0
- pygpt_net/data/icons/chat2.svg +0 -0
- pygpt_net/data/icons/chat3.svg +0 -0
- pygpt_net/data/icons/chat4.svg +0 -0
- pygpt_net/data/icons/fit.svg +0 -0
- pygpt_net/data/icons/note1.svg +0 -0
- pygpt_net/data/icons/note2.svg +0 -0
- pygpt_net/data/icons/note3.svg +0 -0
- pygpt_net/data/icons/stt.svg +0 -0
- pygpt_net/data/icons/translate.svg +0 -0
- pygpt_net/data/icons/tts.svg +0 -0
- pygpt_net/data/icons/url.svg +0 -0
- pygpt_net/data/icons/vision.svg +0 -0
- pygpt_net/data/icons/web_off.svg +0 -0
- pygpt_net/data/icons/web_on.svg +0 -0
- pygpt_net/data/js/app/async.js +166 -0
- pygpt_net/data/js/app/bridge.js +88 -0
- pygpt_net/data/js/app/common.js +212 -0
- pygpt_net/data/js/app/config.js +223 -0
- pygpt_net/data/js/app/custom.js +961 -0
- pygpt_net/data/js/app/data.js +84 -0
- pygpt_net/data/js/app/dom.js +322 -0
- pygpt_net/data/js/app/events.js +400 -0
- pygpt_net/data/js/app/highlight.js +542 -0
- pygpt_net/data/js/app/logger.js +305 -0
- pygpt_net/data/js/app/markdown.js +1137 -0
- pygpt_net/data/js/app/math.js +167 -0
- pygpt_net/data/js/app/nodes.js +395 -0
- pygpt_net/data/js/app/queue.js +260 -0
- pygpt_net/data/js/app/raf.js +250 -0
- pygpt_net/data/js/app/runtime.js +582 -0
- pygpt_net/data/js/app/scroll.js +433 -0
- pygpt_net/data/js/app/stream.js +2708 -0
- pygpt_net/data/js/app/template.js +287 -0
- pygpt_net/data/js/app/tool.js +87 -0
- pygpt_net/data/js/app/ui.js +86 -0
- pygpt_net/data/js/app/user.js +380 -0
- pygpt_net/data/js/app/utils.js +64 -0
- pygpt_net/data/js/app.min.js +880 -0
- pygpt_net/data/js/markdown-it/markdown-it-katex.min.js +1 -1
- pygpt_net/data/js/markdown-it/markdown-it.min.js +0 -0
- pygpt_net/data/locale/locale.de.ini +0 -0
- pygpt_net/data/locale/locale.en.ini +7 -0
- pygpt_net/data/locale/locale.es.ini +0 -0
- pygpt_net/data/locale/locale.fr.ini +0 -0
- pygpt_net/data/locale/locale.it.ini +0 -0
- pygpt_net/data/locale/locale.pl.ini +0 -0
- pygpt_net/data/locale/locale.uk.ini +0 -0
- pygpt_net/data/locale/locale.zh.ini +0 -0
- pygpt_net/data/locale/plugin.agent.de.ini +0 -0
- pygpt_net/data/locale/plugin.agent.en.ini +0 -0
- pygpt_net/data/locale/plugin.agent.es.ini +0 -0
- pygpt_net/data/locale/plugin.agent.fr.ini +0 -0
- pygpt_net/data/locale/plugin.agent.it.ini +0 -0
- pygpt_net/data/locale/plugin.agent.pl.ini +0 -0
- pygpt_net/data/locale/plugin.agent.uk.ini +0 -0
- pygpt_net/data/locale/plugin.agent.zh.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.de.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.en.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.es.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.fr.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.it.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.pl.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.uk.ini +0 -0
- pygpt_net/data/locale/plugin.audio_input.zh.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.de.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.en.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.es.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.fr.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.it.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.pl.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.uk.ini +0 -0
- pygpt_net/data/locale/plugin.audio_output.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_api.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_code_interpreter.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_custom.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_files.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_history.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_mouse_control.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_serial.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_system.zh.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.de.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.en.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.es.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.fr.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.it.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.pl.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.uk.ini +0 -0
- pygpt_net/data/locale/plugin.cmd_web.zh.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.de.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.en.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.es.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.fr.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.it.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.pl.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.uk.ini +0 -0
- pygpt_net/data/locale/plugin.crontab.zh.ini +0 -0
- pygpt_net/data/locale/plugin.experts.de.ini +0 -0
- pygpt_net/data/locale/plugin.experts.en.ini +0 -0
- pygpt_net/data/locale/plugin.experts.es.ini +0 -0
- pygpt_net/data/locale/plugin.experts.fr.ini +0 -0
- pygpt_net/data/locale/plugin.experts.it.ini +0 -0
- pygpt_net/data/locale/plugin.experts.pl.ini +0 -0
- pygpt_net/data/locale/plugin.experts.uk.ini +0 -0
- pygpt_net/data/locale/plugin.experts.zh.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.de.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.en.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.es.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.fr.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.it.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.pl.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.uk.ini +0 -0
- pygpt_net/data/locale/plugin.extra_prompt.zh.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.de.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.en.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.es.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.fr.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.it.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.pl.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.uk.ini +0 -0
- pygpt_net/data/locale/plugin.idx_llama_index.zh.ini +0 -0
- pygpt_net/data/locale/plugin.mailer.en.ini +0 -0
- pygpt_net/data/locale/plugin.mcp.en.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.de.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.en.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.es.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.fr.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.it.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.pl.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.uk.ini +0 -0
- pygpt_net/data/locale/plugin.openai_dalle.zh.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.de.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.en.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.es.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.fr.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.it.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.pl.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.uk.ini +0 -0
- pygpt_net/data/locale/plugin.openai_vision.zh.ini +0 -0
- pygpt_net/data/locale/plugin.osm.en.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.de.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.en.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.es.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.fr.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.it.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.pl.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.uk.ini +0 -0
- pygpt_net/data/locale/plugin.real_time.zh.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.de.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.en.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.es.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.fr.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.it.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.pl.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.uk.ini +0 -0
- pygpt_net/data/locale/plugin.voice_control.zh.ini +0 -0
- pygpt_net/data/locale/plugin.wolfram.en.ini +0 -0
- pygpt_net/fonts.qrc +0 -0
- pygpt_net/fonts_rc.py +0 -0
- pygpt_net/icons.qrc +0 -0
- pygpt_net/icons_rc.py +0 -0
- pygpt_net/item/agent.py +62 -0
- pygpt_net/item/builder_layout.py +62 -0
- pygpt_net/js.qrc +24 -1
- pygpt_net/js_rc.py +51394 -33687
- pygpt_net/plugin/base/worker.py +0 -0
- pygpt_net/plugin/mcp/__init__.py +0 -0
- pygpt_net/plugin/mcp/config.py +0 -0
- pygpt_net/plugin/mcp/plugin.py +0 -0
- pygpt_net/plugin/mcp/worker.py +0 -0
- pygpt_net/plugin/osm/__init__.py +0 -0
- pygpt_net/plugin/osm/config.py +0 -0
- pygpt_net/plugin/osm/plugin.py +0 -0
- pygpt_net/plugin/osm/worker.py +0 -0
- pygpt_net/plugin/wolfram/__init__.py +0 -0
- pygpt_net/plugin/wolfram/config.py +0 -0
- pygpt_net/plugin/wolfram/plugin.py +0 -0
- pygpt_net/plugin/wolfram/worker.py +0 -0
- pygpt_net/provider/api/anthropic/tools.py +0 -0
- pygpt_net/provider/api/google/__init__.py +0 -0
- pygpt_net/provider/api/google/video.py +0 -0
- pygpt_net/provider/api/openai/agents/experts.py +0 -0
- pygpt_net/provider/api/openai/agents/remote_tools.py +0 -0
- pygpt_net/provider/api/openai/remote_tools.py +0 -0
- pygpt_net/provider/api/openai/responses.py +0 -0
- pygpt_net/provider/api/x_ai/__init__.py +0 -0
- pygpt_net/provider/api/x_ai/remote.py +0 -0
- pygpt_net/provider/core/agent/__init__.py +10 -0
- pygpt_net/provider/core/agent/base.py +51 -0
- pygpt_net/provider/core/agent/json_file.py +200 -0
- pygpt_net/provider/core/config/patch.py +18 -0
- pygpt_net/provider/core/config/patches/__init__.py +0 -0
- pygpt_net/provider/core/config/patches/patch_before_2_6_42.py +0 -0
- pygpt_net/provider/core/ctx/db_sqlite/storage.py +0 -0
- pygpt_net/provider/core/model/patches/__init__.py +0 -0
- pygpt_net/provider/core/model/patches/patch_before_2_6_42.py +0 -0
- pygpt_net/provider/core/preset/patch.py +0 -0
- pygpt_net/provider/core/preset/patches/__init__.py +0 -0
- pygpt_net/provider/core/preset/patches/patch_before_2_6_42.py +0 -0
- pygpt_net/provider/llms/base.py +0 -0
- pygpt_net/provider/llms/deepseek_api.py +0 -0
- pygpt_net/provider/llms/google.py +0 -0
- pygpt_net/provider/llms/hugging_face_api.py +0 -0
- pygpt_net/provider/llms/hugging_face_embedding.py +0 -0
- pygpt_net/provider/llms/hugging_face_router.py +0 -0
- pygpt_net/provider/llms/local.py +0 -0
- pygpt_net/provider/llms/mistral.py +0 -0
- pygpt_net/provider/llms/open_router.py +0 -0
- pygpt_net/provider/llms/perplexity.py +0 -0
- pygpt_net/provider/llms/utils.py +0 -0
- pygpt_net/provider/llms/voyage.py +0 -0
- pygpt_net/provider/llms/x_ai.py +0 -0
- pygpt_net/tools/agent_builder/__init__.py +12 -0
- pygpt_net/tools/agent_builder/tool.py +292 -0
- pygpt_net/tools/agent_builder/ui/__init__.py +0 -0
- pygpt_net/tools/agent_builder/ui/dialogs.py +152 -0
- pygpt_net/tools/agent_builder/ui/list.py +228 -0
- pygpt_net/tools/code_interpreter/ui/html.py +0 -0
- pygpt_net/tools/code_interpreter/ui/widgets.py +0 -0
- pygpt_net/tools/html_canvas/tool.py +23 -6
- pygpt_net/tools/html_canvas/ui/widgets.py +224 -2
- pygpt_net/ui/layout/chat/chat.py +0 -0
- pygpt_net/ui/main.py +10 -9
- pygpt_net/ui/menu/debug.py +39 -1
- pygpt_net/ui/widget/builder/__init__.py +12 -0
- pygpt_net/ui/widget/builder/editor.py +2001 -0
- pygpt_net/ui/widget/draw/painter.py +0 -0
- pygpt_net/ui/widget/element/labels.py +9 -4
- pygpt_net/ui/widget/lists/db.py +0 -0
- pygpt_net/ui/widget/lists/debug.py +0 -0
- pygpt_net/ui/widget/tabs/body.py +0 -0
- pygpt_net/ui/widget/textarea/input.py +9 -7
- pygpt_net/ui/widget/textarea/output.py +21 -1
- pygpt_net/ui/widget/textarea/web.py +29 -2
- pygpt_net/utils.py +40 -0
- {pygpt_net-2.6.55.dist-info → pygpt_net-2.6.56.dist-info}/METADATA +8 -2
- {pygpt_net-2.6.55.dist-info → pygpt_net-2.6.56.dist-info}/RECORD +85 -46
- pygpt_net/data/js/app.js +0 -5869
- {pygpt_net-2.6.55.dist-info → pygpt_net-2.6.56.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.55.dist-info → pygpt_net-2.6.56.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.55.dist-info → pygpt_net-2.6.56.dist-info}/entry_points.txt +0 -0
|
@@ -72,12 +72,40 @@ class Body:
|
|
|
72
72
|
// tips
|
|
73
73
|
"""
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
</script>
|
|
77
|
-
<script type="text/javascript" src="qrc:///js/app.js"></script>
|
|
75
|
+
_HTML_P6_DEV = """
|
|
76
|
+
</script>
|
|
77
|
+
<script type="text/javascript" src="qrc:///js/app-async.js"></script>
|
|
78
|
+
<script type="text/javascript" src="qrc:///js/app-bridge.js"></script>
|
|
79
|
+
<script type="text/javascript" src="qrc:///js/app-common.js"></script>
|
|
80
|
+
<script type="text/javascript" src="qrc:///js/app-config.js"></script>
|
|
81
|
+
<script type="text/javascript" src="qrc:///js/app-custom.js"></script>
|
|
82
|
+
<script type="text/javascript" src="qrc:///js/app-data.js"></script>
|
|
83
|
+
<script type="text/javascript" src="qrc:///js/app-dom.js"></script>
|
|
84
|
+
<script type="text/javascript" src="qrc:///js/app-events.js"></script>
|
|
85
|
+
<script type="text/javascript" src="qrc:///js/app-highlight.js"></script>
|
|
86
|
+
<script type="text/javascript" src="qrc:///js/app-logger.js"></script>
|
|
87
|
+
<script type="text/javascript" src="qrc:///js/app-markdown.js"></script>
|
|
88
|
+
<script type="text/javascript" src="qrc:///js/app-math.js"></script>
|
|
89
|
+
<script type="text/javascript" src="qrc:///js/app-nodes.js"></script>
|
|
90
|
+
<script type="text/javascript" src="qrc:///js/app-raf.js"></script>
|
|
91
|
+
<script type="text/javascript" src="qrc:///js/app-scroll.js"></script>
|
|
92
|
+
<script type="text/javascript" src="qrc:///js/app-stream.js"></script>
|
|
93
|
+
<script type="text/javascript" src="qrc:///js/app-queue.js"></script>
|
|
94
|
+
<script type="text/javascript" src="qrc:///js/app-template.js"></script>
|
|
95
|
+
<script type="text/javascript" src="qrc:///js/app-tool.js"></script>
|
|
96
|
+
<script type="text/javascript" src="qrc:///js/app-ui.js"></script>
|
|
97
|
+
<script type="text/javascript" src="qrc:///js/app-user.js"></script>
|
|
98
|
+
<script type="text/javascript" src="qrc:///js/app-utils.js"></script>
|
|
99
|
+
<script type="text/javascript" src="qrc:///js/app-runtime.js"></script>
|
|
78
100
|
</head>
|
|
79
101
|
<body """
|
|
80
102
|
|
|
103
|
+
_HTML_P6_PROD = """
|
|
104
|
+
</script>
|
|
105
|
+
<script type="text/javascript" src="qrc:///js/app.min.js"></script>
|
|
106
|
+
</head>
|
|
107
|
+
<body """
|
|
108
|
+
|
|
81
109
|
_HTML_P7 = """>
|
|
82
110
|
<div id="container">
|
|
83
111
|
<div id="_nodes_" class="nodes empty_list"></div>
|
|
@@ -205,6 +233,16 @@ class Body:
|
|
|
205
233
|
.msg {
|
|
206
234
|
text-rendering: optimizeSpeed;
|
|
207
235
|
}
|
|
236
|
+
pre > code,
|
|
237
|
+
.hl-tail,
|
|
238
|
+
.hl-frozen {
|
|
239
|
+
contain: layout paint;
|
|
240
|
+
content-visibility: auto;
|
|
241
|
+
backface-visibility: hidden;
|
|
242
|
+
contain-intrinsic-size: 1px 600px;
|
|
243
|
+
transform: translateZ(0);
|
|
244
|
+
filter: none !important;
|
|
245
|
+
}
|
|
208
246
|
"""
|
|
209
247
|
|
|
210
248
|
def __init__(self, window=None):
|
|
@@ -681,6 +719,8 @@ class Body:
|
|
|
681
719
|
attach_path = os.path.join(app_path, "data", "icons", "attachments.svg").replace("\\", "/")
|
|
682
720
|
db_path = os.path.join(app_path, "data", "icons", "db.svg").replace("\\", "/")
|
|
683
721
|
|
|
722
|
+
done_path = os.path.join(app_path, "data", "icons", "done.svg").replace("\\", "/")
|
|
723
|
+
|
|
684
724
|
icons_js = (
|
|
685
725
|
f'window.ICON_EXPAND="file://{expand_path}";'
|
|
686
726
|
f'window.ICON_COLLAPSE="file://{collapse_path}";'
|
|
@@ -691,6 +731,7 @@ class Body:
|
|
|
691
731
|
f'window.ICON_URL="file://{url_path}";'
|
|
692
732
|
f'window.ICON_ATTACHMENTS="file://{attach_path}";'
|
|
693
733
|
f'window.ICON_DB="file://{db_path}";'
|
|
734
|
+
f'window.ICON_DONE="file://{done_path}";'
|
|
694
735
|
)
|
|
695
736
|
|
|
696
737
|
t_copy = trans('ctx.extra.copy_code')
|
|
@@ -724,6 +765,7 @@ class Body:
|
|
|
724
765
|
)
|
|
725
766
|
|
|
726
767
|
tips_js = f'window.TIPS={tips_json};'
|
|
768
|
+
app_env = os.environ.get("PYGPT_APP_ENV", "prod").lower()
|
|
727
769
|
|
|
728
770
|
return ''.join((
|
|
729
771
|
self._HTML_P0,
|
|
@@ -738,7 +780,7 @@ class Body:
|
|
|
738
780
|
style_js,
|
|
739
781
|
self._HTML_P5,
|
|
740
782
|
tips_js,
|
|
741
|
-
self.
|
|
783
|
+
self._HTML_P6_DEV if app_env == "dev" else self._HTML_P6_PROD,
|
|
742
784
|
classes_str,
|
|
743
785
|
self._HTML_P7,
|
|
744
786
|
))
|
|
File without changes
|
|
File without changes
|
pygpt_net/core/render/web/pid.py
CHANGED
|
File without changes
|
|
@@ -182,6 +182,7 @@ class Renderer(BaseRenderer):
|
|
|
182
182
|
self._stream_timer: dict[int, QTimer] = {}
|
|
183
183
|
self._stream_header: dict[int, str] = {}
|
|
184
184
|
self._stream_last_flush: dict[int, float] = {}
|
|
185
|
+
self._stream_last_cleanup: float = 0.0
|
|
185
186
|
|
|
186
187
|
# Pid-related cached methods
|
|
187
188
|
self._get_pid = None
|
|
@@ -496,6 +497,7 @@ class Renderer(BaseRenderer):
|
|
|
496
497
|
Soft cleanup, called after each context is done.
|
|
497
498
|
"""
|
|
498
499
|
try:
|
|
500
|
+
gc.collect()
|
|
499
501
|
malloc_trim_linux()
|
|
500
502
|
except Exception:
|
|
501
503
|
pass
|
|
@@ -1248,7 +1250,10 @@ class Renderer(BaseRenderer):
|
|
|
1248
1250
|
html = self.body.get_html(pid)
|
|
1249
1251
|
node = self.get_output_node_by_pid(pid)
|
|
1250
1252
|
if node is not None:
|
|
1251
|
-
|
|
1253
|
+
try:
|
|
1254
|
+
node.setHtml(html, baseUrl="file://")
|
|
1255
|
+
except Exception as e:
|
|
1256
|
+
print("[Renderer] flush error:", e)
|
|
1252
1257
|
|
|
1253
1258
|
def fresh(self, meta: Optional[CtxMeta] = None, force: bool = False):
|
|
1254
1259
|
"""
|
|
@@ -1319,7 +1324,7 @@ class Renderer(BaseRenderer):
|
|
|
1319
1324
|
:return: output node or None
|
|
1320
1325
|
"""
|
|
1321
1326
|
if self._get_output_node_by_meta is None:
|
|
1322
|
-
self._get_output_node_by_meta = self.window.core.ctx.output.
|
|
1327
|
+
self._get_output_node_by_meta = self.window.core.ctx.output.get_current
|
|
1323
1328
|
return self._get_output_node_by_meta(meta)
|
|
1324
1329
|
|
|
1325
1330
|
def get_output_node_by_pid(self, pid: Optional[int]) -> Optional[ChatWebOutput]:
|
|
@@ -1330,7 +1335,7 @@ class Renderer(BaseRenderer):
|
|
|
1330
1335
|
:return: output node or None
|
|
1331
1336
|
"""
|
|
1332
1337
|
if self._get_output_node_by_pid is None:
|
|
1333
|
-
self._get_output_node_by_pid = self.window.core.ctx.output.
|
|
1338
|
+
self._get_output_node_by_pid = self.window.core.ctx.output.get_by_pid
|
|
1334
1339
|
return self._get_output_node_by_pid(pid)
|
|
1335
1340
|
|
|
1336
1341
|
def get_input_node(self) -> ChatInput:
|
|
@@ -1861,29 +1866,19 @@ class Renderer(BaseRenderer):
|
|
|
1861
1866
|
data = buf.get_and_clear()
|
|
1862
1867
|
name = self._stream_header.get(pid, "") or ""
|
|
1863
1868
|
|
|
1864
|
-
|
|
1865
|
-
br = getattr(node.page(), "bridge", None)
|
|
1866
|
-
if br is not None and hasattr(br, "chunk"):
|
|
1867
|
-
br.chunk.emit(name, data, "text_delta")
|
|
1868
|
-
else:
|
|
1869
|
-
node.page().runJavaScript(
|
|
1870
|
-
f"if (typeof window.appendStream !== 'undefined') appendStream({self.to_json(name)},{self.to_json(data)});"
|
|
1871
|
-
)
|
|
1872
|
-
except Exception:
|
|
1873
|
-
try:
|
|
1874
|
-
node.page().runJavaScript(
|
|
1875
|
-
f"if (typeof window.appendStream !== 'undefined') appendStream({self.to_json(name)},{self.to_json(data)});"
|
|
1876
|
-
)
|
|
1877
|
-
except Exception:
|
|
1878
|
-
pass
|
|
1869
|
+
node.page().bridge.chunk.emit(name, data, "text_delta")
|
|
1879
1870
|
|
|
1880
1871
|
try:
|
|
1881
|
-
|
|
1872
|
+
del data
|
|
1873
|
+
# auto GC cleanup after some time
|
|
1874
|
+
now = monotonic()
|
|
1875
|
+
last = self._stream_last_cleanup
|
|
1876
|
+
if now - last > 120.0:
|
|
1882
1877
|
self.auto_cleanup_soft()
|
|
1878
|
+
self._stream_last_cleanup = now
|
|
1883
1879
|
except Exception:
|
|
1884
1880
|
pass
|
|
1885
1881
|
|
|
1886
|
-
del data
|
|
1887
1882
|
self._stream_last_flush[pid] = monotonic()
|
|
1888
1883
|
|
|
1889
1884
|
def eval_js(self, script: str):
|
pygpt_net/core/tabs/tab.py
CHANGED
|
File without changes
|
pygpt_net/core/tabs/tabs.py
CHANGED
|
File without changes
|
pygpt_net/core/text/utils.py
CHANGED
|
File without changes
|
pygpt_net/css.qrc
CHANGED
|
File without changes
|
pygpt_net/css_rc.py
CHANGED
|
File without changes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-09-
|
|
3
|
+
"version": "2.6.56",
|
|
4
|
+
"app.version": "2.6.56",
|
|
5
|
+
"updated_at": "2025-09-22T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"access.audio.event.speech": false,
|
|
8
8
|
"access.audio.event.speech.disabled": [],
|
|
@@ -433,14 +433,14 @@
|
|
|
433
433
|
"render.code_syntax": "github-dark",
|
|
434
434
|
"render.code_syntax.disabled": false,
|
|
435
435
|
"render.code_syntax.final_max_chars": 350000,
|
|
436
|
-
"render.code_syntax.final_max_lines":
|
|
437
|
-
"render.code_syntax.stream_max_lines":
|
|
438
|
-
"render.code_syntax.stream_n_line":
|
|
436
|
+
"render.code_syntax.final_max_lines": 3000,
|
|
437
|
+
"render.code_syntax.stream_max_lines": 100,
|
|
438
|
+
"render.code_syntax.stream_n_line": 5,
|
|
439
439
|
"render.code_syntax.stream_n_chars": 1000,
|
|
440
440
|
"render.engine": "web",
|
|
441
441
|
"render.memory.limit": "2.5GB",
|
|
442
442
|
"render.msg.user.collapse.px": 1500,
|
|
443
|
-
"render.open_gl":
|
|
443
|
+
"render.open_gl": true,
|
|
444
444
|
"render.plain": false,
|
|
445
445
|
"send_clear": true,
|
|
446
446
|
"send_mode": 2,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"__meta__": {
|
|
3
|
-
"version": "2.6.
|
|
4
|
-
"app.version": "2.6.
|
|
5
|
-
"updated_at": "2025-09-
|
|
3
|
+
"version": "2.6.56",
|
|
4
|
+
"app.version": "2.6.56",
|
|
5
|
+
"updated_at": "2025-09-22T00:00:00"
|
|
6
6
|
},
|
|
7
7
|
"items": {
|
|
8
8
|
"SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
|
|
@@ -124,6 +124,14 @@ think {{
|
|
|
124
124
|
.code-header-copy:hover img {{
|
|
125
125
|
filter: brightness(130%);
|
|
126
126
|
}}
|
|
127
|
+
.code-header-preview span {{
|
|
128
|
+
padding-left: 6px;
|
|
129
|
+
padding-right: 2px;
|
|
130
|
+
}}
|
|
131
|
+
.code-header-run span {{
|
|
132
|
+
padding-left: 2px;
|
|
133
|
+
padding-right: 2px;
|
|
134
|
+
}}
|
|
127
135
|
.code-wrapper {{
|
|
128
136
|
padding: 0px;
|
|
129
137
|
margin: 0px;
|
|
@@ -150,6 +158,7 @@ think {{
|
|
|
150
158
|
}}
|
|
151
159
|
.action-icons a {{
|
|
152
160
|
text-decoration: none;
|
|
161
|
+
transition: filter 0.3s ease;
|
|
153
162
|
}}
|
|
154
163
|
.action-icons a:hover {{
|
|
155
164
|
filter: brightness(120%);
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -43,8 +43,8 @@ a:hover {{
|
|
|
43
43
|
text-decoration: underline;
|
|
44
44
|
}}
|
|
45
45
|
p {{
|
|
46
|
-
margin-top:
|
|
47
|
-
margin-bottom:
|
|
46
|
+
margin-top: 0.5rem;
|
|
47
|
+
margin-bottom: 0.5rem;
|
|
48
48
|
}}
|
|
49
49
|
|
|
50
50
|
/* lists, code */
|
|
@@ -99,7 +99,7 @@ think {{
|
|
|
99
99
|
-moz-border-radius-topleft: .25rem;
|
|
100
100
|
-moz-border-radius-topright: .25rem;
|
|
101
101
|
border-top-left-radius: .25rem;
|
|
102
|
-
border-top-right-radius:
|
|
102
|
+
border-top-right-radius: 0;
|
|
103
103
|
}}
|
|
104
104
|
.code-header {{
|
|
105
105
|
text-align: right;
|
|
@@ -122,22 +122,29 @@ think {{
|
|
|
122
122
|
vertical-align: middle;
|
|
123
123
|
padding-left: 5px;
|
|
124
124
|
padding-right: 5px;
|
|
125
|
+
margin-top: -3px;
|
|
125
126
|
}}
|
|
126
127
|
.code-header-action span {{
|
|
127
128
|
font-family: "Lato" !important;
|
|
128
129
|
}}
|
|
129
130
|
.code-header-action img {{
|
|
130
131
|
vertical-align: middle;
|
|
131
|
-
padding-right: 5px;
|
|
132
|
-
padding-bottom: 3px;
|
|
133
132
|
}}
|
|
134
|
-
.code-header-action:hover
|
|
133
|
+
.code-header-action:hover {{
|
|
135
134
|
text-decoration: none;
|
|
136
135
|
cursor: pointer;
|
|
137
136
|
}}
|
|
138
137
|
.code-header-action:hover img {{
|
|
139
138
|
filter: brightness(130%);
|
|
140
139
|
}}
|
|
140
|
+
.code-header-preview span {{
|
|
141
|
+
padding-left: 6px;
|
|
142
|
+
padding-right: 2px;
|
|
143
|
+
}}
|
|
144
|
+
.code-header-run span {{
|
|
145
|
+
padding-left: 2px;
|
|
146
|
+
padding-right: 2px;
|
|
147
|
+
}}
|
|
141
148
|
.code-wrapper {{
|
|
142
149
|
padding: 0px;
|
|
143
150
|
margin: 0px;
|
|
@@ -167,6 +174,7 @@ think {{
|
|
|
167
174
|
}}
|
|
168
175
|
.action-icons a {{
|
|
169
176
|
text-decoration: none;
|
|
177
|
+
transition: filter 0.3s ease;
|
|
170
178
|
}}
|
|
171
179
|
.action-icons a:hover {{
|
|
172
180
|
filter: brightness(120%);
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -66,6 +66,12 @@ code {{
|
|
|
66
66
|
.code-header-lang {{
|
|
67
67
|
color: #5c5c5c;
|
|
68
68
|
}}
|
|
69
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
70
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
71
|
+
transform: scale(1.06);
|
|
72
|
+
background: var(--copy-btn-bg-hover, rgb(225 225 225 / 76%));
|
|
73
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
74
|
+
}}
|
|
69
75
|
.msg-user {{
|
|
70
76
|
background-color: #f3f3f3;
|
|
71
77
|
color: #000;
|
|
@@ -43,8 +43,8 @@ a:hover {{
|
|
|
43
43
|
text-decoration: underline;
|
|
44
44
|
}}
|
|
45
45
|
p {{
|
|
46
|
-
margin-top:
|
|
47
|
-
margin-bottom:
|
|
46
|
+
margin-top: 0.5rem;
|
|
47
|
+
margin-bottom: 0.5rem;
|
|
48
48
|
}}
|
|
49
49
|
/* lists, code */
|
|
50
50
|
ol,
|
|
@@ -101,7 +101,7 @@ think {{
|
|
|
101
101
|
-moz-border-radius-topleft: .25rem;
|
|
102
102
|
-moz-border-radius-topright: .25rem;
|
|
103
103
|
border-top-left-radius: .25rem;
|
|
104
|
-
border-top-right-radius:
|
|
104
|
+
border-top-right-radius: 0;
|
|
105
105
|
}}
|
|
106
106
|
.code-header {{
|
|
107
107
|
text-align: right;
|
|
@@ -124,19 +124,26 @@ think {{
|
|
|
124
124
|
vertical-align: middle;
|
|
125
125
|
padding-left: 5px;
|
|
126
126
|
padding-right: 5px;
|
|
127
|
+
margin-top: -3px;
|
|
127
128
|
}}
|
|
128
129
|
.code-header-action img {{
|
|
129
130
|
vertical-align: middle;
|
|
130
|
-
padding-right: 5px;
|
|
131
|
-
padding-bottom: 3px;
|
|
132
131
|
}}
|
|
133
|
-
.code-header-action:hover
|
|
132
|
+
.code-header-action:hover {{
|
|
134
133
|
text-decoration: none;
|
|
135
134
|
cursor: pointer;
|
|
136
135
|
}}
|
|
137
136
|
.code-header-action:hover img {{
|
|
138
137
|
filter: brightness(130%);
|
|
139
138
|
}}
|
|
139
|
+
.code-header-preview span {{
|
|
140
|
+
padding-left: 6px;
|
|
141
|
+
padding-right: 2px;
|
|
142
|
+
}}
|
|
143
|
+
.code-header-run span {{
|
|
144
|
+
padding-left: 2px;
|
|
145
|
+
padding-right: 2px;
|
|
146
|
+
}}
|
|
140
147
|
.code-wrapper {{
|
|
141
148
|
padding: 0px;
|
|
142
149
|
margin: 0px;
|
|
@@ -166,6 +173,7 @@ think {{
|
|
|
166
173
|
}}
|
|
167
174
|
.action-icons a {{
|
|
168
175
|
text-decoration: none;
|
|
176
|
+
transition: filter 0.3s ease;
|
|
169
177
|
}}
|
|
170
178
|
.action-icons a:hover {{
|
|
171
179
|
filter: brightness(120%);
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -65,6 +65,12 @@ code {{
|
|
|
65
65
|
.code-header-lang {{
|
|
66
66
|
color: #686868;
|
|
67
67
|
}}
|
|
68
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
69
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
70
|
+
transform: scale(1.06);
|
|
71
|
+
background: var(--copy-btn-bg-hover, rgb(0 0 0 / 76%));
|
|
72
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
73
|
+
}}
|
|
68
74
|
.action-icons a:hover {{
|
|
69
75
|
filter: brightness(130%);
|
|
70
76
|
}}
|
|
@@ -67,6 +67,12 @@ code {{
|
|
|
67
67
|
.code-header-lang {{
|
|
68
68
|
color: #5c5c5c;
|
|
69
69
|
}}
|
|
70
|
+
.code-wrapper .code-header-action.code-header-copy:hover,
|
|
71
|
+
.code-wrapper .code-header-action.code-header-collapse:hover {{
|
|
72
|
+
transform: scale(1.06);
|
|
73
|
+
background: var(--copy-btn-bg-hover, rgb(225 225 225 / 76%));
|
|
74
|
+
border-color: var(--copy-btn-border, rgba(0, 0, 0, .08));
|
|
75
|
+
}}
|
|
70
76
|
.name-bot::before {{
|
|
71
77
|
background-color: #6b6b6b;
|
|
72
78
|
}}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent lobortis lorem sapien, eu viverra tellus auctor nec. Nulla aliquet iaculis tellus, in tempus massa eleifend a. Vestibulum viverra, massa nec aliquet ultrices, felis libero eleifend est, eu elementum sapien libero vitae lectus. Quisque rhoncus mollis felis, sed finibus ex pharetra ultricies. Praesent viverra nulla id congue ullamcorper.
|
|
2
2
|
|
|
3
|
+
# Header 1
|
|
4
|
+
|
|
5
|
+
## Header 2
|
|
6
|
+
|
|
7
|
+
**Lorem** ipsum.
|
|
8
|
+
|
|
9
|
+
- list1
|
|
10
|
+
- list2
|
|
11
|
+
- list3
|
|
12
|
+
|
|
13
|
+
`var a = 1;`
|
|
14
|
+
|
|
3
15
|
<think>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent lobortis lorem sapien, eu viverra tellus auctor nec. Nulla aliquet iaculis tellus, in tempus massa eleifend a. Vestibulum viverra, massa nec aliquet ultrices, felis libero eleifend est, eu elementum sapien libero vitae lectus. Quisque rhoncus mollis felis, sed finibus ex pharetra ultricies. Praesent viverra nulla id congue ullamcorper.</think>
|
|
4
16
|
|
|
5
|
-
<execute>
|
|
17
|
+
<execute>
|
|
18
|
+
a = 1
|
|
6
19
|
b = 2
|
|
7
20
|
c = a + b
|
|
8
21
|
print(c)
|
pygpt_net/data/icons/case.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/chat1.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/chat2.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/chat3.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/chat4.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/fit.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/note1.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/note2.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/note3.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/stt.svg
CHANGED
|
File without changes
|
|
File without changes
|
pygpt_net/data/icons/tts.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/url.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/vision.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/web_off.svg
CHANGED
|
File without changes
|
pygpt_net/data/icons/web_on.svg
CHANGED
|
File without changes
|