pygpt-net 2.6.63__py3-none-any.whl → 2.6.64__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 +1 -1
- pygpt_net/controller/attachment/attachment.py +17 -8
- pygpt_net/controller/camera/camera.py +4 -4
- pygpt_net/controller/lang/custom.py +2 -2
- pygpt_net/controller/ui/mode.py +18 -3
- pygpt_net/core/render/web/renderer.py +11 -0
- pygpt_net/data/config/config.json +2 -2
- pygpt_net/data/config/models.json +2 -2
- pygpt_net/data/config/presets/agent_openai_coder.json +15 -1
- pygpt_net/data/js/app/runtime.js +11 -4
- pygpt_net/data/js/app/scroll.js +14 -0
- pygpt_net/data/js/app.min.js +7 -6
- pygpt_net/data/locale/locale.de.ini +32 -0
- pygpt_net/data/locale/locale.en.ini +34 -2
- pygpt_net/data/locale/locale.es.ini +32 -0
- pygpt_net/data/locale/locale.fr.ini +32 -0
- pygpt_net/data/locale/locale.it.ini +32 -0
- pygpt_net/data/locale/locale.pl.ini +34 -2
- pygpt_net/data/locale/locale.uk.ini +32 -0
- pygpt_net/data/locale/locale.zh.ini +32 -0
- pygpt_net/js_rc.py +7574 -7505
- pygpt_net/provider/agents/llama_index/planner_workflow.py +15 -3
- pygpt_net/provider/agents/llama_index/workflow/planner.py +69 -41
- pygpt_net/provider/agents/openai/agent_planner.py +57 -35
- pygpt_net/provider/agents/openai/evolve.py +0 -3
- pygpt_net/provider/api/google/__init__.py +9 -3
- pygpt_net/provider/api/google/image.py +11 -1
- pygpt_net/provider/api/google/music.py +375 -0
- pygpt_net/ui/widget/option/combo.py +149 -11
- pygpt_net/ui/widget/textarea/web.py +1 -1
- pygpt_net/ui/widget/vision/camera.py +135 -12
- {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.64.dist-info}/METADATA +8 -2
- {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.64.dist-info}/RECORD +37 -36
- {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.64.dist-info}/LICENSE +0 -0
- {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.64.dist-info}/WHEEL +0 -0
- {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.64.dist-info}/entry_points.txt +0 -0
pygpt_net/CHANGELOG.txt
CHANGED
pygpt_net/__init__.py
CHANGED
|
@@ -13,7 +13,7 @@ __author__ = "Marcin Szczygliński"
|
|
|
13
13
|
__copyright__ = "Copyright 2025, Marcin Szczygliński"
|
|
14
14
|
__credits__ = ["Marcin Szczygliński"]
|
|
15
15
|
__license__ = "MIT"
|
|
16
|
-
__version__ = "2.6.
|
|
16
|
+
__version__ = "2.6.64"
|
|
17
17
|
__build__ = "2025-09-27"
|
|
18
18
|
__maintainer__ = "Marcin Szczygliński"
|
|
19
19
|
__github__ = "https://github.com/szczyglis-dev/py-gpt"
|
|
@@ -579,19 +579,28 @@ class Attachment:
|
|
|
579
579
|
if not os.path.exists(url):
|
|
580
580
|
return
|
|
581
581
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
582
|
+
is_image = False
|
|
583
|
+
image_ext = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff']
|
|
584
|
+
ext = os.path.splitext(url)[1].lower()
|
|
585
|
+
if ext in image_ext:
|
|
586
|
+
is_image = True
|
|
587
|
+
|
|
588
|
+
if not all and not is_image:
|
|
589
|
+
return
|
|
590
|
+
|
|
591
|
+
if is_image:
|
|
592
|
+
title = "attachments.paste.img"
|
|
593
|
+
status = "painter.capture.manual.captured.success"
|
|
594
|
+
else:
|
|
595
|
+
title = "attachments.paste.file"
|
|
596
|
+
status = "attachments.paste.success"
|
|
587
597
|
|
|
588
598
|
mode = self.window.core.config.get('mode')
|
|
589
|
-
title
|
|
590
|
-
self.window.core.attachments.new(mode, title, url, False)
|
|
599
|
+
self.window.core.attachments.new(mode, trans(title), url, False)
|
|
591
600
|
self.window.core.attachments.save()
|
|
592
601
|
self.window.controller.attachment.update()
|
|
593
602
|
event = KernelEvent(KernelEvent.STATUS, {
|
|
594
|
-
'status': trans(
|
|
603
|
+
'status': trans(status) + ' ' + os.path.basename(url),
|
|
595
604
|
})
|
|
596
605
|
self.window.dispatch(event)
|
|
597
606
|
|
|
@@ -67,9 +67,9 @@ class Camera(QObject):
|
|
|
67
67
|
|
|
68
68
|
# update label
|
|
69
69
|
if not self.window.core.config.get('vision.capture.auto'):
|
|
70
|
-
self.window.ui.nodes['video.preview'].
|
|
70
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.label"))
|
|
71
71
|
else:
|
|
72
|
-
self.window.ui.nodes['video.preview'].
|
|
72
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.auto.label"))
|
|
73
73
|
|
|
74
74
|
def update(self):
|
|
75
75
|
"""Update camera frame"""
|
|
@@ -381,7 +381,7 @@ class Camera(QObject):
|
|
|
381
381
|
{'value': True}
|
|
382
382
|
)
|
|
383
383
|
"""
|
|
384
|
-
self.window.ui.nodes['video.preview'].
|
|
384
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.auto.label"))
|
|
385
385
|
|
|
386
386
|
if not self.window.core.config.get('vision.capture.enabled'):
|
|
387
387
|
self.enable_capture()
|
|
@@ -403,7 +403,7 @@ class Camera(QObject):
|
|
|
403
403
|
{'value': False}
|
|
404
404
|
)
|
|
405
405
|
"""
|
|
406
|
-
self.window.ui.nodes['video.preview'].
|
|
406
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.label"))
|
|
407
407
|
|
|
408
408
|
def toggle_auto(self, state: bool):
|
|
409
409
|
"""
|
|
@@ -68,9 +68,9 @@ class Custom:
|
|
|
68
68
|
|
|
69
69
|
# camera capture
|
|
70
70
|
if not self.window.core.config.get('vision.capture.auto'):
|
|
71
|
-
self.window.ui.nodes['video.preview'].
|
|
71
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.label"))
|
|
72
72
|
else:
|
|
73
|
-
self.window.ui.nodes['video.preview'].
|
|
73
|
+
self.window.ui.nodes['video.preview'].video.setToolTip(trans("vision.capture.auto.label"))
|
|
74
74
|
|
|
75
75
|
# files / indexes
|
|
76
76
|
self.window.ui.nodes['output_files'].btn_upload.setText(trans('files.local.upload'))
|
pygpt_net/controller/ui/mode.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# GitHub: https://github.com/szczyglis-dev/py-gpt #
|
|
7
7
|
# MIT License #
|
|
8
8
|
# Created By : Marcin Szczygliński #
|
|
9
|
-
# Updated Date: 2025.09.
|
|
9
|
+
# Updated Date: 2025.09.27 15:00:00 #
|
|
10
10
|
# ================================================== #
|
|
11
11
|
|
|
12
12
|
from pygpt_net.core.types import (
|
|
@@ -58,6 +58,19 @@ class Mode:
|
|
|
58
58
|
is_completion = mode == MODE_COMPLETION
|
|
59
59
|
is_audio = mode == MODE_AUDIO
|
|
60
60
|
|
|
61
|
+
# enable/disable system prompt edit - disable in agents (prompts are defined per agent in presets)
|
|
62
|
+
if not is_agent_openai and not is_agent_llama:
|
|
63
|
+
presets_editor.toggle_tab("personalize", True)
|
|
64
|
+
if 'preset.prompt' in ui_nodes and ui_nodes['preset.prompt'].isReadOnly():
|
|
65
|
+
ui_nodes['preset.prompt'].setReadOnly(False)
|
|
66
|
+
ui_nodes['preset.prompt'].setPlaceholderText("")
|
|
67
|
+
else:
|
|
68
|
+
presets_editor.toggle_tab("personalize", False)
|
|
69
|
+
if 'preset.prompt' in ui_nodes and not ui_nodes['preset.prompt'].isReadOnly():
|
|
70
|
+
ui_nodes['preset.prompt'].setReadOnly(True)
|
|
71
|
+
ui_nodes['preset.prompt'].setPlaceholderText(trans("toolbox.agent.preset.placeholder"))
|
|
72
|
+
|
|
73
|
+
# audio options visibility
|
|
61
74
|
if not is_audio:
|
|
62
75
|
ui_nodes['audio.auto_turn'].setVisible(False)
|
|
63
76
|
ui_nodes["audio.loop"].setVisible(False)
|
|
@@ -71,6 +84,7 @@ class Mode:
|
|
|
71
84
|
else:
|
|
72
85
|
ctrl.audio.toggle_output_icon(False)
|
|
73
86
|
|
|
87
|
+
# presets/assistants visibility
|
|
74
88
|
if not is_assistant:
|
|
75
89
|
ui_nodes['presets.widget'].setVisible(True)
|
|
76
90
|
else:
|
|
@@ -81,6 +95,7 @@ class Mode:
|
|
|
81
95
|
else:
|
|
82
96
|
ui_nodes['env.widget'].setVisible(True)
|
|
83
97
|
|
|
98
|
+
# agents/experts/presets label visibility
|
|
84
99
|
show_agents_label = is_agent or is_agent_llama or is_agent_openai
|
|
85
100
|
if show_agents_label:
|
|
86
101
|
ui_nodes['preset.agents.label'].setVisible(True)
|
|
@@ -112,6 +127,7 @@ class Mode:
|
|
|
112
127
|
else:
|
|
113
128
|
ui_nodes['preset.editor.agent_provider_openai'].setVisible(False)
|
|
114
129
|
|
|
130
|
+
# prompt editor toolbox visibility
|
|
115
131
|
if is_agent:
|
|
116
132
|
presets_editor.toggle_tab("experts", True)
|
|
117
133
|
ui_nodes['preset.editor.temperature'].setVisible(True)
|
|
@@ -145,6 +161,7 @@ class Mode:
|
|
|
145
161
|
ui_nodes['preset.editor.modes'].setVisible(True)
|
|
146
162
|
ui_tabs['preset.editor.extra'].setTabText(0, trans("preset.prompt"))
|
|
147
163
|
|
|
164
|
+
# image options visibility
|
|
148
165
|
if is_image:
|
|
149
166
|
ui_nodes['media.raw'].setVisible(True)
|
|
150
167
|
if ctrl.media.is_video_model():
|
|
@@ -198,10 +215,8 @@ class Mode:
|
|
|
198
215
|
# remote tools icon visibility
|
|
199
216
|
if not is_image and not is_completion:
|
|
200
217
|
self.window.ui.nodes['input'].set_icon_visible("web", True)
|
|
201
|
-
# ui_nodes['icon.remote_tool.web'].setVisible(True)
|
|
202
218
|
else:
|
|
203
219
|
self.window.ui.nodes['input'].set_icon_visible("web", False)
|
|
204
|
-
# ui_nodes['icon.remote_tool.web'].setVisible(False)
|
|
205
220
|
|
|
206
221
|
ui_tabs['input'].setTabVisible(2, is_assistant)
|
|
207
222
|
ui_tabs['input'].setTabVisible(3, (not is_assistant) and (not is_image))
|
|
@@ -386,6 +386,11 @@ class Renderer(BaseRenderer):
|
|
|
386
386
|
except Exception:
|
|
387
387
|
pass
|
|
388
388
|
|
|
389
|
+
try:
|
|
390
|
+
self.get_output_node(meta).page().runJavaScript("if (typeof window.begin !== 'undefined') begin();")
|
|
391
|
+
except Exception:
|
|
392
|
+
pass
|
|
393
|
+
|
|
389
394
|
def end(self, meta: CtxMeta, ctx: CtxItem, stream: bool = False):
|
|
390
395
|
"""
|
|
391
396
|
Render end
|
|
@@ -402,6 +407,12 @@ class Renderer(BaseRenderer):
|
|
|
402
407
|
self.pids[pid].item = None
|
|
403
408
|
else:
|
|
404
409
|
self.reload()
|
|
410
|
+
|
|
411
|
+
try:
|
|
412
|
+
self.get_output_node(meta).page().runJavaScript("if (typeof window.end !== 'undefined') end();")
|
|
413
|
+
except Exception:
|
|
414
|
+
pass
|
|
415
|
+
|
|
405
416
|
self.pids[pid].clear()
|
|
406
417
|
self.auto_cleanup(meta)
|
|
407
418
|
|
|
@@ -31,7 +31,21 @@
|
|
|
31
31
|
"enabled": true,
|
|
32
32
|
"description": "",
|
|
33
33
|
"remote_tools": "",
|
|
34
|
-
"extra": {
|
|
34
|
+
"extra": {
|
|
35
|
+
"openai_agent_feedback": {
|
|
36
|
+
"base": {
|
|
37
|
+
"prompt": "You are senior programmer and expert in coding. Use markdown for code blocks. If there is any feedback provided, use it to improve the code.",
|
|
38
|
+
"allow_local_tools": false,
|
|
39
|
+
"allow_remote_tools": false
|
|
40
|
+
},
|
|
41
|
+
"feedback": {
|
|
42
|
+
"model": "o3-mini-low",
|
|
43
|
+
"prompt": "You evaluate a code and decide if it's correct. If it's not correct, you provide feedback on what needs to be fixed and improved. Never give it a pass on the first try. After 5 attempts, you can give it a pass if the code is good enough. You can use tools for checking the code, running tests, etc.",
|
|
44
|
+
"allow_local_tools": false,
|
|
45
|
+
"allow_remote_tools": false
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
35
49
|
"__meta__": {
|
|
36
50
|
"version": "2.5.81",
|
|
37
51
|
"app.version": "2.5.81",
|
pygpt_net/data/js/app/runtime.js
CHANGED
|
@@ -197,6 +197,7 @@ class Runtime {
|
|
|
197
197
|
api_appendNode = (payload) => {
|
|
198
198
|
this.resetStreamState('appendNode');
|
|
199
199
|
this.data.append(payload);
|
|
200
|
+
this.scrollMgr.scheduleScroll();
|
|
200
201
|
};
|
|
201
202
|
|
|
202
203
|
api_replaceNodes = (payload) => {
|
|
@@ -267,10 +268,7 @@ class Runtime {
|
|
|
267
268
|
api_updateToolOutput = (c) => this.toolOutput.update(c);
|
|
268
269
|
api_clearToolOutput = () => this.toolOutput.clear();
|
|
269
270
|
api_beginToolOutput = () => this.toolOutput.begin();
|
|
270
|
-
api_endToolOutput = () =>
|
|
271
|
-
this.toolOutput.end();
|
|
272
|
-
this.scrollMgr.scheduleScroll();
|
|
273
|
-
}
|
|
271
|
+
api_endToolOutput = () => this.toolOutput.end();
|
|
274
272
|
api_enableToolOutput = () => this.toolOutput.enable();
|
|
275
273
|
api_disableToolOutput = () => this.toolOutput.disable();
|
|
276
274
|
api_toggleToolOutput = (id) => this.toolOutput.toggle(id);
|
|
@@ -377,6 +375,12 @@ class Runtime {
|
|
|
377
375
|
api_showTips = () => this.tips.show();
|
|
378
376
|
api_hideTips = () => this.tips.hide();
|
|
379
377
|
|
|
378
|
+
// API: begin/end.
|
|
379
|
+
api_begin = () => {};
|
|
380
|
+
api_end = () => {
|
|
381
|
+
this.scrollMgr.forceScrollToBottomImmediateAtEnd();
|
|
382
|
+
}
|
|
383
|
+
|
|
380
384
|
// API: custom markup rules control.
|
|
381
385
|
api_getCustomMarkupRules = () => this.customMarkup.getRules();
|
|
382
386
|
api_setCustomMarkupRules = (rules) => {
|
|
@@ -481,6 +485,9 @@ window.appendStreamTyped = (type, name, chunk) => runtime.api_onChunk(name, chun
|
|
|
481
485
|
window.nextStream = () => runtime.api_nextStream();
|
|
482
486
|
window.clearStream = () => runtime.api_clearStream();
|
|
483
487
|
|
|
488
|
+
window.begin = () => runtime.api_begin();
|
|
489
|
+
window.end = () => runtime.api_end();
|
|
490
|
+
|
|
484
491
|
window.appendNode = (payload) => runtime.api_appendNode(payload);
|
|
485
492
|
window.replaceNodes = (payload) => runtime.api_replaceNodes(payload);
|
|
486
493
|
window.appendToInput = (html) => runtime.api_appendToInput(html);
|
pygpt_net/data/js/app/scroll.js
CHANGED
|
@@ -58,6 +58,20 @@ class ScrollManager {
|
|
|
58
58
|
this.prevScroll = el.scrollHeight;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
// Jump to bottom immediately (no smooth behavior).
|
|
62
|
+
forceScrollToBottomImmediateAtEnd() {
|
|
63
|
+
if (this.userInteracted === true || !this.isNearBottom(200)) return;
|
|
64
|
+
const el = Utils.SE;
|
|
65
|
+
setTimeout(() => {
|
|
66
|
+
el.scrollTo({
|
|
67
|
+
top: el.scrollHeight,
|
|
68
|
+
behavior: 'instant'
|
|
69
|
+
});
|
|
70
|
+
this.lastScrollTop = el.scrollTop;
|
|
71
|
+
this.prevScroll = el.scrollHeight;
|
|
72
|
+
}, 100);
|
|
73
|
+
}
|
|
74
|
+
|
|
61
75
|
// Scroll window to bottom based on auto-follow and margins.
|
|
62
76
|
scrollToBottom(live = false, force = false) {
|
|
63
77
|
const el = Utils.SE;
|
pygpt_net/data/js/app.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* app.min.js — generated on 2025-09-27
|
|
1
|
+
/* app.min.js — generated on 2025-09-27 18:00:57 by bin/minify_js.py using rjsmin */
|
|
2
2
|
|
|
3
3
|
/* data/js/app/async.js */
|
|
4
4
|
class AsyncRunner{constructor(cfg,raf){this.cfg=cfg||{};this.raf=raf||null;const A=this.cfg.ASYNC||{};this.SLICE_MS=Utils.g('ASYNC_SLICE_MS',A.SLICE_MS??12);this.SLICE_HIDDEN_MS=Utils.g('ASYNC_SLICE_HIDDEN_MS',A.SLICE_HIDDEN_MS??Math.min(this.SLICE_MS,6));this.MIN_YIELD_MS=Utils.g('ASYNC_MIN_YIELD_MS',A.MIN_YIELD_MS??0);this._opGen=new Map();}
|
|
@@ -504,6 +504,7 @@ scheduleScroll(live=false){if(live===true&&this.autoFollow!==true)return;if(this
|
|
|
504
504
|
cancelPendingScroll(){try{this.raf.cancelGroup('ScrollManager');}catch(_){}
|
|
505
505
|
this.scrollScheduled=false;this.scrollFabUpdateScheduled=false;this.scrollRAF=0;this.scrollFabRAF=0;}
|
|
506
506
|
forceScrollToBottomImmediate(){const el=Utils.SE;el.scrollTop=el.scrollHeight;this.prevScroll=el.scrollHeight;}
|
|
507
|
+
forceScrollToBottomImmediateAtEnd(){if(this.userInteracted===true||!this.isNearBottom(200))return;const el=Utils.SE;setTimeout(()=>{el.scrollTo({top:el.scrollHeight,behavior:'instant'});this.lastScrollTop=el.scrollTop;this.prevScroll=el.scrollHeight;},100);}
|
|
507
508
|
scrollToBottom(live=false,force=false){const el=Utils.SE;const marginPx=this.cfg.UI.SCROLL_NEAR_MARGIN_PX;const behavior='instant';const h=el.scrollHeight;if(live===true&&this.autoFollow!==true){this.prevScroll=h;return;}
|
|
508
509
|
if((live===true&&this.userInteracted===false)||this.isNearBottom(marginPx)||live===false||force){try{el.scrollTo({top:h,behavior});}catch(_){el.scrollTop=h;}}
|
|
509
510
|
this.prevScroll=el.scrollHeight;}
|
|
@@ -866,16 +867,16 @@ this._lastHeavyResetMs=now;}else{try{this.raf.cancelGroup('StreamQueue');}catch(
|
|
|
866
867
|
try{this.tips&&this.tips.hide();}catch(_){}}
|
|
867
868
|
api_onChunk=(name,chunk,type)=>{const t=String(type||'text_delta');if(t==='text_delta'){this.api_appendStream(name,chunk);return;}
|
|
868
869
|
this.logger.debug('STREAM','IGNORED_NON_TEXT_CHUNK',{type:t,len:(chunk?String(chunk).length:0)});};api_beginStream=(chunk=false)=>{this.tips&&this.tips.hide();this.resetStreamState('beginStream',{clearMsg:true,finalizeActive:false,forceHeavy:true});this.stream.beginStream(chunk);};api_endStream=()=>{this.stream.endStream();};api_applyStream=(name,chunk)=>{this.stream.applyStream(name,chunk);};api_appendStream=(name,chunk)=>{this.streamQ.enqueue(name,chunk);};api_nextStream=()=>{this.tips&&this.tips.hide();const element=this.dom.get('_append_output_');const before=this.dom.get('_append_output_before_');if(element&&before){const frag=document.createDocumentFragment();while(element.firstChild)frag.appendChild(element.firstChild);before.appendChild(frag);}
|
|
869
|
-
this.resetStreamState('nextStream',{clearMsg:true,finalizeActive:false,forceHeavy:true});this.scrollMgr.scheduleScroll();};api_clearStream=()=>{this.tips&&this.tips.hide();this.resetStreamState('clearStream',{clearMsg:true,forceHeavy:true});const el=this.dom.getStreamContainer();if(!el)return;el.replaceChildren();};api_appendNode=(payload)=>{this.resetStreamState('appendNode');this.data.append(payload);};api_replaceNodes=(payload)=>{this.resetStreamState('replaceNodes',{clearMsg:true,forceHeavy:true});this.dom.clearNodes();this.data.replace(payload);};api_appendToInput=(payload)=>{this.nodes.appendToInput(payload);this.scrollMgr.autoFollow=true;this.scrollMgr.userInteracted=false;try{this.scrollMgr.lastScrollTop=Utils.SE.scrollTop|0;}catch(_){}
|
|
870
|
-
this.scrollMgr.scheduleScroll();};api_clearNodes=()=>{this.dom.clearNodes();this.resetStreamState('clearNodes',{clearMsg:true,forceHeavy:true});};api_clearInput=()=>{this.resetStreamState('clearInput',{forceHeavy:true});this.dom.clearInput();};api_clearOutput=()=>{this.dom.clearOutput();this.resetStreamState('clearOutput',{clearMsg:true,forceHeavy:true});};api_clearLive=()=>{this.dom.clearLive();this.resetStreamState('clearLive',{forceHeavy:true});};api_appendToolOutput=(c)=>this.toolOutput.append(c);api_updateToolOutput=(c)=>this.toolOutput.update(c);api_clearToolOutput=()=>this.toolOutput.clear();api_beginToolOutput=()=>this.toolOutput.begin();api_endToolOutput=()=>
|
|
871
|
-
api_enableToolOutput=()=>this.toolOutput.enable();api_disableToolOutput=()=>this.toolOutput.disable();api_toggleToolOutput=(id)=>this.toolOutput.toggle(id);api_appendExtra=(id,c)=>this.nodes.appendExtra(id,c,this.scrollMgr);api_removeNode=(id)=>this.nodes.removeNode(id,this.scrollMgr);api_removeNodesFromId=(id)=>this.nodes.removeNodesFromId(id,this.scrollMgr);api_replaceLive=(content)=>{const el=this.dom.get('_append_live_');if(!el)return;if(el.classList.contains('hidden')){el.classList.remove('hidden');el.classList.add('visible');}
|
|
870
|
+
this.resetStreamState('nextStream',{clearMsg:true,finalizeActive:false,forceHeavy:true});this.scrollMgr.scheduleScroll();};api_clearStream=()=>{this.tips&&this.tips.hide();this.resetStreamState('clearStream',{clearMsg:true,forceHeavy:true});const el=this.dom.getStreamContainer();if(!el)return;el.replaceChildren();};api_appendNode=(payload)=>{this.resetStreamState('appendNode');this.data.append(payload);this.scrollMgr.scheduleScroll();};api_replaceNodes=(payload)=>{this.resetStreamState('replaceNodes',{clearMsg:true,forceHeavy:true});this.dom.clearNodes();this.data.replace(payload);};api_appendToInput=(payload)=>{this.nodes.appendToInput(payload);this.scrollMgr.autoFollow=true;this.scrollMgr.userInteracted=false;try{this.scrollMgr.lastScrollTop=Utils.SE.scrollTop|0;}catch(_){}
|
|
871
|
+
this.scrollMgr.scheduleScroll();};api_clearNodes=()=>{this.dom.clearNodes();this.resetStreamState('clearNodes',{clearMsg:true,forceHeavy:true});};api_clearInput=()=>{this.resetStreamState('clearInput',{forceHeavy:true});this.dom.clearInput();};api_clearOutput=()=>{this.dom.clearOutput();this.resetStreamState('clearOutput',{clearMsg:true,forceHeavy:true});};api_clearLive=()=>{this.dom.clearLive();this.resetStreamState('clearLive',{forceHeavy:true});};api_appendToolOutput=(c)=>this.toolOutput.append(c);api_updateToolOutput=(c)=>this.toolOutput.update(c);api_clearToolOutput=()=>this.toolOutput.clear();api_beginToolOutput=()=>this.toolOutput.begin();api_endToolOutput=()=>this.toolOutput.end();api_enableToolOutput=()=>this.toolOutput.enable();api_disableToolOutput=()=>this.toolOutput.disable();api_toggleToolOutput=(id)=>this.toolOutput.toggle(id);api_appendExtra=(id,c)=>this.nodes.appendExtra(id,c,this.scrollMgr);api_removeNode=(id)=>this.nodes.removeNode(id,this.scrollMgr);api_removeNodesFromId=(id)=>this.nodes.removeNodesFromId(id,this.scrollMgr);api_replaceLive=(content)=>{const el=this.dom.get('_append_live_');if(!el)return;if(el.classList.contains('hidden')){el.classList.remove('hidden');el.classList.add('visible');}
|
|
872
872
|
el.innerHTML=content;try{const maybePromise=this.renderer.renderPendingMarkdown(el);const post=()=>{try{this.highlighter.observeNewCode(el,{deferLastIfStreaming:true,minLinesForLast:this.cfg.PROFILE_CODE.minLinesForHL,minCharsForLast:this.cfg.PROFILE_CODE.minCharsForHL},this.stream.activeCode);this.highlighter.observeMsgBoxes(el,(box)=>{this.highlighter.observeNewCode(box,{deferLastIfStreaming:true,minLinesForLast:this.cfg.PROFILE_CODE.minLinesForHL,minCharsForLast:this.cfg.PROFILE_CODE.minCharsForHL},this.stream.activeCode);this.codeScroll.initScrollableBlocks(box);});}catch(_){}
|
|
873
873
|
try{const mm=getMathMode();if(mm==='finalize-only')this.math.schedule(el,0,true);else this.math.schedule(el);}catch(_){}
|
|
874
|
-
this.scrollMgr.scheduleScroll();};if(maybePromise&&typeof maybePromise.then==='function'){maybePromise.then(post);}else{post();}}catch(_){this.scrollMgr.scheduleScroll();}};api_updateFooter=(html)=>{const el=this.dom.get('_footer_');if(el)el.innerHTML=html;};api_enableEditIcons=()=>this.ui.enableEditIcons();api_disableEditIcons=()=>this.ui.disableEditIcons();api_enableTimestamp=()=>this.ui.enableTimestamp();api_disableTimestamp=()=>this.ui.disableTimestamp();api_enableBlocks=()=>this.ui.enableBlocks();api_disableBlocks=()=>this.ui.disableBlocks();api_updateCSS=(styles)=>this.ui.updateCSS(styles);api_getScrollPosition=()=>{this.bridge.updateScrollPosition(window.scrollY);};api_setScrollPosition=(pos)=>{try{window.scrollTo(0,pos);this.scrollMgr.prevScroll=parseInt(pos);}catch(_){}};api_showLoading=()=>this.loading.show();api_hideLoading=()=>this.loading.hide();api_restoreCollapsedCode=(root)=>this.renderer.restoreCollapsedCode(root);api_scrollToTopUser=()=>this.scrollMgr.scrollToTopUser();api_scrollToBottomUser=()=>this.scrollMgr.scrollToBottomUser();api_showTips=()=>this.tips.show();api_hideTips=()=>this.tips.hide();
|
|
874
|
+
this.scrollMgr.scheduleScroll();};if(maybePromise&&typeof maybePromise.then==='function'){maybePromise.then(post);}else{post();}}catch(_){this.scrollMgr.scheduleScroll();}};api_updateFooter=(html)=>{const el=this.dom.get('_footer_');if(el)el.innerHTML=html;};api_enableEditIcons=()=>this.ui.enableEditIcons();api_disableEditIcons=()=>this.ui.disableEditIcons();api_enableTimestamp=()=>this.ui.enableTimestamp();api_disableTimestamp=()=>this.ui.disableTimestamp();api_enableBlocks=()=>this.ui.enableBlocks();api_disableBlocks=()=>this.ui.disableBlocks();api_updateCSS=(styles)=>this.ui.updateCSS(styles);api_getScrollPosition=()=>{this.bridge.updateScrollPosition(window.scrollY);};api_setScrollPosition=(pos)=>{try{window.scrollTo(0,pos);this.scrollMgr.prevScroll=parseInt(pos);}catch(_){}};api_showLoading=()=>this.loading.show();api_hideLoading=()=>this.loading.hide();api_restoreCollapsedCode=(root)=>this.renderer.restoreCollapsedCode(root);api_scrollToTopUser=()=>this.scrollMgr.scrollToTopUser();api_scrollToBottomUser=()=>this.scrollMgr.scrollToBottomUser();api_showTips=()=>this.tips.show();api_hideTips=()=>this.tips.hide();api_begin=()=>{};api_end=()=>{this.scrollMgr.forceScrollToBottomImmediateAtEnd();}
|
|
875
|
+
api_getCustomMarkupRules=()=>this.customMarkup.getRules();api_setCustomMarkupRules=(rules)=>{this.customMarkup.setRules(rules);try{this.stream.setCustomFenceSpecs(this.customMarkup.getSourceFenceSpecs());}catch(_){}};init(){this.highlighter.initHLJS();this.dom.init();this.ui.ensureStickyHeaderStyle();this.tips=new TipsManager(this.dom);this.events.install();this.bridge.initQWebChannel(this.cfg.PID,(bridge)=>{const onChunk=(name,chunk,type)=>this.api_onChunk(name,chunk,type);const onNode=(payload)=>this.api_appendNode(payload);const onNodeReplace=(payload)=>this.api_replaceNodes(payload);const onNodeInput=(html)=>this.api_appendToInput(html);this.bridge.connect(onChunk,onNode,onNodeReplace,onNodeInput);try{this.logger.bindBridge(this.bridge.bridge||this.bridge);}catch(_){}});this.renderer.init();try{this.renderer.renderPendingMarkdown(document);}catch(_){}
|
|
875
876
|
this.highlighter.observeMsgBoxes(document,(box)=>{this.highlighter.observeNewCode(box,{deferLastIfStreaming:true,minLinesForLast:this.cfg.PROFILE_CODE.minLinesForHL,minCharsForLast:this.cfg.PROFILE_CODE.minCharsForHL},this.stream.activeCode);this.codeScroll.initScrollableBlocks(box);});this.highlighter.observeNewCode(document,{deferLastIfStreaming:true,minLinesForLast:this.cfg.PROFILE_CODE.minLinesForHL,minCharsForLast:this.cfg.PROFILE_CODE.minCharsForHL},this.stream.activeCode);this.highlighter.scheduleScanVisibleCodes(this.stream.activeCode);this.tips.cycle();this.scrollMgr.updateScrollFab(true);}
|
|
876
877
|
cleanup(){this.tips.cleanup();try{this.bridge.disconnect();}catch(_){}
|
|
877
878
|
this.events.cleanup();this.highlighter.cleanup();this.math.cleanup();this.streamQ.clear();this.dom.cleanup();}}
|
|
878
879
|
if(typeof RafManager!=='undefined'&&RafManager.prototype&&typeof RafManager.prototype.cancel==='function'){RafManager.prototype.cancel=function(key){const t=this.tasks.get(key);if(!t)return;this.tasks.delete(key);if(t.group){const set=this.groups.get(t.group);if(set){set.delete(key);if(set.size===0)this.groups.delete(t.group);}}};}
|
|
879
|
-
window.__collapsed_idx=window.__collapsed_idx||[];const runtime=new Runtime();document.addEventListener('DOMContentLoaded',()=>runtime.init());Object.defineProperty(window,'SE',{get(){return Utils.SE;}});window.beginStream=(chunk)=>runtime.api_beginStream(chunk);window.endStream=()=>runtime.api_endStream();window.applyStream=(name,chunk)=>runtime.api_applyStream(name,chunk);window.appendStream=(name,chunk)=>runtime.api_appendStream(name,chunk);window.appendStreamTyped=(type,name,chunk)=>runtime.api_onChunk(name,chunk,type);window.nextStream=()=>runtime.api_nextStream();window.clearStream=()=>runtime.api_clearStream();window.appendNode=(payload)=>runtime.api_appendNode(payload);window.replaceNodes=(payload)=>runtime.api_replaceNodes(payload);window.appendToInput=(html)=>runtime.api_appendToInput(html);window.clearNodes=()=>runtime.api_clearNodes();window.clearInput=()=>runtime.api_clearInput();window.clearOutput=()=>runtime.api_clearOutput();window.clearLive=()=>runtime.api_clearLive();window.appendToolOutput=(c)=>runtime.api_appendToolOutput(c);window.updateToolOutput=(c)=>runtime.api_updateToolOutput(c);window.clearToolOutput=()=>runtime.api_clearToolOutput();window.beginToolOutput=()=>runtime.api_beginToolOutput();window.endToolOutput=()=>runtime.api_endToolOutput();window.enableToolOutput=()=>runtime.api_enableToolOutput();window.disableToolOutput=()=>runtime.api_disableToolOutput();window.toggleToolOutput=(id)=>runtime.api_toggleToolOutput(id);window.appendExtra=(id,c)=>runtime.api_appendExtra(id,c);window.removeNode=(id)=>runtime.api_removeNode(id);window.removeNodesFromId=(id)=>runtime.api_removeNodesFromId(id);window.replaceLive=(c)=>runtime.api_replaceLive(c);window.updateFooter=(c)=>runtime.api_updateFooter(c);window.enableEditIcons=()=>runtime.api_enableEditIcons();window.disableEditIcons=()=>runtime.api_disableEditIcons();window.enableTimestamp=()=>runtime.api_enableTimestamp();window.disableTimestamp=()=>runtime.api_disableTimestamp();window.enableBlocks=()=>runtime.api_enableBlocks();window.disableBlocks=()=>runtime.api_disableBlocks();window.updateCSS=(s)=>runtime.api_updateCSS(s);window.getScrollPosition=()=>runtime.api_getScrollPosition();window.setScrollPosition=(pos)=>runtime.api_setScrollPosition(pos);window.showLoading=()=>runtime.api_showLoading();window.hideLoading=()=>runtime.api_hideLoading();window.restoreCollapsedCode=(root)=>runtime.api_restoreCollapsedCode(root);window.scrollToTopUser=()=>runtime.api_scrollToTopUser();window.scrollToBottomUser=()=>runtime.api_scrollToBottomUser();window.showTips=()=>runtime.api_showTips();window.hideTips=()=>runtime.api_hideTips();window.getCustomMarkupRules=()=>runtime.api_getCustomMarkupRules();window.setCustomMarkupRules=(rules)=>runtime.api_setCustomMarkupRules(rules);window.__pygpt_cleanup=()=>runtime.cleanup();RafManager.prototype.stats=function(){const byGroup=new Map();for(const[key,t]of this.tasks){const g=t.group||'default';byGroup.set(g,(byGroup.get(g)||0)+1);}
|
|
880
|
+
window.__collapsed_idx=window.__collapsed_idx||[];const runtime=new Runtime();document.addEventListener('DOMContentLoaded',()=>runtime.init());Object.defineProperty(window,'SE',{get(){return Utils.SE;}});window.beginStream=(chunk)=>runtime.api_beginStream(chunk);window.endStream=()=>runtime.api_endStream();window.applyStream=(name,chunk)=>runtime.api_applyStream(name,chunk);window.appendStream=(name,chunk)=>runtime.api_appendStream(name,chunk);window.appendStreamTyped=(type,name,chunk)=>runtime.api_onChunk(name,chunk,type);window.nextStream=()=>runtime.api_nextStream();window.clearStream=()=>runtime.api_clearStream();window.begin=()=>runtime.api_begin();window.end=()=>runtime.api_end();window.appendNode=(payload)=>runtime.api_appendNode(payload);window.replaceNodes=(payload)=>runtime.api_replaceNodes(payload);window.appendToInput=(html)=>runtime.api_appendToInput(html);window.clearNodes=()=>runtime.api_clearNodes();window.clearInput=()=>runtime.api_clearInput();window.clearOutput=()=>runtime.api_clearOutput();window.clearLive=()=>runtime.api_clearLive();window.appendToolOutput=(c)=>runtime.api_appendToolOutput(c);window.updateToolOutput=(c)=>runtime.api_updateToolOutput(c);window.clearToolOutput=()=>runtime.api_clearToolOutput();window.beginToolOutput=()=>runtime.api_beginToolOutput();window.endToolOutput=()=>runtime.api_endToolOutput();window.enableToolOutput=()=>runtime.api_enableToolOutput();window.disableToolOutput=()=>runtime.api_disableToolOutput();window.toggleToolOutput=(id)=>runtime.api_toggleToolOutput(id);window.appendExtra=(id,c)=>runtime.api_appendExtra(id,c);window.removeNode=(id)=>runtime.api_removeNode(id);window.removeNodesFromId=(id)=>runtime.api_removeNodesFromId(id);window.replaceLive=(c)=>runtime.api_replaceLive(c);window.updateFooter=(c)=>runtime.api_updateFooter(c);window.enableEditIcons=()=>runtime.api_enableEditIcons();window.disableEditIcons=()=>runtime.api_disableEditIcons();window.enableTimestamp=()=>runtime.api_enableTimestamp();window.disableTimestamp=()=>runtime.api_disableTimestamp();window.enableBlocks=()=>runtime.api_enableBlocks();window.disableBlocks=()=>runtime.api_disableBlocks();window.updateCSS=(s)=>runtime.api_updateCSS(s);window.getScrollPosition=()=>runtime.api_getScrollPosition();window.setScrollPosition=(pos)=>runtime.api_setScrollPosition(pos);window.showLoading=()=>runtime.api_showLoading();window.hideLoading=()=>runtime.api_hideLoading();window.restoreCollapsedCode=(root)=>runtime.api_restoreCollapsedCode(root);window.scrollToTopUser=()=>runtime.api_scrollToTopUser();window.scrollToBottomUser=()=>runtime.api_scrollToBottomUser();window.showTips=()=>runtime.api_showTips();window.hideTips=()=>runtime.api_hideTips();window.getCustomMarkupRules=()=>runtime.api_getCustomMarkupRules();window.setCustomMarkupRules=(rules)=>runtime.api_setCustomMarkupRules(rules);window.__pygpt_cleanup=()=>runtime.cleanup();RafManager.prototype.stats=function(){const byGroup=new Map();for(const[key,t]of this.tasks){const g=t.group||'default';byGroup.set(g,(byGroup.get(g)||0)+1);}
|
|
880
881
|
return{tasks:this.tasks.size,groups:Array.from(byGroup,([group,count])=>({group,count})).sort((a,b)=>b.count-a.count)};};RafManager.prototype.dumpHotGroups=function(label=''){const s=this.stats();console.log('[RAF]',label,'tasks=',s.tasks,'byGroup=',s.groups.slice(0,8));};RafManager.prototype.findDomTasks=function(){const out=[];for(const[key,t]of this.tasks){let el=null;if(key&&key.nodeType===1)el=key;else if(key&&key.el&&key.el.nodeType===1)el=key.el;if(el)out.push({group:t.group,tag:el.tagName,connected:el.isConnected});}
|
|
881
882
|
return out;};function gaugeSE(se){const ropeLen=(se.streamBuf.length+se._sbLen);const ac=se.activeCode;const domFrozen=ac?.frozenEl?.textContent?.length||0;const domTail=ac?.tailEl?.textContent?.length||0;const domLen=domFrozen+domTail;return{ropeLen,domLen,totalChars:ropeLen+domLen,ratioRopeToDom:(domLen?(ropeLen/domLen).toFixed(2):'n/a'),fenceOpen:se.fenceOpen,codeOpen:se.codeStream?.open};};
|
|
@@ -118,12 +118,40 @@ agent.option.tools.local = Lokale Werkzeuge zulassen
|
|
|
118
118
|
agent.option.tools.local.desc = Nutzung lokaler Werkzeuge für diesen Agenten zulassen
|
|
119
119
|
agent.option.tools.remote = Entfernte Werkzeuge zulassen
|
|
120
120
|
agent.option.tools.remote.desc = Nutzung entfernter Werkzeuge für diesen Agenten zulassen
|
|
121
|
+
agent.planner.display.executor = Ausführender
|
|
122
|
+
agent.planner.display.executor_agent = FunktionsAgent
|
|
123
|
+
agent.planner.display.planner = PlanerArbeitsablauf
|
|
124
|
+
agent.planner.label.execute = Ausführen
|
|
125
|
+
agent.planner.label.plan = Plan
|
|
126
|
+
agent.planner.label.refine = Verfeinern
|
|
127
|
+
agent.planner.label.refine.index = Verfeinern {index}
|
|
128
|
+
agent.planner.label.refine.index_total = Verfeinern {index}/{total}
|
|
129
|
+
agent.planner.label.step = Schritt
|
|
130
|
+
agent.planner.label.subtask = Teilaufgabe
|
|
131
|
+
agent.planner.label.subtask.index = Teilaufgabe {index}
|
|
132
|
+
agent.planner.label.subtask.index_total = Teilaufgabe {index}/{total}
|
|
133
|
+
agent.planner.label.with_name = {base}: {name}
|
|
121
134
|
agent.planner.plan.label = Planer (initial)
|
|
122
135
|
agent.planner.plan.prompt.desc = Initialer Plan-Prompt
|
|
123
136
|
agent.planner.refine.label = Planer (verfeinern)
|
|
124
137
|
agent.planner.refine.prompt.desc = Plan verfeinern prompt
|
|
125
138
|
agent.planner.step.label = Prompt ausführen
|
|
126
139
|
agent.planner.step.prompt.desc = Schritte ausführen prompt
|
|
140
|
+
agent.planner.ui.current_plan = Aktueller Plan:
|
|
141
|
+
agent.planner.ui.dependencies = Abhängigkeiten:
|
|
142
|
+
agent.planner.ui.executing_plan = Plan wird ausgeführt...
|
|
143
|
+
agent.planner.ui.execution_stopped = Planausführung gestoppt.
|
|
144
|
+
agent.planner.ui.expected_output = Erwartetes Ergebnis:
|
|
145
|
+
agent.planner.ui.plan_execution_finished = Planausführung beendet.
|
|
146
|
+
agent.planner.ui.plan_finished = Plan abgeschlossen.
|
|
147
|
+
agent.planner.ui.plan_marked_complete = Plan als abgeschlossen markiert: {reason}
|
|
148
|
+
agent.planner.ui.refine_failed_parse = Verfeinern fehlgeschlagen; ohne Änderungen fortfahren.
|
|
149
|
+
agent.planner.ui.refining_remaining_plan = Verfeinerung des verbleibenden Plans...
|
|
150
|
+
agent.planner.ui.subtask_failed = Teilaufgabe fehlgeschlagen: {error}
|
|
151
|
+
agent.planner.ui.subtask_finished = Teilaufgabe abgeschlossen {index}/{total}: {name}
|
|
152
|
+
agent.planner.ui.subtask_header.one = **===== Teilaufgabe {index}: {name} =====**
|
|
153
|
+
agent.planner.ui.subtask_header.progress = **===== Teilaufgabe {index}/{total}: {name} =====**
|
|
154
|
+
agent.planner.ui.updated_remaining_plan = Aktualisierter verbleibender Plan:
|
|
127
155
|
alert.preset.empty_id = Name ist erforderlich.
|
|
128
156
|
alert.preset.no_chat_completion = Mindestens eine der Optionen: Chat, Vervollständigung, Bild oder Vision wird benötigt!
|
|
129
157
|
alert.snap.file_manager = Snap erkannt. Bitte das Verzeichnis manuell in Ihrem Dateimanager öffnen:
|
|
@@ -183,6 +211,9 @@ attachments.header.path = Pfad
|
|
|
183
211
|
attachments.header.size = Größe
|
|
184
212
|
attachments.header.store = Vektor Speicher(e)
|
|
185
213
|
attachments.options.label = Optionen
|
|
214
|
+
attachments.paste.file = Zwischenablage-Anhang
|
|
215
|
+
attachments.paste.img = Zwischenablage-Bild
|
|
216
|
+
attachments.paste.success = Anhang aus der Zwischenablage hinzugefügt
|
|
186
217
|
attachments.send_clear = Liste nach dem Senden löschen
|
|
187
218
|
attachments.tab = Anhänge
|
|
188
219
|
attachments_uploaded.btn.clear = Dateien löschen
|
|
@@ -1552,6 +1583,7 @@ toolbox.agent.llama.loop.label = Schleife / bewerten (bis Punktzahl, 0% = unendl
|
|
|
1552
1583
|
toolbox.agent.llama.loop.mode.complete = Min. % abschluss
|
|
1553
1584
|
toolbox.agent.llama.loop.mode.score = Min. % bewertung
|
|
1554
1585
|
toolbox.agent.llama.loop.score.tooltip = Erforderliche Punktzahl zum Beenden, 0% = unendliche Schleife
|
|
1586
|
+
toolbox.agent.preset.placeholder = System-Prompt ist pro Agent im Agenten-Preset definierbar
|
|
1555
1587
|
toolbox.agents.label = Agenten
|
|
1556
1588
|
toolbox.assistants.label = Assistenten
|
|
1557
1589
|
toolbox.env.label = Env
|
|
@@ -98,13 +98,14 @@ agent.name.worker = Worker
|
|
|
98
98
|
agent.option.model = Model
|
|
99
99
|
agent.option.name = Name
|
|
100
100
|
agent.option.prompt = Prompt
|
|
101
|
-
agent.option.prompt.refine.desc = Prompt for plan refining
|
|
102
101
|
agent.option.prompt.b1.desc = Prompt for bot 1
|
|
103
102
|
agent.option.prompt.b2.desc = Prompt for bot 2
|
|
104
103
|
agent.option.prompt.base.desc = Prompt for Base Agent
|
|
105
104
|
agent.option.prompt.chooser.desc = Prompt for Chooser agent
|
|
105
|
+
agent.option.prompt.desc = Prompt for agent
|
|
106
106
|
agent.option.prompt.feedback.desc = Prompt for feedback evaluation
|
|
107
107
|
agent.option.prompt.planner.desc = Prompt for Planner agent
|
|
108
|
+
agent.option.prompt.refine.desc = Prompt for plan refining
|
|
108
109
|
agent.option.prompt.search.desc = Prompt for search agent
|
|
109
110
|
agent.option.prompt.supervisor.desc = Prompt for Supervisor
|
|
110
111
|
agent.option.prompt.worker.desc = Prompt for Worker
|
|
@@ -124,12 +125,40 @@ agent.option.tools.local = Allow local tools
|
|
|
124
125
|
agent.option.tools.local.desc = Allow usage of local tools for this agent
|
|
125
126
|
agent.option.tools.remote = Allow remote tools
|
|
126
127
|
agent.option.tools.remote.desc = Allow usage of remote tools for this agent
|
|
128
|
+
agent.planner.display.executor = Executor
|
|
129
|
+
agent.planner.display.executor_agent = FunctionAgent
|
|
130
|
+
agent.planner.display.planner = PlannerWorkflow
|
|
131
|
+
agent.planner.label.execute = Execute
|
|
132
|
+
agent.planner.label.plan = Plan
|
|
133
|
+
agent.planner.label.refine = Refine
|
|
134
|
+
agent.planner.label.refine.index = Refine {index}
|
|
135
|
+
agent.planner.label.refine.index_total = Refine {index}/{total}
|
|
136
|
+
agent.planner.label.step = Step
|
|
137
|
+
agent.planner.label.subtask = Sub-task
|
|
138
|
+
agent.planner.label.subtask.index = Sub-task {index}
|
|
139
|
+
agent.planner.label.subtask.index_total = Sub-task {index}/{total}
|
|
140
|
+
agent.planner.label.with_name = {base}: {name}
|
|
127
141
|
agent.planner.plan.label = Planner (initial)
|
|
128
142
|
agent.planner.plan.prompt.desc = Initial plan prompt
|
|
129
143
|
agent.planner.refine.label = Planner (refine)
|
|
130
144
|
agent.planner.refine.prompt.desc = Plan refine prompt
|
|
131
145
|
agent.planner.step.label = Execute prompt
|
|
132
146
|
agent.planner.step.prompt.desc = Steps execute prompt
|
|
147
|
+
agent.planner.ui.current_plan = Current plan:
|
|
148
|
+
agent.planner.ui.dependencies = Dependencies:
|
|
149
|
+
agent.planner.ui.executing_plan = Executing plan...
|
|
150
|
+
agent.planner.ui.execution_stopped = Plan execution stopped.
|
|
151
|
+
agent.planner.ui.expected_output = Expected output:
|
|
152
|
+
agent.planner.ui.plan_execution_finished = Plan execution finished.
|
|
153
|
+
agent.planner.ui.plan_finished = Plan finished.
|
|
154
|
+
agent.planner.ui.plan_marked_complete = Planner marked the plan as complete: {reason}
|
|
155
|
+
agent.planner.ui.refine_failed_parse = Refine step failed to parse; continuing without changes.
|
|
156
|
+
agent.planner.ui.refining_remaining_plan = Refining remaining plan...
|
|
157
|
+
agent.planner.ui.subtask_failed = Sub-task failed: {error}
|
|
158
|
+
agent.planner.ui.subtask_finished = Finished Sub Task {index}/{total}: {name}
|
|
159
|
+
agent.planner.ui.subtask_header.one = **===== Sub Task {index}: {name} =====**
|
|
160
|
+
agent.planner.ui.subtask_header.progress = **===== Sub Task {index}/{total}: {name} =====**
|
|
161
|
+
agent.planner.ui.updated_remaining_plan = Updated remaining plan:
|
|
133
162
|
alert.preset.empty_id = Name is required.
|
|
134
163
|
alert.preset.no_chat_completion = At least one of: chat, completion, img or vision option is required!
|
|
135
164
|
alert.snap.file_manager = Snap detected. Please open the directory manually in your file manager:
|
|
@@ -190,6 +219,9 @@ attachments.header.path = Path
|
|
|
190
219
|
attachments.header.size = Size
|
|
191
220
|
attachments.header.store = Vector Store(s)
|
|
192
221
|
attachments.options.label = Options
|
|
222
|
+
attachments.paste.file = Clipboard attachment
|
|
223
|
+
attachments.paste.img = Clipboard image
|
|
224
|
+
attachments.paste.success = Added attachment from clipboard
|
|
193
225
|
attachments.send_clear = Clear list after sending
|
|
194
226
|
attachments.tab = Attachments
|
|
195
227
|
attachments_uploaded.btn.clear = Clear
|
|
@@ -1627,6 +1659,7 @@ toolbox.agent.llama.loop.mode.complete = Min. % complete
|
|
|
1627
1659
|
toolbox.agent.llama.loop.mode.score = Min. % score
|
|
1628
1660
|
toolbox.agent.llama.loop.mode.tooltip = Evaluate task completion / or task result accuracy
|
|
1629
1661
|
toolbox.agent.llama.loop.score.tooltip = Required score to finish, 0% = infinity loop
|
|
1662
|
+
toolbox.agent.preset.placeholder = System prompt is definable per agent in Agent preset
|
|
1630
1663
|
toolbox.agents.label = Agents
|
|
1631
1664
|
toolbox.assistants.label = Assistants
|
|
1632
1665
|
toolbox.env.label = Env
|
|
@@ -1729,4 +1762,3 @@ vision.capture.manual.captured.success = Image captured from the camera:
|
|
|
1729
1762
|
vision.capture.name.prefix = Camera capture:
|
|
1730
1763
|
vision.capture.options.title = Video capture
|
|
1731
1764
|
vision.checkbox.tooltip = If checked, the vision model is active. It will be automatically activated upon image upload. You can deactivate it in real-time.
|
|
1732
|
-
agent.option.prompt.desc = Prompt for agent
|
|
@@ -118,12 +118,40 @@ agent.option.tools.local = Permitir herramientas locales
|
|
|
118
118
|
agent.option.tools.local.desc = Permitir uso de herramientas locales para este agente
|
|
119
119
|
agent.option.tools.remote = Permitir herramientas remotas
|
|
120
120
|
agent.option.tools.remote.desc = Permitir uso de herramientas remotas para este agente
|
|
121
|
+
agent.planner.display.executor = Ejecutante
|
|
122
|
+
agent.planner.display.executor_agent = AgenteFunción
|
|
123
|
+
agent.planner.display.planner = FlujoDeTrabajoDelPlanificador
|
|
124
|
+
agent.planner.label.execute = Ejecutar
|
|
125
|
+
agent.planner.label.plan = Plan
|
|
126
|
+
agent.planner.label.refine = Refinar
|
|
127
|
+
agent.planner.label.refine.index = Refinar {index}
|
|
128
|
+
agent.planner.label.refine.index_total = Refinar {index}/{total}
|
|
129
|
+
agent.planner.label.step = Paso
|
|
130
|
+
agent.planner.label.subtask = Subtarea
|
|
131
|
+
agent.planner.label.subtask.index = Subtarea {index}
|
|
132
|
+
agent.planner.label.subtask.index_total = Subtarea {index}/{total}
|
|
133
|
+
agent.planner.label.with_name = {base}: {name}
|
|
121
134
|
agent.planner.plan.label = Planificador (inicial)
|
|
122
135
|
agent.planner.plan.prompt.desc = Prompt del plan inicial
|
|
123
136
|
agent.planner.refine.label = Planificador (refinamiento)
|
|
124
137
|
agent.planner.refine.prompt.desc = Prompt de refinamiento del plan
|
|
125
138
|
agent.planner.step.label = Ejecutar prompt
|
|
126
139
|
agent.planner.step.prompt.desc = Pasos ejecutar prompt
|
|
140
|
+
agent.planner.ui.current_plan = Plan actual:
|
|
141
|
+
agent.planner.ui.dependencies = Dependencias:
|
|
142
|
+
agent.planner.ui.executing_plan = Ejecutando plan...
|
|
143
|
+
agent.planner.ui.execution_stopped = Ejecución del plan detenida.
|
|
144
|
+
agent.planner.ui.expected_output = Salida esperada:
|
|
145
|
+
agent.planner.ui.plan_execution_finished = Ejecución del plan finalizada.
|
|
146
|
+
agent.planner.ui.plan_finished = Plan finalizado.
|
|
147
|
+
agent.planner.ui.plan_marked_complete = Plan marcado como completo: {reason}
|
|
148
|
+
agent.planner.ui.refine_failed_parse = Fallo en el refinamiento; continuando sin cambios.
|
|
149
|
+
agent.planner.ui.refining_remaining_plan = Refinando el plan restante...
|
|
150
|
+
agent.planner.ui.subtask_failed = Subtarea fallida: {error}
|
|
151
|
+
agent.planner.ui.subtask_finished = Subtarea finalizada {index}/{total}: {name}
|
|
152
|
+
agent.planner.ui.subtask_header.one = **===== Subtarea {index}: {name} =====**
|
|
153
|
+
agent.planner.ui.subtask_header.progress = **===== Subtarea {index}/{total}: {name} =====**
|
|
154
|
+
agent.planner.ui.updated_remaining_plan = Plan restante actualizado:
|
|
127
155
|
alert.preset.empty_id = Se requiere un nombre.
|
|
128
156
|
alert.preset.no_chat_completion = Se requiere al menos una de las siguientes: chat, finalización, img o visión.
|
|
129
157
|
alert.snap.file_manager = Se detectó un snapshot. Por favor, abra el directorio manualmente en su gestor de archivos:
|
|
@@ -183,6 +211,9 @@ attachments.header.path = Ruta
|
|
|
183
211
|
attachments.header.size = Tamaño
|
|
184
212
|
attachments.header.store = Almacén(es) de vectores
|
|
185
213
|
attachments.options.label = Opciones
|
|
214
|
+
attachments.paste.file = Archivo adjunto del portapapeles
|
|
215
|
+
attachments.paste.img = Imagen del portapapeles
|
|
216
|
+
attachments.paste.success = Archivo adjunto agregado desde el portapapeles
|
|
186
217
|
attachments.send_clear = Limpiar lista después de enviar
|
|
187
218
|
attachments.tab = Adjuntos
|
|
188
219
|
attachments_uploaded.btn.clear = Limpiar archivos
|
|
@@ -1553,6 +1584,7 @@ toolbox.agent.llama.loop.label = Bucle / evaluar (hasta puntuación, 0% = infini
|
|
|
1553
1584
|
toolbox.agent.llama.loop.mode.complete = Min. % finalización
|
|
1554
1585
|
toolbox.agent.llama.loop.mode.score = Min. % evaluación
|
|
1555
1586
|
toolbox.agent.llama.loop.score.tooltip = Puntuación requerida para finalizar, 0% = bucle infinito
|
|
1587
|
+
toolbox.agent.preset.placeholder = El prompt del sistema es definible por agente en el preset del agente
|
|
1556
1588
|
toolbox.agents.label = Agentes
|
|
1557
1589
|
toolbox.assistants.label = Asistentes
|
|
1558
1590
|
toolbox.env.label = Env
|
|
@@ -118,12 +118,40 @@ agent.option.tools.local = Autoriser les outils locaux
|
|
|
118
118
|
agent.option.tools.local.desc = Autoriser l'utilisation des outils locaux pour cet agent
|
|
119
119
|
agent.option.tools.remote = Autoriser les outils distants
|
|
120
120
|
agent.option.tools.remote.desc = Autoriser l'utilisation des outils distants pour cet agent
|
|
121
|
+
agent.planner.display.executor = Exécuteur
|
|
122
|
+
agent.planner.display.executor_agent = AgentFonction
|
|
123
|
+
agent.planner.display.planner = FluxDeTravailDuPlanificateur
|
|
124
|
+
agent.planner.label.execute = Exécuter
|
|
125
|
+
agent.planner.label.plan = Plan
|
|
126
|
+
agent.planner.label.refine = Affiner
|
|
127
|
+
agent.planner.label.refine.index = Affiner {index}
|
|
128
|
+
agent.planner.label.refine.index_total = Affiner {index}/{total}
|
|
129
|
+
agent.planner.label.step = Étape
|
|
130
|
+
agent.planner.label.subtask = Sous-tâche
|
|
131
|
+
agent.planner.label.subtask.index = Sous-tâche {index}
|
|
132
|
+
agent.planner.label.subtask.index_total = Sous-tâche {index}/{total}
|
|
133
|
+
agent.planner.label.with_name = {base}: {name}
|
|
121
134
|
agent.planner.plan.label = Planificateur (initial)
|
|
122
135
|
agent.planner.plan.prompt.desc = Prompt initial du plan
|
|
123
136
|
agent.planner.refine.label = Planificateur (raffinement)
|
|
124
137
|
agent.planner.refine.prompt.desc = Prompt de raffinement du plan
|
|
125
138
|
agent.planner.step.label = Exécuter le prompt
|
|
126
139
|
agent.planner.step.prompt.desc = Étapes d'exécution du prompt
|
|
140
|
+
agent.planner.ui.current_plan = Plan actuel:
|
|
141
|
+
agent.planner.ui.dependencies = Dépendances:
|
|
142
|
+
agent.planner.ui.executing_plan = Exécution du plan...
|
|
143
|
+
agent.planner.ui.execution_stopped = Exécution du plan arrêtée.
|
|
144
|
+
agent.planner.ui.expected_output = Résultat attendu:
|
|
145
|
+
agent.planner.ui.plan_execution_finished = Exécution du plan terminée.
|
|
146
|
+
agent.planner.ui.plan_finished = Plan terminé.
|
|
147
|
+
agent.planner.ui.plan_marked_complete = Plan marqué comme terminé: {reason}
|
|
148
|
+
agent.planner.ui.refine_failed_parse = L'affinage a échoué; continuation sans changement.
|
|
149
|
+
agent.planner.ui.refining_remaining_plan = Raffinement du plan restant...
|
|
150
|
+
agent.planner.ui.subtask_failed = Échec de la sous-tâche: {error}
|
|
151
|
+
agent.planner.ui.subtask_finished = Sous-tâche terminée {index}/{total}: {name}
|
|
152
|
+
agent.planner.ui.subtask_header.one = **===== Sous-tâche {index}: {name} =====**
|
|
153
|
+
agent.planner.ui.subtask_header.progress = **===== Sous-tâche {index}/{total}: {name} =====**
|
|
154
|
+
agent.planner.ui.updated_remaining_plan = Plan restant mis à jour:
|
|
127
155
|
alert.preset.empty_id = Le nom est requis.
|
|
128
156
|
alert.preset.no_chat_completion = Au moins une des options suivantes est requise : chat, complétion, img ou vision !
|
|
129
157
|
alert.snap.file_manager = Snap détecté. Veuillez ouvrir le répertoire manuellement dans votre gestionnaire de fichiers :
|
|
@@ -183,6 +211,9 @@ attachments.header.path = Chemin
|
|
|
183
211
|
attachments.header.size = Taille
|
|
184
212
|
attachments.header.store = Base(s) vectorielle(s)
|
|
185
213
|
attachments.options.label = Options
|
|
214
|
+
attachments.paste.file = Pièce jointe du presse-papiers
|
|
215
|
+
attachments.paste.img = Image du presse-papiers
|
|
216
|
+
attachments.paste.success = Pièce jointe ajoutée depuis le presse-papiers
|
|
186
217
|
attachments.send_clear = Effacer la liste après envoi
|
|
187
218
|
attachments.tab = Pièces jointes
|
|
188
219
|
attachments_uploaded.btn.clear = Effacer les fichiers
|
|
@@ -1552,6 +1583,7 @@ toolbox.agent.llama.loop.label = Boucle / évaluer (jusqu'à score, 0% = infini)
|
|
|
1552
1583
|
toolbox.agent.llama.loop.mode.complete = Min. % achèvement
|
|
1553
1584
|
toolbox.agent.llama.loop.mode.score = Min. % évaluation
|
|
1554
1585
|
toolbox.agent.llama.loop.score.tooltip = Score requis pour terminer, 0% = boucle infinie
|
|
1586
|
+
toolbox.agent.preset.placeholder = Le prompt système est définissable par agent dans le préréglage de l'agent
|
|
1555
1587
|
toolbox.agents.label = Agents
|
|
1556
1588
|
toolbox.assistants.label = Assistants
|
|
1557
1589
|
toolbox.env.label = Env
|