fluxflow-cli 4.16.5 → 4.16.7

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.
@@ -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-DGX2HZVD.js";import"./chunk-VCF6JVQV.js";import"./chunk-56EJGQU3.js";import"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import"./chunk-HNUV7OHA.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-SHTF7RHG.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-PTGEDU2G.js";import"./chunk-VCF6JVQV.js";import"./chunk-56EJGQU3.js";import"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import"./chunk-HNUV7OHA.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-YO4FM7K6.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 ol,B as nl,a as _i,b as qe,c as Re,d as wr,e as Gt,f as Gi,g as Wi,h as Tr,i as Yi,j as xs,k as Qo,l as Sr,u as Ri,x as el,y as Gn,z as tl}from"./chunk-C6GGJJHJ.js";import"./chunk-VCF6JVQV.js";import{a as Zi}from"./chunk-56EJGQU3.js";import{b as zi,c as Qi,d as Ji}from"./chunk-UAHJEAVX.js";import{a as No,b as fn,d as yr,e as fs,f as Vi,g as ji,i as Ki,j as Mr}from"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import{a as vt,b as pt,d as Fi,e as ft,f as Ui,j as ms,k as gs,l as _n,n as $i,o as Co}from"./chunk-HNUV7OHA.js";import{a as Xn}from"./chunk-KFM2OZWJ.js";import{b as mn,c as as,k as Ai}from"./chunk-72RYQ5W7.js";import{b as us}from"./chunk-AZGFDR6K.js";import{a as Li,b as Pi,c as pr,d as br,f as Ct,g as zo,h as cs,l as Oi}from"./chunk-WKHYRBBK.js";import{a as Ci,b as vi,c as Ei,d as Bi,e as Di,f as ki,g as hr,i as Oo,j as go,k as Ii,l as ds,m as Ot}from"./chunk-AAPXJU65.js";import{c as fr,d as Si,e as xr}from"./chunk-SIINYZWE.js";import{e as Ni}from"./chunk-YNU56P2H.js";import{b as Hi,d as gn,e as qt,f as Xi}from"./chunk-4VUJ7ITH.js";import"./chunk-SHTF7RHG.js";import{a as qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as mo,d as gr,e as ls,j as $n}from"./chunk-FDNLMLIM.js";import{a as Hn}from"./chunk-Y5JU726N.js";import $s from"os";import e,{useState as Q,useEffect as et,useRef as je,useMemo as wn}from"react";import{Box as c,Text as l,useInput as Vd,useStdout as jd,Static as Kd}from"ink";import qd from"ink-spinner";import Qe from"fs-extra";import Mt from"path";import{exec as To}from"child_process";import{fileURLToPath as zd}from"url";import Ht,{useState as Cr,useEffect as hs,useMemo as Wn,useCallback as ha,useRef as vo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,g){return t.replace(/\t/g," ".repeat(g))}function vr(t){return t==null?"":t.replace(/\r\n/g,`
1
+ import{A as tl,B as ol,C as nl,a as _i,b as qe,c as Re,d as wr,e as Gt,f as Gi,g as Wi,h as Tr,i as Yi,j as xs,k as Qo,l as Sr,v as Ri,y as el,z as Gn}from"./chunk-DGX2HZVD.js";import"./chunk-VCF6JVQV.js";import{a as Zi}from"./chunk-56EJGQU3.js";import{b as zi,c as Qi,d as Ji}from"./chunk-UAHJEAVX.js";import{a as No,b as fn,d as yr,e as fs,f as Vi,g as ji,i as Ki,j as Mr}from"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import{a as vt,b as pt,d as Fi,e as ft,f as Ui,j as ms,k as gs,l as _n,n as $i,o as Co}from"./chunk-HNUV7OHA.js";import{a as Xn}from"./chunk-KFM2OZWJ.js";import{b as mn,c as as,k as Ai}from"./chunk-72RYQ5W7.js";import{b as us}from"./chunk-AZGFDR6K.js";import{a as Li,b as Pi,c as pr,d as br,f as Ct,g as zo,h as cs,l as Oi}from"./chunk-WKHYRBBK.js";import{a as Ci,b as vi,c as Ei,d as Bi,e as Di,f as ki,g as hr,i as Oo,j as go,k as Ii,l as ds,m as Ot}from"./chunk-AAPXJU65.js";import{c as fr,d as Si,e as xr}from"./chunk-SIINYZWE.js";import{e as Ni}from"./chunk-YNU56P2H.js";import{b as Hi,d as gn,e as qt,f as Xi}from"./chunk-4VUJ7ITH.js";import"./chunk-SHTF7RHG.js";import{a as qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as mo,d as gr,e as ls,j as $n}from"./chunk-FDNLMLIM.js";import{a as Hn}from"./chunk-Y5JU726N.js";import $s from"os";import e,{useState as Q,useEffect as et,useRef as je,useMemo as wn}from"react";import{Box as c,Text as l,useInput as Vd,useStdout as jd,Static as Kd}from"ink";import qd from"ink-spinner";import Qe from"fs-extra";import Mt from"path";import{exec as To}from"child_process";import{fileURLToPath as zd}from"url";import Ht,{useState as Cr,useEffect as hs,useMemo as Wn,useCallback as ha,useRef as vo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,g){return t.replace(/\t/g," ".repeat(g))}function vr(t){return t==null?"":t.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `)}function Jo(t,g,h){let y=t,w=[...g].sort((s,k)=>s.start-k.start),b=0;for(let s of w){let k=s.start-b,f=vr(s.text).split(`
4
4
  `).length,I=s.text.length,L=(f>3?`[Pasted ${f} lines]`:`[Pasted ${I} chars]`).length,X=k+L;if(t<=k)break;if(t<X){y=s.end;break}else{let S=s.text.length-L;y+=S,b+=S}}return Math.min(y,h.length)}function ps(t,g,h,y,w=[]){let b=(t||"").slice(0,g),s=y(b).length,k=y(t||""),f=[...w].sort((O,D)=>D.start-O.start);for(let O of f){let D=y(t.slice(0,O.start)).length,U=y(O.text),oe=D+U.length,xe=vr(O.text).split(`
@@ -1,4 +1,4 @@
1
- import{A as ol,B as nl,a as _i,b as qe,c as Re,d as wr,e as Gt,f as Gi,g as Wi,h as Tr,i as Yi,j as xs,k as Qo,l as Sr,u as Ri,x as el,y as Gn,z as tl}from"./chunk-2XZBVZAF.js";import"./chunk-VCF6JVQV.js";import{a as Zi}from"./chunk-56EJGQU3.js";import{b as zi,c as Qi,d as Ji}from"./chunk-UAHJEAVX.js";import{a as No,b as fn,d as yr,e as fs,f as Vi,g as ji,i as Ki,j as Mr}from"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import{a as vt,b as pt,d as Fi,e as ft,f as Ui,j as ms,k as gs,l as _n,n as $i,o as Co}from"./chunk-HNUV7OHA.js";import{a as Xn}from"./chunk-KFM2OZWJ.js";import{b as mn,c as as,k as Ai}from"./chunk-72RYQ5W7.js";import{b as us}from"./chunk-AZGFDR6K.js";import{a as Li,b as Pi,c as pr,d as br,f as Ct,g as zo,h as cs,l as Oi}from"./chunk-WKHYRBBK.js";import{a as Ci,b as vi,c as Ei,d as Bi,e as Di,f as ki,g as hr,i as Oo,j as go,k as Ii,l as ds,m as Ot}from"./chunk-AAPXJU65.js";import{c as fr,d as Si,e as xr}from"./chunk-SIINYZWE.js";import{e as Ni}from"./chunk-YNU56P2H.js";import{b as Hi,d as gn,e as qt,f as Xi}from"./chunk-Q2DA5ED2.js";import"./chunk-POB3KUHE.js";import{a as qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as mo,d as gr,e as ls,j as $n}from"./chunk-FDNLMLIM.js";import{a as Hn}from"./chunk-Y5JU726N.js";import $s from"os";import e,{useState as Q,useEffect as et,useRef as je,useMemo as wn}from"react";import{Box as c,Text as l,useInput as Vd,useStdout as jd,Static as Kd}from"ink";import qd from"ink-spinner";import Qe from"fs-extra";import Mt from"path";import{exec as To}from"child_process";import{fileURLToPath as zd}from"url";import Ht,{useState as Cr,useEffect as hs,useMemo as Wn,useCallback as ha,useRef as vo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,g){return t.replace(/\t/g," ".repeat(g))}function vr(t){return t==null?"":t.replace(/\r\n/g,`
1
+ import{A as tl,B as ol,C as nl,a as _i,b as qe,c as Re,d as wr,e as Gt,f as Gi,g as Wi,h as Tr,i as Yi,j as xs,k as Qo,l as Sr,v as Ri,y as el,z as Gn}from"./chunk-PTGEDU2G.js";import"./chunk-VCF6JVQV.js";import{a as Zi}from"./chunk-56EJGQU3.js";import{b as zi,c as Qi,d as Ji}from"./chunk-UAHJEAVX.js";import{a as No,b as fn,d as yr,e as fs,f as Vi,g as ji,i as Ki,j as Mr}from"./chunk-KRRJNFBF.js";import"./chunk-ZYJYKSIA.js";import{a as vt,b as pt,d as Fi,e as ft,f as Ui,j as ms,k as gs,l as _n,n as $i,o as Co}from"./chunk-HNUV7OHA.js";import{a as Xn}from"./chunk-KFM2OZWJ.js";import{b as mn,c as as,k as Ai}from"./chunk-72RYQ5W7.js";import{b as us}from"./chunk-AZGFDR6K.js";import{a as Li,b as Pi,c as pr,d as br,f as Ct,g as zo,h as cs,l as Oi}from"./chunk-WKHYRBBK.js";import{a as Ci,b as vi,c as Ei,d as Bi,e as Di,f as ki,g as hr,i as Oo,j as go,k as Ii,l as ds,m as Ot}from"./chunk-AAPXJU65.js";import{c as fr,d as Si,e as xr}from"./chunk-SIINYZWE.js";import{e as Ni}from"./chunk-YNU56P2H.js";import{b as Hi,d as gn,e as qt,f as Xi}from"./chunk-BEY5AR26.js";import"./chunk-YO4FM7K6.js";import{a as qi}from"./chunk-A73NNVCZ.js";import{a as no,b as qo,c as mo,d as gr,e as ls,j as $n}from"./chunk-FDNLMLIM.js";import{a as Hn}from"./chunk-Y5JU726N.js";import $s from"os";import e,{useState as Q,useEffect as et,useRef as je,useMemo as wn}from"react";import{Box as c,Text as l,useInput as Vd,useStdout as jd,Static as Kd}from"ink";import qd from"ink-spinner";import Qe from"fs-extra";import Mt from"path";import{exec as To}from"child_process";import{fileURLToPath as zd}from"url";import Ht,{useState as Cr,useEffect as hs,useMemo as Wn,useCallback as ha,useRef as vo}from"react";import{Box as pa,Text as ro,useInput as ba}from"ink";function wa(t,g){return t.replace(/\t/g," ".repeat(g))}function vr(t){return t==null?"":t.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `)}function Jo(t,g,h){let y=t,w=[...g].sort((s,k)=>s.start-k.start),b=0;for(let s of w){let k=s.start-b,f=vr(s.text).split(`
4
4
  `).length,I=s.text.length,L=(f>3?`[Pasted ${f} lines]`:`[Pasted ${I} chars]`).length,X=k+L;if(t<=k)break;if(t<X){y=s.end;break}else{let S=s.text.length-L;y+=S,b+=S}}return Math.min(y,h.length)}function ps(t,g,h,y,w=[]){let b=(t||"").slice(0,g),s=y(b).length,k=y(t||""),f=[...w].sort((O,D)=>D.start-O.start);for(let O of f){let D=y(t.slice(0,O.start)).length,U=y(O.text),oe=D+U.length,xe=vr(O.text).split(`
@@ -39,7 +39,7 @@ import{A as ol,B as nl,a as _i,b as qe,c as Re,d as wr,e as Gt,f as Gi,g as Wi,h
39
39
  `),terminalWidth:g,theme:b}));if(f==="diff-line"){let{isFirstLine:S,isLastLine:v}=t,A=(O=!1)=>r.createElement(E,{backgroundColor:s.codeBg,paddingX:1,width:g,marginBottom:O?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(te,null," ")));return r.createElement(E,{flexDirection:"column"},S&&A(!1),r.createElement(ul,{line:I,pairContent:t.pairContent,parentText:void 0,columns:g,theme:b}),v&&A(!0))}if(f==="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(te,null," ")),r.createElement(E,{flexDirection:"row",...S},r.createElement(te,{color:"gray",bold:!0},"\u25B6_ ",(I||"TEXT").toUpperCase())))}if(f==="code-line"){let{lineNum:S,lang:v}=t,A=g-12,D=pt(I,Math.max(10,A)).split(`
40
40
  `);return r.createElement(E,{flexDirection:"column",width:"100%"},D.map((U,oe)=>r.createElement(E,{key:oe,flexDirection:"row",borderColor:s.codeBorder,paddingLeft:2,width:"100%"},r.createElement(E,{width:5,flexShrink:0},r.createElement(te,{color:"gray",dimColor:!0},oe===0?String(S).padStart(4," ")+" ":" ")),r.createElement(E,{flexGrow:1},Nt(U,v,s.text)))))}if(f==="code-fence-close")return r.createElement(E,{flexDirection:"row",paddingLeft:2,marginBottom:1,width:"100%"},r.createElement(te,null," "));if(f==="write-header")return r.createElement(E,{flexDirection:"column",paddingX:1,width:g},r.createElement(hn,{text:I,columns:g,theme:b}));if(f==="write-line"){let{gutterWidth:S,lineNum:v,isFirstLine:A,isLastLine:O,extension:D,wrappedLines:U}=t,oe=(xe=!1)=>r.createElement(E,{flexDirection:"row",width:g,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:s.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:s.codeBg,marginBottom:xe?1:0},r.createElement(E,{width:S+2,flexShrink:0},r.createElement(te,null," ".repeat(S+2))),r.createElement(E,{flexGrow:1},r.createElement(te,null," ")));return r.createElement(E,{flexDirection:"column"},A&&oe(!1),r.createElement(E,{flexDirection:"row",width:g,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(te,{color:"gray",dimColor:!0},String(v).padStart(S," ")," ")),r.createElement(E,{flexGrow:1,flexDirection:"column"},(U||[I]).map((xe,ve)=>r.createElement(E,{key:ve},Nt(xe,D,s.text))))),O&&oe(!0))}return f==="write-footer"?r.createElement(E,{flexDirection:"column",paddingX:1,width:g,marginTop:1,marginBottom:1},r.createElement(hn,{text:I,columns:g,theme:b})):f==="worked-duration"?r.createElement(E,{marginTop:1,marginBottom:2,paddingX:1,width:"100%"},r.createElement(te,{color:s.textMuted},"["),r.createElement(te,{color:s.textMuted},"Worked for ",r.createElement(te,{bold:!0,color:s.text},Ts(X))),r.createElement(te,{color:s.textMuted},"]")):null}),Xc=r.memo(({messages:t,showFullThinking:g,columns:h=80,aiProvider:y,version:w,theme:b="Dark"})=>r.createElement(E,{flexDirection:"column",width:"100%"},t.map((s,k)=>r.createElement(ml,{key:s.id||k,msg:s,showFullThinking:g,columns:h,aiProvider:y,version:w,theme:b}))));import xt from"react";import{Box as Fo,Text as fo}from"ink";import{useState as Vn,useEffect as jn,useRef as kr}from"react";var Kn=null;function gl(){Kn&&Kn()}var fd=t=>{if(t<=370)return"#00a564";if(t>=5e3)return"#ff0000";let g=[{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 h=0;h<g.length-1;h++){let y=g[h],w=g[h+1];if(t>=y.t&&t<=w.t){let b=(t-y.t)/(w.t-y.t);b=b*b*(3-2*b);let s=Math.round(y.r+(w.r-y.r)*b),k=Math.round(y.g+(w.g-y.g)*b),f=Math.round(y.b+(w.b-y.b)*b);return`#${((1<<24)+(s<<16)+(k<<8)+f).toString(16).slice(1)}`}}return"#ff0000"},xd=xt.memo(({mode:t,thinkingLevel:g,tokens:h="0.0k",tokensTotal:y="0.0k",cachedTokens:w=0,promptTokens:b=0,chatId:s="NEW-SESSION",isMemoryEnabled:k=!0,apiTier:f="Free",aiProvider:I="Google",activeModel:L="",isProcessing:X=!1,lastChunkTime:S=0,theme:v="Dark",wps:A=0,showTPMEstimate:O=!1})=>{let D=qe(v),U="",[oe,xe]=Vn(0),[ve,ne]=Vn(0),[le,Me]=Vn("MB"),[ke,ge]=Vn("green"),[we,J]=Vn(0),Te=kr([]),ue=kr(370),R=kr([]),_e=kr(S);jn(()=>{_e.current=S},[S]),jn(()=>{if(!X){R.current=[];return}if(A>0){let Z=R.current;Z.push(A),Z.length>3&&Z.shift()}},[X,A,S]),jn(()=>{if(!X){J(0);return}let Z=setInterval(()=>{let ae=_e.current,re=ae>0?Date.now()-ae:0;if(ae>0&&re>=1e3)R.current=[],J(0);else if(ae>0&&re>500){R.current.length>0&&R.current.shift();let se=R.current;if(se.length>0){let fe=se.reduce((ee,Ce)=>ee+Ce,0);J(Math.round(fe/se.length))}else J(0)}else{let se=R.current;if(se.length>0){let fe=se.reduce((ee,Ce)=>ee+Ce,0);J(Math.round(fe/se.length))}else A>0&&J(Math.round(A))}},750);return()=>clearInterval(Z)},[X]),jn(()=>{if(!X){Te.current=[];return}if(S>0){let re=Te.current;(re.length===0||re[re.length-1]!==S)&&(re.push(S),re.length>10&&re.shift())}let Z=()=>{if(!S){ge("#00a564");return}let re=Te.current,se=0;if(re.length>1){let ie=0;for(let pe=1;pe<re.length;pe++)ie+=re[pe]-re[pe-1];se=ie/(re.length-1)}let fe=Date.now()-S,Ce=fe>=2500,nt=!Ce&&se>0?Math.min(fe,se*3):fe,at=Math.max(se,nt),Ie=Ce?.4:.2;ue.current=ue.current*(1-Ie)+at*Ie,ge(fd(ue.current))};Z();let ae=setInterval(Z,100);return()=>clearInterval(ae)},[X,S]);let me=()=>{let Z=process.memoryUsage(),ae=Z.heapTotal/(1024*1024)>=1024,re=ae?"GB":"MB",se=(fe,ee)=>{let Ce=fe/(1048576*(ee?1024:1));return ee?parseFloat(Ce.toFixed(2)):Math.round(Ce)};Me(re),ne(se(Z.heapTotal,ae)),xe(se(Z.heapUsed,ae))};return jn(()=>{Kn=me,me();let Z=setInterval(()=>{me()},6e4);return()=>{clearInterval(Z),Kn===me&&(Kn=null)}},[]),xt.createElement(Fo,{flexDirection:"row",justifyContent:"space-between",paddingX:1,width:"100%"},xt.createElement(Fo,null,xt.createElement(Fo,{marginRight:1},xt.createElement(fo,{color:D.textMuted},t.toLowerCase()==="flow"?"Studio":t.toLowerCase()==="icu"?"Computer Use":t.toLowerCase()==="flux"?"Workspace":"Omni")),xt.createElement(fo,{color:D.textMuted,dimColor:!0},"\u2503 "),xt.createElement(Fo,null,xt.createElement(fo,{color:D.text,italic:!0},Ui(process.cwd(),35)))),xt.createElement(Fo,null,X?xt.createElement(Fo,null,xt.createElement(fo,{color:ke},"\u25CF"),O&&xt.createElement(xt.Fragment,null,xt.createElement(fo,{color:D.textMuted,bold:!0}," ",we," tps"),xt.createElement(fo,{color:D.textMuted,dimColor:!0}," \u2503"))):null,h>0&&xt.createElement(xt.Fragment,null,xt.createElement(Fo,{marginX:1},xt.createElement(fo,{color:D.text},ft(y),(()=>{let Z=typeof b=="number"?b:0,ae=typeof w=="number"?w:0,re=Z>0?ae/Z*100:0;return re<1?null:xt.createElement(fo,{color:D.success||"green",dimColor:!0}," ",re.toFixed(0),"%")})())),xt.createElement(fo,{color:D.textMuted,dimColor:!0},"\u2503")),xt.createElement(Fo,{marginLeft:1},xt.createElement(fo,{color:D.textMuted,bold:!0},oe," ",le))))}),fl=xd;import tt,{useState as ys,useMemo as hd,useEffect as pd}from"react";import{Box as Wt,Text as zt,useInput as bd}from"ink";import wd from"ink-select-input";var Td=({label:t,isSelected:g,theme:h="Dark"})=>{let y=qe(h),w=t==="Cancel"||t==="Back"||t.toLowerCase().includes("exit")||t.toLowerCase().includes("back");return tt.createElement(Wt,{marginTop:w?1:0,backgroundColor:g?y.highlightBg:void 0,paddingX:1,width:"100%"},tt.createElement(zt,{color:g?y.text:y.textMuted,bold:g},g?"\u276F ":" ",t))};function ht({title:t,subtitle:g,items:h=[],onSelect:y,theme:w="Dark",searchable:b=!1}){let s=qe(w),[k,f]=ys(""),[I,L]=ys(0),[X,S]=ys("list"),v=hd(()=>{if(!b||!k.trim())return h;let A=k.toLowerCase().trim();return h.filter(O=>O.label&&O.label.toLowerCase().includes(A))},[h,k,b]);return pd(()=>{L(0)},[k]),bd((A,O)=>{if(b){if(O.upArrow){S("list"),L(D=>v.length>0?D>0?D-1:v.length-1:0);return}if(O.downArrow){S("list"),L(D=>v.length>0&&D<v.length-1?D+1:0);return}if(O.return){v.length>0&&v[I]&&y(v[I]);return}if(O.escape){if(k)f(""),S("list"),L(0);else{let D=h.find(U=>U.value==="Back"||U.label==="Back"||U.value==="Cancel"||U.label==="Cancel");D&&y(D)}return}if(O.backspace||O.delete){S("search"),f(D=>D.slice(0,-1));return}if(A&&!O.ctrl&&!O.meta&&!O.tab){S("search"),f(D=>D+A);return}}},{isActive:b}),b?tt.createElement(Wt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&tt.createElement(Wt,{paddingX:1,paddingY:0,marginBottom:0},tt.createElement(zt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),g&&tt.createElement(Wt,{paddingX:1,marginBottom:0},tt.createElement(zt,{color:s.textMuted,italic:!0}," ",g)),tt.createElement(Wt,{paddingX:1,marginTop:1,marginBottom:1,flexDirection:"row"},tt.createElement(zt,{color:X==="search"?s.primary||"cyan":s.textMuted,bold:X==="search"},"\u{1F50D} Search:"),tt.createElement(zt,{color:s.text,bold:!0}," ",k),X==="search"?tt.createElement(zt,{color:s.primary||"cyan"},"\u2588"):k?null:tt.createElement(zt,{color:s.textMuted,italic:!0}," (type to search...)")),tt.createElement(Wt,{flexDirection:"column",width:"100%"},v.length===0?tt.createElement(Wt,{paddingX:1,marginY:0},tt.createElement(zt,{color:s.warning||"yellow",italic:!0}," No matching items found")):v.map((A,O)=>{let D=O===I,U=A.label==="Cancel"||A.label==="Back"||A.label.toLowerCase().includes("exit")||A.label.toLowerCase().includes("back");return tt.createElement(Wt,{key:A.value??A.label??O,marginTop:U?1:0,backgroundColor:D?s.highlightBg:void 0,paddingX:1,width:"100%"},tt.createElement(zt,{color:D?s.text:s.textMuted,bold:D},D?"\u276F ":" ",A.label))})),tt.createElement(Wt,{paddingX:1,marginTop:1},tt.createElement(zt,{color:s.textMuted,italic:!0},X==="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)"))):tt.createElement(Wt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&tt.createElement(Wt,{paddingX:1,paddingY:0,marginBottom:g?0:1},tt.createElement(zt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),g&&tt.createElement(Wt,{paddingX:1,marginBottom:1},tt.createElement(zt,{color:s.textMuted,italic:!0}," ",g)),tt.createElement(Wt,{flexDirection:"column",width:"100%"},tt.createElement(wd,{items:h,onSelect:y,itemComponent:A=>tt.createElement(Td,{...A,theme:w}),indicatorComponent:()=>null})),tt.createElement(Wt,{paddingX:1,marginTop:1},tt.createElement(zt,{color:s.textMuted,italic:!0},"(Arrows to select \u2022 Enter to confirm)")))}import C,{useState as Lt,useEffect as qn}from"react";import{Box as Ne,Text as j,useInput as yd}from"ink";import Md from"ink-text-input";import Sd from"v8";import xl from"os";var xo=[...Object.keys(_i),"Mystery"],ho=[{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"}],hl=t=>{let g=t.autoApproveCommands||"",h=t.autoDisallowCommands||"",y=t.alwaysAskCommands||"",w=t.autoExec===!1&&t.allowExternalAccess===!1&&t.networkAccess===!1&&g===""&&h==="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,b=t.autoExec===!0&&t.allowExternalAccess===!1&&t.networkAccess!==!1&&g==="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"&&h==="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&&g==="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"&&h===""&&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":b?"Balanced":s?"Autonomous":t.sandboxPreset||"Custom"},Ms=t=>!t||t.trim()===""?"None":t.length>40?t.substring(0,40)+"...":t;function Ir({systemSettings:t,setSystemSettings:g,apiTier:h,setActiveView:y,setInputConfig:w,saveSettings:b,quotas:s,setMessages:k,aiProvider:f,initialSelectingTheme:I=!1,onCloseTheme:L=null,setProviderReturnView:X=null}){let S=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",v=xo.indexOf(S),[A,O]=Lt("categories"),[D,U]=Lt(0),[oe,xe]=Lt(0),[ve,ne]=Lt(null),[le,Me]=Lt(""),[ke,ge]=Lt(I),[we,J]=Lt(v>=0?v:0),[Te,ue]=Lt(t.theme||"Dark"),[R,_e]=Lt(!1),[me,Z]=Lt(0),[ae,re]=Lt(0),[se,fe]=Lt(""),[ee,Ce]=Lt("list"),[nt,at]=Lt({});qn(()=>{(async()=>{let T=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],$={};for(let ye of T)try{await mn(ye)&&($[ye]=!0)}catch{}at($)})()},[]);let Ie=C.useMemo(()=>{let de=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],$=!!(process.env.SUBAGENT_MODEL&&process.env.SUBAGENT_MODEL.trim())?`ENV (${process.env.SUBAGENT_MODEL.trim()})`:"ENV",ye=[{label:"Default (use the current model)",value:"Default",isHeader:!1},{label:$,value:"ENV",isHeader:!1}],He=s?.providerTiers?.[f]||h||"Free",rt=Oo(f,He)||[];rt.length>0&&(ye.push({label:`\u2500\u2500 ${f.toUpperCase()}${He!=="Free"?` (${He})`:""} \u2500\u2500`,isHeader:!0}),rt.forEach(ot=>{let Xe=typeof ot=="string"?ot:ot.cmd||ot.name||ot.id||String(ot);Xe&&!Xe.trim().startsWith("---")&&!Xe.startsWith(`
41
41
  ---`)&&ye.push({label:Xe,value:Xe,isHeader:!1,provider:f})}));for(let ot of de)if(ot!==f&&nt[ot]){let Xe=s?.providerTiers?.[ot]||"Free",kt=Oo(ot,Xe)||[];kt.length>0&&(ye.push({label:`\u2500\u2500 ${ot.toUpperCase()}${Xe!=="Free"?` (${Xe})`:""} \u2500\u2500`,isHeader:!0}),kt.forEach(We=>{let eo=typeof We=="string"?We:We.cmd||We.name||We.id||String(We);eo&&!eo.trim().startsWith("---")&&!eo.startsWith(`
42
- ---`)&&ye.push({label:eo,value:eo,isHeader:!1,provider:ot})}))}return ye},[f,h,s,nt]),ie=C.useMemo(()=>{if(!se.trim())return Ie;let de=se.trim().toLowerCase(),T=[],$=null;for(let ye of Ie)ye.isHeader?$=ye:(ye.label.toLowerCase().includes(de)||ye.value&&ye.value.toLowerCase().includes(de))&&($&&!T.includes($)&&T.push($),T.push(ye));return T},[Ie,se]);qn(()=>{if(R){let de=ie.findIndex(T=>!T.isHeader);Z(de>=0?de:0),re(0)}},[se]),qn(()=>{if(R){if(ie.length===0){Z(0),re(0);return}if(me>=ie.length||ie[me]?.isHeader){let de=ie.findIndex(T=>!T.isHeader);Z(de>=0?de:0)}}},[ie,R]);let[pe,Ge]=Lt(0),[F,Dt]=Lt(0),[gt,Ut]=Lt("MB"),[Vt,Fr]=Lt(!1);qn(()=>{let de=!1;return import("./exec_command-GJFLZQRS.js").then(T=>{de||Fr(!!T.isPtyAvailable)}).catch(()=>{}),()=>{de=!0}},[]),qn(()=>{let de=Sd.getHeapStatistics().heap_size_limit,T=de>=1024*1024*1024,$=T?"GB":"MB",ye=T?1024*1024*1024:1024*1024;Dt(parseFloat((de/ye).toFixed(2))),Ut($);let He=()=>{let kt=process.memoryUsage().rss/ye,We=T?parseFloat(kt.toFixed(2)):Math.round(kt);Ge(We)};He();let rt=setInterval(()=>{He()},3e4);return()=>clearInterval(rt)},[]);let Ro=de=>{switch(de){case"providers":{let $=[{label:"Current Provider",value:"aiProvider",status:f}];return f==="Ollama"&&$.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),$}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:hl(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:Ms(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Ms(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Ms(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=ho[D].id,Fe=Ro(en);yd((de,T)=>{if(R){if(T.tab){Ce($=>$==="search"?"list":"search");return}if(ee==="search"){T.escape?_e(!1):T.downArrow||T.return?Ce("list"):T.backspace||T.delete?fe($=>$.slice(0,-1)):de&&!T.ctrl&&!T.meta&&de.length===1&&fe($=>$+de);return}if(T.upArrow)Z($=>{if(ie.length===0)return 0;let ye=($-1+ie.length)%ie.length,He=0;for(;ie[ye]?.isHeader&&He<ie.length;)ye=(ye-1+ie.length)%ie.length,He++;return ye});else if(T.downArrow)Z($=>{if(ie.length===0)return 0;let ye=($+1)%ie.length,He=0;for(;ie[ye]?.isHeader&&He<ie.length;)ye=(ye+1)%ie.length,He++;return ye});else if(T.return){let $=ie[me];$&&!$.isHeader&&(g(ye=>{let He=$.value==="Default",rt={...ye,CustomSubAgent:!He,SubAgentModel:$.value,SubAgentProvider:He?"":$.provider||""};return b({systemSettings:rt,apiTier:h,quotas:s}),rt}),_e(!1))}else T.escape?_e(!1):de&&!T.ctrl&&!T.meta&&de.length===1&&(fe($=>$+de),Ce("search"));return}if(ke){if(T.upArrow){let $=(we-1+xo.length)%xo.length;J($)}else if(T.downArrow){let $=(we+1)%xo.length;J($)}else if(T.return){let $=xo[we];g(ye=>{let He={...ye,theme:$};return b({systemSettings:He,apiTier:h,quotas:s}),He}),L?L():ge(!1)}else T.escape&&(L?L():ge(!1));return}if(ve){T.escape&&ne(null);return}if(A==="categories")T.upArrow?U($=>($-1+ho.length)%ho.length):T.downArrow?U($=>($+1)%ho.length):T.return||T.rightArrow?ho[D].id==="exit"?y("chat"):(O("items"),xe(0)):T.escape&&y("chat");else if(A==="items"){let $=Fe[oe];if(de==="?"&&$?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(T.upArrow)xe(ye=>(ye-1+Fe.length)%Fe.length);else if(T.downArrow)xe(ye=>(ye+1)%Fe.length);else if(T.leftArrow||T.escape)O("categories");else if(T.return){let ye=Fe[oe];Rt(ye)}}});let Rt=de=>{if(de.value==="memory")g(T=>({...T,memory:!T.memory}));else if(de.value==="sandboxPreset"){let T=hl(t),$=["Autonomous","Balanced","Strict"],He=($.indexOf(T)+1)%$.length,rt=$[He];g(ot=>{let Xe={...ot,sandboxPreset:rt};return rt==="Strict"?(Xe.autoExec=!1,Xe.allowExternalAccess=!1,Xe.networkAccess=!1,Xe.autoApproveCommands="",Xe.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",Xe.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",Xe.autoApproveGit=!1):rt==="Balanced"?(Xe.autoExec=!0,Xe.allowExternalAccess=!1,Xe.networkAccess=!0,Xe.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",Xe.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",Xe.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",Xe.autoApproveGit=!1):rt==="Autonomous"&&(Xe.autoExec=!0,Xe.allowExternalAccess=!0,Xe.networkAccess=!0,Xe.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",Xe.autoDisallowCommands="",Xe.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",Xe.autoApproveGit=!0),Xe})}else if(de.value==="autoExec")t.autoExec?g(T=>({...T,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(de.value==="externalAccess")t.allowExternalAccess?g(T=>({...T,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(de.value==="networkAccess")g(T=>({...T,networkAccess:T.networkAccess===!1,sandboxPreset:"Custom"}));else if(de.value==="alwaysAsk")ne("alwaysAskCommands"),Me(t.alwaysAskCommands||"");else if(de.value==="autoApprove")ne("autoApproveCommands"),Me(t.autoApproveCommands||"");else if(de.value==="autoApproveGit")g(T=>({...T,autoApproveGit:!T.autoApproveGit,sandboxPreset:"Custom"}));else if(de.value==="autoDisallow")ne("autoDisallowCommands"),Me(t.autoDisallowCommands||"");else if(de.value==="ollamaEndpoint")g(T=>{let $=T.ollamaEndpoint==="Local"?"Cloud":"Local",ye={...T,ollamaEndpoint:$};return b({systemSettings:ye,apiTier:h,quotas:s}),ye});else if(de.value==="apiTier")y("apiTier");else if(de.value==="aiProvider")X&&X("settings"),y("selectProvider");else if(de.value==="advanceRollback")t.advanceRollback?g(T=>{let $={...T,advanceRollback:!1};return b({systemSettings:$,apiTier:h,quotas:s}),$}):y("advanceRollbackDanger");else if(de.value==="autoDelete"){let T=["1d","7d","30d"],ye=(T.indexOf(t.autoDeleteHistory||"30d")+1)%T.length;g(He=>({...He,autoDeleteHistory:T[ye]}))}else if(de.value==="autoUpdate")g(T=>({...T,autoUpdate:!T.autoUpdate}));else if(de.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};g(T),b({systemSettings:T,apiTier:h,quotas:s}),k($=>[...$,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(de.value==="updateManager")y("updateManager");else if(de.value==="parserDownload")y("parserDownload");else if(de.value==="indentationTree")g(T=>{let $={...T,indentationTree:T.indentationTree===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="compressToolResults")g(T=>{let $={...T,compressToolResults:!T.compressToolResults};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="autoTruncateResults")g(T=>{let $={...T,autoTruncateResults:!T.autoTruncateResults};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="imageHistoryCU"){let T=["Low","Standard","Extended"],ye=(T.indexOf(t.imageHistoryCU||"Standard")+1)%T.length;g(He=>{let rt={...He,imageHistoryCU:T[ye]};return b({systemSettings:rt,apiTier:h,quotas:s}),rt})}else if(de.value==="contextLength"){let T=["16k","32k","64k","128k","256k","512k","1M"],ye=(T.indexOf(t.contextLength||"256k")+1)%T.length;g(He=>{let rt={...He,contextLength:T[ye]};return b({systemSettings:rt,apiTier:h,quotas:s}),rt})}else if(de.value==="keepReasoningContext")g(T=>{let $={...T,keepReasoningContext:!T.keepReasoningContext};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="autoExcludeMetadata")g(T=>{let $={...T,autoExcludeMetadata:!T.autoExcludeMetadata};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="subAgents")g(T=>{let $={...T,subAgents:T.subAgents===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="subAgentModel"){let T=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",$=ie.findIndex(ye=>ye.value===T);Z($>=0?$:0),_e(!0)}else if(de.value==="preserveThinking")g(T=>{let $={...T,preserveThinking:T.preserveThinking===!1};return al($.preserveThinking),b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="dynamicDirAwareness")t.dynamicDirAwareness?g(T=>{let $={...T,dynamicDirAwareness:!1};return b({systemSettings:$,apiTier:h,quotas:s}),$}):y("dynamicDirDanger");else if(de.value==="loadingPhrases")g(T=>{let $={...T,loadingPhrases:T.loadingPhrases===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="progressiveRendering")g(T=>{let $={...T,progressiveRendering:!T.progressiveRendering};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="showTPMEstimate")g(T=>{let $={...T,showTPMEstimate:!T.showTPMEstimate};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="theme"){let T=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",$=xo.indexOf(T);J($>=0?$:0),ue(t.theme||"Dark"),ge(!0)}},Be=qe(t.theme);if(R){let de=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",T=15,$=ae;me<$?$=me:me>=$+T&&($=me-T+1),$=Math.max(0,Math.min($,Math.max(0,ie.length-T))),$!==ae&&re($);let ye=ie.slice($,$+T);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Be.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:Be.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),ie.length>0&&C.createElement(j,{color:"gray"},me+1,"/",ie.length)),C.createElement(Ne,{borderStyle:"single",borderColor:ee==="search"?Be.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(j,{color:ee==="search"?Be.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(j,{color:Be.text},se),ee==="search"&&C.createElement(j,{color:Be.primary||"cyan"},"\u2588"),!se&&ee!=="search"&&C.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ne,{flexDirection:"column",flexGrow:1,height:T},ye.length>0?ye.map((He,rt)=>{let ot=$+rt;if(He.isHeader)return C.createElement(Ne,{key:`hdr-${ot}`,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},He.label));let Xe=me===ot&&ee==="list",kt=de===He.value;return C.createElement(Ne,{key:`item-${He.value}-${ot}`,paddingX:1,backgroundColor:Xe?Be.highlightBg:void 0},C.createElement(j,{color:Xe?Be.text:Be.textDim,bold:Xe},Xe?"\u276F ":" ",He.label,kt?C.createElement(j,{color:Be.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ne,{paddingX:1},C.createElement(j,{color:"gray",italic:!0},'No models matching "',se,'"'))),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:ee==="search"?Be.primary||"cyan":"gray",bold:!0},"[",ee.toUpperCase()," MODE]")))}if(ke){let de=xo[we],T=qe(de);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},xo.map(($,ye)=>{let He=we===ye,rt=(t.theme||"Dark")===$,ot=$==="Forest Sprite";return C.createElement(Ne,{key:$,paddingX:0},C.createElement(j,{color:He?T.text:T.textDim,bold:He},He?"> ":" ",$,ot&&C.createElement(j,{color:He?T.success||"#52b788":"green",bold:!0}," \u2605"),rt?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: ",xo[we],xo[we]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Be.border,padding:0,width:"100%",minHeight:32},C.createElement(Ne,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Be.borderMuted,width:"100%"},C.createElement(j,{color:Be.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:A==="categories"?Be.border:Be.borderMuted,padding:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:A==="categories"?Be.text:Be.textDim,bold:!0,underline:!0},"CATEGORIES")),ho.map((de,T)=>{let $=D===T,ye=de.id==="exit";return C.createElement(Ne,{key:de.id,marginTop:ye?15:0,backgroundColor:$?A==="categories"?Be.highlightBg:Be.cardBg:void 0,paddingX:1},C.createElement(j,{color:$&&A==="categories"?Be.text:Be.textDim,bold:$},$?"\u276F ":" ",de.label))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:A==="items"?Be.border:Be.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:A==="items"?Be.text:Be.textDim,bold:!0,underline:!0},ho[D].label.toUpperCase().includes("EXIT")?"Runtime Information":`${ho[D].label} Settings`)),Fe.length>0?(()=>{let de=null,T=[],$=We=>(We||"").split(",").map(eo=>eo.trim().toLowerCase()).filter(Boolean),ye=$(t.autoApproveCommands),He=$(t.autoDisallowCommands),rt=$(t.alwaysAskCommands),ot=[...ye,...He,...rt],Xe=new Set(ot),kt=en==="security"&&ot.length!==Xe.size;return Fe.forEach((We,eo)=>{let ao=A==="items"&&oe===eo,Ur=We.label.length,ct=Math.max(2,38-Ur),z=".".repeat(ct),st=It=>en==="security"?(It.value==="autoExec"||It.value==="externalAccess")&&It.status==="ON"?Be.statusOn:Be.statusOff:It.status?.startsWith("\u2713")?Be.statusOn:It.status?.startsWith("\u26A0")?Be.statusOff:It.status==="ON"?Be.statusOn:It.status==="OFF"?Be.statusOff:Be.text;We.section&&We.section!==de&&(de=We.section,T.push(C.createElement(Ne,{key:`sec-hdr-${We.section}`,marginTop:T.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},We.section.toUpperCase()))));let yo=ao&&ve&&(ve==="alwaysAskCommands"&&We.value==="alwaysAsk"||ve==="autoApproveCommands"&&We.value==="autoApprove"||ve==="autoDisallowCommands"&&We.value==="autoDisallow"),Ue=We.value==="alwaysAsk"||We.value==="autoApprove"||We.value==="autoDisallow",jt=We.value==="parserDownload";T.push(C.createElement(Ne,{key:We.value,flexDirection:"column"},C.createElement(Ne,{backgroundColor:ao&&!yo?Be.highlightBg:void 0,paddingX:2},C.createElement(j,{color:ao?Be.text:Be.textDim,bold:ao},ao?"\u276F ":" ",We.label),!Ue&&!jt&&C.createElement(C.Fragment,null,C.createElement(j,{color:"gray"},z),C.createElement(j,{color:st(We),bold:!0},We.value==="aiProvider"?We.status:`[ ${We.status} ]`))),Ue&&!yo&&We.status!=="None"&&C.createElement(Ne,{paddingX:4,marginBottom:1},C.createElement(j,{color:"gray"},"\u21B3 ",We.status)),yo&&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(Md,{value:le,onChange:Me,onSubmit:It=>{let $t={...t,[ve]:It.trim(),sandboxPreset:"Custom"};g($t),b({systemSettings:$t,apiTier:h,quotas:s}),ne(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:Be.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:Be.textDim},"OS"," "),C.createElement(j,{color:"gray"},"..................... "),C.createElement(j,{color:Be.text},process.env.OS||process.platform||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Computer Name"," "),C.createElement(j,{color:"gray"},".......... "),C.createElement(j,{color:Be.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Processor Count"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Be.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Node.js Version"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Be.text},"v",process.versions.node)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"V8 Version"," "),C.createElement(j,{color:"gray"},"...... ...... "),C.createElement(j,{color:Be.text},"v",process.versions.v8)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Data Directory"," "),C.createElement(j,{color:"gray"},"......... "),no===mo?"":C.createElement(j,{color:Be.text},no.replaceAll(xl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(j,{color:Be.text},mo.replaceAll(xl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Viewport"," "),C.createElement(j,{color:"gray"},"............... "),C.createElement(j,{color:Be.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:Be.textDim},"Memory Load"," "),C.createElement(j,{color:"gray"},"............ "),C.createElement(j,{color:Be.text},pe,"/",F," ",gt))),C.createElement(Ne,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(j,{color:Vt?Be.statusOn:Be.warning},Vt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(j,{color:"gray",italic:!0},ho[D].desc)))),C.createElement(Ne,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},A==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":Fe[oe]?.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"),A==="categories"&&C.createElement(j,{color:"gray"},ho[D].desc)))}import Jt,{useState as Ss,useEffect as Cd}from"react";import{Box as pn,Text as zn}from"ink";import vd from"ink-text-input";function Cs({initialData:t,onSave:g,onCancel:h,theme:y="Dark"}){let w=qe(y),[b,s]=Ss(0),[k,f]=Ss(""),[I,L]=Ss(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),X=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=X[b];Cd(()=>{let D=X[b].key;f((I[D]||"").slice(0,X[b].maxLength))},[b,I]);let v=D=>{D.length>S.maxLength?f(D.slice(0,S.maxLength)):f(D)},A=D=>{if(D.trim().toLowerCase()==="/cancel"){h();return}let U=S.key,oe={...I,[U]:D.trim().slice(0,S.maxLength)};L(oe),f(""),b<X.length-1?s(b+1):g(oe)},O=k.length>=S.maxLength;return Jt.createElement(pn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Jt.createElement(pn,{paddingX:1,marginBottom:1},Jt.createElement(zn,{color:w.text,bold:!0},"USER PROFILE CONFIGURATION")),Jt.createElement(pn,{paddingX:1,flexDirection:"column"},Jt.createElement(pn,null,Jt.createElement(zn,{color:w.text,bold:!0},S.label),Jt.createElement(vd,{value:k,onChange:v,onSubmit:A})),Jt.createElement(pn,{marginTop:1,justifyContent:"space-between"},Jt.createElement(zn,{color:w.textMuted,italic:!0},"Step ",b+1," of ",X.length),Jt.createElement(zn,{color:O?w.warning||"yellow":w.textMuted},"[",k.length,"/",S.maxLength,"]"))),Jt.createElement(pn,{paddingX:1,marginTop:1},Jt.createElement(zn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import Tt,{useState as vs}from"react";import{Box as Zt,Text as Uo,useInput as Ed}from"ink";import Bd from"ink-text-input";var Dd=({question:t,options:g,onResolve:h,theme:y="Dark"})=>{let w=qe(y),[b,s]=vs(!1),[k,f]=vs(""),[I,L]=vs(0),X=!1,S=[],v=Array.isArray(g)&&g.length>0;try{S=[...v?g:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{X=!0}Ed((O,D)=>{if(!b&&((D.leftArrow||D.upArrow)&&L(U=>Math.max(0,U-1)),(D.rightArrow||D.downArrow)&&L(U=>Math.min(S.length-1,U+1)),D.return)){let U=S[I];U?.id==="CUSTOM"?s(!0):h(X?"Selected Nothing":U.label)}});let A=Re(2);return b?Tt.createElement(Zt,{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%"},Tt.createElement(Zt,{paddingX:1},Tt.createElement(Uo,{color:w.text,bold:!0},"SUGGEST SOMETHING")),Tt.createElement(Zt,{marginTop:1,paddingX:1},Tt.createElement(Uo,{italic:!0,color:w.textMuted},"Replying to: ",t)),Tt.createElement(Zt,{marginTop:1,paddingX:1,flexDirection:"row"},Tt.createElement(Bd,{value:k,onChange:f,onSubmit:()=>h(k)})),Tt.createElement(Zt,{marginTop:1,paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):Tt.createElement(Zt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},Tt.createElement(Zt,{paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:"yellow",bold:!0},"AGENT REQUEST: ACTION REQUIRED")),Tt.createElement(Zt,{paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:w.text},t)),Tt.createElement(Zt,{flexDirection:"column",width:"100%"},S.map((O,D)=>{let U=D===I;return Tt.createElement(Zt,{key:O.id,flexDirection:"column",width:"100%",backgroundColor:U?w.highlightBg:void 0,paddingX:1,marginBottom:D===S.length-1?0:1},Tt.createElement(Uo,{color:U?w.text:w.textMuted,bold:U},U?"\u276F ":" ",O.label),O.description&&Tt.createElement(Zt,{marginLeft:4},Tt.createElement(Uo,{color:w.textMuted,italic:!0},O.description)))})),Tt.createElement(Zt,{paddingX:1,marginTop:1,marginBottom:1},Tt.createElement(Uo,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},pl=Dd;import Qd from"gradient-string";import Pt,{useState as Es,useEffect as kd}from"react";import{Box as po,Text as $o,useInput as Id}from"ink";function Bs({onSelect:t,onDelete:g,onClose:h,theme:y="Dark"}){let w=qe(y),[b,s]=Es({}),[k,f]=Es([]),[I,L]=Es(0);kd(()=>{(async()=>{let D=await No();s(D),f(Object.keys(D).sort((U,oe)=>(D[oe].updatedAt||0)-(D[U].updatedAt||0)))})()},[]),Id((O,D)=>{if(D.escape&&h(),D.upArrow&&L(U=>Math.max(0,U-1)),D.downArrow&&L(U=>Math.min(k.length-1,U+1)),D.return&&k[I]&&t(k[I]),O==="x"&&k[I]){let U=k[I];g(U).then(oe=>{let xe=oe||{};s(xe);let ve=Object.keys(xe).sort((ne,le)=>(xe[le]?.updatedAt||0)-(xe[ne]?.updatedAt||0));f(ve),L(ne=>Math.max(0,Math.min(ve.length-1,ne)))})}});let X=Re(2),S=15,v=0;if(k.length>S){let O=Math.floor(S/2);v=I-O,v<0?v=0:v+S>k.length&&(v=k.length-S)}let A=k.slice(v,v+S);return Pt.createElement(po,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},Pt.createElement(po,{paddingX:1,marginBottom:1},Pt.createElement($o,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Pt.createElement(po,{paddingX:2,paddingY:1},Pt.createElement($o,{italic:!0,color:w.textMuted},"No saved chats found.")):Pt.createElement(po,{flexDirection:"column",width:"100%"},v>0&&Pt.createElement(po,{paddingX:2,marginBottom:1},Pt.createElement($o,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),A.map((O,D)=>{let U=b[O],xe=v+D===I,ve=Ad(U?.updatedAt);return Pt.createElement(po,{key:O,paddingX:1,backgroundColor:xe?w.highlightBg:void 0,width:"100%"},Pt.createElement(po,{flexGrow:1},Pt.createElement($o,{color:xe?w.text:w.textMuted,bold:xe},xe?"\u276F ":" ",(()=>{let ne=le=>(le||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return U?.name&&!U.name.startsWith("Session")?ne(U.name):U?.prompt?ne(U.prompt):ne(U?.name)||O})(),Pt.createElement($o,{color:w.textMuted}," [",ve," \u2022 ",O,"]"))),xe&&Pt.createElement(po,{flexShrink:0},Pt.createElement($o,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+S<k.length&&Pt.createElement(po,{paddingX:2,marginTop:1},Pt.createElement($o,{color:w.textMuted},"\u25BC (+",k.length-(v+S)," more chats below)"))),Pt.createElement(po,{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 Ad(t){if(!t)return"N/A";let g=new Date(t);if(isNaN(g.getTime()))return"N/A";let h=k=>String(k).padStart(2,"0"),y=h(g.getMonth()+1),w=h(g.getDate()),b=h(g.getHours()),s=h(g.getMinutes());return`${y}-${w} ${b}:${s}`}import yt,{useState as Ds,useEffect as Ld}from"react";import{Box as bo,Text as io,useInput as Pd,useStdout as Od}from"ink";function ks({onClose:t,theme:g="Dark"}){let h=qe(g),{stdout:y}=Od(),w=y?.columns||80,[b,s]=Ds([]),[k,f]=Ds(0),[I,L]=Ds(!0),X=()=>{let ne=fr($n,[]);s(ne);try{let Me=xr(qo,{}).systemSettings?.memory!==!1;L(Me)}catch{L(!0)}};Ld(()=>{X()},[]),Pd((ne,le)=>{if(le.escape&&t(),le.upArrow&&f(Me=>Math.max(0,Me-1)),le.downArrow&&f(Me=>Math.min(b.length-1,Me+1)),ne==="x"&&b.length>0){let Me=b[k].id,ke=b.filter(ge=>ge.id!==Me);Si($n,ke),s(ke),k>=ke.length&&ke.length>0&&f(ke.length-1)}});let S=(ne,le,Me)=>{if(!ne)return"";let ke=ne.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),we=`${Me?"\u276F ":" "}${le+1}. `.length,J=Me?22:2;return ke.split(`
42
+ ---`)&&ye.push({label:eo,value:eo,isHeader:!1,provider:ot})}))}return ye},[f,h,s,nt]),ie=C.useMemo(()=>{if(!se.trim())return Ie;let de=se.trim().toLowerCase(),T=[],$=null;for(let ye of Ie)ye.isHeader?$=ye:(ye.label.toLowerCase().includes(de)||ye.value&&ye.value.toLowerCase().includes(de))&&($&&!T.includes($)&&T.push($),T.push(ye));return T},[Ie,se]);qn(()=>{if(R){let de=ie.findIndex(T=>!T.isHeader);Z(de>=0?de:0),re(0)}},[se]),qn(()=>{if(R){if(ie.length===0){Z(0),re(0);return}if(me>=ie.length||ie[me]?.isHeader){let de=ie.findIndex(T=>!T.isHeader);Z(de>=0?de:0)}}},[ie,R]);let[pe,Ge]=Lt(0),[F,Dt]=Lt(0),[gt,Ut]=Lt("MB"),[Vt,Fr]=Lt(!1);qn(()=>{let de=!1;return import("./exec_command-OPHZ4N2Z.js").then(T=>{de||Fr(!!T.isPtyAvailable)}).catch(()=>{}),()=>{de=!0}},[]),qn(()=>{let de=Sd.getHeapStatistics().heap_size_limit,T=de>=1024*1024*1024,$=T?"GB":"MB",ye=T?1024*1024*1024:1024*1024;Dt(parseFloat((de/ye).toFixed(2))),Ut($);let He=()=>{let kt=process.memoryUsage().rss/ye,We=T?parseFloat(kt.toFixed(2)):Math.round(kt);Ge(We)};He();let rt=setInterval(()=>{He()},3e4);return()=>clearInterval(rt)},[]);let Ro=de=>{switch(de){case"providers":{let $=[{label:"Current Provider",value:"aiProvider",status:f}];return f==="Ollama"&&$.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),$}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:hl(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:Ms(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Ms(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Ms(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=ho[D].id,Fe=Ro(en);yd((de,T)=>{if(R){if(T.tab){Ce($=>$==="search"?"list":"search");return}if(ee==="search"){T.escape?_e(!1):T.downArrow||T.return?Ce("list"):T.backspace||T.delete?fe($=>$.slice(0,-1)):de&&!T.ctrl&&!T.meta&&de.length===1&&fe($=>$+de);return}if(T.upArrow)Z($=>{if(ie.length===0)return 0;let ye=($-1+ie.length)%ie.length,He=0;for(;ie[ye]?.isHeader&&He<ie.length;)ye=(ye-1+ie.length)%ie.length,He++;return ye});else if(T.downArrow)Z($=>{if(ie.length===0)return 0;let ye=($+1)%ie.length,He=0;for(;ie[ye]?.isHeader&&He<ie.length;)ye=(ye+1)%ie.length,He++;return ye});else if(T.return){let $=ie[me];$&&!$.isHeader&&(g(ye=>{let He=$.value==="Default",rt={...ye,CustomSubAgent:!He,SubAgentModel:$.value,SubAgentProvider:He?"":$.provider||""};return b({systemSettings:rt,apiTier:h,quotas:s}),rt}),_e(!1))}else T.escape?_e(!1):de&&!T.ctrl&&!T.meta&&de.length===1&&(fe($=>$+de),Ce("search"));return}if(ke){if(T.upArrow){let $=(we-1+xo.length)%xo.length;J($)}else if(T.downArrow){let $=(we+1)%xo.length;J($)}else if(T.return){let $=xo[we];g(ye=>{let He={...ye,theme:$};return b({systemSettings:He,apiTier:h,quotas:s}),He}),L?L():ge(!1)}else T.escape&&(L?L():ge(!1));return}if(ve){T.escape&&ne(null);return}if(A==="categories")T.upArrow?U($=>($-1+ho.length)%ho.length):T.downArrow?U($=>($+1)%ho.length):T.return||T.rightArrow?ho[D].id==="exit"?y("chat"):(O("items"),xe(0)):T.escape&&y("chat");else if(A==="items"){let $=Fe[oe];if(de==="?"&&$?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(T.upArrow)xe(ye=>(ye-1+Fe.length)%Fe.length);else if(T.downArrow)xe(ye=>(ye+1)%Fe.length);else if(T.leftArrow||T.escape)O("categories");else if(T.return){let ye=Fe[oe];Rt(ye)}}});let Rt=de=>{if(de.value==="memory")g(T=>({...T,memory:!T.memory}));else if(de.value==="sandboxPreset"){let T=hl(t),$=["Autonomous","Balanced","Strict"],He=($.indexOf(T)+1)%$.length,rt=$[He];g(ot=>{let Xe={...ot,sandboxPreset:rt};return rt==="Strict"?(Xe.autoExec=!1,Xe.allowExternalAccess=!1,Xe.networkAccess=!1,Xe.autoApproveCommands="",Xe.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",Xe.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",Xe.autoApproveGit=!1):rt==="Balanced"?(Xe.autoExec=!0,Xe.allowExternalAccess=!1,Xe.networkAccess=!0,Xe.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",Xe.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",Xe.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",Xe.autoApproveGit=!1):rt==="Autonomous"&&(Xe.autoExec=!0,Xe.allowExternalAccess=!0,Xe.networkAccess=!0,Xe.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",Xe.autoDisallowCommands="",Xe.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",Xe.autoApproveGit=!0),Xe})}else if(de.value==="autoExec")t.autoExec?g(T=>({...T,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(de.value==="externalAccess")t.allowExternalAccess?g(T=>({...T,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(de.value==="networkAccess")g(T=>({...T,networkAccess:T.networkAccess===!1,sandboxPreset:"Custom"}));else if(de.value==="alwaysAsk")ne("alwaysAskCommands"),Me(t.alwaysAskCommands||"");else if(de.value==="autoApprove")ne("autoApproveCommands"),Me(t.autoApproveCommands||"");else if(de.value==="autoApproveGit")g(T=>({...T,autoApproveGit:!T.autoApproveGit,sandboxPreset:"Custom"}));else if(de.value==="autoDisallow")ne("autoDisallowCommands"),Me(t.autoDisallowCommands||"");else if(de.value==="ollamaEndpoint")g(T=>{let $=T.ollamaEndpoint==="Local"?"Cloud":"Local",ye={...T,ollamaEndpoint:$};return b({systemSettings:ye,apiTier:h,quotas:s}),ye});else if(de.value==="apiTier")y("apiTier");else if(de.value==="aiProvider")X&&X("settings"),y("selectProvider");else if(de.value==="advanceRollback")t.advanceRollback?g(T=>{let $={...T,advanceRollback:!1};return b({systemSettings:$,apiTier:h,quotas:s}),$}):y("advanceRollbackDanger");else if(de.value==="autoDelete"){let T=["1d","7d","30d"],ye=(T.indexOf(t.autoDeleteHistory||"30d")+1)%T.length;g(He=>({...He,autoDeleteHistory:T[ye]}))}else if(de.value==="autoUpdate")g(T=>({...T,autoUpdate:!T.autoUpdate}));else if(de.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};g(T),b({systemSettings:T,apiTier:h,quotas:s}),k($=>[...$,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(de.value==="updateManager")y("updateManager");else if(de.value==="parserDownload")y("parserDownload");else if(de.value==="indentationTree")g(T=>{let $={...T,indentationTree:T.indentationTree===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="compressToolResults")g(T=>{let $={...T,compressToolResults:!T.compressToolResults};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="autoTruncateResults")g(T=>{let $={...T,autoTruncateResults:!T.autoTruncateResults};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="imageHistoryCU"){let T=["Low","Standard","Extended"],ye=(T.indexOf(t.imageHistoryCU||"Standard")+1)%T.length;g(He=>{let rt={...He,imageHistoryCU:T[ye]};return b({systemSettings:rt,apiTier:h,quotas:s}),rt})}else if(de.value==="contextLength"){let T=["16k","32k","64k","128k","256k","512k","1M"],ye=(T.indexOf(t.contextLength||"256k")+1)%T.length;g(He=>{let rt={...He,contextLength:T[ye]};return b({systemSettings:rt,apiTier:h,quotas:s}),rt})}else if(de.value==="keepReasoningContext")g(T=>{let $={...T,keepReasoningContext:!T.keepReasoningContext};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="autoExcludeMetadata")g(T=>{let $={...T,autoExcludeMetadata:!T.autoExcludeMetadata};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="subAgents")g(T=>{let $={...T,subAgents:T.subAgents===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="subAgentModel"){let T=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",$=ie.findIndex(ye=>ye.value===T);Z($>=0?$:0),_e(!0)}else if(de.value==="preserveThinking")g(T=>{let $={...T,preserveThinking:T.preserveThinking===!1};return al($.preserveThinking),b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="dynamicDirAwareness")t.dynamicDirAwareness?g(T=>{let $={...T,dynamicDirAwareness:!1};return b({systemSettings:$,apiTier:h,quotas:s}),$}):y("dynamicDirDanger");else if(de.value==="loadingPhrases")g(T=>{let $={...T,loadingPhrases:T.loadingPhrases===!1};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="progressiveRendering")g(T=>{let $={...T,progressiveRendering:!T.progressiveRendering};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="showTPMEstimate")g(T=>{let $={...T,showTPMEstimate:!T.showTPMEstimate};return b({systemSettings:$,apiTier:h,quotas:s}),$});else if(de.value==="theme"){let T=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",$=xo.indexOf(T);J($>=0?$:0),ue(t.theme||"Dark"),ge(!0)}},Be=qe(t.theme);if(R){let de=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",T=15,$=ae;me<$?$=me:me>=$+T&&($=me-T+1),$=Math.max(0,Math.min($,Math.max(0,ie.length-T))),$!==ae&&re($);let ye=ie.slice($,$+T);return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Be.border,padding:1,width:"100%",minHeight:32},C.createElement(Ne,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:Be.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),ie.length>0&&C.createElement(j,{color:"gray"},me+1,"/",ie.length)),C.createElement(Ne,{borderStyle:"single",borderColor:ee==="search"?Be.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(j,{color:ee==="search"?Be.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(j,{color:Be.text},se),ee==="search"&&C.createElement(j,{color:Be.primary||"cyan"},"\u2588"),!se&&ee!=="search"&&C.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ne,{flexDirection:"column",flexGrow:1,height:T},ye.length>0?ye.map((He,rt)=>{let ot=$+rt;if(He.isHeader)return C.createElement(Ne,{key:`hdr-${ot}`,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},He.label));let Xe=me===ot&&ee==="list",kt=de===He.value;return C.createElement(Ne,{key:`item-${He.value}-${ot}`,paddingX:1,backgroundColor:Xe?Be.highlightBg:void 0},C.createElement(j,{color:Xe?Be.text:Be.textDim,bold:Xe},Xe?"\u276F ":" ",He.label,kt?C.createElement(j,{color:Be.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ne,{paddingX:1},C.createElement(j,{color:"gray",italic:!0},'No models matching "',se,'"'))),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:ee==="search"?Be.primary||"cyan":"gray",bold:!0},"[",ee.toUpperCase()," MODE]")))}if(ke){let de=xo[we],T=qe(de);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},xo.map(($,ye)=>{let He=we===ye,rt=(t.theme||"Dark")===$,ot=$==="Forest Sprite";return C.createElement(Ne,{key:$,paddingX:0},C.createElement(j,{color:He?T.text:T.textDim,bold:He},He?"> ":" ",$,ot&&C.createElement(j,{color:He?T.success||"#52b788":"green",bold:!0}," \u2605"),rt?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: ",xo[we],xo[we]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ne,{flexDirection:"column",borderStyle:"round",borderColor:Be.border,padding:0,width:"100%",minHeight:32},C.createElement(Ne,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Be.borderMuted,width:"100%"},C.createElement(j,{color:Be.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:A==="categories"?Be.border:Be.borderMuted,padding:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:A==="categories"?Be.text:Be.textDim,bold:!0,underline:!0},"CATEGORIES")),ho.map((de,T)=>{let $=D===T,ye=de.id==="exit";return C.createElement(Ne,{key:de.id,marginTop:ye?15:0,backgroundColor:$?A==="categories"?Be.highlightBg:Be.cardBg:void 0,paddingX:1},C.createElement(j,{color:$&&A==="categories"?Be.text:Be.textDim,bold:$},$?"\u276F ":" ",de.label))})),C.createElement(Ne,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:A==="items"?Be.border:Be.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ne,{marginBottom:1},C.createElement(j,{color:A==="items"?Be.text:Be.textDim,bold:!0,underline:!0},ho[D].label.toUpperCase().includes("EXIT")?"Runtime Information":`${ho[D].label} Settings`)),Fe.length>0?(()=>{let de=null,T=[],$=We=>(We||"").split(",").map(eo=>eo.trim().toLowerCase()).filter(Boolean),ye=$(t.autoApproveCommands),He=$(t.autoDisallowCommands),rt=$(t.alwaysAskCommands),ot=[...ye,...He,...rt],Xe=new Set(ot),kt=en==="security"&&ot.length!==Xe.size;return Fe.forEach((We,eo)=>{let ao=A==="items"&&oe===eo,Ur=We.label.length,ct=Math.max(2,38-Ur),z=".".repeat(ct),st=It=>en==="security"?(It.value==="autoExec"||It.value==="externalAccess")&&It.status==="ON"?Be.statusOn:Be.statusOff:It.status?.startsWith("\u2713")?Be.statusOn:It.status?.startsWith("\u26A0")?Be.statusOff:It.status==="ON"?Be.statusOn:It.status==="OFF"?Be.statusOff:Be.text;We.section&&We.section!==de&&(de=We.section,T.push(C.createElement(Ne,{key:`sec-hdr-${We.section}`,marginTop:T.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(j,{color:"gray",bold:!0,underline:!0},We.section.toUpperCase()))));let yo=ao&&ve&&(ve==="alwaysAskCommands"&&We.value==="alwaysAsk"||ve==="autoApproveCommands"&&We.value==="autoApprove"||ve==="autoDisallowCommands"&&We.value==="autoDisallow"),Ue=We.value==="alwaysAsk"||We.value==="autoApprove"||We.value==="autoDisallow",jt=We.value==="parserDownload";T.push(C.createElement(Ne,{key:We.value,flexDirection:"column"},C.createElement(Ne,{backgroundColor:ao&&!yo?Be.highlightBg:void 0,paddingX:2},C.createElement(j,{color:ao?Be.text:Be.textDim,bold:ao},ao?"\u276F ":" ",We.label),!Ue&&!jt&&C.createElement(C.Fragment,null,C.createElement(j,{color:"gray"},z),C.createElement(j,{color:st(We),bold:!0},We.value==="aiProvider"?We.status:`[ ${We.status} ]`))),Ue&&!yo&&We.status!=="None"&&C.createElement(Ne,{paddingX:4,marginBottom:1},C.createElement(j,{color:"gray"},"\u21B3 ",We.status)),yo&&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(Md,{value:le,onChange:Me,onSubmit:It=>{let $t={...t,[ve]:It.trim(),sandboxPreset:"Custom"};g($t),b({systemSettings:$t,apiTier:h,quotas:s}),ne(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:Be.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:Be.textDim},"OS"," "),C.createElement(j,{color:"gray"},"..................... "),C.createElement(j,{color:Be.text},process.env.OS||process.platform||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Computer Name"," "),C.createElement(j,{color:"gray"},".......... "),C.createElement(j,{color:Be.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Processor Count"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Be.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Node.js Version"," "),C.createElement(j,{color:"gray"},"........ "),C.createElement(j,{color:Be.text},"v",process.versions.node)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"V8 Version"," "),C.createElement(j,{color:"gray"},"...... ...... "),C.createElement(j,{color:Be.text},"v",process.versions.v8)),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Data Directory"," "),C.createElement(j,{color:"gray"},"......... "),no===mo?"":C.createElement(j,{color:Be.text},no.replaceAll(xl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(j,{color:Be.text},mo.replaceAll(xl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ne,{flexDirection:"row"},C.createElement(j,{color:Be.textDim},"Viewport"," "),C.createElement(j,{color:"gray"},"............... "),C.createElement(j,{color:Be.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:Be.textDim},"Memory Load"," "),C.createElement(j,{color:"gray"},"............ "),C.createElement(j,{color:Be.text},pe,"/",F," ",gt))),C.createElement(Ne,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(j,{color:Vt?Be.statusOn:Be.warning},Vt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(j,{color:"gray",italic:!0},ho[D].desc)))),C.createElement(Ne,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(j,{color:"gray",italic:!0},A==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":Fe[oe]?.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"),A==="categories"&&C.createElement(j,{color:"gray"},ho[D].desc)))}import Jt,{useState as Ss,useEffect as Cd}from"react";import{Box as pn,Text as zn}from"ink";import vd from"ink-text-input";function Cs({initialData:t,onSave:g,onCancel:h,theme:y="Dark"}){let w=qe(y),[b,s]=Ss(0),[k,f]=Ss(""),[I,L]=Ss(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),X=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=X[b];Cd(()=>{let D=X[b].key;f((I[D]||"").slice(0,X[b].maxLength))},[b,I]);let v=D=>{D.length>S.maxLength?f(D.slice(0,S.maxLength)):f(D)},A=D=>{if(D.trim().toLowerCase()==="/cancel"){h();return}let U=S.key,oe={...I,[U]:D.trim().slice(0,S.maxLength)};L(oe),f(""),b<X.length-1?s(b+1):g(oe)},O=k.length>=S.maxLength;return Jt.createElement(pn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Jt.createElement(pn,{paddingX:1,marginBottom:1},Jt.createElement(zn,{color:w.text,bold:!0},"USER PROFILE CONFIGURATION")),Jt.createElement(pn,{paddingX:1,flexDirection:"column"},Jt.createElement(pn,null,Jt.createElement(zn,{color:w.text,bold:!0},S.label),Jt.createElement(vd,{value:k,onChange:v,onSubmit:A})),Jt.createElement(pn,{marginTop:1,justifyContent:"space-between"},Jt.createElement(zn,{color:w.textMuted,italic:!0},"Step ",b+1," of ",X.length),Jt.createElement(zn,{color:O?w.warning||"yellow":w.textMuted},"[",k.length,"/",S.maxLength,"]"))),Jt.createElement(pn,{paddingX:1,marginTop:1},Jt.createElement(zn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import Tt,{useState as vs}from"react";import{Box as Zt,Text as Uo,useInput as Ed}from"ink";import Bd from"ink-text-input";var Dd=({question:t,options:g,onResolve:h,theme:y="Dark"})=>{let w=qe(y),[b,s]=vs(!1),[k,f]=vs(""),[I,L]=vs(0),X=!1,S=[],v=Array.isArray(g)&&g.length>0;try{S=[...v?g:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{X=!0}Ed((O,D)=>{if(!b&&((D.leftArrow||D.upArrow)&&L(U=>Math.max(0,U-1)),(D.rightArrow||D.downArrow)&&L(U=>Math.min(S.length-1,U+1)),D.return)){let U=S[I];U?.id==="CUSTOM"?s(!0):h(X?"Selected Nothing":U.label)}});let A=Re(2);return b?Tt.createElement(Zt,{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%"},Tt.createElement(Zt,{paddingX:1},Tt.createElement(Uo,{color:w.text,bold:!0},"SUGGEST SOMETHING")),Tt.createElement(Zt,{marginTop:1,paddingX:1},Tt.createElement(Uo,{italic:!0,color:w.textMuted},"Replying to: ",t)),Tt.createElement(Zt,{marginTop:1,paddingX:1,flexDirection:"row"},Tt.createElement(Bd,{value:k,onChange:f,onSubmit:()=>h(k)})),Tt.createElement(Zt,{marginTop:1,paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):Tt.createElement(Zt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},Tt.createElement(Zt,{paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:"yellow",bold:!0},"AGENT REQUEST: ACTION REQUIRED")),Tt.createElement(Zt,{paddingX:1,marginBottom:1},Tt.createElement(Uo,{color:w.text},t)),Tt.createElement(Zt,{flexDirection:"column",width:"100%"},S.map((O,D)=>{let U=D===I;return Tt.createElement(Zt,{key:O.id,flexDirection:"column",width:"100%",backgroundColor:U?w.highlightBg:void 0,paddingX:1,marginBottom:D===S.length-1?0:1},Tt.createElement(Uo,{color:U?w.text:w.textMuted,bold:U},U?"\u276F ":" ",O.label),O.description&&Tt.createElement(Zt,{marginLeft:4},Tt.createElement(Uo,{color:w.textMuted,italic:!0},O.description)))})),Tt.createElement(Zt,{paddingX:1,marginTop:1,marginBottom:1},Tt.createElement(Uo,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},pl=Dd;import Qd from"gradient-string";import Pt,{useState as Es,useEffect as kd}from"react";import{Box as po,Text as $o,useInput as Id}from"ink";function Bs({onSelect:t,onDelete:g,onClose:h,theme:y="Dark"}){let w=qe(y),[b,s]=Es({}),[k,f]=Es([]),[I,L]=Es(0);kd(()=>{(async()=>{let D=await No();s(D),f(Object.keys(D).sort((U,oe)=>(D[oe].updatedAt||0)-(D[U].updatedAt||0)))})()},[]),Id((O,D)=>{if(D.escape&&h(),D.upArrow&&L(U=>Math.max(0,U-1)),D.downArrow&&L(U=>Math.min(k.length-1,U+1)),D.return&&k[I]&&t(k[I]),O==="x"&&k[I]){let U=k[I];g(U).then(oe=>{let xe=oe||{};s(xe);let ve=Object.keys(xe).sort((ne,le)=>(xe[le]?.updatedAt||0)-(xe[ne]?.updatedAt||0));f(ve),L(ne=>Math.max(0,Math.min(ve.length-1,ne)))})}});let X=Re(2),S=15,v=0;if(k.length>S){let O=Math.floor(S/2);v=I-O,v<0?v=0:v+S>k.length&&(v=k.length-S)}let A=k.slice(v,v+S);return Pt.createElement(po,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},Pt.createElement(po,{paddingX:1,marginBottom:1},Pt.createElement($o,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Pt.createElement(po,{paddingX:2,paddingY:1},Pt.createElement($o,{italic:!0,color:w.textMuted},"No saved chats found.")):Pt.createElement(po,{flexDirection:"column",width:"100%"},v>0&&Pt.createElement(po,{paddingX:2,marginBottom:1},Pt.createElement($o,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),A.map((O,D)=>{let U=b[O],xe=v+D===I,ve=Ad(U?.updatedAt);return Pt.createElement(po,{key:O,paddingX:1,backgroundColor:xe?w.highlightBg:void 0,width:"100%"},Pt.createElement(po,{flexGrow:1},Pt.createElement($o,{color:xe?w.text:w.textMuted,bold:xe},xe?"\u276F ":" ",(()=>{let ne=le=>(le||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return U?.name&&!U.name.startsWith("Session")?ne(U.name):U?.prompt?ne(U.prompt):ne(U?.name)||O})(),Pt.createElement($o,{color:w.textMuted}," [",ve," \u2022 ",O,"]"))),xe&&Pt.createElement(po,{flexShrink:0},Pt.createElement($o,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+S<k.length&&Pt.createElement(po,{paddingX:2,marginTop:1},Pt.createElement($o,{color:w.textMuted},"\u25BC (+",k.length-(v+S)," more chats below)"))),Pt.createElement(po,{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 Ad(t){if(!t)return"N/A";let g=new Date(t);if(isNaN(g.getTime()))return"N/A";let h=k=>String(k).padStart(2,"0"),y=h(g.getMonth()+1),w=h(g.getDate()),b=h(g.getHours()),s=h(g.getMinutes());return`${y}-${w} ${b}:${s}`}import yt,{useState as Ds,useEffect as Ld}from"react";import{Box as bo,Text as io,useInput as Pd,useStdout as Od}from"ink";function ks({onClose:t,theme:g="Dark"}){let h=qe(g),{stdout:y}=Od(),w=y?.columns||80,[b,s]=Ds([]),[k,f]=Ds(0),[I,L]=Ds(!0),X=()=>{let ne=fr($n,[]);s(ne);try{let Me=xr(qo,{}).systemSettings?.memory!==!1;L(Me)}catch{L(!0)}};Ld(()=>{X()},[]),Pd((ne,le)=>{if(le.escape&&t(),le.upArrow&&f(Me=>Math.max(0,Me-1)),le.downArrow&&f(Me=>Math.min(b.length-1,Me+1)),ne==="x"&&b.length>0){let Me=b[k].id,ke=b.filter(ge=>ge.id!==Me);Si($n,ke),s(ke),k>=ke.length&&ke.length>0&&f(ke.length-1)}});let S=(ne,le,Me)=>{if(!ne)return"";let ke=ne.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),we=`${Me?"\u276F ":" "}${le+1}. `.length,J=Me?22:2;return ke.split(`
43
43
  `).map((ue,R)=>{let _e=R===0,me=Math.max(10,w-4-(_e?we:3)-J),Z=Math.max(10,w-4-3-J),ae=ue.split(/(\s+)/),re=[],se="";if(ae.forEach(ee=>{if(ee.length===0)return;let Ce=re.length===0?me:Z;se.length+ee.length>Ce?se.trim().length>0?(re.push(se.trimEnd()),se=ee):(re.push(ee.substring(0,Ce)),se=ee.substring(Ce)):se+=ee}),se.trimEnd().length>0&&re.push(se.trimEnd()),re.length===0)return"";let fe=re.join(`
44
44
  `);return _e?fe:" "+fe}).join(`
45
45
  `)},v=4*1024*2,A=b.reduce((ne,le)=>ne+(le.memory?.length||0),0),O=Math.min(100,Math.round(A/v*100)),D=12,U=Math.round(O/100*D),oe="\u2588".repeat(U)+"\u2591".repeat(Math.max(0,D-U)),xe=()=>O<50?h.textMuted:O<90?h.warning:h.danger,ve=Re(2);return yt.createElement(bo,{flexDirection:"column",borderStyle:"round",borderColor:h.borderMuted,padding:0,width:"100%"},yt.createElement(bo,{paddingX:1,marginBottom:1,justifyContent:"space-between"},yt.createElement(io,{color:h.text,bold:!0},"SAVED MEMORIES"),yt.createElement(bo,null,yt.createElement(io,{color:h.textMuted},"Vault: "),yt.createElement(io,{color:xe()},oe),yt.createElement(io,{color:h.text,bold:!0}," ",O,"%"))),!I&&b.length>0?yt.createElement(bo,{paddingX:2,paddingY:1},yt.createElement(io,{italic:!0,color:h.textMuted},"Memory is currently Off...")):b.length===0?yt.createElement(bo,{paddingX:2,paddingY:1},yt.createElement(io,{italic:!0,color:h.textMuted},I?"Learning...":"Memory not available...")):yt.createElement(bo,{flexDirection:"column"},b.map((ne,le)=>{let Me=le===k;return yt.createElement(bo,{key:ne.id,paddingX:1,backgroundColor:Me?h.highlightBg:void 0,width:"100%"},yt.createElement(bo,{flexGrow:1},yt.createElement(io,{color:Me?h.text:h.textMuted,bold:Me},Me?"\u276F ":" ",le+1,". ",S(ne.memory,le,Me))),Me&&yt.createElement(bo,{flexShrink:0},yt.createElement(io,{color:h.textMuted,dimColor:!0}," [",yt.createElement(io,{italic:!0},ne.score),"] "),yt.createElement(io,{color:h.danger,bold:!0},"[X] WIPE ")))})),yt.createElement(bo,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:h.borderMuted},yt.createElement(io,{color:h.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 x wipe memory \u2022 Esc close")))}import mt,{useState as Ar,useEffect as bl}from"react";import{Box as _o,Text as Ft}from"ink";import{spawn as wl}from"child_process";var Tl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Nd=({latest:t,current:g,settings:h,onClose:y,onUpdateSettings:w,onSuccess:b})=>{let[s,k]=Ar("initializing"),[f,I]=Ar(""),[L,X]=Ar(null),[S,v]=Ar(0);if(bl(()=>{let A=setInterval(()=>{v(O=>(O+1)%1e3)},33);return()=>clearInterval(A)},[]),bl(()=>{let A;return(async()=>{let D=h.updateManager||"npm";if(!h.updateManager){w();return}let U="";D==="pnpm"?U=`pnpm add -g fluxflow-cli@${t}`:D==="bun"?U=`bun add -g fluxflow-cli@${t}`:D==="yarn"?U=`yarn global add fluxflow-cli@${t}`:D==="custom"?U=h.customUpdateCommand:U=`npm install -g fluxflow-cli@${t}`,k("downloading"),I(`Running: ${U}...`);let oe=process.platform==="win32",xe=ne=>new Promise(le=>{let Me=oe?ne?"powershell.exe":"cmd.exe":process.env.SHELL||"bash",ke=oe?ne?["-NoProfile","-Command",U]:["/c",U]:["-c",U],ge=J=>{let ue=J.toString().replace(/\x1B\[[0-?]*[ -/]*[@-~]|\x1B\][^\x07\x1B]*[\x07\x1B]|\b|\x07/g,"").replace(/\r/g,"").trim();ue&&I(R=>{let _e=R.split(`
@@ -1,4 +1,4 @@
1
- import{a as b,b as T}from"./chunk-POB3KUHE.js";import{a as A}from"./chunk-Y5JU726N.js";import{spawn as C}from"child_process";var P=null;try{let f=await import("node-pty");P=f.default||f}catch{}var _=!!P,S=f=>typeof f!="string"?f:f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),E=f=>{if(!f)return"";let p=[[]],n=0,o=0,w=/\x1b\[([0-9;]*?)([a-zA-Z])/g,g=0,h,d=u=>{for(let e=0;e<u.length;e++){let s=u[e];if(s===`
1
+ import{a as b,b as T}from"./chunk-YO4FM7K6.js";import{a as A}from"./chunk-Y5JU726N.js";import{spawn as C}from"child_process";var P=null;try{let f=await import("node-pty");P=f.default||f}catch{}var _=!!P,S=f=>typeof f!="string"?f:f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),E=f=>{if(!f)return"";let p=[[]],n=0,o=0,w=/\x1b\[([0-9;]*?)([a-zA-Z])/g,g=0,h,d=u=>{for(let e=0;e<u.length;e++){let s=u[e];if(s===`
2
2
  `)for(n++,o=0;n>=p.length;)p.push([]);else if(s==="\r")o=0;else{for(;n>=p.length;)p.push([]);let t=p[n];for(;o>t.length;)t.push(" ");t[o]=s,o++}}};for(;(h=w.exec(f))!==null;){d(f.substring(g,h.index));let u=h[1],e=h[2],s=u?u.split(";").map(Number):[];if(e==="A"){let t=s[0]||1;n=Math.max(0,n-t)}else if(e==="B"){let t=s[0]||1;for(n=n+t;n>=p.length;)p.push([])}else if(e==="C"){let t=s[0]||1;o=o+t}else if(e==="D"){let t=s[0]||1;o=Math.max(0,o-t)}else if(e==="G"){let t=(s[0]||1)-1;o=Math.max(0,t)}else if(e==="H"||e==="f"){let t=(s[0]||1)-1,r=(s[1]||1)-1;for(n=Math.max(0,t),o=Math.max(0,r);n>=p.length;)p.push([])}else if(e==="K"){let t=s[0]||0;if(n<p.length){let r=p[n];if(t===0)r.length=o;else if(t===1)for(let c=0;c<o&&c<r.length;c++)r[c]=" ";else t===2&&(r.length=0)}}else if(e==="J"){let t=s[0]||0;(t===2||t===3)&&(p.length=0,p.push([]),n=0,o=0)}g=w.lastIndex}d(f.substring(g));let O=p.map(u=>u.join(""));for(;O.length>0&&O[O.length-1]==="";)O.pop();return O.join(`
3
3
  `)},x=null,k=!1,D=f=>{try{x&&(k&&typeof x.write=="function"?x.write(f):x.stdin&&x.stdin.writable&&x.stdin.write(f))}catch{}},F=()=>{if(x){try{k&&typeof x.destroy=="function"?x.destroy():typeof x.kill=="function"&&(process.platform==="win32"?C("taskkill",["/pid",x.pid,"/f","/t"]):x.kill("SIGKILL"))}catch{}x=null,k=!1}},v=(f,p=!1)=>{if(process.platform!=="win32")return f;let n=[],o="",w=null,g=!1;for(let e=0;e<f.length;e++){let s=f[e];if(g){o+=s,g=!1;continue}if(s==="\\"){if(f[e+1]===" "){o+=" ",e++;continue}o+=s,g=!0;continue}w?(s===w&&(w=null),o+=s):s==='"'||s==="'"?(w=s,o+=s):s===";"&&!o.includes("://")?(o.length>0&&(n.push(o),o=""),n.push(p?";":"&")):s==="&"&&!o.includes("://")?f[e+1]==="&"?(o.length>0&&(n.push(o),o=""),n.push("&&"),e++):(o.length>0&&(n.push(o),o=""),n.push("&")):s==="|"&&!o.includes("://")?(o.length>0&&(n.push(o),o=""),n.push("|")):/\s/.test(s)?o.length>0&&(n.push(o),o=""):o+=s}o.length>0&&n.push(o);let h=e=>!(!e.includes("/")||/^(https?|file|ftp):\/\//i.test(e)||e.startsWith("@")||e.startsWith("/")&&(e.match(/\//g)||[]).length===1||/\s\/|\/\s/.test(e)||/[\(\)\{\}\;\<\>\=\'\"]/.test(e)),d=[];for(let e=0;e<n.length;e++){let s=n[e];if(s==="mkdir"&&p&&b()){let t=[],r=e+1;for(;r<n.length;){let c=n[r];if([">",">>","<","&","&&","|","||",";"].includes(c))break;c!=="-p"&&c!=="--parents"&&c!=="-v"&&c!=="--verbose"&&t.push(c),r++}if(t.length>0){let c=t.map(i=>{let a=i.replace(/^['"]|['"]$/g,""),l=i;return h(a)&&(l=i.replace(/\//g,"\\")),l});d.push("New-Item","-ItemType","Directory","-Force","-Path",c.join(","))}else d.push("New-Item","-ItemType","Directory","-Force");e=r-1;continue}if(s==="rm"&&p&&b()){let t=[],r=!1,c=!1,i=e+1;for(;i<n.length;){let l=n[i];if([">",">>","<","&","&&","|","||",";"].includes(l))break;l==="-rf"||l==="-fr"?(r=!0,c=!0):l==="-r"||l==="-R"||l==="--recursive"?r=!0:l==="-f"||l==="--force"?c=!0:t.push(l),i++}let a=["Remove-Item"];if(r&&a.push("-Recurse"),c&&a.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),R=m;return h($)&&(R=m.replace(/\//g,"\\")),R});a.push("-Path",l.join(","))}d.push(...a),e=i-1;continue}if(s==="cp"&&p&&b()){let t=[],r=!1,c=!1,i=e+1;for(;i<n.length;){let l=n[i];if([">",">>","<","&","&&","|","||",";"].includes(l))break;l==="-r"||l==="-R"||l==="--recursive"?r=!0:l==="-f"||l==="--force"?c=!0:t.push(l),i++}let a=["Copy-Item"];if(r&&a.push("-Recurse"),c&&a.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),R=m;return h($)&&(R=m.replace(/\//g,"\\")),R});if(l.length>1){let m=l.pop();a.push("-Path",l.join(","),"-Destination",m)}else a.push("-Path",l[0])}d.push(...a),e=i-1;continue}if(s==="touch"&&p&&b()){let t=[],r=e+1;for(;r<n.length;){let c=n[r];if([">",">>","<","&","&&","|","||",";"].includes(c))break;t.push(c),r++}if(t.length>0){let i=`(${t.map(a=>{let l=a.replace(/^['"]|['"]$/g,""),m=a;return h(l)&&(m=a.replace(/\//g,"\\")),m}).join(", ")}) | ForEach-Object { if (Test-Path $_) { (Get-Item $_).LastWriteTime = [System.DateTime]::Now } else { $null | Out-File -FilePath $_ } }`;d.push(i)}e=r-1;continue}if(s==="|"&&n[e+1]==="tee"){n[e+2]==="-a"?(d.push(">>"),e+=2):(d.push(">"),e+=1);continue}if(s==="|"&&n[e+1]==="cat"&&n[e+2]===">"){d.push(">"),e+=2;continue}if(s==="|"){let t=n[e+1];if(t){let r=t.replace(/^['"]|['"]$/g,""),c=/\.(txt|md|json|log|csv|html|css|py|js|xml|yaml|yml|pdf|docx|pptx|xlsx)$/i.test(r);if(h(r)&&c){d.push(">");continue}}}d.push(s)}let O=!1,u=d.map(e=>{if(e==="echo")return O=!0,e;[">",">>","<","&","&&","|","||",";"].includes(e)&&(O=!1);let t=/^['"]|['"]$/.test(e),r=e;O&&t&&(r=e.replace(/^['"]|['"]$/g,""));let c=/^['"]|['"]$/.test(r),i=r.replace(/^['"]|['"]$/g,"");h(i)&&(r=r.replace(/\//g,"\\"));let a=r.replace(/^['"]|['"]$/g,"");return a.includes(" ")&&!c&&(r=`"${a}"`),r});if(p){let e="",s=0;for(let t=0;t<u.length;t++){let r=u[t];r==="&&"?(e+="; if ($?) {",s++):r===";"?(e+=" }".repeat(s)+";",s=0):(e&&!e.endsWith(" ")&&!e.endsWith("{")&&(e+=" "),e+=r)}return e+=" }".repeat(s),e}return u.join(" ")},M=async(f,p={})=>{let{command:n}=A(f),{onChunk:o}=p;if(!n)return'ERROR: Missing "command" argument for exec_command.';let w=process.platform==="win32",g=p.systemSettings||{},h={};return g.networkAccess===!1&&(h.HTTP_PROXY="http://127.0.0.1:9999",h.HTTPS_PROXY="http://127.0.0.1:9999",h.ALL_PROXY="socks5://127.0.0.1:9999",h.http_proxy="http://127.0.0.1:9999",h.https_proxy="http://127.0.0.1:9999",h.all_proxy="socks5://127.0.0.1:9999",h.NO_PROXY="localhost,127.0.0.1"),new Promise(d=>{let O=u=>{let e=u==="pwsh"||u==="powershell",s=v(n,e),t;w?u==="pwsh"?t="pwsh.exe":u==="powershell"?t="powershell.exe":t="cmd.exe":t=process.env.SHELL||"bash";let r=w?e?["-NoProfile","-Command",s]:["/c",s]:["-c",s];if(g.networkAccess===!1&&!w){let c=t,i=[...r];if(process.platform==="linux")t="unshare",r=["-n","-r",c,...i];else if(process.platform==="darwin"){let a=`(version 1)
4
4
  (allow default)