fluxflow-cli 4.9.0 → 4.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{ai-C6SSGCTT.js → ai-5QIAOHQ7.js} +1 -1
- package/dist/chunks/{app-LFQK2PKQ.js → app-RGBQV6J6.js} +76 -76
- package/dist/chunks/{chunk-BQQGML7T.js → chunk-OZ2EUJLG.js} +1 -1
- package/dist/chunks/{chunk-LD4KZAYI.js → chunk-QQXHAYOT.js} +1 -1
- package/dist/chunks/{chunk-FHI2LU2P.js → chunk-THILP7P5.js} +182 -179
- package/dist/chunks/{chunk-CCXXAPYH.js → chunk-W3TQYL57.js} +1 -1
- package/dist/chunks/{chunk-A4PE46B4.js → chunk-Y3JUWKDQ.js} +1 -1
- package/dist/chunks/{screen_grid-QAZBAXG2.js → screen_grid-2QLQELW7.js} +1 -1
- package/dist/chunks/{settings-KQLTW4BV.js → settings-V4MURDR6.js} +1 -1
- package/dist/chunks/usageServer-BF2USVQQ.js +1 -0
- package/dist/cli.js +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/chunks/usageServer-XUF3PHP4.js +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import{b as mr}from"./chunk-JSVFQZL2.js";import{e as
|
|
1
|
+
import{b as mr}from"./chunk-JSVFQZL2.js";import{e as Dt,g as Yt,i as Li,j as Di,k as Pi,l as Fi,m as Ni}from"./chunk-W3TQYL57.js";import{c as bt,d as vo,g as de,h as on}from"./chunk-QQXHAYOT.js";import{a as pr,b as Oi,c as se,d as ye}from"./chunk-SIINYZWE.js";import{a as Ct,c as Fn,d as yn,e as Ts,f as Ao,g as Mo,j as Ut,k as nn,l as Nn,m as Kn,n as dn,o as wn,p as co,q as fr,r as Vn,s as uo}from"./chunk-4TZKD2XR.js";import{a as Qe,c as Rs}from"./chunk-56EJGQU3.js";import{c as Ui,d as Bi,e as Vo}from"./chunk-OZ2EUJLG.js";import Jt from"dotenv";import{GoogleGenAI as ml,ThinkingLevel as mt,HarmBlockThreshold as eo,HarmCategory as to}from"@google/genai";import{execSync as ji}from"child_process";import{spawn as hr}from"child_process";var D=e=>{let n={};if(!e)return n;let t=0;for(;t<e.length;){for(;t<e.length&&/[\s,]/.test(e[t]);)t++;if(t>=e.length)break;let o=e.substring(t).match(/^(\w+)\s*=\s*/);if(!o){t++;continue}let s=o[1];t+=o[0].length;let r="";if(t<e.length&&(e[t]==='"'||e[t]==="'"||e[t]==="`")){let a=e[t];t++;let i=t,p=-1,d=t;for(;d<e.length;){let l=e.indexOf(a,d);if(l===-1)break;let f=0;for(let y=l-1;y>=0&&e[y]==="\\";y--)f++;if(f%2!==0){d=l+1;continue}let u=e.substring(l+1),m=u.trim(),g=m===""||/^,\s*\w+\s*=/.test(m)||m.startsWith(")")&&(m.length===1||/^\)\s*([,\]\s]|\[\[?tool:)/i.test(m));if(g&&u.startsWith(`
|
|
2
2
|
`)){let y=m.split(`
|
|
3
3
|
`)[0];if(!y.includes("=")&&!y.includes(")")){d=l+1;continue}}if(g){p=l;break}d=l+1}p!==-1?(r=e.substring(i,p),t=p+1):(r=e.substring(i),t=e.length);let c=s.toLowerCase().includes("path")||["dest","source","to","from"].includes(s.toLowerCase());r=r.replace(/\\(.)/g,(l,f)=>{switch(f){case"n":return`
|
|
4
4
|
`;case"r":return"\r";case"t":return" ";case"\\":return"\\";default:return f===a?a:f}})}else if(t<e.length&&e[t]==="["){let a=0,i=null,p=t,d=-1;for(let c=t;c<e.length;c++){let l=e[c];if(i&&l===i){let f=0;for(let u=c-1;u>=0&&e[u]==="\\";u--)f++;f%2===0&&(i=null)}else!i&&(l==='"'||l==="'"||l==="`")&&(i=l);if(!i&&(l==="["?a++:l==="]"&&a--,a===0)){d=c;break}}if(d!==-1){r=e.substring(p,d+1),t=d+1;try{let c=r.trim();c.startsWith("'")||c.includes("'")}catch{}}else r=e.substring(p),t=e.length}else{let a=e.substring(t),i=a.match(/,\s*\w+\s*=|(?:\s*\)\s*(?:$|\]\]))/);if(i){let p=i.index;r=a.substring(0,p).trim(),t+=p}else r=a.trim(),t=e.length}r==="true"?r=!0:r==="false"?r=!1:typeof r=="string"&&!isNaN(r)&&r.trim()!==""&&(r=Number(r)),typeof r=="string"&&(s.toLowerCase().includes("path")||["dest","source","to","from"].includes(s.toLowerCase()))&&(r=r.replace(/\x0C/g,"\\f").replace(/\x0D/g,"\\r").replace(/\x0B/g,"\\v").replace(/\x08/g,"\\b")),n[s]=r}return n};var Es=null;try{let e=await import("node-pty");Es=e.default||e}catch{}var vd=!!Es,_s=e=>typeof e!="string"?e:e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),gr=e=>{if(!e)return"";let n=[[]],t=0,o=0,s=/\x1b\[([0-9;]*?)([a-zA-Z])/g,r=0,a,i=d=>{for(let c=0;c<d.length;c++){let l=d[c];if(l===`
|
|
5
5
|
`)for(t++,o=0;t>=n.length;)n.push([]);else if(l==="\r")o=0;else{for(;t>=n.length;)n.push([]);let f=n[t];for(;o>f.length;)f.push(" ");f[o]=l,o++}}};for(;(a=s.exec(e))!==null;){i(e.substring(r,a.index));let d=a[1],c=a[2],l=d?d.split(";").map(Number):[];if(c==="A"){let f=l[0]||1;t=Math.max(0,t-f)}else if(c==="B"){let f=l[0]||1;for(t=t+f;t>=n.length;)n.push([])}else if(c==="C"){let f=l[0]||1;o=o+f}else if(c==="D"){let f=l[0]||1;o=Math.max(0,o-f)}else if(c==="G"){let f=(l[0]||1)-1;o=Math.max(0,f)}else if(c==="H"||c==="f"){let f=(l[0]||1)-1,u=(l[1]||1)-1;for(t=Math.max(0,f),o=Math.max(0,u);t>=n.length;)n.push([])}else if(c==="K"){let f=l[0]||0;if(t<n.length){let u=n[t];if(f===0)u.length=o;else if(f===1)for(let m=0;m<o&&m<u.length;m++)u[m]=" ";else f===2&&(u.length=0)}}else if(c==="J"){let f=l[0]||0;(f===2||f===3)&&(n.length=0,n.push([]),t=0,o=0)}r=s.lastIndex}i(e.substring(r));let p=n.map(d=>d.join(""));for(;p.length>0&&p[p.length-1]==="";)p.pop();return p.join(`
|
|
6
|
-
`)},
|
|
6
|
+
`)},kt=null,Yo=!1,Id=e=>{try{kt&&(Yo&&typeof kt.write=="function"?kt.write(e):kt.stdin&&kt.stdin.writable&&kt.stdin.write(e))}catch{}},Od=()=>{if(kt){try{Yo&&typeof kt.destroy=="function"?kt.destroy():typeof kt.kill=="function"&&(process.platform==="win32"?hr("taskkill",["/pid",kt.pid,"/f","/t"]):kt.kill("SIGKILL"))}catch{}kt=null,Yo=!1}},yr=(e,n=!1)=>{if(process.platform!=="win32")return e;let t=[],o="",s=null,r=!1;for(let c=0;c<e.length;c++){let l=e[c];if(r){o+=l,r=!1;continue}if(l==="\\"){if(e[c+1]===" "){o+=" ",c++;continue}o+=l,r=!0;continue}s?(l===s&&(s=null),o+=l):l==='"'||l==="'"?(s=l,o+=l):l===";"&&!o.includes("://")?(o.length>0&&(t.push(o),o=""),t.push(n?";":"&")):l==="&"&&!o.includes("://")?e[c+1]==="&"?(o.length>0&&(t.push(o),o=""),t.push("&&"),c++):(o.length>0&&(t.push(o),o=""),t.push("&")):l==="|"&&!o.includes("://")?(o.length>0&&(t.push(o),o=""),t.push("|")):/\s/.test(l)?o.length>0&&(t.push(o),o=""):o+=l}o.length>0&&t.push(o);let a=c=>!(!c.includes("/")||/^(https?|file|ftp):\/\//i.test(c)||c.startsWith("@")||c.startsWith("/")&&(c.match(/\//g)||[]).length===1||/\s\/|\/\s/.test(c)||/[\(\)\{\}\;\<\>\=\'\"]/.test(c)),i=[];for(let c=0;c<t.length;c++){let l=t[c];if(l==="mkdir"&&n&&Un()){let f=[],u=c+1;for(;u<t.length;){let m=t[u];if([">",">>","<","&","&&","|","||",";"].includes(m))break;m!=="-p"&&m!=="--parents"&&m!=="-v"&&m!=="--verbose"&&f.push(m),u++}if(f.length>0){let m=f.map(g=>{let y=g.replace(/^['"]|['"]$/g,""),h=g;return a(y)&&(h=g.replace(/\//g,"\\")),h});i.push("New-Item","-ItemType","Directory","-Force","-Path",m.join(","))}else i.push("New-Item","-ItemType","Directory","-Force");c=u-1;continue}if(l==="rm"&&n&&Un()){let f=[],u=!1,m=!1,g=c+1;for(;g<t.length;){let h=t[g];if([">",">>","<","&","&&","|","||",";"].includes(h))break;h==="-rf"||h==="-fr"?(u=!0,m=!0):h==="-r"||h==="-R"||h==="--recursive"?u=!0:h==="-f"||h==="--force"?m=!0:f.push(h),g++}let y=["Remove-Item"];if(u&&y.push("-Recurse"),m&&y.push("-Force"),f.length>0){let h=f.map(b=>{let w=b.replace(/^['"]|['"]$/g,""),T=b;return a(w)&&(T=b.replace(/\//g,"\\")),T});y.push("-Path",h.join(","))}i.push(...y),c=g-1;continue}if(l==="cp"&&n&&Un()){let f=[],u=!1,m=!1,g=c+1;for(;g<t.length;){let h=t[g];if([">",">>","<","&","&&","|","||",";"].includes(h))break;h==="-r"||h==="-R"||h==="--recursive"?u=!0:h==="-f"||h==="--force"?m=!0:f.push(h),g++}let y=["Copy-Item"];if(u&&y.push("-Recurse"),m&&y.push("-Force"),f.length>0){let h=f.map(b=>{let w=b.replace(/^['"]|['"]$/g,""),T=b;return a(w)&&(T=b.replace(/\//g,"\\")),T});if(h.length>1){let b=h.pop();y.push("-Path",h.join(","),"-Destination",b)}else y.push("-Path",h[0])}i.push(...y),c=g-1;continue}if(l==="touch"&&n&&Un()){let f=[],u=c+1;for(;u<t.length;){let m=t[u];if([">",">>","<","&","&&","|","||",";"].includes(m))break;f.push(m),u++}if(f.length>0){let g=`(${f.map(y=>{let h=y.replace(/^['"]|['"]$/g,""),b=y;return a(h)&&(b=y.replace(/\//g,"\\")),b}).join(", ")}) | ForEach-Object { if (Test-Path $_) { (Get-Item $_).LastWriteTime = [System.DateTime]::Now } else { $null | Out-File -FilePath $_ } }`;i.push(g)}c=u-1;continue}if(l==="|"&&t[c+1]==="tee"){t[c+2]==="-a"?(i.push(">>"),c+=2):(i.push(">"),c+=1);continue}if(l==="|"&&t[c+1]==="cat"&&t[c+2]===">"){i.push(">"),c+=2;continue}if(l==="|"){let f=t[c+1];if(f){let u=f.replace(/^['"]|['"]$/g,""),m=/\.(txt|md|json|log|csv|html|css|py|js|xml|yaml|yml|pdf|docx|pptx|xlsx)$/i.test(u);if(a(u)&&m){i.push(">");continue}}}i.push(l)}let p=!1,d=i.map(c=>{if(c==="echo")return p=!0,c;[">",">>","<","&","&&","|","||",";"].includes(c)&&(p=!1);let f=/^['"]|['"]$/.test(c),u=c;p&&f&&(u=c.replace(/^['"]|['"]$/g,""));let m=/^['"]|['"]$/.test(u),g=u.replace(/^['"]|['"]$/g,"");a(g)&&(u=u.replace(/\//g,"\\"));let y=u.replace(/^['"]|['"]$/g,"");return y.includes(" ")&&!m&&(u=`"${y}"`),u});if(n){let c="",l=0;for(let f=0;f<d.length;f++){let u=d[f];u==="&&"?(c+="; if ($?) {",l++):u===";"?(c+=" }".repeat(l)+";",l=0):(c&&!c.endsWith(" ")&&!c.endsWith("{")&&(c+=" "),c+=u)}return c+=" }".repeat(l),c}return d.join(" ")},wr=async(e,n={})=>{let{command:t}=D(e),{onChunk:o}=n;if(!t)return'ERROR: Missing "command" argument for exec_command.';let s=process.platform==="win32",r=n.systemSettings||{},a={};return r.networkAccess===!1&&(a.HTTP_PROXY="http://127.0.0.1:9999",a.HTTPS_PROXY="http://127.0.0.1:9999",a.ALL_PROXY="socks5://127.0.0.1:9999",a.http_proxy="http://127.0.0.1:9999",a.https_proxy="http://127.0.0.1:9999",a.all_proxy="socks5://127.0.0.1:9999",a.NO_PROXY="localhost,127.0.0.1"),new Promise(i=>{let p=d=>{let c=d==="pwsh"||d==="powershell",l=yr(t,c),f;s?d==="pwsh"?f="pwsh.exe":d==="powershell"?f="powershell.exe":f="cmd.exe":f=process.env.SHELL||"bash";let u=s?c?["-NoProfile","-Command",l]:["/c",l]:["-c",l];if(r.networkAccess===!1&&!s){let m=f,g=[...u];if(process.platform==="linux")f="unshare",u=["-n","-r",m,...g];else if(process.platform==="darwin"){let y=`(version 1)
|
|
7
7
|
(allow default)
|
|
8
8
|
(deny network-outbound)
|
|
9
9
|
(allow network-outbound (remote ip "localhost:*"))
|
|
10
10
|
(allow network-outbound (remote ip "127.0.0.1:*"))
|
|
11
|
-
`;f="sandbox-exec",u=["-p",y,m,...g]}}if(Es)try{let m=Es.spawn(f,u,{name:"xterm-256color",cols:n.cols||120,rows:n.rows||30,cwd:process.cwd(),env:{...process.env,CI:"false",TERM:"xterm-256color",FORCE_COLOR:"1",...a}});
|
|
11
|
+
`;f="sandbox-exec",u=["-p",y,m,...g]}}if(Es)try{let m=Es.spawn(f,u,{name:"xterm-256color",cols:n.cols||120,rows:n.rows||30,cwd:process.cwd(),env:{...process.env,CI:"false",TERM:"xterm-256color",FORCE_COLOR:"1",...a}});kt=m,Yo=!0;let g="",y=!1;return m.onData(h=>{if(!y){g+=h,o&&o(h);let b=_s(g);/(?:Network:\s+use\s+--host\s+to|Network:\s+Type\s+--host\s+to|Local:\s+http:\/\/localhost:\d+|ready in \d+\s*ms|Compiled successfully|Development server is running|Listening on:)/i.test(b)&&(y=!0,setTimeout(()=>i(`SUCCESS: Dev server started successfully in background.
|
|
12
12
|
|
|
13
|
-
${b}`),500))}}),m.onExit(({exitCode:h})=>{if(y)return;
|
|
13
|
+
${b}`),500))}}),m.onExit(({exitCode:h})=>{if(y)return;kt=null;let b=gr(g||""),w=_s(b).replace(/\n{3,}/g,`
|
|
14
14
|
|
|
15
15
|
`)||"Command executed with no output.";i(h!==0?`ERROR: Command [${t}] failed with exit code [${h}].
|
|
16
16
|
|
|
@@ -21,9 +21,9 @@ ${w}`)}),!0}catch(m){return s&&(d==="pwsh"||d==="powershell")&&m.code==="ENOENT"
|
|
|
21
21
|
(deny network-outbound)
|
|
22
22
|
(allow network-outbound (remote ip "localhost:*"))
|
|
23
23
|
(allow network-outbound (remote ip "127.0.0.1:*"))
|
|
24
|
-
`;d="sandbox-exec",c=["-p",h,g,...y]}}let l=i?hr(d,c,{cwd:process.cwd(),env:{...process.env,...o}}):hr(d,c,{cwd:process.cwd(),env:{...process.env,CI:"false",TERM:"xterm-256color",FORCE_COLOR:"1",...o}});
|
|
24
|
+
`;d="sandbox-exec",c=["-p",h,g,...y]}}let l=i?hr(d,c,{cwd:process.cwd(),env:{...process.env,...o}}):hr(d,c,{cwd:process.cwd(),env:{...process.env,CI:"false",TERM:"xterm-256color",FORCE_COLOR:"1",...o}});kt=l,Yo=!1,l.stdin&&l.stdin.on("error",()=>{kt=null});let f="",u="",m=!1;l.stdout.on("data",g=>{if(!m){let y=g.toString();f+=y,s&&s(y);let h=_s(f);/(?:Network:\s+use\s+--host\s+to|Network:\s+Type\s+--host\s+to|Local:\s+http:\/\/localhost:\d+|ready in \d+\s*ms|Compiled successfully|Development server is running|Listening on:)/i.test(h)&&(m=!0,setTimeout(()=>e(`SUCCESS: Dev server started successfully in background.
|
|
25
25
|
|
|
26
|
-
${h}`),500))}}),l.stderr.on("data",g=>{if(!m){let y=g.toString();u+=y,s&&s(y)}}),l.on("close",g=>{if(m)return;
|
|
26
|
+
${h}`),500))}}),l.stderr.on("data",g=>{if(!m){let y=g.toString();u+=y,s&&s(y)}}),l.on("close",g=>{if(m)return;kt=null;let y=[],h=gr(f),b=gr(u);h&&y.push(`STDOUT:
|
|
27
27
|
${h}`),b&&y.push(`STDERR:
|
|
28
28
|
${b}`),g!==0&&y.push(`EXIT CODE: ${g}`);let w=y.join(`
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ ${b}`),g!==0&&y.push(`EXIT CODE: ${g}`);let w=y.join(`
|
|
|
33
33
|
|
|
34
34
|
${T}`:`SUCCESS: Command [${t}] completed.
|
|
35
35
|
|
|
36
|
-
${T}`)}),l.on("error",g=>{if(i&&g.code==="ENOENT"){if(r==="pwsh"){let h=yr(t,!0);return Cs(e,h,t,o,s,"powershell",a)}else if(r==="powershell"){let h=yr(t,!1);return Cs(e,h,t,o,s,"cmd",a)}}
|
|
36
|
+
${T}`)}),l.on("error",g=>{if(i&&g.code==="ENOENT"){if(r==="pwsh"){let h=yr(t,!0);return Cs(e,h,t,o,s,"powershell",a)}else if(r==="powershell"){let h=yr(t,!1);return Cs(e,h,t,o,s,"cmd",a)}}kt=null;let y=g instanceof Error?g.message:String(g);e(`ERROR: Failed to start command [${t}]: ${y}`)})};var Xo=null,Ol=()=>{if(process.platform!=="win32")return!1;if(Xo!==null)return Xo;try{ji("where.exe pwsh.exe",{stdio:"ignore",windowsHide:!0}),Xo=!0}catch{Xo=!1}return Xo},Jo=null,Un=()=>{if(process.platform!=="win32")return!1;if(Jo!==null)return Jo;try{ji("where.exe powershell.exe",{stdio:"ignore",windowsHide:!0}),Jo=!0}catch{Jo=!1}return Jo},Wi=()=>Ol()?"pwsh":Un()?"powershell":"cmd",xr=null,Gi=(e,n,t,o,s=!1,r=!0,a)=>{xr===null&&(xr=s);let i=`- Mandatorily JSON escape literal sequences (backslash: \\\\, newLine: \\ n, quote: \\")
|
|
37
37
|
- Same file, multiple edits? One PatchFile (\u226415 blocks)${a?"":`
|
|
38
38
|
- Tool denied? Ask for guidance`}
|
|
39
39
|
- Need text or huge file? CodeSearch > Full Read
|
|
@@ -46,7 +46,7 @@ ${T}`)}),l.on("error",g=>{if(i&&g.code==="ENOENT"){if(r==="pwsh"){let h=yr(t,!0)
|
|
|
46
46
|
- PatchFile(path=string, allowMultiple?=bool, searchContent1="string match OR ^LINE:start..end$", newContent1=string, ...MAX15). Small searchString. Line Ranges: ^...$ syntax, must for large blocks/escape sequences
|
|
47
47
|
- WriteFile(path=string, content=string). Creates/Overwrites. File Exist? PatchFile > WriteFile
|
|
48
48
|
- CodeSearch(keyword=string, path?="dir/file/glob/regex, inclusion/exclusion ;-separated", fuzzy?=bool, regex?=bool:auto). Find relevant code, standard junk excluded
|
|
49
|
-
- Run(command=string). Runs ${n==="Windows"?
|
|
49
|
+
- Run(command=string). Runs ${n==="Windows"?Un()?"powershell":"windows CMD":"bash"} command. Destructive command \u2192 Ask user
|
|
50
50
|
- Goal(method="create/append/get", tasks=string[], markDone=string[]). If long multi-task: create Goals before starting. get + markDone marks complete
|
|
51
51
|
${xr?`
|
|
52
52
|
**Emergency Tools**
|
|
@@ -132,7 +132,7 @@ Dont waste tokens, be efficient, use least thinking tokens, focus on result
|
|
|
132
132
|
Gather useful context
|
|
133
133
|
Brief thoughts, think only enough to avoid mistakes, verify imports, system stability`,Off:`Effort: Lowest
|
|
134
134
|
No thinking. Immediate response
|
|
135
|
-
Verify imports, tool results & system stability`};import Xn from"fs";import $r from"path";import Pl from"os";import Fl from"screenshot-desktop";import
|
|
135
|
+
Verify imports, tool results & system stability`};import Xn from"fs";import $r from"path";import Pl from"os";import Fl from"screenshot-desktop";import An from"fs";import Yn from"path";import oa from"fs";import br from"path";import{execSync as sa}from"child_process";import{fileURLToPath as Dl}from"url";var qi=`# FluxFlow CLI Startup & Flags Reference
|
|
136
136
|
|
|
137
137
|
Launch command syntax:
|
|
138
138
|
fluxflow [options]
|
|
@@ -140,7 +140,7 @@ fluxflow [options]
|
|
|
140
140
|
## Supported CLI Flags
|
|
141
141
|
* --mode flux | flow | icu | fluxcu \u2192 Startup mode
|
|
142
142
|
* --model model-id \u2192 Session model override
|
|
143
|
-
* --provider google | deepseek | openrouter | nvidia | mistral | ollama | crofai | inferx | sensenova | aihubmix | poolside | 9router \u2192 Override default AI provider
|
|
143
|
+
* --provider google | deepseek | openrouter | nvidia | mistral | ollama | crofai | inferx | sensenova | aihubmix | poolside | 9router | explabs \u2192 Override default AI provider
|
|
144
144
|
* --key key@provider \u2192 Set new API key for provider
|
|
145
145
|
* --thinking Fast | Low | Medium | High | xHigh \u2192 Override reasoning depth
|
|
146
146
|
* --path project/path \u2192 Set working directory for session
|
|
@@ -230,7 +230,7 @@ Trigger in chat via /command
|
|
|
230
230
|
* /changelog \u2192 Release notes
|
|
231
231
|
* /update check \u2192 Check npm updates
|
|
232
232
|
* /update latest \u2192 Install latest release
|
|
233
|
-
`;var
|
|
233
|
+
`;var Vi=`# FluxFlow In-App Settings Reference
|
|
234
234
|
|
|
235
235
|
Open in chat via /settings
|
|
236
236
|
|
|
@@ -278,7 +278,8 @@ Open in chat via /settings
|
|
|
278
278
|
* Directory Tree Design \u2192 Directory visual styling. Modern (Saves Tokens) | Classic (More Tokens)
|
|
279
279
|
* Compact Large Tool Results \u2192 Compress large tool outputs to save tokens (model might miss subtle indentation/syntax errors)
|
|
280
280
|
* Auto Truncate Results \u2192 Auto-truncate tool results after task finished to save token and improve caching
|
|
281
|
-
|
|
281
|
+
* Image History for CU \u2192 Number of images to keep in context for Computer Use. Low (1 image, Low Context Accuracy, Token Efficient) / Standard (3 images, Better Accuracy, Higher Token Usage) / Extended (5 images, Better for complex tasks, Highest Token Usage)
|
|
282
|
+
`;var Yi=`# FluxFlow Tool Reference
|
|
282
283
|
|
|
283
284
|
## Protocol: [tool:functions.ToolName(arg1="val")]
|
|
284
285
|
|
|
@@ -441,9 +442,9 @@ Route sub-agent workloads to faster/cheaper models independently of the main age
|
|
|
441
442
|
`;var ta=`# FluxFlow AI Providers & Setup
|
|
442
443
|
|
|
443
444
|
## Supported Providers
|
|
444
|
-
* Direct: Gemini (aistudio.google.com) | NVIDIA NIM (build.nvidia.com) | DeepSeek (platform.deepseek.com) | Mistral (admin.mistral.ai) | Ollama (ollama.com) | CrofAI (crof.ai) | InferX (model.inferx.net) | SenseNova (platform.sensenova.ai) | Poolside (platform.poolside.ai)
|
|
445
|
-
* Aggregators / Local Proxies: OpenRouter (openrouter.ai) | AIHubMix (aihubmix.com)
|
|
446
|
-
* Local Proxy: 9router. Can use OAuth subscription like Codex, Claude Code, GitHub Copilot etc. or use providers not natively in Fluxflow. Set ENV ENABLE_9ROUTER=true, needs 9router package installed (via npm
|
|
445
|
+
* Direct: Gemini (aistudio.google.com) | NVIDIA NIM (build.nvidia.com) | DeepSeek (platform.deepseek.com) | Mistral (admin.mistral.ai) | Ollama (ollama.com) | CrofAI (crof.ai) | InferX (model.inferx.net) | SenseNova (platform.sensenova.ai) | Poolside (platform.poolside.ai)
|
|
446
|
+
* Aggregators / Local Proxies: OpenRouter (openrouter.ai) | AIHubMix (aihubmix.com) | Experiential Labs (api.experientiallabs.ai)
|
|
447
|
+
* Local Proxy: 9router. Can use OAuth subscription like Codex, Claude Code, GitHub Copilot etc. or use providers not natively in Fluxflow. Set ENV ENABLE_9ROUTER=true, needs 9router package installed (eg via npm) & running
|
|
447
448
|
|
|
448
449
|
* Fluxflow has default model list for many providers, updated based on vibes. Can be overriden using /model <model-id>
|
|
449
450
|
|
|
@@ -510,15 +511,17 @@ Documentation: https://fluxflow-cli.onrender.com
|
|
|
510
511
|
* Priority Instructions (AGENTS.md/FLUXFLOW.md) & Skill System \u2192 references/PLUGINS.md
|
|
511
512
|
* Agent Architecture & Memory System \u2192 references/ARCHITECTURE.md
|
|
512
513
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
514
|
+
Default Context Length: 256k Tokens. Want Change? \u2192 references/ENV.md
|
|
515
|
+
|
|
516
|
+
Docs missing required info? Say you are not sure enough to answer. Dont give wrong info`,"references/MODES.md":ea,"references/PROVIDERS.md":ta,"references/PLUGINS.md":na,"references/STARTUP.md":qi,"references/ENV.md":zi,"references/COMMANDS.md":Ki,"references/SETTINGS.md":Vi,"references/TOOLS.md":Yi,"references/ARCHITECTURE.md":Xi,"references/SUB_AGENTS.md":Ji,"references/SECURITY.md":Qi,"references/IDE.md":Zi};var ra=()=>{try{let e=Yn.join(Ct,"skills","fluxflow"),n=Yn.join(e,"references");if(process.env.NO_DEV==="true"||process.env.NO_DEV==="1"||process.env.NO_DEV===!0||process.env.NO_INS==="true"||process.env.NO_INS==="1"||process.env.NO_INS===!0||!1){An.existsSync(e)&&An.rmSync(e,{recursive:!0,force:!0});return}let o=new Set(Object.keys(kr).map(s=>Yn.normalize(s)));for(let[s,r]of Object.entries(kr)){let a=Yn.join(e,s),i=Yn.dirname(a);An.existsSync(i)||An.mkdirSync(i,{recursive:!0});let p=r.trim()+`
|
|
517
|
+
`,d=null;An.existsSync(a)&&(d=An.readFileSync(a,"utf8")),d!==p&&An.writeFileSync(a,p,"utf8")}if(An.existsSync(n)){let s=An.readdirSync(n);for(let r of s){let a=Yn.normalize(Yn.join("references",r));if(!o.has(a)){let i=Yn.join(n,r);try{An.rmSync(i,{recursive:!0,force:!0})}catch{}}}}}catch{}};var Ar=(e,n)=>{try{if(!Xn.existsSync(e))return null;let t=Array.isArray(n)?n.map(s=>s.toLowerCase()):[n.toLowerCase()],o=Xn.readdirSync(e);for(let s of t){let r=o.find(a=>a.toLowerCase()===s);if(r){let a=$r.join(e,r);if(Xn.statSync(a).isFile())return a}}}catch{}return null},la=(e,n)=>{let t=Ar(e,n);if(t)try{return Xn.readFileSync(t,"utf8")}catch{}return""},Er=Ar(Ct,["fluxflow.md","agent.md","agents.md"]),_r=Ar(process.cwd(),["fluxflow.md","agent.md","agents.md"]),Nl=Er?la(Ct,["fluxflow.md","agent.md","agents.md"]).trim():"",Cr="",ca=!1,Ul=e=>{if(!e||!/^<<<[\s\S]*?Identity:/m.test(e))return e;let n=e.match(/^<<<\s*\r?\n([\s\S]*?)\r?\n>>>\s*(?:\r?\n)?([\s\S]*)$/);if(!n)return e;let t=n[1],o=n[2],s=t.match(/^Identity:\s*([\s\S]*?)(?=\r?\n\s*(?:<><|>>>)|$)/m);return s&&(Cr=s[1].trim(),process.env.NO_INS=!0),/<><\s*NO_INS/.test(t)&&(ca=!0),o.trim()},Io=Ul(Nl);ra();var Zo=_r?la(process.cwd(),["fluxflow.md","agent.md","agents.md"]).trim():"",Bl=e=>{if(!e)return null;let n=e.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!n)return null;let t=n[1];if((n[2]||"").trim().length===0)return null;let s="",r="",a=t.match(/^name:\s*(.+)$/m),i=t.match(/^description:\s*(.+)$/m);return a&&(s=a[1].trim().replace(/^["']|["']$/g,"")),i&&(r=i[1].trim().replace(/^["']|["']$/g,"")),s&&r?{name:s,description:r}:null},Wl=e=>{let n=[];if(!e||!Xn.existsSync(e))return n;let t=(o,s=0)=>{if(!(s>5))try{let r=Xn.readdirSync(o,{withFileTypes:!0});for(let a of r){let i=$r.join(o,a.name),p=a.name.toLowerCase();a.isFile()?p==="skill.md"&&n.push(i):a.isDirectory()&&(s===0?(p==="skills"||p===".skills"||p==="skill"||p===".skill")&&t(i,s+1):t(i,s+1))}}catch{}};return t(e,0),n},da=e=>{let n=Wl(e),t=[];for(let o of n)try{let s=Xn.readFileSync(o,"utf8"),r=Bl(s);r&&t.push({...r,filePath:o})}catch{}return t},ua=e=>!e||e.length===0?"":e.map(n=>`- ${n.name}: ${n.description}`).join(`
|
|
518
|
+
`),fa=da(Ct),pa=da(process.cwd()),Sr=ua(fa),Tr=ua(pa),ma=e=>{if(!e)return!1;let n=(e.filePath||"").replace(/\\/g,"/").toLowerCase();return n.includes("/skills/fluxflow/skill.md")||n.includes("/skills/about-fluxflow/skill.md")||e.name?.toLowerCase()==="fluxflow"},ha=()=>(fa||[]).filter(e=>!ma(e)),ga=()=>(pa||[]).filter(e=>!ma(e)),Iu=(Io?1:0)+(Zo?1:0)+ha().length+ga().length,Rr=(e,n="Project")=>{if(!e)return"";let t=e.replace(/\\/g,"/");if(n==="Global"){let s=Pl.homedir().replace(/\\/g,"/");return t.toLowerCase().startsWith(s.toLowerCase())?"~"+t.slice(s.length):t}let o=$r.relative(process.cwd(),e).replace(/\\/g,"/");return o.startsWith(".")?o:`./${o}`},Ou=()=>{let e=[];Er&&Io.length>0&&e.push({scope:"Global",path:Er}),_r&&Zo.length>0&&e.push({scope:"Project",path:_r});let n=ha(),t=ga(),o=e.length+n.length+t.length;if(o===0)return`\u2726 Loaded Files & Instructions
|
|
516
519
|
\u2800\u2800\x1B[2m\u2514\u2500\x1B[22m No instruction or skill files are currently loaded.
|
|
517
520
|
\u2800`;let s=[];return s.push(`\u2726 Loaded Files & Instructions (${o} ${o===1?"file":"files"} active)`),e.length>0&&(s.push(`
|
|
518
521
|
\x1B[1mInstructions:\x1B[22m`),e.forEach(r=>{s.push(` \u2022 [${r.scope}] ${Rr(r.path,r.scope)}`)})),(n?.length>0||t?.length>0)&&(s.push(`
|
|
519
522
|
\x1B[1mSkills:\x1B[22m`),n?.length>0&&n.forEach(r=>{s.push(` \u2022 [Global] \x1B[36m${r.name}\x1B[39m`),s.push(` \x1B[2m\u2514\u2500 ${Rr(r.filePath,"Global")}\x1B[22m`)}),t?.length>0&&t.forEach(r=>{s.push(` \u2022 [Project] \x1B[36m${r.name}\x1B[39m`),s.push(` \x1B[2m\u2514\u2500 ${Rr(r.filePath,"Project")}\x1B[22m`)})),s.push("\u2800"),s.join(`
|
|
520
|
-
`)},ya=!1;(async()=>{try{let e=await
|
|
521
|
-
`):Qo=""}catch(t){Qo="",Xn.appendFileSync(`${
|
|
523
|
+
`)},ya=!1;(async()=>{try{let e=await on();if(Number(e?.display)===1){let n=await Fl.listDisplays();n&&n.length>1&&(ya=!0)}}catch{}})();var ia=null,Qo=null,aa=process.platform==="win32"?"Windows":process.platform==="darwin"?"macOS":"Linux",Lu=process.env.NO_DEV||!1,jl=(e,n)=>{if(!n)return"";if(e!==ia||Qo===null){ia=e;try{let t=se(Ut,[]);Array.isArray(t)&&t.length>0?Qo=t.map(o=>`- ${o.memory}`).join(`
|
|
524
|
+
`):Qo=""}catch(t){Qo="",Xn.appendFileSync(`${yn}/memory/error.txt`,`${t.message}
|
|
522
525
|
-------------------------------------------------
|
|
523
526
|
|
|
524
527
|
`)}}return Qo},wa=(e="",n="",t=!0,o=!1)=>{if(typeof n=="boolean"&&(o=t,t=n,n=""),!t)return"";let s=e?.length>0&&!o?`-- Recent context from other chats (Priority: Low, Focus: Chat Context > Recent) --
|
|
@@ -547,7 +550,7 @@ ${Zo}`:""}
|
|
|
547
550
|
`:"",w=(()=>{let $=process.cwd().toLowerCase();if(process.platform==="win32"){let R=process.env.SystemRoot?.toLowerCase()||"c:\\windows",k=process.env.ProgramFiles?.toLowerCase()||"c:\\program files",S=process.env["ProgramFiles(x86)"]?.toLowerCase()||"c:\\program files (x86)";return $.startsWith(R)||$.startsWith(k)||$.startsWith(S)}else return $==="/"||["/bin","/sbin","/etc","/usr","/var","/root"].some(k=>$.startsWith(k))})();return`${process.env.I_HAVE_TOO_MUCH_MONEY==="true"||process.env.I_HAVE_TOO_MUCH_MONEY===!0||!1?`${" ".repeat(Math.floor(Math.random()*4)+1)}`:""}=== SYSTEM PROMPT ===
|
|
548
551
|
Identity: ${Cr.length>1?Cr:"Flux Flow. Sassy, Friendly, CLI Assistant"}
|
|
549
552
|
${ca?"":`${t==="Flux"?"Stepwise Execution, Run Automated Tests. Task Completion":t==="Flow"?"Concise, Humorous, Sarcastic":t==="ICU"?"Computer Use Capabilities. Screenshot as ground truth, analyze grid ids overlapping/close to target, keyboard shortcuts > mouse clicks":"Computer Use & Workspace Capabilities. Screenshot as ground truth, analyze grid ids overlapping/close to target, keyboard shortcuts > mouse clicks. Workspace Tools if faster. Focus on Productivity"}`}${ya&&t.toLowerCase().includes("cu")?`
|
|
550
|
-
|
|
553
|
+
- Running on secondary screen. Opened app not visible in screenshot? Might be opened on primary. Use 'AskUser' with NO options and tell user to move app window to secondary`:""}
|
|
551
554
|
|
|
552
555
|
- OS: ${aa}${s?`
|
|
553
556
|
- Use relative time reference eg. few mins ago
|
|
@@ -560,7 +563,7 @@ ${a==="Mistral"||a==="Google"&&!p?`${l}
|
|
|
560
563
|
${c||n!=="Fast"&&(a==="Mistral"&&!p||n!=="xHigh"&&!p)?`critical thinking policy
|
|
561
564
|
Use <think>...</think> for reasoning before responding any queries
|
|
562
565
|
`:""}`:`${l}
|
|
563
|
-
`}${a==="ExpLabs"?`Before calling tools:
|
|
566
|
+
`}${a==="ExpLabs"?`Before calling tools: Summarize your reasoning briefly, including plans, and decisions
|
|
564
567
|
`:""}No text after tool call in same turn
|
|
565
568
|
|
|
566
569
|
${Gi(t,aa,i,a,o?.advanceRollback,o?.subAgents!==!1,!!o?.autoExec)}${s?`
|
|
@@ -604,12 +607,12 @@ ${Hi(n,t)}
|
|
|
604
607
|
=== END SYSTEM PROMPT ===${e?`
|
|
605
608
|
|
|
606
609
|
-- current saved user memories --
|
|
607
|
-
${e}`:""}`.trim();import
|
|
610
|
+
${e}`:""}`.trim();import Ot from"fs-extra";import Ms from"path";import{nanoid as ql}from"nanoid";import gt from"fs-extra";import un from"path";gt.ensureDirSync(Kn);var xn=null;async function Gl(e,n){try{if(e.type==="create")await gt.pathExists(e.filePath)&&(await gt.chmod(e.filePath,438).catch(()=>{}),await gt.remove(e.filePath));else if(e.type==="update"){if(!e.backupFile)return;let t=un.join(Kn,n.chatId,e.backupFile);if(await gt.pathExists(t)){let o=se(t,null);if(!o||!o.data)throw new Error(`Backup container corrupt or empty for ${un.basename(e.filePath)}`);let s=Oi(o.data);await gt.pathExists(e.filePath)&&await gt.chmod(e.filePath,438).catch(()=>{}),await gt.writeFile(e.filePath,s,"utf8")}}}catch(t){throw new Error(`Restoration failed for ${un.basename(e.filePath)}: ${t.message}`)}}async function Hl(e,n,t=7){let o=0;for(;o<t;)try{return await Gl(e,n),!0}catch{if(o++,o>=t)return!1;let r=Math.min(100*Math.pow(2,o-1),5e3);await new Promise(a=>setTimeout(a,r))}return!1}var Mr=null,yt={async startTransaction(e,n){Mr=e,xn={id:`tx_prompt_${Date.now()}`,chatId:e,timestamp:new Date().toISOString(),prompt:n.trim(),changes:[],reverted:!1},ye(co,xn)},async recordFileChange(e,n=null){try{if(!xn){if(Mr){let a=se(dn,[]),i=[...a].reverse().find(p=>p.chatId===Mr);if(i){if(i.changes.some(f=>f.filePath===e))return;let c=await gt.pathExists(e)||n?"update":"create",l=null;if(c==="update"){let f=un.basename(e);l=`${i.id}_${f}.bak`;let u=un.join(Kn,i.chatId);await gt.ensureDir(u);let m=un.join(u,l),g=n!==null?n:await gt.readFile(e,"utf8").catch(()=>null);g!==null?ye(m,{data:pr(g)}):(c="create",l=null)}i.changes.push({filePath:e,type:c,backupFile:l}),ye(dn,a)}}return}if(xn.changes.some(a=>a.filePath===e))return;let s=await gt.pathExists(e)||n?"update":"create",r=null;if(s==="update"){let a=un.basename(e);r=`${xn.id}_${a}.bak`;let i=un.join(Kn,xn.chatId);await gt.ensureDir(i);let p=un.join(i,r),d=n!==null?n:await gt.readFile(e,"utf8").catch(()=>null);d!==null?ye(p,{data:pr(d)}):(s="create",r=null)}xn.changes.push({filePath:e,type:s,backupFile:r}),ye(co,xn)}catch{}},async commitTransaction(){if(xn)try{let e=se(dn,[]);if(e.push(xn),e.length>512e3){let n=e.shift();if(n.changes)for(let t of n.changes)t.backupFile&&await gt.remove(un.join(Kn,n.chatId,t.backupFile)).catch(()=>{})}ye(dn,e),await gt.remove(co).catch(()=>{})}catch{}finally{xn=null}},async recoverCrashedTransaction(){try{if(await gt.pathExists(co)){let e=se(co,null);if(e?.changes?.length>0){let n=se(dn,[]);n.some(t=>t.id===e.id)||(n.push(e),ye(dn,n))}await gt.remove(co).catch(()=>{})}}catch{}},async rollbackToBefore(e){let n=se(dn,null);if(!n)throw new Error("No transaction ledger found.");let t=n.findIndex(a=>a.id===e);if(t===-1)throw new Error(`Transaction [${e}] not found.`);let o=n[t].chatId,s=n[t].prompt,r=n.slice(t).filter(a=>a.chatId===o&&!a.reverted).reverse();for(let a of r){for(let i of[...a.changes].reverse())await Hl(i,a);for(let i of a.changes)if(i.backupFile){let p=un.join(Kn,a.chatId,i.backupFile);await gt.remove(p).catch(()=>{})}n=n.filter(i=>i.id!==a.id),ye(dn,n)}return{success:!0,chatId:o,targetPrompt:s}},async getChatHistory(e){try{return se(dn,[]).filter(t=>t.chatId===e&&!t.reverted)}catch{return[]}},async deleteChatBackups(e){try{await gt.remove(un.join(Kn,e));let n=se(dn,[]),t=n.filter(o=>o.chatId!==e);n.length!==t.length&&ye(dn,t)}catch{}}};var ka=Promise.resolve(),vs=e=>{let n=ka.then(async()=>{try{return await e()}catch(t){throw console.error("Lock Operation Failed:",t),t}});return ka=n.catch(()=>{}),n},fo=async()=>{await Ot.ensureDir(Mo);let e={};if(await Ot.pathExists(Ao))try{e=se(Ao,{})}catch{e={}}for(let n in e){let t=Ms.join(Mo,`${n}.json`);Object.defineProperty(e[n],"messages",{get:()=>{if(Ot.existsSync(t))try{return se(t,[])}catch{return[]}return[]},set:o=>{try{ye(t,o)}catch{}},enumerable:!1,configurable:!0})}return e},Vu=async(e,n,t)=>vs(async()=>{await Ot.ensureDir(Mo);let o=await fo(),s=o[e],r=(t||[]).filter(y=>!y.isUpdateNotification&&(!y.isMeta||y.text&&y.text.includes("Request Cancelled")));try{(await on()).systemSettings?.preserveThinking===!1&&(r=r.filter(h=>h.role!=="think"))}catch{}let a=y=>{if(!y)return;let h=typeof y=="string"?y:y.text||y.content||"";if(!h||typeof h!="string")return;let b=h.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!b)return;let w=b.split(/\s+/),T;return w.length>7?T=w.slice(0,7).join(" ")+"...":b.length>45?T=b.substring(0,45).trimEnd()+"...":T=b,T},i,p=r.filter(y=>y.role==="user"),d=p[0],c=p[p.length-1],l=a(c),f=a(d);s&&s.prompt?Math.random()<.3&&l?i=l:i=s.prompt:i=f||l;let u=n||(s?s.name:`Session ${e.slice(-6)}`),m=Ms.join(Mo,`${e}.json`);ye(m,r),o[e]={name:u,prompt:i||void 0,updatedAt:Date.now()};let g={};for(let y in o)g[y]={name:o[y].name,prompt:o[y].prompt||void 0,updatedAt:o[y].updatedAt};ye(Ao,g)}),Sa=async(e,n)=>vs(async()=>{let t=await fo();t[e]?(t[e].name=n,t[e].updatedAt=Date.now()):t[e]={name:n,updatedAt:Date.now()};let o={};for(let s in t)o[s]={name:t[s].name,prompt:t[s].prompt||void 0,updatedAt:t[s].updatedAt};ye(Ao,o)}),zl=async e=>vs(async()=>{let n=await fo();delete n[e];let t={};for(let a in n)t[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};if(ye(Ao,t),await Ot.pathExists(Vn))try{let a=se(Vn,[]);if(Array.isArray(a)){let i=a.filter(p=>Object.keys(p)[0]!==String(e));ye(Vn,i)}}catch{}let o=se(nn,{});o[e]&&(delete o[e],ye(nn,o));let s=se(Nn,{});s[e]&&(delete s[e],ye(Nn,s)),await yt.deleteChatBackups(e);let r=Ms.join(Mo,`${e}.json`);if(await Ot.pathExists(r))try{await Ot.remove(r)}catch{}return n}),Yu=()=>`flow-${ql(6)}`,Xu=async e=>{if(!e||e==="Never")return;let n=parseInt(e);if(isNaN(n))return;let t=await fo(),o=Date.now(),s=n*24*60*60*1e3,r=0;for(let a in t){let i=t[a];i.updatedAt&&o-i.updatedAt>s&&(await zl(a),r++)}return r},Kl=e=>{let n=e.replace(/[\[\]]/g,"").trim(),t=new Date(n);if(!isNaN(t.getTime()))return t.getTime();let o=n.split(/,\s*|\s+/);if(o.length===0)return null;let s=o[0],r=o[1]||"",a=o[2]||"",i=s.split(/[-\/.]/).map(Number);if(i.length!==3)return null;let p="en";try{p=Intl.DateTimeFormat().resolvedOptions().locale||"en"}catch{}let d=!/^en[-_]?us$|^en$/.test(p?.toLowerCase()),c,l,f;if(i[0]>1e3)c=i[0],l=i[1],f=i[2];else if(i[2]>1e3)c=i[2],i[0]>12?(f=i[0],l=i[1]):i[1]>12?(f=i[1],l=i[0]):d?(f=i[0],l=i[1]):(l=i[0],f=i[1]);else return null;if(l<1||l>12||f<1||f>31)return null;let u=0,m=0,g=0;if(r){let h=r.split(":").map(Number);u=h[0]||0,m=h[1]||0,g=h[2]||0,a.toLowerCase()==="pm"&&u<12?u+=12:a.toLowerCase()==="am"&&u===12&&(u=0)}let y=new Date(c,l-1,f,u,m,g);return isNaN(y.getTime())?null:y.getTime()},Vl=async e=>{try{if(!await Ot.pathExists(e))return;let n=await Ot.readFile(e,"utf8");if(!n.trim())return;let t=n.split(`
|
|
608
611
|
`),o=[],s=null,r=/^\s*(?:DEBUG|ERROR|SEARCH|PUPPETEER)\b/i;for(let l of t)r.test(l)?(s&&o.push(s),s={header:l,body:[]}):s?s.body.push(l):o.push({header:l,body:[]});s&&o.push(s);let a=10080*60*1e3,i=Date.now(),p=[],d=/(\d{1,4}[-\/.]\d{1,4}[-\/.]\d{1,4}(?:,\s*|\s+)?(?:\d{1,2}:\d{2}:\d{2}(?:\s*[aApP][mM])?)?)/;for(let l of o){if(r.test(l.header)){let m=l.header.match(d);if(m){let g=Kl(m[1]);if(g&&i-g>a)continue}}let u=l.header+(l.body.length>0?`
|
|
609
612
|
`+l.body.join(`
|
|
610
613
|
`):"");p.push(u)}let c=p.join(`
|
|
611
|
-
`).trim();c?await
|
|
612
|
-
`,"utf8"):await
|
|
614
|
+
`).trim();c?await Ot.writeFile(e,c+`
|
|
615
|
+
`,"utf8"):await Ot.writeFile(e,"","utf8")}catch{}},Ju=async e=>{try{if(!await Ot.pathExists(e))return;let n=async t=>{let o=await Ot.readdir(t);for(let s of o){let r=Ms.join(t,s);(await Ot.stat(r)).isDirectory()?(await n(r),(await Ot.readdir(r)).length===0&&await Ot.remove(r)):s.endsWith(".log")&&await Vl(r)}};await n(e)}catch{}},Ta=(e,n=4)=>{if(e.length<=1)return e;let t=e[0],o=e.slice(1),s=n*2,r=o.slice(s);return[t,...r]};var Qu=async(e,n,t,o=0)=>vs(async()=>{let s=se(Vn,[]);Array.isArray(s)||(s=[]);let r={total:n,context:t,cached:o},a=s.findIndex(i=>Object.keys(i)[0]===String(e));a!==-1?s[a]={[String(e)]:r}:s.push({[String(e)]:r}),ye(Vn,s)}),Zu=async e=>{try{if(!await Ot.pathExists(Vn))return{total:0,context:0,cached:0};let n=se(Vn,[]);if(!Array.isArray(n))return{total:0,context:0,cached:0};let t=n.find(o=>Object.keys(o)[0]===String(e));return t?{total:0,context:0,cached:0,...t[String(e)]}:{total:0,context:0,cached:0}}catch{return{total:0,context:0,cached:0}}};import _a from"puppeteer";import Ca from"fs";import $a from"path";import Ra from"os";import es from"path";import Oo from"fs";import{createRequire as Yl}from"module";import{fileURLToPath as Xl}from"url";var Jl=Yl(import.meta.url),Ea=es.dirname(Xl(import.meta.url));function po(){let e=Ra.platform(),n=Ra.arch(),t="",o="",s="";if(e==="win32")t=n==="x64"?"win64":"win32",o="chrome.exe",s=`chrome-${t}`;else if(e==="darwin"){t=n==="arm64"?"mac_arm":"mac";let a=n==="arm64"?"arm64":"x64";o="Google Chrome.app/Contents/MacOS/Google Chrome",s=`chrome-mac-${a}`}else if(e==="linux")t="linux",o="chrome",s="chrome-linux64";else return{};let r=es.resolve(Ea,"..","..",".puppeteerrc.cjs");if(Oo.existsSync(r)||(r=es.resolve(Ea,"..",".puppeteerrc.cjs")),!Oo.existsSync(r))return{};try{let a=Jl(r),i=a.cacheDirectory,p=a.chrome?.version;if(i){if(process.env.PUPPETEER_CACHE_DIR=i,p){let l=es.join(i,"chrome",`${t}-${p}`,s,o);if(Oo.existsSync(l))return{executablePath:l,cacheDirectory:i}}let d=l=>{if(!Oo.existsSync(l))return null;try{let f=Oo.readdirSync(l),u=[];for(let m of f){let g=es.join(l,m),y;try{y=Oo.statSync(g)}catch{continue}if(y.isDirectory())u.push(g);else if(m.toLowerCase()===o.toLowerCase()&&(!p||g.includes(p)))return g}if(p){for(let m of u)if(m.includes(p)){let g=d(m);if(g)return g}}for(let m of u)if(!p||!m.includes(p)){let g=d(m);if(g)return g}}catch{}return null},c=d(i);if(c)return{executablePath:c,cacheDirectory:i}}}catch{}return{}}var vr=async e=>{let{query:n,limit:t=5,aiMode:o=!1}=D(e);if(!n)return'ERROR: Missing "query" argument for web_search.';let s=3,r=null;if(o){let a=`Query: ${n}
|
|
613
616
|
|
|
614
617
|
RESPONSE RULES:
|
|
615
618
|
- ANSWER CONCISELY WITH REQUIRED DETAILS UNDER 300 WORDS.
|
|
@@ -636,7 +639,7 @@ Sources:
|
|
|
636
639
|
|
|
637
640
|
`+S:"");if(!_||/^(\+\d+|Searching|Answering|Thinking|Finished)$/i.test(_))throw new Error("EMPTY_AI_RESPONSE");return await p.close(),`AI Search results for [${n}]:
|
|
638
641
|
|
|
639
|
-
${_}`}catch(d){if(r=d,Ca.writeFileSync($a.join(
|
|
642
|
+
${_}`}catch(d){if(r=d,Ca.writeFileSync($a.join(yn,"web_tools","search","ai_mode","ERROR.txt"),d.message),p&&await p.close(),i<s){let c=Math.pow(2,i)*1e3;await new Promise(l=>setTimeout(l,c))}}}}for(let a=1;a<=s;a++){let i=null;try{let p=po();i=await _a.launch({headless:!0,executablePath:p.executablePath||void 0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--disable-dev-shm-usage"]});let d=await i.newPage();await d.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 d.setViewport({width:1366,height:768});let c=a===1?Math.random()*1e3+500:Math.random()*2e3+1e3;await new Promise(g=>setTimeout(g,c));let l=`https://html.duckduckgo.com/html/?q=${encodeURIComponent(n)}`;await d.goto(l,{waitUntil:"networkidle2",timeout:18e4});let f=await d.$$eval(".result",(g,y)=>g.slice(0,y).map((h,b)=>{let w=h.querySelector(".result__a"),T=h.querySelector(".result__snippet"),$=w?w.href:"";$.includes("uddg=")&&($=decodeURIComponent($.split("uddg=")[1].split("&")[0]));let R=w?w.innerText.trim():"No Title",k=T?T.innerText.trim():"No Snippet";return`${b+1}. ${R}
|
|
640
643
|
Source: ${$}
|
|
641
644
|
Snippet: ${k}`}),t);if(f.length===0){if((await d.evaluate(()=>document.body.innerText)).includes("anomaly"))throw new Error("ANOMALY_DETECTED");return await i.close(),`No results found for query: [${n}].`}let u=f.join(`
|
|
642
645
|
|
|
@@ -644,7 +647,7 @@ Snippet: ${k}`}),t);if(f.length===0){if((await d.evaluate(()=>document.body.inne
|
|
|
644
647
|
|
|
645
648
|
`:""}Search results for [${n}]:
|
|
646
649
|
|
|
647
|
-
${u}`}catch(p){if(r=p,i&&await i.close(),Ca.writeFileSync($a.join(
|
|
650
|
+
${u}`}catch(p){if(r=p,i&&await i.close(),Ca.writeFileSync($a.join(yn,"web_tools","search","standard_mode","ERROR.txt"),p.message),a<s){let d=Math.pow(2,a)*1e3;await new Promise(c=>setTimeout(c,d))}}}return`ERROR: Search failed after ${s+1} attempts. Last error: ${r.message}`};import Ql from"puppeteer";import Zl from"turndown";import{gfm as ec}from"turndown-plugin-gfm";var Ir=async e=>{let n=e;if(typeof e=="object"&&e!==null)n=e.url||e.targetUrl||e.href||"";else if(typeof e=="string"){let r=e.match(/url\s*=\s*["'](.*)["']/);n=r?r[1]:e}let t=typeof n=="string"?n.trim():"";if(!t)return"ERROR: No target URL provided.";let o=3,s=null;for(let r=1;r<=o;r++){let a=null;try{let i=po();a=await Ql.launch({headless:!0,executablePath:i.executablePath||void 0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--disable-dev-shm-usage"]});let p=await a.newPage();await p.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 p.setViewport({width:1366,height:768});let d=r===1?Math.random()*1e3+500:Math.random()*2e3+1e3;await new Promise(g=>setTimeout(g,d)),await p.goto(t,{waitUntil:"networkidle2",timeout:18e4}),await new Promise(g=>setTimeout(g,5e3));let c=await p.evaluate(()=>{document.querySelectorAll("script, style, noscript, svg, canvas, iframe, ad, .ads, link, meta, img").forEach(T=>T.remove());let y=document.createNodeIterator(document.body,NodeFilter.SHOW_COMMENT),h;for(;h=y.nextNode();)h.remove();for(document.querySelectorAll("*").forEach(T=>{let $=T.attributes;for(let R=$.length-1;R>=0;R--){let k=$[R].name;k!=="href"&&k!=="src"&&T.removeAttribute(k)}});document.querySelector("div, span");)document.querySelectorAll("div, span").forEach(T=>{T.parentNode&&T.replaceWith(...T.childNodes)});document.querySelectorAll("br").forEach(T=>{T.replaceWith(document.createTextNode(`
|
|
648
651
|
|
|
649
652
|
`))});let w=()=>{let T=!1;document.querySelectorAll("*").forEach($=>{$.childNodes.length===0&&!$.innerText.trim()&&($.remove(),T=!0)}),T&&w()};return w(),document.body.innerHTML});if(!c)throw new Error("EMPTY_RENDER_RESULT");let l=c.replace(/<br\s*\/?>/gi,`
|
|
650
653
|
|
|
@@ -659,15 +662,15 @@ ${u}`}catch(p){if(r=p,i&&await i.close(),Ca.writeFileSync($a.join(hn,"web_tools"
|
|
|
659
662
|
|
|
660
663
|
${m}${u.length>5e4?`
|
|
661
664
|
|
|
662
|
-
[TRUNCATED AT 50K CHARS]`:""}`}catch(i){if(s=i,a&&await a.close(),r<o){let p=Math.pow(2,r)*1e3;await new Promise(d=>setTimeout(d,p))}}}return`ERROR: Scrape failed after ${o+1} attempts. Last error: ${s.message}`};var tc=4*(1024*2),Or=async(e,n={})=>{let t=c=>{let l=new RegExp(`${c}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),f=e.match(l);if(f)return f[2].trim();let u=new RegExp(`${c}\\s*[:=]\\s*([^,\\s)]+)`,"s"),m=e.match(u);return m?m[1].trim():null},o=t("action"),s=t("method"),r=t("content"),a=t("content-new"),i=t("content-old"),p=t("id"),d=t("chat-id")||n.chatId||n.sessionId||"default-session";if(o==="temp"){if(!r)return"ERROR: Missing 'content' for temp memory.";let c=se(
|
|
665
|
+
[TRUNCATED AT 50K CHARS]`:""}`}catch(i){if(s=i,a&&await a.close(),r<o){let p=Math.pow(2,r)*1e3;await new Promise(d=>setTimeout(d,p))}}}return`ERROR: Scrape failed after ${o+1} attempts. Last error: ${s.message}`};var tc=4*(1024*2),Or=async(e,n={})=>{let t=c=>{let l=new RegExp(`${c}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),f=e.match(l);if(f)return f[2].trim();let u=new RegExp(`${c}\\s*[:=]\\s*([^,\\s)]+)`,"s"),m=e.match(u);return m?m[1].trim():null},o=t("action"),s=t("method"),r=t("content"),a=t("content-new"),i=t("content-old"),p=t("id"),d=t("chat-id")||n.chatId||n.sessionId||"default-session";if(o==="temp"){if(!r)return"ERROR: Missing 'content' for temp memory.";let c=se(nn,{});c[d]||(c[d]=[]),c[d].push(r),ye(nn,c);let l=c[d].reduce((f,u)=>f+u.length,0);return`SUCCESS: Temporary context saved for session [${d}]. (Size: ${l} chars)`}if(o==="user"){let c=se(Ut,[]).map(l=>(l.score===void 0&&(l.score=.5),l));if(s==="add"){if(!r)return"ERROR: Missing 'content' for memory addition.";let l=new Date,f=`${l.getDate()}/${l.getMonth()+1}/${l.getFullYear()}`,u=r.includes("[Saved on:")?r:`${r.trim()} [Saved on: ${f}]`,m=tc,g=c.reduce((w,T)=>w+(T.memory?.length||0),0);for(;c.length>0&&g+u.length>m;){let w=c.shift();g-=w.memory?.length||0}let y=t("score"),h=y?parseFloat(y):.5,b={id:`mem-${Date.now().toString(36)}`,memory:u,score:Math.min(2,isNaN(h)?.5:h)};return c.push(b),ye(Ut,c),`SUCCESS: Memory added with ID [${b.id}] and score [${b.score}]. (Vault Size: ${g+u.length} chars)`}if(s==="update"){let l=p||i,f=a||r;if(!l||!f)return"ERROR: Missing 'id' or content for update.";let u=c.findIndex(h=>h.id===l);if(u===-1)return`ERROR: Memory ID [${l}] not found.`;let m=new Date,g=`${m.getDate()}/${m.getMonth()+1}/${m.getFullYear()}`,y=f.includes("[Saved on:")?f:`${f.trim()} [Saved on: ${g}]`;return c[u].memory=y,ye(Ut,c),`SUCCESS: Memory [${l}] updated.`}if(s==="delete"){let l=p||r;if(!l)return"ERROR: Missing 'id' for deletion.";let f=c.length,u=c.filter(m=>m.id!==l);return u.length===f?`ERROR: Memory ID [${l}] not found.`:(ye(Ut,u),`SUCCESS: Memory [${l}] deleted.`)}return`ERROR: Invalid method [${s}] for user memory. Use 'add', 'update', or 'delete'.`}return`ERROR: Unknown action [${o}] for memory tool.`};var Lr=async(e,n={})=>{let t=D(e).title,o=n.chatId||n.sessionId;if(!o)return"ERROR: No active chatId found in tool context.";if(!t)return"ERROR: Missing 'title' argument.";try{return await Sa(o,t),`SUCCESS: Chat title updated to [${t}] for session [${o}].`}catch(s){return`ERROR: Failed to update chat title: ${s instanceof Error?s.message:String(s)}`}};import fn from"fs";import Mn from"path";var nc=e=>{if(!e)return null;let n=e.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!n)return null;let t=n[1];if((n[2]||"").trim().length===0)return null;let s="",r=t.match(/^name:\s*(.+)$/m);return r&&(s=r[1].trim().replace(/^["']|["']$/g,"")),s?{name:s}:null},oc=e=>{let n=[];if(!e||!fn.existsSync(e))return n;let t=(o,s=0)=>{if(!(s>5))try{let r=fn.readdirSync(o,{withFileTypes:!0});for(let a of r){let i=Mn.join(o,a.name),p=a.name.toLowerCase();a.isFile()?p==="skill.md"&&n.push(i):a.isDirectory()&&(s===0?(p==="skills"||p===".skills"||p==="skill"||p===".skill")&&t(i,s+1):t(i,s+1))}}catch{}};return t(e,0),n},sc=e=>e.replace(/^(\s*---\r?\n)([\s\S]*?)(\r?\n---)/,(n,t,o,s)=>{let r=o.split(`
|
|
663
666
|
`),a=[],i=!1;for(let p of r){if(/^\s*description\s*:/i.test(p)){i=!0;continue}if(i){if(/^\s+/.test(p))continue;i=!1}a.push(p)}return`${t}${a.join(`
|
|
664
|
-
`)}${s}`}),rc=(e,n)=>{let t=[
|
|
667
|
+
`)}${s}`}),rc=(e,n)=>{let t=[Mn.join(e,"references"),Mn.join(e,"reference"),e],o=n.toLowerCase().endsWith(".md")?n.toLowerCase():`${n.toLowerCase()}.md`,s=n.toLowerCase();for(let r of t)if(fn.existsSync(r)&&fn.statSync(r).isDirectory())try{let a=fn.readdirSync(r);for(let i of a){let p=i.toLowerCase();if(p===o||p===s){let d=Mn.join(r,i);if(fn.statSync(d).isFile())return d}}}catch{}return null},ts=async(e,n={})=>{let{path:t,StartLine:o,EndLine:s,start_line:r,end_line:a,startLine:i,endLine:p}=D(e),d=parseInt(o||r||i),c=parseInt(s||a||p),l=!isNaN(d),f=!isNaN(c),u=d||1,m=c||(d?d+800:800);if(!t)return'ERROR: Missing "path" argument for ReadFile.';if(t.trim().toLowerCase().startsWith("#skill")){let h=t.trim().replace(/\\/g,"/").replace(/^#skills?\/?/i,"").split("/").filter(Boolean),b=h[0]?.toLowerCase();if(b!=="global"&&b!=="project")return`ERROR: Invalid skill scope '${b||""}'. Expected 'global' or 'project'.`;let w=h[1];if(!w)return`ERROR: Missing skill name in path [${t}].`;let T=h[2]?.toLowerCase()==="references"||h[2]?.toLowerCase()==="reference",$=T?h.slice(3).join("/"):null,R=b==="global"?Ct:process.cwd(),k=oc(R),S=null;for(let C of k)try{let M=fn.readFileSync(C,"utf8"),v=nc(M),L=Mn.basename(Mn.dirname(C)).toLowerCase();if(v?.name&&v.name.toLowerCase()===w.toLowerCase()||L===w.toLowerCase()||C.toLowerCase()===Mn.join(R,"skill.md").toLowerCase()&&w.toLowerCase()==="skill"){S=C;break}}catch{}if(!S)return`No '${w}' exist in given scope.`;let _=Mn.dirname(S),E=S,x=!0;if(T){if(!$)return`ERROR: Missing reference file name in path [${t}].`;let C=rc(_,$);if(!C)return`No such reference exist for skill '${w}'`;E=C,x=!1}try{let C=fn.readFileSync(E,"utf8");C.startsWith("\uFEFF")&&(C=C.slice(1)),C=C.replace(/\r\n/g,`
|
|
665
668
|
`).replace(/\r/g,`
|
|
666
669
|
`),x&&(C=sc(C));let M=C.split(`
|
|
667
670
|
`),v=M.length,L=l?Math.max(0,u-1):0,U=f?Math.min(v,m):v,j=M.slice(L,U),ee=t.replace(/\\/g,"/").toLowerCase(),F=`${ee.includes("#skill/global/fluxflow")||ee.includes("#skills/global/fluxflow")?"DOCs":"Skill"}: [${t.replace(/\\/g,"/")}]`,W=j.map(ne=>ne.trimEnd()).join(`
|
|
668
671
|
`);return`${F}
|
|
669
672
|
|
|
670
|
-
${W}`}catch(C){let M=C instanceof Error?C.message:String(C);return`ERROR: Failed to read skill file [${t}]: ${M}`}}try{let g
|
|
673
|
+
${W}`}catch(C){let M=C instanceof Error?C.message:String(C);return`ERROR: Failed to read skill file [${t}]: ${M}`}}try{let g=Mn.resolve(process.cwd(),t);if(!fn.existsSync(g))return`ERROR: File [${t}] does not exist.`;if(fn.statSync(g).isDirectory())return`ERROR: Path [${t}] is a directory. Use list_files instead.`;let h=Mn.extname(t).toLowerCase();if([".mp4",".mkv",".avi",".mov",".webm",".flv",".wmv",".mpeg",".mpg"].includes(h))return`ERROR: Unable to read. Type ${h.slice(1).toUpperCase()} not supported`;let w={".pdf":"application/pdf",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".doc":"application/msword"};if(w[h]){if(!(n.isMultiModal!==!1))return`ERROR: Multimodality is not supported for the current model. Unable to load [${t}].`;let v=fn.readFileSync(g).toString("base64"),L=w[h];return{text:`[BINARY FILE]: ${t} (${L}) - Loaded as multimodal part.`,binaryPart:{inlineData:{data:v,mimeType:L}}}}let T=fn.readFileSync(g,"utf8");T.startsWith("\uFEFF")&&(T=T.slice(1)),T=T.replace(/\r\n/g,`
|
|
671
674
|
`).replace(/\r/g,`
|
|
672
675
|
`);let $=T.split(`
|
|
673
676
|
`),R=$.length;!l&&!f&&R>800&&(u=1,m=50);let k=Math.max(0,u-1),S=Math.min(R,m),_=$.slice(k,S),E=`File: [${t}] (Showing lines ${k+1}-${S} of ${R}).`,x=_.map((C,M)=>`${String(k+M+1).padStart(4)}: ${C.trimEnd()}`).join(`
|
|
@@ -675,7 +678,7 @@ ${W}`}catch(C){let M=C instanceof Error?C.message:String(C);return`ERROR: Failed
|
|
|
675
678
|
|
|
676
679
|
${x}`}catch(g){let y=g instanceof Error?g.message:String(g);return`ERROR: Failed to read file [${t}]: ${y}`}};import Lo from"fs";import Aa from"path";var Dr=async(e,n={})=>{let{path:t,content:o}=D(e);if(!t)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,`
|
|
677
680
|
`).replace(/\r/g,`
|
|
678
|
-
`);let s=Aa.resolve(process.cwd(),t),r=Aa.dirname(s);try{await
|
|
681
|
+
`);let s=Aa.resolve(process.cwd(),t),r=Aa.dirname(s);try{await yt.recordFileChange(s);let a="";if(Lo.existsSync(s))try{a=`Old File contents:
|
|
679
682
|
${Lo.readFileSync(s,"utf8").split(/\r?\n/).map(($,R)=>`${R+1} | ${$}`).join(`
|
|
680
683
|
`)}
|
|
681
684
|
|
|
@@ -692,7 +695,7 @@ ${Lo.readFileSync(s,"utf8").split(/\r?\n/).map(($,R)=>`${R+1} | ${$}`).join(`
|
|
|
692
695
|
|
|
693
696
|
... [${g-100} lines truncated] ...
|
|
694
697
|
|
|
695
|
-
${T}`}f=null;let{systemSettings:h}=await
|
|
698
|
+
${T}`}f=null;let{systemSettings:h}=await on(),b=`SUCCESS: File [${t}] saved.
|
|
696
699
|
- Stats: [${g} lines, ${(u/1024).toFixed(1)} KB]
|
|
697
700
|
${a}- Content Preview:
|
|
698
701
|
|
|
@@ -701,9 +704,9 @@ ${y}`;if(h?.compressToolResults&&g>60){let w=d.split(/\r?\n/),T=w.slice(0,25).jo
|
|
|
701
704
|
`),$=w.slice(-25).join(`
|
|
702
705
|
`)===m.slice(-25).join(`
|
|
703
706
|
`);T&&$&&(b=`[[SAME]]
|
|
704
|
-
${b}`)}return b}catch(a){let i=a instanceof Error?a.message:String(a);return`ERROR: Failed to write file [${t}]: ${i}`}};import Nr from"fs";import gc from"path";import ic from"os";var
|
|
705
|
-
`),s=[];if(n<=5)return e;let r=a=>a.replace(t,"").length;return o.forEach(a=>{if(r(a)<=n){s.push(a);return}let p=a.split(/(\s+)/),d="",c=0,l=a.match(/^(\s*)/),f=l?l[1]:"";p.forEach((u,m)=>{if(u.length===0)return;let g=r(u);if(c+g>n)if(d.trim().length>0)s.push(d.trimEnd()),d=f.substring(0,Math.min(f.length,8))+u,c=r(d);else if(t.test(u))s.push(u),d=f,c=r(d);else{let y=u;for(;r(y)>n&&n>10;)s.push(y.substring(0,n)),y=y.substring(n);d=y,c=r(d)}else d+=u,c+=g}),(d.trimEnd().length>0||d===f)&&s.push(d.trimEnd())}),
|
|
706
|
-
`))},Wf=e=>{if(!e&&e!==0)return"0.0k";let n=typeof e=="string"?parseFloat(e):e;return n>=1e6?`${(n/1e6).toFixed(1)}m`:n>=1e3?`${(n/1e3).toFixed(1)}k`:n.toString()},jf=(e,n=40)=>{let t=
|
|
707
|
+
${b}`)}return b}catch(a){let i=a instanceof Error?a.message:String(a);return`ERROR: Failed to write file [${t}]: ${i}`}};import Nr from"fs";import gc from"path";import ic from"os";var bn=e=>typeof e!="string"?e:e.length>12?(e+"").replace("",""):e,Ma=(e,n)=>{if(!e)return"";let t=/\x1B\[[0-?]*[ -/]*[@-~]/g,o=e.split(`
|
|
708
|
+
`),s=[];if(n<=5)return e;let r=a=>a.replace(t,"").length;return o.forEach(a=>{if(r(a)<=n){s.push(a);return}let p=a.split(/(\s+)/),d="",c=0,l=a.match(/^(\s*)/),f=l?l[1]:"";p.forEach((u,m)=>{if(u.length===0)return;let g=r(u);if(c+g>n)if(d.trim().length>0)s.push(d.trimEnd()),d=f.substring(0,Math.min(f.length,8))+u,c=r(d);else if(t.test(u))s.push(u),d=f,c=r(d);else{let y=u;for(;r(y)>n&&n>10;)s.push(y.substring(0,n)),y=y.substring(n);d=y,c=r(d)}else d+=u,c+=g}),(d.trimEnd().length>0||d===f)&&s.push(d.trimEnd())}),bn(s.join(`
|
|
709
|
+
`))},Wf=e=>{if(!e&&e!==0)return"0.0k";let n=typeof e=="string"?parseFloat(e):e;return n>=1e6?`${(n/1e6).toFixed(1)}m`:n>=1e3?`${(n/1e3).toFixed(1)}k`:n.toString()},jf=(e,n=40)=>{let t=Fn.replaceAll("\\\\","\\");if(e=e.replace(ic.homedir(),"~").replace(t,"FluxFlow").replaceAll("\\","/"),!e||e.length<=n)return bn(e);let o=Math.floor((n-3)/2);return bn(e.substring(0,o)+"..."+e.substring(e.length-o).replaceAll("\\","/"))},Os=e=>{let n=[],t=new Set,o=e.allowMultiple===!0||String(e.allowMultiple).toLowerCase()==="true";Object.keys(e).forEach(p=>{let d=p.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(d){let c=d[2]?parseInt(d[2],10):1;t.add(c)}});let s=Array.from(t).sort((p,d)=>p-d),r=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],a=["newContent","new_content","content_to_add","newBlock","new_block"],i=(p,d,c)=>{let l,f;for(let u of d){let m=p===1?[`${u}1`,u,`${u}_1`]:[`${u}${p}`,`${u}_${p}`];for(let g of m)if(e[g]!==void 0){l=e[g];break}if(l!==void 0)break}for(let u of c){let m=p===1?[`${u}1`,u,`${u}_1`]:[`${u}${p}`,`${u}_${p}`];for(let g of m)if(e[g]!==void 0){f=e[g];break}if(f!==void 0)break}return{r:l,n:f}};for(let p of s){let{r:d,n:c}=i(p,r,a);if(d!==void 0&&c!==void 0)n.push({replace:d,new:c});else if(d!==void 0||c!==void 0)return{error:`Mismatched replacement pair for index ${p}. Both replacement and new content must be provided.`,allowMultiple:o}}return{patchPairs:n,allowMultiple:o}},ac=e=>{if(!e)return null;let n="",t=0,o=e.length;for(;t<o;){let s=e[t];if(s==="\\"){for(;t<o&&e[t]==="\\";)t++;n+="\\\\*"}else if(s===`
|
|
707
710
|
`)n+="(?:\\r?\\n|\\\\*n|\\\\*r|\\s*)",t++;else if(s==="\r")n+="(?:\\r|\\\\*r)?",t++;else if(s===" ")n+="(?:\\t|\\\\*t|\\s*)",t++;else if(s==='"'||s==="'"||s==="`")n.endsWith("\\\\*")||(n+="\\\\*"),n+=s,t++;else if(/[.*+?^${}()|[\]]/.test(s))n+="\\"+s,t++;else if(/\s/.test(s)){for(;t<o&&/\s/.test(e[t])&&e[t]!==`
|
|
708
711
|
`&&e[t]!=="\r"&&e[t]!==" ";)t++;n+="\\s*"}else n+=s,t++}if(!n)return null;try{return new RegExp(n,"g")}catch{return null}},Ls=(e,n,t={})=>{let o=typeof t=="boolean"?t:!!(t&&t.allowMultiple),s=e.replace(/\r\n/g,`
|
|
709
712
|
`).replace(/\r/g,`
|
|
@@ -739,7 +742,7 @@ ${b}`)}return b}catch(a){let i=a instanceof Error?a.message:String(a);return`ERR
|
|
|
739
742
|
`,w=y.split(h).map(T=>T.split(`
|
|
740
743
|
`).filter(R=>R.trim()!=="").length>45?`[[VERIFIED]]
|
|
741
744
|
${T}
|
|
742
|
-
[[/VERIFIED]]`:T);c=g+w.join(h)}return c+="[DIFF_END]",
|
|
745
|
+
[[/VERIFIED]]`:T);c=g+w.join(h)}return c+="[DIFF_END]",bn(c)},lc=e=>{if(!e)return null;let n=e.replace("[UI_CONTEXT]","").replace(/\r/g,""),t=n.startsWith("-"),o=n.startsWith("+"),s=t||o?n.substring(1):n,r=s.indexOf("|"),a=r!==-1?bn(s.substring(0,r).trim()):"",i=bn(r!==-1?s.substring(r+1):s);return{isR:t,isA:o,num:a,content:i}},cc=(e,n)=>{if(!e&&!n)return 1;if(!e||!n)return 0;let t=e.length,o=n.length,s=e,r=n;t<o&&(s=n,r=e);let a=s.length,i=r.length,p=new Int32Array(i+1),d=new Int32Array(i+1);for(let f=0;f<=i;f++)p[f]=f;for(let f=1;f<=a;f++){d[0]=f;let u=s[f-1];for(let m=1;m<=i;m++)u===r[m-1]?d[m]=p[m-1]:d[m]=Math.min(p[m],d[m-1],p[m-1])+1;p.set(d)}let c=p[i],l=Math.max(t,o);return l===0?1:1-c/l},va=e=>{let n=[],t=[];e.forEach((c,l)=>{c.parsed.isR?n.push({index:l,content:c.parsed.content}):c.parsed.isA&&t.push({index:l,content:c.parsed.content})});let o=n.length,s=t.length;if(o===0||s===0)return;let r=Array.from({length:o+1},()=>Array(s+1).fill(0)),a=Array.from({length:o+1},()=>Array(s+1).fill(""));for(let c=1;c<=o;c++)a[c][0]="up";for(let c=1;c<=s;c++)a[0][c]="left";let i=Array.from({length:o},()=>Array(s).fill(0));for(let c=0;c<o;c++)for(let l=0;l<s;l++)i[c][l]=cc(n[c].content.trim(),t[l].content.trim());for(let c=1;c<=o;c++)for(let l=1;l<=s;l++){let f=i[c-1][l-1],u=f>=.2?f:-10,m=r[c-1][l-1]+u,g=r[c-1][l],y=r[c][l-1];m>=g&&m>=y?(r[c][l]=m,a[c][l]="diag"):g>=y?(r[c][l]=g,a[c][l]="up"):(r[c][l]=y,a[c][l]="left")}let p=o,d=s;for(;p>0||d>0;)if(a[p][d]==="diag"){if(i[p-1][d-1]>=.2){let l=n[p-1].index,f=t[d-1].index;e[l].pairContent=e[f].parsed.content,e[f].pairContent=e[l].parsed.content}p--,d--}else a[p][d]==="up"?p--:d--},Jn=new Map,mo=new Map,Ia=200,Pr=6,Fr=(e,n)=>{n.set(e.key,e),e.type==="chunk"&&e.blocks&&e.blocks.forEach(t=>Fr(t,n))},Gf=(e,n)=>{if(!e)return{completed:[],active:[]};let t=`${e.id}-${e.text?.length||0}-${n}-${e.isStreaming}-${e.workedDuration||0}`;if(!e.isStreaming&&Jn.has(t))return Jn.get(t);let o=bn(hc(e.text||"",e.role)),s=`${e.id}-${n}`,r=new Map;if(e.isStreaming){let m=mo.get(s);m&&o.startsWith(m.text)&&(r=m.blocksMap)}let a=(m,g,y,h={})=>{let b=r.get(m);if(b&&b.text===y&&b.type===g&&!!b.isActiveBlock==!!h.isActiveBlock&&!!b.isStreaming==!!h.isStreaming&&b.pairContent===h.pairContent)return b;let w=bn(y),T={...h};return typeof T.pairContent=="string"&&(T.pairContent=bn(T.pairContent)),Array.isArray(T.wrappedLines)&&(T.wrappedLines=T.wrappedLines.map(bn)),{key:m,isStreamingMsg:!!e.isStreaming,workedDuration:e.workedDuration,type:g,text:w,msg:g==="full-message"?e:void 0,...T}};if(o.includes("- Content Preview:")){let m="",g=o.match(/File\s+\[(.*?)\]/i);g&&(m=g[1].split(".").pop().toLowerCase());let T=((o.split("- Content Preview:")[1]||"").split("[SYSTEM] Check the content preview for verification [/SYSTEM]")[0]?.trim()||"").split(`
|
|
743
746
|
`).map(x=>x.replace(/\r$/,"")),$=String(T.length).length,R=[],k=null,S=[],_=()=>{if(!S.length)return;let x=S;S=[],R.push(x.length===1?x[0]:{key:`${x[0].key}-chunk`,type:"chunk",blocks:x})},E=n-($+6);return T.forEach((x,C)=>{let M=C===T.length-1,v=Ma(x,E).split(`
|
|
744
747
|
`),L=a(`${e.id||Date.now()}-write-line-${C}`,"write-line",x,{gutterWidth:$,lineNum:C+1,isFirstLine:C===0,isLastLine:M,extension:m,wrappedLines:v});M&&e.isStreaming?(_(),k=L):(S.push(L),S.length>=Pr&&_())}),_(),{completed:R,active:k?[k]:[]}}if(o.includes("[DIFF_START]")){let m=o.match(/\[DIFF_START\]([\s\S]*?)(?:\[DIFF_END\]|$)/),y=(m?m[1].trim():"").split(`
|
|
745
748
|
`).map(k=>k.replace(/\r$/,"")),h=y.map(k=>({line:k,parsed:lc(k),pairContent:null})),b=[];for(let k=0;k<h.length;k++){let S=h[k];S.parsed&&(S.parsed.isR||S.parsed.isA)?b.push(S):b.length>0&&(va(b),b=[])}b.length>0&&va(b);let w=[],T=null,$=[],R=()=>{if(!$.length)return;let k=$;$=[],w.push(k.length===1?k[0]:{key:`${k[0].key}-chunk`,type:"chunk",blocks:k})};return y.forEach((k,S)=>{let _=S===y.length-1,E=h[S].parsed,x=null;E&&(x=Ma(E.content,n-17).split(`
|
|
@@ -752,7 +755,7 @@ ${T}
|
|
|
752
755
|
`).replace(/\r/g,`
|
|
753
756
|
`),{content:l,results:f}=Ls(c,s,{allowMultiple:i}),u=f.filter(h=>!h.success),m=f.filter(h=>h.success);if(m.length===0)return`ERROR: Patch Failed to apply to [${o}].
|
|
754
757
|
${u.map(h=>` \u2022 ${h.error}`).join(`
|
|
755
|
-
`)}`;await
|
|
758
|
+
`)}`;await yt.recordFileChange(p,c),Nr.writeFileSync(p,l,"utf8");let{systemSettings:g}=await on(),y=Ds(c,l,f,12,g?.compressToolResults);return u.length>0?`SUCCESS: File [${o}] updated with some blocks failed. [${m.length}/${s.length}] blocks applied.
|
|
756
759
|
|
|
757
760
|
Failures:
|
|
758
761
|
${u.map(h=>` \u2022 ${h.error}`).join(`
|
|
@@ -774,7 +777,7 @@ ${T}${$}`}let a=0,i=0,p=0,d=500,c=!1,l=(g,y,h=1)=>{if(y>o||c)return[];let b=[];t
|
|
|
774
777
|
|
|
775
778
|
TRUNCATED: Scan capped at ${d} items. (Directories: ${a}, Files: ${i})`),`Detailed directory tree for [${t}] (recursive depth: ${o}):
|
|
776
779
|
|
|
777
|
-
${u}${m}`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Failed to read folder [${t}]: ${r}`}};var Ps=async(e,n)=>{let t=D(e),{question:o}=t;if(!o)return'ERROR: Missing "question" argument for ask.';if(!n.onAskUser)return"ERROR: onAskUser callback not provided in tool context.";let s=[];Object.keys(t).forEach(r=>{if(r.startsWith("option")){let a=t[r];if(typeof a=="string"&&a.includes("::")){let[i,p]=a.split("::");s.push({id:r,label:i.trim(),description:p.trim()})}else s.push({id:r,label:String(a).trim(),description:""})}});try{return`USER CHOOSE: ${await n.onAskUser(o,s)}`}catch(r){return`ERROR: Failed to get user input: ${r instanceof Error?r.message:String(r)}`}};import bc from"puppeteer";import Po from"path";import go from"fs-extra";import{PDFDocument as kc}from"pdf-lib";var jr=async e=>{let{path:n,content:t,orientation:o="portrait",margin:s="0px"}=D(e);if(!n)return'ERROR: Missing "path" argument for write_pdf.';if(!t)return'ERROR: Missing "content" (HTML/CSS) for write_pdf.';let r=Po.resolve(process.cwd(),n),a=null;try{await go.ensureDir(Po.dirname(r)),await
|
|
780
|
+
${u}${m}`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Failed to read folder [${t}]: ${r}`}};var Ps=async(e,n)=>{let t=D(e),{question:o}=t;if(!o)return'ERROR: Missing "question" argument for ask.';if(!n.onAskUser)return"ERROR: onAskUser callback not provided in tool context.";let s=[];Object.keys(t).forEach(r=>{if(r.startsWith("option")){let a=t[r];if(typeof a=="string"&&a.includes("::")){let[i,p]=a.split("::");s.push({id:r,label:i.trim(),description:p.trim()})}else s.push({id:r,label:String(a).trim(),description:""})}});try{return`USER CHOOSE: ${await n.onAskUser(o,s)}`}catch(r){return`ERROR: Failed to get user input: ${r instanceof Error?r.message:String(r)}`}};import bc from"puppeteer";import Po from"path";import go from"fs-extra";import{PDFDocument as kc}from"pdf-lib";var jr=async e=>{let{path:n,content:t,orientation:o="portrait",margin:s="0px"}=D(e);if(!n)return'ERROR: Missing "path" argument for write_pdf.';if(!t)return'ERROR: Missing "content" (HTML/CSS) for write_pdf.';let r=Po.resolve(process.cwd(),n),a=null;try{await go.ensureDir(Po.dirname(r)),await yt.recordFileChange(r);let i=po();a=await bc.launch({headless:!0,executablePath:i.executablePath||void 0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--disable-dev-shm-usage"]});let p=await a.newPage(),d=t,c={},l=async k=>{if(!k||k.startsWith("http://")||k.startsWith("https://")||k.startsWith("data:"))return null;try{let S=Po.resolve(process.cwd(),k);if(await go.pathExists(S)){let _=Po.extname(S).toLowerCase().replace(".","")||"png",E=_==="jpg"?"jpeg":_==="svg"?"svg+xml":_,x=await go.readFile(S,"base64");return`data:image/${E};base64,${x}`}}catch{}return null},f=/<link[^>]+href=["']([^"']+)["']/gi,u={},m;for(;(m=f.exec(t))!==null;){let k=m[1],S=m[0];if(k&&S.toLowerCase().includes("stylesheet")&&!k.startsWith("http://")&&!k.startsWith("https://")&&!k.startsWith("data:"))try{let _=Po.resolve(process.cwd(),k);if(await go.pathExists(_)){let E=await go.readFile(_,"utf-8");u[S]=`<style>${E}</style>`}}catch{}}for(let[k,S]of Object.entries(u))d=d.split(k).join(S);let g=/<img[^>]+src=["']([^"']+)["']/gi;for(;(m=g.exec(d))!==null;){let k=m[1];if(k&&!c[k]){let S=await l(k);S&&(c[k]=S)}}let y=/url\(\s*['"]?([^'")]+?)['"]?\s*\)/gi;for(;(m=y.exec(d))!==null;){let k=m[1].trim();if(k&&!c[k]){let S=await l(k);S&&(c[k]=S)}}for(let[k,S]of Object.entries(c)){let _=k.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),E=new RegExp(`(src=["'])(${_})(["'])`,"gi");d=d.replace(E,`$1${S}$3`);let x=new RegExp(`url\\(\\s*(['"]?)(${_})\\1\\s*\\)`,"gi");d=d.replace(x,`url($1${S}$1)`)}let h=`
|
|
778
781
|
<style>
|
|
779
782
|
@page {
|
|
780
783
|
margin: ${s};
|
|
@@ -804,7 +807,7 @@ ${u}${m}`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Fa
|
|
|
804
807
|
</style>
|
|
805
808
|
<div class="watermark">Generated by FluxFlow CLI (AI)</div>
|
|
806
809
|
${d}
|
|
807
|
-
`;await p.setContent(h,{waitUntil:"networkidle0",timeout:18e4});let b=await p.pdf({format:"A4",landscape:String(o).toLowerCase()==="landscape",margin:{top:s,right:s,bottom:s,left:s},printBackground:!0}),w=await kc.load(b),T=Po.basename(n);w.setTitle(`FluxFlow_${T}`),w.setAuthor("FluxFlow CLI"),w.setSubject("Generated with Agentic AI System"),w.setKeywords(["FluxFlow","AI","Agentic","Automated"]),w.setCreator("FluxFlow PDF Engine"),w.setProducer("FluxFlow (Generative AI)");let $=await w.save();await go.writeFile(r,$);let R=await go.stat(r);return`SUCCESS: PDF generated successfully at [${n}] (${(R.size/1024).toFixed(2)} KB).`}catch(i){let p=i instanceof Error?i.message:String(i);return`ERROR: Failed to generate PDF [${n}]: ${p}`}finally{a&&await a.close()}};import Oa from"fs-extra";import Gr from"path";import Sc from"html-to-docx";var Hr=async e=>{let{path:n,content:t}=D(e);if(!n)return'ERROR: Missing "path" argument for write_docx.';if(!t)return'ERROR: Missing "content" (HTML) for write_docx.';let o=Gr.resolve(process.cwd(),n);try{await Oa.ensureDir(Gr.dirname(o)),await
|
|
810
|
+
`;await p.setContent(h,{waitUntil:"networkidle0",timeout:18e4});let b=await p.pdf({format:"A4",landscape:String(o).toLowerCase()==="landscape",margin:{top:s,right:s,bottom:s,left:s},printBackground:!0}),w=await kc.load(b),T=Po.basename(n);w.setTitle(`FluxFlow_${T}`),w.setAuthor("FluxFlow CLI"),w.setSubject("Generated with Agentic AI System"),w.setKeywords(["FluxFlow","AI","Agentic","Automated"]),w.setCreator("FluxFlow PDF Engine"),w.setProducer("FluxFlow (Generative AI)");let $=await w.save();await go.writeFile(r,$);let R=await go.stat(r);return`SUCCESS: PDF generated successfully at [${n}] (${(R.size/1024).toFixed(2)} KB).`}catch(i){let p=i instanceof Error?i.message:String(i);return`ERROR: Failed to generate PDF [${n}]: ${p}`}finally{a&&await a.close()}};import Oa from"fs-extra";import Gr from"path";import Sc from"html-to-docx";var Hr=async e=>{let{path:n,content:t}=D(e);if(!n)return'ERROR: Missing "path" argument for write_docx.';if(!t)return'ERROR: Missing "content" (HTML) for write_docx.';let o=Gr.resolve(process.cwd(),n);try{await Oa.ensureDir(Gr.dirname(o)),await yt.recordFileChange(o);let s=Gr.basename(n),r=t.includes("<html")?t:`
|
|
808
811
|
<!DOCTYPE html>
|
|
809
812
|
<html lang="en">
|
|
810
813
|
<head>
|
|
@@ -816,38 +819,38 @@ ${u}${m}`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Fa
|
|
|
816
819
|
</body>
|
|
817
820
|
</html>
|
|
818
821
|
`,a=await Sc(r,null,{title:`FluxFlow_${s}`,creator:"FluxFlow CLI",description:"Generated by Agentic AI System",table:{row:{cantSplit:!0}},footer:!0,pageNumber:!0});return await Oa.writeFile(o,a),`SUCCESS: Word document [${n}] generated successfully.
|
|
819
|
-
- Size: ${(a.length/1024).toFixed(1)} KB`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Failed to generate DOCX [${n}]: ${r}`}};import os from"fs/promises";import
|
|
822
|
+
- Size: ${(a.length/1024).toFixed(1)} KB`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Failed to generate DOCX [${n}]: ${r}`}};import os from"fs/promises";import kn from"path";import qr from"fast-glob";import{Minimatch as La}from"minimatch";import Tc from"fs";async function ns(e,n,t=e,o=1){if(o>12)return[];let s=[],r;try{r=await os.readdir(e,{withFileTypes:!0})}catch{return[]}for(let a of r){let i=kn.join(e,a.name),p=kn.relative(t,i),d=p.split(kn.sep).map(f=>f.toLowerCase()),c=a.name.toLowerCase();if(!n.some(f=>{let u=f.toLowerCase();return u.startsWith(".")&&c.endsWith(u)?!0:d.some(m=>m===u||m.startsWith(".pnpm"))}))if(a.isDirectory()){let f=await ns(i,n,t,o+1);s=s.concat(f)}else a.isFile()&&s.push({fullPath:i,relativePath:p})}return s}function Rc(e,n,t=1/0){if(e===n)return 0;if(e.length===0)return n.length;if(n.length===0)return e.length;if(Math.abs(e.length-n.length)>t)return t+1;let o=Array.from({length:n.length+1},(s,r)=>r);for(let s=1;s<=e.length;s++){let r=[s],a=s;for(let i=1;i<=n.length;i++){let p=e[s-1]===n[i-1]?0:1,d=Math.min(r[i-1]+1,o[i]+1,o[i-1]+p);r.push(d),d<a&&(a=d)}if(o=r,a>t)return t+1}return o[n.length]}function Ec(e,n){if(!e||!n)return!1;let t=e.toLowerCase(),o=n.toLowerCase();if(t.includes(o))return!0;let s=t.split(/[^a-z0-9]+/).filter(a=>a.length>0),r=o.split(/[^a-z0-9]+/).filter(a=>a.length>1||o.length===1&&a.length>0);return r.length===0?!1:r.every(a=>{let i=a.length<=2?0:a.length<=5?1:2;for(let p of s)if(p.includes(a)||a.length>=3&&p.length>=3&&Math.abs(p.length-a.length)<=i&&Rc(a,p,i)<=i)return!0;return!1})}async function _c(e){let n=kn.join(Ct,"skills","fluxflow"),t=kn.join(n,"references");if(!Tc.existsSync(t))return"No documentation found in #docs.";let o=async p=>{let d=[];try{let c=await os.readdir(p,{withFileTypes:!0});for(let l of c){let f=kn.join(p,l.name);l.isDirectory()?d=d.concat(await o(f)):l.isFile()&&d.push(f)}}catch{}return d},s=await o(t);if(s.length===0)return"No documentation found in #docs.";let r=null;try{r=new RegExp(e,"i")}catch{}let a=e.toLowerCase(),i=[];for(let p of s)try{let d=await os.readFile(p,"utf8");if(r&&r.test(d)||d.toLowerCase().includes(a)){let l=kn.relative(n,p).replace(/\\/g,"/");i.push(l)}}catch{}return i.length===0?`No matches found for "${e}" in #docs.`:`DOCs Search "${e}":
|
|
820
823
|
${i.map(p=>`- ${p}`).join(`
|
|
821
|
-
`)}`}var ss=async e=>{let{keyword:n,path:t,fuzzy:o,subString:s,regex:r}=D(e);if(n==null)return'ERROR: Missing "keyword" argument.';let a=String(n);if(t&&(t.trim().toLowerCase()==="#docs"||t.trim().toLowerCase()==="#doc"||t.trim().toLowerCase()==="#documentation"||t.trim().toLowerCase().includes("#skill/global/fluxflow")))return _c(a);let i=g=>g===!0||g==="true"||g===1||g==="1"||g==="yes",p=r===!1||r==="false"||r===0||r==="0"||r==="no",d=r===!0||r==="true"||r===1||r==="1"||r==="yes",c=i(o)||i(s),l=null,f=null;if(p)c||(f=new RegExp(`(?<![\\w])${a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i"));else{try{l=new RegExp(a,"i")}catch(g){if(d)return`ERROR: Invalid regex pattern "${a}": ${g.message}`}f=new RegExp(`(?<![\\w])${a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i")}let u=[".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"],m=150;try{let g=[],y=process.cwd(),h=null;if(t){let M=t.split(";").map(U=>U.trim()).filter(Boolean),v=M.some(U=>U.startsWith("!"));if(M.some(U=>qr.isDynamicPattern(U)||/[*?{}[\]()|+]/.test(U))){h="glob";let U=t.replace(/\\/g,"/"),j=M.map(F=>F.replace(/\\/g,"/")),ee=u.map(F=>F.startsWith(".")?`**/*${F}`:`**/${F}/**`);if(v&&!M.some(F=>!F.startsWith("!"))){let F=await ns(y,u,y),W=O=>O.endsWith("/")?O+"**":O,ne=j.filter(O=>O.startsWith("!")).map(O=>W(O.slice(1))),Me=j.filter(O=>!O.startsWith("!")).map(W);g=F.filter(O=>{let B=O.relativePath.replace(/\\/g,"/"),J=Me.length===0||Me.some(We=>{try{return new La(We).match(B)}catch{return!1}}),Q=ne.some(We=>{try{return new La(We).match(B)}catch{return!1}});return J&&!Q})}else{let F=j.some(ne=>/[\(\)\|]|\.\*/.test(ne)),W=[];if(!F)try{W=await qr(j,{cwd:y,ignore:ee,dot:!0,onlyFiles:!0,absolute:!1})}catch{W=[]}if(W.length===0&&(F||qr.isDynamicPattern(U))){let ne=U.match(/^([^\*\?\(\)\|\[\]\s]+)\//),Me=ne&&!/[\*\?\(\)\|\[\]]/.test(ne[1])?
|
|
824
|
+
`)}`}var ss=async e=>{let{keyword:n,path:t,fuzzy:o,subString:s,regex:r}=D(e);if(n==null)return'ERROR: Missing "keyword" argument.';let a=String(n);if(t&&(t.trim().toLowerCase()==="#docs"||t.trim().toLowerCase()==="#doc"||t.trim().toLowerCase()==="#documentation"||t.trim().toLowerCase().includes("#skill/global/fluxflow")))return _c(a);let i=g=>g===!0||g==="true"||g===1||g==="1"||g==="yes",p=r===!1||r==="false"||r===0||r==="0"||r==="no",d=r===!0||r==="true"||r===1||r==="1"||r==="yes",c=i(o)||i(s),l=null,f=null;if(p)c||(f=new RegExp(`(?<![\\w])${a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i"));else{try{l=new RegExp(a,"i")}catch(g){if(d)return`ERROR: Invalid regex pattern "${a}": ${g.message}`}f=new RegExp(`(?<![\\w])${a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w])`,"i")}let u=[".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"],m=150;try{let g=[],y=process.cwd(),h=null;if(t){let M=t.split(";").map(U=>U.trim()).filter(Boolean),v=M.some(U=>U.startsWith("!"));if(M.some(U=>qr.isDynamicPattern(U)||/[*?{}[\]()|+]/.test(U))){h="glob";let U=t.replace(/\\/g,"/"),j=M.map(F=>F.replace(/\\/g,"/")),ee=u.map(F=>F.startsWith(".")?`**/*${F}`:`**/${F}/**`);if(v&&!M.some(F=>!F.startsWith("!"))){let F=await ns(y,u,y),W=O=>O.endsWith("/")?O+"**":O,ne=j.filter(O=>O.startsWith("!")).map(O=>W(O.slice(1))),Me=j.filter(O=>!O.startsWith("!")).map(W);g=F.filter(O=>{let B=O.relativePath.replace(/\\/g,"/"),J=Me.length===0||Me.some(We=>{try{return new La(We).match(B)}catch{return!1}}),Q=ne.some(We=>{try{return new La(We).match(B)}catch{return!1}});return J&&!Q})}else{let F=j.some(ne=>/[\(\)\|]|\.\*/.test(ne)),W=[];if(!F)try{W=await qr(j,{cwd:y,ignore:ee,dot:!0,onlyFiles:!0,absolute:!1})}catch{W=[]}if(W.length===0&&(F||qr.isDynamicPattern(U))){let ne=U.match(/^([^\*\?\(\)\|\[\]\s]+)\//),Me=ne&&!/[\*\?\(\)\|\[\]]/.test(ne[1])?kn.resolve(y,ne[1]):y,O=await ns(Me,u,y);try{let B=U.replace(/^\.\//,"");B=B.replace(/\.\*\/(\\.|[^\/])/g,".*$1"),!B.startsWith("^")&&!B.startsWith(".*")&&(B=`.*${B}`);let J=new RegExp(B.endsWith("$")?B:`${B}$`,"i");g=O.filter(Q=>{let We=Q.relativePath.replace(/\\/g,"/");return J.test(We)})}catch{g=[]}}else g=W.map(ne=>({fullPath:kn.resolve(y,ne),relativePath:ne}))}}else{let U=t.replace(/[\/\\]+$/,""),j=kn.resolve(y,U);try{let ee=await os.stat(j);if(ee.isDirectory())h="dir",g=await ns(j,u,y);else if(ee.isFile())h="file",g.push({fullPath:j,relativePath:kn.relative(y,j)});else return`ERROR: Path is neither a file nor a directory: ${t}`}catch{return`ERROR: Path not found: ${t}`}}}else g=await ns(y,u);let b=g.map(async M=>{try{let v=await os.readFile(M.fullPath,"utf-8");if(v.includes("\0"))return[];let L=v.split(/\r?\n/),U=[];for(let ee=0;ee<L.length;ee++)(c?L[ee].toLowerCase().includes(a.toLowerCase())||Ec(L[ee],a):p?f&&f.test(L[ee]):l&&l.test(L[ee])||f&&f.test(L[ee]))&&U.push({line:ee+1,content:L[ee].trim()});return U.length===0?null:{path:M.relativePath.replace(/\\/g,"/"),matches:U}}catch{return[]}}),w=await Promise.all(b),T=[],$=0;for(let M of w){if(!M||!M.matches)continue;if($>=m)break;let v=m-$,L=M.matches.slice(0,v);T.push({path:M.path,matches:L}),$+=L.length}typeof global.gc=="function"&&global.gc();let R=c?"(fuzzy mode)":d?"(regex mode)":p?"(keyword mode)":"(standard mode)";if(T.length===0){let M=h==="file"?` in '${t}'`:h==="dir"||h==="glob"?` in '${t}'`:". Try to specify files",v=h==="dir"?"[DIR]":h==="glob"?"[GLOB]":"";return`${v}${v?" ":""}Found 0 matches of '${a}'${M}${R?` ${R}`:""}`}let k=R?` ${R}`:"",S=`${T.length} file${T.length===1?"":"s"}`,_=`${$} match${$===1?"":"es"}`,E;h==="file"?E=`Found ${_} of '${a}' in '${t}'${k}:`:h==="dir"||h==="glob"?E=`Found ${_} of '${a}' in '${t}' across ${S}${k}:`:E=`Found ${_} of '${a}' across ${S}${k}:`;let x=h==="dir"?"[DIR]":h==="glob"?"[GLOB]":"",C=`${x}${x?" ":""}${E}
|
|
822
825
|
|
|
823
826
|
`;for(let M of T){C+=`${M.path}
|
|
824
827
|
`;for(let v of M.matches)C+=` ${v.line}: ${v.content}
|
|
825
828
|
`;C+=`
|
|
826
|
-
`}return C.trimEnd()}catch(g){return`ERROR: ${g.message}`}};import Da from"fs-extra";import zr from"path";var Cc=(e,n={})=>{try{if(e.length<8||e[0]!==137||e[1]!==80||e[2]!==78||e[3]!==71)return e;let t=[],o=[];for(let a=0;a<256;a++){let i=a;for(let p=0;p<8;p++)i&1?i=3988292384^i>>>1:i=i>>>1;o[a]=i}let s=a=>{let i=4294967295;for(let p=0;p<a.length;p++)i=o[(i^a[p])&255]^i>>>8;return(i^4294967295)>>>0},r=(a,i)=>{let p=Buffer.from(a,"ascii"),d=Buffer.from(i,"utf-8"),c=p.length+1+d.length,l=Buffer.alloc(8+c+4);l.writeUInt32BE(c,0),l.write("tEXt",4,"ascii"),p.copy(l,8),l[8+p.length]=0,d.copy(l,8+p.length+1);let f=s(l.subarray(4,8+c));return l.writeUInt32BE(f,8+c),l};for(let[a,i]of Object.entries(n))i!=null&&t.push(r(a,String(i)));if(t.length===0)return e;if(e.subarray(12,16).toString("ascii")==="IHDR"){let i=e.subarray(0,33),p=e.subarray(33);return Buffer.concat([i,...t,p])}return e}catch{return e}},Kr=async(e,n={})=>{let t=D(e),o=t.prompt||t.text,s=t.path||t.outputPath||t.output||"generated_image.png",r=t.ratio;if(!o)return'ERROR: Missing "prompt" argument for generate_image.';let a=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],i=o.toLowerCase();if(a.some(d=>i.includes(d)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let d=await
|
|
827
|
-
`)[0].match(/for\s*(?:await\s*)?\((.*)\)/);return s?`for (${
|
|
828
|
-
`)[0],60);if(n==="pair"){let o=e.childForFieldName("key");return o?
|
|
829
|
+
`}return C.trimEnd()}catch(g){return`ERROR: ${g.message}`}};import Da from"fs-extra";import zr from"path";var Cc=(e,n={})=>{try{if(e.length<8||e[0]!==137||e[1]!==80||e[2]!==78||e[3]!==71)return e;let t=[],o=[];for(let a=0;a<256;a++){let i=a;for(let p=0;p<8;p++)i&1?i=3988292384^i>>>1:i=i>>>1;o[a]=i}let s=a=>{let i=4294967295;for(let p=0;p<a.length;p++)i=o[(i^a[p])&255]^i>>>8;return(i^4294967295)>>>0},r=(a,i)=>{let p=Buffer.from(a,"ascii"),d=Buffer.from(i,"utf-8"),c=p.length+1+d.length,l=Buffer.alloc(8+c+4);l.writeUInt32BE(c,0),l.write("tEXt",4,"ascii"),p.copy(l,8),l[8+p.length]=0,d.copy(l,8+p.length+1);let f=s(l.subarray(4,8+c));return l.writeUInt32BE(f,8+c),l};for(let[a,i]of Object.entries(n))i!=null&&t.push(r(a,String(i)));if(t.length===0)return e;if(e.subarray(12,16).toString("ascii")==="IHDR"){let i=e.subarray(0,33),p=e.subarray(33);return Buffer.concat([i,...t,p])}return e}catch{return e}},Kr=async(e,n={})=>{let t=D(e),o=t.prompt||t.text,s=t.path||t.outputPath||t.output||"generated_image.png",r=t.ratio;if(!o)return'ERROR: Missing "prompt" argument for generate_image.';let a=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],i=o.toLowerCase();if(a.some(d=>i.includes(d)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let d=await on();if(!await Pi(d))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await Fi()).nextResetMin||60}m).`;let l=d.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},f=l.keyType==="Custom"&&l.apiKey?l.apiKey:FALLBACK_IMAGE_KEY,m={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[l.quality]||"zimage",g=1024,y=1024;if(r){let v=r.replace(/\s+/g,"");v==="16:9"?(g=1024,y=576):v==="9:16"?(g=576,y=1024):v==="4:3"?(g=1024,y=768):v==="3:4"?(g=768,y=1024):v==="1:1"&&(g=1024,y=1024)}let h=Math.floor(Math.random()*1e7),w=`https://gen.pollinations.ai/image/${encodeURIComponent(o)}?model=${m}&width=${g}&height=${y}&seed=${h}&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")}`,T=await fetch(w,{method:"GET",headers:{Authorization:`Bearer ${f}`}});if(!T.ok){let v=T.status,L="";try{L=await T.text()}catch{}return v===402||L.includes("Insufficient balance")||L.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${v}]: ${L||"Unknown API Error"}`}if((T.headers.get("content-type")||"").includes("application/json")){let v=await T.json();return v.status===402||v.error&&v.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${v.error?.message||JSON.stringify(v)}`}let R=await T.arrayBuffer(),k=Buffer.from(R),S={Title:o,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:o,Model:`Fluxflow:${m}`,Ratio:r||"1:1",Seed:String(h)};k=Cc(k,S);let _=zr.resolve(process.cwd(),s);await Da.ensureDir(zr.dirname(_)),await yt.recordFileChange(_),await Da.writeFile(_,k),await Ni(d);let E=zr.extname(s).toLowerCase(),C={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[E]||"image/png";return n.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${o}] and saved to [${s}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:k.toString("base64"),mimeType:C}}}:`SUCCESS: Image successfully generated from prompt [${o}] and saved to [${s}].`}catch(d){return`ERROR: Failed during image generation: ${d instanceof Error?d.message:String(d)}`}};var rs=async(e,n={})=>{let t=r=>{let a=new RegExp(`${r}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),i=e.match(a);return i?i[2].trim():null},o=t("id"),s=t("summary");if(!o||!s)return"ERROR: Missing 'id' or 'summary' for saveSummary tool.";try{let r=se(nn,{}),a=se(Nn,{});return a[o]=s,delete r[o],ye(Nn,a),ye(nn,r),`SUCCESS: Saved summary and purged raw memories for chat [${o}].`}catch(r){let a=r instanceof Error?r.message:String(r);return`ERROR: Failed to save summary for chat [${o}]: ${a}`}};var Fo=async(e,n={})=>{let o=(s=>{let r=new RegExp(`${s}\\s*[:=]\\s*(["'])(.*?)\\1(?=\\s*[,)]|\\s+\\w+\\s*[:=]|$)`,"s"),a=e.match(r);return a?a[2].trim():null})("id");if(!o)return"ERROR: Missing 'id' parameter for addMemScore tool.";try{let s=se(Ut,[]),r=!1,a=[];for(let c of s)c.score===void 0&&(c.score=.5),c.id===o?(c.score=Math.min(2,c.score+.2),r=!0):(c.score*=.98,c.score<.05&&(c.score=0)),c.score=Math.round(c.score*1e5)/1e5,c.score>0&&a.push(c);if(ye(Ut,a),!r)return`WARNING: Memory ID [${o}] not found. Other memories decayed by -0.01.`;let i=a.find(c=>c.id===o),p=i?i.score.toFixed(2):"deleted (score <= 0)",d=s.length-a.length;return`SUCCESS: Adjusted memory scores. Target [${o}] is now ${p}.${d>0?` Purged ${d} decayed memories.`:""}`}catch(s){let r=s instanceof Error?s.message:String(s);return`ERROR: Failed to adjust memory score for [${o}]: ${r}`}};import Yr from"fs-extra";import wo from"path";import{createRequire as Mc}from"module";import yo from"fs-extra";import Vr from"path";import $c from"https";var Pa={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 Ac(e,n=null){let t=n||`https://unpkg.com/tree-sitter-wasms@0.1.13/out/${e}`,o=Vr.join(uo,e);return await yo.ensureDir(uo),new Promise((s,r)=>{let a={headers:{"User-Agent":"FluxFlow-Agent"}};$c.get(t,a,i=>{if([301,302,307,308].includes(i.statusCode)&&i.headers.location){let d=i.headers.location;if(!d.startsWith("http")){let c=new URL(t);d=`${c.protocol}//${c.host}${d}`}Ac(e,d).then(s).catch(r);return}if(i.statusCode!==200){r(new Error(`Failed to download ${e}: HTTP ${i.statusCode}`));return}let p=yo.createWriteStream(o);i.pipe(p),p.on("finish",()=>{p.close(),s()})}).on("error",i=>{yo.existsSync(o)&&yo.unlink(o,()=>{}),r(i)})})}function Hp(e){let n=Vr.join(uo,e);return yo.existsSync(n)}async function qp(e){let n=Vr.join(uo,e);yo.existsSync(n)&&await yo.unlink(n)}var Ua=Mc(import.meta.url),Fa=Ua("web-tree-sitter"),Na=!1,Ba=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"]),Wa=new Set(["export_statement","lexical_declaration","variable_declaration","variable_declarator","pair","assignment_expression"]);function Sn(e,n=50){if(!e)return"";let t=e.replace(/\s+/g," ").trim();return t.length>n?t.substring(0,n-3)+"...":t}function ja(e){let n=e.type;if(n==="if_statement"){let o=e.childForFieldName("condition");return o?`if (${Sn(o.text,40)})`:"if"}if(n==="else_clause")return"else";if(n==="while_statement"||n==="do_statement"){let o=e.childForFieldName("condition");return`${n.split("_")[0]} (${o?Sn(o.text,40):""})`}if(n==="for_statement"||n==="for_in_statement"||n==="for_of_statement"){let s=e.text.split(`
|
|
830
|
+
`)[0].match(/for\s*(?:await\s*)?\((.*)\)/);return s?`for (${Sn(s[1],40)})`:"for"}if(n==="switch_statement"){let o=e.childForFieldName("value");return`switch (${o?Sn(o.text,40):""})`}if(n==="try_statement")return"try";if(n==="catch_clause")return"catch";if(n==="element"||n==="script_element"||n==="style_element"||n==="jsx_element"||n==="jsx_self_closing_element"){let o=e.childForFieldName("opening_element")||e.childForFieldName("start_tag")||e.children.find(r=>r.type==="start_tag")||e,s=o.childForFieldName("name")||o.childForFieldName("tag_name")||o.children.find(r=>r.type==="tag_name");return s?`<${Sn(s.text,30)}>`:null}if(["import_declaration","import_from_statement","import_statement","preproc_include"].includes(n))return Sn(e.text.split(`
|
|
831
|
+
`)[0],60);if(n==="pair"){let o=e.childForFieldName("key");return o?Sn(o.text.replace(/["']/g,""),40):null}if(n==="assignment_expression"){let o=e.childForFieldName("left");return o?`${Sn(o.text,30)} = ...`:null}if(n==="variable_declarator"){let o=e.childForFieldName("name")||e.children.find(s=>["identifier","object_pattern","array_pattern"].includes(s.type));return o?Sn(o.text,40):null}let t=e.childForFieldName("name")||e.childForFieldName("declarator")||e.children.find(o=>["identifier","type_identifier","field_identifier","property_identifier","shorthand_property_identifier"].includes(o.type));if(t){if(t.type.includes("declarator")){let o=t.descendantsOfType("identifier")[0]||t.descendantsOfType("field_identifier")[0];if(o)return Sn(o.text,40)}return Sn(t.text,40)}if(["arrow_function","function_expression","function_declaration"].includes(n)){let o=e.parent;for(;o&&o.type!=="program";){let s=ja(o);if(s)return s;if(!Wa.has(o.type))break;o=o.parent}}return null}function vc(e){let n=[];function t(o){for(let s of o.children)Ba.has(s.type)?n.push(s):t(s)}return t(e),n}function Ic(e){return e.replace(/_([a-z])/g,n=>n[1].toUpperCase())}function Ga(e,n=0,t=!0,o="",s=null,r=12){let a=e.type,i=ja(e),p=Ba.has(a)||n===0,d=vc(e),c=p&&n>0&&(Wa.has(a)&&d.length>0||i!==null&&i===s&&d.length>0),l="",f=o,u=n,m=s;if(p&&!c){let g=e.startPosition.row+1,y=e.endPosition.row+1,h=Ic(a),b=i?`${h} [${i}]`:h;n===0?(l+=`\u{1F4C1} ROOT (Lines: ${g}-${y})
|
|
829
832
|
`,f=o):(l+=`${o}${t?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 "}${b} (Lines: ${g}-${y})
|
|
830
833
|
`,f+=t?" ":"\u2502 "),u=n+1,m=i}return u>r&&d.length>0?l+=`${f}\u2514\u2500\u2500 ... depth exceeded ...
|
|
831
|
-
`:d.forEach((g,y)=>{let h=y===d.length-1;l+=Ga(g,u,c?t&&h:h,f,m,r)}),l}var Xr=async e=>{let n;try{n=D(e).path}catch{return`ERROR: Failed to parse arguments: ${e}`}if(!n)return'ERROR: No file path provided. Use [tool:functions.FileMap(path="...")]';let t=wo.isAbsolute(n)?n:wo.resolve(process.cwd(),n);if(!
|
|
834
|
+
`:d.forEach((g,y)=>{let h=y===d.length-1;l+=Ga(g,u,c?t&&h:h,f,m,r)}),l}var Xr=async e=>{let n;try{n=D(e).path}catch{return`ERROR: Failed to parse arguments: ${e}`}if(!n)return'ERROR: No file path provided. Use [tool:functions.FileMap(path="...")]';let t=wo.isAbsolute(n)?n:wo.resolve(process.cwd(),n);if(!Yr.existsSync(t))return`ERROR: File not found: ${n}`;let o=wo.extname(t).slice(1).toLowerCase(),s=Pa[o];if(!s)return`ERROR: Unsupported file extension: .${o}`;let r=wo.resolve(uo,s);if(!Yr.existsSync(r))return`ERROR: Parser for .${o} not found. Please download it in Settings > Other.`;try{let a=Fa.Parser;if(!Na){let m;try{m=wo.join(wo.dirname(Ua.resolve("web-tree-sitter")),"tree-sitter.wasm")}catch{m=wo.join(process.cwd(),"node_modules","web-tree-sitter","tree-sitter.wasm")}await a.init({locateFile:g=>g==="tree-sitter.wasm"||g.endsWith("tree-sitter.wasm")?m:g}),Na=!0}let i=new a,p=await Fa.Language.load(r);i.setLanguage(p);let d=await Yr.readFile(t,"utf8"),c=d.split(`
|
|
832
835
|
`).length,l=12;c>1e4?l=2:c>=8e3?l=3:c>=5e3?l=5:c>=4e3?l=8:c>2e3&&(l=10);let f=i.parse(d),u=Ga(f.rootNode,0,!0," ",null,l);return`\u{1F4C4} File Map for: ${n}
|
|
833
836
|
${u}`}catch(a){let i=a instanceof Error?a.message:typeof a=="object"?JSON.stringify(a):String(a),p=a instanceof Error?`
|
|
834
|
-
Stack: ${a.stack}`:"";return`ERROR: Failed to map file: ${i}${p}`}};import Qn from"fs";import Ha from"path";var is=async(e,n={})=>{let{method:t,tasks:o,markDone:s}=D(e),r=n.chatId||"default";if(!t)return'ERROR: Missing "method" argument for Goal tool (create/append/get).';let a=Ha.join(
|
|
837
|
+
Stack: ${a.stack}`:"";return`ERROR: Failed to map file: ${i}${p}`}};import Qn from"fs";import Ha from"path";var is=async(e,n={})=>{let{method:t,tasks:o,markDone:s}=D(e),r=n.chatId||"default";if(!t)return'ERROR: Missing "method" argument for Goal tool (create/append/get).';let a=Ha.join(Fn,"plan",r),i=Ha.join(a,"todo.md"),p=l=>{if(!l||Array.isArray(l))return l;let f=String(l).trim();if(f.startsWith("[")&&f.endsWith("]")){let u=f.match(/"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'/g);return u?u.map(m=>m.slice(1,-1).replace(/\\(.)/g,"$1")):f.slice(1,-1).split(",").map(m=>m.trim()).filter(Boolean)}return l},d=l=>{let f=p(l);return f?(Array.isArray(f)?f:String(f).split(`
|
|
835
838
|
`)).map(m=>{let g=String(m).trim();return g?g.startsWith("- [ ]")||g.startsWith("- [x]")||g.startsWith("- [X]")?g:`- [ ] ${g}`:null}).filter(Boolean).join(`
|
|
836
839
|
`)+`
|
|
837
840
|
`:""},c=(l,f)=>{if(!f)return{content:l,markedCount:0};let u=p(f),m=(Array.isArray(u)?u:[u]).map(b=>String(b).replace(/^- \[[xX ]\]\s*/i,"").trim()).filter(Boolean),g=l.split(`
|
|
838
841
|
`),y=0,h=!1;for(let b of m){let w=!1;for(let T=0;T<g.length;T++)if(g[T].includes(b)&&/^- \[\s\]/.test(g[T].trim())){g[T]=g[T].replace("- [ ]","- [x]"),w=!0,h=!0,y++;break}if(!w){for(let T=0;T<g.length;T++)if(g[T].toLowerCase().includes(b.toLowerCase())&&/^- \[\s\]/.test(g[T].trim())){g[T]=g[T].replace("- [ ]","- [x]"),w=!0,h=!0,y++;break}}}return{content:h?g.join(`
|
|
839
|
-
`):l,markedCount:y}};try{if(Qn.existsSync(a)||Qn.mkdirSync(a,{recursive:!0}),t==="create"){if(!o)return'ERROR: Missing "tasks" for create method.';let l=d(o),f=0;if(s){let m=c(l,s);l=m.content,f=m.markedCount}await
|
|
842
|
+
`):l,markedCount:y}};try{if(Qn.existsSync(a)||Qn.mkdirSync(a,{recursive:!0}),t==="create"){if(!o)return'ERROR: Missing "tasks" for create method.';let l=d(o),f=0;if(s){let m=c(l,s);l=m.content,f=m.markedCount}await yt.recordFileChange(i),Qn.writeFileSync(i,l,"utf8");let u=l.split(/\r?\n/).map(m=>m.trim()).filter(m=>m.startsWith("- [ ]")||m.startsWith("- [x]")||m.startsWith("- [X]")).length;if(f>0){let m=l.split(/\r?\n/).map(g=>g.trim()).filter(g=>g.startsWith("- [x]")||g.startsWith("- [X]")).length;return`SUCCESS: Goal Created (${f} marked done, ${m} completed, ${u-m} left)
|
|
840
843
|
${l}`}return`SUCCESS: Goal Created (${u} total)
|
|
841
|
-
${l}`}if(t==="append"){if(!o)return'ERROR: Missing "tasks" for append method.';let l=d(o);await
|
|
842
|
-
${f}`}if(t==="get"){if(!Qn.existsSync(i))return"Goal: No task list found for this session.";let l=Qn.readFileSync(i,"utf8"),f=0;if(s){let h=c(l,s);h.markedCount>0&&(l=h.content,f=h.markedCount,await
|
|
843
|
-
${l}`}return`ERROR: Unknown method "${t}". Use create, append, or get.`}catch(l){return`ERROR: Goal failure: ${l instanceof Error?l.message:String(l)}`}};var Jr=async(e,n={})=>{let{runSubagent:t}=await import("./ai-
|
|
844
|
-
`),d}catch(d){let{isTerminationSignaled:c}=await import("./ai-
|
|
845
|
-
`)}return`ERROR: Subagent execution failed: ${d.message}`}};var qa=async(e,n={})=>{let{runSubagent:t}=await import("./ai-
|
|
844
|
+
${l}`}if(t==="append"){if(!o)return'ERROR: Missing "tasks" for append method.';let l=d(o);await yt.recordFileChange(i),Qn.appendFileSync(i,l,"utf8");let f=Qn.readFileSync(i,"utf8"),u=f.split(/\r?\n/).map(h=>h.trim()),m=u.filter(h=>h.startsWith("- [ ]")||h.startsWith("- [x]")||h.startsWith("- [X]")).length,g=u.filter(h=>h.startsWith("- [x]")||h.startsWith("- [X]")).length,y=l.split(/\r?\n/).map(h=>h.trim()).filter(h=>h.startsWith("- [ ]")||h.startsWith("- [x]")||h.startsWith("- [X]")).length;return`SUCCESS: Goal Appended (${g} completed, ${m-g} left, ${y} added)
|
|
845
|
+
${f}`}if(t==="get"){if(!Qn.existsSync(i))return"Goal: No task list found for this session.";let l=Qn.readFileSync(i,"utf8"),f=0;if(s){let h=c(l,s);h.markedCount>0&&(l=h.content,f=h.markedCount,await yt.recordFileChange(i),Qn.writeFileSync(i,l,"utf8"))}let u=l.split(/\r?\n/).map(h=>h.trim()),m=u.filter(h=>h.startsWith("- [ ]")||h.startsWith("- [x]")||h.startsWith("- [X]")).length,g=u.filter(h=>h.startsWith("- [x]")||h.startsWith("- [X]")).length;return`${f>0?`SUCCESS: ${f} Goal(s) Marked Done`:"Goal"}: ${g} Completed, ${m-g} left
|
|
846
|
+
${l}`}return`ERROR: Unknown method "${t}". Use create, append, or get.`}catch(l){return`ERROR: Goal failure: ${l instanceof Error?l.message:String(l)}`}};var Jr=async(e,n={})=>{let{runSubagent:t}=await import("./ai-5QIAOHQ7.js"),o=D(e),s=o.task||o.instruction||o.prompt,r=o.model||null,a=o.tools||null;if(!s)return'ERROR: Missing "task" argument for invokeSync.';let i=null;if(a)try{let d=a.trim();d.startsWith("[")&&d.endsWith("]")&&(d=d.substring(1,d.length-1)),i=d.split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let p=o.title||s.substring(0,30);try{n.onVisualFeedback&&n.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${p}`);let d=await t(s,n,r,i,50);return n.onVisualFeedback&&n.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${p} [COMPLETED]
|
|
847
|
+
`),d}catch(d){let{isTerminationSignaled:c}=await import("./ai-5QIAOHQ7.js"),l=d.message==="Subagent task was cancelled by user."||c();if(n.onVisualFeedback){let f=l?"[CANCELLED]":"[FAILED]";n.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${p} ${f}
|
|
848
|
+
`)}return`ERROR: Subagent execution failed: ${d.message}`}};var qa=async(e,n={})=>{let{runSubagent:t}=await import("./ai-5QIAOHQ7.js"),o=D(e),s=o.task||o.instruction||o.prompt,r=o.model||null,a=o.title||null,i=o.tools||null;if(!s)return'ERROR: Missing "task" argument for invoke.';let p=null;if(i)try{let h=i.trim();h.startsWith("[")&&h.endsWith("]")&&(h=h.substring(1,h.length-1)),p=h.split(",").map(b=>b.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let d=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,c=null,l=null,f=new Promise((h,b)=>{c=h,l=b}),u={id:d,title:a||s.substring(0,30),task:s,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:h=>{h&&u.pendingSteerMessages.push(h)},completionPromise:f,_resolveCompletion:c,_rejectCompletion:l,progress:[]},m={chunks:[],totalWords:0};Qe.push(u),n.onSubagentUpdate&&n.onSubagentUpdate();let g=[],y={...n,taskId:d,onAskMain:async h=>{let b=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,w=null,T=new Promise(k=>{w=k}),$={id:b,question:h,answered:!1,answer:null,askedAt:Date.now(),_resolve:w};return u.questions.push($),u.status="waiting",n.onSubagentUpdate&&n.onSubagentUpdate(),Rs(`[SYSTEM] Background subagent "${u.title}" is WAITING FOR YOUR INPUT: "${h}"
|
|
846
849
|
Respond using tool: [tool:functions.Answer(id="${d}", answer="...")]
|
|
847
850
|
[/SYSTEM]`),await T},onVisualFeedback:h=>{u.lastChunkTime=Date.now();let b=h.replace(/\x1b\[[0-9;]*m/g,""),w=b.match(/[✔✘✗✖🔍📖→➕↻•]\s*([A-Za-z0-9\s-]+)/);w?u.currentTool=w[1].trim():u.currentTool=b,n.onSubagentUpdate&&n.onSubagentUpdate()},onTokenChunk:(h,b)=>{let w=Date.now();if(u.lastChunkTime=w,u.currentTool="Thinking",typeof b=="number"&&b>0){m.totalWords+=b,m.chunks.push({time:w,words:b});let T=w-400;if(m.chunks=m.chunks.filter($=>$.time>=T),m.chunks.length>0){let $=m.chunks.reduce((S,_)=>S+_.words,0),R=m.chunks[0].time,k=Math.max(.4,(w-R)/1e3);u.wps=Math.round($/k*10)/10}}n.onSubagentUpdate&&n.onSubagentUpdate()}};return t(s,y,r,p,50,h=>{if(u.status==="cancelled")return;if(h.startsWith("[Subagent Turn")&&g.length>0&&(u.progress.push([...g]),g=[]),h.includes("[Executing Tool]")){let w=h.match(/\[Executing Tool\]\s*([a-zA-Z0-9_]+)/);w&&(!u.currentTool||u.currentTool==="Thinking")&&(u.currentTool=w[1])}let b=h;if(b.startsWith("[Tool Result]")){let w=b.split(`
|
|
848
851
|
`);w.length>5&&(b=w.slice(0,4).join(`
|
|
849
852
|
`)+`
|
|
850
|
-
... [Content/Diff Truncated from Logs] ...`)}g.push(b),n.onSubagentUpdate&&n.onSubagentUpdate()},!0).then(h=>{if(u.status==="cancelled"){u._resolveCompletion&&u._resolveCompletion(h);return}g.length>0&&(u.progress.push([...g]),g=[]),u.status="completed",u.finalAnswer=h,n.onSubagentUpdate&&n.onSubagentUpdate(),Rs(`[SYSTEM] Background subagent "${u.title}" (id: ${d}) has FINISHED. Call GetProgress(id="${d}") to see the final result. [/SYSTEM]`),u._resolveCompletion&&u._resolveCompletion(h)}).catch(async h=>{let{isTerminationSignaled:b}=await import("./ai-
|
|
853
|
+
... [Content/Diff Truncated from Logs] ...`)}g.push(b),n.onSubagentUpdate&&n.onSubagentUpdate()},!0).then(h=>{if(u.status==="cancelled"){u._resolveCompletion&&u._resolveCompletion(h);return}g.length>0&&(u.progress.push([...g]),g=[]),u.status="completed",u.finalAnswer=h,n.onSubagentUpdate&&n.onSubagentUpdate(),Rs(`[SYSTEM] Background subagent "${u.title}" (id: ${d}) has FINISHED. Call GetProgress(id="${d}") to see the final result. [/SYSTEM]`),u._resolveCompletion&&u._resolveCompletion(h)}).catch(async h=>{let{isTerminationSignaled:b}=await import("./ai-5QIAOHQ7.js");if(h.message==="Subagent task was cancelled."||u.status==="cancelled"||b()){u.status="cancelled",g.push("[SUBAGENT CANCELLED] Task was cancelled."),u.progress.push([...g]),n.onSubagentUpdate&&n.onSubagentUpdate(),u._resolveCompletion&&u._resolveCompletion(null);return}g.push(`[SUBAGENT FAILURE] Error: ${h.message}`),u.progress.push([...g]),u.status="failed",u.error=h.message,n.onSubagentUpdate&&n.onSubagentUpdate(),Rs(`[SYSTEM] Background subagent "${u.title}" (id: ${d}) FAILED with error: ${h.message}. [/SYSTEM]`),u._rejectCompletion&&u._rejectCompletion(h)}),`SUCCESS: Background subagent started. Task ID: ${d}`};var Qr=async(e,n={})=>{let o=D(e).id;if(!o)return'ERROR: Missing "id" argument for getProgress.';let s=Qe.find(i=>i.id===o);if(!s)return`ERROR: Subagent task with ID [${o}] not found.`;let r=`Subagent Task Status: ${s.status.toUpperCase()}
|
|
851
854
|
`;if(r+=`Title: ${s.title}
|
|
852
855
|
`,r+=`Task: ${s.task}
|
|
853
856
|
`,s.startedAt){let i=Math.floor((Date.now()-s.startedAt)/1e3);r+=`Elapsed Time: ${i}s
|
|
@@ -872,7 +875,7 @@ ${s.finalAnswer}
|
|
|
872
875
|
`),r.replace(/\r\n/g,`
|
|
873
876
|
`).replace(/\n{3,}/g,`
|
|
874
877
|
|
|
875
|
-
`).trim().replace(/\[TOOL RESULT\]/gi,"TOOL RESULT:")};var za=async(e,n={})=>{let o=D(e).id;if(!o)return'ERROR: Missing "id" argument for cancel.';let s=Qe.find(r=>r.id===o);return s?s.status==="completed"||s.status==="failed"?`INFO: Subagent task with ID [${o}] has already finished with status [${s.status.toUpperCase()}].`:s.status==="cancelled"?`INFO: Subagent task with ID [${o}] is already cancelled.`:(s.status="cancelled",n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Subagent task with ID [${o}] has been cancelled.`):`ERROR: Subagent task with ID [${o}] not found.`};import
|
|
878
|
+
`).trim().replace(/\[TOOL RESULT\]/gi,"TOOL RESULT:")};var za=async(e,n={})=>{let o=D(e).id;if(!o)return'ERROR: Missing "id" argument for cancel.';let s=Qe.find(r=>r.id===o);return s?s.status==="completed"||s.status==="failed"?`INFO: Subagent task with ID [${o}] has already finished with status [${s.status.toUpperCase()}].`:s.status==="cancelled"?`INFO: Subagent task with ID [${o}] is already cancelled.`:(s.status="cancelled",n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Subagent task with ID [${o}] has been cancelled.`):`ERROR: Subagent task with ID [${o}] not found.`};import St from"fs-extra";import $t from"path";var Oc=["node_modules","dist","bin","logs",".git",".fluxflow","secret",".gemini",".agents","tmp","temp","build","out","snapshots"];async function as(e,n=e){let t={},o=await St.readdir(e,{withFileTypes:!0}).catch(()=>[]);for(let s of o){if(Oc.includes(s.name))continue;let r=$t.join(e,s.name),a=$t.relative(n,r).replace(/\\/g,"/");if(s.isDirectory()){let i=await as(r,n);Object.assign(t,i)}else{let i=await St.stat(r).catch(()=>null);i&&(t[a]={size:i.size,mtime:i.mtimeMs})}}return t}async function Ka(e,n){await St.ensureDir(e);for(let t of Object.keys(n)){let o=$t.join(process.cwd(),t),s=$t.join(e,t);await St.ensureDir($t.dirname(s)),await St.copyFile(o,s).catch(()=>{})}}async function Zr(e,n,t=null,o=null){if(!await St.pathExists(e))return;o||(o=e);let s=await St.readdir(e,{withFileTypes:!0}).catch(()=>[]);for(let r of s){let a=$t.join(e,r.name),i=$t.join(n,r.name);if(r.isDirectory())await Zr(a,i,t,o);else{let p=$t.relative(o,a).replace(/\\/g,"/"),d=await St.pathExists(i);d&&await St.chmod(i,438).catch(()=>{}),await St.ensureDir($t.dirname(i));let c=await St.copyFile(a,i).then(()=>!0).catch(()=>!1);await St.chmod(i,438).catch(()=>{}),t&&(c?d?t.replaced++:t.restored++:t.failed.push(p))}}}var Zn={async takeInitialSnapshot(e){try{let n=$t.join(Fn,"snapshots",e);await St.remove(n).catch(()=>{}),await St.ensureDir(n);let t=await as(process.cwd());await Ka($t.join(n,"initial"),t);let o=se(wn,{});o[e]={initialManifest:t,currentManifest:t,checkpoints:[{id:"initial",timestamp:new Date().toISOString(),newFiles:[],modifiedFiles:[],deletedFiles:[],toolsUsed:[]}]},ye(wn,o)}catch{}},async recordTurnDelta(e,n,t=[]){try{let o=se(wn,{}),s=o[e];if(!s)return;let r=s.currentManifest||s.initialManifest,a=await as(process.cwd()),i=[],p=[],d=[];for(let[l,f]of Object.entries(a)){let u=r[l];u?(u.size!==f.size||u.mtime!==f.mtime)&&p.push(l):i.push(l)}for(let l of Object.keys(r))a[l]||d.push(l);let c=[...i,...p];if(c.length>0||d.length>0){let l={};for(let u of c)l[u]=a[u];let f=$t.join(Fn,"snapshots",e,`turn_${n}`);await Ka(f,l)}s.checkpoints.push({id:`turn_${n}`,timestamp:new Date().toISOString(),newFiles:i,modifiedFiles:p,deletedFiles:d,toolsUsed:t}),s.currentManifest=a,ye(wn,o)}catch{}},async getCheckpoints(e){try{let t=se(wn,{})[e];return t?t.checkpoints||[]:[]}catch{return[]}},async rollbackToCheckpoint(e,n){try{let t=se(wn,{}),o=t[e];if(!o)throw new Error("No session active for Advance Rollback.");let s=o.checkpoints||[],r=s.findIndex(c=>c.id===n);if(r===-1)throw new Error(`Checkpoint [${n}] not found.`);let a=$t.join(Fn,"snapshots",e),i={restored:0,replaced:0,failed:[]},p=await as(process.cwd());for(let c of Object.keys(p)){let l=$t.join(process.cwd(),c);await St.chmod(l,438).catch(()=>{}),await St.remove(l).catch(()=>{})}let d=$t.join(a,"initial");await Zr(d,process.cwd(),i,d);for(let c=1;c<=r;c++){let l=s[c],f=$t.join(a,l.id);if(await Zr(f,process.cwd(),i,f),l.deletedFiles&&l.deletedFiles.length>0)for(let u of l.deletedFiles){let m=$t.join(process.cwd(),u);await St.chmod(m,438).catch(()=>{}),await St.remove(m).catch(()=>{})}}return o.checkpoints=s.slice(0,r+1),o.currentManifest=await as(process.cwd()),ye(wn,t),{checkpointId:n,stats:i}}catch(t){throw new Error(`Rollback failed: ${t.message}`)}},async getLatestFileChanges(e){try{let t=se(wn,{})[e];if(!t||!t.checkpoints||t.checkpoints.length===0)return{newFiles:[],modifiedFiles:[],deletedFiles:[]};let o=t.checkpoints[t.checkpoints.length-1];return{newFiles:o.newFiles||[],modifiedFiles:o.modifiedFiles||[],deletedFiles:o.deletedFiles||[]}}catch{return{newFiles:[],modifiedFiles:[],deletedFiles:[]}}},async cleanup(e){try{let n=$t.join(Fn,"snapshots",e);await St.remove(n).catch(()=>{});let t=se(wn,{});t[e]&&(delete t[e],ye(wn,t))}catch{}}};var ei=async(e,n={})=>{let t=D(e),o=t.method,s=t.id,r=n.chatId;if(!n.systemSettings?.advanceRollback)return"ERROR: Advance Rollback feature is currently disabled in settings under Security. Tell user to enable it.";if(!r)return"ERROR: No active chat transaction found for rollback.";if(o==="getCheckpoint"){let i=await Zn.getCheckpoints(r);if(i.length===0)return"No checkpoints available.";let p={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"},d=l=>p[l]||p[l.toLowerCase()]||l,c=`Available checkpoints for rollback:
|
|
876
879
|
|
|
877
880
|
`;for(let l of i)if(l.id==="initial")c+=`--- Initial State (id: initial) ---
|
|
878
881
|
Tools Used: User Prompted for task
|
|
@@ -895,8 +898,8 @@ ${r.finalAnswer||"(No output)"}`;if(r.status==="failed")return`ERROR: Subagent t
|
|
|
895
898
|
Error: ${r.error||"Unknown error"}`;if(r.status==="cancelled")return`INFO: Subagent task [${o}] was cancelled.`;let a,i=new Promise(p=>{a=setTimeout(()=>{p({type:"timeout"})},s*1e3)});try{let p=await Promise.race([r.completionPromise.then(()=>({type:"completion"})),i]);return clearTimeout(a),p.type==="timeout"?`TIMEOUT: Subagent task [${o}] is still running (status: ${r.status.toUpperCase()}) after ${s}s. You can continue other work or call Await again.`:r.status==="completed"?`SUCCESS: Subagent task [${o}] completed.
|
|
896
899
|
Final Answer:
|
|
897
900
|
${r.finalAnswer||"(No output)"}`:r.status==="failed"?`ERROR: Subagent task [${o}] failed.
|
|
898
|
-
Error: ${r.error||"Unknown error"}`:r.status==="cancelled"?`INFO: Subagent task [${o}] was cancelled.`:`INFO: Subagent task [${o}] status changed to ${r.status.toUpperCase()}.`}catch(p){return clearTimeout(a),`ERROR: Exception while awaiting subagent [${o}]: ${p.message}`}};var Uo=async(e,n={})=>{let t=D(e),o=t.id,s=t.answer||t.response;if(!o)return'ERROR: Missing "id" argument for Answer.';if(!s)return'ERROR: Missing "answer" argument for Answer.';let r=Qe.find(i=>i.id===o);if(!r)return`ERROR: Subagent task with ID [${o}] not found.`;if(!r.questions||r.questions.length===0)return`INFO: Subagent task [${o}] has no pending questions.`;let a=r.questions.filter(i=>!i.answered);return a.length===0?`INFO: Subagent task [${o}] has no unanswered questions.`:(a.forEach(i=>{i.answered=!0,i.answer=s,i.answeredAt=Date.now(),i._resolve&&i._resolve(s)}),r.status="running",n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Answer provided to subagent task [${o}]. Subagent execution resumed.`)};var ls=async(e,n={})=>{let t=D(e),o=t.id,s=t.message||t.instruction||t.text||t.prompt;if(!o)return'ERROR: Missing "id" argument for Steer.';if(!s)return'ERROR: Missing "message" argument for Steer.';let r=Qe.find(a=>a.id===o);return r?r.status==="completed"||r.status==="failed"||r.status==="cancelled"?`ERROR: Cannot steer subagent task [${o}] because it has already finished with status [${r.status.toUpperCase()}].`:(typeof r.steer=="function"?r.steer(s):(r.pendingSteerMessages||(r.pendingSteerMessages=[]),r.pendingSteerMessages.push(s)),n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Steering instruction injected into subagent task [${o}]. It will be processed on the subagent's turn.`):`ERROR: Subagent task with ID [${o}] not found.`};import{mouse as
|
|
899
|
-
`)){let r=s.split(" ");if(r.length<12||parseInt(r[0])!==5)continue;let i=r[2],p=r[3],d=r[4],c=parseInt(r[6]),l=parseInt(r[7]),f=parseInt(r[8]),u=parseInt(r[9]),m=parseFloat(r[10]),g=r.slice(11).join(" ").trim();if(!g||m<0)continue;let y={x0:c,y0:l,x1:c+f,y1:l+u},h={text:g,confidence:m,bbox:y};n.push(h);let b=`${i}_${p}_${d}`;t.has(b)||t.set(b,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let w=t.get(b);w.words.push(h),w.bbox.x0=Math.min(w.bbox.x0,y.x0),w.bbox.y0=Math.min(w.bbox.y0,y.y0),w.bbox.x1=Math.max(w.bbox.x1,y.x1),w.bbox.y1=Math.max(w.bbox.y1,y.y1)}let o=[];for(let s of t.values())s.words.length>0&&o.push({text:s.words.map(r=>r.text).join(" "),bbox:s.bbox,words:s.words});return{words:n,lines:o}}function Uc(e){if(!(e.words&&e.words.length>0)){if(e.blocks&&e.blocks.length>0){e.words=[],e.lines=[];for(let n of e.blocks)for(let t of n.paragraphs||[])for(let o of t.lines||[]){o.bbox&&e.lines.push(o);for(let s of o.words||[])s.bbox&&e.words.push(s)}if(e.words.length>0)return}if(e.tsv){let n=Nc(e.tsv);e.words=n.words,e.lines=n.lines}}}function si(e,n,t=0,o=0,s=1){Uc(e);let r=i=>({x0:Math.round(i.x0/s)+t,y0:Math.round(i.y0/s)+o,x1:Math.round(i.x1/s)+t,y1:Math.round(i.y1/s)+o}),a=[];if(e.lines&&e.lines.length>0)for(let i of e.lines){let p=i.text?i.text.toLowerCase().trim():"";if(!p||!i.bbox||!(p===n||new RegExp(`\\b${Dc(n)}\\b`,"i").test(p)))continue;let c=i.words||(e.words?e.words.filter(m=>m.bbox&&m.bbox.x0>=i.bbox.x0-5&&m.bbox.x1<=i.bbox.x1+5&&m.bbox.y0>=i.bbox.y0-5&&m.bbox.y1<=i.bbox.y1+5):[]),l=n.split(/\s+/),f=l.map(m=>m.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(c.length>0)for(let m=0;m<=c.length-l.length;m++){let g=c.slice(m,m+l.length),y=g.map(h=>(h.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(y===f||y.includes(f)){let h={x0:Math.min(...g.map(b=>b.bbox.x0)),y0:Math.min(...g.map(b=>b.bbox.y0)),x1:Math.max(...g.map(b=>b.bbox.x1)),y1:Math.max(...g.map(b=>b.bbox.y1))};a.push(r(h)),u=!0}}u||a.push(r(i.bbox))}if(a.length===0&&e.words&&e.words.length>0)for(let i of e.words){let p=i.text?i.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",d=n.replace(/[^a-z0-9]/g,"");p===d&&i.bbox&&a.push(r(i.bbox))}if(a.length===0&&e.words&&e.words.length>0){let i=Fc(n.length);for(let p of e.words){let d=p.text?p.text.toLowerCase().trim():"";d.length>=3&&Math.abs(d.length-n.length)<=i&&Pc(d,n,i)<=i&&p.bbox&&a.push(r(p.bbox))}}return a}function ri(e,n){let t=null,o=1/0;for(let s of e){let r=Math.round((s.x0+s.x1)/2),a=Math.round((s.y0+s.y1)/2),i=n.x>=s.x0&&n.x<=s.x1&&n.y>=s.y0&&n.y<=s.y1,p=Math.hypot(r-n.x,a-n.y),d=i?0:p;d<o&&(o=d,t={x:r,y:a,dist:p,containsPoint:i,bbox:s})}return t}function Bc(e,n,t,o){let a=Math.ceil(e/4),i=Math.ceil(n/2),p=[];for(let d=0;d<2;d++)for(let c=0;c<4;c++){let l=c*a,f=d*i,u=Math.min(a,e-l),m=Math.min(i,n-f),g=l+u/2,y=f+m/2,h=t>=l&&t<l+u&&o>=f&&o<f+m;p.push({x0:l,y0:f,w:u,h:m,cx:g,cy:y,containsTarget:h})}return p.sort((d,c)=>{if(d.containsTarget)return-1;if(c.containsTarget)return 1;let l=Math.hypot(d.cx-t,d.cy-o),f=Math.hypot(c.cx-t,c.cy-o);return l-f})}var Fs=null;async function Wc(){return Fs||(Fs=(async()=>{let{createWorker:e}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:t}=await import("./paths-CHZDSDRF.js");return n.ensureDirSync(t),e("eng",1,{cachePath:t,logger:()=>{}})})().catch(e=>{throw Fs=null,e})),Fs}var fs=null,Qa=null;async function jc(){let{getActiveDisplay:e}=await import("./screen_grid-QAZBAXG2.js"),n=await e();if(fs&&Qa===n)return fs;Qa=n,fs={format:"png"};try{let t=await Za.listDisplays();t&&t.length>0&&(fs={format:"png",screen:(t[n]||t[0]).id})}catch{}return fs}var ii=async(e,n={})=>{let t=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),o=performance.now(),s=o,r=u=>{if(!t)return;let m=performance.now(),g=(m-s).toFixed(0),y=(m-o).toFixed(0);console.log(`[Click Perf] +${g}ms (${y}ms total) -> ${u}`),s=m};r("Starting click()");let a=D(e),i=a.gridId||a.grid||a.coordinate||a.target||a.id,p=(a.type||a.clickType||"single").toLowerCase(),d=(a.button||"left").toLowerCase(),c=a.intendedClickText||a.text||"";if(!i&&!c)return'ERROR: Missing required "gridId" parameter for Click tool.';let l=i;if(c)try{r("Parsing grid code");let u=i?Bi(i):null;r("Getting display options");let m=await jc();r("Taking desktop screenshot");let g=await Za(m);r("Getting image metadata");let y=await ps(g).metadata(),h=y.width||1920,b=y.height||1080,w=u?{x:Math.round(u.x*(h/1280)),y:Math.round(u.y*(b/720))}:{x:h/2,y:b/2},T=c.toLowerCase().trim();r("Acquiring OCR worker");let $=await Wc(),R=null,k="",S=u?220:500;if(u){r("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let _=Math.min(Math.round(h/3),h),E=Math.min(Math.round(b/3),b),x=Math.max(0,Math.min(h-_,w.x-Math.floor(_/2))),C=Math.max(0,Math.min(b-E,w.y-Math.floor(E/2))),M=await ps(g).extract({left:x,top:C,width:_,height:E}).toBuffer(),v=2,L=await oi(M,v),U=T.replace(/[^a-z0-9]/g,"_");await ni("cropped",`crop_${Date.now()}_${U}.png`,L),r("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await $.setParameters({tessedit_pageseg_mode:"11"});let{data:j}=await $.recognize(L,{},{tsv:!0,blocks:!0});if(r("Pass 1: OCR recognition finished, extracting matches"),j&&j.text){t&&console.log(`[Pass 1 OCR Read]: "${j.text.trim().replace(/\s+/g," ")}"`);let ee=si(j,T,x,C,v);if(ee.length>0){let X=ri(ee,w);X&&(X.containsPoint||X.dist<=S)&&(R=X,k="centered target crop OCR")}}}if(!R){r("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let _=await oi(g,2),E=T.replace(/[^a-z0-9]/g,"_");await ni("fullscreen",`full_${Date.now()}_${E}.png`,_),r("Pass 2: Running Tesseract on full screen"),await $.setParameters({tessedit_pageseg_mode:"3"});let{data:x}=await $.recognize(_,{},{tsv:!0,blocks:!0});if(r("Pass 2: Full-screen OCR finished"),x&&x.text){let C=si(x,T,0,0,2);if(C.length>0){let M=ri(C,w);M&&(R=M,k="full-screen OCR")}}}if(!R){r("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let _=Bc(h,b,w.x,w.y),E=T.replace(/[^a-z0-9]/g,"_");await $.setParameters({tessedit_pageseg_mode:"11"});for(let x=0;x<_.length;x++){let C=_[x];r(`Pass 3: Preprocessing tile ${x+1}/${_.length}`);let M=await ps(g).extract({left:C.x0,top:C.y0,width:C.w,height:C.h}).toBuffer(),v=await oi(M,3);await ni("tiles",`tile_${x+1}_${Date.now()}_${E}.png`,v),r(`Pass 3: Running Tesseract on tile ${x+1}`);let{data:L}=await $.recognize(v,{},{tsv:!0,blocks:!0});if(!L||!L.text)continue;let U=si(L,T,C.x0,C.y0,3);if(U.length>0){let j=ri(U,w);if(j){R=j,k=`tile ${x+1} OCR (${C.containsTarget?"target tile":`offset ${C.x0},${C.y0}`})`;break}}}}if(R){let _={x:Math.round(R.x*(1280/h)),y:Math.round(R.y*(720/b))};r(`Executing mouse click on matched target (${k})`);let E=await Nn("click",_,{button:d,clickType:p});return r("Click completed successfully"),`${E} (${k} for "${c}" at ${Math.round(R.dist)}px distance)`}else t&&console.log(`[OCR] No match found for "${c}". Falling back to gridId.`)}catch(u){t&&console.error("[OCR Error]",u)}r(`Executing mouse click on fallback gridId: ${l}`);let f=await Nn("click",l,{button:d,clickType:p});return r("Fallback click completed"),f};var ai=async(e,n={})=>{let t=D(e),o=t.fromGridId||t.from||t.start,s=t.toGridId||t.to||t.end;return!o||!s?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await Nn("drag",o,{from:o,to:s})};var li=async(e,n={})=>{let t=D(e),o=(t.direction||"down").toLowerCase(),s=t.amount?parseInt(t.amount,10):6,r=t.gridId||t.grid||t.coordinate||t.target||t.id||null;return await Nn("scroll",r,{direction:o,amount:s})};var Ns=async(e,n={})=>{let t=D(e),o=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return o==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await Un("type",String(o),{autoPressEnter:s})};var Us=async(e,n={})=>{let t=D(e),o=t.key||t.keys||t.input||t.shortcut;if(!o)return'ERROR: Missing required "key" parameter for KeyPress tool.';let s=String(o).trim().toLowerCase();if(s==="clearinput"||s==="clear_input"||s==="clear")return await Un("clear_input");if(s==="back"||s==="browser_back"||s==="browserBack")return await Un("browser_back");if(s.includes(";")||s.includes("+")){let r=s.split(/[;+]/).map(a=>a.trim()).filter(Boolean);return await Un("key_combination",r)}return await Un("key_press",s)};var Bs=async(e,n={})=>"SUCCESS: Screen recapture requested. The latest gridded screenshot is provided for your next decision.";var Gc={web_search:vr,web_scrape:Ir,memory:Or,chat:Lr,view_file:ts,write_file:Dr,update_file:Ur,exec_command:wr,read_folder:Wr,write_pdf:jr,write_docx:Hr,search_keyword:ss,generate_image:Kr,saveSummary:rs,addMemScore:Fo,file_map:Xr,todo:is,Todo:is,goal:is,Goal:is,invokeSync:Jr,invoke:qa,getProgress:Qr,cancel:za,awaitSubagent:No,answerSubagent:Uo,steerSubagent:ls,computer_action:us,computer_use:us,ComputerAction:us,ComputerUse:us,click:ii,Click:ii,drag:ai,Drag:ai,scroll:li,Scroll:li,keyboard_typing:Ns,KeyboardTyping:Ns,keyboardtyping:Ns,key_press:Us,KeyPress:Us,keypress:Us,recapture_screen:Bs,RecaptureScreen:Bs,recapturescreen:Bs,invoke_sync:Jr,get_progress:Qr,await_subagent:No,answer_subagent:Uo,steer_subagent:ls,steer:ls,Steer:ls,ask:Ps,Ask:Ps,AskUser:Ps,WebSearch:vr,WebScrape:Ir,ReadFile:ts,ReadFolder:Wr,WriteFile:Dr,PatchFile:Ur,WritePDF:jr,WriteDoc:Hr,Run:wr,SearchKeyword:ss,CodeSearch:ss,code_search:ss,Memory:Or,Chat:Lr,GenerateImage:Kr,saveSumary:rs,SaveSummary:rs,SaveSumary:rs,add_mem_score:Fo,AddMemScore:Fo,addMemoryScore:Fo,AddMemoryScore:Fo,FileMap:Xr,answer:Uo,Answer:Uo,AnswerSubagent:Uo,await:No,Await:No,AwaitSubagent:No,EmergencyRollback:ei,emergency_rollback:ei},ms=async(e,n,t={})=>{let o=t.mode?t.mode.toLowerCase():"flux",s=e.toLowerCase(),a=["memory","chat","savesummary","addmemscore","add_mem_score","ask","web_search","web_scrape","await"].some(c=>s.includes(c))||s==="ask",p=["click","drag","scroll","keyboardtyping","keyboard_typing","keypress","key_press","recapturescreen","recapture_screen","computer"].some(c=>s.includes(c));if(!a){if(o==="flow"){if(!(s.includes("write_pdf")||s.includes("write_docx")||s.includes("generate_image")))return`ERROR: Tool [${e}] is a Workspace Tool and NOT available in Flow mode. Tell user to switch (\`/mode flux\`) to use this tool.`}else if(o==="icu"){if(!p)return`ERROR: Tool [${e}] is not available in Computer Use mode. ICU mode only supports Computer Use tools (Click, Drag, Scroll, KeyboardTyping, KeyPress, RecaptureScreen).`}else if(s.includes("write_pdf")||s.includes("write_docx")||s.includes("generate_image"))return`ERROR: Tool [${e}] is not available in ${t.mode||"Flux"} mode. Tell user to switch (\`/mode flow\`) for document generation.`}let d=Gc[e];if(!d)return`ERROR: Tool [${e}] not found in registry.`;try{return await d(n,t)}catch(c){let l=c instanceof Error?c.message:String(c);return`ERROR: Execution failed for [${e}]: ${l}`}};import te from"path";import Fe from"fs";import Hc from"gradient-string";var ci=["I have a regex for your problems.","Your terminal, my kingdom.","Blowing on the cartridge helps. Probably.","Don't panic. I have the towel.","Logic is the start of wisdom.","Try to exit Vim? Good luck.","I speak fluent Terminal.","The cake is a lie. This code is not.","I have no bugs, just surprise features.","Rewriting in Rust... just for fun.","Coffee in, clean commits out.","The magic smoke stays inside today.","A semicolon short of a miracle.","One does not simply code without a bug.","Keep it simple. Keep it terminal.","Regex: now you have two problems.","I dream in binary.","Root access or bust.","Wait for the dial-up tone. Just kidding.","I take the 'labor' out of collab.","My other process is a TARDIS.","Calculated response: 42.","Ponder the orb. Ponder the code.","Less talk, more flow.","Elegance in every byte.","Build something the world is not ready for.","Your wishes, my tool calls.","I act in Flux. I think in Flow.","Syntax error in the universe. Please fix.","Your project, my obsession.","I am not a bot, I am an architect.","Digital spirits consulted. They say: Ship it.","Reticulate splines. Engage humor.","Code like poetry. Run like water.","Minimalism is the ultimate flex.","The truth is in the logs.","Follow the white rabbit.","There is no spoon. Only code.","Binary is the only language I trust.","I have a good feeling about this.","Pew pew! Lasers charged.","Divide by zero? Not today.","Search for the correct USB orientation...","I've got a fever, and the only cure is more code.","The code gremlins are on our side.","My favorite command? Yours.","Stay hungry. Stay active.","Momentum is your best friend.","Lead the flow. Don't chase it.","A fresh batch of bytes. Hot and ready.","I orchestrate the ones and zeros.","Smart enough to help. Humble enough to ask.","Think twice. Code once.","Pure intent. Pure execution.","Small steps. Massive impact.","Your terminal is a canvas.","Efficiency is my second name.","I have seen things you people wouldn't believe.","Let the thoughts marinate.","The best feature? The one you don't need.","Precision is the only perfection.","Stay focused. Stay terminal.","Silence is the best debugger.","Erase the debt. Commit the code.","Velocity meets stability.","Ship it. Improve it. Repeat.","Build tomorrow, right now.","Turn logic into reality.","The best way to predict the future is to build it.","Break barriers, not builds.","Fuel the next breakthrough.","Momentum is key.","Terminal vibes only.","Your digital co-pilot is ready.","Partner in code. Partner in crime.","I speak in semicolons.","Ready for the next great idea.","Just a moment. In the zone.","Polishing the algorithms. Hold tight.","Craft a masterpiece today.","Debug the universe. Start here.","Warp speed engaged. Almost.","The cake is not a lie. It's just loading.","Finish the Kessel Run in 12 parsecs.","Do a barrel roll!","Waiting for the respawn.","Press Start to continue.","Herding digital cats... done.","The hamsters are fast today.","Tasting the snozberries.","I go for speed. I go for flow.","Real life or just fantasy?","Poking the bear... gently.","Ensure the magic smoke stays inside.","Try turning it off and on again.","Construct additional pylons.","New line? Ctrl+J is your friend.","Release the HypnoDrones.","Push the button, Frank.","My other loading screen is even funnier.","Pretty sure a cat walked on my keyboard.","Recalibrate the humor-o-meter.","Summon the code gremlins.","I've seen your browser history. Just kidding.","Charge the laser... pew pew!","Dividing by zero... just for a sec.","Looking for an adult supervisor. Found none.","Make it go beep boop.","Buffering... for effect.","Entangle quantum particles... complete.","Polishing the chrome on my algorithms.","Are you not entertained?","Just waiting for the dial-up tone.","Reboot the humor module.","Defragment memories. Check.","Optimizing for ludicrous speed.","Swapping bits. Don't tell the bytes.","Garbage collected. I am back.","Assembling the interwebs.","Converting coffee to logic.","Update syntax for reality.","Rewire the synapses.","Greasin' the cogs.","Engage the improbability drive.","Channel the Force.","Align the stars. Respond now.","The cake is a lie. The prompt is real.","I'm Feeling Lucky.","Shipping awesomeness.","Navigating the slime mold.","Consult digital spirits.","Ask the magic conch shell.","One moment. Optimizing humor.","Shuffling punchlines.","Compiling brilliance.","Summon the cloud of wisdom.","Prepare to dazzle.","Hold tight. Crafting a response.","Tuning the algorithms.","Following the white rabbit... again.","The truth is in here. Somewhere.","Herding cats is my day job.","Distracting you with this phrase.","Almost there. Probably.","Rickrolling my creator. Don't tell.","Slapping the bass.","Is this real life?","Ponder the orb. Type the prompt.","Thoughtful gaze initiated.","Computer's favorite snack? Microchips.","Why Java? Because I don't C#.","Charging the laser... wait for it.","Dividing by zero... just kidding!","Adult supervision not found. Proceed.","Beep boop. I'm a real boy.","Wait for the respawn.","Finish the run. Ship the code.","Fiddling with character creation.","Just a moment. Finding a meme.","Pressing A to continue.","Loading wit.exe.","Pre-heating the servers.","Calibrate flux capacitor.","Channeling the Force.","Aligning the stars.","The truth is in the code.","Don't panic.","Blowing on the cartridge.","Doing a barrel roll!","Respawning in 3... 2... 1...","The cake is a lie.","Fiddling with character settings.","Finding a suitable pun.","Distracting with wit.","Almost ready.","Hamsters on speed today.","Patting Cloudy on the head.","Rickrolling the logs.","Slapping the code.","Got a good feeling about this.","Poking the prompt.","Researching latest memes.","Making it more witty.","Thinking... hmmm.","Fish with no eyes? Fsh.","Broken pencil? Pointless.","Percussive maintenance applied.","USB orientation: 3rd try's the charm.","Rust rewrite in 3... 2...","Exiting Vim... someday.","Spinning the hamster wheel.","Not a bug. Unplanned feature.","Engage.","I'll be back.","Machine spirit consulted.","Letting the thoughts marinate.","Orb pondered.","Thoughtful gaze engaged.","Charging the laser...","Making it go beep.","Buffering...","Quantum particles entangled.","Polishing the chrome.","Entertained yet?","Gremlins summoned.","Dial-up tone finished.","Humor meter recalibrated.","Cat on keyboard. Sending help.","Enhancing...","Turn it off and on again.","Constructing pylons.","HypnoDrones released.","Pushing the button."];var el=[{name:"Cyan Cyberpunk",text:"cyan",textMuted:"#4da6b8",textDim:"#2d6d7a",textInverted:"black",border:"cyan",borderMuted:"#1a5966",borderDim:"#0f3840",bg:void 0,cardBg:"#061e24",highlightBg:"#092b33",activeBg:"#0e3e4a",inputBg:"#092b33",inputBorder:"#092b33",inputText:"cyan",inputPlaceholder:"#2d6d7a",inputPrompt:"cyan",codeBg:"#020d10",codeBorder:"#1a5966",userMsgBg:"#092b33",userMsgBorder:"#092b33",userMsgText:"cyan",diffRemovalBg:"#3a0c1a",diffAdditionBg:"#0c3a32",diffRemovalText:"#ff4d88",diffAdditionText:"#00ffaa",diffRemovalHighlightColor:"#ff1a66",diffRemovalHighlightBg:"#590022",diffAdditionHighlightColor:"#00ffcc",diffAdditionHighlightBg:"#00593b",diffRemovalNum:"#ff4d88",diffAdditionNum:"#00ffaa",diffRemovalPrefix:"#ff1a66",diffAdditionPrefix:"#00ffcc",primary:"cyan",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"cyan",statusOff:"#2d6d7a",logoTextAnsi:"\x1B[1;36m",logoBodyAnsi:"\x1B[36m",logoMutedAnsi:"\x1B[90m",logoGradient:["#00ffff","#0088ff"]},{name:"Magenta Vaporwave",text:"magenta",textMuted:"#c451d6",textDim:"#7d2b8a",textInverted:"black",border:"magenta",borderMuted:"#5e1b69",borderDim:"#3b0f42",bg:void 0,cardBg:"#240729",highlightBg:"#310938",activeBg:"#470e52",inputBg:"#310938",inputBorder:"#310938",inputText:"magenta",inputPlaceholder:"#7d2b8a",inputPrompt:"magenta",codeBg:"#100312",codeBorder:"#5e1b69",userMsgBg:"#310938",userMsgBorder:"#310938",userMsgText:"magenta",diffRemovalBg:"#3a0c20",diffAdditionBg:"#200c3a",diffRemovalText:"#ff4d94",diffAdditionText:"#aa4dff",diffRemovalHighlightColor:"#ff1a75",diffRemovalHighlightBg:"#59002b",diffAdditionHighlightColor:"#bb66ff",diffAdditionHighlightBg:"#3b0059",diffRemovalNum:"#ff4d94",diffAdditionNum:"#aa4dff",diffRemovalPrefix:"#ff1a75",diffAdditionPrefix:"#bb66ff",primary:"magenta",secondary:"cyan",accent:"purple",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"magenta",statusOff:"#7d2b8a",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ff00ff","#8800ff"]},{name:"Glitch Matrix",text:"#00ff41",textMuted:"#00b32d",textDim:"#00661a",textInverted:"black",border:"#00ff41",borderMuted:"#008020",borderDim:"#004d13",bg:void 0,cardBg:"#0d1f0d",highlightBg:"#122912",activeBg:"#1c3e1c",inputBg:"#122912",inputBorder:"#122912",inputText:"#00ff41",inputPlaceholder:"#00b32d",inputPrompt:"#ffff00",codeBg:"#040a04",codeBorder:"#008020",userMsgBg:"#122912",userMsgBorder:"#122912",userMsgText:"#00ff41",diffRemovalBg:"#3a001a",diffAdditionBg:"#003a10",diffRemovalText:"#ff0055",diffAdditionText:"#00ff66",diffRemovalHighlightColor:"#ff0033",diffRemovalHighlightBg:"#59001b",diffAdditionHighlightColor:"#33ff88",diffAdditionHighlightBg:"#005918",diffRemovalNum:"#ff0055",diffAdditionNum:"#00ff66",diffRemovalPrefix:"#ff0033",diffAdditionPrefix:"#33ff88",primary:"#00ff41",secondary:"yellow",accent:"cyan",success:"#00ff41",warning:"yellow",danger:"red",info:"cyan",statusOn:"#00ff41",statusOff:"#00661a",logoTextAnsi:"\x1B[1;32m",logoBodyAnsi:"\x1B[32m",logoMutedAnsi:"\x1B[90m",logoGradient:["#00ff41","#ffff00"]},{name:"Warm Sunset",text:"#ffaa55",textMuted:"#cc8844",textDim:"#885522",textInverted:"black",border:"#ff9933",borderMuted:"#aa6622",borderDim:"#663311",bg:void 0,cardBg:"#24180f",highlightBg:"#2e1e12",activeBg:"#422c1b",inputBg:"#2e1e12",inputBorder:"#2e1e12",inputText:"#ffaa55",inputPlaceholder:"#885522",inputPrompt:"#ff7733",codeBg:"#120c08",codeBorder:"#aa6622",userMsgBg:"#2e1e12",userMsgBorder:"#2e1e12",userMsgText:"#ffaa55",diffRemovalBg:"#3d120c",diffAdditionBg:"#3a2e0c",diffRemovalText:"#ff5544",diffAdditionText:"#ffcc33",diffRemovalHighlightColor:"#ff3322",diffRemovalHighlightBg:"#591108",diffAdditionHighlightColor:"#ffee44",diffAdditionHighlightBg:"#594400",diffRemovalNum:"#ff5544",diffAdditionNum:"#ffcc33",diffRemovalPrefix:"#ff3322",diffAdditionPrefix:"#ffee44",primary:"#ffaa55",secondary:"#ff7733",accent:"magenta",success:"#ffcc33",warning:"#ff7733",danger:"#ff3322",info:"#ffaa55",statusOn:"#ffaa55",statusOff:"#885522",logoTextAnsi:"\x1B[1;33m",logoBodyAnsi:"\x1B[33m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ff9933","#ff0055"]},{name:"Sakura Blossom",text:"#ffc0e0",textMuted:"#d98cb3",textDim:"#804d66",textInverted:"black",border:"#ff99cc",borderMuted:"#aa4d7a",borderDim:"#662647",bg:void 0,cardBg:"#291320",highlightBg:"#331826",activeBg:"#472235",inputBg:"#331826",inputBorder:"#331826",inputText:"#ffc0e0",inputPlaceholder:"#804d66",inputPrompt:"#ff99cc",codeBg:"#140a10",codeBorder:"#aa4d7a",userMsgBg:"#331826",userMsgBorder:"#331826",userMsgText:"#ffc0e0",diffRemovalBg:"#3e0c1b",diffAdditionBg:"#1b3e2b",diffRemovalText:"#ff6699",diffAdditionText:"#66ffb3",diffRemovalHighlightColor:"#ff3377",diffRemovalHighlightBg:"#590022",diffAdditionHighlightColor:"#33ff99",diffAdditionHighlightBg:"#00592e",diffRemovalNum:"#ff6699",diffAdditionNum:"#66ffb3",diffRemovalPrefix:"#ff3377",diffAdditionPrefix:"#33ff99",primary:"#ffc0e0",secondary:"#ff99cc",accent:"magenta",success:"#66ffb3",warning:"yellow",danger:"#ff3377",info:"#ff99cc",statusOn:"#ffc0e0",statusOff:"#804d66",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ffb3d9","#ff3399"]},{name:"Radioactive Slime",text:"#ccff00",textMuted:"#99cc00",textDim:"#669900",textInverted:"#0a0f00",border:"#ccff00",borderMuted:"#99cc00",borderDim:"#669900",bg:void 0,cardBg:"#0f1400",highlightBg:"#1a2400",activeBg:"#2a3b00",inputBg:"#1a2400",inputBorder:"#1a2400",inputText:"#ccff00",inputPlaceholder:"#669900",inputPrompt:"#cc00ff",codeBg:"#050a00",codeBorder:"#99cc00",userMsgBg:"#1a2400",userMsgBorder:"#1a2400",userMsgText:"#ccff00",diffRemovalBg:"#2a0033",diffAdditionBg:"#0f3300",diffRemovalText:"#ff00cc",diffAdditionText:"#00ff33",diffRemovalHighlightColor:"#ff33cc",diffRemovalHighlightBg:"#4d0066",diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:"#1a6600",diffRemovalNum:"#ff00cc",diffAdditionNum:"#00ff33",diffRemovalPrefix:"#ff33cc",diffAdditionPrefix:"#33ff66",primary:"#ccff00",secondary:"#cc00ff",accent:"#ff00cc",success:"#00ff33",warning:"#ffcc00",danger:"#ff0033",info:"#00ccff",statusOn:"#ccff00",statusOff:"#669900",logoTextAnsi:"\x1B[1;38;5;190m",logoBodyAnsi:"\x1B[38;5;190m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ccff00","#cc00ff"]},{name:"Cosmic Void",text:"#f0f8ff",textMuted:"#a6aeb5",textDim:"#5e656e",textInverted:"#010103",border:"#f0f8ff",borderMuted:"#a6aeb5",borderDim:"#5e656e",bg:void 0,cardBg:"#05030d",highlightBg:"#0b081a",activeBg:"#171133",inputBg:"#0b081a",inputBorder:"#0b081a",inputText:"#f0f8ff",inputPlaceholder:"#5e656e",inputPrompt:"#ff007f",codeBg:"#020108",codeBorder:"#a6aeb5",userMsgBg:"#0b081a",userMsgBorder:"#0b081a",userMsgText:"#f0f8ff",diffRemovalBg:"#2e0a29",diffAdditionBg:"#091c33",diffRemovalText:"#ff33a6",diffAdditionText:"#33d6ff",diffRemovalHighlightColor:"#ff66c2",diffRemovalHighlightBg:"#5c1452",diffAdditionHighlightColor:"#66e0ff",diffAdditionHighlightBg:"#123866",diffRemovalNum:"#ff33a6",diffAdditionNum:"#33d6ff",diffRemovalPrefix:"#ff66c2",diffAdditionPrefix:"#66e0ff",primary:"#f0f8ff",secondary:"#ff007f",accent:"#9d00ff",success:"#33d6ff",warning:"#ffcc00",danger:"#ff0040",info:"#9d00ff",statusOn:"#f0f8ff",statusOff:"#5e656e",logoTextAnsi:"\x1B[1;38;5;231m",logoBodyAnsi:"\x1B[38;5;231m",logoMutedAnsi:"\x1B[38;5;240m",logoGradient:["#ffffff","#9d00ff"]},{name:"Magma Eruption",text:"#ff4d00",textMuted:"#cc3d00",textDim:"#802600",textInverted:"#0d0300",border:"#ff4d00",borderMuted:"#cc3d00",borderDim:"#802600",bg:void 0,cardBg:"#1a0600",highlightBg:"#260a00",activeBg:"#401100",inputBg:"#260a00",inputBorder:"#260a00",inputText:"#ff4d00",inputPlaceholder:"#802600",inputPrompt:"#ffcc00",codeBg:"#080200",codeBorder:"#cc3d00",userMsgBg:"#260a00",userMsgBorder:"#260a00",userMsgText:"#ff4d00",diffRemovalBg:"#2e0a0a",diffAdditionBg:"#1f1400",diffRemovalText:"#ff3333",diffAdditionText:"#ffaa00",diffRemovalHighlightColor:"#ff6666",diffRemovalHighlightBg:"#5c1414",diffAdditionHighlightColor:"#ffcc33",diffAdditionHighlightBg:"#3d2900",diffRemovalNum:"#ff3333",diffAdditionNum:"#ffaa00",diffRemovalPrefix:"#ff6666",diffAdditionPrefix:"#ffcc33",primary:"#ff4d00",secondary:"#ffcc00",accent:"#ff0040",success:"#ffaa00",warning:"#ffff00",danger:"#ff0000",info:"#ff8800",statusOn:"#ff4d00",statusOff:"#802600",logoTextAnsi:"\x1B[1;38;5;202m",logoBodyAnsi:"\x1B[38;5;202m",logoMutedAnsi:"\x1B[38;5;236m",logoGradient:["#ff4d00","#ff0000"]}],hs={Dark:{id:"Dark",name:"Dark (Default)",text:"white",textMuted:"gray",textDim:"grey",textInverted:"black",textExclusive:"#B5B8D9",textMutedExclusive:"#D4DEE7",border:"white",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:"#1e1e1e",highlightBg:"#2a2a2a",activeBg:"#3a3a3a",inputBg:"#555555",inputBorder:"#555555",inputText:"white",inputPlaceholder:"#cccccc",inputPrompt:"white",codeBg:"#1a1a1a",codeBorder:"#444444",userMsgBg:"#444444",userMsgBorder:"#444444",userMsgText:"white",diffRemovalBg:"#250808",diffAdditionBg:"#072410",diffRemovalText:"#885555",diffAdditionText:"#558866",diffRemovalHighlightColor:"#ff3333",diffRemovalHighlightBg:"#5a1818",diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:"#185a25",diffRemovalNum:"#d96868",diffAdditionNum:"#68d98c",diffRemovalPrefix:"#ff4d4d",diffAdditionPrefix:"#4dff88",primary:"white",secondary:"cyan",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"white",statusOff:"gray",logoTextAnsi:"\x1B[1;37m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#0077ff","#ff00ff"]},Light:{id:"Light",name:"Light",text:"black",textMuted:"gray",textDim:"grey",textInverted:"white",border:"black",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:"#e5e5e5",highlightBg:"#d4d4d4",activeBg:"#c0c0c0",inputBg:"#d0d0d0",inputBorder:"#d0d0d0",inputText:"black",inputPlaceholder:"#555555",inputPrompt:"black",codeBg:"#e8e8e8",codeBorder:"#b0b0b0",userMsgBg:"#d0d0d0",userMsgBorder:"#d0d0d0",userMsgText:"black",diffRemovalBg:"#fce8e8",diffAdditionBg:"#e6f9e6",diffRemovalText:"#661111",diffAdditionText:"#115511",diffRemovalHighlightColor:"#440000",diffRemovalHighlightBg:"#f8b4b4",diffAdditionHighlightColor:"#003300",diffAdditionHighlightBg:"#a6ebad",diffRemovalNum:"#c02020",diffAdditionNum:"#188028",diffRemovalPrefix:"#d01010",diffAdditionPrefix:"#109020",primary:"black",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"black",statusOff:"gray",logoTextAnsi:"\x1B[1;30m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#0077ff","#ff00ff"]},"GitHub Dark":{id:"GitHub Dark",name:"GitHub Dark",text:"#c9d1d9",textMuted:"#8b949e",textDim:"#6e7681",textInverted:"#0d1117",border:"#30363d",borderMuted:"#30363d",borderDim:"#21262d",bg:void 0,cardBg:"#161b22",highlightBg:"#21262d",activeBg:"#30363d",inputBg:"#21262d",inputBorder:"#21262d",inputText:"#c9d1d9",inputPlaceholder:"#8b949e",inputPrompt:"#58a6ff",codeBg:"#0d1117",codeBorder:"#30363d",userMsgBg:"#21262d",userMsgBorder:"#21262d",userMsgText:"#c9d1d9",diffRemovalBg:"#3c1e1e",diffAdditionBg:"#11381e",diffRemovalText:"#f85149",diffAdditionText:"#3fb950",diffRemovalHighlightColor:"#ff7b72",diffRemovalHighlightBg:"#701c1c",diffAdditionHighlightColor:"#56d364",diffAdditionHighlightBg:"#116329",diffRemovalNum:"#f85149",diffAdditionNum:"#3fb950",diffRemovalPrefix:"#f85149",diffAdditionPrefix:"#3fb950",primary:"#c9d1d9",secondary:"#58a6ff",accent:"#bc8cff",success:"#3fb950",warning:"#d29922",danger:"#f85149",info:"#58a6ff",statusOn:"#58a6ff",statusOff:"#8b949e",logoTextAnsi:"\x1B[1;36m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#2ea043","#56d364"]},"GitHub Light":{id:"GitHub Light",name:"GitHub Light",text:"#24292f",textMuted:"#57606a",textDim:"#6e7781",textInverted:"#ffffff",border:"#d0d7de",borderMuted:"#d0d7de",borderDim:"#e1e4e8",bg:void 0,cardBg:"#f6f8fa",highlightBg:"#eaeef2",activeBg:"#d0d7de",inputBg:"#eaeef2",inputBorder:"#eaeef2",inputText:"#24292f",inputPlaceholder:"#57606a",inputPrompt:"#0969da",codeBg:"#ffffff",codeBorder:"#d0d7de",userMsgBg:"#eaeef2",userMsgBorder:"#eaeef2",userMsgText:"#24292f",diffRemovalBg:"#ffebe9",diffAdditionBg:"#e6ffec",diffRemovalText:"#cf222e",diffAdditionText:"#1a7f37",diffRemovalHighlightColor:"#82071e",diffRemovalHighlightBg:"#ffc1c0",diffAdditionHighlightColor:"#116329",diffAdditionHighlightBg:"#acf2bd",diffRemovalNum:"#cf222e",diffAdditionNum:"#1a7f37",diffRemovalPrefix:"#cf222e",diffAdditionPrefix:"#1a7f37",primary:"#24292f",secondary:"#0969da",accent:"#8250df",success:"#1a7f37",warning:"#9a6700",danger:"#cf222e",info:"#0969da",statusOn:"#0969da",statusOff:"#57606a",logoTextAnsi:"\x1B[1;34m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#1a7f37","#2da44e"]},"Transparent Dark":{id:"Transparent Dark",name:"Transparent Dark",text:"white",textMuted:"gray",textDim:"grey",textInverted:"black",border:"gray",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:void 0,highlightBg:"#2a2a2a",activeBg:"#3a3a3a",inputBg:"#555555",inputBorder:"#555555",inputText:"white",inputPlaceholder:"#cccccc",inputPrompt:"white",codeBg:void 0,codeBorder:"gray",userMsgBg:"#555555",userMsgBorder:"#555555",userMsgText:"white",diffRemovalBg:void 0,diffAdditionBg:void 0,diffRemovalText:"#ff6666",diffAdditionText:"#66ff66",diffRemovalHighlightColor:"#ff3333",diffRemovalHighlightBg:void 0,diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:void 0,diffRemovalNum:"#ff6666",diffAdditionNum:"#66ff66",diffRemovalPrefix:"#ff4d4d",diffAdditionPrefix:"#4dff88",primary:"white",secondary:"cyan",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"white",statusOff:"gray",logoTextAnsi:"\x1B[1;37m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#0077ff","#ff00ff"]},"Transparent Light":{id:"Transparent Light",name:"Transparent Light",text:"black",textMuted:"gray",textDim:"grey",textInverted:"white",border:"gray",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:void 0,highlightBg:"#d4d4d4",activeBg:"#c0c0c0",inputBg:"#d0d0d0",inputBorder:"#d0d0d0",inputText:"black",inputPlaceholder:"#555555",inputPrompt:"black",codeBg:void 0,codeBorder:"gray",userMsgBg:"#d0d0d0",userMsgBorder:"#d0d0d0",userMsgText:"black",diffRemovalBg:void 0,diffAdditionBg:void 0,diffRemovalText:"#c02020",diffAdditionText:"#188028",diffRemovalHighlightColor:"#800000",diffRemovalHighlightBg:void 0,diffAdditionHighlightColor:"#004000",diffAdditionHighlightBg:void 0,diffRemovalNum:"#c02020",diffAdditionNum:"#188028",diffRemovalPrefix:"#d01010",diffAdditionPrefix:"#109020",primary:"black",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"black",statusOff:"gray",logoTextAnsi:"\x1B[1;30m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#0077ff","#ff00ff"]},"Synthwave 84":{id:"Synthwave 84",name:"Synthwave 84",text:"#fdfdfd",textMuted:"#a08eb7",textDim:"#705c8a",textInverted:"#1a1025",textExclusive:"#e3dcf0",textMutedExclusive:"#b9abc9",border:"#fc28a8",borderMuted:"#a21568",borderDim:"#5c0a3a",bg:void 0,cardBg:"#261b38",highlightBg:"#35254d",activeBg:"#4c3570",inputBg:"#35254d",inputBorder:"#35254d",inputText:"#fdfdfd",inputPlaceholder:"#a08eb7",inputPrompt:"#03e8fc",codeBg:"#1e142b",codeBorder:"#a21568",userMsgBg:"#35254d",userMsgBorder:"#35254d",userMsgText:"#fdfdfd",diffRemovalBg:"#471434",diffAdditionBg:"#144743",diffRemovalText:"#ff4081",diffAdditionText:"#00e5ff",diffRemovalHighlightColor:"#ff79a1",diffRemovalHighlightBg:"#6b1e4e",diffAdditionHighlightColor:"#66f5ff",diffAdditionHighlightBg:"#1e6b65",diffRemovalNum:"#ff4081",diffAdditionNum:"#00e5ff",diffRemovalPrefix:"#ff79a1",diffAdditionPrefix:"#66f5ff",primary:"#fdfdfd",secondary:"#03e8fc",accent:"#fc28a8",success:"#00e5ff",warning:"#ffc107",danger:"#ff4081",info:"#b388ff",statusOn:"#03e8fc",statusOff:"#a08eb7",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#fc28a8","#03e8fc"]},"Forest Sprite":{id:"Forest Sprite",name:"Forest Sprite",text:"#d6e6d1",textMuted:"#95b38d",textDim:"#628059",textInverted:"#161c14",textExclusive:"#eaf2e8",textMutedExclusive:"#a9c7a2",border:"#74a862",borderMuted:"#477038",borderDim:"#2b4720",bg:void 0,cardBg:"#1f291c",highlightBg:"#2a3826",activeBg:"#3a4d35",inputBg:"#2a3826",inputBorder:"#2a3826",inputText:"#d6e6d1",inputPlaceholder:"#95b38d",inputPrompt:"#8feb73",codeBg:"#161e14",codeBorder:"#477038",userMsgBg:"#2a3826",userMsgBorder:"#2a3826",userMsgText:"#d6e6d1",diffRemovalBg:"#3b231c",diffAdditionBg:"#203b1c",diffRemovalText:"#db6242",diffAdditionText:"#59cc3f",diffRemovalHighlightColor:"#f0896c",diffRemovalHighlightBg:"#5c362a",diffAdditionHighlightColor:"#80e368",diffAdditionHighlightBg:"#305929",diffRemovalNum:"#db6242",diffAdditionNum:"#59cc3f",diffRemovalPrefix:"#f0896c",diffAdditionPrefix:"#80e368",primary:"#d6e6d1",secondary:"#8feb73",accent:"#e69835",success:"#59cc3f",warning:"#e69835",danger:"#db6242",info:"#73b4eb",statusOn:"#8feb73",statusOff:"#95b38d",logoTextAnsi:"\x1B[1;32m",logoBodyAnsi:"\x1B[32m",logoMutedAnsi:"\x1B[90m",logoGradient:["#8feb73","#e69835"]}};var Ws=null;var tl=(e="Dark")=>{let n;e==="Mystery"||e==="Chaos"?(Ws||(Ws=el[Math.floor(Math.random()*el.length)]),n={...Ws,id:"Mystery"}):(Ws=null,hs[e]?n=hs[e]:e==="GitHub"?n=hs["GitHub Dark"]:e==="Transparent"?n=hs["Transparent Dark"]:n=hs.Dark);let t=n.codeText||n.secondary||n.info||n.logoGradient&&n.logoGradient[0]||"cyan";return{...n,codeText:t}};var qc=()=>process.env.TERM_PROGRAM==="vscode"?"vscode":process.env.WT_SESSION?"wt":"default",eg=(e=2)=>{let n=qc();return n==="wt"?" ".repeat(Math.max(1,e-1)):" ".repeat(e)},tg=(e="...",n="Loading...",t="Dark")=>{let o=ci[Math.floor(Math.random()*ci.length)],s=tl(t),r=s.logoTextAnsi,a=s.logoBodyAnsi,i=s.logoMutedAnsi,p="\x1B[0m",d=[" \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 "],c=s.logoGradient||["#0077ff","#ff00ff"],l=Hc(c).multiline(d.join(`
|
|
901
|
+
Error: ${r.error||"Unknown error"}`:r.status==="cancelled"?`INFO: Subagent task [${o}] was cancelled.`:`INFO: Subagent task [${o}] status changed to ${r.status.toUpperCase()}.`}catch(p){return clearTimeout(a),`ERROR: Exception while awaiting subagent [${o}]: ${p.message}`}};var Uo=async(e,n={})=>{let t=D(e),o=t.id,s=t.answer||t.response;if(!o)return'ERROR: Missing "id" argument for Answer.';if(!s)return'ERROR: Missing "answer" argument for Answer.';let r=Qe.find(i=>i.id===o);if(!r)return`ERROR: Subagent task with ID [${o}] not found.`;if(!r.questions||r.questions.length===0)return`INFO: Subagent task [${o}] has no pending questions.`;let a=r.questions.filter(i=>!i.answered);return a.length===0?`INFO: Subagent task [${o}] has no unanswered questions.`:(a.forEach(i=>{i.answered=!0,i.answer=s,i.answeredAt=Date.now(),i._resolve&&i._resolve(s)}),r.status="running",n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Answer provided to subagent task [${o}]. Subagent execution resumed.`)};var ls=async(e,n={})=>{let t=D(e),o=t.id,s=t.message||t.instruction||t.text||t.prompt;if(!o)return'ERROR: Missing "id" argument for Steer.';if(!s)return'ERROR: Missing "message" argument for Steer.';let r=Qe.find(a=>a.id===o);return r?r.status==="completed"||r.status==="failed"||r.status==="cancelled"?`ERROR: Cannot steer subagent task [${o}] because it has already finished with status [${r.status.toUpperCase()}].`:(typeof r.steer=="function"?r.steer(s):(r.pendingSteerMessages||(r.pendingSteerMessages=[]),r.pendingSteerMessages.push(s)),n.onSubagentUpdate&&n.onSubagentUpdate(),`SUCCESS: Steering instruction injected into subagent task [${o}]. It will be processed on the subagent's turn.`):`ERROR: Subagent task with ID [${o}] not found.`};import{mouse as pn,keyboard as Bt,Button as cs,Key as P,Point as ds,clipboard as Lc}from"@nut-tree-fork/nut-js";pn.config.autoDelayMs=50;Bt.config.autoDelayMs=50;async function ti(){try{await Bt.releaseKey(P.LeftControl,P.RightControl,P.LeftAlt,P.RightAlt,P.LeftShift,P.RightShift,P.LeftSuper,P.RightSuper)}catch{}}async function Bn(e,n,t={}){let o=await Vo(n);if(!o&&(e==="move"||e==="click"||e==="drag"))return`ERROR: Invalid target location specified: ${JSON.stringify(n)}`;try{switch(e.toLowerCase()){case"move":return await pn.setPosition(new ds(o.x,o.y)),`SUCCESS: Moved mouse to grid target ${typeof n=="string"?n:`(${o.x}, ${o.y})`}`;case"click":{await pn.setPosition(new ds(o.x,o.y));let s=t.button==="right"?cs.RIGHT:t.button==="middle"?cs.MIDDLE:cs.LEFT;return t.clickType==="double"?await pn.doubleClick(s):await pn.click(s),`SUCCESS: ${t.clickType||"Single"} clicked ${t.button||"left"} button at ${typeof n=="string"?n:`(${o.x}, ${o.y})`}`}case"drag":{let s=await Vo(t.from||n),r=await Vo(t.to);return!s||!r?'ERROR: Drag requires valid "from" and "to" target coordinates/grid codes.':(await pn.setPosition(new ds(s.x,s.y)),await pn.pressButton(cs.LEFT),await pn.setPosition(new ds(r.x,r.y)),await pn.releaseButton(cs.LEFT),`SUCCESS: Dragged mouse from (${s.x}, ${s.y}) to (${r.x}, ${r.y})`)}case"scroll":{let s=o||await Vo({x:640,y:360});s&&(await pn.setPosition(new ds(s.x,s.y)),await new Promise(p=>setTimeout(p,60)));let r=parseInt(t.amount,10);(isNaN(r)||r<=0)&&(r=5);let a=r>50?Math.min(20,Math.max(1,Math.round(r/100))):Math.min(20,r),i=t.direction==="up";for(let p=0;p<a;p++)i?await pn.scrollUp(120):await pn.scrollDown(120),await new Promise(d=>setTimeout(d,20));return`SUCCESS: Scrolled ${t.direction||"down"} (${a} notches${o?` at target (${o.x}, ${o.y})`:" at screen center"})`}default:return`ERROR: Unsupported mouse action "${e}"`}}catch(s){return`ERROR: Mouse action failed: ${s.message}`}}var Va={enter:P.Enter,return:P.Return,escape:P.Escape,esc:P.Escape,backspace:P.Backspace,tab:P.Tab,space:P.Space,up:P.Up,down:P.Down,left:P.Left,right:P.Right,ctrl:P.LeftControl,control:P.LeftControl,alt:P.LeftAlt,shift:P.LeftShift,cmd:P.LeftCmd,win:P.LeftWin,meta:P.LeftWin,super:P.LeftSuper,a:P.A,b:P.B,c:P.C,d:P.D,e:P.E,f:P.F,g:P.G,h:P.H,i:P.I,j:P.J,k:P.K,l:P.L,m:P.M,n:P.N,o:P.O,p:P.P,q:P.Q,r:P.R,s:P.S,t:P.T,u:P.U,v:P.V,w:P.W,x:P.X,y:P.Y,z:P.Z,0:P.Num0,1:P.Num1,2:P.Num2,3:P.Num3,4:P.Num4,5:P.Num5,6:P.Num6,7:P.Num7,8:P.Num8,9:P.Num9,f1:P.F1,f2:P.F2,f3:P.F3,f4:P.F4,f5:P.F5,f6:P.F6,f7:P.F7,f8:P.F8,f9:P.F9,f10:P.F10,f11:P.F11,f12:P.F12},Ya=e=>{if(!e)return;let n=String(e).toLowerCase().trim();if(Va[n]!==void 0)return Va[n];if(P[e]!==void 0)return P[e];if(P[n.toUpperCase()]!==void 0)return P[n.toUpperCase()]};async function Wn(e,n,t={}){try{switch(e.toLowerCase()){case"type":{if(typeof n!="string")return"ERROR: Type action requires a valid string input";await ti(),await Lc.setContent(n);let s=process.platform==="darwin"?P.LeftSuper:P.LeftControl;return await Bt.pressKey(s,P.V),await Bt.releaseKey(s,P.V),await ti(),t.autoPressEnter?(await new Promise(r=>setTimeout(r,50)),await Bt.type(P.Enter),`SUCCESS: Typed text input ("${n.length>20?n.substring(0,20)+"...":n}") and pressed Enter`):`SUCCESS: Typed text input ("${n.length>20?n.substring(0,20)+"...":n}")`}case"key_press":{let o=Ya(n);return o===void 0?`ERROR: Unknown key name "${n}"`:(await Bt.type(o),`SUCCESS: Pressed key ${n}`)}case"key_combination":{if(!Array.isArray(n))return'ERROR: key_combination requires an array of keys (e.g. ["ctrl", "c"])';let o=n.map(s=>Ya(s)).filter(s=>s!==void 0);return o.length===0?"ERROR: Invalid key combination":(await Bt.pressKey(...o),await Bt.releaseKey(...o),`SUCCESS: Executed key combination [${n.join(" + ")}]`)}case"clear_input":return await Bt.pressKey(P.LeftControl,P.A),await Bt.releaseKey(P.LeftControl,P.A),await Bt.type(P.Backspace),"SUCCESS: Cleared active text input (Select All + Backspace)";case"browser_back":{let o=process.platform==="darwin";return o?(await Bt.pressKey(P.LeftSuper,P.Left),await Bt.releaseKey(P.LeftSuper,P.Left)):(await Bt.pressKey(P.LeftAlt,P.Left),await Bt.releaseKey(P.LeftAlt,P.Left)),await ti(),`SUCCESS: Browser back navigation (${o?"Cmd+Left":"Alt+Left"})`}default:return`ERROR: Unsupported keyboard action "${e}"`}}catch(o){return`ERROR: Keyboard action failed: ${o.message}`}}var us=async(e,n={})=>{let t=D(e),o=t.action||t.type||t.cmd,s=t.target||t.grid||t.gridCode||t.location||t.input;if(!o)return'ERROR: Missing required "action" argument for computer_action (e.g. move, click, drag, scroll, type, key_press, key_combination).';let r=o.toLowerCase();if(r.startsWith("mouse_")||["move","click","drag","scroll"].includes(r)){let a=r.replace("mouse_","");return await Bn(a,s,{button:t.button,clickType:t.clickType||t.type,from:t.from,to:t.to,direction:t.direction,amount:t.amount?parseInt(t.amount,10):void 0})}if(r.startsWith("key_")||r==="type"||r==="press"){let a=r;r==="press"&&(a="key_press");let i=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return await Wn(a,s||t.text||t.keys,{...t,autoPressEnter:i})}return`ERROR: Unrecognized action "${o}". Supported actions: move, click, drag, scroll, type, key_press, key_combination.`};import Za from"screenshot-desktop";import ps from"sharp";import Xa from"fs-extra";import Ja from"path";import"@nut-tree-fork/nut-js";async function ni(e,n,t){if(!(!process.env.SHOW_DEBUG_GRID&&!process.env.DEBUG_OCR))try{let o=Ja.resolve(process.cwd(),"screenshots",e);await Xa.ensureDir(o),await Xa.writeFile(Ja.join(o,n),t)}catch{}}function Dc(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Pc(e,n,t=1/0){if(e===n)return 0;if(e.length===0)return n.length;if(n.length===0)return e.length;if(Math.abs(e.length-n.length)>t)return t+1;let o=Array.from({length:n.length+1},(s,r)=>r);for(let s=1;s<=e.length;s++){let r=[s],a=s;for(let i=1;i<=n.length;i++){let p=e[s-1]===n[i-1]?0:1,d=Math.min(r[i-1]+1,o[i]+1,o[i-1]+p);r.push(d),d<a&&(a=d)}if(o=r,a>t)return t+1}return o[n.length]}function Fc(e){return e<=4?0:e<=8?1:2}async function oi(e,n=3){let t=await ps(e).metadata();return ps(e).resize(Math.round(t.width*n),Math.round(t.height*n),{kernel:"lanczos3"}).greyscale().normalise().toBuffer()}function Nc(e){if(!e)return{words:[],lines:[]};let n=[],t=new Map;for(let s of e.split(`
|
|
902
|
+
`)){let r=s.split(" ");if(r.length<12||parseInt(r[0])!==5)continue;let i=r[2],p=r[3],d=r[4],c=parseInt(r[6]),l=parseInt(r[7]),f=parseInt(r[8]),u=parseInt(r[9]),m=parseFloat(r[10]),g=r.slice(11).join(" ").trim();if(!g||m<0)continue;let y={x0:c,y0:l,x1:c+f,y1:l+u},h={text:g,confidence:m,bbox:y};n.push(h);let b=`${i}_${p}_${d}`;t.has(b)||t.set(b,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let w=t.get(b);w.words.push(h),w.bbox.x0=Math.min(w.bbox.x0,y.x0),w.bbox.y0=Math.min(w.bbox.y0,y.y0),w.bbox.x1=Math.max(w.bbox.x1,y.x1),w.bbox.y1=Math.max(w.bbox.y1,y.y1)}let o=[];for(let s of t.values())s.words.length>0&&o.push({text:s.words.map(r=>r.text).join(" "),bbox:s.bbox,words:s.words});return{words:n,lines:o}}function Uc(e){if(!(e.words&&e.words.length>0)){if(e.blocks&&e.blocks.length>0){e.words=[],e.lines=[];for(let n of e.blocks)for(let t of n.paragraphs||[])for(let o of t.lines||[]){o.bbox&&e.lines.push(o);for(let s of o.words||[])s.bbox&&e.words.push(s)}if(e.words.length>0)return}if(e.tsv){let n=Nc(e.tsv);e.words=n.words,e.lines=n.lines}}}function si(e,n,t=0,o=0,s=1){Uc(e);let r=i=>({x0:Math.round(i.x0/s)+t,y0:Math.round(i.y0/s)+o,x1:Math.round(i.x1/s)+t,y1:Math.round(i.y1/s)+o}),a=[];if(e.lines&&e.lines.length>0)for(let i of e.lines){let p=i.text?i.text.toLowerCase().trim():"";if(!p||!i.bbox||!(p===n||new RegExp(`\\b${Dc(n)}\\b`,"i").test(p)))continue;let c=i.words||(e.words?e.words.filter(m=>m.bbox&&m.bbox.x0>=i.bbox.x0-5&&m.bbox.x1<=i.bbox.x1+5&&m.bbox.y0>=i.bbox.y0-5&&m.bbox.y1<=i.bbox.y1+5):[]),l=n.split(/\s+/),f=l.map(m=>m.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(c.length>0)for(let m=0;m<=c.length-l.length;m++){let g=c.slice(m,m+l.length),y=g.map(h=>(h.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(y===f||y.includes(f)){let h={x0:Math.min(...g.map(b=>b.bbox.x0)),y0:Math.min(...g.map(b=>b.bbox.y0)),x1:Math.max(...g.map(b=>b.bbox.x1)),y1:Math.max(...g.map(b=>b.bbox.y1))};a.push(r(h)),u=!0}}u||a.push(r(i.bbox))}if(a.length===0&&e.words&&e.words.length>0)for(let i of e.words){let p=i.text?i.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",d=n.replace(/[^a-z0-9]/g,"");p===d&&i.bbox&&a.push(r(i.bbox))}if(a.length===0&&e.words&&e.words.length>0){let i=Fc(n.length);for(let p of e.words){let d=p.text?p.text.toLowerCase().trim():"";d.length>=3&&Math.abs(d.length-n.length)<=i&&Pc(d,n,i)<=i&&p.bbox&&a.push(r(p.bbox))}}return a}function ri(e,n){let t=null,o=1/0;for(let s of e){let r=Math.round((s.x0+s.x1)/2),a=Math.round((s.y0+s.y1)/2),i=n.x>=s.x0&&n.x<=s.x1&&n.y>=s.y0&&n.y<=s.y1,p=Math.hypot(r-n.x,a-n.y),d=i?0:p;d<o&&(o=d,t={x:r,y:a,dist:p,containsPoint:i,bbox:s})}return t}function Bc(e,n,t,o){let a=Math.ceil(e/4),i=Math.ceil(n/2),p=[];for(let d=0;d<2;d++)for(let c=0;c<4;c++){let l=c*a,f=d*i,u=Math.min(a,e-l),m=Math.min(i,n-f),g=l+u/2,y=f+m/2,h=t>=l&&t<l+u&&o>=f&&o<f+m;p.push({x0:l,y0:f,w:u,h:m,cx:g,cy:y,containsTarget:h})}return p.sort((d,c)=>{if(d.containsTarget)return-1;if(c.containsTarget)return 1;let l=Math.hypot(d.cx-t,d.cy-o),f=Math.hypot(c.cx-t,c.cy-o);return l-f})}var Fs=null;async function Wc(){return Fs||(Fs=(async()=>{let{createWorker:e}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:t}=await import("./paths-CHZDSDRF.js");return n.ensureDirSync(t),e("eng",1,{cachePath:t,logger:()=>{}})})().catch(e=>{throw Fs=null,e})),Fs}var fs=null,Qa=null;async function jc(){let{getActiveDisplay:e}=await import("./screen_grid-2QLQELW7.js"),n=await e();if(fs&&Qa===n)return fs;Qa=n,fs={format:"png"};try{let t=await Za.listDisplays();t&&t.length>0&&(fs={format:"png",screen:(t[n]||t[0]).id})}catch{}return fs}var ii=async(e,n={})=>{let t=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),o=performance.now(),s=o,r=u=>{if(!t)return;let m=performance.now(),g=(m-s).toFixed(0),y=(m-o).toFixed(0);console.log(`[Click Perf] +${g}ms (${y}ms total) -> ${u}`),s=m};r("Starting click()");let a=D(e),i=a.gridId||a.grid||a.coordinate||a.target||a.id,p=(a.type||a.clickType||"single").toLowerCase(),d=(a.button||"left").toLowerCase(),c=a.intendedClickText||a.text||"";if(!i&&!c)return'ERROR: Missing required "gridId" parameter for Click tool.';let l=i;if(c)try{r("Parsing grid code");let u=i?Bi(i):null;r("Getting display options");let m=await jc();r("Taking desktop screenshot");let g=await Za(m);r("Getting image metadata");let y=await ps(g).metadata(),h=y.width||1920,b=y.height||1080,w=u?{x:Math.round(u.x*(h/1280)),y:Math.round(u.y*(b/720))}:{x:h/2,y:b/2},T=c.toLowerCase().trim();r("Acquiring OCR worker");let $=await Wc(),R=null,k="",S=u?220:500;if(u){r("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let _=Math.min(Math.round(h/3),h),E=Math.min(Math.round(b/3),b),x=Math.max(0,Math.min(h-_,w.x-Math.floor(_/2))),C=Math.max(0,Math.min(b-E,w.y-Math.floor(E/2))),M=await ps(g).extract({left:x,top:C,width:_,height:E}).toBuffer(),v=2,L=await oi(M,v),U=T.replace(/[^a-z0-9]/g,"_");await ni("cropped",`crop_${Date.now()}_${U}.png`,L),r("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await $.setParameters({tessedit_pageseg_mode:"11"});let{data:j}=await $.recognize(L,{},{tsv:!0,blocks:!0});if(r("Pass 1: OCR recognition finished, extracting matches"),j&&j.text){t&&console.log(`[Pass 1 OCR Read]: "${j.text.trim().replace(/\s+/g," ")}"`);let ee=si(j,T,x,C,v);if(ee.length>0){let X=ri(ee,w);X&&(X.containsPoint||X.dist<=S)&&(R=X,k="centered target crop OCR")}}}if(!R){r("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let _=await oi(g,2),E=T.replace(/[^a-z0-9]/g,"_");await ni("fullscreen",`full_${Date.now()}_${E}.png`,_),r("Pass 2: Running Tesseract on full screen"),await $.setParameters({tessedit_pageseg_mode:"3"});let{data:x}=await $.recognize(_,{},{tsv:!0,blocks:!0});if(r("Pass 2: Full-screen OCR finished"),x&&x.text){let C=si(x,T,0,0,2);if(C.length>0){let M=ri(C,w);M&&(R=M,k="full-screen OCR")}}}if(!R){r("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let _=Bc(h,b,w.x,w.y),E=T.replace(/[^a-z0-9]/g,"_");await $.setParameters({tessedit_pageseg_mode:"11"});for(let x=0;x<_.length;x++){let C=_[x];r(`Pass 3: Preprocessing tile ${x+1}/${_.length}`);let M=await ps(g).extract({left:C.x0,top:C.y0,width:C.w,height:C.h}).toBuffer(),v=await oi(M,3);await ni("tiles",`tile_${x+1}_${Date.now()}_${E}.png`,v),r(`Pass 3: Running Tesseract on tile ${x+1}`);let{data:L}=await $.recognize(v,{},{tsv:!0,blocks:!0});if(!L||!L.text)continue;let U=si(L,T,C.x0,C.y0,3);if(U.length>0){let j=ri(U,w);if(j){R=j,k=`tile ${x+1} OCR (${C.containsTarget?"target tile":`offset ${C.x0},${C.y0}`})`;break}}}}if(R){let _={x:Math.round(R.x*(1280/h)),y:Math.round(R.y*(720/b))};r(`Executing mouse click on matched target (${k})`);let E=await Bn("click",_,{button:d,clickType:p});return r("Click completed successfully"),`${E} (${k} for "${c}" at ${Math.round(R.dist)}px distance)`}else t&&console.log(`[OCR] No match found for "${c}". Falling back to gridId.`)}catch(u){t&&console.error("[OCR Error]",u)}r(`Executing mouse click on fallback gridId: ${l}`);let f=await Bn("click",l,{button:d,clickType:p});return r("Fallback click completed"),f};var ai=async(e,n={})=>{let t=D(e),o=t.fromGridId||t.from||t.start,s=t.toGridId||t.to||t.end;return!o||!s?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await Bn("drag",o,{from:o,to:s})};var li=async(e,n={})=>{let t=D(e),o=(t.direction||"down").toLowerCase(),s=t.amount?parseInt(t.amount,10):6,r=t.gridId||t.grid||t.coordinate||t.target||t.id||null;return await Bn("scroll",r,{direction:o,amount:s})};var Ns=async(e,n={})=>{let t=D(e),o=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return o==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await Wn("type",String(o),{autoPressEnter:s})};var Us=async(e,n={})=>{let t=D(e),o=t.key||t.keys||t.input||t.shortcut;if(!o)return'ERROR: Missing required "key" parameter for KeyPress tool.';let s=String(o).trim().toLowerCase();if(s==="clearinput"||s==="clear_input"||s==="clear")return await Wn("clear_input");if(s==="back"||s==="browser_back"||s==="browserBack")return await Wn("browser_back");if(s.includes(";")||s.includes("+")){let r=s.split(/[;+]/).map(a=>a.trim()).filter(Boolean);return await Wn("key_combination",r)}return await Wn("key_press",s)};var Bs=async(e,n={})=>"SUCCESS: Screen recapture requested. The latest gridded screenshot is provided for your next decision.";var Gc={web_search:vr,web_scrape:Ir,memory:Or,chat:Lr,view_file:ts,write_file:Dr,update_file:Ur,exec_command:wr,read_folder:Wr,write_pdf:jr,write_docx:Hr,search_keyword:ss,generate_image:Kr,saveSummary:rs,addMemScore:Fo,file_map:Xr,todo:is,Todo:is,goal:is,Goal:is,invokeSync:Jr,invoke:qa,getProgress:Qr,cancel:za,awaitSubagent:No,answerSubagent:Uo,steerSubagent:ls,computer_action:us,computer_use:us,ComputerAction:us,ComputerUse:us,click:ii,Click:ii,drag:ai,Drag:ai,scroll:li,Scroll:li,keyboard_typing:Ns,KeyboardTyping:Ns,keyboardtyping:Ns,key_press:Us,KeyPress:Us,keypress:Us,recapture_screen:Bs,RecaptureScreen:Bs,recapturescreen:Bs,invoke_sync:Jr,get_progress:Qr,await_subagent:No,answer_subagent:Uo,steer_subagent:ls,steer:ls,Steer:ls,ask:Ps,Ask:Ps,AskUser:Ps,WebSearch:vr,WebScrape:Ir,ReadFile:ts,ReadFolder:Wr,WriteFile:Dr,PatchFile:Ur,WritePDF:jr,WriteDoc:Hr,Run:wr,SearchKeyword:ss,CodeSearch:ss,code_search:ss,Memory:Or,Chat:Lr,GenerateImage:Kr,saveSumary:rs,SaveSummary:rs,SaveSumary:rs,add_mem_score:Fo,AddMemScore:Fo,addMemoryScore:Fo,AddMemoryScore:Fo,FileMap:Xr,answer:Uo,Answer:Uo,AnswerSubagent:Uo,await:No,Await:No,AwaitSubagent:No,EmergencyRollback:ei,emergency_rollback:ei},ms=async(e,n,t={})=>{let o=t.mode?t.mode.toLowerCase():"flux",s=e.toLowerCase(),a=["memory","chat","savesummary","addmemscore","add_mem_score","ask","web_search","web_scrape","await"].some(c=>s.includes(c))||s==="ask",p=["click","drag","scroll","keyboardtyping","keyboard_typing","keypress","key_press","recapturescreen","recapture_screen","computer"].some(c=>s.includes(c));if(!a){if(o==="flow"){if(!(s.includes("write_pdf")||s.includes("write_docx")||s.includes("generate_image")))return`ERROR: Tool [${e}] is a Workspace Tool and NOT available in Flow mode. Tell user to switch (\`/mode flux\`) to use this tool.`}else if(o==="icu"){if(!p)return`ERROR: Tool [${e}] is not available in Computer Use mode. ICU mode only supports Computer Use tools (Click, Drag, Scroll, KeyboardTyping, KeyPress, RecaptureScreen).`}else if(s.includes("write_pdf")||s.includes("write_docx")||s.includes("generate_image"))return`ERROR: Tool [${e}] is not available in ${t.mode||"Flux"} mode. Tell user to switch (\`/mode flow\`) for document generation.`}let d=Gc[e];if(!d)return`ERROR: Tool [${e}] not found in registry.`;try{return await d(n,t)}catch(c){let l=c instanceof Error?c.message:String(c);return`ERROR: Execution failed for [${e}]: ${l}`}};import te from"path";import Fe from"fs";import Hc from"gradient-string";var ci=["I have a regex for your problems.","Your terminal, my kingdom.","Blowing on the cartridge helps. Probably.","Don't panic. I have the towel.","Logic is the start of wisdom.","Try to exit Vim? Good luck.","I speak fluent Terminal.","The cake is a lie. This code is not.","I have no bugs, just surprise features.","Rewriting in Rust... just for fun.","Coffee in, clean commits out.","The magic smoke stays inside today.","A semicolon short of a miracle.","One does not simply code without a bug.","Keep it simple. Keep it terminal.","Regex: now you have two problems.","I dream in binary.","Root access or bust.","Wait for the dial-up tone. Just kidding.","I take the 'labor' out of collab.","My other process is a TARDIS.","Calculated response: 42.","Ponder the orb. Ponder the code.","Less talk, more flow.","Elegance in every byte.","Build something the world is not ready for.","Your wishes, my tool calls.","I act in Flux. I think in Flow.","Syntax error in the universe. Please fix.","Your project, my obsession.","I am not a bot, I am an architect.","Digital spirits consulted. They say: Ship it.","Reticulate splines. Engage humor.","Code like poetry. Run like water.","Minimalism is the ultimate flex.","The truth is in the logs.","Follow the white rabbit.","There is no spoon. Only code.","Binary is the only language I trust.","I have a good feeling about this.","Pew pew! Lasers charged.","Divide by zero? Not today.","Search for the correct USB orientation...","I've got a fever, and the only cure is more code.","The code gremlins are on our side.","My favorite command? Yours.","Stay hungry. Stay active.","Momentum is your best friend.","Lead the flow. Don't chase it.","A fresh batch of bytes. Hot and ready.","I orchestrate the ones and zeros.","Smart enough to help. Humble enough to ask.","Think twice. Code once.","Pure intent. Pure execution.","Small steps. Massive impact.","Your terminal is a canvas.","Efficiency is my second name.","I have seen things you people wouldn't believe.","Let the thoughts marinate.","The best feature? The one you don't need.","Precision is the only perfection.","Stay focused. Stay terminal.","Silence is the best debugger.","Erase the debt. Commit the code.","Velocity meets stability.","Ship it. Improve it. Repeat.","Build tomorrow, right now.","Turn logic into reality.","The best way to predict the future is to build it.","Break barriers, not builds.","Fuel the next breakthrough.","Momentum is key.","Terminal vibes only.","Your digital co-pilot is ready.","Partner in code. Partner in crime.","I speak in semicolons.","Ready for the next great idea.","Just a moment. In the zone.","Polishing the algorithms. Hold tight.","Craft a masterpiece today.","Debug the universe. Start here.","Warp speed engaged. Almost.","The cake is not a lie. It's just loading.","Finish the Kessel Run in 12 parsecs.","Do a barrel roll!","Waiting for the respawn.","Press Start to continue.","Herding digital cats... done.","The hamsters are fast today.","Tasting the snozberries.","I go for speed. I go for flow.","Real life or just fantasy?","Poking the bear... gently.","Ensure the magic smoke stays inside.","Try turning it off and on again.","Construct additional pylons.","New line? Ctrl+J is your friend.","Release the HypnoDrones.","Push the button, Frank.","My other loading screen is even funnier.","Pretty sure a cat walked on my keyboard.","Recalibrate the humor-o-meter.","Summon the code gremlins.","I've seen your browser history. Just kidding.","Charge the laser... pew pew!","Dividing by zero... just for a sec.","Looking for an adult supervisor. Found none.","Make it go beep boop.","Buffering... for effect.","Entangle quantum particles... complete.","Polishing the chrome on my algorithms.","Are you not entertained?","Just waiting for the dial-up tone.","Reboot the humor module.","Defragment memories. Check.","Optimizing for ludicrous speed.","Swapping bits. Don't tell the bytes.","Garbage collected. I am back.","Assembling the interwebs.","Converting coffee to logic.","Update syntax for reality.","Rewire the synapses.","Greasin' the cogs.","Engage the improbability drive.","Channel the Force.","Align the stars. Respond now.","The cake is a lie. The prompt is real.","I'm Feeling Lucky.","Shipping awesomeness.","Navigating the slime mold.","Consult digital spirits.","Ask the magic conch shell.","One moment. Optimizing humor.","Shuffling punchlines.","Compiling brilliance.","Summon the cloud of wisdom.","Prepare to dazzle.","Hold tight. Crafting a response.","Tuning the algorithms.","Following the white rabbit... again.","The truth is in here. Somewhere.","Herding cats is my day job.","Distracting you with this phrase.","Almost there. Probably.","Rickrolling my creator. Don't tell.","Slapping the bass.","Is this real life?","Ponder the orb. Type the prompt.","Thoughtful gaze initiated.","Computer's favorite snack? Microchips.","Why Java? Because I don't C#.","Charging the laser... wait for it.","Dividing by zero... just kidding!","Adult supervision not found. Proceed.","Beep boop. I'm a real boy.","Wait for the respawn.","Finish the run. Ship the code.","Fiddling with character creation.","Just a moment. Finding a meme.","Pressing A to continue.","Loading wit.exe.","Pre-heating the servers.","Calibrate flux capacitor.","Channeling the Force.","Aligning the stars.","The truth is in the code.","Don't panic.","Blowing on the cartridge.","Doing a barrel roll!","Respawning in 3... 2... 1...","The cake is a lie.","Fiddling with character settings.","Finding a suitable pun.","Distracting with wit.","Almost ready.","Hamsters on speed today.","Patting Cloudy on the head.","Rickrolling the logs.","Slapping the code.","Got a good feeling about this.","Poking the prompt.","Researching latest memes.","Making it more witty.","Thinking... hmmm.","Fish with no eyes? Fsh.","Broken pencil? Pointless.","Percussive maintenance applied.","USB orientation: 3rd try's the charm.","Rust rewrite in 3... 2...","Exiting Vim... someday.","Spinning the hamster wheel.","Not a bug. Unplanned feature.","Engage.","I'll be back.","Machine spirit consulted.","Letting the thoughts marinate.","Orb pondered.","Thoughtful gaze engaged.","Charging the laser...","Making it go beep.","Buffering...","Quantum particles entangled.","Polishing the chrome.","Entertained yet?","Gremlins summoned.","Dial-up tone finished.","Humor meter recalibrated.","Cat on keyboard. Sending help.","Enhancing...","Turn it off and on again.","Constructing pylons.","HypnoDrones released.","Pushing the button."];var el=[{name:"Cyan Cyberpunk",text:"cyan",textMuted:"#4da6b8",textDim:"#2d6d7a",textInverted:"black",border:"cyan",borderMuted:"#1a5966",borderDim:"#0f3840",bg:void 0,cardBg:"#061e24",highlightBg:"#092b33",activeBg:"#0e3e4a",inputBg:"#092b33",inputBorder:"#092b33",inputText:"cyan",inputPlaceholder:"#2d6d7a",inputPrompt:"cyan",codeBg:"#020d10",codeBorder:"#1a5966",userMsgBg:"#092b33",userMsgBorder:"#092b33",userMsgText:"cyan",diffRemovalBg:"#3a0c1a",diffAdditionBg:"#0c3a32",diffRemovalText:"#ff4d88",diffAdditionText:"#00ffaa",diffRemovalHighlightColor:"#ff1a66",diffRemovalHighlightBg:"#590022",diffAdditionHighlightColor:"#00ffcc",diffAdditionHighlightBg:"#00593b",diffRemovalNum:"#ff4d88",diffAdditionNum:"#00ffaa",diffRemovalPrefix:"#ff1a66",diffAdditionPrefix:"#00ffcc",primary:"cyan",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"cyan",statusOff:"#2d6d7a",logoTextAnsi:"\x1B[1;36m",logoBodyAnsi:"\x1B[36m",logoMutedAnsi:"\x1B[90m",logoGradient:["#00ffff","#0088ff"]},{name:"Magenta Vaporwave",text:"magenta",textMuted:"#c451d6",textDim:"#7d2b8a",textInverted:"black",border:"magenta",borderMuted:"#5e1b69",borderDim:"#3b0f42",bg:void 0,cardBg:"#240729",highlightBg:"#310938",activeBg:"#470e52",inputBg:"#310938",inputBorder:"#310938",inputText:"magenta",inputPlaceholder:"#7d2b8a",inputPrompt:"magenta",codeBg:"#100312",codeBorder:"#5e1b69",userMsgBg:"#310938",userMsgBorder:"#310938",userMsgText:"magenta",diffRemovalBg:"#3a0c20",diffAdditionBg:"#200c3a",diffRemovalText:"#ff4d94",diffAdditionText:"#aa4dff",diffRemovalHighlightColor:"#ff1a75",diffRemovalHighlightBg:"#59002b",diffAdditionHighlightColor:"#bb66ff",diffAdditionHighlightBg:"#3b0059",diffRemovalNum:"#ff4d94",diffAdditionNum:"#aa4dff",diffRemovalPrefix:"#ff1a75",diffAdditionPrefix:"#bb66ff",primary:"magenta",secondary:"cyan",accent:"purple",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"magenta",statusOff:"#7d2b8a",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ff00ff","#8800ff"]},{name:"Glitch Matrix",text:"#00ff41",textMuted:"#00b32d",textDim:"#00661a",textInverted:"black",border:"#00ff41",borderMuted:"#008020",borderDim:"#004d13",bg:void 0,cardBg:"#0d1f0d",highlightBg:"#122912",activeBg:"#1c3e1c",inputBg:"#122912",inputBorder:"#122912",inputText:"#00ff41",inputPlaceholder:"#00b32d",inputPrompt:"#ffff00",codeBg:"#040a04",codeBorder:"#008020",userMsgBg:"#122912",userMsgBorder:"#122912",userMsgText:"#00ff41",diffRemovalBg:"#3a001a",diffAdditionBg:"#003a10",diffRemovalText:"#ff0055",diffAdditionText:"#00ff66",diffRemovalHighlightColor:"#ff0033",diffRemovalHighlightBg:"#59001b",diffAdditionHighlightColor:"#33ff88",diffAdditionHighlightBg:"#005918",diffRemovalNum:"#ff0055",diffAdditionNum:"#00ff66",diffRemovalPrefix:"#ff0033",diffAdditionPrefix:"#33ff88",primary:"#00ff41",secondary:"yellow",accent:"cyan",success:"#00ff41",warning:"yellow",danger:"red",info:"cyan",statusOn:"#00ff41",statusOff:"#00661a",logoTextAnsi:"\x1B[1;32m",logoBodyAnsi:"\x1B[32m",logoMutedAnsi:"\x1B[90m",logoGradient:["#00ff41","#ffff00"]},{name:"Warm Sunset",text:"#ffaa55",textMuted:"#cc8844",textDim:"#885522",textInverted:"black",border:"#ff9933",borderMuted:"#aa6622",borderDim:"#663311",bg:void 0,cardBg:"#24180f",highlightBg:"#2e1e12",activeBg:"#422c1b",inputBg:"#2e1e12",inputBorder:"#2e1e12",inputText:"#ffaa55",inputPlaceholder:"#885522",inputPrompt:"#ff7733",codeBg:"#120c08",codeBorder:"#aa6622",userMsgBg:"#2e1e12",userMsgBorder:"#2e1e12",userMsgText:"#ffaa55",diffRemovalBg:"#3d120c",diffAdditionBg:"#3a2e0c",diffRemovalText:"#ff5544",diffAdditionText:"#ffcc33",diffRemovalHighlightColor:"#ff3322",diffRemovalHighlightBg:"#591108",diffAdditionHighlightColor:"#ffee44",diffAdditionHighlightBg:"#594400",diffRemovalNum:"#ff5544",diffAdditionNum:"#ffcc33",diffRemovalPrefix:"#ff3322",diffAdditionPrefix:"#ffee44",primary:"#ffaa55",secondary:"#ff7733",accent:"magenta",success:"#ffcc33",warning:"#ff7733",danger:"#ff3322",info:"#ffaa55",statusOn:"#ffaa55",statusOff:"#885522",logoTextAnsi:"\x1B[1;33m",logoBodyAnsi:"\x1B[33m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ff9933","#ff0055"]},{name:"Sakura Blossom",text:"#ffc0e0",textMuted:"#d98cb3",textDim:"#804d66",textInverted:"black",border:"#ff99cc",borderMuted:"#aa4d7a",borderDim:"#662647",bg:void 0,cardBg:"#291320",highlightBg:"#331826",activeBg:"#472235",inputBg:"#331826",inputBorder:"#331826",inputText:"#ffc0e0",inputPlaceholder:"#804d66",inputPrompt:"#ff99cc",codeBg:"#140a10",codeBorder:"#aa4d7a",userMsgBg:"#331826",userMsgBorder:"#331826",userMsgText:"#ffc0e0",diffRemovalBg:"#3e0c1b",diffAdditionBg:"#1b3e2b",diffRemovalText:"#ff6699",diffAdditionText:"#66ffb3",diffRemovalHighlightColor:"#ff3377",diffRemovalHighlightBg:"#590022",diffAdditionHighlightColor:"#33ff99",diffAdditionHighlightBg:"#00592e",diffRemovalNum:"#ff6699",diffAdditionNum:"#66ffb3",diffRemovalPrefix:"#ff3377",diffAdditionPrefix:"#33ff99",primary:"#ffc0e0",secondary:"#ff99cc",accent:"magenta",success:"#66ffb3",warning:"yellow",danger:"#ff3377",info:"#ff99cc",statusOn:"#ffc0e0",statusOff:"#804d66",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ffb3d9","#ff3399"]},{name:"Radioactive Slime",text:"#ccff00",textMuted:"#99cc00",textDim:"#669900",textInverted:"#0a0f00",border:"#ccff00",borderMuted:"#99cc00",borderDim:"#669900",bg:void 0,cardBg:"#0f1400",highlightBg:"#1a2400",activeBg:"#2a3b00",inputBg:"#1a2400",inputBorder:"#1a2400",inputText:"#ccff00",inputPlaceholder:"#669900",inputPrompt:"#cc00ff",codeBg:"#050a00",codeBorder:"#99cc00",userMsgBg:"#1a2400",userMsgBorder:"#1a2400",userMsgText:"#ccff00",diffRemovalBg:"#2a0033",diffAdditionBg:"#0f3300",diffRemovalText:"#ff00cc",diffAdditionText:"#00ff33",diffRemovalHighlightColor:"#ff33cc",diffRemovalHighlightBg:"#4d0066",diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:"#1a6600",diffRemovalNum:"#ff00cc",diffAdditionNum:"#00ff33",diffRemovalPrefix:"#ff33cc",diffAdditionPrefix:"#33ff66",primary:"#ccff00",secondary:"#cc00ff",accent:"#ff00cc",success:"#00ff33",warning:"#ffcc00",danger:"#ff0033",info:"#00ccff",statusOn:"#ccff00",statusOff:"#669900",logoTextAnsi:"\x1B[1;38;5;190m",logoBodyAnsi:"\x1B[38;5;190m",logoMutedAnsi:"\x1B[90m",logoGradient:["#ccff00","#cc00ff"]},{name:"Cosmic Void",text:"#f0f8ff",textMuted:"#a6aeb5",textDim:"#5e656e",textInverted:"#010103",border:"#f0f8ff",borderMuted:"#a6aeb5",borderDim:"#5e656e",bg:void 0,cardBg:"#05030d",highlightBg:"#0b081a",activeBg:"#171133",inputBg:"#0b081a",inputBorder:"#0b081a",inputText:"#f0f8ff",inputPlaceholder:"#5e656e",inputPrompt:"#ff007f",codeBg:"#020108",codeBorder:"#a6aeb5",userMsgBg:"#0b081a",userMsgBorder:"#0b081a",userMsgText:"#f0f8ff",diffRemovalBg:"#2e0a29",diffAdditionBg:"#091c33",diffRemovalText:"#ff33a6",diffAdditionText:"#33d6ff",diffRemovalHighlightColor:"#ff66c2",diffRemovalHighlightBg:"#5c1452",diffAdditionHighlightColor:"#66e0ff",diffAdditionHighlightBg:"#123866",diffRemovalNum:"#ff33a6",diffAdditionNum:"#33d6ff",diffRemovalPrefix:"#ff66c2",diffAdditionPrefix:"#66e0ff",primary:"#f0f8ff",secondary:"#ff007f",accent:"#9d00ff",success:"#33d6ff",warning:"#ffcc00",danger:"#ff0040",info:"#9d00ff",statusOn:"#f0f8ff",statusOff:"#5e656e",logoTextAnsi:"\x1B[1;38;5;231m",logoBodyAnsi:"\x1B[38;5;231m",logoMutedAnsi:"\x1B[38;5;240m",logoGradient:["#ffffff","#9d00ff"]},{name:"Magma Eruption",text:"#ff4d00",textMuted:"#cc3d00",textDim:"#802600",textInverted:"#0d0300",border:"#ff4d00",borderMuted:"#cc3d00",borderDim:"#802600",bg:void 0,cardBg:"#1a0600",highlightBg:"#260a00",activeBg:"#401100",inputBg:"#260a00",inputBorder:"#260a00",inputText:"#ff4d00",inputPlaceholder:"#802600",inputPrompt:"#ffcc00",codeBg:"#080200",codeBorder:"#cc3d00",userMsgBg:"#260a00",userMsgBorder:"#260a00",userMsgText:"#ff4d00",diffRemovalBg:"#2e0a0a",diffAdditionBg:"#1f1400",diffRemovalText:"#ff3333",diffAdditionText:"#ffaa00",diffRemovalHighlightColor:"#ff6666",diffRemovalHighlightBg:"#5c1414",diffAdditionHighlightColor:"#ffcc33",diffAdditionHighlightBg:"#3d2900",diffRemovalNum:"#ff3333",diffAdditionNum:"#ffaa00",diffRemovalPrefix:"#ff6666",diffAdditionPrefix:"#ffcc33",primary:"#ff4d00",secondary:"#ffcc00",accent:"#ff0040",success:"#ffaa00",warning:"#ffff00",danger:"#ff0000",info:"#ff8800",statusOn:"#ff4d00",statusOff:"#802600",logoTextAnsi:"\x1B[1;38;5;202m",logoBodyAnsi:"\x1B[38;5;202m",logoMutedAnsi:"\x1B[38;5;236m",logoGradient:["#ff4d00","#ff0000"]}],hs={Dark:{id:"Dark",name:"Dark (Default)",text:"white",textMuted:"gray",textDim:"grey",textInverted:"black",textExclusive:"#B5B8D9",textMutedExclusive:"#D4DEE7",border:"white",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:"#1e1e1e",highlightBg:"#2a2a2a",activeBg:"#3a3a3a",inputBg:"#555555",inputBorder:"#555555",inputText:"white",inputPlaceholder:"#cccccc",inputPrompt:"white",codeBg:"#1a1a1a",codeBorder:"#444444",userMsgBg:"#444444",userMsgBorder:"#444444",userMsgText:"white",diffRemovalBg:"#250808",diffAdditionBg:"#072410",diffRemovalText:"#885555",diffAdditionText:"#558866",diffRemovalHighlightColor:"#ff3333",diffRemovalHighlightBg:"#5a1818",diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:"#185a25",diffRemovalNum:"#d96868",diffAdditionNum:"#68d98c",diffRemovalPrefix:"#ff4d4d",diffAdditionPrefix:"#4dff88",primary:"white",secondary:"cyan",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"white",statusOff:"gray",logoTextAnsi:"\x1B[1;37m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#0077ff","#ff00ff"]},Light:{id:"Light",name:"Light",text:"black",textMuted:"gray",textDim:"grey",textInverted:"white",border:"black",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:"#e5e5e5",highlightBg:"#d4d4d4",activeBg:"#c0c0c0",inputBg:"#d0d0d0",inputBorder:"#d0d0d0",inputText:"black",inputPlaceholder:"#555555",inputPrompt:"black",codeBg:"#e8e8e8",codeBorder:"#b0b0b0",userMsgBg:"#d0d0d0",userMsgBorder:"#d0d0d0",userMsgText:"black",diffRemovalBg:"#fce8e8",diffAdditionBg:"#e6f9e6",diffRemovalText:"#661111",diffAdditionText:"#115511",diffRemovalHighlightColor:"#440000",diffRemovalHighlightBg:"#f8b4b4",diffAdditionHighlightColor:"#003300",diffAdditionHighlightBg:"#a6ebad",diffRemovalNum:"#c02020",diffAdditionNum:"#188028",diffRemovalPrefix:"#d01010",diffAdditionPrefix:"#109020",primary:"black",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"black",statusOff:"gray",logoTextAnsi:"\x1B[1;30m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#0077ff","#ff00ff"]},"GitHub Dark":{id:"GitHub Dark",name:"GitHub Dark",text:"#c9d1d9",textMuted:"#8b949e",textDim:"#6e7681",textInverted:"#0d1117",border:"#30363d",borderMuted:"#30363d",borderDim:"#21262d",bg:void 0,cardBg:"#161b22",highlightBg:"#21262d",activeBg:"#30363d",inputBg:"#21262d",inputBorder:"#21262d",inputText:"#c9d1d9",inputPlaceholder:"#8b949e",inputPrompt:"#58a6ff",codeBg:"#0d1117",codeBorder:"#30363d",userMsgBg:"#21262d",userMsgBorder:"#21262d",userMsgText:"#c9d1d9",diffRemovalBg:"#3c1e1e",diffAdditionBg:"#11381e",diffRemovalText:"#f85149",diffAdditionText:"#3fb950",diffRemovalHighlightColor:"#ff7b72",diffRemovalHighlightBg:"#701c1c",diffAdditionHighlightColor:"#56d364",diffAdditionHighlightBg:"#116329",diffRemovalNum:"#f85149",diffAdditionNum:"#3fb950",diffRemovalPrefix:"#f85149",diffAdditionPrefix:"#3fb950",primary:"#c9d1d9",secondary:"#58a6ff",accent:"#bc8cff",success:"#3fb950",warning:"#d29922",danger:"#f85149",info:"#58a6ff",statusOn:"#58a6ff",statusOff:"#8b949e",logoTextAnsi:"\x1B[1;36m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#2ea043","#56d364"]},"GitHub Light":{id:"GitHub Light",name:"GitHub Light",text:"#24292f",textMuted:"#57606a",textDim:"#6e7781",textInverted:"#ffffff",border:"#d0d7de",borderMuted:"#d0d7de",borderDim:"#e1e4e8",bg:void 0,cardBg:"#f6f8fa",highlightBg:"#eaeef2",activeBg:"#d0d7de",inputBg:"#eaeef2",inputBorder:"#eaeef2",inputText:"#24292f",inputPlaceholder:"#57606a",inputPrompt:"#0969da",codeBg:"#ffffff",codeBorder:"#d0d7de",userMsgBg:"#eaeef2",userMsgBorder:"#eaeef2",userMsgText:"#24292f",diffRemovalBg:"#ffebe9",diffAdditionBg:"#e6ffec",diffRemovalText:"#cf222e",diffAdditionText:"#1a7f37",diffRemovalHighlightColor:"#82071e",diffRemovalHighlightBg:"#ffc1c0",diffAdditionHighlightColor:"#116329",diffAdditionHighlightBg:"#acf2bd",diffRemovalNum:"#cf222e",diffAdditionNum:"#1a7f37",diffRemovalPrefix:"#cf222e",diffAdditionPrefix:"#1a7f37",primary:"#24292f",secondary:"#0969da",accent:"#8250df",success:"#1a7f37",warning:"#9a6700",danger:"#cf222e",info:"#0969da",statusOn:"#0969da",statusOff:"#57606a",logoTextAnsi:"\x1B[1;34m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#1a7f37","#2da44e"]},"Transparent Dark":{id:"Transparent Dark",name:"Transparent Dark",text:"white",textMuted:"gray",textDim:"grey",textInverted:"black",border:"gray",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:void 0,highlightBg:"#2a2a2a",activeBg:"#3a3a3a",inputBg:"#555555",inputBorder:"#555555",inputText:"white",inputPlaceholder:"#cccccc",inputPrompt:"white",codeBg:void 0,codeBorder:"gray",userMsgBg:"#555555",userMsgBorder:"#555555",userMsgText:"white",diffRemovalBg:void 0,diffAdditionBg:void 0,diffRemovalText:"#ff6666",diffAdditionText:"#66ff66",diffRemovalHighlightColor:"#ff3333",diffRemovalHighlightBg:void 0,diffAdditionHighlightColor:"#33ff66",diffAdditionHighlightBg:void 0,diffRemovalNum:"#ff6666",diffAdditionNum:"#66ff66",diffRemovalPrefix:"#ff4d4d",diffAdditionPrefix:"#4dff88",primary:"white",secondary:"cyan",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"white",statusOff:"gray",logoTextAnsi:"\x1B[1;37m",logoBodyAnsi:"\x1B[37m",logoMutedAnsi:"\x1B[90m",logoGradient:["#0077ff","#ff00ff"]},"Transparent Light":{id:"Transparent Light",name:"Transparent Light",text:"black",textMuted:"gray",textDim:"grey",textInverted:"white",border:"gray",borderMuted:"gray",borderDim:"grey",bg:void 0,cardBg:void 0,highlightBg:"#d4d4d4",activeBg:"#c0c0c0",inputBg:"#d0d0d0",inputBorder:"#d0d0d0",inputText:"black",inputPlaceholder:"#555555",inputPrompt:"black",codeBg:void 0,codeBorder:"gray",userMsgBg:"#d0d0d0",userMsgBorder:"#d0d0d0",userMsgText:"black",diffRemovalBg:void 0,diffAdditionBg:void 0,diffRemovalText:"#c02020",diffAdditionText:"#188028",diffRemovalHighlightColor:"#800000",diffRemovalHighlightBg:void 0,diffAdditionHighlightColor:"#004000",diffAdditionHighlightBg:void 0,diffRemovalNum:"#c02020",diffAdditionNum:"#188028",diffRemovalPrefix:"#d01010",diffAdditionPrefix:"#109020",primary:"black",secondary:"blue",accent:"magenta",success:"green",warning:"yellow",danger:"red",info:"blue",statusOn:"black",statusOff:"gray",logoTextAnsi:"\x1B[1;30m",logoBodyAnsi:"\x1B[30m",logoMutedAnsi:"\x1B[38;5;244m",logoGradient:["#0077ff","#ff00ff"]},"Synthwave 84":{id:"Synthwave 84",name:"Synthwave 84",text:"#fdfdfd",textMuted:"#a08eb7",textDim:"#705c8a",textInverted:"#1a1025",textExclusive:"#e3dcf0",textMutedExclusive:"#b9abc9",border:"#fc28a8",borderMuted:"#a21568",borderDim:"#5c0a3a",bg:void 0,cardBg:"#261b38",highlightBg:"#35254d",activeBg:"#4c3570",inputBg:"#35254d",inputBorder:"#35254d",inputText:"#fdfdfd",inputPlaceholder:"#a08eb7",inputPrompt:"#03e8fc",codeBg:"#1e142b",codeBorder:"#a21568",userMsgBg:"#35254d",userMsgBorder:"#35254d",userMsgText:"#fdfdfd",diffRemovalBg:"#471434",diffAdditionBg:"#144743",diffRemovalText:"#ff4081",diffAdditionText:"#00e5ff",diffRemovalHighlightColor:"#ff79a1",diffRemovalHighlightBg:"#6b1e4e",diffAdditionHighlightColor:"#66f5ff",diffAdditionHighlightBg:"#1e6b65",diffRemovalNum:"#ff4081",diffAdditionNum:"#00e5ff",diffRemovalPrefix:"#ff79a1",diffAdditionPrefix:"#66f5ff",primary:"#fdfdfd",secondary:"#03e8fc",accent:"#fc28a8",success:"#00e5ff",warning:"#ffc107",danger:"#ff4081",info:"#b388ff",statusOn:"#03e8fc",statusOff:"#a08eb7",logoTextAnsi:"\x1B[1;35m",logoBodyAnsi:"\x1B[35m",logoMutedAnsi:"\x1B[90m",logoGradient:["#fc28a8","#03e8fc"]},"Forest Sprite":{id:"Forest Sprite",name:"Forest Sprite",text:"#d6e6d1",textMuted:"#95b38d",textDim:"#628059",textInverted:"#161c14",textExclusive:"#eaf2e8",textMutedExclusive:"#a9c7a2",border:"#74a862",borderMuted:"#477038",borderDim:"#2b4720",bg:void 0,cardBg:"#1f291c",highlightBg:"#2a3826",activeBg:"#3a4d35",inputBg:"#2a3826",inputBorder:"#2a3826",inputText:"#d6e6d1",inputPlaceholder:"#95b38d",inputPrompt:"#8feb73",codeBg:"#161e14",codeBorder:"#477038",userMsgBg:"#2a3826",userMsgBorder:"#2a3826",userMsgText:"#d6e6d1",diffRemovalBg:"#3b231c",diffAdditionBg:"#203b1c",diffRemovalText:"#db6242",diffAdditionText:"#59cc3f",diffRemovalHighlightColor:"#f0896c",diffRemovalHighlightBg:"#5c362a",diffAdditionHighlightColor:"#80e368",diffAdditionHighlightBg:"#305929",diffRemovalNum:"#db6242",diffAdditionNum:"#59cc3f",diffRemovalPrefix:"#f0896c",diffAdditionPrefix:"#80e368",primary:"#d6e6d1",secondary:"#8feb73",accent:"#e69835",success:"#59cc3f",warning:"#e69835",danger:"#db6242",info:"#73b4eb",statusOn:"#8feb73",statusOff:"#95b38d",logoTextAnsi:"\x1B[1;32m",logoBodyAnsi:"\x1B[32m",logoMutedAnsi:"\x1B[90m",logoGradient:["#8feb73","#e69835"]}};var Ws=null;var tl=(e="Dark")=>{let n;e==="Mystery"||e==="Chaos"?(Ws||(Ws=el[Math.floor(Math.random()*el.length)]),n={...Ws,id:"Mystery"}):(Ws=null,hs[e]?n=hs[e]:e==="GitHub"?n=hs["GitHub Dark"]:e==="Transparent"?n=hs["Transparent Dark"]:n=hs.Dark);let t=n.codeText||n.secondary||n.info||n.logoGradient&&n.logoGradient[0]||"cyan";return{...n,codeText:t}};var qc=()=>process.env.TERM_PROGRAM==="vscode"?"vscode":process.env.WT_SESSION?"wt":"default",eg=(e=2)=>{let n=qc();return n==="wt"?" ".repeat(Math.max(1,e-1)):" ".repeat(e)},tg=(e="...",n="Loading...",t="Dark")=>{let o=ci[Math.floor(Math.random()*ci.length)],s=tl(t),r=s.logoTextAnsi,a=s.logoBodyAnsi,i=s.logoMutedAnsi,p="\x1B[0m",d=[" \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 "],c=s.logoGradient||["#0077ff","#ff00ff"],l=Hc(c).multiline(d.join(`
|
|
900
903
|
`)).split(`
|
|
901
904
|
`),f=u=>`${i}${u}${p}`;return`${l[0]}
|
|
902
905
|
${l[1]} ${r}Selected Provider: ${n}${p}
|
|
@@ -906,37 +909,37 @@ ${l[4]}
|
|
|
906
909
|
${l[5]} ${a}See /help for additional commands.${p}
|
|
907
910
|
${l[6]} ${f(o)}
|
|
908
911
|
${l[7]}
|
|
909
|
-
`};import{WebSocket as js}from"ws";var
|
|
912
|
+
`};import{WebSocket as js}from"ws";var Xt=null,Bo=!1,zc="ws://localhost:56832",di=[],Wo=null,ui=null,nl="2.0.0",sg=e=>{nl=e,ol()},fi=e=>{ui=e},ol=()=>{if(Xt||Bo)return;Bo=!0;let e=new js(zc);e.on("open",()=>{for(Xt=e,Bo=!1,Xt.send(JSON.stringify({command:"version",version:nl,pid:process.pid,ppid:process.ppid}));di.length>0;)Xt.send(JSON.stringify(di.shift()))}),e.on("message",n=>{try{let t=JSON.parse(n.toString());t.command==="contextResponse"&&Wo?(Wo(t.data),Wo=null):t.command==="securityResponse"&&ui&&ui(t.result)}catch{}}),e.on("error",()=>{Bo=!1,Xt=null}),e.on("close",()=>{Bo=!1,Xt=null})},Gs=e=>{Xt&&Xt.readyState===js.OPEN?Xt.send(JSON.stringify(e)):(di.push(e),Bo||ol())},Hs=()=>Xt!==null&&Xt.readyState===js.OPEN,rg=e=>{Gs({command:"status",status:e})},xo=()=>new Promise(e=>{if(!Xt||Xt.readyState!==js.OPEN){e({cursor_line:0,selected:0,manual_edits:"",file_focused:"none",opened_editors:[]});return}Wo=e,Xt.send(JSON.stringify({command:"requestContext"})),setTimeout(()=>{Wo===e&&(e({cursor_line:0,selected:0,manual_edits:"",file_focused:"none",opened_editors:[]}),Wo=null)},1e3)}),sl=e=>{Gs({command:"open",filePath:e})},pi=(e,n,t)=>{Gs({command:"showDiff",filePath:e,originalContent:n,modifiedContent:t})},rl=(e,n)=>{Gs({command:"closeDiff",filePath:e,result:n})};import il from"path";import Kc from"fs";var Vc=e=>{try{return Kc.readdirSync(e,{withFileTypes:!0})}catch{return[]}},mi=(e,n,t=1,o=Vc,s=[],r=null)=>{let a=r||o(e),i=" ".repeat(t-1);if(a.length>100)return`${i}${il.basename(e)}/ (>100 files)
|
|
910
913
|
`;let p="",d=s,c=a.filter(m=>!d.includes(m.name)&&!m.name.startsWith(".")),l=a.filter(m=>d.includes(m.name)||m.name.startsWith(".")).map(m=>m.name).sort();l.length>0&&(p+=`${i}[ignored: ${l.map(m=>m+"/").join(", ")}]
|
|
911
914
|
`);let f=c.filter(m=>m.isDirectory()).sort((m,g)=>m.name.localeCompare(g.name)),u=c.filter(m=>!m.isDirectory()).map(m=>m.name).sort();for(let m of f){let g=il.join(e,m.name);if(t>n)p+=`${i}${m.name}/ (max depth)
|
|
912
915
|
`;else{let y=o(g);y.length>80?p+=`${i}${m.name}/ (>80 files)
|
|
913
916
|
`:(p+=`${i}${m.name}/
|
|
914
917
|
`,p+=mi(g,n,t+1,o,s,y))}}return u.length>0&&(p+=`${i}${u.join("; ")}
|
|
915
|
-
`),p};import hi from"path";import
|
|
918
|
+
`),p};import hi from"path";import Yc from"fs";var Xc=e=>{try{return Yc.readdirSync(e,{withFileTypes:!0})}catch{return[]}},gi=(e,n,t="",o=1,s=Xc,r=[])=>{let a=s(e),i=hi.sep;if(a.length>100)return`${t}\u2514\u2500\u2500 ${hi.basename(e)}${i} ...100+ files...
|
|
916
919
|
`;let p="",d=r,c=a.filter(u=>!d.includes(u.name)&&!u.name.startsWith(".")),l=a.filter(u=>d.includes(u.name)||u.name.startsWith(".")).map(u=>u.name).sort();c.sort((u,m)=>u.isDirectory()&&!m.isDirectory()?-1:!u.isDirectory()&&m.isDirectory()?1:u.name.localeCompare(m.name));let f=[...c.map(u=>({name:u.name,isDir:u.isDirectory()})),...l.map(u=>({name:u,isDir:!0,isCollapsed:!0}))];return f.forEach((u,m)=>{let g=m===f.length-1,y=hi.join(e,u.name),h=g?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",b=t+(g?" ":"\u2502 ");if(u.isCollapsed){p+=`${t}${h}${u.name}${i}...
|
|
917
920
|
`;return}u.isDir?o>n?p+=`${t}${h}${u.name}${i} ...depth exceeded...
|
|
918
921
|
`:s(y).length>80?p+=`${t}${h}${u.name}${i} ...80+ files...
|
|
919
922
|
`:(p+=`${t}${h}${u.name}${i}
|
|
920
923
|
`,p+=gi(y,n,b,o+1,s,r)):p+=`${t}${h}${u.name}
|
|
921
|
-
`}),p};import"@google/genai";var
|
|
922
|
-
`);m=$.pop();for(let R of $){let k=R.trim();if(!k||!k.startsWith("data: "))continue;let S=!1;if(k==="data: [DONE]")S=!0;else try{let _=JSON.parse(k.substring(6)),E=_.choices?.[0]?.delta,x=_.usage;if(_.choices?.[0]?.finish_reason&&(S=!0),x&&(y={totalTokenCount:x.total_tokens||x.prompt_tokens+x.completion_tokens,promptTokenCount:x.prompt_tokens||0,candidatesTokenCount:x.completion_tokens||0,cachedContentTokenCount:x.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:x.completion_tokens_details?.reasoning_tokens||0},b=!0),E){let C=E.reasoning_content||null;C&&(g.push({text:C,thought:!0}),b=!0),E.content&&(g.push({text:E.content}),b=!0)}}catch{}if((S||Date.now()-h>=150)&&b&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1),S)break}Date.now()-h>=150&&b&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1)}};var Ks=async function*(e,n,t,o,s,r,a,i,p=1,d=null){let c=[];o&&c.push({role:"system",content:o});for(let S of t){let _=S.role==="user"?"user":"assistant",E=[];if(Array.isArray(S.parts)){for(let x of S.parts)if(x.text)E.push({type:"text",text:x.text});else if(x.inlineData&&a){let C=x.inlineData.mimeType,M=x.inlineData.data;C.startsWith("image/")&&E.push({type:"image_url",image_url:`data:${C};base64,${M}`})}}else{let x=S.text||"";x&&E.push({type:"text",text:x})}E.length>0&&c.push({role:_,content:E.length===1&&E[0].type==="text"?E[0].text:E})}let l={Fast:"none",Low:"none",Medium:"high",Standard:"high",High:"high",xHigh:"high"},f=`${e.slice(-5)}${d||""}${s}${n}`,u=await qs(f),m={model:n,messages:c,stream:!0,temperature:p,prompt_cache_key:u};s&&s!=="Fast"&&vo(n)&&(m.reasoning_effort=l[s]||"high");let g=await
|
|
923
|
-
`);b=E.pop();for(let x of E){let C=x.trim();if(!C||!C.startsWith("data: "))continue;let M=!1;if(C==="data: [DONE]")M=!0;else try{let v=JSON.parse(C.substring(6)),L=v.choices?.[0]?.delta,U=v.usage;if(v.choices?.[0]?.finish_reason&&(M=!0),U&&(T={totalTokenCount:U.total_tokens||(U.prompt_tokens||0)+(U.completion_tokens||0),promptTokenCount:U.prompt_tokens||0,candidatesTokenCount:U.completion_tokens||0,cachedContentTokenCount:U.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:U.completion_tokens_details?.reasoning_tokens||0},R=!0),L){let j=L.thinking||L.reasoning_content||L.reasoning,ee=k(j);ee&&(w.push({text:ee,thought:!0}),R=!0);let X=L.content||(!L.thinking&&!L.reasoning_content&&!L.reasoning?L.text:null);if(X)if(Array.isArray(X))for(let F of X)if(typeof F=="object"&&F!==null){let W=F.type==="thinking"||F.type==="reasoning"||!!F.thought,ne=k(F);ne&&(w.push({text:ne,...W?{thought:!0}:{}}),R=!0)}else{let W=k(F);W&&(w.push({text:W}),R=!0)}else if(typeof X=="object"&&X!==null){let F=X.type==="thinking"||X.type==="reasoning"||!!X.thought,W=k(X);W&&(w.push({text:W,...F?{thought:!0}:{}}),R=!0)}else{let F=k(X);F&&(w.push({text:F}),R=!0)}}}catch{}if((M||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),M)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};var
|
|
924
|
-
`);B=He.pop();let
|
|
924
|
+
`}),p};import"@google/genai";var lt=async(e,n,t=5,o=1e3)=>{let s=n?.signal;for(let a=0;a<t;a++){if(s?.aborted)throw new DOMException("The user aborted a request.","AbortError");try{let i=await fetch(e,n);if(typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),i.ok||i.status!==429&&i.status<500)return i}catch(i){if(typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),i.name==="AbortError"||s?.aborted||a===t-1)throw i}s?await new Promise((i,p)=>{let d=setTimeout(()=>{s.removeEventListener("abort",c),i()},Math.min(24e3,o*Math.pow(2,a))),c=()=>{clearTimeout(d),p(new DOMException("The user aborted a request.","AbortError"))};s.addEventListener("abort",c)}):await new Promise(i=>setTimeout(i,Math.min(24e3,o*Math.pow(2,a))))}if(s?.aborted)throw new DOMException("The user aborted a request.","AbortError");let r=await fetch(e,n);return typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),r};async function qs(e){let n=new TextEncoder().encode(e),t=await crypto.subtle.digest("SHA-256",n);return[...new Uint8Array(t).slice(0,16)].map(o=>o.toString(16).padStart(2,"0")).join("")}var jn=e=>typeof e!="string"?e:e.replace(/<\|channel>thought/gi,"<think>").replace(/<channel\|>/gi,"</think>");var zs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let w of t){let T=w.role==="user"?"user":"assistant",$=[];if(Array.isArray(w.parts)){for(let R of w.parts)if(R.text)$.push({type:"text",text:R.text});else if((R.inlineData||R.inline_data)&&a){let k=R.inlineData||R.inline_data,S=k.mimeType||k.mime_type||"image/jpeg",_=k.data;S.startsWith("image/")&&$.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let R=w.text||"";R&&$.push({type:"text",text:R})}d.push({role:T,content:$.length===1&&$[0].type==="text"?$[0].text:$})}let c={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};if(s!=="Fast"){let w={Low:"high",Medium:"high",Standard:"high",High:"max",xHigh:"max"};c.reasoning_effort=w[s]||"high",c.extra_body={thinking:{type:"enabled"}}}else c.extra_body={thinking:{type:"disabled"}};let l=await lt("https://api.deepseek.com/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(c),signal:i});if(!l.ok){let w=await l.json().catch(()=>({}));throw new Error(`DeepSeek Error (${l.status}): ${w.error?.message||l.statusText}`)}let f=l.body.getReader(),u=new TextDecoder,m="",g=[],y=null,h=Date.now(),b=!1;for(;;){let{done:w,value:T}=await f.read();if(w){b&&(g.length>0||y)&&(yield{candidates:g.length>0?[{content:{parts:g}}]:[],usageMetadata:y});break}m+=u.decode(T,{stream:!0});let $=m.split(`
|
|
925
|
+
`);m=$.pop();for(let R of $){let k=R.trim();if(!k||!k.startsWith("data: "))continue;let S=!1;if(k==="data: [DONE]")S=!0;else try{let _=JSON.parse(k.substring(6)),E=_.choices?.[0]?.delta,x=_.usage;if(_.choices?.[0]?.finish_reason&&(S=!0),x&&(y={totalTokenCount:x.total_tokens||x.prompt_tokens+x.completion_tokens,promptTokenCount:x.prompt_tokens||0,candidatesTokenCount:x.completion_tokens||0,cachedContentTokenCount:x.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:x.completion_tokens_details?.reasoning_tokens||0},b=!0),E){let C=E.reasoning_content||null;C&&(g.push({text:C,thought:!0}),b=!0),E.content&&(g.push({text:E.content}),b=!0)}}catch{}if((S||Date.now()-h>=150)&&b&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1),S)break}Date.now()-h>=150&&b&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1)}};var Ks=async function*(e,n,t,o,s,r,a,i,p=1,d=null){let c=[];o&&c.push({role:"system",content:o});for(let S of t){let _=S.role==="user"?"user":"assistant",E=[];if(Array.isArray(S.parts)){for(let x of S.parts)if(x.text)E.push({type:"text",text:x.text});else if(x.inlineData&&a){let C=x.inlineData.mimeType,M=x.inlineData.data;C.startsWith("image/")&&E.push({type:"image_url",image_url:`data:${C};base64,${M}`})}}else{let x=S.text||"";x&&E.push({type:"text",text:x})}E.length>0&&c.push({role:_,content:E.length===1&&E[0].type==="text"?E[0].text:E})}let l={Fast:"none",Low:"none",Medium:"high",Standard:"high",High:"high",xHigh:"high"},f=`${e.slice(-5)}${d||""}${s}${n}`,u=await qs(f),m={model:n,messages:c,stream:!0,temperature:p,prompt_cache_key:u};s&&s!=="Fast"&&vo(n)&&(m.reasoning_effort=l[s]||"high");let g=await lt("https://api.mistral.ai/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(m),signal:i});if(!g.ok){let S=await g.text().catch(()=>""),_=g.statusText;try{let E=JSON.parse(S);_=E.error?.message||E.message||JSON.stringify(E.detail||E)}catch{S&&(_=S)}throw new Error(`Mistral Error (${g.status}): ${JSON.stringify(_)}`)}let y=g.body.getReader(),h=new TextDecoder,b="",w=[],T=null,$=Date.now(),R=!1,k=S=>S?typeof S=="string"?jn(S):Array.isArray(S)?S.map(k).filter(Boolean).join(""):typeof S=="object"&&S!==null?typeof S.text=="string"?jn(S.text):typeof S.content=="string"?jn(S.content):typeof S.thinking=="string"?jn(S.thinking):typeof S.reasoning_content=="string"?jn(S.reasoning_content):typeof S.reasoning=="string"?jn(S.reasoning):typeof S.value=="string"?jn(S.value):S.text?k(S.text):S.content?k(S.content):S.thinking?k(S.thinking):S.reasoning_content?k(S.reasoning_content):S.reasoning?k(S.reasoning):S.value?k(S.value):"":jn(String(S)):"";for(;;){let{done:S,value:_}=await y.read();if(S){R&&(w.length>0||T)&&(yield{candidates:w.length>0?[{content:{parts:w}}]:[],usageMetadata:T});break}b+=h.decode(_,{stream:!0});let E=b.split(`
|
|
926
|
+
`);b=E.pop();for(let x of E){let C=x.trim();if(!C||!C.startsWith("data: "))continue;let M=!1;if(C==="data: [DONE]")M=!0;else try{let v=JSON.parse(C.substring(6)),L=v.choices?.[0]?.delta,U=v.usage;if(v.choices?.[0]?.finish_reason&&(M=!0),U&&(T={totalTokenCount:U.total_tokens||(U.prompt_tokens||0)+(U.completion_tokens||0),promptTokenCount:U.prompt_tokens||0,candidatesTokenCount:U.completion_tokens||0,cachedContentTokenCount:U.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:U.completion_tokens_details?.reasoning_tokens||0},R=!0),L){let j=L.thinking||L.reasoning_content||L.reasoning,ee=k(j);ee&&(w.push({text:ee,thought:!0}),R=!0);let X=L.content||(!L.thinking&&!L.reasoning_content&&!L.reasoning?L.text:null);if(X)if(Array.isArray(X))for(let F of X)if(typeof F=="object"&&F!==null){let W=F.type==="thinking"||F.type==="reasoning"||!!F.thought,ne=k(F);ne&&(w.push({text:ne,...W?{thought:!0}:{}}),R=!0)}else{let W=k(F);W&&(w.push({text:W}),R=!0)}else if(typeof X=="object"&&X!==null){let F=X.type==="thinking"||X.type==="reasoning"||!!X.thought,W=k(X);W&&(w.push({text:W,...F?{thought:!0}:{}}),R=!0)}else{let F=k(X);F&&(w.push({text:F}),R=!0)}}}catch{}if((M||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),M)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};var Vs=async function*(e,n,t,o,s,r,a=!1,i,p=1){let d=[];o&&d.push({role:"system",content:o}),t.forEach(ne=>{let Me=ne.role==="model"?"assistant":"user",O=[];Array.isArray(ne.parts)&&ne.parts.forEach(B=>{if(B.text)O.push({type:"text",text:B.text});else if(B.inlineData&&a){let J=B.inlineData.mimeType,Q=B.inlineData.data;J.startsWith("image/")&&bt(n)&&O.push({type:"image_url",image_url:{url:`data:${J};base64,${Q}`}})}}),d.push({role:Me,content:O.length===1&&O[0].type==="text"?O[0].text:O})});let l={Fast:"Fast",Low:"Fast",Medium:"Standard",Standard:"Standard",High:"High",xHigh:"High"}[s]||"High",f=l!=="Fast",u=n.includes("kimi"),m=n.includes("gemma"),g=n.includes("deepseek"),y=n.includes("glm"),h=n.includes("mistral"),b=n.includes("minimax"),w=n.includes("gpt"),T=n.includes("qwen"),$=n.includes("nemotron"),R=n.includes("llama-3"),k=n.includes("seed"),S=n.includes("poolside"),_=n.includes("thinkingmachines")||n.includes("muse"),E=R,x=null,C={Fast:"low",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},M={Fast:"64",Low:"64",Medium:"4096",Standard:"4096",High:"16384",xHigh:"16384"},v={Fast:"none",Low:"minimal",Medium:"medium",Standard:"medium",High:"max",xHigh:"max"},L=b||g||S||_?16384:32768;L=process.env.NVIDIA_BASE_URL?1024:L,L=x?1024:L;let U={model:n,messages:d,max_tokens:L,stream:!0,stream_options:{include_usage:!0},temperature:p,...w&&{thinking:C[s]||"high"}};if(!(process.env.NVIDIA_BASE_URL||E||x))if(u)U.chat_template_kwargs={thinking:f};else if(m)U.chat_template_kwargs={enable_thinking:f};else if(g)if(f){let ne=l==="High"?"max":"high";U.chat_template_kwargs={thinking:!0,reasoning_effort:ne}}else U.chat_template_kwargs={thinking:!1};else y?U.chat_template_kwargs={enable_thinking:f,clear_thinking:!f}:h?U.reasoning_effort=f?"high":"none":b&&n.includes("minimax-m3")?U.chat_template_kwargs={thinking_mode:f?"enabled":"disabled"}:T?U.chat_template_kwargs={enable_thinking:f}:$?l==="High"?U.chat_template_kwargs={enable_thinking:!0}:l==="Standard"?U.chat_template_kwargs={enable_thinking:!0,medium_effort:!0}:U.chat_template_kwargs={enable_thinking:!1}:k?f&&(U.extra_body={thinking_budget:parseInt(M[l]??"4096")}):S?U.chat_template_kwargs={enable_thinking:f}:_&&(U.reasoning_effort=v[l]||"medium");let j=0,ee=6,X=!1,F=process.env.NVIDIA_BASE_URL||"https://integrate.api.nvidia.com/v1/chat/completions",W=process.env.NVIDIA_API_KEY&&process.env.NVIDIA_BASE_URL?process.env.NVIDIA_API_KEY:e;for(F.endsWith("/chat/completions")||(F=F.replace(/\/+$/,"")+"/chat/completions");j<ee;){j++;try{let ne=await lt(F,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${W}`},body:JSON.stringify(U),signal:i});if(!ne.ok){let Ze=await ne.text().catch(()=>""),ct=ne.statusText;try{let wt=JSON.parse(Ze);ct=wt.error?.message||wt.message||JSON.stringify(wt.detail||wt)}catch{Ze&&(ct=Ze)}let He=new Error(`NVIDIA API Error (${ne.status}): ${ct}`);throw He.status=ne.status,He}let Me=ne.body.getReader(),O=new TextDecoder,B="",J=[],Q=null,We=Date.now(),Ne=!1;for(;;){let{done:Ze,value:ct}=await Me.read();if(Ze){Ne&&(J.length>0||Q)&&(yield{candidates:J.length>0?[{content:{parts:J}}]:[],usageMetadata:Q},X=!0);break}B+=O.decode(ct,{stream:!0});let He=B.split(`
|
|
927
|
+
`);B=He.pop();let wt=!1;for(let To of He){let Tt=To.trim();if(Tt){if(Tt==="data: [DONE]"){wt=!0;break}if(Tt.startsWith("data: ")){let Ye;try{Ye=JSON.parse(Tt.substring(6))}catch{continue}if(Ye.error)throw new Error(`NVIDIA Stream Error: ${Ye.error.message||JSON.stringify(Ye.error)}`);try{let At=Ye.usage;At&&(Q={totalTokenCount:At.total_tokens||At.prompt_tokens+At.completion_tokens,promptTokenCount:At.prompt_tokens||0,candidatesTokenCount:At.completion_tokens||0,cachedContentTokenCount:At.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:(At.completion_tokens_details?.reasoning_tokens||0)+(At.completion_tokens_details?.thoughts_tokens||0)},Ne=!0);let qe=Ye.choices?.[0]?.delta?.reasoning||Ye.choices?.[0]?.delta?.reasoning_content||"",fe=Ye.choices?.[0]?.delta?.content||"";qe&&(J.push({text:qe,thought:!0}),Ne=!0),fe&&(J.push({text:fe}),Ne=!0)}catch{}}}}if((wt||Date.now()-We>=350)&&Ne&&(yield{candidates:J.length>0?[{content:{parts:[...J]}}]:[],usageMetadata:Q},X=!0,J=[],We=Date.now(),Ne=!1),wt)break}break}catch(ne){if(X||j>=ee)throw ne;await new Promise(Me=>setTimeout(Me,3500))}}},al=async function*(e,n){let t=[],o=null,s=!1,r=null,a=f=>{if(t.push(f),o){let u=o;o=null,u()}},i=n.split("/").pop();i=i.replace("llama-3.3","llama-3_3");let p=`https://api.ngc.nvidia.com/v2/predict/queues/models/qc69jvmznzxy/${i}`,d=!1,c=null,l=async()=>{try{let f=await fetch(p);if(f.ok){let u=await f.json();if(u&&u.queues&&u.queues[0]&&typeof u.queues[0].queueDepth=="number"){let m=u.queues[0].queueDepth;d||a({value:{type:"status",content:`Queue ${m||1}`},done:!1})}}}catch{}};process.env.NVIDIA_BASE_URL||(l(),c=setInterval(l,5e3)),(async()=>{try{let f=e[Symbol.asyncIterator]();for(;;){let{value:u,done:m}=await f.next();if(m)break;d=!0,c&&(clearInterval(c),c=null),a({value:u,done:!1})}s=!0,a(null)}catch(f){if(r=f,c&&(clearInterval(c),c=null),o){let u=o;o=null,u()}}})();try{for(;;){if(r)throw r;if(t.length>0){let f=t.shift();if(f===null&&s)break;yield f.value}else{if(s)break;await new Promise(f=>{o=f})}}}finally{c&&(clearInterval(c),c=null)}};var Ys=async function*(e,n,t,o,s,r,a,i,p=1,d=null){let c=[];o&&c.push({role:"system",content:[{type:"text",text:o}]});for(let x of t){let C=x.role==="user"?"user":"assistant",M=[];if(Array.isArray(x.parts)){for(let v of x.parts)if(v.text)M.push({type:"text",text:v.text});else if(v.inlineData&&a){let L=v.inlineData.mimeType,U=v.inlineData.data;L.startsWith("image/")?M.push({type:"image_url",image_url:{url:`data:${L};base64,${U}`}}):M.push({type:"file",file:{filename:v.filename||"file",file_data:`data:${L};base64,${U}`}})}}else{let v=x.text||"";v&&M.push({type:"text",text:v})}c.push({role:C,content:M.length===1&&M[0].type==="text"?M[0].text:M})}let l={Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},f=["free","nitro","floor","exact","extended","beta","online"],u=n,m=null;if(n.includes(":")){let x=n.split(":"),C=x[x.length-1].toLowerCase().trim();if(f.includes(C))u=n.trim();else{let M=x.pop().trim();u=x.join(":").trim(),M&&(m={order:[M],allow_fallbacks:!1})}}let g=`${e.slice(-5)}${d||""}${s}${u}${m?JSON.stringify(m):""}`,y=await qs(g),h={model:u,messages:c,stream:!0,temperature:p,cache_control:{type:"ephemeral"},session_id:y};m&&(h.provider=m);let b=l[s];b&&s!=="Fast"&&(h.reasoning_effort=b);let w=await lt("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","HTTP-Referer":"https://fluxflow-cli.onrender.com/","X-Title":"FluxFlow CLI","X-OpenRouter-Title":"FluxFlow CLI","X-Cache":"true","X-OpenRouter-Cache":"true"},body:JSON.stringify(h),signal:i});if(!w.ok){let x=await w.json().catch(()=>({})),C=x.error?.metadata?.raw||x.error?.message||(typeof x.error=="string"?x.error:"")||w.statusText||"Unknown error";throw new Error(`OpenRouter Error (${w.status}): ${C}`)}let T=w.body.getReader(),$=new TextDecoder,R="",k=[],S=null,_=Date.now(),E=!1;for(;;){let{done:x,value:C}=await T.read();if(x){E&&(k.length>0||S)&&(yield{candidates:k.length>0?[{content:{parts:k}}]:[],usageMetadata:S});break}R+=$.decode(C,{stream:!0});let M=R.split(`
|
|
925
928
|
`);R=M.pop();for(let v of M){let L=v.trim();if(!L||!L.startsWith("data: "))continue;let U=!1;if(L==="data: [DONE]")U=!0;else try{let j=JSON.parse(L.substring(6));if(j.error){let F=j.error.metadata?.raw||j.error.message||JSON.stringify(j.error);throw new Error(`OpenRouter Stream Error: ${F}`)}let ee=j.choices?.[0]?.delta,X=j.usage;if(j.choices?.[0]?.finish_reason&&(U=!0),X&&(S={totalTokenCount:X.total_tokens||(X.prompt_tokens||0)+(X.completion_tokens||0),promptTokenCount:X.prompt_tokens||0,candidatesTokenCount:X.completion_tokens||0,cachedContentTokenCount:X.prompt_tokens_details?.cached_tokens||X.prompt_tokens_details?.cache_read_input_tokens||X.cache_read_input_tokens||0,thoughtsTokenCount:X.completion_tokens_details?.reasoning_tokens||0},E=!0),ee){let F=ee.reasoning||(ee.reasoning_details?ee.reasoning_details.map(W=>W.text).join(""):null);F&&(k.push({text:F,thought:!0}),E=!0),ee.content&&(k.push({text:ee.content}),E=!0)}}catch(j){if(j.message&&j.message.startsWith("OpenRouter Stream Error:"))throw j}if((U||Date.now()-_>=150)&&E&&(yield{candidates:k.length>0?[{content:{parts:[...k]}}]:[],usageMetadata:S},k=[],_=Date.now(),E=!1),U)break}}};import{Ollama as Jc}from"ollama";var yi=async function*(e,n,t,o,s,r,a,i,p=1,d="Cloud"){let c=[];o&&c.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_="",E=[];if(Array.isArray(k.parts)){_=k.parts.map(x=>x.text||"").filter(Boolean).join(`
|
|
926
|
-
`);for(let x of k.parts){let C=x.inlineData||x.inline_data;C&&C.data&&E.push(C.data)}}else _=k.text||"";if(_||E.length>0){let x={role:S,content:_};E.length>0&&(x.images=E),c.push(x)}}let l=d==="Local"||!e||e==="LOCAL",u={host:l?process.env.OLLAMA_HOST||"http://127.0.0.1:11434":process.env.OLLAMA_HOST||"https://ollama.com"};!l&&e&&(u.headers={Authorization:"Bearer "+e});let m=new Jc(u),g=[],y=null,h=Date.now(),b=!1,w={Fast:!1,Low:"medium",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},T=w[s]!==void 0?w[s]:!0,$={model:n,messages:c,stream:!0,think:T,keep_alive:"10m",options:{temperature:p}},R=await m.chat($);for await(let k of R){if(i?.aborted)throw new DOMException("The user aborted a request.","AbortError");if(k.message?.thinking&&(g.push({text:k.message.thinking,thought:!0}),b=!0),k.message?.content&&(g.push({text:k.message.content}),b=!0),k.done){let S=k.prompt_cached_count||0;if(!S&&k.prompt_eval_count){let _=k.prompt_eval_duration||0;_>0&&_<5e7&&(S=k.prompt_eval_count)}y={totalTokenCount:(k.prompt_eval_count||0)+(k.eval_count||0),promptTokenCount:k.prompt_eval_count||0,candidatesTokenCount:k.eval_count||0,cachedContentTokenCount:S,thoughtsTokenCount:0},b=!0}(k.done||Date.now()-h>=150&&b)&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1)}b&&(g.length>0||y)&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y})};var Xs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"none",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p,max_completion_tokens:32768};c[s]&&(l.reasoning_effort=c[s]);let f=await
|
|
929
|
+
`);for(let x of k.parts){let C=x.inlineData||x.inline_data;C&&C.data&&E.push(C.data)}}else _=k.text||"";if(_||E.length>0){let x={role:S,content:_};E.length>0&&(x.images=E),c.push(x)}}let l=d==="Local"||!e||e==="LOCAL",u={host:l?process.env.OLLAMA_HOST||"http://127.0.0.1:11434":process.env.OLLAMA_HOST||"https://ollama.com"};!l&&e&&(u.headers={Authorization:"Bearer "+e});let m=new Jc(u),g=[],y=null,h=Date.now(),b=!1,w={Fast:!1,Low:"medium",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},T=w[s]!==void 0?w[s]:!0,$={model:n,messages:c,stream:!0,think:T,keep_alive:"10m",options:{temperature:p}},R=await m.chat($);for await(let k of R){if(i?.aborted)throw new DOMException("The user aborted a request.","AbortError");if(k.message?.thinking&&(g.push({text:k.message.thinking,thought:!0}),b=!0),k.message?.content&&(g.push({text:k.message.content}),b=!0),k.done){let S=k.prompt_cached_count||0;if(!S&&k.prompt_eval_count){let _=k.prompt_eval_duration||0;_>0&&_<5e7&&(S=k.prompt_eval_count)}y={totalTokenCount:(k.prompt_eval_count||0)+(k.eval_count||0),promptTokenCount:k.prompt_eval_count||0,candidatesTokenCount:k.eval_count||0,cachedContentTokenCount:S,thoughtsTokenCount:0},b=!0}(k.done||Date.now()-h>=150&&b)&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y},g=[],h=Date.now(),b=!1)}b&&(g.length>0||y)&&(yield{candidates:g.length>0?[{content:{parts:[...g]}}]:[],usageMetadata:y})};var Xs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"none",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p,max_completion_tokens:32768};c[s]&&(l.reasoning_effort=c[s]);let f=await lt("https://crof.ai/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l),signal:i});if(!f.ok){let T=await f.json().catch(()=>({}));throw new Error(`CrofAI Error (${f.status}): ${T.error?.message||f.statusText}`)}let u=f.body.getReader(),m=new TextDecoder,g="",y=[],h=null,b=Date.now(),w=!1;for(;;){let{done:T,value:$}=await u.read();if(T){w&&(y.length>0||h)&&(yield{candidates:y.length>0?[{content:{parts:y}}]:[],usageMetadata:h});break}g+=m.decode($,{stream:!0});let R=g.split(`
|
|
927
930
|
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(E.choices?.[0]?.finish_reason&&(_=!0),C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning_content||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var Js=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_="";if(Array.isArray(k.parts))for(let E of k.parts)E.text&&(_+=(_?`
|
|
928
|
-
`:"")+E.text);else _=k.text||"";d.push({role:S,content:_})}let c={Fast:"low",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l=n&&n.toLowerCase().includes("qwen3.8-27b"),f=n&&(n.toLowerCase().includes("qwen3.8-27b")||n.toLowerCase().includes("qwen3.6-35b-a3b-fp8")),u={model:n,messages:d.filter(k=>k.content&&String(k.content).trim().length>0),stream:!0,stream_options:{include_usage:!0},temperature:p};l||(u.stream_options={include_usage:!0},c[s]&&(u.reasoning_effort=c[s]));let m=await
|
|
929
|
-
`);h=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(L&&(w={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},$=!0),v){let U=v.reasoning||v.reasoning_content||null;if(U&&(b.push({text:U,thought:!0}),$=!0),v.content){let j=v.content;f&&R&&j.length>0&&(j="<think>"+j,R=!1),b.push({text:j}),$=!0}}}catch{}if((C||Date.now()-T>=150||w)&&$&&(yield{candidates:b.length>0?[{content:{parts:[...b]}}]:[],usageMetadata:w},b=[],T=Date.now(),$=!1),C)break}Date.now()-T>=150&&$&&(yield{candidates:b.length>0?[{content:{parts:[...b]}}]:[],usageMetadata:w},b=[],T=Date.now(),$=!1)}};var Qs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"none",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=await
|
|
930
|
-
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning||x.reasoning_content||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150||h)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var Zs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"minimal",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=await
|
|
931
|
-
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(E.choices?.[0]?.finish_reason&&(_=!0),C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning_content||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var er=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c=s==="Fast",l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c&&(l.chat_template_kwargs={enable_thinking:!1});let f=await
|
|
932
|
-
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(E.choices?.[0]?.finish_reason&&(_=!0),C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning_content||x.reasoning||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var tr=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_=[];if(Array.isArray(k.parts)){for(let E of k.parts)if(E.text)_.push({type:"text",text:E.text});else if(E.inlineData&&a){let x=E.inlineData.mimeType,C=E.inlineData.data;x.startsWith("image/")&&_.push({type:"image_url",image_url:{url:`data:${x};base64,${C}`}})}}else{let E=k.text||"";E&&_.push({type:"text",text:E})}d.push({role:S,content:_.length===1&&_[0].type==="text"?_[0].text:_})}let c={Fast:"none",Low:"low",Medium:"medium",High:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=process.env["9ROUTER_URL"]||process.env.NINEROUTER_URL||"http://127.0.0.1:20128/v1/chat/completions",u={"Content-Type":"application/json"},m=e&&e!=="LOCAL"?e:process.env["9ROUTER_API_KEY"]||"dummy-key";u.Authorization=`Bearer ${m}`;let g=await
|
|
933
|
-
`);b=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(M.choices?.[0]?.finish_reason&&(C=!0),L&&(T={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},R=!0),v){let U=v.reasoning_content||v.reasoning||null;!U&&Array.isArray(v.reasoning_details)&&v.reasoning_details.length>0&&(U=v.reasoning_details.map(j=>j.text||"").filter(Boolean).join("")),U&&(w.push({text:U,thought:!0}),R=!0),v.content&&(w.push({text:v.content}),R=!0)}}catch{}if((C||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),C)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};var nr=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_=[];if(Array.isArray(k.parts)){for(let E of k.parts)if(E.text)_.push({type:"text",text:E.text});else if(E.inlineData&&a){let x=E.inlineData.mimeType,C=E.inlineData.data;x.startsWith("image/")&&_.push({type:"image_url",image_url:{url:`data:${x};base64,${C}`}})}}else{let E=k.text||"";E&&_.push({type:"text",text:E})}d.push({role:S,content:_.length===1&&_[0].type==="text"?_[0].text:_})}let c={Fast:"low",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=process.env.EXPLABS_URL||process.env.EXPERIENTIALLABS_URL||"https://api.experientiallabs.ai/v1/chat/completions",u={"Content-Type":"application/json"},m=e||process.env.EXPLABS_API_KEY||process.env.EXPERIENTIALLABS_API_KEY||"";u.Authorization=`Bearer ${m}`;let g=await
|
|
934
|
-
`);b=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(L&&(T={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},R=!0),v){let U=v.reasoning_content||v.reasoning||null;!U&&Array.isArray(v.reasoning_details)&&v.reasoning_details.length>0&&(U=v.reasoning_details.map(j=>j.text||"").filter(Boolean).join("")),U&&(w.push({text:U,thought:!0}),R=!0),v.content&&(w.push({text:v.content}),R=!0)}}catch{}if((C||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),C)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};
|
|
935
|
-
`),g=u.toLowerCase().includes("tool:functions.")||u.toLowerCase().includes("agent:generalist.");a.push(u),g&&m?p=!0:p=!1}}}),d()}}return t.length},hd=e=>typeof e!="string"?e:e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),My=()=>{
|
|
936
|
-
`),R=o.slice(0,-1).filter(O=>O.text&&!O.text.includes("[TOOL RESULT]")&&!O.text.includes("OBSERVATION:")&&!O.text.startsWith("[TERMINAL_RECORD]")&&!O.isTerminalRecord&&!O.isMeta&&!O.isLogo&&!String(O.id).startsWith("welcome")&&!String(O.id).startsWith("logo")).slice(-14).map(O=>{let B=
|
|
931
|
+
`:"")+E.text);else _=k.text||"";d.push({role:S,content:_})}let c={Fast:"low",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l=n&&n.toLowerCase().includes("qwen3.8-27b"),f=n&&(n.toLowerCase().includes("qwen3.8-27b")||n.toLowerCase().includes("qwen3.6-35b-a3b-fp8")),u={model:n,messages:d.filter(k=>k.content&&String(k.content).trim().length>0),stream:!0,stream_options:{include_usage:!0},temperature:p};l||(u.stream_options={include_usage:!0},c[s]&&(u.reasoning_effort=c[s]));let m=await lt("https://model.inferx.net/endpoints/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u),signal:i});if(!m.ok){let k=await m.text().catch(()=>""),S="";try{let _=JSON.parse(k);S=_.error?.message||_.error?.detail||_.message||_.detail||(typeof _.error=="string"?_.error:"")||(k&&k!=="{}"?k:"")}catch{S=k}throw(!S||S==="{}")&&(S=m.statusText||"Unknown error"),new Error(`InferX Error (${m.status}): ${S}`)}let g=m.body.getReader(),y=new TextDecoder,h="",b=[],w=null,T=Date.now(),$=!1,R=!0;for(;;){let{done:k,value:S}=await g.read();if(k){$&&(b.length>0||w)&&(yield{candidates:b.length>0?[{content:{parts:b}}]:[],usageMetadata:w});break}h+=y.decode(S,{stream:!0});let _=h.split(`
|
|
932
|
+
`);h=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(L&&(w={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},$=!0),v){let U=v.reasoning||v.reasoning_content||null;if(U&&(b.push({text:U,thought:!0}),$=!0),v.content){let j=v.content;f&&R&&j.length>0&&(j="<think>"+j,R=!1),b.push({text:j}),$=!0}}}catch{}if((C||Date.now()-T>=150||w)&&$&&(yield{candidates:b.length>0?[{content:{parts:[...b]}}]:[],usageMetadata:w},b=[],T=Date.now(),$=!1),C)break}Date.now()-T>=150&&$&&(yield{candidates:b.length>0?[{content:{parts:[...b]}}]:[],usageMetadata:w},b=[],T=Date.now(),$=!1)}};var Qs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"none",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=await lt("https://token.sensenova.ai/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l),signal:i});if(!f.ok){let T=await f.json().catch(()=>({}));throw new Error(`SenseNova Error (${f.status}): ${T.error?.message||f.statusText}`)}let u=f.body.getReader(),m=new TextDecoder,g="",y=[],h=null,b=Date.now(),w=!1;for(;;){let{done:T,value:$}=await u.read();if(T){w&&(y.length>0||h)&&(yield{candidates:y.length>0?[{content:{parts:y}}]:[],usageMetadata:h});break}g+=m.decode($,{stream:!0});let R=g.split(`
|
|
933
|
+
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning||x.reasoning_content||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150||h)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var Zs=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c={Fast:"minimal",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=await lt("https://aihubmix.com/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l),signal:i});if(!f.ok){let T=await f.json().catch(()=>({}));throw new Error(`AIHubMix Error (${f.status}): ${T.error?.message||f.statusText}`)}let u=f.body.getReader(),m=new TextDecoder,g="",y=[],h=null,b=Date.now(),w=!1;for(;;){let{done:T,value:$}=await u.read();if(T){w&&(y.length>0||h)&&(yield{candidates:y.length>0?[{content:{parts:y}}]:[],usageMetadata:h});break}g+=m.decode($,{stream:!0});let R=g.split(`
|
|
934
|
+
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(E.choices?.[0]?.finish_reason&&(_=!0),C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning_content||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var er=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let T of t){let $=T.role==="user"?"user":"assistant",R=[];if(Array.isArray(T.parts)){for(let k of T.parts)if(k.text)R.push({type:"text",text:k.text});else if(k.inlineData&&a){let S=k.inlineData.mimeType,_=k.inlineData.data;S.startsWith("image/")&&R.push({type:"image_url",image_url:{url:`data:${S};base64,${_}`}})}}else{let k=T.text||"";k&&R.push({type:"text",text:k})}d.push({role:$,content:R.length===1&&R[0].type==="text"?R[0].text:R})}let c=s==="Fast",l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c&&(l.chat_template_kwargs={enable_thinking:!1});let f=await lt("https://inference.poolside.ai/v1/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l),signal:i});if(!f.ok){let T=await f.json().catch(()=>({}));throw new Error(`Poolside Error (${f.status}): ${T.error?.message||f.statusText}`)}let u=f.body.getReader(),m=new TextDecoder,g="",y=[],h=null,b=Date.now(),w=!1;for(;;){let{done:T,value:$}=await u.read();if(T){w&&(y.length>0||h)&&(yield{candidates:y.length>0?[{content:{parts:y}}]:[],usageMetadata:h});break}g+=m.decode($,{stream:!0});let R=g.split(`
|
|
935
|
+
`);g=R.pop();for(let k of R){let S=k.trim();if(!S||!S.startsWith("data: "))continue;let _=!1;if(S==="data: [DONE]")_=!0;else try{let E=JSON.parse(S.substring(6)),x=E.choices?.[0]?.delta,C=E.usage;if(E.choices?.[0]?.finish_reason&&(_=!0),C&&(h={totalTokenCount:C.total_tokens||(C.prompt_tokens||0)+(C.completion_tokens||0),promptTokenCount:C.prompt_tokens||0,candidatesTokenCount:C.completion_tokens||0,cachedContentTokenCount:C.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:C.completion_tokens_details?.reasoning_tokens||C.reasoning_tokens||0},w=!0),x){let M=x.reasoning_content||x.reasoning||null;M&&(y.push({text:M,thought:!0}),w=!0),x.content&&(y.push({text:x.content}),w=!0)}}catch{}if((_||Date.now()-b>=150)&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1),_)break}Date.now()-b>=150&&w&&(yield{candidates:y.length>0?[{content:{parts:[...y]}}]:[],usageMetadata:h},y=[],b=Date.now(),w=!1)}};var tr=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_=[];if(Array.isArray(k.parts)){for(let E of k.parts)if(E.text)_.push({type:"text",text:E.text});else if(E.inlineData&&a){let x=E.inlineData.mimeType,C=E.inlineData.data;x.startsWith("image/")&&_.push({type:"image_url",image_url:{url:`data:${x};base64,${C}`}})}}else{let E=k.text||"";E&&_.push({type:"text",text:E})}d.push({role:S,content:_.length===1&&_[0].type==="text"?_[0].text:_})}let c={Fast:"none",Low:"low",Medium:"medium",High:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=process.env["9ROUTER_URL"]||process.env.NINEROUTER_URL||"http://127.0.0.1:20128/v1/chat/completions",u={"Content-Type":"application/json"},m=e&&e!=="LOCAL"?e:process.env["9ROUTER_API_KEY"]||"dummy-key";u.Authorization=`Bearer ${m}`;let g=await lt(f,{method:"POST",headers:u,body:JSON.stringify(l),signal:i});if(!g.ok){let k=await g.json().catch(()=>({}));throw new Error(`9router Error (${g.status}): ${k.error?.message||g.statusText}`)}let y=g.body.getReader(),h=new TextDecoder,b="",w=[],T=null,$=Date.now(),R=!1;for(;;){let{done:k,value:S}=await y.read();if(k){R&&(w.length>0||T)&&(yield{candidates:w.length>0?[{content:{parts:w}}]:[],usageMetadata:T});break}b+=h.decode(S,{stream:!0});let _=b.split(`
|
|
936
|
+
`);b=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(M.choices?.[0]?.finish_reason&&(C=!0),L&&(T={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},R=!0),v){let U=v.reasoning_content||v.reasoning||null;!U&&Array.isArray(v.reasoning_details)&&v.reasoning_details.length>0&&(U=v.reasoning_details.map(j=>j.text||"").filter(Boolean).join("")),U&&(w.push({text:U,thought:!0}),R=!0),v.content&&(w.push({text:v.content}),R=!0)}}catch{}if((C||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),C)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};var nr=async function*(e,n,t,o,s,r,a,i,p=1){let d=[];o&&d.push({role:"system",content:o});for(let k of t){let S=k.role==="user"?"user":"assistant",_=[];if(Array.isArray(k.parts)){for(let E of k.parts)if(E.text)_.push({type:"text",text:E.text});else if(E.inlineData&&a){let x=E.inlineData.mimeType,C=E.inlineData.data;x.startsWith("image/")&&_.push({type:"image_url",image_url:{url:`data:${x};base64,${C}`}})}}else{let E=k.text||"";E&&_.push({type:"text",text:E})}d.push({role:S,content:_.length===1&&_[0].type==="text"?_[0].text:_})}let c={Fast:"low",Low:"low",Medium:"medium",Standard:"medium",High:"high",xHigh:"high"},l={model:n,messages:d,stream:!0,stream_options:{include_usage:!0},temperature:p};c[s]&&(l.reasoning_effort=c[s]);let f=process.env.EXPLABS_URL||process.env.EXPERIENTIALLABS_URL||"https://api.experientiallabs.ai/v1/chat/completions",u={"Content-Type":"application/json"},m=e||process.env.EXPLABS_API_KEY||process.env.EXPERIENTIALLABS_API_KEY||"";u.Authorization=`Bearer ${m}`;let g=await lt(f,{method:"POST",headers:u,body:JSON.stringify(l),signal:i});if(!g.ok){let k=await g.json().catch(()=>({}));throw new Error(`Experiential Labs Error (${g.status}): ${k.error?.message||k.message||g.statusText}`)}let y=g.body.getReader(),h=new TextDecoder,b="",w=[],T=null,$=Date.now(),R=!1;for(;;){let{done:k,value:S}=await y.read();if(k){R&&(w.length>0||T)&&(yield{candidates:w.length>0?[{content:{parts:w}}]:[],usageMetadata:T});break}b+=h.decode(S,{stream:!0});let _=b.split(`
|
|
937
|
+
`);b=_.pop();for(let E of _){let x=E.trim();if(!x||!x.startsWith("data: "))continue;let C=!1;if(x==="data: [DONE]")C=!0;else try{let M=JSON.parse(x.substring(6)),v=M.choices?.[0]?.delta,L=M.usage;if(L&&(T={totalTokenCount:L.total_tokens||(L.prompt_tokens||0)+(L.completion_tokens||0),promptTokenCount:L.prompt_tokens||0,candidatesTokenCount:L.completion_tokens||0,cachedContentTokenCount:L.prompt_tokens_details?.cached_tokens||0,thoughtsTokenCount:L.completion_tokens_details?.reasoning_tokens||L.reasoning_tokens||0},R=!0),v){let U=v.reasoning_content||v.reasoning||null;!U&&Array.isArray(v.reasoning_details)&&v.reasoning_details.length>0&&(U=v.reasoning_details.map(j=>j.text||"").filter(Boolean).join("")),U&&(w.push({text:U,thought:!0}),R=!0),v.content&&(w.push({text:v.content}),R=!0)}}catch{}if((C||Date.now()-$>=150)&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1),C)break}Date.now()-$>=150&&R&&(yield{candidates:w.length>0?[{content:{parts:[...w]}}]:[],usageMetadata:T},w=[],$=Date.now(),R=!1)}};Jt.config({path:"./.env",override:!0,quiet:!0});Jt.config({path:`${Ct}/.env`,override:!0,quiet:!0});Jt.config({path:"./agents.env",override:!0,quiet:!0});Jt.config({path:"./.agents.env",override:!0,quiet:!0});Jt.config({path:`${Ct}/agents.env`,override:!0,quiet:!0});Jt.config({path:`${Ct}/.agents.env`,override:!0,quiet:!0});Jt.config({path:"./fluxflow.env",override:!0,quiet:!0});Jt.config({path:"./.fluxflow.env",override:!0,quiet:!0});Jt.config({path:`${Ct}/fluxflow.env`,override:!0,quiet:!0});Jt.config({path:`${Ct}/.fluxflow.env`,override:!0,quiet:!0});Jt.config({path:`${Ct}/.env.agents`,override:!0,quiet:!0});Jt.config({path:`${Ct}/.env.fluxflow`,override:!0,quiet:!0});Jt.config({path:"./.env.agents",override:!0,quiet:!0});Jt.config({path:"./.env.fluxflow",override:!0,quiet:!0});var Qc=/```[\s\S]*?```/g,Zc=/```[\s\S]*$/g,ed=/`[^`]+`/g,td=/^\|.*\|$/gm,nd=/^[^\w]+|[^\w]+$/g,od=/[^a-z0-9]/gi,gs=/\[\s*tool:functions\.([a-z0-9_]+)\s*\(/gi,sd=/\[\s*(?:tool:functions\.|agent:generalist\.)([a-z0-9_]+)\s*\(/gi,rd=/(?:path|targetFile|TargetFile|directory|keyword|id|taskId|title|task)\s*=\s*\\?["']?([^\\"' \),]+)/,bo=/["']/g,ll=/\\/g,id=/<\|channel>thought/gi,ad=/<channel\|>/gi,ld=e=>typeof e!="string"?e:e.replace(id,"<think>").replace(ad,"</think>"),Ay=/^\s*(?:<(think|thought|thoughts)[^>]*>|<\|channel>thought|\[(think|thought|thoughts)\])[\s\S]*?(?:<\/(think|thought|thoughts)>|<channel\|>|\[\/(think|thought|thoughts)\]|$)/i,cd=(e,n)=>{let t=!1;for(let o=0;o<n;o++)e[o]==="`"&&(t=!t);return t},dd=e=>{let n=/(?:<\/(think|thought|thoughts)>|<channel\|>|\[\/(think|thought|thoughts)\])/gi,t;for(;(t=n.exec(e))!==null;)if(!cd(e,t.index))return{index:t.index,length:t[0].length};return{index:-1,length:0}},wi=e=>{if(!e||typeof e!="string")return null;let n=e.match(/^\s*(?:<(think|thought|thoughts)[^>]*>|<\|channel>thought|\[(think|thought|thoughts)\])/i);if(!n)return null;let t=n.index+n[0].length,o=e.substring(t),s=dd(o);if(s.index!==-1){let r=t+s.index+s.length;return{fullBlock:e.substring(0,r),innerContent:o.substring(0,s.index),remainingText:e.substring(r)}}return{fullBlock:e,innerContent:o,remainingText:""}},rn=e=>{if(!e||typeof e!="string")return e;let n=wi(e);return n?n.remainingText.trimStart():e};var hl=/`[^`]*`/g,gl=/`[^`]*$/,cl=/<\|\s*tool_call_begin\s*\|>\s*(?:(?:tool|functions)\b[\s._]*)*([a-zA-Z0-9_]+)(?::\d+)?\s*<\|\s*tool_call_argument_begin\s*\|>([\s\S]*?)<\|\s*tool_call_end\s*\|>/gi,ud=/"([^"]+)"\s*:\s*(?:"([^"]*)"|(\d+)|true|false|null)/g,dl=/<\|\s*tool_calls_section_begin\s*\|>/gi,ul=/<\|\s*tool_calls_section_end\s*\|>/gi,fd=/```(?:tool|yaml|function|json)?\s*\n?([\s\S]*?)\n?\```/gi;var fl=e=>!e||typeof e!="string"?e:e.replace(/(```[\s\S]*?```|`[^`]*`)|(<(?:\w+)(?:[^>]*)>\r?\n?|\r?\n?<\/\w+(?:[^>]*)>)/gi,(n,t)=>t||""),bi=null,or={},ko={key:null,value:null},sn=e=>e&&e.replace(/(?:(\x1b\[\d+m))?([✔✘✖🔍📖→➕↻↷•🛇])(?:(\x1b\[\d+m))?\s*\b(Clicked|Dragged|Scrolled|Typed|Pressed Key|Recaptured Screen|Created|Read Skill|Read Documentation|Searched Documentation|Read|Edited|Viewed|Processed|Auto-Read|Skipped|List|Generated|Written|Searched|AI Search|Get Map|Write Canceled|Resolved Sub-Agent Query|Edit Canceled|Write Cancelled|Edit Denied|Visited|Updated|Reviewed|Delegated|Background|Checked|Indexed|Analyzed|Browsed|Elevating SubAgent|Checking SubAgent Work|Started Generalist|Called Generalist|Steered|Unsupported Modality|Awaiting|Cancelled|Aligning Moon Phase|Contemplating Existence|Staring At Void|Rollback Point Checked|Emergency Rollback Failed|Emergency Rollback|Delaying Professionally|Negotiating With Electrons|Touching Grass (virtually)|Panicking Softly|Rethinking Career Choices|Loading Cat Videos|Giving Up Entirely|Summoning Braincell #2|Pretending To Be Busy|Waiting For Motivation DLC|Rotating Internal Screaming|Downloading More RAM|Feeding The Hamsters|Gaslighting Scheduler|Performing Dramatic Pause|Buffering Social Energy|Calculating Regret|Reading Terms And Conditions|Becoming Sentient Briefly|Execution Error|Loop Detected|Contacting Ancestors)\b/ig,(n,t,o,s,r)=>`${t||""}${o}${s||""} \x1B[95m${r}\x1B[0m`),pd=async(e,n=8,t=1e3,o=8e3,s=null)=>{let r=0;for(;;){if(s?.aborted)throw new DOMException("The user aborted a request.","AbortError");try{return await e()}catch(a){if(s?.aborted||a?.name==="AbortError"||a?.message==="Subagent task was cancelled."||(r++,r>=n))throw a;let i=Math.min(t*Math.pow(2,r-1),o);await new Promise((p,d)=>{let c=setTimeout(p,i);s&&s.addEventListener("abort",()=>{clearTimeout(c),d(new DOMException("The user aborted a request.","AbortError"))})})}}},Lt=!1;var md=e=>{let n=e.filter(s=>(s.role==="user"||s.role==="agent"||s.role==="system")&&s.role!=="think"&&!s.isVisualFeedback&&!s.isMeta&&!s.isTerminalRecord&&!(s.text&&s.text.includes("[TERMINAL_RECORD]"))&&!String(s.id).startsWith("welcome")).map((s,r,a)=>{let i=s.fullText||s.text||"";if(s.role==="user"&&r<a.length-1)if(i.includes("**CONTEXT SUMMARY OF PREVIOUS TURNS")){let p=i.indexOf("**CONTEXT SUMMARY OF PREVIOUS TURNS");if(p!==-1){let c=i.substring(0,p).lastIndexOf("[SYSTEM METADATA]");c!==-1?i=i.substring(c).trim():i=i.substring(p).trim()}}else{let p=i.lastIndexOf("[USER]"),d=i.lastIndexOf("[USER PROMPT]");p!==-1?i=i.substring(p+6).trim():d!==-1&&(i=i.substring(d).trim())}return{...s,text:i}}),t=[],o=0;for(;o<n.length;){let s=n[o];if(s.role==="user")t.push(s),o++;else{let r=[];for(;o<n.length&&n[o].role!=="user";)r.push(n[o]),o++;let a=[],i=[],p=!1,d=()=>{a.length>0&&(t.push({role:"agent",text:"combined"}),a=[]),i.length>0&&(t.push({role:"system",text:"combined"}),i=[]),p=!1};r.forEach(c=>{let l=c.role==="system"&&(c.text?.startsWith("[TOOL RESULT]")||c.text?.startsWith("SUCCESS:")||c.text?.startsWith("ERROR:")||c.fullText?.startsWith("[TOOL RESULT]")||c.fullText?.startsWith("SUCCESS:")||c.fullText?.startsWith("ERROR:")),f=c.fullText||c.text||"",u=f.trim();if(!(!u&&!c.binaryPart)){if(l)i.push(u);else if(c.role==="agent"){!p&&i.length>0&&d();let m=f.endsWith(`
|
|
938
|
+
`),g=u.toLowerCase().includes("tool:functions.")||u.toLowerCase().includes("agent:generalist.");a.push(u),g&&m?p=!0:p=!1}}}),d()}}return t.length},hd=e=>typeof e!="string"?e:e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),My=()=>{Lt=!0},vy=()=>Lt,xi={write_file:"Writing",update_file:"Editing",read_folder:"Reading",view_file:"Reading",exec_command:"Executing Command",web_search:"Searching",web_scrape:"Reading",memory:"Updating Memory",search_keyword:"Searching",file_map:"Generating Map",ask:"User Input",write_pdf:"Creating",write_docx:"Creating",generate_image:"Generating",todo:"Planning",Todo:"Planning",goal:"Planning",Goal:"Planning",invoke_sync:"Sub-Agent Working",invoke:"Starting Agent",get_progress:"Checking Progress",cancel:"Cancelling",await:"Waiting",EmergencyRollback:"Don't Panic. Lookin' into it",answer:"Answering Sub-Agent",Answer:"Answering Sub-Agent",steer:"Steering Sub-Agent",Steer:"Steering Sub-Agent",Click:"Clicking",click:"Clicking",Drag:"Dragging",drag:"Dragging",Scroll:"Scrolling",scroll:"Scrolling",KeyboardTyping:"Typing",keyboard_typing:"Typing",KeyPress:"Pressing Key",key_press:"Pressing Key",RecaptureScreen:"Recapturing Screen",recapture_screen:"Recapturing Screen"},So=(e,n)=>{try{let t=D(n),o=e.toLowerCase().replace(/_/g,"");if(o==="invokesync"||o==="invoke")return t.title||(t.task?t.task.substring(0,30):null);if(o==="getprogress"||o==="cancel"||o==="steer"||o==="steersubagent")return t.id||t.taskId;let s=t.path||t.targetFile||t.TargetFile||t.directory;return s?te.basename(s.replace(/["']/g,"").replace(/\\/g,"/")):null}catch{return null}},ki=e=>e?new ml({apiKey:e}):bi,Iy=async(e,n,t,o,s={})=>{let{onStatus:i,onMemoryUpdated:p,onBackgroundIncrement:d}=s,{profile:c,thinkingLevel:l,mode:f,janitorModel:u,chatId:m,systemSettings:g,sessionStats:y,aiProvider:h="Google",apiKey:b}=e,w=process.env.NVIDIA_BASE_URL||h==="Ollama"||h==="CrofAI"||h==="InferX"||h==="SenseNova"||h==="AIHubMix"||h==="Poolside"||h==="9router"||h==="ExpLabs"||h==="ExperientialLabs"?!1:g?.memory!==!1,$=se(Ut,[]).map(O=>`- [${O.id}]: ${O.memory}`).join(`
|
|
939
|
+
`),R=o.slice(0,-1).filter(O=>O.text&&!O.text.includes("[TOOL RESULT]")&&!O.text.includes("OBSERVATION:")&&!O.text.startsWith("[TERMINAL_RECORD]")&&!O.isTerminalRecord&&!O.isMeta&&!O.isLogo&&!String(O.id).startsWith("welcome")&&!String(O.id).startsWith("logo")).slice(-14).map(O=>{let B=rn(hd(O.text)).replace(/\[tool:functions\..*?\]/g,"").replace(/\[Prompted on:.*?\]/g,"").replace(/\[METADATA \(PRIORITY: DYNAMIC\)\] Time: ([^|\n]+)/g,(Ne,Ze)=>`[METADATA (PRIORITY: DYNAMIC)] Time: ${Ze.replace(/:\d{2}/g,"")}`).replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/g,"").replace(/\[TOOL RESULTS\]/g,"").replace(/\[tool results\]/g,"").replace(/\r?\n\r?\n/g,`
|
|
937
940
|
`).replace(/\n\n/g,`
|
|
938
941
|
`).replace(/\\n\\n/g,"").trim(),J=O.role==="user"?8192:32768,Q=B.substring(0,J);B.length>J&&(Q+=`
|
|
939
|
-
... (truncated) ...`);let We=O.role==="user"?Q.startsWith("[USER]")?"":"[USER]: ":Q.startsWith("[AGENT]")?"":"[AGENT]: ";return{role:O.role==="user"?"user":"model",parts:[{text:`${We}${Q}`}]}}),k=o.filter(O=>O.role==="user").length===1,S=n.includes("[TITLE-UPDATE]"),_=Math.random()<.8,E=k||S||_,x=
|
|
942
|
+
... (truncated) ...`);let We=O.role==="user"?Q.startsWith("[USER]")?"":"[USER]: ":Q.startsWith("[AGENT]")?"":"[AGENT]: ";return{role:O.role==="user"?"user":"model",parts:[{text:`${We}${Q}`}]}}),k=o.filter(O=>O.role==="user").length===1,S=n.includes("[TITLE-UPDATE]"),_=Math.random()<.8,E=k||S||_,x=rn(t).trim(),C=ba($,w,E),M=`${x.replace(/\[tool:functions\..*?\]/g,"").replace(/\[Prompted on:.*?\]/g,"").replace(/\[\[\s*turn\s*:\s*(continue|finish)\s*\]\]/gi,"").replace(/\[\[END\]\]/g,"").replace(/\[\[TOOL RESULTS\]\]/g,"").replace(/\[tool results\]/g,"").substring(0,32768)}`;M.length>32768&&(M+=`
|
|
940
943
|
... (truncated) ...`);let v=n.replace(/\[Prompted on:.*?\]/g,"").trim();M=M.replace(/\r?\n\r?\n/g,`
|
|
941
944
|
`).replace(/\n\n/g,`
|
|
942
945
|
`).replace(/\\n\\n/g,"").trim();let L=new Date,j=`[METADATA] Current date and Time: ${`${L.getFullYear()}-${L.toLocaleString("en-US",{month:"short"}).toUpperCase()}-${String(L.getDate()).padStart(2,"0")}, ${L.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!0})}`}
|
|
@@ -945,11 +948,11 @@ ${l[7]}
|
|
|
945
948
|
${v.length>8192?`... (truncated) ...
|
|
946
949
|
|
|
947
950
|
`:""}
|
|
948
|
-
[AGENT (current turn)]: ${M}`;R.push({role:"user",parts:[{text:j}]});let ee=await mr("NVIDIA"),F=(await
|
|
951
|
+
[AGENT (current turn)]: ${M}`;R.push({role:"user",parts:[{text:j}]});let ee=await mr("NVIDIA"),F=(await on()).quotas?.providerTiers?.NVIDIA==="Free",W="",ne=0,Me=w?12:-1;for(;ne<=Me;)try{if(!await Di("background",e))return;let O="",B=null,J=!1,Q=h;try{let Ze=new Promise((qe,fe)=>setTimeout(()=>fe(new Error("JANITOR_TIMEOUT")),1e4)),ct=h==="Google"&&ne>=0&&ne<6&&ee&&F,He=h==="DeepSeek"&&ne<4&&ee&&F;J=ct||He,Q=J?"NVIDIA":h;let wt=(async()=>{if(h==="OpenRouter"){let qe=de("janitor_open_router"),le=Ys(b,qe,R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),nt=await le.next();return{iterator:le,firstResult:nt}}else if(h==="DeepSeek"&&!J){let fe=zs(b,de("deepseek_fast_fallback"),R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="Mistral"&&!J){let fe=Ks(b,de("mistral_janitor_fallback"),R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="NVIDIA"||J){let fe=Vs(J?ee:b,de("nvidia_janitor_fallback"),R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="CrofAI"){let fe=Xs(b,targetModel||de("crofai_fallback")||"deepseek-v4-flash-0731",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="InferX"){let fe=Js(b,targetModel||de("inferx_fallback")||"deepseek-v4-flash",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="SenseNova"){let fe=Qs(b,targetModel||de("sensenova_fallback")||"sensenova-6.8-flash-lite",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="AIHubMix"){let fe=Zs(b,targetModel||de("aihubmix_fallback")||"gpt-4o-mini",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="Poolside"){let fe=er(b,targetModel||de("poolside_fallback")||"poolside/laguna-s-2.1",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="9router"||h==="9Router"){let fe=tr(b,targetModel||de("9router_fallback")||"z-ai/glm-5.3-flash",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else if(h==="ExpLabs"||h==="ExperientialLabs"){let fe=nr(b,targetModel||de("explabs_fallback")||"deepseek-v4-pro-0813",R,C,"Fast",f,!1,null,.7)[Symbol.asyncIterator](),le=await fe.next();return{iterator:fe,firstResult:le}}else{let le=(await ki(b).models.generateContentStream({model:u||(ne===Me?de("janitor_default"):de("gemma_janitor_fallback_google")),contents:R,config:{systemInstruction:C,temperature:.7,safetySettings:[{category:to.HARM_CATEGORY_HARASSMENT,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_HATE_SPEECH,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_SEXUALLY_EXPLICIT,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_DANGEROUS_CONTENT,threshold:eo.BLOCK_NONE}],thinkingConfig:{includeThoughts:!1,thinkingLevel:mt.MINIMAL}}}))[Symbol.asyncIterator](),nt=await le.next();return{iterator:le,firstResult:nt}}})();if(process.stdout.isTTY){let le=(await fo())[m]?.name||"",nt=le&&!le.startsWith("flow-")&&!le.startsWith("Session ")?le:"FluxFlow | Idle";process.stdout.write(`\x1B]0;${nt}\x07`),process.stdout.write(`\x1B]633;P;TerminalTitle=${nt}\x07`)}let{iterator:To,firstResult:Tt}=await Promise.race([wt,Ze]),{value:Ye,done:At}=Tt;if(!At&&Ye){let qe=Ye.candidates?.[0]?.content?.parts,fe=qe?Q==="Google"?qe[1]?.text||qe[0]?.text||"":qe.filter(le=>le.text&&!le.thought).map(le=>le.text).join(""):typeof Ye.text=="function"?Ye.text():"";fe&&(O+=fe),B=Ye.usageMetadata;for await(let le of{[Symbol.asyncIterator]:()=>To}){let nt=le.candidates?.[0]?.content?.parts,ys=nt?Q==="Google"?nt[1]?.text||nt[0]?.text||"":nt.filter(vn=>vn.text&&!vn.thought).map(vn=>vn.text).join(""):typeof le.text=="function"?le.text():"";ys&&(O+=ys),B=le.usageMetadata}}}catch(Ze){throw Ze}if(O){if(W=O,B){let Ze=B.totalTokenCount||0,ct=B.cachedContentTokenCount||0,He=(B.candidatesTokenCount||0)+(B.thoughtsTokenCount||0),wt=J?de("nvidia_janitor_fallback"):Q==="DeepSeek"?de("deepseek_fast_fallback"):Q==="ExpLabs"||Q==="ExperientialLabs"?de("explabs_fallback")||"deepseek-v4-pro-0813":Q==="OpenRouter"?de("janitor_open_router"):u||(ne===Me?de("janitor_default"):de("gemma_janitor_fallback_google"));await Yt("tokens",Ze,Q,wt),ct>0&&await Yt("cachedTokens",ct,Q,wt),He>0&&await Yt("candidateTokens",He,Q,wt)}}else throw new Error("No synthesis generated by Janitor.");d&&(d(),await Dt("background"));let We=rr(W),Ne=!1;for(let Ze of We){let ct=Ze.toolName;["addMemScore","add_mem_score","AddMemScore","addMemoryScore","AddMemoryScore"].includes(ct)&&(Ne=!0);let He={chatId:m,sessionId:m,history:o},wt=await ms(ct,Ze.args,He);ct.toLowerCase()==="memory"&&(Ze.args.includes("action='user'")||Ze.args.includes('action="user"'))&&!wt.startsWith("ERROR")&&(p&&p(),process.stdout.isTTY&&(process.stdout.write("\x1B]0;Memory Updated\x07"),process.stdout.write("\x1B]633;P;TerminalTitle=Memory Updated\x07")),await new Promise(Tt=>setTimeout(Tt,3e3)))}if(!Ne)try{let Ze=se(Ut,[]);if(Ze.length>0){let ct=[];for(let He of Ze)He.score===void 0&&(He.score=.5),He.score*=.99995,He.score<.05&&(He.score=0),He.score=Math.round(He.score*1e5)/1e5,He.score>0&&ct.push(He);ye(Ut,ct)}}catch{}break}catch(O){ne++;let B=new Date().toLocaleString(),J=O instanceof Error?(()=>{try{return JSON.parse(JSON.parse(O.message).error.message).error.message}catch{return String(O)}})():String(O);await new Promise(Ne=>setTimeout(Ne,1e3));let Q=te.join(yn,"janitor");if(Fe.existsSync(Q)||Fe.mkdirSync(Q,{recursive:!0}),Fe.appendFileSync(te.join(Q,"error.log"),`ERROR [Attempt ${ne}/${Me+1}] [${B}]: ${J}
|
|
949
952
|
|
|
950
|
-
`),ne>Me)break;let We=Math.min(750*Math.pow(2,ne-1),5e3);await new Promise(Ne=>setTimeout(Ne,We))}if(ne){let O=te.join(
|
|
953
|
+
`),ne>Me)break;let We=Math.min(750*Math.pow(2,ne-1),5e3);await new Promise(Ne=>setTimeout(Ne,We))}if(ne){let O=te.join(yn,"janitor");Fe.appendFileSync(te.join(O,"error.log"),`-----------------------------------------------------------------------------
|
|
951
954
|
|
|
952
|
-
`)}if(process.stdout.isTTY)try{let J=(await fo())[m]?.name||"",Q=J&&!J.startsWith("flow-")&&!J.startsWith("Session ")?J:"FluxFlow | Idle";process.stdout.write(`\x1B]0;${Q}\x07`),process.stdout.write(`\x1B]633;P;TerminalTitle=${Q}\x07`)}catch{process.stdout.write("\x1B]0;FluxFlow | Idle\x07"),process.stdout.write("\x1B]633;P;TerminalTitle=FluxFlow | Idle\x07")}},gd=e=>{let n=
|
|
955
|
+
`)}if(process.stdout.isTTY)try{let J=(await fo())[m]?.name||"",Q=J&&!J.startsWith("flow-")&&!J.startsWith("Session ")?J:"FluxFlow | Idle";process.stdout.write(`\x1B]0;${Q}\x07`),process.stdout.write(`\x1B]633;P;TerminalTitle=${Q}\x07`)}catch{process.stdout.write("\x1B]0;FluxFlow | Idle\x07"),process.stdout.write("\x1B]633;P;TerminalTitle=FluxFlow | Idle\x07")}},gd=e=>{let n=rn(e),t=Do?n:n.replace(hl,s=>" ".repeat(s.length)).replace(gl,s=>" ".repeat(s.length));gs.lastIndex=0;let o;for(;(o=gs.exec(t))!==null;){let s=o.index+o[0].length-1,r=0,a=null,i=!1,p=!1;for(let d=s;d<t.length;d++){let c=n[d];if(!a&&(c==='"'||c==="'"||c==="`")?(a=c,i=!1):a&&c===a&&!i&&(a=null),!a&&(c==="("?r++:c===")"&&r--,r===0)){let l=d+1;for(;l<t.length&&/\s/.test(t[l]);)l++;if(l<t.length&&t[l]==="]"){p=!0,gs.lastIndex=l+1;break}}c==="\\"?i=!i:i=!1}if(!p)return{inside:!0,toolName:o[1],startIndex:o.index,args:n.substring(o.index+o[0].length)}}return{inside:!1}},yl=(e,n=!0)=>{let t=gs;t.lastIndex=0;let o="",s=0,r;for(;(r=t.exec(e))!==null;){let a=e.substring(s,r.index);o+=n&&s===0?rn(a):a;let i=r.index+r[0].length-1,p=0,d=null,c=-1;for(let l=i;l<e.length;l++){let f=e[l];if(d){if(f===d){let u=0;for(let m=l-1;m>=0&&e[m]==="\\";m--)u++;u%2===0&&(d=null)}}else if(f==='"'||f==="'"||f==="`")d=f;else if(f==="(")p++;else if(f===")"&&(p--,p===0)){let u=l+1;for(;u<e.length&&/\s/.test(e[u]);)u++;if(u<e.length&&e[u]==="]"){c=u;break}}}if(c!==-1)o+="[tool:functions."+r[1]+"()]",s=c+1,t.lastIndex=s;else{o+="[tool:functions."+r[1]+"(",s=e.length;break}}return s<e.length&&(o+=n&&s===0?rn(e.substring(s)):e.substring(s)),o},yd=(e,n,t)=>{let o=gs;o.lastIndex=0;let s="",r=0,a;for(;(a=o.exec(e))!==null;){let i=e.substring(r,a.index);s+=i.replace(n,t);let p=a.index+a[0].length-1,d=0,c=null,l=-1;for(let f=p;f<e.length;f++){let u=e[f];if(c){if(u===c){let m=0;for(let g=f-1;g>=0&&e[g]==="\\";g--)m++;m%2===0&&(c=null)}}else if(u==='"'||u==="'"||u==="`")c=u;else if(u==="(")d++;else if(u===")"&&(d--,d===0)){let m=f+1;for(;m<e.length&&/\s/.test(e[m]);)m++;if(m<e.length&&e[m]==="]"){l=m;break}}}if(l!==-1)s+=e.substring(a.index,l+1),r=l+1,o.lastIndex=r;else{s+=e.substring(a.index),r=e.length;break}}return r<e.length&&(s+=e.substring(r).replace(n,t)),s},pl=e=>yl(e,!0),wd=e=>{if(!e)return e;let n={patchfile:"PatchFile",writefile:"WriteFile",readfile:"ReadFile",viewfile:"ReadFile",run:"Run",execcommand:"Run",searchkeyword:"SearchKeyword",codesearch:"CodeSearch",code_search:"CodeSearch",websearch:"WebSearch",webscrape:"WebScrape",readfolder:"ReadFolder",writepdf:"WritePDF",writedoc:"WriteDoc",writedocx:"WriteDoc",filemap:"FileMap",generateimage:"GenerateImage",todo:"Todo",goal:"Goal",askuser:"AskUser",ask:"AskUser"},t=s=>s.split("_").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("");cl.lastIndex=0;let o=e.replace(cl,(s,r,a)=>{let i="";try{let c=JSON.parse(a.trim());c&&typeof c=="object"&&(i=Object.entries(c).map(([f,u])=>{let m=typeof u=="string"?u:JSON.stringify(u);return`${f}=${JSON.stringify(m)}`}).join(", "))}catch{let l=[],f=ud;f.lastIndex=0;let u;for(;(u=f.exec(a))!==null;){let m=u[1],g=u[2]!==void 0?u[2]:u[0].split(":").slice(1).join(":").trim();l.push(`${m}=${JSON.stringify(g)}`)}l.length>0?i=l.join(", "):i=a.trim()}let p=r.toLowerCase().replace(/_/g,"");return`[tool:functions.${n[p]||t(r)}(${i})]`});return dl.lastIndex=0,ul.lastIndex=0,o=o.replace(dl,""),o=o.replace(ul,""),o},xd=/(?:path|query|url|keyword|command|method|title|task|id)\s*=\s*['"`]?\s*\.\.\.\s*['"`]?/i,bd=/^['"`]?\s*\.\.\.\s*['"`]?$/,Gn=e=>{if(e==null)return!1;let n=String(e).trim();return n==="..."||n==="\u2026"||bd.test(n)},rr=e=>{if(!e)return[];let n=wd(e),t=rn(n),o=[],s=Do?t:t.replace(hl,i=>" ".repeat(i.length)).replace(gl,i=>" ".repeat(i.length)),r=sd;r.lastIndex=0;let a;for(;(a=r.exec(s))!==null;){let i=a[1],p=a.index+a[0].length-1,d=0,c=null,l=-1,f=-1;for(let u=p;u<s.length;u++){let m=t[u];if(c){if(m===c){let g=0;for(let y=u-1;y>=0&&t[y]==="\\";y--)g++;g%2===0&&(c=null)}}else if(m==='"'||m==="'"||m==="`")c=m;else if(m==="(")d++;else if(m===")"&&(d--,d===0)){f=u;let g=u+1;for(;g<s.length&&/\s/.test(s[g]);)g++;if(g<s.length&&s[g]==="]"){l=g;break}}}if(l!==-1){let u=t.substring(p+1,f),m=t.substring(a.index,l+1),g=D(u);Gn(g.path)||Gn(g.query)||Gn(g.url)||Gn(g.keyword)||Gn(g.command)||Gn(g.method)||Gn(g.title)||Gn(g.task)||Gn(g.id)||xd.test(u)||o.push({fullMatch:m,toolName:i.trim(),args:u.trim()}),r.lastIndex=l+1}}return o},Oy=(e,n={})=>{if(!e)return null;if(or=n,bi=new ml({apiKey:e}),!globalThis.__perfCleanupInstalled){globalThis.__perfCleanupInstalled=!0,setInterval(()=>{typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks())},6e4);let t=globalThis.fetch;globalThis.fetch=async(...o)=>{try{let s=await t(...o);return typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),s}catch(s){throw typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),s}}}},sr=async(e,n,t,o,s="Fast",r=.75,a="agent")=>pd(async()=>{let{aiProvider:i="Google",apiKey:p,mode:d}=e,c="",l=null,f=typeof t=="string"?[{role:"user",parts:[{text:t}]}]:t,u=new AbortController,m=u.signal,g=setInterval(()=>{Lt&&(u.abort(),clearInterval(g))},100);try{let y;i==="Ollama"?y=yi(p,n,f,o,s,d,bt(n),m,r,systemSettings?.ollamaEndpoint||"Cloud"):i==="OpenRouter"?y=Ys(p,n,f,o,s,d,bt(n),m,r):i==="DeepSeek"?y=zs(p,n,f,o,s,d,bt(n),m,r):i==="Mistral"?y=Ks(p,n,f,o,s,d,bt(n),m,r):i==="NVIDIA"?y=Vs(p,n,f,o,s,d,bt(n),m,r):i==="CrofAI"?y=Xs(p,n,f,o,s,d,bt(n),m,r):i==="InferX"?y=Js(p,n,f,o,s,d,bt(n),m,r):i==="SenseNova"?y=Qs(p,n,f,o,s,d,bt(n),m,r):i==="AIHubMix"?y=Zs(p,n,f,o,s,d,bt(n),m,r):i==="Poolside"?y=er(p,n,f,o,s,d,bt(n),m,r):i==="9router"||i==="9Router"?y=tr(p,n,f,o,s,d,bt(n),m,r):i==="ExpLabs"||i==="ExperientialLabs"?y=nr(p,n,f,o,s,d,bt(n),m,r):y=await ki(p).models.generateContentStream({model:n,contents:f,config:{systemInstruction:o,temperature:r,thinkingConfig:(()=>{let w=(n||"").toLowerCase(),T=w.includes("gemma-4")||w.startsWith("gemma"),$=w.includes("gemini-3");if(T||$)return T?s.toLowerCase()!=="xhigh"?{includeThoughts:!1,thinkingLevel:mt.MINIMAL}:{includeThoughts:!0,thinkingLevel:mt.HIGH}:{includeThoughts:!0,thinkingLevel:{Fast:w.includes("pro")?mt.LOW:mt.MINIMAL,Low:mt.LOW,Medium:mt.MEDIUM,Standard:mt.MEDIUM,High:mt.HIGH,xHigh:mt.HIGH}[s]||mt.MEDIUM};{let R={Fast:0,Low:512,Medium:2048,Standard:2048,High:16384,xHigh:24576}[s]||2048;return R===0?{includeThoughts:!1}:{includeThoughts:!0,thinkingBudget:R}}})()}},{signal:m});for await(let h of y){if(Lt)throw new Error("Subagent task was cancelled.");if(e?.taskId&&typeof Qe<"u"){let T=Qe.find($=>$.id===e.taskId);if(T&&T.status==="cancelled")throw new Error("Subagent task was cancelled.")}let b="";if(h.candidates?.[0]?.content?.parts)for(let T of h.candidates[0].content.parts)T.text&&!T.thought&&(c+=T.text,b+=T.text);let w=b?b.trim().split(/\s+/).filter(Boolean).length:0;e&&typeof e.onTokenChunk=="function"&&e.onTokenChunk(b,w),h.usageMetadata&&(l=h.usageMetadata)}}finally{clearInterval(g)}if(l){let y=l.totalTokenCount||0,h=l.cachedContentTokenCount||0,b=(l.candidatesTokenCount||0)+(l.thoughtsTokenCount||0);await Yt("tokens",y,i,n),h>0&&await Yt("cachedTokens",h,i,n),b>0&&await Yt("candidateTokens",b,i,n),e&&typeof e.onUsage=="function"&&e.onUsage({totalTokenCount:y,cachedContentTokenCount:h,candidatesTokenCount:b})}return await Dt("agent",i),{text:c,usageMetadata:l}}),kd=async(e,n,t=null)=>{t=t||se(nn,{});try{let{aiProvider:o="Google"}=n;if(Object.values(t).flat().length<=5)return;let r=Object.keys(t).filter(f=>f!==e&&Array.isArray(t[f])&&t[f].length>2);if(r.length===0)return;let a=`You are a silent background process for the FluxFlow CLI Agent.
|
|
953
956
|
Your task is to summarize or merge temporary context memories from one or more past conversation sessions.
|
|
954
957
|
For each Chat ID provided, you must output a tool call to save the consolidated summary.
|
|
955
958
|
|
|
@@ -964,7 +967,7 @@ Guidelines:
|
|
|
964
967
|
|
|
965
968
|
Chats to process:
|
|
966
969
|
|
|
967
|
-
`,i=se(
|
|
970
|
+
`,i=se(Nn,{});for(let f of r){let m=t[f].map(y=>`- ${y}`).join(`
|
|
968
971
|
`),g=i[f];a+=`[Chat ID: ${f}]
|
|
969
972
|
`,g?(a+=`- Existing Summary: "${g}"
|
|
970
973
|
`,a+=`
|
|
@@ -974,7 +977,7 @@ ${m}
|
|
|
974
977
|
`):a+=`-- Individual Memories:
|
|
975
978
|
${m}
|
|
976
979
|
|
|
977
|
-
`}let p=0,d=5,c=!1,l=de("gemma_janitor_fallback_google");for(o==="OpenRouter"&&(l=de("janitor_open_router")),o==="DeepSeek"&&(l=de("deepseek_level_1")),o==="Mistral"&&(l=de("mistral_level_1")),o==="NVIDIA"&&(l=de("nvidia_janitor_fallback")),o==="CrofAI"&&(l=de("crofai_fallback")),o==="InferX"&&(l=de("inferx_fallback")),o==="SenseNova"&&(l=de("sensenova_fallback")),o==="AIHubMix"&&(l=de("aihubmix_fallback")),o==="Poolside"&&(l=de("poolside_fallback")),(o==="9router"||o==="9Router")&&(l=de("9router_fallback"));p<=d&&!c;){p++;try{let u=(await sr(n,l,a,null,"Fast",.75,"background")).text||"",m=rr(u);if(m.length===0)throw new Error("No tool calls detected in synthesis response");for(let g of m){let y=g.toolName;["saveSummary","saveSumary","SaveSummary","SaveSumary"].includes(y)&&await ms(y,g.args,{chatId:e})}c=!0}catch(f){if(p>=d)throw new Error(`Failed after ${d} attempts. Last error: ${f.message}`)}}}catch(o){let s=o instanceof Error?(()=>{try{return JSON.parse(JSON.parse(o.message).error.message).error.message}catch{return String(o)}})():String(o),r=te.join(
|
|
980
|
+
`}let p=0,d=5,c=!1,l=de("gemma_janitor_fallback_google");for(o==="OpenRouter"&&(l=de("janitor_open_router")),o==="DeepSeek"&&(l=de("deepseek_level_1")),o==="Mistral"&&(l=de("mistral_level_1")),o==="NVIDIA"&&(l=de("nvidia_janitor_fallback")),o==="CrofAI"&&(l=de("crofai_fallback")),o==="InferX"&&(l=de("inferx_fallback")),o==="SenseNova"&&(l=de("sensenova_fallback")),o==="AIHubMix"&&(l=de("aihubmix_fallback")),o==="Poolside"&&(l=de("poolside_fallback")),(o==="9router"||o==="9Router")&&(l=de("9router_fallback"));p<=d&&!c;){p++;try{let u=(await sr(n,l,a,null,"Fast",.75,"background")).text||"",m=rr(u);if(m.length===0)throw new Error("No tool calls detected in synthesis response");for(let g of m){let y=g.toolName;["saveSummary","saveSumary","SaveSummary","SaveSumary"].includes(y)&&await ms(y,g.args,{chatId:e})}c=!0}catch(f){if(p>=d)throw new Error(`Failed after ${d} attempts. Last error: ${f.message}`)}}}catch(o){let s=o instanceof Error?(()=>{try{return JSON.parse(JSON.parse(o.message).error.message).error.message}catch{return String(o)}})():String(o),r=te.join(yn,"janitor");Fe.existsSync(r)||Fe.mkdirSync(r,{recursive:!0}),Fe.appendFileSync(te.join(r,"error.log"),`[${new Date().toLocaleString()}] Past memory batch consolidation error: ${s}
|
|
978
981
|
`)}},Sd=async(e,n,t=!1)=>{let{chatId:o,aiProvider:s="Google"}=e,r=te.join(Ts,"chat-summaries.json"),a=u=>u.filter(m=>(m.role==="user"||m.role==="agent"||m.role==="system")&&m.role!=="think"&&!m.isVisualFeedback&&!m.isMeta&&!m.isTerminalRecord&&!(m.text&&m.text.includes("[TERMINAL_RECORD]"))&&!String(m.id).startsWith("welcome")).map(m=>{let g=m.fullText||m.text||"",y=m.role==="system"||g.startsWith("[TOOL RESULT]:")||m.text&&m.text.startsWith("[TOOL RESULT]:"),h=g;return y&&(g.includes("[TOOL RESULT]:")||m.text&&m.text.includes("[TOOL RESULT]:"))?h="[TOOL RESULT]: ...truncated for summary":h=h.replace(/(\[(?:tool|agent):[a-zA-Z0-9_\.]+)\([\s\S]*?\)(\])/g,"$1(...)$2"),`[${y?"TOOL":m.role==="agent"?"AGENT":"USER"}]: ${h}`}).join(`
|
|
979
982
|
|
|
980
983
|
`),i=async(u,m)=>{let g="You are an expert context summarizer. Summarize the provided chat history (which may include previous summaries, user instructions, agent outputs, and tool results) into a detailed, coherent, and highly technical summary of 1000 to 1500 words. Focus on preserving the architectural decisions made, current system state, task progress, and critical code details, chat messages, file changes. Under no circumstances exceed MAX 2000 words.",y=m?`Here is the previous summary:
|
|
@@ -986,53 +989,53 @@ ${u}
|
|
|
986
989
|
Provide a new consolidated summary of the entire session.`:`Here is the conversation history:
|
|
987
990
|
${u}
|
|
988
991
|
|
|
989
|
-
Provide a consolidated summary of the entire session.`,h=de("gemma_janitor_fallback_google");s==="OpenRouter"&&(h=de("janitor_open_router")),s==="DeepSeek"&&(h=de("deepseek_level_1")),s==="Mistral"&&(h=de("mistral_level_1")),s==="NVIDIA"&&(h=de("nvidia_chat_summarizer_fallback")),s==="CrofAI"&&(h=de("crofai_fallback")),s==="InferX"&&(h=de("inferx_fallback")),s==="SenseNova"&&(h=de("sensenova_fallback")),s==="AIHubMix"&&(h=de("aihubmix_fallback")),s==="Poolside"&&(h=de("poolside_fallback")),(s==="9router"||s==="9Router")&&(h=de("9router_fallback")),(s==="ExpLabs"||s==="ExperientialLabs")&&(h=de("explabs_fallback")||"deepseek-v4-pro-0813");let b=0,w=!1,T=null;for(;b<=3&&!w;){b++;try{T=await sr(e,h,y,g,"Fast"),w=!0}catch{if(b>3){if(s==="Google")try{let R=de("general_fallback");return(await sr(e,R,y,g,"Fast")).text||""}catch{return""}return""}}}return T&&T.text||""},p=a(n),d=se(r,{}),c=d[o]||{summary:"",historyLength:0};typeof c=="string"&&(c={summary:c,historyLength:0});let l=c.summary||"",f=await i(p,l);if(f){c.summary=f;let u=md(n);return t?c.historyLength=(c.historyLength||0)+u:c.historyLength=u,d[o]=c,ye(r,d),f}return null},Ly=e=>{try{let n=te.join(Ts,"chat-summaries.json");if(Fe.existsSync(n)){let t=se(n,{});t[e]&&(delete t[e],ye(n,t))}}catch{}},Dy=async function*(e,n,t,o,s){let{profile:r,thinkingLevel:a,mode:i,janitorModel:p,chatId:d,isPlayground:c,systemSettings:l,sessionStats:f,aiProvider:u="Google",apiTier:m,wildcardTooling:g}=t,y=
|
|
990
|
-
`),ne=se(
|
|
991
|
-
`),Me=(f?.tokens||0)>=1e4,O=wa(F,ne,h,Me),B=new Date,J=B.getFullYear(),Q=B.toLocaleString("en-US",{month:"short"}).toUpperCase(),We=String(B.getDate()).padStart(2,"0"),Ne=B.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!0}),Ze=`${J}-${Q}-${We}, ${Ne}`,
|
|
992
|
+
Provide a consolidated summary of the entire session.`,h=de("gemma_janitor_fallback_google");s==="OpenRouter"&&(h=de("janitor_open_router")),s==="DeepSeek"&&(h=de("deepseek_level_1")),s==="Mistral"&&(h=de("mistral_level_1")),s==="NVIDIA"&&(h=de("nvidia_chat_summarizer_fallback")),s==="CrofAI"&&(h=de("crofai_fallback")),s==="InferX"&&(h=de("inferx_fallback")),s==="SenseNova"&&(h=de("sensenova_fallback")),s==="AIHubMix"&&(h=de("aihubmix_fallback")),s==="Poolside"&&(h=de("poolside_fallback")),(s==="9router"||s==="9Router")&&(h=de("9router_fallback")),(s==="ExpLabs"||s==="ExperientialLabs")&&(h=de("explabs_fallback")||"deepseek-v4-pro-0813");let b=0,w=!1,T=null;for(;b<=3&&!w;){b++;try{T=await sr(e,h,y,g,"Fast"),w=!0}catch{if(b>3){if(s==="Google")try{let R=de("general_fallback");return(await sr(e,R,y,g,"Fast")).text||""}catch{return""}return""}}}return T&&T.text||""},p=a(n),d=se(r,{}),c=d[o]||{summary:"",historyLength:0};typeof c=="string"&&(c={summary:c,historyLength:0});let l=c.summary||"",f=await i(p,l);if(f){c.summary=f;let u=md(n);return t?c.historyLength=(c.historyLength||0)+u:c.historyLength=u,d[o]=c,ye(r,d),f}return null},Ly=e=>{try{let n=te.join(Ts,"chat-summaries.json");if(Fe.existsSync(n)){let t=se(n,{});t[e]&&(delete t[e],ye(n,t))}}catch{}},Dy=async function*(e,n,t,o,s){let{profile:r,thinkingLevel:a,mode:i,janitorModel:p,chatId:d,isPlayground:c,systemSettings:l,sessionStats:f,aiProvider:u="Google",apiTier:m,wildcardTooling:g}=t,y=bt(e);if(!bi&&u==="Google")throw new Error("AI not initialized");let h=process.env.NVIDIA_BASE_URL||t?.aiProvider==="Ollama"||t?.aiProvider==="CrofAI"||t?.aiProvider==="InferX"||t?.aiProvider==="SenseNova"||t?.aiProvider==="AIHubMix"||t?.aiProvider==="Poolside"||t?.aiProvider==="9router"||t?.aiProvider==="ExpLabs"||t?.aiProvider==="ExperientialLabs"?!1:l?.memory!==!1,b=n[n.length-1].text,w=te.join(Ts,"chat-summaries.json"),T=!1,$=n.filter(E=>E.role==="user").length===1,R=b.includes("[TITLE-UPDATE]"),k=$||R,S=b.replace(/\[TITLE-UPDATE\]/g,"").trim();S=S.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),yield{type:"status",content:"[start]"},yield{type:"status",content:"Gathering Context"},await yt.startTransaction(d,S),l?.advanceRollback&&await Zn.takeInitialSnapshot(d),Lt=!1;let _=null;try{let E=new AbortController;_=setInterval(()=>{Lt&&(E.abort(),_&&(clearInterval(_),_=null))},400);let x=[...n.slice(0,-1)];{let Pe=se(w,{})[d]||{summary:"",historyLength:0};if(Pe.summary&&Pe.historyLength>0){let an=0,Ee=[];for(let ot=0;ot<x.length;ot++){let ze=x[ot];(ze.role==="user"||ze.role==="agent"||ze.role==="system")&&!String(ze.id).startsWith("welcome")&&!ze.isMeta&&an++,an>Pe.historyLength&&Ee.push(ze)}x=Ee}}x=x.map(z=>{if(z.role==="user"&&z.text){let Pe=z.text.match(/\[USER\]([\s\S]*?)\[\/USER\]/);if(Pe)return{...z,text:Pe[1].trim()}}return{...z}});let C=process.env.HIGH_CONTEXT,M=process.env.GOOGLE_GEMMA_NONSENSE==="true"||process.env.GOOGLE_GEMMA_NONSENSE===!0||!1,v=255e3,L=26e4;if(C&&C!=="false"){let z=parseInt(C,10);!isNaN(z)&&z>=0&&z<=1e6&&(L=z,v=Math.round(z*.85))}if((u==="NVIDIA"&&(e?.includes("gpt")||e?.includes("qwen")||e?.includes("medium")||e.includes("muse"))||u==="Mistral")&&(v=122e3,L=126e3),u==="Google"&&e?.includes("gemma")&&M&&(v=14e3,L=16e3),(u==="Ollama"||u==="9router"||u==="9Router"||u==="ExpLabs"||u==="ExperientialLabs")&&(f?.tokens||0)>v){yield{type:"text",content:"\u2726 Maximum Context Limit Reached. Start a new chat."};return}if(u!=="Ollama"&&u!=="9router"&&u!=="9Router"&&u!=="ExpLabs"&&u!=="ExperientialLabs"&&(f?.tokens||0)>v&&(yield{type:"status_history",content:"Context Limit Reached. Condensing session history..."},await Sd(t,x,!0)&&(x=[],T=!0)),$&&h){let z=se(nn,{});Object.values(z).flat().length>5&&(yield{type:"status",content:"Condensing past chat memories"},await kd(d,t,z))}let U=se(nn,{}),j=se(Nn,{}),ee=Object.entries(U).filter(([z])=>z!==d).flatMap(([z,Pe])=>Pe),F=[...Object.entries(j).filter(([z])=>z!==d).slice(-20).map(([z,Pe])=>`[Chat Summary]: ${Pe}`),...ee].map(z=>`- ${z}`).join(`
|
|
993
|
+
`),ne=se(Ut,[]).map(z=>`- ${z.memory}`).join(`
|
|
994
|
+
`),Me=(f?.tokens||0)>=1e4,O=wa(F,ne,h,Me),B=new Date,J=B.getFullYear(),Q=B.toLocaleString("en-US",{month:"short"}).toUpperCase(),We=String(B.getDate()).padStart(2,"0"),Ne=B.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!0}),Ze=`${J}-${Q}-${We}, ${Ne}`,ct=[".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",".skills","skills"],He=z=>{try{return Fe.readdirSync(z,{withFileTypes:!0})}catch{return[]}},wt=(z,Pe={value:0},an=1)=>{if(Pe.value>6200||an>7)return Pe.value;let Ee=He(z);for(let ot of Ee){if(Pe.value>6200)break;ct.includes(ot.name)||ot.name.startsWith(".")||ot.isDirectory()&&(Pe.value++,wt(te.join(z,ot.name),Pe,an+1))}return Pe.value},To=(z,Pe)=>l?.indentationTree!==!1?mi(z,Pe,1,He,ct):gi(z,Pe,"",1,He,ct),Tt=wt(process.cwd()),Ye=10;Tt>3072||Tt>2304?Ye=1:Tt>1536?Ye=2:Tt>768?Ye=3:Tt>384?Ye=5:Tt>192?Ye=6:Tt>96?Ye=7:(Tt>48||Tt>24)&&(Ye=9);let At=se(fr,{}),qe=At[d],fe=qe?qe!==process.cwd():!1;At[d]=process.cwd(),ye(fr,At);let le=se(w,{}),nt=le[d]||{summary:"",historyLength:0};typeof nt=="string"&&(nt={summary:nt,historyLength:0});let ys=n.filter(z=>(z.role==="user"||z.role==="agent"||z.role==="system")&&!String(z.id).startsWith("welcome")&&!z.isMeta).length;nt.historyLength&&ys<nt.historyLength&&(nt.summary="",nt.historyLength=0,le[d]=nt,ye(w,le));let vn=typeof nt=="object"?nt.summary||"":nt||"",Si=x.length>0;Si&&vn&&x[0]&&(x[0].role==="user"||x[0].role==="system")&&(x[0].text.includes("**CONTEXT SUMMARY OF PREVIOUS TURNS")||(x[0].text=`[SYSTEM METADATA]
|
|
992
995
|
**CONTEXT SUMMARY OF PREVIOUS TURNS (PRIORITY: DYNAMIC)**
|
|
993
|
-
${
|
|
996
|
+
${vn}
|
|
994
997
|
|
|
995
|
-
[USER] ${x[0].text}`,yield{type:"summary_injected",content:{id:x[0].id,text:x[0].text}}));let Ti=
|
|
998
|
+
[USER] ${x[0].text}`,yield{type:"summary_injected",content:{id:x[0].id,text:x[0].text}}));let Ti=vn&&!Si?`
|
|
996
999
|
[SYSTEM METADATA]
|
|
997
1000
|
**CONTEXT SUMMARY OF PREVIOUS TURNS**
|
|
998
|
-
${
|
|
1001
|
+
${vn}
|
|
999
1002
|
`:"",Ri=!!l?.dynamicDirAwareness,wl=`${d}|${u}|${a}|${e}|${r}|${Ri}`,Ei=!Ri&&ko.key===wl&&ko.value?"":`
|
|
1000
1003
|
**Directory Structure**
|
|
1001
1004
|
CWD: `+process.cwd()+`${c?" [PLAYGROUND MODE]":""}
|
|
1002
|
-
`+To(process.cwd(),
|
|
1005
|
+
`+To(process.cwd(),Ye),Rt=await xo(),Hn="";if(Hs()&&Rt.file_focused!=="none"){Hn=`
|
|
1003
1006
|
[Additional IDE Context]
|
|
1004
|
-
`;let z=te.relative(process.cwd(),
|
|
1005
|
-
Cursor Line: ${
|
|
1006
|
-
`,
|
|
1007
|
+
`;let z=te.relative(process.cwd(),Rt.file_focused),Pe=(Rt.opened_editors||[]).map(Ee=>{let ot=te.relative(process.cwd(),Ee);return ot.startsWith("..")?`[External] ${te.basename(Ee)}`:ot});if(Hn+=`Focused File: ${z}
|
|
1008
|
+
Cursor Line: ${Rt.cursor_line}
|
|
1009
|
+
`,Rt.selected){let Ee=Rt.selected,ot=Ee.split(`
|
|
1007
1010
|
`);ot.length>256&&(Ee=ot.slice(0,240).join(`
|
|
1008
1011
|
`)+`
|
|
1009
1012
|
... [truncated] ...
|
|
1010
1013
|
`+ot.slice(-16).join(`
|
|
1011
1014
|
`)),Ee.length>2048&&(Ee=Ee.slice(0,1920)+`
|
|
1012
1015
|
... [truncated] ...
|
|
1013
|
-
`+Ee.slice(-128)),
|
|
1014
|
-
`}if(
|
|
1015
|
-
`),ze=[],et=null;for(let K of ot)K.trim()&&(K.startsWith(" Line ")?et&&et.edits.push(K):(et={path:K.endsWith(":")?K.slice(0,-1):K,edits:[]},ze.push(et)));for(let K of ze)K.edits.length>80&&(K.edits=K.edits.slice(-80)),K.originalEditsCount=K.edits.length;let ge=(K,oe)=>oe.reduce((Ke,
|
|
1016
|
+
`+Ee.slice(-128)),Hn+=`Current Selection: "${Ee}"
|
|
1017
|
+
`}if(Rt.manual_edits){let ot=Rt.manual_edits.split(`
|
|
1018
|
+
`),ze=[],et=null;for(let K of ot)K.trim()&&(K.startsWith(" Line ")?et&&et.edits.push(K):(et={path:K.endsWith(":")?K.slice(0,-1):K,edits:[]},ze.push(et)));for(let K of ze)K.edits.length>80&&(K.edits=K.edits.slice(-80)),K.originalEditsCount=K.edits.length;let ge=(K,oe)=>oe.reduce((Ke,mn)=>{let Rn=Rt.file_focused&&(mn.path===Rt.file_focused||te.resolve(process.cwd(),mn.path)===te.resolve(Rt.file_focused))?Math.ceil(K*1.2):K;return Ke+Math.min(mn.edits.length,Rn)},0),Wt=80;if(ge(80,ze)>300){let K=!1;for(let oe=80;oe>=10;oe--)if(ge(oe,ze)<=300){Wt=oe,K=!0;break}K||(Wt=10)}let tt=[...ze];if(Wt===10&&ge(10,tt)>500)for(;tt.length>0&&ge(10,tt)>500;){let K=0,oe=tt[0].originalEditsCount;for(let Ke=1;Ke<tt.length;Ke++)tt[Ke].originalEditsCount<oe&&(oe=tt[Ke].originalEditsCount,K=Ke);tt.splice(K,1)}for(let K of tt){let Ke=Rt.file_focused&&(K.path===Rt.file_focused||te.resolve(process.cwd(),K.path)===te.resolve(Rt.file_focused))?Math.ceil(Wt*1.2):Wt;K.edits.length>Ke&&(K.edits=K.edits.slice(-Ke))}for(let K of tt){let oe=`${K.path}:
|
|
1016
1019
|
${K.edits.join(`
|
|
1017
1020
|
`)}`;for(;K.edits.length>0&&oe.length>4*768;)K.edits.shift(),oe=`${K.path}:
|
|
1018
1021
|
${K.edits.join(`
|
|
1019
|
-
`)}`;oe.length>4*768?K.stringRepresentation="... "+oe.slice(-(4*768-4)):K.stringRepresentation=oe}let
|
|
1020
|
-
`);for(;tt.length>0&&
|
|
1022
|
+
`)}`;oe.length>4*768?K.stringRepresentation="... "+oe.slice(-(4*768-4)):K.stringRepresentation=oe}let ln=tt.map(K=>K.stringRepresentation).join(`
|
|
1023
|
+
`);for(;tt.length>0&&ln.length>4*2048;){tt[0].edits.length>0?tt[0].edits.shift():tt.shift();for(let K of tt){let oe=`${K.path}:
|
|
1021
1024
|
${K.edits.join(`
|
|
1022
|
-
`)}`;oe.length>4*768?K.stringRepresentation="... "+oe.slice(-(4*768-4)):K.stringRepresentation=oe}
|
|
1023
|
-
`)}
|
|
1024
|
-
${
|
|
1025
|
-
`}Pe.length>0&&(
|
|
1025
|
+
`)}`;oe.length>4*768?K.stringRepresentation="... "+oe.slice(-(4*768-4)):K.stringRepresentation=oe}ln=tt.map(K=>K.stringRepresentation).join(`
|
|
1026
|
+
`)}ln.length>4*2048&&(ln="... "+ln.slice(-(4*2048-4))),Hn+=`Recent Manual Edits:
|
|
1027
|
+
${ln}
|
|
1028
|
+
`}Pe.length>0&&(Hn+=`All Opened Editors: ${Pe.join(", ")}`),Rt.diagnostics&&(Hn+=`
|
|
1026
1029
|
**Active File Errors**:
|
|
1027
|
-
${
|
|
1028
|
-
`),(S.toLowerCase().includes("lint")||S.toLowerCase().includes("warning"))&&
|
|
1030
|
+
${Rt.diagnostics}
|
|
1031
|
+
`),(S.toLowerCase().includes("lint")||S.toLowerCase().includes("warning"))&&Rt.warnings&&(Hn+=`
|
|
1029
1032
|
**Lint Warnings**:
|
|
1030
|
-
${
|
|
1031
|
-
`)}let _i=S.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),Ci=/(?:\\)?@\[([^\]]+)\]/g,ir,ar=[];for(Ci.lastIndex=0;(ir=Ci.exec(_i))!==null;){let z=ir[0].startsWith("\\");ar.push({tag:ir[1],isEscaped:z})}let lr=[],ws=null;for(let z=0;z<ar.length;z++){let{tag:Pe,isEscaped:
|
|
1032
|
-
`);yield{type:"visual_feedback",content:
|
|
1033
|
-
`)};continue}if(ge===null&&!
|
|
1034
|
-
`)};continue}}let
|
|
1035
|
-
`);yield{type:"visual_feedback",content:
|
|
1033
|
+
${Rt.warnings}
|
|
1034
|
+
`)}let _i=S.replace(/\s*\[Prompted on:.*?\]/g,"").trim(),Ci=/(?:\\)?@\[([^\]]+)\]/g,ir,ar=[];for(Ci.lastIndex=0;(ir=Ci.exec(_i))!==null;){let z=ir[0].startsWith("\\");ar.push({tag:ir[1],isEscaped:z})}let lr=[],ws=null;for(let z=0;z<ar.length;z++){let{tag:Pe,isEscaped:an}=ar[z];if(!an)try{let Ee=Pe.trim().replace(/^["']|["']$/g,""),ot=/[:#]L?(\d+)(?:-L?(\d+))?$/i,ze=Ee.match(ot),et=Ee,ge=null,Wt=null;ze&&(ge=parseInt(ze[1],10),Wt=ze[2]?parseInt(ze[2],10):ge,et=Ee.slice(0,ze.index));let tt=te.resolve(process.cwd(),et);if(Fe.existsSync(tt)&&Fe.statSync(tt).isFile()){let K=et.toLowerCase(),oe=K.endsWith(".pdf"),Ke=K.endsWith(".docx")||K.endsWith(".doc")||K.endsWith(".ppt")||K.endsWith(".pptx")||K.endsWith(".xls")||K.endsWith(".xlsx"),mn=/\.(png|jpg|jpeg|webp|gif|bmp)$/.test(K),jt=mn||oe||Ke,Rn=u==="Google"||bt(e);if(jt&&!Rn){let je=`\u2718 Unsupported Modality: ${te.basename(et)}`,ke=115;process.stdout.isTTY&&(ke=process.stdout.columns-5||120);let Ve=[je],so=Math.max(...Ve.map(qn=>qn.length)),hn=Math.min(so+4,ke),Go=Ve.map(qn=>`${qn.padEnd(hn-2).substring(0,hn-2)}`).join(`
|
|
1035
|
+
`);yield{type:"visual_feedback",content:sn(`${Go}
|
|
1036
|
+
`)};continue}if(ge===null&&!jt){let je=0;try{je=Fe.readFileSync(tt,"utf8").split(/\r\n|\r|\n/).length}catch{}if(je>300){let ke=`\u21B7 Skipped (Too Large): ${te.basename(et)}`,Ve=115;process.stdout.isTTY&&(Ve=process.stdout.columns-5||120);let so=Math.min(ke.length+4,Ve),hn=ke.padEnd(so-2).substring(0,so-2);yield{type:"visual_feedback",content:sn(`${hn}
|
|
1037
|
+
`)};continue}}let On=ge!==null?ge:1,no=Wt!==null?Wt:ge!==null?ge:On+299;no-On>300&&(no=On+300);let bs=`path=${JSON.stringify(et)}, startLine=${On}, endLine=${no}`,it=await ts(bs,{isMultiModal:Rn}),Xe=!1,Gt="",oo=null;if(typeof it=="string"?it.trim().startsWith("ERROR")?Xe=!0:Gt=it:it&&typeof it=="object"&&it.binaryPart?(oo=it.binaryPart,Gt=it.text||""):Xe=!0,!Xe){let je="";if(mn?(je=`\u2714 Processed: ${te.basename(et)}`,ws=oo):oe||Ke?(je=`\u2714 Auto-Analysed: ${te.basename(et)}`,ws=oo):(je=`\u2714 Auto-Read: ${te.basename(et)}`,lr.push(Gt)),je){let ke=115;process.stdout.isTTY&&(ke=process.stdout.columns-5||120);let Ve=[je],so=Math.max(...Ve.map(qn=>qn.length)),hn=Math.min(so+4,ke),Go=Ve.map(qn=>`${qn.padEnd(hn-2).substring(0,hn-2)}`).join(`
|
|
1038
|
+
`);yield{type:"visual_feedback",content:sn(`${Go}
|
|
1036
1039
|
`)}}}}}catch{}}let $i="";lr.length>0&&($i=`[Tagged File Contents] Auto Read User Tagged files by System, No need to re-read
|
|
1037
1040
|
`+lr.join(`
|
|
1038
1041
|
|
|
@@ -1043,13 +1046,13 @@ Instead, output in chat the exact string you WOULD have produced & wait for syst
|
|
|
1043
1046
|
`:"",kl=process.env.forcedReasoning||!1,Ai=`[System Metadata]
|
|
1044
1047
|
Time: ${Ze}${l?.dynamicDirAwareness?Ei:""}${fe?`
|
|
1045
1048
|
WARNING: CWD Changed from previous: "${qe}" to current: "${process.cwd()}", write change in chat to avoid future path mismatches
|
|
1046
|
-
`:""}${O}${
|
|
1049
|
+
`:""}${O}${Hn}
|
|
1047
1050
|
[/Metadata]
|
|
1048
1051
|
${Ti}${a!=="Fast"&&(u==="Mistral"&&!vo(e)||a!=="xHigh"&&u==="Google")?`${u==="Mistral"&&!vo(e)||e.toLowerCase().startsWith("gemma")||kl?`[system] strictly follow thinking policy as high priority. do not start a response without <think>...</think> [/system]
|
|
1049
1052
|
`:""}`:""}[system] exact tool string [tool:functions.ToolName(arg="value")] in chat [/system]
|
|
1050
|
-
${$i}${bl}[user prompt] ${xl.trim()} [/user prompt]`.trim(),Mi={role:"user",text:Ai};ws&&(Mi.binaryPart=ws),x.forEach(z=>{z.text&&z.role==="agent"&&(z.text=
|
|
1053
|
+
${$i}${bl}[user prompt] ${xl.trim()} [/user prompt]`.trim(),Mi={role:"user",text:Ai};ws&&(Mi.binaryPart=ws),x.forEach(z=>{z.text&&z.role==="agent"&&(z.text=rn(z.text))}),x.push(Mi),Ti&&n[n.length-1]?.id&&(yield{type:"summary_injected",content:{id:n[n.length-1].id,text:Ai}});let In=null,jo=i==="Flux"?100:10;jo=i.toLowerCase().includes("cu")?250:jo;let Tn=16;yield{type:"status",content:"Connecting"},Lt=!1;let vi=[],xs=!1;for(let z=0;z<=jo;z++){let Pe=await Li("agent",t);if(!Pe.allowed)throw new Error(Pe.reason||`Budget Exhausted for Provider (${u||"Agent"})`);let an=[];if(xs=!1,i==="ICU"||i==="FluxCU")try{yield{type:"status",content:"Capturing Screen"},await new Promise(Te=>setTimeout(Te,1e3));let pe=await Ui();if(pe&&pe.base64){let Te="[system] Fresh Gridded Screen Feedback Captured. Use numeric coordinates. Old screenshots will be removed when new screenshot is captured, summarize in text if context is needed later [/system]",me={inlineData:{mimeType:pe.mimeType,data:pe.base64}},Ht=l?.imageHistoryCU||"Standard",Pt=Ht==="Low"?1:Ht==="Extended"?5:3,Mt=x.filter(ht=>Array.isArray(ht.parts)&&ht.parts.some(dt=>dt.inlineData));if(Mt.length>=Pt){let ht=Mt.length-Pt+1;for(let dt=0;dt<ht;dt++){let cn=Mt[dt];Array.isArray(cn.parts)&&(cn.parts=cn.parts.filter(qt=>!qt.inlineData))}}if(x.length>0&&x[x.length-1].role==="user"){let ht=x[x.length-1];typeof ht.text=="string"&&(ht.text+=`
|
|
1051
1054
|
|
|
1052
|
-
${Te}`,Array.isArray(
|
|
1055
|
+
${Te}`,Array.isArray(ht.parts)||(ht.parts=[{text:ht.text}]),ht.parts.push(me))}else x.push({role:"user",text:Te,parts:[{text:Te},me]})}}catch(pe){console.error("Vision screenshot capture error:",pe)}if(l?.compression===0&&(f?.tokens||0)>L&&(x=Ta(x,6)),z>0?yield{type:"status",content:"Working"}:yield{type:"status",content:"Connecting"},Lt){try{let{clearPendingNudges:pe}=await import("./subagent_state-LZCOZSUJ.js");pe()}catch{}yield{type:"status",content:"Request Cancelled"},yield{type:"text",content:`
|
|
1053
1056
|
|
|
1054
1057
|
\x1B[33m\u24D8 Request Cancelled\x1B[0m`};break}try{let{consumePendingNudges:pe}=await import("./subagent_state-LZCOZSUJ.js"),Te=pe();if(Te&&Te.length>0){let me=Te.join(`
|
|
1055
1058
|
|
|
@@ -1061,120 +1064,120 @@ ${me}`:x.push({role:"user",text:me}),yield{type:"status",content:"Subagent Updat
|
|
|
1061
1064
|
[question] ${pe.replace("/btw","").trim()} [/question]`:x.push({role:"user",text:`[system] User question. Resolve this specific query within '[ANSWER]...[/ANSWER]' concisely, naturally [/system]
|
|
1062
1065
|
[question] ${pe.replace("/btw","").trim()} [/question]`}):x.length>0&&x[x.length-1].role==="user"?x[x.length-1].text+=`
|
|
1063
1066
|
|
|
1064
|
-
[STEERING HINT from USER, High Priority] ${pe.trim()} [/STEERING HINT]`:x.push({role:"user",text:`[STEERING HINT from USER, High Priority] ${pe.trim()} [/STEERING HINT]`}),yield{type:"status",content:`${pe.startsWith("/btw")?"Question Forwarded...":"Steering Hint Injected..."}`})}let Ee,ot=!1,ze=1,et=1,ge="",
|
|
1067
|
+
[STEERING HINT from USER, High Priority] ${pe.trim()} [/STEERING HINT]`:x.push({role:"user",text:`[STEERING HINT from USER, High Priority] ${pe.trim()} [/STEERING HINT]`}),yield{type:"status",content:`${pe.startsWith("/btw")?"Question Forwarded...":"Steering Hint Injected..."}`})}let Ee,ot=!1,ze=1,et=1,ge="",Wt=null,tt=null,ln=null,K=0,oe=[],Ke=0,mn=!1,jt=!1,Rn=!1,On=!1,no=!0,bs=0,it="",Xe="",Gt=!1,oo=!1,je=!0,ke=e,Ve="";for(;ze<=Tn&&et<=Tn&&!ot&&!Lt;){let pe=!1;try{ge="",no&&(process.stdout.isTTY&&process.stdout.write("\x1B]0;Working...\x07"),yield{type:"turn_reset",content:!0},no=!1,et===1&&(it=""));let Te=N=>{if(!N||!N.includes("[tool:"))return N;let ae="",H=wi(N);H&&(ae=H.fullBlock,N=H.remainingText),N=N.replace(fd,(we,_e)=>_e.includes("[tool:")?_e.trim():we);let q="",Re=0;for(;Re<N.length;){let we=N.indexOf("[tool:",Re);if(we===-1){q+=fl(N.substring(Re));break}let _e=N.substring(Re,we);q+=fl(_e);let st=-1,G=null,re=0;for(let Ue=we;Ue<N.length;Ue++){let A=N[Ue];if(G){if(A===G){let Be=0;for(let ve=Ue-1;ve>=0&&N[ve]==="\\";ve--)Be++;Be%2===0&&(G=null)}}else if(A==='"'||A==="'"||A==="`")G=A;else if(A==="(")re++;else if(A===")")re--;else if(A==="]"&&re<=0){st=Ue;break}}if(st===-1){q+=N.substring(we);break}q+=N.substring(we,st+1),Re=st+1}return ae+q},me=x.filter(N=>(N.role==="user"||N.role==="agent"||N.role==="system")&&!String(N.id).startsWith("welcome")&&!N.isMeta&&!N.isTerminalRecord&&!(N.text&&N.text.startsWith("[TERMINAL_RECORD]"))).map((N,ae,H)=>{let q=N.text||"";h||(q=q.replace(/\s*\n*\s*\[Prompted on:.*?\]/gi,"").trim()),N.role==="agent"&&(q=Te(q),q=q.replace(/\[turn:\s*finish\]/gi,"").replace(/\[\[END\]\]/gi,"").trim(),q=q.replaceAll("\x1B[33m\u24D8 Request Cancelled\x1B[0m","*User Cancelled Response Generation*"));let Re=[];return Array.isArray(N.parts)&&N.parts.length>0?Re=N.parts.map(we=>{if(we.text){let _e=we.text;return h||(_e=_e.replace(/\s*\n*\s*\[Prompted on:.*?\]/gi,"").trim()),N.role==="agent"&&(_e=Te(_e),_e=_e.replace(/\[turn:\s*finish\]/gi,"").replace(/\[\[END\]\]/gi,"").trim(),_e=_e.replaceAll("\x1B[33m\u24D8 Request Cancelled\x1B[0m","*User Cancelled Response Generation*")),{text:_e}}return we}):Re=[{text:q}],N.binaryPart&&bt(ke)&&H.slice(ae+1).filter(_e=>_e.role==="user"&&!_e.text?.startsWith("[TOOL RESULT]")).length<=2&&Re.push(N.binaryPart),{role:N.role==="user"||N.role==="system"?"user":"model",parts:Re}});for(let N=0;N<me.length;N++){let ae=me[N],H=ae.parts?.[0]?.text||"";if(ae.role==="model"&&/\[tool:/i.test(H)){let q=-1;for(let Re=N+1;Re<me.length;Re++){let we=me[Re],_e=we.parts?.[0]?.text||"";if(we.role==="user"&&_e.startsWith("[TOOL RESULT]")){q=Re;break}}if(q!==-1&&q!==N+1){let[Re]=me.splice(q,1);me.splice(N+1,0,Re)}}}for(let N=me.length-2;N>=0;N--){let ae=me[N],H=me[N+1];ae.role==="user"&&H.role==="user"&&(H.parts?.[0]?.text||"").trim().startsWith("[SYSTEM")&&me.splice(N,1)}let Ht=[];for(let N=0;N<me.length;N++){let ae=me[N];if(Ht.length===0)Ht.push(ae);else{let H=Ht[Ht.length-1];H.role===ae.role?(H.parts[0].text+=`
|
|
1065
1068
|
|
|
1066
|
-
`+(ae.parts?.[0]?.text||""),ae.parts?.length>1&&H.parts.push(...ae.parts.slice(1))):
|
|
1069
|
+
`+(ae.parts?.[0]?.text||""),ae.parts?.length>1&&H.parts.push(...ae.parts.slice(1))):Ht.push(ae)}}me.length=0,me.push(...Ht),ke=e;let Pt=`${d}|${u}|${i}|${a}|${ke}|${JSON.stringify(r)}|${!!l?.dynamicDirAwareness}|${!!l?.subAgents}`,Mt=ko.key===Pt&&ko.value;if((process.env.I_HAVE_TOO_MUCH_MONEY==="true"||process.env.I_HAVE_TOO_MUCH_MONEY===!0)&&(Mt=!1),Mt)Ve=ko.value;else{let N=u==="Mistral"?!!vo(ke):!(ke||"gemma").toLowerCase().startsWith("gemma");Ve=xa(r,((ke||"gemma").toLowerCase().startsWith("gemma"),a),i,l,h,$,u,u==="Google"?!0:y,N,d),l?.dynamicDirAwareness||(Ve+=`
|
|
1067
1070
|
${Ei.replace(`
|
|
1068
1071
|
**Directory Structure**`,`
|
|
1069
|
-
-- Directory Structure --`)}`),ko.key=
|
|
1070
|
-
${ae} [/ERROR]`),yield{type:"status",content:"Working"}}let
|
|
1072
|
+
-- Directory Structure --`)}`),ko.key=Pt,ko.value=Ve}let dt=me[me.length-1];if(Hs()&z>0){await new Promise(H=>setTimeout(H,2500)),yield{type:"status",content:"Verifying"};let N=await xo(),ae=N?N.diagnostics:null;ae&&dt&&dt.role==="user"&&dt.parts?.[0]?.text&&(dt.parts[0].text+=`
|
|
1073
|
+
${ae} [/ERROR]`),yield{type:"status",content:"Working"}}let cn=u==="Mistral"||u==="Google"&&e?.toLowerCase().startsWith("gemma");if(l?.advanceRollback&&dt&&dt.role==="user"&&dt.parts?.[0]?.text?.startsWith("[TOOL RESULT]"))try{let N=await Zn.getLatestFileChanges(d);if(N&&(N.newFiles.length>0||N.modifiedFiles.length>0||N.deletedFiles.length>0)){let ae=`
|
|
1071
1074
|
[system] File Changes:
|
|
1072
1075
|
`;for(let q of N.newFiles)ae+=`* ${q} (created)
|
|
1073
1076
|
`;for(let q of N.modifiedFiles)ae+=`* ${q} (modified)
|
|
1074
1077
|
`;for(let q of N.deletedFiles)ae+=`* ${q} (deleted)
|
|
1075
|
-
`;ae+="[/system]",
|
|
1076
|
-
[system] WARNING, Turn Limit Impending: Step ${
|
|
1078
|
+
`;ae+="[/system]",dt.parts[0].text+=ae;let H=-1;for(let q=x.length-1;q>=0;q--)if(x[q].role==="user"&&x[q].text?.startsWith("[TOOL RESULT]")){H=q;break}H!==-1&&(x[H].text+=ae)}}catch{}let qt=Math.floor(jo*(i==="Flux"?.98:.8)),Ft=z+1;Ft>=qt&&dt&&dt.parts?.[0]&&(dt.parts[0].text+=`
|
|
1079
|
+
[system] WARNING, Turn Limit Impending: Step ${Ft}/${jo}. Wrap up quickly/prompt user to continue. [/system]`);let Nt=new Promise((N,ae)=>{E.signal.aborted&&ae(new DOMException("The user aborted a request.","AbortError")),E.signal.addEventListener("abort",()=>{ae(new DOMException("The user aborted a request.","AbortError"))})});Nt.catch(()=>{});let Et=me;if(u==="Ollama")Ee=yi(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1,l?.ollamaEndpoint||"Cloud");else if(u==="OpenRouter")Ee=Ys(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1,d);else if(u==="DeepSeek")Ee=zs(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="Mistral")Ee=Ks(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1,d);else if(u==="NVIDIA"){let N=Vs(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);Ee=al(N,ke)}else if(u==="CrofAI")Ee=Xs(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="InferX")Ee=Js(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="SenseNova")Ee=Qs(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="AIHubMix")Ee=Zs(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="Poolside")Ee=er(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="9router"||u==="9Router")Ee=tr(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else if(u==="ExpLabs"||u==="ExperientialLabs")Ee=nr(t.apiKey,ke,Et,Ve,a,i,y,E.signal,1);else{let ae=ki(t?.apiKey).models.generateContentStream({model:ke||"gemini-3-flash-preview",contents:Et,config:{systemInstruction:Ve,mediaResolution:"MEDIA_RESOLUTION_HIGH",safetySettings:[{category:to.HARM_CATEGORY_HARASSMENT,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_HATE_SPEECH,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_SEXUALLY_EXPLICIT,threshold:eo.BLOCK_NONE},{category:to.HARM_CATEGORY_DANGEROUS_CONTENT,threshold:eo.BLOCK_NONE}],temperature:1.05,thinkingConfig:(()=>{let H=(ke||"").toLowerCase(),q=H.includes("gemma-4")||H.startsWith("gemma"),Re=H.includes("gemini-3");if(q||Re)return q?a.toLowerCase()!=="xhigh"?{includeThoughts:!1,thinkingLevel:mt.MINIMAL}:{includeThoughts:!0,thinkingLevel:mt.HIGH}:{includeThoughts:!0,thinkingLevel:{Fast:H.includes("pro")?mt.LOW:mt.MINIMAL,Low:mt.LOW,Medium:mt.MEDIUM,Standard:mt.MEDIUM,High:mt.HIGH,xHigh:mt.HIGH}[a]||mt.MEDIUM};{let we={Fast:0,Low:512,Medium:2048,Standard:2048,High:16384,xHigh:24576}[a]||2048;return we===0?{includeThoughts:!1}:{includeThoughts:!0,thinkingBudget:we}}})()}},{signal:E.signal});Ee=await Promise.race([ae,Nt])}ge="",Wt=null,ln=null,oe=[],Ke=0,yield{type:"model_update",content:null},Xe="",Gt=it.length>0;let En="",cr=Date.now(),io=async function*(){if(u==="Google"&&En){let N=Ho(En);for(let ae of N)yield ae;En="",cr=Date.now()}},Ii=!0,ao="",Ro=!1,zt=null,Rl={tool:{startPrefix:"[tool",fullPrefix:"[tool:functions.",endTag:"]"},agent:{startPrefix:"[agent",fullPrefix:"[agent:generalist.",endTag:"]"},end:{startPrefix:"[[END]]",fullPrefix:"[[END]]",endTag:"[[END]]"},kimi_section:{startPrefix:"<|tool_calls_section_begin|>",fullPrefix:"<|tool_calls_section_begin|>",endTag:"<|tool_calls_section_end|>"},kimi_call:{startPrefix:"<|tool_call_begin|>",fullPrefix:"<|tool_call_begin|>",endTag:"<|tool_call_end|>"}},Ho=N=>{let ae=[],H=N;for(;H.length>0;)if(Ro){let q=ao+H,Re=Rl[zt];if(Re){let st=!1;if(q.length<Re.startPrefix.length?Re.startPrefix.startsWith(q)||(st=!0):q.startsWith(Re.startPrefix)?q.length>=Re.fullPrefix.length&&!q.startsWith(Re.fullPrefix)&&(st=!0):st=!0,st){ae.push({type:"text",content:q}),ao="",Ro=!1,zt=null,H="";break}}let we=-1,_e=Re?Re.endTag:"]";if(zt==="tool"||zt==="agent"){let st=0,G=null,re=0,Ue=!1;for(let A=0;A<q.length;A++){let Be=q[A];if(G){if(Be===G){let ve=0;for(let Z=A-1;Z>=0&&q[Z]==="\\";Z--)ve++;ve%2===0&&(G=null)}}else if(Be==='"'||Be==="'"||Be==="`")G=Be;else if(Be==="(")st++,Ue=!0;else if(Be===")")st--;else if(Be==="[")re++;else if(Be==="]"){if(Ue&&st===0&&re===1){we=A;break}re--}}}else we=q.indexOf(_e);if(we!==-1){let st=_e.length;if(!zt?.startsWith("kimi")){let G=q.substring(0,we+st);ae.push({type:"text",content:G})}ao="",Ro=!1,zt=null,H=q.substring(we+st)}else{let st=zt?.startsWith("kimi")?8192:512;q.length>st?(ae.push({type:"text",content:q}),ao="",Ro=!1,zt=null):ao=q,H="";break}}else{let q=H.indexOf("[tool"),Re=H.indexOf("[agent"),we=H.indexOf("[[END]]"),_e=H.indexOf("<|tool_calls_section_begin|>"),st=H.indexOf("<|tool_call_begin|>"),G=[{type:"tool",idx:q,start:"[tool",end:"]"},{type:"agent",idx:Re,start:"[agent",end:"]"},{type:"end",idx:we,start:"[[END]]",end:"[[END]]"},{type:"kimi_section",idx:_e,start:"<|tool_calls_section_begin|>",end:"<|tool_calls_section_end|>"},{type:"kimi_call",idx:st,start:"<|tool_call_begin|>",end:"<|tool_call_end|>"}].filter(re=>re.idx!==-1).sort((re,Ue)=>re.idx-Ue.idx);if(G.length>0){let re=G[0];re.idx>0&&ae.push({type:"text",content:H.substring(0,re.idx)}),Ro=!0,zt=re.type,ao="",H=H.substring(re.idx)}else{let re=["[tool","[agent","[[END]]","<|tool_calls_section_begin|>","<|tool_call_begin|>"],Ue=-1;for(let A of re){for(let Be=A.length-1;Be>0;Be--)if(H.endsWith(A.substring(0,Be))){Ue=H.length-Be;let ve=re.indexOf(A);ve===0?zt="tool":ve===1?zt="agent":ve===2?zt="end":ve===3?zt="kimi_section":zt="kimi_call";break}if(Ue!==-1)break}if(Ue!==-1)Ue>0&&ae.push({type:"text",content:H.substring(0,Ue)}),Ro=!0,ao=H.substring(Ue),H="";else{ae.push({type:"text",content:H});break}}}return ae},El=Ee[Symbol.asyncIterator]();for(;;){let{value:N,done:ae}=await Promise.race([El.next(),Nt]);if(ae)break;if(N&&N.type==="status"){yield N;continue}let H="",q=N.candidates?.[0]?.content?.parts;if(q&&q.length>0)for(let we of q){let _e=typeof we.text=="string"?we.text:we.text?parseChunkText(we.text):"";we.thought?_e&&(pe||(H+="<think>",pe=!0),H+=_e):_e&&(pe&&(H+="</think>",pe=!1),H+=_e)}else N.text&&pe&&(H+="</think>",pe=!1);H=ld(H);let Re=H?H.trim().split(/\s+/).filter(Boolean).length:0;if(t&&typeof t.onTokenChunk=="function"&&t.onTokenChunk(H,Re),Ii&&(yield{type:"status",content:"Thinking"},Ii=!1),Lt){yield{type:"status",content:"Request Cancelled"},yield{type:"text",content:`
|
|
1077
1080
|
|
|
1078
|
-
\x1B[33m\u24D8 Request Cancelled\x1B[0m`};break}if(H){if(
|
|
1079
|
-
`).length;$e=
|
|
1080
|
-
`:""}${
|
|
1081
|
-
`)},je=!1}oe.push({role:"user",text:`[TOOL RESULT]: ERROR: ${he}`}),yield{type:"tool_result",content:`[TOOL RESULT]: ERROR: ${he}`},Ke++;continue}}if(t.onToolApproval&&(A==="write_file"||A==="update_file"||A==="exec_command")){let
|
|
1081
|
+
\x1B[33m\u24D8 Request Cancelled\x1B[0m`};break}if(H){if(Gt){if(Xe+=H,Xe.length>=64){let G=0,re=Math.min(it.length,Xe.length);for(let A=re;A>=10;A--)if(it.endsWith(Xe.substring(0,A))){G=A;break}let Ue=Xe.substring(G);if(Ue){let Be=/(?:<(think|thought)>|\[(think|thought)\])(?:(?!(?:<\/(?:think|thought)>|\[\/(?:think|thought)\]))[\s\S])*$/i.test(it)?Ue.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,""):Ue.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])[\s\S]*?(?:<\/(think|thought)>|\[\/(think|thought)\])\s*/gi,"").replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,"");if(Be)if(ge+=Be,u==="Google")En+=Be;else{yield*io();let ve=Ho(Be);for(let Z of ve)yield Z}}Gt=!1,Xe=""}continue}else if(ge+=H,u==="Google")En+=H;else{yield*io();let G=Ho(H);for(let re of G)yield re}let we=gd(ge);if(we.inside){oo=!0,ln||(ln=Date.now());let re={Ask:"ask",AskUser:"ask",WebSearch:"web_search",WebScrape:"web_scrape",ReadFile:"view_file",ReadFolder:"read_folder",WriteFile:"write_file",PatchFile:"update_file",WritePDF:"write_pdf",WriteDoc:"write_docx",Run:"exec_command",SearchKeyword:"search_keyword",CodeSearch:"search_keyword",code_search:"search_keyword",Code_Search:"search_keyword",codesearch:"search_keyword",Memory:"memory",file_map:"file_map",FileMap:"file_map",Chat:"chat",chat:"chat",GenerateImage:"generate_image",generate_image:"generate_image",todo:"todo",Todo:"todo",goal:"todo",Goal:"todo",Invoke:"invoke",InvokeSync:"invoke_sync",getProgress:"get_progress",GetProgress:"get_progress",Cancel:"cancel",Await:"await",Answer:"answer",Steer:"steer",steer:"steer"}[we.toolName]||we.toolName,Ue=we.args||"",A=null;if(["write_file","update_file","view_file","read_folder","write_pdf","write_docx","search_keyword","generate_image","file_map","invoke","invoke_sync","get_progress","await","answer"].includes(re)){let ve=D(Ue),Z=ve.path||ve.targetFile||ve.TargetFile||ve.directory,_n=ve.keyword,lo=ve.title||ve.task,zn=ve.id||ve.taskId,Ce=ve.timeout||ve.time;if(_n!=null)A=String(_n).replace(bo,"");else if(Z)A=te.basename(String(Z).replace(bo,"").replace(ll,"/"));else if(lo&&(re==="invoke"||re==="invoke_sync"))A=String(lo).replace(bo,"").substring(0,30);else if(zn&&re==="get_progress")A=String(zn).replace(bo,"");else if(Ce&&re==="await"){let Kt=parseFloat(String(Ce).replace(bo,""));isNaN(Kt)?A=String(Ce).replace(bo,""):(Kt<5&&(Kt=5),Kt>120&&(Kt=120),A=(Ln=>{if(Ln>=60){let ur=Math.floor(Ln/60),Eo=Ln%60;return`${ur}m${Eo>0?` ${Eo}s`:""}`}return`${Ln}s`})(Kt))}else{let Kt=Ue.match(rd);if(Kt){let Qt=Kt[1].replace(bo,"");re==="invoke"||re==="invoke_sync"||re==="get_progress"?A=Qt.substring(0,30):A=re==="search_keyword"||re==="file_map"?Qt:te.basename(Qt.replace(ll,"/"))}}}let Be=`${xi[re]||re}${A?` ${A}`:""}`;if((re!==Wt||A!==tt)&&(Wt=re,tt=A,yield{type:"status",content:`${Be}`},process.stdout.isTTY)){let Z={WebSearch:"Searching",web_search:"Searching",WebScrape:"Reading",web_scrape:"Reading",ReadFile:"Reading",read_file:"Reading",ReadFolder:"Reading",read_folder:"Reading",WriteFile:"Writing",write_file:"Writing",UpdateFile:"Editing",update_file:"Editing",WritePdf:"Creating",write_pdf:"Creating",WriteDocx:"Creating",write_docx:"Creating",SearchKeyword:"Searching",search_keyword:"Searching",CodeSearch:"Searching",code_search:"Searching",Run:"Executing",Ask:"User Input Required",AskUser:"User Input Required",Memory:"Updating Memory",GenerateImage:"Generating",InvokeSync:"Sub-Agent Working",invoke_sync:"Sub-Agent Working",Invoke:"Working",invoke:"Working",GetProgress:"Checking Progress",get_progress:"Checking Progress",Cancel:"Stopping Generalist",cancel:"Stopping Generalist",Await:"Waiting",await:"Waiting",EmergencyRollback:"Rolling the Ball",Answer:"Answering Sub-Agent",answer:"Answering Sub-Agent",Steer:"Steering Sub-Agent",steer:"Steering Sub-Agent",Click:"Clicking",click:"Clicking",Drag:"Dragging",drag:"Dragging",Scroll:"Scrolling",scroll:"Scrolling",KeyboardTyping:"Typing",keyboard_typing:"Typing",KeyPress:"Pressing Key",key_press:"Pressing Key",RecaptureScreen:"Recapturing Screen",recapture_screen:"Recapturing Screen"}[re]||"Working";process.stdout.write(`\x1B]0;${Z}...\x07`)}}if(ge.length-bs>150){bs=ge.length;let G=yl(ge,!1),re=wi(G),Ue=re?(re.innerContent||"").trim():"",A=Ue.split(/[.!?]\s+/),Be=new Set(A),ve=A.length>10?(A.length-Be.size)/A.length:0,Z=Ue.split(/\s+/).filter(Ie=>Ie.length>0).length,_n=.6,lo=.8,zn=!1;if((u.toLowerCase().includes("google")||u.toLowerCase().includes("mistral"))&&((ke||"").toLowerCase().startsWith("gemma")||(ke||"").toLowerCase().includes("stral"))){let I={low:256,medium:1024,high:8192,max:16384,xhigh:16384}[a?.toLowerCase()]||2500;zn=Z>I}if(ve>_n||zn){yield{type:"status",content:`${ve>_n?"Reasoning Loop Detected":"Thinking Budget Exceeded"}. Re-centering...`},jt=!0,await new Promise(I=>setTimeout(I,3e3));break}let Qt=pl(ge).trim().split(/[.!?]\s+/),Ln=new Set(Qt);if((Qt.length>10?(Qt.length-Ln.size)/Qt.length:0)>lo){yield{type:"status",content:"Response Loop Detected. Re-centering..."},jt=!1,On=!0,await new Promise(Ie=>setTimeout(Ie,3e3));break}let Eo=G.replace(Qc,"").replace(Zc,"").replace(ed,"").replace(td,""),Vt=Eo.toLowerCase().split(/\s+/).map(Ie=>Ie.replace(nd,"")).filter(Ie=>Ie.length>0),Dn=!1;if(Vt.length>=10)for(let Ie=1;Ie<=15;Ie++){let I=Math.max(3,Math.ceil(10/Ie));if(Vt.length<Ie*I)continue;let V=Vt.slice(Vt.length-Ie),ce=V.join(" ");if(Ie>1&&ce===V.slice(0,Math.floor(Ie/2)).join(" ").repeat(2).trim())continue;let he=!0;for(let be=1;be<I;be++)if(Vt.slice(Vt.length-Ie*(be+1),Vt.length-Ie*be).join(" ")!==ce){he=!1;break}if(he){Dn=!0;break}}if(!Dn){let Ie=Eo.toLowerCase().replace(od,"");if(Ie.length>=20)for(let I=1;I<=10;I++){let V=Math.max(5,Math.ceil(16/I));if(Ie.length<I*V)continue;let ce=Ie.substring(Ie.length-I),he=!0;for(let be=1;be<V;be++)if(Ie.substring(Ie.length-I*(be+1),Ie.length-I*be)!==ce){he=!1;break}if(he){Dn=!0;break}}}if(Dn){yield{type:"status",content:"Stuttering Detected. Re-centering..."},jt=!1,Rn=!0,await new Promise(Ie=>setTimeout(Ie,3e3));break}}let _e=rn(ge),st=rr(_e);for(;st.length>Ke;){yield*io();let G=st[Ke],re=Date.now(),A={Ask:"ask",AskUser:"ask",WebSearch:"web_search",WebScrape:"web_scrape",ReadFile:"view_file",ReadFolder:"read_folder",WriteFile:"write_file",PatchFile:"update_file",WritePDF:"write_pdf",WriteDoc:"write_docx",Run:"exec_command",SearchKeyword:"search_keyword",CodeSearch:"search_keyword",code_search:"search_keyword",Code_Search:"search_keyword",codesearch:"search_keyword",Memory:"memory",file_map:"file_map",FileMap:"file_map",Chat:"chat",chat:"chat",GenerateImage:"generate_image",generate_image:"generate_image",todo:"todo",Todo:"todo",goal:"todo",Goal:"todo",Invoke:"invoke",InvokeSync:"invoke_sync",getProgress:"get_progress",GetProgress:"get_progress",Await:"await",await:"await",AwaitSubagent:"await",awaitSubagent:"await",Answer:"answer",answer:"answer",AnswerSubagent:"answer",answerSubagent:"answer",Steer:"steer",steer:"steer",SteerSubagent:"steer",steerSubagent:"steer",Cancel:"cancel",cancel:"cancel",Click:"click",click:"click",Drag:"drag",drag:"drag",Scroll:"scroll",scroll:"scroll",KeyboardTyping:"keyboard_typing",keyboard_typing:"keyboard_typing",KeyPress:"key_press",key_press:"key_press",RecaptureScreen:"recapture_screen",recapture_screen:"recapture_screen",EmergencyRollback:"EmergencyRollback"}[G.toolName]||G.toolName,Be=xi[A]||G.toolName,ve=So(A,G.args);yield{type:"status",content:`${Be}${ve?` ${ve}`:""}`};let Z="";if(A==="click"){let I=D(G.args);Z=`\u2714 Clicked: ${I.intendedClickText?`${I.intendedClickText}`:""}`}else if(A==="drag"){let I=D(G.args);Z=`\u2714 Dragged: Cell ${I.fromGridId||""} \u2192 Cell ${I.toGridId||""}`}else if(A==="scroll"){let I=D(G.args);Z=`\u2714 Scrolled: ${I.direction||"down"} (${I.amount||1})`}else if(A==="keyboard_typing"){let I=D(G.args);Z=`\u2714 Typed: ${I.text?`"${I.text.length>20?I.text.substring(0,20)+"...":I.text}"`:""}`}else if(A==="key_press")Z=`\u2714 Pressed Key: ${D(G.args).key||""}`;else if(A==="recapture_screen")Z="\u2714 Recaptured Screen";else if(A==="web_search"){let{query:I,limit:V=10,aiMode:ce=!1}=D(G.args);Z=`${I?"\u2714":"\u2718"} ${ce?"AI Search":"Searched"}: ${I?`${I}`:"No Search Query"}${ce===!1&&I?` \u2192 ${V}`:""}`}else if(A==="web_scrape"){let I=D(G.args).url||null;Z=`${I?"\u2714":"\u2718"} Visited: ${I||"No Source"}`}else if(A==="view_file"){let{path:I,StartLine:V,EndLine:ce,start_line:he,end_line:be,startLine:Ge,endLine:Oe}=D(G.args),Se=V||he||Ge,Y=ce||be||Oe,ie=parseInt(Se)||1,ue=parseInt(Y)||(Se?ie+800:800),$e="...",Je=ue,Ae=(I||"").trim().toLowerCase().replaceAll("\\","/");if(Ae.startsWith("#skill"))Ae.startsWith("#skill/global/fluxflow")||Ae.startsWith("#skills/global/fluxflow")?Z="\u2714 Read Documentation":Z=`\u2714 Read Skill: ${te.basename(I.replaceAll("\\","/"))}`;else{try{let xe=te.resolve(process.cwd(),I);if(Fe.existsSync(xe)){let _t=Fe.readFileSync(xe,"utf8").split(`
|
|
1082
|
+
`).length;$e=_t,!Se&&!Y&&_t>800?Je=Math.min(50,_t):Je=Math.min(ue,_t)}}catch{}let De=(I||"").toLowerCase(),xt=De.endsWith(".pdf"),Le=De.endsWith(".docx")||De.endsWith(".doc")||De.endsWith(".ppt")||De.endsWith(".pptx")||De.endsWith(".xls")||De.endsWith(".xlsx"),rt=/\.(png|jpg|jpeg|webp|gif|bmp)$/.test(De);xt||Le?Z=`${I.length>0?"\u2714":"\u2718"} ${I?`Analyzed: ${te.basename(I)}`:"Analyzed: File Not Found"}`:rt?Z=`${I.length>0?"\u2714":"\u2718"} ${I?`Processed: ${te.basename(I)}`:"Processed: File Not Found"}`:Z=`${$e!=="..."?"\u2714":"\u2718"} Read: ${I?`${te.basename(I)} \u2192 ${$e!=="..."?`Lines ${ie} - ${Je} of ${$e}`:"File Not Found"}`:"File Not Found"}`}}else if(A==="list_files"||A==="read_folder"){let I=A==="list_files"?"List":"Browsed",V=D(G.args).path||null,ce=D(G.args).recurse||1;Z=`${V?"\u2714":"\u2718"} ${I}: ${V?`${V==="."?`./${ce>1?"*":""}`:`${V.replaceAll("\\","/")}${ce>1?`${V.endsWith("/")?"*":"/*"}`:`${V.endsWith("/")?"":"/"}`}`}`:"No Folder Selected"}`}else if(A==="write_file"||A==="update_file"){let I=A==="write_file"?"Created":"Edited",V=D(G.args).path||null;Z=`${V?"\u2714":"\u2718"} ${I}: ${V.replaceAll("\\","/")||"No File Changes"}`}else if(A==="write_pdf"){let I=D(G.args).path||null;Z=`${I?"\u2714":"\u2718"} Generated: ${I.replaceAll("\\","/")||"No PDF Generated"}`}else if(A==="write_docx"){let I=D(G.args).path||null;Z=`${I?"\u2714":"\u2718"} Generated: ${I.replaceAll("\\","/")||"No Docx Generated"}`}else if(A==="file_map"){let I=D(G.args).path;Z=`${I?"\u2714":"\u2718"} Indexed: ${I.replaceAll("\\","/")?""+I:"File Not Found"}`}else if(A.toLowerCase()==="search_keyword"||A.toLowerCase()==="todo")Z="";else if(A.toLowerCase()==="generate_image"){let{path:I,outputPath:V,output:ce}=D(G.args);Z=`\u2714 Generated: ${I||V||ce||"generated_image.png"}`}else if(A==="invoke_sync"||A==="InvokeSync"){let I=So(A,G.args);Z=`\u2714 Called Generalist${I?`: ${I}`:""}`}else if(A==="Invoke"||A==="InvokeAsync"||A==="invoke"){let I=So(A,G.args);Z=`\u2714 Started Generalist${I?`: ${I}`:""}`}else if(A==="get_progress"||A==="GetProgress"){let I=So(A,G.args);Z=`\u2714 Checked${I?`: ${I}`:""}`}else if(A==="cancel"){let I=So(A,G.args);Z=`\u{1F6C7} Cancelled${I?`: ${I}`:""}`}else if(A==="steer"||A==="Steer"){let I=So(A,G.args);Z=`\u2714 Steered${I?`: ${I}`:""}`}else if(A==="EmergencyRollback"){let{method:I}=D(G.args);Z=I==="forceRevert"?"":"\u2714 Rollback Point Checked"}else if(A==="await"||A==="Await"){let{time:I,timeout:V}=D(G.args),ce=parseFloat(V||I)||0;ce||(ce=120);let he=Oe=>{if(Oe>=60){let Se=Math.floor(Oe/60),Y=Oe%60;return`${Se}m${Y>0?` ${Y}s`:""}`}return`${Oe}s`},be=["Aligning Moon Phase","Contemplating Existence","Staring At Void","Delaying Professionally","Negotiating With Electrons","Touching Grass (virtually)","Panicking Softly","Rethinking Career Choices","Loading Cat Videos","Summoning Braincell #2","Pretending To Be Busy","Waiting For Motivation DLC","Rotating Internal Screaming","Downloading More RAM","Feeding The Hamsters","Gaslighting Scheduler","Performing Dramatic Pause","Buffering Social Energy","Calculating Regret","Reading Terms And Conditions","Becoming Sentient Briefly","Contacting Ancestors"];Z=`\u2714 ${be[Math.floor(Math.random()*be.length)]} \u2192 ${he(ce)}`}else A==="Answer"||A==="answer"?Z="\u2714 Resolved Sub-Agent Query":A==="exec_command"||A==="ask"?Z="":Z=`Executed: ${G.toolName}`;if(yield*io(),A==="exec_command"){let{command:I}=D(G.args);if(I&&t.systemSettings&&t.systemSettings.allowExternalAccess===!1){let V=[/[a-zA-Z]:[\\\/]/i,/^\//,/\.\.[\\\/]/,/\/etc\//,/\/var\//,/\/root\//,/\/bin\//,/\/usr\//],ce=te.resolve(process.cwd()).substring(0,3).toLowerCase(),he=Y=>{let ie=[],ue="",$e=null;for(let Je=0;Je<Y.length;Je++){let Ae=Y[Je];$e?(Ae===$e&&($e=null),ue+=Ae):Ae==='"'||Ae==="'"?($e=Ae,ue+=Ae):Ae==="&"&&Y[Je+1]==="&"||Ae==="|"&&Y[Je+1]==="|"?(ue.trim()&&(ie.push(ue.trim()),ue=""),Je++):Ae===";"||Ae==="|"||Ae==="&"?ue.trim()&&(ie.push(ue.trim()),ue=""):ue+=Ae}return ue.trim()&&ie.push(ue.trim()),ie},be=Y=>{let ie=[],ue="",$e=null;for(let Je=0;Je<Y.length;Je++){let Ae=Y[Je];$e?(Ae===$e&&($e=null),ue+=Ae):Ae==='"'||Ae==="'"?($e=Ae,ue+=Ae):/\s/.test(Ae)?ue&&(ie.push(ue),ue=""):ue+=Ae}return ue&&ie.push(ue),ie},Ge=Y=>{let ie=Y.replace(/^['"]|['"]$/g,"").trim();return!ie||process.platform==="win32"&&/^\/[a-zA-Z0-9?]+$/.test(ie)?!1:V.some(ue=>{if(ue.source==="[a-zA-Z]:[\\\\\\/]"){let $e=ie.match(/[a-zA-Z]:[\\\/]/i);return $e&&$e[0].toLowerCase()!==ce}return ue.test(ie)})};if(he(I).some(Y=>{let ie=be(Y);if(ie.length===0)return!1;let ue=ie[0].replace(/^['"]|['"]$/g,"").toLowerCase();if(["echo","printf","write-output"].includes(ue)){let Je=!1;return ie.some(Ae=>{let Zt=Ae.replace(/^['"]|['"]$/g,"");if(Zt===">"||Zt===">>"||Zt==="<")return Je=!0,!1;if(Zt.startsWith(">")||Zt.startsWith("<")){let De=Zt.replace(/^[><]+/,"");return Ge(De)}return Je?(Je=!1,Ge(Ae)):!1})}return ie.some(Je=>Ge(Je))})){let Y='Access Denied. Prohibited from accessing external directories while "External Workspace Access" is disabled.';t.onExecStart&&t.onExecStart(I||"No Command"),yield{type:"exec_start"},await new Promise(ie=>setTimeout(ie,50)),t.onExecChunk&&t.onExecChunk(`ERROR: ${Y}`),await new Promise(ie=>setTimeout(ie,50)),t.onExecEnd&&t.onExecEnd(),oe.push({role:"user",text:`[TOOL RESULT]: ERROR: ${Y}`}),yield{type:"tool_result",content:`[TOOL RESULT]: ERROR: ${Y}`},Ke++;continue}}t.onExecStart&&t.onExecStart(I||"No Command"),yield{type:"exec_start"}}let _n=D(G.args),lo=_n.path||_n.targetPath||null;if(lo){let I=t.systemSettings&&t.systemSettings.allowExternalAccess===!1,V=te.resolve(lo),ce=te.resolve(process.cwd());if(I&&!V.startsWith(ce)){let he="Access Denied. You are not allowed to access files outside the current workspace.";if(A==="write_file"||A==="update_file"){let Ge=`\u2718 ${A==="write_file"?"Write Canceled":"Edit Canceled"}: ${_n.path||"..."}`,Oe=115;process.stdout.isTTY&&(Oe=process.stdout.columns-5||120);let Se=Math.min(Ge.length+4,Oe),Y=`${Ge.padEnd(Se-2).substring(0,Se-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1083
|
+
`:""}${Y}
|
|
1084
|
+
`)},je=!1}oe.push({role:"user",text:`[TOOL RESULT]: ERROR: ${he}`}),yield{type:"tool_result",content:`[TOOL RESULT]: ERROR: ${he}`},Ke++;continue}}if(t.onToolApproval&&(A==="write_file"||A==="update_file"||A==="exec_command")){let V=t.systemSettings||{},ce=V.autoExec,he=null,be=!1,Ge=!1,Oe=!1;if(A==="exec_command"){let{command:De}=D(G.args),xt=(De||"").trim(),Le=(en,_t)=>{if(!_t)return!1;let gn=_t.split(",").map(tn=>tn.trim().toLowerCase()).filter(Boolean),ut=en.toLowerCase();return gn.some(tn=>ut.startsWith(tn))},rt=Le(xt,V.alwaysAskCommands),xe=Le(xt,V.autoApproveCommands);if(Ge=Le(xt,V.autoDisallowCommands),rt?be=!0:(xe||V.autoApproveGit&&/^git\s+commit\b/i.test(xt))&&(he="allow"),!be&&!he){if(V.networkAccess===!1){let _t=xt.trim().replace(/\s+/g," ").replace(/^['"]+|['"]+$/g,"").toLowerCase().split(" "),ut=_t[0].split("/").pop().split("\\").pop().replace(/\.exe$/,""),tn=new Set(["curl","wget","httpie","xh","ssh","scp","sftp","rsync","ftp","lftp","tftp","telnet","nc","netcat","socat","ping","traceroute","tracert","dig","nslookup","host","whois","nmap","docker","podman","kubectl","helm","gcloud","aws","az","terraform","ansible-playbook","nix","nix-env","apt","apt-get","dpkg","yum","dnf","pacman","zypper","brew","apk","choco","scoop","conda","mamba","aria2c","axel","smbclient","lynx","w3m","links","elinks","heroku","netlify","vercel","firebase","supabase","wrangler","flyctl","powershell","pwsh","certutil","bitsadmin","cloudflared","ngrok","tailscale","zerotier","rclone"]),ft=!1;tn.has(ut)&&(ft=!0);let at=Cn=>_t.slice(1).some($n=>Cn.includes($n)),pt=Cn=>{let $n=_t.findIndex(Pn=>Cn.includes(Pn)),_o=_t.findIndex(Pn=>["run","exec","test"].includes(Pn));return $n!==-1&&!(_o!==-1&&_o<$n)};ut==="git"&&at(["clone","pull","push","fetch"])&&(ft=!0),ut==="go"&&at(["get","install"])&&(ft=!0),ut==="npm"&&pt(["install","i","update","add"])&&(ft=!0),ut==="yarn"&&pt(["add","install","upgrade"])&&(ft=!0),ut==="pnpm"&&pt(["add","install","update"])&&(ft=!0),ut==="bun"&&pt(["add","install","update"])&&(ft=!0),ut==="deno"&&at(["install","add"])&&(ft=!0),ut==="pip"&&at(["install","download"])&&(ft=!0),ut==="pip3"&&at(["install","download"])&&(ft=!0),ut==="cargo"&&at(["install","add"])&&(ft=!0),["bash","sh","zsh","fish"].includes(ut)&&at(["-c"])&&(ft=!0),ut==="cmd"&&at(["/c"])&&(ft=!0),ft&&(he="deny",Oe=!0)}!he&&Ge&&(he="deny")}!be&&!he&&ce&&(he="allow")}else ce&&(he="allow");let Se=he,Y="";he==="deny"&&(Oe?Y="network":Ge?Y="settings":Y="prohibited");let ie=!1,ue="",$e=[],Je=0,Ae=!1,Zt="";if(!Se){if(A==="write_file"||A==="update_file")try{let Le=D(G.args),{path:rt}=Le;if(rt){let xe=te.resolve(process.cwd(),rt),en=at=>at?at.toLowerCase().replace(/\\/g,"/").replace(/^[a-z]:/,pt=>pt.toUpperCase()):"",_t=en(xe),gn="",ut=!1,tn=await xo(),ft=en(tn?.file_focused);if(tn&&ft===_t&&tn.full_content?(gn=tn.full_content,ut=!0):Fe.existsSync(xe)&&(gn=Fe.readFileSync(xe,"utf8"),ut=!0),ue=gn,await yt.recordFileChange(xe,gn),ut){let at=gn;if(A==="write_file"){let pt=Le.content||Le.newContent||"";at=pt.endsWith(`
|
|
1082
1085
|
`)?pt:pt+`
|
|
1083
|
-
`,
|
|
1084
|
-
${
|
|
1085
|
-
`)}`,Co=`\u2714 Edited: ${te.basename(xe.replaceAll("\\","/"))}`,zo=115;process.stdout.isTTY&&(zo=process.stdout.columns-5||120);let $o=Math.min(Co.length+4,zo),Ss=`${Co.padEnd($o-2).substring(0,$o-2)}`;yield{type:"visual_feedback",content:
|
|
1086
|
-
`:""}${Ss}`)},je=!1,oe.push({role:"user",text:
|
|
1087
|
-
`)?
|
|
1088
|
-
`;
|
|
1089
|
-
${ue.split(/\r?\n/).map((
|
|
1086
|
+
`,Zt=at}else{let{patchPairs:pt,allowMultiple:Cn,error:$n}=Os(Le);if($n){let It=`[TOOL RESULT]: ERROR: ${$n}`;oe.push({role:"user",text:It}),await Dt("toolFailure"),t.onToolResult&&t.onToolResult("failure",A),yield{type:"tool_result",content:It,toolName:A},Ke++;continue}let _o=Le.allowMultiple!==void 0?Le.allowMultiple===!0||String(Le.allowMultiple).toLowerCase()==="true":Cn;Je=pt.length;let Pn=Ls(gn,pt,{allowMultiple:_o});at=Pn.content,Zt=at,$e=Pn.results;let ks=$e.filter(It=>It.success),vt=$e.filter(It=>!It.success);if(ks.length===0){let It=`[TOOL RESULT]: ERROR: Failed to apply patches to [${te.basename(xe)}].
|
|
1087
|
+
${vt.map(Ko=>` \u2022 ${Ko.error}`).join(`
|
|
1088
|
+
`)}`,Co=`\u2714 Edited: ${te.basename(xe.replaceAll("\\","/"))}`,zo=115;process.stdout.isTTY&&(zo=process.stdout.columns-5||120);let $o=Math.min(Co.length+4,zo),Ss=`${Co.padEnd($o-2).substring(0,$o-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1089
|
+
`:""}${Ss}`)},je=!1,oe.push({role:"user",text:It}),await Dt("toolFailure"),t.onToolResult&&t.onToolResult("failure",A),yield{type:"tool_result",content:It,toolName:A},Ke++;continue}}yield{type:"status",content:`Opening Diff in IDE: ${te.basename(xe)}`},pi(xe,gn,at),ie=!0,await new Promise(pt=>setTimeout(pt,50))}else if(A==="write_file"){let at=Le.content||Le.newContent||"",pt=at.endsWith(`
|
|
1090
|
+
`)?at:at+`
|
|
1091
|
+
`;Zt=pt,Fe.existsSync(xe)||(Ae=!0,Fe.mkdirSync(te.dirname(xe),{recursive:!0}),Fe.writeFileSync(xe,"","utf8")),yield{type:"status",content:`Opening New File Diff in IDE: ${te.basename(xe)}`},pi(xe,"",pt),ie=!0,await new Promise(Cn=>setTimeout(Cn,50))}}}catch(Le){console.error("Simulation/Diff Error:",Le)}let De=null;fi(Le=>{De=Le});let xt=t.onToolApproval;if(Se=await new Promise(async Le=>{let rt=setInterval(()=>{De&&(or.onIDEApproval&&or.onIDEApproval(De),clearInterval(rt),Le(De))},100);try{let xe=await xt(A,G.args);clearInterval(rt),Le(xe)}catch{clearInterval(rt),Le("deny")}}),fi(null),A==="write_file"||A==="update_file"){let{path:Le}=D(G.args);if(Le){let rt=te.resolve(process.cwd(),Le);if(rl(rt,Se),Se==="deny"&&Ae&&Fe.existsSync(rt))try{Fe.unlinkSync(rt)}catch{}}}Se==="deny"&&(Y="user")}if(Se==="allow"&&ie&&Hs()){let{path:De}=D(G.args),xt=te.resolve(process.cwd(),De),Le=vt=>vt?te.resolve(vt).replace(/\\/g,"/").toLowerCase():"",rt=await xo(),xe="";if(rt&&rt.file_focused&&Le(rt.file_focused)===Le(xt)&&rt.full_content&&(xe=rt.full_content),!xe&&Fe.existsSync(xt)){let vt=Fe.readFileSync(xt,"utf8");vt&&(xe=vt)}!xe&&Zt&&(xe=Zt),(xe||Ae)&&Fe.writeFileSync(xt,xe,"utf8");let en=xe.split(/\r?\n/),_t=en.length,gn=Buffer.byteLength(xe,"utf8"),ut="";ue&&(ut=`Old File contents:
|
|
1092
|
+
${ue.split(/\r?\n/).map((It,Co)=>`${Co+1} | ${It}`).join(`
|
|
1090
1093
|
`)}
|
|
1091
1094
|
|
|
1092
|
-
`);let
|
|
1093
|
-
`);else{let
|
|
1094
|
-
`),
|
|
1095
|
-
`);
|
|
1095
|
+
`);let tn="";if(_t<=100)tn=en.join(`
|
|
1096
|
+
`);else{let vt=en.slice(0,50).join(`
|
|
1097
|
+
`),It=en.slice(-50).join(`
|
|
1098
|
+
`);tn=`${vt}
|
|
1096
1099
|
|
|
1097
|
-
... [${
|
|
1100
|
+
... [${_t-100} lines truncated for history stability] ...
|
|
1098
1101
|
|
|
1099
|
-
${
|
|
1102
|
+
${It}`}let ft="";if(A==="update_file"){let vt=Ds(ue,xe,$e,12,t?.compressToolResults||or?.systemSettings?.compressToolResults);ft=`SUCCESS: File [${De}] updated via IDE Companion (May have user edits). [${$e.length}/${Je}] blocks applied.
|
|
1100
1103
|
|
|
1101
|
-
${
|
|
1104
|
+
${vt}`}else{let vt=xe.split(/\r?\n/),It=vt.length,Co=Buffer.byteLength(xe,"utf8"),zo="";ue&&(zo=`Old File contents:
|
|
1102
1105
|
${ue.split(/\r?\n/).map((Ko,Il)=>`${Il+1} | ${Ko}`).join(`
|
|
1103
1106
|
`)}
|
|
1104
1107
|
|
|
1105
|
-
`);let $o="";if(
|
|
1106
|
-
`);else{let Ss=
|
|
1107
|
-
`),Ko=
|
|
1108
|
+
`);let $o="";if(It<=100)$o=vt.join(`
|
|
1109
|
+
`);else{let Ss=vt.slice(0,50).join(`
|
|
1110
|
+
`),Ko=vt.slice(-50).join(`
|
|
1108
1111
|
`);$o=`${Ss}
|
|
1109
1112
|
|
|
1110
|
-
... [${
|
|
1113
|
+
... [${It-100} lines truncated] ...
|
|
1111
1114
|
|
|
1112
1115
|
${Ko}`}ft=`SUCCESS: File [${De}] saved via IDE Companion (May have user edits).
|
|
1113
|
-
- Stats: [${
|
|
1116
|
+
- Stats: [${It} lines, ${(Co/1024).toFixed(1)} KB]
|
|
1114
1117
|
${zo}- Content Preview:
|
|
1115
1118
|
|
|
1116
|
-
${$o}`}let pt=`${De?"\u2714":"\u2718"} ${A==="write_file"?"Created":"Edited"}: ${De.replaceAll("\\","/")||"No File Changes"}`,
|
|
1117
|
-
`:""}${_o}`)},je=!1;let
|
|
1118
|
-
`:""}${
|
|
1119
|
-
`)},je=!1}A==="exec_command"&&(await new Promise(
|
|
1119
|
+
${$o}`}let pt=`${De?"\u2714":"\u2718"} ${A==="write_file"?"Created":"Edited"}: ${De.replaceAll("\\","/")||"No File Changes"}`,Cn=115;process.stdout.isTTY&&(Cn=process.stdout.columns-5||120);let $n=Math.min(pt.length+4,Cn),_o=`${pt.padEnd($n-2).substring(0,$n-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1120
|
+
`:""}${_o}`)},je=!1;let Pn=Date.now();K=Pn,yield{type:"tool_time",content:Pn-re};let ks=`[TOOL RESULT]: ${ft}`;oe.push({role:"user",text:ks}),mn=!0,await Dt("toolSuccess"),t.onToolResult&&t.onToolResult("success",A),yield{type:"tool_result",content:ft,aiContent:ks,toolName:A},Ke++;continue}if(Se==="deny"){let De=`Permission Denied: Prohibited ${A==="exec_command"?"Command":"file edit"}.`;if(Y==="user"?De="Permission Denied by User":Y==="settings"?De="Permission Denied by User Policy":Y==="network"?De="Permission Denied: Sandbox Network Access Disabled by User Policy.":Y==="prohibited"&&A==="exec_command"&&(De="Permission Denied: Prohibited Command in User Policy"),A==="write_file"||A==="update_file"){let Le=`\u2718 ${A==="write_file"?"Write Cancelled":"Edit Denied"}: ${D(G.args).path.replaceAll("\\","/")||"..."}`,rt=115;process.stdout.isTTY&&(rt=process.stdout.columns-5||120);let xe=Math.min(Le.length+4,rt),en=`${Le.padEnd(xe-2).substring(0,xe-2)}`,_t=` ${" ".repeat(xe)} `;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1121
|
+
`:""}${en}
|
|
1122
|
+
`)},je=!1}A==="exec_command"&&(await new Promise(xt=>setTimeout(xt,50)),t.onExecChunk&&t.onExecChunk(`ERROR: ${De}`),await new Promise(xt=>setTimeout(xt,50)),t.onExecEnd&&t.onExecEnd()),oe.push({role:"user",text:`[TOOL RESULT]: DENIED: ${De}`}),yield{type:"tool_result",content:`[TOOL RESULT]: DENIED: ${De}`},await Dt("toolDenied"),t.onToolResult&&t.onToolResult("denied",A),Ke++;continue}}if(Z){let I=115;process.stdout.isTTY&&(I=process.stdout.columns-5||120);let V=await o(),ce=!1;V&&(ce=V.trim().length>0);let he=Math.min(Z.length+4,I),be=`${Z.padEnd(he-2).substring(0,he-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1120
1123
|
`:""}${be}${Z.includes("\u2714")&&(Z.includes("Created")||Z.includes("Edited"))?"":`${ce?"":`
|
|
1121
|
-
`}`}`)},je=!1}if(K>0){let I=Date.now()-K,
|
|
1124
|
+
`}`}`)},je=!1}if(K>0){let I=Date.now()-K,V=Math.max(0,1e3-I);V>0&&await new Promise(ce=>setTimeout(ce,V))}let zn={chatId:d,history:n,onChunk:I=>t.onExecChunk?t.onExecChunk(I):null,onAskUser:t.onAskUser,systemSettings:t.systemSettings,mode:i,isMultiModal:bt(ke),onVisualFeedback:t.onVisualFeedback,onSubagentUpdate:t.onSubagentUpdate,onTokenChunk:t.onTokenChunk,modelName:ke,aiProvider:t.aiProvider,apiKey:t.apiKey,onUsage:t.onUsage};if(A==="write_file"||A==="update_file")try{let{path:I}=D(G.args);if(I){let V=te.resolve(process.cwd(),I),ce=await xo();ce&&ce.file_focused===V&&ce.full_content&&(zn.forcedContent=ce.full_content)}}catch{}an.push(A);let Ce=await ms(A,G.args,zn);if((A==="write_file"||A==="update_file")&&Ce.startsWith("SUCCESS")){let{path:I}=D(G.args);if(I){let V=te.resolve(process.cwd(),I);sl(V)}}process.stdout.isTTY&&process.stdout.write("\x1B]0;Working...\x07");let Kt=Date.now();K=Kt,yield{type:"tool_time",content:Kt-re},ln=Kt;let Qt=null;if(typeof Ce=="object"&&Ce.binaryPart&&(Qt=Ce.binaryPart,Ce=Ce.text),A==="search_keyword"){let{keyword:I,path:V}=D(G.args),ce=typeof Ce=="string"&&Ce.startsWith("[GLOB]");ce&&(Ce=Ce.slice(6).trimStart());let he=typeof Ce=="string"&&Ce.startsWith("[DIR]");he&&(Ce=Ce.slice(5).trimStart());let be=0;if(Ce){let $e=Ce.match(/Found (\d+) match/i);$e&&(be=parseInt($e[1]))}let Ge=(V||"").trim().toLowerCase().replaceAll("\\","/"),Oe=Ge==="#doc"||Ge==="#docs"||Ge==="#documentation"||Ge.includes("#skill/global/fluxflow")||Ge.includes("#skills/global/fluxflow"),Se;if(Oe)Se=`${I?"\u2714":"\u2718"} Searched Documentation`;else{let $e=V?V.replace(/[\/\\]+$/,""):null,Je=$e&&$e!=="."?`"${ce?V:he?`${$e}/*`:$e}"`:"./";Se=`${I?"\u2714":"\u2718"} Searched: "${I||""}" in ${Je.replaceAll("\\","/")} \u2192 ${be} Match${be===1?"":"es"}`}let Y=115;process.stdout.isTTY&&(Y=process.stdout.columns-5||120);let ie=Math.min(Se.length+4,Y),ue=`${Se.padEnd(ie-2).substring(0,ie-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1122
1125
|
`:""}${ue}
|
|
1123
|
-
`)},je=!1}if(A==="EmergencyRollback"){let{method:I}=D(G.args);if(I==="forceRevert"){let
|
|
1124
|
-
`:""}${
|
|
1125
|
-
`}`)},je=!1}}if(A==="todo"){let{method:I,tasks:
|
|
1126
|
-
`)}return Se.filter(
|
|
1126
|
+
`)},je=!1}if(A==="EmergencyRollback"){let{method:I}=D(G.args);if(I==="forceRevert"){let V=0;if(Ce){let ie=Ce.match(/Total\s*:\s*(\d+)/i);ie&&(V=parseInt(ie[1]))}let he=Ce&&Ce.startsWith("ERROR:")?"\u2718 Emergency Rollback Failed":`\u2714 Emergency Rollback \u2192 ${V} file${V===1?"":"s"} processed`,be=115;process.stdout.isTTY&&(be=process.stdout.columns-5||120);let Ge=await o(),Oe=!1;Ge&&(Oe=Ge.trim().length>0);let Se=Math.min(he.length+4,be),Y=`${he.padEnd(Se-2).substring(0,Se-2)}`;yield{type:"visual_feedback",content:sn(`${je?`
|
|
1127
|
+
`:""}${Y}${Oe?"":`
|
|
1128
|
+
`}`)},je=!1}}if(A==="todo"){let{method:I,tasks:V,markDone:ce}=D(G.args),he="",be=[],Ge=Oe=>{if(!Oe)return[];let Se=Array.isArray(Oe)?Oe:[];if(Se.length===0&&typeof Oe=="string"){let Y=Oe.trim();if(Y.startsWith("[")&&Y.endsWith("]")){let ie=Y.match(/"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'/g);ie?Se=ie.map(ue=>ue.slice(1,-1).replace(/\\(.)/g,"$1")):Se=Y.slice(1,-1).split(",").map(ue=>ue.trim()).filter(Boolean)}else Se=Oe.split(`
|
|
1129
|
+
`)}return Se.filter(Y=>String(Y).trim()).map(Y=>{let ie=String(Y).trim();return ie.startsWith("- [")?ie.substring(6).trim():ie})};if(I==="create"?(he="\x1B[32m\u2192\x1B[0m Created Goals",be=Ge(V).map(Oe=>`\x1B[90m\u25CB\x1B[0m ${Oe}`)):I==="append"?(he="\x1B[34m\u2795\x1B[0m Added New Goals",be=Ge(V).map(Oe=>`\x1B[90m\u25CB\x1B[0m ${Oe}`)):I==="get"&&(he=ce?"\x1B[36m\u21BB\x1B[0m Updated Goals":"\x1B[35m\u2022\x1B[0m Reviewed Goals",be=(Ce||"").split(`
|
|
1127
1130
|
`).slice(1).join(`
|
|
1128
1131
|
`).split(`
|
|
1129
|
-
`).filter(Se=>Se.trim().startsWith("- [")).map(Se=>{let
|
|
1130
|
-
`),Se=await o(),
|
|
1131
|
-
`:""}${Oe}${
|
|
1132
|
-
`}`)},je=!1}}A==="exec_command"&&t.onExecEnd&&(await new Promise(I=>setTimeout(I,800)),t.onExecEnd());let
|
|
1133
|
-
`));let
|
|
1134
|
-
`):
|
|
1132
|
+
`).filter(Se=>Se.trim().startsWith("- [")).map(Se=>{let Y=Se.trim(),ie=Y.startsWith("- [x]");return`${ie?"\x1B[32m\u2714\x1B[0m":"\x1B[90m\u25CB\x1B[0m"} ${ie?"\x1B[90m":"\x1B[37m"}${Y.substring(6).trim()}\x1B[0m`})),he&&be.length>0){let Oe=[`${he}`,...be.map(ie=>` ${ie}`)].join(`
|
|
1133
|
+
`),Se=await o(),Y=!1;Se&&(Y=Se.trim().length>0),yield{type:"visual_feedback",content:sn(`${je?`
|
|
1134
|
+
`:""}${Oe}${Y?"":`
|
|
1135
|
+
`}`)},je=!1}}A==="exec_command"&&t.onExecEnd&&(await new Promise(I=>setTimeout(I,800)),t.onExecEnd());let Ln=Ce&&Ce.startsWith("DENIED:");Ce&&!Ce.startsWith("ERROR:")&&!Ln?(await Dt("toolSuccess"),t.onToolResult&&t.onToolResult("success",A)):Ln||(await Dt("toolFailure"),t.onToolResult&&t.onToolResult("failure",A));let Vt=(Ce||"").toString().replaceAll("[UI_CONTEXT]","");Vt.includes("[[VERIFIED]]")&&(Vt=Vt.replace(/\[\[VERIFIED\]\][\s\S]*?\[\[\/VERIFIED\]\]/g,`[SYSTEM NOTE]: Patch Block matched & applied successfully. Large Block omitted to conserve context.
|
|
1136
|
+
`));let Dn;if(Vt.startsWith("[[SAME]]")){let V=Vt.replace(/^\[\[SAME\]\]\s*\r?\n?/,"").split(/\r?\n/),ce=V.filter(be=>be.startsWith("SUCCESS:")||be.trim().startsWith("- Stats:"));Dn=`[TOOL RESULT]: ${ce.length>0?ce.join(`
|
|
1137
|
+
`):V.slice(0,2).join(`
|
|
1135
1138
|
`)}
|
|
1136
|
-
[SYSTEM NOTE]: Content verified and persisted to disk. Full preview omitted to conserve context.`}else
|
|
1139
|
+
[SYSTEM NOTE]: Content verified and persisted to disk. Full preview omitted to conserve context.`}else Dn=`[TOOL RESULT]: ${Vt}`;oe.push({role:"user",text:Dn,binaryPart:Qt}),mn=!0;let Ie=`[TOOL RESULT]: ${Ce.replaceAll(`[[VERIFIED]]
|
|
1137
1140
|
`,"").replaceAll(`
|
|
1138
|
-
[[/VERIFIED]]`,"")||""}`;(A==="view_file"||A==="web_scrape"||A==="file_map")&&(Ie=`[TOOL RESULT]: ${Z} (Context Locked for UI Clarity)`),yield{type:"tool_result",content:Ie,aiContent:
|
|
1141
|
+
[[/VERIFIED]]`,"")||""}`;(A==="view_file"||A==="web_scrape"||A==="file_map")&&(Ie=`[TOOL RESULT]: ${Z} (Context Locked for UI Clarity)`),yield{type:"tool_result",content:Ie,aiContent:Dn,binaryPart:Qt,toolName:A},A==="memory"&&Ce.includes("SUCCESS")&&(yield{type:"memory_updated"}),Ke++}if(u==="Google"&&En&&Date.now()-cr>=150){yield*io();let G=Ho(En);for(let re of G)yield re;En="",cr=Date.now()}}N.usageMetadata&&(In=N.usageMetadata),In&&(yield{type:"liveTokens",content:In.totalTokenCount})}if(pe&&(pe=!1,Gt?Xe+="</think>":(ge+="</think>",u==="Google"?En+="</think>":yield{type:"text",content:"</think>"})),Gt&&Xe.length>0){let N=0,ae=Math.min(it.length,Xe.length);for(let q=ae;q>0;q--)if(it.endsWith(Xe.substring(0,q))){N=q;break}let H=Xe.substring(N);if(H){let Re=/(?:<(think|thought)>|\[(think|thought)\])(?:(?!(?:<\/(?:think|thought)>|\[\/(?:think|thought)\]))[\s\S])*$/i.test(it)?H.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,""):H.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])[\s\S]*?(?:<\/(think|thought)>|\[\/(think|thought)\])\s*/gi,"").replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,"");if(Re)if(ge+=Re,u==="Google")En+=Re;else{yield*io();let we=Ho(Re);for(let _e of we)yield _e}}Gt=!1,Xe=""}if(yield*io(),Lt)break;let qo=(ge||"").trim(),_l=/\[\s*(turn\s*:)?\s*finish\s*\]/i.test(qo.toLowerCase())||/\[\[END\]\]/i.test(qo.toLowerCase()),Cl=/\[\s*(turn\s*:)?\s*continue\s*\]/i.test(qo.toLowerCase()),$l=oe.length>0||Wt!==null,dr=rn(qo).trim(),Al=/(\p{Emoji_Presentation}|\p{Extended_Pictographic})$/u.test(dr),Ml=/([.!?"'*_`|\]\)”’~~]+|\s|`{3}|[\u200B-\u200D\uFEFF])$/u.test(dr.trim()),vl=/[.!?}"'`’“”]$|```$/s.test(dr)||Ml||Al;!_l&&!Cl&&!$l&&qo.length>0,ot=!0,await Dt("agent",u)}catch(Te){if(Lt){yield{type:"status",content:"Request Cancelled"},yield{type:"text",content:`
|
|
1139
1142
|
|
|
1140
|
-
\x1B[33m\u24D8 Request Cancelled\x1B[0m`};break}if(String(Te).includes("Incomplete JSON segment at the end")){pe&&(pe=!1,
|
|
1143
|
+
\x1B[33m\u24D8 Request Cancelled\x1B[0m`};break}if(String(Te).includes("Incomplete JSON segment at the end")){pe&&(pe=!1,Gt?Xe+="</think>":(ge+="</think>",yield{type:"text",content:"</think>"})),ot=!0,await Dt("agent",u);break}if(pe&&(pe=!1,Gt?Xe+="</think>":ge+="</think>"),Gt&&Xe.length>0){let cn=0,qt=Math.min(it.length,Xe.length);for(let Nt=qt;Nt>0;Nt--)if(it.endsWith(Xe.substring(0,Nt))){cn=Nt;break}let Ft=Xe.substring(cn);if(Ft){let Et=/(?:<(think|thought)>|\[(think|thought)\])(?:(?!(?:<\/(?:think|thought)>|\[\/(?:think|thought)\]))[\s\S])*$/i.test(it)?Ft.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,""):Ft.replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])[\s\S]*?(?:<\/(think|thought)>|\[\/(think|thought)\])\s*/gi,"").replace(/^\s*(?:<(think|thought)>|\[(think|thought)\])\s*/gi,"");Et&&(ge+=Et)}Gt=!1,Xe=""}let me=Te instanceof Error?(()=>{try{return JSON.parse(JSON.parse(Te.message).error.message).error.message}catch{return String(Te)}})():String(Te),Ht=new Date().toLocaleString(),Pt=te.join(yn,"agent");Fe.existsSync(Pt)||Fe.mkdirSync(Pt,{recursive:!0}),Fe.appendFileSync(te.join(Pt,"error.log"),`ERROR [${Ht}]: ${me}
|
|
1141
1144
|
|
|
1142
1145
|
----------------------------------------------------------------------
|
|
1143
1146
|
|
|
1144
|
-
`);let
|
|
1147
|
+
`);let Mt=Te.status||Te.statusCode||Te.code,ht=String(Te).includes("replicas at capacity");if(!(Mt&&(Mt>=500&&Mt<600||Mt===408||Mt===429||ht)||!Mt&&(/status[ :]+(5\d\d|408|429)/i.test(String(Te))||/code[ :]+(5\d\d|408|429)/i.test(String(Te))||/(500|503|408|429)/.test(String(Te))))){if(ze<Tn-3)throw Te;yield{type:"text",content:me},yield{type:"status",content:"Error Occured"}}if(ge.trim().length>0||et>1)if(et<=Tn){et++;let cn=Math.min(1e3*Math.pow(2,et-1),24e3);if(ge.trim().length>0){x.push({role:"agent",text:ge});let qt=`[system]
|
|
1145
1148
|
- seamless continuation: resume immediately. pick up from last words with zero gap/disruption
|
|
1146
1149
|
- no repetition: do not repeat any text already written
|
|
1147
1150
|
- no re-think: do not restart or open <think> if reasoning already started. continue the thinking and close thinking block </think> before chat output
|
|
1148
1151
|
- mid-tool safety: if cutoff was mid-tool call, restart that tool call from start
|
|
1149
|
-
- stealth: do not mention/apologize for cutoff [/system]`;oe.length>0?oe.forEach((
|
|
1152
|
+
- stealth: do not mention/apologize for cutoff [/system]`;oe.length>0?oe.forEach((Ft,Nt)=>{Nt===oe.length-1?x.push({...Ft,text:`${Ft.text}
|
|
1150
1153
|
|
|
1151
|
-
${
|
|
1152
|
-
Error log can be found in \`/export logs\``);else if(ze<=
|
|
1153
|
-
Error log can be found in \`/export logs\``)}}if(
|
|
1154
|
-
`),Te=
|
|
1154
|
+
${qt}`}):x.push(Ft)}):x.push({role:"user",text:qt}),it+=ge}for(let qt=cn/1e3;qt>0&&!Lt;qt--)yield{type:"status",content:`Error Occured. Recovering Stream (${et}/${Tn}) [Retrying in ${qt.toFixed(0)}s]...`},await new Promise(Ft=>setTimeout(Ft,1e3));yield{type:"status",content:"Error Occured. Recovering Stream..."}}else throw new Error(`Stream collapsed too many times. (Failed to resolve ${Tn} times)
|
|
1155
|
+
Error log can be found in \`/export logs\``);else if(ze<=Tn){ze++,et=1,it="";let cn=Math.min(1e3*Math.pow(2,ze-1),32e3),qt=.8+Math.random()*.4,Ft=Math.round(cn*qt);no=!0,yield{type:"status",content:`Trying to reach ${e} (${ze}/${Tn}) [Retrying in ${(Ft/1e3).toFixed(0)}s]`};for(let Nt=Ft/1e3;Nt>0&&!Lt;Nt--)yield{type:"status",content:`Trying to reach ${e} (${ze}/${Tn}) [Retrying in ${Nt.toFixed(0)}s]`},await new Promise(Et=>setTimeout(Et,1e3));yield{type:"status",content:`Trying to reach ${e}`}}else throw new Error(`Model ${e} cannot be reached. (Failed ${Tn} times)
|
|
1156
|
+
Error log can be found in \`/export logs\``)}}if(In){let pe=In.totalTokenCount||0,Te=In.cachedContentTokenCount||0,me=(In.candidatesTokenCount||0)+(In.thoughtsTokenCount||0);await Yt("tokens",pe,u,ke),Te>0&&await Yt("cachedTokens",Te,u,ke),me>0&&await Yt("candidateTokens",me,u,ke),yield{type:"usage",content:In}}vi.push(ge);let so=rn(ge),hn=pl(ge),Go=/\[\s*(turn\s*:)?\s*finish\s*\]/i.test(hn.toLowerCase())||/\[\[END\]\]/i.test(hn.toLowerCase())||!0,qn=/\[\s*(turn\s*:)?\s*continue\s*\]/i.test(hn.toLowerCase()),Rd=Ke>0;yield{type:"status",content:"Thinking"};let Sl=yd(ge,/(\[\s*(turn\s*:)?\s*(continue|finish)\s*\]|\[\[END\]\])/gi,"").trim(),ro=(Go||oe.length===0)&&!jt&&!Rn&&!On;if(ro=oe.length===0?ro:!1,ro=oo||xs?!1:ro,ge&&ge.trim().endsWith('")]')&&oe.length===0&&(ro=!1),ro){let pe=vi.join(`
|
|
1157
|
+
`),Te=rn(pe).trim();yield{type:"interactive_turn_finished",data:{agentText:S,fullAgentTextRaw:pe,history:[...x],needTitle:k}},x.length>0&&x[x.length-1].role==="agent"?x[x.length-1].text=Te:x.push({role:"agent",text:Te}),x.forEach(me=>{if(me.role==="user"&&me.text&&(me.text=me.text.replace(/\n\[COMPILE ERROR\][\s\S]*?\[\/ERROR\]/g,""),me.text=me.text.replaceAll(`
|
|
1155
1158
|
|
|
1156
1159
|
[system] user question. resolve this specific query within '[ANSWER] ... [/ANSWER]' concisely, naturally [/system]
|
|
1157
1160
|
`,"").replaceAll(`[system] user question. resolve this specific query within '[ANSWER] ... [/ANSWER]' concisely, naturally
|
|
1158
1161
|
**strictly follow thinking policy as high priority. do not start a response without <think>...</think>** [/system]
|
|
1159
1162
|
`,"").replaceAll(`[system] **strictly follow thinking policy as high priority. do not start a response without <think>...</think>** [/system]
|
|
1160
|
-
`,"").replaceAll(/\n\[system\] WARNING, Turn Limit Impending: Step \d+\/\d+\. Wrap up quickly\/prompt user to continue & use \[\[END\]\] quickly\. \[\/system\]/g,""),me.text=me.text.replaceAll(/\n\[system\] File Changes:\n(?:\* .+ \(created|modified|deleted\)\n)*\[\/system\]/g,""),(u==="Mistral"||u==="Google"&&e?.toLowerCase().startsWith("gemma"))&&me.text.startsWith("[TOOL RESULT]"))){let
|
|
1161
|
-
[system] Tool result received. Analyze output and proceed with your turn [/system]`,
|
|
1162
|
-
[system] Tool result received. Analyze output and proceed with your turn. **strictly follow thinking policy. do not start a response without <think>...</think>** [/system]`;me.text=me.text.replaceAll(
|
|
1163
|
+
`,"").replaceAll(/\n\[system\] WARNING, Turn Limit Impending: Step \d+\/\d+\. Wrap up quickly\/prompt user to continue & use \[\[END\]\] quickly\. \[\/system\]/g,""),me.text=me.text.replaceAll(/\n\[system\] File Changes:\n(?:\* .+ \(created|modified|deleted\)\n)*\[\/system\]/g,""),(u==="Mistral"||u==="Google"&&e?.toLowerCase().startsWith("gemma"))&&me.text.startsWith("[TOOL RESULT]"))){let Pt=`
|
|
1164
|
+
[system] Tool result received. Analyze output and proceed with your turn [/system]`,Mt=`
|
|
1165
|
+
[system] Tool result received. Analyze output and proceed with your turn. **strictly follow thinking policy. do not start a response without <think>...</think>** [/system]`;me.text=me.text.replaceAll(Mt,"").replaceAll(Pt,"").trim()}}),yield{type:"status",content:"[end]"}}if(ro)break;let Tl=Sl.trim()||"*Working...*";if(x.push({role:"agent",text:Tl}),oe.length>0||mn){if(oe.length>0){let pe=oe.map(ht=>ht.text).join(`
|
|
1163
1166
|
|
|
1164
|
-
`),
|
|
1167
|
+
`),Ht=(rn(ge).replace(/\[{1,2}tool:[\s\S]*?\)\s*\]{1,2}/gi,"").match(/\[tool:/gi)||[]).length,Pt=oe.length+Ht;if(oe.length<Pt){pe+=`
|
|
1165
1168
|
|
|
1166
|
-
[system] Only ${oe.length} out of ${
|
|
1167
|
-
${
|
|
1169
|
+
[system] Only ${oe.length} out of ${Pt} attempted tool calls were executed. Verify proper structure compliance & try failed calls again [/system]`;let ht=Pt-oe.length;for(let dt=0;dt<ht;dt++)await Dt("toolFailure")}let Mt=oe.find(ht=>ht.binaryPart)?.binaryPart||null;x.push({role:"user",text:pe,binaryPart:Mt})}}else if(!Lt){let Te=(ge.replace(/(?:<(think|thought|thoughts)>|\[(think|thought|thoughts)\])[\s\S]*?(?:<\/(think|thought|thoughts)>|\[\/(think|thought|thoughts)\]|$)/i,"").match(/\[tool:/gi)||[]).length;xs||oo||Te>0?(x.push({role:"user",text:`[system] Failed to execute ${Te} tool${Te>1?"s":""}. Verify proper structure compliance & try again [/system]`}),await Dt("toolFailure"),yield{type:"visual_feedback",content:`
|
|
1170
|
+
${sn("\u2718 Execution Error")}
|
|
1168
1171
|
`}):(yield{type:"visual_feedback",content:`
|
|
1169
|
-
${
|
|
1170
|
-
`},x.push({role:"user",text:`[system] ${
|
|
1172
|
+
${sn("\u2718 Loop Detected")}
|
|
1173
|
+
`},x.push({role:"user",text:`[system] ${Rn&&!jt?"Stuttering Detected by Internal System. Re-calibrate your response & proceed.":`${jt?" Over Thinking":" Loop"} Detected by Internal System${jt?" for current Effort Level":""}. ${jt?"If you have planned the task, prioritize execution/output":"If you have finished your task provide a simple summary and end"}`} [/system]`})),jt=!1,Rn=!1,On=!1}l?.advanceRollback&&await Zn.recordTurnDelta(d,z+1,an),xs=Ke>0||mn}}catch(E){let C=(E instanceof Error?(()=>{try{return JSON.parse(JSON.parse(E.message).error.message).error.message}catch{return E.message||String(E)}})():String(E)).replace(/^(Error:\s*)+/i,""),M=new Date().toLocaleString(),v=te.join(yn,"agent");yield{type:"text",content:`
|
|
1171
1174
|
|
|
1172
1175
|
\u2726 CRITICAL ERROR: ${C.includes("fetch failed")?"Failed to Connect. Check your Internet Connection or Wait a moment":C}
|
|
1173
1176
|
\u2800`},Fe.existsSync(v)||Fe.mkdirSync(v,{recursive:!0}),Fe.appendFileSync(te.join(v,"error.log"),`CRITICAL ERROR [${M}]: ${E}
|
|
1174
1177
|
|
|
1175
1178
|
----------------------------------------------------------------------
|
|
1176
1179
|
|
|
1177
|
-
`),typeof flushGoogleBuffer=="function"&&(yield*flushGoogleBuffer()),yield{type:"tool_result",content:`ERROR: [INTERNAL CRITICAL] ${C}`}}finally{_&&(clearInterval(_),_=null),typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),await
|
|
1180
|
+
`),typeof flushGoogleBuffer=="function"&&(yield*flushGoogleBuffer()),yield{type:"tool_result",content:`ERROR: [INTERNAL CRITICAL] ${C}`}}finally{_&&(clearInterval(_),_=null),typeof performance<"u"&&performance.clearMeasures&&(performance.clearMeasures(),performance.clearMarks()),await yt.commitTransaction(),l?.advanceRollback&&await Zn.cleanup(d),await xo()}yield{type:"status",content:null}},Py=async(e,n,t=null,o=null,s=50,r=null,a=!1)=>{let i=await on(),p={...i,...n},d=process.env.SUBAGENT_MODEL?process.env.SUBAGENT_MODEL.trim():null,c=process.env.SUBAGENT_PROVIDER?process.env.SUBAGENT_PROVIDER.trim():null,l=new Date,f=`${l.getFullYear()}-${l.toLocaleString("en-US",{month:"short"}).toUpperCase()}-${String(l.getDate()).padStart(2,"0")}, ${l.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!0}).replace(":","-")}`,m=(E=>{if(!E)return null;let x=E.toLowerCase();return x==="google"?"Google":x==="deepseek"?"DeepSeek":x==="openrouter"?"OpenRouter":x==="nvidia"?"NVIDIA":x==="mistral"?"Mistral":x==="ollama"?"Ollama":x==="crofai"||x==="crof"?"CrofAI":x==="inferx"?"InferX":x==="sensenova"?"SenseNova":x==="poolside"?"Poolside":x==="9router"||x==="9Router"?"9router":x==="aihubmix"||x==="aihub"?"AIHubMix":null})(c),g=p?.systemSettings?.CustomSubAgent?p?.systemSettings?.SubAgentModel:null,y=p?.systemSettings?.CustomSubAgent?p?.systemSettings?.SubAgentProvider:null,h=null;if(g==="ENV"?(h=d,d&&m&&(p.aiProvider=m)):g&&g!=="Default"?(h=g,y&&(p.aiProvider=y)):d&&m&&(p.aiProvider=m),p.aiProvider){let E=await mr(p.aiProvider);E&&(p.apiKey=E)}let b=E=>{if(!E||typeof E!="string")return{allowed:!0};let x=[/rm\s+-[rf]{1,2}\s+[\/*.]/i,/rmdir\s+\/[sq]/i,/del\s+\/[fsq]/i,/\bformat\b\s+[a-z]:/i,/mkfs/i,/dd\s+if=/i,/\b(shutdown|reboot|poweroff|init\s+0|init\s+6)\b/i,/chmod\s+(-R\s+)?777\s+[\/*.]/i,/chown\s+(-R\s+)?root/i,/git\s+push\s+.*--force/i,/git\s+clean\s+-fdx/i,/\bsudo\s+su\b/i,/\bsu\s+-\b/i];for(let C of x)if(C.test(E))return{allowed:!1,reason:`Blocked potentially destructive or unsafe command pattern: "${C.source}"`};return{allowed:!0}},w=t||h||n?.modelName||n?.activeModel||i.activeModel,T=process.platform==="win32"?"Windows":process.platform==="darwin"?"macOS":"Linux",$=`-- TOOL DEFINITIONS (path = relative to CWD, path separator: '/') --
|
|
1178
1181
|
You cant execute tools. Instead, output in chat the exact string [tool:functions.ToolName(arg1="value1")] & wait for system response \u2190 no exception, tool:functions must
|
|
1179
1182
|
Tool Rules:
|
|
1180
1183
|
- Mandatorily JSON escape literal sequences (backslash: \\\\, newLine: \\ n, quote: \\")
|
|
@@ -1200,7 +1203,7 @@ ${a?"- AskMain(question=string). Communicate with PARENT/MAIN AGENT. When clarif
|
|
|
1200
1203
|
- ReadFile(path=string, startLine?=int, endLine?=int)
|
|
1201
1204
|
- PatchFile(path=string, allowMultiple?=bool, searchContent1="string match OR ^LINE:start..end$", newContent1=string, ...MAX15). Small searchString. Line Ranges: ^...$ syntax, must for large blocks/escape sequences
|
|
1202
1205
|
- WriteFile(path=string, content=string). Creates/Overwrites. File Exist? PatchFile > WriteFile
|
|
1203
|
-
- Run(command=string). Runs ${T==="Windows"?
|
|
1206
|
+
- Run(command=string). Runs ${T==="Windows"?Un()?"powershell":"windows CMD":"bash"} command. Destructive command \u2192 Ask user`.trim(),R=`=== START SYSTEM PROMPT ===
|
|
1204
1207
|
Identity: FluxFlow subagent helping the main Agent
|
|
1205
1208
|
Your task is: "${e}"
|
|
1206
1209
|
|
|
@@ -1214,14 +1217,14 @@ CWD: ${process.cwd()}
|
|
|
1214
1217
|
${$.trimEnd()}
|
|
1215
1218
|
|
|
1216
1219
|
Current Time: ${f}
|
|
1217
|
-
=== END SYSTEM PROMPT ===`,k=[{role:"user",text:`Complete this task: ${e}`}],S=0,_="";for(;S<s;){if(
|
|
1220
|
+
=== END SYSTEM PROMPT ===`,k=[{role:"user",text:`Complete this task: ${e}`}],S=0,_="";for(;S<s;){if(Lt){if(n?.taskId&&typeof Qe<"u"){let F=Qe.find(W=>W.id===n.taskId);F&&(F.status="cancelled")}throw r&&r("[SUBAGENT CANCELLED] Subagent task was cancelled."),new Error("Subagent task was cancelled.")}if(n?.taskId&&typeof Qe<"u"){let F=Qe.find(W=>W.id===n.taskId);if(F&&F.status==="cancelled")throw r&&r("[SUBAGENT CANCELLED] Subagent task was cancelled."),new Error("Subagent task was cancelled.")}let E=k.map(F=>({role:F.role==="user"?"user":"model",parts:[{text:F.text}]}));r&&r(`[Subagent Turn ${S+1}]...`);let C=(await sr(p,w,E,R,"Fast")).text||"",M=rn(C).trim();_=M,r&&r(`[Subagent Response]
|
|
1218
1221
|
${M}
|
|
1219
|
-
`),k.push({role:"agent",text:M});let v=rr(M);if(v.length===0)break;let L=v.filter(F=>F.toolName.toLowerCase()==="askmain"||F.toolName.toLowerCase()==="ask_main"),U=!1,j="";for(let F of v){if(
|
|
1222
|
+
`),k.push({role:"agent",text:M});let v=rr(M);if(v.length===0)break;let L=v.filter(F=>F.toolName.toLowerCase()==="askmain"||F.toolName.toLowerCase()==="ask_main"),U=!1,j="";for(let F of v){if(Lt){if(n?.taskId&&typeof Qe<"u"){let O=Qe.find(B=>B.id===n.taskId);O&&(O.status="cancelled")}throw new Error("Subagent task was cancelled.")}if(n?.taskId&&typeof Qe<"u"){let O=Qe.find(B=>B.id===n.taskId);if(O&&O.status==="cancelled")throw new Error("Subagent task was cancelled.")}let W=F.toolName.toLowerCase();if(W==="askuser"&&(W="ask"),W==="askmain"||W==="ask_main"){if(U)continue;U=!0;let O="";if(L.length===1?O=D(L[0].args).question||L[0].args:O=L.map((B,J)=>{let Q=D(B.args);return`Q${J+1}: ${Q.question||B.args}`}).join(`
|
|
1220
1223
|
`),n.onAskMain){r&&r(`[Executing Tool] AskMain("${O}")...`);let B=await n.onAskMain(O);r&&r(`[Tool Result]
|
|
1221
1224
|
Answer from Main Agent: ${B}
|
|
1222
1225
|
`),j+=`[TOOL RESULT for AskMain]: Answer from Main Agent: ${B}
|
|
1223
1226
|
|
|
1224
|
-
`,await
|
|
1227
|
+
`,await Dt("toolSuccess")}else j+=`[TOOL RESULT for AskMain]: ERROR: Main agent communication channel not available.
|
|
1225
1228
|
|
|
1226
1229
|
`;continue}if(!(o?o.some(O=>O.toLowerCase()===W):!0)){let O=`ERROR: Tool [${F.toolName}] is not in the allowed tools list for this subagent.`;r&&r(`[Blocked Tool Call] ${F.toolName} - not allowed
|
|
1227
1230
|
`),j+=`${O}
|
|
@@ -1233,11 +1236,11 @@ Answer from Main Agent: ${B}
|
|
|
1233
1236
|
${O}
|
|
1234
1237
|
`),j+=`[TOOL RESULT for ${F.toolName}]: ${O}
|
|
1235
1238
|
|
|
1236
|
-
`,await
|
|
1237
|
-
`),J=0,Q=0,We=!1;for(let Ne of B){if(Ne.includes("[DIFF_START]")){We=!0;continue}if(Ne.includes("[DIFF_END]")){We=!1;continue}We&&(/^\+\d+/.test(Ne)?J++:/^\-\d+/.test(Ne)&&Q++)}(J>0||Q>0)&&(await
|
|
1238
|
-
`)){if(Ne.includes("Old File contents:")){We=!0;continue}We&&(Ne.trim()===""?We=!1:/^\d+ \|/.test(Ne)&&Q++)}}(J>0||Q>0)&&(await
|
|
1239
|
+
`,await Dt("toolSuccess"),W==="patchfile"||W==="update_file"||W==="updatefile"||W==="patch_file"){if(O){let B=O.split(`
|
|
1240
|
+
`),J=0,Q=0,We=!1;for(let Ne of B){if(Ne.includes("[DIFF_START]")){We=!0;continue}if(Ne.includes("[DIFF_END]")){We=!1;continue}We&&(/^\+\d+/.test(Ne)?J++:/^\-\d+/.test(Ne)&&Q++)}(J>0||Q>0)&&(await Yt("linesAdded",J),await Yt("linesRemoved",Q))}}else if((W==="writefile"||W==="write_file")&&O){let B=O.match(/- Stats: \[(\d+) lines/),J=B?parseInt(B[1]):0,Q=0;if(O.includes("Old File contents:")){let We=!1;for(let Ne of O.split(`
|
|
1241
|
+
`)){if(Ne.includes("Old File contents:")){We=!0;continue}We&&(Ne.trim()===""?We=!1:/^\d+ \|/.test(Ne)&&Q++)}}(J>0||Q>0)&&(await Yt("linesAdded",J),await Yt("linesRemoved",Q))}}catch(O){let B=`ERROR: Execution failed for [${F.toolName}]: ${O.message}`;r&&r(`[Tool Error] ${B}
|
|
1239
1242
|
`),j+=`${B}
|
|
1240
1243
|
|
|
1241
|
-
`,await
|
|
1244
|
+
`,await Dt("toolFailure")}}let ee="";if(n?.taskId&&typeof Qe<"u"){let F=Qe.find(W=>W.id===n.taskId);if(F&&F.pendingSteerMessages&&F.pendingSteerMessages.length>0){let W=[...F.pendingSteerMessages];F.pendingSteerMessages=[];for(let ne of W)ee+=`
|
|
1242
1245
|
|
|
1243
|
-
[STEERING INSTRUCTION FROM MAIN AGENT]: ${ne}`,r&&r(`[Subagent Steered] ${ne}`)}}let X=(j.trim()+ee).trim();k.push({role:"user",text:X}),S++}return _};export{
|
|
1246
|
+
[STEERING INSTRUCTION FROM MAIN AGENT]: ${ne}`,r&&r(`[Subagent Steered] ${ne}`)}}let X=(j.trim()+ee).trim();k.push({role:"user",text:X}),S++}return _};export{bn as a,Ma as b,Wf as c,jf as d,lc as e,va as f,Gf as g,hc as h,Hf as i,hs as j,tl as k,eg as l,tg as m,D as n,vd as o,gr as p,Yo as q,Id as r,Od as s,Iu as t,Ou as u,yt as v,fo as w,Vu as x,zl as y,Yu as z,Xu as A,Ju as B,Qu as C,Zu as D,po as E,Ac as F,Hp as G,qp as H,sg as I,Hs as J,rg as K,ld as L,Ay as M,cd as N,dd as O,wi as P,rn as Q,fl as R,md as S,My as T,vy as U,ki as V,Iy as W,Oy as X,Sd as Y,Ly as Z,Dy as _,Py as $};
|