@ev-ai/agent-hook 1.3.5 → 1.3.6
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/COLLECTED-DATA.md +1 -1
- package/README.md +1 -1
- package/dist/cli.mjs +40 -40
- package/dist/hook.mjs +35 -35
- package/dist/launcher-update.mjs +4 -4
- package/dist/launcher.mjs +6 -4
- package/dist/managed-hooks-snippet.cjs +1 -1
- package/dist/managed-hooks-snippet.mjs +1 -1
- package/dist/plugin-hooks.mjs +6 -7
- package/package.json +2 -2
package/dist/hook.mjs
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module';
|
|
2
2
|
const require = __createRequire(import.meta.url);
|
|
3
3
|
|
|
4
|
-
var Cp=Object.create;var Hs=Object.defineProperty;var Ap=Object.getOwnPropertyDescriptor;var Ip=Object.getOwnPropertyNames;var bp=Object.getPrototypeOf,Op=Object.prototype.hasOwnProperty;var $e=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ip(t))!Op.call(e,o)&&o!==n&&Hs(e,o,{get:()=>t[o],enumerable:!(r=Ap(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?Cp(bp(e)):{},xp(t||!e||!e.__esModule?Hs(n,"default",{value:e,enumerable:!0}):n,e));var Nn=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=aa;q.buildMcpFamilyCanonicalKey=gm;q.launchContainsCredentials=hm;q.serializeMcpLaunchIdentity=ca;q.hashMcpLaunchIdentity=Ht;q.projectMcpMissingLaunchIdentity=ym;q.projectMcpLaunchIdentity=Rm;q.maskMcpLaunchForDisplay=Am;q.normalizeMcpToolNames=Im;var mm=$e("node:crypto");q.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";q.MCP_MISSING_LAUNCH_SERIALIZED=`${q.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function Le(e){return e.toLocaleLowerCase("en-US")}function aa(e){return Le(e)}function gm(e){return`interface:${aa(e)}`}var ia=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),_m=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function hm(e){return e.kind==="url"?Sm(e.url):e.kind==="command"?e.arguments.some(t=>_m.test(t)):!1}function Sm(e){try{let t=new URL(e);if(t.username.length>0||t.password.length>0)return!0;for(let n of t.searchParams.keys())if(ia.has(Le(n)))return!0;return!1}catch{let t=e.split("://",2),n=t.length===2?t[1]:e,r=n.indexOf("@"),o=n.indexOf("/");if(r>0&&(o===-1||r<o))return!0;let s=e.split("?",2)[1];return s===void 0?!1:s.split("&").some(i=>{let a=Le(i.split("=",1)[0]??"");return ia.has(a)})}}function ca(e){if(e.kind==="url")return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",mt(Le(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",mt(Le(e.command)),String(t.length),...t.map(mt)].join("|")}return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",mt(e.installationRootExternalKey),mt(e.sourcePath),mt(e.nativeKey)].join("|")}function Ht(e){return(0,mm.createHash)("sha256").update(e).digest("hex")}var Em=Ht(q.MCP_MISSING_LAUNCH_SERIALIZED);function ym(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:Em}}function Rm(e){let t=ca(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:Ht(t)}:e.kind==="command"?{kind:"command",command:Le(e.command),arguments:[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Ht(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Ht(t)}}var Cm=/^(https?:\/\/)([^/?#]*@)/i;function Am(e){return e.replace(Cm,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function Im(e){let t=new Set,n=[];for(let r of e)r.length===0||t.has(r)||(t.add(r),n.push(r));return n.sort((r,o)=>r<o?-1:r>o?1:0),n}});var Mn=W(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.PACKAGE_FIELD_MAX=void 0;xe.npxExecBin=ua;xe.packageNameFromSpec=wn;xe.pinnedPackageVersionFromSpec=la;xe.pinnedPackageVersionFromNpx=Mm;xe.npxPackageSpecs=fa;xe.PACKAGE_FIELD_MAX=128;var bm=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Om=new Set(["-p","--package"]),xm=new Set(["-c","--call"]),Tm=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),km=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Pm=/^--no-/;function Nm(e){return km.has(e)||Pm.test(e)}function ua(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var wm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function wn(e){if(e.length===0||e.length>xe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return bm.test(n)?n:null}function la(e){let t=wn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return wm.test(n)?n:void 0}function Mm(e,t){for(let n of fa(e,t)){let r=la(n);if(r!==void 0)return r}}function fa(e,t){let n=ua(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(xm.has(u))return[];if(Om.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&o.push(l),c===-1&&(i+=1);continue}if(!(c!==-1||Nm(u))){if(Tm.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>wn(i)!==null)?o:[]:s===null||wn(s)===null?[]:[s]}});var pa=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=Wm;var Lm=Nn(),Yr=Mn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var vm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Hm=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Um=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Dm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Fm=new Set(["--from","--spec"]),$m=new Set(["--python","-p","--with","--with-editable","--with-requirements","--index","--index-url","--default-index","--extra-index-url","--find-links","-f","--constraint","-c","--override","--refresh-package","--cache-dir","--directory","--project","--config-file","--color","--exclude-newer","--pip-args","--verbose-pip"]),jm=new Set(["-q","--quiet","-v","--verbose","-n","--native-tls","--offline","--isolated","--preview","--refresh","--reinstall","--upgrade","-U","--force","--system","--system-site-packages","--path","--managed-python","--progress"]),Bm=/^--no-/;function Km(e,t){let n=Dm(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(Fm.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&(o=l),c===-1&&(i+=1);continue}if(!(c!==-1||jm.has(u)||Bm.test(u))){if($m.has(u)){i+=1;continue}return null}}return o??s}function Gm(e){if(e.length===0||e.length>Yr.PACKAGE_FIELD_MAX)return null;let t=e.includes("==")?"==":e.includes("@")?"@":null;if(t===null)return null;let n=e.indexOf(t),r=e.slice(0,n),o=e.slice(n+t.length);return!Hm.test(r)||!Um.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function zm(e){let t=(0,Yr.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return vm.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Wm(e){if(e?.kind!=="command"||(0,Lm.launchContainsCredentials)(e))return;for(let n of(0,Yr.npxPackageSpecs)(e.command,e.arguments)){let r=zm(n);if(r!==null)return r}let t=Km(e.command,e.arguments);if(t!==null)return Gm(t)??void 0}});var Sa=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=Jm;ve.displayPublisherName=Ym;ve.classifyMcpProvenance=og;var ga=Nn(),Xr=Mn();ve.EMPTY_NPM_PUBLISHER="npm:";var da="npm:",Vm=/^[A-Za-z0-9._-]+$/;function Jm(e){return e.startsWith(da)&&e!==ve.EMPTY_NPM_PUBLISHER&&Vm.test(e.slice(da.length))}function Ym(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function ma(e){let t=e.split(".").map(Number);return t.length!==4||t.some(n=>!Number.isInteger(n)||n<0||n>255)?!1:t[0]===0||t[0]===10||t[0]===127||t[0]===169&&t[1]===254||t[0]===172&&(t[1]??0)>=16&&(t[1]??0)<=31||t[0]===192&&t[1]===168}function Xm(e){let t=/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/i.exec(e);if(t?.[1])return t[1];let n=/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i.exec(e);if(!n)return;let r=Number.parseInt(n[1],16),o=Number.parseInt(n[2],16);return`${r>>8&255}.${r&255}.${o>>8&255}.${o&255}`}function qr(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function qm(e){let t=qr(e),n=Xm(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||ma(t)||n!==void 0&&ma(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function Zm(e){let t=qr(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function Qm(e){let t=qr(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function _a(e){let t={kind:"url",url:e};if((0,ga.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||qm(n.hostname))return{origin:"UNKNOWN"};let r=Zm(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:Qm(n)}}catch{return{origin:"UNKNOWN"}}}var ha="mcp-remote";function eg(e,t){if(e===ha)return t.find(n=>/^https?:\/\//i.test(n))}function tg(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function ng(e,t,n){let r=eg(e,t);return r!==void 0?_a(r):e===ha?{origin:"UNKNOWN"}:tg(e,n)}function rg(e){let t=e.replaceAll("\\","/");return t.startsWith("~/")||t.startsWith("/")||/^[A-Za-z]:\//.test(t)?!1:t.startsWith("./")||t.startsWith("../")||t==="scripts"||t.startsWith("scripts/")}function og(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,ga.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return _a(t.url);let r=(0,Xr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Xr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=ng(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Xr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return rg(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ya=W(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.mcpServerToolSegmentForms=Ea;Ln.mcpServerNameMatchesToolSegment=sg;function Ea(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function sg(e,t){let n=t.toLowerCase();return Ea(e).some(r=>r.toLowerCase()===n)}});var Ra=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var ig=/^(?:>|\|)[-+]?$/,ag=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,cg=e=>{let t=e?.trim()??"";if(!(t.length===0||ig.test(t)))return t};ye.usableCatalogText=cg;var ug=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=ug;var lg=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return pg(n[1],t)};ye.parseFrontmatterField=lg;var fg=e=>e.replace(/^["']|["']$/g,"");function pg(e,t){let n=e.split(`
|
|
5
|
-
`),r=`${t}:`,o=n.findIndex(m=>m===r||m.startsWith(`${r} `)||m.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=
|
|
4
|
+
var Pd=Object.create;var zs=Object.defineProperty;var Nd=Object.getOwnPropertyDescriptor;var wd=Object.getOwnPropertyNames;var Md=Object.getPrototypeOf,Ld=Object.prototype.hasOwnProperty;var $e=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var vd=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wd(t))!Ld.call(e,o)&&o!==n&&zs(e,o,{get:()=>t[o],enumerable:!(r=Nd(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?Pd(Md(e)):{},vd(t||!e||!e.__esModule?zs(n,"default",{value:e,enumerable:!0}):n,e));var Un=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=Ia;q.buildMcpFamilyCanonicalKey=Om;q.launchContainsCredentials=xm;q.serializeMcpLaunchIdentity=Oa;q.hashMcpLaunchIdentity=$t;q.projectMcpMissingLaunchIdentity=Pm;q.projectMcpLaunchIdentity=Nm;q.maskMcpLaunchForDisplay=Mm;q.normalizeMcpToolNames=Lm;var Im=$e("node:crypto");q.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";q.MCP_MISSING_LAUNCH_SERIALIZED=`${q.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function Le(e){return e.toLocaleLowerCase("en-US")}function Ia(e){return Le(e)}function Om(e){return`interface:${Ia(e)}`}var Aa=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),bm=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function ht(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function xm(e){return e.kind==="url"?Tm(e.url):e.kind==="command"?e.arguments.some(t=>bm.test(t)):!1}function Tm(e){try{let t=new URL(e);if(t.username.length>0||t.password.length>0)return!0;for(let n of t.searchParams.keys())if(Aa.has(Le(n)))return!0;return!1}catch{let t=e.split("://",2),n=t.length===2?t[1]:e,r=n.indexOf("@"),o=n.indexOf("/");if(r>0&&(o===-1||r<o))return!0;let s=e.split("?",2)[1];return s===void 0?!1:s.split("&").some(i=>{let a=Le(i.split("=",1)[0]??"");return Aa.has(a)})}}function Oa(e){if(e.kind==="url")return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",ht(Le(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",ht(Le(e.command)),String(t.length),...t.map(ht)].join("|")}return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",ht(e.installationRootExternalKey),ht(e.sourcePath),ht(e.nativeKey)].join("|")}function $t(e){return(0,Im.createHash)("sha256").update(e).digest("hex")}var km=$t(q.MCP_MISSING_LAUNCH_SERIALIZED);function Pm(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:km}}function Nm(e){let t=Oa(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:$t(t)}:e.kind==="command"?{kind:"command",command:Le(e.command),arguments:[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:$t(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:$t(t)}}var wm=/^(https?:\/\/)([^/?#]*@)/i;function Mm(e){return e.replace(wm,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function Lm(e){let t=new Set,n=[];for(let r of e)r.length===0||t.has(r)||(t.add(r),n.push(r));return n.sort((r,o)=>r<o?-1:r>o?1:0),n}});var Fn=W(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.PACKAGE_FIELD_MAX=void 0;xe.npxExecBin=ba;xe.packageNameFromSpec=Dn;xe.pinnedPackageVersionFromSpec=xa;xe.pinnedPackageVersionFromNpx=Km;xe.npxPackageSpecs=Ta;xe.PACKAGE_FIELD_MAX=128;var vm=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Hm=new Set(["-p","--package"]),Um=new Set(["-c","--call"]),Dm=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),Fm=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),$m=/^--no-/;function jm(e){return Fm.has(e)||$m.test(e)}function ba(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var Bm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Dn(e){if(e.length===0||e.length>xe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return vm.test(n)?n:null}function xa(e){let t=Dn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return Bm.test(n)?n:void 0}function Km(e,t){for(let n of Ta(e,t)){let r=xa(n);if(r!==void 0)return r}}function Ta(e,t){let n=ba(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),l=c===-1?a:a.slice(0,c);if(Um.has(l))return[];if(Hm.has(l)){let u=c===-1?r[i+1]:a.slice(c+1);u!==void 0&&u.length>0&&o.push(u),c===-1&&(i+=1);continue}if(!(c!==-1||jm(l))){if(Dm.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Dn(i)!==null)?o:[]:s===null||Dn(s)===null?[]:[s]}});var ka=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=ng;var Gm=Un(),oo=Fn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var zm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Wm=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Vm=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Jm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Ym=new Set(["--from","--spec"]),Xm=new Set(["--python","-p","--with","--with-editable","--with-requirements","--index","--index-url","--default-index","--extra-index-url","--find-links","-f","--constraint","-c","--override","--refresh-package","--cache-dir","--directory","--project","--config-file","--color","--exclude-newer","--pip-args","--verbose-pip"]),qm=new Set(["-q","--quiet","-v","--verbose","-n","--native-tls","--offline","--isolated","--preview","--refresh","--reinstall","--upgrade","-U","--force","--system","--system-site-packages","--path","--managed-python","--progress"]),Zm=/^--no-/;function Qm(e,t){let n=Jm(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),l=c===-1?a:a.slice(0,c);if(Ym.has(l)){let u=c===-1?r[i+1]:a.slice(c+1);u!==void 0&&u.length>0&&(o=u),c===-1&&(i+=1);continue}if(!(c!==-1||qm.has(l)||Zm.test(l))){if(Xm.has(l)){i+=1;continue}return null}}return o??s}function eg(e){if(e.length===0||e.length>oo.PACKAGE_FIELD_MAX)return null;let t=e.includes("==")?"==":e.includes("@")?"@":null;if(t===null)return null;let n=e.indexOf(t),r=e.slice(0,n),o=e.slice(n+t.length);return!Wm.test(r)||!Vm.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function tg(e){let t=(0,oo.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return zm.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function ng(e){if(e?.kind!=="command"||(0,Gm.launchContainsCredentials)(e))return;for(let n of(0,oo.npxPackageSpecs)(e.command,e.arguments)){let r=tg(n);if(r!==null)return r}let t=Qm(e.command,e.arguments);if(t!==null)return eg(t)??void 0}});var va=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=og;ve.displayPublisherName=sg;ve.classifyMcpProvenance=mg;var wa=Un(),so=Fn();ve.EMPTY_NPM_PUBLISHER="npm:";var Pa="npm:",rg=/^[A-Za-z0-9._-]+$/;function og(e){return e.startsWith(Pa)&&e!==ve.EMPTY_NPM_PUBLISHER&&rg.test(e.slice(Pa.length))}function sg(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function Na(e){let t=e.split(".").map(Number);return t.length!==4||t.some(n=>!Number.isInteger(n)||n<0||n>255)?!1:t[0]===0||t[0]===10||t[0]===127||t[0]===169&&t[1]===254||t[0]===172&&(t[1]??0)>=16&&(t[1]??0)<=31||t[0]===192&&t[1]===168}function ig(e){let t=/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/i.exec(e);if(t?.[1])return t[1];let n=/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i.exec(e);if(!n)return;let r=Number.parseInt(n[1],16),o=Number.parseInt(n[2],16);return`${r>>8&255}.${r&255}.${o>>8&255}.${o&255}`}function io(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function ag(e){let t=io(e),n=ig(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||Na(t)||n!==void 0&&Na(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function cg(e){let t=io(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function ug(e){let t=io(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function Ma(e){let t={kind:"url",url:e};if((0,wa.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||ag(n.hostname))return{origin:"UNKNOWN"};let r=cg(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:ug(n)}}catch{return{origin:"UNKNOWN"}}}var La="mcp-remote";function lg(e,t){if(e===La)return t.find(n=>/^https?:\/\//i.test(n))}function fg(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function dg(e,t,n){let r=lg(e,t);return r!==void 0?Ma(r):e===La?{origin:"UNKNOWN"}:fg(e,n)}function pg(e){let t=e.replaceAll("\\","/");return t.startsWith("~/")||t.startsWith("/")||/^[A-Za-z]:\//.test(t)?!1:t.startsWith("./")||t.startsWith("../")||t==="scripts"||t.startsWith("scripts/")}function mg(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,wa.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return Ma(t.url);let r=(0,so.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,so.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=dg(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,so.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return pg(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var Ua=W($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.mcpServerToolSegmentForms=Ha;$n.mcpServerNameMatchesToolSegment=gg;function Ha(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function gg(e,t){let n=t.toLowerCase();return Ha(e).some(r=>r.toLowerCase()===n)}});var Da=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var _g=/^(?:>|\|)[-+]?$/,hg=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,Sg=e=>{let t=e?.trim()??"";if(!(t.length===0||_g.test(t)))return t};ye.usableCatalogText=Sg;var Eg=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=Eg;var yg=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Cg(n[1],t)};ye.parseFrontmatterField=yg;var Rg=e=>e.replace(/^["']|["']$/g,"");function Cg(e,t){let n=e.split(`
|
|
5
|
+
`),r=`${t}:`,o=n.findIndex(m=>m===r||m.startsWith(`${r} `)||m.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=hg.exec(s);if(!i){let m=Rg(s).trim();return(0,ye.usableCatalogText)(m)}let a=[];for(let m=o+1;m<n.length;m+=1){let g=n[m]??"";if(g.trim()===""){a.push("");continue}if(g.length===g.trimStart().length)break;a.push(g)}let c=a.reduce((m,g)=>g.trim()===""?m:Math.min(m,g.length-g.trimStart().length),Number.POSITIVE_INFINITY),l=[],u=i[1]?.trim();u&&l.push(u);for(let m of a)l.push(m.trim()===""?"":m.slice(c));for(;l.length>0&&l[l.length-1]==="";)l.pop();let f=s.startsWith(">")?l.join(`
|
|
6
6
|
`).split(/\n{2,}/).map(m=>m.split(`
|
|
7
7
|
`).map(g=>g.trim()).filter(Boolean).join(" ")).filter(m=>m.length>0).join(`
|
|
8
8
|
|
|
9
|
-
`):
|
|
10
|
-
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var
|
|
11
|
-
`),n=!1;return t.map(o=>n?
|
|
12
|
-
`)}function Rg(e){return Zr(e)!==e}});var Je=W(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.redactComponentSource=E.prepareComponentInspectionText=E.fitSnapshotInspectionTextBudget=E.componentSourceContainsRedactableSecret=E.capComponentTextBytes=E.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=E.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=E.COMPONENT_INSPECTION_TEXT_MAX_BYTES=E.usableCatalogText=E.parseFrontmatterField=E.parseFrontmatterDescription=E.mcpServerToolSegmentForms=E.mcpServerNameMatchesToolSegment=E.isNpmRegistryPublisher=E.EMPTY_NPM_PUBLISHER=E.displayPublisherName=E.classifyMcpProvenance=E.resolveMcpPackageIdentity=E.McpPackageEcosystem=E.pinnedPackageVersionFromSpec=E.pinnedPackageVersionFromNpx=E.packageNameFromSpec=E.npxPackageSpecs=E.npxExecBin=E.PACKAGE_FIELD_MAX=E.serializeMcpLaunchIdentity=E.projectMcpMissingLaunchIdentity=E.projectMcpLaunchIdentity=E.normalizeMcpToolNames=E.MCP_MISSING_LAUNCH_SERIALIZED=E.MCP_LAUNCH_IDENTITY_ALGORITHM=E.maskMcpLaunchForDisplay=E.launchContainsCredentials=E.hashMcpLaunchIdentity=E.foldMcpName=E.buildMcpFamilyCanonicalKey=E.ComponentKind=void 0;E.userConfigRootFromPath=Ng;E.installationRootExternalKey=wg;E.normalizeRepositoryRelativePath=ba;E.nativeKeyForSkillPath=Mg;E.nativeKeyForRulePath=Lg;E.nativeKeyForCommandPath=vg;E.serializeComponentIdentity=xa;E.buildComponentReference=Ug;E.validateComponentReference=Dg;var Cg=$e("node:crypto"),Ag=$e("node:path"),Ig="cmp1_",bg=/^cmp1_[A-Za-z0-9_-]{43}$/,Og=["/skills/","/skills-cursor/"],xg=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Tg=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,kg=[".cursor",".claude",".codex"],Pg={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Ng(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>kg.includes(o));return n||(t.map(o=>Pg[o]).find(o=>o!==void 0)??"unknown")}function wg(e,t){return`runtime-install:${e}/${t}`}function vn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function ba(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Ag.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return vn(n,"sourcePath")}function Mg(e){let t=e.replaceAll("\\","/");for(let n of Og){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Oa(e,t,n){let r=e.replaceAll("\\","/"),s=t.exec(r)?.[1];if(!s||s.split("/").includes(".."))return null;let i=s.replace(n,"");return i.length>0?i:null}function Lg(e){return Oa(e,xg,/\.(mdc|md|rules)$/i)}function vg(e){return Oa(e,Tg,/\.(md|mdc|toml)$/i)}function Hg(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function xa(e){let t=[vn(e.installationRootExternalKey,"installationRootExternalKey"),vn(e.installableKind,"installableKind"),ba(e.sourcePath),vn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Hg).join("|")}`,"utf8")}function Ug(e){let t=(0,Cg.createHash)("sha256").update(xa(e)).digest("base64url");return`${Ig}${t}`}function Dg(e){return bg.test(e)}var Re=Nn();Object.defineProperty(E,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Re.buildMcpFamilyCanonicalKey}});Object.defineProperty(E,"foldMcpName",{enumerable:!0,get:function(){return Re.foldMcpName}});Object.defineProperty(E,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.hashMcpLaunchIdentity}});Object.defineProperty(E,"launchContainsCredentials",{enumerable:!0,get:function(){return Re.launchContainsCredentials}});Object.defineProperty(E,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Re.maskMcpLaunchForDisplay}});Object.defineProperty(E,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Re.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(E,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Re.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(E,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Re.normalizeMcpToolNames}});Object.defineProperty(E,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpLaunchIdentity}});Object.defineProperty(E,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpMissingLaunchIdentity}});Object.defineProperty(E,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.serializeMcpLaunchIdentity}});var gt=Mn();Object.defineProperty(E,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return gt.PACKAGE_FIELD_MAX}});Object.defineProperty(E,"npxExecBin",{enumerable:!0,get:function(){return gt.npxExecBin}});Object.defineProperty(E,"npxPackageSpecs",{enumerable:!0,get:function(){return gt.npxPackageSpecs}});Object.defineProperty(E,"packageNameFromSpec",{enumerable:!0,get:function(){return gt.packageNameFromSpec}});Object.defineProperty(E,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromNpx}});Object.defineProperty(E,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromSpec}});var Ta=pa();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return Ta.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return Ta.resolveMcpPackageIdentity}});var Hn=Sa();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return Hn.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return Hn.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Hn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Hn.isNpmRegistryPublisher}});var ka=ya();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return ka.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return ka.mcpServerToolSegmentForms}});var Qr=Ra();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Qr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return Qr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return Qr.usableCatalogText}});var Ve=Ia();Object.defineProperty(E,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return Ve.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(E,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"capComponentTextBytes",{enumerable:!0,get:function(){return Ve.capComponentTextBytes}});Object.defineProperty(E,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return Ve.componentSourceContainsRedactableSecret}});Object.defineProperty(E,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return Ve.fitSnapshotInspectionTextBudget}});Object.defineProperty(E,"prepareComponentInspectionText",{enumerable:!0,get:function(){return Ve.prepareComponentInspectionText}});Object.defineProperty(E,"redactComponentSource",{enumerable:!0,get:function(){return Ve.redactComponentSource}})});var Qn=W(he=>{"use strict";he.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;he.find=(e,t)=>e.nodes.find(n=>n.type===t);he.exceedsLimit=(e,t,n=1,r)=>r===!1||!he.isInteger(e)||!he.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;he.escapeNode=(e,t=0,n)=>{let r=e.nodes[t];r&&(n&&r.type===n||r.type==="open"||r.type==="close")&&r.escaped!==!0&&(r.value="\\"+r.value,r.escaped=!0)};he.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;he.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;he.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;he.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);he.flatten=(...e)=>{let t=[],n=r=>{for(let o=0;o<r.length;o++){let s=r[o];if(Array.isArray(s)){n(s);continue}s!==void 0&&t.push(s)}return t};return n(e),t}});var er=W((gO,du)=>{"use strict";var pu=Qn();du.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&pu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&pu.isOpenOrClose(r)?"\\"+r.value:r.value;if(r.value)return r.value;if(r.nodes)for(let c of r.nodes)a+=n(c);return a};return n(e)}});var gu=W((_O,mu)=>{"use strict";mu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Iu=W((hO,Au)=>{"use strict";var _u=gu(),nt=(e,t,n)=>{if(_u(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(_u(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let r={relaxZeros:!0,...n};typeof r.strictZeros=="boolean"&&(r.relaxZeros=r.strictZeros===!1);let o=String(r.relaxZeros),s=String(r.shorthand),i=String(r.capture),a=String(r.wrap),c=e+":"+t+"="+o+s+i+a;if(nt.cache.hasOwnProperty(c))return nt.cache[c].result;let u=Math.min(e,t),l=Math.max(e,t);if(Math.abs(u-l)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let p=Cu(e)||Cu(t),f={min:e,max:t,a:u,b:l},m=[],g=[];if(p&&(f.isPadded=p,f.maxLen=String(f.max).length),u<0){let S=l<0?Math.abs(l):1;g=hu(S,Math.abs(u),f,r),u=f.a=0}return l>=0&&(m=hu(u,l,f,r)),f.negatives=g,f.positives=m,f.result=fS(g,m,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&m.length+g.length>1&&(f.result=`(?:${f.result})`),nt.cache[c]=f,f.result};function fS(e,t,n){let r=wo(e,t,"-",!1,n)||[],o=wo(t,e,"",!1,n)||[],s=wo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function pS(e,t){let n=1,r=1,o=Eu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Eu(e,n);for(o=yu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=yu(t+1,r)-1;return s=[...s],s.sort(gS),s}function dS(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=mS(e,t),o=r.length,s="",i=0;for(let a=0;a<o;a++){let[c,u]=r[a];c===u?s+=c:c!=="0"||u!=="9"?s+=_S(c,u,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function hu(e,t,n,r){let o=pS(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let u=o[c],l=dS(String(i),String(u),r),p="";if(!n.isPadded&&a&&a.pattern===l.pattern){a.count.length>1&&a.count.pop(),a.count.push(l.count[0]),a.string=a.pattern+Ru(a.count),i=u+1;continue}n.isPadded&&(p=hS(u,n,r)),l.string=p+l.pattern+Ru(l.count),s.push(l),i=u+1,a=l}return s}function wo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Su(t,"string",a)&&s.push(n+a),r&&Su(t,"string",a)&&s.push(n+a)}return s}function mS(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function gS(e,t){return e>t?1:t>e?-1:0}function Su(e,t,n){return e.some(r=>r[t]===n)}function Eu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function yu(e,t){return e-e%Math.pow(10,t)}function Ru(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function _S(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Cu(e){return/^-?(0+)\d/.test(e)}function hS(e,t,n){if(!t.isPadded)return e;let r=Math.abs(t.maxLen-String(e).length),o=n.relaxZeros!==!1;switch(r){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:return o?`0{0,${r}}`:`0{${r}}`}}nt.cache={};nt.clearCache=()=>nt.cache={};Au.exports=nt});var vo=W((SO,Nu)=>{"use strict";var SS=$e("util"),Ou=Iu(),bu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),ES=e=>t=>e===!0?Number(t):String(t),Mo=e=>typeof e=="number"||typeof e=="string"&&e!=="",Wt=e=>Number.isInteger(+e),Lo=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},yS=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,RS=(e,t,n)=>{if(t>0){let r=e[0]==="-"?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return n===!1?String(e):e},nr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},CS=(e,t,n)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let r=t.capture?"":"?:",o="",s="",i;return e.positives.length&&(o=e.positives.map(a=>nr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>nr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},xu=(e,t,n,r)=>{if(n)return Ou(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},Tu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Ou(e,t,n)},ku=(...e)=>new RangeError("Invalid range arguments: "+SS.inspect(...e)),Pu=(e,t,n)=>{if(n.strictRanges===!0)throw ku([e,t]);return[]},AS=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},IS=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw ku([e,t]);return[]}o===0&&(o=0),s===0&&(s=0);let i=o>s,a=String(e),c=String(t),u=String(n);n=Math.max(Math.abs(n),1);let l=Lo(a)||Lo(c)||Lo(u),p=l?Math.max(a.length,c.length,u.length):0,f=l===!1&&yS(e,t,r)===!1,m=r.transform||ES(f);if(r.toRegex&&n===1)return xu(nr(e,p),nr(t,p),!0,r);let g={negatives:[],positives:[]},S=T=>g[T<0?"negatives":"positives"].push(Math.abs(T)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(RS(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?CS(g,r,p):Tu(C,null,{wrap:!1,...r}):C},bS=(e,t,n=1,r={})=>{if(!Wt(e)&&e.length>1||!Wt(t)&&t.length>1)return Pu(e,t,r);let o=r.transform||(f=>String.fromCharCode(f)),s=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),a=s>i,c=Math.min(s,i),u=Math.max(s,i);if(r.toRegex&&n===1)return xu(c,u,!1,r);let l=[],p=0;for(;a?s>=i:s<=i;)l.push(o(s,p)),s=a?s-n:s+n,p++;return r.toRegex===!0?Tu(l,null,{wrap:!1,options:r}):l},tr=(e,t,n,r={})=>{if(t==null&&Mo(e))return[e];if(!Mo(e)||!Mo(t))return Pu(e,t,r);if(typeof n=="function")return tr(e,t,1,{transform:n});if(bu(n))return tr(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,Wt(n)?Wt(e)&&Wt(t)?IS(e,t,n,o):bS(e,t,Math.max(Math.abs(n),1),o):n!=null&&!bu(n)?AS(n,o):tr(e,t,1,n)};Nu.exports=tr});var Lu=W((EO,Mu)=>{"use strict";var OS=vo(),wu=Qn(),xS=(e,t={})=>{let n=(r,o={})=>{let s=wu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",u="";if(r.isOpen===!0)return c+r.value;if(r.isClose===!0)return console.log("node.isClose",c,r.value),c+r.value;if(r.type==="open")return a?c+r.value:"(";if(r.type==="close")return a?c+r.value:")";if(r.type==="comma")return r.prev.type==="comma"?"":a?r.value:"|";if(r.value)return r.value;if(r.nodes&&r.ranges>0){let l=wu.reduce(r.nodes),p=OS(...l,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return l.length>1&&p.length>1?`(${p})`:p}if(r.nodes)for(let l of r.nodes)u+=n(l,r);return u};return n(e)};Mu.exports=xS});var Uu=W((yO,Hu)=>{"use strict";var TS=vo(),vu=er(),ht=Qn(),rt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?ht.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(rt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?rt(o,s,n):o+s);return ht.flatten(r)},kS=(e,t={})=>{let n=t.rangeLimit===void 0?1e3:t.rangeLimit,r=(o,s={})=>{o.queue=[];let i=s,a=s.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,a=i.queue;if(o.invalid||o.dollar){a.push(rt(a.pop(),vu(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(rt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let p=ht.reduce(o.nodes);if(ht.exceedsLimit(...p,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=TS(...p,t);f.length===0&&(f=vu(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=ht.encloseBrace(o),u=o.queue,l=o;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,u=l.queue;for(let p=0;p<o.nodes.length;p++){let f=o.nodes[p];if(f.type==="comma"&&o.type==="brace"){p===1&&u.push(""),u.push("");continue}if(f.type==="close"){a.push(rt(a.pop(),u,c));continue}if(f.value&&f.type!=="open"){u.push(rt(u.pop(),f.value));continue}f.nodes&&r(f,o)}return u};return ht.flatten(r(e))};Hu.exports=kS});var Fu=W((RO,Du)=>{"use strict";Du.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
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 Gu=W((CO,Ku)=>{"use strict";var PS=er(),{MAX_LENGTH:$u,CHAR_BACKSLASH:Ho,CHAR_BACKTICK:NS,CHAR_COMMA:wS,CHAR_DOT:MS,CHAR_LEFT_PARENTHESES:LS,CHAR_RIGHT_PARENTHESES:vS,CHAR_LEFT_CURLY_BRACE:HS,CHAR_RIGHT_CURLY_BRACE:US,CHAR_LEFT_SQUARE_BRACKET:ju,CHAR_RIGHT_SQUARE_BRACKET:Bu,CHAR_DOUBLE_QUOTE:DS,CHAR_SINGLE_QUOTE:FS,CHAR_NO_BREAK_SPACE:$S,CHAR_ZERO_WIDTH_NOBREAK_SPACE:jS}=Fu(),BS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min($u,n.maxLength):$u;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,u=e.length,l=0,p=0,f,m=()=>e[l++],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"});l<u;)if(i=s[s.length-1],f=m(),!(f===jS||f===$S)){if(f===Ho){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===Bu){g({type:"text",value:"\\"+f});continue}if(f===ju){c++;let S;for(;l<u&&(S=m());){if(f+=S,S===ju){c++;continue}if(S===Ho){f+=m();continue}if(S===Bu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===LS){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===vS){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===DS||f===FS||f===NS){let S=f,C;for(t.keepQuotes!==!0&&(f="");l<u&&(C=m());){if(C===Ho){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===HS){p++;let C={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:p,commas:0,ranges:0,nodes:[]};i=g(C),s.push(i),g({type:"open",value:f});continue}if(f===US){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),p--,i=s[s.length-1];continue}if(f===wS&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:PS(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===MS&&p>0&&i.commas===0){let S=i.nodes;if(p===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};Ku.exports=BS});var Vu=W((AO,Wu)=>{"use strict";var zu=er(),KS=Lu(),GS=Uu(),zS=Gu(),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={})=>zS(e,t);pe.stringify=(e,t={})=>zu(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),KS(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=GS(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);Wu.exports=pe});var Vt=W((IO,Zu)=>{"use strict";var WS=$e("path"),ke="\\\\/",Ju=`[^${ke}]`,VS=0,De="\\.",JS="\\+",YS="\\?",rr="\\/",XS="(?=.)",Yu="[^/]",Uo=`(?:${rr}|$)`,Xu=`(?:^|${rr})`,Do=`${De}{1,2}${Uo}`,qS=`(?!${De})`,ZS=`(?!${Xu}${Do})`,QS=`(?!${De}{0,1}${Uo})`,eE=`(?!${Do})`,tE=`[^.${rr}]`,nE=`${Yu}*?`,qu={DOT_LITERAL:De,PLUS_LITERAL:JS,QMARK_LITERAL:YS,SLASH_LITERAL:rr,ONE_CHAR:XS,QMARK:Yu,END_ANCHOR:Uo,DOTS_SLASH:Do,NO_DOT:qS,NO_DOTS:ZS,NO_DOT_SLASH:QS,NO_DOTS_SLASH:eE,QMARK_NO_DOT:tE,STAR:nE,START_ANCHOR:Xu},rE={...qu,SLASH_LITERAL:`[${ke}]`,QMARK:Ju,STAR:`${Ju}*?`,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}]|$)`},oE={__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"};Zu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:VS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:oE,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:WS.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?rE:qu}}});var Jt=W(ae=>{"use strict";var sE=$e("path"),iE=process.platform==="win32",{REGEX_BACKSLASH:aE,REGEX_REMOVE_BACKSLASH:cE,REGEX_SPECIAL_CHARS:uE,REGEX_SPECIAL_CHARS_GLOBAL:lE}=Vt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>uE.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(lE,"\\$1");ae.toPosixSlashes=e=>e.replace(aE,"/");ae.removeBackslashes=e=>e.replace(cE,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:iE===!0||sE.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 il=W((OO,sl)=>{"use strict";var Qu=Jt(),{CHAR_ASTERISK:Fo,CHAR_AT:fE,CHAR_BACKWARD_SLASH:Yt,CHAR_COMMA:pE,CHAR_DOT:$o,CHAR_EXCLAMATION_MARK:jo,CHAR_FORWARD_SLASH:ol,CHAR_LEFT_CURLY_BRACE:Bo,CHAR_LEFT_PARENTHESES:Ko,CHAR_LEFT_SQUARE_BRACKET:dE,CHAR_PLUS:mE,CHAR_QUESTION_MARK:el,CHAR_RIGHT_CURLY_BRACE:gE,CHAR_RIGHT_PARENTHESES:tl,CHAR_RIGHT_SQUARE_BRACKET:_E}=Vt(),nl=e=>e===ol||e===Yt,rl=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},hE=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,u=-1,l=0,p=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,T=!1,x=!1,M=!1,k=!1,K=0,D,b,N={value:"",depth:0,isGlob:!1},H=()=>u>=r,d=()=>c.charCodeAt(u+1),I=()=>(D=b,c.charCodeAt(++u));for(;u<r;){b=I();let se;if(b===Yt){T=N.backslashes=!0,b=I(),b===Bo&&(A=!0);continue}if(A===!0||b===Bo){for(K++;H()!==!0&&(b=I());){if(b===Yt){T=N.backslashes=!0,I();continue}if(b===Bo){K++;continue}if(A!==!0&&b===$o&&(b=I())===$o){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&b===pE){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===gE&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(b===ol){if(s.push(u),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===$o&&u===l+1){l+=2;continue}p=u+1;continue}if(n.noext!==!0&&(b===mE||b===fE||b===Fo||b===el||b===jo)===!0&&d()===Ko){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,b===jo&&u===l&&(M=!0),o===!0){for(;H()!==!0&&(b=I());){if(b===Yt){T=N.backslashes=!0,b=I();continue}if(b===tl){g=N.isGlob=!0,k=!0;break}}continue}break}if(b===Fo){if(D===Fo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===el){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===dE){for(;H()!==!0&&(se=I());){if(se===Yt){T=N.backslashes=!0,I();continue}if(se===_E){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===jo&&u===l){x=N.negated=!0,l++;continue}if(n.noparen!==!0&&b===Ko){if(g=N.isGlob=!0,o===!0){for(;H()!==!0&&(b=I());){if(b===Ko){T=N.backslashes=!0,b=I();continue}if(b===tl){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="",_="";l>0&&(ue=c.slice(0,l),c=c.slice(l),p-=l),U&&g===!0&&p>0?(U=c.slice(0,p),_=c.slice(p)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&nl(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=Qu.removeBackslashes(_)),U&&T===!0&&(U=Qu.removeBackslashes(U)));let h={prefix:ue,input:e,start:l,base:U,glob:_,isBrace:f,isBracket:m,isGlob:g,isExtglob:S,isGlobstar:C,negated:x,negatedExtglob:M};if(n.tokens===!0&&(h.maxDepth=0,nl(b)||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:l,Ae=s[F],le=e.slice(Ce,Ae);n.tokens&&(F===0&&l!==0?(i[F].isPrefix=!0,i[F].value=ue):i[F].value=le,rl(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,rl(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};sl.exports=hE});var fl=W((xO,ll)=>{"use strict";var Xt=Vt(),oe=Jt(),{MAX_LENGTH:or,POSIX_REGEX_SOURCE:SE,REGEX_NON_SPECIAL_CHARS:EE,REGEX_SPECIAL_CHARS_BACKREF:yE,REPLACEMENTS:al}=Xt,RE=(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},St=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,cl=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},CE=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},ul=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(CE(t))return t.replace(/\\(.)/g,"$1")},AE=e=>{let t=e.map(ul).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},Go=(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}}}}},IE=e=>{let t=0,n=[];for(;t<e.length;){let o=Go(e.slice(t),!1);if(!o||o.type!=="*")return;let s=cl(o.body).map(a=>a.trim());if(s.length!==1)return;let i=ul(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("")}]`}*`},bE=e=>{let t=0,n=e.trim(),r=Go(n);for(;r;)t++,n=r.body.trim(),r=Go(n);return t},OE=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Xt.DEFAULT_MAX_EXTGLOB_RECURSION,r=cl(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||AE(r)))return{risky:!0};for(let o of r){let s=IE(o);if(s)return{risky:!0,safeOutput:s};if(bE(o)>n)return{risky:!0}}return{risky:!1}},zo=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=al[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(or,n.maxLength):or,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),u=Xt.globChars(c),l=Xt.extglobChars(u),{DOT_LITERAL:p,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}=u,D=R=>`(${a}(?:(?!${K}${R.dot?S:p}).)*?)`,b=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 d={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,d),o=e.length;let I=[],U=[],ue=[],_=s,h,se=()=>d.index===o-1,F=d.peek=(R=1)=>e[d.index+R],Ce=d.advance=()=>e[++d.index]||"",Ae=()=>e.slice(d.index+1),le=(R="",J=0)=>{d.consumed+=R,d.index+=J},cn=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},yp=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},un=R=>{d[R]++,ue.push(R)},Fe=R=>{d[R]--,ue.pop()},w=R=>{if(_.type==="globstar"){let J=d.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&&(d.output=d.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,d.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&cn(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},ln=(R,J)=>{let y={...l[J],conditions:1,inner:""};y.prev=_,y.parens=d.parens,y.output=d.output,y.startIndex=d.index,y.tokensIndex=i.length;let P=(n.capture?"(":"")+y.open;un("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},Rp=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=OE(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 be=R.tokensIndex+1;be<i.length;be++)i[be].value="",i[be].output="",delete i[be].suffix;d.output=R.output+Ie.output,d.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=zo(re,{...t,fastpaths:!1}).output;z=R.close=`)${Ie})${G})`}R.prev.type==="bos"&&(d.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(yE,(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==="."?p.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?(d.output=e,d):(d.output=oe.wrapOutput(J,d,t),d)}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,d.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=Ce():h+=Ce(),d.brackets===0){w({type:"text",value:h});continue}}if(d.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=SE[re];if(G){_.value=z+G,d.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,cn({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,cn({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){un("parens"),w({type:"paren",value:h});continue}if(h===")"){if(d.parens===0&&n.strictBrackets===!0)throw new SyntaxError(St("opening","("));let y=I[I.length-1];if(y&&d.parens===y.parens+1){Rp(I.pop());continue}w({type:"paren",value:h,output:d.parens?")":"\\)"}),Fe("parens");continue}if(h==="["){if(n.nobracket===!0||!Ae().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));h=`\\${h}`}else un("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(d.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(St("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,cn({value:h}),n.literalBrackets===!1||oe.hasRegexChars(y))continue;let P=oe.escapeRegex(_.value);if(d.output=d.output.slice(0,-_.value.length),n.literalBrackets===!0){d.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,d.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){un("braces");let y={type:"brace",value:h,output:"(",outputIndex:d.output.length,tokensIndex:d.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=RE(re,n),d.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=d.output.slice(0,y.outputIndex),re=d.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",d.output=z;for(let G of re)d.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"&&d.index===d.start+1){d.start=d.index+1,d.consumed="",d.output="",i.pop(),_=s;continue}w({type:"slash",value:h,output:m});continue}if(h==="."){if(d.braces>0&&_.type==="dot"){_.value==="."&&(_.output=p);let y=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,y.dots=!0;continue}if(d.braces+d.parens===0&&_.type!=="bos"&&_.type!=="slash"){w({type:"text",value:h,output:p});continue}w({type:"dot",value:h,output:p});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){ln("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)))){ln("negate",h);continue}if(n.nonegate!==!0&&d.index===0){yp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){ln("plus",h);continue}if(_&&_.value==="("||n.regex===!1){w({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||d.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=EE.exec(Ae());y&&(h+=y[0],d.index+=y[0].length),w({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,d.backtrack=!0,d.globstar=!0,le(h);continue}let R=Ae();if(n.noextglob!==!0&&/^\([^?]/.test(R)){ln("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=d.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 be=e[d.index+4];if(be&&be!=="/")break;R=R.slice(3),le("/**",3)}if(y.type==="bos"&&se()){_.type="globstar",_.value+=h,_.output=D(n),d.output=_.output,d.globstar=!0,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&!re&&se()){d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,d.globstar=!0,d.output+=y.output+_.output,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&R[0]==="/"){let be=R[1]!==void 0?"|$":"";d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=`${D(n)}${m}|${m}${be})`,_.value+=h,d.output+=y.output+_.output,d.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})`,d.output=_.output,d.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}d.output=d.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,d.output+=_.output,d.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=b+J.output),w(J);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){J.output=h,w(J);continue}(d.index===d.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(d.output+=A,_.output+=A):n.dot===!0?(d.output+=T,_.output+=T):(d.output+=b,_.output+=b),F()!=="*"&&(d.output+=g,_.output+=g)),w(J)}for(;d.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));d.output=oe.escapeLast(d.output,"["),Fe("brackets")}for(;d.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing",")"));d.output=oe.escapeLast(d.output,"("),Fe("parens")}for(;d.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","}"));d.output=oe.escapeLast(d.output,"{"),Fe("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.type==="bracket")&&w({type:"maybe_slash",value:"",output:`${m}?`}),d.backtrack===!0){d.output="";for(let R of d.tokens)d.output+=R.output!=null?R.output:R.value,R.suffix&&(d.output+=R.suffix)}return d};zo.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(or,n.maxLength):or,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=al[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:u,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=Xt.globChars(s),S=n.dot?p:l,C=n.dot?f:l,A=n.capture?"":"?:",T={negated:!1,prefix:""},x=n.bash===!0?".*?":m;n.capture&&(x=`(${x})`);let M=b=>b.noglobstar===!0?x:`(${A}(?:(?!${g}${b.dot?u:i}).)*?)`,k=b=>{switch(b){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(b);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};ll.exports=zo});var dl=W((TO,pl)=>{"use strict";var xE=$e("path"),TE=il(),Wo=fl(),Vo=Jt(),kE=Vt(),PE=e=>e&&typeof e=="object"&&!Array.isArray(e),Q=(e,t,n=!1)=>{if(Array.isArray(e)){let l=e.map(f=>Q(f,t,n));return f=>{for(let m of l){let g=m(f);if(g)return g}return!1}}let r=PE(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=Vo.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 l={...t,ignore:null,onMatch:null,onResult:null};c=Q(o.ignore,l,n)}let u=(l,p=!1)=>{let{isMatch:f,match:m,output:g}=Q.test(l,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:l,output:g,match:m,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,p?S:!1):c(l)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,p?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),p?S:!0)};return n&&(u.state=a),u};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?Vo.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=Vo.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(xE.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)):Wo(e,{...t,fastpaths:!1});Q.scan=(e,t)=>TE(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=Wo.fastpaths(e,t)),o.output||(o=Wo(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=kE;pl.exports=Q});var gl=W((kO,ml)=>{"use strict";ml.exports=dl()});var Rl=W((PO,yl)=>{"use strict";var hl=$e("util"),Sl=Vu(),Pe=gl(),Jo=Jt(),_l=e=>e===""||e==="./",El=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=l=>{s.add(l.output),n&&n.onResult&&n.onResult(l)};for(let l=0;l<t.length;l++){let p=Pe(String(t[l]),{...n,onResult:a},!0),f=p.state.negated||p.state.negatedExtglob;f&&i++;for(let m of e){let g=p(m,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let u=(i===t.length?[...s]:[...o]).filter(l=>!r.has(l));if(n&&u.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(l=>l.replace(/\\/g,"")):t}return u};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: "${hl.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(_l(e)||_l(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(!Jo.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: "${hl.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=Jo.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?Jo.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 Sl(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||!El(e)?[e]:Sl(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=El;yl.exports=V});import{existsSync as Up,readFileSync as Dp}from"node:fs";import{hostname as Ws,userInfo as Fp}from"node:os";import{createHash as Tp,randomBytes as kp}from"node:crypto";import{existsSync as Cr,mkdirSync as Pp,readdirSync as Np,readFileSync as wp,renameSync as Us,statSync as js,unlinkSync as Ds,writeFileSync as Mp}from"node:fs";import{basename as Lp,dirname as Fs,join as Bs,relative as vp}from"node:path";function O(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
-
`)}function xt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Tt(e){return Tp("sha256").update(e).digest("hex").slice(0,32)}function de(e,t){Pp(Fs(e),{recursive:!0});let n=Bs(Fs(e),`.${Lp(e)}.${process.pid}.${kp(4).toString("hex")}.tmp`);try{Mp(n,t,"utf8");try{Us(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Ds(e),Us(n,e);return}throw r}}catch(r){try{Ds(n)}catch{}throw r}}function fn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Ar(){process.stdout.write('{"continue":true}')}function L(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Ir(){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 pn(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,u=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:u,spawnFailed:u===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 br(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")}`;O(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=L("CURSOR_PROJECT_DIR")??L("CLAUDE_PROJECT_DIR");if(n&&Cr(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 Or(e=process.cwd()){return(await br(e)).root}function me(e,t){try{return JSON.parse(e)}catch{return t}}var $s=new Map;function dn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Hp(e){let t;try{t=wp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(dn(t))}}catch{return{ok:!1,reason:"parse"}}}function Ks(e){let t=$s.get(e);if(t!==void 0)return t;let n=Hp(e);return $s.set(e,n),n}function Gs(e){return Ks(e)}function te(e,t){let n=Ks(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 zs(e,t=2){if(!Cr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Np(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=Bs(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:vp(e,u),size:js(u).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function xr(e){return Cr(e)?{present:!0,size:js(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 Vs(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var $p=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function jp(e){return $p.some(t=>!!Y(t,e))}function Bp(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(Up("/.dockerenv")||Dp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Js(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function Kp(e,t=process.platform){return Js(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Gp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function zp(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 Wp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Vp(Y("CURSOR_VERSION",n))}function Vp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Tr(e){if(Gp(e.sessionId))return!0;let t=e.hostname??Ws(),n=e.osUser??Xs(e.env);return Wp(t,n,e.env)}function Jp(e){return lt(Y("CURSOR_AGENT",e.env))?!0:Tr(e)}function Yp(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))||Js(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!Y(t,e))||Y("SESSIONNAME",e))}function kt(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(!Kp(t,n)&&Jp(e)&&(lt(Y("CURSOR_AGENT",t))||zp(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(jp(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Bp(t)?"container":Yp(t)?"interactive":"unknown"}async function Ys(){return await ee("systemd-detect-virt",[],1e3)}function Xs(e=process.env,t=Fp){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 qs(){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=Xs(),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 mn(){return Ws()}import{createHash as Xp}from"node:crypto";import{homedir as qp}from"node:os";import{dirname as _A,join as Zp,parse as hA,resolve as SA}from"node:path";var Zs="EV_AI_LAUNCHER_VERSION";var Qs="EV_AI_HOOK_SOURCE",ei="EV_AI_HOOK_FALLBACK_REASON",ti="EV_AI_LAUNCHER_SCOPE",kr="EV_AI_LAUNCHER_READY_FD";var ni="--defer-user-spec",gn="--cap";var ri=Buffer.from([1]);var iA=1024*1024,aA=4*1024*1024,cA=64*1024,uA=64*1024,lA=64*1024;var Pr=4096,fA=4*1024*1024;var ii="https://hooks.ev-ai.ai",ai=".claude/ev-ai-runtime-report.json",ci="config.json",Qp="max_concurrent_hooks",RA=1024*1024,ed=new Set(["localhost","127.0.0.1","[::1]","::1"]),td=["claude","cursor","codex"],ui=[ai,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Nr=/^[A-Za-z0-9._~-]+$/;function _n(e){return e!==void 0&&td.includes(e)}function li(e){if(!e||typeof e!="object")return;let t=e[Qp];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 Pt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function wr(e){let t,n,r,o,s,i;for(let a=0;a<e.length;a++){let c=e[a];if(c!==void 0){if(c==="--runner"){let u=Pt(e,a);t=u.value,a=u.next;continue}if(c.startsWith("--runner=")){t=c.slice(9);continue}if(c==="--url"){let u=Pt(e,a);u.value&&(r=u.value),a=u.next;continue}if(c.startsWith("--url=")){r=c.slice(6);continue}if(c==="--token"){let u=Pt(e,a);u.value&&(o=u.value),a=u.next;continue}if(c.startsWith("--token=")){o=c.slice(8);continue}if(c==="--base-url"){let u=Pt(e,a);u.value&&(s=u.value),a=u.next;continue}if(c.startsWith("--base-url=")){s=c.slice(11);continue}if(c===gn){let u=Pt(e,a);i=oi(u.value)??i,a=u.next;continue}if(c.startsWith(`${gn}=`)){i=oi(c.slice(gn.length+1))??i;continue}c!==ni&&!c.startsWith("-")&&n===void 0&&(n=c)}}return{runner:_n(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{}}}function hn(e,t=ii){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Nt(e=qp()){return Zp(e,".ev-ai",ci)}function fi(e,t){return{...e,...t}}function si(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 Sn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?ed.has(t.hostname):!1}catch{return!1}}function Mr(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 En(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!Sn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Mr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Nr.test(n))return`org token must match ${Nr.source} (got: ${n})`;if(si(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(si(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Lr(e){return new URL(e).toString()}function vr(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?hn(n):""}function yn(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 pi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=hn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=En(n);return r?{problem:r}:{url:Lr(n)}}var Hr="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function di(e){let t=e[Hr]?.trim();if(!t)return{};let n=En(t);return n?{problem:n}:{url:Lr(t)}}function wt(e){if(En(e))return;let t;try{t=new URL(e)}catch{return}let n=Mr(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 Xp("sha256").update(i).digest("hex").slice(0,32)}var Cn=2;var Rn="ev-ai-agent-hook";function nd(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function mi(e){let t=nd(e);return t===Rn||t===`${Rn}.exe`}var AA=`current/${Rn}`,IA=`.ev-ai/agent-hook/${Rn}`,gi=5e3,_i=5e3,Ur=3e3;var An=3e3,hi=1500,Si=4*1024,Dr=256*1024,rd=4*1024,Ei=32*1024,Fr="1.3.5",bA=`@ev-ai/agent-hook@${Fr}`;import{existsSync as g_,mkdirSync as __,readdirSync as h_,readFileSync as S_,unlinkSync as Ya,writeFileSync as E_}from"node:fs";import{homedir as Xa}from"node:os";import{join as io}from"node:path";import{createHash as Ii,randomBytes as id}from"node:crypto";import{existsSync as bi,mkdirSync as $r,readFileSync as Oi,unlinkSync as xi,writeFileSync as Ti}from"node:fs";import{homedir as jr}from"node:os";import{dirname as In,join as Br,resolve as ad}from"node:path";var od=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),sd=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]")||sd.has(n)||r.includes("[bot]")||od.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 cd="installation.json",ud="cloud-bootstrap.lock",ld=6e4;function ki(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ee(e=jr()){return Br(e,".ev-ai","agent-hook")}function fd(e=jr()){return Br(Ee(e),cd)}function Pi(e){return Br(In(e),ud)}function Ni(){return id(8).toString("hex")}function ft(e){return Ii("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 wi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function pd(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!wi(t)){O(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Mi(e,t){return e&&wi(e)?e:(e&&O(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),pd(t))}function dd(e){return/^[0-9a-f]{16}$/.test(e)}function md(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 ft(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return ft(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return ft(`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 ft(`gitlab|${t}|${n}`)}return null}var gd="cursoragent@cursor.com";function _d(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===gd?null:t}function hd(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Sd(e){return xt(e).replace(/\.git$/i,"").toLowerCase()}async function Ed(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Sd(t):e}async function yd(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 Rd(e,t){let n=hd(e,t);return n?ft(`cursor_cloud|${n}|${_d(e)??""}`):null}async function Cd(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Ed(n),o=await yd(n);return ft(`claude_remote|${r}|${o??""}`)}function yi(e,t){let n=Mi(e,t);if(n)return n;let r=md(t);return r||Ni()}async function Ad(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||ad(e);return Ii("sha256").update(n).digest("hex").slice(0,16)}function Id(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 bd(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Id(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(bi(e))try{return bd(Oi(e,"utf8"))}catch{}}function Kr(e){return Ze(e)}function Li(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{de(e,`${JSON.stringify(o,null,2)}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);
|
|
18
|
-
`,{encoding:"utf8",flag:"wx"})}function
|
|
19
|
-
`)}function Ai(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function $i(e,t={}){let n=t.home??jr(),r=t.env??process.env,o=await Ad(e),s=fd(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=kt(i),c=Mi(t.overrideId,r),u=a==="cursor_cloud"&&Tr(i)?Rd(r,e):a==="claude_remote"?await Cd(r,e):null,l=Ze(s);if(l){let S=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(S={...l,pinned:!0},Ci(s,S)),!!u&&u!==S.installation_id&&!c&&S.pinned!==!0&&dd(S.installation_id)&&u){let A={installation_id:u,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Ci(s,A),{installationId:u,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??u??yi(void 0,r),f=Ri(s,Ai(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??u??yi(void 0,r),g=Ri(s,Ai(m===p?Ni():m,c));if(g)return{installationId:g.installation_id,storePath:s,repoKey:o};throw new Error(`Failed to create installation record at ${s}`)}import{open as ji,mkdir as xd,readFile as Td,readdir as kd,rename as Pd,stat as Nd,rmdir as wd,unlink as Md,utimes as Ld}from"node:fs/promises";var bn=new WeakMap;function Ki(e){if(e&&typeof e=="object"&&"code"in e)return e}function Mt(e){return Ki(e)?.code==="ENOENT"}function On(e){return Ki(e)?.code==="EEXIST"}async function Gi(e,t){try{return await e.readdir(t)}catch(n){if(Mt(n))return[];throw n}}function zi(){return{async open(e,t){let n=await ji(e,t),r={path:e};return bn.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=bn.get(e);bn.delete(e),t&&await t.close()},rename:Pd,async readdir(e){return kd(e)},readFile:Td,async stat(e){let t=await Nd(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await xd(e,t)},unlink:Md,rmdir:wd,utimes:Ld,async fsyncDir(e){if(process.platform==="win32")return;let t=await ji(e,"r");try{await t.sync()}finally{await t.close()}}}}function Bi(e){let t=bn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as qd}from"node:fs";import{existsSync as jd}from"node:fs";import{homedir as Ji}from"node:os";import{join as Bd}from"node:path";import{existsSync as vd,readdirSync as Wi}from"node:fs";import{homedir as xn}from"node:os";import{join as ie}from"node:path";function Hd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ie(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Ud(e=process.platform){let t=Hd(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!vd(r))return n;let o=Wi(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function Gr(e=process.platform,t=xn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:Ud(e)}}function Dd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ie(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Fd(e=process.platform,t=xn()){let n=[ie(Dd(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of Wi(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function $d(e=process.platform,t=xn()){let n=e==="win32"?ie(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ie(n,"requirements.toml")];return e!=="win32"&&r.push(ie(n,"managed_config.toml")),r.push(ie(t,".codex","managed_config.toml"),ie(n,"config.toml")),r}function Tn(e,t=process.platform,n=xn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Gr(t,n);return[r,...o]}case"cursor":return Fd(t,n);default:return $d(t,n)}}function Yi(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Kd={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function Vi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Gd(e,t={}){let{shared:n}=e;return{skillRoots:[...n.skillRoots,...t.skillRoots??[]],dirs:n.dirs,memory:[...n.memory,...t.memory??[]],settings:[...n.settings,...t.settings??[]],mcpJson:Vi(n.mcpJson,t.mcpJson),mcpToml:Vi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Xi(e){return Object.fromEntries(Object.entries(Kd).map(([t,n])=>[t,Gd(n,n[e])]))}var pt=Xi("homeOnly"),Ge=Xi("projectOnly");function zd(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Wd(e,t){return zd(e).some(n=>jd(Bd(t,n)))}function qi(e,t){for(let n of e)if(Wd(n,t))return!0;return!1}function Ke(e){return[...new Set(e)]}function ze(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let u of c.dirs)u.kind==="SUBAGENT"?n.push(u.dir):u.kind==="COMMAND"?r.push(u.dir):o.push(u.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:Ke(t),subagents:Ke(n),commands:Ke(r),rules:Ke(o),memory:Ke(s),settings:Ke(i),mcp:Ke(a)}}function Vd(e,t=Ji(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Tn(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function Zi(e=Ji(),t=process.platform){return Vd(Object.values(pt),e,t)}import{existsSync as Jd}from"node:fs";import{resolve as zr}from"node:path";function ge(e){return zr(e).replaceAll("\\","/").replace(/\/$/,"")}function Qe(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function kn(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var Yd=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Lt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!Yd.test(t)?null:t}function dt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=ge(o);n.has(s)||(n.add(s),r.push(s))}return r}function Xd(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Oe(e,t,n,r=Jd){for(let o of e)for(let s of t){let i=ge(zr(o,s)),a=zr(o,s,n).replaceAll("\\","/");if(Xd(i,a)&&r(a))return a}return null}var ea=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,ta=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,Zd=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Qi=new Set(["applications","app","bin","boot","data","dev","etc","home","lib","media","mnt","node_modules","opt","pkg","private","proc","projects","repos","run","sbin","src","srv","sys","tmp","usr","users","var","volumes","workspace","workspaces"]),Qd=/^[a-z][a-z0-9-]{1,63}$/,em=[".cursor/skills",".claude/skills",".agents/skills"],tm=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],nm=Qe(em,ze(Object.values(Ge)).skills),rm=Qe(tm,ze(Object.values(pt)).skills),om=new Set(["read","read_file","view"]),sm=new Set(["bash","shell","zsh"]);function Wr(e){let t=e.replace(/\\/g,"/");return ea.exec(t)?.[1]??null}function im(e){let t=e.replace(/\\/g,"/"),r=ta.exec(t)?.[1];return r?r.toLowerCase():null}function am(e){return Wr(e)??im(e)}function cm(e){for(let t of["path","file_path","target_file"]){let n=e[t];if(typeof n=="string"&&n.length>0)return n}return null}function Pn(e){return typeof e=="string"?Pn(me(e,null)):!e||typeof e!="object"?null:cm(e)}function na(e){if(typeof e=="string")return na(me(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function Vr(e){let t=na(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function um(e){let t=e.replace(/\\/g,"/"),n=ea.exec(t);if(n?.[1])return n[1];let o=ta.exec(t)?.[1];return o?o.toLowerCase():null}function lm(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Jr(e){let t=Pn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function vt(e,t,n){let r=lm(e).toLowerCase();if(om.has(r)){let o=Jr(e);return o?t(o):null}if(sm.has(r)){let o=Vr(e);return o?n(o):null}return null}function ra(e){return vt(e,am,um)}function fm(e){let t=new Set,n=[];for(let r of e.matchAll(Zd)){let o=r[1]?.toLowerCase();!o||t.has(o)||pm(o)||(t.add(o),n.push(o))}return n}function pm(e){let t=e.split("/")[0];return Qi.has(e)||t!==void 0&&Qi.has(t)}function oa(e){let t=e.skillId.toLowerCase();if(!Qd.test(t))return null;let n=e.exists??qd,r=`${t}/SKILL.md`,o=Oe(dt(e.launchCwd,e.gitRoot),nm,r,n);return o!==null?o:e.home?Oe([ge(e.home)],rm,r,n):null}function dm(e){return qe(e.prompt)}function sa(e){let t=v(e,"command_name");if(t){let r=v(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=dm(e);return n?fm(n):[]}var eo=je(Je(),1);import{existsSync as $g}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Ut(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Fg(e){if(!e)return"";let t=xt(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Ut(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Ut(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Ut(o[1]):Ut(t)}async function Un(e=process.cwd()){let t=await Se("git",["rev-parse","--is-inside-work-tree"],2e3,{cwd:e});if(!t.ok||t.stdout!=="true")return null;let[n,r,o,s]=await Promise.all([Se("git",["remote","get-url","origin"],2e3,{cwd:e}),Se("git",["branch","--show-current"],2e3,{cwd:e}),Se("git",["rev-parse","HEAD"],2e3,{cwd:e}),Se("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?xt(n.stdout):null,branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function Pa(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=ki(n,e.scope_path,i);if(s){let g=Ui(s,c);if(g)return g}let u=o??await Un(r),l=u?.remote?Fg(u.remote):"";if(l||(l=Ut(process.env.GITHUB_REPOSITORY??"")),!l)return"";let p=e.scope_path??"",f=p?`${p}/`:"",m=`${l}:${f}${a}`;return s&&Di(s,c,m),m}var jg=[".cursor/rules",".claude/rules",".codex/rules"],Bg=ze(Object.values(Ge)).rules;function Kg(e){return Qe(kn(e?tt[e]:void 0,jg),Bg)}var Gg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Na(e){let t=Lt(e.relativePath);if(!t)return null;let n=e.exists??$g,r=dt(e.launchCwd,e.gitRoot),o=Kg(e.runnerPlatform),s=Oe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=Oe(r,["."],t,n);if(i!==null)return i}return e.home?Oe([ge(e.home)],o,t,n):null}function zg(e){let t=e.replace(/\\/g,"/"),r=Gg.exec(t)?.[1];return r?(0,eo.nativeKeyForRulePath)(r):null}function wa(e){return vt(e,eo.nativeKeyForRulePath,zg)}function Ma(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function La(e){let t=e.attachments;if(!Array.isArray(t))return[];let n=new Set,r=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o;if(s.type!=="rule")continue;let i=typeof s.file_path=="string"?s.file_path:"",a=Lt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var to=je(Je(),1);import{existsSync as Wg}from"node:fs";var Vg=[".cursor/commands",".claude/commands",".codex/prompts"],Jg=ze(Object.values(Ge)).commands;function Yg(e){return Qe(kn(e?tt[e]:void 0,Vg),Jg)}var Xg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function va(e){let t=Lt(e.commandId);if(!t)return null;let n=e.exists??Wg,r=`${t}.md`,o=Yg(e.runnerPlatform),s=Oe(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Oe([ge(e.home)],o,r,n):null}function qg(e){let t=e.replace(/\\/g,"/"),r=Xg.exec(t)?.[1];return r?(0,to.nativeKeyForCommandPath)(r):null}function Ha(e){return vt(e,to.nativeKeyForCommandPath,qg)}var Dn=je(Je(),1);function no(e){let t=pi(e);if(t.problem){O(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function Ua(e,t){if(v(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function Zg(){return!!(L("CURSOR_VERSION")??L("CURSOR_PROJECT_DIR"))}function Da(e,t,n){return e!=="claude"&&e!=="codex"?!1:Ua(t,n)?!0:Zg()}var Qg=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Dt(e,t,n,r){return Ua(e,t)?"cursor":_n(r)?r:_n(n)?n:v(e,"turn_id")?"codex":v(e,"session_id")||Qg.has(t.toLowerCase())?"claude":"unknown"}function Fn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function e_(e){switch(e){case"sessionstart":return"session_start";case"stop":case"sessionend":case"stopfailure":return"session_end";case"pretooluse":case"posttooluse":case"posttoolusefailure":case"permissiondenied":case"beforemcpexecution":case"beforeshellexecution":case"aftershellexecution":case"beforereadfile":case"afterfileedit":case"subagentstart":case"subagentstop":return"tool_invoked";case"beforesubmitprompt":case"userpromptexpansion":case"userpromptsubmit":return"skill_invoked";default:return""}}function Fa(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function $a(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function ja(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Ft(e){return v(e,"session_id")||v(e,"conversation_id")}function ro(e){return v(e,"prompt.id")||v(e,"prompt_id")||v(e,"generation_id")||v(e,"turn_id")}function oo(e){return v(e,"hook_event_name")||v(e,"event")}function Ba(e,t,n){let r=Ft(e),o=ro(e),s=oo(e),i=v(e,"source"),a=Dt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var t_=["session_start","session_end","tool_invoked","skill_invoked"];function n_(e){return t_.includes(e)}function so(e,t){return e&&n_(e)?e:e_(t.toLowerCase())}var r_={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function $n(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Ka(e,t=""){let n=v(e,"tool_name")||v(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!$n(n)&&(n=`MCP:${n}`):n=r_[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||v(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=ra(a);let c=wa(a),u=Ha(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var o_=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Ga(e){for(let t of["subagent_type","agent_type"]){let n=v(e,t);if(n&&o_.test(n))return n}return null}function za(e){let t=Me(e,"duration_ms");if(typeof t=="number")return t;let n=Me(e,"duration");return typeof n=="number"?n:null}var s_="error",i_="interrupted",a_="permission_denied",c_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function $t(e){return c_.test(e)?e:null}function u_(e){for(let t of["failure_type","error_type"]){let n=$t(v(e,t));if(n)return n}return null}function Wa(e,t){return Me(e,"is_interrupt")===!0?i_:t.toLowerCase()==="permissiondenied"?a_:u_(e)??s_}function Va(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function l_(e,t){return Va(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function f_(e,t){return Va(t,n=>(0,Dn.mcpServerNameMatchesToolSegment)(n,e))}function p_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Dn.mcpServerToolSegmentForms)(s)){let a=`${i}__`;e.length>a.length&&e.slice(0,a.length).toLowerCase()===a.toLowerCase()&&i.length>r&&(n={mcpServer:s,mcpTool:e.slice(a.length)},r=i.length)}if(n!==null)return n;let o=/^(.+?)__(.+)$/.exec(e);return!o?.[1]||!o[2]?{mcpServer:null,mcpTool:null}:{mcpServer:f_(o[1],t)??o[1],mcpTool:o[2]}}function d_(e,t){if(/^mcp__/i.test(e))return p_(e.slice(5),t);if(/^MCP:/i.test(e)){let n=e.slice(4);if(!n)return{mcpServer:null,mcpTool:null};let r=n.indexOf(":");if(r>0)return{mcpServer:n.slice(0,r),mcpTool:n.slice(r+1)||null};let o=n.indexOf("__");return o>0?{mcpServer:n.slice(0,o),mcpTool:n.slice(o+2)||null}:{mcpServer:l_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function m_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Ja(e,t=[],n=""){let r=e?d_(e,t):{mcpServer:null,mcpTool:null},o=$t(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!$n(e)&&(s=e),s&&(s=m_(s,o)),{mcpServer:o,mcpTool:s}}var qa=3e4,y_="claims",R_=!0,C_=100,A_=new Set(["sessionstart","sessionend","stopfailure"]),I_=["tool_name","tool","command","file_path","url"];function b_(e=Xa()){return io(Ee(e),y_)}function Za(e,t){try{let n=S_(e,"utf8").split(`
|
|
20
|
-
`,
|
|
21
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(On(o))return!1;let s=o instanceof Error?o.message:String(o);return O(`WARN: event claim failed open: ${s}`),!0}return T_(t,n),!0}function P_(e,t,n){let r=Ft(e),o=ro(e),s=v(e,"tool_use_id"),i=v(e,"subagent_id")||v(e,"agent_id"),a=Dt(e,t,void 0,n),c=O_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function Qa(e,t,n,r=Xa(),o=Date.now()){if(!R_)return!0;let s=x_(P_(e,t,n));if(!s)return!0;let i=k_(s,b_(r),o);return!i&&L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{mkdirSync as M_,readFileSync as pc,statSync as L_,unlinkSync as dc,writeFileSync as v_}from"node:fs";import{homedir as mc}from"node:os";import{join as ec}from"node:path";var tc=4,nc=10;function jn(e=process.platform){return e==="win32"?tc:nc}var Bn=6e4,jt=2e3,rc="slots",oc=64;function sc(e){return ec(e,".ev-ai","agent-hook",rc)}function ao(e,t){return ec(e,`slot-${t}`)}function ic(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var N_=/^(\d+)\n(\d+)\n$/;function w_(e){let t=N_.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 ac(e,t,n){let r=w_(e);if(!r)return Math.abs(n-t)<jt;let o=n-r.acquiredAtMs;return o<-jt||o>=Bn?!1:ic(r.pid)}function gc(e){return e==="session_start"||e==="session_end"}var co=new Set,cc=!1;function _c(e=mc()){return sc(e)}function uo(e,t=mc(),n=process.platform){if(e!==void 0)return e>0?e:jn(n);let r=te(Nt(t),{});return li(r)??jn(n)}function hc(e){return`${e.pid}
|
|
22
|
-
|
|
23
|
-
`}function Sc(e,t=Date.now()){let n,r;try{let o=
|
|
24
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);
|
|
25
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);
|
|
9
|
+
`):l.join(`
|
|
10
|
+
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var ja=W(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=void 0;Z.fitSnapshotInspectionTextBudget=Ag;Z.capComponentTextBytes=$a;Z.prepareComponentInspectionText=Ig;Z.redactComponentSource=ao;Z.componentSourceContainsRedactableSecret=Ng;Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function Ag(e){let t=0;return e.map(n=>{let r=n,o=r.skill?.inspectionText;if(o===void 0)return n;let s=Buffer.byteLength(o,"utf8");return t+s<=Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES?(t+=s,n):{...n,skill:{...r.skill,inspectionText:void 0}}})}function $a(e,t){if(e==null||e.length===0)return;let n=Buffer.from(e,"utf8");if(n.byteLength<=t)return e;let r=new TextDecoder("utf-8",{fatal:!0});for(let o=t;o>0;o-=1)try{return r.decode(n.subarray(0,o))}catch{}}function Ig(e){if(!(e==null||e.length===0))return $a(ao(e),Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var Og=[/\bsk-(?:proj-)?[A-Za-z0-9_-]{16,}/g,/\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}/g,/\bgithub_pat_[A-Za-z0-9_]{20,}/g,/\bxox[baprs]-[A-Za-z0-9-]{10,}/g,/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g,/\bAIza[0-9A-Za-z_-]{35}\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g],bg=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,xg=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,Tg=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,kg=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,Fa=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function Pg(e){let t=e.replace(xg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(Tg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(bg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of Og)t=t.replace(n,Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function ao(e){if(e.length===0)return e;let t=e.split(`
|
|
11
|
+
`),n=!1;return t.map(o=>n?Fa.test(o)?(n=!1,o):o.trim().length===0?o:Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:kg.test(o)&&!Fa.test(o)?(n=!0,o):Pg(o)).join(`
|
|
12
|
+
`)}function Ng(e){return ao(e)!==e}});var Je=W(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.redactComponentSource=E.prepareComponentInspectionText=E.fitSnapshotInspectionTextBudget=E.componentSourceContainsRedactableSecret=E.capComponentTextBytes=E.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=E.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=E.COMPONENT_INSPECTION_TEXT_MAX_BYTES=E.usableCatalogText=E.parseFrontmatterField=E.parseFrontmatterDescription=E.mcpServerToolSegmentForms=E.mcpServerNameMatchesToolSegment=E.isNpmRegistryPublisher=E.EMPTY_NPM_PUBLISHER=E.displayPublisherName=E.classifyMcpProvenance=E.resolveMcpPackageIdentity=E.McpPackageEcosystem=E.pinnedPackageVersionFromSpec=E.pinnedPackageVersionFromNpx=E.packageNameFromSpec=E.npxPackageSpecs=E.npxExecBin=E.PACKAGE_FIELD_MAX=E.serializeMcpLaunchIdentity=E.projectMcpMissingLaunchIdentity=E.projectMcpLaunchIdentity=E.normalizeMcpToolNames=E.MCP_MISSING_LAUNCH_SERIALIZED=E.MCP_LAUNCH_IDENTITY_ALGORITHM=E.maskMcpLaunchForDisplay=E.launchContainsCredentials=E.hashMcpLaunchIdentity=E.foldMcpName=E.buildMcpFamilyCanonicalKey=E.ComponentKind=void 0;E.userConfigRootFromPath=jg;E.installationRootExternalKey=Bg;E.normalizeRepositoryRelativePath=Ba;E.nativeKeyForSkillPath=Kg;E.nativeKeyForRulePath=Gg;E.nativeKeyForCommandPath=zg;E.serializeComponentIdentity=Ga;E.buildComponentReference=Vg;E.validateComponentReference=Jg;var wg=$e("node:crypto"),Mg=$e("node:path"),Lg="cmp1_",vg=/^cmp1_[A-Za-z0-9_-]{43}$/,Hg=["/skills/","/skills-cursor/"],Ug=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Dg=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Fg=[".cursor",".claude",".codex"],$g={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function jg(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Fg.includes(o));return n||(t.map(o=>$g[o]).find(o=>o!==void 0)??"unknown")}function Bg(e,t){return`runtime-install:${e}/${t}`}function jn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function Ba(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Mg.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return jn(n,"sourcePath")}function Kg(e){let t=e.replaceAll("\\","/");for(let n of Hg){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Ka(e,t,n){let r=e.replaceAll("\\","/"),s=t.exec(r)?.[1];if(!s||s.split("/").includes(".."))return null;let i=s.replace(n,"");return i.length>0?i:null}function Gg(e){return Ka(e,Ug,/\.(mdc|md|rules)$/i)}function zg(e){return Ka(e,Dg,/\.(md|mdc|toml)$/i)}function Wg(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Ga(e){let t=[jn(e.installationRootExternalKey,"installationRootExternalKey"),jn(e.installableKind,"installableKind"),Ba(e.sourcePath),jn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Wg).join("|")}`,"utf8")}function Vg(e){let t=(0,wg.createHash)("sha256").update(Ga(e)).digest("base64url");return`${Lg}${t}`}function Jg(e){return vg.test(e)}var Re=Un();Object.defineProperty(E,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Re.buildMcpFamilyCanonicalKey}});Object.defineProperty(E,"foldMcpName",{enumerable:!0,get:function(){return Re.foldMcpName}});Object.defineProperty(E,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.hashMcpLaunchIdentity}});Object.defineProperty(E,"launchContainsCredentials",{enumerable:!0,get:function(){return Re.launchContainsCredentials}});Object.defineProperty(E,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Re.maskMcpLaunchForDisplay}});Object.defineProperty(E,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Re.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(E,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Re.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(E,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Re.normalizeMcpToolNames}});Object.defineProperty(E,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpLaunchIdentity}});Object.defineProperty(E,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpMissingLaunchIdentity}});Object.defineProperty(E,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.serializeMcpLaunchIdentity}});var St=Fn();Object.defineProperty(E,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return St.PACKAGE_FIELD_MAX}});Object.defineProperty(E,"npxExecBin",{enumerable:!0,get:function(){return St.npxExecBin}});Object.defineProperty(E,"npxPackageSpecs",{enumerable:!0,get:function(){return St.npxPackageSpecs}});Object.defineProperty(E,"packageNameFromSpec",{enumerable:!0,get:function(){return St.packageNameFromSpec}});Object.defineProperty(E,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return St.pinnedPackageVersionFromNpx}});Object.defineProperty(E,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return St.pinnedPackageVersionFromSpec}});var za=ka();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return za.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return za.resolveMcpPackageIdentity}});var Bn=va();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return Bn.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return Bn.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Bn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Bn.isNpmRegistryPublisher}});var Wa=Ua();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return Wa.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return Wa.mcpServerToolSegmentForms}});var co=Da();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return co.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return co.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return co.usableCatalogText}});var Ve=ja();Object.defineProperty(E,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return Ve.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(E,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"capComponentTextBytes",{enumerable:!0,get:function(){return Ve.capComponentTextBytes}});Object.defineProperty(E,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return Ve.componentSourceContainsRedactableSecret}});Object.defineProperty(E,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return Ve.fitSnapshotInspectionTextBudget}});Object.defineProperty(E,"prepareComponentInspectionText",{enumerable:!0,get:function(){return Ve.prepareComponentInspectionText}});Object.defineProperty(E,"redactComponentSource",{enumerable:!0,get:function(){return Ve.redactComponentSource}})});var ir=W(he=>{"use strict";he.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;he.find=(e,t)=>e.nodes.find(n=>n.type===t);he.exceedsLimit=(e,t,n=1,r)=>r===!1||!he.isInteger(e)||!he.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;he.escapeNode=(e,t=0,n)=>{let r=e.nodes[t];r&&(n&&r.type===n||r.type==="open"||r.type==="close")&&r.escaped!==!0&&(r.value="\\"+r.value,r.escaped=!0)};he.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;he.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;he.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;he.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);he.flatten=(...e)=>{let t=[],n=r=>{for(let o=0;o<r.length;o++){let s=r[o];if(Array.isArray(s)){n(s);continue}s!==void 0&&t.push(s)}return t};return n(e),t}});var ar=W((bb,Cu)=>{"use strict";var Ru=ir();Cu.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&Ru.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&Ru.isOpenOrClose(r)?"\\"+r.value:r.value;if(r.value)return r.value;if(r.nodes)for(let c of r.nodes)a+=n(c);return a};return n(e)}});var Iu=W((xb,Au)=>{"use strict";Au.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Mu=W((Tb,wu)=>{"use strict";var Ou=Iu(),nt=(e,t,n)=>{if(Ou(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(Ou(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let r={relaxZeros:!0,...n};typeof r.strictZeros=="boolean"&&(r.relaxZeros=r.strictZeros===!1);let o=String(r.relaxZeros),s=String(r.shorthand),i=String(r.capture),a=String(r.wrap),c=e+":"+t+"="+o+s+i+a;if(nt.cache.hasOwnProperty(c))return nt.cache[c].result;let l=Math.min(e,t),u=Math.max(e,t);if(Math.abs(l-u)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let d=Nu(e)||Nu(t),f={min:e,max:t,a:l,b:u},m=[],g=[];if(d&&(f.isPadded=d,f.maxLen=String(f.max).length),l<0){let S=u<0?Math.abs(u):1;g=bu(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(m=bu(l,u,f,r)),f.negatives=g,f.positives=m,f.result=hS(g,m,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&m.length+g.length>1&&(f.result=`(?:${f.result})`),nt.cache[c]=f,f.result};function hS(e,t,n){let r=jo(e,t,"-",!1,n)||[],o=jo(t,e,"",!1,n)||[],s=jo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function SS(e,t){let n=1,r=1,o=Tu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Tu(e,n);for(o=ku(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=ku(t+1,r)-1;return s=[...s],s.sort(RS),s}function ES(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=yS(e,t),o=r.length,s="",i=0;for(let a=0;a<o;a++){let[c,l]=r[a];c===l?s+=c:c!=="0"||l!=="9"?s+=CS(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function bu(e,t,n,r){let o=SS(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=ES(String(i),String(l),r),d="";if(!n.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+Pu(a.count),i=l+1;continue}n.isPadded&&(d=AS(l,n,r)),u.string=d+u.pattern+Pu(u.count),s.push(u),i=l+1,a=u}return s}function jo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!xu(t,"string",a)&&s.push(n+a),r&&xu(t,"string",a)&&s.push(n+a)}return s}function yS(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function RS(e,t){return e>t?1:t>e?-1:0}function xu(e,t,n){return e.some(r=>r[t]===n)}function Tu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function ku(e,t){return e-e%Math.pow(10,t)}function Pu(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function CS(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Nu(e){return/^-?(0+)\d/.test(e)}function AS(e,t,n){if(!t.isPadded)return e;let r=Math.abs(t.maxLen-String(e).length),o=n.relaxZeros!==!1;switch(r){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:return o?`0{0,${r}}`:`0{${r}}`}}nt.cache={};nt.clearCache=()=>nt.cache={};wu.exports=nt});var Go=W((kb,$u)=>{"use strict";var IS=$e("util"),vu=Mu(),Lu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),OS=e=>t=>e===!0?Number(t):String(t),Bo=e=>typeof e=="number"||typeof e=="string"&&e!=="",Xt=e=>Number.isInteger(+e),Ko=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},bS=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,xS=(e,t,n)=>{if(t>0){let r=e[0]==="-"?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return n===!1?String(e):e},ur=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},TS=(e,t,n)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let r=t.capture?"":"?:",o="",s="",i;return e.positives.length&&(o=e.positives.map(a=>ur(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>ur(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Hu=(e,t,n,r)=>{if(n)return vu(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},Uu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return vu(e,t,n)},Du=(...e)=>new RangeError("Invalid range arguments: "+IS.inspect(...e)),Fu=(e,t,n)=>{if(n.strictRanges===!0)throw Du([e,t]);return[]},kS=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},PS=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Du([e,t]);return[]}o===0&&(o=0),s===0&&(s=0);let i=o>s,a=String(e),c=String(t),l=String(n);n=Math.max(Math.abs(n),1);let u=Ko(a)||Ko(c)||Ko(l),d=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&bS(e,t,r)===!1,m=r.transform||OS(f);if(r.toRegex&&n===1)return Hu(ur(e,d),ur(t,d),!0,r);let g={negatives:[],positives:[]},S=T=>g[T<0?"negatives":"positives"].push(Math.abs(T)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(xS(m(o,A),d,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?TS(g,r,d):Uu(C,null,{wrap:!1,...r}):C},NS=(e,t,n=1,r={})=>{if(!Xt(e)&&e.length>1||!Xt(t)&&t.length>1)return Fu(e,t,r);let o=r.transform||(f=>String.fromCharCode(f)),s=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),a=s>i,c=Math.min(s,i),l=Math.max(s,i);if(r.toRegex&&n===1)return Hu(c,l,!1,r);let u=[],d=0;for(;a?s>=i:s<=i;)u.push(o(s,d)),s=a?s-n:s+n,d++;return r.toRegex===!0?Uu(u,null,{wrap:!1,options:r}):u},cr=(e,t,n,r={})=>{if(t==null&&Bo(e))return[e];if(!Bo(e)||!Bo(t))return Fu(e,t,r);if(typeof n=="function")return cr(e,t,1,{transform:n});if(Lu(n))return cr(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,Xt(n)?Xt(e)&&Xt(t)?PS(e,t,n,o):NS(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Lu(n)?kS(n,o):cr(e,t,1,n)};$u.exports=cr});var Ku=W((Pb,Bu)=>{"use strict";var wS=Go(),ju=ir(),MS=(e,t={})=>{let n=(r,o={})=>{let s=ju.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",l="";if(r.isOpen===!0)return c+r.value;if(r.isClose===!0)return console.log("node.isClose",c,r.value),c+r.value;if(r.type==="open")return a?c+r.value:"(";if(r.type==="close")return a?c+r.value:")";if(r.type==="comma")return r.prev.type==="comma"?"":a?r.value:"|";if(r.value)return r.value;if(r.nodes&&r.ranges>0){let u=ju.reduce(r.nodes),d=wS(...u,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return u.length>1&&d.length>1?`(${d})`:d}if(r.nodes)for(let u of r.nodes)l+=n(u,r);return l};return n(e)};Bu.exports=MS});var Wu=W((Nb,zu)=>{"use strict";var LS=Go(),Gu=ar(),yt=ir(),rt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?yt.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(rt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?rt(o,s,n):o+s);return yt.flatten(r)},vS=(e,t={})=>{let n=t.rangeLimit===void 0?1e3:t.rangeLimit,r=(o,s={})=>{o.queue=[];let i=s,a=s.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,a=i.queue;if(o.invalid||o.dollar){a.push(rt(a.pop(),Gu(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(rt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=yt.reduce(o.nodes);if(yt.exceedsLimit(...d,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=LS(...d,t);f.length===0&&(f=Gu(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=yt.encloseBrace(o),l=o.queue,u=o;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,l=u.queue;for(let d=0;d<o.nodes.length;d++){let f=o.nodes[d];if(f.type==="comma"&&o.type==="brace"){d===1&&l.push(""),l.push("");continue}if(f.type==="close"){a.push(rt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(rt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return yt.flatten(r(e))};zu.exports=vS});var Ju=W((wb,Vu)=>{"use strict";Vu.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
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
|
+
`)}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
|
+
${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)}
|
|
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
|
+
`,{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
|
+
`)}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)}
|
|
20
|
+
`,{encoding:"utf8",flag:"wx"})}function Ki(e,t){try{return Gp(e,t),t}catch(n){if(!aa(n))throw n;return Ze(e)}}function Gi(e,t){Yr(wn(e),{recursive:!0}),pe(e,`${JSON.stringify(t,null,2)}
|
|
21
|
+
`)}function zi(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function ca(e,t={}){let n=t.home??Xr(),r=t.env??process.env,o=await jp(e),s=kp(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=wt(i),c=ta(t.overrideId,r),l=a==="cursor_cloud"&&vr(i)?Fp(r,e):a==="claude_remote"?await $p(r,e):null,u=Ze(s);if(u){let S=u;if(c&&c===u.installation_id&&u.pinned!==!0&&(S={...u,pinned:!0},Gi(s,S)),!!l&&l!==S.installation_id&&!c&&S.pinned!==!0&&Np(S.installation_id)&&l){let A={installation_id:l,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Gi(s,A),{installationId:l,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let d=c??l??Bi(void 0,r),f=Ki(s,zi(d,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??l??Bi(void 0,r),g=Ki(s,zi(m===d?Qi():m,c));if(g)return{installationId:g.installation_id,storePath:s,repoKey:o};throw new Error(`Failed to create installation record at ${s}`)}import{existsSync as am}from"node:fs";import{existsSync as qp}from"node:fs";import{homedir as fa}from"node:os";import{join as Zp}from"node:path";import{existsSync as zp,readdirSync as ua}from"node:fs";import{homedir as Mn}from"node:os";import{join as ie}from"node:path";function Wp(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ie(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Vp(e=process.platform){let t=Wp(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!zp(r))return n;let o=ua(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function Qr(e=process.platform,t=Mn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:Vp(e)}}function Jp(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ie(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Yp(e=process.platform,t=Mn()){let n=[ie(Jp(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of ua(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function Xp(e=process.platform,t=Mn()){let n=e==="win32"?ie(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ie(n,"requirements.toml")];return e!=="win32"&&r.push(ie(n,"managed_config.toml")),r.push(ie(t,".codex","managed_config.toml"),ie(n,"config.toml")),r}function Ln(e,t=process.platform,n=Mn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Qr(t,n);return[r,...o]}case"cursor":return Yp(t,n);default:return Xp(t,n)}}function da(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Qp={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function la(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function em(e,t={}){let{shared:n}=e;return{skillRoots:[...n.skillRoots,...t.skillRoots??[]],dirs:n.dirs,memory:[...n.memory,...t.memory??[]],settings:[...n.settings,...t.settings??[]],mcpJson:la(n.mcpJson,t.mcpJson),mcpToml:la(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function pa(e){return Object.fromEntries(Object.entries(Qp).map(([t,n])=>[t,em(n,n[e])]))}var gt=pa("homeOnly"),Ge=pa("projectOnly");function tm(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function nm(e,t){return tm(e).some(n=>qp(Zp(t,n)))}function ma(e,t){for(let n of e)if(nm(n,t))return!0;return!1}function Ke(e){return[...new Set(e)]}function ze(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let l of c.dirs)l.kind==="SUBAGENT"?n.push(l.dir):l.kind==="COMMAND"?r.push(l.dir):o.push(l.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:Ke(t),subagents:Ke(n),commands:Ke(r),rules:Ke(o),memory:Ke(s),settings:Ke(i),mcp:Ke(a)}}function rm(e,t=fa(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Ln(o.managed,n,t));return Ke(r)}var We=ze(Object.values(gt));function ga(e=fa(),t=process.platform){return rm(Object.values(gt),e,t)}import{existsSync as om}from"node:fs";import{resolve as eo}from"node:path";function ge(e){return eo(e).replaceAll("\\","/").replace(/\/$/,"")}function Qe(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function vn(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var sm=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Dt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!sm.test(t)?null:t}function _t(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=ge(o);n.has(s)||(n.add(s),r.push(s))}return r}function im(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function be(e,t,n,r=om){for(let o of e)for(let s of t){let i=ge(eo(o,s)),a=eo(o,s,n).replaceAll("\\","/");if(im(i,a)&&r(a))return a}return null}var ha=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,Sa=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,cm=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,_a=new Set(["applications","app","bin","boot","data","dev","etc","home","lib","media","mnt","node_modules","opt","pkg","private","proc","projects","repos","run","sbin","src","srv","sys","tmp","usr","users","var","volumes","workspace","workspaces"]),um=/^[a-z][a-z0-9-]{1,63}$/,lm=[".cursor/skills",".claude/skills",".agents/skills"],fm=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],dm=Qe(lm,ze(Object.values(Ge)).skills),pm=Qe(fm,ze(Object.values(gt)).skills),mm=new Set(["read","read_file","view"]),gm=new Set(["bash","shell","zsh"]);function to(e){let t=e.replace(/\\/g,"/");return ha.exec(t)?.[1]??null}function _m(e){let t=e.replace(/\\/g,"/"),r=Sa.exec(t)?.[1];return r?r.toLowerCase():null}function hm(e){return to(e)??_m(e)}function Sm(e){for(let t of["path","file_path","target_file"]){let n=e[t];if(typeof n=="string"&&n.length>0)return n}return null}function Hn(e){return typeof e=="string"?Hn(me(e,null)):!e||typeof e!="object"?null:Sm(e)}function Ea(e){if(typeof e=="string")return Ea(me(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function no(e){let t=Ea(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function Em(e){let t=e.replace(/\\/g,"/"),n=ha.exec(t);if(n?.[1])return n[1];let o=Sa.exec(t)?.[1];return o?o.toLowerCase():null}function ym(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function ro(e){let t=Hn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function Ft(e,t,n){let r=ym(e).toLowerCase();if(mm.has(r)){let o=ro(e);return o?t(o):null}if(gm.has(r)){let o=no(e);return o?n(o):null}return null}function ya(e){return Ft(e,hm,Em)}function Rm(e){let t=new Set,n=[];for(let r of e.matchAll(cm)){let o=r[1]?.toLowerCase();!o||t.has(o)||Cm(o)||(t.add(o),n.push(o))}return n}function Cm(e){let t=e.split("/")[0];return _a.has(e)||t!==void 0&&_a.has(t)}function Ra(e){let t=e.skillId.toLowerCase();if(!um.test(t))return null;let n=e.exists??am,r=`${t}/SKILL.md`,o=be(_t(e.launchCwd,e.gitRoot),dm,r,n);return o!==null?o:e.home?be([ge(e.home)],pm,r,n):null}function Am(e){return qe(e.prompt)}function Ca(e){let t=v(e,"command_name");if(t){let r=v(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Am(e);return n?Rm(n):[]}var uo=je(Je(),1);import{existsSync as Xg}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function jt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Yg(e){if(!e)return"";let t=Pt(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return jt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return jt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?jt(o[1]):jt(t)}async function Kn(e=process.cwd()){let t=await Se("git",["rev-parse","--is-inside-work-tree"],2e3,{cwd:e});if(!t.ok||t.stdout!=="true")return null;let[n,r,o,s]=await Promise.all([Se("git",["remote","get-url","origin"],2e3,{cwd:e}),Se("git",["branch","--show-current"],2e3,{cwd:e}),Se("git",["rev-parse","HEAD"],2e3,{cwd:e}),Se("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?Pt(n.stdout):null,branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function Va(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=qi(n,e.scope_path,i);if(s){let g=sa(s,c);if(g)return g}let l=o??await Kn(r),u=l?.remote?Yg(l.remote):"";if(u||(u=jt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let d=e.scope_path??"",f=d?`${d}/`:"",m=`${u}:${f}${a}`;return s&&ia(s,c,m),m}var qg=[".cursor/rules",".claude/rules",".codex/rules"],Zg=ze(Object.values(Ge)).rules;function Qg(e){return Qe(vn(e?tt[e]:void 0,qg),Zg)}var e_=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Ja(e){let t=Dt(e.relativePath);if(!t)return null;let n=e.exists??Xg,r=_t(e.launchCwd,e.gitRoot),o=Qg(e.runnerPlatform),s=be(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=be(r,["."],t,n);if(i!==null)return i}return e.home?be([ge(e.home)],o,t,n):null}function t_(e){let t=e.replace(/\\/g,"/"),r=e_.exec(t)?.[1];return r?(0,uo.nativeKeyForRulePath)(r):null}function Ya(e){return Ft(e,uo.nativeKeyForRulePath,t_)}function Xa(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function qa(e){let t=e.attachments;if(!Array.isArray(t))return[];let n=new Set,r=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o;if(s.type!=="rule")continue;let i=typeof s.file_path=="string"?s.file_path:"",a=Dt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var lo=je(Je(),1);import{existsSync as n_}from"node:fs";var r_=[".cursor/commands",".claude/commands",".codex/prompts"],o_=ze(Object.values(Ge)).commands;function s_(e){return Qe(vn(e?tt[e]:void 0,r_),o_)}var i_=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function Za(e){let t=Dt(e.commandId);if(!t)return null;let n=e.exists??n_,r=`${t}.md`,o=s_(e.runnerPlatform),s=be(_t(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?be([ge(e.home)],o,r,n):null}function a_(e){let t=e.replace(/\\/g,"/"),r=i_.exec(t)?.[1];return r?(0,lo.nativeKeyForCommandPath)(r):null}function Qa(e){return Ft(e,lo.nativeKeyForCommandPath,a_)}var Gn=je(Je(),1);function ec(e){let t=Mi(e);if(t.problem){b(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function tc(e,t){if(v(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function c_(){return!!(L("CURSOR_VERSION")??L("CURSOR_PROJECT_DIR"))}function nc(e,t,n){return e!=="claude"&&e!=="codex"?!1:tc(t,n)?!0:c_()}var u_=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Bt(e,t,n,r){return tc(e,t)?"cursor":On(r)?r:On(n)?n:v(e,"turn_id")?"codex":v(e,"session_id")||u_.has(t.toLowerCase())?"claude":"unknown"}function zn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function l_(e){switch(e){case"sessionstart":return"session_start";case"stop":case"sessionend":case"stopfailure":return"session_end";case"pretooluse":case"posttooluse":case"posttoolusefailure":case"permissiondenied":case"beforemcpexecution":case"beforeshellexecution":case"aftershellexecution":case"beforereadfile":case"afterfileedit":case"subagentstart":case"subagentstop":return"tool_invoked";case"beforesubmitprompt":case"userpromptexpansion":case"userpromptsubmit":return"skill_invoked";default:return""}}function rc(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function oc(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function sc(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Kt(e){return v(e,"session_id")||v(e,"conversation_id")}function fo(e){return v(e,"prompt.id")||v(e,"prompt_id")||v(e,"generation_id")||v(e,"turn_id")}function po(e){return v(e,"hook_event_name")||v(e,"event")}function ic(e,t,n){let r=Kt(e),o=fo(e),s=po(e),i=v(e,"source"),a=Bt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var f_=["session_start","session_end","tool_invoked","skill_invoked"];function d_(e){return f_.includes(e)}function mo(e,t){return e&&d_(e)?e:l_(t.toLowerCase())}var p_={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Wn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function ac(e,t=""){let n=v(e,"tool_name")||v(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Wn(n)&&(n=`MCP:${n}`):n=p_[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||v(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=ya(a);let c=Ya(a),l=Qa(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var m_=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function cc(e){for(let t of["subagent_type","agent_type"]){let n=v(e,t);if(n&&m_.test(n))return n}return null}function uc(e){let t=Me(e,"duration_ms");if(typeof t=="number")return t;let n=Me(e,"duration");return typeof n=="number"?n:null}var g_="error",__="interrupted",h_="permission_denied",S_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Gt(e){return S_.test(e)?e:null}function E_(e){for(let t of["failure_type","error_type"]){let n=Gt(v(e,t));if(n)return n}return null}function lc(e,t){return Me(e,"is_interrupt")===!0?__:t.toLowerCase()==="permissiondenied"?h_:E_(e)??g_}function fc(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function y_(e,t){return fc(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function R_(e,t){return fc(t,n=>(0,Gn.mcpServerNameMatchesToolSegment)(n,e))}function C_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Gn.mcpServerToolSegmentForms)(s)){let a=`${i}__`;e.length>a.length&&e.slice(0,a.length).toLowerCase()===a.toLowerCase()&&i.length>r&&(n={mcpServer:s,mcpTool:e.slice(a.length)},r=i.length)}if(n!==null)return n;let o=/^(.+?)__(.+)$/.exec(e);return!o?.[1]||!o[2]?{mcpServer:null,mcpTool:null}:{mcpServer:R_(o[1],t)??o[1],mcpTool:o[2]}}function A_(e,t){if(/^mcp__/i.test(e))return C_(e.slice(5),t);if(/^MCP:/i.test(e)){let n=e.slice(4);if(!n)return{mcpServer:null,mcpTool:null};let r=n.indexOf(":");if(r>0)return{mcpServer:n.slice(0,r),mcpTool:n.slice(r+1)||null};let o=n.indexOf("__");return o>0?{mcpServer:n.slice(0,o),mcpTool:n.slice(o+2)||null}:{mcpServer:y_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function I_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function dc(e,t=[],n=""){let r=e?A_(e,t):{mcpServer:null,mcpTool:null},o=Gt(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Wn(e)&&(s=e),s&&(s=I_(s,o)),{mcpServer:o,mcpTool:s}}var gc=3e4,P_="claims",N_=!0,w_=100,M_=new Set(["sessionstart","sessionend","stopfailure"]),L_=["tool_name","tool","command","file_path","url"];function v_(e=mc()){return go(Ee(e),P_)}function _c(e,t){try{let n=T_(e,"utf8").split(`
|
|
22
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function H_(e){let t=[];for(let n of L_){let r=v(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":Nt(t.join("\0"))}function U_(e){let t=e.sessionId.trim();if(!t)return;let n=e.runnerEvent.trim().toLowerCase(),r=e.turnId.trim(),o=e.toolUseId.trim(),s=e.subagentId?.trim()??"",i=e.callFingerprint?.trim()??"",a=!!(o||r||s),c=M_.has(n);if(!a&&!c)return;let l=e.runnerPlatform.trim()||"unknown";return Nt(`${l}|${t}|${n}|${r}|${o}|${i}|${s}`)}function D_(e,t=Date.now()){let n;try{n=x_(e)}catch{return}let r=0;for(let o of n){if(r>=w_)break;r+=1;let s=go(e,o),i=_c(s,t);if(!(!Number.isFinite(i)||i<gc))try{pc(s)}catch{}}}function F_(e,t,n=Date.now()){let r=go(t,e);try{if(O_(r)){let o=_c(r,n);if(Number.isFinite(o)&&o>=0&&o<gc)return!1;try{pc(r)}catch{}}}catch{}try{b_(t,{recursive:!0}),k_(r,`${n}
|
|
23
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(Lt(o))return!1;let s=o instanceof Error?o.message:String(o);return b(`WARN: event claim failed open: ${s}`),!0}return D_(t,n),!0}function $_(e,t,n){let r=Kt(e),o=fo(e),s=v(e,"tool_use_id"),i=v(e,"subagent_id")||v(e,"agent_id"),a=Bt(e,t,void 0,n),c=H_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function hc(e,t,n,r=mc(),o=Date.now()){if(!N_)return!0;let s=U_($_(e,t,n));if(!s)return!0;let i=F_(s,v_(r),o);return!i&&L("EV_AI_HOOK_DEBUG")&&b(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{mkdirSync as j_,readFileSync as _o,statSync as Rc,unlinkSync as Cc,writeFileSync as ho}from"node:fs";import{homedir as Ac}from"node:os";function Ic(e){return e==="session_start"||e==="session_end"}var Vn=new Set,Sc=!1;function So(e=Ac()){return Ci(e)}function Eo(e,t=Ac(),n=process.platform){if(e!==void 0)return e>0?e:Rn(n);let r=te(Ht(t),{});return Ni(r)??Rn(n)}function zt(e){return In(e.pid,e.acquiredAtMs)}function Oc(e){try{let t=Rc(e);return t.isFile()&&t.size<=Dr?_o(e,"utf8"):void 0}catch{return}}function yo(e,t=So()){if(!e)return;let n=An(t,e.index),r={path:n,pid:process.pid,acquiredAtMs:e.acquiredAtMs},o=Oc(n);if(o===zt(r))return Jn(r);if(o===In(process.ppid,e.acquiredAtMs))try{return ho(n,zt(r),{encoding:"utf8",mode:384}),Jn(r)}catch{return}}function bc(e,t){if(e.path){Vn.delete(e);try{Oc(e.path)===zt(e)&&ho(e.path,In(t,e.acquiredAtMs),{encoding:"utf8",mode:384})}catch{}}}function xc(e,t=Date.now()){let n,r;try{let o=Rc(e);if(!o.isFile())return!1;r=o.mtimeMs,n=o.size<=Dr?_o(e,"utf8"):""}catch{return!1}return Ii(n,r,t)}function Tc(e,t=So(),n=Date.now){for(let r=0;r<e;r+=1)if(!xc(An(t,r),n()))return!0;return e<=0}function kc(e){return{pid:process.pid,acquiredAtMs:e}}function Ec(e,t){let n=e instanceof Error?e.message:String(e);return b(`WARN: hook process slot failed open: ${n}`),kc(t)}function Jn(e){return Vn.add(e),Sc||(Sc=!0,process.once("exit",()=>{for(let t of[...Vn])Yn(t)})),e}function yc(e){try{return ho(e.path,zt(e),{encoding:"utf8",flag:"wx",mode:384}),!0}catch(t){if(Lt(t))return!1;throw t}}function Pc(e,t=So(),n=Date.now){if(e<=0)return kc(n());try{j_(t,{recursive:!0})}catch(s){return Ec(s,n())}let r,o=0;for(let s=0;s<e;s+=1)try{let i={path:An(t,s),pid:process.pid,acquiredAtMs:n()};if(yc(i))return Jn(i);if(xc(i.path,n())){o+=1;continue}try{Cc(i.path)}catch(a){if(!ft(a))throw a}if(i.acquiredAtMs=n(),yc(i))return Jn(i);o+=1}catch(i){r??=i}return r===void 0||o>0?null:Ec(r,n())}function Yn(e,t=Date.now()){if(Vn.delete(e),!(!e.path||t-e.acquiredAtMs>=Cn-vt))try{_o(e.path,"utf8")===zt(e)&&Cc(e.path)}catch{}}function Ro(e){L("EV_AI_HOOK_DEBUG")&&b(`DEBUG: hook process cap reached (${e}/${e}); event dropped`)}import{closeSync as B_,writeSync as K_}from"node:fs";function Nc(e=process.env){let t=e[Hr];if(delete e[Hr],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{K_(n,di)}catch{}try{B_(n)}catch{}}}function Co(e=process.env){let t=e[ai];if(t)return{launcherVersion:t,hookSource:e[ci]??"",fallbackReason:e[ui],launcherScope:e[li]}}function wc(e,t){return(e?Ut(e):void 0)===t}import{realpathSync as mC}from"node:fs";import{homedir as gC}from"node:os";var B=je(Je(),1);import{existsSync as G_,readFileSync as z_}from"node:fs";import{homedir as Mc}from"node:os";import{join as W_}from"node:path";var V_="cloud-cache.json",J_=1440*60*1e3,Y_=900*1e3;function X_(e=Mc()){return W_(Ee(e),V_)}function q_(e){if(!G_(e))return;let t=me(z_(e,"utf8"),{});if(!(typeof t.context!="string"||typeof t.probed_at!="number"||t.result!==null&&t.result!==void 0&&typeof t.result!="object"))return{context:t.context,probed_at:t.probed_at,result:t.result??null}}function Z_(e,t){try{pe(e,`${JSON.stringify(t)}
|
|
24
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);b(`WARN: cloud cache write failed open: ${r}`)}}function Q_(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?Y_:J_;return n-e.probed_at<r}async function eh(e){let t=await fetch("http://169.254.169.254/latest/api/token",{method:"PUT",headers:{"X-aws-ec2-metadata-token-ttl-seconds":"60"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=(await t.text()).trim();if(!n)return;let r={"X-aws-ec2-metadata-token":n},[o,s]=await Promise.all([fetch("http://169.254.169.254/latest/meta-data/placement/region",{headers:r,signal:AbortSignal.timeout(e)}).catch(()=>{}),fetch("http://169.254.169.254/latest/meta-data/instance-id",{headers:r,signal:AbortSignal.timeout(e)}).catch(()=>{})]);if(!o?.ok&&!s?.ok)return;let i=o?.ok?(await o.text()).trim():"",a=s?.ok?(await s.text()).trim():"";if(!(!i&&!a))return{provider:"aws",region:i,instance_id:a}}async function th(e){let t=await fetch("http://metadata.google.internal/computeMetadata/v1/instance/?recursive=true",{headers:{"Metadata-Flavor":"Google"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=await t.json(),r=typeof n.zone=="string"?n.zone.split("/").pop()??"":"",o=n.id===void 0?"":String(n.id);if(!(!r&&!o))return{provider:"gcp",region:r,instance_id:o}}async function nh(e){let t=await fetch("http://169.254.169.254/metadata/instance?api-version=2021-02-01",{headers:{Metadata:"true"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=await t.json(),r=n.compute?.location??"",o=n.compute?.vmId??"";if(!(!r&&!o))return{provider:"azure",region:r,instance_id:o}}async function rh(e){let t=await Promise.allSettled([eh(e),th(e),nh(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function Lc(e,t){if(e==="interactive")return null;let n=t?.home??Mc(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=X_(n),i=q_(s);if(Q_(i,e,o))return i.result;let a=await rh(r);return Z_(s,{context:e,probed_at:o,result:a}),a}var Dc=je(Je(),1);import{existsSync as Hc}from"node:fs";import{homedir as Uc}from"node:os";import{join as Wt,resolve as Ao,sep as vc}from"node:path";function Xn(e,t,n){if(!Hc(e))return;let r=te(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function oh(e,t,n){if(!Hc(e))return;let r=te(e,{}),o=Ao(t),s=null;for(let a of Object.keys(r.projects??{})){let c=Ao(a);(o===c||o.startsWith(c.endsWith(vc)?c:c+vc))&&(s===null||c.length>Ao(s).length)&&(s=a)}if(s===null)return;let i=r.projects?.[s]?.mcpServers??{};for(let[a,c]of Object.entries(i))n.set(a,{declared:{name:a,source:"claude_json_project",sourcePath:".claude.json",scope:"user"},config:c})}function Fc(e,t,n,r){let o=new Map;for(let s of e.mcp_servers??[])s.name&&o.set(s.name,{declared:{name:s.name,source:"manifest"}});return n==="claude"?(Xn(Wt(r,".claude.json"),{source:"claude_json_user"},o),oh(Wt(r,".claude.json"),t,o)):n==="cursor"&&Xn(Wt(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),Xn(Wt(t,".mcp.json"),{source:"mcp_json"},o),Xn(Wt(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function Io(e,t=process.cwd(),n="claude",r=Uc()){return[...Fc(e,t,n,r).values()].map(o=>o.declared)}function $c(e,t,n=process.cwd(),r="claude",o=Uc()){let s=Fc(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,Dc.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var sh=["CI","GITHUB_ACTIONS","GITLAB_CI","CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER","KUBERNETES_SERVICE_HOST","REMOTE_CONTAINERS","DEVCONTAINER","GITHUB_REPOSITORY","GITHUB_REPOSITORY_ID","GITHUB_REF","GITHUB_SHA","GITHUB_RUN_ID","GITHUB_WORKFLOW","GITHUB_ACTOR","GITHUB_TRIGGERING_ACTOR","GITHUB_ACTOR_ID","GITHUB_USER","GITLAB_USER_LOGIN","GITLAB_USER_NAME","GITLAB_USER_EMAIL","BUILD_REQUESTEDFOR","BUILD_REQUESTEDFOREMAIL","BUILD_REQUESTEDFORID","BUILDKITE_BUILD_CREATOR","BUILDKITE_BUILD_CREATOR_EMAIL","BUILD_USER","BUILD_USER_ID","BUILD_USER_EMAIL","CHANGE_AUTHOR","CHANGE_AUTHOR_EMAIL","CIRCLE_USERNAME","CODEBUILD_INITIATOR","DRONE_COMMIT_AUTHOR","DRONE_COMMIT_AUTHOR_NAME","DRONE_COMMIT_AUTHOR_EMAIL","EV_AI_HOOK_OPERATOR_NAME","EV_AI_HOOK_OPERATOR_EMAIL","EV_AI_HOOK_OPERATOR_LOGIN","GIT_AUTHOR_NAME","GIT_AUTHOR_EMAIL","GIT_COMMITTER_NAME","GIT_COMMITTER_EMAIL","EMAIL","RUNNER_OS","RUNNER_ARCH","NODE_ENV","TERM_PROGRAM","CLAUDE_CODE_REMOTE","CLAUDE_CODE_REMOTE_SESSION_ID","CURSOR_AGENT","CURSOR_VERSION","CURSOR_CODE_REMOTE","CURSOR_USER_EMAIL","CODESPACES","CODESPACE_NAME","ANTHROPIC_BASE_URL","OPENAI_BASE_URL","OPENAI_API_BASE","AZURE_OPENAI_ENDPOINT","GOOGLE_GEMINI_BASE_URL","GEMINI_API_BASE","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX"],ih=["CURSOR_PROJECT_DIR"],ah=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function ch(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)ah.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function jc(e=process.env){let t=sh.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:ch(e[r]??"")}:{name:r,present:!1}),n=ih.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as Dh}from"node:os";import{homedir as Bc}from"node:os";import{join as uh}from"node:path";function lh(e=Bc()){return uh(e,".claude.json")}function qn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Kc(e=Bc()){let n=te(lh(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=qn(n.emailAddress),o=qn(n.fullName)??qn(n.displayName),s=qn(n.accountUuid),i=r??s;return!i||fe(o,r)?null:{git_user_name:null,git_user_email:null,platform_login:i,identity_source:"claude_oauth"}}import{homedir as Wc}from"node:os";import{join as Gc}from"node:path";var fh="https://api.openai.com/auth";function Et(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Vc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function dh(e){let t=e.split(".");if(t.length!==3||t.some(r=>r.length===0))return null;let n=t[1];if(!n)return null;try{let r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"));return Vc(r)}catch{return null}}function zc(e,t,n){return Et(e[n])??Et(t?.[n])}function ph(e=process.env,t=Wc()){let n=Et(e.CODEX_HOME)??Gc(t,".codex");return Gc(n,"auth.json")}function Jc(e=process.env,t=Wc()){let n=te(ph(e,t),{}),r=Et(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&Et(n.OPENAI_API_KEY))return null;let o=Et(n.tokens?.id_token);if(!o)return null;let s=dh(o);if(!s)return null;let i=Vc(s[fh]),a=zc(s,i,"name"),c=zc(s,i,"email");return!c||fe(a,c)?null:{git_user_name:null,git_user_email:null,platform_login:c,identity_source:"codex_oauth"}}import{homedir as er}from"node:os";import{join as He}from"node:path";import{join as mh}from"node:path";var gh="cursor-ide-identity.json",_h=840*60*1e3;function Xc(e){return mh(Ee(e),gh)}function Yc(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function qc(e){let t=te(e,{}),n=t.read_at_ms,r=t.db_path;if(!(typeof n!="number"||!Number.isFinite(n)||typeof r!="string"))return{read_at_ms:n,db_path:r,email:Yc(t.email),auth_id:Yc(t.auth_id)}}function Zc(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<_h}function Qc(e,t){try{pe(e,`${JSON.stringify(t)}
|
|
25
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);b(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as hh}from"node:child_process";import{existsSync as Sh}from"node:fs";import{createRequire as Eh}from"node:module";import{pathToFileURL as yh}from"node:url";var tu=Eh(import.meta.url),Zn=`
|
|
26
26
|
SELECT key, value
|
|
27
27
|
FROM ItemTable
|
|
28
28
|
WHERE key LIKE 'cursorAuth/%'
|
|
29
29
|
AND key NOT LIKE '%Token%'
|
|
30
30
|
AND key NOT LIKE '%token%'
|
|
31
31
|
ORDER BY key
|
|
32
|
-
`.trim(),
|
|
33
|
-
`)){let r=n.trimEnd();if(!r)continue;let o=r.indexOf(" ");if(o<=0)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();s&&i&&!
|
|
34
|
-
`);return X(n)}function
|
|
35
|
-
`)){let o=r.trim();if(!o)continue;let s=o.indexOf(" ");if(s<=0)continue;let i=o.slice(0,s).toLowerCase(),a=o.slice(s+1).trim();a&&(i==="user.name"?t=a:i==="user.email"&&(n=a))}return{git_user_name:t,git_user_email:n,platform_login:null}}async function vh(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Lh(n)}function Hh(e=process.env){let t=j(e.GIT_AUTHOR_NAME),n=j(e.GIT_AUTHOR_EMAIL);if(t||n)return{git_user_name:t,git_user_email:n,platform_login:null,identity_source:"git_env"};let r=j(e.GIT_COMMITTER_NAME),o=j(e.GIT_COMMITTER_EMAIL);if(r||o)return{git_user_name:r,git_user_email:o,platform_login:null,identity_source:"git_env"};let s=j(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function Ue(e,t,n,r=null){return!e&&!t&&!r?null:{git_user_name:e,git_user_email:t,platform_login:r,identity_source:n}}function Uh(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ue(j(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=j(e.GITHUB_ACTOR)??j(e.GITHUB_TRIGGERING_ACTOR)??j(e.GITHUB_USER),s=Ue(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ue(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let u=j(e.BUILD_REQUESTEDFOREMAIL),l=Ue(j(e.BUILD_REQUESTEDFOR),u,"azure_devops",u??j(e.BUILD_REQUESTEDFORID));if(l)return l;let p=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ue(j(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(f)return f;let m=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ue(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),m,"jenkins",m??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),C=Ue(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),T=Ue(A,null,"codebuild",A);if(T)return T;let x=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),k=Ue(M??j(e.DRONE_COMMIT_AUTHOR_NAME),x,"drone",x??M);if(k)return k;if(Zc(e.CLAUDE_CODE_REMOTE)||Zc(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!fe(null,K)?K:null,identity_source:"cloud"}}return null}function Eo(e){return!!((e.git_user_name??e.git_user_email)&&!fe(e.git_user_name,e.git_user_email))}function j(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Zc(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Dh(e,t,n){return e==="claude"?Lc(t):e==="cursor"?Xc(t,n):e==="codex"?Fc(n,t):null}async function yo(e,t=ee,n=process.env,r={}){let o=await vh(e,t),s=Hh(n),i=Eo(o)?o:s&&Eo(s)?s:null,a=Dh(r.runnerPlatform,r.home??wh(),n);if(a)return{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:a.platform_login,identity_source:a.identity_source};let c=Uh(n);return c?.platform_login?{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:c.platform_login,identity_source:c.identity_source}:i?{...i,platform_login:null,identity_source:Eo(o)?"git_config":"git_env"}:c||(o.git_user_name||o.git_user_email?{...o,identity_source:"git_config"}:s||{git_user_name:null,git_user_email:null,platform_login:null,identity_source:"git_config"})}async function Ro(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await yo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Mh(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?Kr(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&Li(m,a,fn())}}}function Co(e){return e?!Kr(e)?.operator_identity_hash:!0}function Qc(e){return!0}import{existsSync as Qy,readFileSync as eR}from"node:fs";import{homedir as bf}from"node:os";import{join as Ct,resolve as tR}from"node:path";import{basename as zy,join as Rt}from"node:path";import{dirname as lu,resolve as qn}from"node:path";import{existsSync as Fh}from"node:fs";import{homedir as nu}from"node:os";import{relative as ru,resolve as Te,sep as Ye}from"node:path";var $h=["session_id","conversation_id","turn_id","generation_id","prompt.id","prompt_id","hook_event_name","event","source","status","stop_reason","reason","tool_name","tool","tool_use_id","skill_name","command_name","expansion_type","command_source","permission_mode","model","model_id","agent_id","agent_type","subagent_id","subagent_type","subagent_model","is_parallel_worker","effort","effort.level","duration_ms","duration","sandbox","failure_type","is_interrupt"],jh=["prompt","tool_input","tool_response","last_assistant_message","command"],Bh=new Set;function Kh(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Bh}}var ou=new Set(["on","1","true"]);function xo(e){let t=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?ou.has(t.toLowerCase()):e?.collect_prompt===!0}function Jn(e,t){let n=su(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?ou.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function su(e){return L("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||L("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function Gh(e){let t={};for(let n of $h){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function Yn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=ru(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function iu(e,t){let n=ru(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function au(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function zh(){let e=L("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return Fh(t)?t.split(Ye).join("/"):null}function Io(e,t){return Yn(e,t)!==null}function Wh(e,t){let n=Te(t??nu(),".cursor").split(Ye).join("/");return Io(e,n)}function Vh(e,t,n){return t!==null&&Io(e,t)?!0:t!==null&&Wh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&Io(e,n.gitRoot)?!0:t===null}function cu(e,t){let n=au(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=zh();return Vh(r,o,t)?r:o??r}function To(e,t={}){return cu(e,t)}function ko(e,t=nu()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function eu(e,t,n){let r=au(n.launchCwd)??cu(t,n);e.cwd=ko(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Yn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var uu="\u2026[truncated]\u2026",bo=Buffer.byteLength(uu,"utf8"),Jh=8;function zt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function tu(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Yh(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(n.length-t).toString("utf8")}function Xh(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=bo)return tu(e,t);let r=t-bo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${tu(e,o)}${uu}${Yh(e,s)}`}function Oo(e,t,n){if(typeof e=="string"){n.push({path:t,value:e,bytes:Buffer.byteLength(e,"utf8")});return}if(Array.isArray(e)){e.forEach((r,o)=>{Oo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||Oo(o,[...t,r],n)}function qh(e,t,n){let r=e;for(let s=0;s<t.length-1;s++){let i=t[s];if(i===void 0)return;r=(Array.isArray(r),r[i])}let o=t[t.length-1];if(!(o===void 0||r===null||typeof r!="object")){if(Array.isArray(r)){r[o]=n;return}r[o]=n}}var Zh=256;function Qh(e,t,n){let r=n,o=Math.max(n,e[0]?.bytes??n);for(;r<o;){let s=Math.ceil((r+o)/2),i=0;for(let a of e)a.bytes>s&&(i+=a.bytes-s);i>=t?r=s:o=s-1}return r}function eS(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=zt(e);if(s<=t)return;let i=[];Oo(e,[],i),i.sort((l,p)=>p.bytes-l.bytes);let a=i.filter(l=>l.bytes>n);if(a.length===0)return;let c=Qh(a,s-t,n),u=Math.max(n,Math.min(c,r-1));if(u>=r)return;r=u;for(let l of a)l.bytes>r&&qh(e,l.path,Xh(l.value,r))}}function tS(e,t){let n=Math.max(0,t-Zh),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:zt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(zt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function Ao(e,t){let n=zt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,eS(r,t,bo+Jh),zt(r)>t&&tS(r,t),r}function nS(e,t,n){if(!(n.promptCapture??xo()))return;let r=Kh(n.runnerEvent);for(let o of jh){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Xn(e,t,n={}){let r=su(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,eu(s,e,n),Ao(s,Dr)}let o=Gh(e);return eu(o,e,n),r==="content"?(nS(o,e,n),Ao(o,Dr)):Ao(o,Si)}function rS(e){return typeof e=="string"&&e.length>0}function Po(e){let t=qn(e.home),n=qn(e.launchCwd),r=e.gitRoot?qn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&rS(e.remote)&&r!==null&&r!==t&&(i=r,o.add(r)),n!==t&&!o.has(n)&&(s.push({scope:"cwd",dir:n}),o.add(n)),i!==null&&s.push({scope:"repo",dir:i});let a=null,c=r!==null&&Yn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=lu(r);for(;;){let l=qn(u);if(l===t)break;let p=lu(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=iu(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as fu,readdirSync as oS,realpathSync as sS}from"node:fs";import{basename as iS,dirname as aS,relative as cS,resolve as uS,sep as lS}from"node:path";var No=400,Zn=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Be}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=uS(t).split(lS).join("/");return ko(r,this.home)}let n=cS(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(aS(t))}/${iS(t)}`:n}claimFile(t){try{let n=sS(t);return this.seenRealpaths.has(n)?!1:(this.seenRealpaths.add(n),!0)}catch{return this.seenRealpaths.has(t)?!1:(this.seenRealpaths.add(t),!0)}}get atGlobalCap(){return this.truncated||this.components.length>=this.maxEntries}get pluginBudgetSpent(){return this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0}readEntries(t){if(!fu(t))return[];try{return oS(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(fu(t))return te(t,n)}push(t){return this.components.length>=this.maxEntries?(this.truncated=!0,!1):this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0?!1:(this.pluginExpandRemaining!==void 0&&(this.pluginExpandRemaining-=1),this.components.push(t),!0)}withPluginExpandCap(t,n){let r=this.pluginExpandRemaining;this.pluginExpandRemaining=t;try{let o=n(),s=t-(this.pluginExpandRemaining??0);return{result:o,expanded:s}}finally{this.pluginExpandRemaining=r}}};import{existsSync as Yo,readFileSync as ME,statSync as LE}from"node:fs";import{basename as Ol,join as ot,relative as Xo}from"node:path";var Cl=je(Rl());var NE=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Al=NE.map(e=>Cl.default.matcher(e,{dot:!0}));function wE(e){return e===""?!1:Al.some(t=>t(`${e}/`))}function Il(e,t){if(t==="")return!1;if(e==="")return wE(t);let n=e.replace(/\/+$/,"");return Al.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var qo=100*1024,vE=4;function HE(e){return e.length<=qo?e:`${e.slice(0,qo-1)}\u2026`}function UE(e){try{let t=ME(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:HE(n)}}catch{return null}}var bl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function DE(e){return e in bl?bl[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=UE(t.absolutePath);if(!n)return!1;let r=t.name??Ol(t.absolutePath).replace(/\.(md|mdc|toml)$/i,""),o={kind:t.kind,name:r,path:e.componentPath(t.absolutePath),text:n.text,content_hash:n.hash,content_length:n.length,origin:t.origin,enabled:t.enabled},s=DE(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function FE(e,t,n){let r=Xo(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Ol(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function st(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;Zo(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Zo(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l}=t;if(!(o>vE))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&Il(n.replace(/\\/g,"/"),Xo(n,ot(r,p.name)).replace(/\\/g,"/"))||p.isDirectory()&&l?.includes(ot(r,p.name)))continue;if(c){if(!p.isDirectory())continue;let g=ot(r,p.name,c);if(Yo(g)){let S=Xo(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Zo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(p.isDirectory()){Zo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(!p.isFile()||!u)continue;let f=p.name.toLowerCase();if(!u.some(g=>f.endsWith(g)))continue;let m=ot(r,p.name);Et(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:FE(n,m,!0)})}}function xl(e){for(let t of e)if(Yo(t))try{if(LE(t).size>0)return t}catch{continue}return e.find(t=>Yo(t))}import{existsSync as gy,readFileSync as _y}from"node:fs";var sr=je(Je(),1);var $E="<omitted>",jE=["package_name","package_spec","package_version","package_version_source"],Tl=100,kl=120,ir=[{raw:"tools",attr:"tools"},{raw:"autoApprove",attr:"auto_approve"},{raw:"auto_approve",attr:"auto_approve"},{raw:"alwaysAllow",attr:"always_allow"},{raw:"always_allow",attr:"always_allow"},{raw:"enabledTools",attr:"enabled_tools"},{raw:"enabled_tools",attr:"enabled_tools"},{raw:"disabledTools",attr:"disabled_tools"},{raw:"disabled_tools",attr:"disabled_tools"}],Pl=new Set(ir.map(e=>e.attr)),BE=["enabled","disabled"],KE=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],GE=new Set(["type","command","url","args","env","envVars","headers",...BE,...KE,...ir.map(e=>e.raw)]),zE=new Set(["transport","command_or_url","args","env_var_names","headers_present","auth","bearer_token_env_var","default_tools_approval_mode","env_http_header_names",...jE,...Pl,...[...Pl].map(e=>`${e}_truncated`)]);function Nl(e,t){for(let n of t)GE.has(n)||zE.has(n)||(e[n]=$E)}var WE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,VE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,JE=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,YE=/^bearer(?:\s+|$)/i;function ar(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function wl(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Qo(e){if(Array.isArray(e)){let n=[];for(let r of e){if(typeof r!="string"||r.length===0)continue;let o=r.split("=",1)[0]?.trim();o&&n.push(o)}return n}let t=ar(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function it(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function XE(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,sr.launchContainsCredentials)({kind:"url",url:e})||(0,sr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=Zt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,sr.launchContainsCredentials)({kind:"url",url:r}):!0)}function Ml(e,t,n){XE(t,n)&&(e.launch_had_credentials=!0)}function qE(e){return JE.test(e)||YE.test(e)?"<redacted>":e.includes("://")?it(e):e}function Ll(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Ll(e.slice(t+1))}`:qE(e)}function ZE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return WE.test(t)||VE.test(t)}function Zt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(ZE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Ll(r))}return t}function QE(e){let t=wl(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>kl?r.slice(0,kl):r))].sort();if(n.length!==0)return n.length>Tl?{names:n.slice(0,Tl),truncated:!0}:{names:n,truncated:!1}}function ey(e){let t=ar(e);if(!t)return{headers:[],envVars:[]};let n=[],r=[];for(let[o,s]of Object.entries(t))o.length>0&&n.push(o),typeof s=="string"&&s.length>0&&r.push(s);return{headers:n,envVars:r}}function vl(e,t){let n=new Set;for(let{raw:r,attr:o}of ir){if(n.has(o)||!(r in t))continue;let s=t[r];if(o==="auto_approve"&&typeof s=="boolean"){e.auto_approve=s,n.add(o);continue}let i=QE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Hl(e,t){let n=ar(e),r={transport:t};if(!n)return r;Nl(r,Object.keys(n));let o=typeof n.command=="string"?n.command:void 0,s=typeof n.url=="string"?n.url:void 0,i=typeof n.serverUrl=="string"?n.serverUrl:void 0,a=o??s??i,c=wl(n.args);a&&(r.command_or_url=it(a));let u=Zt(c);u.length>0&&(r.args=u),Ml(r,a,c);let l=ey(n.env_http_headers),p=[...new Set([...Qo(n.env),...Qo(n.envVars),...Qo(n.env_vars),...l.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),l.headers.length>0&&(r.env_http_header_names=[...new Set(l.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let m=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;m&&(r.bearer_token_env_var=m);let g=typeof n.default_tools_approval_mode=="string"?n.default_tools_approval_mode:typeof n.defaultToolsApprovalMode=="string"?n.defaultToolsApprovalMode:void 0;return g&&(r.default_tools_approval_mode=g),vl(r,n),r}function Ul(e){let t=ar(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function ns(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return X(JSON.stringify({name:e,attributes:r,enabled:n}))}function yt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function qt(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*\\[([^\\]]*)\\]`,"m").exec(e);return n?.[1]?[...n[1].matchAll(/"([^"]*)"|'([^']*)'/g)].map(r=>r[1]??r[2]??"").filter(r=>r.length>0):[]}function ts(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function es(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=yt(n[1]);return r.length>0?r:void 0}function ty(e,t){let n=[],r=i=>{for(let a of i.split(/[,\n]/)){let c=/^\s*"?([A-Za-z_][A-Za-z0-9_-]*)"?\s*=\s*(.+?)\s*$/.exec(a);c?.[1]&&n.push([c[1],yt(c[2]??"")])}},o=new RegExp(`^\\s*${t}\\s*=\\s*\\{([^}]*)\\}`,"m").exec(e);o?.[1]&&r(o[1]);let s=new RegExp(`(?:^|\\n)\\[[^\\]]*\\.${t}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`).exec(`
|
|
36
|
-
${e}`);return s?.[1]&&r(s[1]),n}function
|
|
37
|
-
`)){let s=
|
|
38
|
-
`)){let T=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&
|
|
32
|
+
`.trim(),Oo=new Map;function eu(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:null}if(e instanceof Uint8Array){let t=Buffer.from(e).toString("utf8").trim();return t.length>0?t:null}return null}function nu(e){return e.toLowerCase().includes("token")}function ru(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=eu(r.key),s=eu(r.value);o&&s&&!nu(o)&&t.set(o,s)}return t}function Rh(e){let t=yh(e);return t.search="mode=ro&immutable=1",t.href}function Ch(e){try{let t=tu("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(Zn)??n.prepare(Zn);return ru(r.all?.())}finally{n.close?.()}}catch{return null}}function Ah(e){let t=process.emitWarning.bind(process);process.emitWarning=((n,...r)=>{(typeof n=="string"?n:n instanceof Error?n.message:"").includes("SQLite is an experimental feature")||t(n,...r)});try{return e()}finally{process.emitWarning=t}}function Ih(e){try{return Ah(()=>{let t=tu("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return ru(n.prepare(Zn).all?.())}finally{n.close?.()}})}catch{return null}}function Oh(e){let t=new Map;for(let n of e.split(`
|
|
33
|
+
`)){let r=n.trimEnd();if(!r)continue;let o=r.indexOf(" ");if(o<=0)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();s&&i&&!nu(s)&&t.set(s,i)}return t}function bh(e){try{let t=hh("sqlite3",["-noheader","-batch","-separator"," ",e,Zn],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return Oh(t)}catch{return null}}function ou(e){let t=Oo.get(e);if(t)return t;if(!Sh(e)){let o=new Map;return Oo.set(e,o),o}let n=Rh(e),r=Ch(n)??bh(n)??Ih(n)??new Map;return Oo.set(e,r),r}var xh="cursorAuth/cachedEmail",Th="cursorAuth/stripeMembershipAuthId";function Qn(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function kh(e=er(),t=process.platform,n=process.env){let r=Qn(n.VSCODE_PORTABLE);if(r)return He(r,"user-data");let o=Qn(n.VSCODE_APPDATA);if(o)return He(o,"Cursor");switch(t){case"darwin":return He(e,"Library","Application Support","Cursor");case"win32":return He(Qn(n.APPDATA)??He(e,"AppData","Roaming"),"Cursor");default:return He(Qn(n.XDG_CONFIG_HOME)??He(e,".config"),"Cursor")}}function Ph(e=er()){return He(e,".cursor","cli-config.json")}function Nh(e=er(),t=process.platform,n=process.env){return He(kh(e,t,n),"User","globalStorage","state.vscdb")}function Vt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function wh(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):Vt(e.userId)}function Mh(e){return Vt(e.email)??Vt(e.authId)??wh(e)}function bo(e){let t=Vt(e.email),n=Vt(e.displayName),r=Mh(e);return!r||fe(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function Lh(e){let n=te(Ph(e),{}).authInfo;return!n||typeof n!="object"?null:bo(n)}function vh(e,t,n){let r=Nh(e,process.platform,t),o=Xc(e),s=qc(o);if(Zc(s,r,n))return bo({email:s?.email,authId:s?.auth_id});let i=ou(r),a=i.get(xh)??null,c=i.get(Th)??null;return Qc(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),bo({email:a,authId:c})}function su(e=er(),t=process.env,n=Date.now()){return Lh(e)??vh(e,t,n)}import{createHash as Hh}from"node:crypto";import{resolve as Uh}from"node:path";function X(e){return Hh("sha256").update(e).digest("hex").slice(0,16)}function xo(e){return X(Uh(e))}function _e(e,t){return`${e}\0${t}`}function iu(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function Jt(e){let n=[...e].sort((r,o)=>{let s=r.path.localeCompare(o.path);return s!==0?s:r.name.localeCompare(o.name)}).map(r=>`${r.path}|${r.name}|${r.content_hash}`).join(`
|
|
34
|
+
`);return X(n)}function Fh(e,t,n="git_config",r=null){return X(`${e??""}|${t??""}|${r??""}|${n}`)}function $h(e){let t=null,n=null;for(let r of e.split(`
|
|
35
|
+
`)){let o=r.trim();if(!o)continue;let s=o.indexOf(" ");if(s<=0)continue;let i=o.slice(0,s).toLowerCase(),a=o.slice(s+1).trim();a&&(i==="user.name"?t=a:i==="user.email"&&(n=a))}return{git_user_name:t,git_user_email:n,platform_login:null}}async function jh(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return $h(n)}function Bh(e=process.env){let t=j(e.GIT_AUTHOR_NAME),n=j(e.GIT_AUTHOR_EMAIL);if(t||n)return{git_user_name:t,git_user_email:n,platform_login:null,identity_source:"git_env"};let r=j(e.GIT_COMMITTER_NAME),o=j(e.GIT_COMMITTER_EMAIL);if(r||o)return{git_user_name:r,git_user_email:o,platform_login:null,identity_source:"git_env"};let s=j(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function Ue(e,t,n,r=null){return!e&&!t&&!r?null:{git_user_name:e,git_user_email:t,platform_login:r,identity_source:n}}function Kh(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ue(j(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=j(e.GITHUB_ACTOR)??j(e.GITHUB_TRIGGERING_ACTOR)??j(e.GITHUB_USER),s=Ue(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ue(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let l=j(e.BUILD_REQUESTEDFOREMAIL),u=Ue(j(e.BUILD_REQUESTEDFOR),l,"azure_devops",l??j(e.BUILD_REQUESTEDFORID));if(u)return u;let d=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ue(j(e.BUILDKITE_BUILD_CREATOR),d,"buildkite",d);if(f)return f;let m=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ue(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),m,"jenkins",m??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),C=Ue(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),T=Ue(A,null,"codebuild",A);if(T)return T;let x=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),k=Ue(M??j(e.DRONE_COMMIT_AUTHOR_NAME),x,"drone",x??M);if(k)return k;if(au(e.CLAUDE_CODE_REMOTE)||au(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!fe(null,K)?K:null,identity_source:"cloud"}}return null}function To(e){return!!((e.git_user_name??e.git_user_email)&&!fe(e.git_user_name,e.git_user_email))}function j(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function au(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Gh(e,t,n){return e==="claude"?Kc(t):e==="cursor"?su(t,n):e==="codex"?Jc(n,t):null}async function ko(e,t=ee,n=process.env,r={}){let o=await jh(e,t),s=Bh(n),i=To(o)?o:s&&To(s)?s:null,a=Gh(r.runnerPlatform,r.home??Dh(),n);if(a)return{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:a.platform_login,identity_source:a.identity_source};let c=Kh(n);return c?.platform_login?{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:c.platform_login,identity_source:c.identity_source}:i?{...i,platform_login:null,identity_source:To(o)?"git_config":"git_env"}:c||(o.git_user_name||o.git_user_email?{...o,identity_source:"git_config"}:s||{git_user_name:null,git_user_email:null,platform_login:null,identity_source:"git_config"})}async function Po(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await ko(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Fh(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?Zr(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&na(m,a,gn())}}}function No(e){return e?!Zr(e)?.operator_identity_hash:!0}function cu(e){return!0}import{existsSync as sR,readFileSync as iR}from"node:fs";import{homedir as Lf}from"node:os";import{join as Ot,resolve as aR}from"node:path";import{basename as qy,join as It}from"node:path";import{dirname as Eu,resolve as or}from"node:path";import{existsSync as zh}from"node:fs";import{homedir as fu}from"node:os";import{relative as du,resolve as Te,sep as Ye}from"node:path";var Wh=["session_id","conversation_id","turn_id","generation_id","prompt.id","prompt_id","hook_event_name","event","source","status","stop_reason","reason","tool_name","tool","tool_use_id","skill_name","command_name","expansion_type","command_source","permission_mode","model","model_id","agent_id","agent_type","subagent_id","subagent_type","subagent_model","is_parallel_worker","effort","effort.level","duration_ms","duration","sandbox","failure_type","is_interrupt"],Vh=["prompt","tool_input","tool_response","last_assistant_message","command"],Jh=new Set;function Yh(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Jh}}var pu=new Set(["on","1","true"]);function Ho(e){let t=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?pu.has(t.toLowerCase()):e?.collect_prompt===!0}function tr(e,t){let n=mu(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?pu.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function mu(e){return L("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||L("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function Xh(e){let t={};for(let n of Wh){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function nr(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=du(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function gu(e,t){let n=du(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function _u(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function qh(){let e=L("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return zh(t)?t.split(Ye).join("/"):null}function Mo(e,t){return nr(e,t)!==null}function Zh(e,t){let n=Te(t??fu(),".cursor").split(Ye).join("/");return Mo(e,n)}function Qh(e,t,n){return t!==null&&Mo(e,t)?!0:t!==null&&Zh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&Mo(e,n.gitRoot)?!0:t===null}function hu(e,t){let n=_u(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=qh();return Qh(r,o,t)?r:o??r}function Uo(e,t={}){return hu(e,t)}function Do(e,t=fu()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function uu(e,t,n){let r=_u(n.launchCwd)??hu(t,n);e.cwd=Do(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?nr(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var Su="\u2026[truncated]\u2026",Lo=Buffer.byteLength(Su,"utf8"),eS=8;function Yt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function lu(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function tS(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(n.length-t).toString("utf8")}function nS(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=Lo)return lu(e,t);let r=t-Lo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${lu(e,o)}${Su}${tS(e,s)}`}function vo(e,t,n){if(typeof e=="string"){n.push({path:t,value:e,bytes:Buffer.byteLength(e,"utf8")});return}if(Array.isArray(e)){e.forEach((r,o)=>{vo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||vo(o,[...t,r],n)}function rS(e,t,n){let r=e;for(let s=0;s<t.length-1;s++){let i=t[s];if(i===void 0)return;r=(Array.isArray(r),r[i])}let o=t[t.length-1];if(!(o===void 0||r===null||typeof r!="object")){if(Array.isArray(r)){r[o]=n;return}r[o]=n}}var oS=256;function sS(e,t,n){let r=n,o=Math.max(n,e[0]?.bytes??n);for(;r<o;){let s=Math.ceil((r+o)/2),i=0;for(let a of e)a.bytes>s&&(i+=a.bytes-s);i>=t?r=s:o=s-1}return r}function iS(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=Yt(e);if(s<=t)return;let i=[];vo(e,[],i),i.sort((u,d)=>d.bytes-u.bytes);let a=i.filter(u=>u.bytes>n);if(a.length===0)return;let c=sS(a,s-t,n),l=Math.max(n,Math.min(c,r-1));if(l>=r)return;r=l;for(let u of a)u.bytes>r&&rS(e,u.path,nS(u.value,r))}}function aS(e,t){let n=Math.max(0,t-oS),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:Yt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(Yt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function wo(e,t){let n=Yt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,iS(r,t,Lo+eS),Yt(r)>t&&aS(r,t),r}function cS(e,t,n){if(!(n.promptCapture??Ho()))return;let r=Yh(n.runnerEvent);for(let o of Vh){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function rr(e,t,n={}){let r=mu(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,uu(s,e,n),wo(s,Vr)}let o=Xh(e);return uu(o,e,n),r==="content"?(cS(o,e,n),wo(o,Vr)):wo(o,Fi)}function uS(e){return typeof e=="string"&&e.length>0}function Fo(e){let t=or(e.home),n=or(e.launchCwd),r=e.gitRoot?or(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&uS(e.remote)&&r!==null&&r!==t&&(i=r,o.add(r)),n!==t&&!o.has(n)&&(s.push({scope:"cwd",dir:n}),o.add(n)),i!==null&&s.push({scope:"repo",dir:i});let a=null,c=r!==null&&nr(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=Eu(r);for(;;){let u=or(l);if(u===t)break;let d=Eu(u);if(d===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=gu(u,n);break}l=d}}return{anchors:s,parentRel:a}}import{existsSync as yu,readdirSync as lS,realpathSync as fS}from"node:fs";import{basename as dS,dirname as pS,relative as mS,resolve as gS,sep as _S}from"node:path";var $o=400,sr=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Be}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=gS(t).split(_S).join("/");return Do(r,this.home)}let n=mS(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(pS(t))}/${dS(t)}`:n}claimFile(t){try{let n=fS(t);return this.seenRealpaths.has(n)?!1:(this.seenRealpaths.add(n),!0)}catch{return this.seenRealpaths.has(t)?!1:(this.seenRealpaths.add(t),!0)}}get atGlobalCap(){return this.truncated||this.components.length>=this.maxEntries}get pluginBudgetSpent(){return this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0}readEntries(t){if(!yu(t))return[];try{return lS(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(yu(t))return te(t,n)}push(t){return this.components.length>=this.maxEntries?(this.truncated=!0,!1):this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0?!1:(this.pluginExpandRemaining!==void 0&&(this.pluginExpandRemaining-=1),this.components.push(t),!0)}withPluginExpandCap(t,n){let r=this.pluginExpandRemaining;this.pluginExpandRemaining=t;try{let o=n(),s=t-(this.pluginExpandRemaining??0);return{result:o,expanded:s}}finally{this.pluginExpandRemaining=r}}};import{existsSync as os,readFileSync as FE,statSync as $E}from"node:fs";import{basename as vl,join as ot,relative as ss}from"node:path";var Nl=je(Pl());var UE=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],wl=UE.map(e=>Nl.default.matcher(e,{dot:!0}));function DE(e){return e===""?!1:wl.some(t=>t(`${e}/`))}function Ml(e,t){if(t==="")return!1;if(e==="")return DE(t);let n=e.replace(/\/+$/,"");return wl.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var is=100*1024,jE=4;function BE(e){return e.length<=is?e:`${e.slice(0,is-1)}\u2026`}function KE(e){try{let t=FE(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:BE(n)}}catch{return null}}var Ll={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function GE(e){return e in Ll?Ll[e]:"UNSPECIFIED"}function Ct(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=KE(t.absolutePath);if(!n)return!1;let r=t.name??vl(t.absolutePath).replace(/\.(md|mdc|toml)$/i,""),o={kind:t.kind,name:r,path:e.componentPath(t.absolutePath),text:n.text,content_hash:n.hash,content_length:n.length,origin:t.origin,enabled:t.enabled},s=GE(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function zE(e,t,n){let r=ss(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?vl(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function st(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;as(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function as(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>jE))for(let d of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(d.isDirectory()&&Ml(n.replace(/\\/g,"/"),ss(n,ot(r,d.name)).replace(/\\/g,"/"))||d.isDirectory()&&u?.includes(ot(r,d.name)))continue;if(c){if(!d.isDirectory())continue;let g=ot(r,d.name,c);if(os(g)){let S=ss(n,ot(r,d.name)).replace(/\\/g,"/");Ct(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||d.name});continue}as(e,{walkRoot:n,currentDir:ot(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(d.isDirectory()){as(e,{walkRoot:n,currentDir:ot(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(!d.isFile()||!l)continue;let f=d.name.toLowerCase();if(!l.some(g=>f.endsWith(g)))continue;let m=ot(r,d.name);Ct(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:zE(n,m,!0)})}}function Hl(e){for(let t of e)if(os(t))try{if($E(t).size>0)return t}catch{continue}return e.find(t=>os(t))}import{existsSync as Ry,readFileSync as Cy}from"node:fs";var dr=je(Je(),1);var WE="<omitted>",VE=["package_name","package_spec","package_version","package_version_source"],Ul=100,Dl=120,pr=[{raw:"tools",attr:"tools"},{raw:"autoApprove",attr:"auto_approve"},{raw:"auto_approve",attr:"auto_approve"},{raw:"alwaysAllow",attr:"always_allow"},{raw:"always_allow",attr:"always_allow"},{raw:"enabledTools",attr:"enabled_tools"},{raw:"enabled_tools",attr:"enabled_tools"},{raw:"disabledTools",attr:"disabled_tools"},{raw:"disabled_tools",attr:"disabled_tools"}],Fl=new Set(pr.map(e=>e.attr)),JE=["enabled","disabled"],YE=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],XE=new Set(["type","command","url","args","env","envVars","headers",...JE,...YE,...pr.map(e=>e.raw)]),qE=new Set(["transport","command_or_url","args","env_var_names","headers_present","auth","bearer_token_env_var","default_tools_approval_mode","env_http_header_names",...VE,...Fl,...[...Fl].map(e=>`${e}_truncated`)]);function $l(e,t){for(let n of t)XE.has(n)||qE.has(n)||(e[n]=WE)}var ZE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,QE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,ey=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,ty=/^bearer(?:\s+|$)/i;function mr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function jl(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function cs(e){if(Array.isArray(e)){let n=[];for(let r of e){if(typeof r!="string"||r.length===0)continue;let o=r.split("=",1)[0]?.trim();o&&n.push(o)}return n}let t=mr(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function it(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function ny(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,dr.launchContainsCredentials)({kind:"url",url:e})||(0,dr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=nn([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,dr.launchContainsCredentials)({kind:"url",url:r}):!0)}function Bl(e,t,n){ny(t,n)&&(e.launch_had_credentials=!0)}function ry(e){return ey.test(e)||ty.test(e)?"<redacted>":e.includes("://")?it(e):e}function Kl(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Kl(e.slice(t+1))}`:ry(e)}function oy(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return ZE.test(t)||QE.test(t)}function nn(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(oy(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Kl(r))}return t}function sy(e){let t=jl(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Dl?r.slice(0,Dl):r))].sort();if(n.length!==0)return n.length>Ul?{names:n.slice(0,Ul),truncated:!0}:{names:n,truncated:!1}}function iy(e){let t=mr(e);if(!t)return{headers:[],envVars:[]};let n=[],r=[];for(let[o,s]of Object.entries(t))o.length>0&&n.push(o),typeof s=="string"&&s.length>0&&r.push(s);return{headers:n,envVars:r}}function Gl(e,t){let n=new Set;for(let{raw:r,attr:o}of pr){if(n.has(o)||!(r in t))continue;let s=t[r];if(o==="auto_approve"&&typeof s=="boolean"){e.auto_approve=s,n.add(o);continue}let i=sy(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function zl(e,t){let n=mr(e),r={transport:t};if(!n)return r;$l(r,Object.keys(n));let o=typeof n.command=="string"?n.command:void 0,s=typeof n.url=="string"?n.url:void 0,i=typeof n.serverUrl=="string"?n.serverUrl:void 0,a=o??s??i,c=jl(n.args);a&&(r.command_or_url=it(a));let l=nn(c);l.length>0&&(r.args=l),Bl(r,a,c);let u=iy(n.env_http_headers),d=[...new Set([...cs(n.env),...cs(n.envVars),...cs(n.env_vars),...u.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();d.length>0&&(r.env_var_names=d),u.headers.length>0&&(r.env_http_header_names=[...new Set(u.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let m=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;m&&(r.bearer_token_env_var=m);let g=typeof n.default_tools_approval_mode=="string"?n.default_tools_approval_mode:typeof n.defaultToolsApprovalMode=="string"?n.defaultToolsApprovalMode:void 0;return g&&(r.default_tools_approval_mode=g),Gl(r,n),r}function Wl(e){let t=mr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function fs(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return X(JSON.stringify({name:e,attributes:r,enabled:n}))}function At(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function tn(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*\\[([^\\]]*)\\]`,"m").exec(e);return n?.[1]?[...n[1].matchAll(/"([^"]*)"|'([^']*)'/g)].map(r=>r[1]??r[2]??"").filter(r=>r.length>0):[]}function ls(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function us(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=At(n[1]);return r.length>0?r:void 0}function ay(e,t){let n=[],r=i=>{for(let a of i.split(/[,\n]/)){let c=/^\s*"?([A-Za-z_][A-Za-z0-9_-]*)"?\s*=\s*(.+?)\s*$/.exec(a);c?.[1]&&n.push([c[1],At(c[2]??"")])}},o=new RegExp(`^\\s*${t}\\s*=\\s*\\{([^}]*)\\}`,"m").exec(e);o?.[1]&&r(o[1]);let s=new RegExp(`(?:^|\\n)\\[[^\\]]*\\.${t}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`).exec(`
|
|
36
|
+
${e}`);return s?.[1]&&r(s[1]),n}function Vl(e){return ls(e,"enabled")===!1?!1:ls(e,"disabled")!==!0}function cy(e,t){let n={};for(let{raw:r,attr:o}of pr){if(o==="auto_approve"){let i=ls(t,r);if(i!==void 0){n[r]=i;continue}}let s=tn(t,r);s.length>0&&(n[r]=s)}Gl(e,n)}var uy=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,ly=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function fy(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
|
|
37
|
+
`)){let s=uy.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(ly))o[1]&&t.add(o[1]);return[...t]}function Jl(e,t){let n={transport:t};$l(n,fy(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?At(r[1]??""):void 0,i=o?At(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=tn(e,"args");a&&(n.command_or_url=it(a));let l=nn(c);l.length>0&&(n.args=l),Bl(n,a,c);let u=new Set;for(let A of e.split(`
|
|
38
|
+
`)){let T=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&u.add(T[1])}let d=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(d?.[1])for(let A of d[1].split(",")){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&u.add(T[1])}let f=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
|
|
39
39
|
${e}`);if(f?.[1])for(let A of f[1].split(`
|
|
40
|
-
`)){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&
|
|
41
|
-
`);return uy("sha512").update(t).digest("hex").slice(0,16)}function py(e){let t=process.platform==="win32"?Qt(L("LOCALAPPDATA")??e,"npm-cache"):Qt(e,".npm"),n=L("npm_config_cache")??L("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Gl(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function dy(e,t,n){let r=fy(e);for(let o of py(n)){let s=Qt(o,"_npx",r),i=te(Qt(s,"node_modules",...t.split("/"),"package.json"),{}),a=Gl(i.version);if(a!==null)return a;let c=te(Qt(s,"package-lock.json"),{}),u=Gl(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function my(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function rs(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,Ne.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,Ne.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:my(o),...ly(o,dy(r,s,n))}}function zl(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=cr(e.trim());return n===void 0?null:rs(n,r,t)}function ur(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return rs(typeof n.command=="string"?n.command:null,r,t)}function Wl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:rs(yt(n[1]??""),qt(e,"args"),t)}function hy(e){if(!e||typeof e!="object"||Array.isArray(e))return"unknown";let t=e;return typeof t.type=="string"&&t.type.length>0?t.type:typeof t.url=="string"?"http":typeof t.command=="string"?"stdio":"unknown"}function Vl(e,t,n){if(!e.claimFile(t))return;let o=e.readJson(t,{})?.mcpServers;if(!o||typeof o!="object")return;let s=e.componentPath(t);for(let[i,a]of Object.entries(o)){if(e.truncated)return;let c=hy(a),u=Hl(a,c);Object.assign(u,ur(a,e.home)??{});let l=Ul(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:ns(i,u,l),origin:n,enabled:l,attributes:u})}}function Jl(e,t,n){if(!gy(t)||!e.claimFile(t))return;let r;try{r=_y(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),u=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),l=u===-1?c:c.slice(0,u),p="unknown";/^\s*url\s*=/m.test(l)?p="http":/^\s*command\s*=/m.test(l)&&(p="stdio");let f=Fl(l,p);Object.assign(f,Wl(l,e.home)??{});let m=Dl(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:ns(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as yy,readdirSync as Ry}from"node:fs";import{join as ce}from"node:path";function Sy(e){if(e.prompt||e.type==="prompt")return"prompt";let t=e.command??e.bash??e.powershell??"";return/\bnpx\b/i.test(t)?"npx":/\.(sh|bash|zsh|js|mjs|cjs|ts|py)(\s|$|"|')/i.test(t)||/^(\.\/|~\/|\/|[A-Za-z]:[\\/])/.test(t.trim())?"script":"inline"}function Ey(e){return Array.isArray(e.hooks)&&e.hooks.length>0?e.hooks:[{type:e.type,command:e.command,bash:e.bash,powershell:e.powershell,prompt:e.prompt}]}function os(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let u of Ey(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=Sy({type:u.type??c.type,command:u.command??c.command,bash:u.bash??c.bash,powershell:u.powershell??c.powershell,prompt:u.prompt??c.prompt}),f=typeof c.matcher=="string"?c.matcher:"",m=X(l),g=f?`${s}:${f}:${p}:${m}`:`${s}:${p}:${m}`,S=`${s}|${f}|${p}|${l}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:X(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:p,action_hash:m,...p!=="prompt"&&l.trim()?{command:Bl(l,e.home)}:{}}})}}}function ss(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||os(e,t,r.hooks,n)}var Yl=50;function en(e,t,n,r){if(!yy(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(Yl,()=>{st(e,{dir:ce(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),st(e,{dir:ce(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),st(e,{dir:ce(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});ss(e,ce(t,"hooks","hooks.json"),n),ss(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=Yl;return{componentCount:i,expandTruncated:a}}function tn(e,t){e.push({kind:"PLUGIN",name:t.pluginKey,path:t.rowPath,content_hash:t.contentHash,origin:"user",enabled:t.enabled,attributes:{...t.marketplace?{marketplace:t.marketplace}:{},...t.version?{version:t.version}:{},scope:t.scope,component_count:t.componentCount,...t.expandTruncated?{expand_truncated:!0}:{}}})}function Xl(e){let t=ce(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ce(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let u=Array.isArray(c)?c:[c],l=u[0]??{},p=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",m=typeof l.version=="string"?l.version:"",g=typeof l.scope=="string"?l.scope:"user",S=`plugin:${a}`,C=0,A=!1;for(let T of u)if(typeof T.installPath=="string"&&T.installPath.length>0){let x=en(e,T.installPath,S,p);C+=x.componentCount,A=A||x.expandTruncated}tn(e,{pluginKey:a,rowPath:i,enabled:p,scope:g,version:m||void 0,marketplace:f||void 0,componentCount:C,expandTruncated:A,contentHash:X(`${a}|${m}|${g}|${p}|${C}`)})}}function Cy(e){let t=e,n="";try{let r=Ry(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ce(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ce(e,s),n=s)}}catch{}return{installPath:t,version:n}}var Ay=/^\d+$/;function Iy(e){let t=e.filter(n=>!Ay.test(n.pluginId));return t.length>0?t:e}function ql(e){let t=[{base:ce(e.home,".cursor/plugins/local"),scope:"local"},{base:ce(e.home,".cursor/plugins/cache"),scope:"cache"}];for(let{base:n,scope:r}of t)if(!e.truncated)for(let o of e.readEntries(n)){if(!o.isDirectory()||e.truncated)continue;if(r==="local"){let a=o.name,c=ce(n,o.name),u=`plugin:${a}`,{componentCount:l,expandTruncated:p}=en(e,c,u,!0);tn(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:l,expandTruncated:p,contentHash:X(`${a}|local|${l}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ce(n,s))){if(!a.isDirectory())continue;let c=ce(n,s,a.name),{installPath:u,version:l}=Cy(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of Iy(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=en(e,a.installPath,u,!0);tn(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:l,expandTruncated:p,contentHash:X(`${c}|${a.version}|${l}`)})}}}import{existsSync as xy}from"node:fs";var by=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,is="<path>",Oy=new RegExp(`${is}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function lr(e){let t=e.replace(by,is).replace(Oy,is);return t.length>200?`${t.slice(0,200)}...`:t}var Zl=200,Ql=200,as=16*1024,ef=6,Ty=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),ky=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),Py=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),Ny=new Set(["permissions"]),wy={claude:Ty,cursor_sandbox:ky,cursor_permissions:Py,cursor_cli:Ny},My=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fr(e){return e.replace(/\\/g,"/")}function cs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>cs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${cs(t[r])}`).join(",")}}`}function Ly(e){return X(`${cs(e)}|settings1`)}function sf(e){let t=fr(e);if(t.endsWith(".claude/settings.json")||t.endsWith(".claude/settings.local.json"))return"claude";if(t.endsWith(".cursor/sandbox.json"))return"cursor_sandbox";if(t.endsWith(".cursor/permissions.json"))return"cursor_permissions";if(t.endsWith(".cursor/cli-config.json")||t.endsWith(".cursor/cli.json"))return"cursor_cli"}function af(e,t){if(e!=="claude")return{};let n=fr(t);return n.endsWith("/.claude/remote-settings.json")?{profile:"claude",managedSource:"server"}:n.includes("/managed-settings.d/")&&n.endsWith(".json")?{profile:"claude",managedSource:"file_dropin"}:n.endsWith("/managed-settings.json")?{profile:"claude",managedSource:"file"}:{profile:"claude"}}function cf(e){let t=fr(e).replace(/\/+$/,"");return t.length<=1?"":t}function uf(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function vy(e,t){let n=fr(e);if(n==="~"||n.startsWith("~/"))return n;let r=cf(t);if(!r)return n;let o=n.slice(0,r.length);if(!(uf(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var tf=new Map;function Hy(e){let t=tf.get(e);if(t!==void 0)return t;let n=cf(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,uf(e)?"gi":"g")}return tf.set(e,r),r}function Uy(e,t){let n=Hy(t);return n?e.replace(n,"~"):e}function nf(e,t){return e.length<=Ql?e:(t.truncated=!0,e.slice(0,Ql))}function lf(e,t){return e.length<=Zl?e:(t.truncated=!0,e.slice(0,Zl))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return nf(vy(e,n),r);let o=t==="rule"?lr(e):e;return nf(Uy(o,n),r)}if(typeof e=="number"||typeof e=="boolean"||e===null)return typeof e=="number"&&!Number.isFinite(e)?void 0:e;if(Array.isArray(e)){let o=lf(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(Xe(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function rf(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";My.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function Dy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=lf(s,n);r[o]=a.map(c=>{if(!Xe(c))return ne(c,"plain",t,n);let u={};for(let[l,p]of Object.entries(c)){let m=ne(p,l==="path"?"path":"plain",t,n);m!==void 0&&(u[l]=m)}return u});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function Fy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function $y(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=Fy(s,t,n):o==="credentials"?i=Dy(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function jy(e,t,n,r,o){return n==="claude"?e==="permissions"?rf(t,r,o):e==="sandbox"?$y(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?rf(t,r,o):ne(t,"plain",r,o)}function nn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function us(e,t){return e?`${e}.${t}`:t}function ls(e,t,n,r){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o-=1){let s=e[o];s!==null&&typeof s=="object"&&(t+1>=ef?(e.splice(o,1),r.add(n)):ls(s,t+1,n,r))}return}if(!(e===null||typeof e!="object"))for(let[o,s]of Object.entries(e))s!==null&&typeof s=="object"&&(t+1>=ef?(delete e[o],r.add(us(n,o))):ls(s,t+1,us(n,o),r))}function ff(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:nn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))ff(o,us(t,r),n)}function By(e,t,n){let r=nn(e);if(r<=as)return;t.truncated=!0;let o=[];for(ff(e,"",o);r>as;){let s;for(let c of o)c.items.length>0&&(!s||c.bytes>s.bytes)&&(s=c);if(!s)break;let i=s.items.pop(),a=nn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;nn(e)>as;){let s,i=-1;for(let[a,c]of Object.entries(e)){let u=nn(c);u>i&&(s=a,i=u)}if(s===void 0)break;delete e[s],n.add(s)}}function Ky(e,t,n){let r=wy[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let u=jy(c,e[c],t,n,o);u!==void 0&&(s[c]=u)}i.sort();let a=new Set;return ls(s,1,"",a),a.size>0&&(o.truncated=!0),By(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function of(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:Ly(t.attributes),attributes:t.attributes};e.push(n)}function fs(e,t,n,r){if(!e.claimFile(t)||!xy(t))return;let o=Gs(t);if(!o.ok||!Xe(o.value)){if(r.profile){let u=!o.ok&&o.reason==="read"?"read_error":"parse_error",l={profile:r.profile,[u]:!0};r.managedSource&&(l.managed_source=r.managedSource),of(e,{kind:r.kind,absPath:t,origin:n,attributes:l})}return}let s=o.value,i=s.hooks;if(Xe(i)&&os(e,t,i,n),!r.profile)return;let a=Ky(s,r.profile,e.home),c={profile:r.profile,settings:a.settings,keys_omitted:a.keys_omitted};a.truncated&&(c.truncated=!0),a.trimmed_paths.length>0&&(c.trimmed_paths=a.trimmed_paths),r.managedSource&&(c.managed_source=r.managedSource),of(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as Gy}from"node:fs";import{join as we}from"node:path";var pf=".claude/skills/synced",df=".claude/plugins/synced";function mf(e){return[we(e,pf),we(e,df)]}function pr(e){return typeof e=="string"&&e.length>0?e:void 0}function gf(e){let t=we(e.home,pf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.skills??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}let a=we(r,i.name,"SKILL.md");if(!i.isDirectory()||!Gy(a))continue;let c=s.get(i.name),u=pr(c?.source),l=pr(c?.creatorType);Et(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...u?{source:u}:{},...l?{creator_type:l}:{}}})}}}function _f(e){let t=we(e.home,df);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=pr(a?.marketplaceName),u=pr(a?.version),l=c?`${i.name}@${c}`:i.name,p=we(r,i.name),{componentCount:f,expandTruncated:m}=en(e,p,`plugin:${l}`,!0);tn(e,{pluginKey:l,rowPath:e.componentPath(p),enabled:!0,scope:"synced",version:u,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${l}|${u??""}|synced|${f}`)})}}}function Wy(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)st(e,{dir:Rt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:mf(e.home)});for(let i of n.dirs)st(e,{dir:Rt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=xl(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:zy(a)})}for(let i of Yi(n))fs(e,Rt(r,i),o,{kind:"SETTINGS",profile:sf(i)});for(let i of n.mcpJson??[])Vl(e,Rt(r,i),o);for(let i of n.mcpToml??[])Jl(e,Rt(r,i),o);if(s){if(n.managed){for(let i of Tn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=af(n.managed,i);fs(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(Xl(e),_f(e),gf(e)):n.plugins==="cursor"&&ql(e)}}function hf(e,t){try{let n=new Zn(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Wy(n,{layout:r,levelDir:t.levelDir,origin:t.origin,includeMachineWide:t.includeMachineWide});return{scopeRef:t.scopeRef,anchor:t.levelDir,components:n.components,truncated:n.truncated}}catch{return}}function ps(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=hf(t,{layouts:Object.values(pt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Be,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Ge),u=Po({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>qi(c,l)});i=u.parentRel;for(let l of u.anchors){let p=So(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let f=hf(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:No,scopeRef:p});f&&(r[l.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function ds(e,t,n={}){let r=n.truncated===!0,o=Gt(e),s=new Set(e.map(l=>_e(l.path,l.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let l of e){let p=_e(l.path,l.name);c[p]!==l.content_hash&&a.push(l)}let u=[];if(!r){for(let l of Object.keys(c))if(!s.has(l)){let p=qc(l);p&&u.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:u,unchanged:a.length===0&&u.length===0}}var Ef=2*1024*1024,Vy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function ms(e,t,n){let r=new Set(t.map(s=>_e(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(_e(s.path,s.name))||o.push(s));return o}function gs(e,t,n){let r=new Set(e);for(let s of t)r.add(s);let o=new Set(n.map(s=>s.content_hash));return[...r].filter(s=>o.has(s))}function Sf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function yf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function _s(e,t=Ef){let n=[],r=[];for(let l of e)Vy.has(l.kind)?n.push(l):r.push(l);r.sort((l,p)=>(l.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,u=[];for(let l of o){let p=s.length>0?1:0,f=Sf(l)+p;if(i+f<=t){s.push(l),i+=f,l.text!==void 0&&u.push(l.content_hash);continue}if(l.text!==void 0){let m=yf(l),g=Sf(m)+p;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:u}}function hs(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:yf(n))}var Jy=["user","cwd","repo","parent"];function Ss(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of Jy){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,b=ds(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),H=ms(k.components,b.upserts,N),d=hs([...b.upserts,...H],N);s.push({scope:M,walk:k,delta:b,outgoing:d,outgoingKeys:new Set(d.map(I=>_e(I.path,I.name))),deliveredTextHashes:N,cachedComponents:D})}let i=s.flatMap(M=>M.outgoing),a=_s(i,o),c=new Set(a.components.map(M=>_e(M.path,M.name))),u=[],l=[],p=[],f=[],m=[],g=[],S=[];for(let M of s){let{scope:k,walk:K,delta:D}=M;g.push(...K.components),u.push(k);let b=a.components.filter(I=>M.outgoingKeys.has(_e(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),H=D.truncated||N;H?p.push(k):D.full&&l.push(k),f.push(...b),!D.full&&!H&&m.push(...D.removed);let d=D.full?{}:{...M.cachedComponents??{}};if(!H)for(let I of D.removed)delete d[_e(I.path,I.name)];for(let I of b)d[_e(I.path,I.name)]=I.content_hash;S.push({scope:k,scopeRef:K.scopeRef,components:d,textHashes:gs(M.deliveredTextHashes,b.filter(I=>I.text!==void 0).map(I=>I.content_hash),K.components),collectedAtMs:r,included:b.length>0||D.removed.length>0&&!H||D.full})}let C={user_spec_hash:Gt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};u.length>0&&(C.user_spec_scopes=u,C.user_spec_full_scopes=l,C.user_spec_truncated_scopes=p,C.user_spec_cwd_in_git_repo=t.cwdInGitRepo),l.length>0&&l.length===u.length&&(C.user_spec_full=!0),f.length>0&&(C.user_spec=f),m.length>0&&(C.user_spec_removed=m),a.textDeferredCount>0&&(C.user_spec_text_deferred=a.textDeferredCount);let A=t.scopes.cwd;A&&(C.user_spec_cwd_scope_ref=A.scopeRef);let T=t.scopes.repo;T&&(C.user_spec_repo_scope_ref=T.scopeRef);let x=t.scopes.parent;return x&&(C.user_spec_parent_scope_ref=x.scopeRef,t.parentRel&&(C.user_spec_parent_rel=t.parentRel)),{fields:C,scopes:S}}var dr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Es(e){return e==="cwd"||e==="repo"||e==="parent"}function rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ys(e){return!rn(e)||!rn(e.components)||!Object.values(e.components).every(t=>typeof t=="string")||!Array.isArray(e.text_hashes)||!e.text_hashes.every(t=>typeof t=="string")?!1:typeof e.collected_at_ms=="number"&&Number.isFinite(e.collected_at_ms)}function Rf(e){return Yy(e)}function Cf(e){return Xy(e)}function Af(e){return qy(e)}function Yy(e){if(!rn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Xy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function If(e,t){if(!rn(e))return;let n=e[t];return ys(n)?n:void 0}function qy(e){if(!rn(e))return{};let t={};for(let[n,r]of Object.entries(e))ys(r)&&(t[n]=r);return t}function Rs(e,t=20){let n=[];for(let[r,o]of Object.entries(e))ys(o)&&n.push([r,o]);return n.sort((r,o)=>o[1].collected_at_ms-r[1].collected_at_ms),Object.fromEntries(n.slice(0,t))}var nR=["allow","deny","ask"];function gr(e){let t=te(e,{}),n=[];for(let r of nR)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:lr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function rR(e){let{serverManaged:t,fileBased:n}=Gr(process.platform,e),r=gr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=gr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function oR(e){let t=new Set,n=[];for(let r of e){let o=`${r.mode}\0${r.key}`;t.has(o)||(t.add(o),n.push(r))}return n}var sR=10,iR="self-config-cache.json",Of=4;function At(){return L("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function aR(){return L("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var cR={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function uR(e,t=ee){let n=cR[e];if(!n||n.length===0)return null;let r=async o=>{let s=n[o];if(s===void 0)return null;let a=((await t(s,["--version"],2e3)).split(`
|
|
42
|
-
`)[0]??"").trim();return a||r(o+1)};return r(0)}function
|
|
43
|
-
`);return X(n)}function
|
|
44
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);
|
|
45
|
-
`),Object.keys(o).length===0?"cleared":"written"):"unchanged"}catch(i){let a=i instanceof Error?i.message:String(i);return
|
|
46
|
-
${n}`}function
|
|
47
|
-
`);if(t<0)return null;let n;try{n=JSON.parse(e.slice(0,t))}catch{return null}return{meta:n,body:e.slice(t+1)}}async function
|
|
48
|
-
`,p=L("EV_AI_HOOK_DEBUG");p==="full"?O(`DEBUG envelope=${u}`):p==="1"&&O(`DEBUG summary=${JR(c,bs(l))}`);let f=process.argv.includes(Er),m=L("EV_AI_HOOK_SYNC")==="1";return Fn(n.runnerEvent,n.runnerPlatform)||f||m?ZR(e,l,o):(await QR(e,l,o),!1)}import{createReadStream as eC}from"node:fs";import{stat as tC}from"node:fs/promises";import{basename as nC,resolve as rC}from"node:path";import{createInterface as oC}from"node:readline";var sC=1024*1024;function iC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&nC(t).endsWith(".jsonl")}async function Xf(e){if(!e||!iC(e))return null;try{let t=rC(e),n=await tC(t);if(!n.isFile())return null;let r=Math.max(0,n.size-sC),o=[],s=oC({input:eC(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let u=c.message;if(!u||typeof u!="object")continue;let l=u.model;if(typeof l=="string"&&l.length>0)return l}catch{continue}}return null}catch{return null}}function yr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Jn(e.manifest.manifest,e.manifest.hookConfig)}}function an(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function ks(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:xo(e.manifest.hookConfig)}}async function Qf(e){let t=Date.now();await SC(e);let{gitRoot:n}=e.manifest;await Ns(e,n);let r=ks(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Xn(e.hookInput,e.manifest.manifest,r),envelopeFields:yr(e),launchCwd:To(e.hookInput,r),home:cC()}}function qf(e){try{return ge(aC(e))}catch{return null}}function ep(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Zf(e,t){let n=e.replaceAll("\\","/");if(!ep(n))return null;let r=ge(e),o=ge(t),s=qf(e)??r,i=qf(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function tp(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Zf(e,t)??(ep(r)?null:r),i=Zf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function Ts(e,t,n,r,o){return np(e,tp(n,t.gitRoot,t.home),r,o)}function np(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?uC({installableKind:r,sourcePath:s,nativeKey:i,inRepository:t!==null,platformAgentId:e.platformAgentId,installationId:e.manifest.installationId}):void 0;return{sourcePath:s,nativeKey:i,componentReference:a}}function uC(e){try{let t=e.inRepository?pC(e.platformAgentId,e.sourcePath):(0,B.installationRootExternalKey)(e.installationId,(0,B.userConfigRootFromPath)(e.sourcePath));return t?(0,B.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function rp(e){let t=e.policyFindings;return t===void 0||t.length===0?{}:{policy_findings:t,...e.policyJudgeSpawnMs!==void 0?{policy_judge_spawn_ms:e.policyJudgeSpawnMs}:{}}}function Ps(e,t,n){return Ot("tool_invoked",{...n,...rp(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,an(e,t.home))}function lC(e){return $a(e.runnerEvent,e.runnerPlatform)?[]:sa(e.hookInput)}function fC(e,t){return Ps(e,t,{})}var op=new Set([...Object.values(tt),".github"]);function pC(e,t){let n=e.indexOf(":");if(n<=0)return null;let r=e.slice(0,n),o=t.replaceAll("\\","/").split("/").filter(Boolean),s=o.findIndex(i=>op.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var sp=".codex/config.toml",dC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",sp]]);function mC(e,t,n,r,o,s,i){if(e===null||t===null||!(i!==null||/^mcp__.+?__.+$/i.test(e)||/^MCP:[^:]+:.+$/i.test(e)||/^MCP:.+__.+$/i.test(e)||e.toLowerCase()===`mcp:${t.toLowerCase()}`))return;let c=s.find(S=>S.name.toLowerCase()===t.toLowerCase()),u=c?dC.get(c.source):o==="codex"?sp:void 0,l=c?.sourcePath??u;if((c?.scope==="user"||u!==void 0)&&l)try{let S=(0,B.userConfigRootFromPath)(l);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:l,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let m=n.slice(f+1),g=m.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!op.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function gC(...e){for(let t of e)if(t)return t;return null}function ut(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return O(`WARN: ${n} failed open: ${r}`),t}function _C(e){let t={present:!1,size:0},n={hash:"",count:0};return{config:{runner_platform:e,config_scope:"user",cli_version:null,claude_version:null,model:null,permission_keys:[],user_scope:{skills:n,subagents:n,commands:n,rules:n,memory:t,settings:t,mcp:t},local_settings:t},commit:()=>{}}}function hC(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,sn=null;async function SC(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!Co(n)){ct.add(t);return}let r=kt({sessionId:e.sessionId,hostname:mn()});if(Qc(r)){if(sn){await sn;return}sn=(async()=>{if(ct.has(t)||!Co(n)){ct.add(t);return}if(!vi(n)){ct.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:u}=await ip(e,r,Un(i),Ro({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),l={...u,self_config:hC(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Ot("session_start",l,yr(e),It,e.manifest.collectorUrl,s,an(e)),o&&(c.commit(),ct.add(t))}finally{Hi(n)}})().finally(()=>{sn=null}),await sn}}async function Ns(e,t,n){try{e.platformAgentId=await Pa(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,n,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);O(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function ip(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,Ys(),bc(t),qs(),r]),u=ut(o,null,"gitSnapshot"),l=ut(s,"","detectVirt"),p=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await Ns(e,e.manifest.gitRoot,u),{operatorResolved:m,fields:{identity:{host:mn(),context:t,virt:l||null,cloud:p,git:u},host_env:f,env_vars:wc()}}}async function EC(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=kt({sessionId:e.sessionId,hostname:mn()}),o=String(e.runnerPlatform),s=ks(e),i=To(e.hookInput,s),a=Un(n),c=Df().catch(()=>({})),u=At()?Promise.resolve({commit:()=>{}}):Ro({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),l=ip(e,r,a,u),[p,f]=await Promise.allSettled([go(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>xf(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:m,fields:g}=await l,S=ut(p,[],"mcpDeclared"),C=ut(f,_C(o),"selfConfig"),A=C.config,T=v(e.hookInput,"model");T&&(A.model=T);let x={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:Xn(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await Ot("session_start",x,{...yr(e),...M},It,e.manifest.collectorUrl,t,an(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function yC(e){let t=Date.now(),[,n]=await Promise.all([Ns(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?Xf(v(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=gC(v(e.hookInput,"status"),v(e.hookInput,"stop_reason"),v(e.hookInput,"reason"),$t(v(e.hookInput,"error")),r==="stop"?Me(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=Xn(e.hookInput,e.manifest.manifest,ks(e));n&&(s.model=n),r!=="stopfailure"&&Jn(e.manifest.manifest,e.manifest.hookConfig)!=="off"&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Ot("session_end",{status:o,...n?{model:n}:{},hook_input:s},yr(e),It,e.manifest.collectorUrl,t,an(e))}async function RC(e){let t=lC(e),n=La(e.hookInput),r=Fa(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r||o&&Jn(e.manifest.manifest,e.manifest.hookConfig)==="off")return;let s=await Qf(e);await Promise.all([o?fC(e,s):void 0,t.length===0?void 0:CC(e,s,t),n.length===0?void 0:AC(e,s,n)])}function ap(e,t,n,r){let o=r??oa({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=Ts(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&Wr(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??va({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=Ts(e,t,i,B.ComponentKind.COMMAND,B.nativeKeyForCommandPath);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function CC(e,t,n){let r=Pn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=ap(e,t,o,r);return Ps(e,t,{tool_name:"Skill",skill_name:o,...s.commandName===void 0?{}:{command_name:s.commandName},...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}function AC(e,t,n){return Promise.all(n.map(r=>{let o=Na({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=Ts(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Ma(r);return Ps(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var IC=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function bC(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Jr(e.hookInput);if(r===null)return n.skillName===null?{}:ap(e,t,n.skillName,null);let o=tp(r,t.gitRoot,t.home);for(let s of IC){let i=np(e,o,s.kind,s.nativeKeyFn);if(i.nativeKey!==null)return{...i.componentReference===void 0?{}:{componentReference:i.componentReference},...s.kind===B.ComponentKind.RULE?{ruleName:i.nativeKey}:{},...s.kind===B.ComponentKind.COMMAND?{commandName:i.nativeKey}:{}}}return{}}var OC=/mcp/i;function xC(e,t,n,r){let o=OC.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?zl(t,n):ur(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function TC(e){let t=await Qf(e),n=Ka(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=Vr(e.hookInput),i=Kl(s,t.home),a=za(e.hookInput),c=ja(e.runnerEvent),u=c===!1?Wa(e.hookInput,e.runnerEvent):null,l=$t(v(e.hookInput,"mcp_server_name")),p=l!==null||r!==null&&$n(r)?await go(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=Ja(r,p.map(K=>K.name),l??""),g=mC(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,l),S=g===void 0?bC(e,t,n):{},C=f===null?null:Nc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=xC(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),T=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=Ga(e.hookInput);await Ot("tool_invoked",{tool_name:r,skill_name:o,...x?{rule_name:x}:{},...M?{command_name:M}:{},success:c,duration_ms:a,...i?{executable:i}:{},...u?{failure_reason:u}:{},...f?{mcp_server:f}:{},...m?{mcp_tool:m}:{},...A,...T?{component_reference:T}:{},...k?{subagent_type:k}:{},...rp(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,an(e,t.home))}async function cp(e){switch(e.internalEvent){case"session_start":await EC(e);return;case"session_end":await yC(e);return;case"skill_invoked":await RC(e);return;case"tool_invoked":await TC(e);return;default:return}}import{existsSync as Ms,readFileSync as kC}from"node:fs";import{dirname as PC,isAbsolute as NC,join as wC,relative as MC}from"node:path";function up(e){for(let t of ui){let n=wC(e,t);if(Ms(n))return n}}async function LC(e=process.cwd(),t){let n=t??await Or(e);return up(n)??up(e)}async function vC(e,t){let n=t??await Or(PC(e)),r=MC(n,e);if(r.startsWith("..")||NC(r))return!1;let o=await Se("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(O(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function ws(e){let t=kC(e,"utf8");return me(dn(t),{})}function HC(){return{schema_version:Cn,mcp_servers:[]}}function UC(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(O(`WARN: ignoring capture_hook_input=full in git-tracked manifest ${t}; use EV_AI_HOOK_CAPTURE_FULL_INPUT=1 or an untracked operator manifest`),delete e.capture_hook_input),e.debug===!0&&r.has("debug")&&(O(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}function DC(){let e=di(process.env);return e.problem&&O(`WARN: ignoring ${Hr}: ${e.problem}`),e.url??""}async function lp(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await br(e),o=L("EV_AI_HOOK_MANIFEST"),s=o&&Ms(o)?o:void 0,i=s?void 0:Ms(Nt())?Nt():void 0,a=s?void 0:await LC(e,n),c=i?ws(i):void 0,u=a?ws(a):void 0,l,p,f,m=new Set;if(s){l=ws(s),p=s,f=s;for(let x of Object.keys(l))m.add(x)}else if(c&&u){l=fi(u,c),p=i,f=a;for(let x of Object.keys(u))x in c||m.add(x)}else if(c)l=c,p=i;else if(u){l=u,p=a,f=a;for(let x of Object.keys(u))m.add(x)}else l=HC();delete l.installation_id;let g=f?await vC(f,n):!1;UC(l,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await $i(n,{sessionId:t.sessionId}),T=vr(l)||DC();return{manifestPath:p??C,manifest:l,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:T,hookConfig:Sr(T),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as FC,readdirSync as $C,readFileSync as jC,statSync as fp,unlinkSync as BC,writeFileSync as KC}from"node:fs";import{homedir as Rr}from"node:os";import{join as Ls}from"node:path";var GC="turns",pp=1440*60*1e3,zC=100,WC=new Set(["stop","stopfailure","sessionend"]);function vs(e=Rr()){return Ls(Ee(e),GC)}function dp(e,t){return Ls(e,Tt(t))}function VC(e,t=Date.now()){let n;try{n=$C(e)}catch{return}let r=0;for(let o of n){if(r>=zC)return;r+=1;try{let s=Ls(e,o);t-fp(s).mtimeMs>pp&&BC(s)}catch{}}}function JC(e,t,n=Rr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=vs(n);FC(s,{recursive:!0}),KC(dp(s,r),o,"utf8")}catch{}}function YC(e,t=Rr()){let n=e.trim();if(!n)return"";try{let r=dp(vs(t),n);return Date.now()-fp(r).mtimeMs>pp?"":jC(r,"utf8").trim()}catch{return""}}function mp(e,t,n,r=Rr()){let o=t.trim(),s=WC.has(n.trim().toLowerCase());return s&&VC(vs(r)),o?(JC(e,o,r),o):s?YC(e,r):""}async function gp(e,t,n,r){let o=t??await pn(An),s=me(o,{}),i=await lp(process.cwd(),{sessionId:Ft(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Sr(r));let a=Ba(s,i.manifest.platform,n),c=so(e,a.runnerEvent);if(!c){O(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let u={hookInput:s,sessionId:a.sessionId,turnId:mp(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await cp(u)}function XC(e,t=!1){if(L("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Dt(r,o,void 0,n.runner);return Fn(o,s)?!0:t}function _p(e,t){let n=wr(e),r=me(t,{}),o=n.event??oo(r);return Vs()||Da(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function Sp(e){return gc(so(e.parsed.event,e.runnerEvent))}async function hp(e,t){let{parsed:n}=e;if(Sp(e)){await gp(n.event,t,n.runner,no(n));return}let r=uo(n.cap),o=Rc(r);if(!o){fo(r);return}try{await gp(n.event,t,n.runner,no(n))}finally{lo(o)}}async function Ep(e=process.argv.slice(2)){if(Cc(),L("EV_AI_HOOK_JUDGE")==="1"){try{await pn(An)}catch{}return Ar(),0}if(e[0]===xs){try{await Vf(Ir)}catch{}return 0}if(e[0]===Er){try{let t=await Ir(),n=_p(e.slice(1),t);if(!n)return 0;await hp(n,t)}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await pn(An),n=_p(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Qa(o,s,r.runner))return 0;if(XC(n))await hp(n,t);else{let i=Sp(n)?void 0:uo(r.cap);i===void 0||Ec(i)?await Yf(t,e):fo(i)}}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: hook failed open: ${n}`)}finally{Ar()}return 0}Ep().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
40
|
+
`)){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&u.add(T[1])}for(let A of tn(e,"env_vars"))u.add(A);let m=ay(e,"env_http_headers");for(let[,A]of m)A.length>0&&u.add(A);let g=us(e,"bearer_token_env_var");g&&(u.add(g),n.bearer_token_env_var=g),u.size>0&&(n.env_var_names=[...u].sort()),m.length>0&&(n.env_http_header_names=[...new Set(m.map(([A])=>A))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let S=us(e,"auth");S&&(n.auth=S);let C=us(e,"default_tools_approval_mode");return C&&(n.default_tools_approval_mode=C),cy(n,e),n}var Ne=je(Je(),1);import{createHash as gy}from"node:crypto";import{join as rn}from"node:path";var dy=300,py=256;function Yl(e,t){if(!t)return e;let n=[...new Set([t,t.replace(/\\/g,"/")])].filter(o=>o.length>1),r=e;for(let o of n)r=r.split(o).join("~");return r}function gr(e){let t=[],n="",r=null;for(let o of e){if(r){o===r?r=null:n+=o;continue}if(o==='"'||o==="'"){r=o;continue}if(/\s/.test(o)){n.length>0&&(t.push(n),n="");continue}n+=o}return n.length>0&&t.push(n),t}function Xl(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function my(e){return Xl(e,dy)}function ql(e,t){let n=Yl(e.trim(),t),r=gr(n);if(r.length===0)return"";let[o,...s]=r,i=it(o),a=nn(s);return my([i,...a].join(" "))}function Zl(e,t){if(typeof e!="string")return null;let n=Yl(e.trim(),t),r=gr(n)[0];if(!r)return null;let o=it(r);return o.length===0?null:Xl(o,py)}function _y(e,t){if(t!==null)return{package_version:t,package_version_source:"npx_cache"};let n=(0,Ne.pinnedPackageVersionFromSpec)(e);return n===void 0?{}:{package_version:n,package_version_source:"declared_pin"}}function hy(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
41
|
+
`);return gy("sha512").update(t).digest("hex").slice(0,16)}function Sy(e){let t=process.platform==="win32"?rn(L("LOCALAPPDATA")??e,"npm-cache"):rn(e,".npm"),n=L("npm_config_cache")??L("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Ql(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function Ey(e,t,n){let r=hy(e);for(let o of Sy(n)){let s=rn(o,"_npx",r),i=te(rn(s,"node_modules",...t.split("/"),"package.json"),{}),a=Ql(i.version);if(a!==null)return a;let c=te(rn(s,"package-lock.json"),{}),l=Ql(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function yy(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function ds(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,Ne.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,Ne.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:yy(o),..._y(o,Ey(r,s,n))}}function ef(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=gr(e.trim());return n===void 0?null:ds(n,r,t)}function _r(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return ds(typeof n.command=="string"?n.command:null,r,t)}function tf(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:ds(At(n[1]??""),tn(e,"args"),t)}function Ay(e){if(!e||typeof e!="object"||Array.isArray(e))return"unknown";let t=e;return typeof t.type=="string"&&t.type.length>0?t.type:typeof t.url=="string"?"http":typeof t.command=="string"?"stdio":"unknown"}function nf(e,t,n){if(!e.claimFile(t))return;let o=e.readJson(t,{})?.mcpServers;if(!o||typeof o!="object")return;let s=e.componentPath(t);for(let[i,a]of Object.entries(o)){if(e.truncated)return;let c=Ay(a),l=zl(a,c);Object.assign(l,_r(a,e.home)??{});let u=Wl(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:fs(i,l,u),origin:n,enabled:u,attributes:l})}}function rf(e,t,n){if(!Ry(t)||!e.claimFile(t))return;let r;try{r=Cy(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),l=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),u=l===-1?c:c.slice(0,l),d="unknown";/^\s*url\s*=/m.test(u)?d="http":/^\s*command\s*=/m.test(u)&&(d="stdio");let f=Jl(u,d);Object.assign(f,tf(u,e.home)??{});let m=Vl(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:fs(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as by,readdirSync as xy}from"node:fs";import{join as ce}from"node:path";function Iy(e){if(e.prompt||e.type==="prompt")return"prompt";let t=e.command??e.bash??e.powershell??"";return/\bnpx\b/i.test(t)?"npx":/\.(sh|bash|zsh|js|mjs|cjs|ts|py)(\s|$|"|')/i.test(t)||/^(\.\/|~\/|\/|[A-Za-z]:[\\/])/.test(t.trim())?"script":"inline"}function Oy(e){return Array.isArray(e.hooks)&&e.hooks.length>0?e.hooks:[{type:e.type,command:e.command,bash:e.bash,powershell:e.powershell,prompt:e.prompt}]}function ps(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let l of Oy(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",d=Iy({type:l.type??c.type,command:l.command??c.command,bash:l.bash??c.bash,powershell:l.powershell??c.powershell,prompt:l.prompt??c.prompt}),f=typeof c.matcher=="string"?c.matcher:"",m=X(u),g=f?`${s}:${f}:${d}:${m}`:`${s}:${d}:${m}`,S=`${s}|${f}|${d}|${u}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:X(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:d,action_hash:m,...d!=="prompt"&&u.trim()?{command:ql(u,e.home)}:{}}})}}}function ms(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||ps(e,t,r.hooks,n)}var of=50;function on(e,t,n,r){if(!by(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(of,()=>{st(e,{dir:ce(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),st(e,{dir:ce(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),st(e,{dir:ce(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});ms(e,ce(t,"hooks","hooks.json"),n),ms(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=of;return{componentCount:i,expandTruncated:a}}function sn(e,t){e.push({kind:"PLUGIN",name:t.pluginKey,path:t.rowPath,content_hash:t.contentHash,origin:"user",enabled:t.enabled,attributes:{...t.marketplace?{marketplace:t.marketplace}:{},...t.version?{version:t.version}:{},scope:t.scope,component_count:t.componentCount,...t.expandTruncated?{expand_truncated:!0}:{}}})}function sf(e){let t=ce(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ce(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let l=Array.isArray(c)?c:[c],u=l[0]??{},d=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",m=typeof u.version=="string"?u.version:"",g=typeof u.scope=="string"?u.scope:"user",S=`plugin:${a}`,C=0,A=!1;for(let T of l)if(typeof T.installPath=="string"&&T.installPath.length>0){let x=on(e,T.installPath,S,d);C+=x.componentCount,A=A||x.expandTruncated}sn(e,{pluginKey:a,rowPath:i,enabled:d,scope:g,version:m||void 0,marketplace:f||void 0,componentCount:C,expandTruncated:A,contentHash:X(`${a}|${m}|${g}|${d}|${C}`)})}}function Ty(e){let t=e,n="";try{let r=xy(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ce(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ce(e,s),n=s)}}catch{}return{installPath:t,version:n}}var ky=/^\d+$/;function Py(e){let t=e.filter(n=>!ky.test(n.pluginId));return t.length>0?t:e}function af(e){let t=[{base:ce(e.home,".cursor/plugins/local"),scope:"local"},{base:ce(e.home,".cursor/plugins/cache"),scope:"cache"}];for(let{base:n,scope:r}of t)if(!e.truncated)for(let o of e.readEntries(n)){if(!o.isDirectory()||e.truncated)continue;if(r==="local"){let a=o.name,c=ce(n,o.name),l=`plugin:${a}`,{componentCount:u,expandTruncated:d}=on(e,c,l,!0);sn(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:u,expandTruncated:d,contentHash:X(`${a}|local|${u}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ce(n,s))){if(!a.isDirectory())continue;let c=ce(n,s,a.name),{installPath:l,version:u}=Ty(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of Py(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:d}=on(e,a.installPath,l,!0);sn(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:u,expandTruncated:d,contentHash:X(`${c}|${a.version}|${u}`)})}}}import{existsSync as My}from"node:fs";var Ny=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,gs="<path>",wy=new RegExp(`${gs}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function hr(e){let t=e.replace(Ny,gs).replace(wy,gs);return t.length>200?`${t.slice(0,200)}...`:t}var cf=200,uf=200,_s=16*1024,lf=6,Ly=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),vy=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),Hy=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),Uy=new Set(["permissions"]),Dy={claude:Ly,cursor_sandbox:vy,cursor_permissions:Hy,cursor_cli:Uy},Fy=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sr(e){return e.replace(/\\/g,"/")}function hs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>hs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${hs(t[r])}`).join(",")}}`}function $y(e){return X(`${hs(e)}|settings1`)}function gf(e){let t=Sr(e);if(t.endsWith(".claude/settings.json")||t.endsWith(".claude/settings.local.json"))return"claude";if(t.endsWith(".cursor/sandbox.json"))return"cursor_sandbox";if(t.endsWith(".cursor/permissions.json"))return"cursor_permissions";if(t.endsWith(".cursor/cli-config.json")||t.endsWith(".cursor/cli.json"))return"cursor_cli"}function _f(e,t){if(e!=="claude")return{};let n=Sr(t);return n.endsWith("/.claude/remote-settings.json")?{profile:"claude",managedSource:"server"}:n.includes("/managed-settings.d/")&&n.endsWith(".json")?{profile:"claude",managedSource:"file_dropin"}:n.endsWith("/managed-settings.json")?{profile:"claude",managedSource:"file"}:{profile:"claude"}}function hf(e){let t=Sr(e).replace(/\/+$/,"");return t.length<=1?"":t}function Sf(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function jy(e,t){let n=Sr(e);if(n==="~"||n.startsWith("~/"))return n;let r=hf(t);if(!r)return n;let o=n.slice(0,r.length);if(!(Sf(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var ff=new Map;function By(e){let t=ff.get(e);if(t!==void 0)return t;let n=hf(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,Sf(e)?"gi":"g")}return ff.set(e,r),r}function Ky(e,t){let n=By(t);return n?e.replace(n,"~"):e}function df(e,t){return e.length<=uf?e:(t.truncated=!0,e.slice(0,uf))}function Ef(e,t){return e.length<=cf?e:(t.truncated=!0,e.slice(0,cf))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return df(jy(e,n),r);let o=t==="rule"?hr(e):e;return df(Ky(o,n),r)}if(typeof e=="number"||typeof e=="boolean"||e===null)return typeof e=="number"&&!Number.isFinite(e)?void 0:e;if(Array.isArray(e)){let o=Ef(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(Xe(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function pf(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";Fy.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function Gy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Ef(s,n);r[o]=a.map(c=>{if(!Xe(c))return ne(c,"plain",t,n);let l={};for(let[u,d]of Object.entries(c)){let m=ne(d,u==="path"?"path":"plain",t,n);m!==void 0&&(l[u]=m)}return l});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function zy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function Wy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=zy(s,t,n):o==="credentials"?i=Gy(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function Vy(e,t,n,r,o){return n==="claude"?e==="permissions"?pf(t,r,o):e==="sandbox"?Wy(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?pf(t,r,o):ne(t,"plain",r,o)}function an(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Ss(e,t){return e?`${e}.${t}`:t}function Es(e,t,n,r){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o-=1){let s=e[o];s!==null&&typeof s=="object"&&(t+1>=lf?(e.splice(o,1),r.add(n)):Es(s,t+1,n,r))}return}if(!(e===null||typeof e!="object"))for(let[o,s]of Object.entries(e))s!==null&&typeof s=="object"&&(t+1>=lf?(delete e[o],r.add(Ss(n,o))):Es(s,t+1,Ss(n,o),r))}function yf(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:an(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))yf(o,Ss(t,r),n)}function Jy(e,t,n){let r=an(e);if(r<=_s)return;t.truncated=!0;let o=[];for(yf(e,"",o);r>_s;){let s;for(let c of o)c.items.length>0&&(!s||c.bytes>s.bytes)&&(s=c);if(!s)break;let i=s.items.pop(),a=an(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;an(e)>_s;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=an(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function Yy(e,t,n){let r=Dy[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=Vy(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return Es(s,1,"",a),a.size>0&&(o.truncated=!0),Jy(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function mf(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:$y(t.attributes),attributes:t.attributes};e.push(n)}function ys(e,t,n,r){if(!e.claimFile(t)||!My(t))return;let o=Qs(t);if(!o.ok||!Xe(o.value)){if(r.profile){let l=!o.ok&&o.reason==="read"?"read_error":"parse_error",u={profile:r.profile,[l]:!0};r.managedSource&&(u.managed_source=r.managedSource),mf(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(Xe(i)&&ps(e,t,i,n),!r.profile)return;let a=Yy(s,r.profile,e.home),c={profile:r.profile,settings:a.settings,keys_omitted:a.keys_omitted};a.truncated&&(c.truncated=!0),a.trimmed_paths.length>0&&(c.trimmed_paths=a.trimmed_paths),r.managedSource&&(c.managed_source=r.managedSource),mf(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as Xy}from"node:fs";import{join as we}from"node:path";var Rf=".claude/skills/synced",Cf=".claude/plugins/synced";function Af(e){return[we(e,Rf),we(e,Cf)]}function Er(e){return typeof e=="string"&&e.length>0?e:void 0}function If(e){let t=we(e.home,Rf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.skills??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}let a=we(r,i.name,"SKILL.md");if(!i.isDirectory()||!Xy(a))continue;let c=s.get(i.name),l=Er(c?.source),u=Er(c?.creatorType);Ct(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Of(e){let t=we(e.home,Cf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=Er(a?.marketplaceName),l=Er(a?.version),u=c?`${i.name}@${c}`:i.name,d=we(r,i.name),{componentCount:f,expandTruncated:m}=on(e,d,`plugin:${u}`,!0);sn(e,{pluginKey:u,rowPath:e.componentPath(d),enabled:!0,scope:"synced",version:l,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${u}|${l??""}|synced|${f}`)})}}}function Zy(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)st(e,{dir:It(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:Af(e.home)});for(let i of n.dirs)st(e,{dir:It(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=Hl(i.map(c=>It(r,c)));a&&Ct(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:qy(a)})}for(let i of da(n))ys(e,It(r,i),o,{kind:"SETTINGS",profile:gf(i)});for(let i of n.mcpJson??[])nf(e,It(r,i),o);for(let i of n.mcpToml??[])rf(e,It(r,i),o);if(s){if(n.managed){for(let i of Ln(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=_f(n.managed,i);ys(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(sf(e),Of(e),If(e)):n.plugins==="cursor"&&af(e)}}function bf(e,t){try{let n=new sr(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Zy(n,{layout:r,levelDir:t.levelDir,origin:t.origin,includeMachineWide:t.includeMachineWide});return{scopeRef:t.scopeRef,anchor:t.levelDir,components:n.components,truncated:n.truncated}}catch{return}}function Rs(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=bf(t,{layouts:Object.values(gt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Be,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Ge),l=Fo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>ma(c,u)});i=l.parentRel;for(let u of l.anchors){let d=xo(u.dir);if(o!==void 0&&!o(u.scope,d))continue;let f=bf(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:$o,scopeRef:d});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Cs(e,t,n={}){let r=n.truncated===!0,o=Jt(e),s=new Set(e.map(u=>_e(u.path,u.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let u of e){let d=_e(u.path,u.name);c[d]!==u.content_hash&&a.push(u)}let l=[];if(!r){for(let u of Object.keys(c))if(!s.has(u)){let d=iu(u);d&&l.push(d)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:l,unchanged:a.length===0&&l.length===0}}var Tf=2*1024*1024,Qy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function As(e,t,n){let r=new Set(t.map(s=>_e(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(_e(s.path,s.name))||o.push(s));return o}function Is(e,t,n){let r=new Set(e);for(let s of t)r.add(s);let o=new Set(n.map(s=>s.content_hash));return[...r].filter(s=>o.has(s))}function xf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function kf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function Os(e,t=Tf){let n=[],r=[];for(let u of e)Qy.has(u.kind)?n.push(u):r.push(u);r.sort((u,d)=>(u.text?.length??0)-(d.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,l=[];for(let u of o){let d=s.length>0?1:0,f=xf(u)+d;if(i+f<=t){s.push(u),i+=f,u.text!==void 0&&l.push(u.content_hash);continue}if(u.text!==void 0){let m=kf(u),g=xf(m)+d;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:l}}function bs(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:kf(n))}var eR=["user","cwd","repo","parent"];function xs(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of eR){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,O=Cs(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),H=As(k.components,O.upserts,N),p=bs([...O.upserts,...H],N);s.push({scope:M,walk:k,delta:O,outgoing:p,outgoingKeys:new Set(p.map(I=>_e(I.path,I.name))),deliveredTextHashes:N,cachedComponents:D})}let i=s.flatMap(M=>M.outgoing),a=Os(i,o),c=new Set(a.components.map(M=>_e(M.path,M.name))),l=[],u=[],d=[],f=[],m=[],g=[],S=[];for(let M of s){let{scope:k,walk:K,delta:D}=M;g.push(...K.components),l.push(k);let O=a.components.filter(I=>M.outgoingKeys.has(_e(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),H=D.truncated||N;H?d.push(k):D.full&&u.push(k),f.push(...O),!D.full&&!H&&m.push(...D.removed);let p=D.full?{}:{...M.cachedComponents??{}};if(!H)for(let I of D.removed)delete p[_e(I.path,I.name)];for(let I of O)p[_e(I.path,I.name)]=I.content_hash;S.push({scope:k,scopeRef:K.scopeRef,components:p,textHashes:Is(M.deliveredTextHashes,O.filter(I=>I.text!==void 0).map(I=>I.content_hash),K.components),collectedAtMs:r,included:O.length>0||D.removed.length>0&&!H||D.full})}let C={user_spec_hash:Jt(g),user_spec_count:g.length,user_spec_truncated:d.length>0};l.length>0&&(C.user_spec_scopes=l,C.user_spec_full_scopes=u,C.user_spec_truncated_scopes=d,C.user_spec_cwd_in_git_repo=t.cwdInGitRepo),u.length>0&&u.length===l.length&&(C.user_spec_full=!0),f.length>0&&(C.user_spec=f),m.length>0&&(C.user_spec_removed=m),a.textDeferredCount>0&&(C.user_spec_text_deferred=a.textDeferredCount);let A=t.scopes.cwd;A&&(C.user_spec_cwd_scope_ref=A.scopeRef);let T=t.scopes.repo;T&&(C.user_spec_repo_scope_ref=T.scopeRef);let x=t.scopes.parent;return x&&(C.user_spec_parent_scope_ref=x.scopeRef,t.parentRel&&(C.user_spec_parent_rel=t.parentRel)),{fields:C,scopes:S}}var yr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Ts(e){return e==="cwd"||e==="repo"||e==="parent"}function cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ks(e){return!cn(e)||!cn(e.components)||!Object.values(e.components).every(t=>typeof t=="string")||!Array.isArray(e.text_hashes)||!e.text_hashes.every(t=>typeof t=="string")?!1:typeof e.collected_at_ms=="number"&&Number.isFinite(e.collected_at_ms)}function Pf(e){return tR(e)}function Nf(e){return nR(e)}function wf(e){return rR(e)}function tR(e){if(!cn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function nR(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Mf(e,t){if(!cn(e))return;let n=e[t];return ks(n)?n:void 0}function rR(e){if(!cn(e))return{};let t={};for(let[n,r]of Object.entries(e))ks(r)&&(t[n]=r);return t}function Ps(e,t=20){let n=[];for(let[r,o]of Object.entries(e))ks(o)&&n.push([r,o]);return n.sort((r,o)=>o[1].collected_at_ms-r[1].collected_at_ms),Object.fromEntries(n.slice(0,t))}var cR=["allow","deny","ask"];function Cr(e){let t=te(e,{}),n=[];for(let r of cR)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:hr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function uR(e){let{serverManaged:t,fileBased:n}=Qr(process.platform,e),r=Cr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Cr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function lR(e){let t=new Set,n=[];for(let r of e){let o=`${r.mode}\0${r.key}`;t.has(o)||(t.add(o),n.push(r))}return n}var fR=10,dR="self-config-cache.json",vf=4;function bt(){return L("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function pR(){return L("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var mR={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function gR(e,t=ee){let n=mR[e];if(!n||n.length===0)return null;let r=async o=>{let s=n[o];if(s===void 0)return null;let a=((await t(s,["--version"],2e3)).split(`
|
|
42
|
+
`)[0]??"").trim();return a||r(o+1)};return r(0)}function _R(e=Lf()){return Ot(e,".ev-ai","agent-hook",dR)}function hR(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
43
|
+
`);return X(n)}function Rr(e,t,n=!1){let r=hR(e),o=e.length;return t===r?n?{hash:r,count:o,truncated:n}:{hash:r,count:o}:n?{hash:r,count:o,entries:e,truncated:n}:{hash:r,count:o,entries:e}}function Ns(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>Ot(e,a)),...n]){let a=aR(i);if(s.has(a))continue;s.add(a);let c=Lr(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function SR(e){return sR(e)?me(iR(e,"utf8"),{}):{}}function ER(e,t){try{pe(e,`${JSON.stringify(t)}
|
|
44
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);b(`WARN: self-config cache write failed open: ${r}`)}}function yR(e,t,n){if(t==="user")return{components:Pf(e.user_spec_components),textHashes:Nf(e.user_spec_text_hashes)};if(!Ts(t))return{components:void 0,textHashes:[]};let r=Mf(e[yr[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function RR(e,t,n,r){let o={...e,send_count:n};for(let s of Object.keys(t)){let i=t[s];i.entries!==void 0&&(o[s]=i.hash)}if(r){o.user_spec_layout_version=vf,r.home&&(o.user_spec_collected_at_ms=r.home.collectedAtMs,r.home.included&&(o.user_spec=r.hash,o.user_spec_components=r.home.components),o.user_spec_text_hashes=r.home.textHashes);for(let s of r.project){if(!Ts(s.scope))continue;let i=yr[s.scope],a=wf(o[i]),c=a[s.scopeRef];a[s.scopeRef]={components:s.included?s.components:c?.components??{},text_hashes:s.textHashes,collected_at_ms:s.collectedAtMs},o[i]=Ps(a)}}return o}async function Hf(e,t=process.cwd(),n=Lf(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await gR(e),a="",c=[];if(o){let H=uR(n),p=Cr(Ot(n,".claude/settings.json")),I=Cr(Ot(t,".claude/settings.local.json"));a=H.model||I.model||p.model,c=lR([...H.permissionKeys,...p.permissionKeys,...I.permissionKeys]).slice(0,200)}let l={present:!1,size:0},u=H=>{let p=[],I=!1;for(let U of H){let ue=ei(Ot(n,U));if(p=p.concat(ue.entries),I=I||ue.truncated,p.length>=Be){p=p.slice(0,Be),I=!0;break}}return{entries:p,truncated:I}},d=_R(n),f=SR(d),m=f[e]??{},g=(m.send_count??0)+1,S=g>0&&g%fR===0,C=H=>S?void 0:m[H],A=u(We.skills),T=u(We.subagents),x=u(We.commands),M=u(We.rules),k={skills:Rr(A.entries,C("skills"),A.truncated),subagents:Rr(T.entries,C("subagents"),T.truncated),commands:Rr(x.entries,C("commands"),x.truncated),rules:Rr(M.entries,C("rules"),M.truncated)},K={runner_platform:e,config_scope:"user",cli_version:i,claude_version:o?i:null,model:o&&a||null,permission_keys:c,user_scope:{skills:k.skills,subagents:k.subagents,commands:k.commands,rules:k.rules,memory:Ns(n,We.memory),settings:Ns(n,We.settings,ga(n)),mcp:Ns(n,We.mcp)},local_settings:o?Lr(Ot(t,".claude/settings.local.json")):l},D=null,O=r.nowMs??Date.now();if(!bt()){let H=m.user_spec_layout_version!==vf,p=Rs(e,n,{launchCwd:pR()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(p.scopes).length>0){let I=xs({collected:p,cacheFor:(U,ue)=>H?{components:void 0,textHashes:[]}:yR(m,U,ue),nowMs:O});Object.assign(K,I.fields),D={hash:I.fields.user_spec_hash,home:I.scopes.find(U=>U.scope==="user")??null,project:I.scopes.filter(U=>U.scope!=="user")}}}let N=RR(m,k,g,D);return{config:K,commit:()=>{f[e]=N,ER(d,f)}}}import{homedir as FR}from"node:os";import{join as Ff}from"node:path";function at(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as Ar}from"node:path";function CR(e){return Ar(e,".ev-ai","agent-hook","js","signed-v1")}function AR(e){return Ar(CR(e),"scopes")}function Uf(e,t){return Ar(AR(e),t)}function Df(e){return Ar(e,"attempts")}function ws(e){return String(e).padStart(10,"0")}var IR=/^(\d{10})$/,OR=/^(\d{10})\.done$/,bR=/^[0-9a-f]{128}$/,xR=64;async function Kf(e,t,n=!1){let r=Df(t),o=await _i(e,r),s=new Map,i=new Map,a=$f(o,IR),c=$f(o,OR),l=async f=>{let m=await Bf(e,Ff(r,TR(f)));return m&&s.set(f,{record:PR(m.value),mtimeMs:m.mtimeMs}),m!==void 0},u=async f=>{let m=NR((await Bf(e,Ff(r,kR(f))))?.value);return m&&i.set(f,m),m!==void 0};if(!n)return await Promise.all([...a.map(l),...c.map(u)]),{claims:s,dones:i};await Promise.all([jf(a,l),jf(c,u)]);let d=un(s);return d<un(i)&&c.includes(d)&&await u(d),{claims:s,dones:i}}function $f(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function jf(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function un(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Gf(e){if(e.record!=="empty"&&e.record.started_at){let t=Date.parse(e.record.started_at);if(Number.isFinite(t))return t}return e.mtimeMs}function TR(e){return ws(e)}function kR(e){return`${ws(e)}.done`}async function Bf(e,t){let n;try{n=await e.stat(t)}catch(o){if(ft(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>Ur)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>Ur?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function PR(e){if(!at(e))return"empty";let t={};return typeof e.started_at=="string"&&(t.started_at=e.started_at),(e.owner==="bootstrap"||e.owner==="refresh")&&(t.owner=e.owner),e.resync===!0&&(t.resync=!0),t}function NR(e){if(!at(e))return;let t=e;if(typeof t.finished_at!="string"||typeof t.outcome!="string"||typeof t.interval_s!="number"||!Number.isFinite(t.interval_s))return;let n=wR(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function wR(e){if(!at(e))return;let t=e;if(t.kind==="bundled")return t.why==="server"||t.why==="bootstrap_failed"?{kind:"bundled",why:t.why}:void 0;if(t.kind==="cached"&&typeof t.digest=="string"&&bR.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&MR(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function MR(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==xR||t.toString("base64")!==e))return t.toString("hex")}function UR(e){return e==="bootstrap"?3e3:6e4}function DR(e,t){let n=un(e.claims);if(n===0)return;let r=un(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Gf(o),c=o.record==="empty"?void 0:o.record.owner,l=UR(c)+3e4;if(t-a>l)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:zf(e.dones.get(r)?.selection)}}if(r===0)return;let i=e.dones.get(r);if(i)return{n:r,latest_claim:n,outcome:i.outcome,finished_at:i.finished_at,selection_version:zf(i.selection)}}async function Wf(e,t,n){try{let r=await Kf(hi(),Uf(e,t),!0);return DR(r,n)}catch{return}}function zf(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}function $R(e=process.env){if(Object.values(ji).some(n=>e[n]))return"plugin";let t=e.npm_lifecycle_script?.trim().split(/\s+/)[0]?.replace(/^["']|["']$/g,"");return e.npm_lifecycle_event==="npx"&&t===pt?"npx":null}async function Vf(e=FR()){let t=Co()?.launcherScope;if(!t)return{};let n=await Wf(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function xt(e,t,n){let r={installation_id:n.installationId};n.platformAgentId&&(r.platform_agent_id=n.platformAgentId),n.sessionId&&(r.session_id=n.sessionId),n.turnId&&(r.turn_id=n.turnId);let o={schema_version:Pn,event:e,timestamp:gn(),session_id:n.sessionId||null,turn_id:n.turnId||null,installation_id:n.installationId,platform:n.runnerPlatform,platform_agent_id:n.platformAgentId||null,runner_event:n.runnerEvent||null,agent_hook_version:Jr,hook_delivery:$R(),host_arch:process.arch,node_version:process.version,policy_version:null,policy_capabilities:[],...n.promptCaptureSource!==void 0?{prompt_capture_source:n.promptCaptureSource}:{},correlation:r,payload:t},s=Co();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=wc(n.collectorUrl,s.launcherScope)),e==="session_start"&&(n.launcher_scope&&(o.launcher_scope=n.launcher_scope),n.launcher_attempt&&(o.launcher_attempt=n.launcher_attempt)),o}import{existsSync as qf}from"node:fs";import{spawn as Zf}from"node:child_process";import{fileURLToPath as QR}from"node:url";import{gzipSync as jR}from"node:zlib";function Ms(e){return L("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<$i?{body:e}:{body:jR(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function Ir(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function Ls(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}import{readFileSync as BR,statSync as KR}from"node:fs";import{homedir as vs}from"node:os";import{join as GR}from"node:path";var zR="hook-config.json",WR=10080*60*1e3,VR=1440*60*1e3,JR=2048,YR=1024*1024;function Tt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Jf(e=vs()){return GR(Ee(e),zR)}function Yf(e){let t=Jf(e);try{let n=KR(t);if(!n.isFile()||n.size>YR)return;let r=JSON.parse(BR(t,"utf8"));return Tt(r)?r:void 0}catch(n){return(n instanceof Error&&"code"in n?n.code:void 0)==="ENOENT"?null:void 0}}function XR(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function Or(e,t=vs(),n=Date.now()){if(!e)return;let r=Ut(e);if(!r)return;let o=Yf(t),s=o?o[r]:void 0;if(!Tt(s)||!Tt(s.config))return;let i=s.fetched_at_ms;if(!(typeof i!="number"||n-i>WR))return XR(s.config)}function qR(e){let t=e.trim();if(t==="")return;let n;try{n=JSON.parse(t)}catch{return}if(!(!Tt(n)||!Tt(n.hook_config))&&!(Buffer.byteLength(JSON.stringify(n.hook_config),"utf8")>JR))return n.hook_config}function ZR(e,t,n,r){let o={...e},s=o[t];if(Object.keys(n).length===0)return s===void 0?void 0:(delete o[t],o);if(!(Tt(s)&&JSON.stringify(s.config)===JSON.stringify(n)&&typeof s.fetched_at_ms=="number"&&s.fetched_at_ms<=r&&r-s.fetched_at_ms<VR))return o[t]={config:n,fetched_at_ms:r},o}function Xf(e,t,n=vs(),r=Date.now()){let o=qR(e),s=t?Ut(t):void 0;if(o===void 0||!s)return"skipped";try{let i=Yf(n);if(i===void 0)return"skipped";let a=ZR(i??{},s,o,r);return a?(pe(Jf(n),`${JSON.stringify(a,null,2)}
|
|
45
|
+
`),Object.keys(o).length===0?"cleared":"written"):"unchanged"}catch(i){let a=i instanceof Error?i.message:String(i);return b(`WARN: hook config write failed open: ${a}`),"failed"}}var Hs="__post",br="__work";async function eC(e,t,n={}){if(bt())return e;let r=await ko(n.gitRoot??process.cwd(),ee,process.env,{runnerPlatform:t,home:n.home}),o=at(e.self_config)?e.self_config:{};return{...e,self_config:{...o,runner_platform:typeof o.runner_platform=="string"?o.runner_platform:t,operator:r}}}function tC(e,t){let n=at(e.payload)?Object.keys(e.payload):[],r=e.correlation&&typeof e.correlation=="object"?Object.keys(e.correlation):[];return JSON.stringify({event:e.event,schema_version:e.schema_version,agent_hook_version:e.agent_hook_version,host_arch:e.host_arch,node_version:e.node_version,build_ms:e.build_ms,body_bytes:t,correlation_keys:r,payload_keys:n})}function Qf(e){switch(e){case"session_start":return Hi;case"session_end":return Ui;case"tool_invoked":case"skill_invoked":return Wr;default:return Wr}}function nC(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
46
|
+
${n}`}function ed(e,t=[],n=process.execPath,r=import.meta.url,o=qf){if(vi(n))return{command:n,args:[e,...t]};let s=QR(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function rC(e=process.execPath,t=import.meta.url,n=qf){return ed(Hs,[],e,t,n)}function oC(e){let t=e.indexOf(`
|
|
47
|
+
`);if(t<0)return null;let n;try{n=JSON.parse(e.slice(0,t))}catch{return null}return{meta:n,body:e.slice(t+1)}}async function td(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();Xf(n,t)}catch{}}async function nd(e,t=fetch){let n=await e(),r=oC(n);if(!r)return;let{meta:o,body:s}=r,i=Ms(s),a=Ir(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await td(c,o.url)}catch{}}async function sC(e,t,n,r=fetch){let o=Qf(e),s=Ms(t),i=Ir(s.contentEncoding),a=Ls(s.body);b(`POST event=${e} url=${kn(n)} size=${a} encoding=${s.contentEncoding??"identity"} platform=${process.platform}`);let c=Date.now();try{let l=await r(n,{method:"POST",headers:i,body:s.body,signal:AbortSignal.timeout(o)});if(!l.ok&&s.contentEncoding==="gzip"&&(l.status===400||l.status===415)){try{await l.text()}catch{}b(`POST gzip rejected http=${l.status} \u2014 retrying uncompressed`),l=await r(n,{method:"POST",headers:Ir(),body:t,signal:AbortSignal.timeout(o)})}let u=Date.now()-c;if(l.ok)return b(`POST outcome=ok elapsed_ms=${u} http=${l.status}`),await td(l,n),!0;let d=(await l.text()).slice(0,200).replace(/[\n\r]/g,"");return b(`POST outcome=fail elapsed_ms=${u} http=${l.status} body=${d}`),!1}catch(l){let u=Date.now()-c,d=l instanceof Error?l.message:String(l);return b(`POST outcome=fail elapsed_ms=${u} http=000 body=${d}`),!1}}async function rd(e,t,n,r,o){try{let s=r(e,t,{detached:!0,stdio:["pipe","ignore","ignore"],windowsHide:!0});s.on("error",()=>{}),s.stdin.on("error",()=>{});let i=!1;return await new Promise(a=>{let c=setTimeout(()=>{if(!i){b(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},Di),l=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>l()),s.stdin.once("error",()=>l())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return b(`WARN: ${o} spawn failed open: ${i}`),null}}async function iC(e,t,n,r=Zf,o=rC){let s=Qf(e),i=nC(n,s,t),{command:a,args:c}=o();return rd(a,c,i,r,"detached post")}async function od(e,t,n=Zf,r=ed){let{command:o,args:s}=r(br,t);return rd(o,s,e,n,"detached work")}async function kt(e,t,n,r,o,s,i){if(!o)return b("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!xn(o))return b(`WARN: collector URL blocked (https required): ${kn(o)}`),!1;let a=await eC(t,n.runnerPlatform,i),c=r(e,a,{...n,collectorUrl:o});s!==void 0&&(c.build_ms=Math.max(0,Date.now()-s));let l=JSON.stringify(c),u=`${l}
|
|
48
|
+
`,d=L("EV_AI_HOOK_DEBUG");d==="full"?b(`DEBUG envelope=${l}`):d==="1"&&b(`DEBUG summary=${tC(c,Ls(u))}`);let f=process.argv.includes(br),m=L("EV_AI_HOOK_SYNC")==="1";return zn(n.runnerEvent,n.runnerPlatform)||f||m?sC(e,u,o):(await iC(e,u,o),!1)}import{createReadStream as aC}from"node:fs";import{stat as cC}from"node:fs/promises";import{basename as uC,resolve as lC}from"node:path";import{createInterface as fC}from"node:readline";var dC=1024*1024;function pC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&uC(t).endsWith(".jsonl")}async function sd(e){if(!e||!pC(e))return null;try{let t=lC(e),n=await cC(t);if(!n.isFile())return null;let r=Math.max(0,n.size-dC),o=[],s=fC({input:aC(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let l=c.message;if(!l||typeof l!="object")continue;let u=l.model;if(typeof u=="string"&&u.length>0)return u}catch{continue}}return null}catch{return null}}function xr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:tr(e.manifest.manifest,e.manifest.hookConfig)}}function fn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Ds(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:Ho(e.manifest.hookConfig)}}async function cd(e){let t=Date.now();await OC(e);let{gitRoot:n}=e.manifest;await $s(e,n);let r=Ds(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:rr(e.hookInput,e.manifest.manifest,r),envelopeFields:xr(e),launchCwd:Uo(e.hookInput,r),home:gC()}}function id(e){try{return ge(mC(e))}catch{return null}}function ud(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function ad(e,t){let n=e.replaceAll("\\","/");if(!ud(n))return null;let r=ge(e),o=ge(t),s=id(e)??r,i=id(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function ld(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=ad(e,t)??(ud(r)?null:r),i=ad(e,n);return{repositorySourcePath:s,userSourcePath:i}}function Us(e,t,n,r,o){return fd(e,ld(n,t.gitRoot,t.home),r,o)}function fd(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?_C({installableKind:r,sourcePath:s,nativeKey:i,inRepository:t!==null,platformAgentId:e.platformAgentId,installationId:e.manifest.installationId}):void 0;return{sourcePath:s,nativeKey:i,componentReference:a}}function _C(e){try{let t=e.inRepository?EC(e.platformAgentId,e.sourcePath):(0,B.installationRootExternalKey)(e.installationId,(0,B.userConfigRootFromPath)(e.sourcePath));return t?(0,B.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function dd(e){let t=e.policyFindings;return t===void 0||t.length===0?{}:{policy_findings:t,...e.policyJudgeSpawnMs!==void 0?{policy_judge_spawn_ms:e.policyJudgeSpawnMs}:{}}}function Fs(e,t,n){return kt("tool_invoked",{...n,...dd(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,xt,e.manifest.collectorUrl,t.buildStartedAtMs,fn(e,t.home))}function hC(e){return oc(e.runnerEvent,e.runnerPlatform)?[]:Ca(e.hookInput)}function SC(e,t){return Fs(e,t,{})}var pd=new Set([...Object.values(tt),".github"]);function EC(e,t){let n=e.indexOf(":");if(n<=0)return null;let r=e.slice(0,n),o=t.replaceAll("\\","/").split("/").filter(Boolean),s=o.findIndex(i=>pd.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var md=".codex/config.toml",yC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",md]]);function RC(e,t,n,r,o,s,i){if(e===null||t===null||!(i!==null||/^mcp__.+?__.+$/i.test(e)||/^MCP:[^:]+:.+$/i.test(e)||/^MCP:.+__.+$/i.test(e)||e.toLowerCase()===`mcp:${t.toLowerCase()}`))return;let c=s.find(S=>S.name.toLowerCase()===t.toLowerCase()),l=c?yC.get(c.source):o==="codex"?md:void 0,u=c?.sourcePath??l;if((c?.scope==="user"||l!==void 0)&&u)try{let S=(0,B.userConfigRootFromPath)(u);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:u,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let m=n.slice(f+1),g=m.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!pd.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function CC(...e){for(let t of e)if(t)return t;return null}function ut(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return b(`WARN: ${n} failed open: ${r}`),t}function AC(e){let t={present:!1,size:0},n={hash:"",count:0};return{config:{runner_platform:e,config_scope:"user",cli_version:null,claude_version:null,model:null,permission_keys:[],user_scope:{skills:n,subagents:n,commands:n,rules:n,memory:t,settings:t,mcp:t},local_settings:t},commit:()=>{}}}function IC(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,ln=null;async function OC(e){if(bt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!No(n)){ct.add(t);return}let r=wt({sessionId:e.sessionId,hostname:Sn()});if(cu(r)){if(ln){await ln;return}ln=(async()=>{if(ct.has(t)||!No(n)){ct.add(t);return}if(!ra(n)){ct.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await gd(e,r,Kn(i),Po({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:IC(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await kt("session_start",u,xr(e),xt,e.manifest.collectorUrl,s,fn(e)),o&&(c.commit(),ct.add(t))}finally{oa(n)}})().finally(()=>{ln=null}),await ln}}async function $s(e,t,n){try{e.platformAgentId=await Va(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,n,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);b(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function gd(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,oi(),Lc(t),ii(),r]),l=ut(o,null,"gitSnapshot"),u=ut(s,"","detectVirt"),d=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await $s(e,e.manifest.gitRoot,l),{operatorResolved:m,fields:{identity:{host:Sn(),context:t,virt:u||null,cloud:d,git:l},host_env:f,env_vars:jc()}}}async function bC(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=wt({sessionId:e.sessionId,hostname:Sn()}),o=String(e.runnerPlatform),s=Ds(e),i=Uo(e.hookInput,s),a=Kn(n),c=Vf().catch(()=>({})),l=bt()?Promise.resolve({commit:()=>{}}):Po({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=gd(e,r,a,l),[d,f]=await Promise.allSettled([Io(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Hf(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:m,fields:g}=await u,S=ut(d,[],"mcpDeclared"),C=ut(f,AC(o),"selfConfig"),A=C.config,T=v(e.hookInput,"model");T&&(A.model=T);let x={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:rr(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await kt("session_start",x,{...xr(e),...M},xt,e.manifest.collectorUrl,t,fn(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function xC(e){let t=Date.now(),[,n]=await Promise.all([$s(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?sd(v(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=CC(v(e.hookInput,"status"),v(e.hookInput,"stop_reason"),v(e.hookInput,"reason"),Gt(v(e.hookInput,"error")),r==="stop"?Me(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=rr(e.hookInput,e.manifest.manifest,Ds(e));n&&(s.model=n),r!=="stopfailure"&&tr(e.manifest.manifest,e.manifest.hookConfig)!=="off"&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await kt("session_end",{status:o,...n?{model:n}:{},hook_input:s},xr(e),xt,e.manifest.collectorUrl,t,fn(e))}async function TC(e){let t=hC(e),n=qa(e.hookInput),r=rc(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r||o&&tr(e.manifest.manifest,e.manifest.hookConfig)==="off")return;let s=await cd(e);await Promise.all([o?SC(e,s):void 0,t.length===0?void 0:kC(e,s,t),n.length===0?void 0:PC(e,s,n)])}function _d(e,t,n,r){let o=r??Ra({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=Us(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&to(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??Za({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=Us(e,t,i,B.ComponentKind.COMMAND,B.nativeKeyForCommandPath);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function kC(e,t,n){let r=Hn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=_d(e,t,o,r);return Fs(e,t,{tool_name:"Skill",skill_name:o,...s.commandName===void 0?{}:{command_name:s.commandName},...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}function PC(e,t,n){return Promise.all(n.map(r=>{let o=Ja({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=Us(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Xa(r);return Fs(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var NC=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function wC(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=ro(e.hookInput);if(r===null)return n.skillName===null?{}:_d(e,t,n.skillName,null);let o=ld(r,t.gitRoot,t.home);for(let s of NC){let i=fd(e,o,s.kind,s.nativeKeyFn);if(i.nativeKey!==null)return{...i.componentReference===void 0?{}:{componentReference:i.componentReference},...s.kind===B.ComponentKind.RULE?{ruleName:i.nativeKey}:{},...s.kind===B.ComponentKind.COMMAND?{commandName:i.nativeKey}:{}}}return{}}var MC=/mcp/i;function LC(e,t,n,r){let o=MC.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?ef(t,n):_r(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function vC(e){let t=await cd(e),n=ac(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=no(e.hookInput),i=Zl(s,t.home),a=uc(e.hookInput),c=sc(e.runnerEvent),l=c===!1?lc(e.hookInput,e.runnerEvent):null,u=Gt(v(e.hookInput,"mcp_server_name")),d=u!==null||r!==null&&Wn(r)?await Io(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=dc(r,d.map(K=>K.name),u??""),g=RC(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),d,u),S=g===void 0?wC(e,t,n):{},C=f===null?null:$c(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=LC(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),T=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=cc(e.hookInput);await kt("tool_invoked",{tool_name:r,skill_name:o,...x?{rule_name:x}:{},...M?{command_name:M}:{},success:c,duration_ms:a,...i?{executable:i}:{},...l?{failure_reason:l}:{},...f?{mcp_server:f}:{},...m?{mcp_tool:m}:{},...A,...T?{component_reference:T}:{},...k?{subagent_type:k}:{},...dd(e),hook_input:t.hookInput},t.envelopeFields,xt,e.manifest.collectorUrl,t.buildStartedAtMs,fn(e,t.home))}async function hd(e){switch(e.internalEvent){case"session_start":await bC(e);return;case"session_end":await xC(e);return;case"skill_invoked":await TC(e);return;case"tool_invoked":await vC(e);return;default:return}}import{existsSync as Bs,readFileSync as HC}from"node:fs";import{dirname as UC,isAbsolute as DC,join as FC,relative as $C}from"node:path";function Sd(e){for(let t of Pi){let n=FC(e,t);if(Bs(n))return n}}async function jC(e=process.cwd(),t){let n=t??await Mr(e);return Sd(n)??Sd(e)}async function BC(e,t){let n=t??await Mr(UC(e)),r=$C(n,e);if(r.startsWith("..")||DC(r))return!1;let o=await Se("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(b(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function js(e){let t=HC(e,"utf8");return me(hn(t),{})}function KC(){return{schema_version:Pn,mcp_servers:[]}}function GC(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(b(`WARN: ignoring capture_hook_input=full in git-tracked manifest ${t}; use EV_AI_HOOK_CAPTURE_FULL_INPUT=1 or an untracked operator manifest`),delete e.capture_hook_input),e.debug===!0&&r.has("debug")&&(b(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}function zC(){let e=Li(process.env);return e.problem&&b(`WARN: ignoring ${zr}: ${e.problem}`),e.url??""}async function Ed(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await wr(e),o=L("EV_AI_HOOK_MANIFEST"),s=o&&Bs(o)?o:void 0,i=s?void 0:Bs(Ht())?Ht():void 0,a=s?void 0:await jC(e,n),c=i?js(i):void 0,l=a?js(a):void 0,u,d,f,m=new Set;if(s){u=js(s),d=s,f=s;for(let x of Object.keys(u))m.add(x)}else if(c&&l){u=wi(l,c),d=i,f=a;for(let x of Object.keys(l))x in c||m.add(x)}else if(c)u=c,d=i;else if(l){u=l,d=a,f=a;for(let x of Object.keys(l))m.add(x)}else u=KC();delete u.installation_id;let g=f?await BC(f,n):!1;GC(u,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await ca(n,{sessionId:t.sessionId}),T=Gr(u)||zC();return{manifestPath:d??C,manifest:u,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:T,hookConfig:Or(T),platformAgentId:u.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as WC,readdirSync as VC,readFileSync as JC,statSync as yd,unlinkSync as YC,writeFileSync as XC}from"node:fs";import{homedir as Tr}from"node:os";import{join as Ks}from"node:path";var qC="turns",Rd=1440*60*1e3,ZC=100,QC=new Set(["stop","stopfailure","sessionend"]);function Gs(e=Tr()){return Ks(Ee(e),qC)}function Cd(e,t){return Ks(e,Nt(t))}function eA(e,t=Date.now()){let n;try{n=VC(e)}catch{return}let r=0;for(let o of n){if(r>=ZC)return;r+=1;try{let s=Ks(e,o);t-yd(s).mtimeMs>Rd&&YC(s)}catch{}}}function tA(e,t,n=Tr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Gs(n);WC(s,{recursive:!0}),XC(Cd(s,r),o,"utf8")}catch{}}function nA(e,t=Tr()){let n=e.trim();if(!n)return"";try{let r=Cd(Gs(t),n);return Date.now()-yd(r).mtimeMs>Rd?"":JC(r,"utf8").trim()}catch{return""}}function Ad(e,t,n,r=Tr()){let o=t.trim(),s=QC.has(n.trim().toLowerCase());return s&&eA(Gs(r)),o?(tA(e,o,r),o):s?nA(e,r):""}async function rA(e,t,n,r){let o=t??await _n(Nn),s=me(o,{}),i=await Ed(process.cwd(),{sessionId:Kt(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Or(r));let a=ic(s,i.manifest.platform,n),c=mo(e,a.runnerEvent);if(!c){b(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:Ad(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await hd(l)}function oA(e,t=!1){if(L("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Bt(r,o,void 0,n.runner);return zn(o,s)?!0:t}function Id(e,t){let n=jr(e),r=me(t,{}),o=n.event??po(r);return ni()||nc(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function bd(e){return Ic(mo(e.parsed.event,e.runnerEvent))}async function Od(e,t,n){let{parsed:r}=e,o=n??yo(r.slot);if(!o&&!bd(e)){let s=Eo(r.cap),i=Pc(s);if(!i){Ro(s);return}o=i}try{await rA(r.event,t,r.runner,ec(r))}finally{o&&Yn(o)}}async function xd(e=process.argv.slice(2)){if(Nc(),L("EV_AI_HOOK_JUDGE")==="1"){try{await _n(Nn)}catch{}return Pr(),0}if(e[0]===Hs){try{await nd(Nr)}catch{}return 0}if(e[0]===br){try{let n=await Nr(),r=Id(e.slice(1),n);if(!r)return 0;await Od(r,n)}catch(n){let r=n instanceof Error?n.message:String(n);b(`WARN: detached work failed open: ${r}`)}return 0}let t;try{let n=await _n(Nn),r=Id(e,n);if(!r)return 0;let{parsed:o,hookInput:s,runnerEvent:i}=r;if(t=yo(o.slot),!hc(s,i,o.runner))return 0;if(oA(r))await Od(r,n,t);else{let a=t||bd(r)?void 0:Eo(o.cap);if(a===void 0||Tc(a)){let c=await od(n,e);t&&c?.pid!==void 0&&bc(t,c.pid)}else Ro(a)}}catch(n){let r=n instanceof Error?n.message:String(n);b(`WARN: hook failed open: ${r}`)}finally{t&&Yn(t),Pr()}return 0}xd().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
49
49
|
`),process.exit(1)});
|