@easbot/utils 0.3.19 → 0.3.21

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/index.cjs CHANGED
@@ -1,29 +1,29 @@
1
- 'use strict';var chunkIVVWAT7R_cjs=require('./chunks/chunk-IVVWAT7R.cjs'),chunkKKCFNFFR_cjs=require('./chunks/chunk-KKCFNFFR.cjs'),chunkGVXRTRAT_cjs=require('./chunks/chunk-GVXRTRAT.cjs'),chunk5XHOPT4Y_cjs=require('./chunks/chunk-5XHOPT4Y.cjs'),chunkK7PV4FXJ_cjs=require('./chunks/chunk-K7PV4FXJ.cjs'),le=require('fs/promises'),U=require('zod'),crypto$1=require('crypto'),dotenv=require('dotenv'),Re=require('path'),xdgBasedir=require('xdg-basedir'),vt=require('os'),fs=require('fs'),url=require('url'),me=require('gray-matter'),undici=require('undici'),async_hooks=require('async_hooks');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var le__default=/*#__PURE__*/_interopDefault(le);var U__default=/*#__PURE__*/_interopDefault(U);var Re__default=/*#__PURE__*/_interopDefault(Re);var vt__default=/*#__PURE__*/_interopDefault(vt);var me__default=/*#__PURE__*/_interopDefault(me);chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();function wt(r,t){for(let n=r.length-1;n>=0;n-=1){let o=r[n];if(o!==void 0&&t(o,n,r))return o}}chunkK7PV4FXJ_cjs.e();exports.Binary=void 0;(n=>{function r(o,a,c){let m=0,i=o.length-1;for(;m<=i;){let u=Math.floor((m+i)/2),x=o[u];if(x===void 0)break;let b=c(x);if(b===a)return {found:true,index:u};b<a?m=u+1:i=u-1;}return {found:false,index:m}}n.search=r;function t(o,a,c){let m=c(a),i=0,u=o.length;for(;i<u;){let x=Math.floor((i+u)/2),b=o[x];if(b===void 0)break;c(b)<m?i=x+1:u=x;}return o.splice(i,0,a),o}n.insert=t;})(exports.Binary||(exports.Binary={}));chunkK7PV4FXJ_cjs.e();exports.Encode=void 0;(c=>{function r(m){let i=new TextEncoder().encode(m),u=Array.from(i,x=>String.fromCharCode(x)).join("");return btoa(u).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}c.base64Encode=r;function t(m){let i=atob(m.replace(/-/g,"+").replace(/_/g,"/")),u=Uint8Array.from(i,x=>x.charCodeAt(0));return new TextDecoder().decode(u)}c.base64Decode=t;async function n(m,i="SHA-256"){let x=new TextEncoder().encode(m),b=await crypto.subtle.digest(i,x);return Array.from(new Uint8Array(b)).map(h=>h.toString(16).padStart(2,"0")).join("")}c.hash=n;function o(m){if(!m)return;let i=2166136261;for(let u=0;u<m.length;u++)i^=m.charCodeAt(u),i=Math.imul(i,16777619);return (i>>>0).toString(36)}c.checksum=o;function a(m,i=5e5){if(!m)return;if(m.length<=i)return o(m);let u=4096,b=[0,Math.floor(m.length*.25),Math.floor(m.length*.5),Math.floor(m.length*.75),m.length-u].map(S=>{let P=Math.max(0,Math.min(m.length-u,S-Math.floor(u/2)));return o(m.slice(P,P+u))??""}).join(":");return `${m.length}:${b}`}c.sampledChecksum=a;})(exports.Encode||(exports.Encode={}));chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();exports.Identifier=void 0;(S=>{let r={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",command:"cmd",task:"task",heartbeat:"hb",agent:"ag",subagent:"sub",hook:"hok",compaction:"cmp",context:"ctx",experience:"exp",pattern:"pat",knowledge:"knw",evolution:"evo",result:"res"};function t(P){return U__default.default.string().startsWith(r[P])}S.schema=t;let n=26,o=0,a=0;function c(P,h){return i(P,false,h)}S.ascending=c;function m(P,h){return i(P,true,h)}S.descending=m;function i(P,h,T){if(!T)return x(P,h);if(!T.startsWith(r[P]))throw new Error(`ID ${T} does not start with ${r[P]}`);return T}function u(P){let h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",T="",E=crypto$1.randomBytes(P);for(let k=0;k<P;k++){let N=E[k];N!==void 0&&(T+=h[N%62]);}return T}function x(P,h,T){let E=T??Date.now();E!==o&&(o=E,a=0),a++;let k=BigInt(E)*BigInt(4096)+BigInt(a);k=h?~k:k;let N=Buffer.alloc(6);for(let j=0;j<6;j++)N[j]=Number(k>>BigInt(40-8*j)&BigInt(255));return r[P]+"_"+N.toString("hex")+u(n-12)}S.create=x;function b(P){let h=P.split("_")[0];if(!h)return 0;let T=P.slice(h.length+1,h.length+13),E=BigInt("0x"+T);return Number(E/BigInt(4096))}S.timestamp=b;})(exports.Identifier||(exports.Identifier={}));exports.TruncateContent=void 0;(x=>{x.DEFAULT_MAX_CHARS=4e3,x.DIRECTION="head",x.DIR=chunkGVXRTRAT_cjs.d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),x.GLOB=chunkGVXRTRAT_cjs.d.join(x.DIR,"*");let a=10080*60*1e3;function c(b,S,P){return P?`[Content truncated. Source: ${P}
2
- Full ${S} saved to: ${b}
3
- Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${S} saved to: ${b}
4
- Use Read tool with offset/limit parameters to view specific sections.]`}async function m(b,S={}){let P=S.maxChars??4e3,h=S.direction??x.DIRECTION,T=S.label??"content",E=S.sourcePath,k=chunkGVXRTRAT_cjs.d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),N=S.dir??k;if(b.length<=P)return {content:b,truncated:false};let j=exports.Identifier.ascending("context"),C=chunkGVXRTRAT_cjs.d.join(N,j);await le__default.default.mkdir(N,{recursive:true}).catch(()=>{}),await le__default.default.writeFile(C,b,"utf-8");let B=b.length-P,H;h==="head"?H=b.slice(0,P):H=b.slice(-P);let W=c(C,T,E),e=`${B} characters truncated`;return {content:h==="head"?`${H}
1
+ 'use strict';var chunkIVVWAT7R_cjs=require('./chunks/chunk-IVVWAT7R.cjs'),chunkKKCFNFFR_cjs=require('./chunks/chunk-KKCFNFFR.cjs'),chunkGVXRTRAT_cjs=require('./chunks/chunk-GVXRTRAT.cjs'),chunk5XHOPT4Y_cjs=require('./chunks/chunk-5XHOPT4Y.cjs'),chunkK7PV4FXJ_cjs=require('./chunks/chunk-K7PV4FXJ.cjs'),fe=require('fs/promises'),G=require('zod'),crypto$1=require('crypto'),dotenv=require('dotenv'),ve=require('path'),xdgBasedir=require('xdg-basedir'),_t=require('os'),fs=require('fs'),url=require('url'),he=require('gray-matter'),undici=require('undici'),async_hooks=require('async_hooks');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var fe__default=/*#__PURE__*/_interopDefault(fe);var G__default=/*#__PURE__*/_interopDefault(G);var ve__default=/*#__PURE__*/_interopDefault(ve);var _t__default=/*#__PURE__*/_interopDefault(_t);var he__default=/*#__PURE__*/_interopDefault(he);chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();function Pt(r,t){for(let n=r.length-1;n>=0;n-=1){let o=r[n];if(o!==void 0&&t(o,n,r))return o}}chunkK7PV4FXJ_cjs.e();exports.Binary=void 0;(n=>{function r(o,a,c){let m=0,i=o.length-1;for(;m<=i;){let f=Math.floor((m+i)/2),x=o[f];if(x===void 0)break;let T=c(x);if(T===a)return {found:true,index:f};T<a?m=f+1:i=f-1;}return {found:false,index:m}}n.search=r;function t(o,a,c){let m=c(a),i=0,f=o.length;for(;i<f;){let x=Math.floor((i+f)/2),T=o[x];if(T===void 0)break;c(T)<m?i=x+1:f=x;}return o.splice(i,0,a),o}n.insert=t;})(exports.Binary||(exports.Binary={}));chunkK7PV4FXJ_cjs.e();exports.Encode=void 0;(c=>{function r(m){let i=new TextEncoder().encode(m),f=Array.from(i,x=>String.fromCharCode(x)).join("");return btoa(f).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}c.base64Encode=r;function t(m){let i=atob(m.replace(/-/g,"+").replace(/_/g,"/")),f=Uint8Array.from(i,x=>x.charCodeAt(0));return new TextDecoder().decode(f)}c.base64Decode=t;async function n(m,i="SHA-256"){let x=new TextEncoder().encode(m),T=await crypto.subtle.digest(i,x);return Array.from(new Uint8Array(T)).map(h=>h.toString(16).padStart(2,"0")).join("")}c.hash=n;function o(m){if(!m)return;let i=2166136261;for(let f=0;f<m.length;f++)i^=m.charCodeAt(f),i=Math.imul(i,16777619);return (i>>>0).toString(36)}c.checksum=o;function a(m,i=5e5){if(!m)return;if(m.length<=i)return o(m);let f=4096,T=[0,Math.floor(m.length*.25),Math.floor(m.length*.5),Math.floor(m.length*.75),m.length-f].map(v=>{let y=Math.max(0,Math.min(m.length-f,v-Math.floor(f/2)));return o(m.slice(y,y+f))??""}).join(":");return `${m.length}:${T}`}c.sampledChecksum=a;})(exports.Encode||(exports.Encode={}));chunkK7PV4FXJ_cjs.e();chunkK7PV4FXJ_cjs.e();exports.Identifier=void 0;(v=>{let r={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",command:"cmd",task:"task",heartbeat:"hb",agent:"ag",subagent:"sub",hook:"hok",compaction:"cmp",context:"ctx",experience:"exp",pattern:"pat",knowledge:"knw",evolution:"evo",result:"res"};function t(y){return G__default.default.string().startsWith(r[y])}v.schema=t;let n=26,o=0,a=0;function c(y,h){return i(y,false,h)}v.ascending=c;function m(y,h){return i(y,true,h)}v.descending=m;function i(y,h,b){if(!b)return x(y,h);if(!b.startsWith(r[y]))throw new Error(`ID ${b} does not start with ${r[y]}`);return b}function f(y){let h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",b="",A=crypto$1.randomBytes(y);for(let k=0;k<y;k++){let $=A[k];$!==void 0&&(b+=h[$%62]);}return b}function x(y,h,b){let A=b??Date.now();A!==o&&(o=A,a=0),a++;let k=BigInt(A)*BigInt(4096)+BigInt(a);k=h?~k:k;let $=Buffer.alloc(6);for(let j=0;j<6;j++)$[j]=Number(k>>BigInt(40-8*j)&BigInt(255));return r[y]+"_"+$.toString("hex")+f(n-12)}v.create=x;function T(y){let h=y.split("_")[0];if(!h)return 0;let b=y.slice(h.length+1,h.length+13),A=BigInt("0x"+b);return Number(A/BigInt(4096))}v.timestamp=T;})(exports.Identifier||(exports.Identifier={}));exports.TruncateContent=void 0;(x=>{x.DEFAULT_MAX_CHARS=4e3,x.DIRECTION="head",x.DIR=chunkGVXRTRAT_cjs.d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),x.GLOB=chunkGVXRTRAT_cjs.d.join(x.DIR,"*");let a=10080*60*1e3;function c(T,v,y){return y?`[Content truncated. Source: ${y}
2
+ Full ${v} saved to: ${T}
3
+ Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${v} saved to: ${T}
4
+ Use Read tool with offset/limit parameters to view specific sections.]`}async function m(T,v={}){let y=v.maxChars??4e3,h=v.direction??x.DIRECTION,b=v.label??"content",A=v.sourcePath,k=chunkGVXRTRAT_cjs.d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),$=v.dir??k;if(T.length<=y)return {content:T,truncated:false};let j=exports.Identifier.ascending("context"),B=chunkGVXRTRAT_cjs.d.join($,j);await fe__default.default.mkdir($,{recursive:true}).catch(()=>{}),await fe__default.default.writeFile(B,T,"utf-8");let W=T.length-y,z;h==="head"?z=T.slice(0,y):z=T.slice(-y);let q=c(B,b,A),e=`${W} characters truncated`;return {content:h==="head"?`${z}
5
5
 
6
6
  ...${e}...
7
7
 
8
- ${W}`:`...${e}...
8
+ ${q}`:`...${e}...
9
9
 
10
- ${W}
10
+ ${q}
11
11
 
12
- ${H}`,truncated:true,outputPath:C,originalLength:b.length,removedLength:B,label:T}}x.truncate=m;function i(b){return b.truncated?c(b.outputPath,b.label):""}x.formatHint=i;async function u(){let b=exports.Identifier.timestamp(exports.Identifier.create("context",false,Date.now()-a)),P=(await le__default.default.readdir(x.DIR).catch(()=>[])).filter(h=>h.startsWith("context_"));for(let h of P)exports.Identifier.timestamp(h)>=b||await le__default.default.unlink(chunkGVXRTRAT_cjs.d.join(x.DIR,h)).catch(()=>{});}x.cleanup=u;})(exports.TruncateContent||(exports.TruncateContent={}));chunkK7PV4FXJ_cjs.e();exports.SessionTitle=void 0;(i=>{let r="New session - ",t="Child session - ";i.parentTitlePrefix=r,i.childTitlePrefix=t;function a(u=false){return (u?t:r)+chunk5XHOPT4Y_cjs.b(new Date)}i.createDefault=a;function c(u){return new RegExp(`^(${r}|${t})\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$`).test(u)}i.isDefault=c;function m(u){let x=u.match(/^(.+) \(fork #(\d+)\)$/);if(x){let b=x[1]??"",S=parseInt(x[2]??"0",10);return `${b} (fork #${S+1})`}return `${u} (fork #1)`}i.getForked=m;})(exports.SessionTitle||(exports.SessionTitle={}));chunkK7PV4FXJ_cjs.e();var ie=class ie extends Error{static create(t,n){var c;let o=U__default.default.object({name:U__default.default.literal(t),data:n}).meta({ref:t}),a=(c=class extends ie{constructor(i,u){super(t,u);chunkK7PV4FXJ_cjs.c(this,"data",i);chunkK7PV4FXJ_cjs.c(this,"name",t);this.name=t;}static isInstance(i){return i!==null&&typeof i=="object"&&"name"in i&&i.name===t}schema(){return o}toObject(){return {name:t,data:this.data}}},chunkK7PV4FXJ_cjs.c(c,"Schema",o),c);return Object.defineProperty(a,"name",{value:t}),a}};chunkK7PV4FXJ_cjs.c(ie,"Unknown",ie.create("UnknownError",U__default.default.object({message:U__default.default.string()})));var ae=ie;chunkK7PV4FXJ_cjs.e();exports.Ignore=void 0;(t=>{function r(n){return new Pe(n)}t.create=r;})(exports.Ignore||(exports.Ignore={}));var Pe=class{constructor(t){chunkK7PV4FXJ_cjs.c(this,"rules",[]);chunkK7PV4FXJ_cjs.c(this,"ignorecase");chunkK7PV4FXJ_cjs.c(this,"debug");this.ignorecase=t?.ignorecase??false,this.debug=t?.debug??false;}add(t){let n=typeof t=="string"?t.split(`
13
- `):t;for(let o=0;o<n.length;o++){let a=n[o];this.parseRule(a,o+1);}return this}parseRule(t,n){let o=t,a=t;if(o.length===0||o.startsWith("#"))return;let c=o.startsWith("!");if(c&&(o=o.slice(1)),o=o.trim(),o.length===0||(o.startsWith("\\#")&&(o=o.slice(1)),o.startsWith("#")))return;let m=o.startsWith("/");m&&(o=o.slice(1));let i=o.endsWith("/");i&&(o=o.slice(0,-1)),o.length!==0&&this.rules.push({pattern:o,negative:c,isDirectory:i,anchored:m,original:a,lineNumber:n});}ignores(t,n){let o=this.normalizePath(t),a=n??t.endsWith("/"),c=this.checkIgnore(o,a);return this.debug&&console.log(`Ignore.ignores("${t}", isDirectory=${a}) => ${c}`),c}checkIgnore(t,n){let o=false;for(let a of this.rules)a.isDirectory&&!n||this.matchPath(a,t)&&(a.negative?o=false:o=true);return o}matchPath(t,n){let o=this.ignorecase?n.toLowerCase():n,c=this.ignorecase?t.pattern.toLowerCase():t.pattern;if(t.anchored)return chunkGVXRTRAT_cjs.a.match(o,c);if(c.includes("/"))return chunkGVXRTRAT_cjs.a.match(o,c);let m=o.split("/");for(let i of m)if(chunkGVXRTRAT_cjs.a.match(i,c))return true;return false}filter(t){return t.filter(n=>!this.ignores(n))}createFilter(){return t=>!this.ignores(t)}normalizePath(t){let n=t.replace(/\\/g,"/");if(n==="/")return "";for(;n.startsWith("./");)n=n.slice(2);return n.endsWith("/")&&n.length>1&&(n=n.slice(0,-1)),n}};chunkK7PV4FXJ_cjs.e();function Be(r,t){let n=o=>{let a;try{a=r.parse(o);}catch(c){throw console.trace("schema validation failure stack trace:"),c instanceof U.z.ZodError&&console.error("schema validation issues:",JSON.stringify(c.issues,null,2)),c}return t(a)};return n.force=o=>t(o),n.schema=r,n}var Rt=Be;exports.Fn=void 0;(t=>t.fn=Be)(exports.Fn||(exports.Fn={}));chunkK7PV4FXJ_cjs.e();var St=chunk5XHOPT4Y_cjs.m.create({service:"env"});function kt(r={}){let t=r.isDevelopment??false,n=t?".env.dev":".env",o=r.globalConfigPath??(xdgBasedir.xdgConfig?Re__default.default.join(xdgBasedir.xdgConfig,"easbot"):void 0),a=r.projectRoot??process.cwd(),c=a?Re__default.default.join(a,".easbot"):void 0,m=[{root:o,label:"global"},{root:a,label:"project"},{root:c,label:"workspace"}],i=["XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","XDG_RUNTIME_DIR","EASBOT_CONFIG_PATH","EASBOT_DATA_PATH","EASBOT_CACHE_PATH","EASBOT_STATE_PATH","EASBOT_LOG_PATH"];for(let{root:u,label:x}of m){if(!u)continue;let b=Re__default.default.join(u,n),P=dotenv.config({path:b,override:true,debug:false,encoding:"utf-8",quiet:true}).parsed;if(P&&(t&&St.debug("loadEnv: loaded env file",{layer:x,path:b,keyCount:Object.keys(P).length}),t)){let h=i.filter(T=>T in P);h.length>0&&console.warn(`[loadEnv] ${b} contains keys that have no effect: ${h.join(", ")}.
12
+ ${z}`,truncated:true,outputPath:B,originalLength:T.length,removedLength:W,label:b}}x.truncate=m;function i(T){return T.truncated?c(T.outputPath,T.label):""}x.formatHint=i;async function f(){let T=exports.Identifier.timestamp(exports.Identifier.create("context",false,Date.now()-a)),y=(await fe__default.default.readdir(x.DIR).catch(()=>[])).filter(h=>h.startsWith("context_"));for(let h of y)exports.Identifier.timestamp(h)>=T||await fe__default.default.unlink(chunkGVXRTRAT_cjs.d.join(x.DIR,h)).catch(()=>{});}x.cleanup=f;})(exports.TruncateContent||(exports.TruncateContent={}));chunkK7PV4FXJ_cjs.e();exports.SessionTitle=void 0;(i=>{let r="New session - ",t="Child session - ";i.parentTitlePrefix=r,i.childTitlePrefix=t;function a(f=false){return (f?t:r)+chunk5XHOPT4Y_cjs.b(new Date)}i.createDefault=a;function c(f){return new RegExp(`^(${r}|${t})\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$`).test(f)}i.isDefault=c;function m(f){let x=f.match(/^(.+) \(fork #(\d+)\)$/);if(x){let T=x[1]??"",v=parseInt(x[2]??"0",10);return `${T} (fork #${v+1})`}return `${f} (fork #1)`}i.getForked=m;})(exports.SessionTitle||(exports.SessionTitle={}));chunkK7PV4FXJ_cjs.e();var ce=class ce extends Error{static create(t,n){var c;let o=G__default.default.object({name:G__default.default.literal(t),data:n}).meta({ref:t}),a=(c=class extends ce{constructor(i,f){super(t,f);chunkK7PV4FXJ_cjs.c(this,"data",i);chunkK7PV4FXJ_cjs.c(this,"name",t);this.name=t;}static isInstance(i){return i!==null&&typeof i=="object"&&"name"in i&&i.name===t}schema(){return o}toObject(){return {name:t,data:this.data}}},chunkK7PV4FXJ_cjs.c(c,"Schema",o),c);return Object.defineProperty(a,"name",{value:t}),a}};chunkK7PV4FXJ_cjs.c(ce,"Unknown",ce.create("UnknownError",G__default.default.object({message:G__default.default.string()})));var le=ce;chunkK7PV4FXJ_cjs.e();exports.Ignore=void 0;(t=>{function r(n){return new Ee(n)}t.create=r;})(exports.Ignore||(exports.Ignore={}));var Ee=class{constructor(t){chunkK7PV4FXJ_cjs.c(this,"rules",[]);chunkK7PV4FXJ_cjs.c(this,"ignorecase");chunkK7PV4FXJ_cjs.c(this,"debug");this.ignorecase=t?.ignorecase??false,this.debug=t?.debug??false;}add(t){let n=typeof t=="string"?t.split(`
13
+ `):t;for(let o=0;o<n.length;o++){let a=n[o];this.parseRule(a,o+1);}return this}parseRule(t,n){let o=t,a=t;if(o.length===0||o.startsWith("#"))return;let c=o.startsWith("!");if(c&&(o=o.slice(1)),o=o.trim(),o.length===0||(o.startsWith("\\#")&&(o=o.slice(1)),o.startsWith("#")))return;let m=o.startsWith("/");m&&(o=o.slice(1));let i=o.endsWith("/");i&&(o=o.slice(0,-1)),o.length!==0&&this.rules.push({pattern:o,negative:c,isDirectory:i,anchored:m,original:a,lineNumber:n});}ignores(t,n){let o=this.normalizePath(t),a=n??t.endsWith("/"),c=this.checkIgnore(o,a);return this.debug&&console.log(`Ignore.ignores("${t}", isDirectory=${a}) => ${c}`),c}checkIgnore(t,n){let o=false;for(let a of this.rules)a.isDirectory&&!n||this.matchPath(a,t)&&(a.negative?o=false:o=true);return o}matchPath(t,n){let o=this.ignorecase?n.toLowerCase():n,c=this.ignorecase?t.pattern.toLowerCase():t.pattern;if(t.anchored)return chunkGVXRTRAT_cjs.a.match(o,c);if(c.includes("/"))return chunkGVXRTRAT_cjs.a.match(o,c);let m=o.split("/");for(let i of m)if(chunkGVXRTRAT_cjs.a.match(i,c))return true;return false}filter(t){return t.filter(n=>!this.ignores(n))}createFilter(){return t=>!this.ignores(t)}normalizePath(t){let n=t.replace(/\\/g,"/");if(n==="/")return "";for(;n.startsWith("./");)n=n.slice(2);return n.endsWith("/")&&n.length>1&&(n=n.slice(0,-1)),n}};chunkK7PV4FXJ_cjs.e();function Ge(r,t){let n=o=>{let a;try{a=r.parse(o);}catch(c){throw console.trace("schema validation failure stack trace:"),c instanceof G.z.ZodError&&console.error("schema validation issues:",JSON.stringify(c.issues,null,2)),c}return t(a)};return n.force=o=>t(o),n.schema=r,n}var vt=Ge;exports.Fn=void 0;(t=>t.fn=Ge)(exports.Fn||(exports.Fn={}));chunkK7PV4FXJ_cjs.e();var kt=chunk5XHOPT4Y_cjs.m.create({service:"env"});function Ot(r={}){let t=r.isDevelopment??false,n=t?".env.dev":".env",o=r.globalConfigPath??(xdgBasedir.xdgConfig?ve__default.default.join(xdgBasedir.xdgConfig,"easbot"):void 0),a=r.projectRoot??process.cwd(),c=a?ve__default.default.join(a,".easbot"):void 0,m=[{root:o,label:"global"},{root:a,label:"project"},{root:c,label:"workspace"}],i=["XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","XDG_RUNTIME_DIR","EASBOT_CONFIG_PATH","EASBOT_DATA_PATH","EASBOT_CACHE_PATH","EASBOT_STATE_PATH","EASBOT_LOG_PATH"];for(let{root:f,label:x}of m){if(!f)continue;let T=ve__default.default.join(f,n),y=dotenv.config({path:T,override:true,debug:false,encoding:"utf-8",quiet:true}).parsed;if(y&&(t&&kt.debug("loadEnv: loaded env file",{layer:x,path:T,keyCount:Object.keys(y).length}),t)){let h=i.filter(b=>b in y);h.length>0&&console.warn(`[loadEnv] ${T} contains keys that have no effect: ${h.join(", ")}.
14
14
  Reason: xdg-basedir caches XDG_* on import, so this .env file loads too late.
15
- How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}exports.Env=void 0;(m=>{let r=chunkKKCFNFFR_cjs.a(()=>({...process.env}));function t(){r.reset();}m.reset=t;async function n(i){return r()[i]}m.get=n;async function o(){return r()}m.all=o;async function a(i,u){r()[i]=u;}m.set=a;async function c(i){delete r()[i];}m.remove=c;})(exports.Env||(exports.Env={}));chunkK7PV4FXJ_cjs.e();var Dt="easbot-oauth-dummy-key",Nt=chunk5XHOPT4Y_cjs.m.create({service:"auth"});exports.Auth=void 0;(T=>{T.Oauth=U__default.default.object({type:U__default.default.literal("oauth"),refresh:U__default.default.string(),access:U__default.default.string(),expires:U__default.default.number(),accountId:U__default.default.string().optional(),enterpriseUrl:U__default.default.string().optional()}).meta({ref:"OAuth"}),T.Api=U__default.default.object({type:U__default.default.literal("api"),key:U__default.default.string()}).meta({ref:"ApiAuth"}),T.WellKnown=U__default.default.object({type:U__default.default.literal("wellknown"),key:U__default.default.string(),token:U__default.default.string()}).meta({ref:"WellKnownAuth"}),T.Info=U__default.default.discriminatedUnion("type",[T.Oauth,T.Api,T.WellKnown]).meta({ref:"Auth"});function a(){let E=process.env.EASBOT_DATA_PATH??(xdgBasedir.xdgData?Re__default.default.join(xdgBasedir.xdgData,"easbot"):vt__default.default.tmpdir());return Re__default.default.join(E,"auth.json")}let c=chunkKKCFNFFR_cjs.b(async()=>{let k=await chunkKKCFNFFR_cjs.D.file(a()).json().catch(()=>({})),N={};for(let[j,C]of Object.entries(k)){let B=T.Info.safeParse(C);if(B.success){N[j]=B.data;continue}Nt.warn("auth.json entry skipped: schema validation failed",{providerId:j,issues:B.error.issues.map(H=>({path:H.path,message:H.message}))});}return N}),m=Promise.resolve(),i=E=>{let k=m.then(E,E);return m=k.catch(()=>{}),k};async function u(E,k){let N=Re__default.default.dirname(E);fs.existsSync(N)||fs.mkdirSync(N,{recursive:true});let j=`${E}.${process.pid}.${Date.now()}.tmp`;await le.writeFile(j,JSON.stringify(k,null,2),{mode:384});try{await le.rename(j,E);}catch(C){try{let{unlink:B}=await import('fs/promises');await B(j);}catch{}throw await chunkKKCFNFFR_cjs.D.write(E,JSON.stringify(k,null,2)),C}}function x(){c.reset();}T.reset=x;async function b(E){return (await c())[E]}T.get=b;async function S(){return c()}T.all=S;async function P(E,k){await i(async()=>{let N=a(),j=await chunkKKCFNFFR_cjs.D.file(N).json().catch(()=>({})),C={};for(let[B,H]of Object.entries(j)){let W=T.Info.safeParse(H);W.success&&(C[B]=W.data);}C[E]=k,await u(N,C),c.reset();});}T.set=P;async function h(E){await i(async()=>{let k=a(),N=await chunkKKCFNFFR_cjs.D.file(k).json().catch(()=>({}));if(!(E in N)){c.reset();return}let j={};for(let[C,B]of Object.entries(N)){if(C===E)continue;let H=T.Info.safeParse(B);H.success&&(j[C]=H.data);}await u(k,j),c.reset();});}T.remove=h;})(exports.Auth||(exports.Auth={}));chunkK7PV4FXJ_cjs.e();async function Ft(r,t){if(process.env.EASBOT_CLIENT==="acp")try{let c=process.platform==="win32"?"cmd":void 0,m=chunkKKCFNFFR_cjs.G.spawn(c,`git ${r.join(" ")}`,{stdin:void 0,stdout:"pipe",stderr:"pipe",cwd:t.cwd,env:t.env?{...process.env,...t.env}:process.env}),[i,u,x]=await Promise.all([m.exited,new Response(m.stdout).arrayBuffer(),new Response(m.stderr).arrayBuffer()]),b=Buffer.from(u),S=Buffer.from(x);return {exitCode:i,text:()=>b.toString(),stdout:b,stderr:S}}catch(c){let m=Buffer.from(c instanceof Error?c.message:String(c));return {exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:m}}let n=t.env?{...process.env,...t.env}:void 0,o=chunkKKCFNFFR_cjs.G.$`git ${r.join(" ")}`.quiet().nothrow().cwd(t.cwd);n&&(o=o.env(n));let a=await o;return {exitCode:a.exitCode,text:()=>a.text(),stdout:a.stdout,stderr:a.stderr}}chunkK7PV4FXJ_cjs.e();function qe(r){return r?Re.dirname(url.fileURLToPath(r)):typeof __dirname<"u"?__dirname:process.cwd()}function We(r,t,n=3){function o(a,c){if(c>n||!fs.existsSync(a))return null;try{let m=fs.readdirSync(a);for(let i of m){let u=Re.join(a,i);try{let x=fs.statSync(u);if(x.isFile()&&u.endsWith(t))return u;if(x.isDirectory()&&c<n){let b=o(u,c+1);if(b)return b}}catch{}}}catch{}return null}return o(r,0)}function Xe(r,t){let n=Re.join(r,t);if(fs.existsSync(n))return n;let o=t.split("/").pop()||t,a=r;for(let c=0;c<5;c++){let m=Re.join(a,"assets","txt");if(fs.existsSync(m)){let x=We(m,o,5);if(x)return x}let i=Re.join(a,"dist","assets","txt");if(fs.existsSync(i)){let x=We(i,o,5);if(x)return x}let u=Re.join(a,"..");if(u===a)break;a=u;}return n}function zt(r,t){return chunkKKCFNFFR_cjs.c.lazy(()=>{try{let n=qe(t),o=Xe(n,r);return chunkKKCFNFFR_cjs.D.file(o).textSync()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}function Ut(r,t){return chunkKKCFNFFR_cjs.c.lazy(async()=>{try{let n=qe(t),o=Xe(n,r);return await chunkKKCFNFFR_cjs.D.file(o).text()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}chunkK7PV4FXJ_cjs.e();function Bt(r){return r()}chunkK7PV4FXJ_cjs.e();function Ht(r){if(!r||typeof r!="string")return {provider:"",model:""};let t=r.indexOf("/");return t===-1?{provider:"",model:r}:{provider:r.substring(0,t),model:r.substring(t+1)}}chunkK7PV4FXJ_cjs.e();exports.Markdown=void 0;(W=>{W.FILE_REGEX=/(?<![\w`])#(\S+)/g,W.SHELL_REGEX=/!`([^`]+)`/g;function n(e){return Array.from(e.matchAll(W.FILE_REGEX))}W.files=n;function o(e){return Array.from(e.matchAll(W.SHELL_REGEX))}W.shell=o;function a(e){if(!e||typeof e!="string")return typeof e=="string"?e:"";let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return e;let d=s[0],l=(s[1]??"").split(`
16
- `),p=[];for(let w of l){if(w.trim().startsWith("#")||w.trim()===""){p.push(w);continue}if(w.match(/^\s+/)){p.push(w);continue}let F=w.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!F){p.push(w);continue}let R=F[1],v=F?.[2]?.trim();if(v===""||v===">"||v==="|"||v?.startsWith('"')||v?.startsWith("'")){p.push(w);continue}if(v?.includes(":")){p.push(`${R}: |-`),p.push(` ${v}`);continue}p.push(w);}let y=p.join(`
15
+ How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}exports.Env=void 0;(m=>{let r=chunkKKCFNFFR_cjs.a(()=>({...process.env}));function t(){r.reset();}m.reset=t;async function n(i){return r()[i]}m.get=n;async function o(){return r()}m.all=o;async function a(i,f){r()[i]=f;}m.set=a;async function c(i){delete r()[i];}m.remove=c;})(exports.Env||(exports.Env={}));chunkK7PV4FXJ_cjs.e();var Ft="easbot-oauth-dummy-key",Lt=chunk5XHOPT4Y_cjs.m.create({service:"auth"});exports.Auth=void 0;(b=>{b.Oauth=G__default.default.object({type:G__default.default.literal("oauth"),refresh:G__default.default.string(),access:G__default.default.string(),expires:G__default.default.number(),accountId:G__default.default.string().optional(),enterpriseUrl:G__default.default.string().optional()}).meta({ref:"OAuth"}),b.Api=G__default.default.object({type:G__default.default.literal("api"),key:G__default.default.string()}).meta({ref:"ApiAuth"}),b.WellKnown=G__default.default.object({type:G__default.default.literal("wellknown"),key:G__default.default.string(),token:G__default.default.string()}).meta({ref:"WellKnownAuth"}),b.Info=G__default.default.discriminatedUnion("type",[b.Oauth,b.Api,b.WellKnown]).meta({ref:"Auth"});function a(){let A=process.env.EASBOT_DATA_PATH??(xdgBasedir.xdgData?ve__default.default.join(xdgBasedir.xdgData,"easbot"):_t__default.default.tmpdir());return ve__default.default.join(A,"auth.json")}let c=chunkKKCFNFFR_cjs.b(async()=>{let k=await chunkKKCFNFFR_cjs.D.file(a()).json().catch(()=>({})),$={};for(let[j,B]of Object.entries(k)){let W=b.Info.safeParse(B);if(W.success){$[j]=W.data;continue}Lt.warn("auth.json entry skipped: schema validation failed",{providerId:j,issues:W.error.issues.map(z=>({path:z.path,message:z.message}))});}return $}),m=Promise.resolve(),i=A=>{let k=m.then(A,A);return m=k.catch(()=>{}),k};async function f(A,k){let $=ve__default.default.dirname(A);fs.existsSync($)||fs.mkdirSync($,{recursive:true});let j=`${A}.${process.pid}.${Date.now()}.tmp`;await fe.writeFile(j,JSON.stringify(k,null,2),{mode:384});try{await fe.rename(j,A);}catch(B){try{let{unlink:W}=await import('fs/promises');await W(j);}catch{}throw await chunkKKCFNFFR_cjs.D.write(A,JSON.stringify(k,null,2)),B}}function x(){c.reset();}b.reset=x;async function T(A){return (await c())[A]}b.get=T;async function v(){return c()}b.all=v;async function y(A,k){await i(async()=>{let $=a(),j=await chunkKKCFNFFR_cjs.D.file($).json().catch(()=>({})),B={};for(let[W,z]of Object.entries(j)){let q=b.Info.safeParse(z);q.success&&(B[W]=q.data);}B[A]=k,await f($,B),c.reset();});}b.set=y;async function h(A){await i(async()=>{let k=a(),$=await chunkKKCFNFFR_cjs.D.file(k).json().catch(()=>({}));if(!(A in $)){c.reset();return}let j={};for(let[B,W]of Object.entries($)){if(B===A)continue;let z=b.Info.safeParse(W);z.success&&(j[B]=z.data);}await f(k,j),c.reset();});}b.remove=h;})(exports.Auth||(exports.Auth={}));chunkK7PV4FXJ_cjs.e();async function Mt(r,t){if(process.env.EASBOT_CLIENT==="acp")try{let c=process.platform==="win32"?"cmd":void 0,m=chunkKKCFNFFR_cjs.G.spawn(c,`git ${r.join(" ")}`,{stdin:void 0,stdout:"pipe",stderr:"pipe",cwd:t.cwd,env:t.env?{...process.env,...t.env}:process.env}),[i,f,x]=await Promise.all([m.exited,new Response(m.stdout).arrayBuffer(),new Response(m.stderr).arrayBuffer()]),T=Buffer.from(f),v=Buffer.from(x);return {exitCode:i,text:()=>T.toString(),stdout:T,stderr:v}}catch(c){let m=Buffer.from(c instanceof Error?c.message:String(c));return {exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:m}}let n=t.env?{...process.env,...t.env}:void 0,o=chunkKKCFNFFR_cjs.G.$`git ${r.join(" ")}`.quiet().nothrow().cwd(t.cwd);n&&(o=o.env(n));let a=await o;return {exitCode:a.exitCode,text:()=>a.text(),stdout:a.stdout,stderr:a.stderr}}chunkK7PV4FXJ_cjs.e();function Ye(r){return r?ve.dirname(url.fileURLToPath(r)):typeof __dirname<"u"?__dirname:process.cwd()}function Xe(r,t,n=3){function o(a,c){if(c>n||!fs.existsSync(a))return null;try{let m=fs.readdirSync(a);for(let i of m){let f=ve.join(a,i);try{let x=fs.statSync(f);if(x.isFile()&&f.endsWith(t))return f;if(x.isDirectory()&&c<n){let T=o(f,c+1);if(T)return T}}catch{}}}catch{}return null}return o(r,0)}function Je(r,t){let n=ve.join(r,t);if(fs.existsSync(n))return n;let o=t.split("/").pop()||t,a=r;for(let c=0;c<5;c++){let m=ve.join(a,"assets","txt");if(fs.existsSync(m)){let x=Xe(m,o,5);if(x)return x}let i=ve.join(a,"dist","assets","txt");if(fs.existsSync(i)){let x=Xe(i,o,5);if(x)return x}let f=ve.join(a,"..");if(f===a)break;a=f;}return n}function Ht(r,t){return chunkKKCFNFFR_cjs.c.lazy(()=>{try{let n=Ye(t),o=Je(n,r);return chunkKKCFNFFR_cjs.D.file(o).textSync()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}function Bt(r,t){return chunkKKCFNFFR_cjs.c.lazy(async()=>{try{let n=Ye(t),o=Je(n,r);return await chunkKKCFNFFR_cjs.D.file(o).text()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}chunkK7PV4FXJ_cjs.e();function Gt(r){return r()}chunkK7PV4FXJ_cjs.e();function Wt(r){if(!r||typeof r!="string")return {provider:"",model:""};let t=r.indexOf("/");return t===-1?{provider:"",model:r}:{provider:r.substring(0,t),model:r.substring(t+1)}}chunkK7PV4FXJ_cjs.e();exports.Markdown=void 0;(q=>{q.FILE_REGEX=/(?<![\w`])#(\S+)/g,q.SHELL_REGEX=/!`([^`]+)`/g;function n(e){return Array.from(e.matchAll(q.FILE_REGEX))}q.files=n;function o(e){return Array.from(e.matchAll(q.SHELL_REGEX))}q.shell=o;function a(e){if(!e||typeof e!="string")return typeof e=="string"?e:"";let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return e;let d=s[0],w=(s[1]??"").split(`
16
+ `),u=[];for(let p of w){if(p.trim().startsWith("#")||p.trim()===""){u.push(p);continue}if(p.match(/^\s+/)){u.push(p);continue}let S=p.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!S){u.push(p);continue}let E=S[1],D=S?.[2]?.trim();if(D===""||D===">"||D==="|"||D?.startsWith('"')||D?.startsWith("'")){u.push(p);continue}if(D?.includes(":")){u.push(`${E}: |-`),u.push(` ${D}`);continue}u.push(p);}let l=u.join(`
17
17
  `);return e.replace(d,`---
18
- ${y}
19
- ---`)}W.fallbackSanitization=a;function c(e){if(typeof e!="string")return null;if(!e)return {data:{},content:""};try{let s=me__default.default(e);return {data:s.data??{},content:s.content??""}}catch{try{let s=me__default.default(a(e));return {data:s.data??{},content:s.content??""}}catch{return null}}}async function m(e){let s=await le.readFile(e,"utf-8"),d=c(s);if(!d){let f=`${e}: Failed to parse YAML frontmatter`;throw new W.FrontmatterError({path:e,message:f},{cause:new Error(f)})}return d}W.parse=m;function i(e){if(!e||typeof e!="string")return {frontmatter:{},content:typeof e=="string"?e:""};let s=c(e);return s?{frontmatter:s.data,content:s.content}:{frontmatter:{},content:e}}W.extractFrontmatter=i;function u(e,s){let d=e??"";return !s||Object.keys(s).length===0?me__default.default.stringify(d,void 0):me__default.default.stringify(d,s)}W.format=u,W.FrontmatterError=ae.create("ConfigFrontmatterError",U.z.object({path:U.z.string(),message:U.z.string()}));function b(e,s){return S(e,s)}W.replaceVariables=b;function S(e,s){return P(e,s)}W.renderTemplate=S;function P(e,s){let d=e;return d=h(d,s),d=k(d,s),d=C(d,s),d=j(d,s),d=d.replace(/\{\{([^}]*)\}\}/g,(f,l)=>{let p=l.trim();if(!p)return "";let y=ge(p,s);return y!==void 0?String(H(y)):""}),d}function h(e,s){let d=e.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y,w)=>{if(!l||!p||!y||!w)return f;let{a:F,b:R}=T(p,s);return F===void 0||R===void 0?f:E(l,F,R)?y:w});return d=d.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let{a:w,b:F}=T(p,s);return w===void 0||F===void 0?f:E(l,w,F)?y:""}),d}function T(e,s){let d=/"([^"]*)"|(\w+(?:\.\w+|\[\d+\])*)/g,f=[],l;for(;(l=d.exec(e))!==null;)l[1]!==void 0?f.push(l[1]):l[2]!==void 0&&f.push(l[2]);if(f.length<2)return {a:void 0,b:void 0};let p=ge(f[0],s),y=ge(f[1],s);return {a:p,b:y}}function E(e,s,d){switch(e){case "eq":return s===d;case "ne":return s!==d;case "gt":return Number(s)>Number(d);case "lt":return Number(s)<Number(d);case "gte":return Number(s)>=Number(d);case "lte":return Number(s)<=Number(d);default:return false}}function k(e,s){let d=e.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let w=s[l];return N(w)?p:y});return d=d.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(f,l,p)=>{if(!l||!p)return f;let y=s[l];return N(y)?p:""}),d}function N(e){return e==null||e===false||e===""}function j(e,s){let d=e.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let w=l in s?s[l]:void 0;return N(w)?y:p});return d=d.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p)=>{if(!l||!p)return f;let y=l in s?s[l]:void 0;return N(y)?"":p}),d}function C(e,s){let d=e.match(/\{\{#each\s+([\w.]+)\}\}/);if(!d?.[1])return e;let f=d[1],l=ge(f,s),p=d[0],y=d.index,w=e.slice(y+p.length),F;if(Array.isArray(l))F=l.map((A,O)=>({key:String(O),value:A}));else if(l!==null&&typeof l=="object")F=Object.entries(l).map(([A,O])=>({key:A,value:O}));else return B(e,y,p,w);let R=1,v=-1,I=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,D;for(I.lastIndex=0;(D=I.exec(w))!==null;)if(D[0].startsWith("{{#each"))R++;else if(R--,R===0){v=D.index;break}if(v===-1)return e;let M=w.slice(0,v),q=e.slice(y,y+p.length+v+"{{/each}}".length);if(F.length===0)return e.replace(q,"");let _=F.map(({key:A,value:O},z)=>{let L={...s};return typeof O=="object"&&O!==null?(Object.assign(L,O),L.this=O,L["@value"]=O,L["@index"]=z,L["@key"]=A):(L.this=O,L["@value"]=O,L["@index"]=z,L["@key"]=A),P(M,L)});return e.replace(q,_.join(""))}function B(e,s,d,f,l){let p=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,y=1,w=-1,F;for(p.lastIndex=0;(F=p.exec(f))!==null;)if(F[0].startsWith("{{#each"))y++;else if(y--,y===0){w=F.index;break}if(w===-1)return e;let v=e.slice(s,s+d.length+w+"{{/each}}".length);return e.replace(v,"")}function H(e){return e instanceof Date?chunk5XHOPT4Y_cjs.b(e):Array.isArray(e)?e.map(H).join(", "):e!==null&&typeof e=="object"?JSON.stringify(e,null,2):String(e)}W.formatVariableValue=H;})(exports.Markdown||(exports.Markdown={}));function ge(r,t){let n=/(@\w+)|(\w+)|\[(\d+)\]/g,o=t,a;for(;(a=n.exec(r))!==null;){if(o==null)return;if(a[1]!==void 0){let c=a[1];o=t[c];}else if(a[2]!==void 0){let c=a[2];if(typeof o=="object"&&o!==null)o=o[c];else return}else if(a[3]!==void 0){let c=Number(a[3]);if(Array.isArray(o)&&c>=0&&c<o.length)o=o[c];else return}}return o}chunkK7PV4FXJ_cjs.e();function Je(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n[n.length-1]??""}function Wt(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n.slice(0,n.length-1).join("/")+"/"}function qt(r){if(!r)return "";let t=r.split(".");return t[t.length-1]}function Xt(r,t=20){let n=Je(r);if(n.length<=t)return n;let o=n.lastIndexOf("."),a=o<=0?"":n.slice(o),c=t-a.length-1;return c<=0?n.slice(0,t-1)+"\u2026":n.slice(0,c)+"\u2026"+a}function Jt(r,t=20){if(r.length<=t)return r;let n=t-1,o=Math.ceil(n/2),a=Math.floor(n/2);return r.slice(0,o)+"\u2026"+r.slice(-a)}chunkK7PV4FXJ_cjs.e();var Yt=["load failed","network connection was lost","network request failed","failed to fetch","econnreset","econnrefused","etimedout","socket hang up"];function Kt(r){if(!r)return false;let t=String(r instanceof Error?r.message:r).toLowerCase();return Yt.some(n=>t.includes(n))}async function Ie(r,t={}){let{attempts:n=3,delay:o=500,factor:a=2,maxDelay:c=1e4,retryIf:m=Kt}=t,i;for(let u=0;u<n;u++)try{return await r()}catch(x){if(i=x,u===n-1||!m(x))throw x;let b=Math.min(o*a**u,c);await new Promise(S=>setTimeout(S,b));}throw i}chunkK7PV4FXJ_cjs.e();exports.Fetch=void 0;(d=>{let r=chunk5XHOPT4Y_cjs.m.create({service:"fetch"}),t=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],n=false,o=null;function a(){return t.some(f=>{let l=process.env[f];return typeof l=="string"&&l.trim().length>0})}d.hasProxyConfigured=a;function c(){let f=process.env.http_proxy||process.env.HTTP_PROXY;return process.env.https_proxy||process.env.HTTPS_PROXY||f}d.getProxyUrl=c;function m(f={}){let l=f.httpProxy||f.httpsProxy||c();if(!l){r.warn("[Fetch] No proxy configured, HTTP_PROXY/HTTPS_PROXY environment variables not set");return}let p=new undici.ProxyAgent({uri:l,connectTimeout:f.connectTimeout||1e4,keepAliveTimeout:f.keepAliveTimeout||3e4});o=undici.getGlobalDispatcher(),undici.setGlobalDispatcher(p),n=true,r.info(`[Fetch] Global proxy enabled: ${l}`);}d.enableProxy=m;function i(){!n||!o||(undici.setGlobalDispatcher(o),n=false,o=null,r.info("[Fetch] \u5168\u5C40\u4EE3\u7406\u5DF2\u7981\u7528"));}d.disableProxy=i;function u(){return n}d.isProxyEnabled=u;async function x(f,l){let p=l?.timeout||3e4,y=l?.responseType||"json",{timeout:w,responseType:F,...R}=l||{},v=null,I=null;try{R.signal||(v=new AbortController,I=setTimeout(()=>v.abort(),p));let D=await fetch(f,{...R,signal:R.signal||v.signal});I&&clearTimeout(I);let M;switch(y){case "arrayBuffer":M=await D.arrayBuffer();break;case "blob":M=await D.blob();break;case "buffer":{let G=await D.arrayBuffer();M=Buffer.from(G);break}case "text":M=await D.text();break;default:{let G=await D.text();try{M=JSON.parse(G);}catch{M=G;}break}}return {ok:D.ok,status:D.status,statusText:D.statusText,headers:D.headers,data:M,url:D.url}}catch(D){throw I&&clearTimeout(I),D}}async function b(f,l){let p=l?.retries??0,y=l?.retryDelay??1e3,{retries:w,retryDelay:F,responseType:R,...v}=l||{};return Ie(()=>x(f,{...v,responseType:l?.responseType}),{attempts:p+1,delay:y,maxDelay:y*2**(p+1)})}async function S(f,l){return b(f,{method:"GET",...l})}d.get=S;async function P(f,l,p){return b(f,{method:"POST",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d.post=P;async function h(f,l,p){return b(f,{method:"PUT",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d.put=h;async function T(f,l,p){return b(f,{method:"DELETE",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d.del=T;async function E(f,l,p){return b(f,{method:"PATCH",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d.patch=E;async function k(f,l){return b(f,l)}d.request=k;function N(f={}){return a()?(m(f),true):false}d.autoProxy=N;let j=5*1024*1024;function C(f){return new TextEncoder().encode(f)}function B(f){return chunkGVXRTRAT_cjs.d.mimeType(f)}function H(f){return f.startsWith("file://")}async function W(f){let l=url.fileURLToPath(f);return await chunkKKCFNFFR_cjs.D.file(l).bytes()}async function e(f,l,p){let y=`----FetchFormBoundary${Date.now()}`,w=[],R=l.some(_=>_.filename||_.value instanceof Uint8Array||Buffer.isBuffer(_.value))&&!p?.timeout?3e5:p?.timeout;for(let _ of l){let A=_.maxSize??j,O=_.filename,z=`Content-Disposition: form-data; name="${_.name}"${O?`; filename="${O}"`:""}`;O&&(z+=`\r
20
- Content-Type: ${B(O)}`),z+=`\r
18
+ ${l}
19
+ ---`)}q.fallbackSanitization=a;function c(e){if(typeof e!="string")return null;if(!e)return {data:{},content:""};try{let s=he__default.default(e);return {data:s.data??{},content:s.content??""}}catch{try{let s=he__default.default(a(e));return {data:s.data??{},content:s.content??""}}catch{return null}}}async function m(e){let s=await fe.readFile(e,"utf-8"),d=c(s);if(!d){let P=`${e}: Failed to parse YAML frontmatter`;throw new q.FrontmatterError({path:e,message:P},{cause:new Error(P)})}return d}q.parse=m;function i(e){if(!e||typeof e!="string")return {frontmatter:{},content:typeof e=="string"?e:""};let s=c(e);return s?{frontmatter:s.data,content:s.content}:{frontmatter:{},content:e}}q.extractFrontmatter=i;function f(e,s){let d=e??"";return !s||Object.keys(s).length===0?he__default.default.stringify(d,void 0):he__default.default.stringify(d,s)}q.format=f,q.FrontmatterError=le.create("ConfigFrontmatterError",G.z.object({path:G.z.string(),message:G.z.string()}));function T(e,s){return v(e,s)}q.replaceVariables=T;function v(e,s){return y(e,s)}q.renderTemplate=v;function y(e,s){let d=e;return d=h(d,s),d=k(d,s),d=B(d,s),d=j(d,s),d=d.replace(/\{\{([^}]*)\}\}/g,(P,w)=>{let u=w.trim();if(!u)return "";let l=xe(u,s);return l!==void 0?String(z(l)):""}),d}function h(e,s){let d=e.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l,p)=>{if(!w||!u||!l||!p)return P;let{a:S,b:E}=b(u,s);return S===void 0||E===void 0?P:A(w,S,E)?l:p});return d=d.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let{a:p,b:S}=b(u,s);return p===void 0||S===void 0?P:A(w,p,S)?l:""}),d}function b(e,s){let d=/"([^"]*)"|(\w+(?:\.\w+|\[\d+\])*)/g,P=[],w;for(;(w=d.exec(e))!==null;)w[1]!==void 0?P.push(w[1]):w[2]!==void 0&&P.push(w[2]);if(P.length<2)return {a:void 0,b:void 0};let u=xe(P[0],s),l=xe(P[1],s);return {a:u,b:l}}function A(e,s,d){switch(e){case "eq":return s===d;case "ne":return s!==d;case "gt":return Number(s)>Number(d);case "lt":return Number(s)<Number(d);case "gte":return Number(s)>=Number(d);case "lte":return Number(s)<=Number(d);default:return false}}function k(e,s){let d=e.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=s[w];return $(p)?u:l});return d=d.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=s[w];return $(l)?u:""}),d}function $(e){return e==null||e===false||e===""}function j(e,s){let d=e.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=w in s?s[w]:void 0;return $(p)?l:u});return d=d.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=w in s?s[w]:void 0;return $(l)?"":u}),d}function B(e,s){let d=e.match(/\{\{#each\s+([\w.]+)\}\}/);if(!d?.[1])return e;let P=d[1],w=xe(P,s),u=d[0],l=d.index,p=e.slice(l+u.length),S;if(Array.isArray(w))S=w.map((O,R)=>({key:String(R),value:O}));else if(w!==null&&typeof w=="object")S=Object.entries(w).map(([O,R])=>({key:O,value:R}));else return W(e,l,u,p);let E=1,D=-1,_=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,M;for(_.lastIndex=0;(M=_.exec(p))!==null;)if(M[0].startsWith("{{#each"))E++;else if(E--,E===0){D=M.index;break}if(D===-1)return e;let U=p.slice(0,D),C=e.slice(l,l+u.length+D+"{{/each}}".length);if(S.length===0)return e.replace(C,"");let H=S.map(({key:O,value:R},L)=>{let F={...s};return typeof R=="object"&&R!==null?(Object.assign(F,R),F.this=R,F["@value"]=R,F["@index"]=L,F["@key"]=O):(F.this=R,F["@value"]=R,F["@index"]=L,F["@key"]=O),y(U,F)});return e.replace(C,H.join(""))}function W(e,s,d,P,w){let u=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,l=1,p=-1,S;for(u.lastIndex=0;(S=u.exec(P))!==null;)if(S[0].startsWith("{{#each"))l++;else if(l--,l===0){p=S.index;break}if(p===-1)return e;let D=e.slice(s,s+d.length+p+"{{/each}}".length);return e.replace(D,"")}function z(e){return e instanceof Date?chunk5XHOPT4Y_cjs.b(e):Array.isArray(e)?e.map(z).join(", "):e!==null&&typeof e=="object"?JSON.stringify(e,null,2):String(e)}q.formatVariableValue=z;})(exports.Markdown||(exports.Markdown={}));function xe(r,t){let n=/(@\w+)|(\w+)|\[(\d+)\]/g,o=t,a;for(;(a=n.exec(r))!==null;){if(o==null)return;if(a[1]!==void 0){let c=a[1];o=t[c];}else if(a[2]!==void 0){let c=a[2];if(typeof o=="object"&&o!==null)o=o[c];else return}else if(a[3]!==void 0){let c=Number(a[3]);if(Array.isArray(o)&&c>=0&&c<o.length)o=o[c];else return}}return o}chunkK7PV4FXJ_cjs.e();function Ke(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n[n.length-1]??""}function Xt(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n.slice(0,n.length-1).join("/")+"/"}function Yt(r){if(!r)return "";let t=r.split(".");return t[t.length-1]}function Jt(r,t=20){let n=Ke(r);if(n.length<=t)return n;let o=n.lastIndexOf("."),a=o<=0?"":n.slice(o),c=t-a.length-1;return c<=0?n.slice(0,t-1)+"\u2026":n.slice(0,c)+"\u2026"+a}function Kt(r,t=20){if(r.length<=t)return r;let n=t-1,o=Math.ceil(n/2),a=Math.floor(n/2);return r.slice(0,o)+"\u2026"+r.slice(-a)}chunkK7PV4FXJ_cjs.e();var Vt=["load failed","network connection was lost","network request failed","failed to fetch","econnreset","econnrefused","etimedout","socket hang up"];function Zt(r){if(!r)return false;let t=String(r instanceof Error?r.message:r).toLowerCase();return Vt.some(n=>t.includes(n))}async function $e(r,t={}){let{attempts:n=3,delay:o=500,factor:a=2,maxDelay:c=1e4,retryIf:m=Zt}=t,i;for(let f=0;f<n;f++)try{return await r()}catch(x){if(i=x,f===n-1||!m(x))throw x;let T=Math.min(o*a**f,c);await new Promise(v=>setTimeout(v,T));}throw i}chunkK7PV4FXJ_cjs.e();exports.Fetch=void 0;(w=>{let r=chunk5XHOPT4Y_cjs.m.create({service:"fetch"}),t=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],n=false,o=null,a,c;function m(){return t.some(u=>{let l=process.env[u];return typeof l=="string"&&l.trim().length>0})}w.hasProxyConfigured=m;function i(){let u=process.env.http_proxy||process.env.HTTP_PROXY;return process.env.https_proxy||process.env.HTTPS_PROXY||u}w.getProxyUrl=i;function f(u={}){let l=u.httpProxy||u.httpsProxy||i();if(!l){r.warn("[Fetch] No proxy configured, HTTP_PROXY/HTTPS_PROXY environment variables not set");return}let p;!u.httpProxy&&!u.httpsProxy?(!process.env.NO_PROXY&&!process.env.no_proxy?(a=void 0,c=void 0,process.env.NO_PROXY="localhost,127.0.0.1,::1",process.env.no_proxy="localhost,127.0.0.1,::1"):(a=process.env.NO_PROXY,c=process.env.no_proxy),p=new undici.EnvHttpProxyAgent({connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled via EnvHttpProxyAgent (honors NO_PROXY=${process.env.NO_PROXY})`)):(p=new undici.ProxyAgent({uri:l,connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled: ${l}`)),o=undici.getGlobalDispatcher(),undici.setGlobalDispatcher(p),n=true;}w.enableProxy=f;function x(){!n||!o||(undici.setGlobalDispatcher(o),n=false,o=null,a===void 0?delete process.env.NO_PROXY:process.env.NO_PROXY=a,c===void 0?delete process.env.no_proxy:process.env.no_proxy=c,a=void 0,c=void 0,r.info("[Fetch] Global proxy disabled"));}w.disableProxy=x;function T(){return n}w.isProxyEnabled=T;async function v(u,l){let p=l?.timeout||3e4,S=l?.responseType||"json",{timeout:E,responseType:D,..._}=l||{},M=null,U=null;try{_.signal||(M=new AbortController,U=setTimeout(()=>M.abort(),p));let N=await fetch(u,{..._,signal:_.signal||M.signal});U&&clearTimeout(U);let C;switch(S){case "arrayBuffer":C=await N.arrayBuffer();break;case "blob":C=await N.blob();break;case "buffer":{let H=await N.arrayBuffer();C=Buffer.from(H);break}case "text":C=await N.text();break;default:{let H=await N.text();try{C=JSON.parse(H);}catch{C=H;}break}}return {ok:N.ok,status:N.status,statusText:N.statusText,headers:N.headers,data:C,url:N.url}}catch(N){throw U&&clearTimeout(U),N}}async function y(u,l){let p=l?.retries??0,S=l?.retryDelay??1e3,{retries:E,retryDelay:D,responseType:_,...M}=l||{};return $e(()=>v(u,{...M,responseType:l?.responseType}),{attempts:p+1,delay:S,maxDelay:S*2**(p+1)})}async function h(u,l){return y(u,{method:"GET",...l})}w.get=h;async function b(u,l,p){return y(u,{method:"POST",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.post=b;async function A(u,l,p){return y(u,{method:"PUT",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.put=A;async function k(u,l,p){return y(u,{method:"DELETE",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.del=k;async function $(u,l,p){return y(u,{method:"PATCH",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.patch=$;async function j(u,l){return y(u,l)}w.request=j;function B(u={}){return m()?(f(u),true):false}w.autoProxy=B;let W=5*1024*1024;function z(u){return new TextEncoder().encode(u)}function q(u){return chunkGVXRTRAT_cjs.d.mimeType(u)}function e(u){return u.startsWith("file://")}async function s(u){let l=url.fileURLToPath(u);return await chunkKKCFNFFR_cjs.D.file(l).bytes()}async function d(u,l,p){let S=`----FetchFormBoundary${Date.now()}`,E=[],_=l.some(R=>R.filename||R.value instanceof Uint8Array||Buffer.isBuffer(R.value))&&!p?.timeout?3e5:p?.timeout;for(let R of l){let L=R.maxSize??W,F=R.filename,ne=`Content-Disposition: form-data; name="${R.name}"${F?`; filename="${F}"`:""}`;F&&(ne+=`\r
20
+ Content-Type: ${q(F)}`),ne+=`\r
21
21
  \r
22
- `,w.push(C(z));let L=_.value;if(typeof L=="string")if(H(L)){let he=await W(L);if(O||(O=L.split("/").pop()||"file"),he.byteLength>A)throw new Error(`File size ${he.byteLength} exceeds limit ${A} bytes: ${O}`);w.push(he);}else w.push(C(L));else if(Buffer.isBuffer(L)){if(L.byteLength>A)throw new Error(`Buffer size ${L.byteLength} exceeds limit ${A} bytes: ${_.name}`);w.push(new Uint8Array(L.buffer,L.byteOffset,L.byteLength));}else if(L instanceof Uint8Array){if(L.byteLength>A)throw new Error(`File size ${L.byteLength} exceeds limit ${A} bytes: ${_.name}`);w.push(L);}}let v=C(`\r
23
- --${y}--`),I=C(`\r
24
- --${y}\r
25
- `),D=[];D.push(C(`--${y}\r
26
- `));for(let _=0;_<w.length;_++)D.push(w[_]),_%2===1&&_<w.length-1&&(D.push(I),D.push(C(`--${y}\r
27
- `)));D.push(v);let M=D.reduce((_,A)=>_+A.length,0),G=new Uint8Array(M),q=0;for(let _ of D)G.set(_,q),q+=_.length;return b(f,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${y}`,...p?.headers},body:G,timeout:R,...p})}d.postForm=e;function s(f,l,p){let y=new AbortController,w=y.signal;return (async()=>{try{let R={Accept:"text/event-stream",...p?.headers||{}},v=await fetch(f,{...p,headers:R,signal:w});if(!v.ok)throw new Error(`SSE connection failed: ${v.status}`);let I=v.body?.getReader();if(!I)throw new Error("SSE stream not available");let D=new TextDecoder("utf-8"),M="";for(;!w.aborted;){let{done:G,value:q}=await I.read();if(G)break;let _=D.decode(q,{stream:!0});M+=_;let A=M.split(`
28
- `);M=A.pop()??"";for(let O of A)if(O.startsWith("data: ")){let z=O.slice(6);if(z==="[DONE]"){l.onComplete?.();return}l.onMessage?.(z);}}l.onComplete?.();}catch(R){R.name!=="AbortError"&&l.onError?.(R);}})(),()=>{y.abort();}}d.sse=s;})(exports.Fetch||(exports.Fetch={}));chunkK7PV4FXJ_cjs.e();exports.Slug=void 0;(o=>{let r=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],t=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function n(){return [r[Math.floor(Math.random()*r.length)],t[Math.floor(Math.random()*t.length)]].join("-")}o.create=n;})(exports.Slug||(exports.Slug={}));chunkK7PV4FXJ_cjs.e();exports.Schema=void 0;(a=>(a.positiveInt=U__default.default.union([U__default.default.number(),U__default.default.string().regex(/^\d+$/,"must be a positive integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(U__default.default.number().int().positive()),a.nonNegativeInt=U__default.default.union([U__default.default.number(),U__default.default.string().regex(/^\d+$/,"must be a non-negative integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(U__default.default.number().int().nonnegative()),a.booleanLike=U__default.default.union([U__default.default.boolean(),U__default.default.string()]).transform((c,m)=>{if(typeof c=="boolean")return c;let i=c.trim().toLowerCase();return ["true","1","yes","on"].includes(i)?true:["false","0","no","off"].includes(i)?false:(m.addIssue({code:"custom",message:`invalid boolean string: ${JSON.stringify(c)}`}),U__default.default.NEVER)}).pipe(U__default.default.boolean()),a.stringArray=(c=",")=>U__default.default.union([U__default.default.array(U__default.default.string()),U__default.default.string()]).transform(m=>Array.isArray(m)?m:m.split(c).map(u=>u.trim()).filter(u=>u.length>0)).pipe(U__default.default.array(U__default.default.string()))))(exports.Schema||(exports.Schema={}));chunkK7PV4FXJ_cjs.e();function Ke(r){let t=new AbortController,n=setTimeout(t.abort.bind(t),r);return {controller:t,signal:t.signal,clearTimeout:()=>globalThis.clearTimeout(n)}}function er(r,...t){let n=Ke(r);return {signal:AbortSignal.any([n.signal,...t]),clearTimeout:n.clearTimeout}}chunkK7PV4FXJ_cjs.e();exports.Archive=void 0;(t=>{async function r(n,o){if(process.platform==="win32"){let a=Re__default.default.resolve(n),c=Re__default.default.resolve(o),m=`Expand-Archive -Path '${a}' -DestinationPath '${c}' -Force`,i=await chunkKKCFNFFR_cjs.G.run("powershell",`-NoProfile -NonInteractive -Command "$global:ProgressPreference = 'SilentlyContinue'; ${m}"`);if(i.code!==0)throw new Error(`PowerShell exited with code ${i.code}: ${i.stderr}`)}else {let a=`unzip -o -q ${n} -d ${o}`,c=await chunkKKCFNFFR_cjs.G.run(void 0,a);if(c.code!==0)throw new Error(`unzip exited with code ${c.code}: ${c.stderr}`)}}t.extractZip=r;})(exports.Archive||(exports.Archive={}));chunkK7PV4FXJ_cjs.e();exports.Color=void 0;(o=>{function r(a){return a?/^#[0-9a-fA-F]{6}$/.test(a):false}o.isValidHex=r;function t(a){let c=parseInt(a.slice(1,3),16),m=parseInt(a.slice(3,5),16),i=parseInt(a.slice(5,7),16);return {r:c,g:m,b:i}}o.hexToRgb=t;function n(a){if(!r(a))return;let{r:c,g:m,b:i}=t(a);return `\x1B[38;2;${c};${m};${i}m\x1B[1m`}o.hexToAnsiBold=n;})(exports.Color||(exports.Color={}));chunkK7PV4FXJ_cjs.e();exports.Context=void 0;(n=>{class r extends Error{constructor(c){super(`No context found for ${c}`);chunkK7PV4FXJ_cjs.c(this,"name",c);}}n.NotFound=r;function t(o){let a=new async_hooks.AsyncLocalStorage;return {use(){let c=a.getStore();if(!c)throw new r(o);return c},provide(c,m){return a.run(c,m)}}}n.create=t;})(exports.Context||(exports.Context={}));chunkK7PV4FXJ_cjs.e();function rr(r){return {[Symbol.dispose](){r();},[Symbol.asyncDispose](){return Promise.resolve(r())}}}chunkK7PV4FXJ_cjs.e();exports.EventLoop=void 0;(t=>{async function r(){return new Promise(n=>{let o=()=>{process._getActiveHandles().length===0&&process._getActiveRequests().length===0?n():setImmediate(o);};o();})}t.wait=r;})(exports.EventLoop||(exports.EventLoop={}));chunkK7PV4FXJ_cjs.e();function nr(r){if(r<=0)return "";if(r<60)return `${r}s`;if(r<3600){let n=Math.floor(r/60),o=r%60;return o>0?`${n}m ${o}s`:`${n}m`}if(r<86400){let n=Math.floor(r/3600),o=Math.floor(r%3600/60);return o>0?`${n}h ${o}m`:`${n}h`}if(r<604800){let n=Math.floor(r/86400);return n===1?"~1 day":`~${n} days`}let t=Math.floor(r/604800);return t===1?"~1 week":`~${t} weeks`}chunkK7PV4FXJ_cjs.e();exports.Grep=void 0;(W=>{let r=chunk5XHOPT4Y_cjs.m.create({service:"grep"});async function t(){return n()}W.filepath=t;let n=chunkKKCFNFFR_cjs.b(async()=>{let e=await chunkKKCFNFFR_cjs.D.which("rg");if(!e)return null;try{if(!(await le__default.default.stat(e)).isFile())return null}catch{return null}try{let s=await chunkKKCFNFFR_cjs.D.run([e,"--version"],{timeout:5e3});if(s.code!==0||!s.stdout.startsWith("ripgrep "))return r.warn("rg failed self-test, falling back to pure JS",{filepath:e,code:s.code,stderr:s.stderr.slice(0,200)}),null}catch(s){return r.warn("rg spawn failed during self-test, falling back to pure JS",{filepath:e,error:s.message.slice(0,200)}),null}return e});async function o(){return await t()!==null}W.isUsingRipgrep=o;async function*a(e){e.signal?.throwIfAborted();let s=await t();s?yield*c(s,e):(r.debug("ripgrep not available, using pure JS fallback for files()",{cwd:e.cwd}),yield*m(e));}W.files=a;async function*c(e,s){s.signal?.throwIfAborted();let d=["--files","--glob=!.git/*"];s.follow&&d.push("--follow");let f=s.hidden!==false;if(s.maxDepth!==void 0&&d.push(`--max-depth=${s.maxDepth}`),s.glob)for(let y of s.glob)d.push(`--glob=${y}`);try{if(!(await le__default.default.stat(s.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${s.cwd}'`),{code:"ENOTDIR",errno:-20,path:s.cwd})}catch(y){throw y.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${s.cwd}'`),{code:"ENOENT",errno:-2,path:s.cwd}):y}let l=await chunkKKCFNFFR_cjs.D.run([e,...d],{cwd:s.cwd});if(l.code!==0&&l.code!==1)return;let p=l.stdout.split(/\r?\n/);for(let y of p){s.signal?.throwIfAborted();let w=y.trim();if(!w)continue;let F=chunkGVXRTRAT_cjs.d.toUnixPath(w);!f&&F.split("/").some(R=>R.startsWith("."))||(yield F);}}async function*m(e){e.signal?.throwIfAborted();try{if(!(await le__default.default.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(R){throw R.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):R}let s=[],d=[];if(e.glob)for(let R of e.glob)R.startsWith("!")?d.push(R.slice(1)):s.push(R);let f=s.length>0?T(s):["**/*"],l=e.hidden!==false,p=new Set,y=chunkGVXRTRAT_cjs.b.DEFAULT_MAX_DEPTH,w;e.maxDepth===void 0?w=y:e.maxDepth<0?w=1:w=e.maxDepth+1;let F=Math.min(Math.max(w,1),y);for(let R of f){e.signal?.throwIfAborted();let v=await chunkGVXRTRAT_cjs.b.scan(R,{cwd:e.cwd,absolute:false,include:"file",dot:l,symlink:e.follow??false,maxDepth:F,ignore:d});for(let I of v)!l&&I.split("/").some(D=>D.startsWith("."))||p.add(I);}for(let R of Array.from(p).sort())e.signal?.throwIfAborted(),yield R;e.signal?.throwIfAborted();}async function i(e){r.debug("tree",{cwd:e.cwd}),e.signal?.throwIfAborted();let s=e.hidden!==false,d=e.glob??[],f=d.filter(A=>!A.startsWith("!")),l=d.filter(A=>A.startsWith("!")).map(A=>A.slice(1)),p=f.length>0?f:["**/*"],y=new Set,w=[];for(let A of p){e.signal?.throwIfAborted();let O=await chunkGVXRTRAT_cjs.b.scan(A,{cwd:e.cwd,absolute:false,include:"file",dot:s,symlink:false,maxDepth:chunkGVXRTRAT_cjs.b.DEFAULT_MAX_DEPTH});for(let z of O)y.has(z)||(y.add(z),w.push(z));}let F=w.filter(A=>{for(let O of l)if(chunkGVXRTRAT_cjs.b.match(O,A))return false;return true});function R(A,O){let z=A.children.get(O);if(z)return z;let L={name:O,children:new Map};return A.children.set(O,L),L}let v={children:new Map};for(let A of F){let O=A.split("/");if(O.length<2)continue;let z=v;for(let L of O.slice(0,-1))z=R(z,L);}let I=Array.from(v.children.values()).sort((A,O)=>A.name.localeCompare(O.name)),D=e.limit??Number.POSITIVE_INFINITY,M=[],G=I.map(A=>({node:A,path:A.name})),q=0,_=0;for(;G.length>0;){let A=G.shift();if(!A)break;if(q++,_<D){M.push(A.path),_++;for(let O of Array.from(A.node.children.values()).sort((z,L)=>z.name.localeCompare(L.name))){if(_>=D)break;G.push({node:O,path:`${A.path}/${O.name}`});}}}return q>_&&M.push(`[${_}/${q} shown, ${q-_} truncated]`),M.join(`
29
- `)}W.tree=i;async function u(e){let s=await t();return s?x(s,e):(r.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),b(e))}W.search=u;async function x(e,s){let d=["--json","--glob=!.git/*"];if(s.follow&&d.push("--follow"),s.glob)for(let w of s.glob)d.push(`--glob=${w}`);s.limit&&d.push(`--max-count=${s.limit}`),d.push("--"),d.push(s.pattern);let f=await chunkKKCFNFFR_cjs.D.run([e,...d],{cwd:s.cwd});if(f.code!==0)return [];let l=s.hidden!==false,p=f.stdout.split(/\r?\n/).filter(Boolean),y=[];for(let w of p)try{let F=JSON.parse(w);if(F?.type!=="match")continue;let R=F.data;if(!R?.path?.text||!R?.lines?.text)continue;let v=chunkGVXRTRAT_cjs.d.toUnixPath(R.path.text);if(!l&&v.split("/").some(I=>I.startsWith(".")))continue;if(y.push({path:v,lines:R.lines.text,line_number:R.line_number,absolute_offset:R.absolute_offset??0}),s.limit&&y.length>=s.limit)break}catch{}return y}async function b(e){let s;try{s=new RegExp(e.pattern);}catch{return []}try{if(!(await le__default.default.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(I){throw I.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):I}let d=[],f=[];if(e.glob)for(let I of e.glob)I.startsWith("!")?f.push(I):d.push(I);let p=T(f).map(I=>I.startsWith("!")?I.slice(1):I),y=e.hidden!==false,w=[],F=d.length>0?T(d):["**/*"],R=new Set,v=[];for(let I of F){e.signal?.throwIfAborted();let D=await chunkGVXRTRAT_cjs.b.scan(I,{cwd:e.cwd,absolute:false,include:"file",dot:y,symlink:e.follow??false,maxDepth:void 0,ignore:p});for(let M of D)R.has(M)||(R.add(M),v.push(M));}for(let I of v){if(e.signal?.throwIfAborted(),e.limit&&w.length>=e.limit)break;let D=chunkGVXRTRAT_cjs.d.join(e.cwd,I),M;try{M=await le__default.default.readFile(D,"utf-8");}catch{continue}let G=M.split(/\r?\n/),q=0;for(let _=0;_<G.length;_++){let A=G[_]??"";if(s.test(A)&&(w.push({path:I,lines:A,line_number:_+1,absolute_offset:q}),e.limit&&w.length>=e.limit))break;q+=Buffer.byteLength(A,"utf-8")+1;}}return w}function S(e,s){return chunkGVXRTRAT_cjs.a.match(e,s)}W.match=S;let P=chunkKKCFNFFR_cjs.a(async()=>await t());async function h(){return await P()}W.filepathCached=h;function T(e){let s=[];for(let d of e){if(d.startsWith("!")){let l=d.slice(1);s.push(`!${E(l)}`);continue}let f=k(d);for(let l of f)s.push(N(l));}return s}function E(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function k(e){let s=j(e);if(s===-1)return [e];let d=C(e,s);if(d===-1)return [e];let f=e.slice(s+1,d),l=B(f);if(!l||l.length<=1)return [e];let p=e.slice(0,s),y=e.slice(d+1);return l.map(w=>p+w+y)}function N(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function j(e){for(let d=0;d<e.length;d++){let f=e[d];if(f==="\\"){d++;continue}if(f==="{"){return d;}}return -1}function C(e,s){for(let d=s+1;d<e.length;d++){let f=e[d];if(f==="\\"){d++;continue}if(f==="}")return d}return -1}function B(e){return e?e.split(","):null}W._ready=chunkKKCFNFFR_cjs.a(async()=>{let e=await t();return r.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(exports.Grep||(exports.Grep={}));chunkK7PV4FXJ_cjs.e();exports.Keybind=void 0;(m=>{function r(i,u){if(i===u)return true;if(typeof i!="object"||typeof u!="object"||i===null||u===null)return false;let x=Object.keys(i),b=Object.keys(u);if(x.length!==b.length)return false;for(let S of x)if(!b.includes(S)||!r(i[S],u[S]))return false;return true}function t(i){return {...i,super:i.super??false}}function n(i,u){return i?r(t(i),t(u)):false}m.match=n;function o(i,u=false){return {name:i.name,ctrl:i.ctrl,meta:i.meta,shift:i.shift,super:i.super??false,leader:u}}m.fromParsedKey=o;function a(i){if(!i)return "";let u=[];i.ctrl&&u.push("ctrl"),i.meta&&u.push("alt"),i.super&&u.push("super"),i.shift&&u.push("shift"),i.name&&(i.name==="delete"?u.push("del"):u.push(i.name));let x=u.join("+");return i.leader&&(x=x?`<leader> ${x}`:"<leader>"),x}m.keyToString=a;function c(i){return i==="none"?[]:i.split(",").map(u=>{let b=u.replace(/<leader>/g,"leader+").toLowerCase().split("+"),S={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let P of b)switch(P){case "ctrl":S.ctrl=true;break;case "alt":case "meta":case "option":S.meta=true;break;case "super":S.super=true;break;case "shift":S.shift=true;break;case "leader":S.leader=true;break;case "esc":S.name="escape";break;default:S.name=P;break}return S})}m.parse=c;})(exports.Keybind||(exports.Keybind={}));chunkK7PV4FXJ_cjs.e();exports.Locale=void 0;(P=>{P.SUPPORTED_LANGS=["zh-CN","en-US"],P.DEFAULT_LANG="zh-CN";function n(h,T="EASBOT_LANG"){let E=[h,process.env[T]?.trim()];for(let k of E)if(k&&P.SUPPORTED_LANGS.includes(k))return k;return P.DEFAULT_LANG}P.resolveLocaleLang=n;function o(h){return h.replace(/\b\w/g,T=>T.toUpperCase())}P.titlecase=o;function a(h){return new Date(h).toLocaleTimeString(void 0,{timeStyle:"short"})}P.time=a;function c(h){let T=new Date(h),E=a(h),k=T.toLocaleDateString();return `${E} \xB7 ${k}`}P.datetime=c;function m(h){let T=new Date(h),E=new Date;return T.getFullYear()===E.getFullYear()&&T.getMonth()===E.getMonth()&&T.getDate()===E.getDate()?a(h):c(h)}P.todayTimeOrDateTime=m;function i(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":h.toString()}P.number=i;function u(h){if(h<1e3)return `${h}ms`;if(h<6e4)return `${(h/1e3).toFixed(1)}s`;if(h<36e5){let k=Math.floor(h/6e4),N=Math.floor(h%6e4/1e3);return `${k}m ${N}s`}if(h<864e5){let k=Math.floor(h/36e5),N=Math.floor(h%36e5/6e4);return `${k}h ${N}m`}let T=Math.floor(h/36e5);return `${Math.floor(h%36e5/864e5)}d ${T}h`}P.duration=u;function x(h,T){return h.length<=T?h:h.slice(0,T-1)+"\u2026"}P.truncate=x;function b(h,T=35){if(h.length<=T)return h;let E="\u2026",k=Math.ceil((T-E.length)/2),N=Math.floor((T-E.length)/2);return h.slice(0,k)+E+h.slice(-N)}P.truncateMiddle=b;function S(h,T,E){return (h===1?T:E).replace("{}",h.toString())}P.pluralize=S;})(exports.Locale||(exports.Locale={}));var or=exports.Locale.resolveLocaleLang,sr=exports.Locale.SUPPORTED_LANGS,ir=exports.Locale.DEFAULT_LANG;chunkK7PV4FXJ_cjs.e();var ar=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function cr(){return ar.some(r=>process.env[r])}function lr(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function ur(){let r=process.env.HTTP_PROXY||process.env.http_proxy,t=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:r,https:t,enabled:!!(r||t)}}chunkK7PV4FXJ_cjs.e();var ze=class{constructor(){chunkK7PV4FXJ_cjs.c(this,"queue",[]);chunkK7PV4FXJ_cjs.c(this,"resolvers",[]);}push(t){let n=this.resolvers.shift();n?n(t):this.queue.push(t);}async next(){return this.queue.length>0?this.queue.shift():new Promise(t=>this.resolvers.push(t))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function fr(r,t,n){let o=[...t];await Promise.all(Array.from({length:r},async()=>{for(;;){let a=o.pop();if(a===void 0)return;await n(a);}}));}chunkK7PV4FXJ_cjs.e();function dr(){let r,t=new Promise(n=>r=n);return {trigger(){return r()},wait(){return t}}}chunkK7PV4FXJ_cjs.e();function pr(r,t){let n;return Promise.race([r.then(o=>(clearTimeout(n),o)),new Promise((o,a)=>{n=setTimeout(()=>{a(new Error(`Operation timed out after ${t}ms`));},t);})])}chunkK7PV4FXJ_cjs.e();exports.Token=void 0;(m=>{let n=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function o(i){if(!i)return 0;let u=String(i),x=(u.match(n)||[]).length,b=u.length-x,S=Math.round(x/1.5),P=Math.round(b/4);return Math.max(0,S+P)}m.estimate=o;function a(i){if(i==null)return 0;try{let u=typeof i=="string"?i:JSON.stringify(i);return o(u)}catch{return 0}}m.estimateObject=a;function c(i){if(i.total!==void 0&&i.total>0)return i.total;let u=i.input??0,x=i.output??0,b=i.cache?.read??0,S=i.cache?.write??0;return u+x+b+S}m.total=c;})(exports.Token||(exports.Token={}));chunkK7PV4FXJ_cjs.e();function gr(r){let t={},n=r.shape??r.required().shape;for(let[o,a]of Object.entries(n))t[o]=a.nullable().optional();return U__default.default.object(t)}Object.defineProperty(exports,"Lock",{enumerable:true,get:function(){return chunkIVVWAT7R_cjs.a}});Object.defineProperty(exports,"$",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.H}});Object.defineProperty(exports,"HTTPException",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.j}});Object.defineProperty(exports,"Hono",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.d}});Object.defineProperty(exports,"Lazy",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.c}});Object.defineProperty(exports,"PKG",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.D}});Object.defineProperty(exports,"PkgShell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.A}});Object.defineProperty(exports,"Shell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.G}});Object.defineProperty(exports,"compress",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.g}});Object.defineProperty(exports,"cors",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.e}});Object.defineProperty(exports,"createNodeWebSocket",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.s}});Object.defineProperty(exports,"createPkgShell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.B}});Object.defineProperty(exports,"createRESTServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.p}});Object.defineProperty(exports,"createRPCServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.n}});Object.defineProperty(exports,"createServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.m}});Object.defineProperty(exports,"createStreamingServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.r}});Object.defineProperty(exports,"createWebSocketServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.q}});Object.defineProperty(exports,"detectPlatform",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.y}});Object.defineProperty(exports,"escapeCommandArg",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.w}});Object.defineProperty(exports,"escapeCommandArgSafe",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.x}});Object.defineProperty(exports,"joinCommandArgs",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.z}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.a}});Object.defineProperty(exports,"lazyAsync",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.b}});Object.defineProperty(exports,"logger",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.f}});Object.defineProperty(exports,"needsShellExecution",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.u}});Object.defineProperty(exports,"parseCommand",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.t}});Object.defineProperty(exports,"parseCommandWithOptions",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.v}});Object.defineProperty(exports,"readableStreamToText",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.E}});Object.defineProperty(exports,"secureHeaders",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.h}});Object.defineProperty(exports,"shell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.C}});Object.defineProperty(exports,"startServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.o}});Object.defineProperty(exports,"timeout",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.i}});Object.defineProperty(exports,"validator",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.k}});Object.defineProperty(exports,"whichSync",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.F}});Object.defineProperty(exports,"zValidator",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.l}});Object.defineProperty(exports,"Filesystem",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.d}});Object.defineProperty(exports,"Glob",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.b}});Object.defineProperty(exports,"MIME_TYPES",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.c}});Object.defineProperty(exports,"Wildcard",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.a}});Object.defineProperty(exports,"Log",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.m}});Object.defineProperty(exports,"PackageRegistry",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.o}});Object.defineProperty(exports,"Semver",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.n}});Object.defineProperty(exports,"addMinutesInTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.l}});Object.defineProperty(exports,"formatLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.a}});Object.defineProperty(exports,"formatLocalISOCompact",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.b}});Object.defineProperty(exports,"formatLogTime",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.f}});Object.defineProperty(exports,"formatLogTimeMs",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.g}});Object.defineProperty(exports,"getTimezoneOffset",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.h}});Object.defineProperty(exports,"getTimezoneParts",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.i}});Object.defineProperty(exports,"isValidTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.j}});Object.defineProperty(exports,"normalizeTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.k}});Object.defineProperty(exports,"now",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.c}});Object.defineProperty(exports,"nowLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.d}});Object.defineProperty(exports,"parseLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.e}});exports.AsyncQueue=ze;exports.DEFAULT_LANG=ir;exports.NamedError=ae;exports.OAUTH_DUMMY_KEY=Dt;exports.SUPPORTED_LANGS=sr;exports.abortAfter=Ke;exports.abortAfterAny=er;exports.defer=rr;exports.findLast=wt;exports.fn=Rt;exports.formatDuration=nr;exports.getDirectory=Wt;exports.getFileExtension=qt;exports.getFilename=Je;exports.getFilenameTruncated=Xt;exports.getProxyConfig=ur;exports.getProxyUrl=lr;exports.git=Ft;exports.iife=Bt;exports.loadEnv=kt;exports.loadTextFile=zt;exports.loadTextFileAsync=Ut;exports.parseModelId=Ht;exports.proxied=cr;exports.resolveLocaleLang=or;exports.retry=Ie;exports.signal=dr;exports.truncateMiddle=Jt;exports.updateSchema=gr;exports.withTimeout=pr;exports.work=fr;
22
+ `,E.push(z(ne));let X=R.value;if(typeof X=="string")if(e(X)){let ye=await s(X);if(F||(F=X.split("/").pop()||"file"),ye.byteLength>L)throw new Error(`File size ${ye.byteLength} exceeds limit ${L} bytes: ${F}`);E.push(ye);}else E.push(z(X));else if(Buffer.isBuffer(X)){if(X.byteLength>L)throw new Error(`Buffer size ${X.byteLength} exceeds limit ${L} bytes: ${R.name}`);E.push(new Uint8Array(X.buffer,X.byteOffset,X.byteLength));}else if(X instanceof Uint8Array){if(X.byteLength>L)throw new Error(`File size ${X.byteLength} exceeds limit ${L} bytes: ${R.name}`);E.push(X);}}let M=z(`\r
23
+ --${S}--`),U=z(`\r
24
+ --${S}\r
25
+ `),N=[];N.push(z(`--${S}\r
26
+ `));for(let R=0;R<E.length;R++)N.push(E[R]),R%2===1&&R<E.length-1&&(N.push(U),N.push(z(`--${S}\r
27
+ `)));N.push(M);let C=N.reduce((R,L)=>R+L.length,0),H=new Uint8Array(C),O=0;for(let R of N)H.set(R,O),O+=R.length;return y(u,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${S}`,...p?.headers},body:H,timeout:_,...p})}w.postForm=d;function P(u,l,p){let S=new AbortController,E=S.signal;return (async()=>{try{let _={Accept:"text/event-stream",...p?.headers||{}},M=await fetch(u,{...p,headers:_,signal:E});if(!M.ok)throw new Error(`SSE connection failed: ${M.status}`);let U=M.body?.getReader();if(!U)throw new Error("SSE stream not available");let N=new TextDecoder("utf-8"),C="";for(;!E.aborted;){let{done:H,value:O}=await U.read();if(H)break;let R=N.decode(O,{stream:!0});C+=R;let L=C.split(`
28
+ `);C=L.pop()??"";for(let F of L)if(F.startsWith("data: ")){let ne=F.slice(6);if(ne==="[DONE]"){l.onComplete?.();return}l.onMessage?.(ne);}}l.onComplete?.();}catch(_){_.name!=="AbortError"&&l.onError?.(_);}})(),()=>{S.abort();}}w.sse=P;})(exports.Fetch||(exports.Fetch={}));chunkK7PV4FXJ_cjs.e();exports.Slug=void 0;(o=>{let r=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],t=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function n(){return [r[Math.floor(Math.random()*r.length)],t[Math.floor(Math.random()*t.length)]].join("-")}o.create=n;})(exports.Slug||(exports.Slug={}));chunkK7PV4FXJ_cjs.e();exports.Schema=void 0;(a=>(a.positiveInt=G__default.default.union([G__default.default.number(),G__default.default.string().regex(/^\d+$/,"must be a positive integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(G__default.default.number().int().positive()),a.nonNegativeInt=G__default.default.union([G__default.default.number(),G__default.default.string().regex(/^\d+$/,"must be a non-negative integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(G__default.default.number().int().nonnegative()),a.booleanLike=G__default.default.union([G__default.default.boolean(),G__default.default.string()]).transform((c,m)=>{if(typeof c=="boolean")return c;let i=c.trim().toLowerCase();return ["true","1","yes","on"].includes(i)?true:["false","0","no","off"].includes(i)?false:(m.addIssue({code:"custom",message:`invalid boolean string: ${JSON.stringify(c)}`}),G__default.default.NEVER)}).pipe(G__default.default.boolean()),a.stringArray=(c=",")=>G__default.default.union([G__default.default.array(G__default.default.string()),G__default.default.string()]).transform(m=>Array.isArray(m)?m:m.split(c).map(f=>f.trim()).filter(f=>f.length>0)).pipe(G__default.default.array(G__default.default.string()))))(exports.Schema||(exports.Schema={}));chunkK7PV4FXJ_cjs.e();function Ze(r){let t=new AbortController,n=setTimeout(t.abort.bind(t),r);return {controller:t,signal:t.signal,clearTimeout:()=>globalThis.clearTimeout(n)}}function nr(r,...t){let n=Ze(r);return {signal:AbortSignal.any([n.signal,...t]),clearTimeout:n.clearTimeout}}chunkK7PV4FXJ_cjs.e();exports.Archive=void 0;(t=>{async function r(n,o){if(process.platform==="win32"){let a=ve__default.default.resolve(n),c=ve__default.default.resolve(o),m=`Expand-Archive -Path '${a}' -DestinationPath '${c}' -Force`,i=await chunkKKCFNFFR_cjs.G.run("powershell",`-NoProfile -NonInteractive -Command "$global:ProgressPreference = 'SilentlyContinue'; ${m}"`);if(i.code!==0)throw new Error(`PowerShell exited with code ${i.code}: ${i.stderr}`)}else {let a=`unzip -o -q ${n} -d ${o}`,c=await chunkKKCFNFFR_cjs.G.run(void 0,a);if(c.code!==0)throw new Error(`unzip exited with code ${c.code}: ${c.stderr}`)}}t.extractZip=r;})(exports.Archive||(exports.Archive={}));chunkK7PV4FXJ_cjs.e();exports.Color=void 0;(o=>{function r(a){return a?/^#[0-9a-fA-F]{6}$/.test(a):false}o.isValidHex=r;function t(a){let c=parseInt(a.slice(1,3),16),m=parseInt(a.slice(3,5),16),i=parseInt(a.slice(5,7),16);return {r:c,g:m,b:i}}o.hexToRgb=t;function n(a){if(!r(a))return;let{r:c,g:m,b:i}=t(a);return `\x1B[38;2;${c};${m};${i}m\x1B[1m`}o.hexToAnsiBold=n;})(exports.Color||(exports.Color={}));chunkK7PV4FXJ_cjs.e();exports.Context=void 0;(n=>{class r extends Error{constructor(c){super(`No context found for ${c}`);chunkK7PV4FXJ_cjs.c(this,"name",c);}}n.NotFound=r;function t(o){let a=new async_hooks.AsyncLocalStorage;return {use(){let c=a.getStore();if(!c)throw new r(o);return c},provide(c,m){return a.run(c,m)}}}n.create=t;})(exports.Context||(exports.Context={}));chunkK7PV4FXJ_cjs.e();function sr(r){return {[Symbol.dispose](){r();},[Symbol.asyncDispose](){return Promise.resolve(r())}}}chunkK7PV4FXJ_cjs.e();exports.EventLoop=void 0;(t=>{async function r(){return new Promise(n=>{let o=()=>{process._getActiveHandles().length===0&&process._getActiveRequests().length===0?n():setImmediate(o);};o();})}t.wait=r;})(exports.EventLoop||(exports.EventLoop={}));chunkK7PV4FXJ_cjs.e();function ir(r){if(r<=0)return "";if(r<60)return `${r}s`;if(r<3600){let n=Math.floor(r/60),o=r%60;return o>0?`${n}m ${o}s`:`${n}m`}if(r<86400){let n=Math.floor(r/3600),o=Math.floor(r%3600/60);return o>0?`${n}h ${o}m`:`${n}h`}if(r<604800){let n=Math.floor(r/86400);return n===1?"~1 day":`~${n} days`}let t=Math.floor(r/604800);return t===1?"~1 week":`~${t} weeks`}chunkK7PV4FXJ_cjs.e();exports.Grep=void 0;(q=>{let r=chunk5XHOPT4Y_cjs.m.create({service:"grep"});async function t(){return n()}q.filepath=t;let n=chunkKKCFNFFR_cjs.b(async()=>{let e=await chunkKKCFNFFR_cjs.D.which("rg");if(!e)return null;try{if(!(await fe__default.default.stat(e)).isFile())return null}catch{return null}try{let s=await chunkKKCFNFFR_cjs.D.run([e,"--version"],{timeout:5e3});if(s.code!==0||!s.stdout.startsWith("ripgrep "))return r.warn("rg failed self-test, falling back to pure JS",{filepath:e,code:s.code,stderr:s.stderr.slice(0,200)}),null}catch(s){return r.warn("rg spawn failed during self-test, falling back to pure JS",{filepath:e,error:s.message.slice(0,200)}),null}return e});async function o(){return await t()!==null}q.isUsingRipgrep=o;async function*a(e){e.signal?.throwIfAborted();let s=await t();s?yield*c(s,e):(r.debug("ripgrep not available, using pure JS fallback for files()",{cwd:e.cwd}),yield*m(e));}q.files=a;async function*c(e,s){s.signal?.throwIfAborted();let d=["--files","--glob=!.git/*"];s.follow&&d.push("--follow");let P=s.hidden!==false;if(s.maxDepth!==void 0&&d.push(`--max-depth=${s.maxDepth}`),s.glob)for(let l of s.glob)d.push(`--glob=${l}`);try{if(!(await fe__default.default.stat(s.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${s.cwd}'`),{code:"ENOTDIR",errno:-20,path:s.cwd})}catch(l){throw l.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${s.cwd}'`),{code:"ENOENT",errno:-2,path:s.cwd}):l}let w=await chunkKKCFNFFR_cjs.D.run([e,...d],{cwd:s.cwd});if(w.code!==0&&w.code!==1)return;let u=w.stdout.split(/\r?\n/);for(let l of u){s.signal?.throwIfAborted();let p=l.trim();if(!p)continue;let S=chunkGVXRTRAT_cjs.d.toUnixPath(p);!P&&S.split("/").some(E=>E.startsWith("."))||(yield S);}}async function*m(e){e.signal?.throwIfAborted();try{if(!(await fe__default.default.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(E){throw E.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):E}let s=[],d=[];if(e.glob)for(let E of e.glob)E.startsWith("!")?d.push(E.slice(1)):s.push(E);let P=s.length>0?b(s):["**/*"],w=e.hidden!==false,u=new Set,l=chunkGVXRTRAT_cjs.b.DEFAULT_MAX_DEPTH,p;e.maxDepth===void 0?p=l:e.maxDepth<0?p=1:p=e.maxDepth+1;let S=Math.min(Math.max(p,1),l);for(let E of P){e.signal?.throwIfAborted();let D=await chunkGVXRTRAT_cjs.b.scan(E,{cwd:e.cwd,absolute:false,include:"file",dot:w,symlink:e.follow??false,maxDepth:S,ignore:d});for(let _ of D)!w&&_.split("/").some(M=>M.startsWith("."))||u.add(_);}for(let E of Array.from(u).sort())e.signal?.throwIfAborted(),yield E;e.signal?.throwIfAborted();}async function i(e){r.debug("tree",{cwd:e.cwd}),e.signal?.throwIfAborted();let s=e.hidden!==false,d=e.glob??[],P=d.filter(O=>!O.startsWith("!")),w=d.filter(O=>O.startsWith("!")).map(O=>O.slice(1)),u=P.length>0?P:["**/*"],l=new Set,p=[];for(let O of u){e.signal?.throwIfAborted();let R=await chunkGVXRTRAT_cjs.b.scan(O,{cwd:e.cwd,absolute:false,include:"file",dot:s,symlink:false,maxDepth:chunkGVXRTRAT_cjs.b.DEFAULT_MAX_DEPTH});for(let L of R)l.has(L)||(l.add(L),p.push(L));}let S=p.filter(O=>{for(let R of w)if(chunkGVXRTRAT_cjs.b.match(R,O))return false;return true});function E(O,R){let L=O.children.get(R);if(L)return L;let F={name:R,children:new Map};return O.children.set(R,F),F}let D={children:new Map};for(let O of S){let R=O.split("/");if(R.length<2)continue;let L=D;for(let F of R.slice(0,-1))L=E(L,F);}let _=Array.from(D.children.values()).sort((O,R)=>O.name.localeCompare(R.name)),M=e.limit??Number.POSITIVE_INFINITY,U=[],N=_.map(O=>({node:O,path:O.name})),C=0,H=0;for(;N.length>0;){let O=N.shift();if(!O)break;if(C++,H<M){U.push(O.path),H++;for(let R of Array.from(O.node.children.values()).sort((L,F)=>L.name.localeCompare(F.name))){if(H>=M)break;N.push({node:R,path:`${O.path}/${R.name}`});}}}return C>H&&U.push(`[${H}/${C} shown, ${C-H} truncated]`),U.join(`
29
+ `)}q.tree=i;async function f(e){let s=await t();return s?x(s,e):(r.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),T(e))}q.search=f;async function x(e,s){let d=["--json","--glob=!.git/*"];if(s.follow&&d.push("--follow"),s.glob)for(let p of s.glob)d.push(`--glob=${p}`);s.limit&&d.push(`--max-count=${s.limit}`),d.push("--"),d.push(s.pattern);let P=await chunkKKCFNFFR_cjs.D.run([e,...d],{cwd:s.cwd});if(P.code!==0)return [];let w=s.hidden!==false,u=P.stdout.split(/\r?\n/).filter(Boolean),l=[];for(let p of u)try{let S=JSON.parse(p);if(S?.type!=="match")continue;let E=S.data;if(!E?.path?.text||!E?.lines?.text)continue;let D=chunkGVXRTRAT_cjs.d.toUnixPath(E.path.text);if(!w&&D.split("/").some(_=>_.startsWith(".")))continue;if(l.push({path:D,lines:E.lines.text,line_number:E.line_number,absolute_offset:E.absolute_offset??0}),s.limit&&l.length>=s.limit)break}catch{}return l}async function T(e){let s;try{s=new RegExp(e.pattern);}catch{return []}try{if(!(await fe__default.default.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(_){throw _.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):_}let d=[],P=[];if(e.glob)for(let _ of e.glob)_.startsWith("!")?P.push(_):d.push(_);let u=b(P).map(_=>_.startsWith("!")?_.slice(1):_),l=e.hidden!==false,p=[],S=d.length>0?b(d):["**/*"],E=new Set,D=[];for(let _ of S){e.signal?.throwIfAborted();let M=await chunkGVXRTRAT_cjs.b.scan(_,{cwd:e.cwd,absolute:false,include:"file",dot:l,symlink:e.follow??false,maxDepth:void 0,ignore:u});for(let U of M)E.has(U)||(E.add(U),D.push(U));}for(let _ of D){if(e.signal?.throwIfAborted(),e.limit&&p.length>=e.limit)break;let M=chunkGVXRTRAT_cjs.d.join(e.cwd,_),U;try{U=await fe__default.default.readFile(M,"utf-8");}catch{continue}let N=U.split(/\r?\n/),C=0;for(let H=0;H<N.length;H++){let O=N[H]??"";if(s.test(O)&&(p.push({path:_,lines:O,line_number:H+1,absolute_offset:C}),e.limit&&p.length>=e.limit))break;C+=Buffer.byteLength(O,"utf-8")+1;}}return p}function v(e,s){return chunkGVXRTRAT_cjs.a.match(e,s)}q.match=v;let y=chunkKKCFNFFR_cjs.a(async()=>await t());async function h(){return await y()}q.filepathCached=h;function b(e){let s=[];for(let d of e){if(d.startsWith("!")){let w=d.slice(1);s.push(`!${A(w)}`);continue}let P=k(d);for(let w of P)s.push($(w));}return s}function A(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function k(e){let s=j(e);if(s===-1)return [e];let d=B(e,s);if(d===-1)return [e];let P=e.slice(s+1,d),w=W(P);if(!w||w.length<=1)return [e];let u=e.slice(0,s),l=e.slice(d+1);return w.map(p=>u+p+l)}function $(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function j(e){for(let d=0;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="{"){return d;}}return -1}function B(e,s){for(let d=s+1;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="}")return d}return -1}function W(e){return e?e.split(","):null}q._ready=chunkKKCFNFFR_cjs.a(async()=>{let e=await t();return r.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(exports.Grep||(exports.Grep={}));chunkK7PV4FXJ_cjs.e();exports.Keybind=void 0;(m=>{function r(i,f){if(i===f)return true;if(typeof i!="object"||typeof f!="object"||i===null||f===null)return false;let x=Object.keys(i),T=Object.keys(f);if(x.length!==T.length)return false;for(let v of x)if(!T.includes(v)||!r(i[v],f[v]))return false;return true}function t(i){return {...i,super:i.super??false}}function n(i,f){return i?r(t(i),t(f)):false}m.match=n;function o(i,f=false){return {name:i.name,ctrl:i.ctrl,meta:i.meta,shift:i.shift,super:i.super??false,leader:f}}m.fromParsedKey=o;function a(i){if(!i)return "";let f=[];i.ctrl&&f.push("ctrl"),i.meta&&f.push("alt"),i.super&&f.push("super"),i.shift&&f.push("shift"),i.name&&(i.name==="delete"?f.push("del"):f.push(i.name));let x=f.join("+");return i.leader&&(x=x?`<leader> ${x}`:"<leader>"),x}m.keyToString=a;function c(i){return i==="none"?[]:i.split(",").map(f=>{let T=f.replace(/<leader>/g,"leader+").toLowerCase().split("+"),v={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let y of T)switch(y){case "ctrl":v.ctrl=true;break;case "alt":case "meta":case "option":v.meta=true;break;case "super":v.super=true;break;case "shift":v.shift=true;break;case "leader":v.leader=true;break;case "esc":v.name="escape";break;default:v.name=y;break}return v})}m.parse=c;})(exports.Keybind||(exports.Keybind={}));chunkK7PV4FXJ_cjs.e();exports.Locale=void 0;(y=>{y.SUPPORTED_LANGS=["zh-CN","en-US"],y.DEFAULT_LANG="zh-CN";function n(h,b="EASBOT_LANG"){let A=[h,process.env[b]?.trim()];for(let k of A)if(k&&y.SUPPORTED_LANGS.includes(k))return k;return y.DEFAULT_LANG}y.resolveLocaleLang=n;function o(h){return h.replace(/\b\w/g,b=>b.toUpperCase())}y.titlecase=o;function a(h){return new Date(h).toLocaleTimeString(void 0,{timeStyle:"short"})}y.time=a;function c(h){let b=new Date(h),A=a(h),k=b.toLocaleDateString();return `${A} \xB7 ${k}`}y.datetime=c;function m(h){let b=new Date(h),A=new Date;return b.getFullYear()===A.getFullYear()&&b.getMonth()===A.getMonth()&&b.getDate()===A.getDate()?a(h):c(h)}y.todayTimeOrDateTime=m;function i(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":h.toString()}y.number=i;function f(h){if(h<1e3)return `${h}ms`;if(h<6e4)return `${(h/1e3).toFixed(1)}s`;if(h<36e5){let k=Math.floor(h/6e4),$=Math.floor(h%6e4/1e3);return `${k}m ${$}s`}if(h<864e5){let k=Math.floor(h/36e5),$=Math.floor(h%36e5/6e4);return `${k}h ${$}m`}let b=Math.floor(h/36e5);return `${Math.floor(h%36e5/864e5)}d ${b}h`}y.duration=f;function x(h,b){return h.length<=b?h:h.slice(0,b-1)+"\u2026"}y.truncate=x;function T(h,b=35){if(h.length<=b)return h;let A="\u2026",k=Math.ceil((b-A.length)/2),$=Math.floor((b-A.length)/2);return h.slice(0,k)+A+h.slice(-$)}y.truncateMiddle=T;function v(h,b,A){return (h===1?b:A).replace("{}",h.toString())}y.pluralize=v;})(exports.Locale||(exports.Locale={}));var ar=exports.Locale.resolveLocaleLang,cr=exports.Locale.SUPPORTED_LANGS,lr=exports.Locale.DEFAULT_LANG;chunkK7PV4FXJ_cjs.e();var ur=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function fr(){return ur.some(r=>process.env[r])}function dr(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function pr(){let r=process.env.HTTP_PROXY||process.env.http_proxy,t=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:r,https:t,enabled:!!(r||t)}}chunkK7PV4FXJ_cjs.e();var He=class{constructor(){chunkK7PV4FXJ_cjs.c(this,"queue",[]);chunkK7PV4FXJ_cjs.c(this,"resolvers",[]);}push(t){let n=this.resolvers.shift();n?n(t):this.queue.push(t);}async next(){return this.queue.length>0?this.queue.shift():new Promise(t=>this.resolvers.push(t))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function mr(r,t,n){let o=[...t];await Promise.all(Array.from({length:r},async()=>{for(;;){let a=o.pop();if(a===void 0)return;await n(a);}}));}chunkK7PV4FXJ_cjs.e();function gr(){let r,t=new Promise(n=>r=n);return {trigger(){return r()},wait(){return t}}}chunkK7PV4FXJ_cjs.e();function hr(r,t){let n;return Promise.race([r.then(o=>(clearTimeout(n),o)),new Promise((o,a)=>{n=setTimeout(()=>{a(new Error(`Operation timed out after ${t}ms`));},t);})])}chunkK7PV4FXJ_cjs.e();exports.Token=void 0;(m=>{let n=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function o(i){if(!i)return 0;let f=String(i),x=(f.match(n)||[]).length,T=f.length-x,v=Math.round(x/1.5),y=Math.round(T/4);return Math.max(0,v+y)}m.estimate=o;function a(i){if(i==null)return 0;try{let f=typeof i=="string"?i:JSON.stringify(i);return o(f)}catch{return 0}}m.estimateObject=a;function c(i){if(i.total!==void 0&&i.total>0)return i.total;let f=i.input??0,x=i.output??0,T=i.cache?.read??0,v=i.cache?.write??0;return f+x+T+v}m.total=c;})(exports.Token||(exports.Token={}));chunkK7PV4FXJ_cjs.e();function yr(r){let t={},n=r.shape??r.required().shape;for(let[o,a]of Object.entries(n))t[o]=a.nullable().optional();return G__default.default.object(t)}Object.defineProperty(exports,"Lock",{enumerable:true,get:function(){return chunkIVVWAT7R_cjs.a}});Object.defineProperty(exports,"$",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.H}});Object.defineProperty(exports,"HTTPException",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.j}});Object.defineProperty(exports,"Hono",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.d}});Object.defineProperty(exports,"Lazy",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.c}});Object.defineProperty(exports,"PKG",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.D}});Object.defineProperty(exports,"PkgShell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.A}});Object.defineProperty(exports,"Shell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.G}});Object.defineProperty(exports,"compress",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.g}});Object.defineProperty(exports,"cors",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.e}});Object.defineProperty(exports,"createNodeWebSocket",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.s}});Object.defineProperty(exports,"createPkgShell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.B}});Object.defineProperty(exports,"createRESTServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.p}});Object.defineProperty(exports,"createRPCServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.n}});Object.defineProperty(exports,"createServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.m}});Object.defineProperty(exports,"createStreamingServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.r}});Object.defineProperty(exports,"createWebSocketServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.q}});Object.defineProperty(exports,"detectPlatform",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.y}});Object.defineProperty(exports,"escapeCommandArg",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.w}});Object.defineProperty(exports,"escapeCommandArgSafe",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.x}});Object.defineProperty(exports,"joinCommandArgs",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.z}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.a}});Object.defineProperty(exports,"lazyAsync",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.b}});Object.defineProperty(exports,"logger",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.f}});Object.defineProperty(exports,"needsShellExecution",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.u}});Object.defineProperty(exports,"parseCommand",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.t}});Object.defineProperty(exports,"parseCommandWithOptions",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.v}});Object.defineProperty(exports,"readableStreamToText",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.E}});Object.defineProperty(exports,"secureHeaders",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.h}});Object.defineProperty(exports,"shell",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.C}});Object.defineProperty(exports,"startServer",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.o}});Object.defineProperty(exports,"timeout",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.i}});Object.defineProperty(exports,"validator",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.k}});Object.defineProperty(exports,"whichSync",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.F}});Object.defineProperty(exports,"zValidator",{enumerable:true,get:function(){return chunkKKCFNFFR_cjs.l}});Object.defineProperty(exports,"Filesystem",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.d}});Object.defineProperty(exports,"Glob",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.b}});Object.defineProperty(exports,"MIME_TYPES",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.c}});Object.defineProperty(exports,"Wildcard",{enumerable:true,get:function(){return chunkGVXRTRAT_cjs.a}});Object.defineProperty(exports,"Log",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.m}});Object.defineProperty(exports,"PackageRegistry",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.o}});Object.defineProperty(exports,"Semver",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.n}});Object.defineProperty(exports,"addMinutesInTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.l}});Object.defineProperty(exports,"formatLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.a}});Object.defineProperty(exports,"formatLocalISOCompact",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.b}});Object.defineProperty(exports,"formatLogTime",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.f}});Object.defineProperty(exports,"formatLogTimeMs",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.g}});Object.defineProperty(exports,"getTimezoneOffset",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.h}});Object.defineProperty(exports,"getTimezoneParts",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.i}});Object.defineProperty(exports,"isValidTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.j}});Object.defineProperty(exports,"normalizeTimezone",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.k}});Object.defineProperty(exports,"now",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.c}});Object.defineProperty(exports,"nowLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.d}});Object.defineProperty(exports,"parseLocalISO",{enumerable:true,get:function(){return chunk5XHOPT4Y_cjs.e}});exports.AsyncQueue=He;exports.DEFAULT_LANG=lr;exports.NamedError=le;exports.OAUTH_DUMMY_KEY=Ft;exports.SUPPORTED_LANGS=cr;exports.abortAfter=Ze;exports.abortAfterAny=nr;exports.defer=sr;exports.findLast=Pt;exports.fn=vt;exports.formatDuration=ir;exports.getDirectory=Xt;exports.getFileExtension=Yt;exports.getFilename=Ke;exports.getFilenameTruncated=Jt;exports.getProxyConfig=pr;exports.getProxyUrl=dr;exports.git=Mt;exports.iife=Gt;exports.loadEnv=Ot;exports.loadTextFile=Ht;exports.loadTextFileAsync=Bt;exports.parseModelId=Wt;exports.proxied=fr;exports.resolveLocaleLang=ar;exports.retry=$e;exports.signal=gr;exports.truncateMiddle=Kt;exports.updateSchema=yr;exports.withTimeout=hr;exports.work=mr;
package/dist/index.mjs CHANGED
@@ -1,29 +1,29 @@
1
- export{a as Lock}from'./chunks/chunk-GOEMY5AZ.mjs';import {a,b,D,G,c as c$1}from'./chunks/chunk-N26SFBEH.mjs';export{H as $,j as HTTPException,d as Hono,c as Lazy,D as PKG,A as PkgShell,G as Shell,g as compress,e as cors,s as createNodeWebSocket,B as createPkgShell,p as createRESTServer,n as createRPCServer,m as createServer,r as createStreamingServer,q as createWebSocketServer,y as detectPlatform,w as escapeCommandArg,x as escapeCommandArgSafe,z as joinCommandArgs,a as lazy,b as lazyAsync,f as logger,u as needsShellExecution,t as parseCommand,v as parseCommandWithOptions,E as readableStreamToText,h as secureHeaders,C as shell,o as startServer,i as timeout,k as validator,F as whichSync,l as zValidator}from'./chunks/chunk-N26SFBEH.mjs';import {d,b as b$2,a as a$1}from'./chunks/chunk-XGZ7XJWW.mjs';export{d as Filesystem,b as Glob,c as MIME_TYPES,a as Wildcard}from'./chunks/chunk-XGZ7XJWW.mjs';import {m,b as b$1}from'./chunks/chunk-OEWMITBM.mjs';export{m as Log,o as PackageRegistry,n as Semver,l as addMinutesInTimezone,a as formatLocalISO,b as formatLocalISOCompact,f as formatLogTime,g as formatLogTimeMs,h as getTimezoneOffset,i as getTimezoneParts,j as isValidTimezone,k as normalizeTimezone,c as now,d as nowLocalISO,e as parseLocalISO}from'./chunks/chunk-OEWMITBM.mjs';import {f,c,d as d$1}from'./chunks/chunk-6GV3NECV.mjs';import ue,{readFile,writeFile,rename}from'fs/promises';import B,{z}from'zod';import {randomBytes}from'crypto';import {config}from'dotenv';import Ae,{dirname,join}from'path';import {xdgData,xdgConfig}from'xdg-basedir';import Ot from'os';import {existsSync,mkdirSync,readdirSync,statSync}from'fs';import {fileURLToPath}from'url';import ge from'gray-matter';import {ProxyAgent,getGlobalDispatcher,setGlobalDispatcher}from'undici';import {AsyncLocalStorage}from'async_hooks';f();f();function Tt(r,t){for(let n=r.length-1;n>=0;n-=1){let o=r[n];if(o!==void 0&&t(o,n,r))return o}}f();var ye;(n=>{function r(o,a,c){let m=0,i=o.length-1;for(;m<=i;){let u=Math.floor((m+i)/2),x=o[u];if(x===void 0)break;let b=c(x);if(b===a)return {found:true,index:u};b<a?m=u+1:i=u-1;}return {found:false,index:m}}n.search=r;function t(o,a,c){let m=c(a),i=0,u=o.length;for(;i<u;){let x=Math.floor((i+u)/2),b=o[x];if(b===void 0)break;c(b)<m?i=x+1:u=x;}return o.splice(i,0,a),o}n.insert=t;})(ye||(ye={}));f();var be;(c=>{function r(m){let i=new TextEncoder().encode(m),u=Array.from(i,x=>String.fromCharCode(x)).join("");return btoa(u).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}c.base64Encode=r;function t(m){let i=atob(m.replace(/-/g,"+").replace(/_/g,"/")),u=Uint8Array.from(i,x=>x.charCodeAt(0));return new TextDecoder().decode(u)}c.base64Decode=t;async function n(m,i="SHA-256"){let x=new TextEncoder().encode(m),b=await crypto.subtle.digest(i,x);return Array.from(new Uint8Array(b)).map(h=>h.toString(16).padStart(2,"0")).join("")}c.hash=n;function o(m){if(!m)return;let i=2166136261;for(let u=0;u<m.length;u++)i^=m.charCodeAt(u),i=Math.imul(i,16777619);return (i>>>0).toString(36)}c.checksum=o;function a(m,i=5e5){if(!m)return;if(m.length<=i)return o(m);let u=4096,b=[0,Math.floor(m.length*.25),Math.floor(m.length*.5),Math.floor(m.length*.75),m.length-u].map(S=>{let P=Math.max(0,Math.min(m.length-u,S-Math.floor(u/2)));return o(m.slice(P,P+u))??""}).join(":");return `${m.length}:${b}`}c.sampledChecksum=a;})(be||(be={}));f();f();var ee;(S=>{let r={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",command:"cmd",task:"task",heartbeat:"hb",agent:"ag",subagent:"sub",hook:"hok",compaction:"cmp",context:"ctx",experience:"exp",pattern:"pat",knowledge:"knw",evolution:"evo",result:"res"};function t(P){return B.string().startsWith(r[P])}S.schema=t;let n=26,o=0,a=0;function c(P,h){return i(P,false,h)}S.ascending=c;function m(P,h){return i(P,true,h)}S.descending=m;function i(P,h,T){if(!T)return x(P,h);if(!T.startsWith(r[P]))throw new Error(`ID ${T} does not start with ${r[P]}`);return T}function u(P){let h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",T="",E=randomBytes(P);for(let k=0;k<P;k++){let F=E[k];F!==void 0&&(T+=h[F%62]);}return T}function x(P,h,T){let E=T??Date.now();E!==o&&(o=E,a=0),a++;let k=BigInt(E)*BigInt(4096)+BigInt(a);k=h?~k:k;let F=Buffer.alloc(6);for(let z=0;z<6;z++)F[z]=Number(k>>BigInt(40-8*z)&BigInt(255));return r[P]+"_"+F.toString("hex")+u(n-12)}S.create=x;function b(P){let h=P.split("_")[0];if(!h)return 0;let T=P.slice(h.length+1,h.length+13),E=BigInt("0x"+T);return Number(E/BigInt(4096))}S.timestamp=b;})(ee||(ee={}));var we;(x=>{x.DEFAULT_MAX_CHARS=4e3,x.DIRECTION="head",x.DIR=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),x.GLOB=d.join(x.DIR,"*");let a=10080*60*1e3;function c(b,S,P){return P?`[Content truncated. Source: ${P}
2
- Full ${S} saved to: ${b}
3
- Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${S} saved to: ${b}
4
- Use Read tool with offset/limit parameters to view specific sections.]`}async function m(b,S={}){let P=S.maxChars??4e3,h=S.direction??x.DIRECTION,T=S.label??"content",E=S.sourcePath,k=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),F=S.dir??k;if(b.length<=P)return {content:b,truncated:false};let z=ee.ascending("context"),j=d.join(F,z);await ue.mkdir(F,{recursive:true}).catch(()=>{}),await ue.writeFile(j,b,"utf-8");let H=b.length-P,G;h==="head"?G=b.slice(0,P):G=b.slice(-P);let q=c(j,T,E),e=`${H} characters truncated`;return {content:h==="head"?`${G}
1
+ export{a as Lock}from'./chunks/chunk-GOEMY5AZ.mjs';import {a,b,D,G,c as c$1}from'./chunks/chunk-N26SFBEH.mjs';export{H as $,j as HTTPException,d as Hono,c as Lazy,D as PKG,A as PkgShell,G as Shell,g as compress,e as cors,s as createNodeWebSocket,B as createPkgShell,p as createRESTServer,n as createRPCServer,m as createServer,r as createStreamingServer,q as createWebSocketServer,y as detectPlatform,w as escapeCommandArg,x as escapeCommandArgSafe,z as joinCommandArgs,a as lazy,b as lazyAsync,f as logger,u as needsShellExecution,t as parseCommand,v as parseCommandWithOptions,E as readableStreamToText,h as secureHeaders,C as shell,o as startServer,i as timeout,k as validator,F as whichSync,l as zValidator}from'./chunks/chunk-N26SFBEH.mjs';import {d,b as b$2,a as a$1}from'./chunks/chunk-XGZ7XJWW.mjs';export{d as Filesystem,b as Glob,c as MIME_TYPES,a as Wildcard}from'./chunks/chunk-XGZ7XJWW.mjs';import {m,b as b$1}from'./chunks/chunk-OEWMITBM.mjs';export{m as Log,o as PackageRegistry,n as Semver,l as addMinutesInTimezone,a as formatLocalISO,b as formatLocalISOCompact,f as formatLogTime,g as formatLogTimeMs,h as getTimezoneOffset,i as getTimezoneParts,j as isValidTimezone,k as normalizeTimezone,c as now,d as nowLocalISO,e as parseLocalISO}from'./chunks/chunk-OEWMITBM.mjs';import {f,c,d as d$1}from'./chunks/chunk-6GV3NECV.mjs';import de,{readFile,writeFile,rename}from'fs/promises';import W,{z}from'zod';import {randomBytes}from'crypto';import {config}from'dotenv';import Se,{dirname,join}from'path';import {xdgData,xdgConfig}from'xdg-basedir';import It from'os';import {existsSync,mkdirSync,readdirSync,statSync}from'fs';import {fileURLToPath}from'url';import xe from'gray-matter';import {EnvHttpProxyAgent,ProxyAgent,getGlobalDispatcher,setGlobalDispatcher}from'undici';import {AsyncLocalStorage}from'async_hooks';f();f();function Rt(r,t){for(let n=r.length-1;n>=0;n-=1){let o=r[n];if(o!==void 0&&t(o,n,r))return o}}f();var we;(n=>{function r(o,a,c){let m=0,i=o.length-1;for(;m<=i;){let f=Math.floor((m+i)/2),x=o[f];if(x===void 0)break;let T=c(x);if(T===a)return {found:true,index:f};T<a?m=f+1:i=f-1;}return {found:false,index:m}}n.search=r;function t(o,a,c){let m=c(a),i=0,f=o.length;for(;i<f;){let x=Math.floor((i+f)/2),T=o[x];if(T===void 0)break;c(T)<m?i=x+1:f=x;}return o.splice(i,0,a),o}n.insert=t;})(we||(we={}));f();var Te;(c=>{function r(m){let i=new TextEncoder().encode(m),f=Array.from(i,x=>String.fromCharCode(x)).join("");return btoa(f).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}c.base64Encode=r;function t(m){let i=atob(m.replace(/-/g,"+").replace(/_/g,"/")),f=Uint8Array.from(i,x=>x.charCodeAt(0));return new TextDecoder().decode(f)}c.base64Decode=t;async function n(m,i="SHA-256"){let x=new TextEncoder().encode(m),T=await crypto.subtle.digest(i,x);return Array.from(new Uint8Array(T)).map(h=>h.toString(16).padStart(2,"0")).join("")}c.hash=n;function o(m){if(!m)return;let i=2166136261;for(let f=0;f<m.length;f++)i^=m.charCodeAt(f),i=Math.imul(i,16777619);return (i>>>0).toString(36)}c.checksum=o;function a(m,i=5e5){if(!m)return;if(m.length<=i)return o(m);let f=4096,T=[0,Math.floor(m.length*.25),Math.floor(m.length*.5),Math.floor(m.length*.75),m.length-f].map(v=>{let y=Math.max(0,Math.min(m.length-f,v-Math.floor(f/2)));return o(m.slice(y,y+f))??""}).join(":");return `${m.length}:${T}`}c.sampledChecksum=a;})(Te||(Te={}));f();f();var te;(v=>{let r={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",command:"cmd",task:"task",heartbeat:"hb",agent:"ag",subagent:"sub",hook:"hok",compaction:"cmp",context:"ctx",experience:"exp",pattern:"pat",knowledge:"knw",evolution:"evo",result:"res"};function t(y){return W.string().startsWith(r[y])}v.schema=t;let n=26,o=0,a=0;function c(y,h){return i(y,false,h)}v.ascending=c;function m(y,h){return i(y,true,h)}v.descending=m;function i(y,h,b){if(!b)return x(y,h);if(!b.startsWith(r[y]))throw new Error(`ID ${b} does not start with ${r[y]}`);return b}function f(y){let h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",b="",A=randomBytes(y);for(let k=0;k<y;k++){let D=A[k];D!==void 0&&(b+=h[D%62]);}return b}function x(y,h,b){let A=b??Date.now();A!==o&&(o=A,a=0),a++;let k=BigInt(A)*BigInt(4096)+BigInt(a);k=h?~k:k;let D=Buffer.alloc(6);for(let z=0;z<6;z++)D[z]=Number(k>>BigInt(40-8*z)&BigInt(255));return r[y]+"_"+D.toString("hex")+f(n-12)}v.create=x;function T(y){let h=y.split("_")[0];if(!h)return 0;let b=y.slice(h.length+1,h.length+13),A=BigInt("0x"+b);return Number(A/BigInt(4096))}v.timestamp=T;})(te||(te={}));var Pe;(x=>{x.DEFAULT_MAX_CHARS=4e3,x.DIRECTION="head",x.DIR=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),x.GLOB=d.join(x.DIR,"*");let a=10080*60*1e3;function c(T,v,y){return y?`[Content truncated. Source: ${y}
2
+ Full ${v} saved to: ${T}
3
+ Use Read tool with offset/limit parameters to view specific sections.]`:`[Content truncated. Full ${v} saved to: ${T}
4
+ Use Read tool with offset/limit parameters to view specific sections.]`}async function m(T,v={}){let y=v.maxChars??4e3,h=v.direction??x.DIRECTION,b=v.label??"content",A=v.sourcePath,k=d.join(process.env.EASBOT_DATA_PATH??`${process.cwd()}/data`,"context-output"),D=v.dir??k;if(T.length<=y)return {content:T,truncated:false};let z=te.ascending("context"),G=d.join(D,z);await de.mkdir(D,{recursive:true}).catch(()=>{}),await de.writeFile(G,T,"utf-8");let q=T.length-y,U;h==="head"?U=T.slice(0,y):U=T.slice(-y);let X=c(G,b,A),e=`${q} characters truncated`;return {content:h==="head"?`${U}
5
5
 
6
6
  ...${e}...
7
7
 
8
- ${q}`:`...${e}...
8
+ ${X}`:`...${e}...
9
9
 
10
- ${q}
10
+ ${X}
11
11
 
12
- ${G}`,truncated:true,outputPath:j,originalLength:b.length,removedLength:H,label:T}}x.truncate=m;function i(b){return b.truncated?c(b.outputPath,b.label):""}x.formatHint=i;async function u(){let b=ee.timestamp(ee.create("context",false,Date.now()-a)),P=(await ue.readdir(x.DIR).catch(()=>[])).filter(h=>h.startsWith("context_"));for(let h of P)ee.timestamp(h)>=b||await ue.unlink(d.join(x.DIR,h)).catch(()=>{});}x.cleanup=u;})(we||(we={}));f();var Te;(i=>{let r="New session - ",t="Child session - ";i.parentTitlePrefix=r,i.childTitlePrefix=t;function a(u=false){return (u?t:r)+b$1(new Date)}i.createDefault=a;function c(u){return new RegExp(`^(${r}|${t})\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$`).test(u)}i.isDefault=c;function m(u){let x=u.match(/^(.+) \(fork #(\d+)\)$/);if(x){let b=x[1]??"",S=parseInt(x[2]??"0",10);return `${b} (fork #${S+1})`}return `${u} (fork #1)`}i.getForked=m;})(Te||(Te={}));f();var ae=class ae extends Error{static create(t,n){var c$1;let o=B.object({name:B.literal(t),data:n}).meta({ref:t}),a=(c$1=class extends ae{constructor(i,u){super(t,u);c(this,"data",i);c(this,"name",t);this.name=t;}static isInstance(i){return i!==null&&typeof i=="object"&&"name"in i&&i.name===t}schema(){return o}toObject(){return {name:t,data:this.data}}},c(c$1,"Schema",o),c$1);return Object.defineProperty(a,"name",{value:t}),a}};c(ae,"Unknown",ae.create("UnknownError",B.object({message:B.string()})));var ce=ae;f();var Pe;(t=>{function r(n){return new Ee(n)}t.create=r;})(Pe||(Pe={}));var Ee=class{constructor(t){c(this,"rules",[]);c(this,"ignorecase");c(this,"debug");this.ignorecase=t?.ignorecase??false,this.debug=t?.debug??false;}add(t){let n=typeof t=="string"?t.split(`
13
- `):t;for(let o=0;o<n.length;o++){let a=n[o];this.parseRule(a,o+1);}return this}parseRule(t,n){let o=t,a=t;if(o.length===0||o.startsWith("#"))return;let c=o.startsWith("!");if(c&&(o=o.slice(1)),o=o.trim(),o.length===0||(o.startsWith("\\#")&&(o=o.slice(1)),o.startsWith("#")))return;let m=o.startsWith("/");m&&(o=o.slice(1));let i=o.endsWith("/");i&&(o=o.slice(0,-1)),o.length!==0&&this.rules.push({pattern:o,negative:c,isDirectory:i,anchored:m,original:a,lineNumber:n});}ignores(t,n){let o=this.normalizePath(t),a=n??t.endsWith("/"),c=this.checkIgnore(o,a);return this.debug&&console.log(`Ignore.ignores("${t}", isDirectory=${a}) => ${c}`),c}checkIgnore(t,n){let o=false;for(let a of this.rules)a.isDirectory&&!n||this.matchPath(a,t)&&(a.negative?o=false:o=true);return o}matchPath(t,n){let o=this.ignorecase?n.toLowerCase():n,c=this.ignorecase?t.pattern.toLowerCase():t.pattern;if(t.anchored)return a$1.match(o,c);if(c.includes("/"))return a$1.match(o,c);let m=o.split("/");for(let i of m)if(a$1.match(i,c))return true;return false}filter(t){return t.filter(n=>!this.ignores(n))}createFilter(){return t=>!this.ignores(t)}normalizePath(t){let n=t.replace(/\\/g,"/");if(n==="/")return "";for(;n.startsWith("./");)n=n.slice(2);return n.endsWith("/")&&n.length>1&&(n=n.slice(0,-1)),n}};f();function He(r,t){let n=o=>{let a;try{a=r.parse(o);}catch(c){throw console.trace("schema validation failure stack trace:"),c instanceof z.ZodError&&console.error("schema validation issues:",JSON.stringify(c.issues,null,2)),c}return t(a)};return n.force=o=>t(o),n.schema=r,n}var At=He,Re;(t=>t.fn=He)(Re||(Re={}));f();var kt=m.create({service:"env"});function vt(r={}){let t=r.isDevelopment??false,n=t?".env.dev":".env",o=r.globalConfigPath??(xdgConfig?Ae.join(xdgConfig,"easbot"):void 0),a=r.projectRoot??process.cwd(),c=a?Ae.join(a,".easbot"):void 0,m=[{root:o,label:"global"},{root:a,label:"project"},{root:c,label:"workspace"}],i=["XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","XDG_RUNTIME_DIR","EASBOT_CONFIG_PATH","EASBOT_DATA_PATH","EASBOT_CACHE_PATH","EASBOT_STATE_PATH","EASBOT_LOG_PATH"];for(let{root:u,label:x}of m){if(!u)continue;let b=Ae.join(u,n),P=config({path:b,override:true,debug:false,encoding:"utf-8",quiet:true}).parsed;if(P&&(t&&kt.debug("loadEnv: loaded env file",{layer:x,path:b,keyCount:Object.keys(P).length}),t)){let h=i.filter(T=>T in P);h.length>0&&console.warn(`[loadEnv] ${b} contains keys that have no effect: ${h.join(", ")}.
12
+ ${U}`,truncated:true,outputPath:G,originalLength:T.length,removedLength:q,label:b}}x.truncate=m;function i(T){return T.truncated?c(T.outputPath,T.label):""}x.formatHint=i;async function f(){let T=te.timestamp(te.create("context",false,Date.now()-a)),y=(await de.readdir(x.DIR).catch(()=>[])).filter(h=>h.startsWith("context_"));for(let h of y)te.timestamp(h)>=T||await de.unlink(d.join(x.DIR,h)).catch(()=>{});}x.cleanup=f;})(Pe||(Pe={}));f();var Re;(i=>{let r="New session - ",t="Child session - ";i.parentTitlePrefix=r,i.childTitlePrefix=t;function a(f=false){return (f?t:r)+b$1(new Date)}i.createDefault=a;function c(f){return new RegExp(`^(${r}|${t})\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$`).test(f)}i.isDefault=c;function m(f){let x=f.match(/^(.+) \(fork #(\d+)\)$/);if(x){let T=x[1]??"",v=parseInt(x[2]??"0",10);return `${T} (fork #${v+1})`}return `${f} (fork #1)`}i.getForked=m;})(Re||(Re={}));f();var le=class le extends Error{static create(t,n){var c$1;let o=W.object({name:W.literal(t),data:n}).meta({ref:t}),a=(c$1=class extends le{constructor(i,f){super(t,f);c(this,"data",i);c(this,"name",t);this.name=t;}static isInstance(i){return i!==null&&typeof i=="object"&&"name"in i&&i.name===t}schema(){return o}toObject(){return {name:t,data:this.data}}},c(c$1,"Schema",o),c$1);return Object.defineProperty(a,"name",{value:t}),a}};c(le,"Unknown",le.create("UnknownError",W.object({message:W.string()})));var ue=le;f();var Ee;(t=>{function r(n){return new Ae(n)}t.create=r;})(Ee||(Ee={}));var Ae=class{constructor(t){c(this,"rules",[]);c(this,"ignorecase");c(this,"debug");this.ignorecase=t?.ignorecase??false,this.debug=t?.debug??false;}add(t){let n=typeof t=="string"?t.split(`
13
+ `):t;for(let o=0;o<n.length;o++){let a=n[o];this.parseRule(a,o+1);}return this}parseRule(t,n){let o=t,a=t;if(o.length===0||o.startsWith("#"))return;let c=o.startsWith("!");if(c&&(o=o.slice(1)),o=o.trim(),o.length===0||(o.startsWith("\\#")&&(o=o.slice(1)),o.startsWith("#")))return;let m=o.startsWith("/");m&&(o=o.slice(1));let i=o.endsWith("/");i&&(o=o.slice(0,-1)),o.length!==0&&this.rules.push({pattern:o,negative:c,isDirectory:i,anchored:m,original:a,lineNumber:n});}ignores(t,n){let o=this.normalizePath(t),a=n??t.endsWith("/"),c=this.checkIgnore(o,a);return this.debug&&console.log(`Ignore.ignores("${t}", isDirectory=${a}) => ${c}`),c}checkIgnore(t,n){let o=false;for(let a of this.rules)a.isDirectory&&!n||this.matchPath(a,t)&&(a.negative?o=false:o=true);return o}matchPath(t,n){let o=this.ignorecase?n.toLowerCase():n,c=this.ignorecase?t.pattern.toLowerCase():t.pattern;if(t.anchored)return a$1.match(o,c);if(c.includes("/"))return a$1.match(o,c);let m=o.split("/");for(let i of m)if(a$1.match(i,c))return true;return false}filter(t){return t.filter(n=>!this.ignores(n))}createFilter(){return t=>!this.ignores(t)}normalizePath(t){let n=t.replace(/\\/g,"/");if(n==="/")return "";for(;n.startsWith("./");)n=n.slice(2);return n.endsWith("/")&&n.length>1&&(n=n.slice(0,-1)),n}};f();function We(r,t){let n=o=>{let a;try{a=r.parse(o);}catch(c){throw console.trace("schema validation failure stack trace:"),c instanceof z.ZodError&&console.error("schema validation issues:",JSON.stringify(c.issues,null,2)),c}return t(a)};return n.force=o=>t(o),n.schema=r,n}var St=We,ve;(t=>t.fn=We)(ve||(ve={}));f();var Ot=m.create({service:"env"});function _t(r={}){let t=r.isDevelopment??false,n=t?".env.dev":".env",o=r.globalConfigPath??(xdgConfig?Se.join(xdgConfig,"easbot"):void 0),a=r.projectRoot??process.cwd(),c=a?Se.join(a,".easbot"):void 0,m=[{root:o,label:"global"},{root:a,label:"project"},{root:c,label:"workspace"}],i=["XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","XDG_RUNTIME_DIR","EASBOT_CONFIG_PATH","EASBOT_DATA_PATH","EASBOT_CACHE_PATH","EASBOT_STATE_PATH","EASBOT_LOG_PATH"];for(let{root:f,label:x}of m){if(!f)continue;let T=Se.join(f,n),y=config({path:T,override:true,debug:false,encoding:"utf-8",quiet:true}).parsed;if(y&&(t&&Ot.debug("loadEnv: loaded env file",{layer:x,path:T,keyCount:Object.keys(y).length}),t)){let h=i.filter(b=>b in y);h.length>0&&console.warn(`[loadEnv] ${T} contains keys that have no effect: ${h.join(", ")}.
14
14
  Reason: xdg-basedir caches XDG_* on import, so this .env file loads too late.
15
- How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}var Se;(m=>{let r=a(()=>({...process.env}));function t(){r.reset();}m.reset=t;async function n(i){return r()[i]}m.get=n;async function o(){return r()}m.all=o;async function a$1(i,u){r()[i]=u;}m.set=a$1;async function c(i){delete r()[i];}m.remove=c;})(Se||(Se={}));f();var Nt="easbot-oauth-dummy-key",Ft=m.create({service:"auth"}),ve;(T=>{T.Oauth=B.object({type:B.literal("oauth"),refresh:B.string(),access:B.string(),expires:B.number(),accountId:B.string().optional(),enterpriseUrl:B.string().optional()}).meta({ref:"OAuth"}),T.Api=B.object({type:B.literal("api"),key:B.string()}).meta({ref:"ApiAuth"}),T.WellKnown=B.object({type:B.literal("wellknown"),key:B.string(),token:B.string()}).meta({ref:"WellKnownAuth"}),T.Info=B.discriminatedUnion("type",[T.Oauth,T.Api,T.WellKnown]).meta({ref:"Auth"});function a(){let E=process.env.EASBOT_DATA_PATH??(xdgData?Ae.join(xdgData,"easbot"):Ot.tmpdir());return Ae.join(E,"auth.json")}let c=b(async()=>{let k=await D.file(a()).json().catch(()=>({})),F={};for(let[z,j]of Object.entries(k)){let H=T.Info.safeParse(j);if(H.success){F[z]=H.data;continue}Ft.warn("auth.json entry skipped: schema validation failed",{providerId:z,issues:H.error.issues.map(G=>({path:G.path,message:G.message}))});}return F}),m=Promise.resolve(),i=E=>{let k=m.then(E,E);return m=k.catch(()=>{}),k};async function u(E,k){let F=Ae.dirname(E);existsSync(F)||mkdirSync(F,{recursive:true});let z=`${E}.${process.pid}.${Date.now()}.tmp`;await writeFile(z,JSON.stringify(k,null,2),{mode:384});try{await rename(z,E);}catch(j){try{let{unlink:H}=await import('fs/promises');await H(z);}catch{}throw await D.write(E,JSON.stringify(k,null,2)),j}}function x(){c.reset();}T.reset=x;async function b$1(E){return (await c())[E]}T.get=b$1;async function S(){return c()}T.all=S;async function P(E,k){await i(async()=>{let F=a(),z=await D.file(F).json().catch(()=>({})),j={};for(let[H,G]of Object.entries(z)){let q=T.Info.safeParse(G);q.success&&(j[H]=q.data);}j[E]=k,await u(F,j),c.reset();});}T.set=P;async function h(E){await i(async()=>{let k=a(),F=await D.file(k).json().catch(()=>({}));if(!(E in F)){c.reset();return}let z={};for(let[j,H]of Object.entries(F)){if(j===E)continue;let G=T.Info.safeParse(H);G.success&&(z[j]=G.data);}await u(k,z),c.reset();});}T.remove=h;})(ve||(ve={}));f();async function Lt(r,t){if(process.env.EASBOT_CLIENT==="acp")try{let c=process.platform==="win32"?"cmd":void 0,m=G.spawn(c,`git ${r.join(" ")}`,{stdin:void 0,stdout:"pipe",stderr:"pipe",cwd:t.cwd,env:t.env?{...process.env,...t.env}:process.env}),[i,u,x]=await Promise.all([m.exited,new Response(m.stdout).arrayBuffer(),new Response(m.stderr).arrayBuffer()]),b=Buffer.from(u),S=Buffer.from(x);return {exitCode:i,text:()=>b.toString(),stdout:b,stderr:S}}catch(c){let m=Buffer.from(c instanceof Error?c.message:String(c));return {exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:m}}let n=t.env?{...process.env,...t.env}:void 0,o=G.$`git ${r.join(" ")}`.quiet().nothrow().cwd(t.cwd);n&&(o=o.env(n));let a=await o;return {exitCode:a.exitCode,text:()=>a.text(),stdout:a.stdout,stderr:a.stderr}}f();function Xe(r){return r?dirname(fileURLToPath(r)):typeof d$1<"u"?d$1:process.cwd()}function qe(r,t,n=3){function o(a,c){if(c>n||!existsSync(a))return null;try{let m=readdirSync(a);for(let i of m){let u=join(a,i);try{let x=statSync(u);if(x.isFile()&&u.endsWith(t))return u;if(x.isDirectory()&&c<n){let b=o(u,c+1);if(b)return b}}catch{}}}catch{}return null}return o(r,0)}function Je(r,t){let n=join(r,t);if(existsSync(n))return n;let o=t.split("/").pop()||t,a=r;for(let c=0;c<5;c++){let m=join(a,"assets","txt");if(existsSync(m)){let x=qe(m,o,5);if(x)return x}let i=join(a,"dist","assets","txt");if(existsSync(i)){let x=qe(i,o,5);if(x)return x}let u=join(a,"..");if(u===a)break;a=u;}return n}function Ut(r,t){return c$1.lazy(()=>{try{let n=Xe(t),o=Je(n,r);return D.file(o).textSync()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}function Bt(r,t){return c$1.lazy(async()=>{try{let n=Xe(t),o=Je(n,r);return await D.file(o).text()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}f();function Ht(r){return r()}f();function Gt(r){if(!r||typeof r!="string")return {provider:"",model:""};let t=r.indexOf("/");return t===-1?{provider:"",model:r}:{provider:r.substring(0,t),model:r.substring(t+1)}}f();var Ie;(q=>{q.FILE_REGEX=/(?<![\w`])#(\S+)/g,q.SHELL_REGEX=/!`([^`]+)`/g;function n(e){return Array.from(e.matchAll(q.FILE_REGEX))}q.files=n;function o(e){return Array.from(e.matchAll(q.SHELL_REGEX))}q.shell=o;function a(e){if(!e||typeof e!="string")return typeof e=="string"?e:"";let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return e;let d=s[0],l=(s[1]??"").split(`
16
- `),p=[];for(let w of l){if(w.trim().startsWith("#")||w.trim()===""){p.push(w);continue}if(w.match(/^\s+/)){p.push(w);continue}let L=w.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!L){p.push(w);continue}let R=L[1],O=L?.[2]?.trim();if(O===""||O===">"||O==="|"||O?.startsWith('"')||O?.startsWith("'")){p.push(w);continue}if(O?.includes(":")){p.push(`${R}: |-`),p.push(` ${O}`);continue}p.push(w);}let y=p.join(`
15
+ How to override: export them in the shell before loadEnv() runs, or set process.env directly.`);}}}var ke;(m=>{let r=a(()=>({...process.env}));function t(){r.reset();}m.reset=t;async function n(i){return r()[i]}m.get=n;async function o(){return r()}m.all=o;async function a$1(i,f){r()[i]=f;}m.set=a$1;async function c(i){delete r()[i];}m.remove=c;})(ke||(ke={}));f();var Lt="easbot-oauth-dummy-key",Mt=m.create({service:"auth"}),_e;(b$1=>{b$1.Oauth=W.object({type:W.literal("oauth"),refresh:W.string(),access:W.string(),expires:W.number(),accountId:W.string().optional(),enterpriseUrl:W.string().optional()}).meta({ref:"OAuth"}),b$1.Api=W.object({type:W.literal("api"),key:W.string()}).meta({ref:"ApiAuth"}),b$1.WellKnown=W.object({type:W.literal("wellknown"),key:W.string(),token:W.string()}).meta({ref:"WellKnownAuth"}),b$1.Info=W.discriminatedUnion("type",[b$1.Oauth,b$1.Api,b$1.WellKnown]).meta({ref:"Auth"});function a(){let A=process.env.EASBOT_DATA_PATH??(xdgData?Se.join(xdgData,"easbot"):It.tmpdir());return Se.join(A,"auth.json")}let c=b(async()=>{let k=await D.file(a()).json().catch(()=>({})),D$1={};for(let[z,G]of Object.entries(k)){let q=b$1.Info.safeParse(G);if(q.success){D$1[z]=q.data;continue}Mt.warn("auth.json entry skipped: schema validation failed",{providerId:z,issues:q.error.issues.map(U=>({path:U.path,message:U.message}))});}return D$1}),m=Promise.resolve(),i=A=>{let k=m.then(A,A);return m=k.catch(()=>{}),k};async function f(A,k){let D$1=Se.dirname(A);existsSync(D$1)||mkdirSync(D$1,{recursive:true});let z=`${A}.${process.pid}.${Date.now()}.tmp`;await writeFile(z,JSON.stringify(k,null,2),{mode:384});try{await rename(z,A);}catch(G){try{let{unlink:q}=await import('fs/promises');await q(z);}catch{}throw await D.write(A,JSON.stringify(k,null,2)),G}}function x(){c.reset();}b$1.reset=x;async function T(A){return (await c())[A]}b$1.get=T;async function v(){return c()}b$1.all=v;async function y(A,k){await i(async()=>{let D$1=a(),z=await D.file(D$1).json().catch(()=>({})),G={};for(let[q,U]of Object.entries(z)){let X=b$1.Info.safeParse(U);X.success&&(G[q]=X.data);}G[A]=k,await f(D$1,G),c.reset();});}b$1.set=y;async function h(A){await i(async()=>{let k=a(),D$1=await D.file(k).json().catch(()=>({}));if(!(A in D$1)){c.reset();return}let z={};for(let[G,q]of Object.entries(D$1)){if(G===A)continue;let U=b$1.Info.safeParse(q);U.success&&(z[G]=U.data);}await f(k,z),c.reset();});}b$1.remove=h;})(_e||(_e={}));f();async function Ct(r,t){if(process.env.EASBOT_CLIENT==="acp")try{let c=process.platform==="win32"?"cmd":void 0,m=G.spawn(c,`git ${r.join(" ")}`,{stdin:void 0,stdout:"pipe",stderr:"pipe",cwd:t.cwd,env:t.env?{...process.env,...t.env}:process.env}),[i,f,x]=await Promise.all([m.exited,new Response(m.stdout).arrayBuffer(),new Response(m.stderr).arrayBuffer()]),T=Buffer.from(f),v=Buffer.from(x);return {exitCode:i,text:()=>T.toString(),stdout:T,stderr:v}}catch(c){let m=Buffer.from(c instanceof Error?c.message:String(c));return {exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:m}}let n=t.env?{...process.env,...t.env}:void 0,o=G.$`git ${r.join(" ")}`.quiet().nothrow().cwd(t.cwd);n&&(o=o.env(n));let a=await o;return {exitCode:a.exitCode,text:()=>a.text(),stdout:a.stdout,stderr:a.stderr}}f();function Je(r){return r?dirname(fileURLToPath(r)):typeof d$1<"u"?d$1:process.cwd()}function Ye(r,t,n=3){function o(a,c){if(c>n||!existsSync(a))return null;try{let m=readdirSync(a);for(let i of m){let f=join(a,i);try{let x=statSync(f);if(x.isFile()&&f.endsWith(t))return f;if(x.isDirectory()&&c<n){let T=o(f,c+1);if(T)return T}}catch{}}}catch{}return null}return o(r,0)}function Ke(r,t){let n=join(r,t);if(existsSync(n))return n;let o=t.split("/").pop()||t,a=r;for(let c=0;c<5;c++){let m=join(a,"assets","txt");if(existsSync(m)){let x=Ye(m,o,5);if(x)return x}let i=join(a,"dist","assets","txt");if(existsSync(i)){let x=Ye(i,o,5);if(x)return x}let f=join(a,"..");if(f===a)break;a=f;}return n}function Bt(r,t){return c$1.lazy(()=>{try{let n=Je(t),o=Ke(n,r);return D.file(o).textSync()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}function Gt(r,t){return c$1.lazy(async()=>{try{let n=Je(t),o=Ke(n,r);return await D.file(o).text()}catch(n){throw console.error(`Failed to load text file: ${r}`,n),n}})}f();function Wt(r){return r()}f();function qt(r){if(!r||typeof r!="string")return {provider:"",model:""};let t=r.indexOf("/");return t===-1?{provider:"",model:r}:{provider:r.substring(0,t),model:r.substring(t+1)}}f();var $e;(X=>{X.FILE_REGEX=/(?<![\w`])#(\S+)/g,X.SHELL_REGEX=/!`([^`]+)`/g;function n(e){return Array.from(e.matchAll(X.FILE_REGEX))}X.files=n;function o(e){return Array.from(e.matchAll(X.SHELL_REGEX))}X.shell=o;function a(e){if(!e||typeof e!="string")return typeof e=="string"?e:"";let s=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!s)return e;let d=s[0],w=(s[1]??"").split(`
16
+ `),u=[];for(let p of w){if(p.trim().startsWith("#")||p.trim()===""){u.push(p);continue}if(p.match(/^\s+/)){u.push(p);continue}let S=p.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!S){u.push(p);continue}let E=S[1],N=S?.[2]?.trim();if(N===""||N===">"||N==="|"||N?.startsWith('"')||N?.startsWith("'")){u.push(p);continue}if(N?.includes(":")){u.push(`${E}: |-`),u.push(` ${N}`);continue}u.push(p);}let l=u.join(`
17
17
  `);return e.replace(d,`---
18
- ${y}
19
- ---`)}q.fallbackSanitization=a;function c(e){if(typeof e!="string")return null;if(!e)return {data:{},content:""};try{let s=ge(e);return {data:s.data??{},content:s.content??""}}catch{try{let s=ge(a(e));return {data:s.data??{},content:s.content??""}}catch{return null}}}async function m(e){let s=await readFile(e,"utf-8"),d=c(s);if(!d){let f=`${e}: Failed to parse YAML frontmatter`;throw new q.FrontmatterError({path:e,message:f},{cause:new Error(f)})}return d}q.parse=m;function i(e){if(!e||typeof e!="string")return {frontmatter:{},content:typeof e=="string"?e:""};let s=c(e);return s?{frontmatter:s.data,content:s.content}:{frontmatter:{},content:e}}q.extractFrontmatter=i;function u(e,s){let d=e??"";return !s||Object.keys(s).length===0?ge.stringify(d,void 0):ge.stringify(d,s)}q.format=u,q.FrontmatterError=ce.create("ConfigFrontmatterError",z.object({path:z.string(),message:z.string()}));function b(e,s){return S(e,s)}q.replaceVariables=b;function S(e,s){return P(e,s)}q.renderTemplate=S;function P(e,s){let d=e;return d=h(d,s),d=k(d,s),d=j(d,s),d=z$1(d,s),d=d.replace(/\{\{([^}]*)\}\}/g,(f,l)=>{let p=l.trim();if(!p)return "";let y=he(p,s);return y!==void 0?String(G(y)):""}),d}function h(e,s){let d=e.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y,w)=>{if(!l||!p||!y||!w)return f;let{a:L,b:R}=T(p,s);return L===void 0||R===void 0?f:E(l,L,R)?y:w});return d=d.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let{a:w,b:L}=T(p,s);return w===void 0||L===void 0?f:E(l,w,L)?y:""}),d}function T(e,s){let d=/"([^"]*)"|(\w+(?:\.\w+|\[\d+\])*)/g,f=[],l;for(;(l=d.exec(e))!==null;)l[1]!==void 0?f.push(l[1]):l[2]!==void 0&&f.push(l[2]);if(f.length<2)return {a:void 0,b:void 0};let p=he(f[0],s),y=he(f[1],s);return {a:p,b:y}}function E(e,s,d){switch(e){case "eq":return s===d;case "ne":return s!==d;case "gt":return Number(s)>Number(d);case "lt":return Number(s)<Number(d);case "gte":return Number(s)>=Number(d);case "lte":return Number(s)<=Number(d);default:return false}}function k(e,s){let d=e.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let w=s[l];return F(w)?p:y});return d=d.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(f,l,p)=>{if(!l||!p)return f;let y=s[l];return F(y)?p:""}),d}function F(e){return e==null||e===false||e===""}function z$1(e,s){let d=e.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p,y)=>{if(!l||!p||!y)return f;let w=l in s?s[l]:void 0;return F(w)?y:p});return d=d.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g,(f,l,p)=>{if(!l||!p)return f;let y=l in s?s[l]:void 0;return F(y)?"":p}),d}function j(e,s){let d=e.match(/\{\{#each\s+([\w.]+)\}\}/);if(!d?.[1])return e;let f=d[1],l=he(f,s),p=d[0],y=d.index,w=e.slice(y+p.length),L;if(Array.isArray(l))L=l.map((A,I)=>({key:String(I),value:A}));else if(l!==null&&typeof l=="object")L=Object.entries(l).map(([A,I])=>({key:A,value:I}));else return H(e,y,p,w);let R=1,O=-1,$=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,N;for($.lastIndex=0;(N=$.exec(w))!==null;)if(N[0].startsWith("{{#each"))R++;else if(R--,R===0){O=N.index;break}if(O===-1)return e;let C=w.slice(0,O),X=e.slice(y,y+p.length+O+"{{/each}}".length);if(L.length===0)return e.replace(X,"");let _=L.map(({key:A,value:I},U)=>{let M={...s};return typeof I=="object"&&I!==null?(Object.assign(M,I),M.this=I,M["@value"]=I,M["@index"]=U,M["@key"]=A):(M.this=I,M["@value"]=I,M["@index"]=U,M["@key"]=A),P(C,M)});return e.replace(X,_.join(""))}function H(e,s,d,f,l){let p=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,y=1,w=-1,L;for(p.lastIndex=0;(L=p.exec(f))!==null;)if(L[0].startsWith("{{#each"))y++;else if(y--,y===0){w=L.index;break}if(w===-1)return e;let O=e.slice(s,s+d.length+w+"{{/each}}".length);return e.replace(O,"")}function G(e){return e instanceof Date?b$1(e):Array.isArray(e)?e.map(G).join(", "):e!==null&&typeof e=="object"?JSON.stringify(e,null,2):String(e)}q.formatVariableValue=G;})(Ie||(Ie={}));function he(r,t){let n=/(@\w+)|(\w+)|\[(\d+)\]/g,o=t,a;for(;(a=n.exec(r))!==null;){if(o==null)return;if(a[1]!==void 0){let c=a[1];o=t[c];}else if(a[2]!==void 0){let c=a[2];if(typeof o=="object"&&o!==null)o=o[c];else return}else if(a[3]!==void 0){let c=Number(a[3]);if(Array.isArray(o)&&c>=0&&c<o.length)o=o[c];else return}}return o}f();function Ye(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n[n.length-1]??""}function qt(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n.slice(0,n.length-1).join("/")+"/"}function Xt(r){if(!r)return "";let t=r.split(".");return t[t.length-1]}function Jt(r,t=20){let n=Ye(r);if(n.length<=t)return n;let o=n.lastIndexOf("."),a=o<=0?"":n.slice(o),c=t-a.length-1;return c<=0?n.slice(0,t-1)+"\u2026":n.slice(0,c)+"\u2026"+a}function Yt(r,t=20){if(r.length<=t)return r;let n=t-1,o=Math.ceil(n/2),a=Math.floor(n/2);return r.slice(0,o)+"\u2026"+r.slice(-a)}f();var Kt=["load failed","network connection was lost","network request failed","failed to fetch","econnreset","econnrefused","etimedout","socket hang up"];function Vt(r){if(!r)return false;let t=String(r instanceof Error?r.message:r).toLowerCase();return Kt.some(n=>t.includes(n))}async function $e(r,t={}){let{attempts:n=3,delay:o=500,factor:a=2,maxDelay:c=1e4,retryIf:m=Vt}=t,i;for(let u=0;u<n;u++)try{return await r()}catch(x){if(i=x,u===n-1||!m(x))throw x;let b=Math.min(o*a**u,c);await new Promise(S=>setTimeout(S,b));}throw i}f();var _e;(d$1=>{let r=m.create({service:"fetch"}),t=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],n=false,o=null;function a(){return t.some(f=>{let l=process.env[f];return typeof l=="string"&&l.trim().length>0})}d$1.hasProxyConfigured=a;function c(){let f=process.env.http_proxy||process.env.HTTP_PROXY;return process.env.https_proxy||process.env.HTTPS_PROXY||f}d$1.getProxyUrl=c;function m$1(f={}){let l=f.httpProxy||f.httpsProxy||c();if(!l){r.warn("[Fetch] No proxy configured, HTTP_PROXY/HTTPS_PROXY environment variables not set");return}let p=new ProxyAgent({uri:l,connectTimeout:f.connectTimeout||1e4,keepAliveTimeout:f.keepAliveTimeout||3e4});o=getGlobalDispatcher(),setGlobalDispatcher(p),n=true,r.info(`[Fetch] Global proxy enabled: ${l}`);}d$1.enableProxy=m$1;function i(){!n||!o||(setGlobalDispatcher(o),n=false,o=null,r.info("[Fetch] \u5168\u5C40\u4EE3\u7406\u5DF2\u7981\u7528"));}d$1.disableProxy=i;function u(){return n}d$1.isProxyEnabled=u;async function x(f,l){let p=l?.timeout||3e4,y=l?.responseType||"json",{timeout:w,responseType:L,...R}=l||{},O=null,$=null;try{R.signal||(O=new AbortController,$=setTimeout(()=>O.abort(),p));let N=await fetch(f,{...R,signal:R.signal||O.signal});$&&clearTimeout($);let C;switch(y){case "arrayBuffer":C=await N.arrayBuffer();break;case "blob":C=await N.blob();break;case "buffer":{let W=await N.arrayBuffer();C=Buffer.from(W);break}case "text":C=await N.text();break;default:{let W=await N.text();try{C=JSON.parse(W);}catch{C=W;}break}}return {ok:N.ok,status:N.status,statusText:N.statusText,headers:N.headers,data:C,url:N.url}}catch(N){throw $&&clearTimeout($),N}}async function b(f,l){let p=l?.retries??0,y=l?.retryDelay??1e3,{retries:w,retryDelay:L,responseType:R,...O}=l||{};return $e(()=>x(f,{...O,responseType:l?.responseType}),{attempts:p+1,delay:y,maxDelay:y*2**(p+1)})}async function S(f,l){return b(f,{method:"GET",...l})}d$1.get=S;async function P(f,l,p){return b(f,{method:"POST",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d$1.post=P;async function h(f,l,p){return b(f,{method:"PUT",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d$1.put=h;async function T(f,l,p){return b(f,{method:"DELETE",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d$1.del=T;async function E(f,l,p){return b(f,{method:"PATCH",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}d$1.patch=E;async function k(f,l){return b(f,l)}d$1.request=k;function F(f={}){return a()?(m$1(f),true):false}d$1.autoProxy=F;let z=5*1024*1024;function j(f){return new TextEncoder().encode(f)}function H(f){return d.mimeType(f)}function G(f){return f.startsWith("file://")}async function q(f){let l=fileURLToPath(f);return await D.file(l).bytes()}async function e(f,l,p){let y=`----FetchFormBoundary${Date.now()}`,w=[],R=l.some(_=>_.filename||_.value instanceof Uint8Array||Buffer.isBuffer(_.value))&&!p?.timeout?3e5:p?.timeout;for(let _ of l){let A=_.maxSize??z,I=_.filename,U=`Content-Disposition: form-data; name="${_.name}"${I?`; filename="${I}"`:""}`;I&&(U+=`\r
20
- Content-Type: ${H(I)}`),U+=`\r
18
+ ${l}
19
+ ---`)}X.fallbackSanitization=a;function c(e){if(typeof e!="string")return null;if(!e)return {data:{},content:""};try{let s=xe(e);return {data:s.data??{},content:s.content??""}}catch{try{let s=xe(a(e));return {data:s.data??{},content:s.content??""}}catch{return null}}}async function m(e){let s=await readFile(e,"utf-8"),d=c(s);if(!d){let P=`${e}: Failed to parse YAML frontmatter`;throw new X.FrontmatterError({path:e,message:P},{cause:new Error(P)})}return d}X.parse=m;function i(e){if(!e||typeof e!="string")return {frontmatter:{},content:typeof e=="string"?e:""};let s=c(e);return s?{frontmatter:s.data,content:s.content}:{frontmatter:{},content:e}}X.extractFrontmatter=i;function f(e,s){let d=e??"";return !s||Object.keys(s).length===0?xe.stringify(d,void 0):xe.stringify(d,s)}X.format=f,X.FrontmatterError=ue.create("ConfigFrontmatterError",z.object({path:z.string(),message:z.string()}));function T(e,s){return v(e,s)}X.replaceVariables=T;function v(e,s){return y(e,s)}X.renderTemplate=v;function y(e,s){let d=e;return d=h(d,s),d=k(d,s),d=G(d,s),d=z$1(d,s),d=d.replace(/\{\{([^}]*)\}\}/g,(P,w)=>{let u=w.trim();if(!u)return "";let l=ye(u,s);return l!==void 0?String(U(l)):""}),d}function h(e,s){let d=e.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l,p)=>{if(!w||!u||!l||!p)return P;let{a:S,b:E}=b(u,s);return S===void 0||E===void 0?P:A(w,S,E)?l:p});return d=d.replace(/\{\{#if\s+\((eq|ne|gt|lt|gte|lte)\s+([^)]+)\)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let{a:p,b:S}=b(u,s);return p===void 0||S===void 0?P:A(w,p,S)?l:""}),d}function b(e,s){let d=/"([^"]*)"|(\w+(?:\.\w+|\[\d+\])*)/g,P=[],w;for(;(w=d.exec(e))!==null;)w[1]!==void 0?P.push(w[1]):w[2]!==void 0&&P.push(w[2]);if(P.length<2)return {a:void 0,b:void 0};let u=ye(P[0],s),l=ye(P[1],s);return {a:u,b:l}}function A(e,s,d){switch(e){case "eq":return s===d;case "ne":return s!==d;case "gt":return Number(s)>Number(d);case "lt":return Number(s)<Number(d);case "gte":return Number(s)>=Number(d);case "lte":return Number(s)<=Number(d);default:return false}}function k(e,s){let d=e.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=s[w];return D(p)?u:l});return d=d.replace(/\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=s[w];return D(l)?u:""}),d}function D(e){return e==null||e===false||e===""}function z$1(e,s){let d=e.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{(?:else)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u,l)=>{if(!w||!u||!l)return P;let p=w in s?s[w]:void 0;return D(p)?l:u});return d=d.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g,(P,w,u)=>{if(!w||!u)return P;let l=w in s?s[w]:void 0;return D(l)?"":u}),d}function G(e,s){let d=e.match(/\{\{#each\s+([\w.]+)\}\}/);if(!d?.[1])return e;let P=d[1],w=ye(P,s),u=d[0],l=d.index,p=e.slice(l+u.length),S;if(Array.isArray(w))S=w.map((O,R)=>({key:String(R),value:O}));else if(w!==null&&typeof w=="object")S=Object.entries(w).map(([O,R])=>({key:O,value:R}));else return q(e,l,u,p);let E=1,N=-1,I=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,C;for(I.lastIndex=0;(C=I.exec(p))!==null;)if(C[0].startsWith("{{#each"))E++;else if(E--,E===0){N=C.index;break}if(N===-1)return e;let H=p.slice(0,N),j=e.slice(l,l+u.length+N+"{{/each}}".length);if(S.length===0)return e.replace(j,"");let B=S.map(({key:O,value:R},M)=>{let L={...s};return typeof R=="object"&&R!==null?(Object.assign(L,R),L.this=R,L["@value"]=R,L["@index"]=M,L["@key"]=O):(L.this=R,L["@value"]=R,L["@index"]=M,L["@key"]=O),y(H,L)});return e.replace(j,B.join(""))}function q(e,s,d,P,w){let u=/\{\{#each\s+[\w.]+\}\}|\{\{\/each\}\}/g,l=1,p=-1,S;for(u.lastIndex=0;(S=u.exec(P))!==null;)if(S[0].startsWith("{{#each"))l++;else if(l--,l===0){p=S.index;break}if(p===-1)return e;let N=e.slice(s,s+d.length+p+"{{/each}}".length);return e.replace(N,"")}function U(e){return e instanceof Date?b$1(e):Array.isArray(e)?e.map(U).join(", "):e!==null&&typeof e=="object"?JSON.stringify(e,null,2):String(e)}X.formatVariableValue=U;})($e||($e={}));function ye(r,t){let n=/(@\w+)|(\w+)|\[(\d+)\]/g,o=t,a;for(;(a=n.exec(r))!==null;){if(o==null)return;if(a[1]!==void 0){let c=a[1];o=t[c];}else if(a[2]!==void 0){let c=a[2];if(typeof o=="object"&&o!==null)o=o[c];else return}else if(a[3]!==void 0){let c=Number(a[3]);if(Array.isArray(o)&&c>=0&&c<o.length)o=o[c];else return}}return o}f();function Ve(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n[n.length-1]??""}function Yt(r){if(!r)return "";let n=r.replace(/[/\\]+$/,"").split(/[/\\]/);return n.slice(0,n.length-1).join("/")+"/"}function Jt(r){if(!r)return "";let t=r.split(".");return t[t.length-1]}function Kt(r,t=20){let n=Ve(r);if(n.length<=t)return n;let o=n.lastIndexOf("."),a=o<=0?"":n.slice(o),c=t-a.length-1;return c<=0?n.slice(0,t-1)+"\u2026":n.slice(0,c)+"\u2026"+a}function Vt(r,t=20){if(r.length<=t)return r;let n=t-1,o=Math.ceil(n/2),a=Math.floor(n/2);return r.slice(0,o)+"\u2026"+r.slice(-a)}f();var Zt=["load failed","network connection was lost","network request failed","failed to fetch","econnreset","econnrefused","etimedout","socket hang up"];function Qt(r){if(!r)return false;let t=String(r instanceof Error?r.message:r).toLowerCase();return Zt.some(n=>t.includes(n))}async function De(r,t={}){let{attempts:n=3,delay:o=500,factor:a=2,maxDelay:c=1e4,retryIf:m=Qt}=t,i;for(let f=0;f<n;f++)try{return await r()}catch(x){if(i=x,f===n-1||!m(x))throw x;let T=Math.min(o*a**f,c);await new Promise(v=>setTimeout(v,T));}throw i}f();var Ne;(w=>{let r=m.create({service:"fetch"}),t=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],n=false,o=null,a,c;function m$1(){return t.some(u=>{let l=process.env[u];return typeof l=="string"&&l.trim().length>0})}w.hasProxyConfigured=m$1;function i(){let u=process.env.http_proxy||process.env.HTTP_PROXY;return process.env.https_proxy||process.env.HTTPS_PROXY||u}w.getProxyUrl=i;function f(u={}){let l=u.httpProxy||u.httpsProxy||i();if(!l){r.warn("[Fetch] No proxy configured, HTTP_PROXY/HTTPS_PROXY environment variables not set");return}let p;!u.httpProxy&&!u.httpsProxy?(!process.env.NO_PROXY&&!process.env.no_proxy?(a=void 0,c=void 0,process.env.NO_PROXY="localhost,127.0.0.1,::1",process.env.no_proxy="localhost,127.0.0.1,::1"):(a=process.env.NO_PROXY,c=process.env.no_proxy),p=new EnvHttpProxyAgent({connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled via EnvHttpProxyAgent (honors NO_PROXY=${process.env.NO_PROXY})`)):(p=new ProxyAgent({uri:l,connectTimeout:u.connectTimeout||1e4,keepAliveTimeout:u.keepAliveTimeout||3e4}),r.info(`[Fetch] Global proxy enabled: ${l}`)),o=getGlobalDispatcher(),setGlobalDispatcher(p),n=true;}w.enableProxy=f;function x(){!n||!o||(setGlobalDispatcher(o),n=false,o=null,a===void 0?delete process.env.NO_PROXY:process.env.NO_PROXY=a,c===void 0?delete process.env.no_proxy:process.env.no_proxy=c,a=void 0,c=void 0,r.info("[Fetch] Global proxy disabled"));}w.disableProxy=x;function T(){return n}w.isProxyEnabled=T;async function v(u,l){let p=l?.timeout||3e4,S=l?.responseType||"json",{timeout:E,responseType:N,...I}=l||{},C=null,H=null;try{I.signal||(C=new AbortController,H=setTimeout(()=>C.abort(),p));let F=await fetch(u,{...I,signal:I.signal||C.signal});H&&clearTimeout(H);let j;switch(S){case "arrayBuffer":j=await F.arrayBuffer();break;case "blob":j=await F.blob();break;case "buffer":{let B=await F.arrayBuffer();j=Buffer.from(B);break}case "text":j=await F.text();break;default:{let B=await F.text();try{j=JSON.parse(B);}catch{j=B;}break}}return {ok:F.ok,status:F.status,statusText:F.statusText,headers:F.headers,data:j,url:F.url}}catch(F){throw H&&clearTimeout(H),F}}async function y(u,l){let p=l?.retries??0,S=l?.retryDelay??1e3,{retries:E,retryDelay:N,responseType:I,...C}=l||{};return De(()=>v(u,{...C,responseType:l?.responseType}),{attempts:p+1,delay:S,maxDelay:S*2**(p+1)})}async function h(u,l){return y(u,{method:"GET",...l})}w.get=h;async function b(u,l,p){return y(u,{method:"POST",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.post=b;async function A(u,l,p){return y(u,{method:"PUT",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.put=A;async function k(u,l,p){return y(u,{method:"DELETE",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.del=k;async function D$1(u,l,p){return y(u,{method:"PATCH",headers:{"Content-Type":"application/json",...p?.headers},body:l?JSON.stringify(l):void 0,...p})}w.patch=D$1;async function z(u,l){return y(u,l)}w.request=z;function G(u={}){return m$1()?(f(u),true):false}w.autoProxy=G;let q=5*1024*1024;function U(u){return new TextEncoder().encode(u)}function X(u){return d.mimeType(u)}function e(u){return u.startsWith("file://")}async function s(u){let l=fileURLToPath(u);return await D.file(l).bytes()}async function d$1(u,l,p){let S=`----FetchFormBoundary${Date.now()}`,E=[],I=l.some(R=>R.filename||R.value instanceof Uint8Array||Buffer.isBuffer(R.value))&&!p?.timeout?3e5:p?.timeout;for(let R of l){let M=R.maxSize??q,L=R.filename,oe=`Content-Disposition: form-data; name="${R.name}"${L?`; filename="${L}"`:""}`;L&&(oe+=`\r
20
+ Content-Type: ${X(L)}`),oe+=`\r
21
21
  \r
22
- `,w.push(j(U));let M=_.value;if(typeof M=="string")if(G(M)){let xe=await q(M);if(I||(I=M.split("/").pop()||"file"),xe.byteLength>A)throw new Error(`File size ${xe.byteLength} exceeds limit ${A} bytes: ${I}`);w.push(xe);}else w.push(j(M));else if(Buffer.isBuffer(M)){if(M.byteLength>A)throw new Error(`Buffer size ${M.byteLength} exceeds limit ${A} bytes: ${_.name}`);w.push(new Uint8Array(M.buffer,M.byteOffset,M.byteLength));}else if(M instanceof Uint8Array){if(M.byteLength>A)throw new Error(`File size ${M.byteLength} exceeds limit ${A} bytes: ${_.name}`);w.push(M);}}let O=j(`\r
23
- --${y}--`),$=j(`\r
24
- --${y}\r
25
- `),N=[];N.push(j(`--${y}\r
26
- `));for(let _=0;_<w.length;_++)N.push(w[_]),_%2===1&&_<w.length-1&&(N.push($),N.push(j(`--${y}\r
27
- `)));N.push(O);let C=N.reduce((_,A)=>_+A.length,0),W=new Uint8Array(C),X=0;for(let _ of N)W.set(_,X),X+=_.length;return b(f,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${y}`,...p?.headers},body:W,timeout:R,...p})}d$1.postForm=e;function s(f,l,p){let y=new AbortController,w=y.signal;return (async()=>{try{let R={Accept:"text/event-stream",...p?.headers||{}},O=await fetch(f,{...p,headers:R,signal:w});if(!O.ok)throw new Error(`SSE connection failed: ${O.status}`);let $=O.body?.getReader();if(!$)throw new Error("SSE stream not available");let N=new TextDecoder("utf-8"),C="";for(;!w.aborted;){let{done:W,value:X}=await $.read();if(W)break;let _=N.decode(X,{stream:!0});C+=_;let A=C.split(`
28
- `);C=A.pop()??"";for(let I of A)if(I.startsWith("data: ")){let U=I.slice(6);if(U==="[DONE]"){l.onComplete?.();return}l.onMessage?.(U);}}l.onComplete?.();}catch(R){R.name!=="AbortError"&&l.onError?.(R);}})(),()=>{y.abort();}}d$1.sse=s;})(_e||(_e={}));f();var De;(o=>{let r=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],t=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function n(){return [r[Math.floor(Math.random()*r.length)],t[Math.floor(Math.random()*t.length)]].join("-")}o.create=n;})(De||(De={}));f();var Ne;(a=>(a.positiveInt=B.union([B.number(),B.string().regex(/^\d+$/,"must be a positive integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(B.number().int().positive()),a.nonNegativeInt=B.union([B.number(),B.string().regex(/^\d+$/,"must be a non-negative integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(B.number().int().nonnegative()),a.booleanLike=B.union([B.boolean(),B.string()]).transform((c,m)=>{if(typeof c=="boolean")return c;let i=c.trim().toLowerCase();return ["true","1","yes","on"].includes(i)?true:["false","0","no","off"].includes(i)?false:(m.addIssue({code:"custom",message:`invalid boolean string: ${JSON.stringify(c)}`}),B.NEVER)}).pipe(B.boolean()),a.stringArray=(c=",")=>B.union([B.array(B.string()),B.string()]).transform(m=>Array.isArray(m)?m:m.split(c).map(u=>u.trim()).filter(u=>u.length>0)).pipe(B.array(B.string()))))(Ne||(Ne={}));f();function Ve(r){let t=new AbortController,n=setTimeout(t.abort.bind(t),r);return {controller:t,signal:t.signal,clearTimeout:()=>globalThis.clearTimeout(n)}}function tr(r,...t){let n=Ve(r);return {signal:AbortSignal.any([n.signal,...t]),clearTimeout:n.clearTimeout}}f();var Fe;(t=>{async function r(n,o){if(process.platform==="win32"){let a=Ae.resolve(n),c=Ae.resolve(o),m=`Expand-Archive -Path '${a}' -DestinationPath '${c}' -Force`,i=await G.run("powershell",`-NoProfile -NonInteractive -Command "$global:ProgressPreference = 'SilentlyContinue'; ${m}"`);if(i.code!==0)throw new Error(`PowerShell exited with code ${i.code}: ${i.stderr}`)}else {let a=`unzip -o -q ${n} -d ${o}`,c=await G.run(void 0,a);if(c.code!==0)throw new Error(`unzip exited with code ${c.code}: ${c.stderr}`)}}t.extractZip=r;})(Fe||(Fe={}));f();var Le;(o=>{function r(a){return a?/^#[0-9a-fA-F]{6}$/.test(a):false}o.isValidHex=r;function t(a){let c=parseInt(a.slice(1,3),16),m=parseInt(a.slice(3,5),16),i=parseInt(a.slice(5,7),16);return {r:c,g:m,b:i}}o.hexToRgb=t;function n(a){if(!r(a))return;let{r:c,g:m,b:i}=t(a);return `\x1B[38;2;${c};${m};${i}m\x1B[1m`}o.hexToAnsiBold=n;})(Le||(Le={}));f();var Me;(n=>{class r extends Error{constructor(c$1){super(`No context found for ${c$1}`);c(this,"name",c$1);}}n.NotFound=r;function t(o){let a=new AsyncLocalStorage;return {use(){let c=a.getStore();if(!c)throw new r(o);return c},provide(c,m){return a.run(c,m)}}}n.create=t;})(Me||(Me={}));f();function nr(r){return {[Symbol.dispose](){r();},[Symbol.asyncDispose](){return Promise.resolve(r())}}}f();var Ce;(t=>{async function r(){return new Promise(n=>{let o=()=>{process._getActiveHandles().length===0&&process._getActiveRequests().length===0?n():setImmediate(o);};o();})}t.wait=r;})(Ce||(Ce={}));f();function or(r){if(r<=0)return "";if(r<60)return `${r}s`;if(r<3600){let n=Math.floor(r/60),o=r%60;return o>0?`${n}m ${o}s`:`${n}m`}if(r<86400){let n=Math.floor(r/3600),o=Math.floor(r%3600/60);return o>0?`${n}h ${o}m`:`${n}h`}if(r<604800){let n=Math.floor(r/86400);return n===1?"~1 day":`~${n} days`}let t=Math.floor(r/604800);return t===1?"~1 week":`~${t} weeks`}f();var je;(q=>{let r=m.create({service:"grep"});async function t(){return n()}q.filepath=t;let n=b(async()=>{let e=await D.which("rg");if(!e)return null;try{if(!(await ue.stat(e)).isFile())return null}catch{return null}try{let s=await D.run([e,"--version"],{timeout:5e3});if(s.code!==0||!s.stdout.startsWith("ripgrep "))return r.warn("rg failed self-test, falling back to pure JS",{filepath:e,code:s.code,stderr:s.stderr.slice(0,200)}),null}catch(s){return r.warn("rg spawn failed during self-test, falling back to pure JS",{filepath:e,error:s.message.slice(0,200)}),null}return e});async function o(){return await t()!==null}q.isUsingRipgrep=o;async function*a$2(e){e.signal?.throwIfAborted();let s=await t();s?yield*c(s,e):(r.debug("ripgrep not available, using pure JS fallback for files()",{cwd:e.cwd}),yield*m$1(e));}q.files=a$2;async function*c(e,s){s.signal?.throwIfAborted();let d$1=["--files","--glob=!.git/*"];s.follow&&d$1.push("--follow");let f=s.hidden!==false;if(s.maxDepth!==void 0&&d$1.push(`--max-depth=${s.maxDepth}`),s.glob)for(let y of s.glob)d$1.push(`--glob=${y}`);try{if(!(await ue.stat(s.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${s.cwd}'`),{code:"ENOTDIR",errno:-20,path:s.cwd})}catch(y){throw y.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${s.cwd}'`),{code:"ENOENT",errno:-2,path:s.cwd}):y}let l=await D.run([e,...d$1],{cwd:s.cwd});if(l.code!==0&&l.code!==1)return;let p=l.stdout.split(/\r?\n/);for(let y of p){s.signal?.throwIfAborted();let w=y.trim();if(!w)continue;let L=d.toUnixPath(w);!f&&L.split("/").some(R=>R.startsWith("."))||(yield L);}}async function*m$1(e){e.signal?.throwIfAborted();try{if(!(await ue.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(R){throw R.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):R}let s=[],d=[];if(e.glob)for(let R of e.glob)R.startsWith("!")?d.push(R.slice(1)):s.push(R);let f=s.length>0?T(s):["**/*"],l=e.hidden!==false,p=new Set,y=b$2.DEFAULT_MAX_DEPTH,w;e.maxDepth===void 0?w=y:e.maxDepth<0?w=1:w=e.maxDepth+1;let L=Math.min(Math.max(w,1),y);for(let R of f){e.signal?.throwIfAborted();let O=await b$2.scan(R,{cwd:e.cwd,absolute:false,include:"file",dot:l,symlink:e.follow??false,maxDepth:L,ignore:d});for(let $ of O)!l&&$.split("/").some(N=>N.startsWith("."))||p.add($);}for(let R of Array.from(p).sort())e.signal?.throwIfAborted(),yield R;e.signal?.throwIfAborted();}async function i(e){r.debug("tree",{cwd:e.cwd}),e.signal?.throwIfAborted();let s=e.hidden!==false,d=e.glob??[],f=d.filter(A=>!A.startsWith("!")),l=d.filter(A=>A.startsWith("!")).map(A=>A.slice(1)),p=f.length>0?f:["**/*"],y=new Set,w=[];for(let A of p){e.signal?.throwIfAborted();let I=await b$2.scan(A,{cwd:e.cwd,absolute:false,include:"file",dot:s,symlink:false,maxDepth:b$2.DEFAULT_MAX_DEPTH});for(let U of I)y.has(U)||(y.add(U),w.push(U));}let L=w.filter(A=>{for(let I of l)if(b$2.match(I,A))return false;return true});function R(A,I){let U=A.children.get(I);if(U)return U;let M={name:I,children:new Map};return A.children.set(I,M),M}let O={children:new Map};for(let A of L){let I=A.split("/");if(I.length<2)continue;let U=O;for(let M of I.slice(0,-1))U=R(U,M);}let $=Array.from(O.children.values()).sort((A,I)=>A.name.localeCompare(I.name)),N=e.limit??Number.POSITIVE_INFINITY,C=[],W=$.map(A=>({node:A,path:A.name})),X=0,_=0;for(;W.length>0;){let A=W.shift();if(!A)break;if(X++,_<N){C.push(A.path),_++;for(let I of Array.from(A.node.children.values()).sort((U,M)=>U.name.localeCompare(M.name))){if(_>=N)break;W.push({node:I,path:`${A.path}/${I.name}`});}}}return X>_&&C.push(`[${_}/${X} shown, ${X-_} truncated]`),C.join(`
29
- `)}q.tree=i;async function u(e){let s=await t();return s?x(s,e):(r.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),b$1(e))}q.search=u;async function x(e,s){let d$1=["--json","--glob=!.git/*"];if(s.follow&&d$1.push("--follow"),s.glob)for(let w of s.glob)d$1.push(`--glob=${w}`);s.limit&&d$1.push(`--max-count=${s.limit}`),d$1.push("--"),d$1.push(s.pattern);let f=await D.run([e,...d$1],{cwd:s.cwd});if(f.code!==0)return [];let l=s.hidden!==false,p=f.stdout.split(/\r?\n/).filter(Boolean),y=[];for(let w of p)try{let L=JSON.parse(w);if(L?.type!=="match")continue;let R=L.data;if(!R?.path?.text||!R?.lines?.text)continue;let O=d.toUnixPath(R.path.text);if(!l&&O.split("/").some($=>$.startsWith(".")))continue;if(y.push({path:O,lines:R.lines.text,line_number:R.line_number,absolute_offset:R.absolute_offset??0}),s.limit&&y.length>=s.limit)break}catch{}return y}async function b$1(e){let s;try{s=new RegExp(e.pattern);}catch{return []}try{if(!(await ue.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch($){throw $.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):$}let d$1=[],f=[];if(e.glob)for(let $ of e.glob)$.startsWith("!")?f.push($):d$1.push($);let p=T(f).map($=>$.startsWith("!")?$.slice(1):$),y=e.hidden!==false,w=[],L=d$1.length>0?T(d$1):["**/*"],R=new Set,O=[];for(let $ of L){e.signal?.throwIfAborted();let N=await b$2.scan($,{cwd:e.cwd,absolute:false,include:"file",dot:y,symlink:e.follow??false,maxDepth:void 0,ignore:p});for(let C of N)R.has(C)||(R.add(C),O.push(C));}for(let $ of O){if(e.signal?.throwIfAborted(),e.limit&&w.length>=e.limit)break;let N=d.join(e.cwd,$),C;try{C=await ue.readFile(N,"utf-8");}catch{continue}let W=C.split(/\r?\n/),X=0;for(let _=0;_<W.length;_++){let A=W[_]??"";if(s.test(A)&&(w.push({path:$,lines:A,line_number:_+1,absolute_offset:X}),e.limit&&w.length>=e.limit))break;X+=Buffer.byteLength(A,"utf-8")+1;}}return w}function S(e,s){return a$1.match(e,s)}q.match=S;let P=a(async()=>await t());async function h(){return await P()}q.filepathCached=h;function T(e){let s=[];for(let d of e){if(d.startsWith("!")){let l=d.slice(1);s.push(`!${E(l)}`);continue}let f=k(d);for(let l of f)s.push(F(l));}return s}function E(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function k(e){let s=z(e);if(s===-1)return [e];let d=j(e,s);if(d===-1)return [e];let f=e.slice(s+1,d),l=H(f);if(!l||l.length<=1)return [e];let p=e.slice(0,s),y=e.slice(d+1);return l.map(w=>p+w+y)}function F(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function z(e){for(let d=0;d<e.length;d++){let f=e[d];if(f==="\\"){d++;continue}if(f==="{"){return d;}}return -1}function j(e,s){for(let d=s+1;d<e.length;d++){let f=e[d];if(f==="\\"){d++;continue}if(f==="}")return d}return -1}function H(e){return e?e.split(","):null}q._ready=a(async()=>{let e=await t();return r.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(je||(je={}));f();var ze;(m=>{function r(i,u){if(i===u)return true;if(typeof i!="object"||typeof u!="object"||i===null||u===null)return false;let x=Object.keys(i),b=Object.keys(u);if(x.length!==b.length)return false;for(let S of x)if(!b.includes(S)||!r(i[S],u[S]))return false;return true}function t(i){return {...i,super:i.super??false}}function n(i,u){return i?r(t(i),t(u)):false}m.match=n;function o(i,u=false){return {name:i.name,ctrl:i.ctrl,meta:i.meta,shift:i.shift,super:i.super??false,leader:u}}m.fromParsedKey=o;function a(i){if(!i)return "";let u=[];i.ctrl&&u.push("ctrl"),i.meta&&u.push("alt"),i.super&&u.push("super"),i.shift&&u.push("shift"),i.name&&(i.name==="delete"?u.push("del"):u.push(i.name));let x=u.join("+");return i.leader&&(x=x?`<leader> ${x}`:"<leader>"),x}m.keyToString=a;function c(i){return i==="none"?[]:i.split(",").map(u=>{let b=u.replace(/<leader>/g,"leader+").toLowerCase().split("+"),S={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let P of b)switch(P){case "ctrl":S.ctrl=true;break;case "alt":case "meta":case "option":S.meta=true;break;case "super":S.super=true;break;case "shift":S.shift=true;break;case "leader":S.leader=true;break;case "esc":S.name="escape";break;default:S.name=P;break}return S})}m.parse=c;})(ze||(ze={}));f();var oe;(P=>{P.SUPPORTED_LANGS=["zh-CN","en-US"],P.DEFAULT_LANG="zh-CN";function n(h,T="EASBOT_LANG"){let E=[h,process.env[T]?.trim()];for(let k of E)if(k&&P.SUPPORTED_LANGS.includes(k))return k;return P.DEFAULT_LANG}P.resolveLocaleLang=n;function o(h){return h.replace(/\b\w/g,T=>T.toUpperCase())}P.titlecase=o;function a(h){return new Date(h).toLocaleTimeString(void 0,{timeStyle:"short"})}P.time=a;function c(h){let T=new Date(h),E=a(h),k=T.toLocaleDateString();return `${E} \xB7 ${k}`}P.datetime=c;function m(h){let T=new Date(h),E=new Date;return T.getFullYear()===E.getFullYear()&&T.getMonth()===E.getMonth()&&T.getDate()===E.getDate()?a(h):c(h)}P.todayTimeOrDateTime=m;function i(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":h.toString()}P.number=i;function u(h){if(h<1e3)return `${h}ms`;if(h<6e4)return `${(h/1e3).toFixed(1)}s`;if(h<36e5){let k=Math.floor(h/6e4),F=Math.floor(h%6e4/1e3);return `${k}m ${F}s`}if(h<864e5){let k=Math.floor(h/36e5),F=Math.floor(h%36e5/6e4);return `${k}h ${F}m`}let T=Math.floor(h/36e5);return `${Math.floor(h%36e5/864e5)}d ${T}h`}P.duration=u;function x(h,T){return h.length<=T?h:h.slice(0,T-1)+"\u2026"}P.truncate=x;function b(h,T=35){if(h.length<=T)return h;let E="\u2026",k=Math.ceil((T-E.length)/2),F=Math.floor((T-E.length)/2);return h.slice(0,k)+E+h.slice(-F)}P.truncateMiddle=b;function S(h,T,E){return (h===1?T:E).replace("{}",h.toString())}P.pluralize=S;})(oe||(oe={}));var sr=oe.resolveLocaleLang,ir=oe.SUPPORTED_LANGS,ar=oe.DEFAULT_LANG;f();var cr=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function lr(){return cr.some(r=>process.env[r])}function ur(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function fr(){let r=process.env.HTTP_PROXY||process.env.http_proxy,t=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:r,https:t,enabled:!!(r||t)}}f();var Ue=class{constructor(){c(this,"queue",[]);c(this,"resolvers",[]);}push(t){let n=this.resolvers.shift();n?n(t):this.queue.push(t);}async next(){return this.queue.length>0?this.queue.shift():new Promise(t=>this.resolvers.push(t))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function dr(r,t,n){let o=[...t];await Promise.all(Array.from({length:r},async()=>{for(;;){let a=o.pop();if(a===void 0)return;await n(a);}}));}f();function pr(){let r,t=new Promise(n=>r=n);return {trigger(){return r()},wait(){return t}}}f();function mr(r,t){let n;return Promise.race([r.then(o=>(clearTimeout(n),o)),new Promise((o,a)=>{n=setTimeout(()=>{a(new Error(`Operation timed out after ${t}ms`));},t);})])}f();var Be;(m=>{let n=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function o(i){if(!i)return 0;let u=String(i),x=(u.match(n)||[]).length,b=u.length-x,S=Math.round(x/1.5),P=Math.round(b/4);return Math.max(0,S+P)}m.estimate=o;function a(i){if(i==null)return 0;try{let u=typeof i=="string"?i:JSON.stringify(i);return o(u)}catch{return 0}}m.estimateObject=a;function c(i){if(i.total!==void 0&&i.total>0)return i.total;let u=i.input??0,x=i.output??0,b=i.cache?.read??0,S=i.cache?.write??0;return u+x+b+S}m.total=c;})(Be||(Be={}));f();function hr(r){let t={},n=r.shape??r.required().shape;for(let[o,a]of Object.entries(n))t[o]=a.nullable().optional();return B.object(t)}export{Fe as Archive,Ue as AsyncQueue,ve as Auth,ye as Binary,Le as Color,Me as Context,ar as DEFAULT_LANG,be as Encode,Se as Env,Ce as EventLoop,_e as Fetch,Re as Fn,je as Grep,ee as Identifier,Pe as Ignore,ze as Keybind,oe as Locale,Ie as Markdown,ce as NamedError,Nt as OAUTH_DUMMY_KEY,ir as SUPPORTED_LANGS,Ne as Schema,Te as SessionTitle,De as Slug,Be as Token,we as TruncateContent,Ve as abortAfter,tr as abortAfterAny,nr as defer,Tt as findLast,At as fn,or as formatDuration,qt as getDirectory,Xt as getFileExtension,Ye as getFilename,Jt as getFilenameTruncated,fr as getProxyConfig,ur as getProxyUrl,Lt as git,Ht as iife,vt as loadEnv,Ut as loadTextFile,Bt as loadTextFileAsync,Gt as parseModelId,lr as proxied,sr as resolveLocaleLang,$e as retry,pr as signal,Yt as truncateMiddle,hr as updateSchema,mr as withTimeout,dr as work};
22
+ `,E.push(U(oe));let Y=R.value;if(typeof Y=="string")if(e(Y)){let be=await s(Y);if(L||(L=Y.split("/").pop()||"file"),be.byteLength>M)throw new Error(`File size ${be.byteLength} exceeds limit ${M} bytes: ${L}`);E.push(be);}else E.push(U(Y));else if(Buffer.isBuffer(Y)){if(Y.byteLength>M)throw new Error(`Buffer size ${Y.byteLength} exceeds limit ${M} bytes: ${R.name}`);E.push(new Uint8Array(Y.buffer,Y.byteOffset,Y.byteLength));}else if(Y instanceof Uint8Array){if(Y.byteLength>M)throw new Error(`File size ${Y.byteLength} exceeds limit ${M} bytes: ${R.name}`);E.push(Y);}}let C=U(`\r
23
+ --${S}--`),H=U(`\r
24
+ --${S}\r
25
+ `),F=[];F.push(U(`--${S}\r
26
+ `));for(let R=0;R<E.length;R++)F.push(E[R]),R%2===1&&R<E.length-1&&(F.push(H),F.push(U(`--${S}\r
27
+ `)));F.push(C);let j=F.reduce((R,M)=>R+M.length,0),B=new Uint8Array(j),O=0;for(let R of F)B.set(R,O),O+=R.length;return y(u,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${S}`,...p?.headers},body:B,timeout:I,...p})}w.postForm=d$1;function P(u,l,p){let S=new AbortController,E=S.signal;return (async()=>{try{let I={Accept:"text/event-stream",...p?.headers||{}},C=await fetch(u,{...p,headers:I,signal:E});if(!C.ok)throw new Error(`SSE connection failed: ${C.status}`);let H=C.body?.getReader();if(!H)throw new Error("SSE stream not available");let F=new TextDecoder("utf-8"),j="";for(;!E.aborted;){let{done:B,value:O}=await H.read();if(B)break;let R=F.decode(O,{stream:!0});j+=R;let M=j.split(`
28
+ `);j=M.pop()??"";for(let L of M)if(L.startsWith("data: ")){let oe=L.slice(6);if(oe==="[DONE]"){l.onComplete?.();return}l.onMessage?.(oe);}}l.onComplete?.();}catch(I){I.name!=="AbortError"&&l.onError?.(I);}})(),()=>{S.abort();}}w.sse=P;})(Ne||(Ne={}));f();var Fe;(o=>{let r=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],t=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function n(){return [r[Math.floor(Math.random()*r.length)],t[Math.floor(Math.random()*t.length)]].join("-")}o.create=n;})(Fe||(Fe={}));f();var Le;(a=>(a.positiveInt=W.union([W.number(),W.string().regex(/^\d+$/,"must be a positive integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(W.number().int().positive()),a.nonNegativeInt=W.union([W.number(),W.string().regex(/^\d+$/,"must be a non-negative integer (digits only)")]).transform(c=>typeof c=="number"?c:Number.parseInt(c,10)).pipe(W.number().int().nonnegative()),a.booleanLike=W.union([W.boolean(),W.string()]).transform((c,m)=>{if(typeof c=="boolean")return c;let i=c.trim().toLowerCase();return ["true","1","yes","on"].includes(i)?true:["false","0","no","off"].includes(i)?false:(m.addIssue({code:"custom",message:`invalid boolean string: ${JSON.stringify(c)}`}),W.NEVER)}).pipe(W.boolean()),a.stringArray=(c=",")=>W.union([W.array(W.string()),W.string()]).transform(m=>Array.isArray(m)?m:m.split(c).map(f=>f.trim()).filter(f=>f.length>0)).pipe(W.array(W.string()))))(Le||(Le={}));f();function Qe(r){let t=new AbortController,n=setTimeout(t.abort.bind(t),r);return {controller:t,signal:t.signal,clearTimeout:()=>globalThis.clearTimeout(n)}}function or(r,...t){let n=Qe(r);return {signal:AbortSignal.any([n.signal,...t]),clearTimeout:n.clearTimeout}}f();var Me;(t=>{async function r(n,o){if(process.platform==="win32"){let a=Se.resolve(n),c=Se.resolve(o),m=`Expand-Archive -Path '${a}' -DestinationPath '${c}' -Force`,i=await G.run("powershell",`-NoProfile -NonInteractive -Command "$global:ProgressPreference = 'SilentlyContinue'; ${m}"`);if(i.code!==0)throw new Error(`PowerShell exited with code ${i.code}: ${i.stderr}`)}else {let a=`unzip -o -q ${n} -d ${o}`,c=await G.run(void 0,a);if(c.code!==0)throw new Error(`unzip exited with code ${c.code}: ${c.stderr}`)}}t.extractZip=r;})(Me||(Me={}));f();var Ce;(o=>{function r(a){return a?/^#[0-9a-fA-F]{6}$/.test(a):false}o.isValidHex=r;function t(a){let c=parseInt(a.slice(1,3),16),m=parseInt(a.slice(3,5),16),i=parseInt(a.slice(5,7),16);return {r:c,g:m,b:i}}o.hexToRgb=t;function n(a){if(!r(a))return;let{r:c,g:m,b:i}=t(a);return `\x1B[38;2;${c};${m};${i}m\x1B[1m`}o.hexToAnsiBold=n;})(Ce||(Ce={}));f();var je;(n=>{class r extends Error{constructor(c$1){super(`No context found for ${c$1}`);c(this,"name",c$1);}}n.NotFound=r;function t(o){let a=new AsyncLocalStorage;return {use(){let c=a.getStore();if(!c)throw new r(o);return c},provide(c,m){return a.run(c,m)}}}n.create=t;})(je||(je={}));f();function ir(r){return {[Symbol.dispose](){r();},[Symbol.asyncDispose](){return Promise.resolve(r())}}}f();var ze;(t=>{async function r(){return new Promise(n=>{let o=()=>{process._getActiveHandles().length===0&&process._getActiveRequests().length===0?n():setImmediate(o);};o();})}t.wait=r;})(ze||(ze={}));f();function ar(r){if(r<=0)return "";if(r<60)return `${r}s`;if(r<3600){let n=Math.floor(r/60),o=r%60;return o>0?`${n}m ${o}s`:`${n}m`}if(r<86400){let n=Math.floor(r/3600),o=Math.floor(r%3600/60);return o>0?`${n}h ${o}m`:`${n}h`}if(r<604800){let n=Math.floor(r/86400);return n===1?"~1 day":`~${n} days`}let t=Math.floor(r/604800);return t===1?"~1 week":`~${t} weeks`}f();var Ue;(X=>{let r=m.create({service:"grep"});async function t(){return n()}X.filepath=t;let n=b(async()=>{let e=await D.which("rg");if(!e)return null;try{if(!(await de.stat(e)).isFile())return null}catch{return null}try{let s=await D.run([e,"--version"],{timeout:5e3});if(s.code!==0||!s.stdout.startsWith("ripgrep "))return r.warn("rg failed self-test, falling back to pure JS",{filepath:e,code:s.code,stderr:s.stderr.slice(0,200)}),null}catch(s){return r.warn("rg spawn failed during self-test, falling back to pure JS",{filepath:e,error:s.message.slice(0,200)}),null}return e});async function o(){return await t()!==null}X.isUsingRipgrep=o;async function*a$2(e){e.signal?.throwIfAborted();let s=await t();s?yield*c(s,e):(r.debug("ripgrep not available, using pure JS fallback for files()",{cwd:e.cwd}),yield*m$1(e));}X.files=a$2;async function*c(e,s){s.signal?.throwIfAborted();let d$1=["--files","--glob=!.git/*"];s.follow&&d$1.push("--follow");let P=s.hidden!==false;if(s.maxDepth!==void 0&&d$1.push(`--max-depth=${s.maxDepth}`),s.glob)for(let l of s.glob)d$1.push(`--glob=${l}`);try{if(!(await de.stat(s.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${s.cwd}'`),{code:"ENOTDIR",errno:-20,path:s.cwd})}catch(l){throw l.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${s.cwd}'`),{code:"ENOENT",errno:-2,path:s.cwd}):l}let w=await D.run([e,...d$1],{cwd:s.cwd});if(w.code!==0&&w.code!==1)return;let u=w.stdout.split(/\r?\n/);for(let l of u){s.signal?.throwIfAborted();let p=l.trim();if(!p)continue;let S=d.toUnixPath(p);!P&&S.split("/").some(E=>E.startsWith("."))||(yield S);}}async function*m$1(e){e.signal?.throwIfAborted();try{if(!(await de.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(E){throw E.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):E}let s=[],d=[];if(e.glob)for(let E of e.glob)E.startsWith("!")?d.push(E.slice(1)):s.push(E);let P=s.length>0?b$1(s):["**/*"],w=e.hidden!==false,u=new Set,l=b$2.DEFAULT_MAX_DEPTH,p;e.maxDepth===void 0?p=l:e.maxDepth<0?p=1:p=e.maxDepth+1;let S=Math.min(Math.max(p,1),l);for(let E of P){e.signal?.throwIfAborted();let N=await b$2.scan(E,{cwd:e.cwd,absolute:false,include:"file",dot:w,symlink:e.follow??false,maxDepth:S,ignore:d});for(let I of N)!w&&I.split("/").some(C=>C.startsWith("."))||u.add(I);}for(let E of Array.from(u).sort())e.signal?.throwIfAborted(),yield E;e.signal?.throwIfAborted();}async function i(e){r.debug("tree",{cwd:e.cwd}),e.signal?.throwIfAborted();let s=e.hidden!==false,d=e.glob??[],P=d.filter(O=>!O.startsWith("!")),w=d.filter(O=>O.startsWith("!")).map(O=>O.slice(1)),u=P.length>0?P:["**/*"],l=new Set,p=[];for(let O of u){e.signal?.throwIfAborted();let R=await b$2.scan(O,{cwd:e.cwd,absolute:false,include:"file",dot:s,symlink:false,maxDepth:b$2.DEFAULT_MAX_DEPTH});for(let M of R)l.has(M)||(l.add(M),p.push(M));}let S=p.filter(O=>{for(let R of w)if(b$2.match(R,O))return false;return true});function E(O,R){let M=O.children.get(R);if(M)return M;let L={name:R,children:new Map};return O.children.set(R,L),L}let N={children:new Map};for(let O of S){let R=O.split("/");if(R.length<2)continue;let M=N;for(let L of R.slice(0,-1))M=E(M,L);}let I=Array.from(N.children.values()).sort((O,R)=>O.name.localeCompare(R.name)),C=e.limit??Number.POSITIVE_INFINITY,H=[],F=I.map(O=>({node:O,path:O.name})),j=0,B=0;for(;F.length>0;){let O=F.shift();if(!O)break;if(j++,B<C){H.push(O.path),B++;for(let R of Array.from(O.node.children.values()).sort((M,L)=>M.name.localeCompare(L.name))){if(B>=C)break;F.push({node:R,path:`${O.path}/${R.name}`});}}}return j>B&&H.push(`[${B}/${j} shown, ${j-B} truncated]`),H.join(`
29
+ `)}X.tree=i;async function f(e){let s=await t();return s?x(s,e):(r.debug("ripgrep not available, using pure JS fallback for search()",{cwd:e.cwd,pattern:e.pattern}),T(e))}X.search=f;async function x(e,s){let d$1=["--json","--glob=!.git/*"];if(s.follow&&d$1.push("--follow"),s.glob)for(let p of s.glob)d$1.push(`--glob=${p}`);s.limit&&d$1.push(`--max-count=${s.limit}`),d$1.push("--"),d$1.push(s.pattern);let P=await D.run([e,...d$1],{cwd:s.cwd});if(P.code!==0)return [];let w=s.hidden!==false,u=P.stdout.split(/\r?\n/).filter(Boolean),l=[];for(let p of u)try{let S=JSON.parse(p);if(S?.type!=="match")continue;let E=S.data;if(!E?.path?.text||!E?.lines?.text)continue;let N=d.toUnixPath(E.path.text);if(!w&&N.split("/").some(I=>I.startsWith(".")))continue;if(l.push({path:N,lines:E.lines.text,line_number:E.line_number,absolute_offset:E.absolute_offset??0}),s.limit&&l.length>=s.limit)break}catch{}return l}async function T(e){let s;try{s=new RegExp(e.pattern);}catch{return []}try{if(!(await de.stat(e.cwd)).isDirectory())throw Object.assign(new Error(`Not a directory: '${e.cwd}'`),{code:"ENOTDIR",errno:-20,path:e.cwd})}catch(I){throw I.code==="ENOENT"?Object.assign(new Error(`No such file or directory: '${e.cwd}'`),{code:"ENOENT",errno:-2,path:e.cwd}):I}let d$1=[],P=[];if(e.glob)for(let I of e.glob)I.startsWith("!")?P.push(I):d$1.push(I);let u=b$1(P).map(I=>I.startsWith("!")?I.slice(1):I),l=e.hidden!==false,p=[],S=d$1.length>0?b$1(d$1):["**/*"],E=new Set,N=[];for(let I of S){e.signal?.throwIfAborted();let C=await b$2.scan(I,{cwd:e.cwd,absolute:false,include:"file",dot:l,symlink:e.follow??false,maxDepth:void 0,ignore:u});for(let H of C)E.has(H)||(E.add(H),N.push(H));}for(let I of N){if(e.signal?.throwIfAborted(),e.limit&&p.length>=e.limit)break;let C=d.join(e.cwd,I),H;try{H=await de.readFile(C,"utf-8");}catch{continue}let F=H.split(/\r?\n/),j=0;for(let B=0;B<F.length;B++){let O=F[B]??"";if(s.test(O)&&(p.push({path:I,lines:O,line_number:B+1,absolute_offset:j}),e.limit&&p.length>=e.limit))break;j+=Buffer.byteLength(O,"utf-8")+1;}}return p}function v(e,s){return a$1.match(e,s)}X.match=v;let y=a(async()=>await t());async function h(){return await y()}X.filepathCached=h;function b$1(e){let s=[];for(let d of e){if(d.startsWith("!")){let w=d.slice(1);s.push(`!${A(w)}`);continue}let P=k(d);for(let w of P)s.push(D$1(w));}return s}function A(e){return !e||e.startsWith("**")||e.includes("/")?e:/[*?[\]]/.test(e)?`**/${e}`:`**/${e}/**`}function k(e){let s=z(e);if(s===-1)return [e];let d=G(e,s);if(d===-1)return [e];let P=e.slice(s+1,d),w=q(P);if(!w||w.length<=1)return [e];let u=e.slice(0,s),l=e.slice(d+1);return w.map(p=>u+p+l)}function D$1(e){return !e||e.includes("/")||e.startsWith("**")?e:`**/${e}`}function z(e){for(let d=0;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="{"){return d;}}return -1}function G(e,s){for(let d=s+1;d<e.length;d++){let P=e[d];if(P==="\\"){d++;continue}if(P==="}")return d}return -1}function q(e){return e?e.split(","):null}X._ready=a(async()=>{let e=await t();return r.debug("Grep initialized",{ripgrep:e?"available":"fallback (pure JS)"}),e});})(Ue||(Ue={}));f();var He;(m=>{function r(i,f){if(i===f)return true;if(typeof i!="object"||typeof f!="object"||i===null||f===null)return false;let x=Object.keys(i),T=Object.keys(f);if(x.length!==T.length)return false;for(let v of x)if(!T.includes(v)||!r(i[v],f[v]))return false;return true}function t(i){return {...i,super:i.super??false}}function n(i,f){return i?r(t(i),t(f)):false}m.match=n;function o(i,f=false){return {name:i.name,ctrl:i.ctrl,meta:i.meta,shift:i.shift,super:i.super??false,leader:f}}m.fromParsedKey=o;function a(i){if(!i)return "";let f=[];i.ctrl&&f.push("ctrl"),i.meta&&f.push("alt"),i.super&&f.push("super"),i.shift&&f.push("shift"),i.name&&(i.name==="delete"?f.push("del"):f.push(i.name));let x=f.join("+");return i.leader&&(x=x?`<leader> ${x}`:"<leader>"),x}m.keyToString=a;function c(i){return i==="none"?[]:i.split(",").map(f=>{let T=f.replace(/<leader>/g,"leader+").toLowerCase().split("+"),v={ctrl:false,meta:false,shift:false,super:false,leader:false,name:""};for(let y of T)switch(y){case "ctrl":v.ctrl=true;break;case "alt":case "meta":case "option":v.meta=true;break;case "super":v.super=true;break;case "shift":v.shift=true;break;case "leader":v.leader=true;break;case "esc":v.name="escape";break;default:v.name=y;break}return v})}m.parse=c;})(He||(He={}));f();var ie;(y=>{y.SUPPORTED_LANGS=["zh-CN","en-US"],y.DEFAULT_LANG="zh-CN";function n(h,b="EASBOT_LANG"){let A=[h,process.env[b]?.trim()];for(let k of A)if(k&&y.SUPPORTED_LANGS.includes(k))return k;return y.DEFAULT_LANG}y.resolveLocaleLang=n;function o(h){return h.replace(/\b\w/g,b=>b.toUpperCase())}y.titlecase=o;function a(h){return new Date(h).toLocaleTimeString(void 0,{timeStyle:"short"})}y.time=a;function c(h){let b=new Date(h),A=a(h),k=b.toLocaleDateString();return `${A} \xB7 ${k}`}y.datetime=c;function m(h){let b=new Date(h),A=new Date;return b.getFullYear()===A.getFullYear()&&b.getMonth()===A.getMonth()&&b.getDate()===A.getDate()?a(h):c(h)}y.todayTimeOrDateTime=m;function i(h){return h>=1e6?(h/1e6).toFixed(1)+"M":h>=1e3?(h/1e3).toFixed(1)+"K":h.toString()}y.number=i;function f(h){if(h<1e3)return `${h}ms`;if(h<6e4)return `${(h/1e3).toFixed(1)}s`;if(h<36e5){let k=Math.floor(h/6e4),D=Math.floor(h%6e4/1e3);return `${k}m ${D}s`}if(h<864e5){let k=Math.floor(h/36e5),D=Math.floor(h%36e5/6e4);return `${k}h ${D}m`}let b=Math.floor(h/36e5);return `${Math.floor(h%36e5/864e5)}d ${b}h`}y.duration=f;function x(h,b){return h.length<=b?h:h.slice(0,b-1)+"\u2026"}y.truncate=x;function T(h,b=35){if(h.length<=b)return h;let A="\u2026",k=Math.ceil((b-A.length)/2),D=Math.floor((b-A.length)/2);return h.slice(0,k)+A+h.slice(-D)}y.truncateMiddle=T;function v(h,b,A){return (h===1?b:A).replace("{}",h.toString())}y.pluralize=v;})(ie||(ie={}));var cr=ie.resolveLocaleLang,lr=ie.SUPPORTED_LANGS,ur=ie.DEFAULT_LANG;f();var fr=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"];function dr(){return fr.some(r=>process.env[r])}function pr(){return process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy}function mr(){let r=process.env.HTTP_PROXY||process.env.http_proxy,t=process.env.HTTPS_PROXY||process.env.https_proxy;return {http:r,https:t,enabled:!!(r||t)}}f();var Be=class{constructor(){c(this,"queue",[]);c(this,"resolvers",[]);}push(t){let n=this.resolvers.shift();n?n(t):this.queue.push(t);}async next(){return this.queue.length>0?this.queue.shift():new Promise(t=>this.resolvers.push(t))}async*[Symbol.asyncIterator](){for(;;)yield await this.next();}};async function gr(r,t,n){let o=[...t];await Promise.all(Array.from({length:r},async()=>{for(;;){let a=o.pop();if(a===void 0)return;await n(a);}}));}f();function hr(){let r,t=new Promise(n=>r=n);return {trigger(){return r()},wait(){return t}}}f();function xr(r,t){let n;return Promise.race([r.then(o=>(clearTimeout(n),o)),new Promise((o,a)=>{n=setTimeout(()=>{a(new Error(`Operation timed out after ${t}ms`));},t);})])}f();var Ge;(m=>{let n=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function o(i){if(!i)return 0;let f=String(i),x=(f.match(n)||[]).length,T=f.length-x,v=Math.round(x/1.5),y=Math.round(T/4);return Math.max(0,v+y)}m.estimate=o;function a(i){if(i==null)return 0;try{let f=typeof i=="string"?i:JSON.stringify(i);return o(f)}catch{return 0}}m.estimateObject=a;function c(i){if(i.total!==void 0&&i.total>0)return i.total;let f=i.input??0,x=i.output??0,T=i.cache?.read??0,v=i.cache?.write??0;return f+x+T+v}m.total=c;})(Ge||(Ge={}));f();function br(r){let t={},n=r.shape??r.required().shape;for(let[o,a]of Object.entries(n))t[o]=a.nullable().optional();return W.object(t)}export{Me as Archive,Be as AsyncQueue,_e as Auth,we as Binary,Ce as Color,je as Context,ur as DEFAULT_LANG,Te as Encode,ke as Env,ze as EventLoop,Ne as Fetch,ve as Fn,Ue as Grep,te as Identifier,Ee as Ignore,He as Keybind,ie as Locale,$e as Markdown,ue as NamedError,Lt as OAUTH_DUMMY_KEY,lr as SUPPORTED_LANGS,Le as Schema,Re as SessionTitle,Fe as Slug,Ge as Token,Pe as TruncateContent,Qe as abortAfter,or as abortAfterAny,ir as defer,Rt as findLast,St as fn,ar as formatDuration,Yt as getDirectory,Jt as getFileExtension,Ve as getFilename,Kt as getFilenameTruncated,mr as getProxyConfig,pr as getProxyUrl,Ct as git,Wt as iife,_t as loadEnv,Bt as loadTextFile,Gt as loadTextFileAsync,qt as parseModelId,dr as proxied,cr as resolveLocaleLang,De as retry,hr as signal,Vt as truncateMiddle,br as updateSchema,xr as withTimeout,gr as work};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easbot/utils",
3
- "version": "0.3.19",
3
+ "version": "0.3.21",
4
4
  "description": "Shared utilities library for EASBOT ecosystem",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -55,7 +55,7 @@
55
55
  "ws": "^8.20.0",
56
56
  "xdg-basedir": "^5.1.0",
57
57
  "zod": "^4.4.3",
58
- "@easbot/types": "0.3.19"
58
+ "@easbot/types": "0.3.21"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/markdown-it": "^14.1.2",