fluxflow-cli 4.11.0 → 4.13.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.
Files changed (68) hide show
  1. package/README.md +2 -2
  2. package/dist/chunks/{addMemScore-EIIMCED3.js → addMemScore-W4I665ZR.js} +1 -1
  3. package/dist/chunks/ai-6JVYA4PV.js +1 -0
  4. package/dist/chunks/app-FSHFZE7H.js +259 -0
  5. package/dist/chunks/{chat-5CITJOXW.js → chat-HZ7UVZE2.js} +1 -1
  6. package/dist/chunks/chunk-2PMRX4CK.js +49 -0
  7. package/dist/chunks/{chunk-Q7SNDU5P.js → chunk-7JAWJV4U.js} +1 -1
  8. package/dist/chunks/{chunk-TA42E3DA.js → chunk-E5LLK7O5.js} +1 -1
  9. package/dist/chunks/{chunk-W43IBIRT.js → chunk-EVDO64BW.js} +1 -1
  10. package/dist/chunks/chunk-FDNLMLIM.js +1 -0
  11. package/dist/chunks/chunk-IIU3IJAG.js +882 -0
  12. package/dist/chunks/chunk-K676BNH2.js +1 -0
  13. package/dist/chunks/{chunk-TGINXVDR.js → chunk-KFM2OZWJ.js} +1 -1
  14. package/dist/chunks/{chunk-TJII6UKN.js → chunk-KRRJNFBF.js} +1 -1
  15. package/dist/chunks/{chunk-2CJOOYOT.js → chunk-TYOB727A.js} +1 -1
  16. package/dist/chunks/{chunk-DHQHSTTS.js → chunk-UAHJEAVX.js} +1 -1
  17. package/dist/chunks/{chunk-2TASXARO.js → chunk-VCF6JVQV.js} +1 -1
  18. package/dist/chunks/{chunk-7PJOF5I2.js → chunk-YNU56P2H.js} +1 -1
  19. package/dist/chunks/chunk-YS35YSMW.js +1 -0
  20. package/dist/chunks/{chunk-FJGY5C4M.js → chunk-YVFWOJHY.js} +1 -1
  21. package/dist/chunks/{chunk-5K4X2VUW.js → chunk-ZKQ5PQXN.js} +1 -1
  22. package/dist/chunks/{chunk-5GEXRVU6.js → chunk-ZYJYKSIA.js} +1 -1
  23. package/dist/chunks/{click-WCT2TJ2G.js → click-C6J7T7RF.js} +2 -2
  24. package/dist/chunks/{computer_action-EKG5CRRA.js → computer_action-CJJTZQEI.js} +1 -1
  25. package/dist/chunks/{drag-HYJQ5RE7.js → drag-Y7BI43K7.js} +1 -1
  26. package/dist/chunks/{emergency_rollback-A67M4DU6.js → emergency_rollback-EPJPKANN.js} +1 -1
  27. package/dist/chunks/{exec_command-43ZNHLVJ.js → exec_command-7MOYM7IQ.js} +1 -1
  28. package/dist/chunks/export-OHZ652N5.js +1 -0
  29. package/dist/chunks/{file_map-YYKJC7LP.js → file_map-5KY2ADZW.js} +1 -1
  30. package/dist/chunks/{generate_image-Q6RIYYMI.js → generate_image-35IDBNYW.js} +1 -1
  31. package/dist/chunks/{invoke-RTBTXXOI.js → invoke-4CCGIIYJ.js} +2 -2
  32. package/dist/chunks/{invokeSync-RNOOUMPZ.js → invokeSync-GGK2NNZK.js} +2 -2
  33. package/dist/chunks/{key_press-RKJOUTTG.js → key_press-FQYXXELE.js} +1 -1
  34. package/dist/chunks/{keyboard_typing-GJBWCAZ2.js → keyboard_typing-QYBCROI7.js} +1 -1
  35. package/dist/chunks/{memory-22U3WGHY.js → memory-OYIUYX3A.js} +1 -1
  36. package/dist/chunks/paths-PM7MFWJK.js +1 -0
  37. package/dist/chunks/{saveSummary-2LC63SYI.js → saveSummary-ATBIFYDP.js} +1 -1
  38. package/dist/chunks/{screen_grid-Y5PT4VFL.js → screen_grid-7QKZEE5T.js} +1 -1
  39. package/dist/chunks/{scroll-DVM5ACY2.js → scroll-NWD7AZH4.js} +1 -1
  40. package/dist/chunks/{search_keyword-Y2B3YELW.js → search_keyword-W5YEUUPO.js} +1 -1
  41. package/dist/chunks/{secrets-2JNLNTQE.js → secrets-ZJQ4S4BU.js} +1 -1
  42. package/dist/chunks/settings-RQ72HWCU.js +1 -0
  43. package/dist/chunks/{todo-VFONYOUK.js → todo-SJLJJLVZ.js} +1 -1
  44. package/dist/chunks/{update_file-CF2DSC6F.js → update_file-B64P2EXN.js} +1 -1
  45. package/dist/chunks/usageServer-V3C5UWIH.js +1 -0
  46. package/dist/chunks/view_file-JK22NGXC.js +1 -0
  47. package/dist/chunks/{web_scrape-EWLJFTMV.js → web_scrape-5LBY4FDC.js} +1 -1
  48. package/dist/chunks/{web_search-KNT73E64.js → web_search-YG5YAC5D.js} +1 -1
  49. package/dist/chunks/{write_docx-T4UJCJ3L.js → write_docx-EKUIZ7GV.js} +1 -1
  50. package/dist/chunks/{write_file-N2EG2T6U.js → write_file-THIYPKV2.js} +1 -1
  51. package/dist/chunks/{write_pdf-NGUPNIEZ.js → write_pdf-VB4IFPWX.js} +1 -1
  52. package/dist/cli.js +8 -8
  53. package/dist/model_config.json +10 -686
  54. package/dist/package.json +2 -2
  55. package/model_config.json +10 -686
  56. package/package.json +2 -2
  57. package/dist/chunks/ai-WB4PWDHV.js +0 -1
  58. package/dist/chunks/app-DLM4TCBT.js +0 -225
  59. package/dist/chunks/chunk-4TZKD2XR.js +0 -1
  60. package/dist/chunks/chunk-6GTIZENY.js +0 -48
  61. package/dist/chunks/chunk-GFDJETGV.js +0 -868
  62. package/dist/chunks/chunk-JSVFQZL2.js +0 -1
  63. package/dist/chunks/chunk-K26OGD74.js +0 -3
  64. package/dist/chunks/export-PSA6YZMJ.js +0 -1
  65. package/dist/chunks/paths-CHZDSDRF.js +0 -1
  66. package/dist/chunks/settings-2QSWNLAX.js +0 -1
  67. package/dist/chunks/usageServer-HYLLNJRZ.js +0 -1
  68. package/dist/chunks/view_file-SRYT37FH.js +0 -1
@@ -0,0 +1 @@
1
+ import{c as E,d as _}from"./chunk-SIINYZWE.js";import{e as s}from"./chunk-FDNLMLIM.js";import I from"fs-extra";import l from"path";var a=l.join(s,"secrets.json"),f=async()=>{try{let t=E(a,{});if(t.API_KEY)return t.API_KEY}catch{}return null},Y=async t=>{try{let e=E(a,{});if(t==="Google")return e.GOOGLE_API_KEY||e.API_KEY||null;if(t==="DeepSeek")return e.DEEPSEEK_API_KEY||null;if(t==="OpenRouter")return e.OPENROUTER_API_KEY||null;if(t==="Mistral")return e.MISTRAL_API_KEY||null;if(t==="NVIDIA")return e.NVIDIA_API_KEY||null;if(t==="Ollama")return e.OLLAMA_API_KEY||"LOCAL";if(t==="CrofAI"||t==="Crof")return e.CROFAI_API_KEY||null;if(t==="InferX")return e.INFERX_API_KEY||null;if(t==="SenseNova"||t==="Sensenova")return e.SENSENOVA_API_KEY||null;if(t==="Poolside"||t==="poolside")return e.POOLSIDE_API_KEY||null;if(t==="9router"||t==="9Router")return e["9ROUTER_API_KEY"]||"LOCAL";if(t==="ExpLabs"||t==="ExperientialLabs"||t==="ExperimentalLabs"||t==="explabs")return e.EXPLABS_API_KEY||e.EXPERIENTIALLABS_API_KEY||null;if(t==="TokenHarbor"||t==="Token Harbor"||t==="tokenharbor"||t==="token_harbor"||t==="thk")return e.TOKENHARBOR_API_KEY||e.TOKEN_HARBOR_API_KEY||null}catch{}return null},r=async(t,e)=>{t==="Google"?(await n("GOOGLE_API_KEY",e),await n("API_KEY",e)):t==="DeepSeek"?await n("DEEPSEEK_API_KEY",e):t==="OpenRouter"?await n("OPENROUTER_API_KEY",e):t==="Mistral"?await n("MISTRAL_API_KEY",e):t==="NVIDIA"?await n("NVIDIA_API_KEY",e):t==="Ollama"?await n("OLLAMA_API_KEY",e):t==="CrofAI"||t==="Crof"?await n("CROFAI_API_KEY",e):t==="InferX"?await n("INFERX_API_KEY",e):t==="SenseNova"||t==="Sensenova"?await n("SENSENOVA_API_KEY",e):t==="Poolside"||t==="poolside"?await n("POOLSIDE_API_KEY",e):t==="9router"||t==="9Router"?await n("9ROUTER_API_KEY",e):t==="ExpLabs"||t==="ExperientialLabs"||t==="ExperimentalLabs"||t==="explabs"?await n("EXPLABS_API_KEY",e):(t==="TokenHarbor"||t==="Token Harbor"||t==="tokenharbor"||t==="token_harbor"||t==="thk")&&await n("TOKENHARBOR_API_KEY",e)},O=async t=>{try{return E(a,{})[t]||null}catch{return null}},n=async(t,e)=>{await I.ensureDir(s);let A=E(a,{});A[t]=e,_(a,A)},R=async()=>{try{let t=E(a,{});return{key:t.GOOGLE_API_KEY||t.API_KEY,cx:t.SEARCH_ID}}catch{}return{key:null,cx:null}},S=async t=>n("API_KEY",t),L=async t=>n("GOOGLE_API_KEY",t),x=async t=>n("SEARCH_ID",t),c=async t=>{try{let e=E(a,{});delete e[t],_(a,e)}catch{}},N=async()=>c("API_KEY");export{f as a,Y as b,r as c,O as d,n as e,R as f,S as g,L as h,x as i,c as j,N as k};
@@ -1 +1 @@
1
- import{a as v,b,c as h,d as f}from"./chunk-SIINYZWE.js";import{m as u,n as s,p as m}from"./chunk-4TZKD2XR.js";import r from"fs-extra";import o from"path";r.ensureDirSync(u);var l=null;async function B(e,t){try{if(e.type==="create")await r.pathExists(e.filePath)&&(await r.chmod(e.filePath,438).catch(()=>{}),await r.remove(e.filePath));else if(e.type==="update"){if(!e.backupFile)return;let a=o.join(u,t.chatId,e.backupFile);if(await r.pathExists(a)){let n=h(a,null);if(!n||!n.data)throw new Error(`Backup container corrupt or empty for ${o.basename(e.filePath)}`);let p=b(n.data);await r.pathExists(e.filePath)&&await r.chmod(e.filePath,438).catch(()=>{}),await r.writeFile(e.filePath,p,"utf8")}}}catch(a){throw new Error(`Restoration failed for ${o.basename(e.filePath)}: ${a.message}`)}}async function P(e,t,a=7){let n=0;for(;n<a;)try{return await B(e,t),!0}catch{if(n++,n>=a)return!1;let d=Math.min(100*Math.pow(2,n-1),5e3);await new Promise(i=>setTimeout(i,d))}return!1}var I=null,R={async startTransaction(e,t){I=e,l={id:`tx_prompt_${Date.now()}`,chatId:e,timestamp:new Date().toISOString(),prompt:t.trim(),changes:[],reverted:!1},f(m,l)},async recordFileChange(e,t=null){try{if(!l){if(I){let i=h(s,[]),c=[...i].reverse().find(w=>w.chatId===I);if(c){if(c.changes.some(E=>E.filePath===e))return;let g=await r.pathExists(e)||t?"update":"create",y=null;if(g==="update"){let E=o.basename(e);y=`${c.id}_${E}.bak`;let x=o.join(u,c.chatId);await r.ensureDir(x);let T=o.join(x,y),F=t!==null?t:await r.readFile(e,"utf8").catch(()=>null);F!==null?f(T,{data:v(F)}):(g="create",y=null)}c.changes.push({filePath:e,type:g,backupFile:y}),f(s,i)}}return}if(l.changes.some(i=>i.filePath===e))return;let p=await r.pathExists(e)||t?"update":"create",d=null;if(p==="update"){let i=o.basename(e);d=`${l.id}_${i}.bak`;let c=o.join(u,l.chatId);await r.ensureDir(c);let w=o.join(c,d),k=t!==null?t:await r.readFile(e,"utf8").catch(()=>null);k!==null?f(w,{data:v(k)}):(p="create",d=null)}l.changes.push({filePath:e,type:p,backupFile:d}),f(m,l)}catch{}},async commitTransaction(){if(l)try{let e=h(s,[]);if(e.push(l),e.length>512e3){let t=e.shift();if(t.changes)for(let a of t.changes)a.backupFile&&await r.remove(o.join(u,t.chatId,a.backupFile)).catch(()=>{})}f(s,e),await r.remove(m).catch(()=>{})}catch{}finally{l=null}},async recoverCrashedTransaction(){try{if(await r.pathExists(m)){let e=h(m,null);if(e?.changes?.length>0){let t=h(s,[]);t.some(a=>a.id===e.id)||(t.push(e),f(s,t))}await r.remove(m).catch(()=>{})}}catch{}},async rollbackToBefore(e){let t=h(s,null);if(!t)throw new Error("No transaction ledger found.");let a=t.findIndex(i=>i.id===e);if(a===-1)throw new Error(`Transaction [${e}] not found.`);let n=t[a].chatId,p=t[a].prompt,d=t.slice(a).filter(i=>i.chatId===n&&!i.reverted).reverse();for(let i of d){for(let c of[...i.changes].reverse())await P(c,i);for(let c of i.changes)if(c.backupFile){let w=o.join(u,i.chatId,c.backupFile);await r.remove(w).catch(()=>{})}t=t.filter(c=>c.id!==i.id),f(s,t)}return{success:!0,chatId:n,targetPrompt:p}},async getChatHistory(e){try{return h(s,[]).filter(a=>a.chatId===e&&!a.reverted)}catch{return[]}},async deleteChatBackups(e){try{await r.remove(o.join(u,e));let t=h(s,[]),a=t.filter(n=>n.chatId!==e);t.length!==a.length&&f(s,a)}catch{}}};export{R as a};
1
+ import{a as v,b,c as h,d as f}from"./chunk-SIINYZWE.js";import{m as u,n as s,p as m}from"./chunk-FDNLMLIM.js";import r from"fs-extra";import o from"path";r.ensureDirSync(u);var l=null;async function B(e,t){try{if(e.type==="create")await r.pathExists(e.filePath)&&(await r.chmod(e.filePath,438).catch(()=>{}),await r.remove(e.filePath));else if(e.type==="update"){if(!e.backupFile)return;let a=o.join(u,t.chatId,e.backupFile);if(await r.pathExists(a)){let n=h(a,null);if(!n||!n.data)throw new Error(`Backup container corrupt or empty for ${o.basename(e.filePath)}`);let p=b(n.data);await r.pathExists(e.filePath)&&await r.chmod(e.filePath,438).catch(()=>{}),await r.writeFile(e.filePath,p,"utf8")}}}catch(a){throw new Error(`Restoration failed for ${o.basename(e.filePath)}: ${a.message}`)}}async function P(e,t,a=7){let n=0;for(;n<a;)try{return await B(e,t),!0}catch{if(n++,n>=a)return!1;let d=Math.min(100*Math.pow(2,n-1),5e3);await new Promise(i=>setTimeout(i,d))}return!1}var I=null,R={async startTransaction(e,t){I=e,l={id:`tx_prompt_${Date.now()}`,chatId:e,timestamp:new Date().toISOString(),prompt:t.trim(),changes:[],reverted:!1},f(m,l)},async recordFileChange(e,t=null){try{if(!l){if(I){let i=h(s,[]),c=[...i].reverse().find(w=>w.chatId===I);if(c){if(c.changes.some(E=>E.filePath===e))return;let g=await r.pathExists(e)||t?"update":"create",y=null;if(g==="update"){let E=o.basename(e);y=`${c.id}_${E}.bak`;let x=o.join(u,c.chatId);await r.ensureDir(x);let T=o.join(x,y),F=t!==null?t:await r.readFile(e,"utf8").catch(()=>null);F!==null?f(T,{data:v(F)}):(g="create",y=null)}c.changes.push({filePath:e,type:g,backupFile:y}),f(s,i)}}return}if(l.changes.some(i=>i.filePath===e))return;let p=await r.pathExists(e)||t?"update":"create",d=null;if(p==="update"){let i=o.basename(e);d=`${l.id}_${i}.bak`;let c=o.join(u,l.chatId);await r.ensureDir(c);let w=o.join(c,d),k=t!==null?t:await r.readFile(e,"utf8").catch(()=>null);k!==null?f(w,{data:v(k)}):(p="create",d=null)}l.changes.push({filePath:e,type:p,backupFile:d}),f(m,l)}catch{}},async commitTransaction(){if(l)try{let e=h(s,[]);if(e.push(l),e.length>512e3){let t=e.shift();if(t.changes)for(let a of t.changes)a.backupFile&&await r.remove(o.join(u,t.chatId,a.backupFile)).catch(()=>{})}f(s,e),await r.remove(m).catch(()=>{})}catch{}finally{l=null}},async recoverCrashedTransaction(){try{if(await r.pathExists(m)){let e=h(m,null);if(e?.changes?.length>0){let t=h(s,[]);t.some(a=>a.id===e.id)||(t.push(e),f(s,t))}await r.remove(m).catch(()=>{})}}catch{}},async rollbackToBefore(e){let t=h(s,null);if(!t)throw new Error("No transaction ledger found.");let a=t.findIndex(i=>i.id===e);if(a===-1)throw new Error(`Transaction [${e}] not found.`);let n=t[a].chatId,p=t[a].prompt,d=t.slice(a).filter(i=>i.chatId===n&&!i.reverted).reverse();for(let i of d){for(let c of[...i.changes].reverse())await P(c,i);for(let c of i.changes)if(c.backupFile){let w=o.join(u,i.chatId,c.backupFile);await r.remove(w).catch(()=>{})}t=t.filter(c=>c.id!==i.id),f(s,t)}return{success:!0,chatId:n,targetPrompt:p}},async getChatHistory(e){try{return h(s,[]).filter(a=>a.chatId===e&&!a.reverted)}catch{return[]}},async deleteChatBackups(e){try{await r.remove(o.join(u,e));let t=h(s,[]),a=t.filter(n=>n.chatId!==e);t.length!==a.length&&f(s,a)}catch{}}};export{R as a};
@@ -1,4 +1,4 @@
1
- import{a as j}from"./chunk-TGINXVDR.js";import{c as w,d as m}from"./chunk-SIINYZWE.js";import{f as T,g as C,k as N,l as L,r as x}from"./chunk-4TZKD2XR.js";import u from"fs-extra";import F from"path";import{nanoid as S}from"nanoid";var O=Promise.resolve(),I=t=>{let n=O.then(async()=>{try{return await t()}catch(s){throw console.error("Lock Operation Failed:",s),s}});return O=n.catch(()=>{}),n},M=async()=>{await u.ensureDir(C);let t={};if(await u.pathExists(T))try{t=w(T,{})}catch{t={}}for(let n in t){let s=F.join(C,`${n}.json`);Object.defineProperty(t[n],"messages",{get:()=>{if(u.existsSync(s))try{return w(s,[])}catch{return[]}return[]},set:e=>{try{m(s,e)}catch{}},enumerable:!1,configurable:!0})}return t},J=async(t,n,s)=>I(async()=>{await u.ensureDir(C);let e=await M(),r=e[t],a=(s||[]).filter(l=>!l.isUpdateNotification&&(!l.isMeta||l.text&&l.text.includes("Request Cancelled"))),i=l=>{if(!l)return;let E=typeof l=="string"?l:l.text||l.content||"";if(!E||typeof E!="string")return;let b=E.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!b)return;let R=b.split(/\s+/),D;return R.length>7?D=R.slice(0,7).join(" ")+"...":b.length>45?D=b.substring(0,45).trimEnd()+"...":D=b,D},o,d=a.filter(l=>l.role==="user"),A=d[0],h=d[d.length-1],c=i(h),f=i(A);r&&r.prompt?Math.random()<.3&&c?o=c:o=r.prompt:o=f||c;let p=n||(r?r.name:`Session ${t.slice(-6)}`),g=F.join(C,`${t}.json`);m(g,a),e[t]={name:p,prompt:o||void 0,updatedAt:Date.now()};let y={};for(let l in e)y[l]={name:e[l].name,prompt:e[l].prompt||void 0,updatedAt:e[l].updatedAt};m(T,y)}),W=async(t,n)=>I(async()=>{let s=await M();s[t]?(s[t].name=n,s[t].updatedAt=Date.now()):s[t]={name:n,updatedAt:Date.now()};let e={};for(let r in s)e[r]={name:s[r].name,prompt:s[r].prompt||void 0,updatedAt:s[r].updatedAt};m(T,e)}),k=async t=>I(async()=>{let n=await M();delete n[t];let s={};for(let i in n)s[i]={name:n[i].name,prompt:n[i].prompt||void 0,updatedAt:n[i].updatedAt};if(m(T,s),await u.pathExists(x))try{let i=w(x,[]);if(Array.isArray(i)){let o=i.filter(d=>Object.keys(d)[0]!==String(t));m(x,o)}}catch{}let e=w(N,{});e[t]&&(delete e[t],m(N,e));let r=w(L,{});r[t]&&(delete r[t],m(L,r)),await j.deleteChatBackups(t);let a=F.join(C,`${t}.json`);if(await u.pathExists(a))try{await u.remove(a)}catch{}return n}),Y=()=>`flow-${S(6)}`,q=async t=>{if(!t||t==="Never")return;let n=parseInt(t);if(isNaN(n))return;let s=await M(),e=Date.now(),r=n*24*60*60*1e3,a=0;for(let i in s){let o=s[i];o.updatedAt&&e-o.updatedAt>r&&(await k(i),a++)}return a},H=t=>{let n=t.replace(/[\[\]]/g,"").trim(),s=new Date(n);if(!isNaN(s.getTime()))return s.getTime();let e=n.split(/,\s*|\s+/);if(e.length===0)return null;let r=e[0],a=e[1]||"",i=e[2]||"",o=r.split(/[-\/.]/).map(Number);if(o.length!==3)return null;let d="en";try{d=Intl.DateTimeFormat().resolvedOptions().locale||"en"}catch{}let A=!/^en[-_]?us$|^en$/.test(d?.toLowerCase()),h,c,f;if(o[0]>1e3)h=o[0],c=o[1],f=o[2];else if(o[2]>1e3)h=o[2],o[0]>12?(f=o[0],c=o[1]):o[1]>12?(f=o[1],c=o[0]):A?(f=o[0],c=o[1]):(c=o[0],f=o[1]);else return null;if(c<1||c>12||f<1||f>31)return null;let p=0,g=0,y=0;if(a){let E=a.split(":").map(Number);p=E[0]||0,g=E[1]||0,y=E[2]||0,i.toLowerCase()==="pm"&&p<12?p+=12:i.toLowerCase()==="am"&&p===12&&(p=0)}let l=new Date(h,c-1,f,p,g,y);return isNaN(l.getTime())?null:l.getTime()},v=async t=>{try{if(!await u.pathExists(t))return;let n=await u.readFile(t,"utf8");if(!n.trim())return;let s=n.split(`
1
+ import{a as j}from"./chunk-KFM2OZWJ.js";import{c as w,d as m}from"./chunk-SIINYZWE.js";import{f as T,g as C,k as N,l as L,r as x}from"./chunk-FDNLMLIM.js";import u from"fs-extra";import F from"path";import{nanoid as S}from"nanoid";var O=Promise.resolve(),I=t=>{let n=O.then(async()=>{try{return await t()}catch(s){throw console.error("Lock Operation Failed:",s),s}});return O=n.catch(()=>{}),n},M=async()=>{await u.ensureDir(C);let t={};if(await u.pathExists(T))try{t=w(T,{})}catch{t={}}for(let n in t){let s=F.join(C,`${n}.json`);Object.defineProperty(t[n],"messages",{get:()=>{if(u.existsSync(s))try{return w(s,[])}catch{return[]}return[]},set:e=>{try{m(s,e)}catch{}},enumerable:!1,configurable:!0})}return t},J=async(t,n,s)=>I(async()=>{await u.ensureDir(C);let e=await M(),r=e[t],a=(s||[]).filter(l=>!l.isUpdateNotification&&(!l.isMeta||l.text&&l.text.includes("Request Cancelled"))),i=l=>{if(!l)return;let E=typeof l=="string"?l:l.text||l.content||"";if(!E||typeof E!="string")return;let b=E.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!b)return;let R=b.split(/\s+/),D;return R.length>7?D=R.slice(0,7).join(" ")+"...":b.length>45?D=b.substring(0,45).trimEnd()+"...":D=b,D},o,d=a.filter(l=>l.role==="user"),A=d[0],h=d[d.length-1],c=i(h),f=i(A);r&&r.prompt?Math.random()<.3&&c?o=c:o=r.prompt:o=f||c;let p=n||(r?r.name:`Session ${t.slice(-6)}`),g=F.join(C,`${t}.json`);m(g,a),e[t]={name:p,prompt:o||void 0,updatedAt:Date.now()};let y={};for(let l in e)y[l]={name:e[l].name,prompt:e[l].prompt||void 0,updatedAt:e[l].updatedAt};m(T,y)}),W=async(t,n)=>I(async()=>{let s=await M();s[t]?(s[t].name=n,s[t].updatedAt=Date.now()):s[t]={name:n,updatedAt:Date.now()};let e={};for(let r in s)e[r]={name:s[r].name,prompt:s[r].prompt||void 0,updatedAt:s[r].updatedAt};m(T,e)}),k=async t=>I(async()=>{let n=await M();delete n[t];let s={};for(let i in n)s[i]={name:n[i].name,prompt:n[i].prompt||void 0,updatedAt:n[i].updatedAt};if(m(T,s),await u.pathExists(x))try{let i=w(x,[]);if(Array.isArray(i)){let o=i.filter(d=>Object.keys(d)[0]!==String(t));m(x,o)}}catch{}let e=w(N,{});e[t]&&(delete e[t],m(N,e));let r=w(L,{});r[t]&&(delete r[t],m(L,r)),await j.deleteChatBackups(t);let a=F.join(C,`${t}.json`);if(await u.pathExists(a))try{await u.remove(a)}catch{}return n}),Y=()=>`flow-${S(6)}`,q=async t=>{if(!t||t==="Never")return;let n=parseInt(t);if(isNaN(n))return;let s=await M(),e=Date.now(),r=n*24*60*60*1e3,a=0;for(let i in s){let o=s[i];o.updatedAt&&e-o.updatedAt>r&&(await k(i),a++)}return a},H=t=>{let n=t.replace(/[\[\]]/g,"").trim(),s=new Date(n);if(!isNaN(s.getTime()))return s.getTime();let e=n.split(/,\s*|\s+/);if(e.length===0)return null;let r=e[0],a=e[1]||"",i=e[2]||"",o=r.split(/[-\/.]/).map(Number);if(o.length!==3)return null;let d="en";try{d=Intl.DateTimeFormat().resolvedOptions().locale||"en"}catch{}let A=!/^en[-_]?us$|^en$/.test(d?.toLowerCase()),h,c,f;if(o[0]>1e3)h=o[0],c=o[1],f=o[2];else if(o[2]>1e3)h=o[2],o[0]>12?(f=o[0],c=o[1]):o[1]>12?(f=o[1],c=o[0]):A?(f=o[0],c=o[1]):(c=o[0],f=o[1]);else return null;if(c<1||c>12||f<1||f>31)return null;let p=0,g=0,y=0;if(a){let E=a.split(":").map(Number);p=E[0]||0,g=E[1]||0,y=E[2]||0,i.toLowerCase()==="pm"&&p<12?p+=12:i.toLowerCase()==="am"&&p===12&&(p=0)}let l=new Date(h,c-1,f,p,g,y);return isNaN(l.getTime())?null:l.getTime()},v=async t=>{try{if(!await u.pathExists(t))return;let n=await u.readFile(t,"utf8");if(!n.trim())return;let s=n.split(`
2
2
  `),e=[],r=null,a=/^\s*(?:DEBUG|ERROR|SEARCH|PUPPETEER)\b/i;for(let c of s)a.test(c)?(r&&e.push(r),r={header:c,body:[]}):r?r.body.push(c):e.push({header:c,body:[]});r&&e.push(r);let i=10080*60*1e3,o=Date.now(),d=[],A=/(\d{1,4}[-\/.]\d{1,4}[-\/.]\d{1,4}(?:,\s*|\s+)?(?:\d{1,2}:\d{2}:\d{2}(?:\s*[aApP][mM])?)?)/;for(let c of e){if(a.test(c.header)){let g=c.header.match(A);if(g){let y=H(g[1]);if(y&&o-y>i)continue}}let p=c.header+(c.body.length>0?`
3
3
  `+c.body.join(`
4
4
  `):"");d.push(p)}let h=d.join(`
@@ -1 +1 @@
1
- import{e as f}from"./chunk-W43IBIRT.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};
1
+ import{e as f}from"./chunk-EVDO64BW.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};
@@ -1 +1 @@
1
- import{s as o}from"./chunk-4TZKD2XR.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};
1
+ import{s as o}from"./chunk-FDNLMLIM.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};
@@ -1 +1 @@
1
- import{c as F,d as y}from"./chunk-SIINYZWE.js";import{c as g,o as h}from"./chunk-4TZKD2XR.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
+ import{c as F,d as y}from"./chunk-SIINYZWE.js";import{c as g,o as h}from"./chunk-FDNLMLIM.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{d as S}from"./chunk-4TZKD2XR.js";import O from"fs-extra";import T from"path";var C=a=>{if(!a)return[];let u=[],h=/\[tool:(.*?)\((.*?)\)\]/g,r=0,l;for(;(l=h.exec(a))!==null;){if(l.index>r){let t=a.slice(r,l.index);t.trim()&&u.push({type:"output",content:t})}u.push({type:"tool",toolName:l[1],args:l[2]}),r=h.lastIndex}if(r<a.length){let t=a.slice(r);t.trim()&&u.push({type:"output",content:t})}return u},b=async(a,u,h=process.cwd())=>{let r=`export-fluxflow-${a}.txt`,l=T.join(h,r),t=[],c=!1;for(let g=0;g<u.length;g++){let i=u[g];if(i&&!(i.role==="system"||i.isMeta||i.isLogo||String(i.id).startsWith("welcome"))){if(i.role==="user"){let e=i.text||"";e=e.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),t.length>0&&t.push(""),t.push("[USER]"),t.push(e),c=!1}else if(i.role==="think"){c||(t.push(""),t.push("[AGENT]"),c=!0);let e=(i.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();e&&(t.push("[thoughts]"),t.push(e))}else if(i.role==="agent"){c||(t.push(""),t.push("[AGENT]"),c=!0);let e=C(i.text||"");for(let p of e)if(p.type==="output"){let m=p.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();m&&(t.push("[output]"),t.push(m))}else p.type==="tool"&&(t.push("[tool]"),t.push(`${p.toolName} ${p.args}`))}}}let R=t.join(`
1
+ import{d as S}from"./chunk-FDNLMLIM.js";import O from"fs-extra";import T from"path";var C=a=>{if(!a)return[];let u=[],h=/\[tool:(.*?)\((.*?)\)\]/g,r=0,l;for(;(l=h.exec(a))!==null;){if(l.index>r){let t=a.slice(r,l.index);t.trim()&&u.push({type:"output",content:t})}u.push({type:"tool",toolName:l[1],args:l[2]}),r=h.lastIndex}if(r<a.length){let t=a.slice(r);t.trim()&&u.push({type:"output",content:t})}return u},b=async(a,u,h=process.cwd())=>{let r=`export-fluxflow-${a}.txt`,l=T.join(h,r),t=[],c=!1;for(let g=0;g<u.length;g++){let i=u[g];if(i&&!(i.role==="system"||i.isMeta||i.isLogo||String(i.id).startsWith("welcome"))){if(i.role==="user"){let e=i.text||"";e=e.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),t.length>0&&t.push(""),t.push("[USER]"),t.push(e),c=!1}else if(i.role==="think"){c||(t.push(""),t.push("[AGENT]"),c=!0);let e=(i.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();e&&(t.push("[thoughts]"),t.push(e))}else if(i.role==="agent"){c||(t.push(""),t.push("[AGENT]"),c=!0);let e=C(i.text||"");for(let p of e)if(p.type==="output"){let m=p.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();m&&(t.push("[output]"),t.push(m))}else p.type==="tool"&&(t.push("[tool]"),t.push(`${p.toolName} ${p.args}`))}}}let R=t.join(`
2
2
  `);return await O.writeFile(l,R,"utf8"),{exportFile:r,exportPath:l,totalLines:t.length}},j=(a,u="FluxFlow",h=null)=>{if(!a||!a.trim())return[];let r=a.split(`
3
3
  `),l=[],t=[],c=/^\s*(?:CRITICAL\s+ERROR|ERROR|DEBUG|SEARCH|PUPPETEER|WARN|WARNING|INFO)\b/i,R=/^\s*-{3,}\s*$/,g=!1;for(let e of r)if(c.test(e)){g=!0;break}if(!g){let e=a.trim();if(!e)return[];let p=h?new Date(h).toLocaleString():"Unknown Time",m=/\bjanitor\b/i.test(e)?"Memory":u;return[{timestamp:p,level:"ERROR",source:m,message:e}]}for(let e of r)R.test(e)?t.length>0&&(l.push(t.join(`
4
4
  `).trim()),t=[]):c.test(e)?(t.length>0&&(l.push(t.join(`
@@ -0,0 +1 @@
1
+ import{e as k,f as y}from"./chunk-SIINYZWE.js";import{a as g,b as c}from"./chunk-FDNLMLIM.js";import p from"fs-extra";import b from"path";import d from"fs";import v from"path";import{fileURLToPath as T}from"url";var _={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 L=T(import.meta.url),x=v.dirname(L),S="",O=[v.join(x,"../../model_config.json"),v.join(x,"../model_config.json")];for(let e of O)try{if(d.existsSync(e)){S=e;break}}catch{}var F=v.join(g,"model_config.json"),n=null,w=()=>{if(S)try{let e=d.readFileSync(S,"utf-8"),t=JSON.parse(e);if(t&&typeof t=="object")return t}catch{}return _&&typeof _=="object"?JSON.parse(JSON.stringify(_)):{version:0,release:20260913,fallbacks:{},providers:{}}};if(d.existsSync(F))try{let e=d.readFileSync(F,"utf-8"),t=JSON.parse(e);if(t&&typeof t=="object"){let s=w();t.fallbacks={...s.fallbacks||{},...t.fallbacks||{}},t.providers||(t.providers={}),t.release||(t.release=s.release||20260913),n=t}}catch{}n||(n=w());var D=new Set,I=new Set,m=()=>{let e=new Set,t=new Set;if(n.providers)for(let s of Object.keys(n.providers)){let r=n.providers[s];if(r&&r.models){let o=["Free","Paid"];for(let a of o){let i=r.models[a];if(Array.isArray(i)){for(let l of i)if(l&&l.cmd){let h=l.cmd.trim().toLowerCase();l.multimodal===!0&&e.add(h),l.hasReasoning===!0&&t.add(h)}}}}}if(Array.isArray(n.multimodal_models))for(let s of n.multimodal_models)s&&typeof s=="string"&&e.add(s.trim().toLowerCase());D=e,I=t};m();var u=()=>{try{return d.existsSync(g)||d.mkdirSync(g,{recursive:!0}),d.writeFileSync(F,JSON.stringify(n,null,2),"utf-8"),!0}catch{return!1}},J=(e,t,s=!1)=>{if(!e||!t)return{success:!1,reason:"Invalid provider or model ID"};let r=t.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};n.providers||(n.providers={}),n.providers[e]||(n.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=n.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let a=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!a)o.models.Free.push({cmd:r,multimodal:!!s,desc:r});else if(typeof a=="string"){let i=o.models.Free.indexOf(a);o.models.Free[i]={cmd:r,multimodal:!!s,desc:r}}else a.multimodal=!!s;return m(),u(),{success:!0}},G=(e,t,s=!0)=>{if(!e||!t)return{success:!1,reason:"Invalid provider or model ID"};let r=t.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};let o=n.providers?.[e];if(!o||!o.models||!Array.isArray(o.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let a=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!a)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof a=="string"){let i=o.models.Free.indexOf(a);o.models.Free[i]={cmd:r,multimodal:!!s,desc:r}}else a.multimodal=!!s;return m(),u(),{success:!0}},U=(e,t,s=!1)=>{if(!e||!t)return{success:!1,reason:"Invalid provider or model ID"};let r=t.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};n.providers||(n.providers={}),n.providers[e]||(n.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=n.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let a=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!a)o.models.Free.push({cmd:r,multimodal:!!s,desc:r});else if(s)if(typeof a=="string"){let i=o.models.Free.indexOf(a);o.models.Free[i]={cmd:r,multimodal:!0,desc:r}}else a.multimodal=!0;return o.default_free=r,m(),u(),{success:!0}},H=(e,t)=>{if(!e||!t)return{success:!1,reason:"Invalid provider or model ID"};let s=t.trim();if(!s)return{success:!1,reason:"Model ID cannot be empty"};let r=n.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(a=>(typeof a=="string"?a:a?.cmd)===s);return o===-1?{success:!1,reason:`Model "${s}" not found in ${e} model list`}:(r.models.Free.splice(o,1),r.default_free===s&&(r.default_free=""),r.default_paid===s&&(r.default_paid=""),m(),u(),{success:!0})},W=(e,t,s)=>{if(!e||!t||!s)return{success:!1,reason:"Invalid provider or model IDs"};let r=t.trim(),o=s.trim();if(!r||!o)return{success:!1,reason:"Model IDs cannot be empty"};let a=n.providers?.[e];if(!a||!a.models||!Array.isArray(a.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let i=a.models.Free.find(l=>(typeof l=="string"?l:l?.cmd)===r);if(!i)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof i=="string"){let l=a.models.Free.indexOf(i);a.models.Free[l]={cmd:o,multimodal:!1,desc:o}}else i.cmd=o,(i.desc===r||!i.desc)&&(i.desc=o);return m(),u(),{success:!0}},A=!1,Y=e=>{A=!!e};var X=e=>{if(!e)return!1;let t=e.trim().toLowerCase();return!!(A||D.has(t)||t.startsWith("gemini-")||t.startsWith("gemma-"))},V=e=>{if(!e)return!1;let t=e.trim().toLowerCase();return I.has(t)},z=(e,t)=>{let s=n.providers[e];return s?s.models[t==="Free"?"Free":"Paid"]||[]:[]},M=(e,t)=>{let s=n.providers[e];return s?t==="Free"?s.default_free:s.default_paid:""},B=e=>n.fallbacks[e];var f={mode:"Flux",display:0,thinkingLevel:"Medium",aiProvider:"Google",activeModel:M("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"}},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:""}},E=async()=>{let e={...f};try{if(await p.exists(c)){let t=k(c);if(t.imageSettings&&t.imageSettings.apiKey)try{let s=t.imageSettings.apiKey,{saveSecret:r}=await import("./secrets-ZJQ4S4BU.js");await r("POLLINATIONS_API_KEY",s),t.imageSettings.apiKey="",y(c,t)}catch{}e={...f,...t,quotas:{...f.quotas,...t.quotas,providerTiers:{...f.quotas.providerTiers,...t.quotas?.providerTiers||{}}},systemSettings:{...f.systemSettings,...t.systemSettings},profileData:{...f.profileData,...t.profileData},imageSettings:{...f.imageSettings,...t.imageSettings}}}}catch(t){console.error("Failed to load settings:",t)}try{let{getSecret:t}=await import("./secrets-ZJQ4S4BU.js"),s=await t("POLLINATIONS_API_KEY");s&&(e.imageSettings.apiKey=s)}catch{}if(e.showFullThinking===!1){e.showFullThinking=!0;try{y(c,e)}catch{}}return e},j=async e=>{let{FLUXFLOW_DIR:t}=await import("./paths-PM7MFWJK.js"),s=["logs","secret"];for(let r of s){let o=b.join(t,r),a=b.join(e,r);try{await p.exists(o)&&(await p.ensureDir(a),await p.copy(o,a,{overwrite:!0}))}catch(i){console.error(`Migration failed for ${r}:`,i)}}},oe=async e=>{try{let t=await E();if(!t.systemSettings.useExternalData&&e.systemSettings?.useExternalData&&e.systemSettings?.externalDataPath&&await j(e.systemSettings.externalDataPath),e.imageSettings&&e.imageSettings.apiKey!==void 0){let{saveSecret:r,removeSecret:o}=await import("./secrets-ZJQ4S4BU.js"),a=e.imageSettings.apiKey;a?await r("POLLINATIONS_API_KEY",a):await o("POLLINATIONS_API_KEY")}let s={...t,...e};return s.imageSettings&&(s.imageSettings={...s.imageSettings,apiKey:""}),await p.ensureDir(b.dirname(c)),y(c,s),!0}catch(t){return console.error("Failed to save settings:",t),!1}};export{J as a,G as b,U as c,H as d,W as e,Y as f,X as g,V as h,z as i,M as j,B as k,E as l,oe as m};
@@ -8,7 +8,7 @@ import{execSync as o}from"child_process";var t=null,h=()=>{if(process.platform!=
8
8
  `,i=`**Workspace Tools (path = relative; first argument; separator: '/')**
9
9
  - ReadFile(path=string, startLine?=int, endLine?=int)${u==="Google"||c?". Supports images/docs":""}
10
10
  - ReadFolder(path=string, recurse?=int[1..3])
11
- - PatchFile(path=string, allowMultiple?=bool, searchContent1="string match OR ^LINE:start..end$", newContent1=string, ...MAX15). Small searchString. Line Ranges: ^LINE:...$ syntax, must for large blocks/escape sequences
11
+ - PatchFile(path=string, allowMultiple?=bool, searchContent1="string match OR ^LINE:start..end$", newContent1=string, ...MAX15). Small searchString. Line Anchor: ^LINE:...$ syntax, must for large blocks/escape sequences
12
12
  - WriteFile(path=string, content=string). Creates/Overwrites. File Exist? PatchFile > WriteFile
13
13
  - CodeSearch(keyword=string, path?="dir/file/glob/regex, inclusion/exclusion ;-separated", fuzzy?=bool, regex?=bool:auto). Find relevant code, standard junk excluded
14
14
  - Run(command=string). Runs ${l==="Windows"?a()?"powershell":"windows CMD":"bash"} command. Destructive command \u2192 Ask user
@@ -1,4 +1,4 @@
1
- import{a as b,b as T}from"./chunk-FJGY5C4M.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\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=u=>{for(let e=0;e<u.length;e++){let s=u[e];if(s===`
1
+ import{a as b,b as T}from"./chunk-YVFWOJHY.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\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=u=>{for(let e=0;e<u.length;e++){let s=u[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 u=h[1],e=h[2],s=u?u.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(u=>u.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.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&&b()){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 a=i.replace(/^['"]|['"]$/g,""),l=i;return h(a)&&(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&&b()){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 a=["Remove-Item"];if(r&&a.push("-Recurse"),c&&a.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),R=m;return h($)&&(R=m.replace(/\//g,"\\")),R});a.push("-Path",l.join(","))}d.push(...a),e=i-1;continue}if(s==="cp"&&p&&b()){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 a=["Copy-Item"];if(r&&a.push("-Recurse"),c&&a.push("-Force"),t.length>0){let l=t.map(m=>{let $=m.replace(/^['"]|['"]$/g,""),R=m;return h($)&&(R=m.replace(/\//g,"\\")),R});if(l.length>1){let m=l.pop();a.push("-Path",l.join(","),"-Destination",m)}else a.push("-Path",l[0])}d.push(...a),e=i-1;continue}if(s==="touch"&&p&&b()){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(a=>{let l=a.replace(/^['"]|['"]$/g,""),m=a;return h(l)&&(m=a.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,u=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 a=r.replace(/^['"]|['"]$/g,"");return a.includes(" ")&&!c&&(r=`"${a}"`),r});if(p){let e="",s=0;for(let t=0;t<u.length;t++){let r=u[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 u.join(" ")},M=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=u=>{let e=u==="pwsh"||u==="powershell",s=v(n,e),t;w?u==="pwsh"?t="pwsh.exe":u==="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 a=`(version 1)
4
4
  (allow default)
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-4TZKD2XR.js";import{a as I}from"./chunk-Y5JU726N.js";import c from"fs";import d from"path";var z=s=>{if(!s)return null;let n=s.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!n)return null;let e=n[1];if((n[2]||"").trim().length===0)return null;let r="",i=e.match(/^name:\s*(.+)$/m);return i&&(r=i[1].trim().replace(/^["']|["']$/g,"")),r?{name:r}:null},A=s=>{let n=[];if(!s||!c.existsSync(s))return n;let e=(p,r=0)=>{if(!(r>5))try{let i=c.readdirSync(p,{withFileTypes:!0});for(let l of i){let a=d.join(p,l.name),o=l.name.toLowerCase();l.isFile()?o==="skill.md"&&n.push(a):l.isDirectory()&&(r===0?(o==="skills"||o===".skills"||o==="skill"||o===".skill")&&e(a,r+1):e(a,r+1))}}catch{}};return e(s,0),n},X=s=>s.replace(/^(\s*---\r?\n)([\s\S]*?)(\r?\n---)/,(n,e,p,r)=>{let i=p.split(`
1
+ import{a as P}from"./chunk-FDNLMLIM.js";import{a as I}from"./chunk-Y5JU726N.js";import c from"fs";import d from"path";var z=s=>{if(!s)return null;let n=s.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!n)return null;let e=n[1];if((n[2]||"").trim().length===0)return null;let r="",i=e.match(/^name:\s*(.+)$/m);return i&&(r=i[1].trim().replace(/^["']|["']$/g,"")),r?{name:r}:null},A=s=>{let n=[];if(!s||!c.existsSync(s))return n;let e=(p,r=0)=>{if(!(r>5))try{let i=c.readdirSync(p,{withFileTypes:!0});for(let l of i){let a=d.join(p,l.name),o=l.name.toLowerCase();l.isFile()?o==="skill.md"&&n.push(a):l.isDirectory()&&(r===0?(o==="skills"||o===".skills"||o==="skill"||o===".skill")&&e(a,r+1):e(a,r+1))}}catch{}};return e(s,0),n},X=s=>s.replace(/^(\s*---\r?\n)([\s\S]*?)(\r?\n---)/,(n,e,p,r)=>{let i=p.split(`
2
2
  `),l=[],a=!1;for(let o of i){if(/^\s*description\s*:/i.test(o)){a=!0;continue}if(a){if(/^\s+/.test(o))continue;a=!1}l.push(o)}return`${e}${l.join(`
3
3
  `)}${r}`}),Y=(s,n)=>{let e=[d.join(s,"references"),d.join(s,"reference"),s],p=n.toLowerCase().endsWith(".md")?n.toLowerCase():`${n.toLowerCase()}.md`,r=n.toLowerCase();for(let i of e)if(c.existsSync(i)&&c.statSync(i).isDirectory())try{let l=c.readdirSync(i);for(let a of l){let o=a.toLowerCase();if(o===p||o===r){let R=d.join(i,a);if(c.statSync(R).isFile())return R}}}catch{}return null},Q=async(s,n={})=>{let{path:e,StartLine:p,EndLine:r,start_line:i,end_line:l,startLine:a,endLine:o}=I(s),R=parseInt(p||i||a),v=parseInt(r||l||o),O=!isNaN(R),D=!isNaN(v),x=R||1,b=v||(R?R+800:800);if(!e)return'ERROR: Missing "path" argument for ReadFile.';if(e.trim().toLowerCase().startsWith("#skill")){let f=e.trim().replace(/\\/g,"/").replace(/^#skills?\/?/i,"").split("/").filter(Boolean),S=f[0]?.toLowerCase();if(S!=="global"&&S!=="project")return`ERROR: Invalid skill scope '${S||""}'. Expected 'global' or 'project'.`;let g=f[1];if(!g)return`ERROR: Missing skill name in path [${e}].`;let h=f[2]?.toLowerCase()==="references"||f[2]?.toLowerCase()==="reference",F=h?f.slice(3).join("/"):null,$=S==="global"?P:process.cwd(),k=A($),L=null;for(let t of k)try{let m=c.readFileSync(t,"utf8"),w=z(m),y=d.basename(d.dirname(t)).toLowerCase();if(w?.name&&w.name.toLowerCase()===g.toLowerCase()||y===g.toLowerCase()||t.toLowerCase()===d.join($,"skill.md").toLowerCase()&&g.toLowerCase()==="skill"){L=t;break}}catch{}if(!L)return`No '${g}' exist in given scope.`;let j=d.dirname(L),E=L,C=!0;if(h){if(!F)return`ERROR: Missing reference file name in path [${e}].`;let t=Y(j,F);if(!t)return`No such reference exist for skill '${g}'`;E=t,C=!1}try{let t=c.readFileSync(E,"utf8");t.startsWith("\uFEFF")&&(t=t.slice(1)),t=t.replace(/\r\n/g,`
4
4
  `).replace(/\r/g,`
@@ -1,2 +1,2 @@
1
- import{a as B}from"./chunk-2CJOOYOT.js";import{d as H}from"./chunk-W43IBIRT.js";import{a as j}from"./chunk-Y5JU726N.js";import J from"screenshot-desktop";import v from"sharp";import N from"fs-extra";import q from"path";import"@nut-tree-fork/nut-js";async function A(t,n,s){if(!(!process.env.SHOW_DEBUG_GRID&&!process.env.DEBUG_OCR))try{let i=q.resolve(process.cwd(),"screenshots",t);await N.ensureDir(i),await N.writeFile(q.join(i,n),s)}catch{}}function Q(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(t,n,s=1/0){if(t===n)return 0;if(t.length===0)return n.length;if(n.length===0)return t.length;if(Math.abs(t.length-n.length)>s)return s+1;let i=Array.from({length:n.length+1},(r,e)=>e);for(let r=1;r<=t.length;r++){let e=[r],c=r;for(let o=1;o<=n.length;o++){let f=t[r-1]===n[o-1]?0:1,a=Math.min(e[o-1]+1,i[o]+1,i[o-1]+f);e.push(a),a<c&&(c=a)}if(i=e,c>s)return s+1}return i[n.length]}function X(t){return t<=4?0:t<=8?1:2}async function F(t,n=3){let s=await v(t).metadata();return v(t).resize(Math.round(s.width*n),Math.round(s.height*n),{kernel:"lanczos3"}).greyscale().normalise().toBuffer()}function Y(t){if(!t)return{words:[],lines:[]};let n=[],s=new Map;for(let r of t.split(`
2
- `)){let e=r.split(" ");if(e.length<12||parseInt(e[0])!==5)continue;let o=e[2],f=e[3],a=e[4],h=parseInt(e[6]),x=parseInt(e[7]),b=parseInt(e[8]),u=parseInt(e[9]),l=parseFloat(e[10]),g=e.slice(11).join(" ").trim();if(!g||l<0)continue;let m={x0:h,y0:x,x1:h+b,y1:x+u},w={text:g,confidence:l,bbox:m};n.push(w);let p=`${o}_${f}_${a}`;s.has(p)||s.set(p,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let d=s.get(p);d.words.push(w),d.bbox.x0=Math.min(d.bbox.x0,m.x0),d.bbox.y0=Math.min(d.bbox.y0,m.y0),d.bbox.x1=Math.max(d.bbox.x1,m.x1),d.bbox.y1=Math.max(d.bbox.y1,m.y1)}let i=[];for(let r of s.values())r.words.length>0&&i.push({text:r.words.map(e=>e.text).join(" "),bbox:r.bbox,words:r.words});return{words:n,lines:i}}function tt(t){if(!(t.words&&t.words.length>0)){if(t.blocks&&t.blocks.length>0){t.words=[],t.lines=[];for(let n of t.blocks)for(let s of n.paragraphs||[])for(let i of s.lines||[]){i.bbox&&t.lines.push(i);for(let r of i.words||[])r.bbox&&t.words.push(r)}if(t.words.length>0)return}if(t.tsv){let n=Y(t.tsv);t.words=n.words,t.lines=n.lines}}}function G(t,n,s=0,i=0,r=1){tt(t);let e=o=>({x0:Math.round(o.x0/r)+s,y0:Math.round(o.y0/r)+i,x1:Math.round(o.x1/r)+s,y1:Math.round(o.y1/r)+i}),c=[];if(t.lines&&t.lines.length>0)for(let o of t.lines){let f=o.text?o.text.toLowerCase().trim():"";if(!f||!o.bbox||!(f===n||new RegExp(`\\b${Q(n)}\\b`,"i").test(f)))continue;let h=o.words||(t.words?t.words.filter(l=>l.bbox&&l.bbox.x0>=o.bbox.x0-5&&l.bbox.x1<=o.bbox.x1+5&&l.bbox.y0>=o.bbox.y0-5&&l.bbox.y1<=o.bbox.y1+5):[]),x=n.split(/\s+/),b=x.map(l=>l.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(h.length>0)for(let l=0;l<=h.length-x.length;l++){let g=h.slice(l,l+x.length),m=g.map(w=>(w.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(m===b||m.includes(b)){let w={x0:Math.min(...g.map(p=>p.bbox.x0)),y0:Math.min(...g.map(p=>p.bbox.y0)),x1:Math.max(...g.map(p=>p.bbox.x1)),y1:Math.max(...g.map(p=>p.bbox.y1))};c.push(e(w)),u=!0}}u||c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0)for(let o of t.words){let f=o.text?o.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",a=n.replace(/[^a-z0-9]/g,"");f===a&&o.bbox&&c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0){let o=X(n.length);for(let f of t.words){let a=f.text?f.text.toLowerCase().trim():"";a.length>=3&&Math.abs(a.length-n.length)<=o&&Z(a,n,o)<=o&&f.bbox&&c.push(e(f.bbox))}}return c}function L(t,n){let s=null,i=1/0;for(let r of t){let e=Math.round((r.x0+r.x1)/2),c=Math.round((r.y0+r.y1)/2),o=n.x>=r.x0&&n.x<=r.x1&&n.y>=r.y0&&n.y<=r.y1,f=Math.hypot(e-n.x,c-n.y),a=o?0:f;a<i&&(i=a,s={x:e,y:c,dist:f,containsPoint:o,bbox:r})}return s}function et(t,n,s,i){let c=Math.ceil(t/4),o=Math.ceil(n/2),f=[];for(let a=0;a<2;a++)for(let h=0;h<4;h++){let x=h*c,b=a*o,u=Math.min(c,t-x),l=Math.min(o,n-b),g=x+u/2,m=b+l/2,w=s>=x&&s<x+u&&i>=b&&i<b+l;f.push({x0:x,y0:b,w:u,h:l,cx:g,cy:m,containsTarget:w})}return f.sort((a,h)=>{if(a.containsTarget)return-1;if(h.containsTarget)return 1;let x=Math.hypot(a.cx-s,a.cy-i),b=Math.hypot(h.cx-s,h.cy-i);return x-b})}var W=null;async function nt(){return W||(W=(async()=>{let{createWorker:t}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:s}=await import("./paths-CHZDSDRF.js");return n.ensureDirSync(s),t("eng",1,{cachePath:s,logger:()=>{}})})().catch(t=>{throw W=null,t})),W}var S=null,V=null;async function ot(){let{getActiveDisplay:t}=await import("./screen_grid-Y5PT4VFL.js"),n=await t();if(S&&V===n)return S;V=n,S={format:"png"};try{let s=await J.listDisplays();s&&s.length>0&&(S={format:"png",screen:(s[n]||s[0]).id})}catch{}return S}var gt=async(t,n={})=>{let s=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),i=performance.now(),r=i,e=u=>{if(!s)return;let l=performance.now(),g=(l-r).toFixed(0),m=(l-i).toFixed(0);console.log(`[Click Perf] +${g}ms (${m}ms total) -> ${u}`),r=l};e("Starting click()");let c=j(t),o=c.gridId||c.grid||c.coordinate||c.target||c.id,f=(c.type||c.clickType||"single").toLowerCase(),a=(c.button||"left").toLowerCase(),h=c.intendedClickText||c.text||"";if(!o&&!h)return'ERROR: Missing required "gridId" parameter for Click tool.';let x=o;if(h)try{e("Parsing grid code");let u=o?H(o):null;e("Getting display options");let l=await ot();e("Taking desktop screenshot");let g=await J(l);e("Getting image metadata");let m=await v(g).metadata(),w=m.width||1920,p=m.height||1080,d=u?{x:Math.round(u.x*(w/1280)),y:Math.round(u.y*(p/720))}:{x:w/2,y:p/2},C=h.toLowerCase().trim();e("Acquiring OCR worker");let O=await nt(),R=null,P="",K=u?220:500;if(u){e("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let k=Math.min(Math.round(w/3),w),T=Math.min(Math.round(p/3),p),M=Math.max(0,Math.min(w-k,d.x-Math.floor(k/2))),y=Math.max(0,Math.min(p-T,d.y-Math.floor(T/2))),$=await v(g).extract({left:M,top:y,width:k,height:T}).toBuffer(),I=2,D=await F($,I),E=C.replace(/[^a-z0-9]/g,"_");await A("cropped",`crop_${Date.now()}_${E}.png`,D),e("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await O.setParameters({tessedit_pageseg_mode:"11"});let{data:_}=await O.recognize(D,{},{tsv:!0,blocks:!0});if(e("Pass 1: OCR recognition finished, extracting matches"),_&&_.text){s&&console.log(`[Pass 1 OCR Read]: "${_.text.trim().replace(/\s+/g," ")}"`);let U=G(_,C,M,y,I);if(U.length>0){let z=L(U,d);z&&(z.containsPoint||z.dist<=K)&&(R=z,P="centered target crop OCR")}}}if(!R){e("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let k=await F(g,2),T=C.replace(/[^a-z0-9]/g,"_");await A("fullscreen",`full_${Date.now()}_${T}.png`,k),e("Pass 2: Running Tesseract on full screen"),await O.setParameters({tessedit_pageseg_mode:"3"});let{data:M}=await O.recognize(k,{},{tsv:!0,blocks:!0});if(e("Pass 2: Full-screen OCR finished"),M&&M.text){let y=G(M,C,0,0,2);if(y.length>0){let $=L(y,d);$&&(R=$,P="full-screen OCR")}}}if(!R){e("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let k=et(w,p,d.x,d.y),T=C.replace(/[^a-z0-9]/g,"_");await O.setParameters({tessedit_pageseg_mode:"11"});for(let M=0;M<k.length;M++){let y=k[M];e(`Pass 3: Preprocessing tile ${M+1}/${k.length}`);let $=await v(g).extract({left:y.x0,top:y.y0,width:y.w,height:y.h}).toBuffer(),I=await F($,3);await A("tiles",`tile_${M+1}_${Date.now()}_${T}.png`,I),e(`Pass 3: Running Tesseract on tile ${M+1}`);let{data:D}=await O.recognize(I,{},{tsv:!0,blocks:!0});if(!D||!D.text)continue;let E=G(D,C,y.x0,y.y0,3);if(E.length>0){let _=L(E,d);if(_){R=_,P=`tile ${M+1} OCR (${y.containsTarget?"target tile":`offset ${y.x0},${y.y0}`})`;break}}}}if(R){let k={x:Math.round(R.x*(1280/w)),y:Math.round(R.y*(720/p))};e(`Executing mouse click on matched target (${P})`);let T=await B("click",k,{button:a,clickType:f});return e("Click completed successfully"),`${T} (${P} for "${h}" at ${Math.round(R.dist)}px distance)`}else s&&console.log(`[OCR] No match found for "${h}". Falling back to gridId.`)}catch(u){s&&console.error("[OCR Error]",u)}e(`Executing mouse click on fallback gridId: ${x}`);let b=await B("click",x,{button:a,clickType:f});return e("Fallback click completed"),b};export{gt as click};
1
+ import{a as B}from"./chunk-TYOB727A.js";import{d as H}from"./chunk-EVDO64BW.js";import{a as j}from"./chunk-Y5JU726N.js";import J from"screenshot-desktop";import v from"sharp";import N from"fs-extra";import q from"path";import"@nut-tree-fork/nut-js";async function A(t,n,s){if(!(!process.env.SHOW_DEBUG_GRID&&!process.env.DEBUG_OCR))try{let i=q.resolve(process.cwd(),"screenshots",t);await N.ensureDir(i),await N.writeFile(q.join(i,n),s)}catch{}}function Q(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(t,n,s=1/0){if(t===n)return 0;if(t.length===0)return n.length;if(n.length===0)return t.length;if(Math.abs(t.length-n.length)>s)return s+1;let i=Array.from({length:n.length+1},(r,e)=>e);for(let r=1;r<=t.length;r++){let e=[r],c=r;for(let o=1;o<=n.length;o++){let f=t[r-1]===n[o-1]?0:1,a=Math.min(e[o-1]+1,i[o]+1,i[o-1]+f);e.push(a),a<c&&(c=a)}if(i=e,c>s)return s+1}return i[n.length]}function X(t){return t<=4?0:t<=8?1:2}async function F(t,n=3){let s=await v(t).metadata();return v(t).resize(Math.round(s.width*n),Math.round(s.height*n),{kernel:"lanczos3"}).greyscale().normalise().toBuffer()}function Y(t){if(!t)return{words:[],lines:[]};let n=[],s=new Map;for(let r of t.split(`
2
+ `)){let e=r.split(" ");if(e.length<12||parseInt(e[0])!==5)continue;let o=e[2],f=e[3],a=e[4],h=parseInt(e[6]),x=parseInt(e[7]),b=parseInt(e[8]),u=parseInt(e[9]),l=parseFloat(e[10]),g=e.slice(11).join(" ").trim();if(!g||l<0)continue;let m={x0:h,y0:x,x1:h+b,y1:x+u},w={text:g,confidence:l,bbox:m};n.push(w);let p=`${o}_${f}_${a}`;s.has(p)||s.set(p,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let d=s.get(p);d.words.push(w),d.bbox.x0=Math.min(d.bbox.x0,m.x0),d.bbox.y0=Math.min(d.bbox.y0,m.y0),d.bbox.x1=Math.max(d.bbox.x1,m.x1),d.bbox.y1=Math.max(d.bbox.y1,m.y1)}let i=[];for(let r of s.values())r.words.length>0&&i.push({text:r.words.map(e=>e.text).join(" "),bbox:r.bbox,words:r.words});return{words:n,lines:i}}function tt(t){if(!(t.words&&t.words.length>0)){if(t.blocks&&t.blocks.length>0){t.words=[],t.lines=[];for(let n of t.blocks)for(let s of n.paragraphs||[])for(let i of s.lines||[]){i.bbox&&t.lines.push(i);for(let r of i.words||[])r.bbox&&t.words.push(r)}if(t.words.length>0)return}if(t.tsv){let n=Y(t.tsv);t.words=n.words,t.lines=n.lines}}}function G(t,n,s=0,i=0,r=1){tt(t);let e=o=>({x0:Math.round(o.x0/r)+s,y0:Math.round(o.y0/r)+i,x1:Math.round(o.x1/r)+s,y1:Math.round(o.y1/r)+i}),c=[];if(t.lines&&t.lines.length>0)for(let o of t.lines){let f=o.text?o.text.toLowerCase().trim():"";if(!f||!o.bbox||!(f===n||new RegExp(`\\b${Q(n)}\\b`,"i").test(f)))continue;let h=o.words||(t.words?t.words.filter(l=>l.bbox&&l.bbox.x0>=o.bbox.x0-5&&l.bbox.x1<=o.bbox.x1+5&&l.bbox.y0>=o.bbox.y0-5&&l.bbox.y1<=o.bbox.y1+5):[]),x=n.split(/\s+/),b=x.map(l=>l.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(h.length>0)for(let l=0;l<=h.length-x.length;l++){let g=h.slice(l,l+x.length),m=g.map(w=>(w.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(m===b||m.includes(b)){let w={x0:Math.min(...g.map(p=>p.bbox.x0)),y0:Math.min(...g.map(p=>p.bbox.y0)),x1:Math.max(...g.map(p=>p.bbox.x1)),y1:Math.max(...g.map(p=>p.bbox.y1))};c.push(e(w)),u=!0}}u||c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0)for(let o of t.words){let f=o.text?o.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",a=n.replace(/[^a-z0-9]/g,"");f===a&&o.bbox&&c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0){let o=X(n.length);for(let f of t.words){let a=f.text?f.text.toLowerCase().trim():"";a.length>=3&&Math.abs(a.length-n.length)<=o&&Z(a,n,o)<=o&&f.bbox&&c.push(e(f.bbox))}}return c}function L(t,n){let s=null,i=1/0;for(let r of t){let e=Math.round((r.x0+r.x1)/2),c=Math.round((r.y0+r.y1)/2),o=n.x>=r.x0&&n.x<=r.x1&&n.y>=r.y0&&n.y<=r.y1,f=Math.hypot(e-n.x,c-n.y),a=o?0:f;a<i&&(i=a,s={x:e,y:c,dist:f,containsPoint:o,bbox:r})}return s}function et(t,n,s,i){let c=Math.ceil(t/4),o=Math.ceil(n/2),f=[];for(let a=0;a<2;a++)for(let h=0;h<4;h++){let x=h*c,b=a*o,u=Math.min(c,t-x),l=Math.min(o,n-b),g=x+u/2,m=b+l/2,w=s>=x&&s<x+u&&i>=b&&i<b+l;f.push({x0:x,y0:b,w:u,h:l,cx:g,cy:m,containsTarget:w})}return f.sort((a,h)=>{if(a.containsTarget)return-1;if(h.containsTarget)return 1;let x=Math.hypot(a.cx-s,a.cy-i),b=Math.hypot(h.cx-s,h.cy-i);return x-b})}var W=null;async function nt(){return W||(W=(async()=>{let{createWorker:t}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:s}=await import("./paths-PM7MFWJK.js");return n.ensureDirSync(s),t("eng",1,{cachePath:s,logger:()=>{}})})().catch(t=>{throw W=null,t})),W}var S=null,V=null;async function ot(){let{getActiveDisplay:t}=await import("./screen_grid-7QKZEE5T.js"),n=await t();if(S&&V===n)return S;V=n,S={format:"png"};try{let s=await J.listDisplays();s&&s.length>0&&(S={format:"png",screen:(s[n]||s[0]).id})}catch{}return S}var gt=async(t,n={})=>{let s=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),i=performance.now(),r=i,e=u=>{if(!s)return;let l=performance.now(),g=(l-r).toFixed(0),m=(l-i).toFixed(0);console.log(`[Click Perf] +${g}ms (${m}ms total) -> ${u}`),r=l};e("Starting click()");let c=j(t),o=c.gridId||c.grid||c.coordinate||c.target||c.id,f=(c.type||c.clickType||"single").toLowerCase(),a=(c.button||"left").toLowerCase(),h=c.intendedClickText||c.text||"";if(!o&&!h)return'ERROR: Missing required "gridId" parameter for Click tool.';let x=o;if(h)try{e("Parsing grid code");let u=o?H(o):null;e("Getting display options");let l=await ot();e("Taking desktop screenshot");let g=await J(l);e("Getting image metadata");let m=await v(g).metadata(),w=m.width||1920,p=m.height||1080,d=u?{x:Math.round(u.x*(w/1280)),y:Math.round(u.y*(p/720))}:{x:w/2,y:p/2},C=h.toLowerCase().trim();e("Acquiring OCR worker");let O=await nt(),R=null,P="",K=u?220:500;if(u){e("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let k=Math.min(Math.round(w/3),w),T=Math.min(Math.round(p/3),p),M=Math.max(0,Math.min(w-k,d.x-Math.floor(k/2))),y=Math.max(0,Math.min(p-T,d.y-Math.floor(T/2))),$=await v(g).extract({left:M,top:y,width:k,height:T}).toBuffer(),I=2,D=await F($,I),E=C.replace(/[^a-z0-9]/g,"_");await A("cropped",`crop_${Date.now()}_${E}.png`,D),e("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await O.setParameters({tessedit_pageseg_mode:"11"});let{data:_}=await O.recognize(D,{},{tsv:!0,blocks:!0});if(e("Pass 1: OCR recognition finished, extracting matches"),_&&_.text){s&&console.log(`[Pass 1 OCR Read]: "${_.text.trim().replace(/\s+/g," ")}"`);let U=G(_,C,M,y,I);if(U.length>0){let z=L(U,d);z&&(z.containsPoint||z.dist<=K)&&(R=z,P="centered target crop OCR")}}}if(!R){e("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let k=await F(g,2),T=C.replace(/[^a-z0-9]/g,"_");await A("fullscreen",`full_${Date.now()}_${T}.png`,k),e("Pass 2: Running Tesseract on full screen"),await O.setParameters({tessedit_pageseg_mode:"3"});let{data:M}=await O.recognize(k,{},{tsv:!0,blocks:!0});if(e("Pass 2: Full-screen OCR finished"),M&&M.text){let y=G(M,C,0,0,2);if(y.length>0){let $=L(y,d);$&&(R=$,P="full-screen OCR")}}}if(!R){e("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let k=et(w,p,d.x,d.y),T=C.replace(/[^a-z0-9]/g,"_");await O.setParameters({tessedit_pageseg_mode:"11"});for(let M=0;M<k.length;M++){let y=k[M];e(`Pass 3: Preprocessing tile ${M+1}/${k.length}`);let $=await v(g).extract({left:y.x0,top:y.y0,width:y.w,height:y.h}).toBuffer(),I=await F($,3);await A("tiles",`tile_${M+1}_${Date.now()}_${T}.png`,I),e(`Pass 3: Running Tesseract on tile ${M+1}`);let{data:D}=await O.recognize(I,{},{tsv:!0,blocks:!0});if(!D||!D.text)continue;let E=G(D,C,y.x0,y.y0,3);if(E.length>0){let _=L(E,d);if(_){R=_,P=`tile ${M+1} OCR (${y.containsTarget?"target tile":`offset ${y.x0},${y.y0}`})`;break}}}}if(R){let k={x:Math.round(R.x*(1280/w)),y:Math.round(R.y*(720/p))};e(`Executing mouse click on matched target (${P})`);let T=await B("click",k,{button:a,clickType:f});return e("Click completed successfully"),`${T} (${P} for "${h}" at ${Math.round(R.dist)}px distance)`}else s&&console.log(`[OCR] No match found for "${h}". Falling back to gridId.`)}catch(u){s&&console.error("[OCR Error]",u)}e(`Executing mouse click on fallback gridId: ${x}`);let b=await B("click",x,{button:a,clickType:f});return e("Fallback click completed"),b};export{gt as click};
@@ -1 +1 @@
1
- import{a as i,b as s}from"./chunk-2CJOOYOT.js";import"./chunk-W43IBIRT.js";import{a as c}from"./chunk-Y5JU726N.js";var d=async(a,p={})=>{let e=c(a),r=e.action||e.type||e.cmd,n=e.target||e.grid||e.gridCode||e.location||e.input;if(!r)return'ERROR: Missing required "action" argument for computer_action (e.g. move, click, drag, scroll, type, key_press, key_combination).';let t=r.toLowerCase();if(t.startsWith("mouse_")||["move","click","drag","scroll"].includes(t)){let o=t.replace("mouse_","");return await i(o,n,{button:e.button,clickType:e.clickType||e.type,from:e.from,to:e.to,direction:e.direction,amount:e.amount?parseInt(e.amount,10):void 0})}if(t.startsWith("key_")||t==="type"||t==="press"){let o=t;t==="press"&&(o="key_press");let u=e.autoPressEnter===!0||e.autoPressEnter==="true"||e.enter===!0||e.enter==="true";return await s(o,n||e.text||e.keys,{...e,autoPressEnter:u})}return`ERROR: Unrecognized action "${r}". Supported actions: move, click, drag, scroll, type, key_press, key_combination.`};export{d as computer_action};
1
+ import{a as i,b as s}from"./chunk-TYOB727A.js";import"./chunk-EVDO64BW.js";import{a as c}from"./chunk-Y5JU726N.js";var d=async(a,p={})=>{let e=c(a),r=e.action||e.type||e.cmd,n=e.target||e.grid||e.gridCode||e.location||e.input;if(!r)return'ERROR: Missing required "action" argument for computer_action (e.g. move, click, drag, scroll, type, key_press, key_combination).';let t=r.toLowerCase();if(t.startsWith("mouse_")||["move","click","drag","scroll"].includes(t)){let o=t.replace("mouse_","");return await i(o,n,{button:e.button,clickType:e.clickType||e.type,from:e.from,to:e.to,direction:e.direction,amount:e.amount?parseInt(e.amount,10):void 0})}if(t.startsWith("key_")||t==="type"||t==="press"){let o=t;t==="press"&&(o="key_press");let u=e.autoPressEnter===!0||e.autoPressEnter==="true"||e.enter===!0||e.enter==="true";return await s(o,n||e.text||e.keys,{...e,autoPressEnter:u})}return`ERROR: Unrecognized action "${r}". Supported actions: move, click, drag, scroll, type, key_press, key_combination.`};export{d as computer_action};
@@ -1 +1 @@
1
- import{a as e}from"./chunk-2CJOOYOT.js";import"./chunk-W43IBIRT.js";import{a as d}from"./chunk-Y5JU726N.js";var m=async(a,i={})=>{let r=d(a),o=r.fromGridId||r.from||r.start,t=r.toGridId||r.to||r.end;return!o||!t?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await e("drag",o,{from:o,to:t})};export{m as drag};
1
+ import{a as e}from"./chunk-TYOB727A.js";import"./chunk-EVDO64BW.js";import{a as d}from"./chunk-Y5JU726N.js";var m=async(a,i={})=>{let r=d(a),o=r.fromGridId||r.from||r.start,t=r.toGridId||r.to||r.end;return!o||!t?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await e("drag",o,{from:o,to:t})};export{m as drag};
@@ -1,4 +1,4 @@
1
- import{a as i}from"./chunk-2TASXARO.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import{a as f}from"./chunk-Y5JU726N.js";var m=async(k,c={})=>{let l=f(k),n=l.method,d=l.id,a=c.chatId;if(!c.systemSettings?.advanceRollback)return"ERROR: Advance Rollback feature is currently disabled in settings under Security. Tell user to enable it.";if(!a)return"ERROR: No active chat transaction found for rollback.";if(n==="getCheckpoint"){let r=await i.getCheckpoints(a);if(r.length===0)return"No checkpoints available.";let s={write_file:"WriteFile",update_file:"PatchFile",view_file:"ReadFile",read_folder:"ReadFolder",exec_command:"Run",web_search:"WebSearch",web_scrape:"WebScrape",search_keyword:"SearchKeyword",CodeSearch:"SearchKeyword",code_search:"SearchKeyword",write_pdf:"WritePDF",write_docx:"WriteDoc",generate_image:"GenerateImage",file_map:"FileMap",todo:"Todo",goal:"Goal",Goal:"Goal",await:"Await",ask:"AskUser",ask_user:"AskUser",AskUser:"AskUser",askuser:"AskUser",invoke:"Invoke",invokesync:"InvokeSync",getprogress:"GetProgress",cancel:"Cancel",emergency_rollback:"EmergencyRollback",emergencyrollback:"EmergencyRollback"},t=e=>s[e]||s[e.toLowerCase()]||e,o=`Available checkpoints for rollback:
1
+ import{a as i}from"./chunk-VCF6JVQV.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";import{a as f}from"./chunk-Y5JU726N.js";var m=async(k,c={})=>{let l=f(k),n=l.method,d=l.id,a=c.chatId;if(!c.systemSettings?.advanceRollback)return"ERROR: Advance Rollback feature is currently disabled in settings under Security. Tell user to enable it.";if(!a)return"ERROR: No active chat transaction found for rollback.";if(n==="getCheckpoint"){let r=await i.getCheckpoints(a);if(r.length===0)return"No checkpoints available.";let s={write_file:"WriteFile",update_file:"PatchFile",view_file:"ReadFile",read_folder:"ReadFolder",exec_command:"Run",web_search:"WebSearch",web_scrape:"WebScrape",search_keyword:"SearchKeyword",CodeSearch:"SearchKeyword",code_search:"SearchKeyword",write_pdf:"WritePDF",write_docx:"WriteDoc",generate_image:"GenerateImage",file_map:"FileMap",todo:"Todo",goal:"Goal",Goal:"Goal",await:"Await",ask:"AskUser",ask_user:"AskUser",AskUser:"AskUser",askuser:"AskUser",invoke:"Invoke",invokesync:"InvokeSync",getprogress:"GetProgress",cancel:"Cancel",emergency_rollback:"EmergencyRollback",emergencyrollback:"EmergencyRollback"},t=e=>s[e]||s[e.toLowerCase()]||e,o=`Available checkpoints for rollback:
2
2
 
3
3
  `;for(let e of r)if(e.id==="initial")o+=`--- Initial State (id: initial) ---
4
4
  Tools Used: User Prompted for task
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h}from"./chunk-5K4X2VUW.js";import"./chunk-FJGY5C4M.js";import"./chunk-Y5JU726N.js";export{c as activeChildProcess,g as adjustWindowsCommand,b as cleanTerminalOutput,h as exec_command,d as isActiveCommandPty,a as isPtyAvailable,f as terminateActiveCommand,e as writeToActiveCommand};
1
+ import{a,b,c,d,e,f,g,h}from"./chunk-ZKQ5PQXN.js";import"./chunk-YVFWOJHY.js";import"./chunk-Y5JU726N.js";export{c as activeChildProcess,g as adjustWindowsCommand,b as cleanTerminalOutput,h as exec_command,d as isActiveCommandPty,a as isPtyAvailable,f as terminateActiveCommand,e as writeToActiveCommand};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"./chunk-YNU56P2H.js";import"./chunk-FDNLMLIM.js";export{b as exportCurrentChat,d as exportErrorLogs,e as handleExport,a as parseAgentText,c as parseLogEntries};
@@ -1,4 +1,4 @@
1
- import{a as R}from"./chunk-DHQHSTTS.js";import{s as $}from"./chunk-4TZKD2XR.js";import{a as N}from"./chunk-Y5JU726N.js";import F from"fs-extra";import d from"path";import{createRequire as I}from"module";var E=I(import.meta.url),P=E("web-tree-sitter"),S=!1,b=new Set(["class_declaration","function_declaration","method_definition","arrow_function","function_expression","if_statement","else_clause","for_statement","for_in_statement","for_of_statement","while_statement","do_statement","switch_statement","try_statement","catch_clause","variable_declarator","export_statement","lexical_declaration","variable_declaration","interface_declaration","type_alias_declaration","enum_declaration","import_declaration","jsx_element","jsx_self_closing_element","class_definition","function_definition","decorated_definition","import_from_statement","import_statement","preproc_include","method_declaration","constructor_declaration","assignment_expression","pair","class_specifier","struct_specifier","enum_specifier","field_declaration","element","script_element","style_element"]),O=new Set(["export_statement","lexical_declaration","variable_declaration","variable_declarator","pair","assignment_expression"]);function o(n,t=50){if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length>t?r.substring(0,t-3)+"...":r}function v(n){let t=n.type;if(t==="if_statement"){let e=n.childForFieldName("condition");return e?`if (${o(e.text,40)})`:"if"}if(t==="else_clause")return"else";if(t==="while_statement"||t==="do_statement"){let e=n.childForFieldName("condition");return`${t.split("_")[0]} (${e?o(e.text,40):""})`}if(t==="for_statement"||t==="for_in_statement"||t==="for_of_statement"){let i=n.text.split(`
1
+ import{a as R}from"./chunk-UAHJEAVX.js";import{s as $}from"./chunk-FDNLMLIM.js";import{a as N}from"./chunk-Y5JU726N.js";import F from"fs-extra";import d from"path";import{createRequire as I}from"module";var E=I(import.meta.url),P=E("web-tree-sitter"),S=!1,b=new Set(["class_declaration","function_declaration","method_definition","arrow_function","function_expression","if_statement","else_clause","for_statement","for_in_statement","for_of_statement","while_statement","do_statement","switch_statement","try_statement","catch_clause","variable_declarator","export_statement","lexical_declaration","variable_declaration","interface_declaration","type_alias_declaration","enum_declaration","import_declaration","jsx_element","jsx_self_closing_element","class_definition","function_definition","decorated_definition","import_from_statement","import_statement","preproc_include","method_declaration","constructor_declaration","assignment_expression","pair","class_specifier","struct_specifier","enum_specifier","field_declaration","element","script_element","style_element"]),O=new Set(["export_statement","lexical_declaration","variable_declaration","variable_declarator","pair","assignment_expression"]);function o(n,t=50){if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length>t?r.substring(0,t-3)+"...":r}function v(n){let t=n.type;if(t==="if_statement"){let e=n.childForFieldName("condition");return e?`if (${o(e.text,40)})`:"if"}if(t==="else_clause")return"else";if(t==="while_statement"||t==="do_statement"){let e=n.childForFieldName("condition");return`${t.split("_")[0]} (${e?o(e.text,40):""})`}if(t==="for_statement"||t==="for_in_statement"||t==="for_of_statement"){let i=n.text.split(`
2
2
  `)[0].match(/for\s*(?:await\s*)?\((.*)\)/);return i?`for (${o(i[1],40)})`:"for"}if(t==="switch_statement"){let e=n.childForFieldName("value");return`switch (${e?o(e.text,40):""})`}if(t==="try_statement")return"try";if(t==="catch_clause")return"catch";if(t==="element"||t==="script_element"||t==="style_element"||t==="jsx_element"||t==="jsx_self_closing_element"){let e=n.childForFieldName("opening_element")||n.childForFieldName("start_tag")||n.children.find(c=>c.type==="start_tag")||n,i=e.childForFieldName("name")||e.childForFieldName("tag_name")||e.children.find(c=>c.type==="tag_name");return i?`<${o(i.text,30)}>`:null}if(["import_declaration","import_from_statement","import_statement","preproc_include"].includes(t))return o(n.text.split(`
3
3
  `)[0],60);if(t==="pair"){let e=n.childForFieldName("key");return e?o(e.text.replace(/["']/g,""),40):null}if(t==="assignment_expression"){let e=n.childForFieldName("left");return e?`${o(e.text,30)} = ...`:null}if(t==="variable_declarator"){let e=n.childForFieldName("name")||n.children.find(i=>["identifier","object_pattern","array_pattern"].includes(i.type));return e?o(e.text,40):null}let r=n.childForFieldName("name")||n.childForFieldName("declarator")||n.children.find(e=>["identifier","type_identifier","field_identifier","property_identifier","shorthand_property_identifier"].includes(e.type));if(r){if(r.type.includes("declarator")){let e=r.descendantsOfType("identifier")[0]||r.descendantsOfType("field_identifier")[0];if(e)return o(e.text,40)}return o(r.text,40)}if(["arrow_function","function_expression","function_declaration"].includes(t)){let e=n.parent;for(;e&&e.type!=="program";){let i=v(e);if(i)return i;if(!O.has(e.type))break;e=e.parent}}return null}function L(n){let t=[];function r(e){for(let i of e.children)b.has(i.type)?t.push(i):r(i)}return r(n),t}function j(n){return n.replace(/_([a-z])/g,t=>t[1].toUpperCase())}function T(n,t=0,r=!0,e="",i=null,c=12){let s=n.type,l=v(n),u=b.has(s)||t===0,m=L(n),_=u&&t>0&&(O.has(s)&&m.length>0||l!==null&&l===i&&m.length>0),a="",p=e,g=t,h=i;if(u&&!_){let f=n.startPosition.row+1,x=n.endPosition.row+1,y=j(s),w=l?`${y} [${l}]`:y;t===0?(a+=`\u{1F4C1} ROOT (Lines: ${f}-${x})
4
4
  `,p=e):(a+=`${e}${r?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 "}${w} (Lines: ${f}-${x})
@@ -1 +1 @@
1
- import{a as $}from"./chunk-TGINXVDR.js";import{k as S,l as C,m as B}from"./chunk-Q7SNDU5P.js";import{h as I}from"./chunk-K26OGD74.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import{a as T}from"./chunk-Y5JU726N.js";import b from"fs-extra";import E from"path";var F=(a,y={})=>{try{if(a.length<8||a[0]!==137||a[1]!==80||a[2]!==78||a[3]!==71)return a;let s=[],c=[];for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e&1?e=3988292384^e>>>1:e=e>>>1;c[r]=e}let l=r=>{let e=4294967295;for(let n=0;n<r.length;n++)e=c[(e^r[n])&255]^e>>>8;return(e^4294967295)>>>0},f=(r,e)=>{let n=Buffer.from(r,"ascii"),i=Buffer.from(e,"utf-8"),u=n.length+1+i.length,o=Buffer.alloc(8+u+4);o.writeUInt32BE(u,0),o.write("tEXt",4,"ascii"),n.copy(o,8),o[8+n.length]=0,i.copy(o,8+n.length+1);let w=l(o.subarray(4,8+u));return o.writeUInt32BE(w,8+u),o};for(let[r,e]of Object.entries(y))e!=null&&s.push(f(r,String(e)));if(s.length===0)return a;if(a.subarray(12,16).toString("ascii")==="IHDR"){let e=a.subarray(0,33),n=a.subarray(33);return Buffer.concat([e,...s,n])}return a}catch{return a}},N=async(a,y={})=>{let s=T(a),c=s.prompt||s.text,l=s.path||s.outputPath||s.output||"generated_image.png",f=s.ratio;if(!c)return'ERROR: Missing "prompt" argument for generate_image.';let r=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],e=c.toLowerCase();if(r.some(i=>e.includes(i)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let i=await I();if(!await S(i))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await C()).nextResetMin||60}m).`;let o=i.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},w=o.keyType==="Custom"&&o.apiKey?o.apiKey:FALLBACK_IMAGE_KEY,x={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[o.quality]||"zimage",g=1024,m=1024;if(f){let t=f.replace(/\s+/g,"");t==="16:9"?(g=1024,m=576):t==="9:16"?(g=576,m=1024):t==="4:3"?(g=1024,m=768):t==="3:4"?(g=768,m=1024):t==="1:1"&&(g=1024,m=1024)}let M=Math.floor(Math.random()*1e7),k=`https://gen.pollinations.ai/image/${encodeURIComponent(c)}?model=${x}&width=${g}&height=${m}&seed=${M}&enhance=true&reasoning=high&quality=high&negative=${encodeURIComponent("deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated hands and fingers, blurry, low quality, low resolution, extra fingers, censored, watermarks, signatures")}`,d=await fetch(k,{method:"GET",headers:{Authorization:`Bearer ${w}`}});if(!d.ok){let t=d.status,h="";try{h=await d.text()}catch{}return t===402||h.includes("Insufficient balance")||h.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${t}]: ${h||"Unknown API Error"}`}if((d.headers.get("content-type")||"").includes("application/json")){let t=await d.json();return t.status===402||t.error&&t.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${t.error?.message||JSON.stringify(t)}`}let O=await d.arrayBuffer(),p=Buffer.from(O),P={Title:c,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:c,Model:`Fluxflow:${x}`,Ratio:f||"1:1",Seed:String(M)};p=F(p,P);let R=E.resolve(process.cwd(),l);await b.ensureDir(E.dirname(R)),await $.recordFileChange(R),await b.writeFile(R,p),await B(i);let v=E.extname(l).toLowerCase(),L={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[v]||"image/png";return y.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:p.toString("base64"),mimeType:L}}}:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}].`}catch(i){return`ERROR: Failed during image generation: ${i instanceof Error?i.message:String(i)}`}};export{N as generate_image};
1
+ import{a as $}from"./chunk-KFM2OZWJ.js";import{k as S,l as C,m as B}from"./chunk-7JAWJV4U.js";import{l as I}from"./chunk-YS35YSMW.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";import{a as T}from"./chunk-Y5JU726N.js";import b from"fs-extra";import E from"path";var F=(a,y={})=>{try{if(a.length<8||a[0]!==137||a[1]!==80||a[2]!==78||a[3]!==71)return a;let s=[],c=[];for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e&1?e=3988292384^e>>>1:e=e>>>1;c[r]=e}let l=r=>{let e=4294967295;for(let n=0;n<r.length;n++)e=c[(e^r[n])&255]^e>>>8;return(e^4294967295)>>>0},f=(r,e)=>{let n=Buffer.from(r,"ascii"),i=Buffer.from(e,"utf-8"),u=n.length+1+i.length,o=Buffer.alloc(8+u+4);o.writeUInt32BE(u,0),o.write("tEXt",4,"ascii"),n.copy(o,8),o[8+n.length]=0,i.copy(o,8+n.length+1);let w=l(o.subarray(4,8+u));return o.writeUInt32BE(w,8+u),o};for(let[r,e]of Object.entries(y))e!=null&&s.push(f(r,String(e)));if(s.length===0)return a;if(a.subarray(12,16).toString("ascii")==="IHDR"){let e=a.subarray(0,33),n=a.subarray(33);return Buffer.concat([e,...s,n])}return a}catch{return a}},N=async(a,y={})=>{let s=T(a),c=s.prompt||s.text,l=s.path||s.outputPath||s.output||"generated_image.png",f=s.ratio;if(!c)return'ERROR: Missing "prompt" argument for generate_image.';let r=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],e=c.toLowerCase();if(r.some(i=>e.includes(i)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let i=await I();if(!await S(i))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await C()).nextResetMin||60}m).`;let o=i.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},w=o.keyType==="Custom"&&o.apiKey?o.apiKey:FALLBACK_IMAGE_KEY,x={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[o.quality]||"zimage",g=1024,m=1024;if(f){let t=f.replace(/\s+/g,"");t==="16:9"?(g=1024,m=576):t==="9:16"?(g=576,m=1024):t==="4:3"?(g=1024,m=768):t==="3:4"?(g=768,m=1024):t==="1:1"&&(g=1024,m=1024)}let M=Math.floor(Math.random()*1e7),k=`https://gen.pollinations.ai/image/${encodeURIComponent(c)}?model=${x}&width=${g}&height=${m}&seed=${M}&enhance=true&reasoning=high&quality=high&negative=${encodeURIComponent("deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated hands and fingers, blurry, low quality, low resolution, extra fingers, censored, watermarks, signatures")}`,d=await fetch(k,{method:"GET",headers:{Authorization:`Bearer ${w}`}});if(!d.ok){let t=d.status,h="";try{h=await d.text()}catch{}return t===402||h.includes("Insufficient balance")||h.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${t}]: ${h||"Unknown API Error"}`}if((d.headers.get("content-type")||"").includes("application/json")){let t=await d.json();return t.status===402||t.error&&t.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${t.error?.message||JSON.stringify(t)}`}let O=await d.arrayBuffer(),p=Buffer.from(O),P={Title:c,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:c,Model:`Fluxflow:${x}`,Ratio:f||"1:1",Seed:String(M)};p=F(p,P);let R=E.resolve(process.cwd(),l);await b.ensureDir(E.dirname(R)),await $.recordFileChange(R),await b.writeFile(R,p),await B(i);let v=E.extname(l).toLowerCase(),L={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[v]||"image/png";return y.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:p.toString("base64"),mimeType:L}}}:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}].`}catch(i){return`ERROR: Failed during image generation: ${i instanceof Error?i.message:String(i)}`}};export{N as generate_image};
@@ -1,6 +1,6 @@
1
- import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-WB4PWDHV.js"),l=b(w),c=l.task||l.instruction||l.prompt,C=l.model||null,E=l.title||null,m=l.tools||null;if(!c)return'ERROR: Missing "task" argument for invoke.';let f=null;if(m)try{let t=m.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.substring(1,t.length-1)),f=t.split(",").map(n=>n.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let i=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,h=null,S=null,$=new Promise((t,n)=>{h=t,S=n}),e={id:i,title:E||c.substring(0,30),task:c,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:t=>{t&&e.pendingSteerMessages.push(t)},completionPromise:$,_resolveCompletion:h,_rejectCompletion:S,progress:[]},r={chunks:[],totalWords:0};k.push(e),s.onSubagentUpdate&&s.onSubagentUpdate();let a=[],M={...s,taskId:i,onAskMain:async t=>{let n=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,o=null,p=new Promise(g=>{o=g}),u={id:n,question:t,answered:!1,answer:null,askedAt:Date.now(),_resolve:o};return e.questions.push(u),e.status="waiting",s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" is WAITING FOR YOUR INPUT: "${t}"
1
+ import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-6JVYA4PV.js"),l=b(w),c=l.task||l.instruction||l.prompt,C=l.model||null,E=l.title||null,m=l.tools||null;if(!c)return'ERROR: Missing "task" argument for invoke.';let f=null;if(m)try{let t=m.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.substring(1,t.length-1)),f=t.split(",").map(n=>n.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let i=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,h=null,S=null,$=new Promise((t,n)=>{h=t,S=n}),e={id:i,title:E||c.substring(0,30),task:c,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:t=>{t&&e.pendingSteerMessages.push(t)},completionPromise:$,_resolveCompletion:h,_rejectCompletion:S,progress:[]},r={chunks:[],totalWords:0};k.push(e),s.onSubagentUpdate&&s.onSubagentUpdate();let a=[],M={...s,taskId:i,onAskMain:async t=>{let n=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,o=null,p=new Promise(g=>{o=g}),u={id:n,question:t,answered:!1,answer:null,askedAt:Date.now(),_resolve:o};return e.questions.push(u),e.status="waiting",s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" is WAITING FOR YOUR INPUT: "${t}"
2
2
  Respond using tool: [tool:functions.Answer(id="${i}", answer="...")]
3
3
  [/SYSTEM]`),await p},onVisualFeedback:t=>{e.lastChunkTime=Date.now();let n=t.replace(/\x1b\[[0-9;]*m/g,""),o=n.match(/[✔✘✗✖🔍📖→➕↻•]\s*([A-Za-z0-9\s-]+)/);o?e.currentTool=o[1].trim():e.currentTool=n,s.onSubagentUpdate&&s.onSubagentUpdate()},onTokenChunk:(t,n)=>{let o=Date.now();if(e.lastChunkTime=o,e.currentTool="Thinking",typeof n=="number"&&n>0){r.totalWords+=n,r.chunks.push({time:o,words:n});let p=o-400;if(r.chunks=r.chunks.filter(u=>u.time>=p),r.chunks.length>0){let u=r.chunks.reduce((_,A)=>_+A.words,0),T=r.chunks[0].time,g=Math.max(.4,(o-T)/1e3);e.wps=Math.round(u/g*10)/10}}s.onSubagentUpdate&&s.onSubagentUpdate()}};return U(c,M,C,f,50,t=>{if(e.status==="cancelled")return;if(t.startsWith("[Subagent Turn")&&a.length>0&&(e.progress.push([...a]),a=[]),t.includes("[Executing Tool]")){let o=t.match(/\[Executing Tool\]\s*([a-zA-Z0-9_]+)/);o&&(!e.currentTool||e.currentTool==="Thinking")&&(e.currentTool=o[1])}let n=t;if(n.startsWith("[Tool Result]")){let o=n.split(`
4
4
  `);o.length>5&&(n=o.slice(0,4).join(`
5
5
  `)+`
6
- ... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-WB4PWDHV.js");if(t.message==="Subagent task was cancelled."||e.status==="cancelled"||n()){e.status="cancelled",a.push("[SUBAGENT CANCELLED] Task was cancelled."),e.progress.push([...a]),s.onSubagentUpdate&&s.onSubagentUpdate(),e._resolveCompletion&&e._resolveCompletion(null);return}a.push(`[SUBAGENT FAILURE] Error: ${t.message}`),e.progress.push([...a]),e.status="failed",e.error=t.message,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) FAILED with error: ${t.message}. [/SYSTEM]`),e._rejectCompletion&&e._rejectCompletion(t)}),`SUCCESS: Background subagent started. Task ID: ${i}`};export{I as invoke};
6
+ ... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-6JVYA4PV.js");if(t.message==="Subagent task was cancelled."||e.status==="cancelled"||n()){e.status="cancelled",a.push("[SUBAGENT CANCELLED] Task was cancelled."),e.progress.push([...a]),s.onSubagentUpdate&&s.onSubagentUpdate(),e._resolveCompletion&&e._resolveCompletion(null);return}a.push(`[SUBAGENT FAILURE] Error: ${t.message}`),e.progress.push([...a]),e.status="failed",e.error=t.message,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) FAILED with error: ${t.message}. [/SYSTEM]`),e._rejectCompletion&&e._rejectCompletion(t)}),`SUCCESS: Background subagent started. Task ID: ${i}`};export{I as invoke};
@@ -1,3 +1,3 @@
1
- import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-WB4PWDHV.js"),s=o(b),a=s.task||s.instruction||s.prompt,m=s.model||null,l=s.tools||null;if(!a)return'ERROR: Missing "task" argument for invokeSync.';let r=null;if(l)try{let e=l.trim();e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),r=e.split(",").map(i=>i.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let n=s.title||a.substring(0,30);try{t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n}`);let e=await u(a,t,m,r,50);return t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} [COMPLETED]
2
- `),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-WB4PWDHV.js"),c=e.message==="Subagent task was cancelled by user."||i();if(t.onVisualFeedback){let d=c?"[CANCELLED]":"[FAILED]";t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} ${d}
1
+ import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-6JVYA4PV.js"),s=o(b),a=s.task||s.instruction||s.prompt,m=s.model||null,l=s.tools||null;if(!a)return'ERROR: Missing "task" argument for invokeSync.';let r=null;if(l)try{let e=l.trim();e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),r=e.split(",").map(i=>i.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let n=s.title||a.substring(0,30);try{t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n}`);let e=await u(a,t,m,r,50);return t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} [COMPLETED]
2
+ `),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-6JVYA4PV.js"),c=e.message==="Subagent task was cancelled by user."||i();if(t.onVisualFeedback){let d=c?"[CANCELLED]":"[FAILED]";t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} ${d}
3
3
  `)}return`ERROR: Subagent execution failed: ${e.message}`}};export{k as invokeSync};
@@ -1 +1 @@
1
- import{b as e}from"./chunk-2CJOOYOT.js";import"./chunk-W43IBIRT.js";import{a as i}from"./chunk-Y5JU726N.js";var k=async(s,c={})=>{let t=i(s),a=t.key||t.keys||t.input||t.shortcut;if(!a)return'ERROR: Missing required "key" parameter for KeyPress tool.';let r=String(a).trim().toLowerCase();if(r==="clearinput"||r==="clear_input"||r==="clear")return await e("clear_input");if(r==="back"||r==="browser_back"||r==="browserBack")return await e("browser_back");if(r.includes(";")||r.includes("+")){let o=r.split(/[;+]/).map(n=>n.trim()).filter(Boolean);return await e("key_combination",o)}return await e("key_press",r)};export{k as key_press};
1
+ import{b as e}from"./chunk-TYOB727A.js";import"./chunk-EVDO64BW.js";import{a as i}from"./chunk-Y5JU726N.js";var k=async(s,c={})=>{let t=i(s),a=t.key||t.keys||t.input||t.shortcut;if(!a)return'ERROR: Missing required "key" parameter for KeyPress tool.';let r=String(a).trim().toLowerCase();if(r==="clearinput"||r==="clear_input"||r==="clear")return await e("clear_input");if(r==="back"||r==="browser_back"||r==="browserBack")return await e("browser_back");if(r.includes(";")||r.includes("+")){let o=r.split(/[;+]/).map(n=>n.trim()).filter(Boolean);return await e("key_combination",o)}return await e("key_press",r)};export{k as key_press};
@@ -1 +1 @@
1
- import{b as n}from"./chunk-2CJOOYOT.js";import"./chunk-W43IBIRT.js";import{a as r}from"./chunk-Y5JU726N.js";var p=async(o,u={})=>{let t=r(o),e=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return e==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await n("type",String(e),{autoPressEnter:s})};export{p as keyboard_typing};
1
+ import{b as n}from"./chunk-TYOB727A.js";import"./chunk-EVDO64BW.js";import{a as r}from"./chunk-Y5JU726N.js";var p=async(o,u={})=>{let t=r(o),e=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return e==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await n("type",String(e),{autoPressEnter:s})};export{p as keyboard_typing};
@@ -1 +1 @@
1
- import{c as E,d as m}from"./chunk-SIINYZWE.js";import{j as a,k as S}from"./chunk-4TZKD2XR.js";var O=4*(1024*2),D=async($,M={})=>{let s=t=>{let e=new RegExp(`${t}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),n=$.match(e);if(n)return n[2].trim();let o=new RegExp(`${t}\\s*[:=]\\s*([^,\\s)]+)`,"s"),r=$.match(o);return r?r[1].trim():null},R=s("action"),u=s("method"),c=s("content"),y=s("content-new"),w=s("content-old"),p=s("id"),d=s("chat-id")||M.chatId||M.sessionId||"default-session";if(R==="temp"){if(!c)return"ERROR: Missing 'content' for temp memory.";let t=E(S,{});t[d]||(t[d]=[]),t[d].push(c),m(S,t);let e=t[d].reduce((n,o)=>n+o.length,0);return`SUCCESS: Temporary context saved for session [${d}]. (Size: ${e} chars)`}if(R==="user"){let t=E(a,[]).map(e=>(e.score===void 0&&(e.score=.5),e));if(u==="add"){if(!c)return"ERROR: Missing 'content' for memory addition.";let e=new Date,n=`${e.getDate()}/${e.getMonth()+1}/${e.getFullYear()}`,o=c.includes("[Saved on:")?c:`${c.trim()} [Saved on: ${n}]`,r=O,i=t.reduce((g,I)=>g+(I.memory?.length||0),0);for(;t.length>0&&i+o.length>r;){let g=t.shift();i-=g.memory?.length||0}let l=s("score"),f=l?parseFloat(l):.5,h={id:`mem-${Date.now().toString(36)}`,memory:o,score:Math.min(2,isNaN(f)?.5:f)};return t.push(h),m(a,t),`SUCCESS: Memory added with ID [${h.id}] and score [${h.score}]. (Vault Size: ${i+o.length} chars)`}if(u==="update"){let e=p||w,n=y||c;if(!e||!n)return"ERROR: Missing 'id' or content for update.";let o=t.findIndex(f=>f.id===e);if(o===-1)return`ERROR: Memory ID [${e}] not found.`;let r=new Date,i=`${r.getDate()}/${r.getMonth()+1}/${r.getFullYear()}`,l=n.includes("[Saved on:")?n:`${n.trim()} [Saved on: ${i}]`;return t[o].memory=l,m(a,t),`SUCCESS: Memory [${e}] updated.`}if(u==="delete"){let e=p||c;if(!e)return"ERROR: Missing 'id' for deletion.";let n=t.length,o=t.filter(r=>r.id!==e);return o.length===n?`ERROR: Memory ID [${e}] not found.`:(m(a,o),`SUCCESS: Memory [${e}] deleted.`)}return`ERROR: Invalid method [${u}] for user memory. Use 'add', 'update', or 'delete'.`}return`ERROR: Unknown action [${R}] for memory tool.`};export{D as memory};
1
+ import{c as E,d as m}from"./chunk-SIINYZWE.js";import{j as a,k as S}from"./chunk-FDNLMLIM.js";var O=4*(1024*2),D=async($,M={})=>{let s=t=>{let e=new RegExp(`${t}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),n=$.match(e);if(n)return n[2].trim();let o=new RegExp(`${t}\\s*[:=]\\s*([^,\\s)]+)`,"s"),r=$.match(o);return r?r[1].trim():null},R=s("action"),u=s("method"),c=s("content"),y=s("content-new"),w=s("content-old"),p=s("id"),d=s("chat-id")||M.chatId||M.sessionId||"default-session";if(R==="temp"){if(!c)return"ERROR: Missing 'content' for temp memory.";let t=E(S,{});t[d]||(t[d]=[]),t[d].push(c),m(S,t);let e=t[d].reduce((n,o)=>n+o.length,0);return`SUCCESS: Temporary context saved for session [${d}]. (Size: ${e} chars)`}if(R==="user"){let t=E(a,[]).map(e=>(e.score===void 0&&(e.score=.5),e));if(u==="add"){if(!c)return"ERROR: Missing 'content' for memory addition.";let e=new Date,n=`${e.getDate()}/${e.getMonth()+1}/${e.getFullYear()}`,o=c.includes("[Saved on:")?c:`${c.trim()} [Saved on: ${n}]`,r=O,i=t.reduce((g,I)=>g+(I.memory?.length||0),0);for(;t.length>0&&i+o.length>r;){let g=t.shift();i-=g.memory?.length||0}let l=s("score"),f=l?parseFloat(l):.5,h={id:`mem-${Date.now().toString(36)}`,memory:o,score:Math.min(2,isNaN(f)?.5:f)};return t.push(h),m(a,t),`SUCCESS: Memory added with ID [${h.id}] and score [${h.score}]. (Vault Size: ${i+o.length} chars)`}if(u==="update"){let e=p||w,n=y||c;if(!e||!n)return"ERROR: Missing 'id' or content for update.";let o=t.findIndex(f=>f.id===e);if(o===-1)return`ERROR: Memory ID [${e}] not found.`;let r=new Date,i=`${r.getDate()}/${r.getMonth()+1}/${r.getFullYear()}`,l=n.includes("[Saved on:")?n:`${n.trim()} [Saved on: ${i}]`;return t[o].memory=l,m(a,t),`SUCCESS: Memory [${e}] updated.`}if(u==="delete"){let e=p||c;if(!e)return"ERROR: Missing 'id' for deletion.";let n=t.length,o=t.filter(r=>r.id!==e);return o.length===n?`ERROR: Memory ID [${e}] not found.`:(m(a,o),`SUCCESS: Memory [${e}] deleted.`)}return`ERROR: Invalid method [${u}] for user memory. Use 'add', 'update', or 'delete'.`}return`ERROR: Unknown action [${R}] for memory tool.`};export{D as memory};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u}from"./chunk-FDNLMLIM.js";export{p as ACTIVE_TX_FILE,m as BACKUPS_DIR,r as CONTEXT_FILE,t as CU_CACHE_DIR,c as DATA_DIR,a as FLUXFLOW_DIR,g as HISTORY_DIR,f as HISTORY_FILE,o as LEDGER_ADVANCE_FILE,n as LEDGER_FILE,d as LOGS_DIR,j as MEMORIES_FILE,s as PARSER_DIR,q as PATHS_FILE,e as SECRET_DIR,b as SETTINGS_FILE,l as TEMP_MEM_CHAT_FILE,k as TEMP_MEM_FILE,u as THINKING_CONFIG_FILE,i as USAGE_FILE,h as USAGE_FILE_OLD};
@@ -1 +1 @@
1
- import{c as a,d as n}from"./chunk-SIINYZWE.js";import{k as s,l as o}from"./chunk-4TZKD2XR.js";var g=async(u,E={})=>{let m=r=>{let t=new RegExp(`${r}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),i=u.match(t);return i?i[2].trim():null},e=m("id"),c=m("summary");if(!e||!c)return"ERROR: Missing 'id' or 'summary' for saveSummary tool.";try{let r=a(s,{}),t=a(o,{});return t[e]=c,delete r[e],n(o,t),n(s,r),`SUCCESS: Saved summary and purged raw memories for chat [${e}].`}catch(r){let t=r instanceof Error?r.message:String(r);return`ERROR: Failed to save summary for chat [${e}]: ${t}`}};export{g as saveSummary};
1
+ import{c as a,d as n}from"./chunk-SIINYZWE.js";import{k as s,l as o}from"./chunk-FDNLMLIM.js";var g=async(u,E={})=>{let m=r=>{let t=new RegExp(`${r}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),i=u.match(t);return i?i[2].trim():null},e=m("id"),c=m("summary");if(!e||!c)return"ERROR: Missing 'id' or 'summary' for saveSummary tool.";try{let r=a(s,{}),t=a(o,{});return t[e]=c,delete r[e],n(o,t),n(s,r),`SUCCESS: Saved summary and purged raw memories for chat [${e}].`}catch(r){let t=r instanceof Error?r.message:String(r);return`ERROR: Failed to save summary for chat [${e}]: ${t}`}};export{g as saveSummary};
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"./chunk-W43IBIRT.js";export{a as GRID_CONFIG,c as captureGriddedScreenshot,b as getActiveDisplay,e as gridToNativeCoordinates,d as parseGridCodeTo720p};
1
+ import{a,b,c,d,e}from"./chunk-EVDO64BW.js";export{a as GRID_CONFIG,c as captureGriddedScreenshot,b as getActiveDisplay,e as gridToNativeCoordinates,d as parseGridCodeTo720p};
@@ -1 +1 @@
1
- import{a as r}from"./chunk-2CJOOYOT.js";import"./chunk-W43IBIRT.js";import{a as t}from"./chunk-Y5JU726N.js";var m=async(n,i={})=>{let o=t(n),e=(o.direction||"down").toLowerCase(),c=o.amount?parseInt(o.amount,10):6,s=o.gridId||o.grid||o.coordinate||o.target||o.id||null;return await r("scroll",s,{direction:e,amount:c})};export{m as scroll};
1
+ import{a as r}from"./chunk-TYOB727A.js";import"./chunk-EVDO64BW.js";import{a as t}from"./chunk-Y5JU726N.js";var m=async(n,i={})=>{let o=t(n),e=(o.direction||"down").toLowerCase(),c=o.amount?parseInt(o.amount,10):6,s=o.gridId||o.grid||o.coordinate||o.target||o.id||null;return await r("scroll",s,{direction:e,amount:c})};export{m as scroll};
@@ -1,4 +1,4 @@
1
- import{a as Z}from"./chunk-4TZKD2XR.js";import{a as q}from"./chunk-Y5JU726N.js";import M from"fs/promises";import R from"path";import G from"fast-glob";import{Minimatch as H}from"minimatch";import J from"fs";async function S(a,r,e=a,f=1){if(f>12)return[];let i=[],s;try{s=await M.readdir(a,{withFileTypes:!0})}catch{return[]}for(let t of s){let n=R.join(a,t.name),o=R.relative(e,n),u=o.split(R.sep).map(g=>g.toLowerCase()),z=t.name.toLowerCase();if(!r.some(g=>{let L=g.toLowerCase();return L.startsWith(".")&&z.endsWith(L)?!0:u.some(F=>F===L||F.startsWith(".pnpm"))}))if(t.isDirectory()){let g=await S(n,r,e,f+1);i=i.concat(g)}else t.isFile()&&i.push({fullPath:n,relativePath:o})}return i}function Q(a,r,e=1/0){if(a===r)return 0;if(a.length===0)return r.length;if(r.length===0)return a.length;if(Math.abs(a.length-r.length)>e)return e+1;let f=Array.from({length:r.length+1},(i,s)=>s);for(let i=1;i<=a.length;i++){let s=[i],t=i;for(let n=1;n<=r.length;n++){let o=a[i-1]===r[n-1]?0:1,u=Math.min(s[n-1]+1,f[n]+1,f[n-1]+o);s.push(u),u<t&&(t=u)}if(f=s,t>e)return e+1}return f[r.length]}function tt(a,r){if(!a||!r)return!1;let e=a.toLowerCase(),f=r.toLowerCase();if(e.includes(f))return!0;let i=e.split(/[^a-z0-9]+/).filter(t=>t.length>0),s=f.split(/[^a-z0-9]+/).filter(t=>t.length>1||f.length===1&&t.length>0);return s.length===0?!1:s.every(t=>{let n=t.length<=2?0:t.length<=5?1:2;for(let o of i)if(o.includes(t)||t.length>=3&&o.length>=3&&Math.abs(o.length-t.length)<=n&&Q(t,o,n)<=n)return!0;return!1})}async function et(a){let r=R.join(Z,"skills","fluxflow"),e=R.join(r,"references");if(!J.existsSync(e))return"No documentation found in #docs.";let f=async o=>{let u=[];try{let z=await M.readdir(o,{withFileTypes:!0});for(let P of z){let g=R.join(o,P.name);P.isDirectory()?u=u.concat(await f(g)):P.isFile()&&u.push(g)}}catch{}return u},i=await f(e);if(i.length===0)return"No documentation found in #docs.";let s=null;try{s=new RegExp(a,"i")}catch{}let t=a.toLowerCase(),n=[];for(let o of i)try{let u=await M.readFile(o,"utf8");if(s&&s.test(u)||u.toLowerCase().includes(t)){let P=R.relative(r,o).replace(/\\/g,"/");n.push(P)}}catch{}return n.length===0?`No matches found for "${a}" in #docs.`:`DOCs Search "${a}":
1
+ import{a as Z}from"./chunk-FDNLMLIM.js";import{a as q}from"./chunk-Y5JU726N.js";import M from"fs/promises";import R from"path";import G from"fast-glob";import{Minimatch as H}from"minimatch";import J from"fs";async function S(a,r,e=a,f=1){if(f>12)return[];let i=[],s;try{s=await M.readdir(a,{withFileTypes:!0})}catch{return[]}for(let t of s){let n=R.join(a,t.name),o=R.relative(e,n),u=o.split(R.sep).map(g=>g.toLowerCase()),z=t.name.toLowerCase();if(!r.some(g=>{let L=g.toLowerCase();return L.startsWith(".")&&z.endsWith(L)?!0:u.some(F=>F===L||F.startsWith(".pnpm"))}))if(t.isDirectory()){let g=await S(n,r,e,f+1);i=i.concat(g)}else t.isFile()&&i.push({fullPath:n,relativePath:o})}return i}function Q(a,r,e=1/0){if(a===r)return 0;if(a.length===0)return r.length;if(r.length===0)return a.length;if(Math.abs(a.length-r.length)>e)return e+1;let f=Array.from({length:r.length+1},(i,s)=>s);for(let i=1;i<=a.length;i++){let s=[i],t=i;for(let n=1;n<=r.length;n++){let o=a[i-1]===r[n-1]?0:1,u=Math.min(s[n-1]+1,f[n]+1,f[n-1]+o);s.push(u),u<t&&(t=u)}if(f=s,t>e)return e+1}return f[r.length]}function tt(a,r){if(!a||!r)return!1;let e=a.toLowerCase(),f=r.toLowerCase();if(e.includes(f))return!0;let i=e.split(/[^a-z0-9]+/).filter(t=>t.length>0),s=f.split(/[^a-z0-9]+/).filter(t=>t.length>1||f.length===1&&t.length>0);return s.length===0?!1:s.every(t=>{let n=t.length<=2?0:t.length<=5?1:2;for(let o of i)if(o.includes(t)||t.length>=3&&o.length>=3&&Math.abs(o.length-t.length)<=n&&Q(t,o,n)<=n)return!0;return!1})}async function et(a){let r=R.join(Z,"skills","fluxflow"),e=R.join(r,"references");if(!J.existsSync(e))return"No documentation found in #docs.";let f=async o=>{let u=[];try{let z=await M.readdir(o,{withFileTypes:!0});for(let P of z){let g=R.join(o,P.name);P.isDirectory()?u=u.concat(await f(g)):P.isFile()&&u.push(g)}}catch{}return u},i=await f(e);if(i.length===0)return"No documentation found in #docs.";let s=null;try{s=new RegExp(a,"i")}catch{}let t=a.toLowerCase(),n=[];for(let o of i)try{let u=await M.readFile(o,"utf8");if(s&&s.test(u)||u.toLowerCase().includes(t)){let P=R.relative(r,o).replace(/\\/g,"/");n.push(P)}}catch{}return n.length===0?`No matches found for "${a}" in #docs.`:`DOCs Search "${a}":
2
2
  ${n.map(o=>`- ${o}`).join(`
3
3
  `)}`}var ct=async a=>{let{keyword:r,path:e,fuzzy:f,subString:i,regex:s}=q(a);if(r==null)return'ERROR: Missing "keyword" argument.';let t=String(r);if(e&&(e.trim().toLowerCase()==="#docs"||e.trim().toLowerCase()==="#doc"||e.trim().toLowerCase()==="#documentation"||e.trim().toLowerCase().includes("#skill/global/fluxflow")))return et(t);let n=l=>l===!0||l==="true"||l===1||l==="1"||l==="yes",o=s===!1||s==="false"||s===0||s==="0"||s==="no",u=s===!0||s==="true"||s===1||s==="1"||s==="yes",z=n(f)||n(i),P=null,g=null;if(o)z||(g=new RegExp(`(?<![\\w])${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i"));else{try{P=new RegExp(t,"i")}catch(l){if(u)return`ERROR: Invalid regex pattern "${t}": ${l.message}`}g=new RegExp(`(?<![\\w])${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i")}let L=[".git","node_modules",".gemini","dist","build",".next","out",".cache","bin","obj","vendor","venv",".idea",".gradle",".terraform","target","coverage",".vscode",".svn",".hg",".fslckout",".github",".gitlab",".circleci",".gitea",".gitee",".lerna",".changeset",".nx",".npm",".yarn",".pnpm-store",".pnpm",".expo",".nuxt",".svelte-kit",".docusaurus",".turbo",".vercel","bower_components",".netlify",".vuepress",".quasar",".output",".angular","jspm_packages",".parcel-cache",".rollup.cache",".rspack",".vitepress","__pycache__",".pytest_cache",".mypy_cache",".tox",".poetry","env","vhdl",".ipynb_checkpoints",".jupyter",".conda",".pdm-build",".bundle",".yardoc",".metadata","App_Data","ClientBin",".cargo",".rustc_info",".go","Godeps","_vendor",".rake_tasks","CMakefiles",".wakatime",".dart_tool",".fvm",".cocoapods","Pods",".pub-cache",".symlinks","DerivedData",".xcworkspace",".serverless",".aws",".gcloud",".azure",".kube",".vagrant",".docker","postgres-data","redis-data","mongo-data",".Spotlight-V100",".Trashes","$RECYCLE.BIN","System Volume Information",".DocumentRevisions-V100",".fseventsd","AppData","Application Data","Local","LocalLow","Roaming","$WinREAgent","$WINDOWS.~BT","$WINDOWS.~WS","scw","System32","SysWOW64",".AppleDouble",".AppleDB",".AppleDesktop","_CodeSignature",".cmio",".LSOverride",".localized",".TemporaryItems",".Trash",".Trash-0",".Trash-1000",".gvfs",".local",".config",".dbus",".fontconfig",".snap",".var",".lost+found","lost+found",".thumb",".thumbnails","EFI","boot","grub","logs","log",".nyc_output",".sonar",".ruff_cache",".VSCodeCounter",".exe",".dll",".so",".dylib",".png",".jpg",".jpeg",".gif",".ico",".svg",".webp",".mp3",".mp4",".avi",".zip",".tgz",".tar",".gz",".7z",".rar",".pdf",".docx",".xlsx",".pptx",".woff",".woff2",".ttf",".eot",".skills","skills"],F=150;try{let l=[],x=process.cwd(),m=null;if(e){let c=e.split(";").map(h=>h.trim()).filter(Boolean),y=c.some(h=>h.startsWith("!"));if(c.some(h=>G.isDynamicPattern(h)||/[*?{}[\]()|+]/.test(h))){m="glob";let h=e.replace(/\\/g,"/"),b=c.map($=>$.replace(/\\/g,"/")),p=L.map($=>$.startsWith(".")?`**/*${$}`:`**/${$}/**`);if(y&&!c.some($=>!$.startsWith("!"))){let $=await S(x,L,x),C=d=>d.endsWith("/")?d+"**":d,D=b.filter(d=>d.startsWith("!")).map(d=>C(d.slice(1))),I=b.filter(d=>!d.startsWith("!")).map(C);l=$.filter(d=>{let w=d.relativePath.replace(/\\/g,"/"),B=I.length===0||I.some(_=>{try{return new H(_).match(w)}catch{return!1}}),T=D.some(_=>{try{return new H(_).match(w)}catch{return!1}});return B&&!T})}else{let $=b.some(D=>/[\(\)\|]|\.\*/.test(D)),C=[];if(!$)try{C=await G(b,{cwd:x,ignore:p,dot:!0,onlyFiles:!0,absolute:!1})}catch{C=[]}if(C.length===0&&($||G.isDynamicPattern(h))){let D=h.match(/^([^\*\?\(\)\|\[\]\s]+)\//),I=D&&!/[\*\?\(\)\|\[\]]/.test(D[1])?R.resolve(x,D[1]):x,d=await S(I,L,x);try{let w=h.replace(/^\.\//,"");w=w.replace(/\.\*\/(\\.|[^\/])/g,".*$1"),!w.startsWith("^")&&!w.startsWith(".*")&&(w=`.*${w}`);let B=new RegExp(w.endsWith("$")?w:`${w}$`,"i");l=d.filter(T=>{let _=T.relativePath.replace(/\\/g,"/");return B.test(_)})}catch{l=[]}}else l=C.map(D=>({fullPath:R.resolve(x,D),relativePath:D}))}}else{let h=e.replace(/[\/\\]+$/,""),b=R.resolve(x,h);try{let p=await M.stat(b);if(p.isDirectory())m="dir",l=await S(b,L,x);else if(p.isFile())m="file",l.push({fullPath:b,relativePath:R.relative(x,b)});else return`ERROR: Path is neither a file nor a directory: ${e}`}catch{return`ERROR: Path not found: ${e}`}}}else l=await S(x,L);let U=l.map(async c=>{try{let y=await M.readFile(c.fullPath,"utf-8");if(y.includes("\0"))return[];let v=y.split(/\r?\n/),h=[];for(let p=0;p<v.length;p++)(z?v[p].toLowerCase().includes(t.toLowerCase())||tt(v[p],t):o?g&&g.test(v[p]):P&&P.test(v[p])||g&&g.test(v[p]))&&h.push({line:p+1,content:v[p].trim()});return h.length===0?null:{path:c.relativePath.replace(/\\/g,"/"),matches:h}}catch{return[]}}),X=await Promise.all(U),W=[],E=0;for(let c of X){if(!c||!c.matches)continue;if(E>=F)break;let y=F-E,v=c.matches.slice(0,y);W.push({path:c.path,matches:v}),E+=v.length}typeof global.gc=="function"&&global.gc();let k=z?"(fuzzy mode)":u?"(regex mode)":o?"(keyword mode)":"(standard mode)";if(W.length===0){let c=m==="file"?` in '${e}'`:m==="dir"||m==="glob"?` in '${e}'`:". Try to specify files",y=m==="dir"?"[DIR]":m==="glob"?"[GLOB]":"";return`${y}${y?" ":""}Found 0 matches of '${t}'${c}${k?` ${k}`:""}`}let j=k?` ${k}`:"",V=`${W.length} file${W.length===1?"":"s"}`,N=`${E} match${E===1?"":"es"}`,A;m==="file"?A=`Found ${N} of '${t}' in '${e}'${j}:`:m==="dir"||m==="glob"?A=`Found ${N} of '${t}' in '${e}' across ${V}${j}:`:A=`Found ${N} of '${t}' across ${V}${j}:`;let K=m==="dir"?"[DIR]":m==="glob"?"[GLOB]":"",O=`${K}${K?" ":""}${A}
4
4
 
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-JSVFQZL2.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";export{a as getAPIKey,b as getProviderAPIKey,f as getSearchSecrets,d as getSecret,k as removeAPIKey,j as removeSecret,g as saveAPIKey,c as saveProviderAPIKey,i as saveSearchId,h as saveSearchKey,e as saveSecret};
1
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-K676BNH2.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";export{a as getAPIKey,b as getProviderAPIKey,f as getSearchSecrets,d as getSecret,k as removeAPIKey,j as removeSecret,g as saveAPIKey,c as saveProviderAPIKey,i as saveSearchId,h as saveSearchKey,e as saveSecret};
@@ -0,0 +1 @@
1
+ import{l as a,m as b}from"./chunk-YS35YSMW.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";export{a as loadSettings,b as saveSettings};
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-TGINXVDR.js";import"./chunk-SIINYZWE.js";import{c as k}from"./chunk-4TZKD2XR.js";import{a as y}from"./chunk-Y5JU726N.js";import l from"fs";import $ from"path";var G=async(R,x={})=>{let{method:f,tasks:m,markDone:d}=y(R),A=x.chatId||"default";if(!f)return'ERROR: Missing "method" argument for Goal tool (create/append/get).';let u=$.join(k,"plan",A),o=$.join(u,"todo.md"),S=t=>{if(!t||Array.isArray(t))return t;let s=String(t).trim();if(s.startsWith("[")&&s.endsWith("]")){let i=s.match(/"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'/g);return i?i.map(n=>n.slice(1,-1).replace(/\\(.)/g,"$1")):s.slice(1,-1).split(",").map(n=>n.trim()).filter(Boolean)}return t},C=t=>{let s=S(t);return s?(Array.isArray(s)?s:String(s).split(`
1
+ import{a as h}from"./chunk-KFM2OZWJ.js";import"./chunk-SIINYZWE.js";import{c as k}from"./chunk-FDNLMLIM.js";import{a as y}from"./chunk-Y5JU726N.js";import l from"fs";import $ from"path";var G=async(R,x={})=>{let{method:f,tasks:m,markDone:d}=y(R),A=x.chatId||"default";if(!f)return'ERROR: Missing "method" argument for Goal tool (create/append/get).';let u=$.join(k,"plan",A),o=$.join(u,"todo.md"),S=t=>{if(!t||Array.isArray(t))return t;let s=String(t).trim();if(s.startsWith("[")&&s.endsWith("]")){let i=s.match(/"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'/g);return i?i.map(n=>n.slice(1,-1).replace(/\\(.)/g,"$1")):s.slice(1,-1).split(",").map(n=>n.trim()).filter(Boolean)}return t},C=t=>{let s=S(t);return s?(Array.isArray(s)?s:String(s).split(`
2
2
  `)).map(n=>{let r=String(n).trim();return r?r.startsWith("- [ ]")||r.startsWith("- [x]")||r.startsWith("- [X]")?r:`- [ ] ${r}`:null}).filter(Boolean).join(`
3
3
  `)+`
4
4
  `:""},W=(t,s)=>{if(!s)return{content:t,markedCount:0};let i=S(s),n=(Array.isArray(i)?i:[i]).map(p=>String(p).replace(/^- \[[xX ]\]\s*/i,"").trim()).filter(Boolean),r=t.split(`
@@ -1,4 +1,4 @@
1
- import{e as h,f as m,g as R}from"./chunk-6GTIZENY.js";import{a as F}from"./chunk-TGINXVDR.js";import{h as g}from"./chunk-K26OGD74.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import{a as $}from"./chunk-Y5JU726N.js";import c from"fs";import M from"path";var v=async(w,S={})=>{let n=$(w),t=n.path;if(!t)return'ERROR: Missing "path" argument for PatchFile.';let{patchPairs:o,allowMultiple:C,error:p}=h(n);if(p)return`ERROR: ${p}`;if(o.length===0)return"ERROR: No valid replacement pairs found. Use searchContent1, newContent1, etc.";let E=n.allowMultiple!==void 0?n.allowMultiple===!0||String(n.allowMultiple).toLowerCase()==="true":C,i=M.resolve(process.cwd(),t);try{if(!c.existsSync(i))return`ERROR: File [${t}] does not exist. Use WriteFile instead.`;let e=S.forcedContent||c.readFileSync(i,"utf8");e.startsWith("\uFEFF")&&(e=e.slice(1));let s=e.replace(/\r\n/g,`
1
+ import{e as h,f as m,g as R}from"./chunk-2PMRX4CK.js";import{a as F}from"./chunk-KFM2OZWJ.js";import{l as g}from"./chunk-YS35YSMW.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";import{a as $}from"./chunk-Y5JU726N.js";import c from"fs";import M from"path";var v=async(w,S={})=>{let n=$(w),t=n.path;if(!t)return'ERROR: Missing "path" argument for PatchFile.';let{patchPairs:o,allowMultiple:C,error:p}=h(n);if(p)return`ERROR: ${p}`;if(o.length===0)return"ERROR: No valid replacement pairs found. Use searchContent1, newContent1, etc.";let E=n.allowMultiple!==void 0?n.allowMultiple===!0||String(n.allowMultiple).toLowerCase()==="true":C,i=M.resolve(process.cwd(),t);try{if(!c.existsSync(i))return`ERROR: File [${t}] does not exist. Use WriteFile instead.`;let e=S.forcedContent||c.readFileSync(i,"utf8");e.startsWith("\uFEFF")&&(e=e.slice(1));let s=e.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `),{content:u,results:l}=m(s,o,{allowMultiple:E}),a=l.filter(r=>!r.success),f=l.filter(r=>r.success);if(f.length===0)return`ERROR: Patch Failed to apply to [${t}].
4
4
  ${a.map(r=>` \u2022 ${r.error}`).join(`
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-E5LLK7O5.js";import"./chunk-7JAWJV4U.js";import"./chunk-YS35YSMW.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";export{b as openUsageDashboard,a as startUsageServer};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-ZYJYKSIA.js";import"./chunk-FDNLMLIM.js";import"./chunk-Y5JU726N.js";export{a as view_file};
@@ -1,4 +1,4 @@
1
- import{a as y}from"./chunk-A73NNVCZ.js";import"./chunk-4TZKD2XR.js";import R from"puppeteer";import v from"turndown";import{gfm as M}from"turndown-plugin-gfm";var L=async t=>{let i=t;if(typeof t=="object"&&t!==null)i=t.url||t.targetUrl||t.href||"";else if(typeof t=="string"){let r=t.match(/url\s*=\s*["'](.*)["']/);i=r?r[1]:t}let c=typeof i=="string"?i.trim():"";if(!c)return"ERROR: No target URL provided.";let s=3,f=null;for(let r=1;r<=s;r++){let a=null;try{let m=y();a=await R.launch({headless:!0,executablePath:m.executablePath||void 0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--disable-dev-shm-usage"]});let o=await a.newPage();await o.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.7778.178 Safari/537.36"),await o.setViewport({width:1366,height:768});let d=r===1?Math.random()*1e3+500:Math.random()*2e3+1e3;await new Promise(l=>setTimeout(l,d)),await o.goto(c,{waitUntil:"networkidle2",timeout:18e4}),await new Promise(l=>setTimeout(l,5e3));let w=await o.evaluate(()=>{document.querySelectorAll("script, style, noscript, svg, canvas, iframe, ad, .ads, link, meta, img").forEach(e=>e.remove());let N=document.createNodeIterator(document.body,NodeFilter.SHOW_COMMENT),b;for(;b=N.nextNode();)b.remove();for(document.querySelectorAll("*").forEach(e=>{let n=e.attributes;for(let u=n.length-1;u>=0;u--){let p=n[u].name;p!=="href"&&p!=="src"&&e.removeAttribute(p)}});document.querySelector("div, span");)document.querySelectorAll("div, span").forEach(e=>{e.parentNode&&e.replaceWith(...e.childNodes)});document.querySelectorAll("br").forEach(e=>{e.replaceWith(document.createTextNode(`
1
+ import{a as y}from"./chunk-A73NNVCZ.js";import"./chunk-FDNLMLIM.js";import R from"puppeteer";import v from"turndown";import{gfm as M}from"turndown-plugin-gfm";var L=async t=>{let i=t;if(typeof t=="object"&&t!==null)i=t.url||t.targetUrl||t.href||"";else if(typeof t=="string"){let r=t.match(/url\s*=\s*["'](.*)["']/);i=r?r[1]:t}let c=typeof i=="string"?i.trim():"";if(!c)return"ERROR: No target URL provided.";let s=3,f=null;for(let r=1;r<=s;r++){let a=null;try{let m=y();a=await R.launch({headless:!0,executablePath:m.executablePath||void 0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--disable-dev-shm-usage"]});let o=await a.newPage();await o.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.7778.178 Safari/537.36"),await o.setViewport({width:1366,height:768});let d=r===1?Math.random()*1e3+500:Math.random()*2e3+1e3;await new Promise(l=>setTimeout(l,d)),await o.goto(c,{waitUntil:"networkidle2",timeout:18e4}),await new Promise(l=>setTimeout(l,5e3));let w=await o.evaluate(()=>{document.querySelectorAll("script, style, noscript, svg, canvas, iframe, ad, .ads, link, meta, img").forEach(e=>e.remove());let N=document.createNodeIterator(document.body,NodeFilter.SHOW_COMMENT),b;for(;b=N.nextNode();)b.remove();for(document.querySelectorAll("*").forEach(e=>{let n=e.attributes;for(let u=n.length-1;u>=0;u--){let p=n[u].name;p!=="href"&&p!=="src"&&e.removeAttribute(p)}});document.querySelector("div, span");)document.querySelectorAll("div, span").forEach(e=>{e.parentNode&&e.replaceWith(...e.childNodes)});document.querySelectorAll("br").forEach(e=>{e.replaceWith(document.createTextNode(`
2
2
 
3
3
  `))});let E=()=>{let e=!1;document.querySelectorAll("*").forEach(n=>{n.childNodes.length===0&&!n.innerText.trim()&&(n.remove(),e=!0)}),e&&E()};return E(),document.body.innerHTML});if(!w)throw new Error("EMPTY_RENDER_RESULT");let S=w.replace(/<br\s*\/?>/gi,`
4
4
 
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-A73NNVCZ.js";import{d as M}from"./chunk-4TZKD2XR.js";import{a as k}from"./chunk-Y5JU726N.js";import v from"puppeteer";import _ from"fs";import q from"path";var V=async F=>{let{query:f,limit:j=5,aiMode:L=!1}=k(F);if(!f)return'ERROR: Missing "query" argument for web_search.';let S=3,y=null;if(L){let u=`Query: ${f}
1
+ import{a as P}from"./chunk-A73NNVCZ.js";import{d as M}from"./chunk-FDNLMLIM.js";import{a as k}from"./chunk-Y5JU726N.js";import v from"puppeteer";import _ from"fs";import q from"path";var V=async F=>{let{query:f,limit:j=5,aiMode:L=!1}=k(F);if(!f)return'ERROR: Missing "query" argument for web_search.';let S=3,y=null;if(L){let u=`Query: ${f}
2
2
 
3
3
  RESPONSE RULES:
4
4
  - ANSWER CONCISELY WITH REQUIRED DETAILS UNDER 300 WORDS.
@@ -1,4 +1,4 @@
1
- import{a as l}from"./chunk-TGINXVDR.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import{a as s}from"./chunk-Y5JU726N.js";import c from"fs-extra";import n from"path";import u from"html-to-docx";var w=async m=>{let{path:t,content:r}=s(m);if(!t)return'ERROR: Missing "path" argument for write_docx.';if(!r)return'ERROR: Missing "content" (HTML) for write_docx.';let o=n.resolve(process.cwd(),t);try{await c.ensureDir(n.dirname(o)),await l.recordFileChange(o);let e=n.basename(t),a=r.includes("<html")?r:`
1
+ import{a as l}from"./chunk-KFM2OZWJ.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";import{a as s}from"./chunk-Y5JU726N.js";import c from"fs-extra";import n from"path";import u from"html-to-docx";var w=async m=>{let{path:t,content:r}=s(m);if(!t)return'ERROR: Missing "path" argument for write_docx.';if(!r)return'ERROR: Missing "content" (HTML) for write_docx.';let o=n.resolve(process.cwd(),t);try{await c.ensureDir(n.dirname(o)),await l.recordFileChange(o);let e=n.basename(t),a=r.includes("<html")?r:`
2
2
  <!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <head>
@@ -1,4 +1,4 @@
1
- import{a as y}from"./chunk-TGINXVDR.js";import{h as $}from"./chunk-K26OGD74.js";import"./chunk-SIINYZWE.js";import"./chunk-4TZKD2XR.js";import{a as R}from"./chunk-Y5JU726N.js";import r from"fs";import C from"path";var B=async(w,E={})=>{let{path:s,content:o}=R(w);if(!s)return'ERROR: Missing "path" argument for write_file.';if(o===void 0)return'ERROR: Missing "content" argument for write_file.';o=o.replace(/^```[\w]*\n?/,"").replace(/```\s*$/,"").replace(/\r\n/g,`
1
+ import{a as y}from"./chunk-KFM2OZWJ.js";import{l as $}from"./chunk-YS35YSMW.js";import"./chunk-SIINYZWE.js";import"./chunk-FDNLMLIM.js";import{a as R}from"./chunk-Y5JU726N.js";import r from"fs";import C from"path";var B=async(w,E={})=>{let{path:s,content:o}=R(w);if(!s)return'ERROR: Missing "path" argument for write_file.';if(o===void 0)return'ERROR: Missing "content" argument for write_file.';o=o.replace(/^```[\w]*\n?/,"").replace(/```\s*$/,"").replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `);let t=C.resolve(process.cwd(),s),m=C.dirname(t);try{await y.recordFileChange(t);let n="";if(r.existsSync(t))try{n=`Old File contents:
4
4
  ${r.readFileSync(t,"utf8").split(/\r?\n/).map((g,j)=>`${j+1} | ${g}`).join(`