fluxflow-cli 4.18.0 → 4.20.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.
- package/dist/chunks/{addMemScore-W4I665ZR.js → addMemScore-HPTGXICT.js} +1 -1
- package/dist/chunks/{ai-6LGLTTCE.js → ai-Q4NPSX2V.js} +1 -1
- package/dist/chunks/{app-UMXRKFDU.js → app-Q3BDRKBD.js} +90 -90
- package/dist/chunks/{chat-C4CKZM5D.js → chat-HHMMKXDE.js} +1 -1
- package/dist/chunks/{chunk-E3E5H3M4.js → chunk-33KD6VKN.js} +1 -1
- package/dist/chunks/{chunk-MAZITQH6.js → chunk-4XZGWK5L.js} +1 -1
- package/dist/chunks/{chunk-4CQOGQFQ.js → chunk-B7KSXQ3C.js} +289 -128
- package/dist/chunks/chunk-COUKJJ4O.js +31 -0
- package/dist/chunks/{chunk-XFL3A2CT.js → chunk-I4JQEUHE.js} +1 -1
- package/dist/chunks/chunk-NPYHHQDC.js +1 -0
- package/dist/chunks/{chunk-VCF6JVQV.js → chunk-ORXN6WUW.js} +1 -1
- package/dist/chunks/{chunk-7QASAAHS.js → chunk-Q2D63UDR.js} +1 -1
- package/dist/chunks/{chunk-UGLNJ52L.js → chunk-QGPOMXO4.js} +1 -1
- package/dist/chunks/{chunk-FDNLMLIM.js → chunk-RI37VZYB.js} +1 -1
- package/dist/chunks/{chunk-UAHJEAVX.js → chunk-RLT6EHPQ.js} +1 -1
- package/dist/chunks/chunk-RN5BZJYO.js +9 -0
- package/dist/chunks/{chunk-ZSVBC2ZI.js → chunk-UDJ2C3N3.js} +1 -1
- package/dist/chunks/{chunk-TCYHPPPS.js → chunk-UN6TUQZX.js} +1 -1
- package/dist/chunks/{chunk-BCS6MMDL.js → chunk-UVWNGUNJ.js} +180 -180
- package/dist/chunks/{chunk-HYGK7YDY.js → chunk-WFHGURXW.js} +1 -1
- package/dist/chunks/{chunk-72RYQ5W7.js → chunk-Y6DZDEJ5.js} +1 -1
- package/dist/chunks/{chunk-KFM2OZWJ.js → chunk-YUJMCXJA.js} +1 -1
- package/dist/chunks/{click-KI2HDWSU.js → click-H7HTKF3R.js} +2 -2
- package/dist/chunks/{computer_action-DTZFD3WC.js → computer_action-UTDLLMF2.js} +1 -1
- package/dist/chunks/{drag-I5U53ZJG.js → drag-U6X3O5GB.js} +1 -1
- package/dist/chunks/{emergency_rollback-JTQSRHQZ.js → emergency_rollback-HWM4FJ6J.js} +1 -1
- package/dist/chunks/{exec_command-DDBOSWMU.js → exec_command-BH3PUWVO.js} +1 -1
- package/dist/chunks/export-YTWRQ63I.js +1 -0
- package/dist/chunks/{file_map-LMYY76M4.js → file_map-XK7BFZFI.js} +1 -1
- package/dist/chunks/{generate_image-OZQE4ON3.js → generate_image-KQBOTDD4.js} +1 -1
- package/dist/chunks/{invoke-WRVCOTXT.js → invoke-ID3KSFBY.js} +2 -2
- package/dist/chunks/{invokeSync-KD765JM2.js → invokeSync-FAK53YTR.js} +2 -2
- package/dist/chunks/{key_press-26ZNSFNA.js → key_press-QRO3OFLC.js} +1 -1
- package/dist/chunks/{keyboard_typing-KFGOX3QX.js → keyboard_typing-FXP3VJ6Q.js} +1 -1
- package/dist/chunks/{memory-OYIUYX3A.js → memory-TVFFXCSD.js} +1 -1
- package/dist/chunks/{model_config-KOPB5T4R.js → model_config-UZLNHYP5.js} +1 -1
- package/dist/chunks/paths-Y7ACZJAE.js +1 -0
- package/dist/chunks/{saveSummary-ATBIFYDP.js → saveSummary-HFAPNJJH.js} +1 -1
- package/dist/chunks/{screen_grid-MAW64GKY.js → screen_grid-EIPLWNEM.js} +1 -1
- package/dist/chunks/{scroll-YN67VAJ7.js → scroll-SND6RHXA.js} +1 -1
- package/dist/chunks/search_keyword-EAMQWPPI.js +8 -0
- package/dist/chunks/{secrets-XNJW2U6Y.js → secrets-RFEEPY3S.js} +1 -1
- package/dist/chunks/sessionDaemon-GHQTAGDG.js +1 -0
- package/dist/chunks/settings-JGWWOFEC.js +1 -0
- package/dist/chunks/{todo-6ZB5YFX6.js → todo-7Q2JBEVP.js} +1 -1
- package/dist/chunks/{update_file-ACEMMAAQ.js → update_file-BXYTHDAC.js} +1 -1
- package/dist/chunks/usage-XHKS6GHC.js +1 -0
- package/dist/chunks/usageServer-5WB6ZWFG.js +1 -0
- package/dist/chunks/view_file-JRVPAETL.js +1 -0
- package/dist/chunks/{web_scrape-IKJE45Z6.js → web_scrape-LAQI7CVA.js} +1 -1
- package/dist/chunks/{web_search-7GI77X3E.js → web_search-D2GOWARI.js} +1 -1
- package/dist/chunks/{write_docx-ZTLEYYGI.js → write_docx-IUKMO7XL.js} +1 -1
- package/dist/chunks/{write_file-QDLI2RK5.js → write_file-QMTFTJ6V.js} +1 -1
- package/dist/chunks/{write_pdf-ZM6DG4DO.js → write_pdf-UM6Z2J4K.js} +1 -1
- package/dist/cli.js +21 -21
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/dist/chunks/chunk-6NCN7IZN.js +0 -1
- package/dist/chunks/chunk-KRRJNFBF.js +0 -6
- package/dist/chunks/chunk-YNU56P2H.js +0 -31
- package/dist/chunks/export-OHZ652N5.js +0 -1
- package/dist/chunks/paths-PM7MFWJK.js +0 -1
- package/dist/chunks/search_keyword-4NOEU57F.js +0 -8
- package/dist/chunks/settings-FZNBYJ3N.js +0 -1
- package/dist/chunks/usage-2UML4SGM.js +0 -1
- package/dist/chunks/usageServer-TWVV3FOE.js +0 -1
- package/dist/chunks/view_file-MGLL22AR.js +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import{d as S}from"./chunk-RI37VZYB.js";import R from"fs-extra";import F from"path";var j=l=>{if(!l)return[];let u=[],p=/\[tool:(.*?)\((.*?)\)\]/g,n=0,i;for(;(i=p.exec(l))!==null;){if(i.index>n){let e=l.slice(n,i.index);e.trim()&&u.push({type:"output",content:e})}u.push({type:"tool",toolName:i[1],args:i[2]}),n=p.lastIndex}if(n<l.length){let e=l.slice(n);e.trim()&&u.push({type:"output",content:e})}return u},k=async(l,u,p=process.cwd())=>{let n=`export-fluxflow-${l}.txt`,i=F.join(p,n),e=[],o=!1;for(let m=0;m<u.length;m++){let r=u[m];if(r&&!(r.role==="system"||r.isMeta||r.isLogo||String(r.id).startsWith("welcome"))){if(r.role==="user"){let s=r.text||"";s=s.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),e.length>0&&e.push(""),e.push("[USER]"),e.push(s),o=!1}else if(r.role==="think"){o||(e.push(""),e.push("[AGENT]"),o=!0);let s=(r.text||"").replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/gi,"").replace(/\[\[TOOL RESULTS\]\]/gi,"").replace(/\[TOOL RESULTS\]/gi,"").replace(/\[TOOL RESULT\]/gi,"").trim();s&&(e.push("[thoughts]"),e.push(s))}else if(r.role==="agent"){o||(e.push(""),e.push("[AGENT]"),o=!0);let s=j(r.text||"");for(let c of s)if(c.type==="output"){let a=c.content.replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/gi,"").replace(/\[\[TOOL RESULTS\]\]/gi,"").replace(/\[TOOL RESULTS\]/gi,"").replace(/\[TOOL RESULT\]/gi,"").trim();a&&(e.push("[output]"),e.push(a))}else c.type==="tool"&&(e.push("[tool]"),e.push(`${c.toolName} ${c.args}`))}}}let d=e.join(`
|
|
2
|
+
`);return await R.writeFile(i,d,"utf8"),{exportFile:n,exportPath:i,totalLines:e.length}},I=(l,u="FluxFlow",p=null)=>{if(!l||!l.trim())return[];let n=l.split(`
|
|
3
|
+
`),i=[],e=[],o=/^\s*(?:CRITICAL\s+ERROR|ERROR|DEBUG|SEARCH|PUPPETEER|WARN|WARNING|INFO)\b/i,d=/^\s*-{3,}\s*$/,m=!1;for(let s of n)if(o.test(s)){m=!0;break}if(!m){let s=l.trim();if(!s)return[];let c=p?new Date(p).toLocaleString():"Unknown Time",a=/\bjanitor\b/i.test(s)?"Memory":u;return[{timestamp:c,level:"ERROR",source:a,message:s}]}for(let s of n)d.test(s)?e.length>0&&(i.push(e.join(`
|
|
4
|
+
`).trim()),e=[]):o.test(s)?(e.length>0&&(i.push(e.join(`
|
|
5
|
+
`).trim()),e=[]),e.push(s)):(e.length>0||s.trim())&&e.push(s);e.length>0&&i.push(e.join(`
|
|
6
|
+
`).trim());let r=[];for(let s of i){if(!s)continue;let c=s.split(`
|
|
7
|
+
`).map(t=>t.trimEnd()),a=c[0]||"";if(!/\bERROR\b/i.test(s))continue;let L=a.match(/\[(.*?)\]/),O=L?L[1]:null,$="ERROR";/CRITICAL\s+ERROR/i.test(a)&&($="CRITICAL ERROR");let E="";if(L){let t=a.indexOf("]:");t!==-1?E=a.substring(t+2).trim():E=a.replace(o,"").replace(/\[.*?\]/,"").replace(/^:\s*/,"").trim()}else E=a.replace(o,"").replace(/^:\s*/,"").trim();if(c.length>1){let t=c.slice(1).join(`
|
|
8
|
+
`).trim();t&&(E=E?`${E}
|
|
9
|
+
${t}`:t)}if(E){let t=/\bjanitor\b/i.test(s)?"Memory":u;r.push({timestamp:O||(p?new Date(p).toLocaleString():"Unknown Time"),level:$,source:t,message:E})}}return r},N=async(l=process.cwd())=>{let u=`fluxflow-error-${Date.now()}.txt`,p=F.join(l,u),n=async t=>{if(!await R.pathExists(t))return[];let h=await R.readdir(t),f=[];for(let g of h){let x=F.join(t,g),w=await R.stat(x);if(w.isDirectory()){let y=await n(x);f=f.concat(y)}else(g.endsWith(".log")||g.endsWith(".txt"))&&f.push({path:x,mtime:w.mtimeMs})}return f},i=await n(S),e=[];for(let t of i)try{let h=await R.readFile(t.path,"utf8");if(h.trim()){let f=t.path.replace(/\\/g,"/").toLowerCase(),g="FluxFlow";f.includes("/janitor")||f.includes("janitor")?g="Memory":f.includes("/usage")||f.includes("usage")?g="Usage":!f.includes("/agent")&&!f.includes("agent")&&(g="Other");let x=I(h,g,t.mtime);e=e.concat(x)}}catch{}let o=[],d=new Set;for(let t of e){let h=`${t.source}::${t.timestamp}::${t.message.trim()}`;d.has(h)||(d.add(h),o.push(t))}let m=o.filter(t=>t.source==="FluxFlow"),r=o.filter(t=>t.source==="Memory"),s=o.filter(t=>t.source==="Usage"),c=o.filter(t=>!["FluxFlow","Memory","Usage"].includes(t.source)),a=(t,h,f)=>{let g=["================================================================================",`${t} (${h.length})`,"================================================================================"].join(`
|
|
10
|
+
`);if(h.length===0)return`${g}
|
|
11
|
+
No ${f} error entries found.`;let x=h.map((w,y)=>{let C=`[${f} #${y+1}] ${w.timestamp} (${w.level})`,U=w.message.split(`
|
|
12
|
+
`).map(b=>` ${b}`).join(`
|
|
13
|
+
`);return`${C}
|
|
14
|
+
${U}`});return`${g}
|
|
15
|
+
|
|
16
|
+
`+x.join(`
|
|
17
|
+
|
|
18
|
+
--------------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
`)},T=[`FluxFlow: ${m.length}`,`Memory: ${r.length}`,`Usage: ${s.length}`];c.length>0&&T.push(`Other: ${c.length}`);let L=["================================================================================","FLUXFLOW ERROR LOGS EXPORT",`Exported At : ${new Date().toLocaleString()}`,`Total Errors: ${o.length} (${T.join(" | ")})`,"================================================================================",""].join(`
|
|
21
|
+
`),O=1,$=[a(`SECTION ${O++}: FLUXFLOW ERRORS`,m,"FluxFlow"),a(`SECTION ${O++}: MEMORY ERRORS`,r,"Memory"),a(`SECTION ${O++}: USAGE ERRORS`,s,"Usage")];c.length>0&&$.push(a(`SECTION ${O++}: OTHER SYSTEM ERRORS`,c,"Other"));let E=L+$.join(`
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
`)+`
|
|
25
|
+
`;await R.writeFile(p,E,"utf8");try{await R.pathExists(S)&&await R.emptyDir(S)}catch{}return{exportFile:u,exportPath:p,entryCount:o.length,fluxflowCount:m.length,memoryCount:r.length,usageCount:s.length}},P=async(l,{chatId:u,messages:p})=>{let n=(l[1]||"chat").toLowerCase();return n==="chat"?{success:!0,type:"chat",message:`\u2726 Chat Exported
|
|
26
|
+
\u2800\u2800\u2514\u2500 ${(await k(u,p)).exportFile}
|
|
27
|
+
\u2800`}:n==="logs"?{success:!0,type:"logs",message:`\u2726 Error Logs Exported
|
|
28
|
+
\u2800\u2800\u2514\u2500 ${(await N()).exportFile}
|
|
29
|
+
\u2800`}:{success:!1,message:`[EXPORT USAGE] Unknown subcommand "${n}". Options:
|
|
30
|
+
\u2022 /export chat current
|
|
31
|
+
\u2022 /export logs error`}};export{j as a,k as b,I as c,N as d,P as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as u}from"./chunk-
|
|
1
|
+
import{n as u}from"./chunk-QGPOMXO4.js";import{e as m,f as c}from"./chunk-SIINYZWE.js";import{b as r}from"./chunk-RI37VZYB.js";import n from"fs-extra";import g from"path";var s={mode:"Flux",display:0,thinkingLevel:"Medium",aiProvider:"Google",activeModel:u("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",Poolside:"Free",ExpLabs:"Free",TokenHarbor:"Free",APInex:"Free"}},systemSettings:{memory:!1,theme:"Dark",compression:0,autoExec:!0,allowExternalAccess:!1,advanceRollback:!1,autoDeleteHistory:"7d",useExternalData:!1,externalDataPath:"",preserveThinking:!0,loadingPhrases:!0,progressiveRendering:!0,showTPMEstimate:!0,subAgents:!1,CustomSubAgent:!1,SubAgentModel:"Default",SubAgentProvider:"",dynamicDirAwareness:!1,indentationTree:!0,ollamaEndpoint:"Cloud",compressToolResults:!1,autoTruncateResults:!0,imageHistoryCU:"Standard",contextLength:"256k",keepReasoningContext:!1,autoExcludeMetadata:!1},profileData:{name:null,nickname:null,instructions:null},imageSettings:{keyType:"Default",quality:"Low-High",apiKey:""}},p=async()=>{let t={...s};try{if(await n.exists(r)){let e=m(r);if(e.imageSettings&&e.imageSettings.apiKey)try{let a=e.imageSettings.apiKey,{saveSecret:i}=await import("./secrets-RFEEPY3S.js");await i("POLLINATIONS_API_KEY",a),e.imageSettings.apiKey="",c(r,e)}catch{}t={...s,...e,quotas:{...s.quotas,...e.quotas,providerTiers:{...s.quotas.providerTiers,...e.quotas?.providerTiers||{}}},systemSettings:{...s.systemSettings,...e.systemSettings},profileData:{...s.profileData,...e.profileData},imageSettings:{...s.imageSettings,...e.imageSettings}}}}catch(e){console.error("Failed to load settings:",e)}try{let{getSecret:e}=await import("./secrets-RFEEPY3S.js"),a=await e("POLLINATIONS_API_KEY");a&&(t.imageSettings.apiKey=a)}catch{}if(t.showFullThinking===!1){t.showFullThinking=!0;try{c(r,t)}catch{}}return t},S=async t=>{let{FLUXFLOW_DIR:e}=await import("./paths-Y7ACZJAE.js"),a=["logs","secret"];for(let i of a){let l=g.join(e,i),o=g.join(t,i);try{await n.exists(l)&&(await n.ensureDir(o),await n.copy(l,o,{overwrite:!0}))}catch(d){console.error(`Migration failed for ${i}:`,d)}}},D=async t=>{try{let e=await p();if(!e.systemSettings.useExternalData&&t.systemSettings?.useExternalData&&t.systemSettings?.externalDataPath&&await S(t.systemSettings.externalDataPath),t.imageSettings&&t.imageSettings.apiKey!==void 0){let{saveSecret:i,removeSecret:l}=await import("./secrets-RFEEPY3S.js"),o=t.imageSettings.apiKey;o?await i("POLLINATIONS_API_KEY",o):await l("POLLINATIONS_API_KEY")}let a={...e,...t};return a.imageSettings&&(a.imageSettings={...a.imageSettings,apiKey:""}),await n.ensureDir(g.dirname(r)),c(r,a),!0}catch(e){return console.error("Failed to save settings:",e),!1}};export{p as a,D as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b}from"./chunk-YUJMCXJA.js";import{c as d,d as l}from"./chunk-SIINYZWE.js";import{f as h,g as m,l as C,m as M,s as f}from"./chunk-RI37VZYB.js";import u from"fs-extra";import j from"path";import{nanoid as L}from"nanoid";var D=Promise.resolve(),A=t=>{let r=D.then(async()=>{try{return await t()}catch(e){throw console.error("Lock Operation Failed:",e),e}});return D=r.catch(()=>{}),r},T=async()=>{await u.ensureDir(m);let t={};if(await u.pathExists(h))try{t=d(h,{})}catch{t={}}for(let r in t){let e=j.join(m,`${r}.json`);Object.defineProperty(t[r],"messages",{get:()=>{if(u.existsSync(e))try{return d(e,[])}catch{return[]}return[]},set:n=>{try{l(e,n)}catch{}},enumerable:!1,configurable:!0})}return t},B=async(t,r,e)=>A(async()=>{await u.ensureDir(m);let n=await T(),s=n[t],i=(e||[]).filter(a=>!a.isUpdateNotification&&(!a.isMeta||a.text&&a.text.includes("Request Cancelled"))),o=a=>{if(!a)return;let I=typeof a=="string"?a:a.text||a.content||"";if(!I||typeof I!="string")return;let w=I.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!w)return;let O=w.split(/\s+/),E;return O.length>7?E=O.slice(0,7).join(" ")+"...":w.length>45?E=w.substring(0,45).trimEnd()+"...":E=w,E},c,y=i.filter(a=>a.role==="user"),p=y[0],g=y[y.length-1],x=o(g),H=o(p);s&&s.prompt?Math.random()<.3&&x?c=x:c=s.prompt:c=H||x;let S=r||(s?s.name:`Session ${t.slice(-6)}`),F=j.join(m,`${t}.json`);l(F,i),n[t]={name:S,prompt:c||void 0,updatedAt:Date.now()};let k={};for(let a in n)k[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};l(h,k)}),J=async(t,r)=>A(async()=>{let e=await T();e[t]?(e[t].name=r,e[t].updatedAt=Date.now()):e[t]={name:r,updatedAt:Date.now()};let n={};for(let s in e)n[s]={name:e[s].name,prompt:e[s].prompt||void 0,updatedAt:e[s].updatedAt};l(h,n)}),N=async t=>A(async()=>{let r=await T();delete r[t];let e={};for(let o in r)e[o]={name:r[o].name,prompt:r[o].prompt||void 0,updatedAt:r[o].updatedAt};if(l(h,e),await u.pathExists(f))try{let o=d(f,[]);if(Array.isArray(o)){let c=o.filter(y=>Object.keys(y)[0]!==String(t));l(f,c)}}catch{}let n=d(C,{});n[t]&&(delete n[t],l(C,n));let s=d(M,{});s[t]&&(delete s[t],l(M,s)),await b.deleteChatBackups(t);let i=j.join(m,`${t}.json`);if(await u.pathExists(i))try{await u.remove(i)}catch{}return r}),Y=()=>`flow-${L(6)}`,q=async t=>{if(!t||t==="Never")return;let r=parseInt(t);if(isNaN(r))return;let e=await T(),n=Date.now(),s=r*24*60*60*1e3,i=0;for(let o in e){let c=e[o];c.updatedAt&&n-c.updatedAt>s&&(await N(o),i++)}return i},G=(t,r=4)=>{if(t.length<=1)return t;let e=t[0],n=t.slice(1),s=r*2,i=n.slice(s);return[e,...i]};var K=async(t,r,e)=>A(async()=>{let n=d(f,[]);Array.isArray(n)||(n=[]);let s=r||0,i=e||0,o={total:s,context:i},c=n.findIndex(p=>Object.keys(p)[0]===String(t));s===0&&i===0?c!==-1&&n.splice(c,1):c!==-1?n[c]={[String(t)]:o}:n.push({[String(t)]:o});let y=n.filter(p=>{if(!p||typeof p!="object")return!1;let g=Object.keys(p)[0];if(!g)return!1;let x=p[g];return x&&((x.total||0)>0||(x.context||0)>0)});l(f,y)}),Q=async t=>{try{if(!await u.pathExists(f))return{total:0,context:0};let r=d(f,[]);if(!Array.isArray(r))return{total:0,context:0};let e=r.find(n=>Object.keys(n)[0]===String(t));return e?{total:0,context:0,...e[String(t)]}:{total:0,context:0}}catch{return{total:0,context:0}}};export{T as a,B as b,J as c,N as d,Y as e,q as f,G as g,K as h,Q as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as F,d as y}from"./chunk-SIINYZWE.js";import{c as g,
|
|
1
|
+
import{c as F,d as y}from"./chunk-SIINYZWE.js";import{c as g,p as h}from"./chunk-RI37VZYB.js";import o from"fs-extra";import a from"path";var P=["node_modules","dist","bin","logs",".git",".fluxflow","secret",".gemini",".agents","tmp","temp","build","out","snapshots"];async function k(t,s=t){let e={},i=await o.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let c of i){if(P.includes(c.name))continue;let l=a.join(t,c.name),d=a.relative(s,l).replace(/\\/g,"/");if(c.isDirectory()){let n=await k(l,s);Object.assign(e,n)}else{let n=await o.stat(l).catch(()=>null);n&&(e[d]={size:n.size,mtime:n.mtimeMs})}}return e}async function E(t,s){await o.ensureDir(t);for(let e of Object.keys(s)){let i=a.join(process.cwd(),e),c=a.join(t,e);await o.ensureDir(a.dirname(c)),await o.copyFile(i,c).catch(()=>{})}}async function j(t,s,e=null,i=null){if(!await o.pathExists(t))return;i||(i=t);let c=await o.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let l of c){let d=a.join(t,l.name),n=a.join(s,l.name);if(l.isDirectory())await j(d,n,e,i);else{let u=a.relative(i,d).replace(/\\/g,"/"),p=await o.pathExists(n);p&&await o.chmod(n,438).catch(()=>{}),await o.ensureDir(a.dirname(n));let f=await o.copyFile(d,n).then(()=>!0).catch(()=>!1);await o.chmod(n,438).catch(()=>{}),e&&(f?p?e.replaced++:e.restored++:e.failed.push(u))}}}var C={async takeInitialSnapshot(t){try{let s=a.join(g,"snapshots",t);await o.remove(s).catch(()=>{}),await o.ensureDir(s);let e=await k(process.cwd());await E(a.join(s,"initial"),e);let i=F(h,{});i[t]={initialManifest:e,currentManifest:e,checkpoints:[{id:"initial",timestamp:new Date().toISOString(),newFiles:[],modifiedFiles:[],deletedFiles:[],toolsUsed:[]}]},y(h,i)}catch{}},async recordTurnDelta(t,s,e=[]){try{let i=F(h,{}),c=i[t];if(!c)return;let l=c.currentManifest||c.initialManifest,d=await k(process.cwd()),n=[],u=[],p=[];for(let[r,m]of Object.entries(d)){let w=l[r];w?(w.size!==m.size||w.mtime!==m.mtime)&&u.push(r):n.push(r)}for(let r of Object.keys(l))d[r]||p.push(r);let f=[...n,...u];if(f.length>0||p.length>0){let r={};for(let w of f)r[w]=d[w];let m=a.join(g,"snapshots",t,`turn_${s}`);await E(m,r)}c.checkpoints.push({id:`turn_${s}`,timestamp:new Date().toISOString(),newFiles:n,modifiedFiles:u,deletedFiles:p,toolsUsed:e}),c.currentManifest=d,y(h,i)}catch{}},async getCheckpoints(t){try{let e=F(h,{})[t];return e?e.checkpoints||[]:[]}catch{return[]}},async rollbackToCheckpoint(t,s){try{let e=F(h,{}),i=e[t];if(!i)throw new Error("No session active for Advance Rollback.");let c=i.checkpoints||[],l=c.findIndex(f=>f.id===s);if(l===-1)throw new Error(`Checkpoint [${s}] not found.`);let d=a.join(g,"snapshots",t),n={restored:0,replaced:0,failed:[]},u=await k(process.cwd());for(let f of Object.keys(u)){let r=a.join(process.cwd(),f);await o.chmod(r,438).catch(()=>{}),await o.remove(r).catch(()=>{})}let p=a.join(d,"initial");await j(p,process.cwd(),n,p);for(let f=1;f<=l;f++){let r=c[f],m=a.join(d,r.id);if(await j(m,process.cwd(),n,m),r.deletedFiles&&r.deletedFiles.length>0)for(let w of r.deletedFiles){let D=a.join(process.cwd(),w);await o.chmod(D,438).catch(()=>{}),await o.remove(D).catch(()=>{})}}return i.checkpoints=c.slice(0,l+1),i.currentManifest=await k(process.cwd()),y(h,e),{checkpointId:s,stats:n}}catch(e){throw new Error(`Rollback failed: ${e.message}`)}},async getLatestFileChanges(t){try{let e=F(h,{})[t];if(!e||!e.checkpoints||e.checkpoints.length===0)return{newFiles:[],modifiedFiles:[],deletedFiles:[]};let i=e.checkpoints[e.checkpoints.length-1];return{newFiles:i.newFiles||[],modifiedFiles:i.modifiedFiles||[],deletedFiles:i.deletedFiles||[]}}catch{return{newFiles:[],modifiedFiles:[],deletedFiles:[]}}},async cleanup(t){try{let s=a.join(g,"snapshots",t);await o.remove(s).catch(()=>{});let e=F(h,{});e[t]&&(delete e[t],y(h,e))}catch{}}};export{C as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as R,b as T}from"./chunk-
|
|
1
|
+
import{a as R,b as T}from"./chunk-WFHGURXW.js";import{a as A}from"./chunk-Y5JU726N.js";import{spawn as C}from"child_process";var P=null;try{let f=await import("node-pty");P=f.default||f}catch{}var _=!!P,S=f=>typeof f!="string"?f:f.replace(/(?:\u001b][\s\S]*?(?:\u0007|\u001b\\))|(?:[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,""),E=f=>{if(!f)return"";let p=[[]],n=0,o=0,w=/\x1b\[([0-9;]*?)([a-zA-Z])/g,g=0,h,d=a=>{for(let e=0;e<a.length;e++){let s=a[e];if(s===`
|
|
2
2
|
`)for(n++,o=0;n>=p.length;)p.push([]);else if(s==="\r")o=0;else{for(;n>=p.length;)p.push([]);let t=p[n];for(;o>t.length;)t.push(" ");t[o]=s,o++}}};for(;(h=w.exec(f))!==null;){d(f.substring(g,h.index));let a=h[1],e=h[2],s=a?a.split(";").map(Number):[];if(e==="A"){let t=s[0]||1;n=Math.max(0,n-t)}else if(e==="B"){let t=s[0]||1;for(n=n+t;n>=p.length;)p.push([])}else if(e==="C"){let t=s[0]||1;o=o+t}else if(e==="D"){let t=s[0]||1;o=Math.max(0,o-t)}else if(e==="G"){let t=(s[0]||1)-1;o=Math.max(0,t)}else if(e==="H"||e==="f"){let t=(s[0]||1)-1,r=(s[1]||1)-1;for(n=Math.max(0,t),o=Math.max(0,r);n>=p.length;)p.push([])}else if(e==="K"){let t=s[0]||0;if(n<p.length){let r=p[n];if(t===0)r.length=o;else if(t===1)for(let c=0;c<o&&c<r.length;c++)r[c]=" ";else t===2&&(r.length=0)}}else if(e==="J"){let t=s[0]||0;(t===2||t===3)&&(p.length=0,p.push([]),n=0,o=0)}g=w.lastIndex}d(f.substring(g));let O=p.map(a=>a.join(""));for(;O.length>0&&O[O.length-1]==="";)O.pop();return O.join(`
|
|
3
3
|
`)},x=null,k=!1,D=f=>{try{x&&(k&&typeof x.write=="function"?x.write(f):x.stdin&&x.stdin.writable&&x.stdin.write(f))}catch{}},F=()=>{if(x){try{k&&typeof x.destroy=="function"?x.destroy():typeof x.kill=="function"&&(process.platform==="win32"?C("taskkill",["/pid",x.pid,"/f","/t"]):x.kill("SIGKILL"))}catch{}x=null,k=!1}},v=(f,p=!1)=>{if(process.platform!=="win32")return f;let n=[],o="",w=null,g=!1;for(let e=0;e<f.length;e++){let s=f[e];if(g){o+=s,g=!1;continue}if(s==="\\"){if(f[e+1]===" "){o+=" ",e++;continue}o+=s,g=!0;continue}w?(s===w&&(w=null),o+=s):s==='"'||s==="'"?(w=s,o+=s):s===";"&&!o.includes("://")?(o.length>0&&(n.push(o),o=""),n.push(p?";":"&")):s==="&"&&!o.includes("://")?f[e+1]==="&"?(o.length>0&&(n.push(o),o=""),n.push("&&"),e++):o.endsWith("2>")&&f[e+1]==="1"?(n.push("2>&1"),o="",e++):(o.length>0&&(n.push(o),o=""),n.push("&")):s==="|"&&!o.includes("://")?(o.length>0&&(n.push(o),o=""),n.push("|")):/\s/.test(s)?o.length>0&&(n.push(o),o=""):o+=s}o.length>0&&n.push(o);let h=e=>!(!e.includes("/")||/^(https?|file|ftp):\/\//i.test(e)||e.startsWith("@")||e.startsWith("/")&&(e.match(/\//g)||[]).length===1||/\s\/|\/\s/.test(e)||/[\(\)\{\}\;\<\>\=\'\"]/.test(e)),d=[];for(let e=0;e<n.length;e++){let s=n[e];if(s==="mkdir"&&p&&R()){let t=[],r=e+1;for(;r<n.length;){let c=n[r];if([">",">>","<","&","&&","|","||",";"].includes(c))break;c!=="-p"&&c!=="--parents"&&c!=="-v"&&c!=="--verbose"&&t.push(c),r++}if(t.length>0){let c=t.map(i=>{let u=i.replace(/^['"]|['"]$/g,""),l=i;return h(u)&&(l=i.replace(/\//g,"\\")),l});d.push("New-Item","-ItemType","Directory","-Force","-Path",c.join(","))}else d.push("New-Item","-ItemType","Directory","-Force");e=r-1;continue}if(s==="rm"&&p&&R()){let t=[],r=!1,c=!1,i=e+1;for(;i<n.length;){let l=n[i];if([">",">>","<","&","&&","|","||",";"].includes(l))break;l==="-rf"||l==="-fr"?(r=!0,c=!0):l==="-r"||l==="-R"||l==="--recursive"?r=!0:l==="-f"||l==="--force"?c=!0:t.push(l),i++}let u=["Remove-Item"];if(r&&u.push("-Recurse"),c&&u.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),b=m;return h($)&&(b=m.replace(/\//g,"\\")),b});u.push("-Path",l.join(","))}d.push(...u),e=i-1;continue}if(s==="cp"&&p&&R()){let t=[],r=!1,c=!1,i=e+1;for(;i<n.length;){let l=n[i];if([">",">>","<","&","&&","|","||",";"].includes(l))break;l==="-r"||l==="-R"||l==="--recursive"?r=!0:l==="-f"||l==="--force"?c=!0:t.push(l),i++}let u=["Copy-Item"];if(r&&u.push("-Recurse"),c&&u.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),b=m;return h($)&&(b=m.replace(/\//g,"\\")),b});if(l.length>1){let m=l.pop();u.push("-Path",l.join(","),"-Destination",m)}else u.push("-Path",l[0])}d.push(...u),e=i-1;continue}if(s==="touch"&&p&&R()){let t=[],r=e+1;for(;r<n.length;){let c=n[r];if([">",">>","<","&","&&","|","||",";"].includes(c))break;t.push(c),r++}if(t.length>0){let i=`(${t.map(u=>{let l=u.replace(/^['"]|['"]$/g,""),m=u;return h(l)&&(m=u.replace(/\//g,"\\")),m}).join(", ")}) | ForEach-Object { if (Test-Path $_) { (Get-Item $_).LastWriteTime = [System.DateTime]::Now } else { $null | Out-File -FilePath $_ } }`;d.push(i)}e=r-1;continue}if(s==="|"&&n[e+1]==="tee"){n[e+2]==="-a"?(d.push(">>"),e+=2):(d.push(">"),e+=1);continue}if(s==="|"&&n[e+1]==="cat"&&n[e+2]===">"){d.push(">"),e+=2;continue}if(s==="|"){let t=n[e+1];if(t){let r=t.replace(/^['"]|['"]$/g,""),c=/\.(txt|md|json|log|csv|html|css|py|js|xml|yaml|yml|pdf|docx|pptx|xlsx)$/i.test(r);if(h(r)&&c){d.push(">");continue}}}d.push(s)}let O=!1,a=d.map(e=>{if(e==="echo")return O=!0,e;[">",">>","<","&","&&","|","||",";"].includes(e)&&(O=!1);let t=/^['"]|['"]$/.test(e),r=e;O&&t&&(r=e.replace(/^['"]|['"]$/g,""));let c=/^['"]|['"]$/.test(r),i=r.replace(/^['"]|['"]$/g,"");h(i)&&(r=r.replace(/\//g,"\\"));let u=r.replace(/^['"]|['"]$/g,"");return u.includes(" ")&&!c&&(r=`"${u}"`),r});if(p){let e="",s=0;for(let t=0;t<a.length;t++){let r=a[t];r==="&&"?(e+="; if ($?) {",s++):r===";"?(e+=" }".repeat(s)+";",s=0):(e&&!e.endsWith(" ")&&!e.endsWith("{")&&(e+=" "),e+=r)}return e+=" }".repeat(s),e}return a.join(" ")},W=async(f,p={})=>{let{command:n}=A(f),{onChunk:o}=p;if(!n)return'ERROR: Missing "command" argument for exec_command.';let w=process.platform==="win32",g=p.systemSettings||{},h={};return g.networkAccess===!1&&(h.HTTP_PROXY="http://127.0.0.1:9999",h.HTTPS_PROXY="http://127.0.0.1:9999",h.ALL_PROXY="socks5://127.0.0.1:9999",h.http_proxy="http://127.0.0.1:9999",h.https_proxy="http://127.0.0.1:9999",h.all_proxy="socks5://127.0.0.1:9999",h.NO_PROXY="localhost,127.0.0.1"),new Promise(d=>{let O=a=>{let e=a==="pwsh"||a==="powershell",s=v(n,e),t;w?a==="pwsh"?t="pwsh.exe":a==="powershell"?t="powershell.exe":t="cmd.exe":t=process.env.SHELL||"bash";let r=w?e?["-NoProfile","-Command",s]:["/c",s]:["-c",s];if(g.networkAccess===!1&&!w){let c=t,i=[...r];if(process.platform==="linux")t="unshare",r=["-n","-r",c,...i];else if(process.platform==="darwin"){let u=`(version 1)
|
|
4
4
|
(allow default)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
1
|
+
import{a as m}from"./chunk-RI37VZYB.js";import d from"fs";import p from"path";import{fileURLToPath as M}from"url";var u={version:0,release:20260913,fallbacks:{janitor_default:"gemini-3.1-flash-lite",janitor_attempts_fallback:"gemma-4-26b-a4b-it",janitor_open_router:"google/gemma-4-26b-a4b-it:free",general_fallback:"gemini-3.1-flash-lite",deepseek_fast_fallback:"deepseek-v4-flash",deepseek_level_1:"deepseek-v4-flash",deepseek_level_2:"deepseek-v4-pro",mistral_janitor_fallback:"",mistral_level_1:"",nvidia_janitor_fallback:"mistralai/mistral-nemotron",nvidia_chat_summarizer_fallback:"nvidia/nemotron-3-super-120b-a12b",google_level_1:"gemini-3-flash-preview",google_level_2:"gemini-3.7-flash",gemma_emergency:"gemma-4-31b-it",gemma_janitor_fallback_google_openrouter:"google/gemma-4-26b-a4b-it:free",gemma_janitor_fallback_google:"gemma-4-26b-a4b-it",inferx_fallback:"",sensenova_fallback:"",crofai_fallback:"",aihubmix_fallback:"",poolside_fallback:"","9router_fallback":"",explabs_fallback:"",tokenharbor_fallback:""},providers:{}};var S=M(import.meta.url),y=p.dirname(S),g="",I=[p.join(y,"../../model_config.json"),p.join(y,"../model_config.json")];for(let e of I)try{if(d.existsSync(e)){g=e;break}}catch{}var _=p.join(m,"model_config.json"),a=null,v=()=>{if(g)try{let e=d.readFileSync(g,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object")return s}catch{}return u&&typeof u=="object"?JSON.parse(JSON.stringify(u)):{version:0,release:20260913,fallbacks:{},providers:{}}};if(d.existsSync(_))try{let e=d.readFileSync(_,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object"){let t=v();s.fallbacks={...t.fallbacks||{},...s.fallbacks||{}},s.providers||(s.providers={}),s.release||(s.release=t.release||20260913),a=s}}catch{}a||(a=v());var F=new Set,k=new Set,f=()=>{let e=new Set,s=new Set;if(a.providers)for(let t of Object.keys(a.providers)){let r=a.providers[t];if(r&&r.models){let o=["Free","Paid"];for(let l of o){let i=r.models[l];if(Array.isArray(i)){for(let n of i)if(n&&n.cmd){let b=n.cmd.trim().toLowerCase();n.multimodal===!0&&e.add(b),n.hasReasoning===!0&&s.add(b)}}}}}if(Array.isArray(a.multimodal_models))for(let t of a.multimodal_models)t&&typeof t=="string"&&e.add(t.trim().toLowerCase());F=e,k=s};f();var L=()=>a,c=()=>{try{return d.existsSync(m)||d.mkdirSync(m,{recursive:!0}),d.writeFileSync(_,JSON.stringify(a,null,2),"utf-8"),!0}catch{return!1}},$=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},N=(e,s,t=!0)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};let o=a.providers?.[e];if(!o||!o.models||!Array.isArray(o.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},J=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(t)if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!0,desc:r}}else l.multimodal=!0;return o.default_free=r,f(),c(),{success:!0}},R=(e,s)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let t=s.trim();if(!t)return{success:!1,reason:"Model ID cannot be empty"};let r=a.providers?.[e];if(!r||!r.models||!Array.isArray(r.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let o=r.models.Free.findIndex(l=>(typeof l=="string"?l:l?.cmd)===t);return o===-1?{success:!1,reason:`Model "${t}" not found in ${e} model list`}:(r.models.Free.splice(o,1),r.default_free===t&&(r.default_free=""),r.default_paid===t&&(r.default_paid=""),f(),c(),{success:!0})},T=(e,s,t)=>{if(!e||!s||!t)return{success:!1,reason:"Invalid provider or model IDs"};let r=s.trim(),o=t.trim();if(!r||!o)return{success:!1,reason:"Model IDs cannot be empty"};let l=a.providers?.[e];if(!l||!l.models||!Array.isArray(l.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let i=l.models.Free.find(n=>(typeof n=="string"?n:n?.cmd)===r);if(!i)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof i=="string"){let n=l.models.Free.indexOf(i);l.models.Free[n]={cmd:o,multimodal:!1,desc:o}}else i.cmd=o,(i.desc===r||!i.desc)&&(i.desc=o);return f(),c(),{success:!0}},x=!1,P=e=>{x=!!e},E=P,U=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return!!(x||F.has(s)||s.startsWith("gemini-")||s.startsWith("gemma-"))},W=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return k.has(s)},z=(e,s)=>{let t=a.providers[e];return t?t.models[s==="Free"?"Free":"Paid"]||[]:[]},G=(e,s)=>{let t=a.providers[e];return t?s==="Free"?t.default_free:t.default_paid:""},K=e=>a.fallbacks[e];export{u as a,L as b,c,$ as d,N as e,J as f,R as g,T as h,P as i,E as j,U as k,W as l,z as m,G as n,K as o};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import f from"os";import t from"path";import a from"fs";import E from"crypto";var n=t.join(f.homedir(),".fluxflow"),j=t.join(n,"settings.json"),x=null;try{if(a.existsSync(j)){let s=a.readFileSync(j,"utf8").trim(),r;if(s.startsWith("{"))r=JSON.parse(s);else{let e=s.split(":");if(e.length===2){let _=Buffer.from(e[0],"hex"),I=e[1],l=E.createHash("sha256").update("fluxflow-cli-sanctuary-key").digest(),c=E.createDecipheriv("aes-256-cbc",l,_),p=c.update(I,"hex","utf8");p+=c.final("utf8"),r=JSON.parse(p)}}if(r){let e=r.systemSettings||{};e.useExternalData&&e.externalDataPath&&(x=t.normalize(e.externalDataPath.trim()))}}}catch{}var i=x||n,F=t.join(i,"logs"),o=t.join(i,"secret"),S=t.join(o,"history.json"),R=t.join(o,"history"),T=t.join(n,"usage.json"),u=t.join(o,"usage.json"),y=t.join(o,"memories.json"),
|
|
1
|
+
import f from"os";import t from"path";import a from"fs";import E from"crypto";var n=t.join(f.homedir(),".fluxflow"),j=t.join(n,"settings.json"),x=null;try{if(a.existsSync(j)){let s=a.readFileSync(j,"utf8").trim(),r;if(s.startsWith("{"))r=JSON.parse(s);else{let e=s.split(":");if(e.length===2){let _=Buffer.from(e[0],"hex"),I=e[1],l=E.createHash("sha256").update("fluxflow-cli-sanctuary-key").digest(),c=E.createDecipheriv("aes-256-cbc",l,_),p=c.update(I,"hex","utf8");p+=c.final("utf8"),r=JSON.parse(p)}}if(r){let e=r.systemSettings||{};e.useExternalData&&e.externalDataPath&&(x=t.normalize(e.externalDataPath.trim()))}}}catch{}var i=x||n,F=t.join(i,"logs"),o=t.join(i,"secret"),S=t.join(o,"history.json"),R=t.join(o,"history"),T=t.join(n,"usage.json"),u=t.join(o,"usage.json"),y=t.join(o,"timed_usage"),A=t.join(o,"memories.json"),g=t.join(o,"memory-temp.json"),d=t.join(o,"temp-memory-chat.json"),C=t.join(i,"backups"),O=t.join(o,"ledger.json"),G=t.join(o,"ledgerAdvance.json"),M=t.join(o,"active_tx.json"),N=t.join(o,"path.json"),H=t.join(o,"context.json"),P=t.join(i,"parsers"),U=t.join(n,".cache","CU"),k=t.join(n,"thinking_config.json");export{n as a,j as b,i as c,F as d,o as e,S as f,R as g,T as h,u as i,y as j,A as k,g as l,d as m,C as n,O as o,G as p,M as q,N as r,H as s,P as t,U as u,k as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as o}from"./chunk-RI37VZYB.js";import r from"fs-extra";import l from"path";import d from"https";var j={js:"tree-sitter-javascript.wasm",jsx:"tree-sitter-javascript.wasm",ts:"tree-sitter-typescript.wasm",tsx:"tree-sitter-tsx.wasm",py:"tree-sitter-python.wasm",c:"tree-sitter-c.wasm",cpp:"tree-sitter-cpp.wasm",java:"tree-sitter-java.wasm",html:"tree-sitter-html.wasm"};async function f(t,s=null){let p=s||`https://unpkg.com/tree-sitter-wasms@0.1.13/out/${t}`,i=l.join(o,t);return await r.ensureDir(o),new Promise((m,n)=>{let h={headers:{"User-Agent":"FluxFlow-Agent"}};d.get(p,h,e=>{if([301,302,307,308].includes(e.statusCode)&&e.headers.location){let a=e.headers.location;if(!a.startsWith("http")){let u=new URL(p);a=`${u.protocol}//${u.host}${a}`}f(t,a).then(m).catch(n);return}if(e.statusCode!==200){n(new Error(`Failed to download ${t}: HTTP ${e.statusCode}`));return}let c=r.createWriteStream(i);e.pipe(c),c.on("finish",()=>{c.close(),m()})}).on("error",e=>{r.existsSync(i)&&r.unlink(i,()=>{}),n(e)})})}function S(t){let s=l.join(o,t);return r.existsSync(s)}async function $(t){let s=l.join(o,t);r.existsSync(s)&&await r.unlink(s)}export{j as a,f as b,S as c,$ as d};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{a as X}from"./chunk-I4JQEUHE.js";import{a as rt,b as J}from"./chunk-SIINYZWE.js";import{d as G,h as V,i as M,j as O}from"./chunk-RI37VZYB.js";import D from"fs-extra";import I from"path";import Tt from"http";import R from"fs-extra";import Z from"path";import{spawn as Dt}from"child_process";import{fileURLToPath as St}from"url";var F=52991,Lt=15e3,ct=Z.join(G,"usage","usage_error.txt"),lt=async(e,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Daemon Error] [${e}]:`,t);try{await R.ensureDir(Z.dirname(ct));let s=`[${new Date().toISOString()}] [Daemon:${e}] ${o}
|
|
2
|
+
-------------------------------------
|
|
3
|
+
|
|
4
|
+
`;await R.appendFile(ct,s,"utf8")}catch{}},j={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},K=(e,t)=>{if(!e)return{};let o=Object.keys(e),n=new Date(new Date(t).getTime()-720*60*60*1e3),s={};for(let a of o)new Date(a)>=n&&(s[a]=e[a]);return s};async function Mt(){let e=new Date().toISOString().split("T")[0],t=null;try{if(await R.exists(M)){let o=(await R.readFile(M,"utf8")).trim();o.startsWith("{")||o.startsWith("[")?t=JSON.parse(o):t=JSON.parse(J(o))}}catch(o){await lt("loadUsageFromDisk",o)}if(t){let o={...j,...t.stats||{}};Array.isArray(o.imageCalls)||(o.imageCalls=[]);let n=t.history||{},s=K(n,e);if(t.date===e)return{...t,stats:o,history:s};{let a=t.date,r={...s};return a&&(r[a]=o),{date:e,stats:{...j},history:K(r,e)}}}return{date:e,stats:{...j},history:{}}}async function vt(e=F){let t=await Mt(),o=!1,n=!1,s=Date.now(),a=null,r=async()=>{if(t)try{await R.ensureDir(Z.dirname(M));let l=new Date().toISOString().split("T")[0];t.history=K(t.history||{},t.date||l),t.saveId=Math.random().toString(36).substring(2)+Date.now().toString(36);let i=rt(JSON.stringify(t,null,2));await R.writeFile(M,i,"utf8"),n=!1}catch(l){await lt("flushToDisk",l)}},c=async()=>{a&&clearInterval(a),await r(),u.close(()=>{process.exit(0)}),setTimeout(()=>process.exit(0),1e3).unref()};a=setInterval(async()=>{if(o)return;Date.now()-s>Lt&&await c()},5e3),a.unref&&a.unref();let u=Tt.createServer(async(l,i)=>{let d=l.url||"";if(l.method==="POST"&&d==="/heartbeat"){o||(s=Date.now()),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({ok:!0}));return}if((l.method==="GET"||l.method==="POST")&&d==="/finalize"){o=!0,a&&clearInterval(a),await r(),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0,message:"Finalized and written to disk"})),setTimeout(()=>{u.close(()=>process.exit(0)),setTimeout(()=>process.exit(0),500).unref()},3e3);return}if(l.method==="POST"&&d==="/flush"){o||(s=Date.now(),await r()),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0}));return}if(l.method==="POST"&&d==="/write"){if(o){i.writeHead(403,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:"Daemon finalized. Writes locked."}));return}s=Date.now();let m="";l.on("data",h=>{m+=h}),l.on("end",async()=>{try{let h=JSON.parse(m||"{}"),k=new Date().toISOString().split("T")[0];if(t.date!==k){let T=t.date;T&&(t.history||(t.history={}),t.history[T]={...t.stats}),t.date=k,t.stats={...j}}t.stats||(t.stats={...j});let{key:y,amount:f=1,provider:p,model:S}=h;if(y&&t.stats[y]!==void 0&&typeof t.stats[y]=="number"&&(t.stats[y]+=Math.floor(f)),y==="agent"&&p&&(t.stats.providerRequests||(t.stats.providerRequests={}),t.stats.providerRequests[p]=(t.stats.providerRequests[p]||0)+Math.floor(f)),p&&S&&(y==="tokens"||y==="cachedTokens"||y==="candidateTokens")){t.stats.models||(t.stats.models={}),t.stats.models[p]||(t.stats.models[p]={}),t.stats.models[p][S]||(t.stats.models[p][S]={tokens:0,cachedTokens:0,candidateTokens:0});let T=t.stats.models[p][S];y==="tokens"&&(T.tokens+=Math.floor(f)),y==="cachedTokens"&&(T.cachedTokens+=Math.floor(f)),y==="candidateTokens"&&(T.candidateTokens+=Math.floor(f))}n=!0,await r(),i.writeHead(200,{"Content-Type":"application/json"}),i.end(JSON.stringify({success:!0}))}catch(h){i.writeHead(400,{"Content-Type":"application/json"}),i.end(JSON.stringify({error:h.message}))}});return}i.writeHead(404,{"Content-Type":"text/plain"}),i.end("Not Found")});u.listen(e,"127.0.0.1",()=>{s=Date.now()}),u.on("error",l=>{l.code==="EADDRINUSE"&&process.exit(0)})}async function Ut(e=F){try{if((await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}try{let t=St(import.meta.url);Dt(process.execPath,[t,"--usage-daemon-worker",`--port=${e}`],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();for(let n=0;n<10;n++){await new Promise(s=>setTimeout(s,100));try{if((await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}}}catch{}return!1}async function tt(e,t=F){try{await Ut(t),await fetch(`http://127.0.0.1:${t}/write`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:AbortSignal.timeout(1e3)})}catch{}}async function xt(e=F){try{await fetch(`http://127.0.0.1:${e}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(600)})}catch{}}async function Ot(e=F){try{await fetch(`http://127.0.0.1:${e}/finalize`,{method:"GET",signal:AbortSignal.timeout(1e3)})}catch{}}if(process.argv.includes("--usage-daemon-worker")){let e=process.argv.find(o=>o.startsWith("--port=")),t=e?parseInt(e.split("=")[1],10):F;vt(t)}var dt=I.join(G,"usage","usage_error.txt"),W=async(e,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Error] [${e}]:`,t);try{await D.ensureDir(I.dirname(dt));let s=`[${new Date().toISOString()}] [${e}] ${o}
|
|
5
|
+
-------------------------------------
|
|
6
|
+
|
|
7
|
+
`;await D.appendFile(dt,s,"utf8")}catch{}},g=null,v={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},z=(e,t)=>{if(!e)return{};let o=Object.keys(e),n=new Date(new Date(t).getTime()-720*60*60*1e3),s={};for(let a of o)new Date(a)>=n&&(s[a]=e[a]);return s},$=async()=>{let e=new Date().toISOString().split("T")[0];try{!await D.exists(M)&&await D.exists(V)&&(await D.ensureDir(I.dirname(M)),await D.move(V,M))}catch{}let t=null;try{if(await D.exists(M)){let n=(await D.readFile(M,"utf8")).trim();n.startsWith("{")||n.startsWith("[")?t=JSON.parse(n):t=JSON.parse(J(n))}}catch(n){await W("loadUsageFromFile",n)}let o=t;if(o){let n=o.stats||{...v},s={...v,...n};Array.isArray(s.imageCalls)||(s.imageCalls=[]);let a=o.history||{},r=z(a,e);if(o.date===e)return{...o,stats:s,history:r};{let c=o.date,u=s,l={...r};return c&&(l[c]=u),{date:e,stats:{...v},history:z(l,e)}}}return{date:e,stats:{...v},history:{}}},zt=async()=>{},mt=30,Ct=()=>{let t=new Date().toISOString().split("T")[0];return I.join(O,`${t}.jsonl`)},Qt=async e=>{try{await D.ensureDir(O);let t={time:new Date().toISOString(),provider:e.provider||"unknown",model:e.model||"unknown",input:Number(e.prompt)||0,cached:Number(e.cached)||0,output:Number(e.output)||0,reasoning:Number(e.reasoning)||0};await D.appendFile(Ct(),JSON.stringify(t)+`
|
|
8
|
+
`,"utf8")}catch{}},bt=async()=>{try{if(!await D.exists(O))return;let e=new Date;e.setDate(e.getDate()-mt);let t=await D.readdir(O);for(let o of t){if(!o.endsWith(".jsonl"))continue;let n=o.replace(".jsonl","");/^\d{4}-\d{2}-\d{2}$/.test(n)&&new Date(n)<e&&await D.remove(I.join(O,o))}}catch{}},Yt=async(e=mt)=>{let t=[];try{if(!await D.exists(O))return t;let n=(await D.readdir(O)).filter(s=>s.endsWith(".jsonl")).sort().slice(-Math.max(1,e));for(let s of n)try{let a=await D.readFile(I.join(O,s),"utf8");for(let r of a.split(`
|
|
9
|
+
`))if(r.trim())try{t.push(JSON.parse(r))}catch(c){await W(`getTimedUsage:parseLine (${s})`,c)}}catch(a){await W(`getTimedUsage:readFile (${s})`,a)}}catch(o){await W("getTimedUsage",o)}return t},Vt=async()=>{g=await $(),await bt()},U=async()=>{let e=new Date().toISOString().split("T")[0];if(!g)g=await $();else if(g.date!==e){let t=g.date,o=g.stats,n=g.history||{};o&&(n[t]=o),g={date:e,stats:{...v},history:z(n,e)},isDirty=!0,await flushUsage()}return g&&g.stats&&!Array.isArray(g.stats.imageCalls)&&(g.stats.imageCalls=[]),g.stats},ut=async()=>{let e=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==e&&await U();let t=g.history||{},o=z(t,e);g.history=o;let n=g.stats||{...v},s={...v};s.imageCalls=[],s.models={};let a=(r,c)=>{for(let u in r)if(u==="imageCalls")r.imageCalls=[...r.imageCalls||[],...c.imageCalls||[]];else if(u==="models"){let l=c.models||{};for(let i in l){r.models[i]||(r.models[i]={});for(let d in l[i]){r.models[i][d]||(r.models[i][d]={tokens:0,cachedTokens:0,candidateTokens:0});let m=r.models[i][d],h=l[i][d];m.tokens+=h.tokens||0,m.cachedTokens+=h.cachedTokens||0,m.candidateTokens+=h.candidateTokens||0}}}else typeof r[u]=="number"&&(r[u]+=c[u]||0)};a(s,n);for(let r in o)a(s,o[r]);return s},Xt=async(e,t)=>{e==="toolSuccess"?E.toolSuccess++:e==="toolFailure"?E.toolFailure++:e==="toolDenied"&&E.toolDenied++;let o=await U();o[e]!==void 0&&o[e]++,t&&e==="agent"&&(o.providerRequests||(o.providerRequests={}),o.providerRequests[t]=(o.providerRequests[t]||0)+1),await tt({key:e,amount:1,provider:t})},E={linesAdded:0,linesRemoved:0,toolSuccess:0,toolFailure:0,toolDenied:0},Kt=async(e,t,o,n)=>{e==="linesAdded"?E.linesAdded+=t:e==="linesRemoved"&&(E.linesRemoved+=t);let s=await U();if(s[e]!==void 0&&(s[e]+=Math.floor(t)),o&&n&&(e==="tokens"||e==="cachedTokens"||e==="candidateTokens")){s.models||(s.models={}),s.models[o]||(s.models[o]={}),s.models[o][n]||(s.models[o][n]={tokens:0,cachedTokens:0,candidateTokens:0});let a=s.models[o][n];e==="tokens"&&(a.tokens+=Math.floor(t)),e==="cachedTokens"&&(a.cachedTokens+=Math.floor(t)),e==="candidateTokens"&&(a.candidateTokens+=Math.floor(t))}await tt({key:e,amount:t,provider:o,model:n})},ft=async(e=1)=>{let t=new Date,o=t.toISOString().split("T")[0];g||(g=await $()),g.date!==o&&await U();let n=t.getFullYear(),s=t.getMonth();t.getDate()<e&&(s-=1,s<0&&(s=11,n-=1));let c=new Date(n,s,e).toISOString().split("T")[0],u=g.history||{},l=g.stats||{...v},i={...v};i.imageCalls=[],i.models={};let d=(m,h)=>{for(let k in m)if(k==="imageCalls")m.imageCalls=[...m.imageCalls||[],...h.imageCalls||[]];else if(k==="models"){let y=h.models||{};for(let f in y){m.models[f]||(m.models[f]={});for(let p in y[f]){m.models[f][p]||(m.models[f][p]={tokens:0,cachedTokens:0,candidateTokens:0});let S=m.models[f][p],T=y[f][p];S.tokens+=T.tokens||0,S.cachedTokens+=T.cachedTokens||0,S.candidateTokens+=T.candidateTokens||0}}}else typeof m[k]=="number"&&(m[k]+=h[k]||0)};d(i,l);for(let m in u)m>=c&&m<o&&d(i,u[m]);return i},At=async(e,t={})=>{let o=await X().catch(()=>({})),n=t.apiTier||o.apiTier||"Free",s=t.quotas||t.systemSettings?.quotas||o.quotas||{},a=s.providerBudgets||{},r=!!a.__useProvider,c=t.aiProvider||o.aiProvider||"Google",u=r&&!!a[c],l=()=>{if(u){let i=a[c];return{agentLimit:typeof i.agentLimit=="number"&&i.agentLimit>0?i.agentLimit:99999999,tokenLimit:typeof i.tokenLimit=="number"&&i.tokenLimit>0?i.tokenLimit:99999999999999,monthlyTokenLimit:typeof i.monthlyTokenLimit=="number"&&i.monthlyTokenLimit>0?i.monthlyTokenLimit:99999999999999}}return{agentLimit:s.agentLimit||99999999,tokenLimit:s.tokenLimit||99999999999999,monthlyTokenLimit:s.monthlyTokenLimit||99999999999999}};if(e==="agent"){let{agentLimit:i,tokenLimit:d,monthlyTokenLimit:m}=l(),h=await U(),k;s.resetMode==="Custom"?k=await ft(s.resetDay||1):k=await ut();let y=0,f=0,p=0;if(u){y=h.providerRequests?.[c]||0;let S=h.models?.[c]||{};for(let P in S)f+=S[P]?.tokens||0;let T=k.models?.[c]||{};for(let P in T)p+=T[P]?.tokens||0}else y=h.agent||0,f=h.tokens||0,p=k.tokens||0;return n==="Free"&&h.agent+h.background>=999999?{allowed:!1,reason:"Free Tier Daily Usage Limit Exceeded"}:y>=i?{allowed:!1,reason:u?`Daily Request Limit Reached for ${c}`:"Daily Agent Request Limit Reached"}:f>=d?{allowed:!1,reason:u?`Daily Token Budget Exhausted for ${c}`:"Daily Token Budget Exhausted"}:p>=m?{allowed:!1,reason:u?`Monthly Token Budget Exhausted for ${c}`:"Monthly Token Budget Exhausted"}:{allowed:!0}}if(e==="background"){let i=await U();if(n==="Free"&&i.agent+i.background>=999999)return{allowed:!1,reason:"Free Tier Background Limit Exceeded"};let d=i.background<(s.backgroundLimit||999999);return{allowed:d,reason:d?void 0:"Background Request Limit Exceeded"}}if(e==="search"){let d=(await U()).search<(s.searchLimit||100);return{allowed:d,reason:d?void 0:"Search Quota Exceeded"}}return{allowed:!0}},Zt=async(e,t={})=>(await At(e,t)).allowed,et=e=>{if(!e||e.length===0)return[];let o=[...e].sort((s,a)=>s.timestamp-a.timestamp),n=[];for(let s of o){if(n.length>0){let a=n[n.length-1];if(s.timestamp>=a.start&&s.timestamp<a.end){a.calls.push(s),a.spent+=s.cost;continue}}n.push({start:s.timestamp,end:s.timestamp+36e5,calls:[s],spent:s.cost})}return n},gt=(e,t)=>{if(!e||e.length===0)return .025;let n=et(e);if(n.length===0)return .025;let s=[];for(let d of n){let m=.025;if(s.length>0){let k=s[s.length-1],y=!1;if(s.length>=2){let f=s[s.length-2];k.ratio>=.8&&f.ratio>=.8&&(y=!0)}if(y)m=.015;else{let f=k.limit,p=k.ratio;p>=.8?m=f===.015?.015:f:p<.4?m=Math.min(.025,f+.005):p>=.4&&p<.6?m=Math.min(.025,f+.004):m=Math.min(.025,f+.002)}}let h=m>0?d.spent/m:0;s.push({limit:m,spent:d.spent,ratio:h})}let a=n[n.length-1];if(t<a.end)return s[s.length-1].limit;let r=s[s.length-1].limit,c=r,u=s[s.length-1].ratio,l=a.end,i=0;for(let d=s.length-1;d>=0&&s[d].ratio>=.8;d--)i++;for(;l<=t;){let d=.025;i>=2?d=.015:u>=.8?d=c===.015?.015:c:u<.4?d=Math.min(.025,c+.005):u>=.4&&u<.6?d=Math.min(.025,c+.004):d=Math.min(.025,c+.002),c=d,u=0,i=0,l+=36e5,r=d}return r},te=async e=>{let t=e.imageSettings||{keyType:"Default",quality:"Low-High"};if(t.keyType!=="Default")return!0;let n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.15}[t.quality]||.002,s=await U();s.imageCalls||(s.imageCalls=[]);let a=Date.now(),r=et(s.imageCalls),c=0;if(r.length>0){let l=r[r.length-1];a>=l.start&&a<l.end&&(c=l.spent)}let u=gt(s.imageCalls,a);return c+n<=u},ee=async()=>{let e=await U();e.imageCalls||(e.imageCalls=[]);let t=Date.now(),o=et(e.imageCalls),n=[],s=0,a=0;if(o.length>0){let l=o[o.length-1];t>=l.start&&t<l.end&&(n=l.calls,s=l.spent,a=Math.max(0,Math.ceil((l.end-t)/(60*1e3))))}let r=gt(e.imageCalls,t),c=Math.max(0,r-s),u=s;return{totalSpent:s,remaining:c,activeCallsCount:n.length,nextResetMin:a,reclaimCost:u,limit:r}},se=async e=>{let t=e.imageSettings||{keyType:"Default",quality:"Low-High"},n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.1}[t.quality]||.002,s=await U();s.imageCalls||(s.imageCalls=[]),s.imageCalls.push({timestamp:Date.now(),cost:n}),queueFlush()},oe=async()=>{let e=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==e&&await U();let t=g.stats||{...v},o=g.history||{},n=new Set(Object.keys(o));n.add(e);let a=Array.from(n).sort().map(L=>{let x=L===e?t:o[L]||{},w={...v,...x},H=w.tokens||0,_=w.cachedTokens||0,N=w.candidateTokens||0,B=Math.max(0,H-N),q=Math.max(0,B-_),C=w.agent||0,b=w.background||0,A=w.search||0,ht=C+b+A,Q=w.toolSuccess||0,st=w.toolFailure||0,ot=w.toolDenied||0,Y=Q+st+ot,pt=Y>0?(Q/Y*100).toFixed(1):"100.0",nt=w.linesAdded||0,at=w.linesRemoved||0,it=Array.isArray(w.imageCalls)?w.imageCalls:[],yt=it.reduce((kt,wt)=>kt+(wt.cost||0),0);return{date:L,tokens:H,cachedTokens:_,candidateTokens:N,promptTokens:B,uncachedPromptTokens:q,agent:C,background:b,search:A,totalRequests:ht,toolSuccess:Q,toolFailure:st,toolDenied:ot,totalTools:Y,toolSuccessRate:parseFloat(pt),linesAdded:nt,linesRemoved:at,netLines:nt-at,duration:w.duration||0,imageCallsCount:it.length,imageCost:yt,models:w.models||{},providerRequests:w.providerRequests||{}}}),r=await X().catch(()=>({})),c=r.quotas||{},u=r.apiTier||"Free",l=await ut().catch(()=>({tokens:0,agent:0})),i=null;c.resetMode==="Custom"&&(i=await ft(c.resetDay||1).catch(()=>({tokens:0})));let d=c.tokenLimit||0,m=c.monthlyTokenLimit||0,h=c.agentLimit||0,k=c.resetMode||"Daily",y=c.resetDay||1,f=c.providerBudgets||{},p=!!f.__useProvider,S=["Google","Anthropic","OpenAI","DeepSeek","Mistral","NVIDIA","OpenRouter","Ollama","InferX","SenseNova","AIHubMix","Poolside"];Object.keys(f).forEach(L=>{L!=="__useProvider"&&!S.includes(L)&&S.push(L)});let T=[];for(let L of S){let x=f[L];if(x&&(x.agentLimit||x.tokenLimit||x.monthlyTokenLimit)){let w=0,H=t.models?.[L]||{};for(let A in H)w+=H[A]?.tokens||0;let _=0,N=(c.resetMode==="Custom"?i?.models:l?.models)?.[L]||{};for(let A in N)_+=N[A]?.tokens||0;let B=t.providerRequests?.[L]||0,q=x.tokenLimit||0,C=x.monthlyTokenLimit||0,b=x.agentLimit||0;T.push({provider:L,dailyTokens:w,dailyTokenLimit:q,isDailyUnlimited:q>=9999999999999||q===0,monthlyTokens:_,monthlyTokenLimit:C,isMonthlyUnlimited:C>=9999999999999||C===0,dailyRequests:B,dailyAgentLimit:b,isRequestsUnlimited:b>=9999999||b===0})}}let P={apiTier:u,resetMode:k,resetDay:y,quotas:c,usingProviderBudgets:p&&T.length>0||T.length>0,providerBudgetsList:T,daily:{tokensUsed:t.tokens||0,tokenLimit:d,agentRequests:t.agent||0,agentLimit:h,isUnlimitedTokens:d>=9999999999999||d===0,isUnlimitedRequests:h>=9999999||h===0},monthly:{tokensUsed:(c.resetMode==="Custom"?i?.tokens:l?.tokens)||0,tokenLimit:m,isUnlimitedTokens:m>=9999999999999||m===0},providerBudgets:f};return{currentDate:e,todayStats:t,history:o,timeline:a,budget:P,runtimeSession:{...E}}};export{xt as a,Ot as b,zt as c,Qt as d,Yt as e,Vt as f,U as g,ut as h,Xt as i,E as j,Kt as k,ft as l,At as m,Zt as n,et as o,gt as p,te as q,ee as r,se as s,oe as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as X}from"./chunk-
|
|
1
|
+
import{c as X}from"./chunk-RI37VZYB.js";import G from"os";var R=t=>typeof t!="string"?t:t.length>12?(t+"").replace("",""):t,v=(t,o)=>{if(!t)return"";let d=/\x1B\[[0-?]*[ -/]*[@-~]/g,m=t.split(`
|
|
2
2
|
`),h=[];if(o<=5)return t;let a=e=>e<32||e>=127&&e<160||e>=768&&e<=879||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071?0:e>=4352&&e<=4447||e>=9001&&e<=9002||e>=11904&&e<=12350||e>=12352&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=128640&&e<=128767||e>=131072&&e<=262141?2:1,p=e=>{let s=e.replace(d,""),r=0;for(let l=0;l<s.length;l++){let i=s.codePointAt(l);i>65535&&l++,r+=a(i)}return r},M=(e,s)=>{let r=0,l=e.length,i=!1;for(let L=0;L<e.length;L++){if(e[L]==="\x1B"&&e[L+1]==="["&&(i=!0),i){(e[L]==="m"||e[L]>="@"&&e[L]<="~"&&e[L]!=="[")&&(i=!1);continue}let F=e.codePointAt(L);F>65535&&L++;let x=a(F);if(r+x>s){l=F>65535?L-1:L;break}if(r+=x,r>=s){l=L+1;break}}return{head:e.substring(0,l),tail:e.substring(l)}};return m.forEach(e=>{if(p(e)<=o){h.push(e);return}let r=e.split(/(\s+)/),l="",i=0,L=e.match(/^(\s*)/),F=L?L[1]:"";r.forEach(x=>{if(x.length===0)return;let u=x;for(;u.length>0;){let S=p(u);if(i+S<=o){l+=u,i+=S;break}l.trim().length>0&&(h.push(l.trimEnd()),l=F.substring(0,Math.min(F.length,8)),i=p(l));let n=Math.max(1,o-i);if(p(u)>n){let{head:f,tail:c}=M(u,n);h.push((l+f).trimEnd()),l=F.substring(0,Math.min(F.length,8)),i=p(l),u=c}else l+=u,i+=p(u),u=""}}),(l.trimEnd().length>0||l===F)&&h.push(l.trimEnd())}),R(h.join(`
|
|
3
3
|
`))},rt=t=>{if(!t)return 0;let o=0,d=t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g);d&&(o+=d.length*.55);let m=t.replace(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g," "),h=m.match(/[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g);h&&(o+=h.length);let a=m.split(/[\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g).filter(Boolean);return o+=a.length,Math.max(.1,o)},st=t=>t?t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]|\s+|[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+|[^\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}\-\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]+/g)||[t]:[],ot=t=>{if(!t&&t!==0)return"0.0k";let o=typeof t=="string"?parseFloat(t):t;return o>=1e6?`${(o/1e6).toFixed(1)}m`:o>=1e3?`${(o/1e3).toFixed(1)}k`:o.toString()},lt=(t,o=40)=>{let d=X.replaceAll("\\\\","\\");if(t=t.replace(G.homedir(),"~").replace(d,"FluxFlow").replaceAll("\\","/"),!t||t.length<=o)return R(t);let m=Math.floor((o-3)/2);return R(t.substring(0,m)+"..."+t.substring(t.length-m).replaceAll("\\","/"))},at=t=>{let o=[],d=new Set,m=t.allowMultiple===!0||String(t.allowMultiple).toLowerCase()==="true";Object.keys(t).forEach(e=>{let s=e.match(/^(searchContent|search_content|replaceContent|replace_content|newContent|new_content|content_to_replace|content_to_add|searchBlock|search_block|newBlock|new_block)_?(\d+)?$/i);if(s){let r=s[2]?parseInt(s[2],10):1;d.add(r)}});let h=Array.from(d).sort((e,s)=>e-s),a=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],p=["newContent","new_content","content_to_add","newBlock","new_block"],M=(e,s,r)=>{let l,i;for(let L of s){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){l=t[x];break}if(l!==void 0)break}for(let L of r){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){i=t[x];break}if(i!==void 0)break}return{r:l,n:i}};for(let e of h){let{r:s,n:r}=M(e,a,p);if(s!==void 0&&r!==void 0)o.push({replace:s,new:r});else if(s!==void 0||r!==void 0)return{error:`Mismatched replacement pair for index ${e}. Both replacement and new content must be provided.`,allowMultiple:m}}return{patchPairs:o,allowMultiple:m}},V=t=>{if(!t)return null;let o="",d=0,m=t.length;for(;d<m;){let h=t[d];if(h==="\\"){for(;d<m&&t[d]==="\\";)d++;o+="\\\\*"}else if(h===`
|
|
4
4
|
`)o+="(?:\\r?\\n|\\\\*n|\\\\*r|\\s*)",d++;else if(h==="\r")o+="(?:\\r|\\\\*r)?",d++;else if(h===" ")o+="(?:\\t|\\\\*t|\\s*)",d++;else if(h==='"'||h==="'"||h==="`")o.endsWith("\\\\*")||(o+="\\\\*"),o+=h,d++;else if(/[.*+?^${}()|[\]]/.test(h))o+="\\"+h,d++;else if(/\s/.test(h)){for(;d<m&&/\s/.test(t[d])&&t[d]!==`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as f}from"./chunk-
|
|
1
|
+
import{e as f}from"./chunk-33KD6VKN.js";import{mouse as c,keyboard as i,Button as u,Key as e,Point as l,clipboard as R}from"@nut-tree-fork/nut-js";c.config.autoDelayMs=50;i.config.autoDelayMs=50;async function w(){try{await i.releaseKey(e.LeftControl,e.RightControl,e.LeftAlt,e.RightAlt,e.LeftShift,e.RightShift,e.LeftSuper,e.RightSuper)}catch{}}async function E(n,t,s={}){let r=await f(t);if(!r&&(n==="move"||n==="click"||n==="drag"))return`ERROR: Invalid target location specified: ${JSON.stringify(t)}`;try{switch(n.toLowerCase()){case"move":return await c.setPosition(new l(r.x,r.y)),`SUCCESS: Moved mouse to grid target ${typeof t=="string"?t:`(${r.x}, ${r.y})`}`;case"click":{await c.setPosition(new l(r.x,r.y));let a=s.button==="right"?u.RIGHT:s.button==="middle"?u.MIDDLE:u.LEFT;return s.clickType==="double"?await c.doubleClick(a):await c.click(a),`SUCCESS: ${s.clickType||"Single"} clicked ${s.button||"left"} button at ${typeof t=="string"?t:`(${r.x}, ${r.y})`}`}case"drag":{let a=await f(s.from||t),o=await f(s.to);return!a||!o?'ERROR: Drag requires valid "from" and "to" target coordinates/grid codes.':(await c.setPosition(new l(a.x,a.y)),await c.pressButton(u.LEFT),await c.setPosition(new l(o.x,o.y)),await c.releaseButton(u.LEFT),`SUCCESS: Dragged mouse from (${a.x}, ${a.y}) to (${o.x}, ${o.y})`)}case"scroll":{let a=r||await f({x:640,y:360});a&&(await c.setPosition(new l(a.x,a.y)),await new Promise(d=>setTimeout(d,60)));let o=parseInt(s.amount,10);(isNaN(o)||o<=0)&&(o=5);let y=o>50?Math.min(20,Math.max(1,Math.round(o/100))):Math.min(20,o),S=s.direction==="up";for(let d=0;d<y;d++)S?await c.scrollUp(120):await c.scrollDown(120),await new Promise(C=>setTimeout(C,20));return`SUCCESS: Scrolled ${s.direction||"down"} (${y} notches${r?` at target (${r.x}, ${r.y})`:" at screen center"})`}default:return`ERROR: Unsupported mouse action "${n}"`}}catch(a){return`ERROR: Mouse action failed: ${a.message}`}}var m={enter:e.Enter,return:e.Return,escape:e.Escape,esc:e.Escape,backspace:e.Backspace,tab:e.Tab,space:e.Space,up:e.Up,down:e.Down,left:e.Left,right:e.Right,ctrl:e.LeftControl,control:e.LeftControl,alt:e.LeftAlt,shift:e.LeftShift,cmd:e.LeftCmd,win:e.LeftWin,meta:e.LeftWin,super:e.LeftSuper,a:e.A,b:e.B,c:e.C,d:e.D,e:e.E,f:e.F,g:e.G,h:e.H,i:e.I,j:e.J,k:e.K,l:e.L,m:e.M,n:e.N,o:e.O,p:e.P,q:e.Q,r:e.R,s:e.S,t:e.T,u:e.U,v:e.V,w:e.W,x:e.X,y:e.Y,z:e.Z,0:e.Num0,1:e.Num1,2:e.Num2,3:e.Num3,4:e.Num4,5:e.Num5,6:e.Num6,7:e.Num7,8:e.Num8,9:e.Num9,f1:e.F1,f2:e.F2,f3:e.F3,f4:e.F4,f5:e.F5,f6:e.F6,f7:e.F7,f8:e.F8,f9:e.F9,f10:e.F10,f11:e.F11,f12:e.F12},p=n=>{if(!n)return;let t=String(n).toLowerCase().trim();if(m[t]!==void 0)return m[t];if(e[n]!==void 0)return e[n];if(e[t.toUpperCase()]!==void 0)return e[t.toUpperCase()]};async function $(n,t,s={}){try{switch(n.toLowerCase()){case"type":{if(typeof t!="string")return"ERROR: Type action requires a valid string input";await w(),await R.setContent(t);let a=process.platform==="darwin"?e.LeftSuper:e.LeftControl;return await i.pressKey(a,e.V),await i.releaseKey(a,e.V),await w(),s.autoPressEnter?(await new Promise(o=>setTimeout(o,50)),await i.type(e.Enter),`SUCCESS: Typed text input ("${t.length>20?t.substring(0,20)+"...":t}") and pressed Enter`):`SUCCESS: Typed text input ("${t.length>20?t.substring(0,20)+"...":t}")`}case"key_press":{let r=p(t);return r===void 0?`ERROR: Unknown key name "${t}"`:(await i.type(r),`SUCCESS: Pressed key ${t}`)}case"key_combination":{if(!Array.isArray(t))return'ERROR: key_combination requires an array of keys (e.g. ["ctrl", "c"])';let r=t.map(a=>p(a)).filter(a=>a!==void 0);return r.length===0?"ERROR: Invalid key combination":(await i.pressKey(...r),await i.releaseKey(...r),`SUCCESS: Executed key combination [${t.join(" + ")}]`)}case"clear_input":return await i.pressKey(e.LeftControl,e.A),await i.releaseKey(e.LeftControl,e.A),await i.type(e.Backspace),"SUCCESS: Cleared active text input (Select All + Backspace)";case"browser_back":{let r=process.platform==="darwin";return r?(await i.pressKey(e.LeftSuper,e.Left),await i.releaseKey(e.LeftSuper,e.Left)):(await i.pressKey(e.LeftAlt,e.Left),await i.releaseKey(e.LeftAlt,e.Left)),await w(),`SUCCESS: Browser back navigation (${r?"Cmd+Left":"Alt+Left"})`}default:return`ERROR: Unsupported keyboard action "${n}"`}}catch(r){return`ERROR: Keyboard action failed: ${r.message}`}}export{E as a,$ as b};
|