fluxflow-cli 4.2.5 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/dist/chunks/{ai-6HYACUNN.js → ai-XVH7ZCEN.js} +1 -1
- package/dist/chunks/app-NBNACTIU.js +231 -0
- package/dist/chunks/chunk-ACHIC75V.js +1 -0
- package/dist/chunks/{chunk-3JHCQ2JD.js → chunk-GKFFLQSG.js} +1 -1
- package/dist/chunks/chunk-TKIVOTJ4.js +3 -0
- package/dist/chunks/chunk-WSZQ2ABN.js +818 -0
- package/dist/chunks/{screen_grid-Y6GHBUFE.js → screen_grid-JSAE3BZG.js} +1 -1
- package/dist/chunks/{secrets-ITIOWL5R.js → secrets-BTHIU63L.js} +1 -1
- package/dist/chunks/{settings-REIFJELQ.js → settings-NKBYU2YV.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/model_config.json +58 -2
- package/dist/package.json +2 -2
- package/model_config.json +58 -2
- package/package.json +2 -2
- package/dist/chunks/app-MLNCWR2T.js +0 -231
- package/dist/chunks/chunk-6AS3MXF7.js +0 -815
- package/dist/chunks/chunk-6ENN7MJR.js +0 -3
- package/dist/chunks/chunk-M7QN5C2K.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a,d as c}from"./chunk-SIINYZWE.js";import{e as E}from"./chunk-I27MASHH.js";import r from"fs-extra";import A from"path";var s=A.join(E,"secrets.json"),u=async()=>{try{let e=a(s,{});if(e.API_KEY)return e.API_KEY}catch{}return null},f=async e=>{try{let t=a(s,{});if(e==="Google")return t.GOOGLE_API_KEY||t.API_KEY||null;if(e==="DeepSeek")return t.DEEPSEEK_API_KEY||null;if(e==="OpenRouter")return t.OPENROUTER_API_KEY||null;if(e==="Mistral")return t.MISTRAL_API_KEY||null;if(e==="NVIDIA")return t.NVIDIA_API_KEY||null;if(e==="Ollama")return t.OLLAMA_API_KEY||"LOCAL";if(e==="CrofAI"||e==="Crof")return t.CROFAI_API_KEY||null;if(e==="InferX")return t.INFERX_API_KEY||null;if(e==="SenseNova"||e==="Sensenova")return t.SENSENOVA_API_KEY||null}catch{}return null},Y=async(e,t)=>{e==="Google"?(await n("GOOGLE_API_KEY",t),await n("API_KEY",t)):e==="DeepSeek"?await n("DEEPSEEK_API_KEY",t):e==="OpenRouter"?await n("OPENROUTER_API_KEY",t):e==="Mistral"?await n("MISTRAL_API_KEY",t):e==="NVIDIA"?await n("NVIDIA_API_KEY",t):e==="Ollama"?await n("OLLAMA_API_KEY",t):e==="CrofAI"||e==="Crof"?await n("CROFAI_API_KEY",t):e==="InferX"?await n("INFERX_API_KEY",t):(e==="SenseNova"||e==="Sensenova")&&await n("SENSENOVA_API_KEY",t)},S=async e=>{try{return a(s,{})[e]||null}catch{return null}},n=async(e,t)=>{await r.ensureDir(E);let I=a(s,{});I[e]=t,c(s,I)},O=async()=>{try{let e=a(s,{});return{key:e.GOOGLE_API_KEY||e.API_KEY,cx:e.SEARCH_ID}}catch{}return{key:null,cx:null}},i=async e=>n("API_KEY",e),y=async e=>n("GOOGLE_API_KEY",e),R=async e=>n("SEARCH_ID",e),_=async e=>{try{let t=a(s,{});delete t[e],c(s,t)}catch{}},N=async()=>_("API_KEY");export{u as a,f as b,Y as c,S as d,n as e,O as f,i as g,y as h,R as i,_ as j,N as k};
|
|
@@ -2,4 +2,4 @@ import{screen as j}from"@nut-tree-fork/nut-js";import B from"screenshot-desktop"
|
|
|
2
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
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
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-
|
|
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-NKBYU2YV.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};
|
|
@@ -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 m 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 s=["Free","Paid"];for(let i of s){let u=a.models[i];if(Array.isArray(u)){for(let f of u)if(f&&f.cmd){let w=f.cmd.trim().toLowerCase();f.multimodal===!0&&t.add(w),f.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,s=typeof r.release=="number"&&r.release>o.release;if(a||s){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",InferX:"Free",SenseNova:"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:""}},I=async()=>{let t={...c};try{if(await m.exists(n)){let e=v(n);if(e.imageSettings&&e.imageSettings.apiKey)try{let r=e.imageSettings.apiKey,{saveSecret:a}=await import("./secrets-BTHIU63L.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-BTHIU63L.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},b=async t=>{let{FLUXFLOW_DIR:e}=await import("./paths-R3DD7CRF.js"),r=["logs","secret"];for(let a of r){let s=h.join(e,a),i=h.join(t,a);try{await m.exists(s)&&(await m.ensureDir(i),await m.copy(s,i,{overwrite:!0}))}catch(u){console.error(`Migration failed for ${a}:`,u)}}},H=async t=>{try{let e=await I();if(!e.systemSettings.useExternalData&&t.systemSettings?.useExternalData&&t.systemSettings?.externalDataPath&&await b(t.systemSettings.externalDataPath),t.imageSettings&&t.imageSettings.apiKey!==void 0){let{saveSecret:a,removeSecret:s}=await import("./secrets-BTHIU63L.js"),i=t.imageSettings.apiKey;i?await a("POLLINATIONS_API_KEY",i):await s("POLLINATIONS_API_KEY")}let r={...e,...t};return r.imageSettings&&(r.imageSettings={...r.imageSettings,apiKey:""}),await m.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,I as h,H as i};
|