dimcode 0.0.21-beta.1 → 0.0.21
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.
- package/dist/cli.mjs +2 -2
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -1196,8 +1196,8 @@ When using AskUserQuestion:
|
|
|
1196
1196
|
`))return null;if(gt.includes("\x00"))return null;if(/[;&|`]/.test(gt))return null;if(gt.startsWith('"')&>.endsWith('"')||gt.startsWith("'")&>.endsWith("'"))gt=gt.slice(1,-1);if(!gt)return null;if(/^[a-z][a-z0-9+.-]*:\/\//i.test(gt)&&!gt.startsWith("file://"))return null;if(gt.startsWith("file://")){let Rt=vlt(gt);if(!Rt)return null;gt=Rt}if(!gt.includes("/")&&!gt.includes("\\")){let Rt=kat(gt);if(Rt)gt=Rt}if(!(gt.includes("/")||gt.includes("\\")))return null;if(t.mentionWorkspace)return Jt(gt,et);return gt}function Iu(lt){let et=[],gt=(gi)=>{if(!gi)return;if(!et.includes(gi))et.push(gi)},Vt=(gi)=>{if(gt(Mu(gi)),gi.includes("\\"))gt(Mu(gi,{preserveBackslash:!0}))},qt=(gi)=>gi.replace(/\\([\\ ])/g,"$1"),Rt=String(lt??"").trim();if(!Rt)return et;Vt(Rt);let Zt=/^[A-Z]:[\\/]/i.test(Rt)||Rt.startsWith("\\\\");if((Rt.startsWith("/")||Rt.startsWith("~/"))&&!Zt&&Rt.includes("\\")){let gi=qt(Rt);if(gi!==Rt)Vt(gi)}return et}function Hn(lt){return!!lt&&typeof lt.then==="function"}function He(lt){let et=String(lt??"").trim();if(!et)return!1;if(et.startsWith("file://"))return!0;if(et==="~"||et.startsWith("~/"))return!0;if(et.startsWith("/")||et.startsWith("\\\\"))return!0;return/^[A-Z]:[\\/]/i.test(et)}function Wo(lt,et,gt){if(!lt||et<=0)return null;if(lt[et-1]!==gt)return null;let Vt=lt.lastIndexOf(gt,et-2);if(Vt<0)return null;let qt=lt.slice(Vt+1,et-1);if(!qt)return null;if(qt.includes(`
|
|
1197
1197
|
`)||qt.includes("\r"))return null;return{start:Vt,end:et,inner:qt,quoted:lt.slice(Vt,et)}}async function Hl(lt,et,gt){if(!t.collectMentions||typeof t.filePasteHandler!=="function")return;let Vt=Wo(lt,et,gt);if(!Vt)return;if(!He(Vt.inner))return;let qt=Mu(Vt.inner);if(!qt)return;let Rt=null;try{Rt=await t.filePasteHandler(qt)}catch{return}if(!Rt)return;let Zt=F(),Bi=Zt.lastIndexOf(Vt.quoted);if(Bi<0)return;let gi=Bi+Vt.quoted.length,du=Zt.slice(0,Bi)+Zt.slice(gi);yt(du,Bi),pu(Rt)}function ae(lt){let et=[],gt=/(^|\s)(~\/|\/|\\\\|[A-Z]:[\\/])/gi,Vt=gt.exec(lt);while(Vt){let Rt=Vt[1]??"";et.push(Vt.index+Rt.length),Vt=gt.exec(lt)}if(et.length<=1)return null;let qt=[];for(let Rt=0;Rt<et.length;Rt++){let Zt=et[Rt]??0,Bi=et[Rt+1]??lt.length,gi=lt.slice(Zt,Bi).trim();if(gi)qt.push(gi)}return qt.length?qt:null}function Mo(lt){let et=String(lt??"").trim();if(!et)return[];if(/[\r\n]/.test(et)){let Zt=[];for(let Bi of et.split(/\r?\n/)){let gi=Bi.trim();if(!gi)continue;Zt.push(...Mo(gi))}return Zt}let gt=[],Vt=/"([^"]+)"|'([^']+)'/g,qt=Vt.exec(et);while(qt){let Zt=qt[1]??qt[2]??"";if(Zt)gt.push(Zt);qt=Vt.exec(et)}if(gt.length)return gt;let Rt=et.match(/file:\/\/[^\s'"]+/g)??[];if(Rt.length)return Rt;if(kat(et))return[et];if(/\s/.test(et)){let Zt=ae(et);if(Zt?.length)return Zt;if(et.includes("/")||et.includes("\\"))return[et];return et.split(/\s+/).filter(Boolean)}return[et]}async function Sl(lt){let et=Xg(lt||"");if(!et)return;let Vt=L5(et)||et,qt=et.trim(),Rt=t.mentionTrigger||"@";if(qt.startsWith(Rt)&&!/\s/.test(qt)&&(qt.slice(Rt.length).includes("/")||qt.slice(Rt.length).includes("\\"))&&t.collectMentions){let Bi=qt.slice(Rt.length).trim(),gi=t.mentionWorkspace?Jt(Bi):Bi;if(gi)pu(gi);return}if(t.collectMentions&&typeof t.filePasteHandler==="function"){let Bi=(Bu)=>{let Au=String(Bu??"").trim();if(!Au)return!1;if(Au.includes("\x00"))return!1;if(/[;&|`]/.test(Au))return!1;if(Mu(Au))return!0;if(Au.startsWith("file://"))return!0;if(He(Au))return!0;if(Au.startsWith('"')&&Au.endsWith('"')||Au.startsWith("'")&&Au.endsWith("'")){let gu=Au.slice(1,-1).trim();return He(gu)}let Sn=ae(Au);return Boolean(Sn?.length)},gi=qt.split(/\r?\n/).map((Bu)=>Bu.trim()).filter(Boolean),nn=(()=>{if(!qt)return!1;if(gi.length>1)return gi.every(Bi);return Bi(qt)})()?Mo(qt):[],xn=gi.length>1||nn.length>1,yn=[],fn=nn.length>0;for(let Bu of nn){let Au=Iu(Bu);if(!Au.length){if(fn=!1,xn)break;continue}let Sn=null;for(let gu of Au)try{let qu=t.filePasteHandler(gu);if(Hn(qu)){let Ku=await qu;if(Ku){Sn=Ku;break}}else if(qu){Sn=qu;break}}catch{}if(!Sn){if(fn=!1,xn)break;continue}yn.push(Sn)}if(fn&&yn.length>0){for(let Bu of yn)pu(Bu);return}}if(t.collapseMultiline){if((Vt.match(/\n/g)||[]).length+1>=2){Li(Vt);return}}pi(et)}async function fa(){if(!t.collectMentions||typeof t.pasteImageHandler!=="function")return;let lt=Ilt(Xjt++);pu(lt),e.invalidate();try{let et=await t.pasteImageHandler(),gt=String(et??"").trim();if(gt)cu(lt,gt);else Gu(lt)}catch{Gu(lt)}}function ho(lt){if(typeof lt.text==="string")return lt.text;if(typeof lt.data==="string"&<.data)return lt.data;let et=lt.nativeEvent,gt=et?.clipboardData;if(gt?.getData){let qt=gt.getData("text/plain")||gt.getData("text");if(typeof qt==="string"&&qt)return qt}let Vt=et?.target;if(Vt&&typeof Vt.value==="string"&&Vt.value)return Vt.value;return""}let sl=async()=>{try{return await w.readClipboardText?.()??""}catch{return""}},Na=async(lt)=>{if(!lt)return!1;if(w.writeClipboardText)try{if(await w.writeClipboardText(lt))return!0}catch{}let et=globalThis.navigator;if(et?.clipboard?.writeText)try{return await et.clipboard.writeText(lt),!0}catch{}let gt=globalThis.document;if(!gt?.createElement||!gt?.body?.appendChild||typeof gt.execCommand!=="function")return!1;try{let Vt=gt.activeElement,qt=gt.createElement("textarea");qt.value=lt,qt.setAttribute("readonly","true"),qt.setAttribute("aria-hidden","true"),qt.style.position="fixed",qt.style.left="-9999px",qt.style.top="-9999px",qt.style.opacity="0",gt.body.appendChild(qt),qt.focus(),qt.select(),qt.setSelectionRange(0,qt.value.length);let Rt=Boolean(gt.execCommand("copy"));qt.remove();try{Vt?.focus?.({preventScroll:!0})}catch{Vt?.focus?.()}return Rt}catch{return!1}};function ga(lt){Na(lt).then((et)=>{if(!Ht())return;w.showToast?.(et?"Copied":"Copy failed")}).catch(()=>{if(!Ht())return;w.showToast?.("Copy failed")})}function Re(lt){if(lt.key==="Enter"){if((typeof lt.timeStamp==="number"?lt.timeStamp:Date.now())<=U){U=0,lt.preventDefault(),lt.stopPropagation();return}}if(H.value){i("keydown",lt);return}for(let gu of At)if(gu(lt)){i("keydown",lt);return}if(i("keydown",lt),lt.defaultPrevented)return;let et=F(),gt=Boolean(lt.shiftKey),Vt=Boolean(lt.altKey||lt.ctrlKey&&!lt.metaKey&&!lt.altKey),qt=Boolean(lt.metaKey),Rt=Boolean(lt.metaKey||lt.ctrlKey&&!lt.altKey),Zt=Boolean((lt.metaKey||lt.ctrlKey)&&!lt.altKey),Bi=lt.key==="c"||lt.key==="C",gi=lt.key==="x"||lt.key==="X",du=lt.key==="a"||lt.key==="A",nn=lt.key==="e"||lt.key==="E",xn=lt.key==="v"||lt.key==="V",yn=lt.key==="z"||lt.key==="Z",fn=lt.key==="y"||lt.key==="Y",Bu=Ni.value,Au=Ht();if(Au&&Bi&<.ctrlKey&&!lt.metaKey&&!lt.altKey&&!lt.shiftKey){let gu=et.length>0,qu=(t.mentions?.length??0)>0,Ku=(t.multilineTexts?.length??0)>0;if(gu||qu||Ku){lt.preventDefault(),lt.stopPropagation(),ni();return}}if(Zt&&yn){if(lt.preventDefault(),lt.stopPropagation(),lt.shiftKey)at();else C();return}if(Zt&&fn){lt.preventDefault(),lt.stopPropagation(),at();return}if(Au&<.ctrlKey&&!lt.metaKey&&!lt.altKey&&(du||nn)){lt.preventDefault();let{line:gu,lines:qu}=jJ(et,A.value),Ku=du?qu[gu].start:qu[gu].end;Wt(Ku,gt);return}if(Au&<.altKey&&!lt.ctrlKey&&!lt.metaKey){let gu=lt.key==="b"||lt.key==="B",qu=lt.key==="f"||lt.key==="F";if(gu||qu){lt.preventDefault();let Ku=gu?WJ(et,A.value):FJ(et,A.value);Wt(Ku,gt);return}}if(Zt&&du){lt.preventDefault(),lt.stopPropagation(),k.value=0,A.value=et.length,Oi(),e.invalidate();return}if(!Au&&Zt&&(Bi||gi)&&Bu){lt.preventDefault(),lt.stopPropagation();let gu=et.slice(Bu.start,Bu.end);if(ga(gu),gi){let qu=et.slice(0,Bu.start)+et.slice(Bu.end);it(qu),yt(qu,Bu.start)}return}if(Au&&Zt&&xn){lt.preventDefault(),lt.stopPropagation(),sl().then(async(gu)=>{if(gu){await Sl(gu);return}await fa()});return}if(lt.key==="ArrowLeft"){lt.preventDefault();let gu=qt?0:Vt?WJ(et,A.value):(()=>{if(A.value<=0)return 0;let qu=Vw(et,A.value-1);return qu?qu.start:A.value-1})();Wt(gu,gt);return}if(lt.key==="ArrowRight"){lt.preventDefault();let gu=qt?et.length:Vt?FJ(et,A.value):(()=>{if(A.value>=et.length)return et.length;let qu=Vw(et,A.value);return qu?qu.end:A.value+1})();Wt(gu,gt);return}if(lt.key==="ArrowUp"||lt.key==="ArrowDown"){lt.preventDefault();let gu=_t.value,{w:qu}=Q(Et.value),Ku=Math.max(1,qu),ze=Ku,{line:sn,col:Vn,lines:Du}=gu?G1(et,t.multilineTexts,t.mentions,A.value,ze,Ku):M1(et,t.multilineTexts,t.mentions,A.value),gn=lt.key==="ArrowUp"?sn-1:sn+1;if(gn<0){let Ee=Du[sn].start;Wt(Ee,gt);return}if(gn>=Du.length){let Ee=Du[sn].end;Wt(Ee,gt);return}let re=gn,pe=B.value??Vn,ne=gu?PJ(et,t.multilineTexts,t.mentions,Du[re],pe).index:YJ(et,t.multilineTexts,t.mentions,Du[re].start,Du[re].end,pe).index;Wt(ne,gt),B.value=pe;return}if(lt.key==="Home"){if(lt.preventDefault(),Rt)Wt(0,gt);else{let{line:gu,lines:qu}=jJ(et,A.value),Ku=qu[gu].start;Wt(Ku,gt)}return}if(lt.key==="End"){if(lt.preventDefault(),Rt)Wt(et.length,gt);else{let{line:gu,lines:qu}=jJ(et,A.value),Ku=qu[gu].end;Wt(Ku,gt)}return}let Sn=Boolean(!lt.altKey&&(lt.ctrlKey&&!lt.metaKey||lt.metaKey&&!lt.ctrlKey));if(lt.key==="Delete"&&Sn){lt.preventDefault(),lt.stopPropagation(),ni();return}if(lt.key==="Backspace"&&Sn){lt.preventDefault(),lt.stopPropagation(),ni();return}if((lt.key==="u"||lt.key==="U")&<.ctrlKey&&!lt.metaKey&&!lt.altKey){lt.preventDefault(),lt.stopPropagation(),ni();return}if((lt.key==="w"||lt.key==="W")&<.ctrlKey&&!lt.metaKey&&!lt.altKey){lt.preventDefault(),lt.stopPropagation(),ni();return}if(lt.key==="Backspace"){let gu=t.mentions??[];if(!et&&A.value<=0&&gu.length>0){lt.preventDefault(),i("update:mentions",gu.slice(0,-1)),e.invalidate();return}lt.preventDefault();let{value:qu,cursor:Ku,deleted:ze}=Gi(et);if(ze){it(qu),yt(qu,Ku);return}if(A.value<=0)return;if(A.value>=2&&et[A.value-1]===" "&&Kw(et,A.value-2)){let Du=F5(et,A.value-2),gn=t.mentions??[];if(Du>=0&&Du<gn.length){let pe=[...gn.slice(0,Du),...gn.slice(Du+1)];i("update:mentions",pe)}let re=et.slice(0,A.value-2)+et.slice(A.value);it(re),yt(re,A.value-2);return}if(Kw(et,A.value-1)){let Du=F5(et,A.value-1),gn=t.mentions??[];if(Du>=0&&Du<gn.length){let pe=[...gn.slice(0,Du),...gn.slice(Du+1)];i("update:mentions",pe)}let re=et.slice(0,A.value-1)+et.slice(A.value);it(re),yt(re,A.value-1);return}if(XJ(et,A.value-1)){let Du=fQ(et,A.value-1),gn=t.multilineTexts??[];if(Du>=0&&Du<gn.length){let re=[...gn.slice(0,Du),...gn.slice(Du+1)];i("update:multilineTexts",re)}}let sn=Vw(et,A.value-1);if(!sn)return;let Vn=et.slice(0,sn.start)+et.slice(sn.end);it(Vn),yt(Vn,sn.start);return}if(lt.key==="Delete"){lt.preventDefault();let{value:gu,cursor:qu,deleted:Ku}=Gi(et);if(Ku){it(gu),yt(gu,qu);return}if(A.value>=et.length)return;if(Kw(et,A.value)&&et[A.value+1]===" "){let Vn=F5(et,A.value),Du=t.mentions??[];if(Vn>=0&&Vn<Du.length){let re=[...Du.slice(0,Vn),...Du.slice(Vn+1)];i("update:mentions",re)}let gn=et.slice(0,A.value)+et.slice(A.value+2);it(gn),yt(gn,A.value);return}if(Kw(et,A.value)){let Vn=F5(et,A.value),Du=t.mentions??[];if(Vn>=0&&Vn<Du.length){let re=[...Du.slice(0,Vn),...Du.slice(Vn+1)];i("update:mentions",re)}let gn=et.slice(0,A.value)+et.slice(A.value+1);it(gn),yt(gn,A.value);return}if(XJ(et,A.value)){let Vn=fQ(et,A.value),Du=t.multilineTexts??[];if(Vn>=0&&Vn<Du.length){let gn=[...Du.slice(0,Vn),...Du.slice(Vn+1)];i("update:multilineTexts",gn)}}let ze=Vw(et,A.value);if(!ze)return;let sn=et.slice(0,ze.start)+et.slice(ze.end);it(sn),yt(sn,ze.start);return}if(lt.key==="Enter"){let gu=t.submitOnEnter!==!1;if(gu&&!lt.shiftKey&&Hi()){lt.preventDefault(),lt.stopPropagation(),i("validationError",{reason:"paste_image_pending"});return}if(lt.preventDefault(),!gu||lt.shiftKey)pi(`
|
|
1198
1198
|
`);else{if(g)lt.__tuiDialogConfirm=!lt.ctrlKey&&!lt.metaKey&&!lt.altKey;i("change",et)}return}if(lt.key==="Escape"){if(lt.preventDefault(),t.clearOnEscape){ni();return}M.value=!1,k.value=null,i("blur"),e.invalidate();return}if(Ujt(lt))lt.preventDefault(),pi(lt.key)}function Fo(){M.value=!0,i("focus");let lt=F().length,et=t.cursorToEndOnFirstFocus&&!J.value&&!$.value;if($.value=!1,et)A.value=lt,k.value=null;J.value=!0,A.value=ju(A.value,0,lt),Oi(),ri(),Ft(),e.invalidate()}function bl(){if(M.value=!1,k.value=null,L.value=!1,H.value=!1,Y.value="",f?.value?.ownerId===_)f.value=null;Gt(),i("blur"),e.invalidate()}let{id:ul}=cr(()=>({rect:Et.value,zIndex:h.value,visible:p.value,focusable:!0,handlers:{pointerenter:(lt)=>{i("pointerenter",lt)},pointerleave:(lt)=>{i("pointerleave",lt)},pointerdown:(lt)=>{if(lt.button!==0)return;x={cellX:lt.cellX,cellY:lt.cellY},V=Boolean(lt.shiftKey),O=!1,j=!1},pointermove:(lt)=>{if(!x)return;let et=x.cellX!==lt.cellX||x.cellY!==lt.cellY;if(!O&&!et)return;if(!O){if(O=!0,j=!0,V){kt(lt.cellX,lt.cellY,!0,lt,!1),e.invalidate();return}if(kt(x.cellX,x.cellY,!1,lt,!1),lt.defaultPrevented)return;k.value=A.value}kt(lt.cellX,lt.cellY,!0,lt,!1),e.invalidate()},pointerup:()=>{if(Ht()&&O){let lt=Ni.value;if(lt){let gt=F().slice(lt.start,lt.end);if(gt)ga(gt)}}if(O)j=!0;x=null,V=!1,O=!1},beforeinput:(lt)=>{if(L.value)return;if(lt.isComposing||lt.inputType==="insertCompositionText")H.value=!0,Y.value=ho(lt),Oi(),e.invalidate()},click:(lt)=>{if(j){j=!1;return}let et=typeof lt.timeStamp==="number"?lt.timeStamp:Date.now(),gt=Boolean(z&&z.cellX===lt.cellX&&z.cellY===lt.cellY),Vt=Boolean(z&&et-z.time<=S),qt=gt&&Vt?z.count+1:1,Rt=qt===2,Zt=qt>=3;z={time:et,cellX:lt.cellX,cellY:lt.cellY,count:qt},M.value=!0,$.value=!0;let Bi=o.value;if(Bi&&ul.value)Bi.focus(ul.value);i("focus");let gi=!Rt&&!Zt&&Boolean(lt.shiftKey);if(kt(lt.cellX,lt.cellY,gi,lt,!0),lt.defaultPrevented)return;if(Zt){ii(),z=null;return}if(Rt)Yi();e.invalidate()},paste:(lt)=>{lt.preventDefault();let et=ho(lt);if(et){Sl(et);return}fa()},compositionstart:(lt)=>{L.value=!1,H.value=!0,Y.value=ho(lt),Oi(),e.invalidate()},compositionupdate:(lt)=>{if(L.value)return;H.value=!0,Y.value=ho(lt),Oi(),e.invalidate()},compositionend:(lt)=>{if(L.value)return;let et=ho(lt)||Y.value;if(H.value=!1,Y.value="",L.value=!1,et)U=(typeof lt.timeStamp==="number"?lt.timeStamp:Date.now())+32,pi(et);X.value=!0,queueMicrotask(()=>{X.value=!1}),e.invalidate()},input:(lt)=>{if(X.value)return;if(L.value)return;if(lt.isComposing){H.value=!0,Y.value=ho(lt),Oi(),e.invalidate();return}if(H.value){let gt=ho(lt)||Y.value;if(H.value=!1,Y.value="",gt)U=(typeof lt.timeStamp==="number"?lt.timeStamp:Date.now())+32,pi(gt);e.invalidate();return}let et=ho(lt);if(et)pi(et)},focus:()=>{Fo()},blur:()=>{bl()},keydown:Re}})),yl=Jl(!0);return Vat(()=>{if(!t.autoFocus||!p.value){yl.value=!0;return}let lt=o.value,et=ul.value;if(!lt||!et)return;if(lt.getFocused()===et){yl.value=!1;return}if(!yl.value)return;lt.focus(et),yl.value=!1}),Vat(()=>{let lt=o.value,et=ul.value;if(!lt||!et)return;let gt=lt.getFocused()===et;if(gt&&!M.value){Fo();return}if(!gt&&M.value)bl()}),Ul(()=>({zIndex:t.zIndex,rect:p.value?Et.value:{x:0,y:0,w:0,h:0},deps:[p.value,Et.value,t.w,t.h,t.zIndex,t.modelValue,t.mentions,t.multilineTexts,t.placeholder,t.placeholderWhenFocused,t.style,t.autoFocus,t.cursorBlink,t.cursorShape,t.blinkInterval,M.value,A.value,k.value,G.value,P.value,H.value,Y.value,W.value,n.value,rt.value?.version.value??0],paint:()=>{if(!p.value)return;let lt=Et.value;if(lt.w<=0||lt.h<=0)return;let et=t.style??n.value,gt=Ct.value,Vt=gt?0:G.value,qt=gt?0:P.value,Rt=_t.value&&!gt,Zt=F(),Bi=It(Zt),gi=gt?t.placeholderWhenFocused?` ${t.placeholder}`:t.placeholder:Bi.text,du=t.secret&&!gt?ui(gi):gi,nn=gt?{...et,fg:et.fg??"white",dim:!0,bold:!1}:et,{wAll:xn,padX:yn,w:fn}=Q(lt),Bu=lt.x+yn,Au=Math.max(1,fn),Sn=Au,gu=Rt?OJ(du,t.multilineTexts,t.mentions,Sn,Au):RJ(du);for(let Ku=0;Ku<lt.h;Ku++){let ze=qt+Ku,sn=gu[ze],Vn=Au,Du=sn?Aat(gi,du,t.multilineTexts,t.mentions,sn.start,sn.end,Vn,Rt?0:Vt):{text:Yn(Vn),chips:[]},gn=Du.text;if(u.write(Yn(xn),{x:lt.x,y:lt.y+Ku,style:nn}),fn<=0)continue;let re=Bu;if(u.write(gn,{x:re,y:lt.y+Ku,style:nn}),Du.chips.length>0)for(let pe of Du.chips){let ne;if(pe.kind==="multiline")ne={...et,fg:"cyan",dim:!0};else{let Ee=String(pe.absPath??"");ne=rt.value?.getStyle(et,{kind:"mention",absPath:Ee})??oQ(et,Ee);let vl=ci(Ee);if(vl)ne={...ne,href:vl}}u.write(pe.label,{x:re+pe.startCell,y:lt.y+Ku,style:ne})}}let qu=Ni.value;if(qu&&!gt)for(let sn=0;sn<lt.h;sn++){let Vn=qt+sn,Du=gu[Vn];if(!Du)continue;let gn=Au,re=Bu,pe=lt.y+sn,ne=Rt?0:Vt,Ee=Dat(Bi.text,du,t.multilineTexts,t.mentions,Du.start,Du.end,qu,gn,ne);for(let vl of Ee){if(!vl.text)continue;u.write(vl.text,{x:re+vl.startCell,y:pe,style:{...et,fg:"black",bg:"blueBright"}})}}if(M.value&&W.value&&!(Ni.value&&!gt)){let Ku=Au,ze=Ku,sn=gt?"":Bi.text,Vn=t.secret&&!gt?ui(sn):sn,Du=Rt?G1(Vn,t.multilineTexts,t.mentions,Bi.cursor,ze,Ku):M1(Vn,t.multilineTexts,t.mentions,Bi.cursor),gn=Du.col-Vt,re=Du.line-qt;if(f&&M.value){let pe=ju(gn,0,Math.max(0,Au-1)),ne=ju(re,0,Math.max(0,lt.h-1));f.value={cellX:lt.x+yn+pe,cellY:lt.y+ne,ownerId:_}}if(gn>=0&&gn<Au&&re>=0&&re<lt.h){let pe=lt.y+re,ne=Bu+gn,Ee=null;try{if(Ee=u.getCell(ne,pe),Ee.continuation&&ne>0)ne-=1,Ee=u.getCell(ne,pe)}catch{Ee=null}let vl=et.fg??n.value.fg??"whiteBright",Tm=et.bg??n.value.bg??"black",nr=Ee?.style??et,Ir={...nr,fg:nr.fg??vl,bg:nr.bg??Tm,dim:!1},Cr=Ee&&!Ee.continuation?Ee.ch||" ":" ";if(t.cursorShape==="underline")u.put(ne,pe,Cr,{...Ir,underline:!0});else if(t.cursorShape==="bar")if(Cr===" ")u.put(ne,pe,"│",{...Ir,fg:Ir.fg??vl});else u.put(ne,pe,Cr,{...Ir,inverse:!0});else u.put(ne,pe,Cr,{...Ir,inverse:!0})}}}})),Ljt(()=>{Gt()}),()=>qjt("span",c)}});U$();import{computed as Pw,defineComponent as Wjt,h as qat,inject as Lat,ref as _Q,watch as Fjt,watchEffect as Njt}from"vue";function Kjt(t,i,u){return Math.max(i,Math.min(u,t))}function Ojt(t){let i=Math.abs(t);return i>0&&i<=3&&Number.isInteger(t)}function Yjt(t){if(Math.abs(t)<=3&&Number.isInteger(t))return t;return t/100}function Pjt(t,i){let u=t-i;if(!Number.isFinite(u)||u<=0||u>120)return 1;return 1+(1-u/120)*1.5}function Ow(){return{accumulator:0,lastAt:0,lastEdgeDir:0,lastEdgeAt:0}}function Yw(t,i,u,e,n=Date.now()){if(!Number.isFinite(i)||i===0||e<=0){if(e<=0)t.accumulator=0,t.lastEdgeDir=0,t.lastEdgeAt=0;return{nextTop:u,dir:0,lines:0}}let o=t.lastAt?n-t.lastAt:1/0,l=Ojt(i);if(l&&o!==1/0&&o>=0&&o<6)return{nextTop:u,dir:0,lines:0};let r=l?1:t.lastAt?Pjt(n,t.lastAt):1;t.lastAt=n,t.accumulator+=Yjt(i)*r;let p=Math.trunc(t.accumulator);if(p===0)return{nextTop:u,dir:0,lines:0};t.accumulator-=p;let c=p>0?1:-1,m=u<=0,f=u>=e;if(c<0&&m||c>0&&f)return t.lastEdgeDir=c,t.lastEdgeAt=n,t.accumulator=0,{nextTop:u,dir:0,lines:0};if(t.lastEdgeDir!==0&&n-t.lastEdgeAt<120&&c===-t.lastEdgeDir&&(m||f))return{nextTop:u,dir:0,lines:0};let g=u+p,_=Kjt(g,0,e);if(_===u)return t.accumulator=0,{nextTop:u,dir:0,lines:0};if(_!==g)t.accumulator=0;return t.lastEdgeDir=0,{nextTop:_,dir:_>u?1:-1,lines:_-u}}function N5(t,i,u){return Math.max(i,Math.min(u,t))}function Uat(t){return Boolean(t.ctrlKey||t.metaKey)}function jjt(t,i){let u=i.trim().toLowerCase();if(!u)return[];let e=t.toLowerCase(),n=e.indexOf(u);if(n>=0)return[{start:n,end:n+u.length}];let o=[],l=0;for(let m=0;m<e.length&&l<u.length;m++)if(e[m]===u[l])o.push(m),l++;if(l<u.length)return[];let r=[],p=o[0],c=o[0];for(let m=1;m<o.length;m++){let f=o[m];if(f===c+1){c=f;continue}r.push({start:p,end:c+1}),p=f,c=f}return r.push({start:p,end:c+1}),r}function Rjt(t){let{text:i,ranges:u,x:e,y:n,maxCells:o,baseStyle:l,highlightStyle:r,terminal:p}=t,c=Math.max(0,Math.floor(o));if(!i||c<=0)return 0;let m=0,f=u[m],g=0,_=e,d="",h=l,b=()=>{if(!d)return;p.write(d,{x:_,y:n,style:h}),_+=Lt(d),d=""};for(let w=0;w<i.length&&g<c;){let Q=i.charCodeAt(w)<=127?i[w]:String.fromCodePoint(i.codePointAt(w)??0),M=Q.length,A=me(Q);if(g+A>c)break;while(f&&f.end<=w)m++,f=u[m];let J=Boolean(f&&w<f.end&&w+M>f.start)?r:l;if(J!==h)b(),h=J;d+=Q,g+=A,w+=M}return b(),g}var dQ=Wjt({name:"TPathPicker",props:{x:{type:Number,required:!0},y:{type:Number,required:!0},w:{type:Number,required:!0},h:{type:Number,required:!0},zIndex:{type:Number,default:0},workspace:{type:String,required:!0},mode:{type:String,default:"any"},modelValue:{type:String,required:!0},placeholder:{type:String,default:""},style:{type:Object,default:void 0},autoFocus:{type:Boolean,default:!1},showHidden:{type:Boolean,default:!1},maxSuggestions:{type:Number,default:50},provider:{type:Object,default:void 0}},emits:["update:modelValue","select","invalid","keydown","focus","blur"],setup(t,{emit:i}){let{terminal:u,scheduler:e,defaultStyle:n}=Un(),o=co(),{visible:l,rootProps:r}=ia(),p=Lat(Z$,null),c=Lat(Ea,Pw(()=>0)),m=Pw(()=>(c.value??0)+(t.zIndex??0)),f=Pw(()=>t.provider??p?.value??null),g=_Q([]),_=_Q(0),d=_Q(0),h=_Q(null),b=1,w=Pw(()=>Math.max(0,Math.floor(t.h)-1)),v=Pw(()=>{let L={x:t.x,y:t.y+1,w:t.w,h:w.value},U=sa(L,o.originX,o.originY);if(!o.clipRect)return U;return Sa(U,o.clipRect)??{x:0,y:0,w:0,h:0}});function Q(){let L=Math.max(0,w.value);if(L<=0){d.value=0;return}let U=Math.max(0,g.value.length-L);if(d.value=N5(d.value,0,U),_.value<d.value)d.value=_.value;else if(_.value>=d.value+L)d.value=N5(_.value-(L-1),0,U)}Fjt([()=>_.value,()=>g.value.length,()=>w.value],()=>{Q()});let M=0;async function A(L){let U=f.value;if(!U){if(L!==M)return;g.value=[],_.value=0,e.invalidate();return}let X=Math.max(0,Math.floor(t.maxSuggestions)),W=U.suggest?await U.suggest({workspaceAbs:t.workspace,input:t.modelValue,mode:t.mode,max:X,showHidden:t.showHidden,gitignore:"nonBlocking"}):await q$({workspaceAbs:t.workspace,input:t.modelValue,mode:t.mode,max:X,showHidden:t.showHidden,listDir:U.listDir});if(L!==M)return;g.value=W.suggestions,_.value=N5(_.value,0,Math.max(0,g.value.length-1)),Q(),e.invalidate()}Njt(()=>{if(!l.value)return;t.workspace,t.mode,t.showHidden,t.modelValue,w.value,h.value=null;let L=++M;A(L).catch((U)=>{if(L!==M)return;g.value=[],h.value=U instanceof Error?U.message:String(U),e.invalidate()})});function k(L){let U=L.replace(/\r/g,"").replace(/\n/g," ");i("update:modelValue",U)}function J(L){let U=g.value.length;if(U<=0)return;let X=N5(_.value+L,0,U-1);if(X!==_.value)_.value=X,Q(),e.invalidate()}function $(){let L=g.value[_.value];if(!L)return;k(L.completion)}async function G(L){let U=f.value;if(!U){h.value="Path provider unavailable",i("invalid",{reason:"provider_missing",absPath:L}),e.invalidate();return}let X=await U.stat(L);if(!X.exists){h.value="Not found",i("invalid",{reason:"not_found",absPath:L}),e.invalidate();return}if(t.mode==="file"&&X.kind==="directory"){let W=io(L),q=io(t.workspace),B=W===q?"":W.startsWith(`${q}/`)?W.slice(q.length+1):W;k(B?`${B}/`:""),h.value=null,e.invalidate();return}if(t.mode==="file"&&X.kind!=="file"){h.value="Not a file",i("invalid",{reason:"not_file",absPath:L}),e.invalidate();return}if(t.mode==="directory"&&X.kind!=="directory"){h.value="Not a directory",i("invalid",{reason:"not_directory",absPath:L}),e.invalidate();return}i("select",KU(L))}async function P(){let L=f.value,U=L?.resolvePath?await L.resolvePath(t.workspace,t.modelValue):L$(t.workspace,t.modelValue);if(!L){h.value="Path provider unavailable",i("invalid",{reason:"provider_missing",absPath:U}),e.invalidate();return}let X=await L.stat(U);if(X.exists){if(t.mode==="file"&&X.kind==="directory"){let q=t.modelValue.replace(/\r/g,"").replace(/\\/g,"/"),B=q.endsWith("/")?q:`${q}/`;k(B),h.value=null,e.invalidate();return}await G(U);return}let W=g.value[_.value];if(W){if(t.mode==="file"&&W.kind==="directory"){k(W.completion),h.value=null,e.invalidate();return}await G(W.absPath);return}h.value="Not found",i("invalid",{reason:"not_found",absPath:U}),e.invalidate()}function H(L){if(i("keydown",L),L.key==="Tab"){L.preventDefault(),$();return}if(L.key==="ArrowUp"){L.preventDefault(),J(-1);return}if(L.key==="ArrowDown"){L.preventDefault(),J(1);return}if(Uat(L)&&(L.key==="p"||L.key==="P")){L.preventDefault(),J(-1);return}if(Uat(L)&&(L.key==="n"||L.key==="N"))L.preventDefault(),J(1)}let Y=Ow();return cr(()=>({rect:v.value,zIndex:m.value,visible:l.value,focusable:!1,handlers:{click:(L)=>{let U=v.value,X=d.value+(L.cellY-U.y);if(X>=0&&X<g.value.length)_.value=X,Q(),e.invalidate()},dblclick:async(L)=>{let U=v.value,X=d.value+(L.cellY-U.y),W=g.value[X];if(!W)return;if(t.mode==="file"&&W.kind==="directory"){k(W.completion),h.value=null,e.invalidate();return}await G(W.absPath)},wheel:(L)=>{let U=L.deltaY??0;if(!U)return;let X=Math.max(0,w.value),W=Math.max(0,g.value.length-X),{nextTop:q,dir:B}=Yw(Y,U,d.value,W);if(!B||q===d.value)return;d.value=q;let x=q,V=q+X-1;if(_.value<x||_.value>V){let O=B>0?V:x;_.value=N5(O,0,Math.max(0,g.value.length-1))}e.invalidate()}}})),Ul(()=>({zIndex:t.zIndex,rect:l.value?v.value:{x:0,y:0,w:0,h:0},deps:[l.value,v.value,t.w,w.value,t.style,n.value,g.value,_.value,d.value,h.value],paint:()=>{if(!l.value)return;let L=v.value;if(L.w<=0||L.h<=0)return;let U=t.style??n.value,X=vw(String(t.modelValue??"")).query,W=N5(d.value,0,Math.max(0,g.value.length-L.h));for(let q=0;q<L.h;q++){let B=W+q,x=g.value[B],V=x?Ll(x.display):"",O=$n(V,L.w),j=B===_.value?{...U,bg:"blue"}:U,z={...j,fg:"yellow",bold:!0,dim:!1},S=X?jjt(V,X):[],E=Rjt({text:O,ranges:S,x:L.x,y:L.y+q,maxCells:L.w,baseStyle:j,highlightStyle:z,terminal:u});if(E<L.w)u.write(Yn(L.w-E),{x:L.x+E,y:L.y+q,style:j})}if(g.value.length===0&&L.h>0){let q=h.value?`(${Ll(h.value)})`:"(no matches)";u.write(Gl($n(q,L.w),L.w),{x:L.x,y:L.y,style:{...U,dim:!0}})}}})),()=>qat("span",r,[qat(Tn,{x:t.x,y:t.y,w:t.w,h:1,zIndex:t.zIndex,modelValue:t.modelValue,"onUpdate:modelValue":(L)=>k(L),cursorToEndOnExternalUpdate:!0,placeholder:t.placeholder,style:t.style,autoFocus:t.autoFocus,onKeydown:(L)=>H(L),onChange:()=>void P(),onFocus:()=>i("focus"),onBlur:()=>i("blur")})])}});import{computed as zjt,defineComponent as Ejt,provide as Zjt}from"vue";var b2=Ejt({name:"TRenderLayer",props:{zIndex:{type:Number,default:0}},setup(t,{slots:i}){let{render:u}=Un(),e=v1(),n=zjt(()=>u.createStack(e.value,t.zIndex));return Zjt(h2,n),()=>i.default?.()??null}});import{computed as zJ,defineComponent as Sjt,h as sjt,inject as Jat,ref as Xat,watchEffect as Kat}from"vue";function Yc(t,i,u){return Math.max(i,Math.min(u,t))}function Ia(t){return typeof t!=="string"}function hQ(t){if(!Array.isArray(t)||t.length===0)return[];let i=[];for(let u of t){let e=Math.max(0,Math.trunc(Number(u?.start??-1))),n=Math.max(0,Math.trunc(Number(u?.end??-1)));if(n<=e)continue;i.push({start:e,end:n})}return i.sort((u,e)=>u.start-e.start||u.end-e.end),i}function Tjt(t){if(!Array.isArray(t)||t.length===0)return[];let i=[];for(let u of t){let e=Math.max(0,Math.trunc(Number(u?.start??-1))),n=Math.max(0,Math.trunc(Number(u?.end??-1)));if(n<=e)continue;i.push({start:e,end:n,style:u?.style,highlightStyle:u?.highlightStyle})}return i.sort((u,e)=>u.start-e.start||u.end-e.end),i}function EJ(t){let{terminal:i,text:u,ranges:e,x:n,y:o,maxCells:l,baseStyle:r,highlightStyle:p,accentRanges:c=[],accentStyle:m=r,accentSegments:f=[]}=t,g=Math.max(0,Math.floor(l));if(!u||g<=0)return 0;let _=0,d=e[_],h=0,b=c[h],w=0,v=f[w],Q=0,M=n,A="",k=r,J=()=>{if(!A)return;i.write(A,{x:M,y:o,style:k}),M+=Lt(A),A=""};for(let $=0;$<u.length&&Q<g;){let P=u.charCodeAt($)<=127?u[$]:String.fromCodePoint(u.codePointAt($)??0),H=P.length,Y=me(P);if(Q+Y>g)break;while(d&&d.end<=$)_++,d=e[_];while(b&&b.end<=$)h++,b=c[h];while(v&&v.end<=$)w++,v=f[w];let L=Boolean(d&&$<d.end&&$+H>d.start),U=Boolean(b&&$<b.end&&$+H>b.start),X=v&&$<v.end&&$+H>v.start?v.style:void 0,W=L?p:X||(U?m:r);if(W!==k)J(),k=W;A+=P,Q+=Y,$+=H}return J(),Q}var Xl=Sjt({name:"TSelect",props:{x:{type:Number,required:!0},y:{type:Number,required:!0},w:{type:Number,required:!0},h:{type:Number,required:!0},zIndex:{type:Number,default:0},options:{type:Array,required:!0},modelValue:{type:[Number,Array],default:0},multiple:{type:Boolean,default:!1},multipleEmit:{type:String,default:"value"},style:{type:Object,default:void 0},highlightStyle:{type:Object,default:void 0},autoFocus:{type:Boolean,default:!1},closeOnBlur:{type:Boolean,default:!1}},emits:["update:modelValue","change","confirm","close","focus","blur","keydown"],setup(t,{emit:i}){let{terminal:u,scheduler:e,defaultStyle:n,events:o}=Un(),l=co(),{visible:r,rootProps:p}=ia(),c=Jat(Ea,zJ(()=>0)),m=Jat(V5,!1),f=zJ(()=>(c.value??0)+(t.zIndex??0)),g=Xat(!1),_=(()=>{let K=Math.max(0,t.options.length-1);if(!t.multiple){let s=typeof t.modelValue==="number"?t.modelValue:0;return Yc(s,0,K)}let Z=(Array.isArray(t.modelValue)?t.modelValue:[])[0]??0;return Yc(Z,0,K)})(),d=Xat(_);function h(K){let F=Math.max(0,Math.floor(K.h)),Z=Math.max(0,t.options.length);if(F<=0)return 0;if(Z<=F)return 0;let s=Math.max(0,Z-F),nt=Yc(d.value,0,Math.max(0,Z-1));return Yc(nt-(F-1),0,s)}let b=zJ(()=>{let K={x:t.x,y:t.y,w:t.w,h:t.h},F=sa(K,l.originX,l.originY);if(!l.clipRect)return F;return Sa(F,l.clipRect)??{x:0,y:0,w:0,h:0}});Kat(()=>{let K=Math.max(0,t.options.length-1);if(!t.multiple){let F=typeof t.modelValue==="number"?t.modelValue:0,Z=Yc(F,0,K);d.value=Q(t.options[Z])?Z:M(Z,1)??Z;return}d.value=Yc(d.value,0,K)});function w(K){return Ia(K)?K.label:K}function v(K){return Ia(K)?K.kind:void 0}function Q(K){if(!K)return!1;return v(K)!=="separator"}function M(K,F){let Z=Math.max(0,t.options.length);if(Z<=0)return null;let s=F>=0?1:-1;for(let nt=1;nt<=Z;nt++){let ot=(K+s*nt+Z)%Z;if(Q(t.options[ot]))return ot}return null}function A(K){return Ia(K)?K.detail:void 0}function k(K){return Ia(K)?K.style:void 0}function J(K){return Ia(K)?K.highlightStyle:void 0}function $(K){return Ia(K)?K.detailStyle:void 0}function G(K){return Ia(K)?K.highlightDetailStyle:void 0}function P(K){return hQ(Ia(K)?K.labelHighlightRanges:void 0)}function H(K){return hQ(Ia(K)?K.detailHighlightRanges:void 0)}function Y(K){return hQ(Ia(K)?K.labelAccentRanges:void 0)}function L(K){return hQ(Ia(K)?K.detailAccentRanges:void 0)}function U(K){return Tjt(Ia(K)?K.detailAccentSegments:void 0)}function X(K){return Ia(K)?K.accentStyle:void 0}function W(K){return Ia(K)?K.highlightAccentStyle:void 0}function q(K){let F=Yc(K,0,Math.max(0,t.options.length-1));if(!Q(t.options[F]))return;d.value=F,i("update:modelValue",F);let Z=t.options[F];i("change",Z?w(Z):null)}function B(){if(!t.multiple)return[];let K=Math.max(0,t.options.length-1),F=Array.isArray(t.modelValue)?t.modelValue:[],Z=new Set;for(let s of F){if(typeof s!=="number"||!Number.isFinite(s))continue;Z.add(Yc(Math.trunc(s),0,K))}return[...Z].sort((s,nt)=>s-nt)}function x(K){let F=K.map((Z)=>t.options[Z]).filter(Boolean).map((Z)=>w(Z));return{indices:K,values:F}}function V(K,F){let Z=x(F);if(t.multipleEmit==="index"){i(K,Z.indices);return}if(t.multipleEmit==="both"){i(K,Z);return}i(K,Z.values)}function O(K){let F=Yc(K,0,Math.max(0,t.options.length-1));d.value=F;let Z=new Set(B());if(Z.has(F))Z.delete(F);else Z.add(F);let s=[...Z].sort((nt,ot)=>nt-ot);i("update:modelValue",s),V("change",s)}function j(){let K=B();V("confirm",K)}function z(K){if(!Q(t.options[K]))return;if(t.multiple)O(K);else q(K)}function S(K){if(i("keydown",K),K.defaultPrevented)return;let F=Math.max(0,t.options.length-1);if(K.key==="ArrowUp"||K.code==="ArrowUp"){K.preventDefault();let Z=F<=0?0:M(d.value,-1)??d.value;if(d.value=Z,!t.multiple)i("update:modelValue",d.value);e.invalidate();return}if(K.key==="ArrowDown"||K.code==="ArrowDown"){K.preventDefault();let Z=F<=0?0:M(d.value,1)??d.value;if(d.value=Z,!t.multiple)i("update:modelValue",d.value);e.invalidate();return}if(t.multiple&&(K.code==="Space"||K.key===" "||K.key==="Spacebar")){K.preventDefault(),O(d.value);return}if(K.key==="Enter"){if(t.multiple){if(m&&!K.shiftKey&&!K.ctrlKey&&!K.metaKey&&!K.altKey)K.__tuiDialogConfirm=!0;K.preventDefault(),j();return}z(d.value);return}if(K.key==="Escape")K.preventDefault(),i("close")}let{id:E}=cr(()=>({rect:b.value,zIndex:f.value,visible:r.value,focusable:!0,handlers:{click:(K)=>{let F=b.value,s=h(F)+(K.cellY-F.y);if(s>=0&&s<t.options.length)z(s);else i("close")},focus:()=>{g.value=!0,i("focus"),e.invalidate()},blur:()=>{if(g.value=!1,i("blur"),t.closeOnBlur)i("close");e.invalidate()},keydown:S}}));return Kat(()=>{if(!t.autoFocus)return;if(!r.value)return;let K=o.value,F=E.value;if(!K||!F)return;if(K.getFocused()===F)return;K.focus(F)}),Ul(()=>({zIndex:t.zIndex,rect:r.value?b.value:{x:0,y:0,w:0,h:0},deps:[r.value,b.value,t.w,t.h,t.options,t.modelValue,t.multiple,t.multipleEmit,t.style,t.highlightStyle,g.value,d.value,n.value],paint:(K)=>{if(!r.value)return;let F=b.value;if(F.w<=0||F.h<=0)return;let Z=h(F),s=t.style??n.value,nt=t.highlightStyle??{...s,bg:"yellow",fg:"black"},ot=t.multiple?new Set(B()):null,it=(bt)=>{let At=Z+bt,wt=t.options[At];if(!wt){u.write(Yn(F.w),{x:F.x,y:F.y+bt,style:s});return}let Ut=At===d.value,N=t.multiple?ot.has(At):Ut,rt=t.multiple?g.value&&Ut:Ut,Qt=t.multiple?N?"[x] ":"[ ] ":"",Kt=Ll(w(wt)),Ht=A(wt),Jt=Ht?Ll(Ht):"",ci=`${Qt}${Kt}`,ui=P(wt),Gt=H(wt),Ft=Y(wt),Et=L(wt),Ni=U(wt),Yi=k(wt),ii=Yi?{...s,...Yi}:s,Ct=J(wt),qi=Ct?{...nt,...Ct}:nt,It=$(wt),Oi={...ii,...It??{},dim:!0},tu=G(wt),ri={...qi,...tu??{},dim:!0},kt=X(wt),yt=kt?{...ii,...kt}:ii,Wt=W(wt),St=Wt?{...qi,...Wt}:kt?{...qi,...kt}:qi;if(v(wt)==="separator"){u.write("─".repeat(F.w),{x:F.x,y:F.y+bt,style:{...ii,dim:!0}});return}let ni=Ni.map((cu)=>({start:cu.start,end:cu.end,style:rt?{...ri,...cu.highlightStyle??cu.style??{}}:{...Oi,...cu.style??{}}})),Gi={...ii,fg:"yellow",bold:!0,dim:!1},pi={...qi,fg:"yellow",bold:!0,dim:!1},Li={...Oi,fg:"yellow",bold:!0,dim:!1},vi={...ri,fg:"yellow",bold:!0,dim:!1},pu=Lt(ci),iu=1,Hi=Math.max(0,F.w-pu-iu);if(Jt&&Hi>=4){let cu=rt?qi:ii,Gu=rt?pi:Gi,Mu=EJ({terminal:u,text:ci,ranges:ui,x:F.x,y:F.y+bt,maxCells:F.w,baseStyle:cu,highlightStyle:Gu,accentRanges:Ft,accentStyle:rt?St:yt}),Iu=$n(Jt,Hi),Hn=Lt(Iu),He=Math.max(0,F.w-Mu-Hn),Wo=rt?qi:ii;u.write(Yn(He),{x:F.x+Mu,y:F.y+bt,style:Wo});let Hl=rt?ri:Oi,ae=rt?vi:Li;EJ({terminal:u,text:Iu,ranges:Gt,x:F.x+Mu+He,y:F.y+bt,maxCells:Hn,baseStyle:Hl,highlightStyle:ae,accentRanges:Et,accentSegments:ni,accentStyle:rt?St:yt})}else{let cu=$n(ci,F.w),Gu=rt?qi:ii,Mu=rt?pi:Gi,Iu=EJ({terminal:u,text:cu,ranges:ui,x:F.x,y:F.y+bt,maxCells:F.w,baseStyle:Gu,highlightStyle:Mu,accentRanges:Ft,accentStyle:rt?St:yt});if(Iu<F.w)u.write(Yn(F.w-Iu),{x:F.x+Iu,y:F.y+bt,style:Gu})}};if(!K){for(let bt=0;bt<F.h;bt++)it(bt);return}let R=Math.floor(F.y),C=R+Math.max(0,Math.floor(F.h));if(C<=R)return;let at=0,_t=K.length;while(at<_t){let bt=at+_t>>1;if((K[bt]??0)<R)at=bt+1;else _t=bt}for(let bt=at;bt<K.length;bt++){let At=Math.floor(K[bt]??-1);if(At<R)continue;if(At>=C)break;let wt=At-R;if(wt>=0&&wt<F.h)it(wt)}}})),()=>sjt("span",p)}});import{computed as Ijt,inject as Oat}from"vue";var j5=Symbol("TerminalRouter"),wQ=Symbol("TerminalRoute");function R5(){let t=Oat(j5,null);if(!t)throw Error("TerminalRouter is missing");return t}function bQ(){let t=Oat(wQ,null);if(!t)throw Error("TerminalRoute is missing");return Ijt(()=>t.value)}import{ref as Cjt}from"vue";function Yat(t,i){let u=typeof t==="string"?{name:t}:t,e=i.get(u.name);return{name:u.name,params:u.params,meta:e?.meta}}function Ww(t){return typeof t==="string"||typeof t==="object"&&t!=null&&"name"in t}function yQ(t){let i=new Map(t.routes.map((f)=>[f.name,f])),u=Cjt(Yat(t.initialRoute,i)),e=[u.value],n=0,o=[],l=[],r=[];async function p(f,g,_){for(let d of f){let h=await d(g,_);if(h===!1)return!1;if(Ww(h))return h}return!0}async function c(f,g){let _=u.value,d=Yat(f,i),h=i.get(_.name)??null,b=i.get(d.name)??null,w=await p(o,d,_);if(w===!1)return;if(Ww(w))return c(w,g);let v=await p(l,d,_);if(v===!1)return;if(Ww(v))return c(v,g);if(h?.onLeave)await h.onLeave(d,_);if(u.value=d,g==="replace")e[n]=d;else if(g==="push")e.splice(n+1),e.push(d),n=e.length-1;if(b?.onEnter)await b.onEnter(d,_);for(let Q of r)Q(d,_)}let m={currentRoute:u,async push(f){await c(f,"push")},async replace(f){await c(f,"replace")},async back(){if(n<=0)return;let f=u.value,g=e[n-1],_=i.get(f.name)??null,d=i.get(g.name)??null,h=await p(o,g,f);if(h===!1)return;if(Ww(h))return c(h,"push");let b=await p(l,g,f);if(b===!1)return;if(Ww(b))return c(b,"push");if(_?.onLeave)await _.onLeave(g,f);if(n-=1,u.value=g,d?.onEnter)await d.onEnter(g,f);for(let w of r)w(g,f)},beforeEach(f){return o.push(f),()=>{let g=o.indexOf(f);if(g>=0)o.splice(g,1)}},beforeResolve(f){return l.push(f),()=>{let g=l.indexOf(f);if(g>=0)l.splice(g,1)}},afterEach(f){return r.push(f),()=>{let g=r.indexOf(f);if(g>=0)r.splice(g,1)}},install(f){f.provide(j5,m),f.provide(wQ,u)}};return m}function Pat(t,i){let u=t.currentRoute.value;return i.find((n)=>n.name===u.name)?.component??null}import{computed as tRt,defineComponent as iRt,h as uRt,inject as nRt,ref as eRt,watch as oRt}from"vue";var vQ=iRt({name:"TRouterView",props:{routes:{type:Array,required:!0},forceRemount:{type:Boolean,default:!0}},setup(t){let i=nRt(j5,null);if(!i)throw Error("TerminalRouter is missing (did you forget to app.use(router)?)");let u=eRt(0);oRt(()=>i.currentRoute.value,()=>{if(t.forceRemount)u.value++},{deep:!0});let e=tRt(()=>Pat(i,t.routes));return()=>{let n=e.value;return n?uRt(n,{key:t.forceRemount?u.value:void 0}):null}}});import{watch as gSi}from"vue";function ZJ(t){return t.includes("-h")||t.includes("--help")}function SJ(){return["Usage:"," dim Interactive TUI",' dim [--cwd dir] [--session id] "prompt"'," One-shot execution (stdout, tools auto-approved)"," dim auth [provider] Authenticate provider (next-api-oauth)"," dim version Print version info"," dim upgrade [version] Upgrade CLI"," dim acp Start ACP server for editor integrations","","Options:"," --approvals auto|normal|strict Tool approval mode (default: normal)"," --auto-approve, --yes, -y Shorthand for --approvals all"," --cols N --rows N Terminal size override"," --no-mouse Disable mouse support"," --no-alt-screen Disable alternate screen"," --debug Enable debug logging"," -h, --help Show this help","","Notes:"," - Interactive TUI defaults to --approvals auto (prompts for risky tools)."," - Use --approvals auto (or -y/--auto-approve) to auto-approve all tools."," - Auto-update is enabled by default (set DIMCODE_DISABLE_AUTOUPDATE=1 to disable)."].join(`
|
|
1199
|
-
`)}function Wat(t,i){let u=i?.stdout,e=Number.isFinite(u?.columns)?Number(u?.columns):80,n=Number.isFinite(u?.rows)?Number(u?.rows):24,o=e,l=n,r=!1,p=!1,c="dim",m="home",f=null,g=null,_=null,d=!0,h=!0,b=null,w=!1,v=0,Q=()=>{if(v+1>=t.length)return;return v+=1,t[v]};for(;v<t.length;v++){let M=t[v];if(M==="--cols")o=Number.parseInt(Q()??"",10),r=!0;else if(M==="--rows")l=Number.parseInt(Q()??"",10),p=!0;else if(M==="--app"||M==="--example")c=String(Q()??c);else if(M==="--route"||M==="--initial-route")m=String(Q()??m);else if(M==="--approvals"||M==="--approval"){let A=String(Q()??"").trim().toLowerCase();if(A==="auto"||A==="all"||A==="on"||A==="yes"||A==="true"||A==="1")b="auto";else if(A==="normal"||A==="default")b="normal";else if(A==="strict"||A==="manual")b="strict"}else if(M==="--auto-approve"||M==="--yes"||M==="-y")b="auto";else if(M==="--record")f=Q()??null;else if(M==="--replay")g=Q()??null;else if(M==="--snapshot")_=Q()??null;else if(M==="--no-mouse")d=!1;else if(M==="--no-alt-screen")h=!1;else if(M==="--debug")w=!0}return o=Math.max(10,Math.floor(o||e)),l=Math.max(5,Math.floor(l||n)),{cols:o,rows:l,sizeLocked:r||p,app:c,initialRoute:m,recordPath:f,replayPath:g,snapshotPath:_,enableMouse:d,altScreen:h,approvals:b,debug:w}}var cp=qg(UQ(),1);import{spawn as Jrt}from"node:child_process";import{createWriteStream as hZt,existsSync as wZt,statSync as bZt}from"node:fs";import{chmod as fX,mkdir as Xrt,readFile as yZt,rename as Krt,stat as vZt,unlink as $Zt,writeFile as QZt}from"node:fs/promises";import Zg from"node:path";import{Readable as GZt}from"node:stream";import{pipeline as MZt}from"node:stream/promises";Z5();var cZt="upgrade-toast.json";function Wc(t){let i=String(t??"").trim();if(!i)return;let u=globalThis?.__DIMCODE_UPGRADE_TOAST__;if(typeof u==="function")try{u(i);return}catch{}mZt(i)}async function mZt(t){try{let[{mkdir:i,writeFile:u},e]=await Promise.all([import("node:fs/promises"),import("node:path")]),n=await Ca(process.env);await i(n,{recursive:!0});let o=e.join(n,cZt),l=JSON.stringify({message:t,createdAt:Date.now()});await u(o,l,"utf8")}catch{}}import{existsSync as fZt,readFileSync as gZt}from"node:fs";import mX from"node:path";import{fileURLToPath as _Zt}from"node:url";function Fc(){let t="0.0.21
|
|
1200
|
-
`,{encoding:"utf8",mode:384}),await Krt(r,n);try{await fX(n,384)}catch{}}function XZt(t){if(String(t.DIMCODE_BINARY_UPDATE_PROVIDER??"").trim().toLowerCase()==="github")return"github";if("".trim().toLowerCase()==="github")return"github";return"gitlab"}function hX(t){let i=XZt(t),u=KZt(t),e=OZt(t,i);return{provider:i,host:e.host,project:e.project,githubApiBaseUrl:u}}function KZt(t){let i=String(t.DIMCODE_BINARY_UPDATE_GITHUB_API_BASE_URL??"").trim();if(i)return i.replace(/\/+$/,"");let u="".trim();if(u)return u.replace(/\/+$/,"");return Prt}function OZt(t,i){if(i==="github"){let l="".trim();return{project:String(t.DIMCODE_BINARY_UPDATE_REPO??l??qrt).trim()||qrt}}let u="".trim(),e="".trim(),n=String(t.DIMCODE_BINARY_UPDATE_GITLAB_HOST??u??gX).trim()||gX,o=String(t.DIMCODE_BINARY_UPDATE_PROJECT??e??krt).trim()||krt;return{host:n,project:o}}function Rrt(t,i){if(i==="github"){let e=String(t.DIMCODE_GITHUB_TOKEN??t.GITHUB_TOKEN??"").trim();return e?{Authorization:`Bearer ${e}`}:{}}let u=String(t.DIMCODE_GITLAB_TOKEN??t.GITLAB_TOKEN??"").trim();if(!u)return{};if(u.startsWith("glpat-"))return{"PRIVATE-TOKEN":u};return{Authorization:`Bearer ${u}`}}async function YZt(t){return await zrt("latest",t)}async function zrt(t,i){let u=hX(i),e=u.provider,n={host:u.host,project:u.project},o=Rrt(i,e),l=dX();if(!l)return null;let r=HZt(l),p=t==="latest"?["latest"]:PZt(t);for(let c of p){let m=await WZt({provider:e,host:n.host,project:n.project,tag:c,headers:o,githubApiBaseUrl:u.githubApiBaseUrl});if(!m)continue;let f=String(m?.tag_name??m?.tagName??"").trim()||(c==="latest"?"latest":c),g=VZt(f);if(!g)continue;let _=e==="github"?qZt(m,r):LZt(m,r);if(!_)continue;return{provider:e,host:n.host,project:n.project,tag:f,version:g,asset:_,target:l,assetName:r}}return null}function PZt(t){let i=String(t??"").trim();if(!i)return[];if(i==="latest")return["latest"];if(i.startsWith("v"))return[i,i.slice(1)];return[`v${i}`,i]}async function WZt(t){let i=new AbortController,u=setTimeout(()=>i.abort(),AZt());try{let e=FZt(t),n=await fetch(e,{headers:{Accept:"application/json",...t.headers},signal:i.signal});if(!n.ok)return null;return await n.json()}catch{return null}finally{clearTimeout(u)}}function FZt(t){if(t.provider==="github"){let e=String(t.githubApiBaseUrl||Prt).replace(/\/+$/,"");if(t.tag==="latest")return`${e}/repos/${t.project}/releases/latest`;return`${e}/repos/${t.project}/releases/tags/${encodeURIComponent(t.tag)}`}let i=t.host||gX,u=encodeURIComponent(t.project);if(t.tag==="latest")return`https://${i}/api/v4/projects/${u}/releases/permalink/latest`;return`https://${i}/api/v4/projects/${u}/releases/${encodeURIComponent(t.tag)}`}function NZt(t){try{Jrt(process.execPath,["upgrade",t,"--background"],{stdio:"ignore",detached:!0,env:{...process.env,DIMCODE_BINARY_UPGRADE_CHILD:"1"}}).unref()}catch{}}async function jZt(t,i){let u=await Ca(i),e=Zg.join(u,"bin");await Xrt(e,{recursive:!0});let n=process.platform==="win32"?".exe":"",o=kZt(t.version),l=Zg.join(e,`dim-${t.target}-${o}${n}`);if(jrt(l)){let c={version:1,installedAt:Date.now(),cliVersion:t.version,target:t.target,provider:t.provider,project:t.project,host:t.host,assetName:t.assetName,binaryPath:l};return await Urt(i,c),{version:t.version,binaryPath:l}}let r=`${l}.${process.pid}.${Date.now()}.tmp`;if(await RZt(t.asset.url,r,Rrt(i,t.provider)),process.platform!=="win32")try{await fX(r,493)}catch{}try{await $Zt(l)}catch{}await Krt(r,l);try{if(process.platform!=="win32")await fX(l,493)}catch{}let p={version:1,installedAt:Date.now(),cliVersion:t.version,target:t.target,provider:t.provider,project:t.project,host:t.host,assetName:t.assetName,binaryPath:l};return await Urt(i,p),{version:t.version,binaryPath:l}}async function RZt(t,i,u){let e=new AbortController,n=setTimeout(()=>e.abort(),DZt());try{let o=await fetch(t,{redirect:"follow",headers:u,signal:e.signal});if(!o.ok)throw Error(`download failed (${o.status})`);let l=o.body;if(!l)throw Error("download response has no body");if(await MZt(GZt.fromWeb(l),hZt(i)),(await vZt(i)).size<=Yrt)throw Error("downloaded file is too small")}finally{clearTimeout(n)}}import{randomUUID as HJi}from"node:crypto";import{statSync as VJi}from"node:fs";import{homedir as kJi}from"node:os";import EAt from"node:path";s5();function XSt(t){let i=t.trim();if(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))return i.slice(1,-1).trim();return i}function KSt(t){if(typeof t!=="string")return"";return XSt(t).trim().toLowerCase()}function wr(t){let i=KSt(t);if(!i)return null;let u=i.split("/").filter(Boolean).pop()||"";if(i==="k2p5"||u==="kimi-k2.5")return{temperature:1,interleavedThinking:!0};if(u==="kimi-k2-thinking")return{interleavedThinking:!0};return null}ol();function d2t(t){let i=t.prefixedStr("TOOL_APPROVALS").toLowerCase();if(!i)return t.prefixedBool("SKIP_APPROVAL")?"auto":"normal";if(i==="auto"||i==="all"||i==="always")return"auto";if(i==="strict"||i==="manual")return"strict";return"normal"}function FQ(t){let i=t.prefixedStr("MODEL")||"deepseek-v3.1",u=wr(i),e=typeof u?.temperature==="number"?u.temperature:t.prefixedFloat("TEMPERATURE")??0.7,n=typeof u?.interleavedThinking==="boolean"?u.interleavedThinking:t.prefixedBool("INTERLEAVED_THINKING")??!1,o=t.prefixedInt("CONTEXT_WINDOW"),l=YQ(i);return{model:i,context_window:o||l||A1,temperature:e,interleaved_thinking:n}}function h2t(t){return t.prefixedStr("SESSION_ID")||""}function w2t(t){return{idleMs:t.prefixedInt("STREAM_IDLE_TIMEOUT_MS")??1800000,totalMs:t.prefixedInt("STREAM_TOTAL_TIMEOUT_MS")??5400000}}s5();ll();lb();import rAt from"node:path";ol();wtt();function iV(t){return String(t??"").trim()}function Co(t){return iV(t)||void 0}function fUi(t){let i=iV(t).toLowerCase();if(!i)return;if(i==="1"||i==="true"||i==="yes"||i==="on")return!0;if(i==="0"||i==="false"||i==="no"||i==="off")return!1;return}function tV(t){let i=iV(t);if(!i)return;let u=Number.parseInt(i,10);if(!Number.isFinite(u)||u<=0)return;return u}function e7(t){return Object.entries(t??{}).reduce((i,[u,e])=>{return i[u]=e,i},{})}function aAt(t,i,u={}){let e=Co(i?.modelId)??t.modelId,n=Co(i?.adapter)??t.adapter,o=Co(i?.provider)??t.provider??n,l=Co(i?.baseUrl)??t.baseUrl,r=Co(i?.apiKey)??t.apiKey,p=tV(i?.maxInputTokens),c=u.preferSourceMaxInputTokens===!1?t.maxInputTokens??p:p??t.maxInputTokens,m=tV(i?.maxOutputTokens)??t.maxOutputTokens,f=i?.env&&typeof i.env==="object"?e7(i.env):t.env?e7(t.env):void 0;return{modelId:e,...n?{adapter:n}:{},...o?{provider:o}:{},...l?{baseUrl:l}:{},...r?{apiKey:r}:{},...i?.nextApiOAuth===!0||t.nextApiOAuth===!0?{nextApiOAuth:!0}:{},...typeof c==="number"?{maxInputTokens:c}:{},...typeof m==="number"?{maxOutputTokens:m}:{},...f?{env:f}:{}}}function gUi(t){let i=iV(t.DIMCODE_PROVIDER_ADAPTER).toLowerCase();if(i==="openai"||i==="openai-responses"||i==="gemini"||i==="anthropic")return i;let u=Boolean(Co(t.OPENAI_API_KEY)),e=Boolean(Co(t.GOOGLE_API_KEY)),n=Boolean(Co(t.ANTHROPIC_API_KEY));if(n&&!u&&!e)return"anthropic";if(e&&!u&&!n)return"gemini";return"openai"}function Xh(t){let i=gUi(t),u=Co(t.DIMCODE_PROVIDER_ID),e=Co(t.DIMCODE_MODEL)??Co(t.MODEL_ID)??Co(t.MODEL)??"deepseek-v3.1",n=i==="gemini"?Co(t.DIMCODE_GEMINI_BASE_URL):i==="anthropic"?Co(t.DIMCODE_ANTHROPIC_BASE_URL):Co(t.DIMCODE_OPENAI_BASE_URL)??Co(t.OPENAI_BASE_URL)??Co(t.OPENAI_API_BASE_URL),o=i==="gemini"?Co(t.GOOGLE_API_KEY):i==="anthropic"?Co(t.ANTHROPIC_API_KEY):Co(t.OPENAI_API_KEY),l=u==="next-api-oauth"||fUi(t.DIMCODE_USE_NEXT_API_OAUTH)===!0,r=tV(t.DIMCODE_CONTEXT_WINDOW)??YQ(e,i),p=tV(t.DIMCODE_MAX_TOKENS);return{modelId:e,adapter:i,provider:u??i,...n?{baseUrl:n}:{},...o?{apiKey:o}:{},...l?{nextApiOAuth:!0}:{},...r?{maxInputTokens:r}:{},...p?{maxOutputTokens:p}:{},env:{...t}}}function _Ui(t){let i=()=>({...e7(t.context.env??{}),...e7(t.processEnv),...e7(typeof process<"u"?process.env:void 0)}),u=Xh(i());return{systemPrompt:t.context.system,modelId:u.modelId,adapter:u.adapter,provider:u.provider,baseUrl:u.baseUrl,apiKey:u.apiKey,nextApiOAuth:u.nextApiOAuth,maxInputTokens:u.maxInputTokens,maxOutputTokens:u.maxOutputTokens,stateDir:t.stateDir,cliTools:!0,delegateTasks:!0,...t.tools?{tools:t.tools}:{},...t.mcpServers?{mcpServers:t.mcpServers}:{},...t.forcedSkills?{forcedSkills:t.forcedSkills}:{},resolveRuntimeConfig:(e)=>{let n=Xh(i());return e.requested?aAt(n,e.requested,{preferSourceMaxInputTokens:!0}):aAt(n,e.existing,{preferSourceMaxInputTokens:!1})}}}async function btt(t){return await n7(_Ui(t))}function _o(t){return String(t??"").trim()}function vtt(t){return t==="plan"?"plan":"agent"}function pAt(t){if(t==="auto"||t==="normal"||t==="strict")return t;if(t==="all")return"auto";return null}function uV(t){if(!t||typeof t!=="object"||Array.isArray(t))return{};return t}function nV(t){return JSON.parse(JSON.stringify(t??null))}function ytt(t){return Object.entries(t??{}).reduce((i,[u,e])=>{return i[u]=e,i},{})}function dUi(t,i){return _o(t?.modelId)===_o(i?.modelId)&&_o(t?.adapter)===_o(i?.adapter)&&_o(t?.provider)===_o(i?.provider)&&_o(t?.baseUrl)===_o(i?.baseUrl)&&_o(t?.apiKey)===_o(i?.apiKey)&&Boolean(t?.nextApiOAuth)===Boolean(i?.nextApiOAuth)&&Number(t?.maxInputTokens??0)===Number(i?.maxInputTokens??0)&&Number(t?.maxOutputTokens??0)===Number(i?.maxOutputTokens??0)}function hUi(t,i){return JSON.stringify(t??[])===JSON.stringify(i??[])}function wUi(t,i){let u=uV(t),e=_o(u.modelId)||i.modelId,n=_o(u.adapter)||i.adapter,o=_o(u.provider)||i.provider||n,l=_o(u.baseUrl)||i.baseUrl,r=_o(u.apiKey)||i.apiKey,p=Number(u.maxInputTokens??i.maxInputTokens??0)||void 0,c=Number(u.maxOutputTokens??i.maxOutputTokens??0)||void 0,m=u.env&&typeof u.env==="object"?nV(u.env):i.env;return{modelId:e,...n?{adapter:n}:{},...o?{provider:o}:{},...l?{baseUrl:l}:{},...r?{apiKey:r}:{},...u.nextApiOAuth===!0||i.nextApiOAuth===!0?{nextApiOAuth:!0}:{},...p?{maxInputTokens:p}:{},...c?{maxOutputTokens:c}:{},...m?{env:m}:{}}}function bUi(t,i){let u=uV(t?.metadata),e=uV(u[zc]);return{runtimeConfig:t?wUi(e.runtimeConfig,{...i,modelId:_o(uV(e.runtimeConfig).modelId)||i.modelId}):null,modeId:vtt(e.modeId),toolApprovalMode:pAt(e.toolApprovalMode),mcpServers:Array.isArray(e.mcpServers)?nV(e.mcpServers):[]}}function cAt(t){let i=rAt.resolve(t.stateDir),u="agent",e=null,n=null,o=()=>({...ytt(t.context.env??{}),...ytt(t.processEnv)}),l=()=>({...o(),...ytt(typeof process<"u"?process.env:void 0)}),r=()=>Xh(l()),p=(b)=>{let w=_o(b);if(!w)return;Zi("cli.session.persistence",{sessionId:w,stateDir:i,snapshotPath:u4(i,w)})},c=async()=>{if(n)return await n;let b=(async()=>{let w=WQ({activeStateDir:i,env:o()}),v=null,Q=async()=>{if(v)return v;return v=await btt({context:t.context,stateDir:i,processEnv:t.processEnv,tools:t.tools,mcpServers:t.mcpServers,forcedSkills:t.forcedSkills}),v};await iG({activeStateDir:i,stateRoots:w,fallbackRuntimeConfig:r(),fallbackCwd:_o(t.context.cwd)||process.cwd(),hasRuntimeSnapshot:async(M)=>Boolean(await vr({directory:rAt.join(i,B2),sessionId:M})),materializeSession:async(M)=>{let A=await Q();if(M.messages.length>0)await A.sessions.createWithMessages(M.messages,{sessionId:M.sessionId,cwd:M.cwd,title:M.title,modeId:M.modeId,runtimeConfig:M.runtimeConfig,toolApprovalMode:M.toolApprovalMode,mcpServers:M.mcpServers,metadata:M.metadata});else await A.sessions.create({sessionId:M.sessionId,cwd:M.cwd,title:M.title,modeId:M.modeId,runtimeConfig:M.runtimeConfig,toolApprovalMode:M.toolApprovalMode,mcpServers:M.mcpServers,metadata:M.metadata});let k=await A.sessions.get(M.sessionId);if(!k)throw Error(`Runtime snapshot missing for ${M.sessionId}`);await eb(u4(i,M.sessionId),tG(k,M))}})})();n=b;try{await b}finally{if(n===b)n=null}},m=async()=>{if(e)return await e;e=(async()=>{return await c(),await btt({context:t.context,stateDir:i,processEnv:t.processEnv,tools:t.tools,mcpServers:t.mcpServers,forcedSkills:t.forcedSkills})})();try{return await e}catch(b){throw e=null,b}},f=async()=>{if(!e)return await m();return await c(),await e},g={list:async()=>(await f()).sessions.list(),get:async(b)=>(await f()).sessions.get(b),create:async(b)=>(await m()).sessions.create(b),createWithMessages:async(b,w)=>await(await m()).sessions.createWithMessages(b,w),destroy:async(b)=>await(await m()).sessions.destroy(b),rename:async(b,w)=>await(await m()).sessions.rename(b,w),updateMetadata:async(b,w)=>await(await m()).sessions.updateMetadata(b,w),interrupt:async(b)=>await(await m()).sessions.interrupt(b)},_={sessions:g,listSessions:async()=>await(await f()).listSessions(),openSession:async(b)=>await(await f()).openSession(b),createSession:async(b)=>await(await m()).createSession(b),destroySession:async(b)=>await(await m()).destroySession(b)},d=async(b)=>{let w=_o(b);if(!w)return null;return await(await f()).openSession(w)};return{runtime:_,sessions:g,openSession:d,ensureSession:async(b)=>{let w=_o(b?.sessionId),v=w?await f():await m(),Q=vtt(b?.modeId??u),M=_o(b?.cwd)||_o(t.context.cwd)||process.cwd(),A=b?.runtimeConfig??r(),k=Object.prototype.hasOwnProperty.call(b??{},"toolApprovalMode"),J=pAt(b?.toolApprovalMode),$=Array.isArray(b?.mcpServers),G=Array.isArray(b?.mcpServers)?nV(b.mcpServers):void 0,P=b?.metadata?nV(b.metadata):void 0;if(w){let Y=await v.openSession(w);if(Y){let L=await v.sessions.get(Y.id),U=bUi(L,A),X={};if(_o(L?.cwd)!==M)X.cwd=M;if(!dUi(U.runtimeConfig,A))X.runtimeConfig=A;if(U.modeId!==Q)await Y.setMode(Q);if(k&&U.toolApprovalMode!==J)X.toolApprovalMode=J;if($&&Array.isArray(G)&&!hUi(U.mcpServers,G))X.mcpServers=G;if(P)X.metadata=P;if(Object.keys(X).length>0)await Y.updateConfig(X);return p(Y.id),Y}}let H=await v.createSession({sessionId:w||void 0,cwd:M,modeId:Q,runtimeConfig:A,...k?{toolApprovalMode:J}:{},...$?{mcpServers:G}:{},...P?{metadata:P}:{}});return p(H.id),H},async steerSession(b,w){let v=await d(b);if(!v)return!1;return await v.steer(w)},setMode(b){u=vtt(b)},getMode(){return u},async triggerManualCompression(b){let w=_o(b),v=w?await d(w):null;if(!v)return{success:!1,error:w?`Session not found: ${w}`:"Manual compaction requires an active session id"};return await v.triggerManualCompaction()},invalidateSession(b){}}}ol();Z5();import{randomBytes as yUi}from"node:crypto";var vUi="cp_",$Ui="bailian-coding-plan",QUi="/apps/anthropic/v1",GUi="https://coding.dashscope.aliyuncs.com/v1";function MUi(t){let i=t&&typeof t==="object"?t:{},u=$a(i.context),e=$a(i.output);if(u==null&&e==null)return;return{...u!=null?{context:u}:{},...e!=null?{output:e}:{}}}function mAt(t){let i=$i(t);if(i&&ru(i))return i;return`${vUi}${yUi(8).toString("hex")}`}function BUi(t){let i=$i(t);if(i==="openai"||i==="openai-responses"||i==="gemini"||i==="anthropic")return i;return}function $tt(t){if(!Array.isArray(t))return[];let i=[];for(let u of t){let e=$i(u?.id);if(!e)continue;let n=$i(u?.name),o=MUi(u?.limit);i.push({id:e,...n?{name:n}:{},...o?{limit:o}:{}})}return i}function xUi(t){if(!Array.isArray(t))return[];let i=[];for(let u of t){let e=$i(u?.id),n=$i(u?.name),o=BUi(u?.adapter);if(!e||!n||!o)continue;i.push({id:mAt(e),name:n,adapter:o,baseUrl:$i(u?.baseUrl),apiKey:$i(u?.apiKey),models:$tt(u?.models)})}return i}function AUi(t){let i=t?.customProvider??{},u=$i(i.baseUrl),e=$i(i.apiKey),n=$tt(i.models);return Boolean(u||e||n.length)}function DUi(t){let i=t?.customProvider??{};return{id:mAt(void 0),name:"Custom",adapter:"openai",baseUrl:$i(i.baseUrl),apiKey:$i(i.apiKey),models:$tt(i.models)}}function HUi(t){let i=$i(t);if(!i)return!1;try{let u=new URL(i),e=u.pathname.replace(/\/+$/,"");return u.protocol==="https:"&&u.hostname==="coding.dashscope.aliyuncs.com"&&e===QUi}catch{return!1}}function VUi(t){let i=t?.providerConnections;if(!i||typeof i!=="object")return!1;let u=i[$Ui];if(!u||typeof u!=="object")return!1;if(!HUi(u.baseUrl))return!1;let e=u;return e.baseUrl=GUi,!0}function eV(t){let i=t.settings??{},u=!1,e=xUi(i.customProviders);if(VUi(i))u=!0;if(!e.length&&AUi(i))e=[DUi(i)],u=!0;if(e.length){i.customProviders=e;let n={...i.activeModelByProvider??{}};if(Pn(i.providerId))i.providerId=e[0].id,u=!0;if(n.custom){if(!n[e[0].id])n[e[0].id]=n.custom;delete n.custom,i.activeModelByProvider=n,u=!0}}if(!t.settings&&Object.keys(i).length)t.settings=i;return{customProviders:e,migrated:u}}qm();xtt();ol();Oh();var LUi=new Set(["OPENAI_API_KEY","OPENAI_BASE_URL","OPENAI_API_BASE_URL","GOOGLE_API_KEY","ANTHROPIC_API_KEY","MODEL_ID","DIMCODE_MODEL","DIMCODE_PROVIDER_ADAPTER","DIMCODE_PROVIDER_ID","DIMCODE_PROVIDER_NAME","DIMCODE_OPENAI_BASE_URL","DIMCODE_GEMINI_BASE_URL","DIMCODE_ANTHROPIC_BASE_URL","DIMCODE_OPENAI_API_KEY","DIMCODE_USE_NEXT_API_OAUTH"]);async function Vtt(t){let i=String(t.env.DIMCODE_FAST_START??"").trim().toLowerCase(),u=i==="1"||i==="true"||i==="yes"||i==="on",e=$i("0.0.21-beta.1")??(u?null:await UUi(t.cwd)),n=async()=>{let[{homedir:it},R]=await Promise.all([import("node:os"),import("node:path")]),C=$i(t.env.DIMCODE_HOME);if(C){let _t=R.resolve(C);return{dir:_t,filePath:R.join(_t,"tools.json")}}let at=R.resolve(it(),".dimcode");return{dir:at,filePath:R.join(at,"tools.json")}},[o,l,r,p]=u?await(async()=>{let[it,R,C,at]=await Promise.all([Ca(t.env),JQ(t.env),n(),import("node:path")]),_t=at.join(it,"cache.json"),bt=at.join(R,"config.json"),At=at.join(C.dir,"mcp.json");return[{dir:it,filePath:_t,cache:{version:1,updatedAt:0}},{dir:R,filePath:bt,config:{version:1,updatedAt:0}},{dir:C.dir,filePath:C.filePath,tools:{version:1,updatedAt:0}},{dir:C.dir,filePath:At,servers:[]}]})():await Promise.all([x1(t.env),v2(t.env),Pf(t.env),l7(t.env)]),c=o.cache,m=l.config;eV(m);let f=c.settings??{},g=m.settings??{},_=$i(f.cwd),d=Array.isArray(f.focusFiles)?f.focusFiles.map((it)=>String(it??"")).filter(Boolean):void 0,h=t.cwd||_||".",b=(it)=>$i(t.env[it]),w=Object.fromEntries(Object.entries(t.env).flatMap(([it,R])=>{let C=String(it??"").trim(),at=$i(R);if(!C||!LUi.has(C)||!at)return[];return[[C,at]]})),v=(it,R,C)=>{let at=C[R];if(!at||it[R])return;it[R]=at},Q={DIMCODE_VERSION:e??"dev",...b("DIMCODE_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:b("DIMCODE_STARTUP_TOAST")}:{},...b("DIMCODE_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:b("DIMCODE_STARTUP_UPGRADE_TOAST")}:{}},M=Sg(g.providerId),A=g.providerConnections??{},k=g.activeModelByProvider??{},J=Array.isArray(g.customProviders)?g.customProviders:[],$=g.customProvider??{},G=$i($?.baseUrl),P=$i($?.apiKey),H=Array.isArray($?.models)?$.models:[],Y=(()=>{if(Pn(M)&&J.length){let it=$i(J[0]?.id);if(it){if(m.settings)m.settings.providerId=it;return it}}return M})(),{candidates:L,existingProviderIds:U}=Yr({connections:A,customProviders:J,legacyCustom:$,rememberedModels:{...k}}),X=Pr({...k},U),W=Wr({candidates:L,preferredProviderId:Y,rememberedModels:X}),q=$i(W.providerId),B=$i(W.modelId);if(m.settings)if(q)m.settings.providerId=q;else delete m.settings.providerId;let x=ru(q)?J.find((it)=>String(it?.id??"").trim()===q):void 0,V=q&&!ru(q)&&!Pn(q)?Cu(q):void 0,O=A[q??""],j=$i(O?.baseUrl),z=$i(q0(V)),S=ru(q)?String(x?.adapter??"").trim():Pn(q)?"openai":q==="openai"&&j&&j!==z?"openai":hr(V),E=q?ru(q)?$i(x?.name):Pn(q)?"Custom Provider":mo(V??{id:q}):void 0,K=ru(q)?$i(x?.baseUrl):Pn(q)?G:$i(O?.baseUrl??q0(V)),F=ru(q)?$i(x?.apiKey):Pn(q)?P:$i(O?.apiKey),Z=Tw({providerId:q,modelId:B,connections:A,customProviders:J,legacyCustomModels:H}),s=$a(f.contextWindow),nt=p2t(s,Z)?void 0:s;if(Pn(q)&&!K&&!F&&!B)throw Error("Legacy custom provider config is missing. Please run /connect to add a custom provider and select a model.");if(!Q.DIMCODE_PROVIDER_ADAPTER&&S)Q.DIMCODE_PROVIDER_ADAPTER=S;if(!Q.DIMCODE_PROVIDER_ID&&q)Q.DIMCODE_PROVIDER_ID=q;if(!Q.DIMCODE_PROVIDER_NAME&&E)Q.DIMCODE_PROVIDER_NAME=E;if(!Q.DIMCODE_MODEL&&B)Q.DIMCODE_MODEL=B;if(S==="gemini"){if(!Q.DIMCODE_GEMINI_BASE_URL&&K)Q.DIMCODE_GEMINI_BASE_URL=K;if(!Q.GOOGLE_API_KEY&&F)Q.GOOGLE_API_KEY=F}else if(S==="anthropic"){if(!Q.DIMCODE_ANTHROPIC_BASE_URL&&K)Q.DIMCODE_ANTHROPIC_BASE_URL=K;if(!Q.ANTHROPIC_API_KEY&&F)Q.ANTHROPIC_API_KEY=F}else{if(!Q.DIMCODE_OPENAI_BASE_URL&&K)Q.DIMCODE_OPENAI_BASE_URL=K;if(!Q.OPENAI_API_KEY&&F)Q.OPENAI_API_KEY=F}if(!Q.DIMCODE_CONTEXT_WINDOW){let it=nt??Z;if(typeof it==="number"&&it>0)Q.DIMCODE_CONTEXT_WINDOW=String(it);else Q.DIMCODE_CONTEXT_WINDOW=String(A1)}if(!Q.DIMCODE_TEMPERATURE&&$a(f.temperature)!=null)Q.DIMCODE_TEMPERATURE=String(f.temperature);if(!Q.DIMCODE_INTERLEAVED_THINKING&&typeof f.interleavedThinking==="boolean")Q.DIMCODE_INTERLEAVED_THINKING=f.interleavedThinking?"1":"0";if(!Q.DIMCODE_TOOL_APPROVALS&&f.toolApprovals){let it=String(f.toolApprovals),R=it==="auto"||it==="all"?"auto":it==="strict"||it==="manual"?"strict":it==="normal"?"normal":void 0;if(R)Q.DIMCODE_TOOL_APPROVALS=R}if(!Q.DIMCODE_LANG&&$i(f.locale))Q.DIMCODE_LANG=$i(f.locale);if(!Q.DIMCODE_THEME&&$i(f.themeMode))Q.DIMCODE_THEME=$i(f.themeMode);if(Tg(V))Q.DIMCODE_CCMOCK="1";else delete Q.DIMCODE_CCMOCK;if(v(Q,"DIMCODE_PROVIDER_ADAPTER",w),v(Q,"DIMCODE_PROVIDER_ID",w),v(Q,"DIMCODE_PROVIDER_NAME",w),v(Q,"DIMCODE_MODEL",w),v(Q,"DIMCODE_OPENAI_BASE_URL",w),v(Q,"DIMCODE_OPENAI_API_KEY",w),v(Q,"DIMCODE_GEMINI_BASE_URL",w),v(Q,"DIMCODE_ANTHROPIC_BASE_URL",w),v(Q,"DIMCODE_USE_NEXT_API_OAUTH",w),!Q.DIMCODE_PROVIDER_ID&&!Q.DIMCODE_PROVIDER_ADAPTER)v(Q,"MODEL_ID",w),v(Q,"OPENAI_API_KEY",w),v(Q,"OPENAI_BASE_URL",w),v(Q,"OPENAI_API_BASE_URL",w),v(Q,"GOOGLE_API_KEY",w),v(Q,"ANTHROPIC_API_KEY",w);return{context:{system:gAt,cwd:h,env:Q,...d?.length?{focusFiles:d}:{}},cacheDir:o.dir,cacheFile:o.filePath,cache:c,configDir:l.dir,configFile:l.filePath,config:m,toolsFile:r.filePath,tools:r.tools,mcpJsonFile:p.filePath,mcpServers:p.servers}}async function UUi(t){try{let[{readFile:i},u]=await Promise.all([import("node:fs/promises"),import("node:path")]),e=await i(u.join(t,"package.json"),"utf8"),n=JSON.parse(e),o=typeof n?.version==="string"?n.version:null;return o&&o.trim()?o.trim():null}catch{return null}}qm();fA();nb();mp();function Yh(t,i){let u=String(t??"").replace(/\s+/g," ").trim();if(u.length<=i)return u;return`${u.slice(0,Math.max(0,i-1))}…`}function JUi(t){if(typeof t==="string")return t;if(Array.isArray(t))return t.filter((u)=>u&&typeof u==="object"&&u.type==="text"&&typeof u.text==="string").map((u)=>u.text).join(" ");if(t&&typeof t==="object"){let i=t.text;if(typeof i==="string")return i}return""}function Ph(t){if(!t||typeof t!=="object")return"";let i=String(t.role??"");if(i==="user")return i_(JUi(t.content));if(i==="tool")return String(t.result?.output??"");if(i==="assistant"){let u=Array.isArray(t.parts)?t.parts:[],e=u.filter((o)=>o?.type==="markdown").map((o)=>String(o.markdown??"")).join(`
|
|
1199
|
+
`)}function Wat(t,i){let u=i?.stdout,e=Number.isFinite(u?.columns)?Number(u?.columns):80,n=Number.isFinite(u?.rows)?Number(u?.rows):24,o=e,l=n,r=!1,p=!1,c="dim",m="home",f=null,g=null,_=null,d=!0,h=!0,b=null,w=!1,v=0,Q=()=>{if(v+1>=t.length)return;return v+=1,t[v]};for(;v<t.length;v++){let M=t[v];if(M==="--cols")o=Number.parseInt(Q()??"",10),r=!0;else if(M==="--rows")l=Number.parseInt(Q()??"",10),p=!0;else if(M==="--app"||M==="--example")c=String(Q()??c);else if(M==="--route"||M==="--initial-route")m=String(Q()??m);else if(M==="--approvals"||M==="--approval"){let A=String(Q()??"").trim().toLowerCase();if(A==="auto"||A==="all"||A==="on"||A==="yes"||A==="true"||A==="1")b="auto";else if(A==="normal"||A==="default")b="normal";else if(A==="strict"||A==="manual")b="strict"}else if(M==="--auto-approve"||M==="--yes"||M==="-y")b="auto";else if(M==="--record")f=Q()??null;else if(M==="--replay")g=Q()??null;else if(M==="--snapshot")_=Q()??null;else if(M==="--no-mouse")d=!1;else if(M==="--no-alt-screen")h=!1;else if(M==="--debug")w=!0}return o=Math.max(10,Math.floor(o||e)),l=Math.max(5,Math.floor(l||n)),{cols:o,rows:l,sizeLocked:r||p,app:c,initialRoute:m,recordPath:f,replayPath:g,snapshotPath:_,enableMouse:d,altScreen:h,approvals:b,debug:w}}var cp=qg(UQ(),1);import{spawn as Jrt}from"node:child_process";import{createWriteStream as hZt,existsSync as wZt,statSync as bZt}from"node:fs";import{chmod as fX,mkdir as Xrt,readFile as yZt,rename as Krt,stat as vZt,unlink as $Zt,writeFile as QZt}from"node:fs/promises";import Zg from"node:path";import{Readable as GZt}from"node:stream";import{pipeline as MZt}from"node:stream/promises";Z5();var cZt="upgrade-toast.json";function Wc(t){let i=String(t??"").trim();if(!i)return;let u=globalThis?.__DIMCODE_UPGRADE_TOAST__;if(typeof u==="function")try{u(i);return}catch{}mZt(i)}async function mZt(t){try{let[{mkdir:i,writeFile:u},e]=await Promise.all([import("node:fs/promises"),import("node:path")]),n=await Ca(process.env);await i(n,{recursive:!0});let o=e.join(n,cZt),l=JSON.stringify({message:t,createdAt:Date.now()});await u(o,l,"utf8")}catch{}}import{existsSync as fZt,readFileSync as gZt}from"node:fs";import mX from"node:path";import{fileURLToPath as _Zt}from"node:url";function Fc(){let t="0.0.21".trim();if(t)return{version:t,source:"injected"};let i=dZt();if(i)return{version:i,source:"package"};return null}function dZt(){try{let t=mX.dirname(_Zt(import.meta.url));for(let i=0;i<6;i++){let u=mX.join(t,"package.json");if(fZt(u)){let n=gZt(u,"utf8"),o=JSON.parse(n),l=typeof o?.version==="string"?o.version.trim():"";if(l)return l}let e=mX.dirname(t);if(e===t)break;t=e}}catch{}return null}var Ort="binary-upgrade.json",Yrt=1e4,gX="gitlab.bfbops.com",krt="nextim/goatagent",qrt="nextim/goatagent",Prt="https://api.github.com",BZt=5000,xZt=30000,Lrt=new Set;function AZt(){let t=String(process.env.DIMCODE_BINARY_UPDATE_CHECK_TIMEOUT_MS??"").trim(),i=Number(t);return Number.isFinite(i)&&i>100?Math.floor(i):BZt}function DZt(){let t=String(process.env.DIMCODE_BINARY_UPDATE_DOWNLOAD_TIMEOUT_MS??"").trim(),i=Number(t);return Number.isFinite(i)&&i>100?Math.floor(i):xZt}function _X(){try{let t=String(process.execPath??"").trim();if(!t)return"npm";let u=Zg.dirname(t).toLowerCase().replace(/\\/g,"/");if(u.includes(".bun/bin")||u.endsWith(".bun/bin"))return"bun";if(u.includes("bun/install/global/bin"))return"bun";if(u.includes(".npm-global")||u.includes("npm-global"))return"npm";if(typeof globalThis.Bun<"u")return"bun";return"npm"}catch{return"npm"}}function Nc(t=process){try{let i=String(t.execPath??"").trim();if(!i)return!1;let u=Zg.basename(i).toLowerCase();if(u==="node"||u.startsWith("node."))return!1;if(u==="bun"||u.startsWith("bun."))return!1;return!0}catch{return!1}}function dX(t=process.platform,i=process.arch){if(t==="darwin"&&i==="arm64")return"bun-darwin-arm64";if(t==="darwin"&&i==="x64")return"bun-darwin-x64";if(t==="linux"&&i==="x64")return"bun-linux-x64";if(t==="linux"&&i==="arm64")return"bun-linux-arm64";if(t==="win32"&&i==="x64")return"bun-windows-x64";return null}function HZt(t,i=process.platform){return i==="win32"?`dim-${t}.exe`:`dim-${t}`}function VZt(t){let i=String(t??"").trim();if(!i)return null;let u=i.startsWith("v")?i.slice(1):i;return cp.default.valid(u)?u:null}function kZt(t){return String(t??"").trim().replace(/[^\w.-]/g,"_")}function qZt(t,i){let u=Array.isArray(t?.assets)?t.assets:[];for(let e of u){let n=typeof e?.name==="string"?e.name:"",o=typeof e?.browser_download_url==="string"?e.browser_download_url:"";if(n===i&&o)return{name:n,url:o}}return null}function LZt(t,i){let u=Array.isArray(t?.assets?.links)?t.assets.links:[];for(let e of u){let n=typeof e?.name==="string"?e.name:"",o=typeof e?.direct_asset_url==="string"?e.direct_asset_url:"",l=typeof e?.url==="string"?e.url:"",r=o||l;if(n===i&&r)return{name:n,url:r}}return null}async function Wrt(){if(process.env.DIMCODE_BINARY_LAUNCHED==="1")return!1;if(!Nc())return!1;let t=Fc()?.version;if(!t||!cp.default.valid(t))return!1;let i=await JZt(process.env);if(!i)return!1;if(!cp.default.valid(i.cliVersion)||!cp.default.gt(i.cliVersion,t))return!1;if(!jrt(i.binaryPath))return!1;let u={...process.env,DIMCODE_BINARY_LAUNCHED:"1"},e=process.argv.slice(1);try{return Jrt(i.binaryPath,e,{stdio:"inherit",env:u}).unref(),!0}catch{return!1}}async function Frt(){if(process.env.DIMCODE_DISABLE_AUTOUPDATE==="1")return null;if(!Nc())return null;let t=Fc()?.version;if(!t||!cp.default.valid(t))return null;let i=await YZt(process.env);if(!i)return null;if(!cp.default.valid(i.version)||cp.default.gte(t,i.version))return null;if(process.env.DIMCODE_AUTOUPDATE!=="0"){if(Lrt.has(i.version))return null;return Lrt.add(i.version),NZt(i.version),`Update available: dim ${i.version} (current: ${t}). Installing in background; restart to use it.`}return`Update available: dim ${i.version} (current: ${t}). Run: dim upgrade`}async function Nrt(t){if(!Nc()){console.error("Binary upgrade is only supported for the standalone compiled dim binary.");let l=_X();console.error(`If you installed via ${l}, run: ${l==="bun"?"bun":"npm"} install -g dimcode@latest`),process.exitCode=1;return}let i=Array.from(t),u=i.includes("--quiet")||i.includes("--background"),e=i.includes("--check"),n=UZt(i),o=n&&n!=="latest"?n:"latest";try{let l=await zrt(o,process.env);if(!l)throw Error("failed to resolve release info");let r=Fc()?.version;if(e){if(r&&cp.default.valid(r)&&cp.default.valid(l.version)&&cp.default.gte(r,l.version)){if(!u)console.log(`Already up to date: ${r}`);return}if(!u)console.log(`Update available: ${l.version}${r?` (current: ${r})`:""}`);return}let c=`Update installed: dim ${(await jZt(l,process.env)).version}. Restart to use the new version.`;if(!u)console.log(c);Wc(c)}catch(l){let p=`Binary upgrade failed: ${l instanceof Error?l.message:String(l)}`;if(!u)console.error(p);Wc(p),process.exitCode=1}}function UZt(t){for(let i of t)if(!i.startsWith("-"))return i;return null}function jrt(t){try{if(!wZt(t))return!1;return bZt(t).size>Yrt}catch{return!1}}async function JZt(t){try{let i=await Ca(t),u=Zg.join(i,"bin",Ort),e=await yZt(u,"utf8"),n=JSON.parse(e);if(!n||typeof n!=="object")return null;if(n.version!==1)return null;let o=typeof n.cliVersion==="string"?n.cliVersion:"",l=typeof n.binaryPath==="string"?n.binaryPath:"",r=typeof n.target==="string"?n.target:"",p=n.provider==="github"||n.provider==="gitlab"?n.provider:null,c=typeof n.project==="string"?n.project:"",m=typeof n.assetName==="string"?n.assetName:"",f=typeof n.installedAt==="number"?n.installedAt:0,g=typeof n.host==="string"?n.host:void 0;if(!o||!l||!r||!p||!c||!m)return null;return{version:1,installedAt:f,cliVersion:o,target:r,provider:p,project:c,host:g,assetName:m,binaryPath:l}}catch{return null}}async function Urt(t,i){let u=await Ca(t),e=Zg.join(u,"bin");await Xrt(e,{recursive:!0});let n=Zg.join(e,Ort),o=globalThis.process?.pid??"p",l=`${Date.now()}-${Math.random().toString(16).slice(2)}`,r=`${n}.${o}.${l}.tmp`;await QZt(r,`${JSON.stringify(i,null,2)}
|
|
1200
|
+
`,{encoding:"utf8",mode:384}),await Krt(r,n);try{await fX(n,384)}catch{}}function XZt(t){if(String(t.DIMCODE_BINARY_UPDATE_PROVIDER??"").trim().toLowerCase()==="github")return"github";if("".trim().toLowerCase()==="github")return"github";return"gitlab"}function hX(t){let i=XZt(t),u=KZt(t),e=OZt(t,i);return{provider:i,host:e.host,project:e.project,githubApiBaseUrl:u}}function KZt(t){let i=String(t.DIMCODE_BINARY_UPDATE_GITHUB_API_BASE_URL??"").trim();if(i)return i.replace(/\/+$/,"");let u="".trim();if(u)return u.replace(/\/+$/,"");return Prt}function OZt(t,i){if(i==="github"){let l="".trim();return{project:String(t.DIMCODE_BINARY_UPDATE_REPO??l??qrt).trim()||qrt}}let u="".trim(),e="".trim(),n=String(t.DIMCODE_BINARY_UPDATE_GITLAB_HOST??u??gX).trim()||gX,o=String(t.DIMCODE_BINARY_UPDATE_PROJECT??e??krt).trim()||krt;return{host:n,project:o}}function Rrt(t,i){if(i==="github"){let e=String(t.DIMCODE_GITHUB_TOKEN??t.GITHUB_TOKEN??"").trim();return e?{Authorization:`Bearer ${e}`}:{}}let u=String(t.DIMCODE_GITLAB_TOKEN??t.GITLAB_TOKEN??"").trim();if(!u)return{};if(u.startsWith("glpat-"))return{"PRIVATE-TOKEN":u};return{Authorization:`Bearer ${u}`}}async function YZt(t){return await zrt("latest",t)}async function zrt(t,i){let u=hX(i),e=u.provider,n={host:u.host,project:u.project},o=Rrt(i,e),l=dX();if(!l)return null;let r=HZt(l),p=t==="latest"?["latest"]:PZt(t);for(let c of p){let m=await WZt({provider:e,host:n.host,project:n.project,tag:c,headers:o,githubApiBaseUrl:u.githubApiBaseUrl});if(!m)continue;let f=String(m?.tag_name??m?.tagName??"").trim()||(c==="latest"?"latest":c),g=VZt(f);if(!g)continue;let _=e==="github"?qZt(m,r):LZt(m,r);if(!_)continue;return{provider:e,host:n.host,project:n.project,tag:f,version:g,asset:_,target:l,assetName:r}}return null}function PZt(t){let i=String(t??"").trim();if(!i)return[];if(i==="latest")return["latest"];if(i.startsWith("v"))return[i,i.slice(1)];return[`v${i}`,i]}async function WZt(t){let i=new AbortController,u=setTimeout(()=>i.abort(),AZt());try{let e=FZt(t),n=await fetch(e,{headers:{Accept:"application/json",...t.headers},signal:i.signal});if(!n.ok)return null;return await n.json()}catch{return null}finally{clearTimeout(u)}}function FZt(t){if(t.provider==="github"){let e=String(t.githubApiBaseUrl||Prt).replace(/\/+$/,"");if(t.tag==="latest")return`${e}/repos/${t.project}/releases/latest`;return`${e}/repos/${t.project}/releases/tags/${encodeURIComponent(t.tag)}`}let i=t.host||gX,u=encodeURIComponent(t.project);if(t.tag==="latest")return`https://${i}/api/v4/projects/${u}/releases/permalink/latest`;return`https://${i}/api/v4/projects/${u}/releases/${encodeURIComponent(t.tag)}`}function NZt(t){try{Jrt(process.execPath,["upgrade",t,"--background"],{stdio:"ignore",detached:!0,env:{...process.env,DIMCODE_BINARY_UPGRADE_CHILD:"1"}}).unref()}catch{}}async function jZt(t,i){let u=await Ca(i),e=Zg.join(u,"bin");await Xrt(e,{recursive:!0});let n=process.platform==="win32"?".exe":"",o=kZt(t.version),l=Zg.join(e,`dim-${t.target}-${o}${n}`);if(jrt(l)){let c={version:1,installedAt:Date.now(),cliVersion:t.version,target:t.target,provider:t.provider,project:t.project,host:t.host,assetName:t.assetName,binaryPath:l};return await Urt(i,c),{version:t.version,binaryPath:l}}let r=`${l}.${process.pid}.${Date.now()}.tmp`;if(await RZt(t.asset.url,r,Rrt(i,t.provider)),process.platform!=="win32")try{await fX(r,493)}catch{}try{await $Zt(l)}catch{}await Krt(r,l);try{if(process.platform!=="win32")await fX(l,493)}catch{}let p={version:1,installedAt:Date.now(),cliVersion:t.version,target:t.target,provider:t.provider,project:t.project,host:t.host,assetName:t.assetName,binaryPath:l};return await Urt(i,p),{version:t.version,binaryPath:l}}async function RZt(t,i,u){let e=new AbortController,n=setTimeout(()=>e.abort(),DZt());try{let o=await fetch(t,{redirect:"follow",headers:u,signal:e.signal});if(!o.ok)throw Error(`download failed (${o.status})`);let l=o.body;if(!l)throw Error("download response has no body");if(await MZt(GZt.fromWeb(l),hZt(i)),(await vZt(i)).size<=Yrt)throw Error("downloaded file is too small")}finally{clearTimeout(n)}}import{randomUUID as HJi}from"node:crypto";import{statSync as VJi}from"node:fs";import{homedir as kJi}from"node:os";import EAt from"node:path";s5();function XSt(t){let i=t.trim();if(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))return i.slice(1,-1).trim();return i}function KSt(t){if(typeof t!=="string")return"";return XSt(t).trim().toLowerCase()}function wr(t){let i=KSt(t);if(!i)return null;let u=i.split("/").filter(Boolean).pop()||"";if(i==="k2p5"||u==="kimi-k2.5")return{temperature:1,interleavedThinking:!0};if(u==="kimi-k2-thinking")return{interleavedThinking:!0};return null}ol();function d2t(t){let i=t.prefixedStr("TOOL_APPROVALS").toLowerCase();if(!i)return t.prefixedBool("SKIP_APPROVAL")?"auto":"normal";if(i==="auto"||i==="all"||i==="always")return"auto";if(i==="strict"||i==="manual")return"strict";return"normal"}function FQ(t){let i=t.prefixedStr("MODEL")||"deepseek-v3.1",u=wr(i),e=typeof u?.temperature==="number"?u.temperature:t.prefixedFloat("TEMPERATURE")??0.7,n=typeof u?.interleavedThinking==="boolean"?u.interleavedThinking:t.prefixedBool("INTERLEAVED_THINKING")??!1,o=t.prefixedInt("CONTEXT_WINDOW"),l=YQ(i);return{model:i,context_window:o||l||A1,temperature:e,interleaved_thinking:n}}function h2t(t){return t.prefixedStr("SESSION_ID")||""}function w2t(t){return{idleMs:t.prefixedInt("STREAM_IDLE_TIMEOUT_MS")??1800000,totalMs:t.prefixedInt("STREAM_TOTAL_TIMEOUT_MS")??5400000}}s5();ll();lb();import rAt from"node:path";ol();wtt();function iV(t){return String(t??"").trim()}function Co(t){return iV(t)||void 0}function fUi(t){let i=iV(t).toLowerCase();if(!i)return;if(i==="1"||i==="true"||i==="yes"||i==="on")return!0;if(i==="0"||i==="false"||i==="no"||i==="off")return!1;return}function tV(t){let i=iV(t);if(!i)return;let u=Number.parseInt(i,10);if(!Number.isFinite(u)||u<=0)return;return u}function e7(t){return Object.entries(t??{}).reduce((i,[u,e])=>{return i[u]=e,i},{})}function aAt(t,i,u={}){let e=Co(i?.modelId)??t.modelId,n=Co(i?.adapter)??t.adapter,o=Co(i?.provider)??t.provider??n,l=Co(i?.baseUrl)??t.baseUrl,r=Co(i?.apiKey)??t.apiKey,p=tV(i?.maxInputTokens),c=u.preferSourceMaxInputTokens===!1?t.maxInputTokens??p:p??t.maxInputTokens,m=tV(i?.maxOutputTokens)??t.maxOutputTokens,f=i?.env&&typeof i.env==="object"?e7(i.env):t.env?e7(t.env):void 0;return{modelId:e,...n?{adapter:n}:{},...o?{provider:o}:{},...l?{baseUrl:l}:{},...r?{apiKey:r}:{},...i?.nextApiOAuth===!0||t.nextApiOAuth===!0?{nextApiOAuth:!0}:{},...typeof c==="number"?{maxInputTokens:c}:{},...typeof m==="number"?{maxOutputTokens:m}:{},...f?{env:f}:{}}}function gUi(t){let i=iV(t.DIMCODE_PROVIDER_ADAPTER).toLowerCase();if(i==="openai"||i==="openai-responses"||i==="gemini"||i==="anthropic")return i;let u=Boolean(Co(t.OPENAI_API_KEY)),e=Boolean(Co(t.GOOGLE_API_KEY)),n=Boolean(Co(t.ANTHROPIC_API_KEY));if(n&&!u&&!e)return"anthropic";if(e&&!u&&!n)return"gemini";return"openai"}function Xh(t){let i=gUi(t),u=Co(t.DIMCODE_PROVIDER_ID),e=Co(t.DIMCODE_MODEL)??Co(t.MODEL_ID)??Co(t.MODEL)??"deepseek-v3.1",n=i==="gemini"?Co(t.DIMCODE_GEMINI_BASE_URL):i==="anthropic"?Co(t.DIMCODE_ANTHROPIC_BASE_URL):Co(t.DIMCODE_OPENAI_BASE_URL)??Co(t.OPENAI_BASE_URL)??Co(t.OPENAI_API_BASE_URL),o=i==="gemini"?Co(t.GOOGLE_API_KEY):i==="anthropic"?Co(t.ANTHROPIC_API_KEY):Co(t.OPENAI_API_KEY),l=u==="next-api-oauth"||fUi(t.DIMCODE_USE_NEXT_API_OAUTH)===!0,r=tV(t.DIMCODE_CONTEXT_WINDOW)??YQ(e,i),p=tV(t.DIMCODE_MAX_TOKENS);return{modelId:e,adapter:i,provider:u??i,...n?{baseUrl:n}:{},...o?{apiKey:o}:{},...l?{nextApiOAuth:!0}:{},...r?{maxInputTokens:r}:{},...p?{maxOutputTokens:p}:{},env:{...t}}}function _Ui(t){let i=()=>({...e7(t.context.env??{}),...e7(t.processEnv),...e7(typeof process<"u"?process.env:void 0)}),u=Xh(i());return{systemPrompt:t.context.system,modelId:u.modelId,adapter:u.adapter,provider:u.provider,baseUrl:u.baseUrl,apiKey:u.apiKey,nextApiOAuth:u.nextApiOAuth,maxInputTokens:u.maxInputTokens,maxOutputTokens:u.maxOutputTokens,stateDir:t.stateDir,cliTools:!0,delegateTasks:!0,...t.tools?{tools:t.tools}:{},...t.mcpServers?{mcpServers:t.mcpServers}:{},...t.forcedSkills?{forcedSkills:t.forcedSkills}:{},resolveRuntimeConfig:(e)=>{let n=Xh(i());return e.requested?aAt(n,e.requested,{preferSourceMaxInputTokens:!0}):aAt(n,e.existing,{preferSourceMaxInputTokens:!1})}}}async function btt(t){return await n7(_Ui(t))}function _o(t){return String(t??"").trim()}function vtt(t){return t==="plan"?"plan":"agent"}function pAt(t){if(t==="auto"||t==="normal"||t==="strict")return t;if(t==="all")return"auto";return null}function uV(t){if(!t||typeof t!=="object"||Array.isArray(t))return{};return t}function nV(t){return JSON.parse(JSON.stringify(t??null))}function ytt(t){return Object.entries(t??{}).reduce((i,[u,e])=>{return i[u]=e,i},{})}function dUi(t,i){return _o(t?.modelId)===_o(i?.modelId)&&_o(t?.adapter)===_o(i?.adapter)&&_o(t?.provider)===_o(i?.provider)&&_o(t?.baseUrl)===_o(i?.baseUrl)&&_o(t?.apiKey)===_o(i?.apiKey)&&Boolean(t?.nextApiOAuth)===Boolean(i?.nextApiOAuth)&&Number(t?.maxInputTokens??0)===Number(i?.maxInputTokens??0)&&Number(t?.maxOutputTokens??0)===Number(i?.maxOutputTokens??0)}function hUi(t,i){return JSON.stringify(t??[])===JSON.stringify(i??[])}function wUi(t,i){let u=uV(t),e=_o(u.modelId)||i.modelId,n=_o(u.adapter)||i.adapter,o=_o(u.provider)||i.provider||n,l=_o(u.baseUrl)||i.baseUrl,r=_o(u.apiKey)||i.apiKey,p=Number(u.maxInputTokens??i.maxInputTokens??0)||void 0,c=Number(u.maxOutputTokens??i.maxOutputTokens??0)||void 0,m=u.env&&typeof u.env==="object"?nV(u.env):i.env;return{modelId:e,...n?{adapter:n}:{},...o?{provider:o}:{},...l?{baseUrl:l}:{},...r?{apiKey:r}:{},...u.nextApiOAuth===!0||i.nextApiOAuth===!0?{nextApiOAuth:!0}:{},...p?{maxInputTokens:p}:{},...c?{maxOutputTokens:c}:{},...m?{env:m}:{}}}function bUi(t,i){let u=uV(t?.metadata),e=uV(u[zc]);return{runtimeConfig:t?wUi(e.runtimeConfig,{...i,modelId:_o(uV(e.runtimeConfig).modelId)||i.modelId}):null,modeId:vtt(e.modeId),toolApprovalMode:pAt(e.toolApprovalMode),mcpServers:Array.isArray(e.mcpServers)?nV(e.mcpServers):[]}}function cAt(t){let i=rAt.resolve(t.stateDir),u="agent",e=null,n=null,o=()=>({...ytt(t.context.env??{}),...ytt(t.processEnv)}),l=()=>({...o(),...ytt(typeof process<"u"?process.env:void 0)}),r=()=>Xh(l()),p=(b)=>{let w=_o(b);if(!w)return;Zi("cli.session.persistence",{sessionId:w,stateDir:i,snapshotPath:u4(i,w)})},c=async()=>{if(n)return await n;let b=(async()=>{let w=WQ({activeStateDir:i,env:o()}),v=null,Q=async()=>{if(v)return v;return v=await btt({context:t.context,stateDir:i,processEnv:t.processEnv,tools:t.tools,mcpServers:t.mcpServers,forcedSkills:t.forcedSkills}),v};await iG({activeStateDir:i,stateRoots:w,fallbackRuntimeConfig:r(),fallbackCwd:_o(t.context.cwd)||process.cwd(),hasRuntimeSnapshot:async(M)=>Boolean(await vr({directory:rAt.join(i,B2),sessionId:M})),materializeSession:async(M)=>{let A=await Q();if(M.messages.length>0)await A.sessions.createWithMessages(M.messages,{sessionId:M.sessionId,cwd:M.cwd,title:M.title,modeId:M.modeId,runtimeConfig:M.runtimeConfig,toolApprovalMode:M.toolApprovalMode,mcpServers:M.mcpServers,metadata:M.metadata});else await A.sessions.create({sessionId:M.sessionId,cwd:M.cwd,title:M.title,modeId:M.modeId,runtimeConfig:M.runtimeConfig,toolApprovalMode:M.toolApprovalMode,mcpServers:M.mcpServers,metadata:M.metadata});let k=await A.sessions.get(M.sessionId);if(!k)throw Error(`Runtime snapshot missing for ${M.sessionId}`);await eb(u4(i,M.sessionId),tG(k,M))}})})();n=b;try{await b}finally{if(n===b)n=null}},m=async()=>{if(e)return await e;e=(async()=>{return await c(),await btt({context:t.context,stateDir:i,processEnv:t.processEnv,tools:t.tools,mcpServers:t.mcpServers,forcedSkills:t.forcedSkills})})();try{return await e}catch(b){throw e=null,b}},f=async()=>{if(!e)return await m();return await c(),await e},g={list:async()=>(await f()).sessions.list(),get:async(b)=>(await f()).sessions.get(b),create:async(b)=>(await m()).sessions.create(b),createWithMessages:async(b,w)=>await(await m()).sessions.createWithMessages(b,w),destroy:async(b)=>await(await m()).sessions.destroy(b),rename:async(b,w)=>await(await m()).sessions.rename(b,w),updateMetadata:async(b,w)=>await(await m()).sessions.updateMetadata(b,w),interrupt:async(b)=>await(await m()).sessions.interrupt(b)},_={sessions:g,listSessions:async()=>await(await f()).listSessions(),openSession:async(b)=>await(await f()).openSession(b),createSession:async(b)=>await(await m()).createSession(b),destroySession:async(b)=>await(await m()).destroySession(b)},d=async(b)=>{let w=_o(b);if(!w)return null;return await(await f()).openSession(w)};return{runtime:_,sessions:g,openSession:d,ensureSession:async(b)=>{let w=_o(b?.sessionId),v=w?await f():await m(),Q=vtt(b?.modeId??u),M=_o(b?.cwd)||_o(t.context.cwd)||process.cwd(),A=b?.runtimeConfig??r(),k=Object.prototype.hasOwnProperty.call(b??{},"toolApprovalMode"),J=pAt(b?.toolApprovalMode),$=Array.isArray(b?.mcpServers),G=Array.isArray(b?.mcpServers)?nV(b.mcpServers):void 0,P=b?.metadata?nV(b.metadata):void 0;if(w){let Y=await v.openSession(w);if(Y){let L=await v.sessions.get(Y.id),U=bUi(L,A),X={};if(_o(L?.cwd)!==M)X.cwd=M;if(!dUi(U.runtimeConfig,A))X.runtimeConfig=A;if(U.modeId!==Q)await Y.setMode(Q);if(k&&U.toolApprovalMode!==J)X.toolApprovalMode=J;if($&&Array.isArray(G)&&!hUi(U.mcpServers,G))X.mcpServers=G;if(P)X.metadata=P;if(Object.keys(X).length>0)await Y.updateConfig(X);return p(Y.id),Y}}let H=await v.createSession({sessionId:w||void 0,cwd:M,modeId:Q,runtimeConfig:A,...k?{toolApprovalMode:J}:{},...$?{mcpServers:G}:{},...P?{metadata:P}:{}});return p(H.id),H},async steerSession(b,w){let v=await d(b);if(!v)return!1;return await v.steer(w)},setMode(b){u=vtt(b)},getMode(){return u},async triggerManualCompression(b){let w=_o(b),v=w?await d(w):null;if(!v)return{success:!1,error:w?`Session not found: ${w}`:"Manual compaction requires an active session id"};return await v.triggerManualCompaction()},invalidateSession(b){}}}ol();Z5();import{randomBytes as yUi}from"node:crypto";var vUi="cp_",$Ui="bailian-coding-plan",QUi="/apps/anthropic/v1",GUi="https://coding.dashscope.aliyuncs.com/v1";function MUi(t){let i=t&&typeof t==="object"?t:{},u=$a(i.context),e=$a(i.output);if(u==null&&e==null)return;return{...u!=null?{context:u}:{},...e!=null?{output:e}:{}}}function mAt(t){let i=$i(t);if(i&&ru(i))return i;return`${vUi}${yUi(8).toString("hex")}`}function BUi(t){let i=$i(t);if(i==="openai"||i==="openai-responses"||i==="gemini"||i==="anthropic")return i;return}function $tt(t){if(!Array.isArray(t))return[];let i=[];for(let u of t){let e=$i(u?.id);if(!e)continue;let n=$i(u?.name),o=MUi(u?.limit);i.push({id:e,...n?{name:n}:{},...o?{limit:o}:{}})}return i}function xUi(t){if(!Array.isArray(t))return[];let i=[];for(let u of t){let e=$i(u?.id),n=$i(u?.name),o=BUi(u?.adapter);if(!e||!n||!o)continue;i.push({id:mAt(e),name:n,adapter:o,baseUrl:$i(u?.baseUrl),apiKey:$i(u?.apiKey),models:$tt(u?.models)})}return i}function AUi(t){let i=t?.customProvider??{},u=$i(i.baseUrl),e=$i(i.apiKey),n=$tt(i.models);return Boolean(u||e||n.length)}function DUi(t){let i=t?.customProvider??{};return{id:mAt(void 0),name:"Custom",adapter:"openai",baseUrl:$i(i.baseUrl),apiKey:$i(i.apiKey),models:$tt(i.models)}}function HUi(t){let i=$i(t);if(!i)return!1;try{let u=new URL(i),e=u.pathname.replace(/\/+$/,"");return u.protocol==="https:"&&u.hostname==="coding.dashscope.aliyuncs.com"&&e===QUi}catch{return!1}}function VUi(t){let i=t?.providerConnections;if(!i||typeof i!=="object")return!1;let u=i[$Ui];if(!u||typeof u!=="object")return!1;if(!HUi(u.baseUrl))return!1;let e=u;return e.baseUrl=GUi,!0}function eV(t){let i=t.settings??{},u=!1,e=xUi(i.customProviders);if(VUi(i))u=!0;if(!e.length&&AUi(i))e=[DUi(i)],u=!0;if(e.length){i.customProviders=e;let n={...i.activeModelByProvider??{}};if(Pn(i.providerId))i.providerId=e[0].id,u=!0;if(n.custom){if(!n[e[0].id])n[e[0].id]=n.custom;delete n.custom,i.activeModelByProvider=n,u=!0}}if(!t.settings&&Object.keys(i).length)t.settings=i;return{customProviders:e,migrated:u}}qm();xtt();ol();Oh();var LUi=new Set(["OPENAI_API_KEY","OPENAI_BASE_URL","OPENAI_API_BASE_URL","GOOGLE_API_KEY","ANTHROPIC_API_KEY","MODEL_ID","DIMCODE_MODEL","DIMCODE_PROVIDER_ADAPTER","DIMCODE_PROVIDER_ID","DIMCODE_PROVIDER_NAME","DIMCODE_OPENAI_BASE_URL","DIMCODE_GEMINI_BASE_URL","DIMCODE_ANTHROPIC_BASE_URL","DIMCODE_OPENAI_API_KEY","DIMCODE_USE_NEXT_API_OAUTH"]);async function Vtt(t){let i=String(t.env.DIMCODE_FAST_START??"").trim().toLowerCase(),u=i==="1"||i==="true"||i==="yes"||i==="on",e=$i("0.0.21")??(u?null:await UUi(t.cwd)),n=async()=>{let[{homedir:it},R]=await Promise.all([import("node:os"),import("node:path")]),C=$i(t.env.DIMCODE_HOME);if(C){let _t=R.resolve(C);return{dir:_t,filePath:R.join(_t,"tools.json")}}let at=R.resolve(it(),".dimcode");return{dir:at,filePath:R.join(at,"tools.json")}},[o,l,r,p]=u?await(async()=>{let[it,R,C,at]=await Promise.all([Ca(t.env),JQ(t.env),n(),import("node:path")]),_t=at.join(it,"cache.json"),bt=at.join(R,"config.json"),At=at.join(C.dir,"mcp.json");return[{dir:it,filePath:_t,cache:{version:1,updatedAt:0}},{dir:R,filePath:bt,config:{version:1,updatedAt:0}},{dir:C.dir,filePath:C.filePath,tools:{version:1,updatedAt:0}},{dir:C.dir,filePath:At,servers:[]}]})():await Promise.all([x1(t.env),v2(t.env),Pf(t.env),l7(t.env)]),c=o.cache,m=l.config;eV(m);let f=c.settings??{},g=m.settings??{},_=$i(f.cwd),d=Array.isArray(f.focusFiles)?f.focusFiles.map((it)=>String(it??"")).filter(Boolean):void 0,h=t.cwd||_||".",b=(it)=>$i(t.env[it]),w=Object.fromEntries(Object.entries(t.env).flatMap(([it,R])=>{let C=String(it??"").trim(),at=$i(R);if(!C||!LUi.has(C)||!at)return[];return[[C,at]]})),v=(it,R,C)=>{let at=C[R];if(!at||it[R])return;it[R]=at},Q={DIMCODE_VERSION:e??"dev",...b("DIMCODE_STARTUP_TOAST")?{DIMCODE_STARTUP_TOAST:b("DIMCODE_STARTUP_TOAST")}:{},...b("DIMCODE_STARTUP_UPGRADE_TOAST")?{DIMCODE_STARTUP_UPGRADE_TOAST:b("DIMCODE_STARTUP_UPGRADE_TOAST")}:{}},M=Sg(g.providerId),A=g.providerConnections??{},k=g.activeModelByProvider??{},J=Array.isArray(g.customProviders)?g.customProviders:[],$=g.customProvider??{},G=$i($?.baseUrl),P=$i($?.apiKey),H=Array.isArray($?.models)?$.models:[],Y=(()=>{if(Pn(M)&&J.length){let it=$i(J[0]?.id);if(it){if(m.settings)m.settings.providerId=it;return it}}return M})(),{candidates:L,existingProviderIds:U}=Yr({connections:A,customProviders:J,legacyCustom:$,rememberedModels:{...k}}),X=Pr({...k},U),W=Wr({candidates:L,preferredProviderId:Y,rememberedModels:X}),q=$i(W.providerId),B=$i(W.modelId);if(m.settings)if(q)m.settings.providerId=q;else delete m.settings.providerId;let x=ru(q)?J.find((it)=>String(it?.id??"").trim()===q):void 0,V=q&&!ru(q)&&!Pn(q)?Cu(q):void 0,O=A[q??""],j=$i(O?.baseUrl),z=$i(q0(V)),S=ru(q)?String(x?.adapter??"").trim():Pn(q)?"openai":q==="openai"&&j&&j!==z?"openai":hr(V),E=q?ru(q)?$i(x?.name):Pn(q)?"Custom Provider":mo(V??{id:q}):void 0,K=ru(q)?$i(x?.baseUrl):Pn(q)?G:$i(O?.baseUrl??q0(V)),F=ru(q)?$i(x?.apiKey):Pn(q)?P:$i(O?.apiKey),Z=Tw({providerId:q,modelId:B,connections:A,customProviders:J,legacyCustomModels:H}),s=$a(f.contextWindow),nt=p2t(s,Z)?void 0:s;if(Pn(q)&&!K&&!F&&!B)throw Error("Legacy custom provider config is missing. Please run /connect to add a custom provider and select a model.");if(!Q.DIMCODE_PROVIDER_ADAPTER&&S)Q.DIMCODE_PROVIDER_ADAPTER=S;if(!Q.DIMCODE_PROVIDER_ID&&q)Q.DIMCODE_PROVIDER_ID=q;if(!Q.DIMCODE_PROVIDER_NAME&&E)Q.DIMCODE_PROVIDER_NAME=E;if(!Q.DIMCODE_MODEL&&B)Q.DIMCODE_MODEL=B;if(S==="gemini"){if(!Q.DIMCODE_GEMINI_BASE_URL&&K)Q.DIMCODE_GEMINI_BASE_URL=K;if(!Q.GOOGLE_API_KEY&&F)Q.GOOGLE_API_KEY=F}else if(S==="anthropic"){if(!Q.DIMCODE_ANTHROPIC_BASE_URL&&K)Q.DIMCODE_ANTHROPIC_BASE_URL=K;if(!Q.ANTHROPIC_API_KEY&&F)Q.ANTHROPIC_API_KEY=F}else{if(!Q.DIMCODE_OPENAI_BASE_URL&&K)Q.DIMCODE_OPENAI_BASE_URL=K;if(!Q.OPENAI_API_KEY&&F)Q.OPENAI_API_KEY=F}if(!Q.DIMCODE_CONTEXT_WINDOW){let it=nt??Z;if(typeof it==="number"&&it>0)Q.DIMCODE_CONTEXT_WINDOW=String(it);else Q.DIMCODE_CONTEXT_WINDOW=String(A1)}if(!Q.DIMCODE_TEMPERATURE&&$a(f.temperature)!=null)Q.DIMCODE_TEMPERATURE=String(f.temperature);if(!Q.DIMCODE_INTERLEAVED_THINKING&&typeof f.interleavedThinking==="boolean")Q.DIMCODE_INTERLEAVED_THINKING=f.interleavedThinking?"1":"0";if(!Q.DIMCODE_TOOL_APPROVALS&&f.toolApprovals){let it=String(f.toolApprovals),R=it==="auto"||it==="all"?"auto":it==="strict"||it==="manual"?"strict":it==="normal"?"normal":void 0;if(R)Q.DIMCODE_TOOL_APPROVALS=R}if(!Q.DIMCODE_LANG&&$i(f.locale))Q.DIMCODE_LANG=$i(f.locale);if(!Q.DIMCODE_THEME&&$i(f.themeMode))Q.DIMCODE_THEME=$i(f.themeMode);if(Tg(V))Q.DIMCODE_CCMOCK="1";else delete Q.DIMCODE_CCMOCK;if(v(Q,"DIMCODE_PROVIDER_ADAPTER",w),v(Q,"DIMCODE_PROVIDER_ID",w),v(Q,"DIMCODE_PROVIDER_NAME",w),v(Q,"DIMCODE_MODEL",w),v(Q,"DIMCODE_OPENAI_BASE_URL",w),v(Q,"DIMCODE_OPENAI_API_KEY",w),v(Q,"DIMCODE_GEMINI_BASE_URL",w),v(Q,"DIMCODE_ANTHROPIC_BASE_URL",w),v(Q,"DIMCODE_USE_NEXT_API_OAUTH",w),!Q.DIMCODE_PROVIDER_ID&&!Q.DIMCODE_PROVIDER_ADAPTER)v(Q,"MODEL_ID",w),v(Q,"OPENAI_API_KEY",w),v(Q,"OPENAI_BASE_URL",w),v(Q,"OPENAI_API_BASE_URL",w),v(Q,"GOOGLE_API_KEY",w),v(Q,"ANTHROPIC_API_KEY",w);return{context:{system:gAt,cwd:h,env:Q,...d?.length?{focusFiles:d}:{}},cacheDir:o.dir,cacheFile:o.filePath,cache:c,configDir:l.dir,configFile:l.filePath,config:m,toolsFile:r.filePath,tools:r.tools,mcpJsonFile:p.filePath,mcpServers:p.servers}}async function UUi(t){try{let[{readFile:i},u]=await Promise.all([import("node:fs/promises"),import("node:path")]),e=await i(u.join(t,"package.json"),"utf8"),n=JSON.parse(e),o=typeof n?.version==="string"?n.version:null;return o&&o.trim()?o.trim():null}catch{return null}}qm();fA();nb();mp();function Yh(t,i){let u=String(t??"").replace(/\s+/g," ").trim();if(u.length<=i)return u;return`${u.slice(0,Math.max(0,i-1))}…`}function JUi(t){if(typeof t==="string")return t;if(Array.isArray(t))return t.filter((u)=>u&&typeof u==="object"&&u.type==="text"&&typeof u.text==="string").map((u)=>u.text).join(" ");if(t&&typeof t==="object"){let i=t.text;if(typeof i==="string")return i}return""}function Ph(t){if(!t||typeof t!=="object")return"";let i=String(t.role??"");if(i==="user")return i_(JUi(t.content));if(i==="tool")return String(t.result?.output??"");if(i==="assistant"){let u=Array.isArray(t.parts)?t.parts:[],e=u.filter((o)=>o?.type==="markdown").map((o)=>String(o.markdown??"")).join(`
|
|
1201
1201
|
`);if(e.trim())return e;let n=u.find((o)=>o?.type==="status");return n?String(n.text??""):""}return""}function _At(t){let u=(Array.isArray(t)?t:[]).find((n)=>n&&typeof n==="object"&&n.role==="user"&&Yh(Ph(n),999).length>0),e=u?Ph(u):"";return Yh(e||"New session",60)||"New session"}function dAt(t){let u=(Array.isArray(t)?t:[]).find((n)=>n&&typeof n==="object"&&n.role==="user"&&Yh(Ph(n),999).length>0),e=u?Ph(u):"";return Yh(e||"New session",120)||"New session"}function hAt(t){let u=[...Array.isArray(t)?t:[]].reverse().find((e)=>{if(!e||typeof e!=="object"||e.role!=="user")return!1;return Yh(Ph(e),999).length>0});return Yh(u?Ph(u):"",180)}i4();Nr();ol();Oh();import{watch as ml}from"vue";function qtt(t){let i=Number(t);if(!Number.isFinite(i)||i<=0)return null;return Math.floor(i)}function PUi(t){let i=Number(t);if(!Number.isFinite(i)||i<0)return null;return Math.floor(i)}function Lm(t){if(!t||typeof t!=="object"||Array.isArray(t))return null;let i=t,u=PUi(i.estimatedInputTokens),e=qtt(i.thresholdTokens),n=qtt(i.maxInputTokens),o=Number(i.triggerRatio),l=qtt(i.updatedAtMs)??Date.now();if(u==null||e==null||n==null||!Number.isFinite(o)||o<=0)return null;return{runId:String(i.runId??"").trim()||void 0,requestId:String(i.requestId??"").trim()||void 0,estimatedInputTokens:u,thresholdTokens:e,maxInputTokens:n,triggerRatio:o,usedAutoCompaction:i.usedAutoCompaction===!0,updatedAtMs:l}}function cV(t){return t?{...t}:null}function wAt(t){if(!t)return null;return Math.max(0,Math.round(t.estimatedInputTokens/Math.max(1,t.maxInputTokens)*100))}function bAt(t){if(!t)return null;return Math.max(0,Math.round(t.thresholdTokens/Math.max(1,t.maxInputTokens)*100))}H1();nb();i4();var mV=80,fV=80,gV=80,WUi=80;function $At(t){return String(t?.sessionId??t?.id??"").trim()}function FUi(t){return Number(t?.updatedAt??t?.state?.updatedAt??t?.state?.lastActiveAt??0)||0}function QAt(t){let i=Array.isArray(t?.messages)?t.messages:t?.context?.messages;return Array.isArray(i)?i:[]}function NUi(t){let i=Array.isArray(t?.messages),u=Number(i?t.messages.length:t?.context?.messageCount??0);if(Number.isFinite(u)&&u>=0)return u;return QAt(t).length}function jUi(t){let i=t?.usage??t?.stats?.usage;return i&&typeof i==="object"?i:null}function RUi(t){return Lm(t?.metadata?.ui?.lastRequestBudget)}function zUi(t){let i=$i(t?.metadata?.dimAgentRuntime?.title);if(i)return i;return $i(t?.metadata?.title??t?.state?.title??t?.title)??null}function GAt(t){let i=$At(t);if(!i)return null;let u=FUi(t),e=$i(t?.cwd??t?.metadata?.cwd),n=MX(t),o=QAt(t),l=zUi(t)??_At(o),r=dAt(o),p=hAt(o),c=NUi(t);return{id:i,updatedAt:u,cwd:e??void 0,title:l,summary:r,messageCount:c,lastMessage:p,status:n.status,queueLength:n.queueLength,queue:n.queue,lastUpdatedAt:n.lastUpdatedAt}}function EUi(t){return t.filter((i)=>{if(!i||i.role!=="assistant")return!1;return U1(i)})}function MAt(t){return t.parts.filter((i)=>i.type==="thinking").map((i)=>String(i.content??"").trim()).join(`
|
|
1202
1202
|
`).trim()}function BAt(t){return t.parts.filter((i)=>i.type==="tool_call").map((i)=>{let u=String(i?.call?.id??"").trim();return`${String(i?.call?.name??"").trim()}:${u}`}).filter(Boolean).join("|")}function ZUi(t){let i=t.parts.find((u)=>u.type==="status");return String(i?.text??"").trim()}function SUi(t){let i=String(t??"").replace(/\r/g,"").trimEnd();if(!i)return"";let u=i.match(/(?:^|\n\n)# Error\b/i);if(!u||typeof u.index!=="number")return i.trim();if(u.index<=0)return"";return i.slice(0,u.index).trimEnd()}function yAt(t){let i=MAt(t),u=SUi(Nf(t)),e=BAt(t);return[i,u,e].some(Boolean)?`th:${i}
|
|
1203
1203
|
md:${u}
|