fluxflow-cli 4.16.17 → 4.17.1

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.
@@ -1 +1 @@
1
- import{A as p,B as q,C as r,D as s,m as b,n as c,o as d,p as e,q as f,r as g,s as h,t as i,u as j,v as k,w as l,x as m,y as n,z as o}from"./chunk-L24FUX5W.js";import"./chunk-VCF6JVQV.js";import"./chunk-56EJGQU3.js";import"./chunk-KRRJNFBF.js";import"./chunk-UYHPCXNG.js";import"./chunk-QA3IBTCI.js";import"./chunk-KFM2OZWJ.js";import"./chunk-72RYQ5W7.js";import"./chunk-WKHYRBBK.js";import{g as a}from"./chunk-AAPXJU65.js";import"./chunk-SIINYZWE.js";import"./chunk-KBOLQV47.js";import"./chunk-FDNLMLIM.js";import"./chunk-Y5JU726N.js";export{c as RE_LEADING_THINK,p as compressHistory,b as convertChannelThinkTags,q as deleteChatSummary,e as findGenuineThinkClose,r as getAIStream,j as getCleanGroupedLength,m as getGoogleClient,f as getLeadingThinkBlock,o as initAI,d as isInsideBacktick,a as isModelMultimodal,l as isTerminationSignaled,n as runJanitorTask,s as runSubagent,k as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags,i as stripTrailingFluffAfterTools};
1
+ import{A as p,B as q,C as r,D as s,m as b,n as c,o as d,p as e,q as f,r as g,s as h,t as i,u as j,v as k,w as l,x as m,y as n,z as o}from"./chunk-DRD5PTCI.js";import"./chunk-VCF6JVQV.js";import"./chunk-56EJGQU3.js";import"./chunk-KRRJNFBF.js";import"./chunk-X3ZZM2GL.js";import"./chunk-ZSVBC2ZI.js";import"./chunk-KFM2OZWJ.js";import"./chunk-72RYQ5W7.js";import"./chunk-WKHYRBBK.js";import{g as a}from"./chunk-AAPXJU65.js";import"./chunk-SIINYZWE.js";import"./chunk-HYGK7YDY.js";import"./chunk-FDNLMLIM.js";import"./chunk-Y5JU726N.js";export{c as RE_LEADING_THINK,p as compressHistory,b as convertChannelThinkTags,q as deleteChatSummary,e as findGenuineThinkClose,r as getAIStream,j as getCleanGroupedLength,m as getGoogleClient,f as getLeadingThinkBlock,o as initAI,d as isInsideBacktick,a as isModelMultimodal,l as isTerminationSignaled,n as runJanitorTask,s as runSubagent,k as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags,i as stripTrailingFluffAfterTools};
@@ -0,0 +1 @@
1
+ import{A as p,B as q,C as r,D as s,m as b,n as c,o as d,p as e,q as f,r as g,s as h,t as i,u as j,v as k,w as l,x as m,y as n,z as o}from"./chunk-47AJJOP3.js";import"./chunk-VCF6JVQV.js";import"./chunk-56EJGQU3.js";import"./chunk-KRRJNFBF.js";import"./chunk-X3ZZM2GL.js";import"./chunk-ZSVBC2ZI.js";import"./chunk-KFM2OZWJ.js";import"./chunk-72RYQ5W7.js";import"./chunk-WKHYRBBK.js";import{g as a}from"./chunk-AAPXJU65.js";import"./chunk-SIINYZWE.js";import"./chunk-HYGK7YDY.js";import"./chunk-FDNLMLIM.js";import"./chunk-Y5JU726N.js";export{c as RE_LEADING_THINK,p as compressHistory,b as convertChannelThinkTags,q as deleteChatSummary,e as findGenuineThinkClose,r as getAIStream,j as getCleanGroupedLength,m as getGoogleClient,f as getLeadingThinkBlock,o as initAI,d as isInsideBacktick,a as isModelMultimodal,l as isTerminationSignaled,n as runJanitorTask,s as runSubagent,k as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags,i as stripTrailingFluffAfterTools};
@@ -1,4 +1,4 @@
1
- import{A as nl,B as rl,C as sl,a as Xi,b as Je,c as ot,d as Sr,e as Xt,f as Yi,g as Vi,h as Cr,i as ji,j as ws,k as Qo,l as Br,v as tl,y as ol,z as Vn}from"./chunk-L24FUX5W.js";import"./chunk-VCF6JVQV.js";import{a as el}from"./chunk-56EJGQU3.js";import{b as Ji,c as Zi,d as Ri}from"./chunk-UAHJEAVX.js";import{a as No,b as hn,d as vr,e as bs,f as Ki,g as qi,i as zi,j as Er}from"./chunk-KRRJNFBF.js";import"./chunk-UYHPCXNG.js";import{a as Et,b as xt,d as $i,e as ht,f as _i,j as hs,k as ps,l as Gn,n as Hi,o as vo}from"./chunk-QA3IBTCI.js";import{a as Yn}from"./chunk-KFM2OZWJ.js";import{b as fn,c as ms,k as Pi}from"./chunk-72RYQ5W7.js";import{b as xs}from"./chunk-AZGFDR6K.js";import{a as Oi,b as Ni,c as yr,d as Mr,f as vt,g as zo,h as fs,l as Fi}from"./chunk-WKHYRBBK.js";import{a as Ei,b as Bi,c as Di,d as ki,e as Ii,f as Ai,g as Tr,i as Oo,j as fo,k as Li,l as gs,m as Ot}from"./chunk-AAPXJU65.js";import{c as br,d as vi,e as wr}from"./chunk-SIINYZWE.js";import{e as Ui}from"./chunk-YNU56P2H.js";import{b as Gi,d as xn,e as Kt,f as Wi}from"./chunk-AW2EPYYZ.js";import"./chunk-KBOLQV47.js";import{a as Qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as go,d as pr,e as us,j as Xn}from"./chunk-FDNLMLIM.js";import{a as Wn}from"./chunk-Y5JU726N.js";import Gs from"os";import e,{useState as J,useEffect as nt,useRef as Ke,useMemo as yn}from"react";import{Box as c,Text as l,useInput as Yd,useStdout as Vd,Static as jd}from"ink";import Kd from"ink-spinner";import Re from"fs-extra";import St from"path";import{exec as yo}from"child_process";import{fileURLToPath as qd}from"url";import _t,{useState as Dr,useEffect as Ts,useMemo as jn,useCallback as ha,useRef as Eo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,m){return t.replace(/\t/g," ".repeat(m))}function kr(t){return t==null?"":t.replace(/\r\n/g,`
1
+ import{A as nl,B as rl,C as sl,a as Xi,b as Je,c as ot,d as Sr,e as Xt,f as Yi,g as Vi,h as Cr,i as ji,j as ws,k as Qo,l as Br,v as tl,y as ol,z as Vn}from"./chunk-DRD5PTCI.js";import"./chunk-VCF6JVQV.js";import{a as el}from"./chunk-56EJGQU3.js";import{b as Ji,c as Zi,d as Ri}from"./chunk-UAHJEAVX.js";import{a as No,b as hn,d as vr,e as bs,f as Ki,g as qi,i as zi,j as Er}from"./chunk-KRRJNFBF.js";import"./chunk-X3ZZM2GL.js";import{a as Et,b as xt,d as $i,e as ht,f as _i,j as hs,k as ps,l as Gn,n as Hi,o as vo}from"./chunk-ZSVBC2ZI.js";import{a as Yn}from"./chunk-KFM2OZWJ.js";import{b as fn,c as ms,k as Pi}from"./chunk-72RYQ5W7.js";import{b as xs}from"./chunk-AZGFDR6K.js";import{a as Oi,b as Ni,c as yr,d as Mr,f as vt,g as zo,h as fs,l as Fi}from"./chunk-WKHYRBBK.js";import{a as Ei,b as Bi,c as Di,d as ki,e as Ii,f as Ai,g as Tr,i as Oo,j as fo,k as Li,l as gs,m as Ot}from"./chunk-AAPXJU65.js";import{c as br,d as vi,e as wr}from"./chunk-SIINYZWE.js";import{e as Ui}from"./chunk-YNU56P2H.js";import{b as Gi,d as xn,e as Kt,f as Wi}from"./chunk-JRQMA5CG.js";import"./chunk-HYGK7YDY.js";import{a as Qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as go,d as pr,e as us,j as Xn}from"./chunk-FDNLMLIM.js";import{a as Wn}from"./chunk-Y5JU726N.js";import Gs from"os";import e,{useState as J,useEffect as nt,useRef as Ke,useMemo as yn}from"react";import{Box as c,Text as l,useInput as Yd,useStdout as Vd,Static as jd}from"ink";import Kd from"ink-spinner";import Re from"fs-extra";import St from"path";import{exec as yo}from"child_process";import{fileURLToPath as qd}from"url";import _t,{useState as Dr,useEffect as Ts,useMemo as jn,useCallback as ha,useRef as Eo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,m){return t.replace(/\t/g," ".repeat(m))}function kr(t){return t==null?"":t.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `)}function Jo(t,m,x){let y=t,w=[...m].sort((s,k)=>s.start-k.start),p=0;for(let s of w){let k=s.start-p,h=kr(s.text).split(`
4
4
  `).length,A=s.text.length,O=(h>3?`[Pasted ${h} lines]`:`[Pasted ${A} chars]`).length,W=k+O;if(t<=k)break;if(t<W){y=s.end;break}else{let S=s.text.length-O;y+=S,p+=S}}return Math.min(y,x.length)}function ys(t,m,x,y,w=[]){let p=(t||"").slice(0,m),s=y(p).length,k=y(t||""),h=[...w].sort((N,I)=>I.start-N.start);for(let N of h){let I=y(t.slice(0,N.start)).length,_=y(N.text),q=I+_.length,ge=kr(N.text).split(`
@@ -41,7 +41,7 @@ import{A as nl,B as rl,C as sl,a as Xi,b as Je,c as ot,d as Sr,e as Xt,f as Yi,g
41
41
  `),terminalWidth:m,theme:p}));if(h==="diff-line"){let{isFirstLine:S,isLastLine:v}=t,L=(N=!1)=>r.createElement(E,{backgroundColor:s.codeBg,paddingX:1,width:m,marginBottom:N?1:0},r.createElement(E,{width:3,flexShrink:0}),r.createElement(E,{width:1,flexShrink:0,marginLeft:1}),r.createElement(E,{flexGrow:1,marginLeft:1},r.createElement(ne,null," ")));return r.createElement(E,{flexDirection:"column"},S&&L(!1),r.createElement(gl,{line:A,pairContent:t.pairContent,parentText:void 0,columns:m,theme:p}),v&&L(!0))}if(h==="code-fence-open"){let S={paddingLeft:2,width:"100%"};return r.createElement(E,{flexDirection:"column",marginTop:0,marginBottom:0,width:"100%"},r.createElement(E,{flexDirection:"row",...S},r.createElement(ne,null," ")),r.createElement(E,{flexDirection:"row",...S},r.createElement(ne,{color:"gray",bold:!0},"\u25B6_ ",(A||"TEXT").toUpperCase())))}if(h==="code-line"){let{lineNum:S,lang:v}=t,L=m-12,I=xt(A,Math.max(10,L)).split(`
42
42
  `);return r.createElement(E,{flexDirection:"column",width:"100%"},I.map((_,q)=>r.createElement(E,{key:q,flexDirection:"row",borderColor:s.codeBorder,paddingLeft:2,width:"100%"},r.createElement(E,{width:5,flexShrink:0},r.createElement(ne,{color:"gray",dimColor:!0},q===0?String(S).padStart(4," ")+" ":" ")),r.createElement(E,{flexGrow:1},Nt(_,v,s.text)))))}if(h==="code-fence-close")return r.createElement(E,{flexDirection:"row",paddingLeft:2,marginBottom:1,width:"100%"},r.createElement(ne,null," "));if(h==="write-header")return r.createElement(E,{flexDirection:"column",paddingX:1,width:m},r.createElement(bn,{text:A,columns:m,theme:p}));if(h==="write-line"){let{gutterWidth:S,lineNum:v,isFirstLine:L,isLastLine:N,extension:I,wrappedLines:_}=t,q=(ge=!1)=>r.createElement(E,{flexDirection:"row",width:m,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:s.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:s.codeBg,marginBottom:ge?1:0},r.createElement(E,{width:S+2,flexShrink:0},r.createElement(ne,null," ".repeat(S+2))),r.createElement(E,{flexGrow:1},r.createElement(ne,null," ")));return r.createElement(E,{flexDirection:"column"},L&&q(!1),r.createElement(E,{flexDirection:"row",width:m,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:s.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:s.codeBg},r.createElement(E,{width:S+2,flexShrink:0},r.createElement(ne,{color:"gray",dimColor:!0},String(v).padStart(S," ")," ")),r.createElement(E,{flexGrow:1,flexDirection:"column"},(_||[A]).map((ge,Me)=>r.createElement(E,{key:Me},Nt(ge,I,s.text))))),N&&q(!0))}return h==="write-footer"?r.createElement(E,{flexDirection:"column",paddingX:1,width:m,marginTop:1,marginBottom:1},r.createElement(bn,{text:A,columns:m,theme:p})):h==="worked-duration"?r.createElement(E,{marginTop:1,marginBottom:2,paddingX:1,width:"100%"},r.createElement(ne,{color:s.textMuted},"["),r.createElement(ne,{color:s.textMuted},"Worked for ",r.createElement(ne,{bold:!0,color:s.text},Cs(W))),r.createElement(ne,{color:s.textMuted},"]")):null}),Hc=r.memo(({messages:t,showFullThinking:m,columns:x=80,aiProvider:y,version:w,theme:p="Dark"})=>r.createElement(E,{flexDirection:"column",width:"100%"},t.map((s,k)=>r.createElement(fl,{key:s.id||k,msg:s,showFullThinking:m,columns:x,aiProvider:y,version:w,theme:p}))));import pt from"react";import{Box as Fo,Text as xo}from"ink";import{useState as qn,useEffect as zn,useRef as Pr}from"react";var Qn=null;function xl(){Qn&&Qn()}var gd=t=>{if(t<=370)return"#00a564";if(t>=5e3)return"#ff0000";let m=[{t:370,r:0,g:165,b:100},{t:550,r:40,g:195,b:80},{t:800,r:120,g:220,b:50},{t:1100,r:190,g:225,b:20},{t:1500,r:250,g:210,b:15},{t:2e3,r:255,g:170,b:0},{t:2800,r:255,g:110,b:0},{t:3800,r:255,g:50,b:0},{t:5e3,r:255,g:0,b:0}];for(let x=0;x<m.length-1;x++){let y=m[x],w=m[x+1];if(t>=y.t&&t<=w.t){let p=(t-y.t)/(w.t-y.t);p=p*p*(3-2*p);let s=Math.round(y.r+(w.r-y.r)*p),k=Math.round(y.g+(w.g-y.g)*p),h=Math.round(y.b+(w.b-y.b)*p);return`#${((1<<24)+(s<<16)+(k<<8)+h).toString(16).slice(1)}`}}return"#ff0000"},fd=pt.memo(({mode:t,thinkingLevel:m,tokens:x="0.0k",tokensTotal:y="0.0k",cachedTokens:w=0,promptTokens:p=0,chatId:s="NEW-SESSION",isMemoryEnabled:k=!0,apiTier:h="Free",aiProvider:A="Google",activeModel:O="",isProcessing:W=!1,lastChunkTime:S=0,theme:v="Dark",wps:L=0,showTPMEstimate:N=!1})=>{let I=Je(v),_="",[q,ge]=qn(0),[Me,re]=qn(0),[se,pe]=qn("MB"),[Be,ve]=qn("green"),[Fe,le]=qn(0),Ie=Pr([]),be=Pr(370),ee=Pr([]),We=Pr(S);zn(()=>{We.current=S},[S]),zn(()=>{if(!W){ee.current=[];return}if(L>0){let R=ee.current;R.push(L),R.length>3&&R.shift()}},[W,L,S]),zn(()=>{if(!W){le(0);return}let R=setInterval(()=>{let te=We.current,Z=te>0?Date.now()-te:0;if(te>0&&Z>=1e3)ee.current=[],le(0);else if(te>0&&Z>500){ee.current.length>0&&ee.current.shift();let ae=ee.current;if(ae.length>0){let fe=ae.reduce((he,Ae)=>he+Ae,0);le(Math.round(fe/ae.length))}else le(0)}else{let ae=ee.current;if(ae.length>0){let fe=ae.reduce((he,Ae)=>he+Ae,0);le(Math.round(fe/ae.length))}else L>0&&le(Math.round(L))}},750);return()=>clearInterval(R)},[W]),zn(()=>{if(!W){Ie.current=[];return}if(S>0){let Z=Ie.current;(Z.length===0||Z[Z.length-1]!==S)&&(Z.push(S),Z.length>10&&Z.shift())}let R=()=>{if(!S){ve("#00a564");return}let Z=Ie.current,ae=0;if(Z.length>1){let oe=0;for(let de=1;de<Z.length;de++)oe+=Z[de]-Z[de-1];ae=oe/(Z.length-1)}let fe=Date.now()-S,Ae=fe>=2500,it=!Ae&&ae>0?Math.min(fe,ae*3):fe,Ze=Math.max(ae,it),Ee=Ae?.4:.2;be.current=be.current*(1-Ee)+Ze*Ee,ve(gd(be.current))};R();let te=setInterval(R,100);return()=>clearInterval(te)},[W,S]);let me=()=>{let R=process.memoryUsage(),te=R.heapTotal/(1024*1024)>=1024,Z=te?"GB":"MB",ae=(fe,he)=>{let Ae=fe/(1048576*(he?1024:1));return he?parseFloat(Ae.toFixed(2)):Math.round(Ae)};pe(Z),re(ae(R.heapTotal,te)),ge(ae(R.heapUsed,te))};return zn(()=>{Qn=me,me();let R=setInterval(()=>{me()},6e4);return()=>{clearInterval(R),Qn===me&&(Qn=null)}},[]),pt.createElement(Fo,{flexDirection:"row",justifyContent:"space-between",paddingX:1,width:"100%"},pt.createElement(Fo,null,pt.createElement(Fo,{marginRight:1},pt.createElement(xo,{color:I.textMuted},t.toLowerCase()==="flow"?"Studio":t.toLowerCase()==="icu"?"Computer Use":t.toLowerCase()==="flux"?"Workspace":"Omni")),pt.createElement(xo,{color:I.textMuted,dimColor:!0},"\u2503 "),pt.createElement(Fo,null,pt.createElement(xo,{color:I.text,italic:!0},_i(process.cwd(),35)))),pt.createElement(Fo,null,W&&!N?pt.createElement(Fo,null,pt.createElement(xo,{color:Be},"\u25CF ")):null,W&&N&&pt.createElement(pt.Fragment,null,pt.createElement(xo,{color:I.textMuted},Fe," tok/s"),pt.createElement(xo,{color:I.textMuted,dimColor:!0}," \u2503")),x>0&&pt.createElement(pt.Fragment,null,pt.createElement(Fo,{marginX:1},pt.createElement(xo,{color:I.text},ht(y)," tok",(()=>{let R=typeof p=="number"?p:0,te=typeof w=="number"?w:0,Z=R>0?te/R*100:0;return Z<1?null:pt.createElement(xo,{color:I.success||"green",dimColor:!0}," [",Z.toFixed(0),"% cached]")})())),pt.createElement(xo,{color:I.textMuted,dimColor:!0},"\u2503")),pt.createElement(Fo,{marginLeft:1},pt.createElement(xo,{color:I.textMuted,bold:!0},q," ",se))))}),hl=fd;import rt,{useState as vs,useMemo as xd,useEffect as hd}from"react";import{Box as Gt,Text as qt,useInput as pd}from"ink";import bd from"ink-select-input";var wd=({label:t,isSelected:m,theme:x="Dark"})=>{let y=Je(x),w=t==="Cancel"||t==="Back"||t.toLowerCase().includes("exit")||t.toLowerCase().includes("back");return rt.createElement(Gt,{marginTop:w?1:0,backgroundColor:m?y.highlightBg:void 0,paddingX:1,width:"100%"},rt.createElement(qt,{color:m?y.text:y.textMuted,bold:m},m?"\u276F ":" ",t))};function bt({title:t,subtitle:m,items:x=[],onSelect:y,theme:w="Dark",searchable:p=!1}){let s=Je(w),[k,h]=vs(""),[A,O]=vs(0),[W,S]=vs("list"),v=xd(()=>{if(!p||!k.trim())return x;let L=k.toLowerCase().trim();return x.filter(N=>N.label&&N.label.toLowerCase().includes(L))},[x,k,p]);return hd(()=>{O(0)},[k]),pd((L,N)=>{if(p){if(N.upArrow){S("list"),O(I=>v.length>0?I>0?I-1:v.length-1:0);return}if(N.downArrow){S("list"),O(I=>v.length>0&&I<v.length-1?I+1:0);return}if(N.return){v.length>0&&v[A]&&y(v[A]);return}if(N.escape){if(k)h(""),S("list"),O(0);else{let I=x.find(_=>_.value==="Back"||_.label==="Back"||_.value==="Cancel"||_.label==="Cancel");I&&y(I)}return}if(N.backspace||N.delete){S("search"),h(I=>I.slice(0,-1));return}if(L&&!N.ctrl&&!N.meta&&!N.tab){S("search"),h(I=>I+L);return}}},{isActive:p}),p?rt.createElement(Gt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&rt.createElement(Gt,{paddingX:1,paddingY:0,marginBottom:0},rt.createElement(qt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),m&&rt.createElement(Gt,{paddingX:1,marginBottom:0},rt.createElement(qt,{color:s.textMuted,italic:!0}," ",m)),rt.createElement(Gt,{paddingX:1,marginTop:1,marginBottom:1,flexDirection:"row"},rt.createElement(qt,{color:W==="search"?s.primary||"cyan":s.textMuted,bold:W==="search"},"\u{1F50D} Search:"),rt.createElement(qt,{color:s.text,bold:!0}," ",k),W==="search"?rt.createElement(qt,{color:s.primary||"cyan"},"\u2588"):k?null:rt.createElement(qt,{color:s.textMuted,italic:!0}," (type to search...)")),rt.createElement(Gt,{flexDirection:"column",width:"100%"},v.length===0?rt.createElement(Gt,{paddingX:1,marginY:0},rt.createElement(qt,{color:s.warning||"yellow",italic:!0}," No matching items found")):v.map((L,N)=>{let I=N===A,_=L.label==="Cancel"||L.label==="Back"||L.label.toLowerCase().includes("exit")||L.label.toLowerCase().includes("back");return rt.createElement(Gt,{key:L.value??L.label??N,marginTop:_?1:0,backgroundColor:I?s.highlightBg:void 0,paddingX:1,width:"100%"},rt.createElement(qt,{color:I?s.text:s.textMuted,bold:I},I?"\u276F ":" ",L.label))})),rt.createElement(Gt,{paddingX:1,marginTop:1},rt.createElement(qt,{color:s.textMuted,italic:!0},W==="search"?"(Type letters to search \u2022 Arrows for list mode \u2022 Enter to select)":"(Arrows to navigate \u2022 Type letters to search \u2022 Enter to select)"))):rt.createElement(Gt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&rt.createElement(Gt,{paddingX:1,paddingY:0,marginBottom:m?0:1},rt.createElement(qt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),m&&rt.createElement(Gt,{paddingX:1,marginBottom:1},rt.createElement(qt,{color:s.textMuted,italic:!0}," ",m)),rt.createElement(Gt,{flexDirection:"column",width:"100%"},rt.createElement(bd,{items:x,onSelect:y,itemComponent:L=>rt.createElement(wd,{...L,theme:w}),indicatorComponent:()=>null})),rt.createElement(Gt,{paddingX:1,marginTop:1},rt.createElement(qt,{color:s.textMuted,italic:!0},"(Arrows to select \u2022 Enter to confirm)")))}import C,{useState as Lt,useEffect as Jn}from"react";import{Box as Ne,Text as j,useInput as Td}from"ink";import yd from"ink-text-input";import Md from"v8";import pl from"os";var ho=[...Object.keys(Xi),"Mystery"],po=[{id:"appearance",label:"Appearance",desc:"Customize UI theme & rendering options"},{id:"memory",label:"Memory",desc:"Manage system context & agent's memory"},{id:"other",label:"Miscellaneous",desc:"Miscellaneous preferences"},{id:"providers",label:"Providers",desc:"Configure AI models"},{id:"security",label:"Security",desc:"Configure permissions & data safety"},{id:"updater",label:"Updater",desc:"Manage application updates"},{id:"exit",label:"Exit Settings",desc:"Return to chat view"}],bl=t=>{let m=t.autoApproveCommands||"",x=t.autoDisallowCommands||"",y=t.alwaysAskCommands||"",w=t.autoExec===!1&&t.allowExternalAccess===!1&&t.networkAccess===!1&&m===""&&x==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&y==="killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall"&&t.autoApproveGit===!1,p=t.autoExec===!0&&t.allowExternalAccess===!1&&t.networkAccess!==!1&&m==="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time, mkdir"&&x==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&y==="killall, pkill, taskkill, Stop-Process, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, shutdown, reboot, init 0, init 6, git reset --hard, git clean -fd, npm r, npm uninstall"&&t.autoApproveGit===!1,s=t.autoExec===!0&&t.allowExternalAccess===!0&&t.networkAccess!==!1&&m==="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time, mkdir"&&x===""&&y==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&t.autoApproveGit===!0;return w?"Strict":p?"Balanced":s?"Autonomous":t.sandboxPreset||"Custom"},Es=t=>!t||t.trim()===""?"None":t.length>40?t.substring(0,40)+"...":t;function Or({systemSettings:t,setSystemSettings:m,apiTier:x,setActiveView:y,setInputConfig:w,saveSettings:p,quotas:s,setMessages:k,aiProvider:h,initialSelectingTheme:A=!1,onCloseTheme:O=null,setProviderReturnView:W=null}){let S=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",v=ho.indexOf(S),[L,N]=Lt("categories"),[I,_]=Lt(0),[q,ge]=Lt(0),[Me,re]=Lt(null),[se,pe]=Lt(""),[Be,ve]=Lt(A),[Fe,le]=Lt(v>=0?v:0),[Ie,be]=Lt(t.theme||"Dark"),[ee,We]=Lt(!1),[me,R]=Lt(0),[te,Z]=Lt(0),[ae,fe]=Lt(""),[he,Ae]=Lt("list"),[it,Ze]=Lt({});Jn(()=>{(async()=>{let T=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],U={};for(let we of T)try{await fn(we)&&(U[we]=!0)}catch{}Ze(U)})()},[]);let Ee=C.useMemo(()=>{let ce=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],U=!!(process.env.SUBAGENT_MODEL&&process.env.SUBAGENT_MODEL.trim())?`ENV (${process.env.SUBAGENT_MODEL.trim()})`:"ENV",we=[{label:"Default (use the current model)",value:"Default",isHeader:!1},{label:U,value:"ENV",isHeader:!1}],Xe=s?.providerTiers?.[h]||x||"Free",lt=Oo(h,Xe)||[];lt.length>0&&(we.push({label:`\u2500\u2500 ${h.toUpperCase()}${Xe!=="Free"?` (${Xe})`:""} \u2500\u2500`,isHeader:!0}),lt.forEach(st=>{let Ge=typeof st=="string"?st:st.cmd||st.name||st.id||String(st);Ge&&!Ge.trim().startsWith("---")&&!Ge.startsWith(`
43
43
  ---`)&&we.push({label:Ge,value:Ge,isHeader:!1,provider:h})}));for(let st of ce)if(st!==h&&it[st]){let Ge=s?.providerTiers?.[st]||"Free",kt=Oo(st,Ge)||[];kt.length>0&&(we.push({label:`\u2500\u2500 ${st.toUpperCase()}${Ge!=="Free"?` (${Ge})`:""} \u2500\u2500`,isHeader:!0}),kt.forEach(Ve=>{let Rt=typeof Ve=="string"?Ve:Ve.cmd||Ve.name||Ve.id||String(Ve);Rt&&!Rt.trim().startsWith("---")&&!Rt.startsWith(`
44
- ---`)&&we.push({label:Rt,value:Rt,isHeader:!1,provider:st})}))}return we},[h,x,s,it]),oe=C.useMemo(()=>{if(!ae.trim())return Ee;let ce=ae.trim().toLowerCase(),T=[],U=null;for(let we of Ee)we.isHeader?U=we:(we.label.toLowerCase().includes(ce)||we.value&&we.value.toLowerCase().includes(ce))&&(U&&!T.includes(U)&&T.push(U),T.push(we));return T},[Ee,ae]);Jn(()=>{if(ee){let ce=oe.findIndex(T=>!T.isHeader);R(ce>=0?ce:0),Z(0)}},[ae]),Jn(()=>{if(ee){if(oe.length===0){R(0),Z(0);return}if(me>=oe.length||oe[me]?.isHeader){let ce=oe.findIndex(T=>!T.isHeader);R(ce>=0?ce:0)}}},[oe,ee]);let[de,Ce]=Lt(0),[D,Ue]=Lt(0),[qe,Ct]=Lt("MB"),[Yt,Hr]=Lt(!1);Jn(()=>{let ce=!1;return import("./exec_command-Z7KYD5F3.js").then(T=>{ce||Hr(!!T.isPtyAvailable)}).catch(()=>{}),()=>{ce=!0}},[]),Jn(()=>{let ce=Md.getHeapStatistics().heap_size_limit,T=ce>=1024*1024*1024,U=T?"GB":"MB",we=T?1024*1024*1024:1024*1024;Ue(parseFloat((ce/we).toFixed(2))),Ct(U);let Xe=()=>{let kt=process.memoryUsage().rss/we,Ve=T?parseFloat(kt.toFixed(2)):Math.round(kt);Ce(Ve)};Xe();let lt=setInterval(()=>{Xe()},3e4);return()=>clearInterval(lt)},[]);let Ro=ce=>{switch(ce){case"providers":{let U=[{label:"Current Provider",value:"aiProvider",status:h}];return h==="Ollama"&&U.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),U}case"appearance":return[{label:"Theme",value:"theme",status:t.theme||"Dark"},{label:"Loading Phrases",value:"loadingPhrases",status:t.loadingPhrases!==!1?"ON":"OFF"},{label:"Progressive Rendering [EXPERIMENTAL]",value:"progressiveRendering",status:t.progressiveRendering?"ON":"OFF"},{label:"Show TPM Estimate",value:"showTPMEstimate",status:t.showTPMEstimate?"ON":"OFF"}];case"memory":return[{label:"Toggle Memory [Legacy]",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:bl(t),section:"Sandbox"},{label:"YOLO Mode",value:"autoExec",status:t.autoExec?"ON":"OFF",section:"Sandbox"},{label:"External Workspace Access",value:"externalAccess",status:t.allowExternalAccess?"ON":"OFF",section:"Sandbox"},{label:"Network Access (Terminal)",value:"networkAccess",status:t.networkAccess!==!1?"ON":"OFF",section:"Sandbox"},{label:"Always Ask Commands",value:"alwaysAsk",status:Es(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Es(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Es(t.autoDisallowCommands),section:"Sandbox"},{label:"Auto Approve Git Commits",value:"autoApproveGit",status:t.autoApproveGit?"ON":"OFF",section:"Sandbox"},{label:"Advanced Recovery [EXPERIMENTAL]",value:"advanceRollback",status:t.advanceRollback?"ON":"OFF",section:"Other"},{label:"Auto-Delete History",value:"autoDelete",status:t.autoDeleteHistory||"30d",section:"Other"},{label:"Save AppData Externally",value:"externalData",status:t.useExternalData?"ON":"OFF",section:"Other"}];case"updater":return[{label:"Auto-Update",value:"autoUpdate",status:t.autoUpdate?"ON":"OFF"},{label:"Preferred Package Manager",value:"updateManager",status:(t.updateManager||"npm")==="custom"?"Custom":(t.updateManager||"npm").toUpperCase()}];case"other":return[{label:"Sub-Agents",value:"subAgents",status:t.subAgents!==!1?"ON":"OFF"},{label:"Sub-Agent Model",value:"subAgentModel",status:t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default"},{label:"Verbose Thinking",value:"preserveThinking",status:t.preserveThinking!==!1?"ON":"OFF"},{label:"Dynamic Directory Awareness",value:"dynamicDirAwareness",status:t.dynamicDirAwareness?"ON":"OFF"},{label:"Directory Tree Design",value:"indentationTree",status:t.indentationTree!==!1?"Modern":"Classic (deprecated)"},{label:"Compact Large Tool Results",value:"compressToolResults",status:t.compressToolResults?"ON":"OFF"},{label:"Auto Truncate Results",value:"autoTruncateResults",status:t.autoTruncateResults?"ON":"OFF"},{label:"Image History for CU",value:"imageHistoryCU",status:t.imageHistoryCU||"Standard"},{label:"Context Length",value:"contextLength",status:t.contextLength||"256k"},{label:"Keep Reasoning Context",value:"keepReasoningContext",status:t.keepReasoningContext?"ON":"OFF"},{label:"Auto Exclude Metadata",value:"autoExcludeMetadata",status:t.autoExcludeMetadata?"ON":"OFF"}];default:return[]}},en=po[I].id,He=Ro(en);Td((ce,T)=>{if(ee){if(T.tab){Ae(U=>U==="search"?"list":"search");return}if(he==="search"){T.escape?We(!1):T.downArrow||T.return?Ae("list"):T.backspace||T.delete?fe(U=>U.slice(0,-1)):ce&&!T.ctrl&&!T.meta&&ce.length===1&&fe(U=>U+ce);return}if(T.upArrow)R(U=>{if(oe.length===0)return 0;let we=(U-1+oe.length)%oe.length,Xe=0;for(;oe[we]?.isHeader&&Xe<oe.length;)we=(we-1+oe.length)%oe.length,Xe++;return we});else if(T.downArrow)R(U=>{if(oe.length===0)return 0;let we=(U+1)%oe.length,Xe=0;for(;oe[we]?.isHeader&&Xe<oe.length;)we=(we+1)%oe.length,Xe++;return we});else if(T.return){let U=oe[me];U&&!U.isHeader&&(m(we=>{let Xe=U.value==="Default",lt={...we,CustomSubAgent:!Xe,SubAgentModel:U.value,SubAgentProvider:Xe?"":U.provider||""};return p({systemSettings:lt,apiTier:x,quotas:s}),lt}),We(!1))}else T.escape?We(!1):ce&&!T.ctrl&&!T.meta&&ce.length===1&&(fe(U=>U+ce),Ae("search"));return}if(Be){if(T.upArrow){let U=(Fe-1+ho.length)%ho.length;le(U)}else if(T.downArrow){let U=(Fe+1)%ho.length;le(U)}else if(T.return){let U=ho[Fe];m(we=>{let Xe={...we,theme:U};return p({systemSettings:Xe,apiTier:x,quotas:s}),Xe}),O?O():ve(!1)}else T.escape&&(O?O():ve(!1));return}if(Me){T.escape&&re(null);return}if(L==="categories")T.upArrow?_(U=>(U-1+po.length)%po.length):T.downArrow?_(U=>(U+1)%po.length):T.return||T.rightArrow?po[I].id==="exit"?y("chat"):(N("items"),ge(0)):T.escape&&y("chat");else if(L==="items"){let U=He[q];if(ce==="?"&&U?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(T.upArrow)ge(we=>(we-1+He.length)%He.length);else if(T.downArrow)ge(we=>(we+1)%He.length);else if(T.leftArrow||T.escape)N("categories");else if(T.return){let we=He[q];Zt(we)}}});let Zt=ce=>{if(ce.value==="memory")m(T=>({...T,memory:!T.memory}));else if(ce.value==="sandboxPreset"){let T=bl(t),U=["Autonomous","Balanced","Strict"],Xe=(U.indexOf(T)+1)%U.length,lt=U[Xe];m(st=>{let Ge={...st,sandboxPreset:lt};return lt==="Strict"?(Ge.autoExec=!1,Ge.allowExternalAccess=!1,Ge.networkAccess=!1,Ge.autoApproveCommands="",Ge.autoDisallowCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.alwaysAskCommands="killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall",Ge.autoApproveGit=!1):lt==="Balanced"?(Ge.autoExec=!0,Ge.allowExternalAccess=!1,Ge.networkAccess=!0,Ge.autoApproveCommands="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time",Ge.autoDisallowCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.alwaysAskCommands="killall, pkill, taskkill, Stop-Process, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, shutdown, reboot, init 0, init 6, git reset --hard, git clean -fd, npm r, npm uninstall",Ge.autoApproveGit=!1):lt==="Autonomous"&&(Ge.autoExec=!0,Ge.allowExternalAccess=!0,Ge.networkAccess=!0,Ge.autoApproveCommands="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time",Ge.autoDisallowCommands="",Ge.alwaysAskCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.autoApproveGit=!0),Ge})}else if(ce.value==="autoExec")t.autoExec?m(T=>({...T,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(ce.value==="externalAccess")t.allowExternalAccess?m(T=>({...T,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(ce.value==="networkAccess")m(T=>({...T,networkAccess:T.networkAccess===!1,sandboxPreset:"Custom"}));else if(ce.value==="alwaysAsk")re("alwaysAskCommands"),pe(t.alwaysAskCommands||"");else if(ce.value==="autoApprove")re("autoApproveCommands"),pe(t.autoApproveCommands||"");else if(ce.value==="autoApproveGit")m(T=>({...T,autoApproveGit:!T.autoApproveGit,sandboxPreset:"Custom"}));else if(ce.value==="autoDisallow")re("autoDisallowCommands"),pe(t.autoDisallowCommands||"");else if(ce.value==="ollamaEndpoint")m(T=>{let U=T.ollamaEndpoint==="Local"?"Cloud":"Local",we={...T,ollamaEndpoint:U};return p({systemSettings:we,apiTier:x,quotas:s}),we});else if(ce.value==="apiTier")y("apiTier");else if(ce.value==="aiProvider")W&&W("settings"),y("selectProvider");else if(ce.value==="advanceRollback")t.advanceRollback?m(T=>{let U={...T,advanceRollback:!1};return p({systemSettings:U,apiTier:x,quotas:s}),U}):y("advanceRollbackDanger");else if(ce.value==="autoDelete"){let T=["1d","7d","30d"],we=(T.indexOf(t.autoDeleteHistory||"30d")+1)%T.length;m(Xe=>({...Xe,autoDeleteHistory:T[we]}))}else if(ce.value==="autoUpdate")m(T=>({...T,autoUpdate:!T.autoUpdate}));else if(ce.value==="externalData")if(!t.useExternalData)w({label:"Enter absolute path for External AppData:",note:"All history, logs and secrets will be stored here. ~/.fluxflow/settings.json stays as anchor.",key:"externalDataPath",value:t.externalDataPath||""}),y("input");else{let T={...t,useExternalData:!1};m(T),p({systemSettings:T,apiTier:x,quotas:s}),k(U=>[...U,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(ce.value==="updateManager")y("updateManager");else if(ce.value==="parserDownload")y("parserDownload");else if(ce.value==="indentationTree")m(T=>{let U={...T,indentationTree:T.indentationTree===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="compressToolResults")m(T=>{let U={...T,compressToolResults:!T.compressToolResults};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="autoTruncateResults")m(T=>{let U={...T,autoTruncateResults:!T.autoTruncateResults};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="imageHistoryCU"){let T=["Low","Standard","Extended"],we=(T.indexOf(t.imageHistoryCU||"Standard")+1)%T.length;m(Xe=>{let lt={...Xe,imageHistoryCU:T[we]};return p({systemSettings:lt,apiTier:x,quotas:s}),lt})}else if(ce.value==="contextLength"){let T=["16k","32k","64k","128k","256k","512k","1M"],we=(T.indexOf(t.contextLength||"256k")+1)%T.length;m(Xe=>{let lt={...Xe,contextLength:T[we]};return p({systemSettings:lt,apiTier:x,quotas:s}),lt})}else if(ce.value==="keepReasoningContext")m(T=>{let U={...T,keepReasoningContext:!T.keepReasoningContext};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="autoExcludeMetadata")m(T=>{let U={...T,autoExcludeMetadata:!T.autoExcludeMetadata};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="subAgents")m(T=>{let U={...T,subAgents:T.subAgents===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="subAgentModel"){let T=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",U=oe.findIndex(we=>we.value===T);R(U>=0?U:0),We(!0)}else if(ce.value==="preserveThinking")m(T=>{let U={...T,preserveThinking:T.preserveThinking===!1};return cl(U.preserveThinking),p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="dynamicDirAwareness")t.dynamicDirAwareness?m(T=>{let U={...T,dynamicDirAwareness:!1};return p({systemSettings:U,apiTier:x,quotas:s}),U}):y("dynamicDirDanger");else if(ce.value==="loadingPhrases")m(T=>{let U={...T,loadingPhrases:T.loadingPhrases===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="progressiveRendering")m(T=>{let U={...T,progressiveRendering:!T.progressiveRendering};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="showTPMEstimate")m(T=>{let U={...T,showTPMEstimate:!T.showTPMEstimate};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="theme"){let T=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",U=ho.indexOf(T);le(U>=0?U:0),be(t.theme||"Dark"),ve(!0)}},Se=Je(t.theme);if(ee){let ce=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",T=15,U=te;me<U?U=me:me>=U+T&&(U=me-T+1),U=Math.max(0,Math.min(U,Math.max(0,oe.length-T))),U!==te&&Z(U);let we=oe.slice(U,U+T);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:Se.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&C.createElement(j,{color:"gray"},me+1,"/",oe.length)),C.createElement(Ne,{borderStyle:"single",borderColor:he==="search"?Se.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(j,{color:Se.text},ae),he==="search"&&C.createElement(j,{color:Se.primary||"cyan"},"\u2588"),!ae&&he!=="search"&&C.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ne,{flexDirection:"column",flexGrow:1,height:T},we.length>0?we.map((Xe,lt)=>{let st=U+lt;if(Xe.isHeader)return C.createElement(Ne,{key:`hdr-${st}`,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},Xe.label));let Ge=me===st&&he==="list",kt=ce===Xe.value;return C.createElement(Ne,{key:`item-${Xe.value}-${st}`,paddingX:1,backgroundColor:Ge?Se.highlightBg:void 0},C.createElement(j,{color:Ge?Se.text:Se.textDim,bold:Ge},Ge?"\u276F ":" ",Xe.label,kt?C.createElement(j,{color:Se.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ne,{paddingX:1},C.createElement(j,{color:"gray",italic:!0},'No models matching "',ae,'"'))),C.createElement(Ne,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"[",he.toUpperCase()," MODE]")))}if(Be){let ce=ho[Fe],T=Je(ce);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:T.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.text,bold:!0},"Choose your color scheme:")),C.createElement(Ne,{flexDirection:"row",width:"100%",flexGrow:1},C.createElement(Ne,{flexDirection:"column",width:"30%",paddingRight:1},ho.map((U,we)=>{let Xe=Fe===we,lt=(t.theme||"Dark")===U,st=U==="Forest Sprite";return C.createElement(Ne,{key:U,paddingX:0},C.createElement(j,{color:Xe?T.text:T.textDim,bold:Xe},Xe?"> ":" ",U,st&&C.createElement(j,{color:Xe?T.success||"#52b788":"green",bold:!0}," \u2605"),lt?C.createElement(j,{color:T.primary||"cyan",italic:!0}," (saved)"):""))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:T.borderMuted,paddingX:2,paddingY:1,backgroundColor:T.cardBg},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.secondary||"cyan",bold:!0},"> ","you: "),C.createElement(j,{color:T.text},"add a greeting function")),C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.success||"green"}," Here's the change:")),C.createElement(Ne,{flexDirection:"column",marginLeft:2,marginBottom:1},C.createElement(j,null,C.createElement(j,{color:T.textDim},"3 "),C.createElement(j,{color:T.textDim},' import "fmt"')),C.createElement(j,{color:T.textDim},"4"),C.createElement(Ne,{backgroundColor:T.diffRemovalBg},C.createElement(j,null,C.createElement(j,{color:T.diffRemovalNum||T.diffRemovalText},"5 "),C.createElement(j,{color:T.diffRemovalPrefix||T.diffRemovalText},"- "),C.createElement(j,{color:T.diffRemovalText},"func "),C.createElement(j,{color:T.diffRemovalHighlightColor||T.diffRemovalText,backgroundColor:T.diffRemovalHighlightBg,bold:!0},"main()"),C.createElement(j,{color:T.diffRemovalText}," {"))),C.createElement(Ne,{backgroundColor:T.diffAdditionBg},C.createElement(j,null,C.createElement(j,{color:T.diffAdditionNum||T.diffAdditionText},"5 "),C.createElement(j,{color:T.diffAdditionPrefix||T.diffAdditionText},"+ "),C.createElement(j,{color:T.diffAdditionText},"func "),C.createElement(j,{color:T.diffAdditionHighlightColor||T.diffAdditionText,backgroundColor:T.diffAdditionHighlightBg,bold:!0},"greet(name string)"),C.createElement(j,{color:T.diffAdditionText}," {"))),C.createElement(Ne,{backgroundColor:T.diffAdditionBg},C.createElement(j,null,C.createElement(j,{color:T.diffAdditionNum||T.diffAdditionText},"6 "),C.createElement(j,{color:T.diffAdditionPrefix||T.diffAdditionText},"+ "),C.createElement(j,{color:T.diffAdditionText}," "),C.createElement(j,{color:T.diffAdditionHighlightColor||T.diffAdditionText,backgroundColor:T.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),C.createElement(j,{color:T.textDim},"7 }")),C.createElement(Ne,{flexDirection:"column",marginTop:1,marginBottom:1},C.createElement(j,{color:T.textDim},"\u25BE Thought Process"),C.createElement(j,{color:T.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),C.createElement(Ne,{flexDirection:"column"},C.createElement(j,null,C.createElement(j,{color:T.warning||"yellow"},"\u2699 tool: "),C.createElement(j,{color:T.text},"write_file main.go")),C.createElement(j,null,C.createElement(j,{color:T.accent||"magenta"},"\u29BF task: "),C.createElement(j,{color:T.text},"Implementing greeting")),C.createElement(j,null,C.createElement(j,{color:T.danger||"red"},"X error: "),C.createElement(j,{color:T.text},"compilation failed")),C.createElement(j,null,C.createElement(j,{color:T.warning||"yellow"},"\u26A0 warning: "),C.createElement(j,{color:T.text},"deprecation warning")),C.createElement(j,null,C.createElement(j,{color:T.info||"blue"},"\u2192 link: "),C.createElement(j,{color:T.info||"blue",underline:!0},"file:///path/to/main.go")),C.createElement(j,null,C.createElement(j,{color:T.accent||"magenta"},"\u2605 accent: "),C.createElement(j,{color:T.text},"highlighted text")),C.createElement(j,{color:T.textDim},"\xB7 dim: press Enter to continue")))),C.createElement(Ne,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(j,{color:"gray"},"Previewing: ",ho[Fe],ho[Fe]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:0,width:"100%",minHeight:32},C.createElement(Ne,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Se.borderMuted,width:"100%"},C.createElement(j,{color:Se.text,bold:!0},"SYSTEM CONFIGURATION")),C.createElement(Ne,{flexDirection:"row",width:"100%",minHeight:26},C.createElement(Ne,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:L==="categories"?Se.border:Se.borderMuted,padding:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:L==="categories"?Se.text:Se.textDim,bold:!0,underline:!0},"CATEGORIES")),po.map((ce,T)=>{let U=I===T,we=ce.id==="exit";return C.createElement(Ne,{key:ce.id,marginTop:we?15:0,backgroundColor:U?L==="categories"?Se.highlightBg:Se.cardBg:void 0,paddingX:1},C.createElement(j,{color:U&&L==="categories"?Se.text:Se.textDim,bold:U},U?"\u276F ":" ",ce.label))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:L==="items"?Se.border:Se.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:L==="items"?Se.text:Se.textDim,bold:!0,underline:!0},po[I].label.toUpperCase().includes("EXIT")?"Runtime Information":`${po[I].label} Settings`)),He.length>0?(()=>{let ce=null,T=[],U=Ve=>(Ve||"").split(",").map(Rt=>Rt.trim().toLowerCase()).filter(Boolean),we=U(t.autoApproveCommands),Xe=U(t.autoDisallowCommands),lt=U(t.alwaysAskCommands),st=[...we,...Xe,...lt],Ge=new Set(st),kt=en==="security"&&st.length!==Ge.size;return He.forEach((Ve,Rt)=>{let ao=L==="items"&&q===Rt,Xr=Ve.label.length,mt=Math.max(2,38-Xr),Q=".".repeat(mt),at=It=>en==="security"?(It.value==="autoExec"||It.value==="externalAccess")&&It.status==="ON"?Se.statusOn:Se.statusOff:It.status?.startsWith("\u2713")?Se.statusOn:It.status?.startsWith("\u26A0")?Se.statusOff:It.status==="ON"?Se.statusOn:It.status==="OFF"?Se.statusOff:Se.text;Ve.section&&Ve.section!==ce&&(ce=Ve.section,T.push(C.createElement(Ne,{key:`sec-hdr-${Ve.section}`,marginTop:T.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},Ve.section.toUpperCase()))));let Mo=ao&&Me&&(Me==="alwaysAskCommands"&&Ve.value==="alwaysAsk"||Me==="autoApproveCommands"&&Ve.value==="autoApprove"||Me==="autoDisallowCommands"&&Ve.value==="autoDisallow"),$e=Ve.value==="alwaysAsk"||Ve.value==="autoApprove"||Ve.value==="autoDisallow",Vt=Ve.value==="parserDownload";T.push(C.createElement(Ne,{key:Ve.value,flexDirection:"column"},C.createElement(Ne,{backgroundColor:ao&&!Mo?Se.highlightBg:void 0,paddingX:2},C.createElement(j,{color:ao?Se.text:Se.textDim,bold:ao},ao?"\u276F ":" ",Ve.label),!$e&&!Vt&&C.createElement(C.Fragment,null,C.createElement(j,{color:"gray"},Q),C.createElement(j,{color:at(Ve),bold:!0},Ve.value==="aiProvider"?Ve.status:`[ ${Ve.status} ]`))),$e&&!Mo&&Ve.status!=="None"&&C.createElement(Ne,{paddingX:4,marginBottom:1},C.createElement(j,{color:"gray"},"\u21B3 ",Ve.status)),Mo&&C.createElement(Ne,{flexDirection:"column",marginLeft:4,marginBottom:1},C.createElement(Ne,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},C.createElement(j,{color:"gray",bold:!0},"> "," "),C.createElement(yd,{value:se,onChange:pe,onSubmit:It=>{let Ut={...t,[Me]:It.trim(),sandboxPreset:"Custom"};m(Ut),p({systemSettings:Ut,apiTier:x,quotas:s}),re(null)}})),C.createElement(j,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),kt&&T.push(C.createElement(Ne,{key:"conflict-warning",marginTop:1,paddingX:1},C.createElement(j,{color:Se.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),T})():C.createElement(Ne,{paddingX:1,flexDirection:"column",width:"100%"},en==="exit"?C.createElement(C.Fragment,null,C.createElement(Ne,{flexDirection:"column",marginBottom:1},C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"OS"," "),C.createElement(j,{color:"gray"},"..................... "),C.createElement(j,{color:Se.text},process.env.OS||process.platform||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Computer Name"," "),C.createElement(j,{color:"gray"},".......... "),C.createElement(j,{color:Se.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Processor Count"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Se.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Node.js Version"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Se.text},"v",process.versions.node)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"V8 Version"," "),C.createElement(j,{color:"gray"},"...... ...... "),C.createElement(j,{color:Se.text},"v",process.versions.v8)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Data Directory"," "),C.createElement(j,{color:"gray"},"......... "),no===go?"":C.createElement(j,{color:Se.text},no.replaceAll(pl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(j,{color:Se.text},go.replaceAll(pl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Viewport"," "),C.createElement(j,{color:"gray"},"............... "),C.createElement(j,{color:Se.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),C.createElement(Ne,{flexDirection:"row",marginBottom:0},C.createElement(j,{color:Se.textDim},"Memory Load"," "),C.createElement(j,{color:"gray"},"............ "),C.createElement(j,{color:Se.text},de,"/",D," ",qe))),C.createElement(Ne,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(j,{color:Yt?Se.statusOn:Se.warning},Yt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(j,{color:"gray",italic:!0},po[I].desc)))),C.createElement(Ne,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},L==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":He[q]?.value==="dynamicDirAwareness"?"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 ? HELP \u2022 \u25C4/ESC to go back":"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 \u25C4/ESC to go back"),L==="categories"&&C.createElement(j,{color:"gray"},po[I].desc)))}import Qt,{useState as Bs,useEffect as Sd}from"react";import{Box as wn,Text as Zn}from"ink";import Cd from"ink-text-input";function Ds({initialData:t,onSave:m,onCancel:x,theme:y="Dark"}){let w=Je(y),[p,s]=Bs(0),[k,h]=Bs(""),[A,O]=Bs(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),W=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=W[p];Sd(()=>{let I=W[p].key;h((A[I]||"").slice(0,W[p].maxLength))},[p,A]);let v=I=>{I.length>S.maxLength?h(I.slice(0,S.maxLength)):h(I)},L=I=>{if(I.trim().toLowerCase()==="/cancel"){x();return}let _=S.key,q={...A,[_]:I.trim().slice(0,S.maxLength)};O(q),h(""),p<W.length-1?s(p+1):m(q)},N=k.length>=S.maxLength;return Qt.createElement(wn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Qt.createElement(wn,{paddingX:1,marginBottom:1},Qt.createElement(Zn,{color:w.text,bold:!0},"USER PROFILE CONFIGURATION")),Qt.createElement(wn,{paddingX:1,flexDirection:"column"},Qt.createElement(wn,null,Qt.createElement(Zn,{color:w.text,bold:!0},S.label),Qt.createElement(Cd,{value:k,onChange:v,onSubmit:L})),Qt.createElement(wn,{marginTop:1,justifyContent:"space-between"},Qt.createElement(Zn,{color:w.textMuted,italic:!0},"Step ",p+1," of ",W.length),Qt.createElement(Zn,{color:N?w.warning||"yellow":w.textMuted},"[",k.length,"/",S.maxLength,"]"))),Qt.createElement(wn,{paddingX:1,marginTop:1},Qt.createElement(Zn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import yt,{useState as ks}from"react";import{Box as Jt,Text as Uo,useInput as vd}from"ink";import Ed from"ink-text-input";var Bd=({question:t,options:m,onResolve:x,theme:y="Dark"})=>{let w=Je(y),[p,s]=ks(!1),[k,h]=ks(""),[A,O]=ks(0),W=!1,S=[],v=Array.isArray(m)&&m.length>0,L=t==="Agent has been running for a long time. Do you want to continue execution?";try{L&&v?S=[...m]:S=[...v?m:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{W=!0}vd((I,_)=>{if(!p&&((_.leftArrow||_.upArrow)&&O(q=>Math.max(0,q-1)),(_.rightArrow||_.downArrow)&&O(q=>Math.min(S.length-1,q+1)),_.return)){let q=S[A];q?.id==="CUSTOM"?s(!0):x(W?"Selected Nothing":q.label)}});let N=ot(2);return p?yt.createElement(Jt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:w.codeBg,width:"100%"},yt.createElement(Jt,{paddingX:1},yt.createElement(Uo,{color:w.text,bold:!0},"SUGGEST SOMETHING")),yt.createElement(Jt,{marginTop:1,paddingX:1},yt.createElement(Uo,{italic:!0,color:w.textMuted},"Replying to: ",t)),yt.createElement(Jt,{marginTop:1,paddingX:1,flexDirection:"row"},yt.createElement(Ed,{value:k,onChange:h,onSubmit:()=>x(k)})),yt.createElement(Jt,{marginTop:1,paddingX:1,marginBottom:1},yt.createElement(Uo,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):yt.createElement(Jt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},yt.createElement(Jt,{paddingX:1,marginBottom:1},yt.createElement(Uo,{color:"yellow",bold:!0},L?"TURN SAFETY SYSTEM: EXECUTION LIMIT":"AGENT REQUEST: ACTION REQUIRED")),yt.createElement(Jt,{paddingX:1,marginBottom:1},yt.createElement(Uo,{color:w.text},t)),yt.createElement(Jt,{flexDirection:"column",width:"100%"},S.map((I,_)=>{let q=_===A;return yt.createElement(Jt,{key:I.id,flexDirection:"column",width:"100%",backgroundColor:q?w.highlightBg:void 0,paddingX:1,marginBottom:_===S.length-1?0:1},yt.createElement(Uo,{color:q?w.text:w.textMuted,bold:q},q?"\u276F ":" ",I.label),I.description&&yt.createElement(Jt,{marginLeft:4},yt.createElement(Uo,{color:w.textMuted,italic:!0},I.description)))})),yt.createElement(Jt,{paddingX:1,marginTop:1,marginBottom:1},yt.createElement(Uo,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},wl=Bd;import zd from"gradient-string";import Pt,{useState as Is,useEffect as Dd}from"react";import{Box as bo,Text as $o,useInput as kd}from"ink";function As({onSelect:t,onDelete:m,onClose:x,theme:y="Dark"}){let w=Je(y),[p,s]=Is({}),[k,h]=Is([]),[A,O]=Is(0);Dd(()=>{(async()=>{let I=await No();s(I),h(Object.keys(I).sort((_,q)=>(I[q].updatedAt||0)-(I[_].updatedAt||0)))})()},[]),kd((N,I)=>{if(I.escape&&x(),I.upArrow&&O(_=>Math.max(0,_-1)),I.downArrow&&O(_=>Math.min(k.length-1,_+1)),I.return&&k[A]&&t(k[A]),N==="x"&&k[A]){let _=k[A];m(_).then(q=>{let ge=q||{};s(ge);let Me=Object.keys(ge).sort((re,se)=>(ge[se]?.updatedAt||0)-(ge[re]?.updatedAt||0));h(Me),O(re=>Math.max(0,Math.min(Me.length-1,re)))})}});let W=ot(2),S=15,v=0;if(k.length>S){let N=Math.floor(S/2);v=A-N,v<0?v=0:v+S>k.length&&(v=k.length-S)}let L=k.slice(v,v+S);return Pt.createElement(bo,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},Pt.createElement(bo,{paddingX:1,marginBottom:1},Pt.createElement($o,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Pt.createElement(bo,{paddingX:2,paddingY:1},Pt.createElement($o,{italic:!0,color:w.textMuted},"No saved chats found.")):Pt.createElement(bo,{flexDirection:"column",width:"100%"},v>0&&Pt.createElement(bo,{paddingX:2,marginBottom:1},Pt.createElement($o,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),L.map((N,I)=>{let _=p[N],ge=v+I===A,Me=Id(_?.updatedAt);return Pt.createElement(bo,{key:N,paddingX:1,backgroundColor:ge?w.highlightBg:void 0,width:"100%"},Pt.createElement(bo,{flexGrow:1},Pt.createElement($o,{color:ge?w.text:w.textMuted,bold:ge},ge?"\u276F ":" ",(()=>{let re=se=>(se||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return _?.name&&!_.name.startsWith("Session")?re(_.name):_?.prompt?re(_.prompt):re(_?.name)||N})(),Pt.createElement($o,{color:w.textMuted}," [",Me," \u2022 ",N,"]"))),ge&&Pt.createElement(bo,{flexShrink:0},Pt.createElement($o,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+S<k.length&&Pt.createElement(bo,{paddingX:2,marginTop:1},Pt.createElement($o,{color:w.textMuted},"\u25BC (+",k.length-(v+S)," more chats below)"))),Pt.createElement(bo,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:w.borderMuted},Pt.createElement($o,{color:w.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function Id(t){if(!t)return"N/A";let m=new Date(t);if(isNaN(m.getTime()))return"N/A";let x=k=>String(k).padStart(2,"0"),y=x(m.getMonth()+1),w=x(m.getDate()),p=x(m.getHours()),s=x(m.getMinutes());return`${y}-${w} ${p}:${s}`}import Mt,{useState as Ls,useEffect as Ad}from"react";import{Box as wo,Text as io,useInput as Ld,useStdout as Pd}from"ink";function Ps({onClose:t,theme:m="Dark"}){let x=Je(m),{stdout:y}=Pd(),w=y?.columns||80,[p,s]=Ls([]),[k,h]=Ls(0),[A,O]=Ls(!0),W=()=>{let re=br(Xn,[]);s(re);try{let pe=wr(qo,{}).systemSettings?.memory!==!1;O(pe)}catch{O(!0)}};Ad(()=>{W()},[]),Ld((re,se)=>{if(se.escape&&t(),se.upArrow&&h(pe=>Math.max(0,pe-1)),se.downArrow&&h(pe=>Math.min(p.length-1,pe+1)),re==="x"&&p.length>0){let pe=p[k].id,Be=p.filter(ve=>ve.id!==pe);vi(Xn,Be),s(Be),k>=Be.length&&Be.length>0&&h(Be.length-1)}});let S=(re,se,pe)=>{if(!re)return"";let Be=re.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),Fe=`${pe?"\u276F ":" "}${se+1}. `.length,le=pe?22:2;return Be.split(`
44
+ ---`)&&we.push({label:Rt,value:Rt,isHeader:!1,provider:st})}))}return we},[h,x,s,it]),oe=C.useMemo(()=>{if(!ae.trim())return Ee;let ce=ae.trim().toLowerCase(),T=[],U=null;for(let we of Ee)we.isHeader?U=we:(we.label.toLowerCase().includes(ce)||we.value&&we.value.toLowerCase().includes(ce))&&(U&&!T.includes(U)&&T.push(U),T.push(we));return T},[Ee,ae]);Jn(()=>{if(ee){let ce=oe.findIndex(T=>!T.isHeader);R(ce>=0?ce:0),Z(0)}},[ae]),Jn(()=>{if(ee){if(oe.length===0){R(0),Z(0);return}if(me>=oe.length||oe[me]?.isHeader){let ce=oe.findIndex(T=>!T.isHeader);R(ce>=0?ce:0)}}},[oe,ee]);let[de,Ce]=Lt(0),[D,Ue]=Lt(0),[qe,Ct]=Lt("MB"),[Yt,Hr]=Lt(!1);Jn(()=>{let ce=!1;return import("./exec_command-255QUWWX.js").then(T=>{ce||Hr(!!T.isPtyAvailable)}).catch(()=>{}),()=>{ce=!0}},[]),Jn(()=>{let ce=Md.getHeapStatistics().heap_size_limit,T=ce>=1024*1024*1024,U=T?"GB":"MB",we=T?1024*1024*1024:1024*1024;Ue(parseFloat((ce/we).toFixed(2))),Ct(U);let Xe=()=>{let kt=process.memoryUsage().rss/we,Ve=T?parseFloat(kt.toFixed(2)):Math.round(kt);Ce(Ve)};Xe();let lt=setInterval(()=>{Xe()},3e4);return()=>clearInterval(lt)},[]);let Ro=ce=>{switch(ce){case"providers":{let U=[{label:"Current Provider",value:"aiProvider",status:h}];return h==="Ollama"&&U.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),U}case"appearance":return[{label:"Theme",value:"theme",status:t.theme||"Dark"},{label:"Loading Phrases",value:"loadingPhrases",status:t.loadingPhrases!==!1?"ON":"OFF"},{label:"Progressive Rendering [EXPERIMENTAL]",value:"progressiveRendering",status:t.progressiveRendering?"ON":"OFF"},{label:"Show TPM Estimate",value:"showTPMEstimate",status:t.showTPMEstimate?"ON":"OFF"}];case"memory":return[{label:"Toggle Memory [Legacy]",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:bl(t),section:"Sandbox"},{label:"YOLO Mode",value:"autoExec",status:t.autoExec?"ON":"OFF",section:"Sandbox"},{label:"External Workspace Access",value:"externalAccess",status:t.allowExternalAccess?"ON":"OFF",section:"Sandbox"},{label:"Network Access (Terminal)",value:"networkAccess",status:t.networkAccess!==!1?"ON":"OFF",section:"Sandbox"},{label:"Always Ask Commands",value:"alwaysAsk",status:Es(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Es(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Es(t.autoDisallowCommands),section:"Sandbox"},{label:"Auto Approve Git Commits",value:"autoApproveGit",status:t.autoApproveGit?"ON":"OFF",section:"Sandbox"},{label:"Advanced Recovery [EXPERIMENTAL]",value:"advanceRollback",status:t.advanceRollback?"ON":"OFF",section:"Other"},{label:"Auto-Delete History",value:"autoDelete",status:t.autoDeleteHistory||"30d",section:"Other"},{label:"Save AppData Externally",value:"externalData",status:t.useExternalData?"ON":"OFF",section:"Other"}];case"updater":return[{label:"Auto-Update",value:"autoUpdate",status:t.autoUpdate?"ON":"OFF"},{label:"Preferred Package Manager",value:"updateManager",status:(t.updateManager||"npm")==="custom"?"Custom":(t.updateManager||"npm").toUpperCase()}];case"other":return[{label:"Sub-Agents",value:"subAgents",status:t.subAgents!==!1?"ON":"OFF"},{label:"Sub-Agent Model",value:"subAgentModel",status:t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default"},{label:"Verbose Thinking",value:"preserveThinking",status:t.preserveThinking!==!1?"ON":"OFF"},{label:"Dynamic Directory Awareness",value:"dynamicDirAwareness",status:t.dynamicDirAwareness?"ON":"OFF"},{label:"Directory Tree Design",value:"indentationTree",status:t.indentationTree!==!1?"Modern":"Classic (deprecated)"},{label:"Compact Large Tool Results",value:"compressToolResults",status:t.compressToolResults?"ON":"OFF"},{label:"Auto Truncate Results",value:"autoTruncateResults",status:t.autoTruncateResults?"ON":"OFF"},{label:"Image History for CU",value:"imageHistoryCU",status:t.imageHistoryCU||"Standard"},{label:"Context Length",value:"contextLength",status:t.contextLength||"256k"},{label:"Keep Reasoning Context",value:"keepReasoningContext",status:t.keepReasoningContext?"ON":"OFF"},{label:"Auto Exclude Metadata",value:"autoExcludeMetadata",status:t.autoExcludeMetadata?"ON":"OFF"}];default:return[]}},en=po[I].id,He=Ro(en);Td((ce,T)=>{if(ee){if(T.tab){Ae(U=>U==="search"?"list":"search");return}if(he==="search"){T.escape?We(!1):T.downArrow||T.return?Ae("list"):T.backspace||T.delete?fe(U=>U.slice(0,-1)):ce&&!T.ctrl&&!T.meta&&ce.length===1&&fe(U=>U+ce);return}if(T.upArrow)R(U=>{if(oe.length===0)return 0;let we=(U-1+oe.length)%oe.length,Xe=0;for(;oe[we]?.isHeader&&Xe<oe.length;)we=(we-1+oe.length)%oe.length,Xe++;return we});else if(T.downArrow)R(U=>{if(oe.length===0)return 0;let we=(U+1)%oe.length,Xe=0;for(;oe[we]?.isHeader&&Xe<oe.length;)we=(we+1)%oe.length,Xe++;return we});else if(T.return){let U=oe[me];U&&!U.isHeader&&(m(we=>{let Xe=U.value==="Default",lt={...we,CustomSubAgent:!Xe,SubAgentModel:U.value,SubAgentProvider:Xe?"":U.provider||""};return p({systemSettings:lt,apiTier:x,quotas:s}),lt}),We(!1))}else T.escape?We(!1):ce&&!T.ctrl&&!T.meta&&ce.length===1&&(fe(U=>U+ce),Ae("search"));return}if(Be){if(T.upArrow){let U=(Fe-1+ho.length)%ho.length;le(U)}else if(T.downArrow){let U=(Fe+1)%ho.length;le(U)}else if(T.return){let U=ho[Fe];m(we=>{let Xe={...we,theme:U};return p({systemSettings:Xe,apiTier:x,quotas:s}),Xe}),O?O():ve(!1)}else T.escape&&(O?O():ve(!1));return}if(Me){T.escape&&re(null);return}if(L==="categories")T.upArrow?_(U=>(U-1+po.length)%po.length):T.downArrow?_(U=>(U+1)%po.length):T.return||T.rightArrow?po[I].id==="exit"?y("chat"):(N("items"),ge(0)):T.escape&&y("chat");else if(L==="items"){let U=He[q];if(ce==="?"&&U?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(T.upArrow)ge(we=>(we-1+He.length)%He.length);else if(T.downArrow)ge(we=>(we+1)%He.length);else if(T.leftArrow||T.escape)N("categories");else if(T.return){let we=He[q];Zt(we)}}});let Zt=ce=>{if(ce.value==="memory")m(T=>({...T,memory:!T.memory}));else if(ce.value==="sandboxPreset"){let T=bl(t),U=["Autonomous","Balanced","Strict"],Xe=(U.indexOf(T)+1)%U.length,lt=U[Xe];m(st=>{let Ge={...st,sandboxPreset:lt};return lt==="Strict"?(Ge.autoExec=!1,Ge.allowExternalAccess=!1,Ge.networkAccess=!1,Ge.autoApproveCommands="",Ge.autoDisallowCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.alwaysAskCommands="killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall",Ge.autoApproveGit=!1):lt==="Balanced"?(Ge.autoExec=!0,Ge.allowExternalAccess=!1,Ge.networkAccess=!0,Ge.autoApproveCommands="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time",Ge.autoDisallowCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.alwaysAskCommands="killall, pkill, taskkill, Stop-Process, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, shutdown, reboot, init 0, init 6, git reset --hard, git clean -fd, npm r, npm uninstall",Ge.autoApproveGit=!1):lt==="Autonomous"&&(Ge.autoExec=!0,Ge.allowExternalAccess=!0,Ge.networkAccess=!0,Ge.autoApproveCommands="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time",Ge.autoDisallowCommands="",Ge.alwaysAskCommands="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c",Ge.autoApproveGit=!0),Ge})}else if(ce.value==="autoExec")t.autoExec?m(T=>({...T,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(ce.value==="externalAccess")t.allowExternalAccess?m(T=>({...T,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(ce.value==="networkAccess")m(T=>({...T,networkAccess:T.networkAccess===!1,sandboxPreset:"Custom"}));else if(ce.value==="alwaysAsk")re("alwaysAskCommands"),pe(t.alwaysAskCommands||"");else if(ce.value==="autoApprove")re("autoApproveCommands"),pe(t.autoApproveCommands||"");else if(ce.value==="autoApproveGit")m(T=>({...T,autoApproveGit:!T.autoApproveGit,sandboxPreset:"Custom"}));else if(ce.value==="autoDisallow")re("autoDisallowCommands"),pe(t.autoDisallowCommands||"");else if(ce.value==="ollamaEndpoint")m(T=>{let U=T.ollamaEndpoint==="Local"?"Cloud":"Local",we={...T,ollamaEndpoint:U};return p({systemSettings:we,apiTier:x,quotas:s}),we});else if(ce.value==="apiTier")y("apiTier");else if(ce.value==="aiProvider")W&&W("settings"),y("selectProvider");else if(ce.value==="advanceRollback")t.advanceRollback?m(T=>{let U={...T,advanceRollback:!1};return p({systemSettings:U,apiTier:x,quotas:s}),U}):y("advanceRollbackDanger");else if(ce.value==="autoDelete"){let T=["1d","7d","30d"],we=(T.indexOf(t.autoDeleteHistory||"30d")+1)%T.length;m(Xe=>({...Xe,autoDeleteHistory:T[we]}))}else if(ce.value==="autoUpdate")m(T=>({...T,autoUpdate:!T.autoUpdate}));else if(ce.value==="externalData")if(!t.useExternalData)w({label:"Enter absolute path for External AppData:",note:"All history, logs and secrets will be stored here. ~/.fluxflow/settings.json stays as anchor.",key:"externalDataPath",value:t.externalDataPath||""}),y("input");else{let T={...t,useExternalData:!1};m(T),p({systemSettings:T,apiTier:x,quotas:s}),k(U=>[...U,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(ce.value==="updateManager")y("updateManager");else if(ce.value==="parserDownload")y("parserDownload");else if(ce.value==="indentationTree")m(T=>{let U={...T,indentationTree:T.indentationTree===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="compressToolResults")m(T=>{let U={...T,compressToolResults:!T.compressToolResults};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="autoTruncateResults")m(T=>{let U={...T,autoTruncateResults:!T.autoTruncateResults};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="imageHistoryCU"){let T=["Low","Standard","Extended"],we=(T.indexOf(t.imageHistoryCU||"Standard")+1)%T.length;m(Xe=>{let lt={...Xe,imageHistoryCU:T[we]};return p({systemSettings:lt,apiTier:x,quotas:s}),lt})}else if(ce.value==="contextLength"){let T=["16k","32k","64k","128k","256k","512k","1M"],we=(T.indexOf(t.contextLength||"256k")+1)%T.length;m(Xe=>{let lt={...Xe,contextLength:T[we]};return p({systemSettings:lt,apiTier:x,quotas:s}),lt})}else if(ce.value==="keepReasoningContext")m(T=>{let U={...T,keepReasoningContext:!T.keepReasoningContext};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="autoExcludeMetadata")m(T=>{let U={...T,autoExcludeMetadata:!T.autoExcludeMetadata};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="subAgents")m(T=>{let U={...T,subAgents:T.subAgents===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="subAgentModel"){let T=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",U=oe.findIndex(we=>we.value===T);R(U>=0?U:0),We(!0)}else if(ce.value==="preserveThinking")m(T=>{let U={...T,preserveThinking:T.preserveThinking===!1};return cl(U.preserveThinking),p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="dynamicDirAwareness")t.dynamicDirAwareness?m(T=>{let U={...T,dynamicDirAwareness:!1};return p({systemSettings:U,apiTier:x,quotas:s}),U}):y("dynamicDirDanger");else if(ce.value==="loadingPhrases")m(T=>{let U={...T,loadingPhrases:T.loadingPhrases===!1};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="progressiveRendering")m(T=>{let U={...T,progressiveRendering:!T.progressiveRendering};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="showTPMEstimate")m(T=>{let U={...T,showTPMEstimate:!T.showTPMEstimate};return p({systemSettings:U,apiTier:x,quotas:s}),U});else if(ce.value==="theme"){let T=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",U=ho.indexOf(T);le(U>=0?U:0),be(t.theme||"Dark"),ve(!0)}},Se=Je(t.theme);if(ee){let ce=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",T=15,U=te;me<U?U=me:me>=U+T&&(U=me-T+1),U=Math.max(0,Math.min(U,Math.max(0,oe.length-T))),U!==te&&Z(U);let we=oe.slice(U,U+T);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:Se.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&C.createElement(j,{color:"gray"},me+1,"/",oe.length)),C.createElement(Ne,{borderStyle:"single",borderColor:he==="search"?Se.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(j,{color:Se.text},ae),he==="search"&&C.createElement(j,{color:Se.primary||"cyan"},"\u2588"),!ae&&he!=="search"&&C.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ne,{flexDirection:"column",flexGrow:1,height:T},we.length>0?we.map((Xe,lt)=>{let st=U+lt;if(Xe.isHeader)return C.createElement(Ne,{key:`hdr-${st}`,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},Xe.label));let Ge=me===st&&he==="list",kt=ce===Xe.value;return C.createElement(Ne,{key:`item-${Xe.value}-${st}`,paddingX:1,backgroundColor:Ge?Se.highlightBg:void 0},C.createElement(j,{color:Ge?Se.text:Se.textDim,bold:Ge},Ge?"\u276F ":" ",Xe.label,kt?C.createElement(j,{color:Se.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ne,{paddingX:1},C.createElement(j,{color:"gray",italic:!0},'No models matching "',ae,'"'))),C.createElement(Ne,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"[",he.toUpperCase()," MODE]")))}if(Be){let ce=ho[Fe],T=Je(ce);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:T.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.text,bold:!0},"Choose your color scheme:")),C.createElement(Ne,{flexDirection:"row",width:"100%",flexGrow:1},C.createElement(Ne,{flexDirection:"column",width:"30%",paddingRight:1},ho.map((U,we)=>{let Xe=Fe===we,lt=(t.theme||"Dark")===U,st=U==="Forest Sprite";return C.createElement(Ne,{key:U,paddingX:0},C.createElement(j,{color:Xe?T.text:T.textDim,bold:Xe},Xe?"> ":" ",U,st&&C.createElement(j,{color:Xe?T.success||"#52b788":"green",bold:!0}," \u2605"),lt?C.createElement(j,{color:T.primary||"cyan",italic:!0}," (saved)"):""))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:T.borderMuted,paddingX:2,paddingY:1,backgroundColor:T.cardBg},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.secondary||"cyan",bold:!0},"> ","you: "),C.createElement(j,{color:T.text},"add a greeting function")),C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:T.success||"green"}," Here's the change:")),C.createElement(Ne,{flexDirection:"column",marginLeft:2,marginBottom:1},C.createElement(j,null,C.createElement(j,{color:T.textDim},"3 "),C.createElement(j,{color:T.textDim},' import "fmt"')),C.createElement(j,{color:T.textDim},"4"),C.createElement(Ne,{backgroundColor:T.diffRemovalBg},C.createElement(j,null,C.createElement(j,{color:T.diffRemovalNum||T.diffRemovalText},"5 "),C.createElement(j,{color:T.diffRemovalPrefix||T.diffRemovalText},"- "),C.createElement(j,{color:T.diffRemovalText},"func "),C.createElement(j,{color:T.diffRemovalHighlightColor||T.diffRemovalText,backgroundColor:T.diffRemovalHighlightBg,bold:!0},"main()"),C.createElement(j,{color:T.diffRemovalText}," {"))),C.createElement(Ne,{backgroundColor:T.diffAdditionBg},C.createElement(j,null,C.createElement(j,{color:T.diffAdditionNum||T.diffAdditionText},"5 "),C.createElement(j,{color:T.diffAdditionPrefix||T.diffAdditionText},"+ "),C.createElement(j,{color:T.diffAdditionText},"func "),C.createElement(j,{color:T.diffAdditionHighlightColor||T.diffAdditionText,backgroundColor:T.diffAdditionHighlightBg,bold:!0},"greet(name string)"),C.createElement(j,{color:T.diffAdditionText}," {"))),C.createElement(Ne,{backgroundColor:T.diffAdditionBg},C.createElement(j,null,C.createElement(j,{color:T.diffAdditionNum||T.diffAdditionText},"6 "),C.createElement(j,{color:T.diffAdditionPrefix||T.diffAdditionText},"+ "),C.createElement(j,{color:T.diffAdditionText}," "),C.createElement(j,{color:T.diffAdditionHighlightColor||T.diffAdditionText,backgroundColor:T.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),C.createElement(j,{color:T.textDim},"7 }")),C.createElement(Ne,{flexDirection:"column",marginTop:1,marginBottom:1},C.createElement(j,{color:T.textDim},"\u25BE Thought Process"),C.createElement(j,{color:T.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),C.createElement(Ne,{flexDirection:"column"},C.createElement(j,null,C.createElement(j,{color:T.warning||"yellow"},"\u2699 tool: "),C.createElement(j,{color:T.text},"write_file main.go")),C.createElement(j,null,C.createElement(j,{color:T.accent||"magenta"},"\u29BF task: "),C.createElement(j,{color:T.text},"Implementing greeting")),C.createElement(j,null,C.createElement(j,{color:T.danger||"red"},"X error: "),C.createElement(j,{color:T.text},"compilation failed")),C.createElement(j,null,C.createElement(j,{color:T.warning||"yellow"},"\u26A0 warning: "),C.createElement(j,{color:T.text},"deprecation warning")),C.createElement(j,null,C.createElement(j,{color:T.info||"blue"},"\u2192 link: "),C.createElement(j,{color:T.info||"blue",underline:!0},"file:///path/to/main.go")),C.createElement(j,null,C.createElement(j,{color:T.accent||"magenta"},"\u2605 accent: "),C.createElement(j,{color:T.text},"highlighted text")),C.createElement(j,{color:T.textDim},"\xB7 dim: press Enter to continue")))),C.createElement(Ne,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(j,{color:"gray"},"Previewing: ",ho[Fe],ho[Fe]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:0,width:"100%",minHeight:32},C.createElement(Ne,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Se.borderMuted,width:"100%"},C.createElement(j,{color:Se.text,bold:!0},"SYSTEM CONFIGURATION")),C.createElement(Ne,{flexDirection:"row",width:"100%",minHeight:26},C.createElement(Ne,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:L==="categories"?Se.border:Se.borderMuted,padding:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:L==="categories"?Se.text:Se.textDim,bold:!0,underline:!0},"CATEGORIES")),po.map((ce,T)=>{let U=I===T,we=ce.id==="exit";return C.createElement(Ne,{key:ce.id,marginTop:we?15:0,backgroundColor:U?L==="categories"?Se.highlightBg:Se.cardBg:void 0,paddingX:1},C.createElement(j,{color:U&&L==="categories"?Se.text:Se.textDim,bold:U},U?"\u276F ":" ",ce.label))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:L==="items"?Se.border:Se.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:L==="items"?Se.text:Se.textDim,bold:!0,underline:!0},po[I].label.toUpperCase().includes("EXIT")?"Runtime Information":`${po[I].label} Settings`)),He.length>0?(()=>{let ce=null,T=[],U=Ve=>(Ve||"").split(",").map(Rt=>Rt.trim().toLowerCase()).filter(Boolean),we=U(t.autoApproveCommands),Xe=U(t.autoDisallowCommands),lt=U(t.alwaysAskCommands),st=[...we,...Xe,...lt],Ge=new Set(st),kt=en==="security"&&st.length!==Ge.size;return He.forEach((Ve,Rt)=>{let ao=L==="items"&&q===Rt,Xr=Ve.label.length,mt=Math.max(2,38-Xr),Q=".".repeat(mt),at=It=>en==="security"?(It.value==="autoExec"||It.value==="externalAccess")&&It.status==="ON"?Se.statusOn:Se.statusOff:It.status?.startsWith("\u2713")?Se.statusOn:It.status?.startsWith("\u26A0")?Se.statusOff:It.status==="ON"?Se.statusOn:It.status==="OFF"?Se.statusOff:Se.text;Ve.section&&Ve.section!==ce&&(ce=Ve.section,T.push(C.createElement(Ne,{key:`sec-hdr-${Ve.section}`,marginTop:T.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},Ve.section.toUpperCase()))));let Mo=ao&&Me&&(Me==="alwaysAskCommands"&&Ve.value==="alwaysAsk"||Me==="autoApproveCommands"&&Ve.value==="autoApprove"||Me==="autoDisallowCommands"&&Ve.value==="autoDisallow"),$e=Ve.value==="alwaysAsk"||Ve.value==="autoApprove"||Ve.value==="autoDisallow",Vt=Ve.value==="parserDownload";T.push(C.createElement(Ne,{key:Ve.value,flexDirection:"column"},C.createElement(Ne,{backgroundColor:ao&&!Mo?Se.highlightBg:void 0,paddingX:2},C.createElement(j,{color:ao?Se.text:Se.textDim,bold:ao},ao?"\u276F ":" ",Ve.label),!$e&&!Vt&&C.createElement(C.Fragment,null,C.createElement(j,{color:"gray"},Q),C.createElement(j,{color:at(Ve),bold:!0},Ve.value==="aiProvider"?Ve.status:`[ ${Ve.status} ]`))),$e&&!Mo&&Ve.status!=="None"&&C.createElement(Ne,{paddingX:4,marginBottom:1},C.createElement(j,{color:"gray"},"\u21B3 ",Ve.status)),Mo&&C.createElement(Ne,{flexDirection:"column",marginLeft:4,marginBottom:1},C.createElement(Ne,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},C.createElement(j,{color:"gray",bold:!0},"> "," "),C.createElement(yd,{value:se,onChange:pe,onSubmit:It=>{let Ut={...t,[Me]:It.trim(),sandboxPreset:"Custom"};m(Ut),p({systemSettings:Ut,apiTier:x,quotas:s}),re(null)}})),C.createElement(j,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),kt&&T.push(C.createElement(Ne,{key:"conflict-warning",marginTop:1,paddingX:1},C.createElement(j,{color:Se.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),T})():C.createElement(Ne,{paddingX:1,flexDirection:"column",width:"100%"},en==="exit"?C.createElement(C.Fragment,null,C.createElement(Ne,{flexDirection:"column",marginBottom:1},C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"OS"," "),C.createElement(j,{color:"gray"},"..................... "),C.createElement(j,{color:Se.text},process.env.OS||process.platform||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Computer Name"," "),C.createElement(j,{color:"gray"},".......... "),C.createElement(j,{color:Se.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Processor Count"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Se.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Node.js Version"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Se.text},"v",process.versions.node)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"V8 Version"," "),C.createElement(j,{color:"gray"},"...... ...... "),C.createElement(j,{color:Se.text},"v",process.versions.v8)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Data Directory"," "),C.createElement(j,{color:"gray"},"......... "),no===go?"":C.createElement(j,{color:Se.text},no.replaceAll(pl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(j,{color:Se.text},go.replaceAll(pl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Se.textDim},"Viewport"," "),C.createElement(j,{color:"gray"},"............... "),C.createElement(j,{color:Se.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),C.createElement(Ne,{flexDirection:"row",marginBottom:0},C.createElement(j,{color:Se.textDim},"Memory Load"," "),C.createElement(j,{color:"gray"},"............ "),C.createElement(j,{color:Se.text},de,"/",D," ",qe))),C.createElement(Ne,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(j,{color:Yt?Se.statusOn:Se.warning},Yt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(j,{color:"gray",italic:!0},po[I].desc)))),C.createElement(Ne,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},L==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":He[q]?.value==="dynamicDirAwareness"?"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 ? HELP \u2022 \u25C4/ESC to go back":"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 \u25C4/ESC to go back"),L==="categories"&&C.createElement(j,{color:"gray"},po[I].desc)))}import Qt,{useState as Bs,useEffect as Sd}from"react";import{Box as wn,Text as Zn}from"ink";import Cd from"ink-text-input";function Ds({initialData:t,onSave:m,onCancel:x,theme:y="Dark"}){let w=Je(y),[p,s]=Bs(0),[k,h]=Bs(""),[A,O]=Bs(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),W=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=W[p];Sd(()=>{let I=W[p].key;h((A[I]||"").slice(0,W[p].maxLength))},[p,A]);let v=I=>{I.length>S.maxLength?h(I.slice(0,S.maxLength)):h(I)},L=I=>{if(I.trim().toLowerCase()==="/cancel"){x();return}let _=S.key,q={...A,[_]:I.trim().slice(0,S.maxLength)};O(q),h(""),p<W.length-1?s(p+1):m(q)},N=k.length>=S.maxLength;return Qt.createElement(wn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Qt.createElement(wn,{paddingX:1,marginBottom:1},Qt.createElement(Zn,{color:w.text,bold:!0},"USER PROFILE CONFIGURATION")),Qt.createElement(wn,{paddingX:1,flexDirection:"column"},Qt.createElement(wn,null,Qt.createElement(Zn,{color:w.text,bold:!0},S.label),Qt.createElement(Cd,{value:k,onChange:v,onSubmit:L})),Qt.createElement(wn,{marginTop:1,justifyContent:"space-between"},Qt.createElement(Zn,{color:w.textMuted,italic:!0},"Step ",p+1," of ",W.length),Qt.createElement(Zn,{color:N?w.warning||"yellow":w.textMuted},"[",k.length,"/",S.maxLength,"]"))),Qt.createElement(wn,{paddingX:1,marginTop:1},Qt.createElement(Zn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import yt,{useState as ks}from"react";import{Box as Jt,Text as Uo,useInput as vd}from"ink";import Ed from"ink-text-input";var Bd=({question:t,options:m,onResolve:x,theme:y="Dark"})=>{let w=Je(y),[p,s]=ks(!1),[k,h]=ks(""),[A,O]=ks(0),W=!1,S=[],v=Array.isArray(m)&&m.length>0,L=t==="Agent has been running for a long time. Do you want to continue execution?";try{L&&v?S=[...m]:S=[...v?m:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{W=!0}vd((I,_)=>{if(!p&&((_.leftArrow||_.upArrow)&&O(q=>Math.max(0,q-1)),(_.rightArrow||_.downArrow)&&O(q=>Math.min(S.length-1,q+1)),_.return)){let q=S[A];q?.id==="CUSTOM"?s(!0):x(W?"Selected Nothing":q.label)}});let N=ot(2);return p?yt.createElement(Jt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:w.codeBg,width:"100%"},yt.createElement(Jt,{paddingX:1},yt.createElement(Uo,{color:w.text,bold:!0},"SUGGEST SOMETHING")),yt.createElement(Jt,{marginTop:1,paddingX:1},yt.createElement(Uo,{italic:!0,color:w.textMuted},"Replying to: ",t)),yt.createElement(Jt,{marginTop:1,paddingX:1,flexDirection:"row"},yt.createElement(Ed,{value:k,onChange:h,onSubmit:()=>x(k)})),yt.createElement(Jt,{marginTop:1,paddingX:1,marginBottom:1},yt.createElement(Uo,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):yt.createElement(Jt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},yt.createElement(Jt,{paddingX:1,marginBottom:1},yt.createElement(Uo,{color:"yellow",bold:!0},L?"TURN SAFETY SYSTEM: EXECUTION LIMIT":"AGENT REQUEST: ACTION REQUIRED")),yt.createElement(Jt,{paddingX:1,marginBottom:1},yt.createElement(Uo,{color:w.text},t)),yt.createElement(Jt,{flexDirection:"column",width:"100%"},S.map((I,_)=>{let q=_===A;return yt.createElement(Jt,{key:I.id,flexDirection:"column",width:"100%",backgroundColor:q?w.highlightBg:void 0,paddingX:1,marginBottom:_===S.length-1?0:1},yt.createElement(Uo,{color:q?w.text:w.textMuted,bold:q},q?"\u276F ":" ",I.label),I.description&&yt.createElement(Jt,{marginLeft:4},yt.createElement(Uo,{color:w.textMuted,italic:!0},I.description)))})),yt.createElement(Jt,{paddingX:1,marginTop:1,marginBottom:1},yt.createElement(Uo,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},wl=Bd;import zd from"gradient-string";import Pt,{useState as Is,useEffect as Dd}from"react";import{Box as bo,Text as $o,useInput as kd}from"ink";function As({onSelect:t,onDelete:m,onClose:x,theme:y="Dark"}){let w=Je(y),[p,s]=Is({}),[k,h]=Is([]),[A,O]=Is(0);Dd(()=>{(async()=>{let I=await No();s(I),h(Object.keys(I).sort((_,q)=>(I[q].updatedAt||0)-(I[_].updatedAt||0)))})()},[]),kd((N,I)=>{if(I.escape&&x(),I.upArrow&&O(_=>Math.max(0,_-1)),I.downArrow&&O(_=>Math.min(k.length-1,_+1)),I.return&&k[A]&&t(k[A]),N==="x"&&k[A]){let _=k[A];m(_).then(q=>{let ge=q||{};s(ge);let Me=Object.keys(ge).sort((re,se)=>(ge[se]?.updatedAt||0)-(ge[re]?.updatedAt||0));h(Me),O(re=>Math.max(0,Math.min(Me.length-1,re)))})}});let W=ot(2),S=15,v=0;if(k.length>S){let N=Math.floor(S/2);v=A-N,v<0?v=0:v+S>k.length&&(v=k.length-S)}let L=k.slice(v,v+S);return Pt.createElement(bo,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},Pt.createElement(bo,{paddingX:1,marginBottom:1},Pt.createElement($o,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Pt.createElement(bo,{paddingX:2,paddingY:1},Pt.createElement($o,{italic:!0,color:w.textMuted},"No saved chats found.")):Pt.createElement(bo,{flexDirection:"column",width:"100%"},v>0&&Pt.createElement(bo,{paddingX:2,marginBottom:1},Pt.createElement($o,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),L.map((N,I)=>{let _=p[N],ge=v+I===A,Me=Id(_?.updatedAt);return Pt.createElement(bo,{key:N,paddingX:1,backgroundColor:ge?w.highlightBg:void 0,width:"100%"},Pt.createElement(bo,{flexGrow:1},Pt.createElement($o,{color:ge?w.text:w.textMuted,bold:ge},ge?"\u276F ":" ",(()=>{let re=se=>(se||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return _?.name&&!_.name.startsWith("Session")?re(_.name):_?.prompt?re(_.prompt):re(_?.name)||N})(),Pt.createElement($o,{color:w.textMuted}," [",Me," \u2022 ",N,"]"))),ge&&Pt.createElement(bo,{flexShrink:0},Pt.createElement($o,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+S<k.length&&Pt.createElement(bo,{paddingX:2,marginTop:1},Pt.createElement($o,{color:w.textMuted},"\u25BC (+",k.length-(v+S)," more chats below)"))),Pt.createElement(bo,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:w.borderMuted},Pt.createElement($o,{color:w.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function Id(t){if(!t)return"N/A";let m=new Date(t);if(isNaN(m.getTime()))return"N/A";let x=k=>String(k).padStart(2,"0"),y=x(m.getMonth()+1),w=x(m.getDate()),p=x(m.getHours()),s=x(m.getMinutes());return`${y}-${w} ${p}:${s}`}import Mt,{useState as Ls,useEffect as Ad}from"react";import{Box as wo,Text as io,useInput as Ld,useStdout as Pd}from"ink";function Ps({onClose:t,theme:m="Dark"}){let x=Je(m),{stdout:y}=Pd(),w=y?.columns||80,[p,s]=Ls([]),[k,h]=Ls(0),[A,O]=Ls(!0),W=()=>{let re=br(Xn,[]);s(re);try{let pe=wr(qo,{}).systemSettings?.memory!==!1;O(pe)}catch{O(!0)}};Ad(()=>{W()},[]),Ld((re,se)=>{if(se.escape&&t(),se.upArrow&&h(pe=>Math.max(0,pe-1)),se.downArrow&&h(pe=>Math.min(p.length-1,pe+1)),re==="x"&&p.length>0){let pe=p[k].id,Be=p.filter(ve=>ve.id!==pe);vi(Xn,Be),s(Be),k>=Be.length&&Be.length>0&&h(Be.length-1)}});let S=(re,se,pe)=>{if(!re)return"";let Be=re.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),Fe=`${pe?"\u276F ":" "}${se+1}. `.length,le=pe?22:2;return Be.split(`
45
45
  `).map((be,ee)=>{let We=ee===0,me=Math.max(10,w-4-(We?Fe:3)-le),R=Math.max(10,w-4-3-le),te=be.split(/(\s+)/),Z=[],ae="";if(te.forEach(he=>{if(he.length===0)return;let Ae=Z.length===0?me:R;ae.length+he.length>Ae?ae.trim().length>0?(Z.push(ae.trimEnd()),ae=he):(Z.push(he.substring(0,Ae)),ae=he.substring(Ae)):ae+=he}),ae.trimEnd().length>0&&Z.push(ae.trimEnd()),Z.length===0)return"";let fe=Z.join(`
46
46
  `);return We?fe:" "+fe}).join(`
47
47
  `)},v=4*1024*2,L=p.reduce((re,se)=>re+(se.memory?.length||0),0),N=Math.min(100,Math.round(L/v*100)),I=12,_=Math.round(N/100*I),q="\u2588".repeat(_)+"\u2591".repeat(Math.max(0,I-_)),ge=()=>N<50?x.textMuted:N<90?x.warning:x.danger,Me=ot(2);return Mt.createElement(wo,{flexDirection:"column",borderStyle:"round",borderColor:x.borderMuted,padding:0,width:"100%"},Mt.createElement(wo,{paddingX:1,marginBottom:1,justifyContent:"space-between"},Mt.createElement(io,{color:x.text,bold:!0},"SAVED MEMORIES"),Mt.createElement(wo,null,Mt.createElement(io,{color:x.textMuted},"Vault: "),Mt.createElement(io,{color:ge()},q),Mt.createElement(io,{color:x.text,bold:!0}," ",N,"%"))),!A&&p.length>0?Mt.createElement(wo,{paddingX:2,paddingY:1},Mt.createElement(io,{italic:!0,color:x.textMuted},"Memory is currently Off...")):p.length===0?Mt.createElement(wo,{paddingX:2,paddingY:1},Mt.createElement(io,{italic:!0,color:x.textMuted},A?"Learning...":"Memory not available...")):Mt.createElement(wo,{flexDirection:"column"},p.map((re,se)=>{let pe=se===k;return Mt.createElement(wo,{key:re.id,paddingX:1,backgroundColor:pe?x.highlightBg:void 0,width:"100%"},Mt.createElement(wo,{flexGrow:1},Mt.createElement(io,{color:pe?x.text:x.textMuted,bold:pe},pe?"\u276F ":" ",se+1,". ",S(re.memory,se,pe))),pe&&Mt.createElement(wo,{flexShrink:0},Mt.createElement(io,{color:x.textMuted,dimColor:!0}," [",Mt.createElement(io,{italic:!0},re.score),"] "),Mt.createElement(io,{color:x.danger,bold:!0},"[X] WIPE ")))})),Mt.createElement(wo,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:x.borderMuted},Mt.createElement(io,{color:x.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 x wipe memory \u2022 Esc close")))}import ft,{useState as Nr,useEffect as Tl}from"react";import{Box as _o,Text as Ft}from"ink";import{spawn as yl}from"child_process";var Ml=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Od=({latest:t,current:m,settings:x,onClose:y,onUpdateSettings:w,onSuccess:p})=>{let[s,k]=Nr("initializing"),[h,A]=Nr(""),[O,W]=Nr(null),[S,v]=Nr(0);if(Tl(()=>{let L=setInterval(()=>{v(N=>(N+1)%1e3)},33);return()=>clearInterval(L)},[]),Tl(()=>{let L;return(async()=>{let I=x.updateManager||"npm";if(!x.updateManager){w();return}let _="";I==="pnpm"?_=`pnpm add -g fluxflow-cli@${t}`:I==="bun"?_=`bun add -g fluxflow-cli@${t}`:I==="yarn"?_=`yarn global add fluxflow-cli@${t}`:I==="custom"?_=x.customUpdateCommand:_=`npm install -g fluxflow-cli@${t}`,k("downloading"),A(`Running: ${_}...`);let q=process.platform==="win32",ge=re=>new Promise(se=>{let pe=q?re?"powershell.exe":"cmd.exe":process.env.SHELL||"bash",Be=q?re?["-NoProfile","-Command",_]:["/c",_]:["-c",_],ve=le=>{let be=le.toString().replace(/\x1B\[[0-?]*[ -/]*[@-~]|\x1B\][^\x07\x1B]*[\x07\x1B]|\b|\x07/g,"").replace(/\r/g,"").trim();be&&A(ee=>{let We=ee.split(`
@@ -229,7 +229,7 @@ ${g}`};P(a=>(H(a.length+1),[...a,M])),(async()=>{let a=!1,b=()=>{a||(a=!0,P(ue=>
229
229
  `).trim()}),De=[]),ke.length>0&&(Y.push({role:"system",text:ke.join(`
230
230
 
231
231
  `),...ct?{binaryPart:ct}:{}}),ke=[],ct=null),ze=!1};for(let oo=0;oo<Te.length;oo++){let ie=Te[oo],ye=ie.role==="system"&&(ie.text?.startsWith("[TOOL RESULT]")||ie.text?.startsWith("SUCCESS:")||ie.text?.startsWith("ERROR:")||ie.fullText?.startsWith("[TOOL RESULT]")||ie.fullText?.startsWith("SUCCESS:")||ie.fullText?.startsWith("ERROR:")),Oe=ie.fullText||ie.text||"",Ye=Oe.trim();if(!(!Ye&&!ie.binaryPart)){if(ye){let Qe=Ye.startsWith("[TOOL RESULT]")?Ye:`[TOOL RESULT]: ${Ye}`;ke.push(Qe),ie.binaryPart&&(ct=ie.binaryPart)}else if(ie.role==="agent"){!ze&&ke.length>0&&$t();let Qe=Oe.endsWith(`
232
- `),mo=Ye.toLowerCase().includes("tool:functions.")||Ye.toLowerCase().includes("agent:generalist."),mn=!1;for(let Hn=oo+1;Hn<Te.length;Hn++){let gn=Te[Hn];if(gn.role==="agent"){let hr=(gn.fullText||gn.text||"").trim();if(hr){mn=hr.startsWith("[");break}}}De.push(Ye),mo&&Qe&&mn?ze=!0:ze=!1}}}$t()}}let X=sl(He,Y,{profile:Mn,thinkingLevel:de,mode:v,systemSettings:xe,janitorModel:T,sessionStats:co,chatId:dt,isPlayground:!!Ee.playground,aiProvider:D,apiKey:kt,apiTier:at,wildcardTooling:Se,cols:_.columns-6,rows:30,onTokenChunk:(G,Te)=>{let De=Date.now();if(jr(De),typeof Te=="number"){Ks.current=Te;let ke=Kr.current;ke.startTime||(ke.startTime=De,ke.totalWords=0,ke.chunks=[]),ke.totalWords+=Te,ke.chunks||(ke.chunks=[]),ke.chunks.push({time:De,words:Te});let ze=De-400;if(ke.chunks=ke.chunks.filter($t=>$t.time>=ze),ke.chunks.length>0){let $t=ke.chunks.reduce((ye,Oe)=>ye+Oe.words,0),oo=ke.chunks[0].time,ie=Math.max(.4,(De-oo)/1e3);ke.wps=Math.round($t/ie*10)/10}}},onVisualFeedback:G=>{P(Te=>[...Te.map(ke=>ke.isStreaming?{...ke,isStreaming:!1}:ke),{id:"visual-"+Date.now()+"-"+Math.random().toString(36).substring(2,9),role:"system",text:G,isVisualFeedback:!0}])},onSubagentUpdate:()=>{ea(el.map(G=>({...G})))},onExecStart:G=>{fe(),he(),ni(G),an("")},onExecChunk:G=>{an(Te=>Te+G)},onExecEnd:()=>{P(G=>{if(!dr.current)return G;let Te=os.current||"",De=Gi(Te),ke=`[TERMINAL_RECORD]
232
+ `),mo=Ye.toLowerCase().includes("tool:")||Ye.toLowerCase().includes("agent:generalist."),mn=!1;for(let Hn=oo+1;Hn<Te.length;Hn++){let gn=Te[Hn];if(gn.role==="agent"){let hr=(gn.fullText||gn.text||"").trim();if(hr){mn=hr.startsWith("[");break}}}De.push(Ye),mo&&Qe&&mn?ze=!0:ze=!1}}}$t()}}let X=sl(He,Y,{profile:Mn,thinkingLevel:de,mode:v,systemSettings:xe,janitorModel:T,sessionStats:co,chatId:dt,isPlayground:!!Ee.playground,aiProvider:D,apiKey:kt,apiTier:at,wildcardTooling:Se,cols:_.columns-6,rows:30,onTokenChunk:(G,Te)=>{let De=Date.now();if(jr(De),typeof Te=="number"){Ks.current=Te;let ke=Kr.current;ke.startTime||(ke.startTime=De,ke.totalWords=0,ke.chunks=[]),ke.totalWords+=Te,ke.chunks||(ke.chunks=[]),ke.chunks.push({time:De,words:Te});let ze=De-400;if(ke.chunks=ke.chunks.filter($t=>$t.time>=ze),ke.chunks.length>0){let $t=ke.chunks.reduce((ye,Oe)=>ye+Oe.words,0),oo=ke.chunks[0].time,ie=Math.max(.4,(De-oo)/1e3);ke.wps=Math.round($t/ie*10)/10}}},onVisualFeedback:G=>{P(Te=>[...Te.map(ke=>ke.isStreaming?{...ke,isStreaming:!1}:ke),{id:"visual-"+Date.now()+"-"+Math.random().toString(36).substring(2,9),role:"system",text:G,isVisualFeedback:!0}])},onSubagentUpdate:()=>{ea(el.map(G=>({...G})))},onExecStart:G=>{fe(),he(),ni(G),an("")},onExecChunk:G=>{an(Te=>Te+G)},onExecEnd:()=>{P(G=>{if(!dr.current)return G;let Te=os.current||"",De=Gi(Te),ke=`[TERMINAL_RECORD]
233
233
  COMMAND: ${dr.current}
234
234
  PTY: ${xn}
235
235
  OUTPUT: ${De.replace(/\n{3,}/g,`
@@ -240,7 +240,7 @@ Selection: ${ct}`,isAskRecord:!0}];return H(oo.length),oo}),De(ct))}}),Q("ask")}
240
240
  ${Ye}`,color:"cyan",isSteeringHint:!0,hintType:Oe?"QUESTION":"STEERING HINT",hintContent:Ye}]}),as(null),Co.current=null)}G.content?.includes("[start]")||rs(G.content),G.content?.includes("[start]")?(clearInterval(Un),Fn(0),Un=setInterval(()=>{Fn(ie=>ie+1)},1e3)):G.content?.includes("[end]")&&(Fn(0),clearInterval(Un)),Qo()&&Br(G.content),G.content==="Request Cancelled"&&(fe(),he(),b());continue}if(G.type==="status_history"){rs(G.content),Qo()&&Br(G.content),P(ie=>[...ie,{id:"condense-"+Date.now(),role:"system",text:`\u2726 ${G.content}
241
241
  \u2800`,isMeta:!0}]);continue}if(G.type==="summary_injected"){P(ie=>ie.map(ye=>ye.id===G.content.id?{...ye,fullText:G.content.text}:ye));continue}if(G.type==="spinner"){ia(G.content);continue}if(G.type==="model_update"){ua(G.content);continue}if(G.type==="turn_reset"){if(fe(),he(),_e=null,Le=null,$=!1,Pe=!1,et=!1,tt=!1,Bt=!1,P(ie=>{let ye=ie.map(Oe=>{if(Oe.isStreaming){let Ye=Oe.text?Et(Oe.text):Oe.text,Qe=Oe.fullText?Et(Oe.fullText):Oe.fullText;return{...Oe,isStreaming:!1,text:Ye,fullText:Qe}}return Oe});return H(ye.length),ye}),vo(),global.gc){for(let ie=0;ie<2;ie++)global.gc(),await new Promise(ye=>setImmediate(ye));m.current=Date.now()}continue}if(G.type==="interactive_turn_finished"){is(!1),Fn(0),clearInterval(Un),Qo()&&Br(null),B=!0,vo(),xe?.autoTruncateResults&&P(ie=>{let ye=ie.map(Oe=>{let Ye=Oe.fullText||Oe.text||"";return!Ye.startsWith("[TOOL RESULT]:")||Oe.toolName&&String(Oe.toolName).toLowerCase()==="search_keyword"||Ye.startsWith("[TOOL RESULT]: ERROR")||Ye.startsWith("[TOOL RESULT]: DENIED")||Ye.startsWith("[TOOL RESULT]: SUCCESS: Goal")||Ye.includes("...Results Truncated by System on User Command")||Ye.startsWith("[TOOL RESULT]: Skill:")||Ye.includes("Skill: [")||Ye.startsWith("[TOOL RESULT]: DOCs:")||Ye.includes("DOCs: [")?Oe:{...Oe,fullText:"[TOOL RESULT]: ...Results Truncated by System on User Command"}});return hn(dt,null,ye),H(ye.length),ye}),ol({profile:Mn,thinkingLevel:de,mode:v,janitorModel:T,chatId:dt,systemSettings:xe,sessionStats:co,aiProvider:D,apiKey:kt},G.data.agentText,G.data.fullAgentTextRaw,G.data.history,{onMemoryUpdated:()=>P(ie=>{let ye=[...ie];return ye.length>0&&(ye[ye.length-1].memoryUpdated=!0),ye}),onBackgroundIncrement:()=>Gl(ie=>ie+1)});continue}if(G.type==="visual_feedback"){fe(),he(),P(ie=>{let ye=[...ie,{id:"feedback-"+Date.now()+"-"+Math.random().toString(36).substring(2,9),role:"system",text:Et(G.content),isVisualFeedback:!0}];return H(ye.length),ye});continue}if(G.type==="exec_start"){fe(),he();continue}if(G.type==="liveTokens"){Go({tokens:G.content});continue}if(G.type==="usage"){let ie=G.content.totalTokenCount||0,ye=G.content.cachedContentTokenCount||0,Oe=G.content.candidatesTokenCount||0,Ye=Math.max(0,ie-Oe);Go({tokens:ie}),Js(Qe=>Qe+ie),Ye>0&&Zs(Qe=>Qe+Ye),ye>0&&Rs(Qe=>Qe+ye),Oe>0&&ei(Qe=>Qe+Oe),zs(Qe=>Qe+1);continue}if(G.type==="tool_time"){Ql(ie=>ie+G.content);continue}if(G.type==="tool_result"){if(he(),_e=null,Le=null,$=!1,Pe=!1,et=!1,tt=!1,Bt=!1,ut=0,gt=null,P(ie=>{let ye=[...ie,{id:"tool-"+Date.now()+"-"+Math.random().toString(36).substring(2,7),role:"system",text:Et(G.content),fullText:Et(G.aiContent),binaryPart:G.binaryPart,toolName:G.toolName}];return H(ye.length),ye}),G.toolName==="update_file"&&G.aiContent){let ie=G.aiContent.split(`
242
242
  `),ye=0,Oe=0,Ye=!1;for(let Qe of ie){if(Qe.includes("[DIFF_START]")){Ye=!0;continue}if(Qe.includes("[DIFF_END]")){Ye=!1;continue}Ye&&(/^\+\d+/.test(Qe)?ye++:/^\-\d+/.test(Qe)&&Oe++)}zo("linesAdded",ye),zo("linesRemoved",Oe)}else if(G.toolName==="write_file"&&G.aiContent){let ie=G.aiContent.match(/- Stats: \[(\d+) lines/),ye=ie?parseInt(ie[1]):0,Oe=0;if(G.aiContent.includes("Old File contents:")){let Ye=G.aiContent.split(`
243
- `),Qe=!1;for(let mo of Ye){if(mo.includes("Old File contents:")){Qe=!0;continue}Qe&&(mo.trim()===""?Qe=!1:/^\d+ \|/.test(mo)&&Oe++)}}zo("linesAdded",ye),zo("linesRemoved",Oe)}continue}let Te=G.content;if(G.type==="text"&&Te.includes("Request Cancelled")){if(global.gc){for(let ie=0;ie<3;ie++)global.gc(),await new Promise(ye=>setImmediate(ye));m.current=Date.now()}continue}let De=Te.toLowerCase();if(Te.includes("```")&&(Pe=!Pe),(De.includes("tool:functions.")||De.includes("agent:generalist."))&&(et=!0,ut=0,gt=null,(Te.includes("[tool:functions.")||Te.includes("[agent:generalist."))&&(ut=0)),et){for(let ie=0;ie<Te.length;ie++){let ye=Te[ie];!gt&&(ye==="'"||ye==='"'||ye==="`")?gt=ye:gt&&ye===gt&&Te[ie-1]!=="\\"&&(gt=null),gt||(ye==="("||ye==="["?ut++:(ye===")"||ye==="]")&&ut--)}ut<=0&&!gt&&(et=!1)}let ke=/^\s*(?:<(think|thought|thoughts)[^>]*>|<\|channel>thought|\[(think|thought|thoughts)\])/i,ct=(ie,ye)=>{let Oe=!1;for(let Ye=0;Ye<ye;Ye++)ie[Ye]==="`"&&(Oe=!Oe);return Oe},ze=ie=>{let ye=/(?:<\/(think|thought|thoughts)>|<channel\|>|\[\/(think|thought|thoughts)\])/gi,Oe;for(;(Oe=ye.exec(ie))!==null;)if(!ct(ie,Oe.index))return{index:Oe.index,length:Oe[0].length};return{index:-1,length:0}},$t=ee.current?.role==="agent"&&ee.current.text||"",oo=!Bt&&$t.trim().length===0;if(!$&&oo&&(ke.test(Te)||ke.test($t+Te))){let ie=ke.test(Te)?Te:$t+Te,ye=ie.match(ke),Oe=ye.index,Ye=ye[0].length,Qe=ie.substring(Oe+Ye);fe(),ee.current=null,$=!0,Bt=!0,_e="think-"+Date.now(),ee.current={id:_e,role:"think",text:"",isStreaming:!0,startTime:Date.now()};let mo=ze(Qe);if(mo.index!==-1){let Hn=Qe.substring(0,mo.index).replace(/^\r?\n+/,"").replace(/\r?\n+$/,""),gn=Qe.substring(mo.index+mo.length);ee.current.text=Et(Hn);let hr=ee.current.startTime||Date.now();ee.current.duration=Date.now()-hr,he(),$=!1,Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:"",isStreaming:!0},gn&&Ze(gn)}else{let mn=Qe.replace(/^\r?\n+/,"");mn&&Ze(mn)}continue}if(!$&&!Bt&&Te.trim().length>0&&(Bt=!0),$&&ee.current?.role==="think"){fe();let ie=ee.current.text+Te,ye=ze(ie);if(ye.index!==-1){let Oe=ie.substring(0,ye.index),Ye=ie.substring(ye.index+ye.length);ee.current.text=Et(Oe);let Qe=ee.current.startTime||Date.now();ee.current.duration=Date.now()-Qe,he(),$=!1,Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:"",isStreaming:!0},Ye&&Ze(Ye)}else Ze(Te);continue}else if(!$){let ie=Te.toLowerCase();!tt&&(ie.includes("tool:functions.")||ie.includes("agent:generalist."))&&(tt=!0),!ee.current||ee.current.role!=="agent"?(Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:Et(Te),isStreaming:!0},te()):Ze(Te)}}let Po=Date.now();zl(G=>G+(Po-F))}catch(ue){P(Y=>(H(Y.length+1),[...Y,{id:"error-"+Date.now(),role:"system",text:`\u274C ERROR: ${ue.message}`}]))}finally{let ue=Date.now()-F;if(ee.current&&(ee.current.workedDuration=ue),ae.current&&(await it(),clearInterval(ae.current),ae.current=null),is(!1),rs(null),Fn(0),clearInterval(Un),he(),ls.current&&b(),vo(),global.gc)try{for(let Y=0;Y<3;Y++)global.gc(),await new Promise(V=>setImmediate(V));m.current=Date.now()}catch{}if(B||process.stdout.isTTY&&(process.stdout.write("\x1B]0;FluxFlow | Idle\x07"),process.stdout.write("\x1B]633;P;TerminalTitle=FluxFlow | Idle\x07")),Co.current){ds(Co.current),as(null);let Y=Co.current;Co.current=null,P(V=>{let K=[...V],X=K.reverse().find($=>$.text?.includes("[STEERING HINT: QUEUED]")||$.text?.includes("[QUESTION: QUEUED]"));return X&&(X.text.includes("[STEERING HINT: QUEUED]")?X.text=X.text.replace("[STEERING HINT: QUEUED]","[STEERING HINT: FINISHED_TURN]"):X.text.includes("[QUESTION: QUEUED]")&&(X.text=X.text.replace("[QUESTION: QUEUED]","[QUESTION: FINISHED_TURN]"))),K.reverse()}),Q("resolution")}P(Y=>{let V=Date.now()-F,K=!1,X=[...Y].reverse().map(Le=>{let Pe=Le.isStreaming?{...Le,isStreaming:!1}:Le;return Pe.text&&(Pe.text=(" "+Pe.text).slice(1)),!K&&Pe.role==="agent"&&(K=!0,Pe={...Pe,workedDuration:V}),Pe}).reverse();if(!X.some(Le=>Le.role==="agent"&&Le.text?.trim().length>0)){let Le=[...X].reverse().find(Pe=>Pe.role==="think"&&Pe.text?.trim().length>0);Le&&X.push({id:"agent-fallback-"+Date.now(),role:"agent",text:Le.text,isStreaming:!1,workedDuration:V})}let _e=X.filter(Le=>!String(Le.id).startsWith("welcome")&&(!Le.isMeta||Le.text&&Le.text.includes("Request Cancelled")));return hn(dt,null,_e),H(X.length),X})}})()}h(""),S(!1)}},je=yn(()=>{if(k.startsWith("/")&&!re){let g=k.split(" "),M=g[g.length-1].toLowerCase();if(g.length===1){let a=M.startsWith("/")?M.slice(1):M;return Mi.filter(b=>(b.cmd.startsWith("/")?b.cmd.slice(1):b.cmd).toLowerCase().includes(a))}let u=Mi;for(let a=0;a<g.length-1;a++){let b=g[a].toLowerCase(),B=u.find(F=>F.cmd.toLowerCase()===b);if(B&&B.subs)u=B.subs;else return[]}return u.filter(a=>a.cmd.toLowerCase().includes(M))}let n=k.split(" "),o=n[n.length-1],d=o&&o.startsWith("\\@");if((o&&o.startsWith("@")||d)&&!re){let g=o.indexOf("#"),M=g!==-1,u=d?2:1,a=M?o.substring(u,g).toLowerCase():o.slice(u).toLowerCase(),b=M?o.substring(g):"";return oc(process.cwd()).filter(z=>z.name.toLowerCase().includes(a)).map(z=>{let ue=z.relativePath.replace(/\\/g,"/"),Y=ue.startsWith(".")?ue:"./"+ue;return{cmd:(d?"\\@":"@")+"["+Y+b+"]",desc:z.relativePath}})}return[]},[k,re]);nt(()=>{let n=0;for(;n<je.length;){let o=je[n],d=o?.cmd||o||"";if(typeof d=="string"&&d.trimStart().startsWith("---"))n++;else break}Me(n<je.length?n:0)},[je]);let[fr,xr]=J(0),Ci=Ke(0);nt(()=>{let n=Ci.current>0,o=je.length>0;if(Ci.current=je.length,!o){xr(0);return}if(!n){xr(1);return}xr(je.length)},[je]),nt(()=>{if(fr>0&&fr<je.length){let n=setTimeout(()=>{xr(o=>Math.min(o+1,je.length))},5);return()=>clearTimeout(n)}},[fr,je.length]),nt(()=>{if(mt!=="providerBudgetSelect")return;let n=["Google","DeepSeek","Mistral","NVIDIA","OpenRouter","Ollama","CrofAI","InferX","SenseNova","AIHubMix","Poolside","ExpLabs","TokenHarbor","APInex"],o=$e.providerBudgets||{},d=n.reduce((f,g)=>(f[g]=!!(o[g]&&(o[g].agentLimit||o[g].tokenLimit||o[g].monthlyTokenLimit)),f),{});Ys(d),tr(0)},[mt]),nt(()=>{if(mt!=="providerBudgetFlow")return;let n={},o=$e.providerBudgets||{};for(let d of on){let f=o[d]||{};n[d]={agentLimit:er(f.agentLimit),tokenLimit:er(f.tokenLimit),monthlyTokenLimit:er(f.monthlyTokenLimit)}}Vr(n),So(0)},[mt,on]);let hc=({label:n,isSelected:o})=>{let d=n==="Cancel"||n==="Back"||n.toLowerCase().includes("exit")||n.toLowerCase().includes("back");return e.createElement(c,{marginTop:d?1:0,backgroundColor:o?"#2a2a2a":void 0,paddingX:1,width:"100%"},e.createElement(l,{color:o?"white":"gray",bold:o},o?"\u276F ":" ",n))},un=(n,o,d,f=10,g=2,M=9)=>{let u=_r(d),a=!u&&d>0?Math.min(100,o/d*100):0,b=Math.round(a),B=Math.round(b/100*f),F="\u2588".repeat(B)+"\u2591".repeat(Math.max(0,f-B)),z=i.success||"green";b>=40&&b<=80?z=i.warning||"yellow":b>80&&(z=i.danger||"red");let ue=n.toLowerCase().includes("token")||n.toLowerCase().includes("daily")||n.toLowerCase().includes("monthly"),Y=u?"\u221E":ue?ht(d):d,V=ue?ht(o):o,K;return u||a===0?K="0%":a>0&&a<1?K="<1%":K=`${b}%`,e.createElement(c,{flexDirection:"row",paddingLeft:g,key:n},e.createElement(c,{width:M},e.createElement(l,{color:i.textMuted},n,": ")),e.createElement(l,{color:z},F),e.createElement(l,{color:i.textMuted}," ",K," (",V,"/",Y,")"))},xa=()=>{switch(mt){case"settings":return e.createElement(Or,{systemSettings:xe,setSystemSettings:At,apiTier:at,setActiveView:Q,setInputConfig:Ut,saveSettings:Ot,quotas:$e,setMessages:P,aiProvider:D,setProviderReturnView:Gr});case"theme":return e.createElement(Or,{systemSettings:xe,setSystemSettings:At,apiTier:at,setActiveView:Q,setInputConfig:Ut,saveSettings:Ot,quotas:$e,setMessages:P,aiProvider:D,initialSelectingTheme:!0,onCloseTheme:()=>Q("chat"),setProviderReturnView:Gr});case"selectProvider":return e.createElement(bt,{title:"SELECT AI PROVIDER",searchable:!0,items:[{label:"Google",value:"Google"},{label:"Nvidia",value:"NVIDIA"},{label:"DeepSeek",value:"DeepSeek"},{label:"InferX",value:"InferX"},{label:"SenseNova",value:"SenseNova"},{label:"Poolside",value:"Poolside"},{label:"Experiential Labs",value:"ExpLabs"},{label:"Token Harbor",value:"TokenHarbor"},{label:"APInex",value:"APInex"},...process.env.ENABLE_9ROUTER==="true"||process.env.ENABLE_9ROUTER===!0?[{label:"9router",value:"9router"}]:[],{label:"Ollama",value:"Ollama"},{label:"AIHubMix [EXPERIMENTAL]",value:"AIHubMix"},{label:"Mistral [EXPERIMENTAL]",value:"Mistral"},{label:"OpenRouter [EXPERIMENTAL]",value:"OpenRouter"},{label:"Back",value:tn}],theme:xe.theme,onSelect:async n=>{if(n.value===tn||n.value==="settings"||n.value==="Back"){Q(tn);return}let o=n.value,d=await fn(o),f="";if(o==="9router"){let g=await $s();g.ok||(f=`
243
+ `),Qe=!1;for(let mo of Ye){if(mo.includes("Old File contents:")){Qe=!0;continue}Qe&&(mo.trim()===""?Qe=!1:/^\d+ \|/.test(mo)&&Oe++)}}zo("linesAdded",ye),zo("linesRemoved",Oe)}continue}let Te=G.content;if(G.type==="text"&&Te.includes("Request Cancelled")){if(global.gc){for(let ie=0;ie<3;ie++)global.gc(),await new Promise(ye=>setImmediate(ye));m.current=Date.now()}continue}let De=Te.toLowerCase();if(Te.includes("```")&&(Pe=!Pe),(De.includes("tool:")||De.includes("agent:generalist."))&&(et=!0,ut=0,gt=null,(Te.includes("[tool:")||Te.includes("[agent:generalist."))&&(ut=0)),et){for(let ie=0;ie<Te.length;ie++){let ye=Te[ie];!gt&&(ye==="'"||ye==='"'||ye==="`")?gt=ye:gt&&ye===gt&&Te[ie-1]!=="\\"&&(gt=null),gt||(ye==="("||ye==="["?ut++:(ye===")"||ye==="]")&&ut--)}ut<=0&&!gt&&(et=!1)}let ke=/^\s*(?:<(think|thought|thoughts)[^>]*>|<\|channel>thought|\[(think|thought|thoughts)\])/i,ct=(ie,ye)=>{let Oe=!1;for(let Ye=0;Ye<ye;Ye++)ie[Ye]==="`"&&(Oe=!Oe);return Oe},ze=ie=>{let ye=/(?:<\/(think|thought|thoughts)>|<channel\|>|\[\/(think|thought|thoughts)\])/gi,Oe;for(;(Oe=ye.exec(ie))!==null;)if(!ct(ie,Oe.index))return{index:Oe.index,length:Oe[0].length};return{index:-1,length:0}},$t=ee.current?.role==="agent"&&ee.current.text||"",oo=!Bt&&$t.trim().length===0;if(!$&&oo&&(ke.test(Te)||ke.test($t+Te))){let ie=ke.test(Te)?Te:$t+Te,ye=ie.match(ke),Oe=ye.index,Ye=ye[0].length,Qe=ie.substring(Oe+Ye);fe(),ee.current=null,$=!0,Bt=!0,_e="think-"+Date.now(),ee.current={id:_e,role:"think",text:"",isStreaming:!0,startTime:Date.now()};let mo=ze(Qe);if(mo.index!==-1){let Hn=Qe.substring(0,mo.index).replace(/^\r?\n+/,"").replace(/\r?\n+$/,""),gn=Qe.substring(mo.index+mo.length);ee.current.text=Et(Hn);let hr=ee.current.startTime||Date.now();ee.current.duration=Date.now()-hr,he(),$=!1,Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:"",isStreaming:!0},gn&&Ze(gn)}else{let mn=Qe.replace(/^\r?\n+/,"");mn&&Ze(mn)}continue}if(!$&&!Bt&&Te.trim().length>0&&(Bt=!0),$&&ee.current?.role==="think"){fe();let ie=ee.current.text+Te,ye=ze(ie);if(ye.index!==-1){let Oe=ie.substring(0,ye.index),Ye=ie.substring(ye.index+ye.length);ee.current.text=Et(Oe);let Qe=ee.current.startTime||Date.now();ee.current.duration=Date.now()-Qe,he(),$=!1,Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:"",isStreaming:!0},Ye&&Ze(Ye)}else Ze(Te);continue}else if(!$){let ie=Te.toLowerCase();!tt&&(ie.includes("tool:")||ie.includes("agent:generalist."))&&(tt=!0),!ee.current||ee.current.role!=="agent"?(Le="agent-"+Date.now(),ee.current={id:Le,role:"agent",text:Et(Te),isStreaming:!0},te()):Ze(Te)}}let Po=Date.now();zl(G=>G+(Po-F))}catch(ue){P(Y=>(H(Y.length+1),[...Y,{id:"error-"+Date.now(),role:"system",text:`\u274C ERROR: ${ue.message}`}]))}finally{let ue=Date.now()-F;if(ee.current&&(ee.current.workedDuration=ue),ae.current&&(await it(),clearInterval(ae.current),ae.current=null),is(!1),rs(null),Fn(0),clearInterval(Un),he(),ls.current&&b(),vo(),global.gc)try{for(let Y=0;Y<3;Y++)global.gc(),await new Promise(V=>setImmediate(V));m.current=Date.now()}catch{}if(B||process.stdout.isTTY&&(process.stdout.write("\x1B]0;FluxFlow | Idle\x07"),process.stdout.write("\x1B]633;P;TerminalTitle=FluxFlow | Idle\x07")),Co.current){ds(Co.current),as(null);let Y=Co.current;Co.current=null,P(V=>{let K=[...V],X=K.reverse().find($=>$.text?.includes("[STEERING HINT: QUEUED]")||$.text?.includes("[QUESTION: QUEUED]"));return X&&(X.text.includes("[STEERING HINT: QUEUED]")?X.text=X.text.replace("[STEERING HINT: QUEUED]","[STEERING HINT: FINISHED_TURN]"):X.text.includes("[QUESTION: QUEUED]")&&(X.text=X.text.replace("[QUESTION: QUEUED]","[QUESTION: FINISHED_TURN]"))),K.reverse()}),Q("resolution")}P(Y=>{let V=Date.now()-F,K=!1,X=[...Y].reverse().map(Le=>{let Pe=Le.isStreaming?{...Le,isStreaming:!1}:Le;return Pe.text&&(Pe.text=(" "+Pe.text).slice(1)),!K&&Pe.role==="agent"&&(K=!0,Pe={...Pe,workedDuration:V}),Pe}).reverse();if(!X.some(Le=>Le.role==="agent"&&Le.text?.trim().length>0)){let Le=[...X].reverse().find(Pe=>Pe.role==="think"&&Pe.text?.trim().length>0);Le&&X.push({id:"agent-fallback-"+Date.now(),role:"agent",text:Le.text,isStreaming:!1,workedDuration:V})}let _e=X.filter(Le=>!String(Le.id).startsWith("welcome")&&(!Le.isMeta||Le.text&&Le.text.includes("Request Cancelled")));return hn(dt,null,_e),H(X.length),X})}})()}h(""),S(!1)}},je=yn(()=>{if(k.startsWith("/")&&!re){let g=k.split(" "),M=g[g.length-1].toLowerCase();if(g.length===1){let a=M.startsWith("/")?M.slice(1):M;return Mi.filter(b=>(b.cmd.startsWith("/")?b.cmd.slice(1):b.cmd).toLowerCase().includes(a))}let u=Mi;for(let a=0;a<g.length-1;a++){let b=g[a].toLowerCase(),B=u.find(F=>F.cmd.toLowerCase()===b);if(B&&B.subs)u=B.subs;else return[]}return u.filter(a=>a.cmd.toLowerCase().includes(M))}let n=k.split(" "),o=n[n.length-1],d=o&&o.startsWith("\\@");if((o&&o.startsWith("@")||d)&&!re){let g=o.indexOf("#"),M=g!==-1,u=d?2:1,a=M?o.substring(u,g).toLowerCase():o.slice(u).toLowerCase(),b=M?o.substring(g):"";return oc(process.cwd()).filter(z=>z.name.toLowerCase().includes(a)).map(z=>{let ue=z.relativePath.replace(/\\/g,"/"),Y=ue.startsWith(".")?ue:"./"+ue;return{cmd:(d?"\\@":"@")+"["+Y+b+"]",desc:z.relativePath}})}return[]},[k,re]);nt(()=>{let n=0;for(;n<je.length;){let o=je[n],d=o?.cmd||o||"";if(typeof d=="string"&&d.trimStart().startsWith("---"))n++;else break}Me(n<je.length?n:0)},[je]);let[fr,xr]=J(0),Ci=Ke(0);nt(()=>{let n=Ci.current>0,o=je.length>0;if(Ci.current=je.length,!o){xr(0);return}if(!n){xr(1);return}xr(je.length)},[je]),nt(()=>{if(fr>0&&fr<je.length){let n=setTimeout(()=>{xr(o=>Math.min(o+1,je.length))},5);return()=>clearTimeout(n)}},[fr,je.length]),nt(()=>{if(mt!=="providerBudgetSelect")return;let n=["Google","DeepSeek","Mistral","NVIDIA","OpenRouter","Ollama","CrofAI","InferX","SenseNova","AIHubMix","Poolside","ExpLabs","TokenHarbor","APInex"],o=$e.providerBudgets||{},d=n.reduce((f,g)=>(f[g]=!!(o[g]&&(o[g].agentLimit||o[g].tokenLimit||o[g].monthlyTokenLimit)),f),{});Ys(d),tr(0)},[mt]),nt(()=>{if(mt!=="providerBudgetFlow")return;let n={},o=$e.providerBudgets||{};for(let d of on){let f=o[d]||{};n[d]={agentLimit:er(f.agentLimit),tokenLimit:er(f.tokenLimit),monthlyTokenLimit:er(f.monthlyTokenLimit)}}Vr(n),So(0)},[mt,on]);let hc=({label:n,isSelected:o})=>{let d=n==="Cancel"||n==="Back"||n.toLowerCase().includes("exit")||n.toLowerCase().includes("back");return e.createElement(c,{marginTop:d?1:0,backgroundColor:o?"#2a2a2a":void 0,paddingX:1,width:"100%"},e.createElement(l,{color:o?"white":"gray",bold:o},o?"\u276F ":" ",n))},un=(n,o,d,f=10,g=2,M=9)=>{let u=_r(d),a=!u&&d>0?Math.min(100,o/d*100):0,b=Math.round(a),B=Math.round(b/100*f),F="\u2588".repeat(B)+"\u2591".repeat(Math.max(0,f-B)),z=i.success||"green";b>=40&&b<=80?z=i.warning||"yellow":b>80&&(z=i.danger||"red");let ue=n.toLowerCase().includes("token")||n.toLowerCase().includes("daily")||n.toLowerCase().includes("monthly"),Y=u?"\u221E":ue?ht(d):d,V=ue?ht(o):o,K;return u||a===0?K="0%":a>0&&a<1?K="<1%":K=`${b}%`,e.createElement(c,{flexDirection:"row",paddingLeft:g,key:n},e.createElement(c,{width:M},e.createElement(l,{color:i.textMuted},n,": ")),e.createElement(l,{color:z},F),e.createElement(l,{color:i.textMuted}," ",K," (",V,"/",Y,")"))},xa=()=>{switch(mt){case"settings":return e.createElement(Or,{systemSettings:xe,setSystemSettings:At,apiTier:at,setActiveView:Q,setInputConfig:Ut,saveSettings:Ot,quotas:$e,setMessages:P,aiProvider:D,setProviderReturnView:Gr});case"theme":return e.createElement(Or,{systemSettings:xe,setSystemSettings:At,apiTier:at,setActiveView:Q,setInputConfig:Ut,saveSettings:Ot,quotas:$e,setMessages:P,aiProvider:D,initialSelectingTheme:!0,onCloseTheme:()=>Q("chat"),setProviderReturnView:Gr});case"selectProvider":return e.createElement(bt,{title:"SELECT AI PROVIDER",searchable:!0,items:[{label:"Google",value:"Google"},{label:"Nvidia",value:"NVIDIA"},{label:"DeepSeek",value:"DeepSeek"},{label:"InferX",value:"InferX"},{label:"SenseNova",value:"SenseNova"},{label:"Poolside",value:"Poolside"},{label:"Experiential Labs",value:"ExpLabs"},{label:"Token Harbor",value:"TokenHarbor"},{label:"APInex",value:"APInex"},...process.env.ENABLE_9ROUTER==="true"||process.env.ENABLE_9ROUTER===!0?[{label:"9router",value:"9router"}]:[],{label:"Ollama",value:"Ollama"},{label:"AIHubMix [EXPERIMENTAL]",value:"AIHubMix"},{label:"Mistral [EXPERIMENTAL]",value:"Mistral"},{label:"OpenRouter [EXPERIMENTAL]",value:"OpenRouter"},{label:"Back",value:tn}],theme:xe.theme,onSelect:async n=>{if(n.value===tn||n.value==="settings"||n.value==="Back"){Q(tn);return}let o=n.value,d=await fn(o),f="";if(o==="9router"){let g=await $s();g.ok||(f=`
244
244
 
245
245
  \x1B[33m\u2726 WARNING: 9router does not appear to be running on ${g.url}.\x1B[39m
246
246
  \u2800\u2800\x1B[2m\u2514\u2500\x1B[22m To start 9router: \x1B[36mnpx 9router\x1B[39m or \x1B[36mnpm i -g 9router && 9router\x1B[39m`)}if(d){Ue(o),Ve(d),Vn(d,{aiProvider:o,onIDEApproval:cr});let g=($e.providerTiers||{})[o]||"Free",M=fo(o,g);Zt(M),Mo(g),o==="NVIDIA"&&process.env.NVIDIA_BASE_URL||o==="Ollama"||o==="InferX"||o==="SenseNova"||o==="Poolside"||o==="9router"||o==="ExpLabs"||o==="TokenHarbor"||o==="APInex"?(At(u=>({...u,memory:!1})),Ot({aiProvider:o,activeModel:M,apiTier:g,quotas:$e,systemSettings:{...xe,memory:!1}})):Ot({aiProvider:o,activeModel:M,apiTier:g,quotas:$e}),P(u=>[...u,{role:"system",text:`\u2726 Switched to ${o} (cached)!${M?`