fluxflow-cli 4.7.0 → 4.7.2
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 -1
- package/dist/chunks/{ai-DU5WGWHM.js → ai-3PF5H72T.js} +1 -1
- package/dist/chunks/{app-BSYE4L5G.js → app-FGL2UV4T.js} +2 -2
- package/dist/chunks/{chunk-N2OGM2AO.js → chunk-VTQAATD5.js} +355 -308
- package/dist/cli.js +9 -9
- package/dist/package.json +3 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-%3E%3D22-green?style=plastic" alt="Node Compatibility"></a>
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
|
-
###
|
|
10
|
+
### One of the lightest, fastest, high-fidelity agentic CLI with sub-agents & computer use.
|
|
11
|
+
#### *Only ~590 tokens total system prompt with tools.*
|
|
11
12
|
|
|
12
13
|
📖 **[Official Documentation](https://fluxflow-cli.onrender.com/)**
|
|
13
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as r,L as b,M as c,N as d,O as e,P as f,Q as g,R as h,S as i,T as j,U as k,V as l,W as m,X as n,Y as o,Z as p,_ as q}from"./chunk-
|
|
1
|
+
import{$ as r,L as b,M as c,N as d,O as e,P as f,Q as g,R as h,S as i,T as j,U as k,V as l,W as m,X as n,Y as o,Z as p,_ as q}from"./chunk-VTQAATD5.js";import"./chunk-JM3JCK2K.js";import"./chunk-QLPFOHKZ.js";import{c as a}from"./chunk-IJCIHHAH.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import"./chunk-56EJGQU3.js";import"./chunk-ROHVHR3J.js";export{c as RE_LEADING_THINK,o as compressHistory,b as convertChannelThinkTags,p as deleteChatSummary,e as findGenuineThinkClose,q as getAIStream,i as getCleanGroupedLength,l as getGoogleClient,f as getLeadingThinkBlock,n as initAI,d as isInsideBacktick,a as isModelMultimodal,k as isTerminationSignaled,m as runJanitorTask,r as runSubagent,j as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as Ii,B as Ai,C as Li,D as cr,E as Oi,F as Pi,G as Ni,H as Fi,I as is,J as jo,K as ur,T as $i,W as Xi,X as On,Y as _i,Z as Hi,_ as Gi,a as yt,b as ht,c as ut,d as Mi,e as os,f as ns,g as In,h as Bi,i as ho,j as Ei,k as je,l as Qe,m as lr,n as An,o as rs,p as Di,q as an,r as Wt,s as vi,t as ar,u as ki,v as Ln,w as Ao,x as dn,y as dr,z as ss}from"./chunk-
|
|
1
|
+
import{A as Ii,B as Ai,C as Li,D as cr,E as Oi,F as Pi,G as Ni,H as Fi,I as is,J as jo,K as ur,T as $i,W as Xi,X as On,Y as _i,Z as Hi,_ as Gi,a as yt,b as ht,c as ut,d as Mi,e as os,f as ns,g as In,h as Bi,i as ho,j as Ei,k as je,l as Qe,m as lr,n as An,o as rs,p as Di,q as an,r as Wt,s as vi,t as ar,u as ki,v as Ln,w as Ao,x as dn,y as dr,z as ss}from"./chunk-VTQAATD5.js";import{b as ln,c as Zr,k as Ti}from"./chunk-JM3JCK2K.js";import{b as ts}from"./chunk-A2MCYGU4.js";import{a as bi,b as yi,c as sr,d as ir,f as bt,g as Vo,h as es,l as Si}from"./chunk-QLPFOHKZ.js";import{a as hi,b as xi,c as pi,e as Io,f as ro,g as wi,h as Rr,i as kt}from"./chunk-IJCIHHAH.js";import{c as mi,d as gi,e as fi}from"./chunk-SIINYZWE.js";import{e as Ci}from"./chunk-7PJOF5I2.js";import{a as ko,b as kn,c as no,d as rr,e as zr,j as Jr}from"./chunk-4TZKD2XR.js";import{a as Ui}from"./chunk-56EJGQU3.js";import"./chunk-ROHVHR3J.js";import vs from"os";import e,{useState as Q,useEffect as ze,useRef as Ve,useMemo as fn}from"react";import{Box as c,Text as s,useInput as Bd,useStdout as Ed,Static as Dd}from"ink";import vd from"ink-spinner";import st from"fs-extra";import Et from"path";import{exec as mo}from"child_process";import{fileURLToPath as kd}from"url";import Ut,{useState as mr,useEffect as ls,useMemo as Pn,useCallback as zl,useRef as xo}from"react";import{Box as Jl,Text as eo,useInput as Zl}from"ink";function Rl(t,g){return t.replace(/\t/g," ".repeat(g))}function gr(t){return t==null?"":t.replace(/\r\n/g,`
|
|
2
2
|
`).replace(/\r/g,`
|
|
3
3
|
`)}function Ko(t,g,x){let S=t,w=[...g].sort((i,E)=>i.start-E.start),p=0;for(let i of w){let E=i.start-p,u=gr(i.text).split(`
|
|
4
4
|
`).length,B=i.text.length,M=(u>3?`[Pasted ${u} lines]`:`[Pasted ${B} chars]`).length,U=E+M;if(t<=E)break;if(t<U){S=i.end;break}else{let D=i.text.length-M;S+=D,p+=D}}return Math.min(S,x.length)}function as(t,g,x,S,w=[]){let p=(t||"").slice(0,g),i=S(p).length,E=S(t||""),u=[...w].sort((O,L)=>L.start-O.start);for(let O of u){let L=S(t.slice(0,O.start)).length,$=S(O.text),te=L+$.length,le=gr(O.text).split(`
|
|
@@ -38,7 +38,7 @@ import{A as Ii,B as Ai,C as Li,D as cr,E as Oi,F as Pi,G as Ni,H as Fi,I as is,J
|
|
|
38
38
|
`),terminalWidth:g,theme:p}));if(u==="diff-line"){let{isFirstLine:D,isLastLine:v}=t,k=(O=!1)=>r.createElement(A,{backgroundColor:i.codeBg,paddingX:1,width:g,marginBottom:O?1:0},r.createElement(A,{width:3,flexShrink:0}),r.createElement(A,{width:1,flexShrink:0,marginLeft:1}),r.createElement(A,{flexGrow:1,marginLeft:1},r.createElement(R,null," ")));return r.createElement(A,{flexDirection:"column"},D&&k(!1),r.createElement(Ki,{line:B,pairContent:t.pairContent,parentText:void 0,columns:g,theme:p}),v&&k(!0))}if(u==="code-fence-open"){let D={paddingLeft:2,width:"100%"};return r.createElement(A,{flexDirection:"column",marginTop:0,marginBottom:0,width:"100%"},r.createElement(A,{flexDirection:"row",...D},r.createElement(R,null," ")),r.createElement(A,{flexDirection:"row",...D},r.createElement(R,{color:"gray",bold:!0},"\u25B6_ ",(B||"TEXT").toUpperCase())))}if(u==="code-line"){let{lineNum:D,lang:v}=t,k=g-12,L=ht(B,Math.max(10,k)).split(`
|
|
39
39
|
`);return r.createElement(A,{flexDirection:"column",width:"100%"},L.map(($,te)=>r.createElement(A,{key:te,flexDirection:"row",borderColor:i.codeBorder,paddingLeft:2,width:"100%"},r.createElement(A,{width:5,flexShrink:0},r.createElement(R,{color:"gray",dimColor:!0},te===0?String(D).padStart(4," ")+" ":" ")),r.createElement(A,{flexGrow:1},Ot($,v,i.text)))))}if(u==="code-fence-close")return r.createElement(A,{flexDirection:"row",paddingLeft:2,marginBottom:1,width:"100%"},r.createElement(R,null," "));if(u==="write-header")return r.createElement(A,{flexDirection:"column",paddingX:1,width:g},r.createElement(un,{text:B,columns:g,theme:p}));if(u==="write-line"){let{gutterWidth:D,lineNum:v,isFirstLine:k,isLastLine:O,extension:L,wrappedLines:$}=t,te=(le=!1)=>r.createElement(A,{flexDirection:"row",width:g,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:i.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:i.codeBg,marginBottom:le?1:0},r.createElement(A,{width:D+2,flexShrink:0},r.createElement(R,null," ".repeat(D+2))),r.createElement(A,{flexGrow:1},r.createElement(R,null," ")));return r.createElement(A,{flexDirection:"column"},k&&te(!1),r.createElement(A,{flexDirection:"row",width:g,borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,borderColor:i.codeBorder,paddingLeft:2,paddingRight:0,backgroundColor:i.codeBg},r.createElement(A,{width:D+2,flexShrink:0},r.createElement(R,{color:"gray",dimColor:!0},String(v).padStart(D," ")," ")),r.createElement(A,{flexGrow:1,flexDirection:"column"},($||[B]).map((le,ge)=>r.createElement(A,{key:ge},Ot(le,L,i.text))))),O&&te(!0))}return u==="write-footer"?r.createElement(A,{flexDirection:"column",paddingX:1,width:g,marginTop:1,marginBottom:1},r.createElement(un,{text:B,columns:g,theme:p})):u==="worked-duration"?r.createElement(A,{marginTop:1,marginBottom:2,paddingX:1,width:"100%"},r.createElement(R,{color:i.textMuted},"["),r.createElement(R,{color:i.textMuted},"Worked for ",r.createElement(R,{bold:!0,color:i.text},us(U))),r.createElement(R,{color:i.textMuted},"]")):null}),bc=r.memo(({messages:t,showFullThinking:g,columns:x=80,aiProvider:S,version:w,theme:p="Dark"})=>r.createElement(A,{flexDirection:"column",width:"100%"},t.map((i,E)=>r.createElement(qi,{key:i.id||E,msg:i,showFullThinking:g,columns:x,aiProvider:S,version:w,theme:p}))));import mt from"react";import{Box as Oo,Text as so}from"ink";import{useState as Fn,useEffect as Un,useRef as xr}from"react";var $n=null;function Qi(){$n&&$n()}var Ka=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 x=0;x<g.length-1;x++){let S=g[x],w=g[x+1];if(t>=S.t&&t<=w.t){let p=(t-S.t)/(w.t-S.t);p=p*p*(3-2*p);let i=Math.round(S.r+(w.r-S.r)*p),E=Math.round(S.g+(w.g-S.g)*p),u=Math.round(S.b+(w.b-S.b)*p);return`#${((1<<24)+(i<<16)+(E<<8)+u).toString(16).slice(1)}`}}return"#ff0000"},qa=mt.memo(({mode:t,thinkingLevel:g,tokens:x="0.0k",tokensTotal:S="0.0k",chatId:w="NEW-SESSION",isMemoryEnabled:p=!0,apiTier:i="Free",aiProvider:E="Google",activeModel:u="",isProcessing:B=!1,lastChunkTime:M=0,theme:U="Dark",wps:D=0,showTPMEstimate:v=!1})=>{let k=je(U),O="",[L,$]=Fn(0),[te,le]=Fn(0),[ge,z]=Fn("MB"),[K,se]=Fn("green"),[De,Se]=Fn(0),ke=xr([]),de=xr(370),Ne=xr([]),we=xr(M);Un(()=>{we.current=M},[M]),Un(()=>{if(!B){Ne.current=[];return}if(D>0){let j=Ne.current;j.push(D),j.length>3&&j.shift()}},[B,D,M]),Un(()=>{if(!B){Se(0);return}let j=setInterval(()=>{let ae=we.current,xe=ae>0?Date.now()-ae:0;if(ae>0&&xe>1500)Ne.current=[],Se(0);else if(ae>0&&xe>600){Ne.current.length>0&&Ne.current.shift();let Me=Ne.current;if(Me.length>0){let Te=Me.reduce((qe,Je)=>qe+Je,0),Le=Math.round(Te/Me.length*10)/10;Se(Le)}else Se(0)}else{let Me=Ne.current;if(Me.length>0){let Te=Me.reduce((qe,Je)=>qe+Je,0),Le=Math.round(Te/Me.length*10)/10;Se(Le)}else D>0&&Se(D)}},1350);return()=>clearInterval(j)},[B]),Un(()=>{if(!B){ke.current=[];return}if(M>0){let xe=ke.current;(xe.length===0||xe[xe.length-1]!==M)&&(xe.push(M),xe.length>10&&xe.shift())}let j=()=>{if(!M){se("#00a564");return}let xe=ke.current,Me=0;if(xe.length>1){let he=0;for(let Fe=1;Fe<xe.length;Fe++)he+=xe[Fe]-xe[Fe-1];Me=he/(xe.length-1)}let Te=Date.now()-M,qe=Te>=2500,Je=!qe&&Me>0?Math.min(Te,Me*3):Te,ve=Math.max(Me,Je),oe=qe?.4:.2;de.current=de.current*(1-oe)+ve*oe,se(Ka(de.current))};j();let ae=setInterval(j,100);return()=>clearInterval(ae)},[B,M]);let V=()=>{let j=process.memoryUsage(),ae=j.heapTotal/(1024*1024)>=1024,xe=ae?"GB":"MB",Me=(Te,Le)=>{let qe=Te/(1048576*(Le?1024:1));return Le?parseFloat(qe.toFixed(2)):Math.round(qe)};z(xe),le(Me(j.heapTotal,ae)),$(Me(j.heapUsed,ae))};Un(()=>{$n=V,V();let j=setInterval(()=>{V()},6e4);return()=>{clearInterval(j),$n===V&&($n=null)}},[]);let fe=262144,ee=process.env.HIGH_CONTEXT,G=process.env.GOOGLE_GEMMA_NONSENSE==="true"||process.env.GOOGLE_GEMMA_NONSENSE===!0||!1;if(ee&&ee!=="false"){let j=parseInt(ee,10);!isNaN(j)&&j>=32e3&&j<=1e6&&(fe=j)}return(E==="NVIDIA"&&(u?.includes("gpt")||u?.includes("qwen")||u?.includes("medium")||u.includes("muse"))||E==="Mistral")&&(fe=128e3),E==="Google"&&u?.includes("gemma")&&G&&(fe=16e3),mt.createElement(Oo,{flexDirection:"row",justifyContent:"space-between",paddingX:1,width:"100%"},mt.createElement(Oo,null,mt.createElement(Oo,{marginRight:1},mt.createElement(so,{color:k.textMuted},t.toLowerCase()==="flow"?"Studio":t.toLowerCase()==="icu"?"Computer Use":t.toLowerCase()==="flux"?"Workspace":"Omni")),mt.createElement(so,{color:k.textMuted,dimColor:!0},"\u2503 "),mt.createElement(Oo,null,mt.createElement(so,{color:k.text,italic:!0},Mi(process.cwd(),35)))),mt.createElement(Oo,null,B?mt.createElement(Oo,null,mt.createElement(so,{color:K},"\u25CF"),v&&mt.createElement(mt.Fragment,null,mt.createElement(so,{color:k.textMuted,bold:!0}," ",De," tps"),mt.createElement(so,{color:k.textMuted,dimColor:!0}," \u2503"))):null,x>0&&mt.createElement(mt.Fragment,null,mt.createElement(Oo,{marginX:1},mt.createElement(so,{color:k.text},ut(S)," ",(()=>{let j=x/fe*100,ae=j<60?k.text:j<80?k.warning:k.danger;return mt.createElement(so,{color:ae,dimColor:!0},j.toFixed(0),"%")})())),mt.createElement(so,{color:k.textMuted,dimColor:!0},"\u2503")),mt.createElement(Oo,{marginLeft:1},mt.createElement(so,{color:k.textMuted,bold:!0},L," ",ge))))}),zi=qa;import Ze,{useState as ms,useMemo as Qa,useEffect as za}from"react";import{Box as Xt,Text as Yt,useInput as Ja}from"ink";import Za from"ink-select-input";var Ra=({label:t,isSelected:g,theme:x="Dark"})=>{let S=je(x),w=t==="Cancel"||t==="Back"||t.toLowerCase().includes("exit")||t.toLowerCase().includes("back");return Ze.createElement(Xt,{marginTop:w?1:0,backgroundColor:g?S.highlightBg:void 0,paddingX:1,width:"100%"},Ze.createElement(Yt,{color:g?S.text:S.textMuted,bold:g},g?"\u276F ":" ",t))};function gt({title:t,subtitle:g,items:x=[],onSelect:S,theme:w="Dark",searchable:p=!1}){let i=je(w),[E,u]=ms(""),[B,M]=ms(0),[U,D]=ms("list"),v=Qa(()=>{if(!p||!E.trim())return x;let k=E.toLowerCase().trim();return x.filter(O=>O.label&&O.label.toLowerCase().includes(k))},[x,E,p]);return za(()=>{M(0)},[E]),Ja((k,O)=>{if(p){if(O.upArrow){D("list"),M(L=>v.length>0?L>0?L-1:v.length-1:0);return}if(O.downArrow){D("list"),M(L=>v.length>0&&L<v.length-1?L+1:0);return}if(O.return){v.length>0&&v[B]&&S(v[B]);return}if(O.escape){if(E)u(""),D("list"),M(0);else{let L=x.find($=>$.value==="Back"||$.label==="Back"||$.value==="Cancel"||$.label==="Cancel");L&&S(L)}return}if(O.backspace||O.delete){D("search"),u(L=>L.slice(0,-1));return}if(k&&!O.ctrl&&!O.meta&&!O.tab){D("search"),u(L=>L+k);return}}},{isActive:p}),p?Ze.createElement(Xt,{flexDirection:"column",borderStyle:"round",borderColor:i.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&Ze.createElement(Xt,{paddingX:1,paddingY:0,marginBottom:0},Ze.createElement(Yt,{color:i.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),g&&Ze.createElement(Xt,{paddingX:1,marginBottom:0},Ze.createElement(Yt,{color:i.textMuted,italic:!0}," ",g)),Ze.createElement(Xt,{paddingX:1,marginTop:1,marginBottom:1,flexDirection:"row"},Ze.createElement(Yt,{color:U==="search"?i.primary||"cyan":i.textMuted,bold:U==="search"},"\u{1F50D} Search:"),Ze.createElement(Yt,{color:i.text,bold:!0}," ",E),U==="search"?Ze.createElement(Yt,{color:i.primary||"cyan"},"\u2588"):E?null:Ze.createElement(Yt,{color:i.textMuted,italic:!0}," (type to search...)")),Ze.createElement(Xt,{flexDirection:"column",width:"100%"},v.length===0?Ze.createElement(Xt,{paddingX:1,marginY:0},Ze.createElement(Yt,{color:i.warning||"yellow",italic:!0}," No matching items found")):v.map((k,O)=>{let L=O===B,$=k.label==="Cancel"||k.label==="Back"||k.label.toLowerCase().includes("exit")||k.label.toLowerCase().includes("back");return Ze.createElement(Xt,{key:k.value??k.label??O,marginTop:$?1:0,backgroundColor:L?i.highlightBg:void 0,paddingX:1,width:"100%"},Ze.createElement(Yt,{color:L?i.text:i.textMuted,bold:L},L?"\u276F ":" ",k.label))})),Ze.createElement(Xt,{paddingX:1,marginTop:1},Ze.createElement(Yt,{color:i.textMuted,italic:!0},U==="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)"))):Ze.createElement(Xt,{flexDirection:"column",borderStyle:"round",borderColor:i.borderMuted,padding:0,marginTop:0,flexShrink:0,width:"100%"},t&&Ze.createElement(Xt,{paddingX:1,paddingY:0,marginBottom:g?0:1},Ze.createElement(Yt,{color:i.text,bold:!0},typeof t=="string"?t.toUpperCase():t)),g&&Ze.createElement(Xt,{paddingX:1,marginBottom:1},Ze.createElement(Yt,{color:i.textMuted,italic:!0}," ",g)),Ze.createElement(Xt,{flexDirection:"column",width:"100%"},Ze.createElement(Za,{items:x,onSelect:S,itemComponent:k=>Ze.createElement(Ra,{...k,theme:w}),indicatorComponent:()=>null})),Ze.createElement(Xt,{paddingX:1,marginTop:1},Ze.createElement(Yt,{color:i.textMuted,italic:!0},"(Arrows to select \u2022 Enter to confirm)")))}import C,{useState as Lt,useEffect as pr}from"react";import{Box as Ae,Text as H,useInput as ed}from"ink";import td from"ink-text-input";import od from"v8";import Ji from"os";var io=[...Object.keys(Ei),"Mystery"],lo=[{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"}],Zi=t=>{let g=t.autoApproveCommands||"",x=t.autoDisallowCommands||"",S=t.alwaysAskCommands||"",w=t.autoExec===!1&&t.allowExternalAccess===!1&&t.networkAccess===!1&&g===""&&x==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&S==="killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall"&&t.autoApproveGit===!1,p=t.autoExec===!0&&t.allowExternalAccess===!1&&t.networkAccess!==!1&&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"&&x==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&S==="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,i=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"&&x===""&&S==="rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c"&&t.autoApproveGit===!0;return w?"Strict":p?"Balanced":i?"Autonomous":t.sandboxPreset||"Custom"},gs=t=>!t||t.trim()===""?"None":t.length>40?t.substring(0,40)+"...":t;function wr({systemSettings:t,setSystemSettings:g,apiTier:x,setActiveView:S,setInputConfig:w,saveSettings:p,quotas:i,setMessages:E,aiProvider:u,initialSelectingTheme:B=!1,onCloseTheme:M=null,setProviderReturnView:U=null}){let D=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",v=io.indexOf(D),[k,O]=Lt("categories"),[L,$]=Lt(0),[te,le]=Lt(0),[ge,z]=Lt(null),[K,se]=Lt(""),[De,Se]=Lt(B),[ke,de]=Lt(v>=0?v:0),[Ne,we]=Lt(t.theme||"Dark"),[V,fe]=Lt(!1),[ee,G]=Lt(0),[j,ae]=Lt(0),[xe,Me]=Lt(""),[Te,Le]=Lt("list"),[qe,Je]=Lt({});pr(()=>{(async()=>{let y=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","CrofAI","InferX","SenseNova","AIHubMix"],N={};for(let Ce of y)try{await ln(Ce)&&(N[Ce]=!0)}catch{}Je(N)})()},[]);let ve=C.useMemo(()=>{let ie=["Google","DeepSeek","OpenRouter","NVIDIA","Mistral","Ollama","CrofAI","InferX","SenseNova","AIHubMix"],N=!!(process.env.SUBAGENT_MODEL&&process.env.SUBAGENT_MODEL.trim())?`ENV (${process.env.SUBAGENT_MODEL.trim()})`:"ENV",Ce=[{label:"Default (use the current model)",value:"Default",isHeader:!1},{label:N,value:"ENV",isHeader:!1}],Xe=i?.providerTiers?.[u]||x||"Free",it=Io(u,Xe)||[];it.length>0&&(Ce.push({label:`\u2500\u2500 ${u.toUpperCase()}${Xe!=="Free"?` (${Xe})`:""} \u2500\u2500`,isHeader:!0}),it.forEach(et=>{let Ue=typeof et=="string"?et:et.cmd||et.name||et.id||String(et);Ue&&!Ue.trim().startsWith("---")&&!Ue.startsWith(`
|
|
40
40
|
---`)&&Ce.push({label:Ue,value:Ue,isHeader:!1,provider:u})}));for(let et of ie)if(et!==u&&qe[et]){let Ue=i?.providerTiers?.[et]||"Free",jt=Io(et,Ue)||[];jt.length>0&&(Ce.push({label:`\u2500\u2500 ${et.toUpperCase()}${Ue!=="Free"?` (${Ue})`:""} \u2500\u2500`,isHeader:!0}),jt.forEach(We=>{let wt=typeof We=="string"?We:We.cmd||We.name||We.id||String(We);wt&&!wt.trim().startsWith("---")&&!wt.startsWith(`
|
|
41
|
-
---`)&&Ce.push({label:wt,value:wt,isHeader:!1,provider:et})}))}return Ce},[u,x,i,qe]),oe=C.useMemo(()=>{if(!xe.trim())return ve;let ie=xe.trim().toLowerCase(),y=[],N=null;for(let Ce of ve)Ce.isHeader?N=Ce:(Ce.label.toLowerCase().includes(ie)||Ce.value&&Ce.value.toLowerCase().includes(ie))&&(N&&!y.includes(N)&&y.push(N),y.push(Ce));return y},[ve,xe]);pr(()=>{if(V){let ie=oe.findIndex(y=>!y.isHeader);G(ie>=0?ie:0),ae(0)}},[xe]),pr(()=>{if(V){if(oe.length===0){G(0),ae(0);return}if(ee>=oe.length||oe[ee]?.isHeader){let ie=oe.findIndex(y=>!y.isHeader);G(ie>=0?ie:0)}}},[oe,V]);let[he,Fe]=Lt(0),[X,Dt]=Lt(0),[dt,Nt]=Lt("MB");pr(()=>{let ie=od.getHeapStatistics().heap_size_limit,y=ie>=1024*1024*1024,N=y?"GB":"MB",Ce=y?1024*1024*1024:1024*1024;Dt(parseFloat((ie/Ce).toFixed(2))),Nt(N);let Xe=()=>{let jt=process.memoryUsage().rss/Ce,We=y?parseFloat(jt.toFixed(2)):Math.round(jt);Fe(We)};Xe();let it=setInterval(()=>{Xe()},3e4);return()=>clearInterval(it)},[]);let Vt=ie=>{switch(ie){case"providers":{let N=[{label:"Current Provider",value:"aiProvider",status:u},...u.toLowerCase()==="google"||u.toLowerCase()==="openrouter"?[{label:"Show Paid Models?",value:"apiTier",status:x==="Free"?"No":"Yes"}]:[]];return u==="Ollama"&&N.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),N}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",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:Zi(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:gs(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:gs(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:gs(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:"Preserve 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"}];default:return[]}},Qo=lo[L].id,Ht=Vt(Qo);ed((ie,y)=>{if(V){if(y.tab){Le(N=>N==="search"?"list":"search");return}if(Te==="search"){y.escape?fe(!1):y.downArrow||y.return?Le("list"):y.backspace||y.delete?Me(N=>N.slice(0,-1)):ie&&!y.ctrl&&!y.meta&&ie.length===1&&Me(N=>N+ie);return}if(y.upArrow)G(N=>{if(oe.length===0)return 0;let Ce=(N-1+oe.length)%oe.length,Xe=0;for(;oe[Ce]?.isHeader&&Xe<oe.length;)Ce=(Ce-1+oe.length)%oe.length,Xe++;return Ce});else if(y.downArrow)G(N=>{if(oe.length===0)return 0;let Ce=(N+1)%oe.length,Xe=0;for(;oe[Ce]?.isHeader&&Xe<oe.length;)Ce=(Ce+1)%oe.length,Xe++;return Ce});else if(y.return){let N=oe[ee];N&&!N.isHeader&&(g(Ce=>{let Xe=N.value==="Default",it={...Ce,CustomSubAgent:!Xe,SubAgentModel:N.value,SubAgentProvider:Xe?"":N.provider||""};return p({systemSettings:it,apiTier:x,quotas:i}),it}),fe(!1))}else y.escape?fe(!1):ie&&!y.ctrl&&!y.meta&&ie.length===1&&(Me(N=>N+ie),Le("search"));return}if(De){if(y.upArrow){let N=(ke-1+io.length)%io.length;de(N)}else if(y.downArrow){let N=(ke+1)%io.length;de(N)}else if(y.return){let N=io[ke];g(Ce=>{let Xe={...Ce,theme:N};return p({systemSettings:Xe,apiTier:x,quotas:i}),Xe}),M?M():Se(!1)}else y.escape&&(M?M():Se(!1));return}if(ge){y.escape&&z(null);return}if(k==="categories")y.upArrow?$(N=>(N-1+lo.length)%lo.length):y.downArrow?$(N=>(N+1)%lo.length):y.return||y.rightArrow?lo[L].id==="exit"?S("chat"):(O("items"),le(0)):y.escape&&S("chat");else if(k==="items"){let N=Ht[te];if(ie==="?"&&N?.value==="dynamicDirAwareness"){S("dynamicDirHelp");return}if(y.upArrow)le(Ce=>(Ce-1+Ht.length)%Ht.length);else if(y.downArrow)le(Ce=>(Ce+1)%Ht.length);else if(y.leftArrow||y.escape)O("categories");else if(y.return){let Ce=Ht[te];Mr(Ce)}}});let Mr=ie=>{if(ie.value==="memory")g(y=>({...y,memory:!y.memory}));else if(ie.value==="sandboxPreset"){let y=Zi(t),N=["Autonomous","Balanced","Strict"],Xe=(N.indexOf(y)+1)%N.length,it=N[Xe];g(et=>{let Ue={...et,sandboxPreset:it};return it==="Strict"?(Ue.autoExec=!1,Ue.allowExternalAccess=!1,Ue.networkAccess=!1,Ue.autoApproveCommands="",Ue.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",Ue.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",Ue.autoApproveGit=!1):it==="Balanced"?(Ue.autoExec=!0,Ue.allowExternalAccess=!1,Ue.networkAccess=!0,Ue.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",Ue.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",Ue.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",Ue.autoApproveGit=!1):it==="Autonomous"&&(Ue.autoExec=!0,Ue.allowExternalAccess=!0,Ue.networkAccess=!0,Ue.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",Ue.autoDisallowCommands="",Ue.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",Ue.autoApproveGit=!0),Ue})}else if(ie.value==="autoExec")t.autoExec?g(y=>({...y,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?S("doubleDanger"):S("autoExecDanger");else if(ie.value==="externalAccess")t.allowExternalAccess?g(y=>({...y,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?S("doubleDanger"):S("externalDanger");else if(ie.value==="networkAccess")g(y=>({...y,networkAccess:y.networkAccess===!1,sandboxPreset:"Custom"}));else if(ie.value==="alwaysAsk")z("alwaysAskCommands"),se(t.alwaysAskCommands||"");else if(ie.value==="autoApprove")z("autoApproveCommands"),se(t.autoApproveCommands||"");else if(ie.value==="autoApproveGit")g(y=>({...y,autoApproveGit:!y.autoApproveGit,sandboxPreset:"Custom"}));else if(ie.value==="autoDisallow")z("autoDisallowCommands"),se(t.autoDisallowCommands||"");else if(ie.value==="ollamaEndpoint")g(y=>{let N=y.ollamaEndpoint==="Local"?"Cloud":"Local",Ce={...y,ollamaEndpoint:N};return p({systemSettings:Ce,apiTier:x,quotas:i}),Ce});else if(ie.value==="apiTier")S("apiTier");else if(ie.value==="aiProvider")U&&U("settings"),S("selectProvider");else if(ie.value==="advanceRollback")t.advanceRollback?g(y=>{let N={...y,advanceRollback:!1};return p({systemSettings:N,apiTier:x,quotas:i}),N}):S("advanceRollbackDanger");else if(ie.value==="autoDelete"){let y=["1d","7d","30d"],Ce=(y.indexOf(t.autoDeleteHistory||"30d")+1)%y.length;g(Xe=>({...Xe,autoDeleteHistory:y[Ce]}))}else if(ie.value==="autoUpdate")g(y=>({...y,autoUpdate:!y.autoUpdate}));else if(ie.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||""}),S("input");else{let y={...t,useExternalData:!1};g(y),p({systemSettings:y,apiTier:x,quotas:i}),E(N=>[...N,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),S("chat")}else if(ie.value==="updateManager")S("updateManager");else if(ie.value==="parserDownload")S("parserDownload");else if(ie.value==="indentationTree")g(y=>{let N={...y,indentationTree:y.indentationTree===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="compressToolResults")g(y=>{let N={...y,compressToolResults:!y.compressToolResults};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="autoTruncateResults")g(y=>{let N={...y,autoTruncateResults:!y.autoTruncateResults};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="subAgents")g(y=>{let N={...y,subAgents:y.subAgents===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="subAgentModel"){let y=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",N=oe.findIndex(Ce=>Ce.value===y);G(N>=0?N:0),fe(!0)}else if(ie.value==="preserveThinking")g(y=>{let N={...y,preserveThinking:y.preserveThinking===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="dynamicDirAwareness")t.dynamicDirAwareness?g(y=>{let N={...y,dynamicDirAwareness:!1};return p({systemSettings:N,apiTier:x,quotas:i}),N}):S("dynamicDirDanger");else if(ie.value==="loadingPhrases")g(y=>{let N={...y,loadingPhrases:y.loadingPhrases===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="progressiveRendering")g(y=>{let N={...y,progressiveRendering:!y.progressiveRendering};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="showTPMEstimate")g(y=>{let N={...y,showTPMEstimate:!y.showTPMEstimate};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="theme"){let y=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",N=io.indexOf(y);de(N>=0?N:0),we(t.theme||"Dark"),Se(!0)}},ne=je(t.theme);if(V){let ie=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",y=15,N=j;ee<N?N=ee:ee>=N+y&&(N=ee-y+1),N=Math.max(0,Math.min(N,Math.max(0,oe.length-y))),N!==j&&ae(N);let Ce=oe.slice(N,N+y);return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:ne.border,padding:1,width:"100%",minHeight:32},C.createElement(Ae,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:ne.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&C.createElement(H,{color:"gray"},ee+1,"/",oe.length)),C.createElement(Ae,{borderStyle:"single",borderColor:Te==="search"?ne.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(H,{color:Te==="search"?ne.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(H,{color:ne.text},xe),Te==="search"&&C.createElement(H,{color:ne.primary||"cyan"},"\u2588"),!xe&&Te!=="search"&&C.createElement(H,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ae,{flexDirection:"column",flexGrow:1,height:y},Ce.length>0?Ce.map((Xe,it)=>{let et=N+it;if(Xe.isHeader)return C.createElement(Ae,{key:`hdr-${et}`,paddingX:1},C.createElement(H,{color:"gray",bold:!0,underline:!0},Xe.label));let Ue=ee===et&&Te==="list",jt=ie===Xe.value;return C.createElement(Ae,{key:`item-${Xe.value}-${et}`,paddingX:1,backgroundColor:Ue?ne.highlightBg:void 0},C.createElement(H,{color:Ue?ne.text:ne.textDim,bold:Ue},Ue?"\u276F ":" ",Xe.label,jt?C.createElement(H,{color:ne.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ae,{paddingX:1},C.createElement(H,{color:"gray",italic:!0},'No models matching "',xe,'"'))),C.createElement(Ae,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(H,{color:Te==="search"?ne.primary||"cyan":"gray",bold:!0},"[",Te.toUpperCase()," MODE]")))}if(De){let ie=io[ke],y=je(ie);return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:y.border,padding:1,width:"100%",minHeight:32},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.text,bold:!0},"Choose your color scheme:")),C.createElement(Ae,{flexDirection:"row",width:"100%",flexGrow:1},C.createElement(Ae,{flexDirection:"column",width:"30%",paddingRight:1},io.map((N,Ce)=>{let Xe=ke===Ce,it=(t.theme||"Dark")===N,et=N==="Forest Sprite";return C.createElement(Ae,{key:N,paddingX:0},C.createElement(H,{color:Xe?y.text:y.textDim,bold:Xe},Xe?"> ":" ",N,et&&C.createElement(H,{color:Xe?y.success||"#52b788":"green",bold:!0}," \u2605"),it?C.createElement(H,{color:y.primary||"cyan",italic:!0}," (saved)"):""))})),C.createElement(Ae,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:y.borderMuted,paddingX:2,paddingY:1,backgroundColor:y.cardBg},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.secondary||"cyan",bold:!0},"> ","you: "),C.createElement(H,{color:y.text},"add a greeting function")),C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.success||"green"}," Here's the change:")),C.createElement(Ae,{flexDirection:"column",marginLeft:2,marginBottom:1},C.createElement(H,null,C.createElement(H,{color:y.textDim},"3 "),C.createElement(H,{color:y.textDim},' import "fmt"')),C.createElement(H,{color:y.textDim},"4"),C.createElement(Ae,{backgroundColor:y.diffRemovalBg},C.createElement(H,null,C.createElement(H,{color:y.diffRemovalNum||y.diffRemovalText},"5 "),C.createElement(H,{color:y.diffRemovalPrefix||y.diffRemovalText},"- "),C.createElement(H,{color:y.diffRemovalText},"func "),C.createElement(H,{color:y.diffRemovalHighlightColor||y.diffRemovalText,backgroundColor:y.diffRemovalHighlightBg,bold:!0},"main()"),C.createElement(H,{color:y.diffRemovalText}," {"))),C.createElement(Ae,{backgroundColor:y.diffAdditionBg},C.createElement(H,null,C.createElement(H,{color:y.diffAdditionNum||y.diffAdditionText},"5 "),C.createElement(H,{color:y.diffAdditionPrefix||y.diffAdditionText},"+ "),C.createElement(H,{color:y.diffAdditionText},"func "),C.createElement(H,{color:y.diffAdditionHighlightColor||y.diffAdditionText,backgroundColor:y.diffAdditionHighlightBg,bold:!0},"greet(name string)"),C.createElement(H,{color:y.diffAdditionText}," {"))),C.createElement(Ae,{backgroundColor:y.diffAdditionBg},C.createElement(H,null,C.createElement(H,{color:y.diffAdditionNum||y.diffAdditionText},"6 "),C.createElement(H,{color:y.diffAdditionPrefix||y.diffAdditionText},"+ "),C.createElement(H,{color:y.diffAdditionText}," "),C.createElement(H,{color:y.diffAdditionHighlightColor||y.diffAdditionText,backgroundColor:y.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),C.createElement(H,{color:y.textDim},"7 }")),C.createElement(Ae,{flexDirection:"column",marginTop:1,marginBottom:1},C.createElement(H,{color:y.textDim},"\u25BE Thought Process"),C.createElement(H,{color:y.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),C.createElement(Ae,{flexDirection:"column"},C.createElement(H,null,C.createElement(H,{color:y.warning||"yellow"},"\u2699 tool: "),C.createElement(H,{color:y.text},"write_file main.go")),C.createElement(H,null,C.createElement(H,{color:y.accent||"magenta"},"\u29BF task: "),C.createElement(H,{color:y.text},"Implementing greeting")),C.createElement(H,null,C.createElement(H,{color:y.danger||"red"},"X error: "),C.createElement(H,{color:y.text},"compilation failed")),C.createElement(H,null,C.createElement(H,{color:y.warning||"yellow"},"\u26A0 warning: "),C.createElement(H,{color:y.text},"deprecation warning")),C.createElement(H,null,C.createElement(H,{color:y.info||"blue"},"\u2192 link: "),C.createElement(H,{color:y.info||"blue",underline:!0},"file:///path/to/main.go")),C.createElement(H,null,C.createElement(H,{color:y.accent||"magenta"},"\u2605 accent: "),C.createElement(H,{color:y.text},"highlighted text")),C.createElement(H,{color:y.textDim},"\xB7 dim: press Enter to continue")))),C.createElement(Ae,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(H,{color:"gray"},"Previewing: ",io[ke],io[ke]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:ne.border,padding:0,width:"100%",minHeight:32},C.createElement(Ae,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:ne.borderMuted,width:"100%"},C.createElement(H,{color:ne.text,bold:!0},"SYSTEM CONFIGURATION")),C.createElement(Ae,{flexDirection:"row",width:"100%",minHeight:26},C.createElement(Ae,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:k==="categories"?ne.border:ne.borderMuted,padding:1,paddingY:0},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:k==="categories"?ne.text:ne.textDim,bold:!0,underline:!0},"CATEGORIES")),lo.map((ie,y)=>{let N=L===y,Ce=ie.id==="exit";return C.createElement(Ae,{key:ie.id,marginTop:Ce?15:0,backgroundColor:N?k==="categories"?ne.highlightBg:ne.cardBg:void 0,paddingX:1},C.createElement(H,{color:N&&k==="categories"?ne.text:ne.textDim,bold:N},N?"\u276F ":" ",ie.label))})),C.createElement(Ae,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:k==="items"?ne.border:ne.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:k==="items"?ne.text:ne.textDim,bold:!0,underline:!0},lo[L].label.toUpperCase().includes("EXIT")?"Runtime Information":`${lo[L].label} Settings`)),Ht.length>0?(()=>{let ie=null,y=[],N=We=>(We||"").split(",").map(wt=>wt.trim().toLowerCase()).filter(Boolean),Ce=N(t.autoApproveCommands),Xe=N(t.autoDisallowCommands),it=N(t.alwaysAskCommands),et=[...Ce,...Xe,...it],Ue=new Set(et),jt=Qo==="security"&&et.length!==Ue.size;return Ht.forEach((We,wt)=>{let Kt=k==="items"&&te===wt,Br=We.label.length,zo=Math.max(2,38-Br),Er=".".repeat(zo),lt=Ie=>Qo==="security"?(Ie.value==="autoExec"||Ie.value==="externalAccess")&&Ie.status==="ON"?ne.statusOn:ne.statusOff:Ie.status?.startsWith("\u2713")?ne.statusOn:Ie.status?.startsWith("\u26A0")?ne.statusOff:Ie.status==="ON"?ne.statusOn:Ie.status==="OFF"?ne.statusOff:ne.text;We.section&&We.section!==ie&&(ie=We.section,y.push(C.createElement(Ae,{key:`sec-hdr-${We.section}`,marginTop:y.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(H,{color:"gray",bold:!0,underline:!0},We.section.toUpperCase()))));let W=Kt&&ge&&(ge==="alwaysAskCommands"&&We.value==="alwaysAsk"||ge==="autoApproveCommands"&&We.value==="autoApprove"||ge==="autoDisallowCommands"&&We.value==="autoDisallow"),Re=We.value==="alwaysAsk"||We.value==="autoApprove"||We.value==="autoDisallow",$o=We.value==="parserDownload";y.push(C.createElement(Ae,{key:We.value,flexDirection:"column"},C.createElement(Ae,{backgroundColor:Kt&&!W?ne.highlightBg:void 0,paddingX:2},C.createElement(H,{color:Kt?ne.text:ne.textDim,bold:Kt},Kt?"\u276F ":" ",We.label),!Re&&!$o&&C.createElement(C.Fragment,null,C.createElement(H,{color:"gray"},Er),C.createElement(H,{color:lt(We),bold:!0},We.value==="aiProvider"?We.status:`[ ${We.status} ]`))),Re&&!W&&We.status!=="None"&&C.createElement(Ae,{paddingX:4,marginBottom:1},C.createElement(H,{color:"gray"},"\u21B3 ",We.status)),W&&C.createElement(Ae,{flexDirection:"column",marginLeft:4,marginBottom:1},C.createElement(Ae,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},C.createElement(H,{color:"gray",bold:!0},"> "," "),C.createElement(td,{value:K,onChange:se,onSubmit:Ie=>{let $t={...t,[ge]:Ie.trim(),sandboxPreset:"Custom"};g($t),p({systemSettings:$t,apiTier:x,quotas:i}),z(null)}})),C.createElement(H,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),jt&&y.push(C.createElement(Ae,{key:"conflict-warning",marginTop:1,paddingX:1},C.createElement(H,{color:ne.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),y})():C.createElement(Ae,{paddingX:1,flexDirection:"column",width:"100%"},Qo==="exit"?C.createElement(C.Fragment,null,C.createElement(Ae,{flexDirection:"column",marginBottom:1},C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"OS"," "),C.createElement(H,{color:"gray"},"..................... "),C.createElement(H,{color:ne.text},process.env.OS||process.platform||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Computer Name"," "),C.createElement(H,{color:"gray"},".......... "),C.createElement(H,{color:ne.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Processor Count"," "),C.createElement(H,{color:"gray"},"........ "),C.createElement(H,{color:ne.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Node.js Version"," "),C.createElement(H,{color:"gray"},"........ "),C.createElement(H,{color:ne.text},"v",process.versions.node)),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"V8 Version"," "),C.createElement(H,{color:"gray"},"...... ...... "),C.createElement(H,{color:ne.text},"v",process.versions.v8)),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Data Directory"," "),C.createElement(H,{color:"gray"},"......... "),ko===no?"":C.createElement(H,{color:ne.text},ko.replaceAll(Ji.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(H,{color:ne.text},no.replaceAll(Ji.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Viewport"," "),C.createElement(H,{color:"gray"},"............... "),C.createElement(H,{color:ne.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),C.createElement(Ae,{flexDirection:"row",marginBottom:0},C.createElement(H,{color:ne.textDim},"Memory Load"," "),C.createElement(H,{color:"gray"},"............ "),C.createElement(H,{color:ne.text},he,"/",X," ",dt))),C.createElement(Ae,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(H,{color:rs?ne.statusOn:ne.warning},rs?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(H,{color:"gray",italic:!0},lo[L].desc)))),C.createElement(Ae,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},k==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":Ht[te]?.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"),k==="categories"&&C.createElement(H,{color:"gray"},lo[L].desc)))}import zt,{useState as fs,useEffect as nd}from"react";import{Box as mn,Text as Xn}from"ink";import rd from"ink-text-input";function hs({initialData:t,onSave:g,onCancel:x,theme:S="Dark"}){let w=je(S),[p,i]=fs(0),[E,u]=fs(""),[B,M]=fs(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),U=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],D=U[p];nd(()=>{let L=U[p].key;u((B[L]||"").slice(0,U[p].maxLength))},[p,B]);let v=L=>{L.length>D.maxLength?u(L.slice(0,D.maxLength)):u(L)},k=L=>{if(L.trim().toLowerCase()==="/cancel"){x();return}let $=D.key,te={...B,[$]:L.trim().slice(0,D.maxLength)};M(te),u(""),p<U.length-1?i(p+1):g(te)},O=E.length>=D.maxLength;return zt.createElement(mn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},zt.createElement(mn,{paddingX:1,marginBottom:1},zt.createElement(Xn,{color:w.text,bold:!0},"DEVELOPER PROFILE CONFIGURATION")),zt.createElement(mn,{paddingX:1,flexDirection:"column"},zt.createElement(mn,null,zt.createElement(Xn,{color:w.text,bold:!0},D.label),zt.createElement(rd,{value:E,onChange:v,onSubmit:k})),zt.createElement(mn,{marginTop:1,justifyContent:"space-between"},zt.createElement(Xn,{color:w.textMuted,italic:!0},"Step ",p+1," of ",U.length),zt.createElement(Xn,{color:O?w.warning||"yellow":w.textMuted},"[",E.length,"/",D.maxLength,"]"))),zt.createElement(mn,{paddingX:1,marginTop:1},zt.createElement(Xn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import xt,{useState as xs}from"react";import{Box as Jt,Text as Po,useInput as sd}from"ink";import id from"ink-text-input";var ld=({question:t,options:g,onResolve:x,theme:S="Dark"})=>{let w=je(S),[p,i]=xs(!1),[E,u]=xs(""),[B,M]=xs(0),U=!1,D=[],v=Array.isArray(g)&&g.length>0;try{D=[...v?g:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{U=!0}sd((O,L)=>{if(!p&&((L.leftArrow||L.upArrow)&&M($=>Math.max(0,$-1)),(L.rightArrow||L.downArrow)&&M($=>Math.min(D.length-1,$+1)),L.return)){let $=D[B];$?.id==="CUSTOM"?i(!0):x(U?"Selected Nothing":$.label)}});let k=Qe(2);return p?xt.createElement(Jt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:w.codeBg,width:"100%"},xt.createElement(Jt,{paddingX:1},xt.createElement(Po,{color:w.text,bold:!0},"SUGGEST SOMETHING")),xt.createElement(Jt,{marginTop:1,paddingX:1},xt.createElement(Po,{italic:!0,color:w.textMuted},"Replying to: ",t)),xt.createElement(Jt,{marginTop:1,paddingX:1,flexDirection:"row"},xt.createElement(id,{value:E,onChange:u,onSubmit:()=>x(E)})),xt.createElement(Jt,{marginTop:1,paddingX:1,marginBottom:1},xt.createElement(Po,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):xt.createElement(Jt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},xt.createElement(Jt,{paddingX:1,marginBottom:1},xt.createElement(Po,{color:"yellow",bold:!0},"AGENT REQUEST: ACTION REQUIRED")),xt.createElement(Jt,{paddingX:1,marginBottom:1},xt.createElement(Po,{color:w.text},t)),xt.createElement(Jt,{flexDirection:"column",width:"100%"},D.map((O,L)=>{let $=L===B;return xt.createElement(Jt,{key:O.id,flexDirection:"column",width:"100%",backgroundColor:$?w.highlightBg:void 0,paddingX:1,marginBottom:L===D.length-1?0:1},xt.createElement(Po,{color:$?w.text:w.textMuted,bold:$},$?"\u276F ":" ",O.label),O.description&&xt.createElement(Jt,{marginLeft:4},xt.createElement(Po,{color:w.textMuted,italic:!0},O.description)))})),xt.createElement(Jt,{paddingX:1,marginTop:1,marginBottom:1},xt.createElement(Po,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},Ri=ld;import Id from"gradient-string";import It,{useState as ps,useEffect as ad}from"react";import{Box as ao,Text as No,useInput as dd}from"ink";function ws({onSelect:t,onDelete:g,onClose:x,theme:S="Dark"}){let w=je(S),[p,i]=ps({}),[E,u]=ps([]),[B,M]=ps(0);ad(()=>{(async()=>{let L=await Ao();i(L),u(Object.keys(L).sort(($,te)=>(L[te].updatedAt||0)-(L[$].updatedAt||0)))})()},[]),dd((O,L)=>{if(L.escape&&x(),L.upArrow&&M($=>Math.max(0,$-1)),L.downArrow&&M($=>Math.min(E.length-1,$+1)),L.return&&E[B]&&t(E[B]),O==="x"&&E[B]){let $=E[B];g($).then(te=>{let le=te||{};i(le);let ge=Object.keys(le).sort((z,K)=>(le[K]?.updatedAt||0)-(le[z]?.updatedAt||0));u(ge),M(z=>Math.max(0,Math.min(ge.length-1,z)))})}});let U=Qe(2),D=15,v=0;if(E.length>D){let O=Math.floor(D/2);v=B-O,v<0?v=0:v+D>E.length&&(v=E.length-D)}let k=E.slice(v,v+D);return It.createElement(ao,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},It.createElement(ao,{paddingX:1,marginBottom:1},It.createElement(No,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),E.length===0?It.createElement(ao,{paddingX:2,paddingY:1},It.createElement(No,{italic:!0,color:w.textMuted},"No saved chats found.")):It.createElement(ao,{flexDirection:"column",width:"100%"},v>0&&It.createElement(ao,{paddingX:2,marginBottom:1},It.createElement(No,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),k.map((O,L)=>{let $=p[O],le=v+L===B,ge=cd($?.updatedAt);return It.createElement(ao,{key:O,paddingX:1,backgroundColor:le?w.highlightBg:void 0,width:"100%"},It.createElement(ao,{flexGrow:1},It.createElement(No,{color:le?w.text:w.textMuted,bold:le},le?"\u276F ":" ",(()=>{let z=K=>(K||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return $?.name&&!$.name.startsWith("Session")?z($.name):$?.prompt?z($.prompt):z($?.name)||O})(),It.createElement(No,{color:w.textMuted}," [",ge," \u2022 ",O,"]"))),le&&It.createElement(ao,{flexShrink:0},It.createElement(No,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+D<E.length&&It.createElement(ao,{paddingX:2,marginTop:1},It.createElement(No,{color:w.textMuted},"\u25BC (+",E.length-(v+D)," more chats below)"))),It.createElement(ao,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:w.borderMuted},It.createElement(No,{color:w.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function cd(t){if(!t)return"N/A";let g=new Date(t);if(isNaN(g.getTime()))return"N/A";let x=E=>String(E).padStart(2,"0"),S=x(g.getMonth()+1),w=x(g.getDate()),p=x(g.getHours()),i=x(g.getMinutes());return`${S}-${w} ${p}:${i}`}import pt,{useState as Ts,useEffect as ud}from"react";import{Box as co,Text as to,useInput as md,useStdout as gd}from"ink";function bs({onClose:t,theme:g="Dark"}){let x=je(g),{stdout:S}=gd(),w=S?.columns||80,[p,i]=Ts([]),[E,u]=Ts(0),[B,M]=Ts(!0),U=()=>{let z=mi(Jr,[]);i(z);try{let se=fi(kn,{}).systemSettings?.memory!==!1;M(se)}catch{M(!0)}};ud(()=>{U()},[]),md((z,K)=>{if(K.escape&&t(),K.upArrow&&u(se=>Math.max(0,se-1)),K.downArrow&&u(se=>Math.min(p.length-1,se+1)),z==="x"&&p.length>0){let se=p[E].id,De=p.filter(Se=>Se.id!==se);gi(Jr,De),i(De),E>=De.length&&De.length>0&&u(De.length-1)}});let D=(z,K,se)=>{if(!z)return"";let De=z.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),ke=`${se?"\u276F ":" "}${K+1}. `.length,de=se?22:2;return De.split(`
|
|
41
|
+
---`)&&Ce.push({label:wt,value:wt,isHeader:!1,provider:et})}))}return Ce},[u,x,i,qe]),oe=C.useMemo(()=>{if(!xe.trim())return ve;let ie=xe.trim().toLowerCase(),y=[],N=null;for(let Ce of ve)Ce.isHeader?N=Ce:(Ce.label.toLowerCase().includes(ie)||Ce.value&&Ce.value.toLowerCase().includes(ie))&&(N&&!y.includes(N)&&y.push(N),y.push(Ce));return y},[ve,xe]);pr(()=>{if(V){let ie=oe.findIndex(y=>!y.isHeader);G(ie>=0?ie:0),ae(0)}},[xe]),pr(()=>{if(V){if(oe.length===0){G(0),ae(0);return}if(ee>=oe.length||oe[ee]?.isHeader){let ie=oe.findIndex(y=>!y.isHeader);G(ie>=0?ie:0)}}},[oe,V]);let[he,Fe]=Lt(0),[X,Dt]=Lt(0),[dt,Nt]=Lt("MB");pr(()=>{let ie=od.getHeapStatistics().heap_size_limit,y=ie>=1024*1024*1024,N=y?"GB":"MB",Ce=y?1024*1024*1024:1024*1024;Dt(parseFloat((ie/Ce).toFixed(2))),Nt(N);let Xe=()=>{let jt=process.memoryUsage().rss/Ce,We=y?parseFloat(jt.toFixed(2)):Math.round(jt);Fe(We)};Xe();let it=setInterval(()=>{Xe()},3e4);return()=>clearInterval(it)},[]);let Vt=ie=>{switch(ie){case"providers":{let N=[{label:"Current Provider",value:"aiProvider",status:u},...u.toLowerCase()==="google"||u.toLowerCase()==="openrouter"?[{label:"Show Paid Models?",value:"apiTier",status:x==="Free"?"No":"Yes"}]:[]];return u==="Ollama"&&N.push({label:"Endpoint",value:"ollamaEndpoint",status:t.ollamaEndpoint||"Cloud"}),N}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",value:"memory",status:t.memory?"ON":"OFF"}];case"security":return[{label:"Sandbox Preset",value:"sandboxPreset",status:Zi(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:gs(t.alwaysAskCommands),section:"Sandbox"},{label:"Auto Approve Commands",value:"autoApprove",status:gs(t.autoApproveCommands),section:"Sandbox"},{label:"Auto Disapprove Commands",value:"autoDisallow",status:gs(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:"Preserve 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"}];default:return[]}},Qo=lo[L].id,Ht=Vt(Qo);ed((ie,y)=>{if(V){if(y.tab){Le(N=>N==="search"?"list":"search");return}if(Te==="search"){y.escape?fe(!1):y.downArrow||y.return?Le("list"):y.backspace||y.delete?Me(N=>N.slice(0,-1)):ie&&!y.ctrl&&!y.meta&&ie.length===1&&Me(N=>N+ie);return}if(y.upArrow)G(N=>{if(oe.length===0)return 0;let Ce=(N-1+oe.length)%oe.length,Xe=0;for(;oe[Ce]?.isHeader&&Xe<oe.length;)Ce=(Ce-1+oe.length)%oe.length,Xe++;return Ce});else if(y.downArrow)G(N=>{if(oe.length===0)return 0;let Ce=(N+1)%oe.length,Xe=0;for(;oe[Ce]?.isHeader&&Xe<oe.length;)Ce=(Ce+1)%oe.length,Xe++;return Ce});else if(y.return){let N=oe[ee];N&&!N.isHeader&&(g(Ce=>{let Xe=N.value==="Default",it={...Ce,CustomSubAgent:!Xe,SubAgentModel:N.value,SubAgentProvider:Xe?"":N.provider||""};return p({systemSettings:it,apiTier:x,quotas:i}),it}),fe(!1))}else y.escape?fe(!1):ie&&!y.ctrl&&!y.meta&&ie.length===1&&(Me(N=>N+ie),Le("search"));return}if(De){if(y.upArrow){let N=(ke-1+io.length)%io.length;de(N)}else if(y.downArrow){let N=(ke+1)%io.length;de(N)}else if(y.return){let N=io[ke];g(Ce=>{let Xe={...Ce,theme:N};return p({systemSettings:Xe,apiTier:x,quotas:i}),Xe}),M?M():Se(!1)}else y.escape&&(M?M():Se(!1));return}if(ge){y.escape&&z(null);return}if(k==="categories")y.upArrow?$(N=>(N-1+lo.length)%lo.length):y.downArrow?$(N=>(N+1)%lo.length):y.return||y.rightArrow?lo[L].id==="exit"?S("chat"):(O("items"),le(0)):y.escape&&S("chat");else if(k==="items"){let N=Ht[te];if(ie==="?"&&N?.value==="dynamicDirAwareness"){S("dynamicDirHelp");return}if(y.upArrow)le(Ce=>(Ce-1+Ht.length)%Ht.length);else if(y.downArrow)le(Ce=>(Ce+1)%Ht.length);else if(y.leftArrow||y.escape)O("categories");else if(y.return){let Ce=Ht[te];Mr(Ce)}}});let Mr=ie=>{if(ie.value==="memory")g(y=>({...y,memory:!y.memory}));else if(ie.value==="sandboxPreset"){let y=Zi(t),N=["Autonomous","Balanced","Strict"],Xe=(N.indexOf(y)+1)%N.length,it=N[Xe];g(et=>{let Ue={...et,sandboxPreset:it};return it==="Strict"?(Ue.autoExec=!1,Ue.allowExternalAccess=!1,Ue.networkAccess=!1,Ue.autoApproveCommands="",Ue.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",Ue.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",Ue.autoApproveGit=!1):it==="Balanced"?(Ue.autoExec=!0,Ue.allowExternalAccess=!1,Ue.networkAccess=!0,Ue.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",Ue.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",Ue.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",Ue.autoApproveGit=!1):it==="Autonomous"&&(Ue.autoExec=!0,Ue.allowExternalAccess=!0,Ue.networkAccess=!0,Ue.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",Ue.autoDisallowCommands="",Ue.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",Ue.autoApproveGit=!0),Ue})}else if(ie.value==="autoExec")t.autoExec?g(y=>({...y,autoExec:!1,sandboxPreset:"Custom"})):t.allowExternalAccess?S("doubleDanger"):S("autoExecDanger");else if(ie.value==="externalAccess")t.allowExternalAccess?g(y=>({...y,allowExternalAccess:!1,sandboxPreset:"Custom"})):t.autoExec?S("doubleDanger"):S("externalDanger");else if(ie.value==="networkAccess")g(y=>({...y,networkAccess:y.networkAccess===!1,sandboxPreset:"Custom"}));else if(ie.value==="alwaysAsk")z("alwaysAskCommands"),se(t.alwaysAskCommands||"");else if(ie.value==="autoApprove")z("autoApproveCommands"),se(t.autoApproveCommands||"");else if(ie.value==="autoApproveGit")g(y=>({...y,autoApproveGit:!y.autoApproveGit,sandboxPreset:"Custom"}));else if(ie.value==="autoDisallow")z("autoDisallowCommands"),se(t.autoDisallowCommands||"");else if(ie.value==="ollamaEndpoint")g(y=>{let N=y.ollamaEndpoint==="Local"?"Cloud":"Local",Ce={...y,ollamaEndpoint:N};return p({systemSettings:Ce,apiTier:x,quotas:i}),Ce});else if(ie.value==="apiTier")S("apiTier");else if(ie.value==="aiProvider")U&&U("settings"),S("selectProvider");else if(ie.value==="advanceRollback")t.advanceRollback?g(y=>{let N={...y,advanceRollback:!1};return p({systemSettings:N,apiTier:x,quotas:i}),N}):S("advanceRollbackDanger");else if(ie.value==="autoDelete"){let y=["1d","7d","30d"],Ce=(y.indexOf(t.autoDeleteHistory||"30d")+1)%y.length;g(Xe=>({...Xe,autoDeleteHistory:y[Ce]}))}else if(ie.value==="autoUpdate")g(y=>({...y,autoUpdate:!y.autoUpdate}));else if(ie.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||""}),S("input");else{let y={...t,useExternalData:!1};g(y),p({systemSettings:y,apiTier:x,quotas:i}),E(N=>[...N,{id:Date.now(),role:"system",text:"[STORAGE RESET] Flux Flow will return to default ~/.fluxflow after restart."}]),S("chat")}else if(ie.value==="updateManager")S("updateManager");else if(ie.value==="parserDownload")S("parserDownload");else if(ie.value==="indentationTree")g(y=>{let N={...y,indentationTree:y.indentationTree===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="compressToolResults")g(y=>{let N={...y,compressToolResults:!y.compressToolResults};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="autoTruncateResults")g(y=>{let N={...y,autoTruncateResults:!y.autoTruncateResults};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="subAgents")g(y=>{let N={...y,subAgents:y.subAgents===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="subAgentModel"){let y=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",N=oe.findIndex(Ce=>Ce.value===y);G(N>=0?N:0),fe(!0)}else if(ie.value==="preserveThinking")g(y=>{let N={...y,preserveThinking:y.preserveThinking===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="dynamicDirAwareness")t.dynamicDirAwareness?g(y=>{let N={...y,dynamicDirAwareness:!1};return p({systemSettings:N,apiTier:x,quotas:i}),N}):S("dynamicDirDanger");else if(ie.value==="loadingPhrases")g(y=>{let N={...y,loadingPhrases:y.loadingPhrases===!1};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="progressiveRendering")g(y=>{let N={...y,progressiveRendering:!y.progressiveRendering};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="showTPMEstimate")g(y=>{let N={...y,showTPMEstimate:!y.showTPMEstimate};return p({systemSettings:N,apiTier:x,quotas:i}),N});else if(ie.value==="theme"){let y=t.theme==="Chaos"||t.theme==="Mystery"?"Mystery":t.theme||"Dark",N=io.indexOf(y);de(N>=0?N:0),we(t.theme||"Dark"),Se(!0)}},ne=je(t.theme);if(V){let ie=t.CustomSubAgent&&t.SubAgentModel?t.SubAgentModel:"Default",y=15,N=j;ee<N?N=ee:ee>=N+y&&(N=ee-y+1),N=Math.max(0,Math.min(N,Math.max(0,oe.length-y))),N!==j&&ae(N);let Ce=oe.slice(N,N+y);return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:ne.border,padding:1,width:"100%",minHeight:32},C.createElement(Ae,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:ne.text,bold:!0,underline:!0},"Select Sub-Agent Model:"),oe.length>0&&C.createElement(H,{color:"gray"},ee+1,"/",oe.length)),C.createElement(Ae,{borderStyle:"single",borderColor:Te==="search"?ne.primary||"cyan":"gray",paddingX:1,marginBottom:1},C.createElement(H,{color:Te==="search"?ne.primary||"cyan":"gray",bold:!0},"\u{1F50D} Search: "," "),C.createElement(H,{color:ne.text},xe),Te==="search"&&C.createElement(H,{color:ne.primary||"cyan"},"\u2588"),!xe&&Te!=="search"&&C.createElement(H,{color:"gray",italic:!0},"(Press TAB or type to filter models...)")),C.createElement(Ae,{flexDirection:"column",flexGrow:1,height:y},Ce.length>0?Ce.map((Xe,it)=>{let et=N+it;if(Xe.isHeader)return C.createElement(Ae,{key:`hdr-${et}`,paddingX:1},C.createElement(H,{color:"gray",bold:!0,underline:!0},Xe.label));let Ue=ee===et&&Te==="list",jt=ie===Xe.value;return C.createElement(Ae,{key:`item-${Xe.value}-${et}`,paddingX:1,backgroundColor:Ue?ne.highlightBg:void 0},C.createElement(H,{color:Ue?ne.text:ne.textDim,bold:Ue},Ue?"\u276F ":" ",Xe.label,jt?C.createElement(H,{color:ne.primary||"cyan",italic:!0}," (active)"):""))}):C.createElement(Ae,{paddingX:1},C.createElement(H,{color:"gray",italic:!0},'No models matching "',xe,'"'))),C.createElement(Ae,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},"TAB to switch search/list \u2022 \u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(H,{color:Te==="search"?ne.primary||"cyan":"gray",bold:!0},"[",Te.toUpperCase()," MODE]")))}if(De){let ie=io[ke],y=je(ie);return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:y.border,padding:1,width:"100%",minHeight:32},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.text,bold:!0},"Choose your color scheme:")),C.createElement(Ae,{flexDirection:"row",width:"100%",flexGrow:1},C.createElement(Ae,{flexDirection:"column",width:"30%",paddingRight:1},io.map((N,Ce)=>{let Xe=ke===Ce,it=(t.theme||"Dark")===N,et=N==="Forest Sprite";return C.createElement(Ae,{key:N,paddingX:0},C.createElement(H,{color:Xe?y.text:y.textDim,bold:Xe},Xe?"> ":" ",N,et&&C.createElement(H,{color:Xe?y.success||"#52b788":"green",bold:!0}," \u2605"),it?C.createElement(H,{color:y.primary||"cyan",italic:!0}," (saved)"):""))})),C.createElement(Ae,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:y.borderMuted,paddingX:2,paddingY:1,backgroundColor:y.cardBg},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.secondary||"cyan",bold:!0},"> ","you: "),C.createElement(H,{color:y.text},"add a greeting function")),C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:y.success||"green"}," Here's the change:")),C.createElement(Ae,{flexDirection:"column",marginLeft:2,marginBottom:1},C.createElement(H,null,C.createElement(H,{color:y.textDim},"3 "),C.createElement(H,{color:y.textDim},' import "fmt"')),C.createElement(H,{color:y.textDim},"4"),C.createElement(Ae,{backgroundColor:y.diffRemovalBg},C.createElement(H,null,C.createElement(H,{color:y.diffRemovalNum||y.diffRemovalText},"5 "),C.createElement(H,{color:y.diffRemovalPrefix||y.diffRemovalText},"- "),C.createElement(H,{color:y.diffRemovalText},"func "),C.createElement(H,{color:y.diffRemovalHighlightColor||y.diffRemovalText,backgroundColor:y.diffRemovalHighlightBg,bold:!0},"main()"),C.createElement(H,{color:y.diffRemovalText}," {"))),C.createElement(Ae,{backgroundColor:y.diffAdditionBg},C.createElement(H,null,C.createElement(H,{color:y.diffAdditionNum||y.diffAdditionText},"5 "),C.createElement(H,{color:y.diffAdditionPrefix||y.diffAdditionText},"+ "),C.createElement(H,{color:y.diffAdditionText},"func "),C.createElement(H,{color:y.diffAdditionHighlightColor||y.diffAdditionText,backgroundColor:y.diffAdditionHighlightBg,bold:!0},"greet(name string)"),C.createElement(H,{color:y.diffAdditionText}," {"))),C.createElement(Ae,{backgroundColor:y.diffAdditionBg},C.createElement(H,null,C.createElement(H,{color:y.diffAdditionNum||y.diffAdditionText},"6 "),C.createElement(H,{color:y.diffAdditionPrefix||y.diffAdditionText},"+ "),C.createElement(H,{color:y.diffAdditionText}," "),C.createElement(H,{color:y.diffAdditionHighlightColor||y.diffAdditionText,backgroundColor:y.diffAdditionHighlightBg},'fmt.Printf("Hello, %s!\\n", name)'))),C.createElement(H,{color:y.textDim},"7 }")),C.createElement(Ae,{flexDirection:"column",marginTop:1,marginBottom:1},C.createElement(H,{color:y.textDim},"\u25BE Thought Process"),C.createElement(H,{color:y.textMuted}," I need to add a greeting function. I'll use fmt.Printf.")),C.createElement(Ae,{flexDirection:"column"},C.createElement(H,null,C.createElement(H,{color:y.warning||"yellow"},"\u2699 tool: "),C.createElement(H,{color:y.text},"write_file main.go")),C.createElement(H,null,C.createElement(H,{color:y.accent||"magenta"},"\u29BF task: "),C.createElement(H,{color:y.text},"Implementing greeting")),C.createElement(H,null,C.createElement(H,{color:y.danger||"red"},"X error: "),C.createElement(H,{color:y.text},"compilation failed")),C.createElement(H,null,C.createElement(H,{color:y.warning||"yellow"},"\u26A0 warning: "),C.createElement(H,{color:y.text},"deprecation warning")),C.createElement(H,null,C.createElement(H,{color:y.info||"blue"},"\u2192 link: "),C.createElement(H,{color:y.info||"blue",underline:!0},"file:///path/to/main.go")),C.createElement(H,null,C.createElement(H,{color:y.accent||"magenta"},"\u2605 accent: "),C.createElement(H,{color:y.text},"highlighted text")),C.createElement(H,{color:y.textDim},"\xB7 dim: press Enter to continue")))),C.createElement(Ae,{paddingX:1,marginTop:1,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},"\u25B2\u25BC Navigate \u2022 ENTER to Select \u2022 ESC to Cancel"),C.createElement(H,{color:"gray"},"Previewing: ",io[ke],io[ke]==="Forest Sprite"?" \u2605":"")))}return C.createElement(Ae,{flexDirection:"column",borderStyle:"round",borderColor:ne.border,padding:0,width:"100%",minHeight:32},C.createElement(Ae,{paddingX:1,paddingY:0,marginBottom:0,borderStyle:"single",borderColor:ne.borderMuted,width:"100%"},C.createElement(H,{color:ne.text,bold:!0},"SYSTEM CONFIGURATION")),C.createElement(Ae,{flexDirection:"row",width:"100%",minHeight:26},C.createElement(Ae,{flexDirection:"column",width:"30%",maxWidth:40,borderStyle:"round",borderColor:k==="categories"?ne.border:ne.borderMuted,padding:1,paddingY:0},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:k==="categories"?ne.text:ne.textDim,bold:!0,underline:!0},"CATEGORIES")),lo.map((ie,y)=>{let N=L===y,Ce=ie.id==="exit";return C.createElement(Ae,{key:ie.id,marginTop:Ce?15:0,backgroundColor:N?k==="categories"?ne.highlightBg:ne.cardBg:void 0,paddingX:1},C.createElement(H,{color:N&&k==="categories"?ne.text:ne.textDim,bold:N},N?"\u276F ":" ",ie.label))})),C.createElement(Ae,{flexDirection:"column",flexGrow:1,borderStyle:"round",borderColor:k==="items"?ne.border:ne.borderMuted,paddingX:1,marginLeft:1,paddingY:0},C.createElement(Ae,{marginBottom:1},C.createElement(H,{color:k==="items"?ne.text:ne.textDim,bold:!0,underline:!0},lo[L].label.toUpperCase().includes("EXIT")?"Runtime Information":`${lo[L].label} Settings`)),Ht.length>0?(()=>{let ie=null,y=[],N=We=>(We||"").split(",").map(wt=>wt.trim().toLowerCase()).filter(Boolean),Ce=N(t.autoApproveCommands),Xe=N(t.autoDisallowCommands),it=N(t.alwaysAskCommands),et=[...Ce,...Xe,...it],Ue=new Set(et),jt=Qo==="security"&&et.length!==Ue.size;return Ht.forEach((We,wt)=>{let Kt=k==="items"&&te===wt,Br=We.label.length,zo=Math.max(2,38-Br),Er=".".repeat(zo),lt=Ie=>Qo==="security"?(Ie.value==="autoExec"||Ie.value==="externalAccess")&&Ie.status==="ON"?ne.statusOn:ne.statusOff:Ie.status?.startsWith("\u2713")?ne.statusOn:Ie.status?.startsWith("\u26A0")?ne.statusOff:Ie.status==="ON"?ne.statusOn:Ie.status==="OFF"?ne.statusOff:ne.text;We.section&&We.section!==ie&&(ie=We.section,y.push(C.createElement(Ae,{key:`sec-hdr-${We.section}`,marginTop:y.length>0?1:0,marginBottom:0,paddingX:1},C.createElement(H,{color:"gray",bold:!0,underline:!0},We.section.toUpperCase()))));let W=Kt&&ge&&(ge==="alwaysAskCommands"&&We.value==="alwaysAsk"||ge==="autoApproveCommands"&&We.value==="autoApprove"||ge==="autoDisallowCommands"&&We.value==="autoDisallow"),Re=We.value==="alwaysAsk"||We.value==="autoApprove"||We.value==="autoDisallow",$o=We.value==="parserDownload";y.push(C.createElement(Ae,{key:We.value,flexDirection:"column"},C.createElement(Ae,{backgroundColor:Kt&&!W?ne.highlightBg:void 0,paddingX:2},C.createElement(H,{color:Kt?ne.text:ne.textDim,bold:Kt},Kt?"\u276F ":" ",We.label),!Re&&!$o&&C.createElement(C.Fragment,null,C.createElement(H,{color:"gray"},Er),C.createElement(H,{color:lt(We),bold:!0},We.value==="aiProvider"?We.status:`[ ${We.status} ]`))),Re&&!W&&We.status!=="None"&&C.createElement(Ae,{paddingX:4,marginBottom:1},C.createElement(H,{color:"gray"},"\u21B3 ",We.status)),W&&C.createElement(Ae,{flexDirection:"column",marginLeft:4,marginBottom:1},C.createElement(Ae,{paddingX:1,borderStyle:"single",borderColor:"gray",flexDirection:"row"},C.createElement(H,{color:"gray",bold:!0},"> "," "),C.createElement(td,{value:K,onChange:se,onSubmit:Ie=>{let $t={...t,[ge]:Ie.trim(),sandboxPreset:"Custom"};g($t),p({systemSettings:$t,apiTier:x,quotas:i}),z(null)}})),C.createElement(H,{color:"gray",italic:!0}," Comma separated \u2022 Press Enter to save, Esc to cancel"))))}),jt&&y.push(C.createElement(Ae,{key:"conflict-warning",marginTop:1,paddingX:1},C.createElement(H,{color:ne.text,italic:!0},"* Conflicting commands will be ignored and defaulted to highest priority"))),y})():C.createElement(Ae,{paddingX:1,flexDirection:"column",width:"100%"},Qo==="exit"?C.createElement(C.Fragment,null,C.createElement(Ae,{flexDirection:"column",marginBottom:1},C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"OS"," "),C.createElement(H,{color:"gray"},"..................... "),C.createElement(H,{color:ne.text},process.env.OS||process.platform||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Computer Name"," "),C.createElement(H,{color:"gray"},".......... "),C.createElement(H,{color:ne.text},process.env.COMPUTERNAME||process.env.HOSTNAME||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Processor Count"," "),C.createElement(H,{color:"gray"},"........ "),C.createElement(H,{color:ne.text},process.env.NUMBER_OF_PROCESSORS||"N/A")),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Node.js Version"," "),C.createElement(H,{color:"gray"},"........ "),C.createElement(H,{color:ne.text},"v",process.versions.node)),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"V8 Version"," "),C.createElement(H,{color:"gray"},"...... ...... "),C.createElement(H,{color:ne.text},"v",process.versions.v8)),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Data Directory"," "),C.createElement(H,{color:"gray"},"......... "),ko===no?"":C.createElement(H,{color:ne.text},ko.replaceAll(Ji.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"),", "),C.createElement(H,{color:ne.text},no.replaceAll(Ji.homedir(),"~").replaceAll("\\\\","/").replaceAll("\\","/"))),C.createElement(Ae,{flexDirection:"row"},C.createElement(H,{color:ne.textDim},"Viewport"," "),C.createElement(H,{color:"gray"},"............... "),C.createElement(H,{color:ne.text},process.stdout.rows||"?"," rows \xD7 ",process.stdout.columns||"?"," cols ",process.stdout.columns<90?"(too small width)":"")),C.createElement(Ae,{flexDirection:"row",marginBottom:0},C.createElement(H,{color:ne.textDim},"Memory Load"," "),C.createElement(H,{color:"gray"},"............ "),C.createElement(H,{color:ne.text},he,"/",X," ",dt))),C.createElement(Ae,{key:"pty-notice",paddingX:0,marginTop:0},C.createElement(H,{color:rs?ne.statusOn:ne.warning},rs?"\u2713 Advance Interactive Terminal Supported":"\u26A0 Interactive Terminal is Limited"))):C.createElement(H,{color:"gray",italic:!0},lo[L].desc)))),C.createElement(Ae,{paddingX:1,marginTop:0,flexDirection:"row",justifyContent:"space-between"},C.createElement(H,{color:"gray",italic:!0},k==="categories"?"\u25B2\u25BC Select Category \u2022 Enter/\u25BA to configure":Ht[te]?.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"),k==="categories"&&C.createElement(H,{color:"gray"},lo[L].desc)))}import zt,{useState as fs,useEffect as nd}from"react";import{Box as mn,Text as Xn}from"ink";import rd from"ink-text-input";function hs({initialData:t,onSave:g,onCancel:x,theme:S="Dark"}){let w=je(S),[p,i]=fs(0),[E,u]=fs(""),[B,M]=fs(()=>({name:t?.name||"",nickname:t?.nickname||"",instructions:t?.instructions||""})),U=[{key:"name",label:"Enter your Name: ",maxLength:20},{key:"nickname",label:"Enter a Nickname: ",maxLength:20},{key:"instructions",label:"System Instructions: ",maxLength:200}],D=U[p];nd(()=>{let L=U[p].key;u((B[L]||"").slice(0,U[p].maxLength))},[p,B]);let v=L=>{L.length>D.maxLength?u(L.slice(0,D.maxLength)):u(L)},k=L=>{if(L.trim().toLowerCase()==="/cancel"){x();return}let $=D.key,te={...B,[$]:L.trim().slice(0,D.maxLength)};M(te),u(""),p<U.length-1?i(p+1):g(te)},O=E.length>=D.maxLength;return zt.createElement(mn,{borderStyle:"round",borderColor:w.borderMuted,padding:0,marginTop:1,flexShrink:0,flexDirection:"column",width:"100%"},zt.createElement(mn,{paddingX:1,marginBottom:1},zt.createElement(Xn,{color:w.text,bold:!0},"USER PROFILE CONFIGURATION")),zt.createElement(mn,{paddingX:1,flexDirection:"column"},zt.createElement(mn,null,zt.createElement(Xn,{color:w.text,bold:!0},D.label),zt.createElement(rd,{value:E,onChange:v,onSubmit:k})),zt.createElement(mn,{marginTop:1,justifyContent:"space-between"},zt.createElement(Xn,{color:w.textMuted,italic:!0},"Step ",p+1," of ",U.length),zt.createElement(Xn,{color:O?w.warning||"yellow":w.textMuted},"[",E.length,"/",D.maxLength,"]"))),zt.createElement(mn,{paddingX:1,marginTop:1},zt.createElement(Xn,{color:w.textMuted,italic:!0},"(Enter to submit \u2022 Type /cancel to abort)")))}import xt,{useState as xs}from"react";import{Box as Jt,Text as Po,useInput as sd}from"ink";import id from"ink-text-input";var ld=({question:t,options:g,onResolve:x,theme:S="Dark"})=>{let w=je(S),[p,i]=xs(!1),[E,u]=xs(""),[B,M]=xs(0),U=!1,D=[],v=Array.isArray(g)&&g.length>0;try{D=[...v?g:[],v?{id:"CUSTOM",label:"Suggest something else...",description:"Provide a custom response"}:{id:"CUSTOM",label:"Your Answer",description:""}]}catch{U=!0}sd((O,L)=>{if(!p&&((L.leftArrow||L.upArrow)&&M($=>Math.max(0,$-1)),(L.rightArrow||L.downArrow)&&M($=>Math.min(D.length-1,$+1)),L.return)){let $=D[B];$?.id==="CUSTOM"?i(!0):x(U?"Selected Nothing":$.label)}});let k=Qe(2);return p?xt.createElement(Jt,{flexDirection:"column",borderStyle:"single",borderLeft:!1,borderRight:!1,borderTop:!1,borderBottom:!1,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,backgroundColor:w.codeBg,width:"100%"},xt.createElement(Jt,{paddingX:1},xt.createElement(Po,{color:w.text,bold:!0},"SUGGEST SOMETHING")),xt.createElement(Jt,{marginTop:1,paddingX:1},xt.createElement(Po,{italic:!0,color:w.textMuted},"Replying to: ",t)),xt.createElement(Jt,{marginTop:1,paddingX:1,flexDirection:"row"},xt.createElement(id,{value:E,onChange:u,onSubmit:()=>x(E)})),xt.createElement(Jt,{marginTop:1,paddingX:1,marginBottom:1},xt.createElement(Po,{color:w.textMuted,italic:!0},"(Press Enter to send)"))):xt.createElement(Jt,{flexDirection:"column",border:!0,borderStyle:"round",borderColor:w.codeBorder,paddingLeft:2,paddingRight:0,paddingTop:1,paddingBottom:1,marginY:1,marginRight:1,width:"100%"},xt.createElement(Jt,{paddingX:1,marginBottom:1},xt.createElement(Po,{color:"yellow",bold:!0},"AGENT REQUEST: ACTION REQUIRED")),xt.createElement(Jt,{paddingX:1,marginBottom:1},xt.createElement(Po,{color:w.text},t)),xt.createElement(Jt,{flexDirection:"column",width:"100%"},D.map((O,L)=>{let $=L===B;return xt.createElement(Jt,{key:O.id,flexDirection:"column",width:"100%",backgroundColor:$?w.highlightBg:void 0,paddingX:1,marginBottom:L===D.length-1?0:1},xt.createElement(Po,{color:$?w.text:w.textMuted,bold:$},$?"\u276F ":" ",O.label),O.description&&xt.createElement(Jt,{marginLeft:4},xt.createElement(Po,{color:w.textMuted,italic:!0},O.description)))})),xt.createElement(Jt,{paddingX:1,marginTop:1,marginBottom:1},xt.createElement(Po,{color:w.textMuted,italic:!0},"(Use Arrows to navigate, Enter to confirm)")))},Ri=ld;import Id from"gradient-string";import It,{useState as ps,useEffect as ad}from"react";import{Box as ao,Text as No,useInput as dd}from"ink";function ws({onSelect:t,onDelete:g,onClose:x,theme:S="Dark"}){let w=je(S),[p,i]=ps({}),[E,u]=ps([]),[B,M]=ps(0);ad(()=>{(async()=>{let L=await Ao();i(L),u(Object.keys(L).sort(($,te)=>(L[te].updatedAt||0)-(L[$].updatedAt||0)))})()},[]),dd((O,L)=>{if(L.escape&&x(),L.upArrow&&M($=>Math.max(0,$-1)),L.downArrow&&M($=>Math.min(E.length-1,$+1)),L.return&&E[B]&&t(E[B]),O==="x"&&E[B]){let $=E[B];g($).then(te=>{let le=te||{};i(le);let ge=Object.keys(le).sort((z,K)=>(le[K]?.updatedAt||0)-(le[z]?.updatedAt||0));u(ge),M(z=>Math.max(0,Math.min(ge.length-1,z)))})}});let U=Qe(2),D=15,v=0;if(E.length>D){let O=Math.floor(D/2);v=B-O,v<0?v=0:v+D>E.length&&(v=E.length-D)}let k=E.slice(v,v+D);return It.createElement(ao,{flexDirection:"column",borderStyle:"round",borderColor:w.borderMuted,padding:0,width:"100%"},It.createElement(ao,{paddingX:1,marginBottom:1},It.createElement(No,{color:w.text,bold:!0},"CHAT HISTORY: RESUME CONVERSATION")),E.length===0?It.createElement(ao,{paddingX:2,paddingY:1},It.createElement(No,{italic:!0,color:w.textMuted},"No saved chats found.")):It.createElement(ao,{flexDirection:"column",width:"100%"},v>0&&It.createElement(ao,{paddingX:2,marginBottom:1},It.createElement(No,{color:w.textMuted},"\u25B2 (+",v," more chats above)")),k.map((O,L)=>{let $=p[O],le=v+L===B,ge=cd($?.updatedAt);return It.createElement(ao,{key:O,paddingX:1,backgroundColor:le?w.highlightBg:void 0,width:"100%"},It.createElement(ao,{flexGrow:1},It.createElement(No,{color:le?w.text:w.textMuted,bold:le},le?"\u276F ":" ",(()=>{let z=K=>(K||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return $?.name&&!$.name.startsWith("Session")?z($.name):$?.prompt?z($.prompt):z($?.name)||O})(),It.createElement(No,{color:w.textMuted}," [",ge," \u2022 ",O,"]"))),le&&It.createElement(ao,{flexShrink:0},It.createElement(No,{color:w.danger,bold:!0},"[X] DELETE ")))}),v+D<E.length&&It.createElement(ao,{paddingX:2,marginTop:1},It.createElement(No,{color:w.textMuted},"\u25BC (+",E.length-(v+D)," more chats below)"))),It.createElement(ao,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:w.borderMuted},It.createElement(No,{color:w.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 Enter select \u2022 x delete \u2022 Esc close")))}function cd(t){if(!t)return"N/A";let g=new Date(t);if(isNaN(g.getTime()))return"N/A";let x=E=>String(E).padStart(2,"0"),S=x(g.getMonth()+1),w=x(g.getDate()),p=x(g.getHours()),i=x(g.getMinutes());return`${S}-${w} ${p}:${i}`}import pt,{useState as Ts,useEffect as ud}from"react";import{Box as co,Text as to,useInput as md,useStdout as gd}from"ink";function bs({onClose:t,theme:g="Dark"}){let x=je(g),{stdout:S}=gd(),w=S?.columns||80,[p,i]=Ts([]),[E,u]=Ts(0),[B,M]=Ts(!0),U=()=>{let z=mi(Jr,[]);i(z);try{let se=fi(kn,{}).systemSettings?.memory!==!1;M(se)}catch{M(!0)}};ud(()=>{U()},[]),md((z,K)=>{if(K.escape&&t(),K.upArrow&&u(se=>Math.max(0,se-1)),K.downArrow&&u(se=>Math.min(p.length-1,se+1)),z==="x"&&p.length>0){let se=p[E].id,De=p.filter(Se=>Se.id!==se);gi(Jr,De),i(De),E>=De.length&&De.length>0&&u(De.length-1)}});let D=(z,K,se)=>{if(!z)return"";let De=z.replace(/\[Saved on: .*?\]/g,"").replace(/\\+'/g,"'").trim(),ke=`${se?"\u276F ":" "}${K+1}. `.length,de=se?22:2;return De.split(`
|
|
42
42
|
`).map((we,V)=>{let fe=V===0,ee=Math.max(10,w-4-(fe?ke:3)-de),G=Math.max(10,w-4-3-de),j=we.split(/(\s+)/),ae=[],xe="";if(j.forEach(Te=>{if(Te.length===0)return;let Le=ae.length===0?ee:G;xe.length+Te.length>Le?xe.trim().length>0?(ae.push(xe.trimEnd()),xe=Te):(ae.push(Te.substring(0,Le)),xe=Te.substring(Le)):xe+=Te}),xe.trimEnd().length>0&&ae.push(xe.trimEnd()),ae.length===0)return"";let Me=ae.join(`
|
|
43
43
|
`);return fe?Me:" "+Me}).join(`
|
|
44
44
|
`)},v=4*1024*2,k=p.reduce((z,K)=>z+(K.memory?.length||0),0),O=Math.min(100,Math.round(k/v*100)),L=12,$=Math.round(O/100*L),te="\u2588".repeat($)+"\u2591".repeat(Math.max(0,L-$)),le=()=>O<50?x.textMuted:O<90?x.warning:x.danger,ge=Qe(2);return pt.createElement(co,{flexDirection:"column",borderStyle:"round",borderColor:x.borderMuted,padding:0,width:"100%"},pt.createElement(co,{paddingX:1,marginBottom:1,justifyContent:"space-between"},pt.createElement(to,{color:x.text,bold:!0},"SAVED MEMORIES"),pt.createElement(co,null,pt.createElement(to,{color:x.textMuted},"Vault: "),pt.createElement(to,{color:le()},te),pt.createElement(to,{color:x.text,bold:!0}," ",O,"%"))),!B&&p.length>0?pt.createElement(co,{paddingX:2,paddingY:1},pt.createElement(to,{italic:!0,color:x.textMuted},"Memory is currently Off...")):p.length===0?pt.createElement(co,{paddingX:2,paddingY:1},pt.createElement(to,{italic:!0,color:x.textMuted},B?"Learning...":"Memory not available...")):pt.createElement(co,{flexDirection:"column"},p.map((z,K)=>{let se=K===E;return pt.createElement(co,{key:z.id,paddingX:1,backgroundColor:se?x.highlightBg:void 0,width:"100%"},pt.createElement(co,{flexGrow:1},pt.createElement(to,{color:se?x.text:x.textMuted,bold:se},se?"\u276F ":" ",K+1,". ",D(z.memory,K,se))),se&&pt.createElement(co,{flexShrink:0},pt.createElement(to,{color:x.textMuted,dimColor:!0}," [",pt.createElement(to,{italic:!0},z.score),"] "),pt.createElement(to,{color:x.danger,bold:!0},"[X] WIPE ")))})),pt.createElement(co,{marginTop:1,paddingX:1,borderStyle:"single",borderLeft:!1,borderRight:!1,borderBottom:!1,borderColor:x.borderMuted},pt.createElement(to,{color:x.textMuted,italic:!0},"\u2191\u2193 navigate \u2022 x wipe memory \u2022 Esc close")))}import at,{useState as Tr,useEffect as el}from"react";import{Box as Fo,Text as Pt}from"ink";import{spawn as tl}from"child_process";var br=null;try{let t=await import("node-pty");br=t.default||t,br=!1}catch{}var ol=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],fd=({latest:t,current:g,settings:x,onClose:S,onUpdateSettings:w,onSuccess:p})=>{let[i,E]=Tr("initializing"),[u,B]=Tr(""),[M,U]=Tr(null),[D,v]=Tr(0);if(el(()=>{let k=setInterval(()=>{v(O=>(O+1)%1e3)},33);return()=>clearInterval(k)},[]),el(()=>{let k;return(async()=>{let L=x.updateManager||"npm";if(!x.updateManager){w();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"?$=x.customUpdateCommand:$=`npm install -g fluxflow-cli@${t}`,E("downloading"),B(`Running: ${$}...`);let te=process.platform==="win32",le=z=>new Promise(K=>{let se=te?z?"powershell.exe":"cmd.exe":process.env.SHELL||"bash",De=te?z?["-NoProfile","-Command",$]:["/c",$]:["-c",$],Se=de=>{let we=de.toString().replace(/\x1B\[[0-?]*[ -/]*[@-~]|\x1B\][^\x07\x1B]*[\x07\x1B]|\b|\x07/g,"").replace(/\r/g,"").trim();we&&B(V=>{let fe=V.split(`
|