pygpt-net 2.6.63__py3-none-any.whl → 2.6.65__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 (62) hide show
  1. pygpt_net/CHANGELOG.txt +16 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/app.py +3 -1
  4. pygpt_net/controller/attachment/attachment.py +17 -8
  5. pygpt_net/controller/camera/camera.py +4 -4
  6. pygpt_net/controller/files/files.py +71 -2
  7. pygpt_net/controller/lang/custom.py +2 -2
  8. pygpt_net/controller/presets/editor.py +137 -22
  9. pygpt_net/controller/ui/mode.py +18 -3
  10. pygpt_net/core/agents/custom/__init__.py +18 -2
  11. pygpt_net/core/agents/custom/runner.py +2 -2
  12. pygpt_net/core/attachments/clipboard.py +146 -0
  13. pygpt_net/core/render/web/renderer.py +44 -11
  14. pygpt_net/data/config/config.json +3 -3
  15. pygpt_net/data/config/models.json +3 -3
  16. pygpt_net/data/config/presets/agent_openai_coder.json +15 -1
  17. pygpt_net/data/css/style.dark.css +12 -0
  18. pygpt_net/data/css/style.light.css +12 -0
  19. pygpt_net/data/icons/pin2.svg +1 -0
  20. pygpt_net/data/icons/pin3.svg +3 -0
  21. pygpt_net/data/icons/point.svg +1 -0
  22. pygpt_net/data/icons/target.svg +1 -0
  23. pygpt_net/data/js/app/runtime.js +11 -4
  24. pygpt_net/data/js/app/scroll.js +14 -0
  25. pygpt_net/data/js/app/ui.js +19 -2
  26. pygpt_net/data/js/app/user.js +22 -54
  27. pygpt_net/data/js/app.min.js +13 -14
  28. pygpt_net/data/locale/locale.de.ini +32 -0
  29. pygpt_net/data/locale/locale.en.ini +38 -2
  30. pygpt_net/data/locale/locale.es.ini +32 -0
  31. pygpt_net/data/locale/locale.fr.ini +32 -0
  32. pygpt_net/data/locale/locale.it.ini +32 -0
  33. pygpt_net/data/locale/locale.pl.ini +34 -2
  34. pygpt_net/data/locale/locale.uk.ini +32 -0
  35. pygpt_net/data/locale/locale.zh.ini +32 -0
  36. pygpt_net/icons.qrc +4 -0
  37. pygpt_net/icons_rc.py +274 -137
  38. pygpt_net/js_rc.py +8262 -8230
  39. pygpt_net/provider/agents/llama_index/planner_workflow.py +15 -3
  40. pygpt_net/provider/agents/llama_index/workflow/planner.py +69 -41
  41. pygpt_net/provider/agents/openai/agent_planner.py +57 -35
  42. pygpt_net/provider/agents/openai/evolve.py +0 -3
  43. pygpt_net/provider/api/google/__init__.py +9 -3
  44. pygpt_net/provider/api/google/image.py +11 -1
  45. pygpt_net/provider/api/google/music.py +375 -0
  46. pygpt_net/provider/core/config/patch.py +8 -0
  47. pygpt_net/ui/__init__.py +6 -1
  48. pygpt_net/ui/dialog/preset.py +9 -4
  49. pygpt_net/ui/layout/chat/attachments.py +18 -1
  50. pygpt_net/ui/layout/status.py +3 -3
  51. pygpt_net/ui/widget/element/status.py +55 -0
  52. pygpt_net/ui/widget/filesystem/explorer.py +116 -2
  53. pygpt_net/ui/widget/lists/context.py +26 -16
  54. pygpt_net/ui/widget/option/combo.py +149 -11
  55. pygpt_net/ui/widget/textarea/input.py +71 -17
  56. pygpt_net/ui/widget/textarea/web.py +1 -1
  57. pygpt_net/ui/widget/vision/camera.py +135 -12
  58. {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.65.dist-info}/METADATA +18 -2
  59. {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.65.dist-info}/RECORD +62 -55
  60. {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.65.dist-info}/LICENSE +0 -0
  61. {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.65.dist-info}/WHEEL +0 -0
  62. {pygpt_net-2.6.63.dist-info → pygpt_net-2.6.65.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
1
- /* app.min.js — generated on 2025-09-27 09:10:08 by bin/minify_js.py using rjsmin */
1
+ /* app.min.js — generated on 2025-09-28 09:12:33 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;}
@@ -803,7 +804,7 @@ toggle(id){const el=document.getElementById('msg-bot-'+id);if(!el)return;const o
803
804
  /* data/js/app/ui.js */
804
805
  class UIManager{updateCSS(styles){let style=document.getElementById('app-style');if(!style){style=document.createElement('style');style.id='app-style';document.head.appendChild(style);}
805
806
  style.textContent=styles;}
806
- ensureStickyHeaderStyle(){let style=document.getElementById('code-sticky-style');if(style)return;style=document.createElement('style');style.id='code-sticky-style';style.textContent=['.code-wrapper { position: relative; }','.code-wrapper .code-header-wrapper { position: sticky; top: var(--code-header-sticky-top, -2px); z-index: 2; box-shadow: 0 1px 0 rgba(0,0,0,.06); }','.code-wrapper pre { overflow: visible; margin-top: 0; }','.code-wrapper pre code { display: block; white-space: pre; max-height: 100dvh; overflow: auto;',' overscroll-behavior: contain; -webkit-overflow-scrolling: touch; overflow-anchor: none; scrollbar-gutter: stable both-edges; scroll-behavior: auto; }','#_loader_.hidden { display: none !important; visibility: hidden !important; }','#_loader_.visible { display: block; visibility: visible; }','.msg-box.msg-user .msg { position: relative; }','.msg-box.msg-user .msg > .uc-content { display: block; overflow: visible; }','.msg-box.msg-user .msg > .uc-content.uc-collapsed { max-height: 1000px; overflow: hidden; }','.msg-box.msg-user .msg > .uc-toggle { display: none; margin-top: 8px; text-align: center; cursor: pointer; user-select: none; }','.msg-box.msg-user .msg > .uc-toggle.visible { display: block; }','.msg-box.msg-user .msg > .uc-toggle img { width: var(--uc-toggle-icon-size, 26px); height: var(--uc-toggle-icon-size, 26px); opacity: .8; }','.msg-box.msg-user .msg > .uc-toggle:hover img { opacity: 1; }','.msg-box.msg-user .msg .msg-copy-btn { position: absolute; top: 2px; right: 0px; z-index: 3;',' opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease, background-color .15s ease, border-color .15s ease;',' border-radius: 6px; padding: 4px; line-height: 0; border: 1px solid transparent; background: transparent; }','.msg-box.msg-user .msg:hover .msg-copy-btn, .msg-box.msg-user .msg:focus-within .msg-copy-btn { opacity: 1; pointer-events: auto; }','.msg-box.msg-user .msg .msg-copy-btn:hover { transform: scale(1.06); background: var(--copy-btn-bg-hover, rgba(0,0,0,.86)); border-color: var(--copy-btn-border, rgba(0,0,0,.08)); }','.msg-box.msg-user .msg .msg-copy-btn.copied { background: var(--copy-btn-bg-copied, rgba(150,150,150,.12)); border-color: var(--copy-btn-border-copied, rgba(150,150,150,.35)); animation: msg-copy-pop .25s ease; }','.msg-box.msg-user .msg .msg-copy-btn img { display: block; width: 18px; height: 18px; }','.code-wrapper .code-header-action.code-header-copy,','.code-wrapper .code-header-action.code-header-collapse { display: inline-flex; align-items: center; border-radius: 6px; padding: 2px; line-height: 0; border: 1px solid transparent; transition: transform .15s ease, background-color .15s ease, border-color .15s ease; }','.code-wrapper .code-header-action.code-header-copy:hover,','.code-wrapper .code-header-action.code-header-collapse:hover { transform: scale(1.06); background: var(--copy-btn-bg-hover, rgba(0,0,0,.76)); border-color: var(--copy-btn-border, rgba(0,0,0,.08)); }','.code-wrapper .code-header-action.copied { background: var(--copy-btn-bg-copied, rgba(150,150,150,.12)); border-color: var(--copy-btn-border-copied, rgba(150,150,150,.35)); animation: msg-copy-pop .25s ease; }','@keyframes msg-copy-pop { 0%{ transform: scale(1); } 60%{ transform: scale(1.1); } 100%{ transform: scale(1); } }'].join('\n');document.head.appendChild(style);}
807
+ ensureStickyHeaderStyle(){let style=document.getElementById('code-sticky-style');if(style)return;style=document.createElement('style');style.id='code-sticky-style';style.textContent=['.code-wrapper { position: relative; }','.code-wrapper .code-header-wrapper { position: sticky; top: var(--code-header-sticky-top, -2px); z-index: 2; box-shadow: 0 1px 0 rgba(0,0,0,.06); }','.code-wrapper pre { overflow: visible; margin-top: 0; }','.code-wrapper pre code { display: block; white-space: pre; max-height: 100dvh; overflow: auto;',' overscroll-behavior: contain; -webkit-overflow-scrolling: touch; overflow-anchor: none; scrollbar-gutter: stable both-edges; scroll-behavior: auto; }','#_loader_.hidden { display: none !important; visibility: hidden !important; }','#_loader_.visible { display: block; visibility: visible; }','.msg-box.msg-user .msg { position: relative; }','.msg-box.msg-user .msg > .uc-content { display: block; overflow: visible; }','.msg-box.msg-user .msg > .uc-content.uc-collapsed {',' max-height: var(--user-msg-collapse-max-h, 1000px);',' overflow: hidden;',' -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) calc(100% - var(--uc-fade-height, 64px)), rgba(0,0,0,0) 100%);',' mask-image: linear-gradient(to bottom, rgba(0,0,0,1) calc(100% - var(--uc-fade-height, 64px)), rgba(0,0,0,0) 100%);',' -webkit-mask-size: 100% 100%;',' mask-size: 100% 100%;',' -webkit-mask-repeat: no-repeat;',' mask-repeat: no-repeat;','}','.msg-box.msg-user .msg > .uc-content.uc-expanded {',' -webkit-mask-image: none;',' mask-image: none;','}','.msg-box.msg-user .msg > .uc-toggle { display: none; margin-top: 8px; text-align: center; cursor: pointer; user-select: none; }','.msg-box.msg-user .msg > .uc-toggle.visible { display: block; }','.msg-box.msg-user .msg > .uc-toggle img { width: var(--uc-toggle-icon-size, 26px); height: var(--uc-toggle-icon-size, 26px); opacity: .8; }','.msg-box.msg-user .msg > .uc-toggle:hover img { opacity: 1; }','.msg-box.msg-user .msg .msg-copy-btn { position: absolute; top: 2px; right: 0px; z-index: 3;',' opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease, background-color .15s ease, border-color .15s ease;',' border-radius: 6px; padding: 4px; line-height: 0; border: 1px solid transparent; background: transparent; }','.msg-box.msg-user .msg:hover .msg-copy-btn, .msg-box.msg-user .msg:focus-within .msg-copy-btn { opacity: 1; pointer-events: auto; }','.msg-box.msg-user .msg .msg-copy-btn:hover { transform: scale(1.06); background: var(--copy-btn-bg-hover, rgba(0,0,0,.86)); border-color: var(--copy-btn-border, rgba(0,0,0,.08)); }','.msg-box.msg-user .msg .msg-copy-btn.copied { background: var(--copy-btn-bg-copied, rgba(150,150,150,.12)); border-color: var(--copy-btn-border-copied, rgba(150,150,150,.35)); animation: msg-copy-pop .25s ease; }','.msg-box.msg-user .msg .msg-copy-btn img { display: block; width: 18px; height: 18px; }','.code-wrapper .code-header-action.code-header-copy,','.code-wrapper .code-header-action.code-header-collapse { display: inline-flex; align-items: center; border-radius: 6px; padding: 2px; line-height: 0; border: 1px solid transparent; transition: transform .15s ease, background-color .15s ease, border-color .15s ease; }','.code-wrapper .code-header-action.code-header-copy:hover,','.code-wrapper .code-header-action.code-header-collapse:hover { transform: scale(1.06); background: var(--copy-btn-bg-hover, rgba(0,0,0,.76)); border-color: var(--copy-btn-border, rgba(0,0,0,.08)); }','.code-wrapper .code-header-action.copied { background: var(--copy-btn-bg-copied, rgba(150,150,150,.12)); border-color: var(--copy-btn-border-copied, rgba(150,150,150,.35)); animation: msg-copy-pop .25s ease; }','@keyframes msg-copy-pop { 0%{ transform: scale(1); } 60%{ transform: scale(1.1); } 100%{ transform: scale(1); } }'].join('\n');document.head.appendChild(style);}
807
808
  enableEditIcons(){document.body&&document.body.classList.add('display-edit-icons');}
808
809
  disableEditIcons(){document.body&&document.body.classList.remove('display-edit-icons');}
809
810
  enableTimestamp(){document.body&&document.body.classList.add('display-timestamp');}
@@ -812,7 +813,7 @@ enableBlocks(){document.body&&document.body.classList.add('display-blocks');}
812
813
  disableBlocks(){document.body&&document.body.classList.remove('display-blocks');}};
813
814
 
814
815
  /* data/js/app/user.js */
815
- class UserCollapseManager{constructor(cfg){this.cfg=cfg||{};this.threshold=Utils.g('USER_MSG_COLLAPSE_HEIGHT_PX',1000);this._processed=new Set();this.ellipsisText=' [...]';}
816
+ class UserCollapseManager{constructor(cfg){this.cfg=cfg||{};this.threshold=Utils.g('USER_MSG_COLLAPSE_HEIGHT_PX',1000);this._processed=new Set();}
816
817
  _icons(){const I=(this.cfg&&this.cfg.ICONS)||{};return{expand:I.EXPAND||'',collapse:I.COLLAPSE||''};}
817
818
  _labels(){const L=(this.cfg&&this.cfg.LOCALE)||{};return{expand:L.EXPAND||'Expand',collapse:L.COLLAPSE||'Collapse'};}
818
819
  _afterLayout(fn){try{if(typeof runtime!=='undefined'&&runtime.raf&&typeof runtime.raf.schedule==='function'){const key={t:'UC:afterLayout',i:Math.random()};runtime.raf.schedule(key,()=>{try{fn&&fn();}catch(_){}},'UserCollapse',0);return;}}catch(_){}
@@ -822,12 +823,10 @@ this._afterLayout(()=>{try{if(toggleEl.scrollIntoView){try{toggleEl.scrollIntoVi
822
823
  _ensureStructure(msg){if(!msg||!msg.isConnected)return null;let content=msg.querySelector('.uc-content');if(!content){content=document.createElement('div');content.className='uc-content';const frag=document.createDocumentFragment();while(msg.firstChild)frag.appendChild(msg.firstChild);content.appendChild(frag);msg.appendChild(content);}
823
824
  let toggle=msg.querySelector('.uc-toggle');if(!toggle){const icons=this._icons();const labels=this._labels();toggle=document.createElement('div');toggle.className='uc-toggle';toggle.tabIndex=0;toggle.setAttribute('role','button');toggle.setAttribute('aria-expanded','false');toggle.title=labels.expand;const img=document.createElement('img');img.className='uc-toggle-icon';img.alt=labels.expand;img.src=icons.expand;img.width=26;img.height=26;toggle.appendChild(img);toggle.addEventListener('click',(ev)=>{ev.preventDefault();ev.stopPropagation();this.toggleFromToggle(toggle);});toggle.addEventListener('keydown',(ev)=>{if(ev.key==='Enter'||ev.key===' '){ev.preventDefault();ev.stopPropagation();this.toggleFromToggle(toggle);}},{passive:false});msg.appendChild(toggle);}
824
825
  this._processed.add(msg);msg.dataset.ucInit='1';return{content,toggle};}
825
- _ensureEllipsisEl(msg,contentEl){const content=contentEl||(msg&&msg.querySelector('.uc-content'));if(!content)return null;if(getComputedStyle(content).position==='static'){content.style.position='relative';}
826
- let dot=content.querySelector('.uc-ellipsis');if(!dot){dot=document.createElement('span');dot.className='uc-ellipsis';dot.textContent=this.ellipsisText;dot.style.position='absolute';dot.style.right='0';dot.style.bottom='0';dot.style.paddingLeft='6px';dot.style.pointerEvents='none';dot.style.zIndex='1';dot.style.fontWeight='500';dot.style.opacity='0.75';dot.setAttribute('aria-hidden','true');dot.setAttribute('data-copy-ignore','1');content.appendChild(dot);}
827
- return dot;}
828
- _showEllipsis(msg,contentEl){const dot=this._ensureEllipsisEl(msg,contentEl);if(dot)dot.style.display='inline';}
829
- _hideEllipsis(msg){const content=msg&&msg.querySelector('.uc-content');if(!content)return;const dot=content.querySelector('.uc-ellipsis');if(dot&&dot.parentNode){dot.parentNode.removeChild(dot);}
830
- try{if(content&&content.style&&content.querySelector('.uc-ellipsis')==null){content.style.position='';}}catch(_){}}
826
+ _ensureEllipsisEl(msg,contentEl){const content=contentEl||(msg&&msg.querySelector('.uc-content'));if(!content)return null;try{const legacy=content.querySelector('.uc-ellipsis');if(legacy&&legacy.parentNode){legacy.parentNode.removeChild(legacy);}}catch(_){}
827
+ return null;}
828
+ _showEllipsis(msg,contentEl){this._ensureEllipsisEl(msg,contentEl);}
829
+ _hideEllipsis(msg){this._ensureEllipsisEl(msg,null);}
831
830
  apply(root){const scope=root||document;let list;if(scope.nodeType===1)list=scope.querySelectorAll('.msg-box.msg-user .msg');else list=document.querySelectorAll('.msg-box.msg-user .msg');if(!list||!list.length)return;for(let i=0;i<list.length;i++){const msg=list[i];const st=this._ensureStructure(msg);if(!st)continue;this._update(msg,st.content,st.toggle);}}
832
831
  _update(msg,contentEl,toggleEl){const c=contentEl||(msg&&msg.querySelector('.uc-content'));if(!msg||!c)return;if(this.threshold===0||this.threshold==='0'){const t=toggleEl||msg.querySelector('.uc-toggle');const labels=this._labels();c.classList.remove('uc-collapsed');c.classList.remove('uc-expanded');msg.dataset.ucState='expanded';this._hideEllipsis(msg);if(t){t.classList.remove('visible');t.setAttribute('aria-expanded','false');t.title=labels.expand;const img=t.querySelector('img');if(img){img.alt=labels.expand;}}
833
832
  return;}
@@ -866,16 +865,16 @@ this._lastHeavyResetMs=now;}else{try{this.raf.cancelGroup('StreamQueue');}catch(
866
865
  try{this.tips&&this.tips.hide();}catch(_){}}
867
866
  api_onChunk=(name,chunk,type)=>{const t=String(type||'text_delta');if(t==='text_delta'){this.api_appendStream(name,chunk);return;}
868
867
  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=()=>{this.toolOutput.end();this.scrollMgr.scheduleScroll();}
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');}
868
+ 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(_){}
869
+ 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
870
  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
871
  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();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(_){}
872
+ 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();}
873
+ 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
874
  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
875
  cleanup(){this.tips.cleanup();try{this.bridge.disconnect();}catch(_){}
877
876
  this.events.cleanup();this.highlighter.cleanup();this.math.cleanup();this.streamQ.clear();this.dom.cleanup();}}
878
877
  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);}
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.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
879
  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
880
  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
@@ -95,22 +95,26 @@ agent.evolve.winner = Winner: agent
95
95
  agent.infinity.confirm.content = WARNING: You are attempting to run an infinite loop! This may cause heavy token usage. Are you sure you want to continue?
96
96
  agent.name.supervisor = Supervisor
97
97
  agent.name.worker = Worker
98
+ agent.option.debug.trace_id = Trace ID
99
+ agent.option.debug.trace_id.desc = Optional Trace ID for tracing in OpenAI panel: https://platform.openai.com/logs?api=traces (OpenAI agents only)
98
100
  agent.option.model = Model
99
101
  agent.option.name = Name
100
102
  agent.option.prompt = Prompt
101
- agent.option.prompt.refine.desc = Prompt for plan refining
102
103
  agent.option.prompt.b1.desc = Prompt for bot 1
103
104
  agent.option.prompt.b2.desc = Prompt for bot 2
104
105
  agent.option.prompt.base.desc = Prompt for Base Agent
105
106
  agent.option.prompt.chooser.desc = Prompt for Chooser agent
107
+ agent.option.prompt.desc = Prompt for agent
106
108
  agent.option.prompt.feedback.desc = Prompt for feedback evaluation
107
109
  agent.option.prompt.planner.desc = Prompt for Planner agent
110
+ agent.option.prompt.refine.desc = Prompt for plan refining
108
111
  agent.option.prompt.search.desc = Prompt for search agent
109
112
  agent.option.prompt.supervisor.desc = Prompt for Supervisor
110
113
  agent.option.prompt.worker.desc = Prompt for Worker
111
114
  agent.option.refine.after_each = After each step
112
115
  agent.option.refine.after_each.desc = Refine plan after each step
113
116
  agent.option.role = Short description of the agent's operation for instructing the model (optional)
117
+ agent.option.role.label = Role
114
118
  agent.option.section.base = Base agent
115
119
  agent.option.section.chooser = Chooser
116
120
  agent.option.section.feedback = Feedback
@@ -124,12 +128,41 @@ agent.option.tools.local = Allow local tools
124
128
  agent.option.tools.local.desc = Allow usage of local tools for this agent
125
129
  agent.option.tools.remote = Allow remote tools
126
130
  agent.option.tools.remote.desc = Allow usage of remote tools for this agent
131
+ agent.planner.display.executor = Executor
132
+ agent.planner.display.executor_agent = FunctionAgent
133
+ agent.planner.display.planner = PlannerWorkflow
134
+ agent.planner.label.execute = Execute
135
+ agent.planner.label.plan = Plan
136
+ agent.planner.label.refine = Refine
137
+ agent.planner.label.refine.index = Refine {index}
138
+ agent.planner.label.refine.index_total = Refine {index}/{total}
139
+ agent.planner.label.step = Step
140
+ agent.planner.label.subtask = Sub-task
141
+ agent.planner.label.subtask.index = Sub-task {index}
142
+ agent.planner.label.subtask.index_total = Sub-task {index}/{total}
143
+ agent.planner.label.with_name = {base}: {name}
127
144
  agent.planner.plan.label = Planner (initial)
128
145
  agent.planner.plan.prompt.desc = Initial plan prompt
129
146
  agent.planner.refine.label = Planner (refine)
130
147
  agent.planner.refine.prompt.desc = Plan refine prompt
131
148
  agent.planner.step.label = Execute prompt
132
149
  agent.planner.step.prompt.desc = Steps execute prompt
150
+ agent.planner.ui.current_plan = Current plan:
151
+ agent.planner.ui.dependencies = Dependencies:
152
+ agent.planner.ui.executing_plan = Executing plan...
153
+ agent.planner.ui.execution_stopped = Plan execution stopped.
154
+ agent.planner.ui.expected_output = Expected output:
155
+ agent.planner.ui.plan_execution_finished = Plan execution finished.
156
+ agent.planner.ui.plan_finished = Plan finished.
157
+ agent.planner.ui.plan_marked_complete = Planner marked the plan as complete: {reason}
158
+ agent.planner.ui.refine_failed_parse = Refine step failed to parse; continuing without changes.
159
+ agent.planner.ui.refining_remaining_plan = Refining remaining plan...
160
+ agent.planner.ui.subtask_failed = Sub-task failed: {error}
161
+ agent.planner.ui.subtask_finished = Finished Sub Task {index}/{total}: {name}
162
+ agent.planner.ui.subtask_header.one = **===== Sub Task {index}: {name} =====**
163
+ agent.planner.ui.subtask_header.progress = **===== Sub Task {index}/{total}: {name} =====**
164
+ agent.planner.ui.updated_remaining_plan = Updated remaining plan:
165
+ agent.tab.debug = Debug
133
166
  alert.preset.empty_id = Name is required.
134
167
  alert.preset.no_chat_completion = At least one of: chat, completion, img or vision option is required!
135
168
  alert.snap.file_manager = Snap detected. Please open the directory manually in your file manager:
@@ -190,6 +223,9 @@ attachments.header.path = Path
190
223
  attachments.header.size = Size
191
224
  attachments.header.store = Vector Store(s)
192
225
  attachments.options.label = Options
226
+ attachments.paste.file = Clipboard attachment
227
+ attachments.paste.img = Clipboard image
228
+ attachments.paste.success = Added attachment from clipboard
193
229
  attachments.send_clear = Clear list after sending
194
230
  attachments.tab = Attachments
195
231
  attachments_uploaded.btn.clear = Clear
@@ -1627,6 +1663,7 @@ toolbox.agent.llama.loop.mode.complete = Min. % complete
1627
1663
  toolbox.agent.llama.loop.mode.score = Min. % score
1628
1664
  toolbox.agent.llama.loop.mode.tooltip = Evaluate task completion / or task result accuracy
1629
1665
  toolbox.agent.llama.loop.score.tooltip = Required score to finish, 0% = infinity loop
1666
+ toolbox.agent.preset.placeholder = System prompt is definable per agent in Agent preset
1630
1667
  toolbox.agents.label = Agents
1631
1668
  toolbox.assistants.label = Assistants
1632
1669
  toolbox.env.label = Env
@@ -1729,4 +1766,3 @@ vision.capture.manual.captured.success = Image captured from the camera:
1729
1766
  vision.capture.name.prefix = Camera capture:
1730
1767
  vision.capture.options.title = Video capture
1731
1768
  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
@@ -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
@@ -118,12 +118,40 @@ agent.option.tools.local = Дозволити локальні інструме
118
118
  agent.option.tools.local.desc = Дозволити використання локальних інструментів для цього агента
119
119
  agent.option.tools.remote = Дозволити віддалені інструменти
120
120
  agent.option.tools.remote.desc = Дозволити використання віддалених інструментів для цього агента
121
+ agent.planner.display.executor = Виконавець
122
+ agent.planner.display.executor_agent = АгентФункцій
123
+ agent.planner.display.planner = ПланувальникРобочогоПроцесу
124
+ agent.planner.label.execute = Виконати
125
+ agent.planner.label.plan = План
126
+ agent.planner.label.refine = Уточнити
127
+ agent.planner.label.refine.index = Уточнити {index}
128
+ agent.planner.label.refine.index_total = Уточнити {index}/{total}
129
+ agent.planner.label.step = Крок
130
+ agent.planner.label.subtask = Підзадача
131
+ agent.planner.label.subtask.index = Підзадача {index}
132
+ agent.planner.label.subtask.index_total = Підзадача {index}/{total}
133
+ agent.planner.label.with_name = {base}: {name}
121
134
  agent.planner.plan.label = Планувальник (початковий)
122
135
  agent.planner.plan.prompt.desc = Початкова підказка плану
123
136
  agent.planner.refine.label = Планувальник (уточнення)
124
137
  agent.planner.refine.prompt.desc = Уточнення підказки плану
125
138
  agent.planner.step.label = Виконати підказку
126
139
  agent.planner.step.prompt.desc = Кроки виконання підказки
140
+ agent.planner.ui.current_plan = Поточний план:
141
+ agent.planner.ui.dependencies = Залежності:
142
+ agent.planner.ui.executing_plan = Виконання плану...
143
+ agent.planner.ui.execution_stopped = Виконання плану зупинено.
144
+ agent.planner.ui.expected_output = Очікуваний вихід:
145
+ agent.planner.ui.plan_execution_finished = Виконання плану завершено.
146
+ agent.planner.ui.plan_finished = План завершено.
147
+ agent.planner.ui.plan_marked_complete = План відзначено як завершений: {reason}
148
+ agent.planner.ui.refine_failed_parse = Уточнення не вдалося; продовження без змін.
149
+ agent.planner.ui.refining_remaining_plan = Уточнення залишкового плану...
150
+ agent.planner.ui.subtask_failed = Підзадача не вдалася: {error}
151
+ agent.planner.ui.subtask_finished = Підзадача завершена {index}/{total}: {name}
152
+ agent.planner.ui.subtask_header.one = **===== Підзадача {index}: {name} =====**
153
+ agent.planner.ui.subtask_header.progress = **===== Підзадача {index}/{total}: {name} =====**
154
+ agent.planner.ui.updated_remaining_plan = Оновлений залишок плану:
127
155
  alert.preset.empty_id = Назва є обов'язковою.
128
156
  alert.preset.no_chat_completion = Потрібно хоча б одне з: чат, завершення, зображення або візуальна опція!
129
157
  alert.snap.file_manager = Виявлено Snap. Будь ласка, відкрийте директорію вручну у вашому файловому менеджері:
@@ -183,6 +211,9 @@ attachments.header.path = Шлях
183
211
  attachments.header.size = Розмір
184
212
  attachments.header.store = Векторне(і) сховище(а)
185
213
  attachments.options.label = Опції
214
+ attachments.paste.file = Вкладення зі буфера обміну
215
+ attachments.paste.img = Зображення зі буфера обміну
216
+ attachments.paste.success = Додано вкладення зі буфера обміну
186
217
  attachments.send_clear = Очистити список після відправлення
187
218
  attachments.tab = Вкладення
188
219
  attachments_uploaded.btn.clear = Очистити файли
@@ -1552,6 +1583,7 @@ toolbox.agent.llama.loop.label = Цикл / оцінити (до оцінки, 0
1552
1583
  toolbox.agent.llama.loop.mode.complete = Min. % завершення
1553
1584
  toolbox.agent.llama.loop.mode.score = Min. % оцінки
1554
1585
  toolbox.agent.llama.loop.score.tooltip = Необхідна оцінка для завершення, 0% = нескінченний цикл
1586
+ toolbox.agent.preset.placeholder = Системний prompt є визначеним для кожного агента в передвстановленнях агента
1555
1587
  toolbox.agents.label = Агенти
1556
1588
  toolbox.assistants.label = Помічники
1557
1589
  toolbox.env.label = Env