fluxflow-cli 4.23.4 → 4.23.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/chunks/{ai-QZPSCQTC.js → ai-IOEGZWGA.js} +1 -1
- package/dist/chunks/{app-VDMSLYCY.js → app-OWHF6FXI.js} +2 -2
- package/dist/chunks/{chunk-D7RU7MKC.js → chunk-5LRTKLA4.js} +71 -70
- package/dist/chunks/{chunk-XIH6C5WL.js → chunk-CXNFFI7L.js} +1 -1
- package/dist/chunks/{chunk-F6DMKN7N.js → chunk-HRKT75ZJ.js} +1 -1
- package/dist/chunks/{exec_command-ER3K4TLH.js → exec_command-27EPEAE5.js} +1 -1
- package/dist/chunks/{invoke-ZGIGNTE6.js → invoke-GKLK35YP.js} +2 -2
- package/dist/chunks/{invokeSync-LXDZKOPO.js → invokeSync-7PK3CJVJ.js} +2 -2
- package/dist/cli.js +8 -8
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -164,8 +164,8 @@ Set these in your shell/session to override defaults:
|
|
|
164
164
|
- `I_HAVE_TOO_MUCH_MONEY` - true|false, default: false, F's up the cache-hit ratio
|
|
165
165
|
- `GOOGLE_GEMMA_NONSENSE` - true|false, default: false, for the 16k TPM limit in gemma models on gemini API. False defaults to 256k
|
|
166
166
|
- `ENABLE_9ROUTER` - true|false, default: false
|
|
167
|
-
- `
|
|
168
|
-
- `
|
|
167
|
+
- `NINEROUTER_URL` - 9Router base URL, needs full *\*/v1/chat/completions*
|
|
168
|
+
- `NINEROUTER_KEY` - 9Router API key
|
|
169
169
|
|
|
170
170
|
---
|
|
171
171
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as p,B as q,C as r,D as s,E as t,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-
|
|
1
|
+
import{A as p,B as q,C as r,D as s,E as t,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-5LRTKLA4.js";import"./chunk-56EJGQU3.js";import"./chunk-P52SKLRJ.js";import"./chunk-HRKT75ZJ.js";import"./chunk-Z4HHJIHG.js";import"./chunk-2KD7V3OK.js";import"./chunk-UDJ2C3N3.js";import"./chunk-IRFTRBG2.js";import"./chunk-Y5JU726N.js";import"./chunk-BSUDXEA2.js";import"./chunk-7UNVYHZ7.js";import"./chunk-OOTXMJIA.js";import{k as a}from"./chunk-QGPOMXO4.js";import"./chunk-L3W2X74K.js";import"./chunk-RI37VZYB.js";export{c as RE_LEADING_THINK,q as compressHistory,b as convertChannelThinkTags,r as deleteChatSummary,e as findGenuineThinkClose,p as generateSimpleContent,s 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,t as runSubagent,k as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags,i as stripTrailingFluffAfterTools};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{B as sl,C as il,D as ll,a as Yi,b as Je,c as nt,d as Cr,e as Ht,f as Ki,g as qi,h as vr,i as zi,j as ys,k as Jo,l as Dr,v as nl,y as rl,z as Kn}from"./chunk-
|
|
1
|
+
import{B as sl,C as il,D as ll,a as Yi,b as Je,c as nt,d as Cr,e as Ht,f as Ki,g as qi,h as vr,i as zi,j as ys,k as Jo,l as Dr,v as nl,y as rl,z as Kn}from"./chunk-5LRTKLA4.js";import{b as Ri,c as el,d as tl}from"./chunk-RLT6EHPQ.js";import{a as ol}from"./chunk-56EJGQU3.js";import"./chunk-P52SKLRJ.js";import{c as Vi,e as Sn,f as jt,g as ji}from"./chunk-CXNFFI7L.js";import"./chunk-HRKT75ZJ.js";import{a as Zi}from"./chunk-A73NNVCZ.js";import{a as Fo,b as Cn,d as Er,e as Ts,f as Qi,h as Ji,i as jn}from"./chunk-Z4HHJIHG.js";import"./chunk-2KD7V3OK.js";import{a as Et,b as xt,d as Xi,e as ht,f as Gi,j as bs,k as ws,l as Wn,n as Wi,o as Co}from"./chunk-UDJ2C3N3.js";import{a as Vn}from"./chunk-IRFTRBG2.js";import{a as Yn}from"./chunk-Y5JU726N.js";import{b as Mn,c as fs,k as Ni}from"./chunk-BSUDXEA2.js";import{b as ps}from"./chunk-WMRT2YZU.js";import{a as Fi,b as Ui,f as $i,g as Mr,h as Sr,j as vt,k as Qo,l as hs,r as _i}from"./chunk-7UNVYHZ7.js";import{a as xs,b as Pt}from"./chunk-OOTXMJIA.js";import{d as Bi,e as ki,f as Ii,g as Ai,h as Li,i as Pi,k as yr,m as No,n as go,o as Oi}from"./chunk-QGPOMXO4.js";import{c as wr,d as Di,e as Tr}from"./chunk-L3W2X74K.js";import{e as Hi}from"./chunk-COUKJJ4O.js";import{a as ro,b as zo,c as mo,d as ms,e as gs,k as Gn}from"./chunk-RI37VZYB.js";import Ys from"os";import e,{useState as J,useEffect as rt,useRef as Ke,useMemo as kn}from"react";import{Box as c,Text as l,useInput as Kd,useStdout as qd,Static as zd}from"ink";import Qd from"ink-spinner";import et from"fs-extra";import St from"path";import{exec as To}from"child_process";import{fileURLToPath as Jd}from"url";import Ut,{useState as Br,useEffect as Ms,useMemo as qn,useCallback as ba,useRef as vo}from"react";import{Box as wa,Text as so,useInput as Ta}from"ink";function ya(t,m){return t.replace(/\t/g," ".repeat(m))}function kr(t){return t==null?"":t.replace(/\r\n/g,`
|
|
2
2
|
`).replace(/\r/g,`
|
|
3
3
|
`)}function Zo(t,m,h){let y=t,T=[...m].sort((s,k)=>s.start-k.start),b=0;for(let s of T){let k=s.start-b,f=kr(s.text).split(`
|
|
4
4
|
`).length,I=s.text.length,A=(f>3?`[Pasted ${f} lines]`:`[Pasted ${I} chars]`).length,X=k+A;if(t<=k)break;if(t<X){y=s.end;break}else{let S=s.text.length-A;y+=S,b+=S}}return Math.min(y,h.length)}function Ss(t,m,h,y,T=[]){let b=(t||"").slice(0,m),s=y(b).length,k=y(t||""),f=[...T].sort((N,L)=>L.start-N.start);for(let N of f){let L=y(t.slice(0,N.start)).length,_=y(N.text),q=L+_.length,ge=kr(N.text).split(`
|
|
@@ -41,7 +41,7 @@ import{B as sl,C as il,D as ll,a as Yi,b as Je,c as nt,d as Cr,e as Ht,f as Ki,g
|
|
|
41
41
|
`),terminalWidth:m,theme:b}));if(f==="diff-line"){let{isFirstLine:S,isLastLine:C}=t,P=(N=!1)=>r.createElement(E,{backgroundColor:s.codeBg,paddingX:1,width:m,marginBottom:N?1:0},r.createElement(E,{width:3,flexShrink:0}),r.createElement(E,{width:1,flexShrink:0,marginLeft:1}),r.createElement(E,{flexGrow:1,marginLeft:1},r.createElement(ne,null," ")));return r.createElement(E,{flexDirection:"column"},S&&P(!1),r.createElement(xl,{line:I,pairContent:t.pairContent,parentText:void 0,columns:m,theme:b}),C&&P(!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(ne,null," ")),r.createElement(E,{flexDirection:"row",...S},r.createElement(ne,{color:"gray",bold:!0},"\u25B6_ ",(I||"TEXT").toUpperCase())))}if(f==="code-line"){let{lineNum:S,lang:C}=t,P=m-12,L=xt(I,Math.max(10,P)).split(`
|
|
42
42
|
`);return r.createElement(E,{flexDirection:"column",width:"100%"},L.map((_,q)=>r.createElement(E,{key:q,flexDirection:"row",borderColor:s.codeBorder,paddingLeft:2,width:"100%"},r.createElement(E,{width:5,flexShrink:0},r.createElement(ne,{color:"gray",dimColor:!0},q===0?String(S).padStart(4," ")+" ":" ")),r.createElement(E,{flexGrow:1},Ot(_,C,s.text)))))}if(f==="code-fence-close")return r.createElement(E,{flexDirection:"row",paddingLeft:2,marginBottom:1,width:"100%"},r.createElement(ne,null," "));if(f==="write-header")return r.createElement(E,{flexDirection:"column",paddingX:1,width:m},r.createElement(En,{text:I,columns:m,theme:b}));if(f==="write-line"){let{gutterWidth:S,lineNum:C,isFirstLine:P,isLastLine:N,extension:L,wrappedLines:_}=t,q=(ge=!1)=>r.createElement(E,{flexDirection:"row",width:m,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:s.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:s.codeBg,marginBottom:ge?1:0},r.createElement(E,{width:S+2,flexShrink:0},r.createElement(ne,null," ".repeat(S+2))),r.createElement(E,{flexGrow:1},r.createElement(ne,null," ")));return r.createElement(E,{flexDirection:"column"},P&&q(!1),r.createElement(E,{flexDirection:"row",width:m,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:s.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:s.codeBg},r.createElement(E,{width:S+2,flexShrink:0},r.createElement(ne,{color:"gray",dimColor:!0},String(C).padStart(S," ")," ")),r.createElement(E,{flexGrow:1,flexDirection:"column"},(_||[I]).map((ge,Me)=>r.createElement(E,{key:Me},Ot(ge,L,s.text))))),N&&q(!0))}return f==="write-footer"?r.createElement(E,{flexDirection:"column",paddingX:1,width:m,marginTop:1,marginBottom:1},r.createElement(En,{text:I,columns:m,theme:b})):f==="worked-duration"?r.createElement(E,{marginTop:1,marginBottom:2,paddingX:1,width:"100%"},r.createElement(ne,{color:s.textMuted},"["),r.createElement(ne,{color:s.textMuted},"Worked for ",r.createElement(ne,{bold:!0,color:s.text},Es(X))),r.createElement(ne,{color:s.textMuted},"]")):null}),Wc=r.memo(({messages:t,showFullThinking:m,columns:h=80,aiProvider:y,version:T,theme:b="Dark"})=>r.createElement(E,{flexDirection:"column",width:"100%"},t.map((s,k)=>r.createElement(hl,{key:s.id||k,msg:s,showFullThinking:m,columns:h,aiProvider:y,version:T,theme:b}))));import pt from"react";import{Box as Uo,Text as fo}from"ink";import{useState as Qn,useEffect as Jn,useRef as Pr}from"react";var Zn=null;function pl(){Zn&&Zn()}var hd=t=>{if(t<=370)return"#00a564";if(t>=5e3)return"#ff0000";let m=[{t:370,r:0,g:165,b:100},{t:550,r:40,g:195,b:80},{t:800,r:120,g:220,b:50},{t:1100,r:190,g:225,b:20},{t:1500,r:250,g:210,b:15},{t:2e3,r:255,g:170,b:0},{t:2800,r:255,g:110,b:0},{t:3800,r:255,g:50,b:0},{t:5e3,r:255,g:0,b:0}];for(let h=0;h<m.length-1;h++){let y=m[h],T=m[h+1];if(t>=y.t&&t<=T.t){let b=(t-y.t)/(T.t-y.t);b=b*b*(3-2*b);let s=Math.round(y.r+(T.r-y.r)*b),k=Math.round(y.g+(T.g-y.g)*b),f=Math.round(y.b+(T.b-y.b)*b);return`#${((1<<24)+(s<<16)+(k<<8)+f).toString(16).slice(1)}`}}return"#ff0000"},pd=pt.memo(({mode:t,thinkingLevel:m,tokens:h="0.0k",tokensTotal:y="0.0k",cachedTokens:T=0,promptTokens:b=0,chatId:s="NEW-SESSION",isMemoryEnabled:k=!0,apiTier:f="Free",aiProvider:I="Google",activeModel:A="",isProcessing:X=!1,lastChunkTime:S=0,theme:C="Dark",wps:P=0,showTPMEstimate:N=!1})=>{let L=Je(C),_="",[q,ge]=Qn(0),[Me,re]=Qn(0),[ie,pe]=Qn("MB"),[De,ve]=Qn("green"),[Ue,le]=Qn(0),Ie=Pr([]),be=Pr(370),ee=Pr([]),Ge=Pr(S);Jn(()=>{Ge.current=S},[S]),Jn(()=>{if(!X){ee.current=[];return}if(P>0){let R=ee.current;R.push(P),R.length>3&&R.shift()}},[X,P,S]),Jn(()=>{if(!X){le(0);return}let R=setInterval(()=>{let te=Ge.current,Z=te>0?Date.now()-te:0;if(te>0&&Z>=1e3)ee.current=[],le(0);else if(te>0&&Z>500){ee.current.length>0&&ee.current.shift();let ae=ee.current;if(ae.length>0){let fe=ae.reduce((he,Ae)=>he+Ae,0);le(Math.round(fe/ae.length))}else le(0)}else{let ae=ee.current;if(ae.length>0){let fe=ae.reduce((he,Ae)=>he+Ae,0);le(Math.round(fe/ae.length))}else P>0&&le(Math.round(P))}},750);return()=>clearInterval(R)},[X]),Jn(()=>{if(!X){Ie.current=[];return}if(S>0){let Z=Ie.current;(Z.length===0||Z[Z.length-1]!==S)&&(Z.push(S),Z.length>10&&Z.shift())}let R=()=>{if(!S){ve("#00a564");return}let Z=Ie.current,ae=0;if(Z.length>1){let oe=0;for(let ce=1;ce<Z.length;ce++)oe+=Z[ce]-Z[ce-1];ae=oe/(Z.length-1)}let fe=Date.now()-S,Ae=fe>=2500,at=!Ae&&ae>0?Math.min(fe,ae*3):fe,Ze=Math.max(ae,at),Ee=Ae?.4:.2;be.current=be.current*(1-Ee)+Ze*Ee,ve(hd(be.current))};R();let te=setInterval(R,100);return()=>clearInterval(te)},[X,S]);let me=()=>{let R=process.memoryUsage(),te=R.heapTotal/(1024*1024)>=1024,Z=te?"GB":"MB",ae=(fe,he)=>{let Ae=fe/(1048576*(he?1024:1));return he?parseFloat(Ae.toFixed(2)):Math.round(Ae)};pe(Z),re(ae(R.heapTotal,te)),ge(ae(R.heapUsed,te))};return Jn(()=>{Zn=me,me();let R=setInterval(()=>{me()},6e4);return()=>{clearInterval(R),Zn===me&&(Zn=null)}},[]),pt.createElement(Uo,{flexDirection:"row",justifyContent:"space-between",paddingX:1,width:"100%"},pt.createElement(Uo,null,pt.createElement(Uo,{marginRight:1},pt.createElement(fo,{color:L.textMuted},t.toLowerCase()==="flow"?"Studio":t.toLowerCase()==="icu"?"Computer Use":t.toLowerCase()==="flux"?"Workspace":"Omni")),pt.createElement(fo,{color:L.textMuted,dimColor:!0},"\u2503 "),pt.createElement(Uo,null,pt.createElement(fo,{color:L.text,italic:!0},Gi(process.cwd(),35)))),pt.createElement(Uo,null,X&&!N?pt.createElement(Uo,null,pt.createElement(fo,{color:De},"\u25CF ")):null,X&&N&&pt.createElement(pt.Fragment,null,pt.createElement(fo,{color:L.textMuted},Ue," tok/s"),pt.createElement(fo,{color:L.textMuted,dimColor:!0}," \u2503")),h>0&&pt.createElement(pt.Fragment,null,pt.createElement(Uo,{marginX:1},pt.createElement(fo,{color:L.text},ht(y)," tok",(()=>{let R=typeof b=="number"?b:0,te=typeof T=="number"?T:0,Z=R>0?te/R*100:0;return Z<1?null:pt.createElement(fo,{color:L.success||"green",dimColor:!0}," [",Z.toFixed(0),"% cached]")})())),pt.createElement(fo,{color:L.textMuted,dimColor:!0},"\u2503")),pt.createElement(Uo,{marginLeft:1},pt.createElement(fo,{color:L.textMuted,bold:!0},q," ",ie))))}),bl=pd;import st,{useState as Ds,useMemo as bd,useEffect as wd}from"react";import{Box as Xt,Text as Kt,useInput as Td}from"ink";import yd from"ink-select-input";var Md=({label:t,isSelected:m,theme:h="Dark"})=>{let y=Je(h),T=t==="Cancel"||t==="Back"||t.toLowerCase().includes("exit")||t.toLowerCase().includes("back");return st.createElement(Xt,{marginTop:T?1:0,backgroundColor:m?y.highlightBg:void 0,paddingX:1,width:"100%"},st.createElement(Kt,{color:m?y.text:y.textMuted,bold:m},m?"\u276F ":" ",t))};function bt({title:t,subtitle:m,items:h=[],onSelect:y,theme:T="Dark",searchable:b=!1}){let s=Je(T),[k,f]=Ds(""),[I,A]=Ds(0),[X,S]=Ds("list"),C=bd(()=>{if(!b||!k.trim())return h;let P=k.toLowerCase().trim();return h.filter(N=>N.label&&N.label.toLowerCase().includes(P))},[h,k,b]);return wd(()=>{A(0)},[k]),Td((P,N)=>{if(b){if(N.upArrow){S("list"),A(L=>C.length>0?L>0?L-1:C.length-1:0);return}if(N.downArrow){S("list"),A(L=>C.length>0&&L<C.length-1?L+1:0);return}if(N.return){C.length>0&&C[I]&&y(C[I]);return}if(N.escape){if(k)f(""),S("list"),A(0);else{let L=h.find(_=>_.value==="Back"||_.label==="Back"||_.value==="Cancel"||_.label==="Cancel");L&&y(L)}return}if(N.backspace||N.delete){S("search"),f(L=>L.slice(0,-1));return}if(P&&!N.ctrl&&!N.meta&&!N.tab){S("search"),f(L=>L+P);return}}},{isActive:b}),b?st.createElement(Xt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&st.createElement(Xt,{paddingX:1,paddingY:0,marginBottom:0},st.createElement(Kt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),m&&st.createElement(Xt,{paddingX:1,marginBottom:0},st.createElement(Kt,{color:s.textMuted,italic:!0}," ",m)),st.createElement(Xt,{paddingX:1,marginTop:1,marginBottom:1,flexDirection:"row"},st.createElement(Kt,{color:X==="search"?s.primary||"cyan":s.textMuted,bold:X==="search"},"\u{1F50D} Search:"),st.createElement(Kt,{color:s.text,bold:!0}," ",k),X==="search"?st.createElement(Kt,{color:s.primary||"cyan"},"\u2588"):k?null:st.createElement(Kt,{color:s.textMuted,italic:!0}," (type to search...)")),st.createElement(Xt,{flexDirection:"column",width:"100%"},C.length===0?st.createElement(Xt,{paddingX:1,marginY:0},st.createElement(Kt,{color:s.warning||"yellow",italic:!0}," No matching items found")):C.map((P,N)=>{let L=N===I,_=P.label==="Cancel"||P.label==="Back"||P.label.toLowerCase().includes("exit")||P.label.toLowerCase().includes("back");return st.createElement(Xt,{key:P.value??P.label??N,marginTop:_?1:0,backgroundColor:L?s.highlightBg:void 0,paddingX:1,width:"100%"},st.createElement(Kt,{color:L?s.text:s.textMuted,bold:L},L?"\u276F ":" ",P.label))})),st.createElement(Xt,{paddingX:1,marginTop:1},st.createElement(Kt,{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)"))):st.createElement(Xt,{flexDirection:"column",borderStyle:"round",borderColor:s.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&st.createElement(Xt,{paddingX:1,paddingY:0,marginBottom:m?0:1},st.createElement(Kt,{color:s.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),m&&st.createElement(Xt,{paddingX:1,marginBottom:1},st.createElement(Kt,{color:s.textMuted,italic:!0}," ",m)),st.createElement(Xt,{flexDirection:"column",width:"100%"},st.createElement(yd,{items:h,onSelect:y,itemComponent:P=>st.createElement(Md,{...P,theme:T}),indicatorComponent:()=>null})),st.createElement(Xt,{paddingX:1,marginTop:1},st.createElement(Kt,{color:s.textMuted,italic:!0},"(Arrows to select \u2022 Enter to confirm)")))}import v,{useState as At,useEffect as Rn}from"react";import{Box as Fe,Text as j,useInput as Sd}from"ink";import Cd from"ink-text-input";import vd from"v8";import wl from"os";var xo=[...Object.keys(Yi),"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"}],Tl=t=>{let m=t.autoApproveCommands||"",h=t.autoDisallowCommands||"",y=t.alwaysAskCommands||"",T=t.autoExec===!1&&t.allowExternalAccess===!1&&t.networkAccess===!1&&m===""&&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&&m==="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time, mkdir"&&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&&m==="ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time, mkdir"&&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 T?"Strict":b?"Balanced":s?"Autonomous":t.sandboxPreset||"Custom"},Bs=t=>!t||t.trim()===""?"None":t.length>40?t.substring(0,40)+"...":t;function Or({systemSettings:t,setSystemSettings:m,apiTier:h,setActiveView:y,setInputConfig:T,saveSettings:b,quotas:s,setMessages:k,aiProvider:f,initialSelectingTheme:I=!1,onCloseTheme:A=null,setProviderReturnView:X=null}){let S=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",C=xo.indexOf(S),[P,N]=At("categories"),[L,_]=At(0),[q,ge]=At(0),[Me,re]=At(null),[ie,pe]=At(""),[De,ve]=At(I),[Ue,le]=At(C>=0?C:0),[Ie,be]=At(t.theme||"Dark"),[ee,Ge]=At(!1),[me,R]=At(0),[te,Z]=At(0),[ae,fe]=At(""),[he,Ae]=At("list"),[at,Ze]=At({});Rn(()=>{(async()=>{let w=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],U={};for(let ye of w)try{await Mn(ye)&&(U[ye]=!0)}catch{}Ze(U)})()},[]);let Ee=v.useMemo(()=>{let ue=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","InferX","SenseNova","AIHubMix","Poolside","9router","ExpLabs","TokenHarbor","APInex"],U=!!(process.env.SUBAGENT_MODEL&&process.env.SUBAGENT_MODEL.trim())?`ENV (${process.env.SUBAGENT_MODEL.trim()})`:"ENV",ye=[{label:"Default (use the current model)",value:"Default",isHeader:!1},{label:U,value:"ENV",isHeader:!1}],Xe=s?.providerTiers?.[f]||h||"Free",Re=No(f,Xe)||[];Re.length>0&&(ye.push({label:`\u2500\u2500 ${f.toUpperCase()}${Xe!=="Free"?` (${Xe})`:""} \u2500\u2500`,isHeader:!0}),Re.forEach(it=>{let We=typeof it=="string"?it:it.cmd||it.name||it.id||String(it);We&&!We.trim().startsWith("---")&&!We.startsWith(`
|
|
43
43
|
---`)&&ye.push({label:We,value:We,isHeader:!1,provider:f})}));for(let it of ue)if(it!==f&&at[it]){let We=s?.providerTiers?.[it]||"Free",qt=No(it,We)||[];qt.length>0&&(ye.push({label:`\u2500\u2500 ${it.toUpperCase()}${We!=="Free"?` (${We})`:""} \u2500\u2500`,isHeader:!0}),qt.forEach(je=>{let kt=typeof je=="string"?je:je.cmd||je.name||je.id||String(je);kt&&!kt.trim().startsWith("---")&&!kt.startsWith(`
|
|
44
|
-
---`)&&ye.push({label:kt,value:kt,isHeader:!1,provider:it})}))}return ye},[f,h,s,at]),oe=v.useMemo(()=>{if(!ae.trim())return Ee;let ue=ae.trim().toLowerCase(),w=[],U=null;for(let ye of Ee)ye.isHeader?U=ye:(ye.label.toLowerCase().includes(ue)||ye.value&&ye.value.toLowerCase().includes(ue))&&(U&&!w.includes(U)&&w.push(U),w.push(ye));return w},[Ee,ae]);Rn(()=>{if(ee){let ue=oe.findIndex(w=>!w.isHeader);R(ue>=0?ue:0),Z(0)}},[ae]),Rn(()=>{if(ee){if(oe.length===0){R(0),Z(0);return}if(me>=oe.length||oe[me]?.isHeader){let ue=oe.findIndex(w=>!w.isHeader);R(ue>=0?ue:0)}}},[oe,ee]);let[ce,Ce]=At(0),[B,$e]=At(0),[qe,Ct]=At("MB"),[Wt,Hr]=At(!1);Rn(()=>{let ue=!1;return import("./exec_command-ER3K4TLH.js").then(w=>{ue||Hr(!!w.isPtyAvailable)}).catch(()=>{}),()=>{ue=!0}},[]),Rn(()=>{let ue=vd.getHeapStatistics().heap_size_limit,w=ue>=1024*1024*1024,U=w?"GB":"MB",ye=w?1024*1024*1024:1024*1024;$e(parseFloat((ue/ye).toFixed(2))),Ct(U);let Xe=()=>{let qt=process.memoryUsage().rss/ye,je=w?parseFloat(qt.toFixed(2)):Math.round(qt);Ce(je)};Xe();let Re=setInterval(()=>{Xe()},3e4);return()=>clearInterval(Re)},[]);let en=ue=>{switch(ue){case"providers":{let U=[{label:"Current Provider",value:"aiProvider",status:f}];return f==="Ollama"&&U.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),U}case"appearance":return[{label:"Theme",value:"theme",status:t.theme||"Dark"},{label:"Loading Phrases",value:"loadingPhrases",status:t.loadingPhrases!==!1?"ON":"OFF"},{label:"Progressive Rendering [EXPERIMENTAL]",value:"progressiveRendering",status:t.progressiveRendering?"ON":"OFF"},{label:"Show TPM Estimate",value:"showTPMEstimate",status:t.showTPMEstimate?"ON":"OFF"}];case"memory":return[{label:"Toggle Memory [Legacy]",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:Tl(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:Bs(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Bs(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Bs(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"},{label:"Disable Todo",value:"disableTodo",status:t.disableTodo?"ON":"OFF"}];default:return[]}},tn=ho[L].id,He=en(tn);Sd((ue,w)=>{if(ee){if(w.tab){Ae(U=>U==="search"?"list":"search");return}if(he==="search"){w.escape?Ge(!1):w.downArrow||w.return?Ae("list"):w.backspace||w.delete?fe(U=>U.slice(0,-1)):ue&&!w.ctrl&&!w.meta&&ue.length===1&&fe(U=>U+ue);return}if(w.upArrow)R(U=>{if(oe.length===0)return 0;let ye=(U-1+oe.length)%oe.length,Xe=0;for(;oe[ye]?.isHeader&&Xe<oe.length;)ye=(ye-1+oe.length)%oe.length,Xe++;return ye});else if(w.downArrow)R(U=>{if(oe.length===0)return 0;let ye=(U+1)%oe.length,Xe=0;for(;oe[ye]?.isHeader&&Xe<oe.length;)ye=(ye+1)%oe.length,Xe++;return ye});else if(w.return){let U=oe[me];U&&!U.isHeader&&(m(ye=>{let Xe=U.value==="Default",Re={...ye,CustomSubAgent:!Xe,SubAgentModel:U.value,SubAgentProvider:Xe?"":U.provider||""};return b({systemSettings:Re,apiTier:h,quotas:s}),Re}),Ge(!1))}else w.escape?Ge(!1):ue&&!w.ctrl&&!w.meta&&ue.length===1&&(fe(U=>U+ue),Ae("search"));return}if(De){if(w.upArrow){let U=(Ue-1+xo.length)%xo.length;le(U)}else if(w.downArrow){let U=(Ue+1)%xo.length;le(U)}else if(w.return){let U=xo[Ue];m(ye=>{let Xe={...ye,theme:U};return b({systemSettings:Xe,apiTier:h,quotas:s}),Xe}),A?A():ve(!1)}else w.escape&&(A?A():ve(!1));return}if(Me){w.escape&&re(null);return}if(P==="categories")w.upArrow?_(U=>(U-1+ho.length)%ho.length):w.downArrow?_(U=>(U+1)%ho.length):w.return||w.rightArrow?ho[L].id==="exit"?y("chat"):(N("items"),ge(0)):w.escape&&y("chat");else if(P==="items"){let U=He[q];if(ue==="?"&&U?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(w.upArrow)ge(ye=>(ye-1+He.length)%He.length);else if(w.downArrow)ge(ye=>(ye+1)%He.length);else if(w.leftArrow||w.escape)N("categories");else if(w.return){let ye=He[q];Rt(ye)}}});let Rt=ue=>{if(ue.value==="memory")m(w=>({...w,memory:!w.memory}));else if(ue.value==="sandboxPreset"){let w=Tl(t),U=["Autonomous","Balanced","Strict"],Xe=(U.indexOf(w)+1)%U.length,Re=U[Xe];m(it=>{let We={...it,sandboxPreset:Re};return Re==="Strict"?(We.autoExec=!1,We.allowExternalAccess=!1,We.networkAccess=!1,We.autoApproveCommands="",We.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",We.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",We.autoApproveGit=!1):Re==="Balanced"?(We.autoExec=!0,We.allowExternalAccess=!1,We.networkAccess=!0,We.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",We.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",We.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",We.autoApproveGit=!1):Re==="Autonomous"&&(We.autoExec=!0,We.allowExternalAccess=!0,We.networkAccess=!0,We.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",We.autoDisallowCommands="",We.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",We.autoApproveGit=!0),We})}else if(ue.value==="autoExec")t.autoExec?m(w=>({...w,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(ue.value==="externalAccess")t.allowExternalAccess?m(w=>({...w,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(ue.value==="networkAccess")m(w=>({...w,networkAccess:w.networkAccess===!1,sandboxPreset:"Custom"}));else if(ue.value==="alwaysAsk")re("alwaysAskCommands"),pe(t.alwaysAskCommands||"");else if(ue.value==="autoApprove")re("autoApproveCommands"),pe(t.autoApproveCommands||"");else if(ue.value==="autoApproveGit")m(w=>({...w,autoApproveGit:!w.autoApproveGit,sandboxPreset:"Custom"}));else if(ue.value==="autoDisallow")re("autoDisallowCommands"),pe(t.autoDisallowCommands||"");else if(ue.value==="ollamaEndpoint")m(w=>{let U=w.ollamaEndpoint==="Local"?"Cloud":"Local",ye={...w,ollamaEndpoint:U};return b({systemSettings:ye,apiTier:h,quotas:s}),ye});else if(ue.value==="apiTier")y("apiTier");else if(ue.value==="aiProvider")X&&X("settings"),y("selectProvider");else if(ue.value==="advanceRollback")t.advanceRollback?m(w=>{let U={...w,advanceRollback:!1};return b({systemSettings:U,apiTier:h,quotas:s}),U}):y("advanceRollbackDanger");else if(ue.value==="autoDelete"){let w=["1d","7d","30d"],ye=(w.indexOf(t.autoDeleteHistory||"30d")+1)%w.length;m(Xe=>({...Xe,autoDeleteHistory:w[ye]}))}else if(ue.value==="autoUpdate")m(w=>({...w,autoUpdate:!w.autoUpdate}));else if(ue.value==="externalData")if(!t.useExternalData)T({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 w={...t,useExternalData:!1};m(w),b({systemSettings:w,apiTier:h,quotas:s}),k(U=>[...U,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(ue.value==="updateManager")y("updateManager");else if(ue.value==="parserDownload")y("parserDownload");else if(ue.value==="indentationTree")m(w=>{let U={...w,indentationTree:w.indentationTree===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="compressToolResults")m(w=>{let U={...w,compressToolResults:!w.compressToolResults};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="autoTruncateResults")m(w=>{let U={...w,autoTruncateResults:!w.autoTruncateResults};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="imageHistoryCU"){let w=["Low","Standard","Extended"],ye=(w.indexOf(t.imageHistoryCU||"Standard")+1)%w.length;m(Xe=>{let Re={...Xe,imageHistoryCU:w[ye]};return b({systemSettings:Re,apiTier:h,quotas:s}),Re})}else if(ue.value==="contextLength"){let w=["16k","32k","64k","128k","256k","512k","1M"],ye=(w.indexOf(t.contextLength||"256k")+1)%w.length;m(Xe=>{let Re={...Xe,contextLength:w[ye]};return b({systemSettings:Re,apiTier:h,quotas:s}),Re})}else if(ue.value==="keepReasoningContext")m(w=>{let U={...w,keepReasoningContext:!w.keepReasoningContext};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="autoExcludeMetadata")m(w=>{let U={...w,autoExcludeMetadata:!w.autoExcludeMetadata};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="disableTodo")m(w=>{let U={...w,disableTodo:!w.disableTodo};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="subAgents")m(w=>{let U={...w,subAgents:w.subAgents===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="subAgentModel"){let w=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",U=oe.findIndex(ye=>ye.value===w);R(U>=0?U:0),Ge(!0)}else if(ue.value==="preserveThinking")m(w=>{let U={...w,preserveThinking:w.preserveThinking===!1};return ml(U.preserveThinking),b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="dynamicDirAwareness")t.dynamicDirAwareness?m(w=>{let U={...w,dynamicDirAwareness:!1};return b({systemSettings:U,apiTier:h,quotas:s}),U}):y("dynamicDirDanger");else if(ue.value==="loadingPhrases")m(w=>{let U={...w,loadingPhrases:w.loadingPhrases===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="progressiveRendering")m(w=>{let U={...w,progressiveRendering:!w.progressiveRendering};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="showTPMEstimate")m(w=>{let U={...w,showTPMEstimate:!w.showTPMEstimate};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="theme"){let w=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",U=xo.indexOf(w);le(U>=0?U:0),be(t.theme||"Dark"),ve(!0)}},Se=Je(t.theme);if(ee){let ue=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",w=15,U=te;me<U?U=me:me>=U+w&&(U=me-w+1),U=Math.max(0,Math.min(U,Math.max(0,oe.length-w))),U!==te&&Z(U);let ye=oe.slice(U,U+w);return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:1,width:"100%",minHeight:32},v.createElement(Fe,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:Se.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&v.createElement(j,{color:"gray"},me+1,"/",oe.length)),v.createElement(Fe,{borderStyle:"single",borderColor:he==="search"?Se.primary||"cyan":"gray",paddingX:1,marginBottom:1},v.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),v.createElement(j,{color:Se.text},ae),he==="search"&&v.createElement(j,{color:Se.primary||"cyan"},"\u2588"),!ae&&he!=="search"&&v.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),v.createElement(Fe,{flexDirection:"column",flexGrow:1,height:w},ye.length>0?ye.map((Xe,Re)=>{let it=U+Re;if(Xe.isHeader)return v.createElement(Fe,{key:`hdr-${it}`,paddingX:1},v.createElement(j,{color:"gray",bold:!0,underline:!0},Xe.label));let We=me===it&&he==="list",qt=ue===Xe.value;return v.createElement(Fe,{key:`item-${Xe.value}-${it}`,paddingX:1,backgroundColor:We?Se.highlightBg:void 0},v.createElement(j,{color:We?Se.text:Se.textDim,bold:We},We?"\u276F ":" ",Xe.label,qt?v.createElement(j,{color:Se.primary||"cyan",italic:!0}," (active)"):""))}):v.createElement(Fe,{paddingX:1},v.createElement(j,{color:"gray",italic:!0},'No models matching "',ae,'"'))),v.createElement(Fe,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),v.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"[",he.toUpperCase()," MODE]")))}if(De){let ue=xo[Ue],w=Je(ue);return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:w.border,padding:1,width:"100%",minHeight:32},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.text,bold:!0},"Choose your color scheme:")),v.createElement(Fe,{flexDirection:"row",width:"100%",flexGrow:1},v.createElement(Fe,{flexDirection:"column",width:"30%",paddingRight:1},xo.map((U,ye)=>{let Xe=Ue===ye,Re=(t.theme||"Dark")===U,it=U==="Forest Sprite";return v.createElement(Fe,{key:U,paddingX:0},v.createElement(j,{color:Xe?w.text:w.textDim,bold:Xe},Xe?"> ":" ",U,it&&v.createElement(j,{color:Xe?w.success||"#52b788":"green",bold:!0}," \u2605"),Re?v.createElement(j,{color:w.primary||"cyan",italic:!0}," (saved)"):""))})),v.createElement(Fe,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:w.borderMuted,paddingX:2,paddingY:1,backgroundColor:w.cardBg},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.secondary||"cyan",bold:!0},"> ","you: "),v.createElement(j,{color:w.text},"add a greeting function")),v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.success||"green"}," Here's the change:")),v.createElement(Fe,{flexDirection:"column",marginLeft:2,marginBottom:1},v.createElement(j,null,v.createElement(j,{color:w.textDim},"3 "),v.createElement(j,{color:w.textDim},' import "fmt"')),v.createElement(j,{color:w.textDim},"4"),v.createElement(Fe,{backgroundColor:w.diffRemovalBg},v.createElement(j,null,v.createElement(j,{color:w.diffRemovalNum||w.diffRemovalText},"5 "),v.createElement(j,{color:w.diffRemovalPrefix||w.diffRemovalText},"- "),v.createElement(j,{color:w.diffRemovalText},"func "),v.createElement(j,{color:w.diffRemovalHighlightColor||w.diffRemovalText,backgroundColor:w.diffRemovalHighlightBg,bold:!0},"main()"),v.createElement(j,{color:w.diffRemovalText}," {"))),v.createElement(Fe,{backgroundColor:w.diffAdditionBg},v.createElement(j,null,v.createElement(j,{color:w.diffAdditionNum||w.diffAdditionText},"5 "),v.createElement(j,{color:w.diffAdditionPrefix||w.diffAdditionText},"+ "),v.createElement(j,{color:w.diffAdditionText},"func "),v.createElement(j,{color:w.diffAdditionHighlightColor||w.diffAdditionText,backgroundColor:w.diffAdditionHighlightBg,bold:!0},"greet(name string)"),v.createElement(j,{color:w.diffAdditionText}," {"))),v.createElement(Fe,{backgroundColor:w.diffAdditionBg},v.createElement(j,null,v.createElement(j,{color:w.diffAdditionNum||w.diffAdditionText},"6 "),v.createElement(j,{color:w.diffAdditionPrefix||w.diffAdditionText},"+ "),v.createElement(j,{color:w.diffAdditionText}," "),v.createElement(j,{color:w.diffAdditionHighlightColor||w.diffAdditionText,backgroundColor:w.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),v.createElement(j,{color:w.textDim},"7 }")),v.createElement(Fe,{flexDirection:"column",marginTop:1,marginBottom:1},v.createElement(j,{color:w.textDim},"\u25BE Thought Process"),v.createElement(j,{color:w.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),v.createElement(Fe,{flexDirection:"column"},v.createElement(j,null,v.createElement(j,{color:w.warning||"yellow"},"\u2699 tool: "),v.createElement(j,{color:w.text},"write_file main.go")),v.createElement(j,null,v.createElement(j,{color:w.accent||"magenta"},"\u29BF task: "),v.createElement(j,{color:w.text},"Implementing greeting")),v.createElement(j,null,v.createElement(j,{color:w.danger||"red"},"X error: "),v.createElement(j,{color:w.text},"compilation failed")),v.createElement(j,null,v.createElement(j,{color:w.warning||"yellow"},"\u26A0 warning: "),v.createElement(j,{color:w.text},"deprecation warning")),v.createElement(j,null,v.createElement(j,{color:w.info||"blue"},"\u2192 link: "),v.createElement(j,{color:w.info||"blue",underline:!0},"file:///path/to/main.go")),v.createElement(j,null,v.createElement(j,{color:w.accent||"magenta"},"\u2605 accent: "),v.createElement(j,{color:w.text},"highlighted text")),v.createElement(j,{color:w.textDim},"\xB7 dim: press Enter to continue")))),v.createElement(Fe,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),v.createElement(j,{color:"gray"},"Previewing: ",xo[Ue],xo[Ue]==="Forest Sprite"?" \u2605":"")))}return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:0,width:"100%",minHeight:32},v.createElement(Fe,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Se.borderMuted,width:"100%"},v.createElement(j,{color:Se.text,bold:!0},"SYSTEM CONFIGURATION")),v.createElement(Fe,{flexDirection:"row",width:"100%",minHeight:26},v.createElement(Fe,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:P==="categories"?Se.border:Se.borderMuted,padding:1,paddingY:0},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:P==="categories"?Se.text:Se.textDim,bold:!0,underline:!0},"CATEGORIES")),ho.map((ue,w)=>{let U=L===w,ye=ue.id==="exit";return v.createElement(Fe,{key:ue.id,marginTop:ye?15:0,backgroundColor:U?P==="categories"?Se.highlightBg:Se.cardBg:void 0,paddingX:1},v.createElement(j,{color:U&&P==="categories"?Se.text:Se.textDim,bold:U},U?"\u276F ":" ",ue.label))})),v.createElement(Fe,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:P==="items"?Se.border:Se.borderMuted,paddingX:1,marginLeft:1,paddingY:0},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:P==="items"?Se.text:Se.textDim,bold:!0,underline:!0},ho[L].label.toUpperCase().includes("EXIT")?"Runtime Information":`${ho[L].label} Settings`)),He.length>0?(()=>{let ue=null,w=[],U=je=>(je||"").split(",").map(kt=>kt.trim().toLowerCase()).filter(Boolean),ye=U(t.autoApproveCommands),Xe=U(t.autoDisallowCommands),Re=U(t.alwaysAskCommands),it=[...ye,...Xe,...Re],We=new Set(it),qt=tn==="security"&&it.length!==We.size;return He.forEach((je,kt)=>{let zt=P==="items"&&q===kt,Xr=je.label.length,on=Math.max(2,38-Xr),Gr=".".repeat(on),mt=Le=>tn==="security"?(Le.value==="autoExec"||Le.value==="externalAccess")&&Le.status==="ON"?Se.statusOn:Se.statusOff:Le.status?.startsWith("\u2713")?Se.statusOn:Le.status?.startsWith("\u26A0")?Se.statusOff:Le.status==="ON"?Se.statusOn:Le.status==="OFF"?Se.statusOff:Se.text;je.section&&je.section!==ue&&(ue=je.section,w.push(v.createElement(Fe,{key:`sec-hdr-${je.section}`,marginTop:w.length>0?1:0,marginBottom:0,paddingX:1},v.createElement(j,{color:"gray",bold:!0,underline:!0},je.section.toUpperCase()))));let z=zt&&Me&&(Me==="alwaysAskCommands"&&je.value==="alwaysAsk"||Me==="autoApproveCommands"&&je.value==="autoApprove"||Me==="autoDisallowCommands"&&je.value==="autoDisallow"),lt=je.value==="alwaysAsk"||je.value==="autoApprove"||je.value==="autoDisallow",Go=je.value==="parserDownload";w.push(v.createElement(Fe,{key:je.value,flexDirection:"column"},v.createElement(Fe,{backgroundColor:zt&&!z?Se.highlightBg:void 0,paddingX:2},v.createElement(j,{color:zt?Se.text:Se.textDim,bold:zt},zt?"\u276F ":" ",je.label),!lt&&!Go&&v.createElement(v.Fragment,null,v.createElement(j,{color:"gray"},Gr),v.createElement(j,{color:mt(je),bold:!0},je.value==="aiProvider"?je.status:`[ ${je.status} ]`))),lt&&!z&&je.status!=="None"&&v.createElement(Fe,{paddingX:4,marginBottom:1},v.createElement(j,{color:"gray"},"\u21B3 ",je.status)),z&&v.createElement(Fe,{flexDirection:"column",marginLeft:4,marginBottom:1},v.createElement(Fe,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},v.createElement(j,{color:"gray",bold:!0},"> "," "),v.createElement(Cd,{value:ie,onChange:pe,onSubmit:Le=>{let _t={...t,[Me]:Le.trim(),sandboxPreset:"Custom"};m(_t),b({systemSettings:_t,apiTier:h,quotas:s}),re(null)}})),v.createElement(j,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),qt&&w.push(v.createElement(Fe,{key:"conflict-warning",marginTop:1,paddingX:1},v.createElement(j,{color:Se.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),w})():v.createElement(Fe,{paddingX:1,flexDirection:"column",width:"100%"},tn==="exit"?v.createElement(v.Fragment,null,v.createElement(Fe,{flexDirection:"column",marginBottom:1},v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"OS"," "),v.createElement(j,{color:"gray"},"..................... "),v.createElement(j,{color:Se.text},process.env.OS||process.platform||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Computer Name"," "),v.createElement(j,{color:"gray"},".......... "),v.createElement(j,{color:Se.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Processor Count"," "),v.createElement(j,{color:"gray"},"........ "),v.createElement(j,{color:Se.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Node.js Version"," "),v.createElement(j,{color:"gray"},"........ "),v.createElement(j,{color:Se.text},"v",process.versions.node)),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"V8 Version"," "),v.createElement(j,{color:"gray"},"...... ...... "),v.createElement(j,{color:Se.text},"v",process.versions.v8)),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Data Directory"," "),v.createElement(j,{color:"gray"},"......... "),ro===mo?"":v.createElement(j,{color:Se.text},ro.replaceAll(wl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),v.createElement(j,{color:Se.text},mo.replaceAll(wl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Viewport"," "),v.createElement(j,{color:"gray"},"............... "),v.createElement(j,{color:Se.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),v.createElement(Fe,{flexDirection:"row",marginBottom:0},v.createElement(j,{color:Se.textDim},"Memory Load"," "),v.createElement(j,{color:"gray"},"............ "),v.createElement(j,{color:Se.text},ce,"/",B," ",qe))),v.createElement(Fe,{key:"pty-notice",paddingX:0,marginTop:0},v.createElement(j,{color:Wt?Se.statusOn:Se.warning},Wt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):v.createElement(j,{color:"gray",italic:!0},ho[L].desc)))),v.createElement(Fe,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},P==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":He[q]?.value==="dynamicDirAwareness"?"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 ? HELP \u2022 \u25C4/ESC to go back":"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 \u25C4/ESC to go back"),P==="categories"&&v.createElement(j,{color:"gray"},ho[L].desc)))}import Jt,{useState as ks,useEffect as Ed}from"react";import{Box as Dn,Text as er}from"ink";import Dd from"ink-text-input";function Is({initialData:t,onSave:m,onCancel:h,theme:y="Dark"}){let T=Je(y),[b,s]=ks(0),[k,f]=ks(""),[I,A]=ks(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),X=[{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=X[b];Ed(()=>{let L=X[b].key;f((I[L]||"").slice(0,X[b].maxLength))},[b,I]);let C=L=>{L.length>S.maxLength?f(L.slice(0,S.maxLength)):f(L)},P=L=>{if(L.trim().toLowerCase()==="/cancel"){h();return}let _=S.key,q={...I,[_]:L.trim().slice(0,S.maxLength)};A(q),f(""),b<X.length-1?s(b+1):m(q)},N=k.length>=S.maxLength;return Jt.createElement(Dn,{borderStyle:"round",borderColor:T.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Jt.createElement(Dn,{paddingX:1,marginBottom:1},Jt.createElement(er,{color:T.text,bold:!0},"USER PROFILE CONFIGURATION")),Jt.createElement(Dn,{paddingX:1,flexDirection:"column"},Jt.createElement(Dn,null,Jt.createElement(er,{color:T.text,bold:!0},S.label),Jt.createElement(Dd,{value:k,onChange:C,onSubmit:P})),Jt.createElement(Dn,{marginTop:1,justifyContent:"space-between"},Jt.createElement(er,{color:T.textMuted,italic:!0},"Step ",b+1," of ",X.length),Jt.createElement(er,{color:N?T.warning||"yellow":T.textMuted},"[",k.length,"/",S.maxLength,"]"))),Jt.createElement(Dn,{paddingX:1,marginTop:1},Jt.createElement(er,{color:T.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import yt,{useState as As}from"react";import{Box as Zt,Text as $o,useInput as Bd}from"ink";import kd from"ink-text-input";var Id=({question:t,options:m,onResolve:h,theme:y="Dark"})=>{let T=Je(y),[b,s]=As(!1),[k,f]=As(""),[I,A]=As(0),X=!1,S=[],C=Array.isArray(m)&&m.length>0,P=t==="Agent has been running for a long time. Do you want to continue execution?";try{P&&C?S=[...m]:S=[...C?m:[],C?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{X=!0}Bd((L,_)=>{if(!b&&((_.leftArrow||_.upArrow)&&A(q=>Math.max(0,q-1)),(_.rightArrow||_.downArrow)&&A(q=>Math.min(S.length-1,q+1)),_.return)){let q=S[I];q?.id==="CUSTOM"?s(!0):h(X?"Selected Nothing":q.label)}});let N=nt(2);return b?yt.createElement(Zt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:T.codeBg,width:"100%"},yt.createElement(Zt,{paddingX:1},yt.createElement($o,{color:T.text,bold:!0},"SUGGEST SOMETHING")),yt.createElement(Zt,{marginTop:1,paddingX:1},yt.createElement($o,{italic:!0,color:T.textMuted},"Replying to: ",t)),yt.createElement(Zt,{marginTop:1,paddingX:1,flexDirection:"row"},yt.createElement(kd,{value:k,onChange:f,onSubmit:()=>h(k)})),yt.createElement(Zt,{marginTop:1,paddingX:1,marginBottom:1},yt.createElement($o,{color:T.textMuted,italic:!0},"(Press Enter to send)"))):yt.createElement(Zt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:T.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},yt.createElement(Zt,{paddingX:1,marginBottom:1},yt.createElement($o,{color:"yellow",bold:!0},P?"TURN SAFETY SYSTEM: EXECUTION LIMIT":"AGENT REQUEST: ACTION REQUIRED")),yt.createElement(Zt,{paddingX:1,marginBottom:1},yt.createElement($o,{color:T.text},t)),yt.createElement(Zt,{flexDirection:"column",width:"100%"},S.map((L,_)=>{let q=_===I;return yt.createElement(Zt,{key:L.id,flexDirection:"column",width:"100%",backgroundColor:q?T.highlightBg:void 0,paddingX:1,marginBottom:_===S.length-1?0:1},yt.createElement($o,{color:q?T.text:T.textMuted,bold:q},q?"\u276F ":" ",L.label),L.description&&yt.createElement(Zt,{marginLeft:4},yt.createElement($o,{color:T.textMuted,italic:!0},L.description)))})),yt.createElement(Zt,{paddingX:1,marginTop:1,marginBottom:1},yt.createElement($o,{color:T.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},yl=Id;import Zd from"gradient-string";import Lt,{useState as Ls,useEffect as Ad}from"react";import{Box as po,Text as _o,useInput as Ld}from"ink";function Ps({onSelect:t,onDelete:m,onClose:h,theme:y="Dark"}){let T=Je(y),[b,s]=Ls({}),[k,f]=Ls([]),[I,A]=Ls(0);Ad(()=>{(async()=>{let L=await Fo();s(L),f(Object.keys(L).sort((_,q)=>(L[q].updatedAt||0)-(L[_].updatedAt||0)))})()},[]),Ld((N,L)=>{if(L.escape&&h(),L.upArrow&&A(_=>Math.max(0,_-1)),L.downArrow&&A(_=>Math.min(k.length-1,_+1)),L.return&&k[I]&&t(k[I]),N==="x"&&k[I]){let _=k[I];m(_).then(q=>{let ge=q||{};s(ge);let Me=Object.keys(ge).sort((re,ie)=>(ge[ie]?.updatedAt||0)-(ge[re]?.updatedAt||0));f(Me),A(re=>Math.max(0,Math.min(Me.length-1,re)))})}});let X=nt(2),S=15,C=0;if(k.length>S){let N=Math.floor(S/2);C=I-N,C<0?C=0:C+S>k.length&&(C=k.length-S)}let P=k.slice(C,C+S);return Lt.createElement(po,{flexDirection:"column",borderStyle:"round",borderColor:T.borderMuted,padding:0,width:"100%"},Lt.createElement(po,{paddingX:1,marginBottom:1},Lt.createElement(_o,{color:T.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Lt.createElement(po,{paddingX:2,paddingY:1},Lt.createElement(_o,{italic:!0,color:T.textMuted},"No saved chats found.")):Lt.createElement(po,{flexDirection:"column",width:"100%"},C>0&&Lt.createElement(po,{paddingX:2,marginBottom:1},Lt.createElement(_o,{color:T.textMuted},"\u25B2 (+",C," more chats above)")),P.map((N,L)=>{let _=b[N],ge=C+L===I,Me=Pd(_?.updatedAt);return Lt.createElement(po,{key:N,paddingX:1,backgroundColor:ge?T.highlightBg:void 0,width:"100%"},Lt.createElement(po,{flexGrow:1},Lt.createElement(_o,{color:ge?T.text:T.textMuted,bold:ge},ge?"\u276F ":" ",(()=>{let re=ie=>(ie||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return _?.name&&!_.name.startsWith("Session")?re(_.name):_?.prompt?re(_.prompt):re(_?.name)||N})(),Lt.createElement(_o,{color:T.textMuted}," [",Me," \u2022 ",N,"]"))),ge&&Lt.createElement(po,{flexShrink:0},Lt.createElement(_o,{color:T.danger,bold:!0},"[X] DELETE ")))}),C+S<k.length&&Lt.createElement(po,{paddingX:2,marginTop:1},Lt.createElement(_o,{color:T.textMuted},"\u25BC (+",k.length-(C+S)," more chats below)"))),Lt.createElement(po,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:T.borderMuted},Lt.createElement(_o,{color:T.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function Pd(t){if(!t)return"N/A";let m=new Date(t);if(isNaN(m.getTime()))return"N/A";let h=k=>String(k).padStart(2,"0"),y=h(m.getMonth()+1),T=h(m.getDate()),b=h(m.getHours()),s=h(m.getMinutes());return`${y}-${T} ${b}:${s}`}import Mt,{useState as Os,useEffect as Od}from"react";import{Box as bo,Text as lo,useInput as Nd,useStdout as Fd}from"ink";function Ns({onClose:t,theme:m="Dark"}){let h=Je(m),{stdout:y}=Fd(),T=y?.columns||80,[b,s]=Os([]),[k,f]=Os(0),[I,A]=Os(!0),X=()=>{let re=wr(Gn,[]);s(re);try{let pe=Tr(zo,{}).systemSettings?.memory!==!1;A(pe)}catch{A(!0)}};Od(()=>{X()},[]),Nd((re,ie)=>{if(ie.escape&&t(),ie.upArrow&&f(pe=>Math.max(0,pe-1)),ie.downArrow&&f(pe=>Math.min(b.length-1,pe+1)),re==="x"&&b.length>0){let pe=b[k].id,De=b.filter(ve=>ve.id!==pe);Di(Gn,De),s(De),k>=De.length&&De.length>0&&f(De.length-1)}});let S=(re,ie,pe)=>{if(!re)return"";let De=re.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),Ue=`${pe?"\u276F ":" "}${ie+1}. `.length,le=pe?22:2;return De.split(`
|
|
44
|
+
---`)&&ye.push({label:kt,value:kt,isHeader:!1,provider:it})}))}return ye},[f,h,s,at]),oe=v.useMemo(()=>{if(!ae.trim())return Ee;let ue=ae.trim().toLowerCase(),w=[],U=null;for(let ye of Ee)ye.isHeader?U=ye:(ye.label.toLowerCase().includes(ue)||ye.value&&ye.value.toLowerCase().includes(ue))&&(U&&!w.includes(U)&&w.push(U),w.push(ye));return w},[Ee,ae]);Rn(()=>{if(ee){let ue=oe.findIndex(w=>!w.isHeader);R(ue>=0?ue:0),Z(0)}},[ae]),Rn(()=>{if(ee){if(oe.length===0){R(0),Z(0);return}if(me>=oe.length||oe[me]?.isHeader){let ue=oe.findIndex(w=>!w.isHeader);R(ue>=0?ue:0)}}},[oe,ee]);let[ce,Ce]=At(0),[B,$e]=At(0),[qe,Ct]=At("MB"),[Wt,Hr]=At(!1);Rn(()=>{let ue=!1;return import("./exec_command-27EPEAE5.js").then(w=>{ue||Hr(!!w.isPtyAvailable)}).catch(()=>{}),()=>{ue=!0}},[]),Rn(()=>{let ue=vd.getHeapStatistics().heap_size_limit,w=ue>=1024*1024*1024,U=w?"GB":"MB",ye=w?1024*1024*1024:1024*1024;$e(parseFloat((ue/ye).toFixed(2))),Ct(U);let Xe=()=>{let qt=process.memoryUsage().rss/ye,je=w?parseFloat(qt.toFixed(2)):Math.round(qt);Ce(je)};Xe();let Re=setInterval(()=>{Xe()},3e4);return()=>clearInterval(Re)},[]);let en=ue=>{switch(ue){case"providers":{let U=[{label:"Current Provider",value:"aiProvider",status:f}];return f==="Ollama"&&U.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),U}case"appearance":return[{label:"Theme",value:"theme",status:t.theme||"Dark"},{label:"Loading Phrases",value:"loadingPhrases",status:t.loadingPhrases!==!1?"ON":"OFF"},{label:"Progressive Rendering [EXPERIMENTAL]",value:"progressiveRendering",status:t.progressiveRendering?"ON":"OFF"},{label:"Show TPM Estimate",value:"showTPMEstimate",status:t.showTPMEstimate?"ON":"OFF"}];case"memory":return[{label:"Toggle Memory [Legacy]",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:Tl(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:Bs(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:Bs(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:Bs(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"},{label:"Disable Todo",value:"disableTodo",status:t.disableTodo?"ON":"OFF"}];default:return[]}},tn=ho[L].id,He=en(tn);Sd((ue,w)=>{if(ee){if(w.tab){Ae(U=>U==="search"?"list":"search");return}if(he==="search"){w.escape?Ge(!1):w.downArrow||w.return?Ae("list"):w.backspace||w.delete?fe(U=>U.slice(0,-1)):ue&&!w.ctrl&&!w.meta&&ue.length===1&&fe(U=>U+ue);return}if(w.upArrow)R(U=>{if(oe.length===0)return 0;let ye=(U-1+oe.length)%oe.length,Xe=0;for(;oe[ye]?.isHeader&&Xe<oe.length;)ye=(ye-1+oe.length)%oe.length,Xe++;return ye});else if(w.downArrow)R(U=>{if(oe.length===0)return 0;let ye=(U+1)%oe.length,Xe=0;for(;oe[ye]?.isHeader&&Xe<oe.length;)ye=(ye+1)%oe.length,Xe++;return ye});else if(w.return){let U=oe[me];U&&!U.isHeader&&(m(ye=>{let Xe=U.value==="Default",Re={...ye,CustomSubAgent:!Xe,SubAgentModel:U.value,SubAgentProvider:Xe?"":U.provider||""};return b({systemSettings:Re,apiTier:h,quotas:s}),Re}),Ge(!1))}else w.escape?Ge(!1):ue&&!w.ctrl&&!w.meta&&ue.length===1&&(fe(U=>U+ue),Ae("search"));return}if(De){if(w.upArrow){let U=(Ue-1+xo.length)%xo.length;le(U)}else if(w.downArrow){let U=(Ue+1)%xo.length;le(U)}else if(w.return){let U=xo[Ue];m(ye=>{let Xe={...ye,theme:U};return b({systemSettings:Xe,apiTier:h,quotas:s}),Xe}),A?A():ve(!1)}else w.escape&&(A?A():ve(!1));return}if(Me){w.escape&&re(null);return}if(P==="categories")w.upArrow?_(U=>(U-1+ho.length)%ho.length):w.downArrow?_(U=>(U+1)%ho.length):w.return||w.rightArrow?ho[L].id==="exit"?y("chat"):(N("items"),ge(0)):w.escape&&y("chat");else if(P==="items"){let U=He[q];if(ue==="?"&&U?.value==="dynamicDirAwareness"){y("dynamicDirHelp");return}if(w.upArrow)ge(ye=>(ye-1+He.length)%He.length);else if(w.downArrow)ge(ye=>(ye+1)%He.length);else if(w.leftArrow||w.escape)N("categories");else if(w.return){let ye=He[q];Rt(ye)}}});let Rt=ue=>{if(ue.value==="memory")m(w=>({...w,memory:!w.memory}));else if(ue.value==="sandboxPreset"){let w=Tl(t),U=["Autonomous","Balanced","Strict"],Xe=(U.indexOf(w)+1)%U.length,Re=U[Xe];m(it=>{let We={...it,sandboxPreset:Re};return Re==="Strict"?(We.autoExec=!1,We.allowExternalAccess=!1,We.networkAccess=!1,We.autoApproveCommands="",We.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",We.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",We.autoApproveGit=!1):Re==="Balanced"?(We.autoExec=!0,We.allowExternalAccess=!1,We.networkAccess=!0,We.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",We.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",We.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",We.autoApproveGit=!1):Re==="Autonomous"&&(We.autoExec=!0,We.allowExternalAccess=!0,We.networkAccess=!0,We.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",We.autoDisallowCommands="",We.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",We.autoApproveGit=!0),We})}else if(ue.value==="autoExec")t.autoExec?m(w=>({...w,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?y("doubleDanger"):y("autoExecDanger");else if(ue.value==="externalAccess")t.allowExternalAccess?m(w=>({...w,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?y("doubleDanger"):y("externalDanger");else if(ue.value==="networkAccess")m(w=>({...w,networkAccess:w.networkAccess===!1,sandboxPreset:"Custom"}));else if(ue.value==="alwaysAsk")re("alwaysAskCommands"),pe(t.alwaysAskCommands||"");else if(ue.value==="autoApprove")re("autoApproveCommands"),pe(t.autoApproveCommands||"");else if(ue.value==="autoApproveGit")m(w=>({...w,autoApproveGit:!w.autoApproveGit,sandboxPreset:"Custom"}));else if(ue.value==="autoDisallow")re("autoDisallowCommands"),pe(t.autoDisallowCommands||"");else if(ue.value==="ollamaEndpoint")m(w=>{let U=w.ollamaEndpoint==="Local"?"Cloud":"Local",ye={...w,ollamaEndpoint:U};return b({systemSettings:ye,apiTier:h,quotas:s}),ye});else if(ue.value==="apiTier")y("apiTier");else if(ue.value==="aiProvider")X&&X("settings"),y("selectProvider");else if(ue.value==="advanceRollback")t.advanceRollback?m(w=>{let U={...w,advanceRollback:!1};return b({systemSettings:U,apiTier:h,quotas:s}),U}):y("advanceRollbackDanger");else if(ue.value==="autoDelete"){let w=["1d","7d","30d"],ye=(w.indexOf(t.autoDeleteHistory||"30d")+1)%w.length;m(Xe=>({...Xe,autoDeleteHistory:w[ye]}))}else if(ue.value==="autoUpdate")m(w=>({...w,autoUpdate:!w.autoUpdate}));else if(ue.value==="externalData")if(!t.useExternalData)T({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 w={...t,useExternalData:!1};m(w),b({systemSettings:w,apiTier:h,quotas:s}),k(U=>[...U,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),y("chat")}else if(ue.value==="updateManager")y("updateManager");else if(ue.value==="parserDownload")y("parserDownload");else if(ue.value==="indentationTree")m(w=>{let U={...w,indentationTree:w.indentationTree===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="compressToolResults")m(w=>{let U={...w,compressToolResults:!w.compressToolResults};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="autoTruncateResults")m(w=>{let U={...w,autoTruncateResults:!w.autoTruncateResults};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="imageHistoryCU"){let w=["Low","Standard","Extended"],ye=(w.indexOf(t.imageHistoryCU||"Standard")+1)%w.length;m(Xe=>{let Re={...Xe,imageHistoryCU:w[ye]};return b({systemSettings:Re,apiTier:h,quotas:s}),Re})}else if(ue.value==="contextLength"){let w=["16k","32k","64k","128k","256k","512k","1M"],ye=(w.indexOf(t.contextLength||"256k")+1)%w.length;m(Xe=>{let Re={...Xe,contextLength:w[ye]};return b({systemSettings:Re,apiTier:h,quotas:s}),Re})}else if(ue.value==="keepReasoningContext")m(w=>{let U={...w,keepReasoningContext:!w.keepReasoningContext};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="autoExcludeMetadata")m(w=>{let U={...w,autoExcludeMetadata:!w.autoExcludeMetadata};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="disableTodo")m(w=>{let U={...w,disableTodo:!w.disableTodo};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="subAgents")m(w=>{let U={...w,subAgents:w.subAgents===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="subAgentModel"){let w=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",U=oe.findIndex(ye=>ye.value===w);R(U>=0?U:0),Ge(!0)}else if(ue.value==="preserveThinking")m(w=>{let U={...w,preserveThinking:w.preserveThinking===!1};return ml(U.preserveThinking),b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="dynamicDirAwareness")t.dynamicDirAwareness?m(w=>{let U={...w,dynamicDirAwareness:!1};return b({systemSettings:U,apiTier:h,quotas:s}),U}):y("dynamicDirDanger");else if(ue.value==="loadingPhrases")m(w=>{let U={...w,loadingPhrases:w.loadingPhrases===!1};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="progressiveRendering")m(w=>{let U={...w,progressiveRendering:!w.progressiveRendering};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="showTPMEstimate")m(w=>{let U={...w,showTPMEstimate:!w.showTPMEstimate};return b({systemSettings:U,apiTier:h,quotas:s}),U});else if(ue.value==="theme"){let w=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",U=xo.indexOf(w);le(U>=0?U:0),be(t.theme||"Dark"),ve(!0)}},Se=Je(t.theme);if(ee){let ue=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",w=15,U=te;me<U?U=me:me>=U+w&&(U=me-w+1),U=Math.max(0,Math.min(U,Math.max(0,oe.length-w))),U!==te&&Z(U);let ye=oe.slice(U,U+w);return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:1,width:"100%",minHeight:32},v.createElement(Fe,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:Se.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&v.createElement(j,{color:"gray"},me+1,"/",oe.length)),v.createElement(Fe,{borderStyle:"single",borderColor:he==="search"?Se.primary||"cyan":"gray",paddingX:1,marginBottom:1},v.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),v.createElement(j,{color:Se.text},ae),he==="search"&&v.createElement(j,{color:Se.primary||"cyan"},"\u2588"),!ae&&he!=="search"&&v.createElement(j,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),v.createElement(Fe,{flexDirection:"column",flexGrow:1,height:w},ye.length>0?ye.map((Xe,Re)=>{let it=U+Re;if(Xe.isHeader)return v.createElement(Fe,{key:`hdr-${it}`,paddingX:1},v.createElement(j,{color:"gray",bold:!0,underline:!0},Xe.label));let We=me===it&&he==="list",qt=ue===Xe.value;return v.createElement(Fe,{key:`item-${Xe.value}-${it}`,paddingX:1,backgroundColor:We?Se.highlightBg:void 0},v.createElement(j,{color:We?Se.text:Se.textDim,bold:We},We?"\u276F ":" ",Xe.label,qt?v.createElement(j,{color:Se.primary||"cyan",italic:!0}," (active)"):""))}):v.createElement(Fe,{paddingX:1},v.createElement(j,{color:"gray",italic:!0},'No models matching "',ae,'"'))),v.createElement(Fe,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),v.createElement(j,{color:he==="search"?Se.primary||"cyan":"gray",bold:!0},"[",he.toUpperCase()," MODE]")))}if(De){let ue=xo[Ue],w=Je(ue);return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:w.border,padding:1,width:"100%",minHeight:32},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.text,bold:!0},"Choose your color scheme:")),v.createElement(Fe,{flexDirection:"row",width:"100%",flexGrow:1},v.createElement(Fe,{flexDirection:"column",width:"30%",paddingRight:1},xo.map((U,ye)=>{let Xe=Ue===ye,Re=(t.theme||"Dark")===U,it=U==="Forest Sprite";return v.createElement(Fe,{key:U,paddingX:0},v.createElement(j,{color:Xe?w.text:w.textDim,bold:Xe},Xe?"> ":" ",U,it&&v.createElement(j,{color:Xe?w.success||"#52b788":"green",bold:!0}," \u2605"),Re?v.createElement(j,{color:w.primary||"cyan",italic:!0}," (saved)"):""))})),v.createElement(Fe,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:w.borderMuted,paddingX:2,paddingY:1,backgroundColor:w.cardBg},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.secondary||"cyan",bold:!0},"> ","you: "),v.createElement(j,{color:w.text},"add a greeting function")),v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:w.success||"green"}," Here's the change:")),v.createElement(Fe,{flexDirection:"column",marginLeft:2,marginBottom:1},v.createElement(j,null,v.createElement(j,{color:w.textDim},"3 "),v.createElement(j,{color:w.textDim},' import "fmt"')),v.createElement(j,{color:w.textDim},"4"),v.createElement(Fe,{backgroundColor:w.diffRemovalBg},v.createElement(j,null,v.createElement(j,{color:w.diffRemovalNum||w.diffRemovalText},"5 "),v.createElement(j,{color:w.diffRemovalPrefix||w.diffRemovalText},"- "),v.createElement(j,{color:w.diffRemovalText},"func "),v.createElement(j,{color:w.diffRemovalHighlightColor||w.diffRemovalText,backgroundColor:w.diffRemovalHighlightBg,bold:!0},"main()"),v.createElement(j,{color:w.diffRemovalText}," {"))),v.createElement(Fe,{backgroundColor:w.diffAdditionBg},v.createElement(j,null,v.createElement(j,{color:w.diffAdditionNum||w.diffAdditionText},"5 "),v.createElement(j,{color:w.diffAdditionPrefix||w.diffAdditionText},"+ "),v.createElement(j,{color:w.diffAdditionText},"func "),v.createElement(j,{color:w.diffAdditionHighlightColor||w.diffAdditionText,backgroundColor:w.diffAdditionHighlightBg,bold:!0},"greet(name string)"),v.createElement(j,{color:w.diffAdditionText}," {"))),v.createElement(Fe,{backgroundColor:w.diffAdditionBg},v.createElement(j,null,v.createElement(j,{color:w.diffAdditionNum||w.diffAdditionText},"6 "),v.createElement(j,{color:w.diffAdditionPrefix||w.diffAdditionText},"+ "),v.createElement(j,{color:w.diffAdditionText}," "),v.createElement(j,{color:w.diffAdditionHighlightColor||w.diffAdditionText,backgroundColor:w.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),v.createElement(j,{color:w.textDim},"7 }")),v.createElement(Fe,{flexDirection:"column",marginTop:1,marginBottom:1},v.createElement(j,{color:w.textDim},"\u25BE Thought Process"),v.createElement(j,{color:w.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),v.createElement(Fe,{flexDirection:"column"},v.createElement(j,null,v.createElement(j,{color:w.warning||"yellow"},"\u2699 tool: "),v.createElement(j,{color:w.text},"write_file main.go")),v.createElement(j,null,v.createElement(j,{color:w.accent||"magenta"},"\u29BF task: "),v.createElement(j,{color:w.text},"Implementing greeting")),v.createElement(j,null,v.createElement(j,{color:w.danger||"red"},"X error: "),v.createElement(j,{color:w.text},"compilation failed")),v.createElement(j,null,v.createElement(j,{color:w.warning||"yellow"},"\u26A0 warning: "),v.createElement(j,{color:w.text},"deprecation warning")),v.createElement(j,null,v.createElement(j,{color:w.info||"blue"},"\u2192 link: "),v.createElement(j,{color:w.info||"blue",underline:!0},"file:///path/to/main.go")),v.createElement(j,null,v.createElement(j,{color:w.accent||"magenta"},"\u2605 accent: "),v.createElement(j,{color:w.text},"highlighted text")),v.createElement(j,{color:w.textDim},"\xB7 dim: press Enter to continue")))),v.createElement(Fe,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),v.createElement(j,{color:"gray"},"Previewing: ",xo[Ue],xo[Ue]==="Forest Sprite"?" \u2605":"")))}return v.createElement(Fe,{flexDirection:"column",borderStyle:"round",borderColor:Se.border,padding:0,width:"100%",minHeight:32},v.createElement(Fe,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:Se.borderMuted,width:"100%"},v.createElement(j,{color:Se.text,bold:!0},"SYSTEM CONFIGURATION")),v.createElement(Fe,{flexDirection:"row",width:"100%",minHeight:26},v.createElement(Fe,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:P==="categories"?Se.border:Se.borderMuted,padding:1,paddingY:0},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:P==="categories"?Se.text:Se.textDim,bold:!0,underline:!0},"CATEGORIES")),ho.map((ue,w)=>{let U=L===w,ye=ue.id==="exit";return v.createElement(Fe,{key:ue.id,marginTop:ye?15:0,backgroundColor:U?P==="categories"?Se.highlightBg:Se.cardBg:void 0,paddingX:1},v.createElement(j,{color:U&&P==="categories"?Se.text:Se.textDim,bold:U},U?"\u276F ":" ",ue.label))})),v.createElement(Fe,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:P==="items"?Se.border:Se.borderMuted,paddingX:1,marginLeft:1,paddingY:0},v.createElement(Fe,{marginBottom:1},v.createElement(j,{color:P==="items"?Se.text:Se.textDim,bold:!0,underline:!0},ho[L].label.toUpperCase().includes("EXIT")?"Runtime Information":`${ho[L].label} Settings`)),He.length>0?(()=>{let ue=null,w=[],U=je=>(je||"").split(",").map(kt=>kt.trim().toLowerCase()).filter(Boolean),ye=U(t.autoApproveCommands),Xe=U(t.autoDisallowCommands),Re=U(t.alwaysAskCommands),it=[...ye,...Xe,...Re],We=new Set(it),qt=tn==="security"&&it.length!==We.size;return He.forEach((je,kt)=>{let zt=P==="items"&&q===kt,Xr=je.label.length,on=Math.max(2,38-Xr),Gr=".".repeat(on),mt=Le=>tn==="security"?(Le.value==="autoExec"||Le.value==="externalAccess")&&Le.status==="ON"?Se.statusOn:Se.statusOff:Le.status?.startsWith("\u2713")?Se.statusOn:Le.status?.startsWith("\u26A0")?Se.statusOff:Le.status==="ON"?Se.statusOn:Le.status==="OFF"?Se.statusOff:Se.text;je.section&&je.section!==ue&&(ue=je.section,w.push(v.createElement(Fe,{key:`sec-hdr-${je.section}`,marginTop:w.length>0?1:0,marginBottom:0,paddingX:1},v.createElement(j,{color:"gray",bold:!0,underline:!0},je.section.toUpperCase()))));let z=zt&&Me&&(Me==="alwaysAskCommands"&&je.value==="alwaysAsk"||Me==="autoApproveCommands"&&je.value==="autoApprove"||Me==="autoDisallowCommands"&&je.value==="autoDisallow"),lt=je.value==="alwaysAsk"||je.value==="autoApprove"||je.value==="autoDisallow",Go=je.value==="parserDownload";w.push(v.createElement(Fe,{key:je.value,flexDirection:"column"},v.createElement(Fe,{backgroundColor:zt&&!z?Se.highlightBg:void 0,paddingX:2},v.createElement(j,{color:zt?Se.text:Se.textDim,bold:zt},zt?"\u276F ":" ",je.label),!lt&&!Go&&v.createElement(v.Fragment,null,v.createElement(j,{color:"gray"},Gr),v.createElement(j,{color:mt(je),bold:!0},je.value==="aiProvider"?je.status:`[ ${je.status} ]`))),lt&&!z&&je.status!=="None"&&v.createElement(Fe,{paddingX:4,marginBottom:1},v.createElement(j,{color:"gray"},"\u21B3 ",je.status)),z&&v.createElement(Fe,{flexDirection:"column",marginLeft:4,marginBottom:1},v.createElement(Fe,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},v.createElement(j,{color:"gray",bold:!0},"> "," "),v.createElement(Cd,{value:ie,onChange:pe,onSubmit:Le=>{let _t={...t,[Me]:Le.trim(),sandboxPreset:"Custom"};m(_t),b({systemSettings:_t,apiTier:h,quotas:s}),re(null)}})),v.createElement(j,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),qt&&w.push(v.createElement(Fe,{key:"conflict-warning",marginTop:1,paddingX:1},v.createElement(j,{color:Se.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),w})():v.createElement(Fe,{paddingX:1,flexDirection:"column",width:"100%"},tn==="exit"?v.createElement(v.Fragment,null,v.createElement(Fe,{flexDirection:"column",marginBottom:1},v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"OS"," "),v.createElement(j,{color:"gray"},"..................... "),v.createElement(j,{color:Se.text},process.env.OS||process.platform||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Computer Name"," "),v.createElement(j,{color:"gray"},".......... "),v.createElement(j,{color:Se.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Processor Count"," "),v.createElement(j,{color:"gray"},"........ "),v.createElement(j,{color:Se.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Node.js Version"," "),v.createElement(j,{color:"gray"},"........ "),v.createElement(j,{color:Se.text},"v",process.versions.node)),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"V8 Version"," "),v.createElement(j,{color:"gray"},"...... ...... "),v.createElement(j,{color:Se.text},"v",process.versions.v8)),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Data Directory"," "),v.createElement(j,{color:"gray"},"......... "),ro===mo?"":v.createElement(j,{color:Se.text},ro.replaceAll(wl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),v.createElement(j,{color:Se.text},mo.replaceAll(wl.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),v.createElement(Fe,{flexDirection:"row"},v.createElement(j,{color:Se.textDim},"Viewport"," "),v.createElement(j,{color:"gray"},"............... "),v.createElement(j,{color:Se.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),v.createElement(Fe,{flexDirection:"row",marginBottom:0},v.createElement(j,{color:Se.textDim},"Memory Load"," "),v.createElement(j,{color:"gray"},"............ "),v.createElement(j,{color:Se.text},ce,"/",B," ",qe))),v.createElement(Fe,{key:"pty-notice",paddingX:0,marginTop:0},v.createElement(j,{color:Wt?Se.statusOn:Se.warning},Wt?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):v.createElement(j,{color:"gray",italic:!0},ho[L].desc)))),v.createElement(Fe,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},v.createElement(j,{color:"gray",italic:!0},P==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":He[q]?.value==="dynamicDirAwareness"?"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 ? HELP \u2022 \u25C4/ESC to go back":"\u25B2\u25BC Select Option \u2022 Enter to Toggle \u2022 \u25C4/ESC to go back"),P==="categories"&&v.createElement(j,{color:"gray"},ho[L].desc)))}import Jt,{useState as ks,useEffect as Ed}from"react";import{Box as Dn,Text as er}from"ink";import Dd from"ink-text-input";function Is({initialData:t,onSave:m,onCancel:h,theme:y="Dark"}){let T=Je(y),[b,s]=ks(0),[k,f]=ks(""),[I,A]=ks(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),X=[{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],S=X[b];Ed(()=>{let L=X[b].key;f((I[L]||"").slice(0,X[b].maxLength))},[b,I]);let C=L=>{L.length>S.maxLength?f(L.slice(0,S.maxLength)):f(L)},P=L=>{if(L.trim().toLowerCase()==="/cancel"){h();return}let _=S.key,q={...I,[_]:L.trim().slice(0,S.maxLength)};A(q),f(""),b<X.length-1?s(b+1):m(q)},N=k.length>=S.maxLength;return Jt.createElement(Dn,{borderStyle:"round",borderColor:T.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},Jt.createElement(Dn,{paddingX:1,marginBottom:1},Jt.createElement(er,{color:T.text,bold:!0},"USER PROFILE CONFIGURATION")),Jt.createElement(Dn,{paddingX:1,flexDirection:"column"},Jt.createElement(Dn,null,Jt.createElement(er,{color:T.text,bold:!0},S.label),Jt.createElement(Dd,{value:k,onChange:C,onSubmit:P})),Jt.createElement(Dn,{marginTop:1,justifyContent:"space-between"},Jt.createElement(er,{color:T.textMuted,italic:!0},"Step ",b+1," of ",X.length),Jt.createElement(er,{color:N?T.warning||"yellow":T.textMuted},"[",k.length,"/",S.maxLength,"]"))),Jt.createElement(Dn,{paddingX:1,marginTop:1},Jt.createElement(er,{color:T.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import yt,{useState as As}from"react";import{Box as Zt,Text as $o,useInput as Bd}from"ink";import kd from"ink-text-input";var Id=({question:t,options:m,onResolve:h,theme:y="Dark"})=>{let T=Je(y),[b,s]=As(!1),[k,f]=As(""),[I,A]=As(0),X=!1,S=[],C=Array.isArray(m)&&m.length>0,P=t==="Agent has been running for a long time. Do you want to continue execution?";try{P&&C?S=[...m]:S=[...C?m:[],C?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{X=!0}Bd((L,_)=>{if(!b&&((_.leftArrow||_.upArrow)&&A(q=>Math.max(0,q-1)),(_.rightArrow||_.downArrow)&&A(q=>Math.min(S.length-1,q+1)),_.return)){let q=S[I];q?.id==="CUSTOM"?s(!0):h(X?"Selected Nothing":q.label)}});let N=nt(2);return b?yt.createElement(Zt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:T.codeBg,width:"100%"},yt.createElement(Zt,{paddingX:1},yt.createElement($o,{color:T.text,bold:!0},"SUGGEST SOMETHING")),yt.createElement(Zt,{marginTop:1,paddingX:1},yt.createElement($o,{italic:!0,color:T.textMuted},"Replying to: ",t)),yt.createElement(Zt,{marginTop:1,paddingX:1,flexDirection:"row"},yt.createElement(kd,{value:k,onChange:f,onSubmit:()=>h(k)})),yt.createElement(Zt,{marginTop:1,paddingX:1,marginBottom:1},yt.createElement($o,{color:T.textMuted,italic:!0},"(Press Enter to send)"))):yt.createElement(Zt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:T.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},yt.createElement(Zt,{paddingX:1,marginBottom:1},yt.createElement($o,{color:"yellow",bold:!0},P?"TURN SAFETY SYSTEM: EXECUTION LIMIT":"AGENT REQUEST: ACTION REQUIRED")),yt.createElement(Zt,{paddingX:1,marginBottom:1},yt.createElement($o,{color:T.text},t)),yt.createElement(Zt,{flexDirection:"column",width:"100%"},S.map((L,_)=>{let q=_===I;return yt.createElement(Zt,{key:L.id,flexDirection:"column",width:"100%",backgroundColor:q?T.highlightBg:void 0,paddingX:1,marginBottom:_===S.length-1?0:1},yt.createElement($o,{color:q?T.text:T.textMuted,bold:q},q?"\u276F ":" ",L.label),L.description&&yt.createElement(Zt,{marginLeft:4},yt.createElement($o,{color:T.textMuted,italic:!0},L.description)))})),yt.createElement(Zt,{paddingX:1,marginTop:1,marginBottom:1},yt.createElement($o,{color:T.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},yl=Id;import Zd from"gradient-string";import Lt,{useState as Ls,useEffect as Ad}from"react";import{Box as po,Text as _o,useInput as Ld}from"ink";function Ps({onSelect:t,onDelete:m,onClose:h,theme:y="Dark"}){let T=Je(y),[b,s]=Ls({}),[k,f]=Ls([]),[I,A]=Ls(0);Ad(()=>{(async()=>{let L=await Fo();s(L),f(Object.keys(L).sort((_,q)=>(L[q].updatedAt||0)-(L[_].updatedAt||0)))})()},[]),Ld((N,L)=>{if(L.escape&&h(),L.upArrow&&A(_=>Math.max(0,_-1)),L.downArrow&&A(_=>Math.min(k.length-1,_+1)),L.return&&k[I]&&t(k[I]),N==="x"&&k[I]){let _=k[I];m(_).then(q=>{let ge=q||{};s(ge);let Me=Object.keys(ge).sort((re,ie)=>(ge[ie]?.updatedAt||0)-(ge[re]?.updatedAt||0));f(Me),A(re=>Math.max(0,Math.min(Me.length-1,re)))})}});let X=nt(2),S=15,C=0;if(k.length>S){let N=Math.floor(S/2);C=I-N,C<0?C=0:C+S>k.length&&(C=k.length-S)}let P=k.slice(C,C+S);return Lt.createElement(po,{flexDirection:"column",borderStyle:"round",borderColor:T.borderMuted,padding:0,width:"100%"},Lt.createElement(po,{paddingX:1,marginBottom:1},Lt.createElement(_o,{color:T.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),k.length===0?Lt.createElement(po,{paddingX:2,paddingY:1},Lt.createElement(_o,{italic:!0,color:T.textMuted},"No saved chats found.")):Lt.createElement(po,{flexDirection:"column",width:"100%"},C>0&&Lt.createElement(po,{paddingX:2,marginBottom:1},Lt.createElement(_o,{color:T.textMuted},"\u25B2 (+",C," more chats above)")),P.map((N,L)=>{let _=b[N],ge=C+L===I,Me=Pd(_?.updatedAt);return Lt.createElement(po,{key:N,paddingX:1,backgroundColor:ge?T.highlightBg:void 0,width:"100%"},Lt.createElement(po,{flexGrow:1},Lt.createElement(_o,{color:ge?T.text:T.textMuted,bold:ge},ge?"\u276F ":" ",(()=>{let re=ie=>(ie||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return _?.name&&!_.name.startsWith("Session")?re(_.name):_?.prompt?re(_.prompt):re(_?.name)||N})(),Lt.createElement(_o,{color:T.textMuted}," [",Me," \u2022 ",N,"]"))),ge&&Lt.createElement(po,{flexShrink:0},Lt.createElement(_o,{color:T.danger,bold:!0},"[X] DELETE ")))}),C+S<k.length&&Lt.createElement(po,{paddingX:2,marginTop:1},Lt.createElement(_o,{color:T.textMuted},"\u25BC (+",k.length-(C+S)," more chats below)"))),Lt.createElement(po,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:T.borderMuted},Lt.createElement(_o,{color:T.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function Pd(t){if(!t)return"N/A";let m=new Date(t);if(isNaN(m.getTime()))return"N/A";let h=k=>String(k).padStart(2,"0"),y=h(m.getMonth()+1),T=h(m.getDate()),b=h(m.getHours()),s=h(m.getMinutes());return`${y}-${T} ${b}:${s}`}import Mt,{useState as Os,useEffect as Od}from"react";import{Box as bo,Text as lo,useInput as Nd,useStdout as Fd}from"ink";function Ns({onClose:t,theme:m="Dark"}){let h=Je(m),{stdout:y}=Fd(),T=y?.columns||80,[b,s]=Os([]),[k,f]=Os(0),[I,A]=Os(!0),X=()=>{let re=wr(Gn,[]);s(re);try{let pe=Tr(zo,{}).systemSettings?.memory!==!1;A(pe)}catch{A(!0)}};Od(()=>{X()},[]),Nd((re,ie)=>{if(ie.escape&&t(),ie.upArrow&&f(pe=>Math.max(0,pe-1)),ie.downArrow&&f(pe=>Math.min(b.length-1,pe+1)),re==="x"&&b.length>0){let pe=b[k].id,De=b.filter(ve=>ve.id!==pe);Di(Gn,De),s(De),k>=De.length&&De.length>0&&f(De.length-1)}});let S=(re,ie,pe)=>{if(!re)return"";let De=re.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),Ue=`${pe?"\u276F ":" "}${ie+1}. `.length,le=pe?22:2;return De.split(`
|
|
45
45
|
`).map((be,ee)=>{let Ge=ee===0,me=Math.max(10,T-4-(Ge?Ue:3)-le),R=Math.max(10,T-4-3-le),te=be.split(/(\s+)/),Z=[],ae="";if(te.forEach(he=>{if(he.length===0)return;let Ae=Z.length===0?me:R;ae.length+he.length>Ae?ae.trim().length>0?(Z.push(ae.trimEnd()),ae=he):(Z.push(he.substring(0,Ae)),ae=he.substring(Ae)):ae+=he}),ae.trimEnd().length>0&&Z.push(ae.trimEnd()),Z.length===0)return"";let fe=Z.join(`
|
|
46
46
|
`);return Ge?fe:" "+fe}).join(`
|
|
47
47
|
`)},C=4*1024*2,P=b.reduce((re,ie)=>re+(ie.memory?.length||0),0),N=Math.min(100,Math.round(P/C*100)),L=12,_=Math.round(N/100*L),q="\u2588".repeat(_)+"\u2591".repeat(Math.max(0,L-_)),ge=()=>N<50?h.textMuted:N<90?h.warning:h.danger,Me=nt(2);return Mt.createElement(bo,{flexDirection:"column",borderStyle:"round",borderColor:h.borderMuted,padding:0,width:"100%"},Mt.createElement(bo,{paddingX:1,marginBottom:1,justifyContent:"space-between"},Mt.createElement(lo,{color:h.text,bold:!0},"SAVED MEMORIES"),Mt.createElement(bo,null,Mt.createElement(lo,{color:h.textMuted},"Vault: "),Mt.createElement(lo,{color:ge()},q),Mt.createElement(lo,{color:h.text,bold:!0}," ",N,"%"))),!I&&b.length>0?Mt.createElement(bo,{paddingX:2,paddingY:1},Mt.createElement(lo,{italic:!0,color:h.textMuted},"Memory is currently Off...")):b.length===0?Mt.createElement(bo,{paddingX:2,paddingY:1},Mt.createElement(lo,{italic:!0,color:h.textMuted},I?"Learning...":"Memory not available...")):Mt.createElement(bo,{flexDirection:"column"},b.map((re,ie)=>{let pe=ie===k;return Mt.createElement(bo,{key:re.id,paddingX:1,backgroundColor:pe?h.highlightBg:void 0,width:"100%"},Mt.createElement(bo,{flexGrow:1},Mt.createElement(lo,{color:pe?h.text:h.textMuted,bold:pe},pe?"\u276F ":" ",ie+1,". ",S(re.memory,ie,pe))),pe&&Mt.createElement(bo,{flexShrink:0},Mt.createElement(lo,{color:h.textMuted,dimColor:!0}," [",Mt.createElement(lo,{italic:!0},re.score),"] "),Mt.createElement(lo,{color:h.danger,bold:!0},"[X] WIPE ")))})),Mt.createElement(bo,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:h.borderMuted},Mt.createElement(lo,{color:h.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 x wipe memory \u2022 Esc close")))}import ft,{useState as Nr,useEffect as Ml}from"react";import{Box as Ho,Text as Nt}from"ink";import{spawn as Sl}from"child_process";var Cl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Ud=({latest:t,current:m,settings:h,onClose:y,onUpdateSettings:T,onSuccess:b})=>{let[s,k]=Nr("initializing"),[f,I]=Nr(""),[A,X]=Nr(null),[S,C]=Nr(0);if(Ml(()=>{let P=setInterval(()=>{C(N=>(N+1)%1e3)},33);return()=>clearInterval(P)},[]),Ml(()=>{let P;return(async()=>{let L=h.updateManager||"npm";if(!h.updateManager){T();return}let _="";L==="pnpm"?_=`pnpm add -g fluxflow-cli@${t}`:L==="bun"?_=`bun add -g fluxflow-cli@${t}`:L==="yarn"?_=`yarn global add fluxflow-cli@${t}`:L==="custom"?_=h.customUpdateCommand:_=`npm install -g fluxflow-cli@${t}`,k("downloading"),I(`Running: ${_}...`);let q=process.platform==="win32",ge=re=>new Promise(ie=>{let pe=q?re?"powershell.exe":"cmd.exe":process.env.SHELL||"bash",De=q?re?["-NoProfile","-Command",_]:["/c",_]:["-c",_],ve=le=>{let be=le.toString().replace(/\x1B\[[0-?]*[ -/]*[@-~]|\x1B\][^\x07\x1B]*[\x07\x1B]|\b|\x07/g,"").replace(/\r/g,"").trim();be&&I(ee=>{let Ge=ee.split(`
|