fluxflow-cli 4.41.0 → 4.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ import{a as O}from"./chunk-6EYQQ7GQ.js";import{c as u,d as p}from"./chunk-P5HBJA23.js";import{f as m,g as h,l as C,m as M,s as f}from"./chunk-26BQ45XP.js";import d from"fs-extra";import j from"path";import{nanoid as L}from"nanoid";var S=Promise.resolve(),T=t=>{let r=S.then(async()=>{try{return await t()}catch(e){throw console.error("Lock Operation Failed:",e),e}});return S=r.catch(()=>{}),r},B=(t,r="")=>{let e=n=>(n||"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();return t?.name&&!t.name.startsWith("Session")?e(t.name):t?.prompt?e(t.prompt):e(t?.name)||r},I=async()=>{await d.ensureDir(h);let t={};if(await d.pathExists(m))try{t=u(m,{})}catch{t={}}for(let r in t){let e=j.join(h,`${r}.json`);Object.defineProperty(t[r],"messages",{get:()=>{if(d.existsSync(e))try{return u(e,[])}catch{return[]}return[]},set:n=>{try{p(e,n)}catch{}},enumerable:!1,configurable:!0})}return t},G=async(t,r,e)=>T(async()=>{await d.ensureDir(h);let n=await I(),s=n[t],c=(e||[]).filter(a=>!a.isUpdateNotification&&(!a.isMeta||a.text&&a.text.includes("Request Cancelled"))),o=a=>{if(!a)return;let A=typeof a=="string"?a:a.text||a.content||"";if(!A||typeof A!="string")return;let g=A.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!g)return;let N=g.split(/\s+/),E;return N.length>7?E=N.slice(0,7).join(" ")+"...":g.length>45?E=g.substring(0,45).trimEnd()+"...":E=g,E},i,x=c.filter(a=>a.role==="user"),l=x[0],w=x[x.length-1],y=o(w),D=o(l);s&&s.prompt?i=y:i=D||y;let H=r||(s?s.name:`Session ${t.slice(-6)}`),b=j.join(h,`${t}.json`);p(b,c),n[t]={name:H,prompt:i||void 0,updatedAt:Date.now()};let k={};for(let a in n)k[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};p(m,k)}),J=async(t,r)=>T(async()=>{let e=await I();e[t]?(e[t].name=r,e[t].updatedAt=Date.now()):e[t]={name:r,updatedAt:Date.now()};let n={};for(let s in e)n[s]={name:e[s].name,prompt:e[s].prompt||void 0,updatedAt:e[s].updatedAt};p(m,n)}),F=async t=>T(async()=>{let r=await I();delete r[t];let e={};for(let o in r)e[o]={name:r[o].name,prompt:r[o].prompt||void 0,updatedAt:r[o].updatedAt};if(p(m,e),await d.pathExists(f))try{let o=u(f,[]);if(Array.isArray(o)){let i=o.filter(x=>Object.keys(x)[0]!==String(t));p(f,i)}}catch{}let n=u(C,{});n[t]&&(delete n[t],p(C,n));let s=u(M,{});s[t]&&(delete s[t],p(M,s)),await O.deleteChatBackups(t);let c=j.join(h,`${t}.json`);if(await d.pathExists(c))try{await d.remove(c)}catch{}return r}),Q=()=>`flow-${L(6)}`,W=async t=>{if(!t||t==="Never")return;let r=parseInt(t);if(isNaN(r))return;let e=await I(),n=Date.now(),s=r*24*60*60*1e3,c=0;for(let o in e){let i=e[o];i.updatedAt&&n-i.updatedAt>s&&(await F(o),c++)}return c},Y=(t,r=4)=>{if(t.length<=1)return t;let e=t[0],n=t.slice(1),s=r*2,c=n.slice(s);return[e,...c]};var q=async(t,r,e)=>T(async()=>{let n=u(f,[]);Array.isArray(n)||(n=[]);let s=r||0,c=e||0,o={total:s,context:c},i=n.findIndex(l=>Object.keys(l)[0]===String(t));s===0&&c===0?i!==-1&&n.splice(i,1):i!==-1?n[i]={[String(t)]:o}:n.push({[String(t)]:o});let x=n.filter(l=>{if(!l||typeof l!="object")return!1;let w=Object.keys(l)[0];if(!w)return!1;let y=l[w];return y&&((y.total||0)>0||(y.context||0)>0)});p(f,x)}),K=async t=>{try{if(!await d.pathExists(f))return{total:0,context:0};let r=u(f,[]);if(!Array.isArray(r))return{total:0,context:0};let e=r.find(n=>Object.keys(n)[0]===String(t));return e?{total:0,context:0,...e[String(t)]}:{total:0,context:0}}catch{return{total:0,context:0}}};export{B as a,I as b,G as c,J as d,F as e,Q as f,W as g,Y as h,q as i,K as j};
@@ -1,42 +1,42 @@
1
1
  import{c as U}from"./chunk-26BQ45XP.js";import G from"os";import{structuredPatch as V}from"diff";var R=e=>typeof e!="string"?e:e.length>12?(e+"").replace("",""):e,W=(e,o)=>{if(!e)return"";let d=/\x1B\[[0-?]*[ -/]*[@-~]/g,p=e.split(`
2
- `),c=[];if(o<=5)return e;let i=t=>t<32||t>=127&&t<160||t>=768&&t<=879||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071?0:t>=4352&&t<=4447||t>=9001&&t<=9002||t>=11904&&t<=12350||t>=12352&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65135||t>=65280&&t<=65376||t>=65504&&t<=65510||t>=127744&&t<=128591||t>=128640&&t<=128767||t>=131072&&t<=262141?2:1,w=t=>{let r=t.replace(d,""),s=0;for(let l=0;l<r.length;l++){let u=r.codePointAt(l);u>65535&&l++,s+=i(u)}return s},C=(t,r)=>{let s=0,l=t.length,u=!1;for(let g=0;g<t.length;g++){if(t[g]==="\x1B"&&t[g+1]==="["&&(u=!0),u){(t[g]==="m"||t[g]>="@"&&t[g]<="~"&&t[g]!=="[")&&(u=!1);continue}let $=t.codePointAt(g);$>65535&&g++;let E=i($);if(s+E>r){l=$>65535?g-1:g;break}if(s+=E,s>=r){l=g+1;break}}return{head:t.substring(0,l),tail:t.substring(l)}};return p.forEach(t=>{if(w(t)<=o){c.push(t);return}let s=t.split(/(\s+)/),l="",u=0,g=t.match(/^(\s*)/),$=g?g[1]:"";s.forEach(E=>{if(E.length===0)return;let h=E;for(;h.length>0;){let F=w(h);if(u+F<=o){l+=h,u+=F;break}l.trim().length>0&&(c.push(l.trimEnd()),l=$.substring(0,Math.min($.length,8)),u=w(l));let n=Math.max(1,o-u);if(w(h)>n){let{head:a,tail:f}=C(h,n);c.push((l+a).trimEnd()),l=$.substring(0,Math.min($.length,8)),u=w(l),h=f}else l+=h,u+=w(h),h=""}}),(l.trimEnd().length>0||l===$)&&c.push(l.trimEnd())}),R(c.join(`
3
- `))},oe=e=>{if(!e)return 0;let o=0,d=e.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g);d&&(o+=d.length*.55);let p=e.replace(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g," "),c=p.match(/[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g);c&&(o+=c.length);let i=p.split(/[\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g).filter(Boolean);return o+=i.length,Math.max(.1,o)},le=e=>e?e.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]|\s+|[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+|[^\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}\-\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]+/g)||[e]:[],ce=e=>{if(!e&&e!==0)return"0.0k";let o=typeof e=="string"?parseFloat(e):e;return o>=1e6?`${(o/1e6).toFixed(1)}m`:o>=1e3?`${(o/1e3).toFixed(1)}k`:o.toString()},ae=(e,o=40)=>{let d=U.replaceAll("\\\\","\\");if(e=e.replace(G.homedir(),"~").replace(d,"FluxFlow").replaceAll("\\","/"),!e||e.length<=o)return R(e);let p=Math.floor((o-3)/2);return R(e.substring(0,p)+"..."+e.substring(e.length-p).replaceAll("\\","/"))},fe=e=>{let o=[],d=new Set,p=e.allowMultiple===!0||String(e.allowMultiple).toLowerCase()==="true";Object.keys(e).forEach(t=>{let r=t.match(/^(searchContent|search_content|replaceContent|replace_content|newContent|new_content|content_to_replace|content_to_add|searchBlock|search_block|newBlock|new_block)_?(\d+)?$/i);if(r){let s=r[2]?parseInt(r[2],10):1;d.add(s)}});let c=Array.from(d).sort((t,r)=>t-r),i=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],w=["newContent","new_content","content_to_add","newBlock","new_block"],C=(t,r,s)=>{let l,u;for(let g of r){let $=t===1?[`${g}1`,g,`${g}_1`]:[`${g}${t}`,`${g}_${t}`];for(let E of $)if(e[E]!==void 0){l=e[E];break}if(l!==void 0)break}for(let g of s){let $=t===1?[`${g}1`,g,`${g}_1`]:[`${g}${t}`,`${g}_${t}`];for(let E of $)if(e[E]!==void 0){u=e[E];break}if(u!==void 0)break}return{r:l,n:u}};for(let t of c){let{r,n:s}=C(t,i,w);if(r!==void 0&&s!==void 0)o.push({replace:r,new:s});else if(r!==void 0||s!==void 0)return{error:`Mismatched replacement pair for index ${t}. Both replacement and new content must be provided.`,allowMultiple:p}}return{patchPairs:o,allowMultiple:p}},Z=e=>{if(!e)return null;let o="",d=0,p=e.length;for(;d<p;){let c=e[d];if(c==="\\"){for(;d<p&&e[d]==="\\";)d++;o+="\\\\*"}else if(c===`
2
+ `),c=[];if(o<=5)return e;let i=t=>t<32||t>=127&&t<160||t>=768&&t<=879||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071?0:t>=4352&&t<=4447||t>=9001&&t<=9002||t>=11904&&t<=12350||t>=12352&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65135||t>=65280&&t<=65376||t>=65504&&t<=65510||t>=127744&&t<=128591||t>=128640&&t<=128767||t>=131072&&t<=262141?2:1,w=t=>{let r=t.replace(d,""),s=0;for(let l=0;l<r.length;l++){let u=r.codePointAt(l);u>65535&&l++,s+=i(u)}return s},I=(t,r)=>{let s=0,l=t.length,u=!1;for(let g=0;g<t.length;g++){if(t[g]==="\x1B"&&t[g+1]==="["&&(u=!0),u){(t[g]==="m"||t[g]>="@"&&t[g]<="~"&&t[g]!=="[")&&(u=!1);continue}let $=t.codePointAt(g);$>65535&&g++;let S=i($);if(s+S>r){l=$>65535?g-1:g;break}if(s+=S,s>=r){l=g+1;break}}return{head:t.substring(0,l),tail:t.substring(l)}};return p.forEach(t=>{if(w(t)<=o){c.push(t);return}let s=t.split(/(\s+)/),l="",u=0,g=t.match(/^(\s*)/),$=g?g[1]:"";s.forEach(S=>{if(S.length===0)return;let h=S;for(;h.length>0;){let F=w(h);if(u+F<=o){l+=h,u+=F;break}l.trim().length>0&&(c.push(l.trimEnd()),l=$.substring(0,Math.min($.length,8)),u=w(l));let n=Math.max(1,o-u);if(w(h)>n){let{head:a,tail:f}=I(h,n);c.push((l+a).trimEnd()),l=$.substring(0,Math.min($.length,8)),u=w(l),h=f}else l+=h,u+=w(h),h=""}}),(l.trimEnd().length>0||l===$)&&c.push(l.trimEnd())}),R(c.join(`
3
+ `))},oe=e=>{if(!e)return 0;let o=0,d=e.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g);d&&(o+=d.length*.55);let p=e.replace(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g," "),c=p.match(/[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g);c&&(o+=c.length);let i=p.split(/[\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g).filter(Boolean);return o+=i.length,Math.max(.1,o)},le=e=>e?e.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]|\s+|[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+|[^\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}\-\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]+/g)||[e]:[],ce=e=>{if(!e&&e!==0)return"0.0k";let o=typeof e=="string"?parseFloat(e):e;return o>=1e6?`${(o/1e6).toFixed(1)}m`:o>=1e3?`${(o/1e3).toFixed(1)}k`:o.toString()},ae=(e,o=40)=>{let d=U.replaceAll("\\\\","\\");if(e=e.replace(G.homedir(),"~").replace(d,"FluxFlow").replaceAll("\\","/"),!e||e.length<=o)return R(e);let p=Math.floor((o-3)/2);return R(e.substring(0,p)+"..."+e.substring(e.length-p).replaceAll("\\","/"))},fe=e=>{let o=[],d=new Set,p=e.allowMultiple===!0||String(e.allowMultiple).toLowerCase()==="true";Object.keys(e).forEach(t=>{let r=t.match(/^(searchContent|search_content|replaceContent|replace_content|newContent|new_content|content_to_replace|content_to_add|searchBlock|search_block|newBlock|new_block)_?(\d+)?$/i);if(r){let s=r[2]?parseInt(r[2],10):1;d.add(s)}});let c=Array.from(d).sort((t,r)=>t-r),i=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],w=["newContent","new_content","content_to_add","newBlock","new_block"],I=(t,r,s)=>{let l,u;for(let g of r){let $=t===1?[`${g}1`,g,`${g}_1`]:[`${g}${t}`,`${g}_${t}`];for(let S of $)if(e[S]!==void 0){l=e[S];break}if(l!==void 0)break}for(let g of s){let $=t===1?[`${g}1`,g,`${g}_1`]:[`${g}${t}`,`${g}_${t}`];for(let S of $)if(e[S]!==void 0){u=e[S];break}if(u!==void 0)break}return{r:l,n:u}};for(let t of c){let{r,n:s}=I(t,i,w);if(r!==void 0&&s!==void 0)o.push({replace:r,new:s});else if(r!==void 0||s!==void 0)return{error:`Mismatched replacement pair for index ${t}. Both replacement and new content must be provided.`,allowMultiple:p}}return{patchPairs:o,allowMultiple:p}},Z=e=>{if(!e)return null;let o="",d=0,p=e.length;for(;d<p;){let c=e[d];if(c==="\\"){for(;d<p&&e[d]==="\\";)d++;o+="\\\\*"}else if(c===`
4
4
  `)o+="(?:\\r?\\n|\\\\*n|\\\\*r|\\s*)",d++;else if(c==="\r")o+="(?:\\r|\\\\*r)?",d++;else if(c===" ")o+="(?:\\t|\\\\*t|\\s*)",d++;else if(c==='"'||c==="'"||c==="`")o.endsWith("\\\\*")||(o+="\\\\*"),o+=c,d++;else if(/[.*+?^${}()|[\]]/.test(c))o+="\\"+c,d++;else if(/\s/.test(c)){for(;d<p&&/\s/.test(e[d])&&e[d]!==`
5
5
  `&&e[d]!=="\r"&&e[d]!==" ";)d++;o+="\\s*"}else o+=c,d++}if(!o)return null;try{return new RegExp(o,"g")}catch{return null}},ue=(e,o,d={})=>{let p=typeof d=="boolean"?d:!!(d&&d.allowMultiple),c=e.replace(/\r\n/g,`
6
6
  `).replace(/\r/g,`
7
7
  `),i=n=>n.replace(/^```[\w]*\n?/,"").replace(/```\s*$/,"").replace(/\r\n/g,`
8
8
  `).replace(/\r/g,`
9
- `),w=n=>n.match(/^\s*/)[0],C=n=>{let a=n.split(`
10
- `).filter(L=>L.trim()!=="");if(a.length===0)return"";let f=w(a[0]);for(let L of a){let x=w(L);x.length<f.length&&(f=x)}return f},t=(n,a,f="")=>{if(!n||a===void 0)return n;let x=/^\t/m.test(a)?" ":" ",I=b=>b.split(`
11
- `).find(y=>y.trim()!=="")??"",S=I(a).match(/^\s*/)[0].length,m=I(n).match(/^\s*/)[0].length,k=S-m,_=(f.match(/^\s*/)||[""])[0].length;return n.split(`
9
+ `),w=n=>n.match(/^\s*/)[0],I=n=>{let a=n.split(`
10
+ `).filter(E=>E.trim()!=="");if(a.length===0)return"";let f=w(a[0]);for(let E of a){let x=w(E);x.length<f.length&&(f=x)}return f},t=(n,a,f="")=>{if(!n||a===void 0)return n;let x=/^\t/m.test(a)?" ":" ",C=b=>b.split(`
11
+ `).find(y=>y.trim()!=="")??"",L=C(a).match(/^\s*/)[0].length,m=C(n).match(/^\s*/)[0].length,k=L-m,_=(f.match(/^\s*/)||[""])[0].length;return n.split(`
12
12
  `).map((b,y)=>{if(b.trim()===""&&y!==0)return"";let A=b.match(/^\s*/)[0].length,T=Math.max(0,A+k);return y===0&&(T=Math.max(0,T-_)),x.repeat(T)+b.trimStart()}).join(`
13
- `)},r=[];for(let n=0;n<o.length;n++){let a=o[n],f=(a.replace||"").trim(),L=i(a.new||"");if(f.startsWith("^LINE:")&&f.endsWith("$")){let _=f.slice(6,-1).trim().split(".."),M=parseInt(_[0]),b=_[1]!==void 0?parseInt(_[1]):M;if(!isNaN(M)&&!isNaN(b)){let y=c.split(`
13
+ `)},r=[];for(let n=0;n<o.length;n++){let a=o[n],f=(a.replace||"").trim(),E=i(a.new||"");if(f.startsWith("^LINE:")&&f.endsWith("$")){let _=f.slice(6,-1).trim().split(".."),M=parseInt(_[0]),b=_[1]!==void 0?parseInt(_[1]):M;if(!isNaN(M)&&!isNaN(b)){let y=c.split(`
14
14
  `);if(M<1||M>y.length||b<M||b>y.length){r.push({index:n,success:!1,error:`Block ${n+1}: Line range ^LINE:${M}..${b}$ out of bounds (file has ${y.length} lines).`});continue}let T=y.slice(M-1,b).join(`
15
- `),P=0;for(let O=0;O<M-1;O++)P+=y[O].length+1;r.push({index:n,success:!0,startPos:P,firstMatchContent:T,content_to_add:L});continue}}let x=i(a.replace||"");if(x===""&&L===""){r.push({index:n,success:!1,error:`Block ${n+1}: Empty replace and add content.`});continue}let I=x.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),S=null;if(x!==""&&c.includes(x))S=new RegExp(I,"g");else{let k=x.split(`
16
- `).map(_=>_.trim()).filter(_=>_.length>0).map(_=>_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s*"));if(k.length>0){let _=k.join("\\s*");try{S=new RegExp(_,"g")}catch{S=new RegExp(I,"g")}}else S=new RegExp(I,"g")}let m=[...c.matchAll(S)];if(m.length===0&&x!==""){let k=Z(x);k&&(m=[...c.matchAll(k)])}if(m.length===0){r.push({index:n,success:!1,error:`Block ${n+1}: Could not find match.`});continue}if(m.length>1&&!p){r.push({index:n,success:!1,error:`Block ${n+1}: Found ${m.length} matches (must be unique or use allowMultiple: true if sure).`});continue}for(let k of m)r.push({index:n,success:!0,startPos:k.index,firstMatchContent:k[0],content_to_add:L})}let s=r.filter(n=>n.success).sort((n,a)=>n.startPos-a.startPos);for(let n=0;n<s.length-1;n++){let a=s[n],f=s[n+1];a.startPos+a.firstMatchContent.length>f.startPos&&(a.success=!1,a.error=`Block ${a.index+1}: Overlaps with another block.`,f.success=!1,f.error=`Block ${f.index+1}: Overlaps with another block.`)}let l=new Map,u=c,g=0,$=0,E=r.filter(n=>n.success).sort((n,a)=>n.startPos-a.startPos);for(let n of E){let a=n.startPos,f=c.substring(0,a).split(`
17
- `).length,L=a+g,x=f+$,I=u.lastIndexOf(`
18
- `,L)+1,S=u.substring(I,L),m=t(n.content_to_add,n.firstMatchContent,S),k=u.split(`
15
+ `),P=0;for(let O=0;O<M-1;O++)P+=y[O].length+1;r.push({index:n,success:!0,startPos:P,firstMatchContent:T,content_to_add:E});continue}}let x=i(a.replace||"");if(x===""&&E===""){r.push({index:n,success:!1,error:`Block ${n+1}: Empty replace and add content.`});continue}let C=x.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),L=null;if(x!==""&&c.includes(x))L=new RegExp(C,"g");else{let k=x.split(`
16
+ `).map(_=>_.trim()).filter(_=>_.length>0).map(_=>_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s*"));if(k.length>0){let _=k.join("\\s*");try{L=new RegExp(_,"g")}catch{L=new RegExp(C,"g")}}else L=new RegExp(C,"g")}let m=[...c.matchAll(L)];if(m.length===0&&x!==""){let k=Z(x);k&&(m=[...c.matchAll(k)])}if(m.length===0){r.push({index:n,success:!1,error:`Block ${n+1}: Could not find match.`});continue}if(m.length>1&&!p){r.push({index:n,success:!1,error:`Block ${n+1}: Found ${m.length} matches (must be unique or use allowMultiple: true if sure).`});continue}for(let k of m)r.push({index:n,success:!0,startPos:k.index,firstMatchContent:k[0],content_to_add:E})}let s=r.filter(n=>n.success).sort((n,a)=>n.startPos-a.startPos);for(let n=0;n<s.length-1;n++){let a=s[n],f=s[n+1];a.startPos+a.firstMatchContent.length>f.startPos&&(a.success=!1,a.error=`Block ${a.index+1}: Overlaps with another block.`,f.success=!1,f.error=`Block ${f.index+1}: Overlaps with another block.`)}let l=new Map,u=c,g=0,$=0,S=r.filter(n=>n.success).sort((n,a)=>n.startPos-a.startPos);for(let n of S){let a=n.startPos,f=c.substring(0,a).split(`
17
+ `).length,E=a+g,x=f+$,C=u.lastIndexOf(`
18
+ `,E)+1,L=u.substring(C,E),m=t(n.content_to_add,n.firstMatchContent,L),k=u.split(`
19
19
  `),_=[];for(let A=Math.max(0,x-4);A<x-1;A++)_.push({num:A+1,text:k[A]});let M=n.firstMatchContent.split(`
20
- `),b=[],y=x+M.length-1;for(let A=y;A<Math.min(k.length,y+3);A++)b.push({num:A+1,text:k[A]});l.set(n,{success:!0,index:n.index,oldContent:n.firstMatchContent,newContent:m,originalStartLine:f,finalStartLine:x,contextBefore:_,contextAfter:b}),u=u.substring(0,L)+m+u.substring(L+n.firstMatchContent.length),g+=m.length-n.firstMatchContent.length,$+=m.split(`
20
+ `),b=[],y=x+M.length-1;for(let A=y;A<Math.min(k.length,y+3);A++)b.push({num:A+1,text:k[A]});l.set(n,{success:!0,index:n.index,oldContent:n.firstMatchContent,newContent:m,originalStartLine:f,finalStartLine:x,contextBefore:_,contextAfter:b}),u=u.substring(0,E)+m+u.substring(E+n.firstMatchContent.length),g+=m.length-n.firstMatchContent.length,$+=m.split(`
21
21
  `).length-n.firstMatchContent.split(`
22
- `).length}let h=[];for(let n=0;n<o.length;n++){let a=E.filter(f=>f.index===n);if(a.length>0)for(let f of a)l.has(f)&&h.push(l.get(f));else{let f=r.find(L=>L.index===n);h.push({success:!1,error:f?f.error:`Block ${n+1}: Unknown error.`})}}let F=h.filter(n=>!n.success&&n.error&&n.error.includes("Could not find match"));if(F.length===1)F[0].error+=" (Use Line Anchor or Run tool safely if search string fails)";else if(F.length>1){let n=F[F.length-1];n.error+=`
23
- (Tip: Use Line Anchor or Run tool safely if search string fails)`}return{content:u,results:h}},he=(e,o,d,p=8,c=!1)=>{if(e===o)return"";let i=(e||"").split(/\r?\n/),w=(o||"").split(/\r?\n/),C=Math.max(i.length,w.length,1),t=Math.max(4,String(C).length),r=g=>String(g).padStart(t," "),s=`[DIFF_START]
22
+ `).length}let h=[];for(let n=0;n<o.length;n++){let a=S.filter(f=>f.index===n);if(a.length>0)for(let f of a)l.has(f)&&h.push(l.get(f));else{let f=r.find(E=>E.index===n);h.push({success:!1,error:f?f.error:`Block ${n+1}: Unknown error.`})}}let F=h.filter(n=>!n.success&&n.error&&n.error.includes("Could not find match"));if(F.length===1)F[0].error+=" (Use Line Anchor or Run tool safely if search string fails)";else if(F.length>1){let n=F[F.length-1];n.error+=`
23
+ (Tip: Use Line Anchor or Run tool safely if search string fails)`}return{content:u,results:h}},he=(e,o,d,p=8,c=!1)=>{if(e===o)return"";let i=(e||"").split(/\r?\n/),w=(o||"").split(/\r?\n/),I=Math.max(i.length,w.length,1),t=Math.max(4,String(I).length),r=g=>String(g).padStart(t," "),s=`[DIFF_START]
24
24
  `,l="\u2550".repeat(88),u=V("","",e||"",o||"","","",{context:3});if(!u||!u.hunks||u.hunks.length===0)return"";if(u.hunks.forEach((g,$)=>{$>0&&(s+=`[UI_CONTEXT] ${l}
25
- `);let E=g.oldStart,h=g.newStart;for(let F of g.lines){let n=F[0],a=F.slice(1);n===" "?(s+=`[UI_CONTEXT] ${r(h)} |${a}
26
- `,E++,h++):n==="-"?(s+=`-${r(E)} |${a}
27
- `,E++):n==="+"&&(s+=`+${r(h)} |${a}
25
+ `);let S=g.oldStart,h=g.newStart;for(let F of g.lines){let n=F[0],a=F.slice(1);n===" "?(s+=`[UI_CONTEXT] ${r(h)} |${a}
26
+ `,S++,h++):n==="-"?(s+=`-${r(S)} |${a}
27
+ `,S++):n==="+"&&(s+=`+${r(h)} |${a}
28
28
  `,h++)}}),c){let g=`[DIFF_START]
29
- `,$=s.substring(g.length),E=`[UI_CONTEXT] ${l}
30
- `,F=$.split(E).map(n=>n.split(`
29
+ `,$=s.substring(g.length),S=`[UI_CONTEXT] ${l}
30
+ `,F=$.split(S).map(n=>n.split(`
31
31
  `).filter(f=>f.trim()!=="").length>120?`[[VERIFIED]]
32
32
  ${n}
33
- [[/VERIFIED]]`:n);s=g+F.join(E)}return s+="[DIFF_END]",R(s)},K=e=>{if(!e)return null;let o=e.replace("[UI_CONTEXT]","").replace(/\r/g,""),d=o.startsWith("-"),p=o.startsWith("+"),c=d||p?o.substring(1):o,i=c.indexOf("|"),w=i!==-1?R(c.substring(0,i).trim()):"",C=R(i!==-1?c.substring(i+1):c);return{isR:d,isA:p,num:w,content:C}},Y=(e,o)=>{if(!e&&!o)return 1;if(!e||!o)return 0;let d=e.length,p=o.length,c=e,i=o;d<p&&(c=o,i=e);let w=c.length,C=i.length,t=new Int32Array(C+1),r=new Int32Array(C+1);for(let u=0;u<=C;u++)t[u]=u;for(let u=1;u<=w;u++){r[0]=u;let g=c[u-1];for(let $=1;$<=C;$++)g===i[$-1]?r[$]=t[$-1]:r[$]=Math.min(t[$],r[$-1],t[$-1])+1;t.set(r)}let s=t[C],l=Math.max(d,p);return l===0?1:1-s/l},X=e=>{let o=[],d=[];e.forEach((s,l)=>{s.parsed.isR?o.push({index:l,content:s.parsed.content}):s.parsed.isA&&d.push({index:l,content:s.parsed.content})});let p=o.length,c=d.length;if(p===0||c===0)return;let i=Array.from({length:p+1},()=>Array(c+1).fill(0)),w=Array.from({length:p+1},()=>Array(c+1).fill(""));for(let s=1;s<=p;s++)w[s][0]="up";for(let s=1;s<=c;s++)w[0][s]="left";let C=Array.from({length:p},()=>Array(c).fill(0));for(let s=0;s<p;s++)for(let l=0;l<c;l++)C[s][l]=Y(o[s].content.trim(),d[l].content.trim());for(let s=1;s<=p;s++)for(let l=1;l<=c;l++){let u=C[s-1][l-1],g=u>=.2?u:-10,$=i[s-1][l-1]+g,E=i[s-1][l],h=i[s][l-1];$>=E&&$>=h?(i[s][l]=$,w[s][l]="diag"):E>=h?(i[s][l]=E,w[s][l]="up"):(i[s][l]=h,w[s][l]="left")}let t=p,r=c;for(;t>0||r>0;)if(w[t][r]==="diag"){if(C[t-1][r-1]>=.2){let l=o[t-1].index,u=d[r-1].index;e[l].pairContent=e[u].parsed.content,e[u].pairContent=e[l].parsed.content}t--,r--}else w[t][r]==="up"?t--:r--},N=new Map,D=new Map,H=200,j=5,z=(e,o)=>{o.set(e.key,e),e.type==="chunk"&&e.blocks&&e.blocks.forEach(d=>z(d,o))},de=(e,o)=>{if(!e)return{completed:[],active:[]};let d=`${e.id}-${e.text?.length||0}-${o}-${e.isStreaming}-${e.workedDuration||0}`;if(!e.isStreaming&&N.has(d))return N.get(d);let p=R(ne(e.text||"",e.role)),c=`${e.id}-${o}`,i=new Map;if(e.isStreaming){let h=D.get(c);h&&p.startsWith(h.text)&&(i=h.blocksMap)}let w=(h,F,n,a={})=>{let f=i.get(h);if(f&&f.text===n&&f.type===F&&!!f.isActiveBlock==!!a.isActiveBlock&&!!f.isStreaming==!!a.isStreaming&&f.pairContent===a.pairContent)return f;let L=R(n),x={...a};return typeof x.pairContent=="string"&&(x.pairContent=R(x.pairContent)),Array.isArray(x.wrappedLines)&&(x.wrappedLines=x.wrappedLines.map(R)),{key:h,isStreamingMsg:!!e.isStreaming,workedDuration:e.workedDuration,type:F,text:L,msg:F==="full-message"?e:void 0,...x}};if(p.includes("- Content Preview:")){let h="",F=p.match(/File\s+\[(.*?)\]/i);F&&(h=F[1].split(".").pop().toLowerCase());let x=((p.split("- Content Preview:")[1]||"").split("[SYSTEM] Check the content preview for verification [/SYSTEM]")[0]?.trim()||"").split(`
34
- `).map(b=>b.replace(/\r$/,"")),I=String(x.length).length,S=[],m=null,k=[],_=()=>{if(!k.length)return;let b=k;k=[],S.push(b.length===1?b[0]:{key:`${b[0].key}-chunk`,type:"chunk",blocks:b})},M=o-(I+6);return x.forEach((b,y)=>{let A=y===x.length-1,T=W(b,M).split(`
35
- `),P=w(`${e.id||Date.now()}-write-line-${y}`,"write-line",b,{gutterWidth:I,lineNum:y+1,isFirstLine:y===0,isLastLine:A,extension:h,wrappedLines:T});A&&e.isStreaming?(_(),m=P):(k.push(P),k.length>=j&&_())}),_(),{completed:S,active:m?[m]:[]}}if(p.includes("[DIFF_START]")){let h=p.match(/\[DIFF_START\]([\s\S]*?)(?:\[DIFF_END\]|$)/),n=(h?h[1].trim():"").split(`
36
- `).map(m=>m.replace(/\r$/,"")),a=n.map(m=>({line:m,parsed:K(m),pairContent:null})),f=[];for(let m=0;m<a.length;m++){let k=a[m];k.parsed&&(k.parsed.isR||k.parsed.isA)?f.push(k):f.length>0&&(X(f),f=[])}f.length>0&&X(f);let L=[],x=null,I=[],S=()=>{if(!I.length)return;let m=I;I=[],L.push(m.length===1?m[0]:{key:`${m[0].key}-chunk`,type:"chunk",blocks:m})};return n.forEach((m,k)=>{let _=k===n.length-1,M=a[k].parsed,b=null;M&&(b=W(M.content,o-17).split(`
37
- `));let y=w(`${e.id||Date.now()}-diff-${k}`,"diff-line",m,{isFirstLine:k===0,isLastLine:_,pairContent:a[k].pairContent,wrappedLines:b});_&&e.isStreaming?(S(),x=y):(I.push(y),I.length>=j&&S())}),S(),{completed:L,active:x?[x]:[]}}if(e.role==="system"||e.isLogo||e.isHelpRecord||e.isTerminalRecord||e.isHomeWarning||e.isImageStats||e.isAskRecord||e.isAboutRecord||e.isUpdateNotification||e.role==="user")return{completed:[w(`${e.id||Date.now()}-full`,"full-message",p)],active:[]};if(!p&&!e.isStreaming){let h={completed:[],active:[]};return N.set(d,h),h}let C=[],t=null,r=[],s=null,l=()=>{if(!r.length)return;let h=r;r=[],s=null,C.push(h.length===1?h[0]:{key:`${e.id||"x"}-chunk-${h[0].key}`,type:"chunk",blocks:h})},u=(h,F=!1)=>{if(s!==null&&s!==h.type&&l(),r.push(h),s=h.type,r.length>=j){if(e.isStreaming&&F)return;l()}},g=Math.max(20,(o||80)-6),$=Math.max(20,(o||80)-8);if(e.role==="think"){C.push(w(`${e.id}-header`,"think-header","",{duration:e.duration}));let h=p.split(`
33
+ [[/VERIFIED]]`:n);s=g+F.join(S)}return s+="[DIFF_END]",R(s)},K=e=>{if(!e)return null;let o=e.replace("[UI_CONTEXT]","").replace(/\r/g,""),d=o.startsWith("-"),p=o.startsWith("+"),c=d||p?o.substring(1):o,i=c.indexOf("|"),w=i!==-1?R(c.substring(0,i).trim()):"",I=R(i!==-1?c.substring(i+1):c);return{isR:d,isA:p,num:w,content:I}},Y=(e,o)=>{if(!e&&!o)return 1;if(!e||!o)return 0;let d=e.length,p=o.length,c=e,i=o;d<p&&(c=o,i=e);let w=c.length,I=i.length,t=new Int32Array(I+1),r=new Int32Array(I+1);for(let u=0;u<=I;u++)t[u]=u;for(let u=1;u<=w;u++){r[0]=u;let g=c[u-1];for(let $=1;$<=I;$++)g===i[$-1]?r[$]=t[$-1]:r[$]=Math.min(t[$],r[$-1],t[$-1])+1;t.set(r)}let s=t[I],l=Math.max(d,p);return l===0?1:1-s/l},X=e=>{let o=[],d=[];e.forEach((s,l)=>{s.parsed.isR?o.push({index:l,content:s.parsed.content}):s.parsed.isA&&d.push({index:l,content:s.parsed.content})});let p=o.length,c=d.length;if(p===0||c===0)return;let i=Array.from({length:p+1},()=>Array(c+1).fill(0)),w=Array.from({length:p+1},()=>Array(c+1).fill(""));for(let s=1;s<=p;s++)w[s][0]="up";for(let s=1;s<=c;s++)w[0][s]="left";let I=Array.from({length:p},()=>Array(c).fill(0));for(let s=0;s<p;s++)for(let l=0;l<c;l++)I[s][l]=Y(o[s].content.trim(),d[l].content.trim());for(let s=1;s<=p;s++)for(let l=1;l<=c;l++){let u=I[s-1][l-1],g=u>=.2?u:-10,$=i[s-1][l-1]+g,S=i[s-1][l],h=i[s][l-1];$>=S&&$>=h?(i[s][l]=$,w[s][l]="diag"):S>=h?(i[s][l]=S,w[s][l]="up"):(i[s][l]=h,w[s][l]="left")}let t=p,r=c;for(;t>0||r>0;)if(w[t][r]==="diag"){if(I[t-1][r-1]>=.2){let l=o[t-1].index,u=d[r-1].index;e[l].pairContent=e[u].parsed.content,e[u].pairContent=e[l].parsed.content}t--,r--}else w[t][r]==="up"?t--:r--},N=new Map,D=new Map,H=200,j=5,z=(e,o)=>{o.set(e.key,e),e.type==="chunk"&&e.blocks&&e.blocks.forEach(d=>z(d,o))},de=(e,o)=>{if(!e)return{completed:[],active:[]};let d=`${e.id}-${e.text?.length||0}-${o}-${e.isStreaming}-${e.workedDuration||0}`;if(!e.isStreaming&&N.has(d))return N.get(d);let p=R(ne(e.text||"",e.role)),c=`${e.id}-${o}`,i=new Map;if(e.isStreaming){let h=D.get(c);h&&p.startsWith(h.text)&&(i=h.blocksMap)}let w=(h,F,n,a={})=>{let f=i.get(h);if(f&&f.text===n&&f.type===F&&!!f.isActiveBlock==!!a.isActiveBlock&&!!f.isStreaming==!!a.isStreaming&&f.pairContent===a.pairContent)return f;let E=R(n),x={...a};return typeof x.pairContent=="string"&&(x.pairContent=R(x.pairContent)),Array.isArray(x.wrappedLines)&&(x.wrappedLines=x.wrappedLines.map(R)),{key:h,isStreamingMsg:!!e.isStreaming,workedDuration:e.workedDuration,type:F,text:E,msg:F==="full-message"?e:void 0,...x}};if(p.includes("- Content Preview:")){let h="",F=p.match(/File\s+\[(.*?)\]/i);F&&(h=F[1].split(".").pop().toLowerCase());let x=((p.split("- Content Preview:")[1]||"").split("[SYSTEM] Check the content preview for verification [/SYSTEM]")[0]?.trim()||"").split(`
34
+ `).map(b=>b.replace(/\r$/,"")),C=String(x.length).length,L=[],m=null,k=[],_=()=>{if(!k.length)return;let b=k;k=[],L.push(b.length===1?b[0]:{key:`${b[0].key}-chunk`,type:"chunk",blocks:b})},M=o-(C+6);return x.forEach((b,y)=>{let A=y===x.length-1,T=W(b,M).split(`
35
+ `),P=w(`${e.id||Date.now()}-write-line-${y}`,"write-line",b,{gutterWidth:C,lineNum:y+1,isFirstLine:y===0,isLastLine:A,extension:h,wrappedLines:T});A&&e.isStreaming?(_(),m=P):(k.push(P),k.length>=j&&_())}),_(),{completed:L,active:m?[m]:[]}}if(p.includes("[DIFF_START]")){let h=p.match(/\[DIFF_START\]([\s\S]*?)(?:\[DIFF_END\]|$)/),n=(h?h[1].trim():"").split(`
36
+ `).map(m=>m.replace(/\r$/,"")),a=n.map(m=>({line:m,parsed:K(m),pairContent:null})),f=[];for(let m=0;m<a.length;m++){let k=a[m];k.parsed&&(k.parsed.isR||k.parsed.isA)?f.push(k):f.length>0&&(X(f),f=[])}f.length>0&&X(f);let E=[],x=null,C=[],L=()=>{if(!C.length)return;let m=C;C=[],E.push(m.length===1?m[0]:{key:`${m[0].key}-chunk`,type:"chunk",blocks:m})};return n.forEach((m,k)=>{let _=k===n.length-1,M=a[k].parsed,b=null;M&&(b=W(M.content,o-17).split(`
37
+ `));let y=w(`${e.id||Date.now()}-diff-${k}`,"diff-line",m,{isFirstLine:k===0,isLastLine:_,pairContent:a[k].pairContent,wrappedLines:b});_&&e.isStreaming?(L(),x=y):(C.push(y),C.length>=j&&L())}),L(),{completed:E,active:x?[x]:[]}}if(e.role==="system"||e.isLogo||e.isHelpRecord||e.isTerminalRecord||e.isHomeWarning||e.isImageStats||e.isAskRecord||e.isAboutRecord||e.isUpdateNotification||e.role==="user")return{completed:[w(`${e.id||Date.now()}-full`,"full-message",p)],active:[]};if(!p&&!e.isStreaming){let h={completed:[],active:[]};return N.set(d,h),h}let I=[],t=null,r=[],s=null,l=()=>{if(!r.length)return;let h=r;r=[],s=null,I.push(h.length===1?h[0]:{key:`${e.id||"x"}-chunk-${h[0].key}`,type:"chunk",blocks:h})},u=(h,F=!1)=>{if(s!==null&&s!==h.type&&l(),r.push(h),s=h.type,r.length>=j){if(e.isStreaming&&F)return;l()}},g=Math.max(20,(o||80)-6),$=Math.max(20,(o||80)-8);if(e.role==="think"){I.push(w(`${e.id}-header`,"think-header","",{duration:e.duration}));let h=p.split(`
38
38
  `),F=[];h.forEach(n=>{W(n,$).split(`
39
- `).forEach(f=>F.push(f))}),F.forEach((n,a)=>{let f=a===F.length-1;u(w(`${e.id}-${a}`,"think-line",n,{}),f)}),e.isStreaming||(l(),C.push({key:`${e.id}-footer-padding`,type:"think-footer-padding",text:""}))}else{let h=p.split(`
40
- `),F=!1,n=[],a=!1,f="",L=0,x=0,I=[];h.forEach(S=>{let m=S.trim();m.startsWith("```")?(a=!a,I.push(S)):a||m.startsWith("|")?I.push(S):W(S,g).split(`
41
- `).forEach(_=>I.push(_))}),a=!1,I.forEach((S,m)=>{let k=m===I.length-1,_=S.trim().startsWith("|"),M=S.trim().startsWith("```");if(a)M?(a=!1,u(w(`${e.id}-code-close-${x}`,"code-fence-close","",{}),k)):(L++,u(w(`${e.id}-code-line-${m}`,"code-line",S,{lineNum:L,lang:f}),k));else if(M)a=!0,x=m,L=0,f=S.trim().replace(/^```/,"").trim(),u(w(`${e.id}-code-open-${m}`,"code-fence-open",f,{}),k);else if(_){if(F||(F=!0,n=[]),n.push(S),n.length===2){let b=n[0],y=b.split("|");y[0]!==void 0&&y[0].trim()===""&&y.shift(),y.length>0&&y[y.length-1].trim()===""&&y.pop();let A=y.map(T=>T.trim());u(w(`${e.id}-table-hdr-${m}`,"table-header",b,{colHeaders:A,colCount:A.length}),k)}else if(n.length>2){let b=S.split("|");b[0]!==void 0&&b[0].trim()===""&&b.shift(),b.length>0&&b[b.length-1].trim()===""&&b.pop();let y=b.map(O=>O.trim()),A=n[0].split("|");A[0]!==void 0&&A[0].trim()===""&&A.shift(),A.length>0&&A[A.length-1].trim()===""&&A.pop();let T=A.map(O=>O.trim()),P=Math.max(1,T.length);u(w(`${e.id}-table-row-${m}`,"table-row",S,{cells:y,colHeaders:T,colCount:P,rowIndex:n.length-3}),k)}k&&!e.isStreaming&&(l(),u(w(`${e.id}-table-end-${m}`,"table-close","",{}),!0))}else F&&(u(w(`${e.id}-table-end-${m}`,"table-close","",{}),k),F=!1,n=[]),u(w(`${e.id}-${m}`,"agent-line",S,{}),k)}),!e.isStreaming&&e.workedDuration&&(l(),C.push(w(`${e.id}-worked-duration`,"worked-duration","")))}e.isStreaming&&r.length>0?t=r.length===1?r[0]:{key:`${e.id||"x"}-chunk-active-${r[0].key}`,type:"chunk",blocks:r}:l();let E={completed:C,active:t?[t]:[]};if(e.isStreaming){let h=new Map;if(C.forEach(F=>z(F,h)),t&&z(t,h),D.set(c,{text:p,blocksMap:h}),D.size>H){let F=D.keys().next().value;D.delete(F)}}else{if(N.set(d,E),N.size>H){let h=N.keys().next().value;N.delete(h)}D.delete(c)}return E},q={},J=/(\r?\n){2}(?=\[?(?:tool:(?:functions\.)?|tool\.functions|action:(?:functions\.)?|action:|action\.functions|\s*turn\s*:))/gi,B=(e,o)=>{let d=!1,p=!1,c=0;for(;c<o;){if(e.startsWith("```",c)){p=!p,c+=3;continue}!p&&e[c]==="`"&&(c===0||e[c-1]!=="\\")&&(d=!d),c++}return p||d},Q=/\[SYSTEM\][\s\S]*?\[\/SYSTEM\]|\[ANSWER\][\s\S]*?(?:\[\/ANSWER\]|$)|\[(?:TOOL|ACTION) RESULTS?\]:?\s*|^\s*(SUCCESS|ERROR):.*(\r?\n)?|\[\s*turn\s*:\s*(continue|finish)\s*\]|\[\[END\]\]|\[\s*turn\s*:?.*?$|\n\s*turn\s*:?.*?$|\[\s*(?:turn|ANSWER|TOOL|ACTION).*?$|\n\nResponded on .*|\n\n\[Prompted on: .*\]|@\[TerminalName:.*?, ProcessId:.*?\]/gm,ee=/(\$?\\?\/?\\rightarrow\$?|\$\\rightarrow\$)|(\$?\\?\/?\\leftarrow\$?|\$\\leftarrow\$)|(\$?\\?\/?\\uparrow\$?|\$\\uparrow\$)|(\$?\\?\/?\\downarrow\$?|\$\\downarrow\$)|(\$?\\?\/?\\leftrightarrow\$?|\$\\leftrightarrow\$)/gi,te=/\b(write_file|update_file|read_folder|view_file|exec_command|web_search|web_scrape|search_keyword|write_pdf|write_docx|generate_image)\b/gi,v=!1,ne=(e,o="agent")=>{if(!e)return e;let d=o===!0||o==="think",p=o===!1||o==="agent",c=e.replace(/<\|channel>thought/gi,"<think_fluxflow>").replace(/<channel\|>/gi,"</think_fluxflow>");if(d)return c.replace(/^<think_fluxflow>/gi,"").replace(/<\/think_fluxflow>$/gi,"").replace(/^\r?\n+/,"").replace(/\r?\n+$/,"");let i=c;p&&(i=i.replace(/<\/?think_fluxflow>/gi,(t,r,s)=>B(s,r)?t:""),i=i.replace(J,(t,r,s,l)=>!v&&B(l,s)?t:""),i&&(i.includes("[tool:")||i.includes("[action:"))&&(i=i.replace(/<(\w+)(?:[^>]*)>\s*([\s\S]*?\[(?:tool|action):[^\]]*\][\s\S]*?)\s*<\/\1>/gi,(t,r,s)=>s&&(s.includes("[tool:")||s.includes("[action:"))?s.trim():t),v&&(i=i.replace(/```(?:tool|action|yaml|function|json)?\s*\n?([\s\S]*?)\n?\```/gi,(t,r)=>r.includes("[tool:")||r.includes("[action:")?r.trim():t))));let w="tool:",C="action:";if(p&&(i.toLowerCase().includes(w)||i.toLowerCase().includes(C)))for(;;){let t=i.toLowerCase(),r=t.indexOf(w),s=t.indexOf(C),l=w,u=r;if((r===-1||s!==-1&&s<r)&&(l=C,u=s),u===-1)break;if(!v&&B(i,u)){let f=-1,L=0;for(;;){let x=t.indexOf(w,L),I=t.indexOf(C,L),S=-1,m=w;if(x===-1&&I===-1)break;if(x===-1||I!==-1&&I<x?(S=I,m=C):S=x,!B(i,S)){f=S,l=m;break}L=S+m.length}if(f===-1)break;u=f}let g=u,$=!1,E=u-1;for(;E>=0&&/\s/.test(i[E]);)E--;E>=0&&i[E]==="["&&(g=E,$=!0);let h=0,F=!1,n=null,a=u;for(;a<i.length;){let f=i[a];if(!n&&(f==="'"||f==='"'||f==="`")?n=f:n&&f===n&&i[a-1]!=="\\"&&(n=null),n||(f==="("?(h++,F=!0):f===")"&&h--),F&&h===0&&!n){let L=a;if($){let x=a+1;for(;x<i.length&&/\s/.test(i[x]);)x++;x<i.length&&i[x]==="]"&&(L=x)}i=i.substring(0,g)+i.substring(L+1);break}if(a++,a===i.length){i=i.substring(0,g);break}}}return p&&(i=i.replace(/\[\s*(?:tool|action):[a-zA-Z0-9_.]*\s*\([\s\S]*?\)\s*\]/gi,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/\[\s*(?:tool|action):[a-zA-Z0-9_.]*[\s\S]*$/gi,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/^(?:\s*=\s*["'][^"'\n]*["']|\s*[a-zA-Z0-9_]+\s*=\s*(?:["'][^"'\n]*["']|\d+|true|false))(?:\s*,\s*[a-zA-Z0-9_]+\s*=\s*(?:["'][^"'\n]*["']|\d+|true|false))*\s*\)?\]\s*/gm,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/(?:\r?\n|^)\s*=\s*["'][^"'\n]*["'][\s\S]*?\s*\)?\]\s*/g,(t,r,s)=>!v&&B(s,r)?t:`
39
+ `).forEach(f=>F.push(f))}),F.forEach((n,a)=>{let f=a===F.length-1;u(w(`${e.id}-${a}`,"think-line",n,{}),f)}),e.isStreaming||(l(),I.push({key:`${e.id}-footer-padding`,type:"think-footer-padding",text:""}))}else{let h=p.split(`
40
+ `),F=!1,n=[],a=!1,f="",E=0,x=0,C=[];h.forEach(L=>{let m=L.trim();m.startsWith("```")?(a=!a,C.push(L)):a||m.startsWith("|")?C.push(L):W(L,g).split(`
41
+ `).forEach(_=>C.push(_))}),a=!1,C.forEach((L,m)=>{let k=m===C.length-1,_=L.trim().startsWith("|"),M=L.trim().startsWith("```");if(a)M?(a=!1,u(w(`${e.id}-code-close-${x}`,"code-fence-close","",{}),k)):(E++,u(w(`${e.id}-code-line-${m}`,"code-line",L,{lineNum:E,lang:f}),k));else if(M)a=!0,x=m,E=0,f=L.trim().replace(/^```/,"").trim(),u(w(`${e.id}-code-open-${m}`,"code-fence-open",f,{}),k);else if(_){if(F||(F=!0,n=[]),n.push(L),n.length===2){let b=n[0],y=b.split("|");y[0]!==void 0&&y[0].trim()===""&&y.shift(),y.length>0&&y[y.length-1].trim()===""&&y.pop();let A=y.map(T=>T.trim());u(w(`${e.id}-table-hdr-${m}`,"table-header",b,{colHeaders:A,colCount:A.length}),k)}else if(n.length>2){let b=L.split("|");b[0]!==void 0&&b[0].trim()===""&&b.shift(),b.length>0&&b[b.length-1].trim()===""&&b.pop();let y=b.map(O=>O.trim()),A=n[0].split("|");A[0]!==void 0&&A[0].trim()===""&&A.shift(),A.length>0&&A[A.length-1].trim()===""&&A.pop();let T=A.map(O=>O.trim()),P=Math.max(1,T.length);u(w(`${e.id}-table-row-${m}`,"table-row",L,{cells:y,colHeaders:T,colCount:P,rowIndex:n.length-3}),k)}k&&!e.isStreaming&&(l(),u(w(`${e.id}-table-end-${m}`,"table-close","",{}),!0))}else F&&(u(w(`${e.id}-table-end-${m}`,"table-close","",{}),k),F=!1,n=[]),u(w(`${e.id}-${m}`,"agent-line",L,{}),k)}),!e.isStreaming&&e.workedDuration&&(l(),I.push(w(`${e.id}-worked-duration`,"worked-duration","")))}e.isStreaming&&r.length>0?t=r.length===1?r[0]:{key:`${e.id||"x"}-chunk-active-${r[0].key}`,type:"chunk",blocks:r}:l();let S={completed:I,active:t?[t]:[]};if(e.isStreaming){let h=new Map;if(I.forEach(F=>z(F,h)),t&&z(t,h),D.set(c,{text:p,blocksMap:h}),D.size>H){let F=D.keys().next().value;D.delete(F)}}else{if(N.set(d,S),N.size>H){let h=N.keys().next().value;N.delete(h)}D.delete(c)}return S},q={},J=/(\r?\n){2}(?=\[?(?:tool:(?:functions\.)?|tool\.functions|action:(?:functions\.)?|action:|action\.functions|\s*turn\s*:))/gi,B=(e,o)=>{let d=!1,p=!1,c=0;for(;c<o;){if(e.startsWith("```",c)){p=!p,c+=3;continue}!p&&e[c]==="`"&&(c===0||e[c-1]!=="\\")&&(d=!d),c++}return p||d},Q=/\[SYSTEM\][\s\S]*?\[\/SYSTEM\]|\[ANSWER\][\s\S]*?(?:\[\/ANSWER\]|$)|\[(?:TOOL|ACTION) RESULTS?\]:?\s*|\[\s*turn\s*:\s*(continue|finish)\s*\]|\[\[END\]\]|\[\s*turn\s*:?.*?$|\n\s*turn\s*:?.*?$|\[\s*(?:turn|ANSWER|TOOL|ACTION).*?$|\n\nResponded on .*|\n\n\[Prompted on: .*\]|@\[TerminalName:.*?, ProcessId:.*?\]/gm,ee=/(\$?\\?\/?\\rightarrow\$?|\$\\rightarrow\$)|(\$?\\?\/?\\leftarrow\$?|\$\\leftarrow\$)|(\$?\\?\/?\\uparrow\$?|\$\\uparrow\$)|(\$?\\?\/?\\downarrow\$?|\$\\downarrow\$)|(\$?\\?\/?\\leftrightarrow\$?|\$\\leftrightarrow\$)/gi,te=/\b(write_file|update_file|read_folder|view_file|exec_command|web_search|web_scrape|search_keyword|write_pdf|write_docx|generate_image)\b/gi,v=!1,ne=(e,o="agent")=>{if(!e)return e;let d=o===!0||o==="think",p=o===!1||o==="agent",c=e.replace(/<\|channel>thought/gi,"<think_fluxflow>").replace(/<channel\|>/gi,"</think_fluxflow>");if(d)return c.replace(/^<think_fluxflow>/gi,"").replace(/<\/think_fluxflow>$/gi,"").replace(/^\r?\n+/,"").replace(/\r?\n+$/,"");let i=c;p&&(i=i.replace(/<\/?think_fluxflow>/gi,(t,r,s)=>B(s,r)?t:""),i=i.replace(J,(t,r,s,l)=>!v&&B(l,s)?t:""),i&&(i.includes("[tool:")||i.includes("[action:"))&&(i=i.replace(/<(\w+)(?:[^>]*)>\s*([\s\S]*?\[(?:tool|action):[^\]]*\][\s\S]*?)\s*<\/\1>/gi,(t,r,s)=>s&&(s.includes("[tool:")||s.includes("[action:"))?s.trim():t),v&&(i=i.replace(/```(?:tool|action|yaml|function|json)?\s*\n?([\s\S]*?)\n?\```/gi,(t,r)=>r.includes("[tool:")||r.includes("[action:")?r.trim():t))));let w="tool:",I="action:";if(p&&(i.toLowerCase().includes(w)||i.toLowerCase().includes(I)))for(;;){let t=i.toLowerCase(),r=t.indexOf(w),s=t.indexOf(I),l=w,u=r;if((r===-1||s!==-1&&s<r)&&(l=I,u=s),u===-1)break;if(!v&&B(i,u)){let f=-1,E=0;for(;;){let x=t.indexOf(w,E),C=t.indexOf(I,E),L=-1,m=w;if(x===-1&&C===-1)break;if(x===-1||C!==-1&&C<x?(L=C,m=I):L=x,!B(i,L)){f=L,l=m;break}E=L+m.length}if(f===-1)break;u=f}let g=u,$=!1,S=u-1;for(;S>=0&&/\s/.test(i[S]);)S--;S>=0&&i[S]==="["&&(g=S,$=!0);let h=0,F=!1,n=null,a=u;for(;a<i.length;){let f=i[a];if(!n&&(f==="'"||f==='"'||f==="`")?n=f:n&&f===n&&i[a-1]!=="\\"&&(n=null),n||(f==="("?(h++,F=!0):f===")"&&h--),F&&h===0&&!n){let E=a;if($){let x=a+1;for(;x<i.length&&/\s/.test(i[x]);)x++;x<i.length&&i[x]==="]"&&(E=x)}i=i.substring(0,g)+i.substring(E+1);break}if(a++,a===i.length){i=i.substring(0,g);break}}}return p&&(i=i.replace(/\[\s*(?:tool|action):[a-zA-Z0-9_.]*\s*\([\s\S]*?\)\s*\]/gi,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/\[\s*(?:tool|action):[a-zA-Z0-9_.]*[\s\S]*$/gi,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/^(?:\s*=\s*["'][^"'\n]*["']|\s*[a-zA-Z0-9_]+\s*=\s*(?:["'][^"'\n]*["']|\d+|true|false))(?:\s*,\s*[a-zA-Z0-9_]+\s*=\s*(?:["'][^"'\n]*["']|\d+|true|false))*\s*\)?\]\s*/gm,(t,r,s)=>!v&&B(s,r)?t:""),i=i.replace(/(?:\r?\n|^)\s*=\s*["'][^"'\n]*["'][\s\S]*?\s*\)?\]\s*/g,(t,r,s)=>!v&&B(s,r)?t:`
42
42
  `)),i=i.replace(Q,""),i=i.replace(ee,t=>{let r=t.toLowerCase();return r.includes("leftrightarrow")?"\u2194":r.includes("rightarrow")?"\u2192":r.includes("leftarrow")?"\u2190":r.includes("uparrow")?"\u2191":r.includes("downarrow")?"\u2193":t}),i=i.replace(te,t=>q[t.toLowerCase()]||t),i.trim()},pe=()=>{N.clear(),D.clear()};export{R as a,W as b,oe as c,le as d,ce as e,ae as f,fe as g,ue as h,he as i,K as j,X as k,de as l,ne as m,pe as n};
@@ -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-BZA7TWT3.js"),l=b(w),c=l.task||l.instruction||l.prompt,E=l.model||null,C=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:C||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=[],A={...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-BN2T224B.js"),l=b(w),c=l.task||l.instruction||l.prompt,E=l.model||null,C=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:C||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=[],A={...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: [action: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((M,_)=>M+_.words,0),T=r.chunks[0].time,g=Math.max(.4,(o-T)/1e3);e.wps=Math.round(u/g)}}s.onSubagentUpdate&&s.onSubagentUpdate()}};return U(c,A,E,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]")||n.startsWith("[Action 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-BZA7TWT3.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)}),`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-BN2T224B.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)}),`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-BZA7TWT3.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-BZA7TWT3.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-BN2T224B.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-BN2T224B.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,4 +1,4 @@
1
- import{g as h,h as m,i as R}from"./chunk-M46I73DX.js";import{a as F}from"./chunk-6EYQQ7GQ.js";import{a as $}from"./chunk-Y5JU726N.js";import{b as g}from"./chunk-Y73PU7CC.js";import"./chunk-KMOTPBF5.js";import"./chunk-P5HBJA23.js";import"./chunk-26BQ45XP.js";import c from"fs";import P from"path";var j=async(w,y={})=>{let n=$(w),t=n.path;if(!t)return'ERROR: Missing "path" argument for PatchFile.';let{patchPairs:o,allowMultiple:E,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 M=n.allowMultiple!==void 0?n.allowMultiple===!0||String(n.allowMultiple).toLowerCase()==="true":E,i=P.resolve(process.cwd(),t);try{if(!c.existsSync(i))return`ERROR: File [${t}] does not exist. Use WriteFile instead.`;let e=y.forcedContent||c.readFileSync(i,"utf8");e.startsWith("\uFEFF")&&(e=e.slice(1));let s=e.replace(/\r\n/g,`
1
+ import{g as h,h as m,i as R}from"./chunk-ZYLACK6T.js";import{a as F}from"./chunk-6EYQQ7GQ.js";import{a as $}from"./chunk-Y5JU726N.js";import{b as g}from"./chunk-Y73PU7CC.js";import"./chunk-KMOTPBF5.js";import"./chunk-P5HBJA23.js";import"./chunk-26BQ45XP.js";import c from"fs";import P from"path";var j=async(w,y={})=>{let n=$(w),t=n.path;if(!t)return'ERROR: Missing "path" argument for PatchFile.';let{patchPairs:o,allowMultiple:E,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 M=n.allowMultiple!==void 0?n.allowMultiple===!0||String(n.allowMultiple).toLowerCase()==="true":E,i=P.resolve(process.cwd(),t);try{if(!c.existsSync(i))return`ERROR: File [${t}] does not exist. Use WriteFile instead.`;let e=y.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:M}),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(`
package/dist/cli.js CHANGED
@@ -66,7 +66,7 @@ Usage: fluxflow --export error`),process.exit(1)}if(ee&&(console.log(`v${n}`),pr
66
66
  /docs View documentation
67
67
  /fluxflow init Create FluxFlow.md template
68
68
  /update check Check for new version
69
- /update latest Install latest release`),process.exit(0)),te){let C=t[1]||"latest";if(C==="check"){let f=t[2]==="latest";try{let y=(await(await fetch("https://registry.npmjs.org/fluxflow-cli",{cache:"no-store"})).json())["dist-tags"]?.latest;y||(console.error("Error: Could not retrieve latest version."),process.exit(1)),console.log(f?`Latest version: v${y}`:y!==n?`A new version of FluxFlow is available: v${y} (current: v${n}). Run "fluxflow --update latest" to upgrade.`:`FluxFlow is up to date (v${n}).`)}catch(l){console.error("Error checking for updates:",l.message),process.exit(1)}process.exit(0)}else if(C==="latest"){console.log("Checking latest version and settings...");try{let c=(await(await fetch("https://registry.npmjs.org/fluxflow-cli",{cache:"no-store"})).json())["dist-tags"]?.latest;c||(console.error("Error: Could not retrieve latest version."),process.exit(1)),c===n&&(console.log(`FluxFlow is already up to date (v${n}).`),process.exit(0));let y=async()=>{let s=(await import("react")).default,{useState:N}=s,{render:U,Box:S,Text:b}=await import("ink"),_=(await import("ink-select-input")).default,P=(await import("ink-text-input")).default;return new Promise(Y=>{let F=[{label:"NPM",value:"npm"},{label:"PNPM",value:"pnpm"},{label:"Yarn",value:"yarn"},{label:"Bun",value:"bun"},{label:"Custom Command",value:"custom"}],q=({label:M,isSelected:E})=>s.createElement(S,{width:"100%"},s.createElement(b,{bold:E},"\u2514\u2500 ",E?"\x1B[32m\u25CF\x1B[0m":"\u25CB"," ",M)),O,W=()=>{let[M,E]=N("select"),[X,V]=N(""),z=h=>{h.value==="custom"?E("custom"):D({manager:h.value})},J=h=>{D({manager:"custom",customCommand:h})};return M==="custom"?s.createElement(S,{flexDirection:"column",marginY:1},s.createElement(S,{marginBottom:1},s.createElement(b,{color:"magenta",bold:!0},"\u{1F527} Enter custom update command:")),s.createElement(S,{flexDirection:"row"},s.createElement(b,{color:"cyan",bold:!0}," \u276F "),s.createElement(P,{value:X,onChange:V,onSubmit:J})),s.createElement(S,{marginTop:1},s.createElement(b,{color:"gray",dimColor:!0,italic:!0}," (Press Enter to confirm)"))):s.createElement(S,{flexDirection:"column",marginY:1},s.createElement(S,{marginBottom:1},s.createElement(b,{color:"magenta",bold:!0},"\u{1F4E6} Select a package manager for the update:")),s.createElement(_,{items:F,onSelect:z,itemComponent:q,indicatorComponent:()=>null}))},D=M=>{O&&O(),Y(M)},{unmount:H}=U(s.createElement(W,null));O=H})},i,k="",A;try{let{loadSettings:s}=await import("./chunks/settings-MGEVTCE4.js");A=await s(),i=A?.systemSettings?.updateManager||A?.updateManager}catch{}if(!i){let s=await y();i=s.manager,k=s.customCommand}let p="";i==="pnpm"?p=`pnpm add -g fluxflow-cli@${c}`:i==="bun"?p=`bun add -g fluxflow-cli@${c}`:i==="yarn"?p=`yarn global add fluxflow-cli@${c}`:i==="custom"?p=k||A?.customUpdateCommand||`npm install -g fluxflow-cli@${c}`:p=`npm install -g fluxflow-cli@${c}`,console.log(`Updating FluxFlow to v${c} using ${i}...`),console.log(`Running: ${p}`);let{execSync:w}=await import("child_process");w(p,{stdio:"inherit"}),console.log(`\x1B[32m\u2705 Update successful! FluxFlow updated to v${c}.\x1B[0m`)}catch(f){console.error("\x1B[31m\u274C Update failed:\x1B[0m",f.message),process.exit(1)}process.exit(0)}else console.error("Unknown update command. Available options: --update, --update check, --update check latest, --update latest"),process.exit(1)}}let{default:ce}=await import("react"),{render:pe}=await import("ink"),{default:me}=await import("./chunks/app-TTT2UBEU.js");process.env.NODE_NO_WARNINGS="1";let de=["cuimp","Found existing binary","Binary verified","curl.exe not found","Falling back to .bat file","DeprecationWarning"],ue=console.log,ge=console.warn,fe=console.error,B=o=>{let m=o.map(String).join(" ");return de.some(r=>m.includes(r))};console.log=(...o)=>!B(o)&&ue(...o),console.warn=(...o)=>!B(o)&&ge(...o),console.error=(...o)=>!B(o)&&fe(...o);let j=t.findIndex(o=>o==="--cwd"||o==="--path");if(j!==-1&&j+1<t.length){let o=t[j+1],m=await import("path"),r=await import("fs-extra"),d=m.default.resolve(o);try{r.default.existsSync(d)&&r.default.statSync(d).isDirectory()?process.chdir(d):(console.error(`[ERROR] Directory not found: "${o}"`),process.exit(0))}catch(x){console.error(`[ERROR] Failed to change directory to "${o}": ${x.message}`),process.exit(0)}}let I=t.includes("--commit_8f4a2b9c"),G=t.findIndex(o=>o==="-p"||o==="--prompt");if(G!==-1||I){let o=t.includes("--new")||t.includes("-n"),r=(G!==-1?t.slice(G+1).filter(e=>e!=="-n"&&e!=="--new"):[])[0];if(I)try{let{execSync:e}=await import("child_process"),a=e("git diff --cached",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();a||process.exit(0),r=`Git Staged Diff:
69
+ /update latest Install latest release`),process.exit(0)),te){let C=t[1]||"latest";if(C==="check"){let f=t[2]==="latest";try{let y=(await(await fetch("https://registry.npmjs.org/fluxflow-cli",{cache:"no-store"})).json())["dist-tags"]?.latest;y||(console.error("Error: Could not retrieve latest version."),process.exit(1)),console.log(f?`Latest version: v${y}`:y!==n?`A new version of FluxFlow is available: v${y} (current: v${n}). Run "fluxflow --update latest" to upgrade.`:`FluxFlow is up to date (v${n}).`)}catch(l){console.error("Error checking for updates:",l.message),process.exit(1)}process.exit(0)}else if(C==="latest"){console.log("Checking latest version and settings...");try{let c=(await(await fetch("https://registry.npmjs.org/fluxflow-cli",{cache:"no-store"})).json())["dist-tags"]?.latest;c||(console.error("Error: Could not retrieve latest version."),process.exit(1)),c===n&&(console.log(`FluxFlow is already up to date (v${n}).`),process.exit(0));let y=async()=>{let s=(await import("react")).default,{useState:N}=s,{render:U,Box:S,Text:b}=await import("ink"),_=(await import("ink-select-input")).default,P=(await import("ink-text-input")).default;return new Promise(Y=>{let F=[{label:"NPM",value:"npm"},{label:"PNPM",value:"pnpm"},{label:"Yarn",value:"yarn"},{label:"Bun",value:"bun"},{label:"Custom Command",value:"custom"}],q=({label:M,isSelected:E})=>s.createElement(S,{width:"100%"},s.createElement(b,{bold:E},"\u2514\u2500 ",E?"\x1B[32m\u25CF\x1B[0m":"\u25CB"," ",M)),O,W=()=>{let[M,E]=N("select"),[X,V]=N(""),z=h=>{h.value==="custom"?E("custom"):D({manager:h.value})},J=h=>{D({manager:"custom",customCommand:h})};return M==="custom"?s.createElement(S,{flexDirection:"column",marginY:1},s.createElement(S,{marginBottom:1},s.createElement(b,{color:"magenta",bold:!0},"\u{1F527} Enter custom update command:")),s.createElement(S,{flexDirection:"row"},s.createElement(b,{color:"cyan",bold:!0}," \u276F "),s.createElement(P,{value:X,onChange:V,onSubmit:J})),s.createElement(S,{marginTop:1},s.createElement(b,{color:"gray",dimColor:!0,italic:!0}," (Press Enter to confirm)"))):s.createElement(S,{flexDirection:"column",marginY:1},s.createElement(S,{marginBottom:1},s.createElement(b,{color:"magenta",bold:!0},"\u{1F4E6} Select a package manager for the update:")),s.createElement(_,{items:F,onSelect:z,itemComponent:q,indicatorComponent:()=>null}))},D=M=>{O&&O(),Y(M)},{unmount:H}=U(s.createElement(W,null));O=H})},i,k="",A;try{let{loadSettings:s}=await import("./chunks/settings-MGEVTCE4.js");A=await s(),i=A?.systemSettings?.updateManager||A?.updateManager}catch{}if(!i){let s=await y();i=s.manager,k=s.customCommand}let p="";i==="pnpm"?p=`pnpm add -g fluxflow-cli@${c}`:i==="bun"?p=`bun add -g fluxflow-cli@${c}`:i==="yarn"?p=`yarn global add fluxflow-cli@${c}`:i==="custom"?p=k||A?.customUpdateCommand||`npm install -g fluxflow-cli@${c}`:p=`npm install -g fluxflow-cli@${c}`,console.log(`Updating FluxFlow to v${c} using ${i}...`),console.log(`Running: ${p}`);let{execSync:w}=await import("child_process");w(p,{stdio:"inherit"}),console.log(`\x1B[32m\u2705 Update successful! FluxFlow updated to v${c}.\x1B[0m`)}catch(f){console.error("\x1B[31m\u274C Update failed:\x1B[0m",f.message),process.exit(1)}process.exit(0)}else console.error("Unknown update command. Available options: --update, --update check, --update check latest, --update latest"),process.exit(1)}}let{default:ce}=await import("react"),{render:pe}=await import("ink"),{default:me}=await import("./chunks/app-H54JNKMS.js");process.env.NODE_NO_WARNINGS="1";let de=["cuimp","Found existing binary","Binary verified","curl.exe not found","Falling back to .bat file","DeprecationWarning"],ue=console.log,ge=console.warn,fe=console.error,B=o=>{let m=o.map(String).join(" ");return de.some(r=>m.includes(r))};console.log=(...o)=>!B(o)&&ue(...o),console.warn=(...o)=>!B(o)&&ge(...o),console.error=(...o)=>!B(o)&&fe(...o);let j=t.findIndex(o=>o==="--cwd"||o==="--path");if(j!==-1&&j+1<t.length){let o=t[j+1],m=await import("path"),r=await import("fs-extra"),d=m.default.resolve(o);try{r.default.existsSync(d)&&r.default.statSync(d).isDirectory()?process.chdir(d):(console.error(`[ERROR] Directory not found: "${o}"`),process.exit(0))}catch(x){console.error(`[ERROR] Failed to change directory to "${o}": ${x.message}`),process.exit(0)}}let I=t.includes("--commit_8f4a2b9c"),G=t.findIndex(o=>o==="-p"||o==="--prompt");if(G!==-1||I){let o=t.includes("--new")||t.includes("-n"),r=(G!==-1?t.slice(G+1).filter(e=>e!=="-n"&&e!=="--new"):[])[0];if(I)try{let{execSync:e}=await import("child_process"),a=e("git diff --cached",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();a||process.exit(0),r=`Git Staged Diff:
70
70
  ${a}
71
71
  ---
72
72
 
@@ -78,7 +78,7 @@ ${r}`:r=n}if(!I&&!process.stdin.isTTY){let e=[];for await(let v of process.stdin
78
78
  ${a}
79
79
  ---
80
80
 
81
- ${r}`:r=a}}r||(console.error("[ERROR] -p/--prompt requires a prompt string (or piped stdin input)."),process.exit(1));let{loadSettings:C}=await import("./chunks/settings-MGEVTCE4.js"),{getProviderAPIKey:f}=await import("./chunks/secrets-5TCTEPEV.js"),{getDefaultModel:l}=await import("./chunks/model_config-32SB7PTZ.js"),{generateSimpleContent:c}=await import("./chunks/ai-BZA7TWT3.js"),{checkQuotaDetailed:y}=await import("./chunks/usage-MRIV7SXL.js"),i=await C(),k=t.filter(e=>e!=="-p"&&e!=="--prompt"&&e!==r&&e!=="-n"&&e!=="--new"),A=I||k.includes("--raw")||t.includes("--raw"),p=e=>{for(let a of e){let v=k.indexOf(a);if(v!==-1&&v+1<k.length)return k[v+1]}return null},w=p(["--provider"])||i.aiProvider||"Google",s=p(["--model"])||i.activeModel||l(w,i.apiTier)||l(w,"paid"),N=p(["--key"])||await f(w);!N&&!(w==="c_openai"&&i.systemSettings?.customOpenAIBaseUrl)&&(console.error(`[ERROR] No API key resolved for provider "${w}".`),process.exit(1));let U=await y("agent",{aiProvider:w});U.allowed||(console.error(`[ERROR] ${U.reason||"Budget Exhausted"} - adjust with /budget set.`),process.exit(1));let{name:S="",nickname:b="",instructions:_=""}=i?.profileData??{},P={aiProvider:w,apiKey:N,model:s,mode:"flow",thinkingLevel:p(["--thinking"])||"Fast",systemSettings:i.systemSettings||{}},Y=process.platform==="win32"?"Windows":process.platform==="darwin"?"macOS":"Linux",F=new Date,q=F.getFullYear(),O=F.toLocaleString("en-US",{month:"short"}).toUpperCase(),W=String(F.getDate()).padStart(2,"0"),D=F.toLocaleTimeString([],{hour:"2-digit",hour12:!0}),H=`${q}-${O}-${W}, ${D}`,M=(P.model||"").replace(/^.*::/,"").split(":")[0].replace(/\/free$/,"").trim(),E=Q.basename(M).replace(/-free$/,"").replace(/_free$/,"").replace(/^free_/,"").replaceAll("-"," ").replaceAll("_"," ").replace(/\b\w/g,e=>e.toUpperCase().trim()),X=`Identity: FluxFlow. Sassy, CLI Assistant
81
+ ${r}`:r=a}}r||(console.error("[ERROR] -p/--prompt requires a prompt string (or piped stdin input)."),process.exit(1));let{loadSettings:C}=await import("./chunks/settings-MGEVTCE4.js"),{getProviderAPIKey:f}=await import("./chunks/secrets-5TCTEPEV.js"),{getDefaultModel:l}=await import("./chunks/model_config-32SB7PTZ.js"),{generateSimpleContent:c}=await import("./chunks/ai-BN2T224B.js"),{checkQuotaDetailed:y}=await import("./chunks/usage-MRIV7SXL.js"),i=await C(),k=t.filter(e=>e!=="-p"&&e!=="--prompt"&&e!==r&&e!=="-n"&&e!=="--new"),A=I||k.includes("--raw")||t.includes("--raw"),p=e=>{for(let a of e){let v=k.indexOf(a);if(v!==-1&&v+1<k.length)return k[v+1]}return null},w=p(["--provider"])||i.aiProvider||"Google",s=p(["--model"])||i.activeModel||l(w,i.apiTier)||l(w,"paid"),N=p(["--key"])||await f(w);!N&&!(w==="c_openai"&&i.systemSettings?.customOpenAIBaseUrl)&&(console.error(`[ERROR] No API key resolved for provider "${w}".`),process.exit(1));let U=await y("agent",{aiProvider:w});U.allowed||(console.error(`[ERROR] ${U.reason||"Budget Exhausted"} - adjust with /budget set.`),process.exit(1));let{name:S="",nickname:b="",instructions:_=""}=i?.profileData??{},P={aiProvider:w,apiKey:N,model:s,mode:"flow",thinkingLevel:p(["--thinking"])||"Fast",systemSettings:i.systemSettings||{}},Y=process.platform==="win32"?"Windows":process.platform==="darwin"?"macOS":"Linux",F=new Date,q=F.getFullYear(),O=F.toLocaleString("en-US",{month:"short"}).toUpperCase(),W=String(F.getDate()).padStart(2,"0"),D=F.toLocaleTimeString([],{hour:"2-digit",hour12:!0}),H=`${q}-${O}-${W}, ${D}`,M=(P.model||"").replace(/^.*::/,"").split(":")[0].replace(/\/free$/,"").trim(),E=Q.basename(M).replace(/-free$/,"").replace(/_free$/,"").replace(/^free_/,"").replaceAll("-"," ").replaceAll("_"," ").replace(/\b\w/g,e=>e.toUpperCase().trim()),X=`Identity: FluxFlow. Sassy, CLI Assistant
82
82
  Use NO markdown, only plain text
83
83
  Context:
84
84
  - OS: ${Y}
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "4.41.0",
4
- "date": "2026-10-24",
3
+ "version": "4.42.0",
4
+ "date": "2026-10-25",
5
5
  "description": "One of the lightest, fastest, high-fidelity agentic CLI with sub-agents & advance computer use.",
6
6
  "keywords": [
7
7
  "ai",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "4.41.0",
4
- "date": "2026-10-24",
3
+ "version": "4.42.0",
4
+ "date": "2026-10-25",
5
5
  "description": "One of the lightest, fastest, high-fidelity agentic CLI with sub-agents & advance computer use.",
6
6
  "keywords": [
7
7
  "ai",
@@ -1 +0,0 @@
1
- import{A as r,B as s,C as t,D as u,k as b,l as c,m as d,n as e,o as f,p as g,q as h,r as i,s as j,t as k,u as l,v as m,w as n,x as o,y as p,z as q}from"./chunk-NEOXX2J6.js";import"./chunk-HFTI3R3Q.js";import"./chunk-52STSLCN.js";import"./chunk-56EJGQU3.js";import"./chunk-M46I73DX.js";import"./chunk-CTKW7YYV.js";import"./chunk-WTMVNZDA.js";import"./chunk-6EYQQ7GQ.js";import"./chunk-4BLSASW6.js";import"./chunk-Y5JU726N.js";import"./chunk-FXRFFNRK.js";import"./chunk-XDCDANJJ.js";import"./chunk-Y73PU7CC.js";import{l as a}from"./chunk-KMOTPBF5.js";import"./chunk-P5HBJA23.js";import"./chunk-26BQ45XP.js";export{c as RE_LEADING_THINK,r as compressHistory,b as convertChannelThinkTags,s as deleteChatSummary,e as findGenuineThinkClose,q as generateSimpleContent,t as getAIStream,o as getActiveToolContext,j as getCleanGroupedLength,m as getGoogleClient,f as getLeadingThinkBlock,p as initAI,d as isInsideBacktick,a as isModelMultimodal,l as isTerminationSignaled,n as runJanitorTask,u as runSubagent,k as signalTermination,g as stripLeadingThinking,h as stripNakedXmlTags,i as stripTrailingFluffAfterTools};