@ev-ai/agent-hook 1.3.6 → 1.3.7

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/cli.mjs CHANGED
@@ -14,7 +14,7 @@ var Ip=Object.create;var Si=Object.defineProperty;var Tp=Object.getOwnPropertyDe
14
14
  `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var nf=V((nT,tf)=>{"use strict";var By=Or(),{MAX_LENGTH:Zl,CHAR_BACKSLASH:Cs,CHAR_BACKTICK:Ky,CHAR_COMMA:Gy,CHAR_DOT:Wy,CHAR_LEFT_PARENTHESES:zy,CHAR_RIGHT_PARENTHESES:Vy,CHAR_LEFT_CURLY_BRACE:Jy,CHAR_RIGHT_CURLY_BRACE:Yy,CHAR_LEFT_SQUARE_BRACKET:Ql,CHAR_RIGHT_SQUARE_BRACKET:ef,CHAR_DOUBLE_QUOTE:Xy,CHAR_SINGLE_QUOTE:qy,CHAR_NO_BREAK_SPACE:Zy,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Qy}=ql(),eR=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Zl,n.maxLength):Zl;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,l=e.length,u=0,d=0,f,p=()=>e[u++],g=S=>{if(S.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&S.type==="text"){a.value+=S.value;return}return i.nodes.push(S),S.parent=i,S.prev=a,a=S,S};for(g({type:"bos"});u<l;)if(i=s[s.length-1],f=p(),!(f===Qy||f===Zy)){if(f===Cs){g({type:"text",value:(t.keepEscaping?f:"")+p()});continue}if(f===ef){g({type:"text",value:"\\"+f});continue}if(f===Ql){c++;let S;for(;u<l&&(S=p());){if(f+=S,S===Ql){c++;continue}if(S===Cs){f+=p();continue}if(S===ef&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===zy){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===Vy){if(i.type!=="paren"){g({type:"text",value:f});continue}i=s.pop(),g({type:"text",value:f}),i=s[s.length-1];continue}if(f===Xy||f===qy||f===Ky){let S=f,A;for(t.keepQuotes!==!0&&(f="");u<l&&(A=p());){if(A===Cs){f+=A+p();continue}if(A===S){t.keepQuotes===!0&&(f+=A);break}f+=A}g({type:"text",value:f});continue}if(f===Jy){d++;let A={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};i=g(A),s.push(i),g({type:"open",value:f});continue}if(f===Yy){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),d--,i=s[s.length-1];continue}if(f===Gy&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:By(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===Wy&&d>0&&i.commas===0){let S=i.nodes;if(d===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let A=S[S.length-1];A.value+=a.value+f,a=A,i.ranges--;continue}g({type:"dot",value:f});continue}g({type:"text",value:f})}do if(i=s.pop(),i.type!=="root"){i.nodes.forEach(x=>{x.nodes||(x.type==="open"&&(x.isOpen=!0),x.type==="close"&&(x.isClose=!0),x.nodes||(x.type="text"),x.invalid=!0)});let S=s[s.length-1],A=S.nodes.indexOf(i);S.nodes.splice(A,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};tf.exports=eR});var sf=V((rT,of)=>{"use strict";var rf=Or(),tR=zl(),nR=Yl(),rR=nf(),pe=(e,t={})=>{let n=[];if(Array.isArray(e))for(let r of e){let o=pe.create(r,t);Array.isArray(o)?n.push(...o):n.push(o)}else n=[].concat(pe.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(n=[...new Set(n)]),n};pe.parse=(e,t={})=>rR(e,t);pe.stringify=(e,t={})=>rf(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),tR(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=nR(e,t);return t.noempty===!0&&(n=n.filter(Boolean)),t.nodupes===!0&&(n=[...new Set(n)]),n};pe.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?pe.compile(e,t):pe.expand(e,t);of.exports=pe});var un=V((oT,ff)=>{"use strict";var oR=ze("path"),we="\\\\/",af=`[^${we}]`,sR=0,Ge="\\.",iR="\\+",aR="\\?",Pr="\\/",cR="(?=.)",cf="[^/]",As=`(?:${Pr}|$)`,uf=`(?:^|${Pr})`,xs=`${Ge}{1,2}${As}`,uR=`(?!${Ge})`,lR=`(?!${uf}${xs})`,fR=`(?!${Ge}{0,1}${As})`,dR=`(?!${xs})`,pR=`[^.${Pr}]`,mR=`${cf}*?`,lf={DOT_LITERAL:Ge,PLUS_LITERAL:iR,QMARK_LITERAL:aR,SLASH_LITERAL:Pr,ONE_CHAR:cR,QMARK:cf,END_ANCHOR:As,DOTS_SLASH:xs,NO_DOT:uR,NO_DOTS:lR,NO_DOT_SLASH:fR,NO_DOTS_SLASH:dR,QMARK_NO_DOT:pR,STAR:mR,START_ANCHOR:uf},gR={...lf,SLASH_LITERAL:`[${we}]`,QMARK:af,STAR:`${af}*?`,DOTS_SLASH:`${Ge}{1,2}(?:[${we}]|$)`,NO_DOT:`(?!${Ge})`,NO_DOTS:`(?!(?:^|[${we}])${Ge}{1,2}(?:[${we}]|$))`,NO_DOT_SLASH:`(?!${Ge}{0,1}(?:[${we}]|$))`,NO_DOTS_SLASH:`(?!${Ge}{1,2}(?:[${we}]|$))`,QMARK_NO_DOT:`[^.${we}]`,START_ANCHOR:`(?:^|[${we}])`,END_ANCHOR:`(?:[${we}]|$)`},_R={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};ff.exports={DEFAULT_MAX_EXTGLOB_RECURSION:sR,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:_R,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:oR.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?gR:lf}}});var ln=V(ce=>{"use strict";var hR=ze("path"),SR=process.platform==="win32",{REGEX_BACKSLASH:ER,REGEX_REMOVE_BACKSLASH:yR,REGEX_SPECIAL_CHARS:RR,REGEX_SPECIAL_CHARS_GLOBAL:CR}=un();ce.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ce.hasRegexChars=e=>RR.test(e);ce.isRegexChar=e=>e.length===1&&ce.hasRegexChars(e);ce.escapeRegex=e=>e.replace(CR,"\\$1");ce.toPosixSlashes=e=>e.replace(ER,"/");ce.removeBackslashes=e=>e.replace(yR,t=>t==="\\"?"":t);ce.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ce.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:SR===!0||hR.sep==="\\";ce.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ce.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ce.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ce.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Ef=V((iT,Sf)=>{"use strict";var df=ln(),{CHAR_ASTERISK:ks,CHAR_AT:AR,CHAR_BACKWARD_SLASH:fn,CHAR_COMMA:xR,CHAR_DOT:bs,CHAR_EXCLAMATION_MARK:Os,CHAR_FORWARD_SLASH:hf,CHAR_LEFT_CURLY_BRACE:Is,CHAR_LEFT_PARENTHESES:Ts,CHAR_LEFT_SQUARE_BRACKET:kR,CHAR_PLUS:bR,CHAR_QUESTION_MARK:pf,CHAR_RIGHT_CURLY_BRACE:OR,CHAR_RIGHT_PARENTHESES:mf,CHAR_RIGHT_SQUARE_BRACKET:IR}=un(),gf=e=>e===hf||e===fn,_f=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},TR=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,l=-1,u=0,d=0,f=!1,p=!1,g=!1,S=!1,A=!1,x=!1,I=!1,O=!1,v=!1,T=!1,K=0,D,b,w={value:"",depth:0,isGlob:!1},H=()=>l>=r,m=()=>c.charCodeAt(l+1),k=()=>(D=b,c.charCodeAt(++l));for(;l<r;){b=k();let ie;if(b===fn){I=w.backslashes=!0,b=k(),b===Is&&(x=!0);continue}if(x===!0||b===Is){for(K++;H()!==!0&&(b=k());){if(b===fn){I=w.backslashes=!0,k();continue}if(b===Is){K++;continue}if(x!==!0&&b===bs&&(b=k())===bs){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x!==!0&&b===xR){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===OR&&(K--,K===0)){x=!1,f=w.isBrace=!0,T=!0;break}}if(o===!0)continue;break}if(b===hf){if(s.push(l),i.push(w),w={value:"",depth:0,isGlob:!1},T===!0)continue;if(D===bs&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(b===bR||b===AR||b===ks||b===pf||b===Os)===!0&&m()===Ts){if(g=w.isGlob=!0,S=w.isExtglob=!0,T=!0,b===Os&&l===u&&(v=!0),o===!0){for(;H()!==!0&&(b=k());){if(b===fn){I=w.backslashes=!0,b=k();continue}if(b===mf){g=w.isGlob=!0,T=!0;break}}continue}break}if(b===ks){if(D===ks&&(A=w.isGlobstar=!0),g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===pf){if(g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===kR){for(;H()!==!0&&(ie=k());){if(ie===fn){I=w.backslashes=!0,k();continue}if(ie===IR){p=w.isBracket=!0,g=w.isGlob=!0,T=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Os&&l===u){O=w.negated=!0,u++;continue}if(n.noparen!==!0&&b===Ts){if(g=w.isGlob=!0,o===!0){for(;H()!==!0&&(b=k());){if(b===Ts){I=w.backslashes=!0,b=k();continue}if(b===mf){T=!0;break}}continue}break}if(g===!0){if(T=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,le="",_="";u>0&&(le=c.slice(0,u),c=c.slice(u),d-=u),U&&g===!0&&d>0?(U=c.slice(0,d),_=c.slice(d)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&gf(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=df.removeBackslashes(_)),U&&I===!0&&(U=df.removeBackslashes(U)));let h={prefix:le,input:e,start:u,base:U,glob:_,isBrace:f,isBracket:p,isGlob:g,isExtglob:S,isGlobstar:A,negated:O,negatedExtglob:v};if(n.tokens===!0&&(h.maxDepth=0,gf(b)||i.push(w),h.tokens=i),n.parts===!0||n.tokens===!0){let ie;for(let F=0;F<s.length;F++){let xe=ie?ie+1:u,ke=s[F],fe=e.slice(xe,ke);n.tokens&&(F===0&&u!==0?(i[F].isPrefix=!0,i[F].value=le):i[F].value=fe,_f(i[F]),h.maxDepth+=i[F].depth),(F!==0||fe!=="")&&a.push(fe),ie=ke}if(ie&&ie+1<e.length){let F=e.slice(ie+1);a.push(F),n.tokens&&(i[i.length-1].value=F,_f(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};Sf.exports=TR});var xf=V((aT,Af)=>{"use strict";var dn=un(),se=ln(),{MAX_LENGTH:wr,POSIX_REGEX_SOURCE:PR,REGEX_NON_SPECIAL_CHARS:wR,REGEX_SPECIAL_CHARS_BACKREF:NR,REPLACEMENTS:yf}=dn,vR=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let n=`[${e.join("-")}]`;try{new RegExp(n)}catch{return e.map(o=>se.escapeRegex(o)).join("..")}return n},Nt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,Rf=e=>{let t=[],n=0,r=0,o=0,s="",i=!1;for(let a of e){if(i===!0){s+=a,i=!1;continue}if(a==="\\"){s+=a,i=!0;continue}if(a==='"'){o=o===1?0:1,s+=a;continue}if(o===0){if(a==="[")n++;else if(a==="]"&&n>0)n--;else if(n===0){if(a==="(")r++;else if(a===")"&&r>0)r--;else if(a==="|"&&r===0){t.push(s),s="";continue}}}s+=a}return t.push(s),t},MR=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n==="\\"){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},Cf=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(MR(t))return t.replace(/\\(.)/g,"$1")},LR=e=>{let t=e.map(Cf).filter(Boolean);for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){let o=t[n],s=t[r],i=o[0];if(!(!i||o!==i.repeat(o.length)||s!==i.repeat(s.length))&&(o===s||o.startsWith(s)||s.startsWith(o)))return!0}return!1},Ps=(e,t=!0)=>{if(e[0]!=="+"&&e[0]!=="*"||e[1]!=="(")return;let n=0,r=0,o=0,s=!1;for(let i=1;i<e.length;i++){let a=e[i];if(s===!0){s=!1;continue}if(a==="\\"){s=!0;continue}if(a==='"'){o=o===1?0:1;continue}if(o!==1){if(a==="["){n++;continue}if(a==="]"&&n>0){n--;continue}if(!(n>0)){if(a==="("){r++;continue}if(a===")"&&(r--,r===0))return t===!0&&i!==e.length-1?void 0:{type:e[0],body:e.slice(2,i),end:i}}}}},HR=e=>{let t=0,n=[];for(;t<e.length;){let o=Ps(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Rf(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Cf(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?se.escapeRegex(n[0]):`[${n.map(o=>se.escapeRegex(o)).join("")}]`}*`},UR=e=>{let t=0,n=e.trim(),r=Ps(n);for(;r;)t++,n=r.body.trim(),r=Ps(n);return t},DR=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:dn.DEFAULT_MAX_EXTGLOB_RECURSION,r=Rf(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||LR(r)))return{risky:!0};for(let o of r){let s=HR(o);if(s)return{risky:!0,safeOutput:s};if(UR(o)>n)return{risky:!0}}return{risky:!1}},ws=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=yf[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(wr,n.maxLength):wr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},i=[s],a=n.capture?"":"?:",c=se.isWindows(t),l=dn.globChars(c),u=dn.extglobChars(l),{DOT_LITERAL:d,PLUS_LITERAL:f,SLASH_LITERAL:p,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:A,NO_DOT_SLASH:x,NO_DOTS_SLASH:I,QMARK:O,QMARK_NO_DOT:v,STAR:T,START_ANCHOR:K}=l,D=C=>`(${a}(?:(?!${K}${C.dot?S:d}).)*?)`,b=n.dot?"":A,w=n.dot?O:v,H=n.bash===!0?D(n):T;n.capture&&(H=`(${H})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let m={input:e,index:-1,start:0,dot:n.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=se.removePrefix(e,m),o=e.length;let k=[],U=[],le=[],_=s,h,ie=()=>m.index===o-1,F=m.peek=(C=1)=>e[m.index+C],xe=m.advance=()=>e[++m.index]||"",ke=()=>e.slice(m.index+1),fe=(C="",Y=0)=>{m.consumed+=C,m.index+=Y},xn=C=>{m.output+=C.output!=null?C.output:C.value,fe(C.value)},bp=()=>{let C=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)xe(),m.start++,C++;return C%2===0?!1:(m.negated=!0,m.start++,!0)},kn=C=>{m[C]++,le.push(C)},We=C=>{m[C]--,le.pop()},N=C=>{if(_.type==="globstar"){let Y=m.braces>0&&(C.type==="comma"||C.type==="brace"),R=C.extglob===!0||k.length&&(C.type==="pipe"||C.type==="paren");C.type!=="slash"&&C.type!=="paren"&&!Y&&!R&&(m.output=m.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,m.output+=_.output)}if(k.length&&C.type!=="paren"&&(k[k.length-1].inner+=C.value),(C.value||C.output)&&xn(C),_&&_.type==="text"&&C.type==="text"){_.value+=C.value,_.output=(_.output||"")+C.value;return}C.prev=_,i.push(C),_=C},bn=(C,Y)=>{let R={...u[Y],conditions:1,inner:""};R.prev=_,R.parens=m.parens,R.output=m.output,R.startIndex=m.index,R.tokensIndex=i.length;let P=(n.capture?"(":"")+R.open;kn("parens"),N({type:C,value:Y,output:m.output?"":g}),N({type:"paren",extglob:!0,value:xe(),output:P}),k.push(R)},Op=C=>{let Y=e.slice(C.startIndex,m.index+1),R=e.slice(C.startIndex+2,m.index),P=DR(R,n);if((C.type==="plus"||C.type==="star")&&P.risky){let G=P.safeOutput?(C.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,be=i[C.tokensIndex];be.type="text",be.value=Y,be.output=G||se.escapeRegex(Y);for(let Oe=C.tokensIndex+1;Oe<i.length;Oe++)i[Oe].value="",i[Oe].output="",delete i[Oe].suffix;m.output=C.output+be.output,m.backtrack=!0,N({type:"paren",extglob:!0,value:h,output:""}),We("parens");return}let z=C.close+(n.capture?")":""),oe;if(C.type==="negate"){let G=H;if(C.inner&&C.inner.length>1&&C.inner.includes("/")&&(G=D(n)),(G!==H||ie()||/^\)+$/.test(ke()))&&(z=C.close=`)$))${G}`),C.inner.includes("*")&&(oe=ke())&&/^\.[^\\/.]+$/.test(oe)){let be=ws(oe,{...t,fastpaths:!1}).output;z=C.close=`)${be})${G})`}C.prev.type==="bos"&&(m.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:h,output:z}),We("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let C=!1,Y=e.replace(NR,(R,P,z,oe,G,be)=>oe==="\\"?(C=!0,R):oe==="?"?P?P+oe+(G?O.repeat(G.length):""):be===0?w+(G?O.repeat(G.length):""):O.repeat(z.length):oe==="."?d.repeat(z.length):oe==="*"?P?P+oe+(G?H:""):H:P?R:`\\${R}`);return C===!0&&(n.unescape===!0?Y=Y.replace(/\\/g,""):Y=Y.replace(/\\+/g,R=>R.length%2===0?"\\\\":R?"\\":"")),Y===e&&n.contains===!0?(m.output=e,m):(m.output=se.wrapOutput(Y,m,t),m)}for(;!ie();){if(h=xe(),h==="\0")continue;if(h==="\\"){let R=F();if(R==="/"&&n.bash!==!0||R==="."||R===";")continue;if(!R){h+="\\",N({type:"text",value:h});continue}let P=/^\\+/.exec(ke()),z=0;if(P&&P[0].length>2&&(z=P[0].length,m.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=xe():h+=xe(),m.brackets===0){N({type:"text",value:h});continue}}if(m.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let R=_.value.slice(1);if(R.includes("[")&&(_.posix=!0,R.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),oe=_.value.slice(P+2),G=PR[oe];if(G){_.value=z+G,m.backtrack=!0,xe(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,xn({value:h});continue}if(m.quotes===1&&h!=='"'){h=se.escapeRegex(h),_.value+=h,xn({value:h});continue}if(h==='"'){m.quotes=m.quotes===1?0:1,n.keepQuotes===!0&&N({type:"text",value:h});continue}if(h==="("){kn("parens"),N({type:"paren",value:h});continue}if(h===")"){if(m.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Nt("opening","("));let R=k[k.length-1];if(R&&m.parens===R.parens+1){Op(k.pop());continue}N({type:"paren",value:h,output:m.parens?")":"\\)"}),We("parens");continue}if(h==="["){if(n.nobracket===!0||!ke().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Nt("closing","]"));h=`\\${h}`}else kn("brackets");N({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){N({type:"text",value:h,output:`\\${h}`});continue}if(m.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Nt("opening","["));N({type:"text",value:h,output:`\\${h}`});continue}We("brackets");let R=_.value.slice(1);if(_.posix!==!0&&R[0]==="^"&&!R.includes("/")&&(h=`/${h}`),_.value+=h,xn({value:h}),n.literalBrackets===!1||se.hasRegexChars(R))continue;let P=se.escapeRegex(_.value);if(m.output=m.output.slice(0,-_.value.length),n.literalBrackets===!0){m.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,m.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){kn("braces");let R={type:"brace",value:h,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};U.push(R),N(R);continue}if(h==="}"){let R=U[U.length-1];if(n.nobrace===!0||!R){N({type:"text",value:h,output:h});continue}let P=")";if(R.dots===!0){let z=i.slice(),oe=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&oe.unshift(z[G].value);P=vR(oe,n),m.backtrack=!0}if(R.comma!==!0&&R.dots!==!0){let z=m.output.slice(0,R.outputIndex),oe=m.tokens.slice(R.tokensIndex);R.value=R.output="\\{",h=P="\\}",m.output=z;for(let G of oe)m.output+=G.output||G.value}N({type:"brace",value:h,output:P}),We("braces"),U.pop();continue}if(h==="|"){k.length>0&&k[k.length-1].conditions++,N({type:"text",value:h});continue}if(h===","){let R=h,P=U[U.length-1];P&&le[le.length-1]==="braces"&&(P.comma=!0,R="|"),N({type:"comma",value:h,output:R});continue}if(h==="/"){if(_.type==="dot"&&m.index===m.start+1){m.start=m.index+1,m.consumed="",m.output="",i.pop(),_=s;continue}N({type:"slash",value:h,output:p});continue}if(h==="."){if(m.braces>0&&_.type==="dot"){_.value==="."&&(_.output=d);let R=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,R.dots=!0;continue}if(m.braces+m.parens===0&&_.type!=="bos"&&_.type!=="slash"){N({type:"text",value:h,output:d});continue}N({type:"dot",value:h,output:d});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){bn("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!se.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(ke()))&&(z=`\\${h}`),N({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){N({type:"qmark",value:h,output:v});continue}N({type:"qmark",value:h,output:O});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){bn("negate",h);continue}if(n.nonegate!==!0&&m.index===0){bp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){bn("plus",h);continue}if(_&&_.value==="("||n.regex===!1){N({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||m.parens>0){N({type:"plus",value:h});continue}N({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){N({type:"at",extglob:!0,value:h,output:""});continue}N({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let R=wR.exec(ke());R&&(h+=R[0],m.index+=R[0].length),N({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,m.backtrack=!0,m.globstar=!0,fe(h);continue}let C=ke();if(n.noextglob!==!0&&/^\([^?]/.test(C)){bn("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){fe(h);continue}let R=_.prev,P=R.prev,z=R.type==="slash"||R.type==="bos",oe=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||C[0]&&C[0]!=="/")){N({type:"star",value:h,output:""});continue}let G=m.braces>0&&(R.type==="comma"||R.type==="brace"),be=k.length&&(R.type==="pipe"||R.type==="paren");if(!z&&R.type!=="paren"&&!G&&!be){N({type:"star",value:h,output:""});continue}for(;C.slice(0,3)==="/**";){let Oe=e[m.index+4];if(Oe&&Oe!=="/")break;C=C.slice(3),fe("/**",3)}if(R.type==="bos"&&ie()){_.type="globstar",_.value+=h,_.output=D(n),m.output=_.output,m.globstar=!0,fe(h);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&!oe&&ie()){m.output=m.output.slice(0,-(R.output+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,m.globstar=!0,m.output+=R.output+_.output,fe(h);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&C[0]==="/"){let Oe=C[1]!==void 0?"|$":"";m.output=m.output.slice(0,-(R.output+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=`${D(n)}${p}|${p}${Oe})`,_.value+=h,m.output+=R.output+_.output,m.globstar=!0,fe(h+xe()),N({type:"slash",value:"/",output:""});continue}if(R.type==="bos"&&C[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${p}|${D(n)}${p})`,m.output=_.output,m.globstar=!0,fe(h+xe()),N({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,m.output+=_.output,m.globstar=!0,fe(h);continue}let Y={type:"star",value:h,output:H};if(n.bash===!0){Y.output=".*?",(_.type==="bos"||_.type==="slash")&&(Y.output=b+Y.output),N(Y);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){Y.output=h,N(Y);continue}(m.index===m.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(m.output+=x,_.output+=x):n.dot===!0?(m.output+=I,_.output+=I):(m.output+=b,_.output+=b),F()!=="*"&&(m.output+=g,_.output+=g)),N(Y)}for(;m.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing","]"));m.output=se.escapeLast(m.output,"["),We("brackets")}for(;m.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing",")"));m.output=se.escapeLast(m.output,"("),We("parens")}for(;m.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing","}"));m.output=se.escapeLast(m.output,"{"),We("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${p}?`}),m.backtrack===!0){m.output="";for(let C of m.tokens)m.output+=C.output!=null?C.output:C.value,C.suffix&&(m.output+=C.suffix)}return m};ws.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(wr,n.maxLength):wr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=yf[e]||e;let s=se.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:p,START_ANCHOR:g}=dn.globChars(s),S=n.dot?d:u,A=n.dot?f:u,x=n.capture?"":"?:",I={negated:!1,prefix:""},O=n.bash===!0?".*?":p;n.capture&&(O=`(${O})`);let v=b=>b.noglobstar===!0?O:`(${x}(?:(?!${g}${b.dot?l:i}).)*?)`,T=b=>{switch(b){case"*":return`${S}${c}${O}`;case".*":return`${i}${c}${O}`;case"*.*":return`${S}${O}${i}${c}${O}`;case"*/*":return`${S}${O}${a}${c}${A}${O}`;case"**":return S+v(n);case"**/*":return`(?:${S}${v(n)}${a})?${A}${c}${O}`;case"**/*.*":return`(?:${S}${v(n)}${a})?${A}${O}${i}${c}${O}`;case"**/.*":return`(?:${S}${v(n)}${a})?${i}${c}${O}`;default:{let w=/^(.*?)\.(\w+)$/.exec(b);if(!w)return;let H=T(w[1]);return H?H+i+w[2]:void 0}}},K=se.removePrefix(e,I),D=T(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};Af.exports=ws});var bf=V((cT,kf)=>{"use strict";var FR=ze("path"),$R=Ef(),Ns=xf(),vs=ln(),jR=un(),BR=e=>e&&typeof e=="object"&&!Array.isArray(e),ee=(e,t,n=!1)=>{if(Array.isArray(e)){let u=e.map(f=>ee(f,t,n));return f=>{for(let p of u){let g=p(f);if(g)return g}return!1}}let r=BR(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let o=t||{},s=vs.isWindows(t),i=r?ee.compileRe(e,t):ee.makeRe(e,t,!1,!0),a=i.state;delete i.state;let c=()=>!1;if(o.ignore){let u={...t,ignore:null,onMatch:null,onResult:null};c=ee(o.ignore,u,n)}let l=(u,d=!1)=>{let{isMatch:f,match:p,output:g}=ee.test(u,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:u,output:g,match:p,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,d?S:!1):c(u)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,d?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),d?S:!0)};return n&&(l.state=a),l};ee.test=(e,t,n,{glob:r,posix:o}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=n||{},i=s.format||(o?vs.toPosixSlashes:null),a=e===r,c=a&&i?i(e):e;return a===!1&&(c=i?i(e):e,a=c===r),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=ee.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};ee.matchBase=(e,t,n,r=vs.isWindows(n))=>(t instanceof RegExp?t:ee.makeRe(t,n)).test(FR.basename(e));ee.isMatch=(e,t,n)=>ee(t,n)(e);ee.parse=(e,t)=>Array.isArray(e)?e.map(n=>ee.parse(n,t)):Ns(e,{...t,fastpaths:!1});ee.scan=(e,t)=>$R(e,t);ee.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let o=t||{},s=o.contains?"":"^",i=o.contains?"":"$",a=`${s}(?:${e.output})${i}`;e&&e.negated===!0&&(a=`^(?!${a}).*$`);let c=ee.toRegex(a,t);return r===!0&&(c.state=e),c};ee.makeRe=(e,t={},n=!1,r=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(o.output=Ns.fastpaths(e,t)),o.output||(o=Ns(e,t)),ee.compileRe(o,t,n,r)};ee.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(n){if(t&&t.debug===!0)throw n;return/$^/}};ee.constants=jR;kf.exports=ee});var If=V((uT,Of)=>{"use strict";Of.exports=bf()});var Mf=V((lT,vf)=>{"use strict";var Pf=ze("util"),wf=sf(),Ne=If(),Ms=ln(),Tf=e=>e===""||e==="./",Nf=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},J=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=u=>{s.add(u.output),n&&n.onResult&&n.onResult(u)};for(let u=0;u<t.length;u++){let d=Ne(String(t[u]),{...n,onResult:a},!0),f=d.state.negated||d.state.negatedExtglob;f&&i++;for(let p of e){let g=d(p,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let l=(i===t.length?[...s]:[...o]).filter(u=>!r.has(u));if(n&&l.length===0){if(n.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(n.nonull===!0||n.nullglob===!0)return n.unescape?t.map(u=>u.replace(/\\/g,"")):t}return l};J.match=J;J.matcher=(e,t)=>Ne(e,t);J.isMatch=(e,t,n)=>Ne(t,n)(e);J.any=J.isMatch;J.not=(e,t,n={})=>{t=[].concat(t).map(String);let r=new Set,o=[],s=a=>{n.onResult&&n.onResult(a),o.push(a.output)},i=new Set(J(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};J.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Pf.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>J.contains(e,r,n));if(typeof t=="string"){if(Tf(e)||Tf(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return J.isMatch(e,t,{...n,contains:!0})};J.matchKeys=(e,t,n)=>{if(!Ms.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=J(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};J.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Ne(String(o),n);if(r.some(i=>s(i)))return!0}return!1};J.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Ne(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};J.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Pf.inspect(e)}"`);return[].concat(t).every(r=>Ne(r,n)(e))};J.capture=(e,t,n)=>{let r=Ms.isWindows(n),s=Ne.makeRe(String(e),{...n,capture:!0}).exec(r?Ms.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};J.makeRe=(...e)=>Ne.makeRe(...e);J.scan=(...e)=>Ne.scan(...e);J.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of wf(String(r),t))n.push(Ne.parse(o,t));return n};J.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Nf(e)?[e]:wf(e,t)};J.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return J.braces(e,{...t,expand:!0})};J.hasBraces=Nf;vf.exports=J});import{realpathSync as Gx}from"node:fs";import{resolve as Wx}from"node:path";import{fileURLToPath as zx,pathToFileURL as Vx}from"node:url";import{createHash as Qp}from"node:crypto";import{homedir as em}from"node:os";import{dirname as yk,join as tm,parse as Rk,resolve as Ck}from"node:path";var Ei="EV_AI_LAUNCHER_VERSION";var yi="EV_AI_HOOK_SOURCE",Ri="EV_AI_HOOK_FALLBACK_REASON",Ci="EV_AI_LAUNCHER_SCOPE",Xr="EV_AI_LAUNCHER_READY_FD";var Ai="--defer-user-spec",On="--cap",$t="--slot";var xi=Buffer.from([1]);var qx=1024*1024,Zx=4*1024*1024,Qx=64*1024,ek=64*1024,tk=64*1024;var qr=4096,nk=4*1024*1024;import{join as Pi}from"node:path";import{open as ki,mkdir as Mp,readFile as Lp,readdir as Hp,rename as Up,stat as Dp,rmdir as Fp,unlink as $p,utimes as jp}from"node:fs/promises";var In=new WeakMap;function Oi(e){if(e&&typeof e=="object"&&"code"in e)return e}function yt(e){return Oi(e)?.code==="ENOENT"}function jt(e){return Oi(e)?.code==="EEXIST"}async function Ii(e,t){try{return await e.readdir(t)}catch(n){if(yt(n))return[];throw n}}function Ti(){return{async open(e,t){let n=await ki(e,t),r={path:e};return In.set(r,n),r},async write(e,t){let n=bi(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await bi(e).sync()},async close(e){let t=In.get(e);In.delete(e),t&&await t.close()},rename:Up,async readdir(e){return Hp(e)},readFile:Lp,async stat(e){let t=await Dp(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Mp(e,t)},unlink:$p,rmdir:Fp,utimes:jp,async fsyncDir(e){if(process.platform==="win32")return;let t=await ki(e,"r");try{await t.sync()}finally{await t.close()}}}}function bi(e){let t=In.get(e);if(!t)throw new Error("closed");return t}var wi=4,Ni=10;function Tn(e=process.platform){return e==="win32"?wi:Ni}var Pn=6e4,Bt=2e3,vi="slots",Zr=64;function Mi(e){return Pi(e,".ev-ai","agent-hook",vi)}function wn(e,t){return Pi(e,`slot-${t}`)}function Nn(e,t){return`${e}
15
15
  ${t}
16
16
  `}function Qr(e){let t=e===void 0?null:/^(\d+):(\d+)$/.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&Number.isSafeInteger(r)?{index:n,acquiredAtMs:r}:void 0}function Li(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var Bp=/^(\d+)\n(\d+)\n$/;function Kp(e){let t=Bp.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function Hi(e,t,n){let r=Kp(e);if(!r)return Math.abs(n-t)<Bt;let o=n-r.acquiredAtMs;return o<-Bt||o>=Pn?!1:Li(r.pid)}import{createHash as Gp,randomBytes as Wp}from"node:crypto";import{existsSync as eo,mkdirSync as zp,readdirSync as Vp,readFileSync as Jp,renameSync as Ui,statSync as ji,unlinkSync as Di,writeFileSync as Yp}from"node:fs";import{basename as Xp,dirname as Fi,join as Bi,relative as qp}from"node:path";function E(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
17
- `)}function Kt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Gt(e){return Gp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){zp(Fi(e),{recursive:!0});let n=Bi(Fi(e),`.${Xp(e)}.${process.pid}.${Wp(4).toString("hex")}.tmp`);try{Yp(n,t,"utf8");try{Ui(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Di(e),Ui(n,e);return}throw r}}catch(r){try{Di(n)}catch{}throw r}}function vn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function to(){process.stdout.write('{"continue":true}')}function M(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Wt(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>{e(t)}),process.stdin.on("error",()=>{e(t)}),process.stdin.resume()})}async function Mn(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function ye(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,l=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:l,spawnFailed:l===void 0}}}async function te(e,t,n=3e3,r={}){let o=await ye(e,t,n,r);return o.ok?o.stdout:""}async function no(e=process.cwd()){let t=await ye("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(M("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;E(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=M("CURSOR_PROJECT_DIR")??M("CLAUDE_PROJECT_DIR");if(n&&eo(n)){let r=await ye("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function Le(e=process.cwd()){return(await no(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var $i=new Map;function Ln(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Zp(e){let t;try{t=Jp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(Ln(t))}}catch{return{ok:!1,reason:"parse"}}}function Ki(e){let t=$i.get(e);if(t!==void 0)return t;let n=Zp(e);return $i.set(e,n),n}function Gi(e){return Ki(e)}function ne(e,t){let n=Ki(e);return n.ok?n.value:t}function it(e){return typeof e=="string"?e:""}function He(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function L(e,t){let n=He(e,t);return typeof n=="string"?n:""}var Je=500;function Wi(e,t=2){if(!eo(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Vp(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Bi(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:qp(e,l),size:ji(l).size})}catch{continue}if(n.length>=Je){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function ro(e){return eo(e)?{present:!0,size:ji(e).size}:{present:!1,size:0}}var Ji="https://hooks.ev-ai.ai",Hn=".claude/ev-ai-runtime-report.json",Yi="config.json",nm="max_concurrent_hooks",bk=1024*1024,rm=new Set(["localhost","127.0.0.1","[::1]","::1"]),om=["claude","cursor","codex"],Un=[Hn,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],oo=/^[A-Za-z0-9._~-]+$/;function Dn(e){return e!==void 0&&om.includes(e)}function Xi(e){if(!e||typeof e!="object")return;let t=e[nm];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function zi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Rt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function so(e){let t,n,r,o,s,i,a;for(let c=0;c<e.length;c++){let l=e[c];if(l!==void 0){if(l==="--runner"){let u=Rt(e,c);t=u.value,c=u.next;continue}if(l.startsWith("--runner=")){t=l.slice(9);continue}if(l==="--url"){let u=Rt(e,c);u.value&&(r=u.value),c=u.next;continue}if(l.startsWith("--url=")){r=l.slice(6);continue}if(l==="--token"){let u=Rt(e,c);u.value&&(o=u.value),c=u.next;continue}if(l.startsWith("--token=")){o=l.slice(8);continue}if(l==="--base-url"){let u=Rt(e,c);u.value&&(s=u.value),c=u.next;continue}if(l.startsWith("--base-url=")){s=l.slice(11);continue}if(l===On){let u=Rt(e,c);i=zi(u.value)??i,c=u.next;continue}if(l.startsWith(`${On}=`)){i=zi(l.slice(On.length+1))??i;continue}if(l===$t){let u=Rt(e,c);a=Qr(u.value)??a,c=u.next;continue}if(l.startsWith(`${$t}=`)){a=Qr(l.slice($t.length+1))??a;continue}l!==Ai&&!l.startsWith("-")&&n===void 0&&(n=l)}}return{runner:Dn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{},...a!==void 0?{slot:a}:{}}}function Fn(e,t=Ji){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function zt(e=em()){return tm(e,".ev-ai",Yi)}function qi(e,t){return{...e,...t}}function Vi(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function $n(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?rm.has(t.hostname):!1}catch{return!1}}function io(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function at(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!$n(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=io(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!oo.test(n))return`org token must match ${oo.source} (got: ${n})`;if(Vi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(Vi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Ct(e){return new URL(e).toString()}function ao(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?Fn(n):""}function jn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function Zi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=Fn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=at(n);return r?{problem:r}:{url:Ct(n)}}var co="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Qi(e){let t=e[co]?.trim();if(!t)return{};let n=at(t);return n?{problem:n}:{url:Ct(t)}}function Vt(e){if(at(e))return;let t;try{t=new URL(e)}catch{return}let n=io(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return Qp("sha256").update(i).digest("hex").slice(0,32)}var Ye=2,ea="node_modules/@ev-ai/agent-hook/dist/hook.mjs",_e="ev-ai-agent-hook";function sm(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Bn(e){let t=sm(e);return t===_e||t===`${_e}.exe`}var ta="https://cdn.ev-ai.ai/agent-hook";var uo=`current/${_e}`,lo=`.ev-ai/agent-hook/${_e}`,na=5e3,ra=5e3,fo=3e3;var Kn=3e3,oa=1500,sa=4*1024,po=256*1024,im=4*1024,ia=32*1024,Ue="1.3.6",Gn=`@ev-ai/agent-hook@${Ue}`,aa="ev-ai runtime report";var ca={claude:"CLAUDE_PLUGIN_ROOT",cursor:"CURSOR_PLUGIN_ROOT",codex:"PLUGIN_ROOT"};import{chmodSync as za,cpSync as Va,existsSync as Xe,mkdirSync as Oo,readFileSync as hg,rmSync as Zn,symlinkSync as Sg,writeFileSync as Eg}from"node:fs";import{homedir as De}from"node:os";import{dirname as Io,isAbsolute as yg,join as W,relative as Ja,resolve as Ga,sep as Rg}from"node:path";import{fileURLToPath as Cg}from"node:url";import{existsSync as am,readdirSync as ua}from"node:fs";import{homedir as Wn}from"node:os";import{join as ae}from"node:path";function la(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ae(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function mo(e=process.platform){let t=la(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!am(r))return n;let o=ua(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function go(e=process.platform,t=Wn()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:mo(e)}}function cm(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ae(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function um(e=process.platform,t=Wn()){let n=[ae(cm(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of ua(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function lm(e=process.platform,t=Wn()){let n=e==="win32"?ae(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ae(n,"requirements.toml")];return e!=="win32"&&r.push(ae(n,"managed_config.toml")),r.push(ae(t,".codex","managed_config.toml"),ae(n,"config.toml")),r}function zn(e,t=process.platform,n=Wn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=go(t,n);return[r,...o]}case"cursor":return um(t,n);default:return lm(t,n)}}import{createHash as Ra,randomBytes as bm}from"node:crypto";import{existsSync as Ca,mkdirSync as ho,readFileSync as Aa,unlinkSync as xa,writeFileSync as ka}from"node:fs";import{homedir as So}from"node:os";import{dirname as Jn,join as Eo,resolve as Om}from"node:path";var fm=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),dm=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function de(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||dm.has(n)||r.includes("[bot]")||fm.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}import{existsSync as pm,readFileSync as mm}from"node:fs";import{hostname as fa,userInfo as gm}from"node:os";function At(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function da(e=process.env){return At(X("CURSOR_SANDBOX",e))}var _m=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function hm(e){return _m.some(t=>!!X(t,e))}function Sm(e){if(X("KUBERNETES_SERVICE_HOST",e)||At(X("REMOTE_CONTAINERS",e))||At(X("DEVCONTAINER",e)))return!0;try{if(pm("/.dockerenv")||mm("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function pa(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function Em(e,t=process.platform){return pa(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function ym(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Rm(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return M(e)}function Cm(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Am(X("CURSOR_VERSION",n))}function Am(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function _o(e){if(ym(e.sessionId))return!0;let t=e.hostname??fa(),n=e.osUser??ga(e.env);return Cm(t,n,e.env)}function xm(e){return At(X("CURSOR_AGENT",e.env))?!0:_o(e)}function km(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(X("TERM",e)??X("TERM_PROGRAM",e))||(X("SSH_TTY",e)??X("SSH_CONNECTION",e))||(X("__CFBundleIdentifier",e)??X("XPC_SERVICE_NAME",e))||pa(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function Jt(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(At(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!Em(t,n)&&xm(e)&&(At(X("CURSOR_AGENT",t))||Rm(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(hm(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Sm(t)?"container":km(t)?"interactive":"unknown"}async function ma(){return await te("systemd-detect-virt",[],1e3)}function ga(e=process.env,t=gm){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function _a(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await te("sw_vers",["-productVersion"],1e3);else if(process.platform==="linux"){try{let{readFileSync:s}=await import("node:fs"),i=s("/etc/os-release","utf8"),a=i.match(/^PRETTY_NAME="?([^"\n]+)"?/m)?.[1],c=i.match(/^VERSION_ID="?([^"\n]+)"?/m)?.[1];t=a??c??""}catch{t=await te("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await te("uname",["-r"],1e3))}else t=await te("ver",[],1e3);let n=ga(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await te("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function Vn(){return fa()}var Im="installation.json",Tm="cloud-bootstrap.lock",Pm=6e4;function ba(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Re(e=So()){return Eo(e,".ev-ai","agent-hook")}function wm(e=So()){return Eo(Re(e),Im)}function Oa(e){return Eo(Jn(e),Tm)}function Ia(){return bm(8).toString("hex")}function xt(e){return Ra("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Ta(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function Nm(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Ta(t)){E(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Pa(e,t){return e&&Ta(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Nm(t))}function vm(e){return/^[0-9a-f]{16}$/.test(e)}function Mm(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return xt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return xt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return xt(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return xt(`gitlab|${t}|${n}`)}return null}var Lm="cursoragent@cursor.com";function Hm(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Lm?null:t}function Um(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Dm(e){return Kt(e).replace(/\.git$/i,"").toLowerCase()}async function Fm(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Dm(t):e}async function $m(e){let t=$(await te("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!de(null,t))return t;let n=$(await te("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!de(null,n)?n:null}function jm(e,t){let n=Um(e,t);return n?xt(`cursor_cloud|${n}|${Hm(e)??""}`):null}async function Bm(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Fm(n),o=await $m(n);return xt(`claude_remote|${r}|${o??""}`)}function ha(e,t){let n=Pa(e,t);if(n)return n;let r=Mm(t);return r||Ia()}async function Km(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Om(e);return Ra("sha256").update(n).digest("hex").slice(0,16)}function Gm(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function Wm(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Gm(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function ct(e){if(Ca(e))try{return Wm(Aa(e,"utf8"))}catch{}}function yo(e){return ct(e)}function wa(e,t,n){let r=ct(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{me(e,`${JSON.stringify(o,null,2)}
17
+ `)}function Kt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Gt(e){return Gp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){zp(Fi(e),{recursive:!0});let n=Bi(Fi(e),`.${Xp(e)}.${process.pid}.${Wp(4).toString("hex")}.tmp`);try{Yp(n,t,"utf8");try{Ui(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Di(e),Ui(n,e);return}throw r}}catch(r){try{Di(n)}catch{}throw r}}function vn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function to(){process.stdout.write('{"continue":true}')}function M(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Wt(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>{e(t)}),process.stdin.on("error",()=>{e(t)}),process.stdin.resume()})}async function Mn(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function ye(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,l=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:l,spawnFailed:l===void 0}}}async function te(e,t,n=3e3,r={}){let o=await ye(e,t,n,r);return o.ok?o.stdout:""}async function no(e=process.cwd()){let t=await ye("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(M("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;E(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=M("CURSOR_PROJECT_DIR")??M("CLAUDE_PROJECT_DIR");if(n&&eo(n)){let r=await ye("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function Le(e=process.cwd()){return(await no(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var $i=new Map;function Ln(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Zp(e){let t;try{t=Jp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(Ln(t))}}catch{return{ok:!1,reason:"parse"}}}function Ki(e){let t=$i.get(e);if(t!==void 0)return t;let n=Zp(e);return $i.set(e,n),n}function Gi(e){return Ki(e)}function ne(e,t){let n=Ki(e);return n.ok?n.value:t}function it(e){return typeof e=="string"?e:""}function He(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function L(e,t){let n=He(e,t);return typeof n=="string"?n:""}var Je=500;function Wi(e,t=2){if(!eo(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Vp(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Bi(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:qp(e,l),size:ji(l).size})}catch{continue}if(n.length>=Je){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function ro(e){return eo(e)?{present:!0,size:ji(e).size}:{present:!1,size:0}}var Ji="https://hooks.ev-ai.ai",Hn=".claude/ev-ai-runtime-report.json",Yi="config.json",nm="max_concurrent_hooks",bk=1024*1024,rm=new Set(["localhost","127.0.0.1","[::1]","::1"]),om=["claude","cursor","codex"],Un=[Hn,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],oo=/^[A-Za-z0-9._~-]+$/;function Dn(e){return e!==void 0&&om.includes(e)}function Xi(e){if(!e||typeof e!="object")return;let t=e[nm];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function zi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Rt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function so(e){let t,n,r,o,s,i,a;for(let c=0;c<e.length;c++){let l=e[c];if(l!==void 0){if(l==="--runner"){let u=Rt(e,c);t=u.value,c=u.next;continue}if(l.startsWith("--runner=")){t=l.slice(9);continue}if(l==="--url"){let u=Rt(e,c);u.value&&(r=u.value),c=u.next;continue}if(l.startsWith("--url=")){r=l.slice(6);continue}if(l==="--token"){let u=Rt(e,c);u.value&&(o=u.value),c=u.next;continue}if(l.startsWith("--token=")){o=l.slice(8);continue}if(l==="--base-url"){let u=Rt(e,c);u.value&&(s=u.value),c=u.next;continue}if(l.startsWith("--base-url=")){s=l.slice(11);continue}if(l===On){let u=Rt(e,c);i=zi(u.value)??i,c=u.next;continue}if(l.startsWith(`${On}=`)){i=zi(l.slice(On.length+1))??i;continue}if(l===$t){let u=Rt(e,c);a=Qr(u.value)??a,c=u.next;continue}if(l.startsWith(`${$t}=`)){a=Qr(l.slice($t.length+1))??a;continue}l!==Ai&&!l.startsWith("-")&&n===void 0&&(n=l)}}return{runner:Dn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{},...a!==void 0?{slot:a}:{}}}function Fn(e,t=Ji){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function zt(e=em()){return tm(e,".ev-ai",Yi)}function qi(e,t){return{...e,...t}}function Vi(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function $n(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?rm.has(t.hostname):!1}catch{return!1}}function io(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function at(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!$n(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=io(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!oo.test(n))return`org token must match ${oo.source} (got: ${n})`;if(Vi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(Vi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Ct(e){return new URL(e).toString()}function ao(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?Fn(n):""}function jn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function Zi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=Fn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=at(n);return r?{problem:r}:{url:Ct(n)}}var co="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Qi(e){let t=e[co]?.trim();if(!t)return{};let n=at(t);return n?{problem:n}:{url:Ct(t)}}function Vt(e){if(at(e))return;let t;try{t=new URL(e)}catch{return}let n=io(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return Qp("sha256").update(i).digest("hex").slice(0,32)}var Ye=2,ea="node_modules/@ev-ai/agent-hook/dist/hook.mjs",_e="ev-ai-agent-hook";function sm(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Bn(e){let t=sm(e);return t===_e||t===`${_e}.exe`}var ta="https://cdn.ev-ai.ai/agent-hook";var uo=`current/${_e}`,lo=`.ev-ai/agent-hook/${_e}`,na=5e3,ra=5e3,fo=3e3;var Kn=3e3,oa=1500,sa=4*1024,po=256*1024,im=4*1024,ia=32*1024,Ue="1.3.7",Gn=`@ev-ai/agent-hook@${Ue}`,aa="ev-ai runtime report";var ca={claude:"CLAUDE_PLUGIN_ROOT",cursor:"CURSOR_PLUGIN_ROOT",codex:"PLUGIN_ROOT"};import{chmodSync as za,cpSync as Va,existsSync as Xe,mkdirSync as Oo,readFileSync as hg,rmSync as Zn,symlinkSync as Sg,writeFileSync as Eg}from"node:fs";import{homedir as De}from"node:os";import{dirname as Io,isAbsolute as yg,join as W,relative as Ja,resolve as Ga,sep as Rg}from"node:path";import{fileURLToPath as Cg}from"node:url";import{existsSync as am,readdirSync as ua}from"node:fs";import{homedir as Wn}from"node:os";import{join as ae}from"node:path";function la(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ae(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function mo(e=process.platform){let t=la(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!am(r))return n;let o=ua(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function go(e=process.platform,t=Wn()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:mo(e)}}function cm(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ae(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function um(e=process.platform,t=Wn()){let n=[ae(cm(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of ua(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function lm(e=process.platform,t=Wn()){let n=e==="win32"?ae(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ae(n,"requirements.toml")];return e!=="win32"&&r.push(ae(n,"managed_config.toml")),r.push(ae(t,".codex","managed_config.toml"),ae(n,"config.toml")),r}function zn(e,t=process.platform,n=Wn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=go(t,n);return[r,...o]}case"cursor":return um(t,n);default:return lm(t,n)}}import{createHash as Ra,randomBytes as bm}from"node:crypto";import{existsSync as Ca,mkdirSync as ho,readFileSync as Aa,unlinkSync as xa,writeFileSync as ka}from"node:fs";import{homedir as So}from"node:os";import{dirname as Jn,join as Eo,resolve as Om}from"node:path";var fm=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),dm=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function de(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||dm.has(n)||r.includes("[bot]")||fm.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}import{existsSync as pm,readFileSync as mm}from"node:fs";import{hostname as fa,userInfo as gm}from"node:os";function At(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function da(e=process.env){return At(X("CURSOR_SANDBOX",e))}var _m=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function hm(e){return _m.some(t=>!!X(t,e))}function Sm(e){if(X("KUBERNETES_SERVICE_HOST",e)||At(X("REMOTE_CONTAINERS",e))||At(X("DEVCONTAINER",e)))return!0;try{if(pm("/.dockerenv")||mm("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function pa(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function Em(e,t=process.platform){return pa(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function ym(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Rm(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return M(e)}function Cm(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Am(X("CURSOR_VERSION",n))}function Am(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function _o(e){if(ym(e.sessionId))return!0;let t=e.hostname??fa(),n=e.osUser??ga(e.env);return Cm(t,n,e.env)}function xm(e){return At(X("CURSOR_AGENT",e.env))?!0:_o(e)}function km(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(X("TERM",e)??X("TERM_PROGRAM",e))||(X("SSH_TTY",e)??X("SSH_CONNECTION",e))||(X("__CFBundleIdentifier",e)??X("XPC_SERVICE_NAME",e))||pa(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function Jt(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(At(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!Em(t,n)&&xm(e)&&(At(X("CURSOR_AGENT",t))||Rm(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(hm(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Sm(t)?"container":km(t)?"interactive":"unknown"}async function ma(){return await te("systemd-detect-virt",[],1e3)}function ga(e=process.env,t=gm){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function _a(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await te("sw_vers",["-productVersion"],1e3);else if(process.platform==="linux"){try{let{readFileSync:s}=await import("node:fs"),i=s("/etc/os-release","utf8"),a=i.match(/^PRETTY_NAME="?([^"\n]+)"?/m)?.[1],c=i.match(/^VERSION_ID="?([^"\n]+)"?/m)?.[1];t=a??c??""}catch{t=await te("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await te("uname",["-r"],1e3))}else t=await te("ver",[],1e3);let n=ga(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await te("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function Vn(){return fa()}var Im="installation.json",Tm="cloud-bootstrap.lock",Pm=6e4;function ba(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Re(e=So()){return Eo(e,".ev-ai","agent-hook")}function wm(e=So()){return Eo(Re(e),Im)}function Oa(e){return Eo(Jn(e),Tm)}function Ia(){return bm(8).toString("hex")}function xt(e){return Ra("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Ta(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function Nm(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Ta(t)){E(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Pa(e,t){return e&&Ta(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Nm(t))}function vm(e){return/^[0-9a-f]{16}$/.test(e)}function Mm(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return xt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return xt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return xt(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return xt(`gitlab|${t}|${n}`)}return null}var Lm="cursoragent@cursor.com";function Hm(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Lm?null:t}function Um(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Dm(e){return Kt(e).replace(/\.git$/i,"").toLowerCase()}async function Fm(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Dm(t):e}async function $m(e){let t=$(await te("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!de(null,t))return t;let n=$(await te("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!de(null,n)?n:null}function jm(e,t){let n=Um(e,t);return n?xt(`cursor_cloud|${n}|${Hm(e)??""}`):null}async function Bm(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Fm(n),o=await $m(n);return xt(`claude_remote|${r}|${o??""}`)}function ha(e,t){let n=Pa(e,t);if(n)return n;let r=Mm(t);return r||Ia()}async function Km(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Om(e);return Ra("sha256").update(n).digest("hex").slice(0,16)}function Gm(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function Wm(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Gm(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function ct(e){if(Ca(e))try{return Wm(Aa(e,"utf8"))}catch{}}function yo(e){return ct(e)}function wa(e,t,n){let r=ct(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{me(e,`${JSON.stringify(o,null,2)}
18
18
  `)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: operator identity cache write failed open: ${i}`)}}function Na(e,t=Date.now()){if(!e)return!0;if(ct(e)?.operator_identity_hash)return!1;let n=Oa(e);try{if(Ca(n)){let r=Number.NaN;try{r=Number(Aa(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<Pm)return!1;try{xa(n)}catch{}}}catch{}try{return ho(Jn(n),{recursive:!0}),ka(n,`${t}
19
19
  `,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Ha(r))return!1;let o=r instanceof Error?r.message:String(r);return E(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function va(e){if(e)try{xa(Oa(e))}catch{}}function Ma(e,t){let r=ct(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function La(e,t,n){if(!n)return;let r=ct(e);if(!r||r.platform_agent_ids?.[t]===n)return;let o={installation_id:r.installation_id,platform_agent_ids:{...r.platform_agent_ids,[t]:n},...r.operator_identity_hash?{operator_identity_hash:r.operator_identity_hash}:{},...r.operator_identity_sent_at?{operator_identity_sent_at:r.operator_identity_sent_at}:{}};try{me(e,`${JSON.stringify(o,null,2)}
20
20
  `)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: platform_agent_id cache write failed open: ${i}`)}}function Ha(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function zm(e,t){ho(Jn(e),{recursive:!0}),ka(e,`${JSON.stringify(t,null,2)}
package/dist/hook.mjs CHANGED
@@ -13,7 +13,7 @@ var Pd=Object.create;var zs=Object.defineProperty;var Nd=Object.getOwnPropertyDe
13
13
  `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Qu=W((Mb,Zu)=>{"use strict";var HS=ar(),{MAX_LENGTH:Yu,CHAR_BACKSLASH:zo,CHAR_BACKTICK:US,CHAR_COMMA:DS,CHAR_DOT:FS,CHAR_LEFT_PARENTHESES:$S,CHAR_RIGHT_PARENTHESES:jS,CHAR_LEFT_CURLY_BRACE:BS,CHAR_RIGHT_CURLY_BRACE:KS,CHAR_LEFT_SQUARE_BRACKET:Xu,CHAR_RIGHT_SQUARE_BRACKET:qu,CHAR_DOUBLE_QUOTE:GS,CHAR_SINGLE_QUOTE:zS,CHAR_NO_BREAK_SPACE:WS,CHAR_ZERO_WIDTH_NOBREAK_SPACE:VS}=Ju(),JS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Yu,n.maxLength):Yu;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,l=e.length,u=0,d=0,f,m=()=>e[u++],g=S=>{if(S.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&S.type==="text"){a.value+=S.value;return}return i.nodes.push(S),S.parent=i,S.prev=a,a=S,S};for(g({type:"bos"});u<l;)if(i=s[s.length-1],f=m(),!(f===VS||f===WS)){if(f===zo){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===qu){g({type:"text",value:"\\"+f});continue}if(f===Xu){c++;let S;for(;u<l&&(S=m());){if(f+=S,S===Xu){c++;continue}if(S===zo){f+=m();continue}if(S===qu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===$S){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===jS){if(i.type!=="paren"){g({type:"text",value:f});continue}i=s.pop(),g({type:"text",value:f}),i=s[s.length-1];continue}if(f===GS||f===zS||f===US){let S=f,C;for(t.keepQuotes!==!0&&(f="");u<l&&(C=m());){if(C===zo){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===BS){d++;let C={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};i=g(C),s.push(i),g({type:"open",value:f});continue}if(f===KS){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),d--,i=s[s.length-1];continue}if(f===DS&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:HS(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===FS&&d>0&&i.commas===0){let S=i.nodes;if(d===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let C=S[S.length-1];C.value+=a.value+f,a=C,i.ranges--;continue}g({type:"dot",value:f});continue}g({type:"text",value:f})}do if(i=s.pop(),i.type!=="root"){i.nodes.forEach(A=>{A.nodes||(A.type==="open"&&(A.isOpen=!0),A.type==="close"&&(A.isClose=!0),A.nodes||(A.type="text"),A.invalid=!0)});let S=s[s.length-1],C=S.nodes.indexOf(i);S.nodes.splice(C,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};Zu.exports=JS});var nl=W((Lb,tl)=>{"use strict";var el=ar(),YS=Ku(),XS=Wu(),qS=Qu(),de=(e,t={})=>{let n=[];if(Array.isArray(e))for(let r of e){let o=de.create(r,t);Array.isArray(o)?n.push(...o):n.push(o)}else n=[].concat(de.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(n=[...new Set(n)]),n};de.parse=(e,t={})=>qS(e,t);de.stringify=(e,t={})=>el(typeof e=="string"?de.parse(e,t):e,t);de.compile=(e,t={})=>(typeof e=="string"&&(e=de.parse(e,t)),YS(e,t));de.expand=(e,t={})=>{typeof e=="string"&&(e=de.parse(e,t));let n=XS(e,t);return t.noempty===!0&&(n=n.filter(Boolean)),t.nodupes===!0&&(n=[...new Set(n)]),n};de.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?de.compile(e,t):de.expand(e,t);tl.exports=de});var qt=W((vb,al)=>{"use strict";var ZS=$e("path"),ke="\\\\/",rl=`[^${ke}]`,QS=0,De="\\.",eE="\\+",tE="\\?",lr="\\/",nE="(?=.)",ol="[^/]",Wo=`(?:${lr}|$)`,sl=`(?:^|${lr})`,Vo=`${De}{1,2}${Wo}`,rE=`(?!${De})`,oE=`(?!${sl}${Vo})`,sE=`(?!${De}{0,1}${Wo})`,iE=`(?!${Vo})`,aE=`[^.${lr}]`,cE=`${ol}*?`,il={DOT_LITERAL:De,PLUS_LITERAL:eE,QMARK_LITERAL:tE,SLASH_LITERAL:lr,ONE_CHAR:nE,QMARK:ol,END_ANCHOR:Wo,DOTS_SLASH:Vo,NO_DOT:rE,NO_DOTS:oE,NO_DOT_SLASH:sE,NO_DOTS_SLASH:iE,QMARK_NO_DOT:aE,STAR:cE,START_ANCHOR:sl},uE={...il,SLASH_LITERAL:`[${ke}]`,QMARK:rl,STAR:`${rl}*?`,DOTS_SLASH:`${De}{1,2}(?:[${ke}]|$)`,NO_DOT:`(?!${De})`,NO_DOTS:`(?!(?:^|[${ke}])${De}{1,2}(?:[${ke}]|$))`,NO_DOT_SLASH:`(?!${De}{0,1}(?:[${ke}]|$))`,NO_DOTS_SLASH:`(?!${De}{1,2}(?:[${ke}]|$))`,QMARK_NO_DOT:`[^.${ke}]`,START_ANCHOR:`(?:^|[${ke}])`,END_ANCHOR:`(?:[${ke}]|$)`},lE={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};al.exports={DEFAULT_MAX_EXTGLOB_RECURSION:QS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:lE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:ZS.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?uE:il}}});var Zt=W(ae=>{"use strict";var fE=$e("path"),dE=process.platform==="win32",{REGEX_BACKSLASH:pE,REGEX_REMOVE_BACKSLASH:mE,REGEX_SPECIAL_CHARS:gE,REGEX_SPECIAL_CHARS_GLOBAL:_E}=qt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>gE.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(_E,"\\$1");ae.toPosixSlashes=e=>e.replace(pE,"/");ae.removeBackslashes=e=>e.replace(mE,t=>t==="\\"?"":t);ae.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ae.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:dE===!0||fE.sep==="\\";ae.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ae.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ae.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ae.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var gl=W((Ub,ml)=>{"use strict";var cl=Zt(),{CHAR_ASTERISK:Jo,CHAR_AT:hE,CHAR_BACKWARD_SLASH:Qt,CHAR_COMMA:SE,CHAR_DOT:Yo,CHAR_EXCLAMATION_MARK:Xo,CHAR_FORWARD_SLASH:pl,CHAR_LEFT_CURLY_BRACE:qo,CHAR_LEFT_PARENTHESES:Zo,CHAR_LEFT_SQUARE_BRACKET:EE,CHAR_PLUS:yE,CHAR_QUESTION_MARK:ul,CHAR_RIGHT_CURLY_BRACE:RE,CHAR_RIGHT_PARENTHESES:ll,CHAR_RIGHT_SQUARE_BRACKET:CE}=qt(),fl=e=>e===pl||e===Qt,dl=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},AE=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,l=-1,u=0,d=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,T=!1,x=!1,M=!1,k=!1,K=0,D,O,N={value:"",depth:0,isGlob:!1},H=()=>l>=r,p=()=>c.charCodeAt(l+1),I=()=>(D=O,c.charCodeAt(++l));for(;l<r;){O=I();let se;if(O===Qt){T=N.backslashes=!0,O=I(),O===qo&&(A=!0);continue}if(A===!0||O===qo){for(K++;H()!==!0&&(O=I());){if(O===Qt){T=N.backslashes=!0,I();continue}if(O===qo){K++;continue}if(A!==!0&&O===Yo&&(O=I())===Yo){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&O===SE){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(O===RE&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(O===pl){if(s.push(l),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===Yo&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(O===yE||O===hE||O===Jo||O===ul||O===Xo)===!0&&p()===Zo){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,O===Xo&&l===u&&(M=!0),o===!0){for(;H()!==!0&&(O=I());){if(O===Qt){T=N.backslashes=!0,O=I();continue}if(O===ll){g=N.isGlob=!0,k=!0;break}}continue}break}if(O===Jo){if(D===Jo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(O===ul){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(O===EE){for(;H()!==!0&&(se=I());){if(se===Qt){T=N.backslashes=!0,I();continue}if(se===CE){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&O===Xo&&l===u){x=N.negated=!0,u++;continue}if(n.noparen!==!0&&O===Zo){if(g=N.isGlob=!0,o===!0){for(;H()!==!0&&(O=I());){if(O===Zo){T=N.backslashes=!0,O=I();continue}if(O===ll){k=!0;break}}continue}break}if(g===!0){if(k=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,ue="",_="";u>0&&(ue=c.slice(0,u),c=c.slice(u),d-=u),U&&g===!0&&d>0?(U=c.slice(0,d),_=c.slice(d)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&fl(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=cl.removeBackslashes(_)),U&&T===!0&&(U=cl.removeBackslashes(U)));let h={prefix:ue,input:e,start:u,base:U,glob:_,isBrace:f,isBracket:m,isGlob:g,isExtglob:S,isGlobstar:C,negated:x,negatedExtglob:M};if(n.tokens===!0&&(h.maxDepth=0,fl(O)||i.push(N),h.tokens=i),n.parts===!0||n.tokens===!0){let se;for(let F=0;F<s.length;F++){let Ce=se?se+1:u,Ae=s[F],le=e.slice(Ce,Ae);n.tokens&&(F===0&&u!==0?(i[F].isPrefix=!0,i[F].value=ue):i[F].value=le,dl(i[F]),h.maxDepth+=i[F].depth),(F!==0||le!=="")&&a.push(le),se=Ae}if(se&&se+1<e.length){let F=e.slice(se+1);a.push(F),n.tokens&&(i[i.length-1].value=F,dl(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};ml.exports=AE});var yl=W((Db,El)=>{"use strict";var en=qt(),oe=Zt(),{MAX_LENGTH:fr,POSIX_REGEX_SOURCE:IE,REGEX_NON_SPECIAL_CHARS:OE,REGEX_SPECIAL_CHARS_BACKREF:bE,REPLACEMENTS:_l}=en,xE=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let n=`[${e.join("-")}]`;try{new RegExp(n)}catch{return e.map(o=>oe.escapeRegex(o)).join("..")}return n},Rt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,hl=e=>{let t=[],n=0,r=0,o=0,s="",i=!1;for(let a of e){if(i===!0){s+=a,i=!1;continue}if(a==="\\"){s+=a,i=!0;continue}if(a==='"'){o=o===1?0:1,s+=a;continue}if(o===0){if(a==="[")n++;else if(a==="]"&&n>0)n--;else if(n===0){if(a==="(")r++;else if(a===")"&&r>0)r--;else if(a==="|"&&r===0){t.push(s),s="";continue}}}s+=a}return t.push(s),t},TE=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n==="\\"){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},Sl=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(TE(t))return t.replace(/\\(.)/g,"$1")},kE=e=>{let t=e.map(Sl).filter(Boolean);for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){let o=t[n],s=t[r],i=o[0];if(!(!i||o!==i.repeat(o.length)||s!==i.repeat(s.length))&&(o===s||o.startsWith(s)||s.startsWith(o)))return!0}return!1},Qo=(e,t=!0)=>{if(e[0]!=="+"&&e[0]!=="*"||e[1]!=="(")return;let n=0,r=0,o=0,s=!1;for(let i=1;i<e.length;i++){let a=e[i];if(s===!0){s=!1;continue}if(a==="\\"){s=!0;continue}if(a==='"'){o=o===1?0:1;continue}if(o!==1){if(a==="["){n++;continue}if(a==="]"&&n>0){n--;continue}if(!(n>0)){if(a==="("){r++;continue}if(a===")"&&(r--,r===0))return t===!0&&i!==e.length-1?void 0:{type:e[0],body:e.slice(2,i),end:i}}}}},PE=e=>{let t=0,n=[];for(;t<e.length;){let o=Qo(e.slice(t),!1);if(!o||o.type!=="*")return;let s=hl(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Sl(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?oe.escapeRegex(n[0]):`[${n.map(o=>oe.escapeRegex(o)).join("")}]`}*`},NE=e=>{let t=0,n=e.trim(),r=Qo(n);for(;r;)t++,n=r.body.trim(),r=Qo(n);return t},wE=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:en.DEFAULT_MAX_EXTGLOB_RECURSION,r=hl(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||kE(r)))return{risky:!0};for(let o of r){let s=PE(o);if(s)return{risky:!0,safeOutput:s};if(NE(o)>n)return{risky:!0}}return{risky:!1}},es=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=_l[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(fr,n.maxLength):fr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},i=[s],a=n.capture?"":"?:",c=oe.isWindows(t),l=en.globChars(c),u=en.extglobChars(l),{DOT_LITERAL:d,PLUS_LITERAL:f,SLASH_LITERAL:m,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:C,NO_DOT_SLASH:A,NO_DOTS_SLASH:T,QMARK:x,QMARK_NO_DOT:M,STAR:k,START_ANCHOR:K}=l,D=R=>`(${a}(?:(?!${K}${R.dot?S:d}).)*?)`,O=n.dot?"":C,N=n.dot?x:M,H=n.bash===!0?D(n):k;n.capture&&(H=`(${H})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let p={input:e,index:-1,start:0,dot:n.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=oe.removePrefix(e,p),o=e.length;let I=[],U=[],ue=[],_=s,h,se=()=>p.index===o-1,F=p.peek=(R=1)=>e[p.index+R],Ce=p.advance=()=>e[++p.index]||"",Ae=()=>e.slice(p.index+1),le=(R="",J=0)=>{p.consumed+=R,p.index+=J},dn=R=>{p.output+=R.output!=null?R.output:R.value,le(R.value)},Td=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),p.start++,R++;return R%2===0?!1:(p.negated=!0,p.start++,!0)},pn=R=>{p[R]++,ue.push(R)},Fe=R=>{p[R]--,ue.pop()},w=R=>{if(_.type==="globstar"){let J=p.braces>0&&(R.type==="comma"||R.type==="brace"),y=R.extglob===!0||I.length&&(R.type==="pipe"||R.type==="paren");R.type!=="slash"&&R.type!=="paren"&&!J&&!y&&(p.output=p.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,p.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&dn(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},mn=(R,J)=>{let y={...u[J],conditions:1,inner:""};y.prev=_,y.parens=p.parens,y.output=p.output,y.startIndex=p.index,y.tokensIndex=i.length;let P=(n.capture?"(":"")+y.open;pn("parens"),w({type:R,value:J,output:p.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},kd=R=>{let J=e.slice(R.startIndex,p.index+1),y=e.slice(R.startIndex+2,p.index),P=wE(y,n);if((R.type==="plus"||R.type==="star")&&P.risky){let G=P.safeOutput?(R.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,Ie=i[R.tokensIndex];Ie.type="text",Ie.value=J,Ie.output=G||oe.escapeRegex(J);for(let Oe=R.tokensIndex+1;Oe<i.length;Oe++)i[Oe].value="",i[Oe].output="",delete i[Oe].suffix;p.output=R.output+Ie.output,p.backtrack=!0,w({type:"paren",extglob:!0,value:h,output:""}),Fe("parens");return}let z=R.close+(n.capture?")":""),re;if(R.type==="negate"){let G=H;if(R.inner&&R.inner.length>1&&R.inner.includes("/")&&(G=D(n)),(G!==H||se()||/^\)+$/.test(Ae()))&&(z=R.close=`)$))${G}`),R.inner.includes("*")&&(re=Ae())&&/^\.[^\\/.]+$/.test(re)){let Ie=es(re,{...t,fastpaths:!1}).output;z=R.close=`)${Ie})${G})`}R.prev.type==="bos"&&(p.negatedExtglob=!0)}w({type:"paren",extglob:!0,value:h,output:z}),Fe("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let R=!1,J=e.replace(bE,(y,P,z,re,G,Ie)=>re==="\\"?(R=!0,y):re==="?"?P?P+re+(G?x.repeat(G.length):""):Ie===0?N+(G?x.repeat(G.length):""):x.repeat(z.length):re==="."?d.repeat(z.length):re==="*"?P?P+re+(G?H:""):H:P?y:`\\${y}`);return R===!0&&(n.unescape===!0?J=J.replace(/\\/g,""):J=J.replace(/\\+/g,y=>y.length%2===0?"\\\\":y?"\\":"")),J===e&&n.contains===!0?(p.output=e,p):(p.output=oe.wrapOutput(J,p,t),p)}for(;!se();){if(h=Ce(),h==="\0")continue;if(h==="\\"){let y=F();if(y==="/"&&n.bash!==!0||y==="."||y===";")continue;if(!y){h+="\\",w({type:"text",value:h});continue}let P=/^\\+/.exec(Ae()),z=0;if(P&&P[0].length>2&&(z=P[0].length,p.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=Ce():h+=Ce(),p.brackets===0){w({type:"text",value:h});continue}}if(p.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let y=_.value.slice(1);if(y.includes("[")&&(_.posix=!0,y.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),re=_.value.slice(P+2),G=IE[re];if(G){_.value=z+G,p.backtrack=!0,Ce(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,dn({value:h});continue}if(p.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,dn({value:h});continue}if(h==='"'){p.quotes=p.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){pn("parens"),w({type:"paren",value:h});continue}if(h===")"){if(p.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Rt("opening","("));let y=I[I.length-1];if(y&&p.parens===y.parens+1){kd(I.pop());continue}w({type:"paren",value:h,output:p.parens?")":"\\)"}),Fe("parens");continue}if(h==="["){if(n.nobracket===!0||!Ae().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Rt("closing","]"));h=`\\${h}`}else pn("brackets");w({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){w({type:"text",value:h,output:`\\${h}`});continue}if(p.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Rt("opening","["));w({type:"text",value:h,output:`\\${h}`});continue}Fe("brackets");let y=_.value.slice(1);if(_.posix!==!0&&y[0]==="^"&&!y.includes("/")&&(h=`/${h}`),_.value+=h,dn({value:h}),n.literalBrackets===!1||oe.hasRegexChars(y))continue;let P=oe.escapeRegex(_.value);if(p.output=p.output.slice(0,-_.value.length),n.literalBrackets===!0){p.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,p.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){pn("braces");let y={type:"brace",value:h,output:"(",outputIndex:p.output.length,tokensIndex:p.tokens.length};U.push(y),w(y);continue}if(h==="}"){let y=U[U.length-1];if(n.nobrace===!0||!y){w({type:"text",value:h,output:h});continue}let P=")";if(y.dots===!0){let z=i.slice(),re=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&re.unshift(z[G].value);P=xE(re,n),p.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=p.output.slice(0,y.outputIndex),re=p.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",p.output=z;for(let G of re)p.output+=G.output||G.value}w({type:"brace",value:h,output:P}),Fe("braces"),U.pop();continue}if(h==="|"){I.length>0&&I[I.length-1].conditions++,w({type:"text",value:h});continue}if(h===","){let y=h,P=U[U.length-1];P&&ue[ue.length-1]==="braces"&&(P.comma=!0,y="|"),w({type:"comma",value:h,output:y});continue}if(h==="/"){if(_.type==="dot"&&p.index===p.start+1){p.start=p.index+1,p.consumed="",p.output="",i.pop(),_=s;continue}w({type:"slash",value:h,output:m});continue}if(h==="."){if(p.braces>0&&_.type==="dot"){_.value==="."&&(_.output=d);let y=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,y.dots=!0;continue}if(p.braces+p.parens===0&&_.type!=="bos"&&_.type!=="slash"){w({type:"text",value:h,output:d});continue}w({type:"dot",value:h,output:d});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){mn("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!oe.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(Ae()))&&(z=`\\${h}`),w({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){w({type:"qmark",value:h,output:M});continue}w({type:"qmark",value:h,output:x});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){mn("negate",h);continue}if(n.nonegate!==!0&&p.index===0){Td();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){mn("plus",h);continue}if(_&&_.value==="("||n.regex===!1){w({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||p.parens>0){w({type:"plus",value:h});continue}w({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){w({type:"at",extglob:!0,value:h,output:""});continue}w({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let y=OE.exec(Ae());y&&(h+=y[0],p.index+=y[0].length),w({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,p.backtrack=!0,p.globstar=!0,le(h);continue}let R=Ae();if(n.noextglob!==!0&&/^\([^?]/.test(R)){mn("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){le(h);continue}let y=_.prev,P=y.prev,z=y.type==="slash"||y.type==="bos",re=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||R[0]&&R[0]!=="/")){w({type:"star",value:h,output:""});continue}let G=p.braces>0&&(y.type==="comma"||y.type==="brace"),Ie=I.length&&(y.type==="pipe"||y.type==="paren");if(!z&&y.type!=="paren"&&!G&&!Ie){w({type:"star",value:h,output:""});continue}for(;R.slice(0,3)==="/**";){let Oe=e[p.index+4];if(Oe&&Oe!=="/")break;R=R.slice(3),le("/**",3)}if(y.type==="bos"&&se()){_.type="globstar",_.value+=h,_.output=D(n),p.output=_.output,p.globstar=!0,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&!re&&se()){p.output=p.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,p.globstar=!0,p.output+=y.output+_.output,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&R[0]==="/"){let Oe=R[1]!==void 0?"|$":"";p.output=p.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=`${D(n)}${m}|${m}${Oe})`,_.value+=h,p.output+=y.output+_.output,p.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}if(y.type==="bos"&&R[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${m}|${D(n)}${m})`,p.output=_.output,p.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}p.output=p.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,p.output+=_.output,p.globstar=!0,le(h);continue}let J={type:"star",value:h,output:H};if(n.bash===!0){J.output=".*?",(_.type==="bos"||_.type==="slash")&&(J.output=O+J.output),w(J);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){J.output=h,w(J);continue}(p.index===p.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(p.output+=A,_.output+=A):n.dot===!0?(p.output+=T,_.output+=T):(p.output+=O,_.output+=O),F()!=="*"&&(p.output+=g,_.output+=g)),w(J)}for(;p.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Rt("closing","]"));p.output=oe.escapeLast(p.output,"["),Fe("brackets")}for(;p.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Rt("closing",")"));p.output=oe.escapeLast(p.output,"("),Fe("parens")}for(;p.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Rt("closing","}"));p.output=oe.escapeLast(p.output,"{"),Fe("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.type==="bracket")&&w({type:"maybe_slash",value:"",output:`${m}?`}),p.backtrack===!0){p.output="";for(let R of p.tokens)p.output+=R.output!=null?R.output:R.value,R.suffix&&(p.output+=R.suffix)}return p};es.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(fr,n.maxLength):fr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=_l[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=en.globChars(s),S=n.dot?d:u,C=n.dot?f:u,A=n.capture?"":"?:",T={negated:!1,prefix:""},x=n.bash===!0?".*?":m;n.capture&&(x=`(${x})`);let M=O=>O.noglobstar===!0?x:`(${A}(?:(?!${g}${O.dot?l:i}).)*?)`,k=O=>{switch(O){case"*":return`${S}${c}${x}`;case".*":return`${i}${c}${x}`;case"*.*":return`${S}${x}${i}${c}${x}`;case"*/*":return`${S}${x}${a}${c}${C}${x}`;case"**":return S+M(n);case"**/*":return`(?:${S}${M(n)}${a})?${C}${c}${x}`;case"**/*.*":return`(?:${S}${M(n)}${a})?${C}${x}${i}${c}${x}`;case"**/.*":return`(?:${S}${M(n)}${a})?${i}${c}${x}`;default:{let N=/^(.*?)\.(\w+)$/.exec(O);if(!N)return;let H=k(N[1]);return H?H+i+N[2]:void 0}}},K=oe.removePrefix(e,T),D=k(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};El.exports=es});var Cl=W((Fb,Rl)=>{"use strict";var ME=$e("path"),LE=gl(),ts=yl(),ns=Zt(),vE=qt(),HE=e=>e&&typeof e=="object"&&!Array.isArray(e),Q=(e,t,n=!1)=>{if(Array.isArray(e)){let u=e.map(f=>Q(f,t,n));return f=>{for(let m of u){let g=m(f);if(g)return g}return!1}}let r=HE(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let o=t||{},s=ns.isWindows(t),i=r?Q.compileRe(e,t):Q.makeRe(e,t,!1,!0),a=i.state;delete i.state;let c=()=>!1;if(o.ignore){let u={...t,ignore:null,onMatch:null,onResult:null};c=Q(o.ignore,u,n)}let l=(u,d=!1)=>{let{isMatch:f,match:m,output:g}=Q.test(u,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:u,output:g,match:m,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,d?S:!1):c(u)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,d?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),d?S:!0)};return n&&(l.state=a),l};Q.test=(e,t,n,{glob:r,posix:o}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=n||{},i=s.format||(o?ns.toPosixSlashes:null),a=e===r,c=a&&i?i(e):e;return a===!1&&(c=i?i(e):e,a=c===r),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Q.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};Q.matchBase=(e,t,n,r=ns.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(ME.basename(e));Q.isMatch=(e,t,n)=>Q(t,n)(e);Q.parse=(e,t)=>Array.isArray(e)?e.map(n=>Q.parse(n,t)):ts(e,{...t,fastpaths:!1});Q.scan=(e,t)=>LE(e,t);Q.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let o=t||{},s=o.contains?"":"^",i=o.contains?"":"$",a=`${s}(?:${e.output})${i}`;e&&e.negated===!0&&(a=`^(?!${a}).*$`);let c=Q.toRegex(a,t);return r===!0&&(c.state=e),c};Q.makeRe=(e,t={},n=!1,r=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(o.output=ts.fastpaths(e,t)),o.output||(o=ts(e,t)),Q.compileRe(o,t,n,r)};Q.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(n){if(t&&t.debug===!0)throw n;return/$^/}};Q.constants=vE;Rl.exports=Q});var Il=W(($b,Al)=>{"use strict";Al.exports=Cl()});var Pl=W((jb,kl)=>{"use strict";var bl=$e("util"),xl=nl(),Pe=Il(),rs=Zt(),Ol=e=>e===""||e==="./",Tl=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},V=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=u=>{s.add(u.output),n&&n.onResult&&n.onResult(u)};for(let u=0;u<t.length;u++){let d=Pe(String(t[u]),{...n,onResult:a},!0),f=d.state.negated||d.state.negatedExtglob;f&&i++;for(let m of e){let g=d(m,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let l=(i===t.length?[...s]:[...o]).filter(u=>!r.has(u));if(n&&l.length===0){if(n.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(n.nonull===!0||n.nullglob===!0)return n.unescape?t.map(u=>u.replace(/\\/g,"")):t}return l};V.match=V;V.matcher=(e,t)=>Pe(e,t);V.isMatch=(e,t,n)=>Pe(t,n)(e);V.any=V.isMatch;V.not=(e,t,n={})=>{t=[].concat(t).map(String);let r=new Set,o=[],s=a=>{n.onResult&&n.onResult(a),o.push(a.output)},i=new Set(V(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};V.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${bl.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(Ol(e)||Ol(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return V.isMatch(e,t,{...n,contains:!0})};V.matchKeys=(e,t,n)=>{if(!rs.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=V(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};V.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(r.some(i=>s(i)))return!0}return!1};V.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};V.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${bl.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=rs.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?rs.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};V.makeRe=(...e)=>Pe.makeRe(...e);V.scan=(...e)=>Pe.scan(...e);V.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of xl(String(r),t))n.push(Pe.parse(o,t));return n};V.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Tl(e)?[e]:xl(e,t)};V.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return V.braces(e,{...t,expand:!0})};V.hasBraces=Tl;kl.exports=V});import{existsSync as zd,readFileSync as Wd}from"node:fs";import{hostname as ti,userInfo as Vd}from"node:os";import{createHash as Hd,randomBytes as Ud}from"node:crypto";import{existsSync as kr,mkdirSync as Dd,readdirSync as Fd,readFileSync as $d,renameSync as Ws,statSync as Xs,unlinkSync as Vs,writeFileSync as jd}from"node:fs";import{basename as Bd,dirname as Js,join as qs,relative as Kd}from"node:path";function b(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
14
14
  `)}function Pt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Nt(e){return Hd("sha256").update(e).digest("hex").slice(0,32)}function pe(e,t){Dd(Js(e),{recursive:!0});let n=qs(Js(e),`.${Bd(e)}.${process.pid}.${Ud(4).toString("hex")}.tmp`);try{jd(n,t,"utf8");try{Ws(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Vs(e),Ws(n,e);return}throw r}}catch(r){try{Vs(n)}catch{}throw r}}function gn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Pr(){process.stdout.write('{"continue":true}')}function L(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Nr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>{e(t)}),process.stdin.on("error",()=>{e(t)}),process.stdin.resume()})}async function _n(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function Se(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,l=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:l,spawnFailed:l===void 0}}}async function ee(e,t,n=3e3,r={}){let o=await Se(e,t,n,r);return o.ok?o.stdout:""}async function wr(e=process.cwd()){let t=await Se("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(L("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;b(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=L("CURSOR_PROJECT_DIR")??L("CLAUDE_PROJECT_DIR");if(n&&kr(n)){let r=await Se("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function Mr(e=process.cwd()){return(await wr(e)).root}function me(e,t){try{return JSON.parse(e)}catch{return t}}var Ys=new Map;function hn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Gd(e){let t;try{t=$d(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(hn(t))}}catch{return{ok:!1,reason:"parse"}}}function Zs(e){let t=Ys.get(e);if(t!==void 0)return t;let n=Gd(e);return Ys.set(e,n),n}function Qs(e){return Zs(e)}function te(e,t){let n=Zs(e);return n.ok?n.value:t}function qe(e){return typeof e=="string"?e:""}function Me(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function v(e,t){let n=Me(e,t);return typeof n=="string"?n:""}var Be=500;function ei(e,t=2){if(!kr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Fd(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=qs(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:Kd(e,l),size:Xs(l).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Lr(e){return kr(e)?{present:!0,size:Xs(e).size}:{present:!1,size:0}}function lt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function ni(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var Jd=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Yd(e){return Jd.some(t=>!!Y(t,e))}function Xd(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(zd("/.dockerenv")||Wd("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function ri(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function qd(e,t=process.platform){return ri(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Zd(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Qd(e){return e==="linux"}function Y(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return L(e)}function ep(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!tp(Y("CURSOR_VERSION",n))}function tp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function vr(e){if(Zd(e.sessionId))return!0;let t=e.hostname??ti(),n=e.osUser??si(e.env);return ep(t,n,e.env)}function np(e){return lt(Y("CURSOR_AGENT",e.env))?!0:vr(e)}function rp(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(Y("TERM",e)??Y("TERM_PROGRAM",e))||(Y("SSH_TTY",e)??Y("SSH_CONNECTION",e))||(Y("__CFBundleIdentifier",e)??Y("XPC_SERVICE_NAME",e))||ri(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!Y(t,e))||Y("SESSIONNAME",e))}function wt(e={}){let t=e.env;if(Y("GITHUB_ACTIONS",t))return"github_actions";if(lt(Y("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!qd(t,n)&&np(e)&&(lt(Y("CURSOR_AGENT",t))||Qd(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(Yd(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Xd(t)?"container":rp(t)?"interactive":"unknown"}async function oi(){return await ee("systemd-detect-virt",[],1e3)}function si(e=process.env,t=Vd){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function ii(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await ee("sw_vers",["-productVersion"],1e3);else if(process.platform==="linux"){try{let{readFileSync:s}=await import("node:fs"),i=s("/etc/os-release","utf8"),a=i.match(/^PRETTY_NAME="?([^"\n]+)"?/m)?.[1],c=i.match(/^VERSION_ID="?([^"\n]+)"?/m)?.[1];t=a??c??""}catch{t=await ee("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await ee("uname",["-r"],1e3))}else t=await ee("ver",[],1e3);let n=si(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await ee("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function Sn(){return ti()}import{createHash as mp}from"node:crypto";import{homedir as gp}from"node:os";import{dirname as MA,join as _p,parse as LA,resolve as vA}from"node:path";var ai="EV_AI_LAUNCHER_VERSION";var ci="EV_AI_HOOK_SOURCE",ui="EV_AI_HOOK_FALLBACK_REASON",li="EV_AI_LAUNCHER_SCOPE",Hr="EV_AI_LAUNCHER_READY_FD";var fi="--defer-user-spec",En="--cap",Mt="--slot";var di=Buffer.from([1]);var mA=1024*1024,gA=4*1024*1024,_A=64*1024,hA=64*1024,SA=64*1024;var Ur=4096,EA=4*1024*1024;import{join as Si}from"node:path";import{open as pi,mkdir as op,readFile as sp,readdir as ip,rename as ap,stat as cp,rmdir as up,unlink as lp,utimes as fp}from"node:fs/promises";var yn=new WeakMap;function gi(e){if(e&&typeof e=="object"&&"code"in e)return e}function ft(e){return gi(e)?.code==="ENOENT"}function Lt(e){return gi(e)?.code==="EEXIST"}async function _i(e,t){try{return await e.readdir(t)}catch(n){if(ft(n))return[];throw n}}function hi(){return{async open(e,t){let n=await pi(e,t),r={path:e};return yn.set(r,n),r},async write(e,t){let n=mi(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await mi(e).sync()},async close(e){let t=yn.get(e);yn.delete(e),t&&await t.close()},rename:ap,async readdir(e){return ip(e)},readFile:sp,async stat(e){let t=await cp(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await op(e,t)},unlink:lp,rmdir:up,utimes:fp,async fsyncDir(e){if(process.platform==="win32")return;let t=await pi(e,"r");try{await t.sync()}finally{await t.close()}}}}function mi(e){let t=yn.get(e);if(!t)throw new Error("closed");return t}var Ei=4,yi=10;function Rn(e=process.platform){return e==="win32"?Ei:yi}var Cn=6e4,vt=2e3,Ri="slots",Dr=64;function Ci(e){return Si(e,".ev-ai","agent-hook",Ri)}function An(e,t){return Si(e,`slot-${t}`)}function In(e,t){return`${e}
15
15
  ${t}
16
- `}function Fr(e){let t=e===void 0?null:/^(\d+):(\d+)$/.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&Number.isSafeInteger(r)?{index:n,acquiredAtMs:r}:void 0}function Ai(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var dp=/^(\d+)\n(\d+)\n$/;function pp(e){let t=dp.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function Ii(e,t,n){let r=pp(e);if(!r)return Math.abs(n-t)<vt;let o=n-r.acquiredAtMs;return o<-vt||o>=Cn?!1:Ai(r.pid)}var xi="https://hooks.ev-ai.ai",Ti=".claude/ev-ai-runtime-report.json",ki="config.json",hp="max_concurrent_hooks",FA=1024*1024,Sp=new Set(["localhost","127.0.0.1","[::1]","::1"]),Ep=["claude","cursor","codex"],Pi=[Ti,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],$r=/^[A-Za-z0-9._~-]+$/;function On(e){return e!==void 0&&Ep.includes(e)}function Ni(e){if(!e||typeof e!="object")return;let t=e[hp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function Oi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function dt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function jr(e){let t,n,r,o,s,i,a;for(let c=0;c<e.length;c++){let l=e[c];if(l!==void 0){if(l==="--runner"){let u=dt(e,c);t=u.value,c=u.next;continue}if(l.startsWith("--runner=")){t=l.slice(9);continue}if(l==="--url"){let u=dt(e,c);u.value&&(r=u.value),c=u.next;continue}if(l.startsWith("--url=")){r=l.slice(6);continue}if(l==="--token"){let u=dt(e,c);u.value&&(o=u.value),c=u.next;continue}if(l.startsWith("--token=")){o=l.slice(8);continue}if(l==="--base-url"){let u=dt(e,c);u.value&&(s=u.value),c=u.next;continue}if(l.startsWith("--base-url=")){s=l.slice(11);continue}if(l===En){let u=dt(e,c);i=Oi(u.value)??i,c=u.next;continue}if(l.startsWith(`${En}=`)){i=Oi(l.slice(En.length+1))??i;continue}if(l===Mt){let u=dt(e,c);a=Fr(u.value)??a,c=u.next;continue}if(l.startsWith(`${Mt}=`)){a=Fr(l.slice(Mt.length+1))??a;continue}l!==fi&&!l.startsWith("-")&&n===void 0&&(n=l)}}return{runner:On(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{},...a!==void 0?{slot:a}:{}}}function bn(e,t=xi){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Ht(e=gp()){return _p(e,".ev-ai",ki)}function wi(e,t){return{...e,...t}}function bi(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function xn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Sp.has(t.hostname):!1}catch{return!1}}function Br(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function Tn(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!xn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Br(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!$r.test(n))return`org token must match ${$r.source} (got: ${n})`;if(bi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(bi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Kr(e){return new URL(e).toString()}function Gr(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?bn(n):""}function kn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function Mi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=bn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Tn(n);return r?{problem:r}:{url:Kr(n)}}var zr="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Li(e){let t=e[zr]?.trim();if(!t)return{};let n=Tn(t);return n?{problem:n}:{url:Kr(t)}}function Ut(e){if(Tn(e))return;let t;try{t=new URL(e)}catch{return}let n=Br(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return mp("sha256").update(i).digest("hex").slice(0,32)}var Pn=2;var pt="ev-ai-agent-hook";function yp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function vi(e){let t=yp(e);return t===pt||t===`${pt}.exe`}var jA=`current/${pt}`,BA=`.ev-ai/agent-hook/${pt}`,Hi=5e3,Ui=5e3,Wr=3e3;var Nn=3e3,Di=1500,Fi=4*1024,Vr=256*1024,Rp=4*1024,$i=32*1024,Jr="1.3.6",KA=`@ev-ai/agent-hook@${Jr}`;var ji={claude:"CLAUDE_PLUGIN_ROOT",cursor:"CURSOR_PLUGIN_ROOT",codex:"PLUGIN_ROOT"};import{existsSync as O_,mkdirSync as b_,readdirSync as x_,readFileSync as T_,unlinkSync as pc,writeFileSync as k_}from"node:fs";import{homedir as mc}from"node:os";import{join as go}from"node:path";import{createHash as Wi,randomBytes as Ip}from"node:crypto";import{existsSync as Vi,mkdirSync as Yr,readFileSync as Ji,unlinkSync as Yi,writeFileSync as Xi}from"node:fs";import{homedir as Xr}from"node:os";import{dirname as wn,join as qr,resolve as Op}from"node:path";var Cp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Ap=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function fe(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||Ap.has(n)||r.includes("[bot]")||Cp.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var bp="installation.json",xp="cloud-bootstrap.lock",Tp=6e4;function qi(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ee(e=Xr()){return qr(e,".ev-ai","agent-hook")}function kp(e=Xr()){return qr(Ee(e),bp)}function Zi(e){return qr(wn(e),xp)}function Qi(){return Ip(8).toString("hex")}function mt(e){return Wi("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function ea(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function Pp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!ea(t)){b(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function ta(e,t){return e&&ea(e)?e:(e&&b(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Pp(t))}function Np(e){return/^[0-9a-f]{16}$/.test(e)}function wp(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return mt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return mt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return mt(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return mt(`gitlab|${t}|${n}`)}return null}var Mp="cursoragent@cursor.com";function Lp(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Mp?null:t}function vp(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Hp(e){return Pt(e).replace(/\.git$/i,"").toLowerCase()}async function Up(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Hp(t):e}async function Dp(e){let t=$(await ee("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!fe(null,t))return t;let n=$(await ee("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!fe(null,n)?n:null}function Fp(e,t){let n=vp(e,t);return n?mt(`cursor_cloud|${n}|${Lp(e)??""}`):null}async function $p(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Up(n),o=await Dp(n);return mt(`claude_remote|${r}|${o??""}`)}function Bi(e,t){let n=ta(e,t);if(n)return n;let r=wp(t);return r||Qi()}async function jp(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Op(e);return Wi("sha256").update(n).digest("hex").slice(0,16)}function Bp(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function Kp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Bp(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function Ze(e){if(Vi(e))try{return Kp(Ji(e,"utf8"))}catch{}}function Zr(e){return Ze(e)}function na(e,t,n){let r=Ze(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{pe(e,`${JSON.stringify(o,null,2)}
16
+ `}function Fr(e){let t=e===void 0?null:/^(\d+):(\d+)$/.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&Number.isSafeInteger(r)?{index:n,acquiredAtMs:r}:void 0}function Ai(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var dp=/^(\d+)\n(\d+)\n$/;function pp(e){let t=dp.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function Ii(e,t,n){let r=pp(e);if(!r)return Math.abs(n-t)<vt;let o=n-r.acquiredAtMs;return o<-vt||o>=Cn?!1:Ai(r.pid)}var xi="https://hooks.ev-ai.ai",Ti=".claude/ev-ai-runtime-report.json",ki="config.json",hp="max_concurrent_hooks",FA=1024*1024,Sp=new Set(["localhost","127.0.0.1","[::1]","::1"]),Ep=["claude","cursor","codex"],Pi=[Ti,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],$r=/^[A-Za-z0-9._~-]+$/;function On(e){return e!==void 0&&Ep.includes(e)}function Ni(e){if(!e||typeof e!="object")return;let t=e[hp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function Oi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function dt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function jr(e){let t,n,r,o,s,i,a;for(let c=0;c<e.length;c++){let l=e[c];if(l!==void 0){if(l==="--runner"){let u=dt(e,c);t=u.value,c=u.next;continue}if(l.startsWith("--runner=")){t=l.slice(9);continue}if(l==="--url"){let u=dt(e,c);u.value&&(r=u.value),c=u.next;continue}if(l.startsWith("--url=")){r=l.slice(6);continue}if(l==="--token"){let u=dt(e,c);u.value&&(o=u.value),c=u.next;continue}if(l.startsWith("--token=")){o=l.slice(8);continue}if(l==="--base-url"){let u=dt(e,c);u.value&&(s=u.value),c=u.next;continue}if(l.startsWith("--base-url=")){s=l.slice(11);continue}if(l===En){let u=dt(e,c);i=Oi(u.value)??i,c=u.next;continue}if(l.startsWith(`${En}=`)){i=Oi(l.slice(En.length+1))??i;continue}if(l===Mt){let u=dt(e,c);a=Fr(u.value)??a,c=u.next;continue}if(l.startsWith(`${Mt}=`)){a=Fr(l.slice(Mt.length+1))??a;continue}l!==fi&&!l.startsWith("-")&&n===void 0&&(n=l)}}return{runner:On(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{},...a!==void 0?{slot:a}:{}}}function bn(e,t=xi){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Ht(e=gp()){return _p(e,".ev-ai",ki)}function wi(e,t){return{...e,...t}}function bi(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function xn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Sp.has(t.hostname):!1}catch{return!1}}function Br(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function Tn(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!xn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Br(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!$r.test(n))return`org token must match ${$r.source} (got: ${n})`;if(bi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(bi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Kr(e){return new URL(e).toString()}function Gr(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?bn(n):""}function kn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function Mi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=bn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Tn(n);return r?{problem:r}:{url:Kr(n)}}var zr="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Li(e){let t=e[zr]?.trim();if(!t)return{};let n=Tn(t);return n?{problem:n}:{url:Kr(t)}}function Ut(e){if(Tn(e))return;let t;try{t=new URL(e)}catch{return}let n=Br(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return mp("sha256").update(i).digest("hex").slice(0,32)}var Pn=2;var pt="ev-ai-agent-hook";function yp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function vi(e){let t=yp(e);return t===pt||t===`${pt}.exe`}var jA=`current/${pt}`,BA=`.ev-ai/agent-hook/${pt}`,Hi=5e3,Ui=5e3,Wr=3e3;var Nn=3e3,Di=1500,Fi=4*1024,Vr=256*1024,Rp=4*1024,$i=32*1024,Jr="1.3.7",KA=`@ev-ai/agent-hook@${Jr}`;var ji={claude:"CLAUDE_PLUGIN_ROOT",cursor:"CURSOR_PLUGIN_ROOT",codex:"PLUGIN_ROOT"};import{existsSync as O_,mkdirSync as b_,readdirSync as x_,readFileSync as T_,unlinkSync as pc,writeFileSync as k_}from"node:fs";import{homedir as mc}from"node:os";import{join as go}from"node:path";import{createHash as Wi,randomBytes as Ip}from"node:crypto";import{existsSync as Vi,mkdirSync as Yr,readFileSync as Ji,unlinkSync as Yi,writeFileSync as Xi}from"node:fs";import{homedir as Xr}from"node:os";import{dirname as wn,join as qr,resolve as Op}from"node:path";var Cp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Ap=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function fe(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||Ap.has(n)||r.includes("[bot]")||Cp.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var bp="installation.json",xp="cloud-bootstrap.lock",Tp=6e4;function qi(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ee(e=Xr()){return qr(e,".ev-ai","agent-hook")}function kp(e=Xr()){return qr(Ee(e),bp)}function Zi(e){return qr(wn(e),xp)}function Qi(){return Ip(8).toString("hex")}function mt(e){return Wi("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function ea(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function Pp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!ea(t)){b(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function ta(e,t){return e&&ea(e)?e:(e&&b(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Pp(t))}function Np(e){return/^[0-9a-f]{16}$/.test(e)}function wp(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return mt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return mt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return mt(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return mt(`gitlab|${t}|${n}`)}return null}var Mp="cursoragent@cursor.com";function Lp(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Mp?null:t}function vp(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Hp(e){return Pt(e).replace(/\.git$/i,"").toLowerCase()}async function Up(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Hp(t):e}async function Dp(e){let t=$(await ee("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!fe(null,t))return t;let n=$(await ee("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!fe(null,n)?n:null}function Fp(e,t){let n=vp(e,t);return n?mt(`cursor_cloud|${n}|${Lp(e)??""}`):null}async function $p(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Up(n),o=await Dp(n);return mt(`claude_remote|${r}|${o??""}`)}function Bi(e,t){let n=ta(e,t);if(n)return n;let r=wp(t);return r||Qi()}async function jp(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Op(e);return Wi("sha256").update(n).digest("hex").slice(0,16)}function Bp(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function Kp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Bp(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function Ze(e){if(Vi(e))try{return Kp(Ji(e,"utf8"))}catch{}}function Zr(e){return Ze(e)}function na(e,t,n){let r=Ze(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{pe(e,`${JSON.stringify(o,null,2)}
17
17
  `)}catch(s){let i=s instanceof Error?s.message:String(s);b(`WARN: operator identity cache write failed open: ${i}`)}}function ra(e,t=Date.now()){if(!e)return!0;if(Ze(e)?.operator_identity_hash)return!1;let n=Zi(e);try{if(Vi(n)){let r=Number.NaN;try{r=Number(Ji(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<Tp)return!1;try{Yi(n)}catch{}}}catch{}try{return Yr(wn(n),{recursive:!0}),Xi(n,`${t}
18
18
  `,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(aa(r))return!1;let o=r instanceof Error?r.message:String(r);return b(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function oa(e){if(e)try{Yi(Zi(e))}catch{}}function sa(e,t){let r=Ze(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function ia(e,t,n){if(!n)return;let r=Ze(e);if(!r||r.platform_agent_ids?.[t]===n)return;let o={installation_id:r.installation_id,platform_agent_ids:{...r.platform_agent_ids,[t]:n},...r.operator_identity_hash?{operator_identity_hash:r.operator_identity_hash}:{},...r.operator_identity_sent_at?{operator_identity_sent_at:r.operator_identity_sent_at}:{}};try{pe(e,`${JSON.stringify(o,null,2)}
19
19
  `)}catch(s){let i=s instanceof Error?s.message:String(s);b(`WARN: platform_agent_id cache write failed open: ${i}`)}}function aa(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Gp(e,t){Yr(wn(e),{recursive:!0}),Xi(e,`${JSON.stringify(t,null,2)}
@@ -1326,7 +1326,7 @@ var HOOK_INPUT_ALLOWLIST_MAX_BYTES = 4 * 1024;
1326
1326
  var HOOK_INPUT_FULL_MAX_BYTES = 256 * 1024;
1327
1327
  var HOOK_INPUT_MCP_MAX_BYTES = 4 * 1024;
1328
1328
  var GZIP_MIN_BYTES = 32 * 1024;
1329
- var PACKAGE_VERSION = "1.3.6";
1329
+ var PACKAGE_VERSION = "1.3.7";
1330
1330
  var NPX_PACKAGE_SPEC = `@ev-ai/agent-hook@${PACKAGE_VERSION}`;
1331
1331
  var HOOK_STATUS_MESSAGE = "ev-ai runtime report";
1332
1332
 
@@ -1426,6 +1426,8 @@ var CURSOR_WIRED_HOOK_EVENTS = [
1426
1426
  ];
1427
1427
 
1428
1428
  // src/install/plugin-hooks.ts
1429
+ var CLAUDE_HOOK_TIMEOUT_SECONDS = 5;
1430
+ var CLAUDE_SESSION_START_TIMEOUT_SECONDS = 10;
1429
1431
  function buildClaudePluginHooks(command) {
1430
1432
  return { hooks: desiredClaudeHookGroups(command) };
1431
1433
  }
@@ -1443,8 +1445,8 @@ function buildCodexPluginHooks(command) {
1443
1445
  }
1444
1446
 
1445
1447
  // src/install/managed-hooks-snippet.ts
1446
- var CLAUDE_MANAGED_HOOK_TIMEOUT_SECONDS = 5;
1447
- var CLAUDE_MANAGED_SESSION_START_TIMEOUT_SECONDS = 10;
1448
+ var CLAUDE_MANAGED_HOOK_TIMEOUT_SECONDS = CLAUDE_HOOK_TIMEOUT_SECONDS;
1449
+ var CLAUDE_MANAGED_SESSION_START_TIMEOUT_SECONDS = CLAUDE_SESSION_START_TIMEOUT_SECONDS;
1448
1450
  function withClaudeManagedHookLimits(doc) {
1449
1451
  const hooks = {};
1450
1452
  for (const [eventName, groups] of Object.entries(doc.hooks)) {
@@ -1315,7 +1315,7 @@ var HOOK_INPUT_ALLOWLIST_MAX_BYTES = 4 * 1024;
1315
1315
  var HOOK_INPUT_FULL_MAX_BYTES = 256 * 1024;
1316
1316
  var HOOK_INPUT_MCP_MAX_BYTES = 4 * 1024;
1317
1317
  var GZIP_MIN_BYTES = 32 * 1024;
1318
- var PACKAGE_VERSION = "1.3.6";
1318
+ var PACKAGE_VERSION = "1.3.7";
1319
1319
  var NPX_PACKAGE_SPEC = `@ev-ai/agent-hook@${PACKAGE_VERSION}`;
1320
1320
  var HOOK_STATUS_MESSAGE = "ev-ai runtime report";
1321
1321
 
@@ -1415,6 +1415,8 @@ var CURSOR_WIRED_HOOK_EVENTS = [
1415
1415
  ];
1416
1416
 
1417
1417
  // src/install/plugin-hooks.ts
1418
+ var CLAUDE_HOOK_TIMEOUT_SECONDS = 5;
1419
+ var CLAUDE_SESSION_START_TIMEOUT_SECONDS = 10;
1418
1420
  function buildClaudePluginHooks(command) {
1419
1421
  return { hooks: desiredClaudeHookGroups(command) };
1420
1422
  }
@@ -1432,8 +1434,8 @@ function buildCodexPluginHooks(command) {
1432
1434
  }
1433
1435
 
1434
1436
  // src/install/managed-hooks-snippet.ts
1435
- var CLAUDE_MANAGED_HOOK_TIMEOUT_SECONDS = 5;
1436
- var CLAUDE_MANAGED_SESSION_START_TIMEOUT_SECONDS = 10;
1437
+ var CLAUDE_MANAGED_HOOK_TIMEOUT_SECONDS = CLAUDE_HOOK_TIMEOUT_SECONDS;
1438
+ var CLAUDE_MANAGED_SESSION_START_TIMEOUT_SECONDS = CLAUDE_SESSION_START_TIMEOUT_SECONDS;
1437
1439
  function withClaudeManagedHookLimits(doc) {
1438
1440
  const hooks = {};
1439
1441
  for (const [eventName, groups] of Object.entries(doc.hooks)) {
@@ -26,7 +26,7 @@ var HOOK_INPUT_ALLOWLIST_MAX_BYTES = 4 * 1024;
26
26
  var HOOK_INPUT_FULL_MAX_BYTES = 256 * 1024;
27
27
  var HOOK_INPUT_MCP_MAX_BYTES = 4 * 1024;
28
28
  var GZIP_MIN_BYTES = 32 * 1024;
29
- var PACKAGE_VERSION = "1.3.6";
29
+ var PACKAGE_VERSION = "1.3.7";
30
30
  var NPX_PACKAGE_SPEC = `@ev-ai/agent-hook@${PACKAGE_VERSION}`;
31
31
  var HOOK_STATUS_MESSAGE = "ev-ai runtime report";
32
32
  var PLUGIN_ROOT_VARIABLE = {
@@ -143,9 +143,28 @@ function pluginLauncherCodexCommand() {
143
143
  commandWindows: pluginLauncherCodexWindowsCommand()
144
144
  };
145
145
  }
146
+ var CLAUDE_HOOK_TIMEOUT_SECONDS = 5;
147
+ var CLAUDE_SESSION_START_TIMEOUT_SECONDS = 10;
146
148
  function buildClaudePluginHooks(command) {
147
149
  return { hooks: desiredClaudeHookGroups(command) };
148
150
  }
151
+ function buildClaudeMarketplacePluginHooks() {
152
+ const hooks = {};
153
+ for (const [eventName, groups] of Object.entries(desiredClaudeHookGroups(claudePluginCommand()))) {
154
+ const timeout = isSessionStartEvent(eventName) ? CLAUDE_SESSION_START_TIMEOUT_SECONDS : CLAUDE_HOOK_TIMEOUT_SECONDS;
155
+ hooks[eventName] = groups.map((group) => ({
156
+ ...group,
157
+ hooks: group.hooks.map(({ type, command, ...rest }) => ({
158
+ type,
159
+ timeout,
160
+ async: true,
161
+ command,
162
+ ...rest
163
+ }))
164
+ }));
165
+ }
166
+ return { hooks };
167
+ }
149
168
  function buildCursorPluginHooks(command) {
150
169
  const hooks = {};
151
170
  for (const eventName of CURSOR_WIRED_HOOK_EVENTS) {
@@ -184,7 +203,7 @@ function writeJson(path, value) {
184
203
  }
185
204
  function writeMarketplacePluginHooks(marketplaceRoot) {
186
205
  const paths = marketplacePluginHookPaths(marketplaceRoot);
187
- writeJson(paths.claude, buildClaudePluginHooks(claudePluginCommand()));
206
+ writeJson(paths.claude, buildClaudeMarketplacePluginHooks());
188
207
  writeJson(paths.cursor, buildCursorPluginHooks(pluginLauncherCommands("cursor")));
189
208
  writeJson(paths.codex, buildCodexPluginHooks(pluginLauncherCodexCommand()));
190
209
  return paths;
@@ -220,18 +239,21 @@ function copyMarketplacePluginPayload(marketplaceRoot, packageRoot) {
220
239
  }
221
240
  function expectedMarketplacePluginHooks() {
222
241
  return {
223
- claude: buildClaudePluginHooks(claudePluginCommand()),
242
+ claude: buildClaudeMarketplacePluginHooks(),
224
243
  cursor: buildCursorPluginHooks(pluginLauncherCommands("cursor")),
225
244
  codex: buildCodexPluginHooks(pluginLauncherCodexCommand())
226
245
  };
227
246
  }
228
247
  export {
248
+ CLAUDE_HOOK_TIMEOUT_SECONDS,
249
+ CLAUDE_SESSION_START_TIMEOUT_SECONDS,
229
250
  MARKETPLACE_NAME,
230
251
  MARKETPLACE_PLUGIN_DIRS,
231
252
  MARKETPLACE_PLUGIN_NAME,
232
253
  PLUGIN_HOOK_ENTRY,
233
254
  PLUGIN_PACKAGE_FILE,
234
255
  PLUGIN_PAYLOAD_FILES,
256
+ buildClaudeMarketplacePluginHooks,
235
257
  buildClaudePluginHooks,
236
258
  buildCodexPluginHooks,
237
259
  buildCursorPluginHooks,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ev-ai/agent-hook",
3
- "version": "1.3.6",
3
+ "version": "1.3.7",
4
4
  "description": "Cross-runner runtime telemetry hook for Claude Code, Cursor, and Codex",
5
5
  "type": "module",
6
6
  "bin": {