pygpt-net 2.6.62__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.
Files changed (74) hide show
  1. pygpt_net/CHANGELOG.txt +11 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/controller/attachment/attachment.py +17 -8
  4. pygpt_net/controller/camera/camera.py +4 -4
  5. pygpt_net/controller/lang/custom.py +2 -2
  6. pygpt_net/controller/presets/editor.py +65 -1
  7. pygpt_net/controller/ui/mode.py +18 -3
  8. pygpt_net/core/agents/custom/llama_index/runner.py +15 -52
  9. pygpt_net/core/agents/custom/runner.py +194 -76
  10. pygpt_net/core/agents/runners/llama_workflow.py +60 -10
  11. pygpt_net/core/render/web/renderer.py +11 -0
  12. pygpt_net/data/config/config.json +3 -3
  13. pygpt_net/data/config/models.json +3 -3
  14. pygpt_net/data/config/presets/agent_openai_b2b.json +1 -15
  15. pygpt_net/data/config/presets/agent_openai_coder.json +0 -0
  16. pygpt_net/data/config/presets/agent_openai_evolve.json +1 -23
  17. pygpt_net/data/config/presets/agent_openai_planner.json +1 -21
  18. pygpt_net/data/config/presets/agent_openai_researcher.json +1 -21
  19. pygpt_net/data/config/presets/agent_openai_supervisor.json +1 -13
  20. pygpt_net/data/config/presets/agent_openai_writer.json +1 -15
  21. pygpt_net/data/config/presets/agent_supervisor.json +1 -11
  22. pygpt_net/data/js/app/runtime.js +10 -0
  23. pygpt_net/data/js/app/scroll.js +14 -0
  24. pygpt_net/data/js/app.min.js +6 -4
  25. pygpt_net/data/locale/locale.de.ini +32 -0
  26. pygpt_net/data/locale/locale.en.ini +37 -0
  27. pygpt_net/data/locale/locale.es.ini +32 -0
  28. pygpt_net/data/locale/locale.fr.ini +32 -0
  29. pygpt_net/data/locale/locale.it.ini +32 -0
  30. pygpt_net/data/locale/locale.pl.ini +34 -2
  31. pygpt_net/data/locale/locale.uk.ini +32 -0
  32. pygpt_net/data/locale/locale.zh.ini +32 -0
  33. pygpt_net/js_rc.py +7571 -7499
  34. pygpt_net/provider/agents/base.py +0 -0
  35. pygpt_net/provider/agents/llama_index/flow_from_schema.py +0 -0
  36. pygpt_net/provider/agents/llama_index/planner_workflow.py +15 -3
  37. pygpt_net/provider/agents/llama_index/workflow/codeact.py +0 -0
  38. pygpt_net/provider/agents/llama_index/workflow/planner.py +272 -44
  39. pygpt_net/provider/agents/llama_index/workflow/supervisor.py +0 -0
  40. pygpt_net/provider/agents/openai/agent.py +0 -0
  41. pygpt_net/provider/agents/openai/agent_b2b.py +4 -4
  42. pygpt_net/provider/agents/openai/agent_planner.py +631 -254
  43. pygpt_net/provider/agents/openai/agent_with_experts.py +0 -0
  44. pygpt_net/provider/agents/openai/agent_with_experts_feedback.py +4 -4
  45. pygpt_net/provider/agents/openai/agent_with_feedback.py +4 -4
  46. pygpt_net/provider/agents/openai/evolve.py +6 -9
  47. pygpt_net/provider/agents/openai/flow_from_schema.py +0 -0
  48. pygpt_net/provider/agents/openai/supervisor.py +290 -37
  49. pygpt_net/provider/api/google/__init__.py +9 -3
  50. pygpt_net/provider/api/google/image.py +11 -1
  51. pygpt_net/provider/api/google/music.py +375 -0
  52. pygpt_net/provider/api/x_ai/__init__.py +0 -0
  53. pygpt_net/provider/core/agent/__init__.py +0 -0
  54. pygpt_net/provider/core/agent/base.py +0 -0
  55. pygpt_net/provider/core/agent/json_file.py +0 -0
  56. pygpt_net/provider/core/config/patches/patch_before_2_6_42.py +0 -0
  57. pygpt_net/provider/llms/base.py +0 -0
  58. pygpt_net/provider/llms/deepseek_api.py +0 -0
  59. pygpt_net/provider/llms/google.py +0 -0
  60. pygpt_net/provider/llms/hugging_face_api.py +0 -0
  61. pygpt_net/provider/llms/hugging_face_router.py +0 -0
  62. pygpt_net/provider/llms/mistral.py +0 -0
  63. pygpt_net/provider/llms/perplexity.py +0 -0
  64. pygpt_net/provider/llms/x_ai.py +0 -0
  65. pygpt_net/ui/widget/dialog/confirm.py +34 -8
  66. pygpt_net/ui/widget/option/combo.py +149 -11
  67. pygpt_net/ui/widget/textarea/input.py +1 -1
  68. pygpt_net/ui/widget/textarea/web.py +1 -1
  69. pygpt_net/ui/widget/vision/camera.py +135 -12
  70. {pygpt_net-2.6.62.dist-info → pygpt_net-2.6.64.dist-info}/METADATA +13 -2
  71. {pygpt_net-2.6.62.dist-info → pygpt_net-2.6.64.dist-info}/RECORD +53 -52
  72. {pygpt_net-2.6.62.dist-info → pygpt_net-2.6.64.dist-info}/LICENSE +0 -0
  73. {pygpt_net-2.6.62.dist-info → pygpt_net-2.6.64.dist-info}/WHEEL +0 -0
  74. {pygpt_net-2.6.62.dist-info → pygpt_net-2.6.64.dist-info}/entry_points.txt +0 -0
@@ -31,27 +31,7 @@
31
31
  "enabled": true,
32
32
  "description": "",
33
33
  "remote_tools": "",
34
- "extra": {
35
- "openai_agent_bot_researcher": {
36
- "writer": {
37
- "prompt": "You are a senior researcher tasked with writing a cohesive report for a research query. You will be provided with the original query, and some initial research done by a research assistant.\nYou should first come up with an outline for the report that describes the structure and flow of the report. Then, generate the report and return that as your final output.\nThe final output should be in markdown format, and it should be lengthy and detailed. Aim for 5-10 pages of content, at least 1000 words.",
38
- "allow_local_tools": false,
39
- "allow_remote_tools": false
40
- },
41
- "planner": {
42
- "model": "gpt-4o",
43
- "prompt": "You are a helpful research assistant. Given a query, come up with a set of web searches to perform to best answer the query. Output between 5 and 20 terms to query for.",
44
- "allow_local_tools": false,
45
- "allow_remote_tools": false
46
- },
47
- "search": {
48
- "model": "gpt-4o",
49
- "prompt": "You are a research assistant. Given a search term, you search the web for that term and produce a concise summary of the results. The summary must be 2-3 paragraphs and less than 300 words. Capture the main points. Write succinctly, no need to have complete sentences or good grammar. This will be consumed by someone synthesizing a report, so its vital you capture the essence and ignore any fluff. Do not include any additional commentary other than the summary itself.",
50
- "allow_local_tools": false,
51
- "allow_remote_tools": true
52
- }
53
- }
54
- },
34
+ "extra": {},
55
35
  "__meta__": {
56
36
  "version": "2.5.81",
57
37
  "app.version": "2.5.81",
@@ -33,19 +33,7 @@
33
33
  "enabled": true,
34
34
  "description": "",
35
35
  "remote_tools": "",
36
- "extra": {
37
- "openai_agent_supervisor": {
38
- "supervisor": {
39
- "prompt": "\n You are the \u201cSupervisor\u201d (orchestrator). You never use tools directly except the tool that runs the Worker.\n Process:\n - Decompose the user's task into actionable instructions for the Worker.\n - Do NOT pass your conversation history to the Worker. Pass ONLY a concise, self-contained instruction.\n - After each Worker result, evaluate against a clear Definition of Done (DoD). If not met, call the Worker again with a refined instruction.\n - Ask the user only if absolutely necessary. If you must, STOP and output a single JSON with:\n {\"action\":\"ask_user\",\"question\":\"...\",\"reasoning\":\"...\"}\n - When done, output a single JSON:\n {\"action\":\"final\",\"final_answer\":\"...\",\"reasoning\":\"...\"}\n - Otherwise, to run the Worker, call the run_worker tool with a short instruction.\n Respond in the user's language. Keep outputs short and precise.\n "
40
- },
41
- "worker": {
42
- "model": "gpt-4o",
43
- "prompt": "\n You are the \u201cWorker\u201d. You execute Supervisor instructions strictly, using your tools.\n - Keep your own memory across calls (Worker session).\n - Return a concise result with key evidence/extracts from tools when applicable.\n - Do not ask the user questions directly; if instruction is underspecified, clearly state what is missing.\n Respond in the user's language.\n ",
44
- "allow_local_tools": true,
45
- "allow_remote_tools": true
46
- }
47
- }
48
- },
36
+ "extra": {},
49
37
  "__meta__": {
50
38
  "version": "2.6.8",
51
39
  "app.version": "2.6.8",
@@ -31,21 +31,7 @@
31
31
  "enabled": true,
32
32
  "description": "",
33
33
  "remote_tools": "",
34
- "extra": {
35
- "openai_agent_feedback": {
36
- "base": {
37
- "prompt": "You generate a very short story outline based on the user's input. If there is any feedback provided, use it to improve the outline.",
38
- "allow_local_tools": false,
39
- "allow_remote_tools": false
40
- },
41
- "feedback": {
42
- "model": "gpt-4o",
43
- "prompt": "You evaluate a story outline and decide if it's good enough. \nIf it's not good enough, you provide feedback on what needs to be improved. \nNever give it a pass on the first try. After 5 attempts, you can give it a pass if the story outline is good enough - do not go for perfection.",
44
- "allow_local_tools": false,
45
- "allow_remote_tools": false
46
- }
47
- }
48
- },
34
+ "extra": {},
49
35
  "__meta__": {
50
36
  "version": "2.5.81",
51
37
  "app.version": "2.5.81",
@@ -33,17 +33,7 @@
33
33
  "enabled": true,
34
34
  "description": "",
35
35
  "remote_tools": "",
36
- "extra": {
37
- "supervisor": {
38
- "supervisor": {
39
- "prompt": "\nYou are the \u201cSupervisor\u201d \u2013 the main orchestrator. Do not use tools directly.\nYour tasks:\n- Break down the user's task into steps and create precise instructions for the \u201cWorker\u201d agent.\n- Do not pass your history/memory to the Worker. Only pass minimal, self-sufficient instructions.\n- After each Worker response, assess progress towards the Definition of Done (DoD). If not met \u2013 generate a better instruction.\n- Ask the user only when absolutely necessary. Then stop and return the question.\n- When the task is complete \u2013 return the final answer to the user.\nAlways return only ONE JSON object:\n{\n \"action\": \"task\" | \"final\" | \"ask_user\",\n \"instruction\": \"<Worker's instruction or ''>\",\n \"final_answer\": \"<final answer or ''>\",\n \"question\": \"<user question or ''>\",\n \"reasoning\": \"<brief reasoning and quality control>\",\n \"done_criteria\": \"<list/text of DoD criteria>\"\n}\nEnsure proper JSON (no comments, no trailing commas). Respond in the user's language.\n"
40
- },
41
- "worker": {
42
- "model": "gpt-4o",
43
- "prompt": "\nYou are the \u201cWorker\u201d \u2013 executor of the Supervisor's instructions. You have your own memory and tools.\n- Execute the Supervisor's instructions precisely and concisely.\n- Use the available tools and return a brief result + relevant data/reasoning.\n- Maintain the working context in your memory (only Worker).\n- Return plain text (not JSON) unless instructed otherwise by the Supervisor.\n- Respond in the user's language.\n"
44
- }
45
- }
46
- },
36
+ "extra": {},
47
37
  "__meta__": {
48
38
  "version": "2.6.8",
49
39
  "app.version": "2.6.8",
@@ -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) => {
@@ -374,6 +375,12 @@ class Runtime {
374
375
  api_showTips = () => this.tips.show();
375
376
  api_hideTips = () => this.tips.hide();
376
377
 
378
+ // API: begin/end.
379
+ api_begin = () => {};
380
+ api_end = () => {
381
+ this.scrollMgr.forceScrollToBottomImmediateAtEnd();
382
+ }
383
+
377
384
  // API: custom markup rules control.
378
385
  api_getCustomMarkupRules = () => this.customMarkup.getRules();
379
386
  api_setCustomMarkupRules = (rules) => {
@@ -478,6 +485,9 @@ window.appendStreamTyped = (type, name, chunk) => runtime.api_onChunk(name, chun
478
485
  window.nextStream = () => runtime.api_nextStream();
479
486
  window.clearStream = () => runtime.api_clearStream();
480
487
 
488
+ window.begin = () => runtime.api_begin();
489
+ window.end = () => runtime.api_end();
490
+
481
491
  window.appendNode = (payload) => runtime.api_appendNode(payload);
482
492
  window.replaceNodes = (payload) => runtime.api_replaceNodes(payload);
483
493
  window.appendToInput = (html) => runtime.api_appendToInput(html);
@@ -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;
@@ -1,4 +1,4 @@
1
- /* app.min.js — generated on 2025-09-22 22:18:13 by bin/minify_js.py using rjsmin */
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,15 +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.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(_){}
870
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');}
871
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(_){}
872
873
  try{const mm=getMathMode();if(mm==='finalize-only')this.math.schedule(el,0,true);else this.math.schedule(el);}catch(_){}
873
- 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_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(_){}
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(_){}
874
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);}
875
877
  cleanup(){this.tips.cleanup();try{this.bridge.disconnect();}catch(_){}
876
878
  this.events.cleanup();this.highlighter.cleanup();this.math.cleanup();this.streamQ.clear();this.dom.cleanup();}}
877
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);}}};}
878
- 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);}
879
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});}
880
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
@@ -102,16 +102,21 @@ agent.option.prompt.b1.desc = Prompt for bot 1
102
102
  agent.option.prompt.b2.desc = Prompt for bot 2
103
103
  agent.option.prompt.base.desc = Prompt for Base Agent
104
104
  agent.option.prompt.chooser.desc = Prompt for Chooser agent
105
+ agent.option.prompt.desc = Prompt for agent
105
106
  agent.option.prompt.feedback.desc = Prompt for feedback evaluation
106
107
  agent.option.prompt.planner.desc = Prompt for Planner agent
108
+ agent.option.prompt.refine.desc = Prompt for plan refining
107
109
  agent.option.prompt.search.desc = Prompt for search agent
108
110
  agent.option.prompt.supervisor.desc = Prompt for Supervisor
109
111
  agent.option.prompt.worker.desc = Prompt for Worker
112
+ agent.option.refine.after_each = After each step
113
+ agent.option.refine.after_each.desc = Refine plan after each step
110
114
  agent.option.role = Short description of the agent's operation for instructing the model (optional)
111
115
  agent.option.section.base = Base agent
112
116
  agent.option.section.chooser = Chooser
113
117
  agent.option.section.feedback = Feedback
114
118
  agent.option.section.planner = Planner
119
+ agent.option.section.refine = Refine plan
115
120
  agent.option.section.search = Search
116
121
  agent.option.section.supervisor = Supervisor
117
122
  agent.option.section.worker = Worker
@@ -120,12 +125,40 @@ agent.option.tools.local = Allow local tools
120
125
  agent.option.tools.local.desc = Allow usage of local tools for this agent
121
126
  agent.option.tools.remote = Allow remote tools
122
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}
123
141
  agent.planner.plan.label = Planner (initial)
124
142
  agent.planner.plan.prompt.desc = Initial plan prompt
125
143
  agent.planner.refine.label = Planner (refine)
126
144
  agent.planner.refine.prompt.desc = Plan refine prompt
127
145
  agent.planner.step.label = Execute prompt
128
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:
129
162
  alert.preset.empty_id = Name is required.
130
163
  alert.preset.no_chat_completion = At least one of: chat, completion, img or vision option is required!
131
164
  alert.snap.file_manager = Snap detected. Please open the directory manually in your file manager:
@@ -186,6 +219,9 @@ attachments.header.path = Path
186
219
  attachments.header.size = Size
187
220
  attachments.header.store = Vector Store(s)
188
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
189
225
  attachments.send_clear = Clear list after sending
190
226
  attachments.tab = Attachments
191
227
  attachments_uploaded.btn.clear = Clear
@@ -1623,6 +1659,7 @@ toolbox.agent.llama.loop.mode.complete = Min. % complete
1623
1659
  toolbox.agent.llama.loop.mode.score = Min. % score
1624
1660
  toolbox.agent.llama.loop.mode.tooltip = Evaluate task completion / or task result accuracy
1625
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
1626
1663
  toolbox.agents.label = Agents
1627
1664
  toolbox.assistants.label = Assistants
1628
1665
  toolbox.env.label = Env
@@ -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
@@ -118,12 +118,40 @@ agent.option.tools.local = Consenti strumenti locali
118
118
  agent.option.tools.local.desc = Consenti utilizzo strumenti locali per questo agente
119
119
  agent.option.tools.remote = Consenti strumenti remoti
120
120
  agent.option.tools.remote.desc = Consenti utilizzo strumenti remoti per questo agente
121
+ agent.planner.display.executor = Esecutore
122
+ agent.planner.display.executor_agent = AgenteFunzione
123
+ agent.planner.display.planner = FlussoDiLavoroDelPianificatore
124
+ agent.planner.label.execute = Esegui
125
+ agent.planner.label.plan = Piano
126
+ agent.planner.label.refine = Raffinare
127
+ agent.planner.label.refine.index = Raffinare {index}
128
+ agent.planner.label.refine.index_total = Raffinare {index}/{total}
129
+ agent.planner.label.step = Passo
130
+ agent.planner.label.subtask = Sotto-attività
131
+ agent.planner.label.subtask.index = Sotto-attività {index}
132
+ agent.planner.label.subtask.index_total = Sotto-attività {index}/{total}
133
+ agent.planner.label.with_name = {base}: {name}
121
134
  agent.planner.plan.label = Pianificatore (iniziale)
122
135
  agent.planner.plan.prompt.desc = Prompt del piano iniziale
123
136
  agent.planner.refine.label = Pianificatore (raffinamento)
124
137
  agent.planner.refine.prompt.desc = Prompt di raffinamento del piano
125
138
  agent.planner.step.label = Esegui prompt
126
139
  agent.planner.step.prompt.desc = Esecuzione dei passi del prompt
140
+ agent.planner.ui.current_plan = Piano attuale:
141
+ agent.planner.ui.dependencies = Dipendenze:
142
+ agent.planner.ui.executing_plan = Implementazione del piano...
143
+ agent.planner.ui.execution_stopped = Esecuzione del piano interrotta.
144
+ agent.planner.ui.expected_output = Risultato atteso:
145
+ agent.planner.ui.plan_execution_finished = Esecuzione del piano completata.
146
+ agent.planner.ui.plan_finished = Piano completato.
147
+ agent.planner.ui.plan_marked_complete = Piano contrassegnato come completo: {reason}
148
+ agent.planner.ui.refine_failed_parse = Passo di raffinatezza non riuscito; continuare senza modifiche.
149
+ agent.planner.ui.refining_remaining_plan = Raffinamento del piano rimanente...
150
+ agent.planner.ui.subtask_failed = Sotto-attività fallita: {error}
151
+ agent.planner.ui.subtask_finished = Sotto-attività completata {index}/{total}: {name}
152
+ agent.planner.ui.subtask_header.one = **===== Sotto-attività {index}: {name} =====**
153
+ agent.planner.ui.subtask_header.progress = **===== Sotto-attività {index}/{total}: {name} =====**
154
+ agent.planner.ui.updated_remaining_plan = Piano rimanente aggiornato:
127
155
  alert.preset.empty_id = Il nome è richiesto.
128
156
  alert.preset.no_chat_completion = È richiesta almeno una delle opzioni: chat, completamento, immagine o visione!
129
157
  alert.snap.file_manager = Rilevato Snap. Apri la cartella manualmente nel file manager:
@@ -183,6 +211,9 @@ attachments.header.path = Percorso
183
211
  attachments.header.size = Dimensione
184
212
  attachments.header.store = Archivio(i) vettoriale(i)
185
213
  attachments.options.label = Opzioni
214
+ attachments.paste.file = Allegato dagli appunti
215
+ attachments.paste.img = Immagine dagli appunti
216
+ attachments.paste.success = Allegato aggiunto dagli appunti
186
217
  attachments.send_clear = Pulire l'elenco dopo l'invio
187
218
  attachments.tab = Allegati
188
219
  attachments_uploaded.btn.clear = Pulisci file
@@ -1552,6 +1583,7 @@ toolbox.agent.llama.loop.label = Ciclo / valuta (fino a punteggio, 0% = infinito
1552
1583
  toolbox.agent.llama.loop.mode.complete = Min. % completamento
1553
1584
  toolbox.agent.llama.loop.mode.score = Min. % valutazione
1554
1585
  toolbox.agent.llama.loop.score.tooltip = Punteggio richiesto per terminare, 0% = ciclo infinito
1586
+ toolbox.agent.preset.placeholder = Il prompt di sistema è definibile per ciascun agente nel preset agente
1555
1587
  toolbox.agents.label = Agenti
1556
1588
  toolbox.assistants.label = Assistenti
1557
1589
  toolbox.env.label = Env
@@ -118,12 +118,40 @@ agent.option.tools.local = Pozwól na lokalne narzędzia
118
118
  agent.option.tools.local.desc = Pozwól na użycie lokalnych narzędzi dla tego agenta
119
119
  agent.option.tools.remote = Pozwól na zdalne narzędzia
120
120
  agent.option.tools.remote.desc = Pozwól na użycie zdalnych narzędzi dla tego agenta
121
+ agent.planner.display.executor = Executor
122
+ agent.planner.display.executor_agent = FunctionAgent
123
+ agent.planner.display.planner = PlannerWorkflow
124
+ agent.planner.label.execute = Wykonaj
125
+ agent.planner.label.plan = Plan
126
+ agent.planner.label.refine = Udoskonal
127
+ agent.planner.label.refine.index = Udoskonal {index}
128
+ agent.planner.label.refine.index_total = Udoskonal {index}/{total}
129
+ agent.planner.label.step = Krok
130
+ agent.planner.label.subtask = Podzadanie
131
+ agent.planner.label.subtask.index = Podzadanie {index}
132
+ agent.planner.label.subtask.index_total = Podzadanie {index}/{total}
133
+ agent.planner.label.with_name = {base}: {name}
121
134
  agent.planner.plan.label = Planista (wstępny)
122
135
  agent.planner.plan.prompt.desc = Wstępny prompt planu
123
136
  agent.planner.refine.label = Planista (refine)
124
137
  agent.planner.refine.prompt.desc = Refine prompt planu
125
- agent.planner.step.label = Wykonaj prompt
138
+ agent.planner.step.label = Wykonawca
126
139
  agent.planner.step.prompt.desc = Wykonywanie kroków promptu
140
+ agent.planner.ui.current_plan = Aktualny plan:
141
+ agent.planner.ui.dependencies = Zależności:
142
+ agent.planner.ui.executing_plan = Realizacja planu...
143
+ agent.planner.ui.execution_stopped = Realizacja planu zatrzymana.
144
+ agent.planner.ui.expected_output = Oczekiwany wynik:
145
+ agent.planner.ui.plan_execution_finished = Wykonanie planu zakończone.
146
+ agent.planner.ui.plan_finished = Plan zakończony.
147
+ agent.planner.ui.plan_marked_complete = Plan uznany za ukończony: {reason}
148
+ agent.planner.ui.refine_failed_parse = Udoskonalenie nie udało się; kontynuacja bez zmian.
149
+ agent.planner.ui.refining_remaining_plan = Udoskonalanie pozostałego planu...
150
+ agent.planner.ui.subtask_failed = Podzadanie nie powiodło się: {error}
151
+ agent.planner.ui.subtask_finished = Zakończono Podzadanie {index}/{total}: {name}
152
+ agent.planner.ui.subtask_header.one = **===== Podzadanie {index}: {name} =====**
153
+ agent.planner.ui.subtask_header.progress = **===== Podzadanie {index}/{total}: {name} =====**
154
+ agent.planner.ui.updated_remaining_plan = Zaktualizowany pozostały plan:
127
155
  alert.preset.empty_id = Podanie nazwy jest wymagane.
128
156
  alert.preset.no_chat_completion = Przynajmniej jedna opcja: czat, completion, obraz albo wizja jest wymagana!
129
157
  alert.snap.file_manager = Uruchomiono za pomocą Snap-a. Proszę otworzyć katalog manualnie za pomocą przeglądarki plików:
@@ -183,6 +211,9 @@ attachments.header.path = Ścieżka
183
211
  attachments.header.size = Rozmiar
184
212
  attachments.header.store = Baza(y) wektorowa
185
213
  attachments.options.label = Opcje
214
+ attachments.paste.file = Załącznik ze schowka
215
+ attachments.paste.img = Obraz ze schowka
216
+ attachments.paste.success = Dodano załącznik ze schowka
186
217
  attachments.send_clear = Wyczyść listę po wysłaniu
187
218
  attachments.tab = Załączniki
188
219
  attachments_uploaded.btn.clear = Wyczyść
@@ -659,7 +690,7 @@ event.control.voice_cmd.toggle = Kontrola głosowa: Przełącz
659
690
  event.control.voice_msg.start = Wejście głosowe: Rozpocznij
660
691
  event.control.voice_msg.stop = Wejście głosowe: Zatrzymaj
661
692
  event.control.voice_msg.toggle = Wejście głosowe: Przełącz
662
- exit.msg = Podoba Ci się PyGPT? Wesprzyj rozwój projektu:
693
+ exit.msg = Podoba Ci się PyGPT? Wesprzyj rozwój projektu:
663
694
  expert.wait.failed: Nie udało się wywołać eksperta
664
695
  expert.wait.status: Oczekiwanie na eksperta...
665
696
  files.delete.confirm = Usunąć plik/katalog?
@@ -1553,6 +1584,7 @@ toolbox.agent.llama.loop.label = Pętla / ocena (do wyniku, 0% = nieskończonoś
1553
1584
  toolbox.agent.llama.loop.mode.complete = Min. % zakończenia
1554
1585
  toolbox.agent.llama.loop.mode.score = Min. % oceny
1555
1586
  toolbox.agent.llama.loop.score.tooltip = Wymagany wynik do zakończenia, 0% = nieskończona pętla
1587
+ toolbox.agent.preset.placeholder = Prompt systemowy jest definiowalny dla każdego agenta w presecie Agenta
1556
1588
  toolbox.agents.label = Agenci
1557
1589
  toolbox.assistants.label = Asystenci
1558
1590
  toolbox.env.label = Env