@ev-ai/agent-hook 1.3.2 → 1.3.3
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/README.md +2 -0
- package/dist/cli.mjs +38 -36
- package/dist/hook.mjs +35 -33
- package/dist/launcher-update.mjs +4 -4
- package/dist/launcher.mjs +3 -3
- package/dist/managed-hooks-snippet.cjs +1 -1
- package/dist/managed-hooks-snippet.mjs +1 -1
- package/dist/plugin-hooks.mjs +1 -1
- package/package.json +1 -1
package/dist/hook.mjs
CHANGED
|
@@ -1,47 +1,49 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module';
|
|
2
2
|
const require = __createRequire(import.meta.url);
|
|
3
3
|
|
|
4
|
-
var Ff=Object.create;var Cs=Object.defineProperty;var $f=Object.getOwnPropertyDescriptor;var jf=Object.getOwnPropertyNames;var Bf=Object.getPrototypeOf,Kf=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 Gf=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jf(t))!Kf.call(e,o)&&o!==n&&Cs(e,o,{get:()=>t[o],enumerable:!(r=$f(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?Ff(Bf(e)):{},Gf(t||!e||!e.__esModule?Cs(n,"default",{value:e,enumerable:!0}):n,e));var In=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=Wi;q.buildMcpFamilyCanonicalKey=wd;q.launchContainsCredentials=Ld;q.serializeMcpLaunchIdentity=Vi;q.hashMcpLaunchIdentity=Mt;q.projectMcpMissingLaunchIdentity=Hd;q.projectMcpLaunchIdentity=Dd;q.maskMcpLaunchForDisplay=$d;q.normalizeMcpToolNames=jd;var Nd=$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 Wi(e){return Le(e)}function wd(e){return`interface:${Wi(e)}`}var zi=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),Md=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Ld(e){return e.kind==="url"?vd(e.url):e.kind==="command"?e.arguments.some(t=>Md.test(t)):!1}function vd(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(zi.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 zi.has(a)})}}function Vi(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 Mt(e){return(0,Nd.createHash)("sha256").update(e).digest("hex")}var Ud=Mt(q.MCP_MISSING_LAUNCH_SERIALIZED);function Hd(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:Ud}}function Dd(e){let t=Vi(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:Mt(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:Mt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Mt(t)}}var Fd=/^(https?:\/\/)([^/?#]*@)/i;function $d(e){return e.replace(Fd,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function jd(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 xn=W(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.PACKAGE_FIELD_MAX=void 0;Oe.npxExecBin=Ji;Oe.packageNameFromSpec=bn;Oe.pinnedPackageVersionFromSpec=Yi;Oe.pinnedPackageVersionFromNpx=Xd;Oe.npxPackageSpecs=Xi;Oe.PACKAGE_FIELD_MAX=128;var Bd=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Kd=new Set(["-p","--package"]),Gd=new Set(["-c","--call"]),zd=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),Wd=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Vd=/^--no-/;function Jd(e){return Wd.has(e)||Vd.test(e)}function Ji(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var Yd=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function bn(e){if(e.length===0||e.length>Oe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return Bd.test(n)?n:null}function Yi(e){let t=bn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return Yd.test(n)?n:void 0}function Xd(e,t){for(let n of Xi(e,t)){let r=Yi(n);if(r!==void 0)return r}}function Xi(e,t){let n=Ji(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(Gd.has(l))return[];if(Kd.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||Jd(l))){if(zd.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>bn(i)!==null)?o:[]:s===null||bn(s)===null?[]:[s]}});var qi=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=um;var qd=In(),$r=xn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var Zd=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Qd=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,em=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function tm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var nm=new Set(["--from","--spec"]),rm=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"]),om=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"]),sm=/^--no-/;function im(e,t){let n=tm(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(nm.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||om.has(l)||sm.test(l))){if(rm.has(l)){i+=1;continue}return null}}return o??s}function am(e){if(e.length===0||e.length>$r.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!Qd.test(r)||!em.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function cm(e){let t=(0,$r.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return Zd.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function um(e){if(e?.kind!=="command"||(0,qd.launchContainsCredentials)(e))return;for(let n of(0,$r.npxPackageSpecs)(e.command,e.arguments)){let r=cm(n);if(r!==null)return r}let t=im(e.command,e.arguments);if(t!==null)return am(t)??void 0}});var ra=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=fm;ve.displayPublisherName=pm;ve.classifyMcpProvenance=Rm;var ea=In(),jr=xn();ve.EMPTY_NPM_PUBLISHER="npm:";var Zi="npm:",lm=/^[A-Za-z0-9._-]+$/;function fm(e){return e.startsWith(Zi)&&e!==ve.EMPTY_NPM_PUBLISHER&&lm.test(e.slice(Zi.length))}function pm(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function Qi(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 dm(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 Br(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function mm(e){let t=Br(e),n=dm(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||Qi(t)||n!==void 0&&Qi(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function gm(e){let t=Br(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function _m(e){let t=Br(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function ta(e){let t={kind:"url",url:e};if((0,ea.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||mm(n.hostname))return{origin:"UNKNOWN"};let r=gm(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:_m(n)}}catch{return{origin:"UNKNOWN"}}}var na="mcp-remote";function hm(e,t){if(e===na)return t.find(n=>/^https?:\/\//i.test(n))}function Sm(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Em(e,t,n){let r=hm(e,t);return r!==void 0?ta(r):e===na?{origin:"UNKNOWN"}:Sm(e,n)}function ym(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 Rm(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,ea.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return ta(t.url);let r=(0,jr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,jr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Em(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,jr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return ym(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var sa=W(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.mcpServerToolSegmentForms=oa;On.mcpServerNameMatchesToolSegment=Cm;function oa(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function Cm(e,t){let n=t.toLowerCase();return oa(e).some(r=>r.toLowerCase()===n)}});var ia=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var Am=/^(?:>|\|)[-+]?$/,Im=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,bm=e=>{let t=e?.trim()??"";if(!(t.length===0||Am.test(t)))return t};ye.usableCatalogText=bm;var xm=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=xm;var Om=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return km(n[1],t)};ye.parseFrontmatterField=Om;var Tm=e=>e.replace(/^["']|["']$/g,"");function km(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 mp=Object.create;var Ns=Object.defineProperty;var gp=Object.getOwnPropertyDescriptor;var _p=Object.getOwnPropertyNames;var hp=Object.getPrototypeOf,Sp=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 Ep=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _p(t))!Sp.call(e,o)&&o!==n&&Ns(e,o,{get:()=>t[o],enumerable:!(r=gp(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?mp(hp(e)):{},Ep(t||!e||!e.__esModule?Ns(n,"default",{value:e,enumerable:!0}):n,e));var kn=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=na;q.buildMcpFamilyCanonicalKey=am;q.launchContainsCredentials=um;q.serializeMcpLaunchIdentity=ra;q.hashMcpLaunchIdentity=Ht;q.projectMcpMissingLaunchIdentity=pm;q.projectMcpLaunchIdentity=dm;q.maskMcpLaunchForDisplay=gm;q.normalizeMcpToolNames=_m;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 na(e){return Le(e)}function am(e){return`interface:${na(e)}`}var ta=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),cm=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function um(e){return e.kind==="url"?lm(e.url):e.kind==="command"?e.arguments.some(t=>cm.test(t)):!1}function lm(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(ta.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 ta.has(a)})}}function ra(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,im.createHash)("sha256").update(e).digest("hex")}var fm=Ht(q.MCP_MISSING_LAUNCH_SERIALIZED);function pm(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:fm}}function dm(e){let t=ra(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 mm=/^(https?:\/\/)([^/?#]*@)/i;function gm(e){return e.replace(mm,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function _m(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 Nn=W(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.PACKAGE_FIELD_MAX=void 0;Oe.npxExecBin=oa;Oe.packageNameFromSpec=Pn;Oe.pinnedPackageVersionFromSpec=sa;Oe.pinnedPackageVersionFromNpx=bm;Oe.npxPackageSpecs=ia;Oe.PACKAGE_FIELD_MAX=128;var hm=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Sm=new Set(["-p","--package"]),Em=new Set(["-c","--call"]),ym=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),Rm=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Cm=/^--no-/;function Am(e){return Rm.has(e)||Cm.test(e)}function oa(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var Im=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Pn(e){if(e.length===0||e.length>Oe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return hm.test(n)?n:null}function sa(e){let t=Pn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return Im.test(n)?n:void 0}function bm(e,t){for(let n of ia(e,t)){let r=sa(n);if(r!==void 0)return r}}function ia(e,t){let n=oa(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(Em.has(u))return[];if(Sm.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||Am(u))){if(ym.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Pn(i)!==null)?o:[]:s===null||Pn(s)===null?[]:[s]}});var aa=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=Dm;var xm=kn(),Kr=Nn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var Om=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Tm=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,km=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Pm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Nm=new Set(["--from","--spec"]),wm=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"]),Mm=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"]),Lm=/^--no-/;function vm(e,t){let n=Pm(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(Nm.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||Mm.has(u)||Lm.test(u))){if(wm.has(u)){i+=1;continue}return null}}return o??s}function Hm(e){if(e.length===0||e.length>Kr.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!Tm.test(r)||!km.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Um(e){let t=(0,Kr.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return Om.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Dm(e){if(e?.kind!=="command"||(0,xm.launchContainsCredentials)(e))return;for(let n of(0,Kr.npxPackageSpecs)(e.command,e.arguments)){let r=Um(n);if(r!==null)return r}let t=vm(e.command,e.arguments);if(t!==null)return Hm(t)??void 0}});var da=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=$m;ve.displayPublisherName=jm;ve.classifyMcpProvenance=Xm;var la=kn(),Gr=Nn();ve.EMPTY_NPM_PUBLISHER="npm:";var ca="npm:",Fm=/^[A-Za-z0-9._-]+$/;function $m(e){return e.startsWith(ca)&&e!==ve.EMPTY_NPM_PUBLISHER&&Fm.test(e.slice(ca.length))}function jm(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function ua(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 Bm(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 zr(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function Km(e){let t=zr(e),n=Bm(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||ua(t)||n!==void 0&&ua(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function Gm(e){let t=zr(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function zm(e){let t=zr(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function fa(e){let t={kind:"url",url:e};if((0,la.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||Km(n.hostname))return{origin:"UNKNOWN"};let r=Gm(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:zm(n)}}catch{return{origin:"UNKNOWN"}}}var pa="mcp-remote";function Wm(e,t){if(e===pa)return t.find(n=>/^https?:\/\//i.test(n))}function Vm(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Jm(e,t,n){let r=Wm(e,t);return r!==void 0?fa(r):e===pa?{origin:"UNKNOWN"}:Vm(e,n)}function Ym(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 Xm(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,la.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return fa(t.url);let r=(0,Gr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Gr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Jm(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Gr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return Ym(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ga=W(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.mcpServerToolSegmentForms=ma;wn.mcpServerNameMatchesToolSegment=qm;function ma(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function qm(e,t){let n=t.toLowerCase();return ma(e).some(r=>r.toLowerCase()===n)}});var _a=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var Zm=/^(?:>|\|)[-+]?$/,Qm=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,eg=e=>{let t=e?.trim()??"";if(!(t.length===0||Zm.test(t)))return t};ye.usableCatalogText=eg;var tg=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=tg;var ng=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return og(n[1],t)};ye.parseFrontmatterField=ng;var rg=e=>e.replace(/^["']|["']$/g,"");function og(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=Qm.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),u=[],l=i[1]?.trim();l&&u.push(l);for(let m of a)u.push(m.trim()===""?"":m.slice(c));for(;u.length>0&&u[u.length-1]==="";)u.pop();let f=s.startsWith(">")?u.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 Dm(e){return Kr(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=Jm;E.installationRootExternalKey=Ym;E.normalizeRepositoryRelativePath=la;E.nativeKeyForSkillPath=Xm;E.nativeKeyForRulePath=qm;E.nativeKeyForCommandPath=Zm;E.serializeComponentIdentity=pa;E.buildComponentReference=eg;E.validateComponentReference=tg;var Fm=$e("node:crypto"),$m=$e("node:path"),jm="cmp1_",Bm=/^cmp1_[A-Za-z0-9_-]{43}$/,Km=["/skills/","/skills-cursor/"],Gm=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,zm=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Wm=[".cursor",".claude",".codex"],Vm={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Jm(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Wm.includes(o));return n||(t.map(o=>Vm[o]).find(o=>o!==void 0)??"unknown")}function Ym(e,t){return`runtime-install:${e}/${t}`}function Tn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function la(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=$m.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return Tn(n,"sourcePath")}function Xm(e){let t=e.replaceAll("\\","/");for(let n of Km){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function fa(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 qm(e){return fa(e,Gm,/\.(mdc|md|rules)$/i)}function Zm(e){return fa(e,zm,/\.(md|mdc|toml)$/i)}function Qm(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function pa(e){let t=[Tn(e.installationRootExternalKey,"installationRootExternalKey"),Tn(e.installableKind,"installableKind"),la(e.sourcePath),Tn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Qm).join("|")}`,"utf8")}function eg(e){let t=(0,Fm.createHash)("sha256").update(pa(e)).digest("base64url");return`${jm}${t}`}function tg(e){return Bm.test(e)}var Re=In();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=xn();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 da=qi();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return da.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return da.resolveMcpPackageIdentity}});var kn=ra();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return kn.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return kn.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return kn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return kn.isNpmRegistryPublisher}});var ma=sa();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return ma.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return ma.mcpServerToolSegmentForms}});var Gr=ia();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Gr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return Gr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return Gr.usableCatalogText}});var Ve=ua();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 Kn=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 Gn=W((gb,wc)=>{"use strict";var Nc=Kn();wc.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&Nc.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&Nc.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 Lc=W((_b,Mc)=>{"use strict";Mc.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Kc=W((hb,Bc)=>{"use strict";var vc=Lc(),nt=(e,t,n)=>{if(vc(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(vc(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 p=jc(e)||jc(t),f={min:e,max:t,a:l,b:u},m=[],g=[];if(p&&(f.isPadded=p,f.maxLen=String(f.max).length),l<0){let S=u<0?Math.abs(u):1;g=Uc(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(m=Uc(l,u,f,r)),f.negatives=g,f.positives=m,f.result=Ah(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 Ah(e,t,n){let r=So(e,t,"-",!1,n)||[],o=So(t,e,"",!1,n)||[],s=So(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function Ih(e,t){let n=1,r=1,o=Dc(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Dc(e,n);for(o=Fc(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=Fc(t+1,r)-1;return s=[...s],s.sort(Oh),s}function bh(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=xh(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+=Th(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function Uc(e,t,n,r){let o=Ih(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=bh(String(i),String(l),r),p="";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+$c(a.count),i=l+1;continue}n.isPadded&&(p=kh(l,n,r)),u.string=p+u.pattern+$c(u.count),s.push(u),i=l+1,a=u}return s}function So(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Hc(t,"string",a)&&s.push(n+a),r&&Hc(t,"string",a)&&s.push(n+a)}return s}function xh(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function Oh(e,t){return e>t?1:t>e?-1:0}function Hc(e,t,n){return e.some(r=>r[t]===n)}function Dc(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Fc(e,t){return e-e%Math.pow(10,t)}function $c(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function Th(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function jc(e){return/^-?(0+)\d/.test(e)}function kh(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={};Bc.exports=nt});var Ro=W((Sb,Xc)=>{"use strict";var Ph=$e("util"),zc=Kc(),Gc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Nh=e=>t=>e===!0?Number(t):String(t),Eo=e=>typeof e=="number"||typeof e=="string"&&e!=="",Bt=e=>Number.isInteger(+e),yo=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},wh=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,Mh=(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},Wn=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},Lh=(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=>Wn(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>Wn(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Wc=(e,t,n,r)=>{if(n)return zc(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},Vc=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return zc(e,t,n)},Jc=(...e)=>new RangeError("Invalid range arguments: "+Ph.inspect(...e)),Yc=(e,t,n)=>{if(n.strictRanges===!0)throw Jc([e,t]);return[]},vh=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Uh=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Jc([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=yo(a)||yo(c)||yo(l),p=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&wh(e,t,r)===!1,m=r.transform||Nh(f);if(r.toRegex&&n===1)return Wc(Wn(e,p),Wn(t,p),!0,r);let g={negatives:[],positives:[]},S=O=>g[O<0?"negatives":"positives"].push(Math.abs(O)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(Mh(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?Lh(g,r,p):Vc(C,null,{wrap:!1,...r}):C},Hh=(e,t,n=1,r={})=>{if(!Bt(e)&&e.length>1||!Bt(t)&&t.length>1)return Yc(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 Wc(c,l,!1,r);let u=[],p=0;for(;a?s>=i:s<=i;)u.push(o(s,p)),s=a?s-n:s+n,p++;return r.toRegex===!0?Vc(u,null,{wrap:!1,options:r}):u},zn=(e,t,n,r={})=>{if(t==null&&Eo(e))return[e];if(!Eo(e)||!Eo(t))return Yc(e,t,r);if(typeof n=="function")return zn(e,t,1,{transform:n});if(Gc(n))return zn(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,Bt(n)?Bt(e)&&Bt(t)?Uh(e,t,n,o):Hh(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Gc(n)?vh(n,o):zn(e,t,1,n)};Xc.exports=zn});var Qc=W((Eb,Zc)=>{"use strict";var Dh=Ro(),qc=Kn(),Fh=(e,t={})=>{let n=(r,o={})=>{let s=qc.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=qc.reduce(r.nodes),p=Dh(...u,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return u.length>1&&p.length>1?`(${p})`:p}if(r.nodes)for(let u of r.nodes)l+=n(u,r);return l};return n(e)};Zc.exports=Fh});var nu=W((yb,tu)=>{"use strict";var $h=Ro(),eu=Gn(),ht=Kn(),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)},jh=(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(),eu(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=$h(...p,t);f.length===0&&(f=eu(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=ht.encloseBrace(o),l=o.queue,u=o;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,l=u.queue;for(let p=0;p<o.nodes.length;p++){let f=o.nodes[p];if(f.type==="comma"&&o.type==="brace"){p===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 ht.flatten(r(e))};tu.exports=jh});var ou=W((Rb,ru)=>{"use strict";ru.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 uu=W((Cb,cu)=>{"use strict";var Bh=Gn(),{MAX_LENGTH:su,CHAR_BACKSLASH:Co,CHAR_BACKTICK:Kh,CHAR_COMMA:Gh,CHAR_DOT:zh,CHAR_LEFT_PARENTHESES:Wh,CHAR_RIGHT_PARENTHESES:Vh,CHAR_LEFT_CURLY_BRACE:Jh,CHAR_RIGHT_CURLY_BRACE:Yh,CHAR_LEFT_SQUARE_BRACKET:iu,CHAR_RIGHT_SQUARE_BRACKET:au,CHAR_DOUBLE_QUOTE:Xh,CHAR_SINGLE_QUOTE:qh,CHAR_NO_BREAK_SPACE:Zh,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Qh}=ou(),eS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(su,n.maxLength):su;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,p=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===Qh||f===Zh)){if(f===Co){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===au){g({type:"text",value:"\\"+f});continue}if(f===iu){c++;let S;for(;u<l&&(S=m());){if(f+=S,S===iu){c++;continue}if(S===Co){f+=m();continue}if(S===au&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===Wh){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===Vh){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===Xh||f===qh||f===Kh){let S=f,C;for(t.keepQuotes!==!0&&(f="");u<l&&(C=m());){if(C===Co){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===Jh){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===Yh){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===Gh&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:Bh(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===zh&&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};cu.exports=eS});var pu=W((Ab,fu)=>{"use strict";var lu=Gn(),tS=Qc(),nS=nu(),rS=uu(),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={})=>rS(e,t);pe.stringify=(e,t={})=>lu(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),tS(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=nS(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);fu.exports=pe});var Kt=W((Ib,hu)=>{"use strict";var oS=$e("path"),ke="\\\\/",du=`[^${ke}]`,sS=0,De="\\.",iS="\\+",aS="\\?",Vn="\\/",cS="(?=.)",mu="[^/]",Ao=`(?:${Vn}|$)`,gu=`(?:^|${Vn})`,Io=`${De}{1,2}${Ao}`,uS=`(?!${De})`,lS=`(?!${gu}${Io})`,fS=`(?!${De}{0,1}${Ao})`,pS=`(?!${Io})`,dS=`[^.${Vn}]`,mS=`${mu}*?`,_u={DOT_LITERAL:De,PLUS_LITERAL:iS,QMARK_LITERAL:aS,SLASH_LITERAL:Vn,ONE_CHAR:cS,QMARK:mu,END_ANCHOR:Ao,DOTS_SLASH:Io,NO_DOT:uS,NO_DOTS:lS,NO_DOT_SLASH:fS,NO_DOTS_SLASH:pS,QMARK_NO_DOT:dS,STAR:mS,START_ANCHOR:gu},gS={..._u,SLASH_LITERAL:`[${ke}]`,QMARK:du,STAR:`${du}*?`,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}]|$)`},_S={__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"};hu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:sS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:_S,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:oS.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?gS:_u}}});var Gt=W(ae=>{"use strict";var hS=$e("path"),SS=process.platform==="win32",{REGEX_BACKSLASH:ES,REGEX_REMOVE_BACKSLASH:yS,REGEX_SPECIAL_CHARS:RS,REGEX_SPECIAL_CHARS_GLOBAL:CS}=Kt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>RS.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(CS,"\\$1");ae.toPosixSlashes=e=>e.replace(ES,"/");ae.removeBackslashes=e=>e.replace(yS,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:SS===!0||hS.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 bu=W((xb,Iu)=>{"use strict";var Su=Gt(),{CHAR_ASTERISK:bo,CHAR_AT:AS,CHAR_BACKWARD_SLASH:zt,CHAR_COMMA:IS,CHAR_DOT:xo,CHAR_EXCLAMATION_MARK:Oo,CHAR_FORWARD_SLASH:Au,CHAR_LEFT_CURLY_BRACE:To,CHAR_LEFT_PARENTHESES:ko,CHAR_LEFT_SQUARE_BRACKET:bS,CHAR_PLUS:xS,CHAR_QUESTION_MARK:Eu,CHAR_RIGHT_CURLY_BRACE:OS,CHAR_RIGHT_PARENTHESES:yu,CHAR_RIGHT_SQUARE_BRACKET:TS}=Kt(),Ru=e=>e===Au||e===zt,Cu=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},kS=(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,p=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,O=!1,x=!1,M=!1,k=!1,K=0,D,b,N={value:"",depth:0,isGlob:!1},v=()=>l>=r,d=()=>c.charCodeAt(l+1),I=()=>(D=b,c.charCodeAt(++l));for(;l<r;){b=I();let se;if(b===zt){O=N.backslashes=!0,b=I(),b===To&&(A=!0);continue}if(A===!0||b===To){for(K++;v()!==!0&&(b=I());){if(b===zt){O=N.backslashes=!0,I();continue}if(b===To){K++;continue}if(A!==!0&&b===xo&&(b=I())===xo){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&b===IS){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===OS&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(b===Au){if(s.push(l),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===xo&&l===u+1){u+=2;continue}p=l+1;continue}if(n.noext!==!0&&(b===xS||b===AS||b===bo||b===Eu||b===Oo)===!0&&d()===ko){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,b===Oo&&l===u&&(M=!0),o===!0){for(;v()!==!0&&(b=I());){if(b===zt){O=N.backslashes=!0,b=I();continue}if(b===yu){g=N.isGlob=!0,k=!0;break}}continue}break}if(b===bo){if(D===bo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===Eu){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===bS){for(;v()!==!0&&(se=I());){if(se===zt){O=N.backslashes=!0,I();continue}if(se===TS){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Oo&&l===u){x=N.negated=!0,u++;continue}if(n.noparen!==!0&&b===ko){if(g=N.isGlob=!0,o===!0){for(;v()!==!0&&(b=I());){if(b===ko){O=N.backslashes=!0,b=I();continue}if(b===yu){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),p-=u),U&&g===!0&&p>0?(U=c.slice(0,p),_=c.slice(p)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&Ru(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=Su.removeBackslashes(_)),U&&O===!0&&(U=Su.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,Ru(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: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,Cu(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,Cu(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};Iu.exports=kS});var Pu=W((Ob,ku)=>{"use strict";var Wt=Kt(),oe=Gt(),{MAX_LENGTH:Jn,POSIX_REGEX_SOURCE:PS,REGEX_NON_SPECIAL_CHARS:NS,REGEX_SPECIAL_CHARS_BACKREF:wS,REPLACEMENTS:xu}=Wt,MS=(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`,Ou=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},LS=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},Tu=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(LS(t))return t.replace(/\\(.)/g,"$1")},vS=e=>{let t=e.map(Tu).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},Po=(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}}}}},US=e=>{let t=0,n=[];for(;t<e.length;){let o=Po(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Ou(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Tu(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("")}]`}*`},HS=e=>{let t=0,n=e.trim(),r=Po(n);for(;r;)t++,n=r.body.trim(),r=Po(n);return t},DS=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Wt.DEFAULT_MAX_EXTGLOB_RECURSION,r=Ou(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||vS(r)))return{risky:!0};for(let o of r){let s=US(o);if(s)return{risky:!0,safeOutput:s};if(HS(o)>n)return{risky:!0}}return{risky:!1}},No=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=xu[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(Jn,n.maxLength):Jn,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=Wt.globChars(c),u=Wt.extglobChars(l),{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:O,QMARK:x,QMARK_NO_DOT:M,STAR:k,START_ANCHOR:K}=l,D=R=>`(${a}(?:(?!${K}${R.dot?S:p}).)*?)`,b=n.dot?"":C,N=n.dot?x:M,v=n.bash===!0?D(n):k;n.capture&&(v=`(${v})`),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},rn=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},Hf=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},on=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=v,d.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&rn(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},sn=(R,J)=>{let y={...u[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;on("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},Df=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=DS(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?")":""),ne;if(R.type==="negate"){let G=v;if(R.inner&&R.inner.length>1&&R.inner.includes("/")&&(G=D(n)),(G!==v||se()||/^\)+$/.test(Ae()))&&(z=R.close=`)$))${G}`),R.inner.includes("*")&&(ne=Ae())&&/^\.[^\\/.]+$/.test(ne)){let Ie=No(ne,{...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(wS,(y,P,z,ne,G,Ie)=>ne==="\\"?(R=!0,y):ne==="?"?P?P+ne+(G?x.repeat(G.length):""):Ie===0?N+(G?x.repeat(G.length):""):x.repeat(z.length):ne==="."?p.repeat(z.length):ne==="*"?P?P+ne+(G?v:""):v: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),ne=_.value.slice(P+2),G=PS[ne];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,rn({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,rn({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){on("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){Df(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 on("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,rn({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){on("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(),ne=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&ne.unshift(z[G].value);P=MS(ne,n),d.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=d.output.slice(0,y.outputIndex),ne=d.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",d.output=z;for(let G of ne)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)!=="?"){sn("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)))){sn("negate",h);continue}if(n.nonegate!==!0&&d.index===0){Hf();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){sn("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=NS.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=v,d.backtrack=!0,d.globstar=!0,le(h);continue}let R=Ae();if(n.noextglob!==!0&&/^\([^?]/.test(R)){sn("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",ne=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"&&!ne&&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:v};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+=O,_.output+=O):(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};No.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(Jn,n.maxLength):Jn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=xu[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=Wt.globChars(s),S=n.dot?p:u,C=n.dot?f:u,A=n.capture?"":"?:",O={negated:!1,prefix:""},x=n.bash===!0?".*?":m;n.capture&&(x=`(${x})`);let M=b=>b.noglobstar===!0?x:`(${A}(?:(?!${g}${b.dot?l: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 v=k(N[1]);return v?v+i+N[2]:void 0}}},K=oe.removePrefix(e,O),D=k(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};ku.exports=No});var wu=W((Tb,Nu)=>{"use strict";var FS=$e("path"),$S=bu(),wo=Pu(),Mo=Gt(),jS=Kt(),BS=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=BS(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=Mo.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,p=!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,p?S:!1):c(u)?(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&&(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?Mo.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=Mo.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(FS.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)=>$S(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=jS;Nu.exports=Q});var Lu=W((kb,Mu)=>{"use strict";Mu.exports=wu()});var $u=W((Pb,Fu)=>{"use strict";var Uu=$e("util"),Hu=pu(),Pe=Lu(),Lo=Gt(),vu=e=>e===""||e==="./",Du=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 p=Pe(String(t[u]),{...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 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: "${Uu.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(vu(e)||vu(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(!Lo.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: "${Uu.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=Lo.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?Lo.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 Hu(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||!Du(e)?[e]:Hu(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=Du;Fu.exports=V});import{existsSync as tp,readFileSync as np}from"node:fs";import{hostname as ws,userInfo as rp}from"node:os";import{createHash as zf,randomBytes as Wf}from"node:crypto";import{existsSync as pr,mkdirSync as Vf,readdirSync as Jf,readFileSync as Yf,renameSync as As,statSync as Os,unlinkSync as Is,writeFileSync as Xf}from"node:fs";import{basename as qf,dirname as bs,join as Ts,relative as Zf}from"node:path";function T(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
-
`)}function Ot(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Tt(e){return zf("sha256").update(e).digest("hex").slice(0,32)}function de(e,t){Vf(bs(e),{recursive:!0});let n=Ts(bs(e),`.${qf(e)}.${process.pid}.${Wf(4).toString("hex")}.tmp`);try{Xf(n,t,"utf8");try{As(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Is(e),As(n,e);return}throw r}}catch(r){try{Is(n)}catch{}throw r}}function an(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function dr(){process.stdout.write('{"continue":true}')}function H(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function mr(){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 cn(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 gr(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(H("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;T(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=H("CURSOR_PROJECT_DIR")??H("CLAUDE_PROJECT_DIR");if(n&&pr(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 _r(e=process.cwd()){return(await gr(e)).root}function me(e,t){try{return JSON.parse(e)}catch{return t}}var xs=new Map;function Qf(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ep(e){let t;try{t=Yf(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(Qf(t))}}catch{return{ok:!1,reason:"parse"}}}function ks(e){let t=xs.get(e);if(t!==void 0)return t;let n=ep(e);return xs.set(e,n),n}function Ps(e){return ks(e)}function re(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 L(e,t){let n=Me(e,t);return typeof n=="string"?n:""}var Be=500;function Ns(e,t=2){if(!pr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Jf(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Ts(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:Zf(e,l),size:Os(l).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function hr(e){return pr(e)?{present:!0,size:Os(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 Ms(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var op=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function sp(e){return op.some(t=>!!Y(t,e))}function ip(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(tp("/.dockerenv")||np("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Ls(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function ap(e,t=process.platform){return Ls(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function cp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function up(e){return e==="linux"}function Y(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return H(e)}function lp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!fp(Y("CURSOR_VERSION",n))}function fp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Sr(e){if(cp(e.sessionId))return!0;let t=e.hostname??ws(),n=e.osUser??Us(e.env);return lp(t,n,e.env)}function pp(e){return lt(Y("CURSOR_AGENT",e.env))?!0:Sr(e)}function dp(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))||Ls(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(!ap(t,n)&&pp(e)&&(lt(Y("CURSOR_AGENT",t))||up(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(sp(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":ip(t)?"container":dp(t)?"interactive":"unknown"}async function vs(){return await ee("systemd-detect-virt",[],1e3)}function Us(e=process.env,t=rp){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 Hs(){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=Us(),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 un(){return ws()}import{createHash as mp}from"node:crypto";import{homedir as gp}from"node:os";import{dirname as OC,join as _p,parse as TC,resolve as kC}from"node:path";var Ds="EV_AI_LAUNCHER_VERSION";var Fs="EV_AI_HOOK_SOURCE",$s="EV_AI_HOOK_FALLBACK_REASON",js="EV_AI_LAUNCHER_SCOPE",Er="EV_AI_LAUNCHER_READY_FD";var Bs="--defer-user-spec",Ks=Buffer.from([1]);var hC=1024*1024,SC=4*1024*1024,EC=64*1024,yC=64*1024,RC=64*1024;var yr=4096,CC=4*1024*1024;var zs="https://hooks.ev-ai.ai",Ws=".claude/ev-ai-runtime-report.json",Vs="config.json",NC=1024*1024,hp=new Set(["localhost","127.0.0.1","[::1]","::1"]),Sp=["claude","cursor","codex"],Js=[Ws,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Rr=/^[A-Za-z0-9._~-]+$/;function fn(e){return e!==void 0&&Sp.includes(e)}function ln(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Cr(e){let t,n,r,o,s;for(let i=0;i<e.length;i++){let a=e[i];if(a!==void 0){if(a==="--runner"){let c=ln(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=ln(e,i);c.value&&(r=c.value),i=c.next;continue}if(a.startsWith("--url=")){r=a.slice(6);continue}if(a==="--token"){let c=ln(e,i);c.value&&(o=c.value),i=c.next;continue}if(a.startsWith("--token=")){o=a.slice(8);continue}if(a==="--base-url"){let c=ln(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}a!==Bs&&!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:fn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function pn(e,t=zs){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Ar(e=gp()){return _p(e,".ev-ai",Vs)}function Ys(e,t){return{...e,...t}}function Gs(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 dn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?hp.has(t.hostname):!1}catch{return!1}}function Ir(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 br(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!dn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Ir(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Rr.test(n))return`org token must match ${Rr.source} (got: ${n})`;if(Gs(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(Gs(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Xs(e){return new URL(e).toString()}function xr(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?pn(n):""}function mn(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 qs(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=pn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=br(n);return r?{problem:r}:{url:Xs(n)}}function Pt(e){if(br(e))return;let t;try{t=new URL(e)}catch{return}let n=Ir(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 _n=2;var gn="ev-ai-agent-hook";function Ep(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Zs(e){let t=Ep(e);return t===gn||t===`${gn}.exe`}var MC=`current/${gn}`,LC=`.ev-ai/agent-hook/${gn}`,Qs=5e3,ei=5e3,Or=3e3;var hn=3e3,ti=1500,ni=4*1024,Tr=256*1024,yp=4*1024,ri=32*1024,kr="1.3.2",vC=`@ev-ai/agent-hook@${kr}`;import{existsSync as wg,mkdirSync as Mg,readdirSync as Lg,readFileSync as vg,unlinkSync as va,writeFileSync as Ug}from"node:fs";import{homedir as Ua}from"node:os";import{join as Xr}from"node:path";import{createHash as ci,randomBytes as Ap}from"node:crypto";import{existsSync as ui,mkdirSync as Pr,readFileSync as li,unlinkSync as fi,writeFileSync as pi}from"node:fs";import{homedir as Nr}from"node:os";import{dirname as Sn,join as wr,resolve as Ip}from"node:path";var Rp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Cp=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]")||Cp.has(n)||r.includes("[bot]")||Rp.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",Op=6e4;function di(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ee(e=Nr()){return wr(e,".ev-ai","agent-hook")}function Tp(e=Nr()){return wr(Ee(e),bp)}function mi(e){return wr(Sn(e),xp)}function gi(){return Ap(8).toString("hex")}function ft(e){return ci("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 _i(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function kp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!_i(t)){T(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function hi(e,t){return e&&_i(e)?e:(e&&T(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),kp(t))}function Pp(e){return/^[0-9a-f]{16}$/.test(e)}function Np(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 wp="cursoragent@cursor.com";function Mp(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===wp?null:t}function Lp(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function vp(e){return Ot(e).replace(/\.git$/i,"").toLowerCase()}async function Up(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?vp(t):e}async function Hp(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 Dp(e,t){let n=Lp(e,t);return n?ft(`cursor_cloud|${n}|${Mp(e)??""}`):null}async function Fp(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Up(n),o=await Hp(n);return ft(`claude_remote|${r}|${o??""}`)}function oi(e,t){let n=hi(e,t);if(n)return n;let r=Np(t);return r||gi()}async function $p(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Ip(e);return ci("sha256").update(n).digest("hex").slice(0,16)}function jp(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 Bp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=jp(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(ui(e))try{return Bp(li(e,"utf8"))}catch{}}function Mr(e){return Ze(e)}function Si(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
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);
|
|
16
|
-
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(
|
|
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 Ii(e,t={}){let n=t.home??Nr(),r=t.env??process.env,o=await $p(e),s=Tp(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=hi(t.overrideId,r),l=a==="cursor_cloud"&&Sr(i)?Dp(r,e):a==="claude_remote"?await Fp(r,e):null,u=Ze(s);if(u){let S=u;if(c&&c===u.installation_id&&u.pinned!==!0&&(S={...u,pinned:!0},ii(s,S)),!!l&&l!==S.installation_id&&!c&&S.pinned!==!0&&Pp(S.installation_id)&&l){let A={installation_id:l,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return ii(s,A),{installationId:l,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??l??oi(void 0,r),f=si(s,ai(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??l??oi(void 0,r),g=si(s,ai(m===p?gi():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 bi,mkdir as Gp,readFile as zp,readdir as Wp,rename as Vp,stat as Jp,rmdir as Yp,unlink as Xp,utimes as qp}from"node:fs/promises";var En=new WeakMap;function Oi(e){if(e&&typeof e=="object"&&"code"in e)return e}function Lr(e){return Oi(e)?.code==="ENOENT"}function Ti(e){return Oi(e)?.code==="EEXIST"}async function ki(e,t){try{return await e.readdir(t)}catch(n){if(Lr(n))return[];throw n}}function Pi(){return{async open(e,t){let n=await bi(e,t),r={path:e};return En.set(r,n),r},async write(e,t){let n=xi(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await xi(e).sync()},async close(e){let t=En.get(e);En.delete(e),t&&await t.close()},rename:Vp,async readdir(e){return Wp(e)},readFile:zp,async stat(e){let t=await Jp(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Gp(e,t)},unlink:Xp,rmdir:Yp,utimes:qp,async fsyncDir(e){if(process.platform==="win32")return;let t=await bi(e,"r");try{await t.sync()}finally{await t.close()}}}}function xi(e){let t=En.get(e);if(!t)throw new Error("closed");return t}import{existsSync as md}from"node:fs";import{existsSync as od}from"node:fs";import{homedir as Mi}from"node:os";import{join as sd}from"node:path";import{existsSync as Zp,readdirSync as Ni}from"node:fs";import{homedir as yn}from"node:os";import{join as ie}from"node:path";function Qp(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 ed(e=process.platform){let t=Qp(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!Zp(r))return n;let o=Ni(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function vr(e=process.platform,t=yn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:ed(e)}}function td(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 nd(e=process.platform,t=yn()){let n=[ie(td(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of Ni(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function rd(e=process.platform,t=yn()){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 Rn(e,t=process.platform,n=yn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=vr(t,n);return[r,...o]}case"cursor":return nd(t,n);default:return rd(t,n)}}function Li(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var id={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 wi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function ad(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:wi(n.mcpJson,t.mcpJson),mcpToml:wi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function vi(e){return Object.fromEntries(Object.entries(id).map(([t,n])=>[t,ad(n,n[e])]))}var pt=vi("homeOnly"),Ge=vi("projectOnly");function cd(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function ud(e,t){return cd(e).some(n=>od(sd(t,n)))}function Ui(e,t){for(let n of e)if(ud(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 ld(e,t=Mi(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Rn(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function Hi(e=Mi(),t=process.platform){return ld(Object.values(pt),e,t)}import{existsSync as fd}from"node:fs";import{resolve as Ur}from"node:path";function ge(e){return Ur(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 Cn(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 pd=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Nt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!pd.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 dd(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function xe(e,t,n,r=fd){for(let o of e)for(let s of t){let i=ge(Ur(o,s)),a=Ur(o,s,n).replaceAll("\\","/");if(dd(i,a)&&r(a))return a}return null}var Fi=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,$i=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,gd=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Di=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"]),_d=/^[a-z][a-z0-9-]{1,63}$/,hd=[".cursor/skills",".claude/skills",".agents/skills"],Sd=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],Ed=Qe(hd,ze(Object.values(Ge)).skills),yd=Qe(Sd,ze(Object.values(pt)).skills),Rd=new Set(["read","read_file","view"]),Cd=new Set(["bash","shell","zsh"]);function Hr(e){let t=e.replace(/\\/g,"/");return Fi.exec(t)?.[1]??null}function Ad(e){let t=e.replace(/\\/g,"/"),r=$i.exec(t)?.[1];return r?r.toLowerCase():null}function Id(e){return Hr(e)??Ad(e)}function bd(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 An(e){return typeof e=="string"?An(me(e,null)):!e||typeof e!="object"?null:bd(e)}function ji(e){if(typeof e=="string")return ji(me(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function Dr(e){let t=ji(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function xd(e){let t=e.replace(/\\/g,"/"),n=Fi.exec(t);if(n?.[1])return n[1];let o=$i.exec(t)?.[1];return o?o.toLowerCase():null}function Od(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Fr(e){let t=An(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function wt(e,t,n){let r=Od(e).toLowerCase();if(Rd.has(r)){let o=Fr(e);return o?t(o):null}if(Cd.has(r)){let o=Dr(e);return o?n(o):null}return null}function Bi(e){return wt(e,Id,xd)}function Td(e){let t=new Set,n=[];for(let r of e.matchAll(gd)){let o=r[1]?.toLowerCase();!o||t.has(o)||kd(o)||(t.add(o),n.push(o))}return n}function kd(e){let t=e.split("/")[0];return Di.has(e)||t!==void 0&&Di.has(t)}function Ki(e){let t=e.skillId.toLowerCase();if(!_d.test(t))return null;let n=e.exists??md,r=`${t}/SKILL.md`,o=xe(dt(e.launchCwd,e.gitRoot),Ed,r,n);return o!==null?o:e.home?xe([ge(e.home)],yd,r,n):null}function Pd(e){return qe(e.prompt)}function Gi(e){let t=L(e,"command_name");if(t){let r=L(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Pd(e);return n?Td(n):[]}var zr=je(Je(),1);import{existsSync as rg}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Lt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function ng(e){if(!e)return"";let t=Ot(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Lt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Lt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Lt(o[1]):Lt(t)}async function Pn(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?Ot(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 ga(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=di(n,e.scope_path,i);if(s){let g=Ri(s,c);if(g)return g}let l=o??await Pn(r),u=l?.remote?ng(l.remote):"";if(u||(u=Lt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let p=e.scope_path??"",f=p?`${p}/`:"",m=`${u}:${f}${a}`;return s&&Ci(s,c,m),m}var og=[".cursor/rules",".claude/rules",".codex/rules"],sg=ze(Object.values(Ge)).rules;function ig(e){return Qe(Cn(e?tt[e]:void 0,og),sg)}var ag=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function _a(e){let t=Nt(e.relativePath);if(!t)return null;let n=e.exists??rg,r=dt(e.launchCwd,e.gitRoot),o=ig(e.runnerPlatform),s=xe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=xe(r,["."],t,n);if(i!==null)return i}return e.home?xe([ge(e.home)],o,t,n):null}function cg(e){let t=e.replace(/\\/g,"/"),r=ag.exec(t)?.[1];return r?(0,zr.nativeKeyForRulePath)(r):null}function ha(e){return wt(e,zr.nativeKeyForRulePath,cg)}function Sa(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function Ea(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=Nt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Wr=je(Je(),1);import{existsSync as ug}from"node:fs";var lg=[".cursor/commands",".claude/commands",".codex/prompts"],fg=ze(Object.values(Ge)).commands;function pg(e){return Qe(Cn(e?tt[e]:void 0,lg),fg)}var dg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function ya(e){let t=Nt(e.commandId);if(!t)return null;let n=e.exists??ug,r=`${t}.md`,o=pg(e.runnerPlatform),s=xe(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?xe([ge(e.home)],o,r,n):null}function mg(e){let t=e.replace(/\\/g,"/"),r=dg.exec(t)?.[1];return r?(0,Wr.nativeKeyForCommandPath)(r):null}function Ra(e){return wt(e,Wr.nativeKeyForCommandPath,mg)}var Nn=je(Je(),1);function Vr(e){let t=qs(e);if(t.problem){T(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function Ca(e,t){if(L(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function gg(){return!!(H("CURSOR_VERSION")??H("CURSOR_PROJECT_DIR"))}function Aa(e,t,n){return e!=="claude"&&e!=="codex"?!1:Ca(t,n)?!0:gg()}var _g=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function vt(e,t,n,r){return Ca(e,t)?"cursor":fn(r)?r:fn(n)?n:L(e,"turn_id")?"codex":L(e,"session_id")||_g.has(t.toLowerCase())?"claude":"unknown"}function wn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function hg(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 Ia(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function ba(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function xa(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Ut(e){return L(e,"session_id")||L(e,"conversation_id")}function Jr(e){return L(e,"prompt.id")||L(e,"prompt_id")||L(e,"generation_id")||L(e,"turn_id")}function Yr(e){return L(e,"hook_event_name")||L(e,"event")}function Oa(e,t,n){let r=Ut(e),o=Jr(e),s=Yr(e),i=L(e,"source"),a=vt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var Sg=["session_start","session_end","tool_invoked","skill_invoked"];function Eg(e){return Sg.includes(e)}function Ta(e,t){return e&&Eg(e)?e:hg(t.toLowerCase())}var yg={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Mn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function ka(e,t=""){let n=L(e,"tool_name")||L(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Mn(n)&&(n=`MCP:${n}`):n=yg[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||L(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Bi(a);let c=ha(a),l=Ra(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var Rg=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Pa(e){for(let t of["subagent_type","agent_type"]){let n=L(e,t);if(n&&Rg.test(n))return n}return null}function Na(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 Cg="error",Ag="interrupted",Ig="permission_denied",bg=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Ht(e){return bg.test(e)?e:null}function xg(e){for(let t of["failure_type","error_type"]){let n=Ht(L(e,t));if(n)return n}return null}function wa(e,t){return Me(e,"is_interrupt")===!0?Ag:t.toLowerCase()==="permissiondenied"?Ig:xg(e)??Cg}function Ma(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function Og(e,t){return Ma(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function Tg(e,t){return Ma(t,n=>(0,Nn.mcpServerNameMatchesToolSegment)(n,e))}function kg(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Nn.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:Tg(o[1],t)??o[1],mcpTool:o[2]}}function Pg(e,t){if(/^mcp__/i.test(e))return kg(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:Og(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function Ng(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function La(e,t=[],n=""){let r=e?Pg(e,t):{mcpServer:null,mcpTool:null},o=Ht(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Mn(e)&&(s=e),s&&(s=Ng(s,o)),{mcpServer:o,mcpTool:s}}var Ha=3e4,Hg="claims",Dg=!0,Fg=100,$g=new Set(["sessionstart","sessionend","stopfailure"]),jg=["tool_name","tool","command","file_path","url"];function Bg(e=Ua()){return Xr(Ee(e),Hg)}function Da(e,t){try{let n=vg(e,"utf8").split(`
|
|
20
|
-
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function
|
|
21
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(
|
|
22
|
-
|
|
23
|
-
`)}catch(n){let r=n instanceof Error?
|
|
9
|
+
`):u.join(`
|
|
10
|
+
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var Ea=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=sg;Z.capComponentTextBytes=Sa;Z.prepareComponentInspectionText=ig;Z.redactComponentSource=Wr;Z.componentSourceContainsRedactableSecret=dg;Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function sg(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 Sa(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 Sa(Wr(e),Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var ag=[/\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],cg=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,ug=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,lg=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,fg=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,ha=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function pg(e){let t=e.replace(ug,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(lg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(cg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of ag)t=t.replace(n,Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function Wr(e){if(e.length===0)return e;let t=e.split(`
|
|
11
|
+
`),n=!1;return t.map(o=>n?ha.test(o)?(n=!1,o):o.trim().length===0?o:Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:fg.test(o)&&!ha.test(o)?(n=!0,o):pg(o)).join(`
|
|
12
|
+
`)}function dg(e){return Wr(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=Ag;E.installationRootExternalKey=Ig;E.normalizeRepositoryRelativePath=ya;E.nativeKeyForSkillPath=bg;E.nativeKeyForRulePath=xg;E.nativeKeyForCommandPath=Og;E.serializeComponentIdentity=Ca;E.buildComponentReference=kg;E.validateComponentReference=Pg;var mg=$e("node:crypto"),gg=$e("node:path"),_g="cmp1_",hg=/^cmp1_[A-Za-z0-9_-]{43}$/,Sg=["/skills/","/skills-cursor/"],Eg=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,yg=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Rg=[".cursor",".claude",".codex"],Cg={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Ag(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Rg.includes(o));return n||(t.map(o=>Cg[o]).find(o=>o!==void 0)??"unknown")}function Ig(e,t){return`runtime-install:${e}/${t}`}function Mn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function ya(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=gg.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return Mn(n,"sourcePath")}function bg(e){let t=e.replaceAll("\\","/");for(let n of Sg){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Ra(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 xg(e){return Ra(e,Eg,/\.(mdc|md|rules)$/i)}function Og(e){return Ra(e,yg,/\.(md|mdc|toml)$/i)}function Tg(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Ca(e){let t=[Mn(e.installationRootExternalKey,"installationRootExternalKey"),Mn(e.installableKind,"installableKind"),ya(e.sourcePath),Mn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Tg).join("|")}`,"utf8")}function kg(e){let t=(0,mg.createHash)("sha256").update(Ca(e)).digest("base64url");return`${_g}${t}`}function Pg(e){return hg.test(e)}var Re=kn();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=Nn();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 Aa=aa();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return Aa.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return Aa.resolveMcpPackageIdentity}});var Ln=da();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return Ln.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return Ln.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Ln.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Ln.isNpmRegistryPublisher}});var Ia=ga();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return Ia.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return Ia.mcpServerToolSegmentForms}});var Vr=_a();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Vr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return Vr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return Vr.usableCatalogText}});var Ve=Ea();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 Jn=W(Se=>{"use strict";Se.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;Se.find=(e,t)=>e.nodes.find(n=>n.type===t);Se.exceedsLimit=(e,t,n=1,r)=>r===!1||!Se.isInteger(e)||!Se.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;Se.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)};Se.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;Se.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;Se.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;Se.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);Se.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 Yn=W((ux,su)=>{"use strict";var ou=Jn();su.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&ou.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&ou.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 au=W((lx,iu)=>{"use strict";iu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var _u=W((fx,gu)=>{"use strict";var cu=au(),nt=(e,t,n)=>{if(cu(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(cu(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=mu(e)||mu(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=uu(S,Math.abs(u),f,r),u=f.a=0}return l>=0&&(m=uu(u,l,f,r)),f.negatives=g,f.positives=m,f.result=cS(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 cS(e,t,n){let r=Oo(e,t,"-",!1,n)||[],o=Oo(t,e,"",!1,n)||[],s=Oo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function uS(e,t){let n=1,r=1,o=fu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=fu(e,n);for(o=pu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=pu(t+1,r)-1;return s=[...s],s.sort(pS),s}function lS(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=fS(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+=dS(c,u,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function uu(e,t,n,r){let o=uS(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let u=o[c],l=lS(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+du(a.count),i=u+1;continue}n.isPadded&&(p=mS(u,n,r)),l.string=p+l.pattern+du(l.count),s.push(l),i=u+1,a=l}return s}function Oo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!lu(t,"string",a)&&s.push(n+a),r&&lu(t,"string",a)&&s.push(n+a)}return s}function fS(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function pS(e,t){return e>t?1:t>e?-1:0}function lu(e,t,n){return e.some(r=>r[t]===n)}function fu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function pu(e,t){return e-e%Math.pow(10,t)}function du(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function dS(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function mu(e){return/^-?(0+)\d/.test(e)}function mS(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={};gu.exports=nt});var Po=W((px,Au)=>{"use strict";var gS=$e("util"),Su=_u(),hu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),_S=e=>t=>e===!0?Number(t):String(t),To=e=>typeof e=="number"||typeof e=="string"&&e!=="",zt=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},hS=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,SS=(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},qn=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},ES=(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=>qn(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>qn(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Eu=(e,t,n,r)=>{if(n)return Su(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},yu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Su(e,t,n)},Ru=(...e)=>new RangeError("Invalid range arguments: "+gS.inspect(...e)),Cu=(e,t,n)=>{if(n.strictRanges===!0)throw Ru([e,t]);return[]},yS=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},RS=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Ru([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=ko(a)||ko(c)||ko(u),p=l?Math.max(a.length,c.length,u.length):0,f=l===!1&&hS(e,t,r)===!1,m=r.transform||_S(f);if(r.toRegex&&n===1)return Eu(qn(e,p),qn(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(SS(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?ES(g,r,p):yu(C,null,{wrap:!1,...r}):C},CS=(e,t,n=1,r={})=>{if(!zt(e)&&e.length>1||!zt(t)&&t.length>1)return Cu(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 Eu(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?yu(l,null,{wrap:!1,options:r}):l},Xn=(e,t,n,r={})=>{if(t==null&&To(e))return[e];if(!To(e)||!To(t))return Cu(e,t,r);if(typeof n=="function")return Xn(e,t,1,{transform:n});if(hu(n))return Xn(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,zt(n)?zt(e)&&zt(t)?RS(e,t,n,o):CS(e,t,Math.max(Math.abs(n),1),o):n!=null&&!hu(n)?yS(n,o):Xn(e,t,1,n)};Au.exports=Xn});var xu=W((dx,bu)=>{"use strict";var AS=Po(),Iu=Jn(),IS=(e,t={})=>{let n=(r,o={})=>{let s=Iu.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=Iu.reduce(r.nodes),p=AS(...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)};bu.exports=IS});var ku=W((mx,Tu)=>{"use strict";var bS=Po(),Ou=Yn(),ht=Jn(),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)},xS=(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(),Ou(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=bS(...p,t);f.length===0&&(f=Ou(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))};Tu.exports=xS});var Nu=W((gx,Pu)=>{"use strict";Pu.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 Hu=W((_x,vu)=>{"use strict";var OS=Yn(),{MAX_LENGTH:wu,CHAR_BACKSLASH:No,CHAR_BACKTICK:TS,CHAR_COMMA:kS,CHAR_DOT:PS,CHAR_LEFT_PARENTHESES:NS,CHAR_RIGHT_PARENTHESES:wS,CHAR_LEFT_CURLY_BRACE:MS,CHAR_RIGHT_CURLY_BRACE:LS,CHAR_LEFT_SQUARE_BRACKET:Mu,CHAR_RIGHT_SQUARE_BRACKET:Lu,CHAR_DOUBLE_QUOTE:vS,CHAR_SINGLE_QUOTE:HS,CHAR_NO_BREAK_SPACE:US,CHAR_ZERO_WIDTH_NOBREAK_SPACE:DS}=Nu(),FS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(wu,n.maxLength):wu;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===DS||f===US)){if(f===No){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===Lu){g({type:"text",value:"\\"+f});continue}if(f===Mu){c++;let S;for(;l<u&&(S=m());){if(f+=S,S===Mu){c++;continue}if(S===No){f+=m();continue}if(S===Lu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===NS){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===wS){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===vS||f===HS||f===TS){let S=f,C;for(t.keepQuotes!==!0&&(f="");l<u&&(C=m());){if(C===No){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===MS){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===LS){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===kS&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:OS(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===PS&&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};vu.exports=FS});var Fu=W((hx,Du)=>{"use strict";var Uu=Yn(),$S=xu(),jS=ku(),BS=Hu(),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={})=>BS(e,t);de.stringify=(e,t={})=>Uu(typeof e=="string"?de.parse(e,t):e,t);de.compile=(e,t={})=>(typeof e=="string"&&(e=de.parse(e,t)),$S(e,t));de.expand=(e,t={})=>{typeof e=="string"&&(e=de.parse(e,t));let n=jS(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);Du.exports=de});var Wt=W((Sx,Gu)=>{"use strict";var KS=$e("path"),ke="\\\\/",$u=`[^${ke}]`,GS=0,De="\\.",zS="\\+",WS="\\?",Zn="\\/",VS="(?=.)",ju="[^/]",wo=`(?:${Zn}|$)`,Bu=`(?:^|${Zn})`,Mo=`${De}{1,2}${wo}`,JS=`(?!${De})`,YS=`(?!${Bu}${Mo})`,XS=`(?!${De}{0,1}${wo})`,qS=`(?!${Mo})`,ZS=`[^.${Zn}]`,QS=`${ju}*?`,Ku={DOT_LITERAL:De,PLUS_LITERAL:zS,QMARK_LITERAL:WS,SLASH_LITERAL:Zn,ONE_CHAR:VS,QMARK:ju,END_ANCHOR:wo,DOTS_SLASH:Mo,NO_DOT:JS,NO_DOTS:YS,NO_DOT_SLASH:XS,NO_DOTS_SLASH:qS,QMARK_NO_DOT:ZS,STAR:QS,START_ANCHOR:Bu},eE={...Ku,SLASH_LITERAL:`[${ke}]`,QMARK:$u,STAR:`${$u}*?`,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}]|$)`},tE={__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"};Gu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:GS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:tE,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:KS.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?eE:Ku}}});var Vt=W(ae=>{"use strict";var nE=$e("path"),rE=process.platform==="win32",{REGEX_BACKSLASH:oE,REGEX_REMOVE_BACKSLASH:sE,REGEX_SPECIAL_CHARS:iE,REGEX_SPECIAL_CHARS_GLOBAL:aE}=Wt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>iE.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(aE,"\\$1");ae.toPosixSlashes=e=>e.replace(oE,"/");ae.removeBackslashes=e=>e.replace(sE,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:rE===!0||nE.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 Zu=W((yx,qu)=>{"use strict";var zu=Vt(),{CHAR_ASTERISK:Lo,CHAR_AT:cE,CHAR_BACKWARD_SLASH:Jt,CHAR_COMMA:uE,CHAR_DOT:vo,CHAR_EXCLAMATION_MARK:Ho,CHAR_FORWARD_SLASH:Xu,CHAR_LEFT_CURLY_BRACE:Uo,CHAR_LEFT_PARENTHESES:Do,CHAR_LEFT_SQUARE_BRACKET:lE,CHAR_PLUS:fE,CHAR_QUESTION_MARK:Wu,CHAR_RIGHT_CURLY_BRACE:pE,CHAR_RIGHT_PARENTHESES:Vu,CHAR_RIGHT_SQUARE_BRACKET:dE}=Wt(),Ju=e=>e===Xu||e===Jt,Yu=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},mE=(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===Jt){T=N.backslashes=!0,b=I(),b===Uo&&(A=!0);continue}if(A===!0||b===Uo){for(K++;H()!==!0&&(b=I());){if(b===Jt){T=N.backslashes=!0,I();continue}if(b===Uo){K++;continue}if(A!==!0&&b===vo&&(b=I())===vo){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&b===uE){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===pE&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(b===Xu){if(s.push(u),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===vo&&u===l+1){l+=2;continue}p=u+1;continue}if(n.noext!==!0&&(b===fE||b===cE||b===Lo||b===Wu||b===Ho)===!0&&d()===Do){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,b===Ho&&u===l&&(M=!0),o===!0){for(;H()!==!0&&(b=I());){if(b===Jt){T=N.backslashes=!0,b=I();continue}if(b===Vu){g=N.isGlob=!0,k=!0;break}}continue}break}if(b===Lo){if(D===Lo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===Wu){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===lE){for(;H()!==!0&&(se=I());){if(se===Jt){T=N.backslashes=!0,I();continue}if(se===dE){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Ho&&u===l){x=N.negated=!0,l++;continue}if(n.noparen!==!0&&b===Do){if(g=N.isGlob=!0,o===!0){for(;H()!==!0&&(b=I());){if(b===Do){T=N.backslashes=!0,b=I();continue}if(b===Vu){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&&Ju(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=zu.removeBackslashes(_)),U&&T===!0&&(U=zu.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,Ju(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,Yu(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,Yu(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};qu.exports=mE});var rl=W((Rx,nl)=>{"use strict";var Yt=Wt(),oe=Vt(),{MAX_LENGTH:Qn,POSIX_REGEX_SOURCE:gE,REGEX_NON_SPECIAL_CHARS:_E,REGEX_SPECIAL_CHARS_BACKREF:hE,REPLACEMENTS:Qu}=Yt,SE=(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`,el=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},EE=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},tl=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(EE(t))return t.replace(/\\(.)/g,"$1")},yE=e=>{let t=e.map(tl).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},Fo=(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}}}}},RE=e=>{let t=0,n=[];for(;t<e.length;){let o=Fo(e.slice(t),!1);if(!o||o.type!=="*")return;let s=el(o.body).map(a=>a.trim());if(s.length!==1)return;let i=tl(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("")}]`}*`},CE=e=>{let t=0,n=e.trim(),r=Fo(n);for(;r;)t++,n=r.body.trim(),r=Fo(n);return t},AE=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Yt.DEFAULT_MAX_EXTGLOB_RECURSION,r=el(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||yE(r)))return{risky:!0};for(let o of r){let s=RE(o);if(s)return{risky:!0,safeOutput:s};if(CE(o)>n)return{risky:!0}}return{risky:!1}},$o=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Qu[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(Qn,n.maxLength):Qn,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=Yt.globChars(c),l=Yt.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},an=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},pp=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},cn=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)&&an(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},un=(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;cn("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},dp=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=AE(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=$o(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(hE,(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=gE[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,an({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,an({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){cn("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){dp(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 cn("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,an({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){cn("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=SE(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)!=="?"){un("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)))){un("negate",h);continue}if(n.nonegate!==!0&&d.index===0){pp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){un("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=_E.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)){un("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};$o.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(Qn,n.maxLength):Qn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=Qu[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}=Yt.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};nl.exports=$o});var sl=W((Cx,ol)=>{"use strict";var IE=$e("path"),bE=Zu(),jo=rl(),Bo=Vt(),xE=Wt(),OE=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=OE(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=Bo.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?Bo.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=Bo.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(IE.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)):jo(e,{...t,fastpaths:!1});Q.scan=(e,t)=>bE(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=jo.fastpaths(e,t)),o.output||(o=jo(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=xE;ol.exports=Q});var al=W((Ax,il)=>{"use strict";il.exports=sl()});var dl=W((Ix,pl)=>{"use strict";var ul=$e("util"),ll=Fu(),Pe=al(),Ko=Vt(),cl=e=>e===""||e==="./",fl=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: "${ul.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(cl(e)||cl(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(!Ko.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: "${ul.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=Ko.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?Ko.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 ll(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||!fl(e)?[e]:ll(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=fl;pl.exports=V});import{existsSync as kp,readFileSync as Pp}from"node:fs";import{hostname as js,userInfo as Np}from"node:os";import{createHash as yp,randomBytes as Rp}from"node:crypto";import{existsSync as hr,mkdirSync as Cp,readdirSync as Ap,readFileSync as Ip,renameSync as ws,statSync as Hs,unlinkSync as Ms,writeFileSync as bp}from"node:fs";import{basename as xp,dirname as Ls,join as Us,relative as Op}from"node:path";function O(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
+
`)}function Ot(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Tt(e){return yp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){Cp(Ls(e),{recursive:!0});let n=Us(Ls(e),`.${xp(e)}.${process.pid}.${Rp(4).toString("hex")}.tmp`);try{bp(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"){Ms(e),ws(n,e);return}throw r}}catch(r){try{Ms(n)}catch{}throw r}}function ln(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Sr(){process.stdout.write('{"continue":true}')}function L(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Er(){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 fn(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 Ee(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 Ee(e,t,n,r);return o.ok?o.stdout:""}async function yr(e=process.cwd()){let t=await Ee("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&&hr(n)){let r=await Ee("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 Rr(e=process.cwd()){return(await yr(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var vs=new Map;function pn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Tp(e){let t;try{t=Ip(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(pn(t))}}catch{return{ok:!1,reason:"parse"}}}function Ds(e){let t=vs.get(e);if(t!==void 0)return t;let n=Tp(e);return vs.set(e,n),n}function Fs(e){return Ds(e)}function te(e,t){let n=Ds(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 $s(e,t=2){if(!hr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Ap(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=Us(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:Op(e,u),size:Hs(u).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Cr(e){return hr(e)?{present:!0,size:Hs(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 Bs(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var wp=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Mp(e){return wp.some(t=>!!Y(t,e))}function Lp(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(kp("/.dockerenv")||Pp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Ks(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function vp(e,t=process.platform){return Ks(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Hp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Up(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 Dp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Fp(Y("CURSOR_VERSION",n))}function Fp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Ar(e){if(Hp(e.sessionId))return!0;let t=e.hostname??js(),n=e.osUser??zs(e.env);return Dp(t,n,e.env)}function $p(e){return lt(Y("CURSOR_AGENT",e.env))?!0:Ar(e)}function jp(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))||Ks(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(!vp(t,n)&&$p(e)&&(lt(Y("CURSOR_AGENT",t))||Up(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(Mp(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Lp(t)?"container":jp(t)?"interactive":"unknown"}async function Gs(){return await ee("systemd-detect-virt",[],1e3)}function zs(e=process.env,t=Np){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 Ws(){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=zs(),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 dn(){return js()}import{createHash as Bp}from"node:crypto";import{homedir as Kp}from"node:os";import{dirname as pA,join as Gp,parse as dA,resolve as mA}from"node:path";var Vs="EV_AI_LAUNCHER_VERSION";var Js="EV_AI_HOOK_SOURCE",Ys="EV_AI_HOOK_FALLBACK_REASON",Xs="EV_AI_LAUNCHER_SCOPE",Ir="EV_AI_LAUNCHER_READY_FD";var qs="--defer-user-spec",mn="--cap",Zs=Buffer.from([1]);var nA=1024*1024,rA=4*1024*1024,oA=64*1024,sA=64*1024,iA=64*1024;var br=4096,aA=4*1024*1024;var ti="https://hooks.ev-ai.ai",ni=".claude/ev-ai-runtime-report.json",ri="config.json",zp="max_concurrent_hooks",hA=1024*1024,Wp=new Set(["localhost","127.0.0.1","[::1]","::1"]),Vp=["claude","cursor","codex"],oi=[ni,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],xr=/^[A-Za-z0-9._~-]+$/;function gn(e){return e!==void 0&&Vp.includes(e)}function si(e){if(!e||typeof e!="object")return;let t=e[zp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function Qs(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 Or(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===mn){let u=Pt(e,a);i=Qs(u.value)??i,a=u.next;continue}if(c.startsWith(`${mn}=`)){i=Qs(c.slice(mn.length+1))??i;continue}c!==qs&&!c.startsWith("-")&&n===void 0&&(n=c)}}return{runner:gn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{}}}function _n(e,t=ti){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Nt(e=Kp()){return Gp(e,".ev-ai",ri)}function ii(e,t){return{...e,...t}}function ei(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 hn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Wp.has(t.hostname):!1}catch{return!1}}function Tr(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 kr(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!hn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Tr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!xr.test(n))return`org token must match ${xr.source} (got: ${n})`;if(ei(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(ei(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function ai(e){return new URL(e).toString()}function Pr(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?_n(n):""}function Sn(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 ci(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=_n(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=kr(n);return r?{problem:r}:{url:ai(n)}}function wt(e){if(kr(e))return;let t;try{t=new URL(e)}catch{return}let n=Tr(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 Bp("sha256").update(i).digest("hex").slice(0,32)}var yn=2;var En="ev-ai-agent-hook";function Jp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function ui(e){let t=Jp(e);return t===En||t===`${En}.exe`}var EA=`current/${En}`,yA=`.ev-ai/agent-hook/${En}`,li=5e3,fi=5e3,Nr=3e3;var Rn=3e3,pi=1500,di=4*1024,wr=256*1024,Yp=4*1024,mi=32*1024,Mr="1.3.3",RA=`@ev-ai/agent-hook@${Mr}`;import{existsSync as a_,mkdirSync as c_,readdirSync as u_,readFileSync as l_,unlinkSync as Ga,writeFileSync as f_}from"node:fs";import{homedir as za}from"node:os";import{join as eo}from"node:path";import{createHash as Ei,randomBytes as Zp}from"node:crypto";import{existsSync as yi,mkdirSync as Lr,readFileSync as Ri,unlinkSync as Ci,writeFileSync as Ai}from"node:fs";import{homedir as vr}from"node:os";import{dirname as Cn,join as Hr,resolve as Qp}from"node:path";var Xp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),qp=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]")||qp.has(n)||r.includes("[bot]")||Xp.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 ed="installation.json",td="cloud-bootstrap.lock",nd=6e4;function Ii(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function pe(e=vr()){return Hr(e,".ev-ai","agent-hook")}function rd(e=vr()){return Hr(pe(e),ed)}function bi(e){return Hr(Cn(e),td)}function xi(){return Zp(8).toString("hex")}function ft(e){return Ei("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 Oi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function od(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Oi(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 Ti(e,t){return e&&Oi(e)?e:(e&&O(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),od(t))}function sd(e){return/^[0-9a-f]{16}$/.test(e)}function id(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 ad="cursoragent@cursor.com";function cd(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===ad?null:t}function ud(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function ld(e){return Ot(e).replace(/\.git$/i,"").toLowerCase()}async function fd(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?ld(t):e}async function pd(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 dd(e,t){let n=ud(e,t);return n?ft(`cursor_cloud|${n}|${cd(e)??""}`):null}async function md(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await fd(n),o=await pd(n);return ft(`claude_remote|${r}|${o??""}`)}function gi(e,t){let n=Ti(e,t);if(n)return n;let r=id(t);return r||xi()}async function gd(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Qp(e);return Ei("sha256").update(n).digest("hex").slice(0,16)}function _d(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 hd(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=_d(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(yi(e))try{return hd(Ri(e,"utf8"))}catch{}}function Ur(e){return Ze(e)}function ki(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{me(e,`${JSON.stringify(o,null,2)}
|
|
15
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: operator identity cache write failed open: ${i}`)}}function Pi(e,t=Date.now()){if(!e)return!0;if(Ze(e)?.operator_identity_hash)return!1;let n=bi(e);try{if(yi(n)){let r=Number.NaN;try{r=Number(Ri(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<nd)return!1;try{Ci(n)}catch{}}}catch{}try{return Lr(Cn(n),{recursive:!0}),Ai(n,`${t}
|
|
16
|
+
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Li(r))return!1;let o=r instanceof Error?r.message:String(r);return O(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function Ni(e){if(e)try{Ci(bi(e))}catch{}}function wi(e,t){let r=Ze(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function Mi(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{me(e,`${JSON.stringify(o,null,2)}
|
|
17
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: platform_agent_id cache write failed open: ${i}`)}}function Li(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Sd(e,t){Lr(Cn(e),{recursive:!0}),Ai(e,`${JSON.stringify(t,null,2)}
|
|
18
|
+
`,{encoding:"utf8",flag:"wx"})}function _i(e,t){try{return Sd(e,t),t}catch(n){if(!Li(n))throw n;return Ze(e)}}function hi(e,t){Lr(Cn(e),{recursive:!0}),me(e,`${JSON.stringify(t,null,2)}
|
|
19
|
+
`)}function Si(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function vi(e,t={}){let n=t.home??vr(),r=t.env??process.env,o=await gd(e),s=rd(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=Ti(t.overrideId,r),u=a==="cursor_cloud"&&Ar(i)?dd(r,e):a==="claude_remote"?await md(r,e):null,l=Ze(s);if(l){let S=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(S={...l,pinned:!0},hi(s,S)),!!u&&u!==S.installation_id&&!c&&S.pinned!==!0&&sd(S.installation_id)&&u){let A={installation_id:u,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return hi(s,A),{installationId:u,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??u??gi(void 0,r),f=_i(s,Si(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??u??gi(void 0,r),g=_i(s,Si(m===p?xi():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 Hi,mkdir as Ed,readFile as yd,readdir as Rd,rename as Cd,stat as Ad,rmdir as Id,unlink as bd,utimes as xd}from"node:fs/promises";var An=new WeakMap;function Di(e){if(e&&typeof e=="object"&&"code"in e)return e}function Mt(e){return Di(e)?.code==="ENOENT"}function In(e){return Di(e)?.code==="EEXIST"}async function Fi(e,t){try{return await e.readdir(t)}catch(n){if(Mt(n))return[];throw n}}function $i(){return{async open(e,t){let n=await Hi(e,t),r={path:e};return An.set(r,n),r},async write(e,t){let n=Ui(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Ui(e).sync()},async close(e){let t=An.get(e);An.delete(e),t&&await t.close()},rename:Cd,async readdir(e){return Rd(e)},readFile:yd,async stat(e){let t=await Ad(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Ed(e,t)},unlink:bd,rmdir:Id,utimes:xd,async fsyncDir(e){if(process.platform==="win32")return;let t=await Hi(e,"r");try{await t.sync()}finally{await t.close()}}}}function Ui(e){let t=An.get(e);if(!t)throw new Error("closed");return t}import{existsSync as Kd}from"node:fs";import{existsSync as Md}from"node:fs";import{homedir as Ki}from"node:os";import{join as Ld}from"node:path";import{existsSync as Od,readdirSync as ji}from"node:fs";import{homedir as bn}from"node:os";import{join as ie}from"node:path";function Td(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 kd(e=process.platform){let t=Td(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!Od(r))return n;let o=ji(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function Dr(e=process.platform,t=bn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:kd(e)}}function Pd(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 Nd(e=process.platform,t=bn()){let n=[ie(Pd(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of ji(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function wd(e=process.platform,t=bn()){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 xn(e,t=process.platform,n=bn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Dr(t,n);return[r,...o]}case"cursor":return Nd(t,n);default:return wd(t,n)}}function Gi(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var vd={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 Bi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Hd(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:Bi(n.mcpJson,t.mcpJson),mcpToml:Bi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function zi(e){return Object.fromEntries(Object.entries(vd).map(([t,n])=>[t,Hd(n,n[e])]))}var pt=zi("homeOnly"),Ge=zi("projectOnly");function Ud(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Dd(e,t){return Ud(e).some(n=>Md(Ld(t,n)))}function Wi(e,t){for(let n of e)if(Dd(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 Fd(e,t=Ki(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...xn(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function Vi(e=Ki(),t=process.platform){return Fd(Object.values(pt),e,t)}import{existsSync as $d}from"node:fs";import{resolve as Fr}from"node:path";function _e(e){return Fr(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 On(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 jd=/^(?!\.)[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("..")||!jd.test(t)?null:t}function dt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=_e(o);n.has(s)||(n.add(s),r.push(s))}return r}function Bd(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function xe(e,t,n,r=$d){for(let o of e)for(let s of t){let i=_e(Fr(o,s)),a=Fr(o,s,n).replaceAll("\\","/");if(Bd(i,a)&&r(a))return a}return null}var Yi=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,Xi=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,Gd=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Ji=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"]),zd=/^[a-z][a-z0-9-]{1,63}$/,Wd=[".cursor/skills",".claude/skills",".agents/skills"],Vd=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],Jd=Qe(Wd,ze(Object.values(Ge)).skills),Yd=Qe(Vd,ze(Object.values(pt)).skills),Xd=new Set(["read","read_file","view"]),qd=new Set(["bash","shell","zsh"]);function $r(e){let t=e.replace(/\\/g,"/");return Yi.exec(t)?.[1]??null}function Zd(e){let t=e.replace(/\\/g,"/"),r=Xi.exec(t)?.[1];return r?r.toLowerCase():null}function Qd(e){return $r(e)??Zd(e)}function em(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 Tn(e){return typeof e=="string"?Tn(ge(e,null)):!e||typeof e!="object"?null:em(e)}function qi(e){if(typeof e=="string")return qi(ge(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function jr(e){let t=qi(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function tm(e){let t=e.replace(/\\/g,"/"),n=Yi.exec(t);if(n?.[1])return n[1];let o=Xi.exec(t)?.[1];return o?o.toLowerCase():null}function nm(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Br(e){let t=Tn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function vt(e,t,n){let r=nm(e).toLowerCase();if(Xd.has(r)){let o=Br(e);return o?t(o):null}if(qd.has(r)){let o=jr(e);return o?n(o):null}return null}function Zi(e){return vt(e,Qd,tm)}function rm(e){let t=new Set,n=[];for(let r of e.matchAll(Gd)){let o=r[1]?.toLowerCase();!o||t.has(o)||om(o)||(t.add(o),n.push(o))}return n}function om(e){let t=e.split("/")[0];return Ji.has(e)||t!==void 0&&Ji.has(t)}function Qi(e){let t=e.skillId.toLowerCase();if(!zd.test(t))return null;let n=e.exists??Kd,r=`${t}/SKILL.md`,o=xe(dt(e.launchCwd,e.gitRoot),Jd,r,n);return o!==null?o:e.home?xe([_e(e.home)],Yd,r,n):null}function sm(e){return qe(e.prompt)}function ea(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=sm(e);return n?rm(n):[]}var Jr=je(Je(),1);import{existsSync as wg}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 Ng(e){if(!e)return"";let t=Ot(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 vn(e=process.cwd()){let t=await Ee("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([Ee("git",["remote","get-url","origin"],2e3,{cwd:e}),Ee("git",["branch","--show-current"],2e3,{cwd:e}),Ee("git",["rev-parse","HEAD"],2e3,{cwd:e}),Ee("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?Ot(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 ba(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=Ii(n,e.scope_path,i);if(s){let g=wi(s,c);if(g)return g}let u=o??await vn(r),l=u?.remote?Ng(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&&Mi(s,c,m),m}var Mg=[".cursor/rules",".claude/rules",".codex/rules"],Lg=ze(Object.values(Ge)).rules;function vg(e){return Qe(On(e?tt[e]:void 0,Mg),Lg)}var Hg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function xa(e){let t=Lt(e.relativePath);if(!t)return null;let n=e.exists??wg,r=dt(e.launchCwd,e.gitRoot),o=vg(e.runnerPlatform),s=xe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=xe(r,["."],t,n);if(i!==null)return i}return e.home?xe([_e(e.home)],o,t,n):null}function Ug(e){let t=e.replace(/\\/g,"/"),r=Hg.exec(t)?.[1];return r?(0,Jr.nativeKeyForRulePath)(r):null}function Oa(e){return vt(e,Jr.nativeKeyForRulePath,Ug)}function Ta(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function ka(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 Yr=je(Je(),1);import{existsSync as Dg}from"node:fs";var Fg=[".cursor/commands",".claude/commands",".codex/prompts"],$g=ze(Object.values(Ge)).commands;function jg(e){return Qe(On(e?tt[e]:void 0,Fg),$g)}var Bg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function Pa(e){let t=Lt(e.commandId);if(!t)return null;let n=e.exists??Dg,r=`${t}.md`,o=jg(e.runnerPlatform),s=xe(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?xe([_e(e.home)],o,r,n):null}function Kg(e){let t=e.replace(/\\/g,"/"),r=Bg.exec(t)?.[1];return r?(0,Yr.nativeKeyForCommandPath)(r):null}function Na(e){return vt(e,Yr.nativeKeyForCommandPath,Kg)}var Hn=je(Je(),1);function Xr(e){let t=ci(e);if(t.problem){O(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function wa(e,t){if(v(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function Gg(){return!!(L("CURSOR_VERSION")??L("CURSOR_PROJECT_DIR"))}function Ma(e,t,n){return e!=="claude"&&e!=="codex"?!1:wa(t,n)?!0:Gg()}var zg=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Dt(e,t,n,r){return wa(e,t)?"cursor":gn(r)?r:gn(n)?n:v(e,"turn_id")?"codex":v(e,"session_id")||zg.has(t.toLowerCase())?"claude":"unknown"}function Un(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function Wg(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 La(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function va(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Ha(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 qr(e){return v(e,"prompt.id")||v(e,"prompt_id")||v(e,"generation_id")||v(e,"turn_id")}function Zr(e){return v(e,"hook_event_name")||v(e,"event")}function Ua(e,t,n){let r=Ft(e),o=qr(e),s=Zr(e),i=v(e,"source"),a=Dt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var Vg=["session_start","session_end","tool_invoked","skill_invoked"];function Jg(e){return Vg.includes(e)}function Qr(e,t){return e&&Jg(e)?e:Wg(t.toLowerCase())}var Yg={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Dn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Da(e,t=""){let n=v(e,"tool_name")||v(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Dn(n)&&(n=`MCP:${n}`):n=Yg[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??=Zi(a);let c=Oa(a),u=Na(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var Xg=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Fa(e){for(let t of["subagent_type","agent_type"]){let n=v(e,t);if(n&&Xg.test(n))return n}return null}function $a(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 qg="error",Zg="interrupted",Qg="permission_denied",e_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function $t(e){return e_.test(e)?e:null}function t_(e){for(let t of["failure_type","error_type"]){let n=$t(v(e,t));if(n)return n}return null}function ja(e,t){return Me(e,"is_interrupt")===!0?Zg:t.toLowerCase()==="permissiondenied"?Qg:t_(e)??qg}function Ba(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function n_(e,t){return Ba(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function r_(e,t){return Ba(t,n=>(0,Hn.mcpServerNameMatchesToolSegment)(n,e))}function o_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Hn.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 s_(e,t){if(/^mcp__/i.test(e))return o_(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:n_(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 Ka(e,t=[],n=""){let r=e?s_(e,t):{mcpServer:null,mcpTool:null},o=$t(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Dn(e)&&(s=e),s&&(s=i_(s,o)),{mcpServer:o,mcpTool:s}}var Wa=3e4,p_="claims",d_=!0,m_=100,g_=new Set(["sessionstart","sessionend","stopfailure"]),__=["tool_name","tool","command","file_path","url"];function h_(e=za()){return eo(pe(e),p_)}function Va(e,t){try{let n=l_(e,"utf8").split(`
|
|
20
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function S_(e){let t=[];for(let n of __){let r=v(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":Tt(t.join("\0"))}function E_(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=g_.has(n);if(!a&&!c)return;let u=e.runnerPlatform.trim()||"unknown";return Tt(`${u}|${t}|${n}|${r}|${o}|${i}|${s}`)}function y_(e,t=Date.now()){let n;try{n=u_(e)}catch{return}let r=0;for(let o of n){if(r>=m_)break;r+=1;let s=eo(e,o),i=Va(s,t);if(!(!Number.isFinite(i)||i<Wa))try{Ga(s)}catch{}}}function R_(e,t,n=Date.now()){let r=eo(t,e);try{if(a_(r)){let o=Va(r,n);if(Number.isFinite(o)&&o>=0&&o<Wa)return!1;try{Ga(r)}catch{}}}catch{}try{c_(t,{recursive:!0}),f_(r,`${n}
|
|
21
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(In(o))return!1;let s=o instanceof Error?o.message:String(o);return O(`WARN: event claim failed open: ${s}`),!0}return y_(t,n),!0}function C_(e,t,n){let r=Ft(e),o=qr(e),s=v(e,"tool_use_id"),i=v(e,"subagent_id")||v(e,"agent_id"),a=Dt(e,t,void 0,n),c=S_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function Ja(e,t,n,r=za(),o=Date.now()){if(!d_)return!0;let s=E_(C_(e,t,n));if(!s)return!0;let i=R_(s,h_(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 A_,readFileSync as ec,statSync as I_,unlinkSync as tc,writeFileSync as b_}from"node:fs";import{homedir as nc}from"node:os";import{join as rc}from"node:path";var x_=4,O_=10;function Ya(e=process.platform){return e==="win32"?x_:O_}function oc(e){return e==="session_start"||e==="session_end"}var sc=6e4,to=2e3,T_="slots",no=new Set,Xa=!1;function ic(e=nc()){return rc(pe(e),T_)}function ro(e,t=nc(),n=process.platform){if(e!==void 0)return e>0?e:Ya(n);let r=te(Nt(t),{});return si(r)??Ya(n)}function k_(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function ac(e,t){return rc(e,`slot-${t}`)}function cc(e){return`${e.pid}
|
|
22
|
+
${e.acquiredAtMs}
|
|
23
|
+
`}var P_=/^(\d+)\n(\d+)\n$/,N_=64;function w_(e){let t=P_.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 uc(e,t=Date.now()){let n,r;try{let i=I_(e);if(!i.isFile())return!1;r=i.mtimeMs,n=i.size<=N_?ec(e,"utf8"):""}catch{return!1}let o=w_(n);if(!o)return Math.abs(t-r)<to;let s=t-o.acquiredAtMs;return s<-to||s>=sc?!1:k_(o.pid)}function lc(e,t=ic(),n=Date.now){for(let r=0;r<e;r+=1)if(!uc(ac(t,r),n()))return!0;return e<=0}function fc(e){return{pid:process.pid,acquiredAtMs:e}}function qa(e,t){let n=e instanceof Error?e.message:String(e);return O(`WARN: hook process slot failed open: ${n}`),fc(t)}function Za(e){return no.add(e),Xa||(Xa=!0,process.once("exit",()=>{for(let t of[...no])oo(t)})),e}function Qa(e){try{return b_(e.path,cc(e),{encoding:"utf8",flag:"wx",mode:384}),!0}catch(t){if(In(t))return!1;throw t}}function pc(e,t=ic(),n=Date.now){if(e<=0)return fc(n());let r;try{A_(t,{recursive:!0});for(let o=0;o<e;o+=1){let s={path:ac(t,o),pid:process.pid,acquiredAtMs:n()};if(Qa(s))return Za(s);if(!uc(s.path,n())){try{tc(s.path)}catch(i){if(!Mt(i)){r??=i;continue}}if(s.acquiredAtMs=n(),Qa(s))return Za(s)}}}catch(o){return qa(o,n())}return r===void 0?null:qa(r,n())}function oo(e,t=Date.now()){if(no.delete(e),!(!e.path||t-e.acquiredAtMs>=sc-to))try{ec(e.path,"utf8")===cc(e)&&tc(e.path)}catch{}}function so(e){L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: hook process cap reached (${e}/${e}); event dropped`)}import{closeSync as M_,writeSync as L_}from"node:fs";function dc(e=process.env){let t=e[Ir];if(delete e[Ir],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{L_(n,Zs)}catch{}try{M_(n)}catch{}}}function io(e=process.env){let t=e[Vs];if(t)return{launcherVersion:t,hookSource:e[Js]??"",fallbackReason:e[Ys],launcherScope:e[Xs]}}function mc(e,t){return(e?wt(e):void 0)===t}import{realpathSync as oC}from"node:fs";import{homedir as sC}from"node:os";var B=je(Je(),1);import{existsSync as v_,readFileSync as H_}from"node:fs";import{homedir as gc}from"node:os";import{join as U_}from"node:path";var D_="cloud-cache.json",F_=1440*60*1e3,$_=900*1e3;function j_(e=gc()){return U_(pe(e),D_)}function B_(e){if(!v_(e))return;let t=ge(H_(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 K_(e,t){try{me(e,`${JSON.stringify(t)}
|
|
24
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: cloud cache write failed open: ${r}`)}}function G_(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?$_:F_;return n-e.probed_at<r}async function z_(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 W_(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 V_(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 J_(e){let t=await Promise.allSettled([z_(e),W_(e),V_(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function _c(e,t){if(e==="interactive")return null;let n=t?.home??gc(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=j_(n),i=B_(s);if(G_(i,e,o))return i.result;let a=await J_(r);return K_(s,{context:e,probed_at:o,result:a}),a}var yc=je(Je(),1);import{existsSync as Sc}from"node:fs";import{homedir as Ec}from"node:os";import{join as jt,resolve as ao,sep as hc}from"node:path";function Fn(e,t,n){if(!Sc(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 Y_(e,t,n){if(!Sc(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(hc)?c:c+hc))&&(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 Rc(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"?(Fn(jt(r,".claude.json"),{source:"claude_json_user"},o),Y_(jt(r,".claude.json"),t,o)):n==="cursor"&&Fn(jt(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),Fn(jt(t,".mcp.json"),{source:"mcp_json"},o),Fn(jt(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function co(e,t=process.cwd(),n="claude",r=Ec()){return[...Rc(e,t,n,r).values()].map(o=>o.declared)}function Cc(e,t,n=process.cwd(),r="claude",o=Ec()){let s=Rc(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,yc.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var X_=["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"],q_=["CURSOR_PROJECT_DIR"],Z_=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function Q_(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)Z_.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Ac(e=process.env){let t=X_.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:Q_(e[r]??"")}:{name:r,present:!1}),n=q_.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as kh}from"node:os";import{homedir as Ic}from"node:os";import{join as eh}from"node:path";function th(e=Ic()){return eh(e,".claude.json")}function $n(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function bc(e=Ic()){let n=te(th(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=$n(n.emailAddress),o=$n(n.fullName)??$n(n.displayName),s=$n(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 Tc}from"node:os";import{join as xc}from"node:path";var nh="https://api.openai.com/auth";function _t(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function kc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function rh(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 kc(r)}catch{return null}}function Oc(e,t,n){return _t(e[n])??_t(t?.[n])}function oh(e=process.env,t=Tc()){let n=_t(e.CODEX_HOME)??xc(t,".codex");return xc(n,"auth.json")}function Pc(e=process.env,t=Tc()){let n=te(oh(e,t),{}),r=_t(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&_t(n.OPENAI_API_KEY))return null;let o=_t(n.tokens?.id_token);if(!o)return null;let s=rh(o);if(!s)return null;let i=kc(s[nh]),a=Oc(s,i,"name"),c=Oc(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 Kn}from"node:os";import{join as He}from"node:path";import{join as sh}from"node:path";var ih="cursor-ide-identity.json",ah=840*60*1e3;function wc(e){return sh(pe(e),ih)}function Nc(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Mc(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:Nc(t.email),auth_id:Nc(t.auth_id)}}function Lc(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<ah}function vc(e,t){try{me(e,`${JSON.stringify(t)}
|
|
25
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as ch}from"node:child_process";import{existsSync as uh}from"node:fs";import{createRequire as lh}from"node:module";import{pathToFileURL as fh}from"node:url";var Uc=lh(import.meta.url),jn=`
|
|
24
26
|
SELECT key, value
|
|
25
27
|
FROM ItemTable
|
|
26
28
|
WHERE key LIKE 'cursorAuth/%'
|
|
27
29
|
AND key NOT LIKE '%Token%'
|
|
28
30
|
AND key NOT LIKE '%token%'
|
|
29
31
|
ORDER BY key
|
|
30
|
-
`.trim(),
|
|
31
|
-
`)){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&&!
|
|
32
|
-
`);return X(n)}function
|
|
33
|
-
`)){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 V_(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return W_(n)}function J_(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 He(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 Y_(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=He(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=He(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=He(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let l=j(e.BUILD_REQUESTEDFOREMAIL),u=He(j(e.BUILD_REQUESTEDFOR),l,"azure_devops",l??j(e.BUILD_REQUESTEDFORID));if(u)return u;let p=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=He(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=He(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=He(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),O=He(A,null,"codebuild",A);if(O)return O;let x=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),k=He(M??j(e.DRONE_COMMIT_AUTHOR_NAME),x,"drone",x??M);if(k)return k;if(_c(e.CLAUDE_CODE_REMOTE)||_c(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 ro(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 _c(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function X_(e,t,n){return e==="claude"?Za(t):e==="cursor"?mc(t,n):e==="codex"?rc(n,t):null}async function oo(e,t=ee,n=process.env,r={}){let o=await V_(e,t),s=J_(n),i=ro(o)?o:s&&ro(s)?s:null,a=X_(r.runnerPlatform,r.home??G_(),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=Y_(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:ro(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 so(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await oo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=z_(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?Mr(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&Si(m,a,an())}}}function io(e){return e?!Mr(e)?.operator_identity_hash:!0}function hc(e){return!0}import{existsSync as fy,readFileSync as py}from"node:fs";import{homedir as Kl}from"node:os";import{join as Ct,resolve as dy}from"node:path";import{basename as ry,join as Rt}from"node:path";import{dirname as kc,resolve as jn}from"node:path";import{existsSync as q_}from"node:fs";import{homedir as yc}from"node:os";import{relative as Rc,resolve as Te,sep as Ye}from"node:path";var Z_=["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"],Q_=["prompt","tool_input","tool_response","last_assistant_message","command"],eh=new Set;function th(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return eh}}var Cc=new Set(["on","1","true"]);function fo(e){let t=H("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?Cc.has(t.toLowerCase()):e?.collect_prompt===!0}function Ac(e,t){let n=po(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=H("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?Cc.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function Ic(e){return po(e)==="allowlist"}function po(e){return H("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||H("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function nh(e){let t={};for(let n of Z_){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function Fn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=Rc(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function bc(e,t){let n=Rc(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function xc(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function rh(){let e=H("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return q_(t)?t.split(Ye).join("/"):null}function co(e,t){return Fn(e,t)!==null}function oh(e,t){let n=Te(t??yc(),".cursor").split(Ye).join("/");return co(e,n)}function sh(e,t,n){return t!==null&&co(e,t)?!0:t!==null&&oh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&co(e,n.gitRoot)?!0:t===null}function Oc(e,t){let n=xc(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=rh();return sh(r,o,t)?r:o??r}function mo(e,t={}){return Oc(e,t)}function go(e,t=yc()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function Sc(e,t,n){let r=xc(n.launchCwd)??Oc(t,n);e.cwd=go(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Fn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var Tc="\u2026[truncated]\u2026",uo=Buffer.byteLength(Tc,"utf8"),ih=8;function jt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Ec(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function ah(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 ch(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=uo)return Ec(e,t);let r=t-uo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Ec(e,o)}${Tc}${ah(e,s)}`}function lo(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)=>{lo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||lo(o,[...t,r],n)}function uh(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 lh=256;function fh(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 ph(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=jt(e);if(s<=t)return;let i=[];lo(e,[],i),i.sort((u,p)=>p.bytes-u.bytes);let a=i.filter(u=>u.bytes>n);if(a.length===0)return;let c=fh(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&&uh(e,u.path,ch(u.value,r))}}function dh(e,t){let n=Math.max(0,t-lh),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:jt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(jt(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=jt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,ph(r,t,uo+ih),jt(r)>t&&dh(r,t),r}function mh(e,t,n){let r=th(n.runnerEvent),o=n.promptCapture??fo();for(let s of Q_){if(r.has(s)||s==="prompt"&&!o)continue;let i=t[s];i!==void 0&&(e[s]=i)}}function $n(e,t,n={}){let r=po(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,Sc(s,e,n),ao(s,Tr)}let o=nh(e);return Sc(o,e,n),r==="content"?(mh(o,e,n),ao(o,Tr)):ao(o,ni)}function gh(e){return typeof e=="string"&&e.length>0}function _o(e){let t=jn(e.home),n=jn(e.launchCwd),r=e.gitRoot?jn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&gh(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&&Fn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=kc(r);for(;;){let u=jn(l);if(u===t)break;let p=kc(u);if(p===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=bc(u,n);break}l=p}}return{anchors:s,parentRel:a}}import{existsSync as Pc,readdirSync as _h,realpathSync as hh}from"node:fs";import{basename as Sh,dirname as Eh,relative as yh,resolve as Rh,sep as Ch}from"node:path";var ho=400,Bn=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=Rh(t).split(Ch).join("/");return go(r,this.home)}let n=yh(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(Eh(t))}/${Sh(t)}`:n}claimFile(t){try{let n=hh(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(!Pc(t))return[];try{return _h(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(Pc(t))return re(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 vo,readFileSync as zS,statSync as WS}from"node:fs";import{basename as zu,join as ot,relative as Uo}from"node:path";var ju=je($u());var KS=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Bu=KS.map(e=>ju.default.matcher(e,{dot:!0}));function GS(e){return e===""?!1:Bu.some(t=>t(`${e}/`))}function Ku(e,t){if(t==="")return!1;if(e==="")return GS(t);let n=e.replace(/\/+$/,"");return Bu.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var Ho=100*1024,VS=4;function JS(e){return e.length<=Ho?e:`${e.slice(0,Ho-1)}\u2026`}function YS(e){try{let t=zS(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:JS(n)}}catch{return null}}var Gu={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function XS(e){return e in Gu?Gu[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=YS(t.absolutePath);if(!n)return!1;let r=t.name??zu(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=XS(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function qS(e,t,n){let r=Uo(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?zu(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;Do(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Do(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>VS))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&Ku(n.replace(/\\/g,"/"),Uo(n,ot(r,p.name)).replace(/\\/g,"/"))||p.isDirectory()&&u?.includes(ot(r,p.name)))continue;if(c){if(!p.isDirectory())continue;let g=ot(r,p.name,c);if(vo(g)){let S=Uo(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Do(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(p.isDirectory()){Do(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(!p.isFile()||!l)continue;let f=p.name.toLowerCase();if(!l.some(g=>f.endsWith(g)))continue;let m=ot(r,p.name);Et(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:qS(n,m,!0)})}}function Wu(e){for(let t of e)if(vo(t))try{if(WS(t).size>0)return t}catch{continue}return e.find(t=>vo(t))}import{existsSync as OE,readFileSync as TE}from"node:fs";var Yn=je(Je(),1);var ZS="<omitted>",QS=["package_name","package_spec","package_version","package_version_source"],Vu=100,Ju=120,Xn=[{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"}],Yu=new Set(Xn.map(e=>e.attr)),eE=["enabled","disabled"],tE=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],nE=new Set(["type","command","url","args","env","envVars","headers",...eE,...tE,...Xn.map(e=>e.raw)]),rE=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",...QS,...Yu,...[...Yu].map(e=>`${e}_truncated`)]);function Xu(e,t){for(let n of t)nE.has(n)||rE.has(n)||(e[n]=ZS)}var oE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,sE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,iE=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,aE=/^bearer(?:\s+|$)/i;function qn(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function qu(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Fo(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=qn(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 cE(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,Yn.launchContainsCredentials)({kind:"url",url:e})||(0,Yn.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=Jt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,Yn.launchContainsCredentials)({kind:"url",url:r}):!0)}function Zu(e,t,n){cE(t,n)&&(e.launch_had_credentials=!0)}function uE(e){return iE.test(e)||aE.test(e)?"<redacted>":e.includes("://")?it(e):e}function Qu(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Qu(e.slice(t+1))}`:uE(e)}function lE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return oE.test(t)||sE.test(t)}function Jt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(lE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Qu(r))}return t}function fE(e){let t=qu(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Ju?r.slice(0,Ju):r))].sort();if(n.length!==0)return n.length>Vu?{names:n.slice(0,Vu),truncated:!0}:{names:n,truncated:!1}}function pE(e){let t=qn(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 el(e,t){let n=new Set;for(let{raw:r,attr:o}of Xn){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=fE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function tl(e,t){let n=qn(e),r={transport:t};if(!n)return r;Xu(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=qu(n.args);a&&(r.command_or_url=it(a));let l=Jt(c);l.length>0&&(r.args=l),Zu(r,a,c);let u=pE(n.env_http_headers),p=[...new Set([...Fo(n.env),...Fo(n.envVars),...Fo(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();p.length>0&&(r.env_var_names=p),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),el(r,n),r}function nl(e){let t=qn(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function Bo(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 Vt(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 jo(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function $o(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 dE(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(`
|
|
34
|
-
${e}`);return s?.[1]&&r(s[1]),n}function
|
|
35
|
-
`)){let s=
|
|
36
|
-
`)){let
|
|
32
|
+
`.trim(),uo=new Map;function Hc(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 Dc(e){return e.toLowerCase().includes("token")}function Fc(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=Hc(r.key),s=Hc(r.value);o&&s&&!Dc(o)&&t.set(o,s)}return t}function ph(e){let t=fh(e);return t.search="mode=ro&immutable=1",t.href}function dh(e){try{let t=Uc("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(jn)??n.prepare(jn);return Fc(r.all?.())}finally{n.close?.()}}catch{return null}}function mh(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 gh(e){try{return mh(()=>{let t=Uc("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return Fc(n.prepare(jn).all?.())}finally{n.close?.()}})}catch{return null}}function _h(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&&!Dc(s)&&t.set(s,i)}return t}function hh(e){try{let t=ch("sqlite3",["-noheader","-batch","-separator"," ",e,jn],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return _h(t)}catch{return null}}function $c(e){let t=uo.get(e);if(t)return t;if(!uh(e)){let o=new Map;return uo.set(e,o),o}let n=ph(e),r=dh(n)??hh(n)??gh(n)??new Map;return uo.set(e,r),r}var Sh="cursorAuth/cachedEmail",Eh="cursorAuth/stripeMembershipAuthId";function Bn(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function yh(e=Kn(),t=process.platform,n=process.env){let r=Bn(n.VSCODE_PORTABLE);if(r)return He(r,"user-data");let o=Bn(n.VSCODE_APPDATA);if(o)return He(o,"Cursor");switch(t){case"darwin":return He(e,"Library","Application Support","Cursor");case"win32":return He(Bn(n.APPDATA)??He(e,"AppData","Roaming"),"Cursor");default:return He(Bn(n.XDG_CONFIG_HOME)??He(e,".config"),"Cursor")}}function Rh(e=Kn()){return He(e,".cursor","cli-config.json")}function Ch(e=Kn(),t=process.platform,n=process.env){return He(yh(e,t,n),"User","globalStorage","state.vscdb")}function Bt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Ah(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):Bt(e.userId)}function Ih(e){return Bt(e.email)??Bt(e.authId)??Ah(e)}function lo(e){let t=Bt(e.email),n=Bt(e.displayName),r=Ih(e);return!r||fe(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function bh(e){let n=te(Rh(e),{}).authInfo;return!n||typeof n!="object"?null:lo(n)}function xh(e,t,n){let r=Ch(e,process.platform,t),o=wc(e),s=Mc(o);if(Lc(s,r,n))return lo({email:s?.email,authId:s?.auth_id});let i=$c(r),a=i.get(Sh)??null,c=i.get(Eh)??null;return vc(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),lo({email:a,authId:c})}function jc(e=Kn(),t=process.env,n=Date.now()){return bh(e)??xh(e,t,n)}import{createHash as Oh}from"node:crypto";import{resolve as Th}from"node:path";function X(e){return Oh("sha256").update(e).digest("hex").slice(0,16)}function fo(e){return X(Th(e))}function he(e,t){return`${e}\0${t}`}function Bc(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function Kt(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 Ph(e,t,n="git_config",r=null){return X(`${e??""}|${t??""}|${r??""}|${n}`)}function Nh(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 wh(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Nh(n)}function Mh(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 Lh(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(Kc(e.CLAUDE_CODE_REMOTE)||Kc(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 po(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 Kc(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function vh(e,t,n){return e==="claude"?bc(t):e==="cursor"?jc(t,n):e==="codex"?Pc(n,t):null}async function mo(e,t=ee,n=process.env,r={}){let o=await wh(e,t),s=Mh(n),i=po(o)?o:s&&po(s)?s:null,a=vh(r.runnerPlatform,r.home??kh(),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=Lh(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:po(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 go(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await mo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Ph(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?Ur(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&ki(m,a,ln())}}}function _o(e){return e?!Ur(e)?.operator_identity_hash:!0}function Gc(e){return!0}import{existsSync as Xy,readFileSync as qy}from"node:fs";import{homedir as hf}from"node:os";import{join as Ct,resolve as Zy}from"node:path";import{basename as By,join as Rt}from"node:path";import{dirname as nu,resolve as Wn}from"node:path";import{existsSync as Hh}from"node:fs";import{homedir as Vc}from"node:os";import{relative as Jc,resolve as Te,sep as Ye}from"node:path";var Uh=["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"],Dh=["prompt","tool_input","tool_response","last_assistant_message","command"],Fh=new Set;function $h(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Fh}}var Yc=new Set(["on","1","true"]);function Ro(e){let t=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?Yc.has(t.toLowerCase()):e?.collect_prompt===!0}function Xc(e,t){let n=Co(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!==""?Yc.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function qc(e){return Co(e)==="allowlist"}function Co(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 jh(e){let t={};for(let n of Uh){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function Gn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=Jc(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function Zc(e,t){let n=Jc(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function Qc(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function Bh(){let e=L("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return Hh(t)?t.split(Ye).join("/"):null}function So(e,t){return Gn(e,t)!==null}function Kh(e,t){let n=Te(t??Vc(),".cursor").split(Ye).join("/");return So(e,n)}function Gh(e,t,n){return t!==null&&So(e,t)?!0:t!==null&&Kh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&So(e,n.gitRoot)?!0:t===null}function eu(e,t){let n=Qc(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=Bh();return Gh(r,o,t)?r:o??r}function Ao(e,t={}){return eu(e,t)}function Io(e,t=Vc()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function zc(e,t,n){let r=Qc(n.launchCwd)??eu(t,n);e.cwd=Io(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Gn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var tu="\u2026[truncated]\u2026",Eo=Buffer.byteLength(tu,"utf8"),zh=8;function Gt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Wc(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Wh(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 Vh(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=Eo)return Wc(e,t);let r=t-Eo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Wc(e,o)}${tu}${Wh(e,s)}`}function yo(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)=>{yo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||yo(o,[...t,r],n)}function Jh(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 Yh=256;function Xh(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 qh(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=Gt(e);if(s<=t)return;let i=[];yo(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=Xh(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&&Jh(e,l.path,Vh(l.value,r))}}function Zh(e,t){let n=Math.max(0,t-Yh),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:Gt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(Gt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function ho(e,t){let n=Gt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,qh(r,t,Eo+zh),Gt(r)>t&&Zh(r,t),r}function Qh(e,t,n){let r=$h(n.runnerEvent),o=n.promptCapture??Ro();for(let s of Dh){if(r.has(s)||s==="prompt"&&!o)continue;let i=t[s];i!==void 0&&(e[s]=i)}}function zn(e,t,n={}){let r=Co(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,zc(s,e,n),ho(s,wr)}let o=jh(e);return zc(o,e,n),r==="content"?(Qh(o,e,n),ho(o,wr)):ho(o,di)}function eS(e){return typeof e=="string"&&e.length>0}function bo(e){let t=Wn(e.home),n=Wn(e.launchCwd),r=e.gitRoot?Wn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&eS(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&&Gn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=nu(r);for(;;){let l=Wn(u);if(l===t)break;let p=nu(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=Zc(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as ru,readdirSync as tS,realpathSync as nS}from"node:fs";import{basename as rS,dirname as oS,relative as sS,resolve as iS,sep as aS}from"node:path";var xo=400,Vn=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=iS(t).split(aS).join("/");return Io(r,this.home)}let n=sS(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(oS(t))}/${rS(t)}`:n}claimFile(t){try{let n=nS(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(!ru(t))return[];try{return tS(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(ru(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 Go,readFileSync as PE,statSync as NE}from"node:fs";import{basename as Sl,join as ot,relative as zo}from"node:path";var ml=je(dl());var TE=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],gl=TE.map(e=>ml.default.matcher(e,{dot:!0}));function kE(e){return e===""?!1:gl.some(t=>t(`${e}/`))}function _l(e,t){if(t==="")return!1;if(e==="")return kE(t);let n=e.replace(/\/+$/,"");return gl.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var Wo=100*1024,wE=4;function ME(e){return e.length<=Wo?e:`${e.slice(0,Wo-1)}\u2026`}function LE(e){try{let t=PE(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:ME(n)}}catch{return null}}var hl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function vE(e){return e in hl?hl[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=LE(t.absolutePath);if(!n)return!1;let r=t.name??Sl(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=vE(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function HE(e,t,n){let r=zo(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Sl(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;Vo(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Vo(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l}=t;if(!(o>wE))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&_l(n.replace(/\\/g,"/"),zo(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(Go(g)){let S=zo(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Vo(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()){Vo(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:HE(n,m,!0)})}}function El(e){for(let t of e)if(Go(t))try{if(NE(t).size>0)return t}catch{continue}return e.find(t=>Go(t))}import{existsSync as py,readFileSync as dy}from"node:fs";var er=je(Je(),1);var UE="<omitted>",DE=["package_name","package_spec","package_version","package_version_source"],yl=100,Rl=120,tr=[{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"}],Cl=new Set(tr.map(e=>e.attr)),FE=["enabled","disabled"],$E=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],jE=new Set(["type","command","url","args","env","envVars","headers",...FE,...$E,...tr.map(e=>e.raw)]),BE=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",...DE,...Cl,...[...Cl].map(e=>`${e}_truncated`)]);function Al(e,t){for(let n of t)jE.has(n)||BE.has(n)||(e[n]=UE)}var KE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,GE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,zE=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,WE=/^bearer(?:\s+|$)/i;function nr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Il(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Jo(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=nr(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 VE(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,er.launchContainsCredentials)({kind:"url",url:e})||(0,er.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=qt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,er.launchContainsCredentials)({kind:"url",url:r}):!0)}function bl(e,t,n){VE(t,n)&&(e.launch_had_credentials=!0)}function JE(e){return zE.test(e)||WE.test(e)?"<redacted>":e.includes("://")?it(e):e}function xl(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${xl(e.slice(t+1))}`:JE(e)}function YE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return KE.test(t)||GE.test(t)}function qt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(YE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(xl(r))}return t}function XE(e){let t=Il(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Rl?r.slice(0,Rl):r))].sort();if(n.length!==0)return n.length>yl?{names:n.slice(0,yl),truncated:!0}:{names:n,truncated:!1}}function qE(e){let t=nr(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 Ol(e,t){let n=new Set;for(let{raw:r,attr:o}of tr){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=XE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Tl(e,t){let n=nr(e),r={transport:t};if(!n)return r;Al(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=Il(n.args);a&&(r.command_or_url=it(a));let u=qt(c);u.length>0&&(r.args=u),bl(r,a,c);let l=qE(n.env_http_headers),p=[...new Set([...Jo(n.env),...Jo(n.envVars),...Jo(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),Ol(r,n),r}function kl(e){let t=nr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function qo(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 Xt(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 Xo(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function Yo(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 ZE(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 Pl(e){return Xo(e,"enabled")===!1?!1:Xo(e,"disabled")!==!0}function QE(e,t){let n={};for(let{raw:r,attr:o}of tr){if(o==="auto_approve"){let i=Xo(t,r);if(i!==void 0){n[r]=i;continue}}let s=Xt(t,r);s.length>0&&(n[r]=s)}Ol(e,n)}var ey=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,ty=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function ny(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=ey.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(ty))o[1]&&t.add(o[1]);return[...t]}function Nl(e,t){let n={transport:t};Al(n,ny(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?yt(r[1]??""):void 0,i=o?yt(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=Xt(e,"args");a&&(n.command_or_url=it(a));let u=qt(c);u.length>0&&(n.args=u),bl(n,a,c);let l=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]&&l.add(T[1])}let p=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(p?.[1])for(let A of p[1].split(",")){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}let f=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
|
|
37
39
|
${e}`);if(f?.[1])for(let A of f[1].split(`
|
|
38
|
-
`)){let
|
|
39
|
-
`);return RE("sha512").update(t).digest("hex").slice(0,16)}function IE(e){let t=process.platform==="win32"?Yt(H("LOCALAPPDATA")??e,"npm-cache"):Yt(e,".npm"),n=H("npm_config_cache")??H("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function ul(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function bE(e,t,n){let r=AE(e);for(let o of IE(n)){let s=Yt(o,"_npx",r),i=re(Yt(s,"node_modules",...t.split("/"),"package.json"),{}),a=ul(i.version);if(a!==null)return a;let c=re(Yt(s,"package-lock.json"),{}),l=ul(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function xE(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function Ko(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:xE(o),...CE(o,bE(r,s,n))}}function ll(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Zn(e.trim());return n===void 0?null:Ko(n,r,t)}function Qn(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 Ko(typeof n.command=="string"?n.command:null,r,t)}function fl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Ko(yt(n[1]??""),Vt(e,"args"),t)}function kE(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 pl(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=kE(a),l=tl(a,c);Object.assign(l,Qn(a,e.home)??{});let u=nl(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:Bo(i,l,u),origin:n,enabled:u,attributes:l})}}function dl(e,t,n){if(!OE(t)||!e.claimFile(t))return;let r;try{r=TE(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),p="unknown";/^\s*url\s*=/m.test(u)?p="http":/^\s*command\s*=/m.test(u)&&(p="stdio");let f=ol(u,p);Object.assign(f,fl(u,e.home)??{});let m=rl(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:Bo(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as wE,readdirSync as ME}from"node:fs";import{join as ce}from"node:path";function PE(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 NE(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 Go(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 NE(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",p=PE({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}:${p}:${m}`:`${s}:${p}:${m}`,S=`${s}|${f}|${p}|${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:p,action_hash:m,...p!=="prompt"&&u.trim()?{command:al(u,e.home)}:{}}})}}}function zo(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Go(e,t,r.hooks,n)}var ml=50;function Xt(e,t,n,r){if(!wE(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(ml,()=>{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"]})});zo(e,ce(t,"hooks","hooks.json"),n),zo(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=ml;return{componentCount:i,expandTruncated:a}}function qt(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 gl(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]??{},p=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 O of l)if(typeof O.installPath=="string"&&O.installPath.length>0){let x=Xt(e,O.installPath,S,p);C+=x.componentCount,A=A||x.expandTruncated}qt(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 LE(e){let t=e,n="";try{let r=ME(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 vE=/^\d+$/;function UE(e){let t=e.filter(n=>!vE.test(n.pluginId));return t.length>0?t:e}function _l(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:p}=Xt(e,c,l,!0);qt(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:u,expandTruncated:p,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}=LE(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of UE(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:p}=Xt(e,a.installPath,l,!0);qt(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:u,expandTruncated:p,contentHash:X(`${c}|${a.version}|${u}`)})}}}import{existsSync as FE}from"node:fs";var HE=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,Wo="<path>",DE=new RegExp(`${Wo}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function er(e){let t=e.replace(HE,Wo).replace(DE,Wo);return t.length>200?`${t.slice(0,200)}...`:t}var hl=200,Sl=200,Vo=16*1024,El=6,$E=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),jE=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),BE=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),KE=new Set(["permissions"]),GE={claude:$E,cursor_sandbox:jE,cursor_permissions:BE,cursor_cli:KE},zE=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tr(e){return e.replace(/\\/g,"/")}function Jo(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>Jo(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${Jo(t[r])}`).join(",")}}`}function WE(e){return X(`${Jo(e)}|settings1`)}function Il(e){let t=tr(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 bl(e,t){if(e!=="claude")return{};let n=tr(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 xl(e){let t=tr(e).replace(/\/+$/,"");return t.length<=1?"":t}function Ol(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function VE(e,t){let n=tr(e);if(n==="~"||n.startsWith("~/"))return n;let r=xl(t);if(!r)return n;let o=n.slice(0,r.length);if(!(Ol(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var yl=new Map;function JE(e){let t=yl.get(e);if(t!==void 0)return t;let n=xl(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,Ol(e)?"gi":"g")}return yl.set(e,r),r}function YE(e,t){let n=JE(t);return n?e.replace(n,"~"):e}function Rl(e,t){return e.length<=Sl?e:(t.truncated=!0,e.slice(0,Sl))}function Tl(e,t){return e.length<=hl?e:(t.truncated=!0,e.slice(0,hl))}function te(e,t,n,r){if(typeof e=="string"){if(t==="path")return Rl(VE(e,n),r);let o=t==="rule"?er(e):e;return Rl(YE(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=Tl(e,r),s=[];for(let i of o){let a=te(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=te(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function Cl(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";zE.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=te(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function XE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Tl(s,n);r[o]=a.map(c=>{if(!Xe(c))return te(c,"plain",t,n);let l={};for(let[u,p]of Object.entries(c)){let m=te(p,u==="path"?"path":"plain",t,n);m!==void 0&&(l[u]=m)}return l});continue}let i=te(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function qE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=te(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function ZE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=te(s,"rule",t,n):o==="filesystem"?i=te(s,"path",t,n):o==="network"?i=qE(s,t,n):o==="credentials"?i=XE(s,t,n):i=te(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function QE(e,t,n,r,o){return n==="claude"?e==="permissions"?Cl(t,r,o):e==="sandbox"?ZE(t,r,o):te(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?te(t,"path",r,o):te(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?te(t,"rule",r,o):te(t,"plain",r,o):e==="permissions"?Cl(t,r,o):te(t,"plain",r,o)}function Zt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Yo(e,t){return e?`${e}.${t}`:t}function Xo(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>=El?(e.splice(o,1),r.add(n)):Xo(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>=El?(delete e[o],r.add(Yo(n,o))):Xo(s,t+1,Yo(n,o),r))}function kl(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:Zt(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))kl(o,Yo(t,r),n)}function ey(e,t,n){let r=Zt(e);if(r<=Vo)return;t.truncated=!0;let o=[];for(kl(e,"",o);r>Vo;){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=Zt(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;Zt(e)>Vo;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=Zt(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function ty(e,t,n){let r=GE[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=QE(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return Xo(s,1,"",a),a.size>0&&(o.truncated=!0),ey(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function Al(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:WE(t.attributes),attributes:t.attributes};e.push(n)}function qo(e,t,n,r){if(!e.claimFile(t)||!FE(t))return;let o=Ps(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),Al(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(Xe(i)&&Go(e,t,i,n),!r.profile)return;let a=ty(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),Al(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as ny}from"node:fs";import{join as we}from"node:path";var Pl=".claude/skills/synced",Nl=".claude/plugins/synced";function wl(e){return[we(e,Pl),we(e,Nl)]}function nr(e){return typeof e=="string"&&e.length>0?e:void 0}function Ml(e){let t=we(e.home,Pl);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()||!ny(a))continue;let c=s.get(i.name),l=nr(c?.source),u=nr(c?.creatorType);Et(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Ll(e){let t=we(e.home,Nl);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=nr(a?.marketplaceName),l=nr(a?.version),u=c?`${i.name}@${c}`:i.name,p=we(r,i.name),{componentCount:f,expandTruncated:m}=Xt(e,p,`plugin:${u}`,!0);qt(e,{pluginKey:u,rowPath:e.componentPath(p),enabled:!0,scope:"synced",version:l,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${u}|${l??""}|synced|${f}`)})}}}function oy(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:wl(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=Wu(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:ry(a)})}for(let i of Li(n))qo(e,Rt(r,i),o,{kind:"SETTINGS",profile:Il(i)});for(let i of n.mcpJson??[])pl(e,Rt(r,i),o);for(let i of n.mcpToml??[])dl(e,Rt(r,i),o);if(s){if(n.managed){for(let i of Rn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=bl(n.managed,i);qo(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(gl(e),Ll(e),Ml(e)):n.plugins==="cursor"&&_l(e)}}function vl(e,t){try{let n=new Bn(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)oy(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 Zo(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=vl(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),l=_o({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>Ui(c,u)});i=l.parentRel;for(let u of l.anchors){let p=no(u.dir);if(o!==void 0&&!o(u.scope,p))continue;let f=vl(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:ho,scopeRef:p});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Qo(e,t,n={}){let r=n.truncated===!0,o=$t(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 p=_e(u.path,u.name);c[p]!==u.content_hash&&a.push(u)}let l=[];if(!r){for(let u of Object.keys(c))if(!s.has(u)){let p=gc(u);p&&l.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:l,unchanged:a.length===0&&l.length===0}}var Hl=2*1024*1024,sy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function es(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 ts(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 Ul(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Dl(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function ns(e,t=Hl){let n=[],r=[];for(let u of e)sy.has(u.kind)?n.push(u):r.push(u);r.sort((u,p)=>(u.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,l=[];for(let u of o){let p=s.length>0?1:0,f=Ul(u)+p;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=Dl(u),g=Ul(m)+p;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:l}}function rs(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:Dl(n))}var iy=["user","cwd","repo","parent"];function os(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of iy){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,b=Qo(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),v=es(k.components,b.upserts,N),d=rs([...b.upserts,...v],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=ns(i,o),c=new Set(a.components.map(M=>_e(M.path,M.name))),l=[],u=[],p=[],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 b=a.components.filter(I=>M.outgoingKeys.has(_e(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),v=D.truncated||N;v?p.push(k):D.full&&u.push(k),f.push(...b),!D.full&&!v&&m.push(...D.removed);let d=D.full?{}:{...M.cachedComponents??{}};if(!v)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:ts(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&&!v||D.full})}let C={user_spec_hash:$t(g),user_spec_count:g.length,user_spec_truncated:p.length>0};l.length>0&&(C.user_spec_scopes=l,C.user_spec_full_scopes=u,C.user_spec_truncated_scopes=p,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 O=t.scopes.repo;O&&(C.user_spec_repo_scope_ref=O.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 rr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function ss(e){return e==="cwd"||e==="repo"||e==="parent"}function Qt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function is(e){return!Qt(e)||!Qt(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 Fl(e){return ay(e)}function $l(e){return cy(e)}function jl(e){return uy(e)}function ay(e){if(!Qt(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function cy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Bl(e,t){if(!Qt(e))return;let n=e[t];return is(n)?n:void 0}function uy(e){if(!Qt(e))return{};let t={};for(let[n,r]of Object.entries(e))is(r)&&(t[n]=r);return t}function as(e,t=20){let n=[];for(let[r,o]of Object.entries(e))is(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 my=["allow","deny","ask"];function sr(e){let t=re(e,{}),n=[];for(let r of my)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:er(o),mode:r});return{model:t.model??"",permissionKeys:n}}function gy(e){let{serverManaged:t,fileBased:n}=vr(process.platform,e),r=sr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=sr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function _y(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 hy=10,Sy="self-config-cache.json",Gl=4;function At(){return H("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function Ey(){return H("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var yy={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function Ry(e,t=ee){let n=yy[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(`
|
|
40
|
-
`)[0]??"").trim();return a||r(o+1)};return r(0)}function
|
|
41
|
-
`);return X(n)}function
|
|
42
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);
|
|
43
|
-
`),Object.keys(o).length===0?"cleared":"written"):"unchanged"}catch(i){let a=i instanceof Error?i.message:String(i);return
|
|
44
|
-
${n}`}function
|
|
45
|
-
`);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
|
|
46
|
-
`,p=H("EV_AI_HOOK_DEBUG");p==="full"?T(`DEBUG envelope=${l}`):p==="1"&&T(`DEBUG summary=${iR(c,fs(u))}`);let f=process.argv.includes(ur),m=H("EV_AI_HOOK_SYNC")==="1";return wn(n.runnerEvent,n.runnerPlatform)||f||m?lR(e,u,o):(await fR(e,u,o),!1)}import{createReadStream as pR}from"node:fs";import{stat as dR}from"node:fs/promises";import{basename as mR,resolve as gR}from"node:path";import{createInterface as _R}from"node:readline";var hR=1024*1024;function SR(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&mR(t).endsWith(".jsonl")}async function gf(e){if(!e||!SR(e))return null;try{let t=gR(e),n=await dR(t);if(!n.isFile())return null;let r=Math.max(0,n.size-hR),o=[],s=_R({input:pR(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 lr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Ac(e.manifest.manifest,e.manifest.hookConfig)}}function nn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function gs(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:fo(e.manifest.hookConfig)}}async function Sf(e){let t=Date.now();await PR(e);let{gitRoot:n}=e.manifest;await hs(e,n);let r=gs(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:$n(e.hookInput,e.manifest.manifest,r),envelopeFields:lr(e),launchCwd:mo(e.hookInput,r),home:yR()}}function _f(e){try{return ge(ER(e))}catch{return null}}function Ef(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function hf(e,t){let n=e.replaceAll("\\","/");if(!Ef(n))return null;let r=ge(e),o=ge(t),s=_f(e)??r,i=_f(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function yf(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=hf(e,t)??(Ef(r)?null:r),i=hf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function ms(e,t,n,r,o){return Rf(e,yf(n,t.gitRoot,t.home),r,o)}function Rf(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?RR({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 RR(e){try{let t=e.inRepository?IR(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 Cf(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 _s(e,t,n){return xt("tool_invoked",{...n,...Cf(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,nn(e,t.home))}function CR(e){return ba(e.runnerEvent,e.runnerPlatform)?[]:Gi(e.hookInput)}function AR(e,t){return _s(e,t,{})}var Af=new Set([...Object.values(tt),".github"]);function IR(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=>Af.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var If=".codex/config.toml",bR=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",If]]);function xR(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?bR.get(c.source):o==="codex"?If: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||!Af.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function OR(...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 T(`WARN: ${n} failed open: ${r}`),t}function TR(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 kR(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,tn=null;async function PR(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!io(n)){ct.add(t);return}let r=kt({sessionId:e.sessionId,hostname:un()});if(hc(r)){if(tn){await tn;return}tn=(async()=>{if(ct.has(t)||!io(n)){ct.add(t);return}if(!Ei(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 bf(e,r,Pn(i),so({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:kR(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await xt("session_start",u,lr(e),It,e.manifest.collectorUrl,s,nn(e)),o&&(c.commit(),ct.add(t))}finally{yi(n)}})().finally(()=>{tn=null}),await tn}}async function hs(e,t,n){try{e.platformAgentId=await ga(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);T(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function bf(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,vs(),Ka(t),Hs(),r]),l=ut(o,null,"gitSnapshot"),u=ut(s,"","detectVirt"),p=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await hs(e,e.manifest.gitRoot,l),{operatorResolved:m,fields:{identity:{host:un(),context:t,virt:u||null,cloud:p,git:l},host_env:f,env_vars:Xa()}}}async function NR(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=kt({sessionId:e.sessionId,hostname:un()}),o=String(e.runnerPlatform),s=gs(e),i=mo(e.hookInput,s),a=Pn(n),c=nf().catch(()=>({})),l=At()?Promise.resolve({commit:()=>{}}):so({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=bf(e,r,a,l),[p,f]=await Promise.allSettled([Qr(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>zl(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(p,[],"mcpDeclared"),C=ut(f,TR(o),"selfConfig"),A=C.config,O=L(e.hookInput,"model");O&&(A.model=O);let x={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:$n(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await xt("session_start",x,{...lr(e),...M},It,e.manifest.collectorUrl,t,nn(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function wR(e){let t=Date.now(),[,n]=await Promise.all([hs(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?gf(L(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=OR(L(e.hookInput,"status"),L(e.hookInput,"stop_reason"),L(e.hookInput,"reason"),Ht(L(e.hookInput,"error")),r==="stop"?Me(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=$n(e.hookInput,e.manifest.manifest,gs(e));n&&(s.model=n),r!=="stopfailure"&&!Ic(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await xt("session_end",{status:o,...n?{model:n}:{},hook_input:s},lr(e),It,e.manifest.collectorUrl,t,nn(e))}async function MR(e){let t=CR(e),n=Ea(e.hookInput),r=Ia(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await Sf(e);await Promise.all([o?AR(e,s):void 0,t.length===0?void 0:LR(e,s,t),n.length===0?void 0:vR(e,s,n)])}function xf(e,t,n,r){let o=r??Ki({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=ms(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&Hr(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??ya({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=ms(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 LR(e,t,n){let r=An(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=xf(e,t,o,r);return _s(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 vR(e,t,n){return Promise.all(n.map(r=>{let o=_a({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=ms(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Sa(r);return _s(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var UR=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function HR(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Fr(e.hookInput);if(r===null)return n.skillName===null?{}:xf(e,t,n.skillName,null);let o=yf(r,t.gitRoot,t.home);for(let s of UR){let i=Rf(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 DR=/mcp/i;function FR(e,t,n,r){let o=DR.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?ll(t,n):Qn(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 $R(e){let t=await Sf(e),n=ka(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=Dr(e.hookInput),i=cl(s,t.home),a=Na(e.hookInput),c=xa(e.runnerEvent),l=c===!1?wa(e.hookInput,e.runnerEvent):null,u=Ht(L(e.hookInput,"mcp_server_name")),p=u!==null||r!==null&&Mn(r)?await Qr(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=La(r,p.map(K=>K.name),u??""),g=xR(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,u),S=g===void 0?HR(e,t,n):{},C=f===null?null:Ya(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=FR(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),O=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=Pa(e.hookInput);await xt("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,...O?{component_reference:O}:{},...k?{subagent_type:k}:{},...Cf(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,nn(e,t.home))}async function Of(e){switch(e.internalEvent){case"session_start":await NR(e);return;case"session_end":await wR(e);return;case"skill_invoked":await MR(e);return;case"tool_invoked":await $R(e);return;default:return}}import{existsSync as Es,readFileSync as jR}from"node:fs";import{dirname as BR,isAbsolute as KR,join as GR,relative as zR}from"node:path";function Tf(e){for(let t of Js){let n=GR(e,t);if(Es(n))return n}}async function WR(e=process.cwd(),t){let n=t??await _r(e);return Tf(n)??Tf(e)}async function VR(e,t){let n=t??await _r(BR(e)),r=zR(n,e);if(r.startsWith("..")||KR(r))return!1;let o=await Se("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(T(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function Ss(e){let t=jR(e,"utf8");return me(t,{})}function JR(){return{schema_version:_n,mcp_servers:[]}}function YR(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(T(`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")&&(T(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function kf(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await gr(e),o=H("EV_AI_HOOK_MANIFEST"),s=o&&Es(o)?o:void 0,i=s?void 0:Es(Ar())?Ar():void 0,a=s?void 0:await WR(e,n),c=i?Ss(i):void 0,l=a?Ss(a):void 0,u,p,f,m=new Set;if(s){u=Ss(s),p=s,f=s;for(let x of Object.keys(u))m.add(x)}else if(c&&l){u=Ys(l,c),p=i,f=a;for(let x of Object.keys(l))x in c||m.add(x)}else if(c)u=c,p=i;else if(l){u=l,p=a,f=a;for(let x of Object.keys(l))m.add(x)}else u=JR();delete u.installation_id;let g=f?await VR(f,n):!1;YR(u,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await Ii(n,{sessionId:t.sessionId}),O=xr(u);return{manifestPath:p??C,manifest:u,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:O,hookConfig:cr(O),platformAgentId:u.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as XR,readdirSync as qR,readFileSync as ZR,statSync as Pf,unlinkSync as QR,writeFileSync as eC}from"node:fs";import{homedir as fr}from"node:os";import{join as ys}from"node:path";var tC="turns",Nf=1440*60*1e3,nC=100,rC=new Set(["stop","stopfailure","sessionend"]);function Rs(e=fr()){return ys(Ee(e),tC)}function wf(e,t){return ys(e,Tt(t))}function oC(e,t=Date.now()){let n;try{n=qR(e)}catch{return}let r=0;for(let o of n){if(r>=nC)return;r+=1;try{let s=ys(e,o);t-Pf(s).mtimeMs>Nf&&QR(s)}catch{}}}function sC(e,t,n=fr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Rs(n);XR(s,{recursive:!0}),eC(wf(s,r),o,"utf8")}catch{}}function iC(e,t=fr()){let n=e.trim();if(!n)return"";try{let r=wf(Rs(t),n);return Date.now()-Pf(r).mtimeMs>Nf?"":ZR(r,"utf8").trim()}catch{return""}}function Mf(e,t,n,r=fr()){let o=t.trim(),s=rC.has(n.trim().toLowerCase());return s&&oC(Rs(r)),o?(sC(e,o,r),o):s?iC(e,r):""}async function Lf(e,t,n,r){let o=t??await cn(hn),s=me(o,{}),i=await kf(process.cwd(),{sessionId:Ut(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=cr(r));let a=Oa(s,i.manifest.platform,n),c=Ta(e,a.runnerEvent);if(!c){T(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:Mf(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await Of(l)}function aC(e,t=!1){if(H("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=vt(r,o,void 0,n.runner);return wn(o,s)?!0:t}function vf(e,t){let n=Cr(e),r=me(t,{}),o=n.event??Yr(r);return Ms()||Aa(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}async function Uf(e=process.argv.slice(2)){if($a(),H("EV_AI_HOOK_JUDGE")==="1"){try{await cn(hn)}catch{}return dr(),0}if(e[0]===ds){try{await pf(mr)}catch{}return 0}if(e[0]===ur){try{let t=await mr(),n=vf(e.slice(1),t);if(!n)return 0;let{parsed:r}=n;await Lf(r.event,t,r.runner,Vr(r))}catch(t){let n=t instanceof Error?t.message:String(t);T(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await cn(hn),n=vf(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Fa(o,s,r.runner))return 0;aC(n)?await Lf(r.event,t,r.runner,Vr(r)):await mf(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);T(`WARN: hook failed open: ${n}`)}finally{dr()}return 0}Uf().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]&&l.add(T[1])}for(let A of Xt(e,"env_vars"))l.add(A);let m=ZE(e,"env_http_headers");for(let[,A]of m)A.length>0&&l.add(A);let g=Yo(e,"bearer_token_env_var");g&&(l.add(g),n.bearer_token_env_var=g),l.size>0&&(n.env_var_names=[...l].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=Yo(e,"auth");S&&(n.auth=S);let C=Yo(e,"default_tools_approval_mode");return C&&(n.default_tools_approval_mode=C),QE(n,e),n}var Ne=je(Je(),1);import{createHash as iy}from"node:crypto";import{join as Zt}from"node:path";var ry=300,oy=256;function wl(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 rr(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 Ml(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function sy(e){return Ml(e,ry)}function Ll(e,t){let n=wl(e.trim(),t),r=rr(n);if(r.length===0)return"";let[o,...s]=r,i=it(o),a=qt(s);return sy([i,...a].join(" "))}function vl(e,t){if(typeof e!="string")return null;let n=wl(e.trim(),t),r=rr(n)[0];if(!r)return null;let o=it(r);return o.length===0?null:Ml(o,oy)}function ay(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 cy(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
41
|
+
`);return iy("sha512").update(t).digest("hex").slice(0,16)}function uy(e){let t=process.platform==="win32"?Zt(L("LOCALAPPDATA")??e,"npm-cache"):Zt(e,".npm"),n=L("npm_config_cache")??L("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Hl(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function ly(e,t,n){let r=cy(e);for(let o of uy(n)){let s=Zt(o,"_npx",r),i=te(Zt(s,"node_modules",...t.split("/"),"package.json"),{}),a=Hl(i.version);if(a!==null)return a;let c=te(Zt(s,"package-lock.json"),{}),u=Hl(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function fy(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function Zo(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:fy(o),...ay(o,ly(r,s,n))}}function Ul(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=rr(e.trim());return n===void 0?null:Zo(n,r,t)}function or(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 Zo(typeof n.command=="string"?n.command:null,r,t)}function Dl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Zo(yt(n[1]??""),Xt(e,"args"),t)}function my(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 Fl(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=my(a),u=Tl(a,c);Object.assign(u,or(a,e.home)??{});let l=kl(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:qo(i,u,l),origin:n,enabled:l,attributes:u})}}function $l(e,t,n){if(!py(t)||!e.claimFile(t))return;let r;try{r=dy(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=Nl(l,p);Object.assign(f,Dl(l,e.home)??{});let m=Pl(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:qo(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as hy,readdirSync as Sy}from"node:fs";import{join as ce}from"node:path";function gy(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 _y(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 Qo(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 _y(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=gy({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:Ll(l,e.home)}:{}}})}}}function es(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Qo(e,t,r.hooks,n)}var jl=50;function Qt(e,t,n,r){if(!hy(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(jl,()=>{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"]})});es(e,ce(t,"hooks","hooks.json"),n),es(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=jl;return{componentCount:i,expandTruncated:a}}function en(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 Bl(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=Qt(e,T.installPath,S,p);C+=x.componentCount,A=A||x.expandTruncated}en(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 Ey(e){let t=e,n="";try{let r=Sy(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 yy=/^\d+$/;function Ry(e){let t=e.filter(n=>!yy.test(n.pluginId));return t.length>0?t:e}function Kl(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}=Qt(e,c,u,!0);en(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}=Ey(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of Ry(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=Qt(e,a.installPath,u,!0);en(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 Iy}from"node:fs";var Cy=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,ts="<path>",Ay=new RegExp(`${ts}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function sr(e){let t=e.replace(Cy,ts).replace(Ay,ts);return t.length>200?`${t.slice(0,200)}...`:t}var Gl=200,zl=200,ns=16*1024,Wl=6,by=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),xy=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),Oy=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),Ty=new Set(["permissions"]),ky={claude:by,cursor_sandbox:xy,cursor_permissions:Oy,cursor_cli:Ty},Py=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ir(e){return e.replace(/\\/g,"/")}function rs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>rs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${rs(t[r])}`).join(",")}}`}function Ny(e){return X(`${rs(e)}|settings1`)}function ql(e){let t=ir(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 Zl(e,t){if(e!=="claude")return{};let n=ir(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 Ql(e){let t=ir(e).replace(/\/+$/,"");return t.length<=1?"":t}function ef(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function wy(e,t){let n=ir(e);if(n==="~"||n.startsWith("~/"))return n;let r=Ql(t);if(!r)return n;let o=n.slice(0,r.length);if(!(ef(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var Vl=new Map;function My(e){let t=Vl.get(e);if(t!==void 0)return t;let n=Ql(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,ef(e)?"gi":"g")}return Vl.set(e,r),r}function Ly(e,t){let n=My(t);return n?e.replace(n,"~"):e}function Jl(e,t){return e.length<=zl?e:(t.truncated=!0,e.slice(0,zl))}function tf(e,t){return e.length<=Gl?e:(t.truncated=!0,e.slice(0,Gl))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return Jl(wy(e,n),r);let o=t==="rule"?sr(e):e;return Jl(Ly(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=tf(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 Yl(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";Py.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function vy(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=tf(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 Hy(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 Uy(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=Hy(s,t,n):o==="credentials"?i=vy(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function Dy(e,t,n,r,o){return n==="claude"?e==="permissions"?Yl(t,r,o):e==="sandbox"?Uy(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"?Yl(t,r,o):ne(t,"plain",r,o)}function tn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function os(e,t){return e?`${e}.${t}`:t}function ss(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>=Wl?(e.splice(o,1),r.add(n)):ss(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>=Wl?(delete e[o],r.add(os(n,o))):ss(s,t+1,os(n,o),r))}function nf(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:tn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))nf(o,os(t,r),n)}function Fy(e,t,n){let r=tn(e);if(r<=ns)return;t.truncated=!0;let o=[];for(nf(e,"",o);r>ns;){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=tn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;tn(e)>ns;){let s,i=-1;for(let[a,c]of Object.entries(e)){let u=tn(c);u>i&&(s=a,i=u)}if(s===void 0)break;delete e[s],n.add(s)}}function $y(e,t,n){let r=ky[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let u=Dy(c,e[c],t,n,o);u!==void 0&&(s[c]=u)}i.sort();let a=new Set;return ss(s,1,"",a),a.size>0&&(o.truncated=!0),Fy(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function Xl(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:Ny(t.attributes),attributes:t.attributes};e.push(n)}function is(e,t,n,r){if(!e.claimFile(t)||!Iy(t))return;let o=Fs(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),Xl(e,{kind:r.kind,absPath:t,origin:n,attributes:l})}return}let s=o.value,i=s.hooks;if(Xe(i)&&Qo(e,t,i,n),!r.profile)return;let a=$y(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),Xl(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as jy}from"node:fs";import{join as we}from"node:path";var rf=".claude/skills/synced",of=".claude/plugins/synced";function sf(e){return[we(e,rf),we(e,of)]}function ar(e){return typeof e=="string"&&e.length>0?e:void 0}function af(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()||!jy(a))continue;let c=s.get(i.name),u=ar(c?.source),l=ar(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 cf(e){let t=we(e.home,of);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=ar(a?.marketplaceName),u=ar(a?.version),l=c?`${i.name}@${c}`:i.name,p=we(r,i.name),{componentCount:f,expandTruncated:m}=Qt(e,p,`plugin:${l}`,!0);en(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 Ky(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:sf(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=El(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:By(a)})}for(let i of Gi(n))is(e,Rt(r,i),o,{kind:"SETTINGS",profile:ql(i)});for(let i of n.mcpJson??[])Fl(e,Rt(r,i),o);for(let i of n.mcpToml??[])$l(e,Rt(r,i),o);if(s){if(n.managed){for(let i of xn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=Zl(n.managed,i);is(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(Bl(e),cf(e),af(e)):n.plugins==="cursor"&&Kl(e)}}function uf(e,t){try{let n=new Vn(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Ky(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 as(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=uf(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=bo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>Wi(c,l)});i=u.parentRel;for(let l of u.anchors){let p=fo(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let f=uf(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:xo,scopeRef:p});f&&(r[l.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function cs(e,t,n={}){let r=n.truncated===!0,o=Kt(e),s=new Set(e.map(l=>he(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=he(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=Bc(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 ff=2*1024*1024,Gy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function us(e,t,n){let r=new Set(t.map(s=>he(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(he(s.path,s.name))||o.push(s));return o}function ls(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 lf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function pf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function fs(e,t=ff){let n=[],r=[];for(let l of e)Gy.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=lf(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=pf(l),g=lf(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 ps(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:pf(n))}var zy=["user","cwd","repo","parent"];function ds(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of zy){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,b=cs(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),H=us(k.components,b.upserts,N),d=ps([...b.upserts,...H],N);s.push({scope:M,walk:k,delta:b,outgoing:d,outgoingKeys:new Set(d.map(I=>he(I.path,I.name))),deliveredTextHashes:N,cachedComponents:D})}let i=s.flatMap(M=>M.outgoing),a=fs(i,o),c=new Set(a.components.map(M=>he(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(he(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[he(I.path,I.name)];for(let I of b)d[he(I.path,I.name)]=I.content_hash;S.push({scope:k,scopeRef:K.scopeRef,components:d,textHashes:ls(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:Kt(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 cr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function ms(e){return e==="cwd"||e==="repo"||e==="parent"}function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gs(e){return!nn(e)||!nn(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 df(e){return Wy(e)}function mf(e){return Vy(e)}function gf(e){return Jy(e)}function Wy(e){if(!nn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Vy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function _f(e,t){if(!nn(e))return;let n=e[t];return gs(n)?n:void 0}function Jy(e){if(!nn(e))return{};let t={};for(let[n,r]of Object.entries(e))gs(r)&&(t[n]=r);return t}function _s(e,t=20){let n=[];for(let[r,o]of Object.entries(e))gs(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 Qy=["allow","deny","ask"];function lr(e){let t=te(e,{}),n=[];for(let r of Qy)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:sr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function eR(e){let{serverManaged:t,fileBased:n}=Dr(process.platform,e),r=lr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=lr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function tR(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 nR=10,rR="self-config-cache.json",Sf=4;function At(){return L("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function oR(){return L("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var sR={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function iR(e,t=ee){let n=sR[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 aR(e=hf()){return Ct(e,".ev-ai","agent-hook",rR)}function cR(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
43
|
+
`);return X(n)}function ur(e,t,n=!1){let r=cR(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 hs(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>Ct(e,a)),...n]){let a=Zy(i);if(s.has(a))continue;s.add(a);let c=Cr(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function uR(e){return Xy(e)?ge(qy(e,"utf8"),{}):{}}function lR(e,t){try{me(e,`${JSON.stringify(t)}
|
|
44
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: self-config cache write failed open: ${r}`)}}function fR(e,t,n){if(t==="user")return{components:df(e.user_spec_components),textHashes:mf(e.user_spec_text_hashes)};if(!ms(t))return{components:void 0,textHashes:[]};let r=_f(e[cr[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function pR(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=Sf,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(!ms(s.scope))continue;let i=cr[s.scope],a=gf(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]=_s(a)}}return o}async function Ef(e,t=process.cwd(),n=hf(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await iR(e),a="",c=[];if(o){let H=eR(n),d=lr(Ct(n,".claude/settings.json")),I=lr(Ct(t,".claude/settings.local.json"));a=H.model||I.model||d.model,c=tR([...H.permissionKeys,...d.permissionKeys,...I.permissionKeys]).slice(0,200)}let u={present:!1,size:0},l=H=>{let d=[],I=!1;for(let U of H){let ue=$s(Ct(n,U));if(d=d.concat(ue.entries),I=I||ue.truncated,d.length>=Be){d=d.slice(0,Be),I=!0;break}}return{entries:d,truncated:I}},p=aR(n),f=uR(p),m=f[e]??{},g=(m.send_count??0)+1,S=g>0&&g%nR===0,C=H=>S?void 0:m[H],A=l(We.skills),T=l(We.subagents),x=l(We.commands),M=l(We.rules),k={skills:ur(A.entries,C("skills"),A.truncated),subagents:ur(T.entries,C("subagents"),T.truncated),commands:ur(x.entries,C("commands"),x.truncated),rules:ur(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:hs(n,We.memory),settings:hs(n,We.settings,Vi(n)),mcp:hs(n,We.mcp)},local_settings:o?Cr(Ct(t,".claude/settings.local.json")):u},D=null,b=r.nowMs??Date.now();if(!At()){let H=m.user_spec_layout_version!==Sf,d=as(e,n,{launchCwd:oR()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(d.scopes).length>0){let I=ds({collected:d,cacheFor:(U,ue)=>H?{components:void 0,textHashes:[]}:fR(m,U,ue),nowMs:b});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=pR(m,k,g,D);return{config:K,commit:()=>{f[e]=N,lR(p,f)}}}import{homedir as PR}from"node:os";import{join as Cf}from"node:path";function at(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as fr}from"node:path";function dR(e){return fr(e,".ev-ai","agent-hook","js","signed-v1")}function mR(e){return fr(dR(e),"scopes")}function yf(e,t){return fr(mR(e),t)}function Rf(e){return fr(e,"attempts")}function Ss(e){return String(e).padStart(10,"0")}var gR=/^(\d{10})$/,_R=/^(\d{10})\.done$/,hR=/^[0-9a-f]{128}$/,SR=64;async function xf(e,t,n=!1){let r=Rf(t),o=await Fi(e,r),s=new Map,i=new Map,a=Af(o,gR),c=Af(o,_R),u=async f=>{let m=await bf(e,Cf(r,ER(f)));return m&&s.set(f,{record:RR(m.value),mtimeMs:m.mtimeMs}),m!==void 0},l=async f=>{let m=CR((await bf(e,Cf(r,yR(f))))?.value);return m&&i.set(f,m),m!==void 0};if(!n)return await Promise.all([...a.map(u),...c.map(l)]),{claims:s,dones:i};await Promise.all([If(a,u),If(c,l)]);let p=rn(s);return p<rn(i)&&c.includes(p)&&await l(p),{claims:s,dones:i}}function Af(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function If(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function rn(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Of(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 ER(e){return Ss(e)}function yR(e){return`${Ss(e)}.done`}async function bf(e,t){let n;try{n=await e.stat(t)}catch(o){if(Mt(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>br)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>br?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function RR(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 CR(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=AR(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function AR(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"&&hR.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&IR(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function IR(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==SR||t.toString("base64")!==e))return t.toString("hex")}function TR(e){return e==="bootstrap"?3e3:6e4}function kR(e,t){let n=rn(e.claims);if(n===0)return;let r=rn(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Of(o),c=o.record==="empty"?void 0:o.record.owner,u=TR(c)+3e4;if(t-a>u)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:Tf(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:Tf(i.selection)}}async function kf(e,t,n){try{let r=await xf($i(),yf(e,t),!0);return kR(r,n)}catch{return}}function Tf(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function Pf(e=PR()){let t=io()?.launcherScope;if(!t)return{};let n=await kf(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function It(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:yn,event:e,timestamp:ln(),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:Mr,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=io();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=mc(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 Lf}from"node:fs";import{spawn as vf}from"node:child_process";import{fileURLToPath as KR}from"node:url";import{gzipSync as NR}from"node:zlib";function Es(e){return L("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<mi?{body:e}:{body:NR(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function pr(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function ys(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}import{readFileSync as wR,statSync as MR}from"node:fs";import{homedir as Rs}from"node:os";import{join as LR}from"node:path";var vR="hook-config.json",HR=10080*60*1e3,UR=1440*60*1e3,DR=2048,FR=1024*1024;function bt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Nf(e=Rs()){return LR(pe(e),vR)}function wf(e){let t=Nf(e);try{let n=MR(t);if(!n.isFile()||n.size>FR)return;let r=JSON.parse(wR(t,"utf8"));return bt(r)?r:void 0}catch(n){return(n instanceof Error&&"code"in n?n.code:void 0)==="ENOENT"?null:void 0}}function $R(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function dr(e,t=Rs(),n=Date.now()){if(!e)return;let r=wt(e);if(!r)return;let o=wf(t),s=o?o[r]:void 0;if(!bt(s)||!bt(s.config))return;let i=s.fetched_at_ms;if(!(typeof i!="number"||n-i>HR))return $R(s.config)}function jR(e){let t=e.trim();if(t==="")return;let n;try{n=JSON.parse(t)}catch{return}if(!(!bt(n)||!bt(n.hook_config))&&!(Buffer.byteLength(JSON.stringify(n.hook_config),"utf8")>DR))return n.hook_config}function BR(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(!(bt(s)&&JSON.stringify(s.config)===JSON.stringify(n)&&typeof s.fetched_at_ms=="number"&&s.fetched_at_ms<=r&&r-s.fetched_at_ms<UR))return o[t]={config:n,fetched_at_ms:r},o}function Mf(e,t,n=Rs(),r=Date.now()){let o=jR(e),s=t?wt(t):void 0;if(o===void 0||!s)return"skipped";try{let i=wf(n);if(i===void 0)return"skipped";let a=BR(i??{},s,o,r);return a?(me(Nf(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 O(`WARN: hook config write failed open: ${a}`),"failed"}}var Cs="__post",mr="__work";async function GR(e,t,n={}){if(At())return e;let r=await mo(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 zR(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 Hf(e){switch(e){case"session_start":return li;case"session_end":return fi;case"tool_invoked":case"skill_invoked":return Nr;default:return Nr}}function WR(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
46
|
+
${n}`}function Uf(e,t=[],n=process.execPath,r=import.meta.url,o=Lf){if(ui(n))return{command:n,args:[e,...t]};let s=KR(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function VR(e=process.execPath,t=import.meta.url,n=Lf){return Uf(Cs,[],e,t,n)}function JR(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 Df(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();Mf(n,t)}catch{}}async function Ff(e,t=fetch){let n=await e(),r=JR(n);if(!r)return;let{meta:o,body:s}=r,i=Es(s),a=pr(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await Df(c,o.url)}catch{}}async function YR(e,t,n,r=fetch){let o=Hf(e),s=Es(t),i=pr(s.contentEncoding),a=ys(s.body);O(`POST event=${e} url=${Sn(n)} size=${a} encoding=${s.contentEncoding??"identity"} platform=${process.platform}`);let c=Date.now();try{let u=await r(n,{method:"POST",headers:i,body:s.body,signal:AbortSignal.timeout(o)});if(!u.ok&&s.contentEncoding==="gzip"&&(u.status===400||u.status===415)){try{await u.text()}catch{}O(`POST gzip rejected http=${u.status} \u2014 retrying uncompressed`),u=await r(n,{method:"POST",headers:pr(),body:t,signal:AbortSignal.timeout(o)})}let l=Date.now()-c;if(u.ok)return O(`POST outcome=ok elapsed_ms=${l} http=${u.status}`),await Df(u,n),!0;let p=(await u.text()).slice(0,200).replace(/[\n\r]/g,"");return O(`POST outcome=fail elapsed_ms=${l} http=${u.status} body=${p}`),!1}catch(u){let l=Date.now()-c,p=u instanceof Error?u.message:String(u);return O(`POST outcome=fail elapsed_ms=${l} http=000 body=${p}`),!1}}async function $f(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){O(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},pi),u=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>u()),s.stdin.once("error",()=>u())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return O(`WARN: ${o} spawn failed open: ${i}`),null}}async function XR(e,t,n,r=vf,o=VR){let s=Hf(e),i=WR(n,s,t),{command:a,args:c}=o();return $f(a,c,i,r,"detached post")}async function jf(e,t,n=vf,r=Uf){let{command:o,args:s}=r(mr,t);return $f(o,s,e,n,"detached work")}async function xt(e,t,n,r,o,s,i){if(!o)return O("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!hn(o))return O(`WARN: collector URL blocked (https required): ${Sn(o)}`),!1;let a=await GR(t,n.runnerPlatform,i),c=r(e,a,{...n,collectorUrl:o});s!==void 0&&(c.build_ms=Math.max(0,Date.now()-s));let u=JSON.stringify(c),l=`${u}
|
|
48
|
+
`,p=L("EV_AI_HOOK_DEBUG");p==="full"?O(`DEBUG envelope=${u}`):p==="1"&&O(`DEBUG summary=${zR(c,ys(l))}`);let f=process.argv.includes(mr),m=L("EV_AI_HOOK_SYNC")==="1";return Un(n.runnerEvent,n.runnerPlatform)||f||m?YR(e,l,o):(await XR(e,l,o),!1)}import{createReadStream as qR}from"node:fs";import{stat as ZR}from"node:fs/promises";import{basename as QR,resolve as eC}from"node:path";import{createInterface as tC}from"node:readline";var nC=1024*1024;function rC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&QR(t).endsWith(".jsonl")}async function Bf(e){if(!e||!rC(e))return null;try{let t=eC(e),n=await ZR(t);if(!n.isFile())return null;let r=Math.max(0,n.size-nC),o=[],s=tC({input:qR(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 gr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Xc(e.manifest.manifest,e.manifest.hookConfig)}}function sn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Is(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:Ro(e.manifest.hookConfig)}}async function zf(e){let t=Date.now();await gC(e);let{gitRoot:n}=e.manifest;await xs(e,n);let r=Is(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:zn(e.hookInput,e.manifest.manifest,r),envelopeFields:gr(e),launchCwd:Ao(e.hookInput,r),home:sC()}}function Kf(e){try{return _e(oC(e))}catch{return null}}function Wf(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Gf(e,t){let n=e.replaceAll("\\","/");if(!Wf(n))return null;let r=_e(e),o=_e(t),s=Kf(e)??r,i=Kf(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function Vf(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Gf(e,t)??(Wf(r)?null:r),i=Gf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function As(e,t,n,r,o){return Jf(e,Vf(n,t.gitRoot,t.home),r,o)}function Jf(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?iC({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 iC(e){try{let t=e.inRepository?uC(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 Yf(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 bs(e,t,n){return xt("tool_invoked",{...n,...Yf(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,sn(e,t.home))}function aC(e){return va(e.runnerEvent,e.runnerPlatform)?[]:ea(e.hookInput)}function cC(e,t){return bs(e,t,{})}var Xf=new Set([...Object.values(tt),".github"]);function uC(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=>Xf.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var qf=".codex/config.toml",lC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",qf]]);function fC(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?lC.get(c.source):o==="codex"?qf: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||!Xf.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function pC(...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 dC(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 mC(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,on=null;async function gC(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!_o(n)){ct.add(t);return}let r=kt({sessionId:e.sessionId,hostname:dn()});if(Gc(r)){if(on){await on;return}on=(async()=>{if(ct.has(t)||!_o(n)){ct.add(t);return}if(!Pi(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 Zf(e,r,vn(i),go({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),l={...u,self_config:mC(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await xt("session_start",l,gr(e),It,e.manifest.collectorUrl,s,sn(e)),o&&(c.commit(),ct.add(t))}finally{Ni(n)}})().finally(()=>{on=null}),await on}}async function xs(e,t,n){try{e.platformAgentId=await ba(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 Zf(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,Gs(),_c(t),Ws(),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 xs(e,e.manifest.gitRoot,u),{operatorResolved:m,fields:{identity:{host:dn(),context:t,virt:l||null,cloud:p,git:u},host_env:f,env_vars:Ac()}}}async function _C(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=kt({sessionId:e.sessionId,hostname:dn()}),o=String(e.runnerPlatform),s=Is(e),i=Ao(e.hookInput,s),a=vn(n),c=Pf().catch(()=>({})),u=At()?Promise.resolve({commit:()=>{}}):go({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),l=Zf(e,r,a,u),[p,f]=await Promise.allSettled([co(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Ef(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,dC(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:zn(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await xt("session_start",x,{...gr(e),...M},It,e.manifest.collectorUrl,t,sn(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function hC(e){let t=Date.now(),[,n]=await Promise.all([xs(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?Bf(v(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=pC(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=zn(e.hookInput,e.manifest.manifest,Is(e));n&&(s.model=n),r!=="stopfailure"&&!qc(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await xt("session_end",{status:o,...n?{model:n}:{},hook_input:s},gr(e),It,e.manifest.collectorUrl,t,sn(e))}async function SC(e){let t=aC(e),n=ka(e.hookInput),r=La(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await zf(e);await Promise.all([o?cC(e,s):void 0,t.length===0?void 0:EC(e,s,t),n.length===0?void 0:yC(e,s,n)])}function Qf(e,t,n,r){let o=r??Qi({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=As(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&$r(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??Pa({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=As(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 EC(e,t,n){let r=Tn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=Qf(e,t,o,r);return bs(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 yC(e,t,n){return Promise.all(n.map(r=>{let o=xa({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=As(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Ta(r);return bs(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var RC=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function CC(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Br(e.hookInput);if(r===null)return n.skillName===null?{}:Qf(e,t,n.skillName,null);let o=Vf(r,t.gitRoot,t.home);for(let s of RC){let i=Jf(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 AC=/mcp/i;function IC(e,t,n,r){let o=AC.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?Ul(t,n):or(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 bC(e){let t=await zf(e),n=Da(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=jr(e.hookInput),i=vl(s,t.home),a=$a(e.hookInput),c=Ha(e.runnerEvent),u=c===!1?ja(e.hookInput,e.runnerEvent):null,l=$t(v(e.hookInput,"mcp_server_name")),p=l!==null||r!==null&&Dn(r)?await co(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=Ka(r,p.map(K=>K.name),l??""),g=fC(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,l),S=g===void 0?CC(e,t,n):{},C=f===null?null:Cc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=IC(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),T=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=Fa(e.hookInput);await xt("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}:{},...Yf(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,sn(e,t.home))}async function ep(e){switch(e.internalEvent){case"session_start":await _C(e);return;case"session_end":await hC(e);return;case"skill_invoked":await SC(e);return;case"tool_invoked":await bC(e);return;default:return}}import{existsSync as Ts,readFileSync as xC}from"node:fs";import{dirname as OC,isAbsolute as TC,join as kC,relative as PC}from"node:path";function tp(e){for(let t of oi){let n=kC(e,t);if(Ts(n))return n}}async function NC(e=process.cwd(),t){let n=t??await Rr(e);return tp(n)??tp(e)}async function wC(e,t){let n=t??await Rr(OC(e)),r=PC(n,e);if(r.startsWith("..")||TC(r))return!1;let o=await Ee("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 Os(e){let t=xC(e,"utf8");return ge(pn(t),{})}function MC(){return{schema_version:yn,mcp_servers:[]}}function LC(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))}async function np(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await yr(e),o=L("EV_AI_HOOK_MANIFEST"),s=o&&Ts(o)?o:void 0,i=s?void 0:Ts(Nt())?Nt():void 0,a=s?void 0:await NC(e,n),c=i?Os(i):void 0,u=a?Os(a):void 0,l,p,f,m=new Set;if(s){l=Os(s),p=s,f=s;for(let x of Object.keys(l))m.add(x)}else if(c&&u){l=ii(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=MC();delete l.installation_id;let g=f?await wC(f,n):!1;LC(l,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await vi(n,{sessionId:t.sessionId}),T=Pr(l);return{manifestPath:p??C,manifest:l,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:T,hookConfig:dr(T),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as vC,readdirSync as HC,readFileSync as UC,statSync as rp,unlinkSync as DC,writeFileSync as FC}from"node:fs";import{homedir as _r}from"node:os";import{join as ks}from"node:path";var $C="turns",op=1440*60*1e3,jC=100,BC=new Set(["stop","stopfailure","sessionend"]);function Ps(e=_r()){return ks(pe(e),$C)}function sp(e,t){return ks(e,Tt(t))}function KC(e,t=Date.now()){let n;try{n=HC(e)}catch{return}let r=0;for(let o of n){if(r>=jC)return;r+=1;try{let s=ks(e,o);t-rp(s).mtimeMs>op&&DC(s)}catch{}}}function GC(e,t,n=_r()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Ps(n);vC(s,{recursive:!0}),FC(sp(s,r),o,"utf8")}catch{}}function zC(e,t=_r()){let n=e.trim();if(!n)return"";try{let r=sp(Ps(t),n);return Date.now()-rp(r).mtimeMs>op?"":UC(r,"utf8").trim()}catch{return""}}function ip(e,t,n,r=_r()){let o=t.trim(),s=BC.has(n.trim().toLowerCase());return s&&KC(Ps(r)),o?(GC(e,o,r),o):s?zC(e,r):""}async function ap(e,t,n,r){let o=t??await fn(Rn),s=ge(o,{}),i=await np(process.cwd(),{sessionId:Ft(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=dr(r));let a=Ua(s,i.manifest.platform,n),c=Qr(e,a.runnerEvent);if(!c){O(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let u={hookInput:s,sessionId:a.sessionId,turnId:ip(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await ep(u)}function WC(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 Un(o,s)?!0:t}function cp(e,t){let n=Or(e),r=ge(t,{}),o=n.event??Zr(r);return Bs()||Ma(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function lp(e){return oc(Qr(e.parsed.event,e.runnerEvent))}async function up(e,t){let{parsed:n}=e;if(lp(e)){await ap(n.event,t,n.runner,Xr(n));return}let r=ro(n.cap),o=pc(r);if(!o){so(r);return}try{await ap(n.event,t,n.runner,Xr(n))}finally{oo(o)}}async function fp(e=process.argv.slice(2)){if(dc(),L("EV_AI_HOOK_JUDGE")==="1"){try{await fn(Rn)}catch{}return Sr(),0}if(e[0]===Cs){try{await Ff(Er)}catch{}return 0}if(e[0]===mr){try{let t=await Er(),n=cp(e.slice(1),t);if(!n)return 0;await up(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 fn(Rn),n=cp(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Ja(o,s,r.runner))return 0;if(WC(n))await up(n,t);else{let i=lp(n)?void 0:ro(r.cap);i===void 0||lc(i)?await jf(t,e):so(i)}}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: hook failed open: ${n}`)}finally{Sr()}return 0}fp().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
47
49
|
`),process.exit(1)});
|