fluxflow-cli 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import{e as v,f as g}from"./chunk-SIINYZWE.js";import{a as d,b as n}from"./chunk-I27MASHH.js";import f from"fs-extra";import h from"path";import l from"fs";import p from"path";import{fileURLToPath as k}from"url";var A=k(import.meta.url),x=p.dirname(A),y="",E=[p.join(x,"../../model_config.json"),p.join(x,"../model_config.json")];for(let t of E)try{if(l.existsSync(t)){y=t;break}}catch{}var S=p.join(d,"model_config.json"),o=null;if(l.existsSync(S))try{let t=l.readFileSync(S,"utf-8"),e=JSON.parse(t);e&&e.providers&&e.fallbacks&&e.release&&(o=e)}catch{}if(!o&&y)try{let t=l.readFileSync(y,"utf-8"),e=JSON.parse(t);e&&e.providers&&e.fallbacks&&e.release&&(o=e)}catch{}o||(console.error(`
2
+ [Error] Unable to load model configuration. Please re-install the package from your package manager.
3
+ `),process.exit(1));var F=new Set,L=new Set,T=()=>{let t=new Set,e=new Set;if(o.providers)for(let r of Object.keys(o.providers)){let a=o.providers[r];if(a&&a.models){let i=["Free","Paid"];for(let s of i){let u=a.models[s];if(Array.isArray(u)){for(let m of u)if(m&&m.cmd){let w=m.cmd.trim().toLowerCase();m.multimodal===!0&&t.add(w),m.hasReasoning===!0&&e.add(w)}}}}}if(Array.isArray(o.multimodal_models))for(let r of o.multimodal_models)r&&typeof r=="string"&&t.add(r.trim().toLowerCase());F=t,L=e};T();var C=async()=>((async()=>{try{let e=await fetch("https://raw.githubusercontent.com/KushalRoyChowdhury/fluxflow-cli/main/model_config.json",{signal:AbortSignal.timeout(2e3)});if(e.ok){let r=await e.json();if(r&&r.providers&&r.fallbacks&&r.release){let a=typeof r.version=="number"&&r.version>o.version,i=typeof r.release=="number"&&r.release>o.release;if(a||i){o=r,T();try{l.existsSync(d)||l.mkdirSync(d,{recursive:!0}),l.writeFileSync(S,JSON.stringify(r,null,2),"utf-8")}catch{}}}}}catch{}})(),!0),D=!1,K=t=>{D=!!t},R=t=>{if(!t)return!1;let e=t.trim().toLowerCase();return!!(D||F.has(e)||e.startsWith("gemini-")||e.startsWith("gemma-"))},j=t=>{if(!t)return!1;let e=t.trim().toLowerCase();return L.has(e)},q=(t,e)=>{let r=o.providers[t];return r?r.models[e==="Free"?"Free":"Paid"]||[]:[]},_=(t,e)=>{let r=o.providers[t];return r?e==="Free"?r.default_free:r.default_paid:""},G=t=>o.fallbacks[t];var c={mode:"Flux",display:0,thinkingLevel:"Medium",aiProvider:"Google",activeModel:_("Google","Free")||"gemma-4-31b-it",showFullThinking:!0,apiTier:"Free",quotas:{agentLimit:999999,backgroundLimit:999999,searchLimit:100,customModelId:"",customLimit:0,providerTiers:{Google:"Free",DeepSeek:"Free",NVIDIA:"Free",OpenRouter:"Free"}},systemSettings:{memory:!1,theme:"Dark",compression:0,autoExec:!1,allowExternalAccess:!1,advanceRollback:!1,autoDeleteHistory:"7d",useExternalData:!1,externalDataPath:"",preserveThinking:!0,loadingPhrases:!1,progressiveRendering:!0,showTPMEstimate:!1,subAgents:!0,CustomSubAgent:!1,SubAgentModel:"Default",SubAgentProvider:"",dynamicDirAwareness:!1,indentationTree:!0,ollamaEndpoint:"Cloud",compressToolResults:!1,autoTruncateResults:!1},profileData:{name:null,nickname:null,instructions:null},imageSettings:{keyType:"Default",quality:"Low-High",apiKey:""}},b=async()=>{let t={...c};try{if(await f.exists(n)){let e=v(n);if(e.imageSettings&&e.imageSettings.apiKey)try{let r=e.imageSettings.apiKey,{saveSecret:a}=await import("./secrets-D5HMTNJA.js");await a("POLLINATIONS_API_KEY",r),e.imageSettings.apiKey="",g(n,e)}catch{}t={...c,...e,quotas:{...c.quotas,...e.quotas,providerTiers:{...c.quotas.providerTiers,...e.quotas?.providerTiers||{}}},systemSettings:{...c.systemSettings,...e.systemSettings},profileData:{...c.profileData,...e.profileData},imageSettings:{...c.imageSettings,...e.imageSettings}}}}catch(e){console.error("Failed to load settings:",e)}try{let{getSecret:e}=await import("./secrets-D5HMTNJA.js"),r=await e("POLLINATIONS_API_KEY");r&&(t.imageSettings.apiKey=r)}catch{}if(t.showFullThinking===!1){t.showFullThinking=!0;try{g(n,t)}catch{}}return t},I=async t=>{let{FLUXFLOW_DIR:e}=await import("./paths-R3DD7CRF.js"),r=["logs","secret"];for(let a of r){let i=h.join(e,a),s=h.join(t,a);try{await f.exists(i)&&(await f.ensureDir(s),await f.copy(i,s,{overwrite:!0}))}catch(u){console.error(`Migration failed for ${a}:`,u)}}},X=async t=>{try{let e=await b();if(!e.systemSettings.useExternalData&&t.systemSettings?.useExternalData&&t.systemSettings?.externalDataPath&&await I(t.systemSettings.externalDataPath),t.imageSettings&&t.imageSettings.apiKey!==void 0){let{saveSecret:a,removeSecret:i}=await import("./secrets-D5HMTNJA.js"),s=t.imageSettings.apiKey;s?await a("POLLINATIONS_API_KEY",s):await i("POLLINATIONS_API_KEY")}let r={...e,...t};return r.imageSettings&&(r.imageSettings={...r.imageSettings,apiKey:""}),await f.ensureDir(h.dirname(n)),g(n,r),!0}catch(e){return console.error("Failed to save settings:",e),!1}};export{C as a,K as b,R as c,j as d,q as e,_ as f,G as g,b as h,X as i};
@@ -0,0 +1,5 @@
1
+ import{screen as j}from"@nut-tree-fork/nut-js";import B from"screenshot-desktop";import K from"sharp";import P from"fs-extra";import Z from"path";var l={TARGET_WIDTH:1280,TARGET_HEIGHT:720,COLS:40,ROWS:30},U=[];async function et(o){try{let{data:t,info:C}=await K(o).resize(l.TARGET_WIDTH,l.TARGET_HEIGHT,{fit:"fill"}).greyscale().raw().toBuffer({resolveWithObject:!0}),a=C.width,x=C.height,c=l.COLS,d=l.ROWS,u=a/c,s=x/d,G=[],w=1;for(let e=0;e<d;e++)for(let r=0;r<c;r++){let M=Math.floor(r*u),g=Math.floor(e*s),X=Math.floor((r+1)*u),b=Math.floor((e+1)*s),N=Math.floor((b-g)/3),E=0,$=0,F=0,L=0,i=0,n=0;for(let h=g;h<b;h+=2)for(let T=M;T<X;T+=2){let q=t[h*a+T];h<g+N?(F+=q,L++):h>b-N?(i+=q,n++):(E+=q,$++)}let S=(F+E+i)/(L+$+n),f=0,p=0,H=0;for(let h=g;h<b;h+=2)for(let T=M;T<X;T+=2){let W=t[h*a+T]-S;h<g+N?p+=W*W:h>b-N?H+=W*W:f+=W*W}let R=Math.sqrt(f/($||1)),D=Math.sqrt(p/(L||1)),O=Math.sqrt(H/(n||1)),A=Math.sqrt((p+f+H)/(L+$+n||1)),I=3;D>O+3?I=10:(O>D+3||R>12)&&(I=-8),A>18&&G.push({cellNum:w,cx:Math.floor(M+u/2),cy:Math.floor(g+s/2),cellW:u,cellH:s,startX:M,startY:g,yOffset:I,mean:S,stdDev:A}),w++}let m=Array.from({length:d},()=>Array(c).fill(null));for(let e of G){let r=Math.floor((e.cellNum-1)/c),M=(e.cellNum-1)%c;m[r][M]=e}let v=Array.from({length:d},()=>Array(c).fill(!1)),y=[];for(let e=0;e<d;e++)for(let r=0;r<c;r++)if(m[e][r]&&!v[e][r]){let M=e,g=e,X=r,b=r,N=[[e,r]],E=[m[e][r]],$=Array.from({length:d},()=>Array(c).fill(!1));for($[e][r]=!0;N.length>0;){let[i,n]=N.shift();M=Math.min(M,i),g=Math.max(g,i),X=Math.min(X,n),b=Math.max(b,n);let S=[[i-1,n],[i+1,n],[i,n-1],[i,n+1],[i-1,n-1],[i-1,n+1],[i+1,n-1],[i+1,n+1]];for(let[f,p]of S)f>=0&&f<d&&p>=0&&p<c&&m[f][p]&&!$[f][p]&&($[f][p]=!0,N.push([f,p]),E.push(m[f][p]))}let F=g-M+1,L=b-X+1;if(F<=4&&L<=4){for(let D of E){let O=Math.floor((D.cellNum-1)/c),A=(D.cellNum-1)%c;v[O][A]=!0}let i=Math.floor(X*u),n=Math.floor(M*s),S=Math.floor((b+1)*u),f=Math.floor((g+1)*s),p=S-i,H=f-n,R=3;if(H>s){let D=E.filter(h=>h.startY<n+H/2),O=E.filter(h=>h.startY>=n+H/2),A=D.reduce((h,T)=>h+T.stdDev,0)/(D.length||1),I=O.reduce((h,T)=>h+T.stdDev,0)/(O.length||1);I>A+2?R=-Math.floor(H/4):A>I+2?R=Math.floor(H/4):R=-12}else R=(E.find(O=>O.yOffset!==3)||E[0]).yOffset;y.push({cellNum:E[0].cellNum,cx:Math.floor(i+p/2),cy:Math.floor(n+H/2),cellW:p,cellH:H,startX:i,startY:n,yOffset:R})}else{v[e][r]=!0;let i=m[e][r],n=e+1<d?m[e+1][r]:null;if(n&&!v[e+1][r]){v[e+1][r]=!0;let S=Math.floor(r*u),f=Math.floor(e*s),p=Math.floor((r+1)*u),H=Math.floor((e+2)*s),R=p-S,D=H-f,O=Math.floor(s*.25),A=Math.floor(f+s-O),I=Math.floor(f+s+O),h=0,T=0;for(let Y=A;Y<I;Y+=2)for(let _=S;_<p;_+=2)h+=t[Y*a+_],T++;let q=h/(T||1),W=0;for(let Y=A;Y<I;Y+=2)for(let _=S;_<p;_+=2){let z=t[Y*a+_]-q;W+=z*z}let tt=Math.sqrt(W/(T||1)),k;if(tt<14)k=Math.floor(f+s)+4;else{let Y=i.stdDev||0,_=n.stdDev||0;Y<_?k=Math.floor(f+s/2)+(i.yOffset!==3?i.yOffset:-4):k=Math.floor(f+s+s/2)+(n.yOffset!==3?n.yOffset:4)}k=Math.max(f+11,Math.min(f+D-2,k)),y.push({cellNum:i.cellNum,cx:Math.floor(S+R/2),cy:k,cellW:R,cellH:D,startX:S,startY:f,yOffset:0,isCustomY:!0})}else y.push(i)}}return U=y,y}catch(t){return console.error("UI Element Detection error:",t),[]}}function ot(o,t,C,a,x=[]){let c=o/C,d=t/a,u="";for(let s of x){let{cellNum:G,startX:w,startY:m,cellW:v,cellH:y,cx:e,cy:r}=s;u+=`
2
+ <rect x="${w+1}" y="${m+1}" width="${v-2}" height="${y-2}" fill="rgba(0, 255, 255, 0.015)" stroke="rgba(255, 255, 0, 0.3)" stroke-width="1.1" rx="2"/>
3
+ `;let M;if(s.isCustomY)M=r;else{let g=r+(s.yOffset!==void 0?s.yOffset:3);M=Math.max(m+11,Math.min(m+y+3,g))}u+=`
4
+ <text x="${e}" y="${M}" font-family="'Segoe UI', Roboto, sans-serif" font-size="14" font-weight="600" fill="#FFFF00" stroke="#000000" stroke-width="2" paint-order="stroke fill" stroke-linejoin="round" opacity="0.8" text-anchor="middle">${G}</text>
5
+ `}return`<svg width="${o}" height="${t}" xmlns="http://www.w3.org/2000/svg">${u}</svg>`}var J=1,V=o=>new Promise(t=>setTimeout(t,o));async function Q(){try{let{loadSettings:o}=await import("./settings-XPFFYYYD.js"),t=await o();return Number(t.display||0)}catch{return 0}}async function st(){let o=await Q();try{let t=await B.listDisplays();if(t&&t.length>0)return{format:"png",screen:(t[o]||t[0]).id}}catch{}return{format:"png"}}async function rt(){let o=0,t=await st();for(;o<2;){let C=await B(t);await V(500);let a=await B(t);if(C.equals(a))return a;o++,o<2&&await V(3e3)}return await V(3e3),await B(t)}async function ht(){try{let o=await rt(),t=await et(o),C=ot(l.TARGET_WIDTH,l.TARGET_HEIGHT,l.COLS,l.ROWS,t),a=await K(o).resize(l.TARGET_WIDTH,l.TARGET_HEIGHT,{fit:"fill"}).composite([{input:Buffer.from(C),top:0,left:0}]).png({quality:100}).toBuffer();if(process.env.SHOW_DEBUG_GRID)try{let s=Z.resolve(process.cwd(),"screenshots");await P.ensureDir(s);let G=Z.join(s,`${J}.png`);await P.writeFile(G,a),J++}catch{}let x=a.toString("base64"),c=t.length,d=o,u=a;return d=null,u=null,{base64:x,mimeType:"image/png",width:l.TARGET_WIDTH,height:l.TARGET_HEIGHT,detectedCount:c}}catch(o){return console.error("Failed to capture gridded screenshot:",o),null}}function nt(o){if(o==null)return null;let t=null;if(typeof o=="number")t=o;else if(typeof o=="string"){let w=o.trim();if(/^\d+$/.test(w))t=parseInt(w,10);else{let m=w.match(/^([A-Z])([0-9]{1,2})$/i);if(m){let v=m[1].toUpperCase().charCodeAt(0)-65,y=parseInt(m[2],10)-1;t=v*l.COLS+y+1}}}if(t===null||isNaN(t))return null;if(U&&U.length>0){let w=U.find(m=>m.cellNum===t);if(w)return{x:w.cx,y:w.cy,colIdx:Math.floor((t-1)%l.COLS),rowIdx:Math.floor((t-1)/l.COLS),cellNum:t}}let C=l.COLS*l.ROWS;if(t<1||t>C)return null;let a=t-1,x=Math.floor(a/l.COLS),c=a%l.COLS,d=l.TARGET_WIDTH/l.COLS,u=l.TARGET_HEIGHT/l.ROWS,s=Math.floor(c*d+d/2),G=Math.floor(x*u+u/2);return{x:s,y:G,colIdx:c,rowIdx:x,cellNum:t}}async function ut(o,t,C){let a=null;if(typeof o=="number"||typeof o=="string"?a=nt(o):o&&typeof o.x=="number"&&typeof o.y=="number"&&(a=o),!a)return null;let x=t,c=C,d=0,u=0,s=await Q();try{let y=await B.listDisplays();if(y&&y.length>0){let e=y[s]||y[0];e.width&&e.height&&(x=e.width,c=e.height),e.left!==void 0&&(d=e.left),e.top!==void 0&&(u=e.top)}}catch{}if(!x||!c)try{x=await j.width(),c=await j.height()}catch{x=1920,c=1080}let G=x/l.TARGET_WIDTH,w=c/l.TARGET_HEIGHT,m=Math.round(a.x*G)+d,v=Math.round(a.y*w)+u;return{x:m,y:v,screenW:x,screenH:c,offsetX:d,offsetY:u}}export{l as a,Q as b,ht as c,nt as d,ut as e};