@ev-ai/agent-hook 1.3.4 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COLLECTED-DATA.md +2 -2
- package/README.md +3 -3
- package/dist/cli.mjs +38 -38
- package/dist/hook.mjs +32 -32
- package/dist/launcher-update.mjs +4 -4
- package/dist/launcher.mjs +4 -3
- package/dist/managed-hooks-snippet.cjs +3 -15
- package/dist/managed-hooks-snippet.mjs +3 -15
- package/dist/plugin-hooks.mjs +30 -41
- package/package.json +2 -2
package/dist/hook.mjs
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module';
|
|
2
2
|
const require = __createRequire(import.meta.url);
|
|
3
3
|
|
|
4
|
-
var 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=
|
|
4
|
+
var Cp=Object.create;var Hs=Object.defineProperty;var Ap=Object.getOwnPropertyDescriptor;var Ip=Object.getOwnPropertyNames;var bp=Object.getPrototypeOf,Op=Object.prototype.hasOwnProperty;var $e=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ip(t))!Op.call(e,o)&&o!==n&&Hs(e,o,{get:()=>t[o],enumerable:!(r=Ap(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?Cp(bp(e)):{},xp(t||!e||!e.__esModule?Hs(n,"default",{value:e,enumerable:!0}):n,e));var Nn=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=aa;q.buildMcpFamilyCanonicalKey=gm;q.launchContainsCredentials=hm;q.serializeMcpLaunchIdentity=ca;q.hashMcpLaunchIdentity=Ht;q.projectMcpMissingLaunchIdentity=ym;q.projectMcpLaunchIdentity=Rm;q.maskMcpLaunchForDisplay=Am;q.normalizeMcpToolNames=Im;var mm=$e("node:crypto");q.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";q.MCP_MISSING_LAUNCH_SERIALIZED=`${q.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function Le(e){return e.toLocaleLowerCase("en-US")}function aa(e){return Le(e)}function gm(e){return`interface:${aa(e)}`}var ia=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),_m=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function hm(e){return e.kind==="url"?Sm(e.url):e.kind==="command"?e.arguments.some(t=>_m.test(t)):!1}function Sm(e){try{let t=new URL(e);if(t.username.length>0||t.password.length>0)return!0;for(let n of t.searchParams.keys())if(ia.has(Le(n)))return!0;return!1}catch{let t=e.split("://",2),n=t.length===2?t[1]:e,r=n.indexOf("@"),o=n.indexOf("/");if(r>0&&(o===-1||r<o))return!0;let s=e.split("?",2)[1];return s===void 0?!1:s.split("&").some(i=>{let a=Le(i.split("=",1)[0]??"");return ia.has(a)})}}function ca(e){if(e.kind==="url")return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",mt(Le(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",mt(Le(e.command)),String(t.length),...t.map(mt)].join("|")}return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",mt(e.installationRootExternalKey),mt(e.sourcePath),mt(e.nativeKey)].join("|")}function Ht(e){return(0,mm.createHash)("sha256").update(e).digest("hex")}var Em=Ht(q.MCP_MISSING_LAUNCH_SERIALIZED);function ym(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:Em}}function Rm(e){let t=ca(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:Ht(t)}:e.kind==="command"?{kind:"command",command:Le(e.command),arguments:[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Ht(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Ht(t)}}var Cm=/^(https?:\/\/)([^/?#]*@)/i;function Am(e){return e.replace(Cm,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function Im(e){let t=new Set,n=[];for(let r of e)r.length===0||t.has(r)||(t.add(r),n.push(r));return n.sort((r,o)=>r<o?-1:r>o?1:0),n}});var Mn=W(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.PACKAGE_FIELD_MAX=void 0;xe.npxExecBin=ua;xe.packageNameFromSpec=wn;xe.pinnedPackageVersionFromSpec=la;xe.pinnedPackageVersionFromNpx=Mm;xe.npxPackageSpecs=fa;xe.PACKAGE_FIELD_MAX=128;var bm=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Om=new Set(["-p","--package"]),xm=new Set(["-c","--call"]),Tm=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),km=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Pm=/^--no-/;function Nm(e){return km.has(e)||Pm.test(e)}function ua(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var wm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function wn(e){if(e.length===0||e.length>xe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return bm.test(n)?n:null}function la(e){let t=wn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return wm.test(n)?n:void 0}function Mm(e,t){for(let n of fa(e,t)){let r=la(n);if(r!==void 0)return r}}function fa(e,t){let n=ua(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(xm.has(u))return[];if(Om.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&o.push(l),c===-1&&(i+=1);continue}if(!(c!==-1||Nm(u))){if(Tm.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>wn(i)!==null)?o:[]:s===null||wn(s)===null?[]:[s]}});var pa=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=Wm;var Lm=Nn(),Yr=Mn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var vm=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Hm=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Um=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Dm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Fm=new Set(["--from","--spec"]),$m=new Set(["--python","-p","--with","--with-editable","--with-requirements","--index","--index-url","--default-index","--extra-index-url","--find-links","-f","--constraint","-c","--override","--refresh-package","--cache-dir","--directory","--project","--config-file","--color","--exclude-newer","--pip-args","--verbose-pip"]),jm=new Set(["-q","--quiet","-v","--verbose","-n","--native-tls","--offline","--isolated","--preview","--refresh","--reinstall","--upgrade","-U","--force","--system","--system-site-packages","--path","--managed-python","--progress"]),Bm=/^--no-/;function Km(e,t){let n=Dm(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(Fm.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&(o=l),c===-1&&(i+=1);continue}if(!(c!==-1||jm.has(u)||Bm.test(u))){if($m.has(u)){i+=1;continue}return null}}return o??s}function Gm(e){if(e.length===0||e.length>Yr.PACKAGE_FIELD_MAX)return null;let t=e.includes("==")?"==":e.includes("@")?"@":null;if(t===null)return null;let n=e.indexOf(t),r=e.slice(0,n),o=e.slice(n+t.length);return!Hm.test(r)||!Um.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function zm(e){let t=(0,Yr.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return vm.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Wm(e){if(e?.kind!=="command"||(0,Lm.launchContainsCredentials)(e))return;for(let n of(0,Yr.npxPackageSpecs)(e.command,e.arguments)){let r=zm(n);if(r!==null)return r}let t=Km(e.command,e.arguments);if(t!==null)return Gm(t)??void 0}});var Sa=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=Jm;ve.displayPublisherName=Ym;ve.classifyMcpProvenance=og;var ga=Nn(),Xr=Mn();ve.EMPTY_NPM_PUBLISHER="npm:";var da="npm:",Vm=/^[A-Za-z0-9._-]+$/;function Jm(e){return e.startsWith(da)&&e!==ve.EMPTY_NPM_PUBLISHER&&Vm.test(e.slice(da.length))}function Ym(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function ma(e){let t=e.split(".").map(Number);return t.length!==4||t.some(n=>!Number.isInteger(n)||n<0||n>255)?!1:t[0]===0||t[0]===10||t[0]===127||t[0]===169&&t[1]===254||t[0]===172&&(t[1]??0)>=16&&(t[1]??0)<=31||t[0]===192&&t[1]===168}function Xm(e){let t=/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/i.exec(e);if(t?.[1])return t[1];let n=/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i.exec(e);if(!n)return;let r=Number.parseInt(n[1],16),o=Number.parseInt(n[2],16);return`${r>>8&255}.${r&255}.${o>>8&255}.${o&255}`}function qr(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function qm(e){let t=qr(e),n=Xm(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||ma(t)||n!==void 0&&ma(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function Zm(e){let t=qr(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function Qm(e){let t=qr(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function _a(e){let t={kind:"url",url:e};if((0,ga.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||qm(n.hostname))return{origin:"UNKNOWN"};let r=Zm(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:Qm(n)}}catch{return{origin:"UNKNOWN"}}}var ha="mcp-remote";function eg(e,t){if(e===ha)return t.find(n=>/^https?:\/\//i.test(n))}function tg(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function ng(e,t,n){let r=eg(e,t);return r!==void 0?_a(r):e===ha?{origin:"UNKNOWN"}:tg(e,n)}function rg(e){let t=e.replaceAll("\\","/");return t.startsWith("~/")||t.startsWith("/")||/^[A-Za-z]:\//.test(t)?!1:t.startsWith("./")||t.startsWith("../")||t==="scripts"||t.startsWith("scripts/")}function og(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,ga.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return _a(t.url);let r=(0,Xr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Xr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=ng(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Xr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return rg(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ya=W(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.mcpServerToolSegmentForms=Ea;Ln.mcpServerNameMatchesToolSegment=sg;function Ea(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function sg(e,t){let n=t.toLowerCase();return Ea(e).some(r=>r.toLowerCase()===n)}});var Ra=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var ig=/^(?:>|\|)[-+]?$/,ag=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,cg=e=>{let t=e?.trim()??"";if(!(t.length===0||ig.test(t)))return t};ye.usableCatalogText=cg;var ug=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=ug;var lg=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return pg(n[1],t)};ye.parseFrontmatterField=lg;var fg=e=>e.replace(/^["']|["']$/g,"");function pg(e,t){let n=e.split(`
|
|
5
|
+
`),r=`${t}:`,o=n.findIndex(m=>m===r||m.startsWith(`${r} `)||m.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=ag.exec(s);if(!i){let m=fg(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
9
|
`):u.join(`
|
|
10
|
-
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var
|
|
11
|
-
`),n=!1;return t.map(o=>n?
|
|
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.4",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
|
|
16
|
-
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(
|
|
17
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: platform_agent_id cache write failed open: ${i}`)}}function
|
|
18
|
-
`,{encoding:"utf8",flag:"wx"})}function
|
|
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
|
|
21
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(
|
|
10
|
+
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var Ia=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=dg;Z.capComponentTextBytes=Aa;Z.prepareComponentInspectionText=mg;Z.redactComponentSource=Zr;Z.componentSourceContainsRedactableSecret=Rg;Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function dg(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 Aa(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 mg(e){if(!(e==null||e.length===0))return Aa(Zr(e),Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var gg=[/\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],_g=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,hg=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,Sg=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,Eg=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,Ca=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function yg(e){let t=e.replace(hg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(Sg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(_g,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of gg)t=t.replace(n,Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function Zr(e){if(e.length===0)return e;let t=e.split(`
|
|
11
|
+
`),n=!1;return t.map(o=>n?Ca.test(o)?(n=!1,o):o.trim().length===0?o:Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:Eg.test(o)&&!Ca.test(o)?(n=!0,o):yg(o)).join(`
|
|
12
|
+
`)}function Rg(e){return Zr(e)!==e}});var Je=W(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.redactComponentSource=E.prepareComponentInspectionText=E.fitSnapshotInspectionTextBudget=E.componentSourceContainsRedactableSecret=E.capComponentTextBytes=E.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=E.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=E.COMPONENT_INSPECTION_TEXT_MAX_BYTES=E.usableCatalogText=E.parseFrontmatterField=E.parseFrontmatterDescription=E.mcpServerToolSegmentForms=E.mcpServerNameMatchesToolSegment=E.isNpmRegistryPublisher=E.EMPTY_NPM_PUBLISHER=E.displayPublisherName=E.classifyMcpProvenance=E.resolveMcpPackageIdentity=E.McpPackageEcosystem=E.pinnedPackageVersionFromSpec=E.pinnedPackageVersionFromNpx=E.packageNameFromSpec=E.npxPackageSpecs=E.npxExecBin=E.PACKAGE_FIELD_MAX=E.serializeMcpLaunchIdentity=E.projectMcpMissingLaunchIdentity=E.projectMcpLaunchIdentity=E.normalizeMcpToolNames=E.MCP_MISSING_LAUNCH_SERIALIZED=E.MCP_LAUNCH_IDENTITY_ALGORITHM=E.maskMcpLaunchForDisplay=E.launchContainsCredentials=E.hashMcpLaunchIdentity=E.foldMcpName=E.buildMcpFamilyCanonicalKey=E.ComponentKind=void 0;E.userConfigRootFromPath=Ng;E.installationRootExternalKey=wg;E.normalizeRepositoryRelativePath=ba;E.nativeKeyForSkillPath=Mg;E.nativeKeyForRulePath=Lg;E.nativeKeyForCommandPath=vg;E.serializeComponentIdentity=xa;E.buildComponentReference=Ug;E.validateComponentReference=Dg;var Cg=$e("node:crypto"),Ag=$e("node:path"),Ig="cmp1_",bg=/^cmp1_[A-Za-z0-9_-]{43}$/,Og=["/skills/","/skills-cursor/"],xg=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Tg=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,kg=[".cursor",".claude",".codex"],Pg={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Ng(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>kg.includes(o));return n||(t.map(o=>Pg[o]).find(o=>o!==void 0)??"unknown")}function wg(e,t){return`runtime-install:${e}/${t}`}function vn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function ba(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Ag.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return vn(n,"sourcePath")}function Mg(e){let t=e.replaceAll("\\","/");for(let n of Og){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Oa(e,t,n){let r=e.replaceAll("\\","/"),s=t.exec(r)?.[1];if(!s||s.split("/").includes(".."))return null;let i=s.replace(n,"");return i.length>0?i:null}function Lg(e){return Oa(e,xg,/\.(mdc|md|rules)$/i)}function vg(e){return Oa(e,Tg,/\.(md|mdc|toml)$/i)}function Hg(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function xa(e){let t=[vn(e.installationRootExternalKey,"installationRootExternalKey"),vn(e.installableKind,"installableKind"),ba(e.sourcePath),vn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Hg).join("|")}`,"utf8")}function Ug(e){let t=(0,Cg.createHash)("sha256").update(xa(e)).digest("base64url");return`${Ig}${t}`}function Dg(e){return bg.test(e)}var Re=Nn();Object.defineProperty(E,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Re.buildMcpFamilyCanonicalKey}});Object.defineProperty(E,"foldMcpName",{enumerable:!0,get:function(){return Re.foldMcpName}});Object.defineProperty(E,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.hashMcpLaunchIdentity}});Object.defineProperty(E,"launchContainsCredentials",{enumerable:!0,get:function(){return Re.launchContainsCredentials}});Object.defineProperty(E,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Re.maskMcpLaunchForDisplay}});Object.defineProperty(E,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Re.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(E,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Re.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(E,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Re.normalizeMcpToolNames}});Object.defineProperty(E,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpLaunchIdentity}});Object.defineProperty(E,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpMissingLaunchIdentity}});Object.defineProperty(E,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.serializeMcpLaunchIdentity}});var gt=Mn();Object.defineProperty(E,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return gt.PACKAGE_FIELD_MAX}});Object.defineProperty(E,"npxExecBin",{enumerable:!0,get:function(){return gt.npxExecBin}});Object.defineProperty(E,"npxPackageSpecs",{enumerable:!0,get:function(){return gt.npxPackageSpecs}});Object.defineProperty(E,"packageNameFromSpec",{enumerable:!0,get:function(){return gt.packageNameFromSpec}});Object.defineProperty(E,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromNpx}});Object.defineProperty(E,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromSpec}});var Ta=pa();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return Ta.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return Ta.resolveMcpPackageIdentity}});var Hn=Sa();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return Hn.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return Hn.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Hn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Hn.isNpmRegistryPublisher}});var ka=ya();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return ka.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return ka.mcpServerToolSegmentForms}});var Qr=Ra();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Qr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return Qr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return Qr.usableCatalogText}});var Ve=Ia();Object.defineProperty(E,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return Ve.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(E,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"capComponentTextBytes",{enumerable:!0,get:function(){return Ve.capComponentTextBytes}});Object.defineProperty(E,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return Ve.componentSourceContainsRedactableSecret}});Object.defineProperty(E,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return Ve.fitSnapshotInspectionTextBudget}});Object.defineProperty(E,"prepareComponentInspectionText",{enumerable:!0,get:function(){return Ve.prepareComponentInspectionText}});Object.defineProperty(E,"redactComponentSource",{enumerable:!0,get:function(){return Ve.redactComponentSource}})});var Qn=W(he=>{"use strict";he.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;he.find=(e,t)=>e.nodes.find(n=>n.type===t);he.exceedsLimit=(e,t,n=1,r)=>r===!1||!he.isInteger(e)||!he.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;he.escapeNode=(e,t=0,n)=>{let r=e.nodes[t];r&&(n&&r.type===n||r.type==="open"||r.type==="close")&&r.escaped!==!0&&(r.value="\\"+r.value,r.escaped=!0)};he.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;he.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;he.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;he.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);he.flatten=(...e)=>{let t=[],n=r=>{for(let o=0;o<r.length;o++){let s=r[o];if(Array.isArray(s)){n(s);continue}s!==void 0&&t.push(s)}return t};return n(e),t}});var er=W((gO,du)=>{"use strict";var pu=Qn();du.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&pu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&pu.isOpenOrClose(r)?"\\"+r.value:r.value;if(r.value)return r.value;if(r.nodes)for(let c of r.nodes)a+=n(c);return a};return n(e)}});var gu=W((_O,mu)=>{"use strict";mu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Iu=W((hO,Au)=>{"use strict";var _u=gu(),nt=(e,t,n)=>{if(_u(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(_u(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let r={relaxZeros:!0,...n};typeof r.strictZeros=="boolean"&&(r.relaxZeros=r.strictZeros===!1);let o=String(r.relaxZeros),s=String(r.shorthand),i=String(r.capture),a=String(r.wrap),c=e+":"+t+"="+o+s+i+a;if(nt.cache.hasOwnProperty(c))return nt.cache[c].result;let u=Math.min(e,t),l=Math.max(e,t);if(Math.abs(u-l)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let p=Cu(e)||Cu(t),f={min:e,max:t,a:u,b:l},m=[],g=[];if(p&&(f.isPadded=p,f.maxLen=String(f.max).length),u<0){let S=l<0?Math.abs(l):1;g=hu(S,Math.abs(u),f,r),u=f.a=0}return l>=0&&(m=hu(u,l,f,r)),f.negatives=g,f.positives=m,f.result=fS(g,m,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&m.length+g.length>1&&(f.result=`(?:${f.result})`),nt.cache[c]=f,f.result};function fS(e,t,n){let r=wo(e,t,"-",!1,n)||[],o=wo(t,e,"",!1,n)||[],s=wo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function pS(e,t){let n=1,r=1,o=Eu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Eu(e,n);for(o=yu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=yu(t+1,r)-1;return s=[...s],s.sort(gS),s}function dS(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=mS(e,t),o=r.length,s="",i=0;for(let a=0;a<o;a++){let[c,u]=r[a];c===u?s+=c:c!=="0"||u!=="9"?s+=_S(c,u,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function hu(e,t,n,r){let o=pS(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let u=o[c],l=dS(String(i),String(u),r),p="";if(!n.isPadded&&a&&a.pattern===l.pattern){a.count.length>1&&a.count.pop(),a.count.push(l.count[0]),a.string=a.pattern+Ru(a.count),i=u+1;continue}n.isPadded&&(p=hS(u,n,r)),l.string=p+l.pattern+Ru(l.count),s.push(l),i=u+1,a=l}return s}function wo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Su(t,"string",a)&&s.push(n+a),r&&Su(t,"string",a)&&s.push(n+a)}return s}function mS(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function gS(e,t){return e>t?1:t>e?-1:0}function Su(e,t,n){return e.some(r=>r[t]===n)}function Eu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function yu(e,t){return e-e%Math.pow(10,t)}function Ru(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function _S(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Cu(e){return/^-?(0+)\d/.test(e)}function hS(e,t,n){if(!t.isPadded)return e;let r=Math.abs(t.maxLen-String(e).length),o=n.relaxZeros!==!1;switch(r){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:return o?`0{0,${r}}`:`0{${r}}`}}nt.cache={};nt.clearCache=()=>nt.cache={};Au.exports=nt});var vo=W((SO,Nu)=>{"use strict";var SS=$e("util"),Ou=Iu(),bu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),ES=e=>t=>e===!0?Number(t):String(t),Mo=e=>typeof e=="number"||typeof e=="string"&&e!=="",Wt=e=>Number.isInteger(+e),Lo=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},yS=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,RS=(e,t,n)=>{if(t>0){let r=e[0]==="-"?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return n===!1?String(e):e},nr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},CS=(e,t,n)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let r=t.capture?"":"?:",o="",s="",i;return e.positives.length&&(o=e.positives.map(a=>nr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>nr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},xu=(e,t,n,r)=>{if(n)return Ou(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},Tu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Ou(e,t,n)},ku=(...e)=>new RangeError("Invalid range arguments: "+SS.inspect(...e)),Pu=(e,t,n)=>{if(n.strictRanges===!0)throw ku([e,t]);return[]},AS=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},IS=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw ku([e,t]);return[]}o===0&&(o=0),s===0&&(s=0);let i=o>s,a=String(e),c=String(t),u=String(n);n=Math.max(Math.abs(n),1);let l=Lo(a)||Lo(c)||Lo(u),p=l?Math.max(a.length,c.length,u.length):0,f=l===!1&&yS(e,t,r)===!1,m=r.transform||ES(f);if(r.toRegex&&n===1)return xu(nr(e,p),nr(t,p),!0,r);let g={negatives:[],positives:[]},S=T=>g[T<0?"negatives":"positives"].push(Math.abs(T)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(RS(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?CS(g,r,p):Tu(C,null,{wrap:!1,...r}):C},bS=(e,t,n=1,r={})=>{if(!Wt(e)&&e.length>1||!Wt(t)&&t.length>1)return Pu(e,t,r);let o=r.transform||(f=>String.fromCharCode(f)),s=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),a=s>i,c=Math.min(s,i),u=Math.max(s,i);if(r.toRegex&&n===1)return xu(c,u,!1,r);let l=[],p=0;for(;a?s>=i:s<=i;)l.push(o(s,p)),s=a?s-n:s+n,p++;return r.toRegex===!0?Tu(l,null,{wrap:!1,options:r}):l},tr=(e,t,n,r={})=>{if(t==null&&Mo(e))return[e];if(!Mo(e)||!Mo(t))return Pu(e,t,r);if(typeof n=="function")return tr(e,t,1,{transform:n});if(bu(n))return tr(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,Wt(n)?Wt(e)&&Wt(t)?IS(e,t,n,o):bS(e,t,Math.max(Math.abs(n),1),o):n!=null&&!bu(n)?AS(n,o):tr(e,t,1,n)};Nu.exports=tr});var Lu=W((EO,Mu)=>{"use strict";var OS=vo(),wu=Qn(),xS=(e,t={})=>{let n=(r,o={})=>{let s=wu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",u="";if(r.isOpen===!0)return c+r.value;if(r.isClose===!0)return console.log("node.isClose",c,r.value),c+r.value;if(r.type==="open")return a?c+r.value:"(";if(r.type==="close")return a?c+r.value:")";if(r.type==="comma")return r.prev.type==="comma"?"":a?r.value:"|";if(r.value)return r.value;if(r.nodes&&r.ranges>0){let l=wu.reduce(r.nodes),p=OS(...l,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return l.length>1&&p.length>1?`(${p})`:p}if(r.nodes)for(let l of r.nodes)u+=n(l,r);return u};return n(e)};Mu.exports=xS});var Uu=W((yO,Hu)=>{"use strict";var TS=vo(),vu=er(),ht=Qn(),rt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?ht.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(rt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?rt(o,s,n):o+s);return ht.flatten(r)},kS=(e,t={})=>{let n=t.rangeLimit===void 0?1e3:t.rangeLimit,r=(o,s={})=>{o.queue=[];let i=s,a=s.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,a=i.queue;if(o.invalid||o.dollar){a.push(rt(a.pop(),vu(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(rt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let p=ht.reduce(o.nodes);if(ht.exceedsLimit(...p,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=TS(...p,t);f.length===0&&(f=vu(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=ht.encloseBrace(o),u=o.queue,l=o;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,u=l.queue;for(let p=0;p<o.nodes.length;p++){let f=o.nodes[p];if(f.type==="comma"&&o.type==="brace"){p===1&&u.push(""),u.push("");continue}if(f.type==="close"){a.push(rt(a.pop(),u,c));continue}if(f.value&&f.type!=="open"){u.push(rt(u.pop(),f.value));continue}f.nodes&&r(f,o)}return u};return ht.flatten(r(e))};Hu.exports=kS});var Fu=W((RO,Du)=>{"use strict";Du.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
13
|
+
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Gu=W((CO,Ku)=>{"use strict";var PS=er(),{MAX_LENGTH:$u,CHAR_BACKSLASH:Ho,CHAR_BACKTICK:NS,CHAR_COMMA:wS,CHAR_DOT:MS,CHAR_LEFT_PARENTHESES:LS,CHAR_RIGHT_PARENTHESES:vS,CHAR_LEFT_CURLY_BRACE:HS,CHAR_RIGHT_CURLY_BRACE:US,CHAR_LEFT_SQUARE_BRACKET:ju,CHAR_RIGHT_SQUARE_BRACKET:Bu,CHAR_DOUBLE_QUOTE:DS,CHAR_SINGLE_QUOTE:FS,CHAR_NO_BREAK_SPACE:$S,CHAR_ZERO_WIDTH_NOBREAK_SPACE:jS}=Fu(),BS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min($u,n.maxLength):$u;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,u=e.length,l=0,p=0,f,m=()=>e[l++],g=S=>{if(S.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&S.type==="text"){a.value+=S.value;return}return i.nodes.push(S),S.parent=i,S.prev=a,a=S,S};for(g({type:"bos"});l<u;)if(i=s[s.length-1],f=m(),!(f===jS||f===$S)){if(f===Ho){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===Bu){g({type:"text",value:"\\"+f});continue}if(f===ju){c++;let S;for(;l<u&&(S=m());){if(f+=S,S===ju){c++;continue}if(S===Ho){f+=m();continue}if(S===Bu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===LS){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===vS){if(i.type!=="paren"){g({type:"text",value:f});continue}i=s.pop(),g({type:"text",value:f}),i=s[s.length-1];continue}if(f===DS||f===FS||f===NS){let S=f,C;for(t.keepQuotes!==!0&&(f="");l<u&&(C=m());){if(C===Ho){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===HS){p++;let C={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:p,commas:0,ranges:0,nodes:[]};i=g(C),s.push(i),g({type:"open",value:f});continue}if(f===US){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),p--,i=s[s.length-1];continue}if(f===wS&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:PS(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===MS&&p>0&&i.commas===0){let S=i.nodes;if(p===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let C=S[S.length-1];C.value+=a.value+f,a=C,i.ranges--;continue}g({type:"dot",value:f});continue}g({type:"text",value:f})}do if(i=s.pop(),i.type!=="root"){i.nodes.forEach(A=>{A.nodes||(A.type==="open"&&(A.isOpen=!0),A.type==="close"&&(A.isClose=!0),A.nodes||(A.type="text"),A.invalid=!0)});let S=s[s.length-1],C=S.nodes.indexOf(i);S.nodes.splice(C,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};Ku.exports=BS});var Vu=W((AO,Wu)=>{"use strict";var zu=er(),KS=Lu(),GS=Uu(),zS=Gu(),pe=(e,t={})=>{let n=[];if(Array.isArray(e))for(let r of e){let o=pe.create(r,t);Array.isArray(o)?n.push(...o):n.push(o)}else n=[].concat(pe.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(n=[...new Set(n)]),n};pe.parse=(e,t={})=>zS(e,t);pe.stringify=(e,t={})=>zu(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),KS(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=GS(e,t);return t.noempty===!0&&(n=n.filter(Boolean)),t.nodupes===!0&&(n=[...new Set(n)]),n};pe.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?pe.compile(e,t):pe.expand(e,t);Wu.exports=pe});var Vt=W((IO,Zu)=>{"use strict";var WS=$e("path"),ke="\\\\/",Ju=`[^${ke}]`,VS=0,De="\\.",JS="\\+",YS="\\?",rr="\\/",XS="(?=.)",Yu="[^/]",Uo=`(?:${rr}|$)`,Xu=`(?:^|${rr})`,Do=`${De}{1,2}${Uo}`,qS=`(?!${De})`,ZS=`(?!${Xu}${Do})`,QS=`(?!${De}{0,1}${Uo})`,eE=`(?!${Do})`,tE=`[^.${rr}]`,nE=`${Yu}*?`,qu={DOT_LITERAL:De,PLUS_LITERAL:JS,QMARK_LITERAL:YS,SLASH_LITERAL:rr,ONE_CHAR:XS,QMARK:Yu,END_ANCHOR:Uo,DOTS_SLASH:Do,NO_DOT:qS,NO_DOTS:ZS,NO_DOT_SLASH:QS,NO_DOTS_SLASH:eE,QMARK_NO_DOT:tE,STAR:nE,START_ANCHOR:Xu},rE={...qu,SLASH_LITERAL:`[${ke}]`,QMARK:Ju,STAR:`${Ju}*?`,DOTS_SLASH:`${De}{1,2}(?:[${ke}]|$)`,NO_DOT:`(?!${De})`,NO_DOTS:`(?!(?:^|[${ke}])${De}{1,2}(?:[${ke}]|$))`,NO_DOT_SLASH:`(?!${De}{0,1}(?:[${ke}]|$))`,NO_DOTS_SLASH:`(?!${De}{1,2}(?:[${ke}]|$))`,QMARK_NO_DOT:`[^.${ke}]`,START_ANCHOR:`(?:^|[${ke}])`,END_ANCHOR:`(?:[${ke}]|$)`},oE={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Zu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:VS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:oE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:WS.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?rE:qu}}});var Jt=W(ae=>{"use strict";var sE=$e("path"),iE=process.platform==="win32",{REGEX_BACKSLASH:aE,REGEX_REMOVE_BACKSLASH:cE,REGEX_SPECIAL_CHARS:uE,REGEX_SPECIAL_CHARS_GLOBAL:lE}=Vt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>uE.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(lE,"\\$1");ae.toPosixSlashes=e=>e.replace(aE,"/");ae.removeBackslashes=e=>e.replace(cE,t=>t==="\\"?"":t);ae.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ae.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:iE===!0||sE.sep==="\\";ae.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ae.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ae.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ae.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var il=W((OO,sl)=>{"use strict";var Qu=Jt(),{CHAR_ASTERISK:Fo,CHAR_AT:fE,CHAR_BACKWARD_SLASH:Yt,CHAR_COMMA:pE,CHAR_DOT:$o,CHAR_EXCLAMATION_MARK:jo,CHAR_FORWARD_SLASH:ol,CHAR_LEFT_CURLY_BRACE:Bo,CHAR_LEFT_PARENTHESES:Ko,CHAR_LEFT_SQUARE_BRACKET:dE,CHAR_PLUS:mE,CHAR_QUESTION_MARK:el,CHAR_RIGHT_CURLY_BRACE:gE,CHAR_RIGHT_PARENTHESES:tl,CHAR_RIGHT_SQUARE_BRACKET:_E}=Vt(),nl=e=>e===ol||e===Yt,rl=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},hE=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,u=-1,l=0,p=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,T=!1,x=!1,M=!1,k=!1,K=0,D,b,N={value:"",depth:0,isGlob:!1},H=()=>u>=r,d=()=>c.charCodeAt(u+1),I=()=>(D=b,c.charCodeAt(++u));for(;u<r;){b=I();let se;if(b===Yt){T=N.backslashes=!0,b=I(),b===Bo&&(A=!0);continue}if(A===!0||b===Bo){for(K++;H()!==!0&&(b=I());){if(b===Yt){T=N.backslashes=!0,I();continue}if(b===Bo){K++;continue}if(A!==!0&&b===$o&&(b=I())===$o){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&b===pE){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===gE&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(b===ol){if(s.push(u),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===$o&&u===l+1){l+=2;continue}p=u+1;continue}if(n.noext!==!0&&(b===mE||b===fE||b===Fo||b===el||b===jo)===!0&&d()===Ko){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,b===jo&&u===l&&(M=!0),o===!0){for(;H()!==!0&&(b=I());){if(b===Yt){T=N.backslashes=!0,b=I();continue}if(b===tl){g=N.isGlob=!0,k=!0;break}}continue}break}if(b===Fo){if(D===Fo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===el){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===dE){for(;H()!==!0&&(se=I());){if(se===Yt){T=N.backslashes=!0,I();continue}if(se===_E){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===jo&&u===l){x=N.negated=!0,l++;continue}if(n.noparen!==!0&&b===Ko){if(g=N.isGlob=!0,o===!0){for(;H()!==!0&&(b=I());){if(b===Ko){T=N.backslashes=!0,b=I();continue}if(b===tl){k=!0;break}}continue}break}if(g===!0){if(k=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,ue="",_="";l>0&&(ue=c.slice(0,l),c=c.slice(l),p-=l),U&&g===!0&&p>0?(U=c.slice(0,p),_=c.slice(p)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&nl(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=Qu.removeBackslashes(_)),U&&T===!0&&(U=Qu.removeBackslashes(U)));let h={prefix:ue,input:e,start:l,base:U,glob:_,isBrace:f,isBracket:m,isGlob:g,isExtglob:S,isGlobstar:C,negated:x,negatedExtglob:M};if(n.tokens===!0&&(h.maxDepth=0,nl(b)||i.push(N),h.tokens=i),n.parts===!0||n.tokens===!0){let se;for(let F=0;F<s.length;F++){let Ce=se?se+1:l,Ae=s[F],le=e.slice(Ce,Ae);n.tokens&&(F===0&&l!==0?(i[F].isPrefix=!0,i[F].value=ue):i[F].value=le,rl(i[F]),h.maxDepth+=i[F].depth),(F!==0||le!=="")&&a.push(le),se=Ae}if(se&&se+1<e.length){let F=e.slice(se+1);a.push(F),n.tokens&&(i[i.length-1].value=F,rl(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};sl.exports=hE});var fl=W((xO,ll)=>{"use strict";var Xt=Vt(),oe=Jt(),{MAX_LENGTH:or,POSIX_REGEX_SOURCE:SE,REGEX_NON_SPECIAL_CHARS:EE,REGEX_SPECIAL_CHARS_BACKREF:yE,REPLACEMENTS:al}=Xt,RE=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let n=`[${e.join("-")}]`;try{new RegExp(n)}catch{return e.map(o=>oe.escapeRegex(o)).join("..")}return n},St=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,cl=e=>{let t=[],n=0,r=0,o=0,s="",i=!1;for(let a of e){if(i===!0){s+=a,i=!1;continue}if(a==="\\"){s+=a,i=!0;continue}if(a==='"'){o=o===1?0:1,s+=a;continue}if(o===0){if(a==="[")n++;else if(a==="]"&&n>0)n--;else if(n===0){if(a==="(")r++;else if(a===")"&&r>0)r--;else if(a==="|"&&r===0){t.push(s),s="";continue}}}s+=a}return t.push(s),t},CE=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n==="\\"){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},ul=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(CE(t))return t.replace(/\\(.)/g,"$1")},AE=e=>{let t=e.map(ul).filter(Boolean);for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){let o=t[n],s=t[r],i=o[0];if(!(!i||o!==i.repeat(o.length)||s!==i.repeat(s.length))&&(o===s||o.startsWith(s)||s.startsWith(o)))return!0}return!1},Go=(e,t=!0)=>{if(e[0]!=="+"&&e[0]!=="*"||e[1]!=="(")return;let n=0,r=0,o=0,s=!1;for(let i=1;i<e.length;i++){let a=e[i];if(s===!0){s=!1;continue}if(a==="\\"){s=!0;continue}if(a==='"'){o=o===1?0:1;continue}if(o!==1){if(a==="["){n++;continue}if(a==="]"&&n>0){n--;continue}if(!(n>0)){if(a==="("){r++;continue}if(a===")"&&(r--,r===0))return t===!0&&i!==e.length-1?void 0:{type:e[0],body:e.slice(2,i),end:i}}}}},IE=e=>{let t=0,n=[];for(;t<e.length;){let o=Go(e.slice(t),!1);if(!o||o.type!=="*")return;let s=cl(o.body).map(a=>a.trim());if(s.length!==1)return;let i=ul(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?oe.escapeRegex(n[0]):`[${n.map(o=>oe.escapeRegex(o)).join("")}]`}*`},bE=e=>{let t=0,n=e.trim(),r=Go(n);for(;r;)t++,n=r.body.trim(),r=Go(n);return t},OE=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Xt.DEFAULT_MAX_EXTGLOB_RECURSION,r=cl(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||AE(r)))return{risky:!0};for(let o of r){let s=IE(o);if(s)return{risky:!0,safeOutput:s};if(bE(o)>n)return{risky:!0}}return{risky:!1}},zo=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=al[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(or,n.maxLength):or,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},i=[s],a=n.capture?"":"?:",c=oe.isWindows(t),u=Xt.globChars(c),l=Xt.extglobChars(u),{DOT_LITERAL:p,PLUS_LITERAL:f,SLASH_LITERAL:m,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:C,NO_DOT_SLASH:A,NO_DOTS_SLASH:T,QMARK:x,QMARK_NO_DOT:M,STAR:k,START_ANCHOR:K}=u,D=R=>`(${a}(?:(?!${K}${R.dot?S:p}).)*?)`,b=n.dot?"":C,N=n.dot?x:M,H=n.bash===!0?D(n):k;n.capture&&(H=`(${H})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let d={input:e,index:-1,start:0,dot:n.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=oe.removePrefix(e,d),o=e.length;let I=[],U=[],ue=[],_=s,h,se=()=>d.index===o-1,F=d.peek=(R=1)=>e[d.index+R],Ce=d.advance=()=>e[++d.index]||"",Ae=()=>e.slice(d.index+1),le=(R="",J=0)=>{d.consumed+=R,d.index+=J},cn=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},yp=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},un=R=>{d[R]++,ue.push(R)},Fe=R=>{d[R]--,ue.pop()},w=R=>{if(_.type==="globstar"){let J=d.braces>0&&(R.type==="comma"||R.type==="brace"),y=R.extglob===!0||I.length&&(R.type==="pipe"||R.type==="paren");R.type!=="slash"&&R.type!=="paren"&&!J&&!y&&(d.output=d.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,d.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&cn(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},ln=(R,J)=>{let y={...l[J],conditions:1,inner:""};y.prev=_,y.parens=d.parens,y.output=d.output,y.startIndex=d.index,y.tokensIndex=i.length;let P=(n.capture?"(":"")+y.open;un("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},Rp=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=OE(y,n);if((R.type==="plus"||R.type==="star")&&P.risky){let G=P.safeOutput?(R.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,Ie=i[R.tokensIndex];Ie.type="text",Ie.value=J,Ie.output=G||oe.escapeRegex(J);for(let be=R.tokensIndex+1;be<i.length;be++)i[be].value="",i[be].output="",delete i[be].suffix;d.output=R.output+Ie.output,d.backtrack=!0,w({type:"paren",extglob:!0,value:h,output:""}),Fe("parens");return}let z=R.close+(n.capture?")":""),re;if(R.type==="negate"){let G=H;if(R.inner&&R.inner.length>1&&R.inner.includes("/")&&(G=D(n)),(G!==H||se()||/^\)+$/.test(Ae()))&&(z=R.close=`)$))${G}`),R.inner.includes("*")&&(re=Ae())&&/^\.[^\\/.]+$/.test(re)){let Ie=zo(re,{...t,fastpaths:!1}).output;z=R.close=`)${Ie})${G})`}R.prev.type==="bos"&&(d.negatedExtglob=!0)}w({type:"paren",extglob:!0,value:h,output:z}),Fe("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let R=!1,J=e.replace(yE,(y,P,z,re,G,Ie)=>re==="\\"?(R=!0,y):re==="?"?P?P+re+(G?x.repeat(G.length):""):Ie===0?N+(G?x.repeat(G.length):""):x.repeat(z.length):re==="."?p.repeat(z.length):re==="*"?P?P+re+(G?H:""):H:P?y:`\\${y}`);return R===!0&&(n.unescape===!0?J=J.replace(/\\/g,""):J=J.replace(/\\+/g,y=>y.length%2===0?"\\\\":y?"\\":"")),J===e&&n.contains===!0?(d.output=e,d):(d.output=oe.wrapOutput(J,d,t),d)}for(;!se();){if(h=Ce(),h==="\0")continue;if(h==="\\"){let y=F();if(y==="/"&&n.bash!==!0||y==="."||y===";")continue;if(!y){h+="\\",w({type:"text",value:h});continue}let P=/^\\+/.exec(Ae()),z=0;if(P&&P[0].length>2&&(z=P[0].length,d.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=Ce():h+=Ce(),d.brackets===0){w({type:"text",value:h});continue}}if(d.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let y=_.value.slice(1);if(y.includes("[")&&(_.posix=!0,y.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),re=_.value.slice(P+2),G=SE[re];if(G){_.value=z+G,d.backtrack=!0,Ce(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,cn({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,cn({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){un("parens"),w({type:"paren",value:h});continue}if(h===")"){if(d.parens===0&&n.strictBrackets===!0)throw new SyntaxError(St("opening","("));let y=I[I.length-1];if(y&&d.parens===y.parens+1){Rp(I.pop());continue}w({type:"paren",value:h,output:d.parens?")":"\\)"}),Fe("parens");continue}if(h==="["){if(n.nobracket===!0||!Ae().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));h=`\\${h}`}else un("brackets");w({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){w({type:"text",value:h,output:`\\${h}`});continue}if(d.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(St("opening","["));w({type:"text",value:h,output:`\\${h}`});continue}Fe("brackets");let y=_.value.slice(1);if(_.posix!==!0&&y[0]==="^"&&!y.includes("/")&&(h=`/${h}`),_.value+=h,cn({value:h}),n.literalBrackets===!1||oe.hasRegexChars(y))continue;let P=oe.escapeRegex(_.value);if(d.output=d.output.slice(0,-_.value.length),n.literalBrackets===!0){d.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,d.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){un("braces");let y={type:"brace",value:h,output:"(",outputIndex:d.output.length,tokensIndex:d.tokens.length};U.push(y),w(y);continue}if(h==="}"){let y=U[U.length-1];if(n.nobrace===!0||!y){w({type:"text",value:h,output:h});continue}let P=")";if(y.dots===!0){let z=i.slice(),re=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&re.unshift(z[G].value);P=RE(re,n),d.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=d.output.slice(0,y.outputIndex),re=d.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",d.output=z;for(let G of re)d.output+=G.output||G.value}w({type:"brace",value:h,output:P}),Fe("braces"),U.pop();continue}if(h==="|"){I.length>0&&I[I.length-1].conditions++,w({type:"text",value:h});continue}if(h===","){let y=h,P=U[U.length-1];P&&ue[ue.length-1]==="braces"&&(P.comma=!0,y="|"),w({type:"comma",value:h,output:y});continue}if(h==="/"){if(_.type==="dot"&&d.index===d.start+1){d.start=d.index+1,d.consumed="",d.output="",i.pop(),_=s;continue}w({type:"slash",value:h,output:m});continue}if(h==="."){if(d.braces>0&&_.type==="dot"){_.value==="."&&(_.output=p);let y=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,y.dots=!0;continue}if(d.braces+d.parens===0&&_.type!=="bos"&&_.type!=="slash"){w({type:"text",value:h,output:p});continue}w({type:"dot",value:h,output:p});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){ln("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!oe.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(Ae()))&&(z=`\\${h}`),w({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){w({type:"qmark",value:h,output:M});continue}w({type:"qmark",value:h,output:x});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){ln("negate",h);continue}if(n.nonegate!==!0&&d.index===0){yp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){ln("plus",h);continue}if(_&&_.value==="("||n.regex===!1){w({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||d.parens>0){w({type:"plus",value:h});continue}w({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){w({type:"at",extglob:!0,value:h,output:""});continue}w({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let y=EE.exec(Ae());y&&(h+=y[0],d.index+=y[0].length),w({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,d.backtrack=!0,d.globstar=!0,le(h);continue}let R=Ae();if(n.noextglob!==!0&&/^\([^?]/.test(R)){ln("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){le(h);continue}let y=_.prev,P=y.prev,z=y.type==="slash"||y.type==="bos",re=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||R[0]&&R[0]!=="/")){w({type:"star",value:h,output:""});continue}let G=d.braces>0&&(y.type==="comma"||y.type==="brace"),Ie=I.length&&(y.type==="pipe"||y.type==="paren");if(!z&&y.type!=="paren"&&!G&&!Ie){w({type:"star",value:h,output:""});continue}for(;R.slice(0,3)==="/**";){let be=e[d.index+4];if(be&&be!=="/")break;R=R.slice(3),le("/**",3)}if(y.type==="bos"&&se()){_.type="globstar",_.value+=h,_.output=D(n),d.output=_.output,d.globstar=!0,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&!re&&se()){d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,d.globstar=!0,d.output+=y.output+_.output,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&R[0]==="/"){let be=R[1]!==void 0?"|$":"";d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=`${D(n)}${m}|${m}${be})`,_.value+=h,d.output+=y.output+_.output,d.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}if(y.type==="bos"&&R[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${m}|${D(n)}${m})`,d.output=_.output,d.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}d.output=d.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,d.output+=_.output,d.globstar=!0,le(h);continue}let J={type:"star",value:h,output:H};if(n.bash===!0){J.output=".*?",(_.type==="bos"||_.type==="slash")&&(J.output=b+J.output),w(J);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){J.output=h,w(J);continue}(d.index===d.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(d.output+=A,_.output+=A):n.dot===!0?(d.output+=T,_.output+=T):(d.output+=b,_.output+=b),F()!=="*"&&(d.output+=g,_.output+=g)),w(J)}for(;d.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));d.output=oe.escapeLast(d.output,"["),Fe("brackets")}for(;d.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing",")"));d.output=oe.escapeLast(d.output,"("),Fe("parens")}for(;d.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","}"));d.output=oe.escapeLast(d.output,"{"),Fe("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.type==="bracket")&&w({type:"maybe_slash",value:"",output:`${m}?`}),d.backtrack===!0){d.output="";for(let R of d.tokens)d.output+=R.output!=null?R.output:R.value,R.suffix&&(d.output+=R.suffix)}return d};zo.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(or,n.maxLength):or,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=al[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:u,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=Xt.globChars(s),S=n.dot?p:l,C=n.dot?f:l,A=n.capture?"":"?:",T={negated:!1,prefix:""},x=n.bash===!0?".*?":m;n.capture&&(x=`(${x})`);let M=b=>b.noglobstar===!0?x:`(${A}(?:(?!${g}${b.dot?u:i}).)*?)`,k=b=>{switch(b){case"*":return`${S}${c}${x}`;case".*":return`${i}${c}${x}`;case"*.*":return`${S}${x}${i}${c}${x}`;case"*/*":return`${S}${x}${a}${c}${C}${x}`;case"**":return S+M(n);case"**/*":return`(?:${S}${M(n)}${a})?${C}${c}${x}`;case"**/*.*":return`(?:${S}${M(n)}${a})?${C}${x}${i}${c}${x}`;case"**/.*":return`(?:${S}${M(n)}${a})?${i}${c}${x}`;default:{let N=/^(.*?)\.(\w+)$/.exec(b);if(!N)return;let H=k(N[1]);return H?H+i+N[2]:void 0}}},K=oe.removePrefix(e,T),D=k(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};ll.exports=zo});var dl=W((TO,pl)=>{"use strict";var xE=$e("path"),TE=il(),Wo=fl(),Vo=Jt(),kE=Vt(),PE=e=>e&&typeof e=="object"&&!Array.isArray(e),Q=(e,t,n=!1)=>{if(Array.isArray(e)){let l=e.map(f=>Q(f,t,n));return f=>{for(let m of l){let g=m(f);if(g)return g}return!1}}let r=PE(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let o=t||{},s=Vo.isWindows(t),i=r?Q.compileRe(e,t):Q.makeRe(e,t,!1,!0),a=i.state;delete i.state;let c=()=>!1;if(o.ignore){let l={...t,ignore:null,onMatch:null,onResult:null};c=Q(o.ignore,l,n)}let u=(l,p=!1)=>{let{isMatch:f,match:m,output:g}=Q.test(l,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:l,output:g,match:m,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,p?S:!1):c(l)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,p?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),p?S:!0)};return n&&(u.state=a),u};Q.test=(e,t,n,{glob:r,posix:o}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=n||{},i=s.format||(o?Vo.toPosixSlashes:null),a=e===r,c=a&&i?i(e):e;return a===!1&&(c=i?i(e):e,a=c===r),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Q.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};Q.matchBase=(e,t,n,r=Vo.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(xE.basename(e));Q.isMatch=(e,t,n)=>Q(t,n)(e);Q.parse=(e,t)=>Array.isArray(e)?e.map(n=>Q.parse(n,t)):Wo(e,{...t,fastpaths:!1});Q.scan=(e,t)=>TE(e,t);Q.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let o=t||{},s=o.contains?"":"^",i=o.contains?"":"$",a=`${s}(?:${e.output})${i}`;e&&e.negated===!0&&(a=`^(?!${a}).*$`);let c=Q.toRegex(a,t);return r===!0&&(c.state=e),c};Q.makeRe=(e,t={},n=!1,r=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(o.output=Wo.fastpaths(e,t)),o.output||(o=Wo(e,t)),Q.compileRe(o,t,n,r)};Q.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(n){if(t&&t.debug===!0)throw n;return/$^/}};Q.constants=kE;pl.exports=Q});var gl=W((kO,ml)=>{"use strict";ml.exports=dl()});var Rl=W((PO,yl)=>{"use strict";var hl=$e("util"),Sl=Vu(),Pe=gl(),Jo=Jt(),_l=e=>e===""||e==="./",El=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},V=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=l=>{s.add(l.output),n&&n.onResult&&n.onResult(l)};for(let l=0;l<t.length;l++){let p=Pe(String(t[l]),{...n,onResult:a},!0),f=p.state.negated||p.state.negatedExtglob;f&&i++;for(let m of e){let g=p(m,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let u=(i===t.length?[...s]:[...o]).filter(l=>!r.has(l));if(n&&u.length===0){if(n.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(n.nonull===!0||n.nullglob===!0)return n.unescape?t.map(l=>l.replace(/\\/g,"")):t}return u};V.match=V;V.matcher=(e,t)=>Pe(e,t);V.isMatch=(e,t,n)=>Pe(t,n)(e);V.any=V.isMatch;V.not=(e,t,n={})=>{t=[].concat(t).map(String);let r=new Set,o=[],s=a=>{n.onResult&&n.onResult(a),o.push(a.output)},i=new Set(V(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};V.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${hl.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(_l(e)||_l(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return V.isMatch(e,t,{...n,contains:!0})};V.matchKeys=(e,t,n)=>{if(!Jo.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=V(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};V.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(r.some(i=>s(i)))return!0}return!1};V.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};V.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${hl.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=Jo.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?Jo.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};V.makeRe=(...e)=>Pe.makeRe(...e);V.scan=(...e)=>Pe.scan(...e);V.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of Sl(String(r),t))n.push(Pe.parse(o,t));return n};V.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!El(e)?[e]:Sl(e,t)};V.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return V.braces(e,{...t,expand:!0})};V.hasBraces=El;yl.exports=V});import{existsSync as Up,readFileSync as Dp}from"node:fs";import{hostname as Ws,userInfo as Fp}from"node:os";import{createHash as Tp,randomBytes as kp}from"node:crypto";import{existsSync as Cr,mkdirSync as Pp,readdirSync as Np,readFileSync as wp,renameSync as Us,statSync as js,unlinkSync as Ds,writeFileSync as Mp}from"node:fs";import{basename as Lp,dirname as Fs,join as Bs,relative as vp}from"node:path";function O(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
+
`)}function xt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Tt(e){return Tp("sha256").update(e).digest("hex").slice(0,32)}function de(e,t){Pp(Fs(e),{recursive:!0});let n=Bs(Fs(e),`.${Lp(e)}.${process.pid}.${kp(4).toString("hex")}.tmp`);try{Mp(n,t,"utf8");try{Us(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Ds(e),Us(n,e);return}throw r}}catch(r){try{Ds(n)}catch{}throw r}}function fn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Ar(){process.stdout.write('{"continue":true}')}function L(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Ir(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>{e(t)}),process.stdin.on("error",()=>{e(t)}),process.stdin.resume()})}async function pn(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function Se(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,u=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:u,spawnFailed:u===void 0}}}async function ee(e,t,n=3e3,r={}){let o=await Se(e,t,n,r);return o.ok?o.stdout:""}async function br(e=process.cwd()){let t=await Se("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(L("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;O(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=L("CURSOR_PROJECT_DIR")??L("CLAUDE_PROJECT_DIR");if(n&&Cr(n)){let r=await Se("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function Or(e=process.cwd()){return(await br(e)).root}function me(e,t){try{return JSON.parse(e)}catch{return t}}var $s=new Map;function dn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Hp(e){let t;try{t=wp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(dn(t))}}catch{return{ok:!1,reason:"parse"}}}function Ks(e){let t=$s.get(e);if(t!==void 0)return t;let n=Hp(e);return $s.set(e,n),n}function Gs(e){return Ks(e)}function te(e,t){let n=Ks(e);return n.ok?n.value:t}function qe(e){return typeof e=="string"?e:""}function Me(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function v(e,t){let n=Me(e,t);return typeof n=="string"?n:""}var Be=500;function zs(e,t=2){if(!Cr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Np(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=Bs(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:vp(e,u),size:js(u).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function xr(e){return Cr(e)?{present:!0,size:js(e).size}:{present:!1,size:0}}function lt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Vs(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var $p=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function jp(e){return $p.some(t=>!!Y(t,e))}function Bp(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(Up("/.dockerenv")||Dp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Js(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function Kp(e,t=process.platform){return Js(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Gp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function zp(e){return e==="linux"}function Y(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return L(e)}function Wp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Vp(Y("CURSOR_VERSION",n))}function Vp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Tr(e){if(Gp(e.sessionId))return!0;let t=e.hostname??Ws(),n=e.osUser??Xs(e.env);return Wp(t,n,e.env)}function Jp(e){return lt(Y("CURSOR_AGENT",e.env))?!0:Tr(e)}function Yp(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(Y("TERM",e)??Y("TERM_PROGRAM",e))||(Y("SSH_TTY",e)??Y("SSH_CONNECTION",e))||(Y("__CFBundleIdentifier",e)??Y("XPC_SERVICE_NAME",e))||Js(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!Y(t,e))||Y("SESSIONNAME",e))}function kt(e={}){let t=e.env;if(Y("GITHUB_ACTIONS",t))return"github_actions";if(lt(Y("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!Kp(t,n)&&Jp(e)&&(lt(Y("CURSOR_AGENT",t))||zp(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(jp(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Bp(t)?"container":Yp(t)?"interactive":"unknown"}async function Ys(){return await ee("systemd-detect-virt",[],1e3)}function Xs(e=process.env,t=Fp){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function qs(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await ee("sw_vers",["-productVersion"],1e3);else if(process.platform==="linux"){try{let{readFileSync:s}=await import("node:fs"),i=s("/etc/os-release","utf8"),a=i.match(/^PRETTY_NAME="?([^"\n]+)"?/m)?.[1],c=i.match(/^VERSION_ID="?([^"\n]+)"?/m)?.[1];t=a??c??""}catch{t=await ee("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await ee("uname",["-r"],1e3))}else t=await ee("ver",[],1e3);let n=Xs(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await ee("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function mn(){return Ws()}import{createHash as Xp}from"node:crypto";import{homedir as qp}from"node:os";import{dirname as _A,join as Zp,parse as hA,resolve as SA}from"node:path";var Zs="EV_AI_LAUNCHER_VERSION";var Qs="EV_AI_HOOK_SOURCE",ei="EV_AI_HOOK_FALLBACK_REASON",ti="EV_AI_LAUNCHER_SCOPE",kr="EV_AI_LAUNCHER_READY_FD";var ni="--defer-user-spec",gn="--cap";var ri=Buffer.from([1]);var iA=1024*1024,aA=4*1024*1024,cA=64*1024,uA=64*1024,lA=64*1024;var Pr=4096,fA=4*1024*1024;var ii="https://hooks.ev-ai.ai",ai=".claude/ev-ai-runtime-report.json",ci="config.json",Qp="max_concurrent_hooks",RA=1024*1024,ed=new Set(["localhost","127.0.0.1","[::1]","::1"]),td=["claude","cursor","codex"],ui=[ai,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Nr=/^[A-Za-z0-9._~-]+$/;function _n(e){return e!==void 0&&td.includes(e)}function li(e){if(!e||typeof e!="object")return;let t=e[Qp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function oi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Pt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function wr(e){let t,n,r,o,s,i;for(let a=0;a<e.length;a++){let c=e[a];if(c!==void 0){if(c==="--runner"){let u=Pt(e,a);t=u.value,a=u.next;continue}if(c.startsWith("--runner=")){t=c.slice(9);continue}if(c==="--url"){let u=Pt(e,a);u.value&&(r=u.value),a=u.next;continue}if(c.startsWith("--url=")){r=c.slice(6);continue}if(c==="--token"){let u=Pt(e,a);u.value&&(o=u.value),a=u.next;continue}if(c.startsWith("--token=")){o=c.slice(8);continue}if(c==="--base-url"){let u=Pt(e,a);u.value&&(s=u.value),a=u.next;continue}if(c.startsWith("--base-url=")){s=c.slice(11);continue}if(c===gn){let u=Pt(e,a);i=oi(u.value)??i,a=u.next;continue}if(c.startsWith(`${gn}=`)){i=oi(c.slice(gn.length+1))??i;continue}c!==ni&&!c.startsWith("-")&&n===void 0&&(n=c)}}return{runner:_n(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{}}}function hn(e,t=ii){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Nt(e=qp()){return Zp(e,".ev-ai",ci)}function fi(e,t){return{...e,...t}}function si(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function Sn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?ed.has(t.hostname):!1}catch{return!1}}function Mr(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function En(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!Sn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Mr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Nr.test(n))return`org token must match ${Nr.source} (got: ${n})`;if(si(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(si(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Lr(e){return new URL(e).toString()}function vr(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?hn(n):""}function yn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function pi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=hn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=En(n);return r?{problem:r}:{url:Lr(n)}}var Hr="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function di(e){let t=e[Hr]?.trim();if(!t)return{};let n=En(t);return n?{problem:n}:{url:Lr(t)}}function wt(e){if(En(e))return;let t;try{t=new URL(e)}catch{return}let n=Mr(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return Xp("sha256").update(i).digest("hex").slice(0,32)}var Cn=2;var Rn="ev-ai-agent-hook";function nd(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function mi(e){let t=nd(e);return t===Rn||t===`${Rn}.exe`}var AA=`current/${Rn}`,IA=`.ev-ai/agent-hook/${Rn}`,gi=5e3,_i=5e3,Ur=3e3;var An=3e3,hi=1500,Si=4*1024,Dr=256*1024,rd=4*1024,Ei=32*1024,Fr="1.3.5",bA=`@ev-ai/agent-hook@${Fr}`;import{existsSync as g_,mkdirSync as __,readdirSync as h_,readFileSync as S_,unlinkSync as Ya,writeFileSync as E_}from"node:fs";import{homedir as Xa}from"node:os";import{join as io}from"node:path";import{createHash as Ii,randomBytes as id}from"node:crypto";import{existsSync as bi,mkdirSync as $r,readFileSync as Oi,unlinkSync as xi,writeFileSync as Ti}from"node:fs";import{homedir as jr}from"node:os";import{dirname as In,join as Br,resolve as ad}from"node:path";var od=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),sd=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function fe(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||sd.has(n)||r.includes("[bot]")||od.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var cd="installation.json",ud="cloud-bootstrap.lock",ld=6e4;function ki(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ee(e=jr()){return Br(e,".ev-ai","agent-hook")}function fd(e=jr()){return Br(Ee(e),cd)}function Pi(e){return Br(In(e),ud)}function Ni(){return id(8).toString("hex")}function ft(e){return Ii("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function wi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function pd(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!wi(t)){O(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Mi(e,t){return e&&wi(e)?e:(e&&O(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),pd(t))}function dd(e){return/^[0-9a-f]{16}$/.test(e)}function md(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return ft(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return ft(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return ft(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return ft(`gitlab|${t}|${n}`)}return null}var gd="cursoragent@cursor.com";function _d(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===gd?null:t}function hd(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Sd(e){return xt(e).replace(/\.git$/i,"").toLowerCase()}async function Ed(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Sd(t):e}async function yd(e){let t=$(await ee("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!fe(null,t))return t;let n=$(await ee("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!fe(null,n)?n:null}function Rd(e,t){let n=hd(e,t);return n?ft(`cursor_cloud|${n}|${_d(e)??""}`):null}async function Cd(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Ed(n),o=await yd(n);return ft(`claude_remote|${r}|${o??""}`)}function yi(e,t){let n=Mi(e,t);if(n)return n;let r=md(t);return r||Ni()}async function Ad(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||ad(e);return Ii("sha256").update(n).digest("hex").slice(0,16)}function Id(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function bd(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Id(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function Ze(e){if(bi(e))try{return bd(Oi(e,"utf8"))}catch{}}function Kr(e){return Ze(e)}function Li(e,t,n){let r=Ze(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{de(e,`${JSON.stringify(o,null,2)}
|
|
15
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: operator identity cache write failed open: ${i}`)}}function vi(e,t=Date.now()){if(!e)return!0;if(Ze(e)?.operator_identity_hash)return!1;let n=Pi(e);try{if(bi(n)){let r=Number.NaN;try{r=Number(Oi(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<ld)return!1;try{xi(n)}catch{}}}catch{}try{return $r(In(n),{recursive:!0}),Ti(n,`${t}
|
|
16
|
+
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Fi(r))return!1;let o=r instanceof Error?r.message:String(r);return O(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function Hi(e){if(e)try{xi(Pi(e))}catch{}}function Ui(e,t){let r=Ze(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function Di(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{de(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 Fi(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Od(e,t){$r(In(e),{recursive:!0}),Ti(e,`${JSON.stringify(t,null,2)}
|
|
18
|
+
`,{encoding:"utf8",flag:"wx"})}function Ri(e,t){try{return Od(e,t),t}catch(n){if(!Fi(n))throw n;return Ze(e)}}function Ci(e,t){$r(In(e),{recursive:!0}),de(e,`${JSON.stringify(t,null,2)}
|
|
19
|
+
`)}function Ai(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function $i(e,t={}){let n=t.home??jr(),r=t.env??process.env,o=await Ad(e),s=fd(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=kt(i),c=Mi(t.overrideId,r),u=a==="cursor_cloud"&&Tr(i)?Rd(r,e):a==="claude_remote"?await Cd(r,e):null,l=Ze(s);if(l){let S=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(S={...l,pinned:!0},Ci(s,S)),!!u&&u!==S.installation_id&&!c&&S.pinned!==!0&&dd(S.installation_id)&&u){let A={installation_id:u,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Ci(s,A),{installationId:u,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??u??yi(void 0,r),f=Ri(s,Ai(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??u??yi(void 0,r),g=Ri(s,Ai(m===p?Ni():m,c));if(g)return{installationId:g.installation_id,storePath:s,repoKey:o};throw new Error(`Failed to create installation record at ${s}`)}import{open as ji,mkdir as xd,readFile as Td,readdir as kd,rename as Pd,stat as Nd,rmdir as wd,unlink as Md,utimes as Ld}from"node:fs/promises";var bn=new WeakMap;function Ki(e){if(e&&typeof e=="object"&&"code"in e)return e}function Mt(e){return Ki(e)?.code==="ENOENT"}function On(e){return Ki(e)?.code==="EEXIST"}async function Gi(e,t){try{return await e.readdir(t)}catch(n){if(Mt(n))return[];throw n}}function zi(){return{async open(e,t){let n=await ji(e,t),r={path:e};return bn.set(r,n),r},async write(e,t){let n=Bi(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Bi(e).sync()},async close(e){let t=bn.get(e);bn.delete(e),t&&await t.close()},rename:Pd,async readdir(e){return kd(e)},readFile:Td,async stat(e){let t=await Nd(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await xd(e,t)},unlink:Md,rmdir:wd,utimes:Ld,async fsyncDir(e){if(process.platform==="win32")return;let t=await ji(e,"r");try{await t.sync()}finally{await t.close()}}}}function Bi(e){let t=bn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as qd}from"node:fs";import{existsSync as jd}from"node:fs";import{homedir as Ji}from"node:os";import{join as Bd}from"node:path";import{existsSync as vd,readdirSync as Wi}from"node:fs";import{homedir as xn}from"node:os";import{join as ie}from"node:path";function Hd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ie(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Ud(e=process.platform){let t=Hd(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!vd(r))return n;let o=Wi(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function Gr(e=process.platform,t=xn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:Ud(e)}}function Dd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ie(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Fd(e=process.platform,t=xn()){let n=[ie(Dd(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of Wi(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function $d(e=process.platform,t=xn()){let n=e==="win32"?ie(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ie(n,"requirements.toml")];return e!=="win32"&&r.push(ie(n,"managed_config.toml")),r.push(ie(t,".codex","managed_config.toml"),ie(n,"config.toml")),r}function Tn(e,t=process.platform,n=xn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Gr(t,n);return[r,...o]}case"cursor":return Fd(t,n);default:return $d(t,n)}}function Yi(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Kd={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function Vi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Gd(e,t={}){let{shared:n}=e;return{skillRoots:[...n.skillRoots,...t.skillRoots??[]],dirs:n.dirs,memory:[...n.memory,...t.memory??[]],settings:[...n.settings,...t.settings??[]],mcpJson:Vi(n.mcpJson,t.mcpJson),mcpToml:Vi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Xi(e){return Object.fromEntries(Object.entries(Kd).map(([t,n])=>[t,Gd(n,n[e])]))}var pt=Xi("homeOnly"),Ge=Xi("projectOnly");function zd(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Wd(e,t){return zd(e).some(n=>jd(Bd(t,n)))}function qi(e,t){for(let n of e)if(Wd(n,t))return!0;return!1}function Ke(e){return[...new Set(e)]}function ze(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let u of c.dirs)u.kind==="SUBAGENT"?n.push(u.dir):u.kind==="COMMAND"?r.push(u.dir):o.push(u.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:Ke(t),subagents:Ke(n),commands:Ke(r),rules:Ke(o),memory:Ke(s),settings:Ke(i),mcp:Ke(a)}}function Vd(e,t=Ji(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Tn(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function Zi(e=Ji(),t=process.platform){return Vd(Object.values(pt),e,t)}import{existsSync as Jd}from"node:fs";import{resolve as zr}from"node:path";function ge(e){return zr(e).replaceAll("\\","/").replace(/\/$/,"")}function Qe(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function kn(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var Yd=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Lt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!Yd.test(t)?null:t}function dt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=ge(o);n.has(s)||(n.add(s),r.push(s))}return r}function Xd(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Oe(e,t,n,r=Jd){for(let o of e)for(let s of t){let i=ge(zr(o,s)),a=zr(o,s,n).replaceAll("\\","/");if(Xd(i,a)&&r(a))return a}return null}var ea=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,ta=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,Zd=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Qi=new Set(["applications","app","bin","boot","data","dev","etc","home","lib","media","mnt","node_modules","opt","pkg","private","proc","projects","repos","run","sbin","src","srv","sys","tmp","usr","users","var","volumes","workspace","workspaces"]),Qd=/^[a-z][a-z0-9-]{1,63}$/,em=[".cursor/skills",".claude/skills",".agents/skills"],tm=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],nm=Qe(em,ze(Object.values(Ge)).skills),rm=Qe(tm,ze(Object.values(pt)).skills),om=new Set(["read","read_file","view"]),sm=new Set(["bash","shell","zsh"]);function Wr(e){let t=e.replace(/\\/g,"/");return ea.exec(t)?.[1]??null}function im(e){let t=e.replace(/\\/g,"/"),r=ta.exec(t)?.[1];return r?r.toLowerCase():null}function am(e){return Wr(e)??im(e)}function cm(e){for(let t of["path","file_path","target_file"]){let n=e[t];if(typeof n=="string"&&n.length>0)return n}return null}function Pn(e){return typeof e=="string"?Pn(me(e,null)):!e||typeof e!="object"?null:cm(e)}function na(e){if(typeof e=="string")return na(me(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function Vr(e){let t=na(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function um(e){let t=e.replace(/\\/g,"/"),n=ea.exec(t);if(n?.[1])return n[1];let o=ta.exec(t)?.[1];return o?o.toLowerCase():null}function lm(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Jr(e){let t=Pn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function vt(e,t,n){let r=lm(e).toLowerCase();if(om.has(r)){let o=Jr(e);return o?t(o):null}if(sm.has(r)){let o=Vr(e);return o?n(o):null}return null}function ra(e){return vt(e,am,um)}function fm(e){let t=new Set,n=[];for(let r of e.matchAll(Zd)){let o=r[1]?.toLowerCase();!o||t.has(o)||pm(o)||(t.add(o),n.push(o))}return n}function pm(e){let t=e.split("/")[0];return Qi.has(e)||t!==void 0&&Qi.has(t)}function oa(e){let t=e.skillId.toLowerCase();if(!Qd.test(t))return null;let n=e.exists??qd,r=`${t}/SKILL.md`,o=Oe(dt(e.launchCwd,e.gitRoot),nm,r,n);return o!==null?o:e.home?Oe([ge(e.home)],rm,r,n):null}function dm(e){return qe(e.prompt)}function sa(e){let t=v(e,"command_name");if(t){let r=v(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=dm(e);return n?fm(n):[]}var eo=je(Je(),1);import{existsSync as $g}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Ut(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Fg(e){if(!e)return"";let t=xt(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Ut(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Ut(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Ut(o[1]):Ut(t)}async function Un(e=process.cwd()){let t=await Se("git",["rev-parse","--is-inside-work-tree"],2e3,{cwd:e});if(!t.ok||t.stdout!=="true")return null;let[n,r,o,s]=await Promise.all([Se("git",["remote","get-url","origin"],2e3,{cwd:e}),Se("git",["branch","--show-current"],2e3,{cwd:e}),Se("git",["rev-parse","HEAD"],2e3,{cwd:e}),Se("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?xt(n.stdout):null,branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function Pa(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=ki(n,e.scope_path,i);if(s){let g=Ui(s,c);if(g)return g}let u=o??await Un(r),l=u?.remote?Fg(u.remote):"";if(l||(l=Ut(process.env.GITHUB_REPOSITORY??"")),!l)return"";let p=e.scope_path??"",f=p?`${p}/`:"",m=`${l}:${f}${a}`;return s&&Di(s,c,m),m}var jg=[".cursor/rules",".claude/rules",".codex/rules"],Bg=ze(Object.values(Ge)).rules;function Kg(e){return Qe(kn(e?tt[e]:void 0,jg),Bg)}var Gg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Na(e){let t=Lt(e.relativePath);if(!t)return null;let n=e.exists??$g,r=dt(e.launchCwd,e.gitRoot),o=Kg(e.runnerPlatform),s=Oe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=Oe(r,["."],t,n);if(i!==null)return i}return e.home?Oe([ge(e.home)],o,t,n):null}function zg(e){let t=e.replace(/\\/g,"/"),r=Gg.exec(t)?.[1];return r?(0,eo.nativeKeyForRulePath)(r):null}function wa(e){return vt(e,eo.nativeKeyForRulePath,zg)}function Ma(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function La(e){let t=e.attachments;if(!Array.isArray(t))return[];let n=new Set,r=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o;if(s.type!=="rule")continue;let i=typeof s.file_path=="string"?s.file_path:"",a=Lt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var to=je(Je(),1);import{existsSync as Wg}from"node:fs";var Vg=[".cursor/commands",".claude/commands",".codex/prompts"],Jg=ze(Object.values(Ge)).commands;function Yg(e){return Qe(kn(e?tt[e]:void 0,Vg),Jg)}var Xg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function va(e){let t=Lt(e.commandId);if(!t)return null;let n=e.exists??Wg,r=`${t}.md`,o=Yg(e.runnerPlatform),s=Oe(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Oe([ge(e.home)],o,r,n):null}function qg(e){let t=e.replace(/\\/g,"/"),r=Xg.exec(t)?.[1];return r?(0,to.nativeKeyForCommandPath)(r):null}function Ha(e){return vt(e,to.nativeKeyForCommandPath,qg)}var Dn=je(Je(),1);function no(e){let t=pi(e);if(t.problem){O(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function Ua(e,t){if(v(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function Zg(){return!!(L("CURSOR_VERSION")??L("CURSOR_PROJECT_DIR"))}function Da(e,t,n){return e!=="claude"&&e!=="codex"?!1:Ua(t,n)?!0:Zg()}var Qg=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Dt(e,t,n,r){return Ua(e,t)?"cursor":_n(r)?r:_n(n)?n:v(e,"turn_id")?"codex":v(e,"session_id")||Qg.has(t.toLowerCase())?"claude":"unknown"}function Fn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function e_(e){switch(e){case"sessionstart":return"session_start";case"stop":case"sessionend":case"stopfailure":return"session_end";case"pretooluse":case"posttooluse":case"posttoolusefailure":case"permissiondenied":case"beforemcpexecution":case"beforeshellexecution":case"aftershellexecution":case"beforereadfile":case"afterfileedit":case"subagentstart":case"subagentstop":return"tool_invoked";case"beforesubmitprompt":case"userpromptexpansion":case"userpromptsubmit":return"skill_invoked";default:return""}}function Fa(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function $a(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function ja(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Ft(e){return v(e,"session_id")||v(e,"conversation_id")}function ro(e){return v(e,"prompt.id")||v(e,"prompt_id")||v(e,"generation_id")||v(e,"turn_id")}function oo(e){return v(e,"hook_event_name")||v(e,"event")}function Ba(e,t,n){let r=Ft(e),o=ro(e),s=oo(e),i=v(e,"source"),a=Dt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var t_=["session_start","session_end","tool_invoked","skill_invoked"];function n_(e){return t_.includes(e)}function so(e,t){return e&&n_(e)?e:e_(t.toLowerCase())}var r_={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function $n(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Ka(e,t=""){let n=v(e,"tool_name")||v(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!$n(n)&&(n=`MCP:${n}`):n=r_[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||v(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=ra(a);let c=wa(a),u=Ha(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var o_=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Ga(e){for(let t of["subagent_type","agent_type"]){let n=v(e,t);if(n&&o_.test(n))return n}return null}function za(e){let t=Me(e,"duration_ms");if(typeof t=="number")return t;let n=Me(e,"duration");return typeof n=="number"?n:null}var s_="error",i_="interrupted",a_="permission_denied",c_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function $t(e){return c_.test(e)?e:null}function u_(e){for(let t of["failure_type","error_type"]){let n=$t(v(e,t));if(n)return n}return null}function Wa(e,t){return Me(e,"is_interrupt")===!0?i_:t.toLowerCase()==="permissiondenied"?a_:u_(e)??s_}function Va(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function l_(e,t){return Va(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function f_(e,t){return Va(t,n=>(0,Dn.mcpServerNameMatchesToolSegment)(n,e))}function p_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Dn.mcpServerToolSegmentForms)(s)){let a=`${i}__`;e.length>a.length&&e.slice(0,a.length).toLowerCase()===a.toLowerCase()&&i.length>r&&(n={mcpServer:s,mcpTool:e.slice(a.length)},r=i.length)}if(n!==null)return n;let o=/^(.+?)__(.+)$/.exec(e);return!o?.[1]||!o[2]?{mcpServer:null,mcpTool:null}:{mcpServer:f_(o[1],t)??o[1],mcpTool:o[2]}}function d_(e,t){if(/^mcp__/i.test(e))return p_(e.slice(5),t);if(/^MCP:/i.test(e)){let n=e.slice(4);if(!n)return{mcpServer:null,mcpTool:null};let r=n.indexOf(":");if(r>0)return{mcpServer:n.slice(0,r),mcpTool:n.slice(r+1)||null};let o=n.indexOf("__");return o>0?{mcpServer:n.slice(0,o),mcpTool:n.slice(o+2)||null}:{mcpServer:l_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function m_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Ja(e,t=[],n=""){let r=e?d_(e,t):{mcpServer:null,mcpTool:null},o=$t(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!$n(e)&&(s=e),s&&(s=m_(s,o)),{mcpServer:o,mcpTool:s}}var qa=3e4,y_="claims",R_=!0,C_=100,A_=new Set(["sessionstart","sessionend","stopfailure"]),I_=["tool_name","tool","command","file_path","url"];function b_(e=Xa()){return io(Ee(e),y_)}function Za(e,t){try{let n=S_(e,"utf8").split(`
|
|
20
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function O_(e){let t=[];for(let n of I_){let r=v(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":Tt(t.join("\0"))}function x_(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=A_.has(n);if(!a&&!c)return;let u=e.runnerPlatform.trim()||"unknown";return Tt(`${u}|${t}|${n}|${r}|${o}|${i}|${s}`)}function T_(e,t=Date.now()){let n;try{n=h_(e)}catch{return}let r=0;for(let o of n){if(r>=C_)break;r+=1;let s=io(e,o),i=Za(s,t);if(!(!Number.isFinite(i)||i<qa))try{Ya(s)}catch{}}}function k_(e,t,n=Date.now()){let r=io(t,e);try{if(g_(r)){let o=Za(r,n);if(Number.isFinite(o)&&o>=0&&o<qa)return!1;try{Ya(r)}catch{}}}catch{}try{__(t,{recursive:!0}),E_(r,`${n}
|
|
21
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(On(o))return!1;let s=o instanceof Error?o.message:String(o);return O(`WARN: event claim failed open: ${s}`),!0}return T_(t,n),!0}function P_(e,t,n){let r=Ft(e),o=ro(e),s=v(e,"tool_use_id"),i=v(e,"subagent_id")||v(e,"agent_id"),a=Dt(e,t,void 0,n),c=O_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function Qa(e,t,n,r=Xa(),o=Date.now()){if(!R_)return!0;let s=x_(P_(e,t,n));if(!s)return!0;let i=k_(s,b_(r),o);return!i&&L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{mkdirSync as M_,readFileSync as pc,statSync as L_,unlinkSync as dc,writeFileSync as v_}from"node:fs";import{homedir as mc}from"node:os";import{join as ec}from"node:path";var tc=4,nc=10;function jn(e=process.platform){return e==="win32"?tc:nc}var Bn=6e4,jt=2e3,rc="slots",oc=64;function sc(e){return ec(e,".ev-ai","agent-hook",rc)}function ao(e,t){return ec(e,`slot-${t}`)}function ic(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var N_=/^(\d+)\n(\d+)\n$/;function w_(e){let t=N_.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function ac(e,t,n){let r=w_(e);if(!r)return Math.abs(n-t)<jt;let o=n-r.acquiredAtMs;return o<-jt||o>=Bn?!1:ic(r.pid)}function gc(e){return e==="session_start"||e==="session_end"}var co=new Set,cc=!1;function _c(e=mc()){return sc(e)}function uo(e,t=mc(),n=process.platform){if(e!==void 0)return e>0?e:jn(n);let r=te(Nt(t),{});return li(r)??jn(n)}function hc(e){return`${e.pid}
|
|
22
22
|
${e.acquiredAtMs}
|
|
23
|
-
`}
|
|
24
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: cloud cache write failed open: ${r}`)}}function
|
|
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
|
|
23
|
+
`}function Sc(e,t=Date.now()){let n,r;try{let o=L_(e);if(!o.isFile())return!1;r=o.mtimeMs,n=o.size<=oc?pc(e,"utf8"):""}catch{return!1}return ac(n,r,t)}function Ec(e,t=_c(),n=Date.now){for(let r=0;r<e;r+=1)if(!Sc(ao(t,r),n()))return!0;return e<=0}function yc(e){return{pid:process.pid,acquiredAtMs:e}}function uc(e,t){let n=e instanceof Error?e.message:String(e);return O(`WARN: hook process slot failed open: ${n}`),yc(t)}function lc(e){return co.add(e),cc||(cc=!0,process.once("exit",()=>{for(let t of[...co])lo(t)})),e}function fc(e){try{return v_(e.path,hc(e),{encoding:"utf8",flag:"wx",mode:384}),!0}catch(t){if(On(t))return!1;throw t}}function Rc(e,t=_c(),n=Date.now){if(e<=0)return yc(n());try{M_(t,{recursive:!0})}catch(o){return uc(o,n())}let r;for(let o=0;o<e;o+=1)try{let s={path:ao(t,o),pid:process.pid,acquiredAtMs:n()};if(fc(s))return lc(s);if(Sc(s.path,n()))continue;try{dc(s.path)}catch(i){if(!Mt(i))throw i}if(s.acquiredAtMs=n(),fc(s))return lc(s)}catch(s){r??=s}return r===void 0?null:uc(r,n())}function lo(e,t=Date.now()){if(co.delete(e),!(!e.path||t-e.acquiredAtMs>=Bn-jt))try{pc(e.path,"utf8")===hc(e)&&dc(e.path)}catch{}}function fo(e){L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: hook process cap reached (${e}/${e}); event dropped`)}import{closeSync as H_,writeSync as U_}from"node:fs";function Cc(e=process.env){let t=e[kr];if(delete e[kr],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{U_(n,ri)}catch{}try{H_(n)}catch{}}}function po(e=process.env){let t=e[Zs];if(t)return{launcherVersion:t,hookSource:e[Qs]??"",fallbackReason:e[ei],launcherScope:e[ti]}}function Ac(e,t){return(e?wt(e):void 0)===t}import{realpathSync as aC}from"node:fs";import{homedir as cC}from"node:os";var B=je(Je(),1);import{existsSync as D_,readFileSync as F_}from"node:fs";import{homedir as Ic}from"node:os";import{join as $_}from"node:path";var j_="cloud-cache.json",B_=1440*60*1e3,K_=900*1e3;function G_(e=Ic()){return $_(Ee(e),j_)}function z_(e){if(!D_(e))return;let t=me(F_(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 W_(e,t){try{de(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 V_(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?K_:B_;return n-e.probed_at<r}async function J_(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 Y_(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 X_(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 q_(e){let t=await Promise.allSettled([J_(e),Y_(e),X_(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function bc(e,t){if(e==="interactive")return null;let n=t?.home??Ic(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=G_(n),i=z_(s);if(V_(i,e,o))return i.result;let a=await q_(r);return W_(s,{context:e,probed_at:o,result:a}),a}var kc=je(Je(),1);import{existsSync as xc}from"node:fs";import{homedir as Tc}from"node:os";import{join as Bt,resolve as mo,sep as Oc}from"node:path";function Kn(e,t,n){if(!xc(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 Z_(e,t,n){if(!xc(e))return;let r=te(e,{}),o=mo(t),s=null;for(let a of Object.keys(r.projects??{})){let c=mo(a);(o===c||o.startsWith(c.endsWith(Oc)?c:c+Oc))&&(s===null||c.length>mo(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 Pc(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"?(Kn(Bt(r,".claude.json"),{source:"claude_json_user"},o),Z_(Bt(r,".claude.json"),t,o)):n==="cursor"&&Kn(Bt(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),Kn(Bt(t,".mcp.json"),{source:"mcp_json"},o),Kn(Bt(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function go(e,t=process.cwd(),n="claude",r=Tc()){return[...Pc(e,t,n,r).values()].map(o=>o.declared)}function Nc(e,t,n=process.cwd(),r="claude",o=Tc()){let s=Pc(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,kc.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var Q_=["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"],eh=["CURSOR_PROJECT_DIR"],th=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function nh(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)th.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function wc(e=process.env){let t=Q_.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:nh(e[r]??"")}:{name:r,present:!1}),n=eh.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as wh}from"node:os";import{homedir as Mc}from"node:os";import{join as rh}from"node:path";function oh(e=Mc()){return rh(e,".claude.json")}function Gn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Lc(e=Mc()){let n=te(oh(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=Gn(n.emailAddress),o=Gn(n.fullName)??Gn(n.displayName),s=Gn(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 Uc}from"node:os";import{join as vc}from"node:path";var sh="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 Dc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ih(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 Dc(r)}catch{return null}}function Hc(e,t,n){return _t(e[n])??_t(t?.[n])}function ah(e=process.env,t=Uc()){let n=_t(e.CODEX_HOME)??vc(t,".codex");return vc(n,"auth.json")}function Fc(e=process.env,t=Uc()){let n=te(ah(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=ih(o);if(!s)return null;let i=Dc(s[sh]),a=Hc(s,i,"name"),c=Hc(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 Vn}from"node:os";import{join as He}from"node:path";import{join as ch}from"node:path";var uh="cursor-ide-identity.json",lh=840*60*1e3;function jc(e){return ch(Ee(e),uh)}function $c(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Bc(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:$c(t.email),auth_id:$c(t.auth_id)}}function Kc(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<lh}function Gc(e,t){try{de(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 fh}from"node:child_process";import{existsSync as ph}from"node:fs";import{createRequire as dh}from"node:module";import{pathToFileURL as mh}from"node:url";var Wc=dh(import.meta.url),zn=`
|
|
26
26
|
SELECT key, value
|
|
27
27
|
FROM ItemTable
|
|
28
28
|
WHERE key LIKE 'cursorAuth/%'
|
|
29
29
|
AND key NOT LIKE '%Token%'
|
|
30
30
|
AND key NOT LIKE '%token%'
|
|
31
31
|
ORDER BY key
|
|
32
|
-
`.trim(),
|
|
33
|
-
`)){let r=n.trimEnd();if(!r)continue;let o=r.indexOf(" ");if(o<=0)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();s&&i&&!
|
|
34
|
-
`);return X(n)}function
|
|
35
|
-
`)){let o=r.trim();if(!o)continue;let s=o.indexOf(" ");if(s<=0)continue;let i=o.slice(0,s).toLowerCase(),a=o.slice(s+1).trim();a&&(i==="user.name"?t=a:i==="user.email"&&(n=a))}return{git_user_name:t,git_user_email:n,platform_login:null}}async function 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){if(!(n.promptCapture??Ro()))return;let r=$h(n.runnerEvent);for(let o of Dh){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}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
|
|
37
|
-
`)){let s=
|
|
32
|
+
`.trim(),_o=new Map;function zc(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 Vc(e){return e.toLowerCase().includes("token")}function Jc(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=zc(r.key),s=zc(r.value);o&&s&&!Vc(o)&&t.set(o,s)}return t}function gh(e){let t=mh(e);return t.search="mode=ro&immutable=1",t.href}function _h(e){try{let t=Wc("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(zn)??n.prepare(zn);return Jc(r.all?.())}finally{n.close?.()}}catch{return null}}function hh(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 Sh(e){try{return hh(()=>{let t=Wc("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return Jc(n.prepare(zn).all?.())}finally{n.close?.()}})}catch{return null}}function Eh(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&&!Vc(s)&&t.set(s,i)}return t}function yh(e){try{let t=fh("sqlite3",["-noheader","-batch","-separator"," ",e,zn],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return Eh(t)}catch{return null}}function Yc(e){let t=_o.get(e);if(t)return t;if(!ph(e)){let o=new Map;return _o.set(e,o),o}let n=gh(e),r=_h(n)??yh(n)??Sh(n)??new Map;return _o.set(e,r),r}var Rh="cursorAuth/cachedEmail",Ch="cursorAuth/stripeMembershipAuthId";function Wn(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Ah(e=Vn(),t=process.platform,n=process.env){let r=Wn(n.VSCODE_PORTABLE);if(r)return He(r,"user-data");let o=Wn(n.VSCODE_APPDATA);if(o)return He(o,"Cursor");switch(t){case"darwin":return He(e,"Library","Application Support","Cursor");case"win32":return He(Wn(n.APPDATA)??He(e,"AppData","Roaming"),"Cursor");default:return He(Wn(n.XDG_CONFIG_HOME)??He(e,".config"),"Cursor")}}function Ih(e=Vn()){return He(e,".cursor","cli-config.json")}function bh(e=Vn(),t=process.platform,n=process.env){return He(Ah(e,t,n),"User","globalStorage","state.vscdb")}function Kt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Oh(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):Kt(e.userId)}function xh(e){return Kt(e.email)??Kt(e.authId)??Oh(e)}function ho(e){let t=Kt(e.email),n=Kt(e.displayName),r=xh(e);return!r||fe(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function Th(e){let n=te(Ih(e),{}).authInfo;return!n||typeof n!="object"?null:ho(n)}function kh(e,t,n){let r=bh(e,process.platform,t),o=jc(e),s=Bc(o);if(Kc(s,r,n))return ho({email:s?.email,authId:s?.auth_id});let i=Yc(r),a=i.get(Rh)??null,c=i.get(Ch)??null;return Gc(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),ho({email:a,authId:c})}function Xc(e=Vn(),t=process.env,n=Date.now()){return Th(e)??kh(e,t,n)}import{createHash as Ph}from"node:crypto";import{resolve as Nh}from"node:path";function X(e){return Ph("sha256").update(e).digest("hex").slice(0,16)}function So(e){return X(Nh(e))}function _e(e,t){return`${e}\0${t}`}function qc(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function Gt(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 Mh(e,t,n="git_config",r=null){return X(`${e??""}|${t??""}|${r??""}|${n}`)}function Lh(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 vh(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Lh(n)}function Hh(e=process.env){let t=j(e.GIT_AUTHOR_NAME),n=j(e.GIT_AUTHOR_EMAIL);if(t||n)return{git_user_name:t,git_user_email:n,platform_login:null,identity_source:"git_env"};let r=j(e.GIT_COMMITTER_NAME),o=j(e.GIT_COMMITTER_EMAIL);if(r||o)return{git_user_name:r,git_user_email:o,platform_login:null,identity_source:"git_env"};let s=j(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function Ue(e,t,n,r=null){return!e&&!t&&!r?null:{git_user_name:e,git_user_email:t,platform_login:r,identity_source:n}}function Uh(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ue(j(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=j(e.GITHUB_ACTOR)??j(e.GITHUB_TRIGGERING_ACTOR)??j(e.GITHUB_USER),s=Ue(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ue(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let u=j(e.BUILD_REQUESTEDFOREMAIL),l=Ue(j(e.BUILD_REQUESTEDFOR),u,"azure_devops",u??j(e.BUILD_REQUESTEDFORID));if(l)return l;let p=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ue(j(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(f)return f;let m=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ue(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),m,"jenkins",m??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),C=Ue(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),T=Ue(A,null,"codebuild",A);if(T)return T;let x=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),k=Ue(M??j(e.DRONE_COMMIT_AUTHOR_NAME),x,"drone",x??M);if(k)return k;if(Zc(e.CLAUDE_CODE_REMOTE)||Zc(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!fe(null,K)?K:null,identity_source:"cloud"}}return null}function Eo(e){return!!((e.git_user_name??e.git_user_email)&&!fe(e.git_user_name,e.git_user_email))}function j(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Zc(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Dh(e,t,n){return e==="claude"?Lc(t):e==="cursor"?Xc(t,n):e==="codex"?Fc(n,t):null}async function yo(e,t=ee,n=process.env,r={}){let o=await vh(e,t),s=Hh(n),i=Eo(o)?o:s&&Eo(s)?s:null,a=Dh(r.runnerPlatform,r.home??wh(),n);if(a)return{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:a.platform_login,identity_source:a.identity_source};let c=Uh(n);return c?.platform_login?{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:c.platform_login,identity_source:c.identity_source}:i?{...i,platform_login:null,identity_source:Eo(o)?"git_config":"git_env"}:c||(o.git_user_name||o.git_user_email?{...o,identity_source:"git_config"}:s||{git_user_name:null,git_user_email:null,platform_login:null,identity_source:"git_config"})}async function Ro(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await yo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Mh(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?Kr(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&Li(m,a,fn())}}}function Co(e){return e?!Kr(e)?.operator_identity_hash:!0}function Qc(e){return!0}import{existsSync as Qy,readFileSync as eR}from"node:fs";import{homedir as bf}from"node:os";import{join as Ct,resolve as tR}from"node:path";import{basename as zy,join as Rt}from"node:path";import{dirname as lu,resolve as qn}from"node:path";import{existsSync as Fh}from"node:fs";import{homedir as nu}from"node:os";import{relative as ru,resolve as Te,sep as Ye}from"node:path";var $h=["session_id","conversation_id","turn_id","generation_id","prompt.id","prompt_id","hook_event_name","event","source","status","stop_reason","reason","tool_name","tool","tool_use_id","skill_name","command_name","expansion_type","command_source","permission_mode","model","model_id","agent_id","agent_type","subagent_id","subagent_type","subagent_model","is_parallel_worker","effort","effort.level","duration_ms","duration","sandbox","failure_type","is_interrupt"],jh=["prompt","tool_input","tool_response","last_assistant_message","command"],Bh=new Set;function Kh(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Bh}}var ou=new Set(["on","1","true"]);function xo(e){let t=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?ou.has(t.toLowerCase()):e?.collect_prompt===!0}function Jn(e,t){let n=su(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?ou.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function su(e){return L("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||L("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function Gh(e){let t={};for(let n of $h){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function Yn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=ru(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function iu(e,t){let n=ru(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function au(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function zh(){let e=L("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return Fh(t)?t.split(Ye).join("/"):null}function Io(e,t){return Yn(e,t)!==null}function Wh(e,t){let n=Te(t??nu(),".cursor").split(Ye).join("/");return Io(e,n)}function Vh(e,t,n){return t!==null&&Io(e,t)?!0:t!==null&&Wh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&Io(e,n.gitRoot)?!0:t===null}function cu(e,t){let n=au(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=zh();return Vh(r,o,t)?r:o??r}function To(e,t={}){return cu(e,t)}function ko(e,t=nu()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function eu(e,t,n){let r=au(n.launchCwd)??cu(t,n);e.cwd=ko(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Yn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var uu="\u2026[truncated]\u2026",bo=Buffer.byteLength(uu,"utf8"),Jh=8;function zt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function tu(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Yh(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(n.length-t).toString("utf8")}function Xh(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=bo)return tu(e,t);let r=t-bo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${tu(e,o)}${uu}${Yh(e,s)}`}function Oo(e,t,n){if(typeof e=="string"){n.push({path:t,value:e,bytes:Buffer.byteLength(e,"utf8")});return}if(Array.isArray(e)){e.forEach((r,o)=>{Oo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||Oo(o,[...t,r],n)}function qh(e,t,n){let r=e;for(let s=0;s<t.length-1;s++){let i=t[s];if(i===void 0)return;r=(Array.isArray(r),r[i])}let o=t[t.length-1];if(!(o===void 0||r===null||typeof r!="object")){if(Array.isArray(r)){r[o]=n;return}r[o]=n}}var Zh=256;function Qh(e,t,n){let r=n,o=Math.max(n,e[0]?.bytes??n);for(;r<o;){let s=Math.ceil((r+o)/2),i=0;for(let a of e)a.bytes>s&&(i+=a.bytes-s);i>=t?r=s:o=s-1}return r}function eS(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=zt(e);if(s<=t)return;let i=[];Oo(e,[],i),i.sort((l,p)=>p.bytes-l.bytes);let a=i.filter(l=>l.bytes>n);if(a.length===0)return;let c=Qh(a,s-t,n),u=Math.max(n,Math.min(c,r-1));if(u>=r)return;r=u;for(let l of a)l.bytes>r&&qh(e,l.path,Xh(l.value,r))}}function tS(e,t){let n=Math.max(0,t-Zh),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:zt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(zt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function Ao(e,t){let n=zt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,eS(r,t,bo+Jh),zt(r)>t&&tS(r,t),r}function nS(e,t,n){if(!(n.promptCapture??xo()))return;let r=Kh(n.runnerEvent);for(let o of jh){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Xn(e,t,n={}){let r=su(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,eu(s,e,n),Ao(s,Dr)}let o=Gh(e);return eu(o,e,n),r==="content"?(nS(o,e,n),Ao(o,Dr)):Ao(o,Si)}function rS(e){return typeof e=="string"&&e.length>0}function Po(e){let t=qn(e.home),n=qn(e.launchCwd),r=e.gitRoot?qn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&rS(e.remote)&&r!==null&&r!==t&&(i=r,o.add(r)),n!==t&&!o.has(n)&&(s.push({scope:"cwd",dir:n}),o.add(n)),i!==null&&s.push({scope:"repo",dir:i});let a=null,c=r!==null&&Yn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=lu(r);for(;;){let l=qn(u);if(l===t)break;let p=lu(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=iu(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as fu,readdirSync as oS,realpathSync as sS}from"node:fs";import{basename as iS,dirname as aS,relative as cS,resolve as uS,sep as lS}from"node:path";var No=400,Zn=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Be}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=uS(t).split(lS).join("/");return ko(r,this.home)}let n=cS(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(aS(t))}/${iS(t)}`:n}claimFile(t){try{let n=sS(t);return this.seenRealpaths.has(n)?!1:(this.seenRealpaths.add(n),!0)}catch{return this.seenRealpaths.has(t)?!1:(this.seenRealpaths.add(t),!0)}}get atGlobalCap(){return this.truncated||this.components.length>=this.maxEntries}get pluginBudgetSpent(){return this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0}readEntries(t){if(!fu(t))return[];try{return oS(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(fu(t))return te(t,n)}push(t){return this.components.length>=this.maxEntries?(this.truncated=!0,!1):this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0?!1:(this.pluginExpandRemaining!==void 0&&(this.pluginExpandRemaining-=1),this.components.push(t),!0)}withPluginExpandCap(t,n){let r=this.pluginExpandRemaining;this.pluginExpandRemaining=t;try{let o=n(),s=t-(this.pluginExpandRemaining??0);return{result:o,expanded:s}}finally{this.pluginExpandRemaining=r}}};import{existsSync as Yo,readFileSync as ME,statSync as LE}from"node:fs";import{basename as Ol,join as ot,relative as Xo}from"node:path";var Cl=je(Rl());var NE=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Al=NE.map(e=>Cl.default.matcher(e,{dot:!0}));function wE(e){return e===""?!1:Al.some(t=>t(`${e}/`))}function Il(e,t){if(t==="")return!1;if(e==="")return wE(t);let n=e.replace(/\/+$/,"");return Al.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var qo=100*1024,vE=4;function HE(e){return e.length<=qo?e:`${e.slice(0,qo-1)}\u2026`}function UE(e){try{let t=ME(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:HE(n)}}catch{return null}}var bl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function DE(e){return e in bl?bl[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=UE(t.absolutePath);if(!n)return!1;let r=t.name??Ol(t.absolutePath).replace(/\.(md|mdc|toml)$/i,""),o={kind:t.kind,name:r,path:e.componentPath(t.absolutePath),text:n.text,content_hash:n.hash,content_length:n.length,origin:t.origin,enabled:t.enabled},s=DE(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function FE(e,t,n){let r=Xo(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Ol(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function st(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;Zo(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Zo(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l}=t;if(!(o>vE))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&Il(n.replace(/\\/g,"/"),Xo(n,ot(r,p.name)).replace(/\\/g,"/"))||p.isDirectory()&&l?.includes(ot(r,p.name)))continue;if(c){if(!p.isDirectory())continue;let g=ot(r,p.name,c);if(Yo(g)){let S=Xo(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Zo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(p.isDirectory()){Zo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(!p.isFile()||!u)continue;let f=p.name.toLowerCase();if(!u.some(g=>f.endsWith(g)))continue;let m=ot(r,p.name);Et(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:FE(n,m,!0)})}}function xl(e){for(let t of e)if(Yo(t))try{if(LE(t).size>0)return t}catch{continue}return e.find(t=>Yo(t))}import{existsSync as gy,readFileSync as _y}from"node:fs";var sr=je(Je(),1);var $E="<omitted>",jE=["package_name","package_spec","package_version","package_version_source"],Tl=100,kl=120,ir=[{raw:"tools",attr:"tools"},{raw:"autoApprove",attr:"auto_approve"},{raw:"auto_approve",attr:"auto_approve"},{raw:"alwaysAllow",attr:"always_allow"},{raw:"always_allow",attr:"always_allow"},{raw:"enabledTools",attr:"enabled_tools"},{raw:"enabled_tools",attr:"enabled_tools"},{raw:"disabledTools",attr:"disabled_tools"},{raw:"disabled_tools",attr:"disabled_tools"}],Pl=new Set(ir.map(e=>e.attr)),BE=["enabled","disabled"],KE=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],GE=new Set(["type","command","url","args","env","envVars","headers",...BE,...KE,...ir.map(e=>e.raw)]),zE=new Set(["transport","command_or_url","args","env_var_names","headers_present","auth","bearer_token_env_var","default_tools_approval_mode","env_http_header_names",...jE,...Pl,...[...Pl].map(e=>`${e}_truncated`)]);function Nl(e,t){for(let n of t)GE.has(n)||zE.has(n)||(e[n]=$E)}var WE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,VE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,JE=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,YE=/^bearer(?:\s+|$)/i;function ar(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function wl(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Qo(e){if(Array.isArray(e)){let n=[];for(let r of e){if(typeof r!="string"||r.length===0)continue;let o=r.split("=",1)[0]?.trim();o&&n.push(o)}return n}let t=ar(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function it(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function XE(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,sr.launchContainsCredentials)({kind:"url",url:e})||(0,sr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=Zt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,sr.launchContainsCredentials)({kind:"url",url:r}):!0)}function Ml(e,t,n){XE(t,n)&&(e.launch_had_credentials=!0)}function qE(e){return JE.test(e)||YE.test(e)?"<redacted>":e.includes("://")?it(e):e}function Ll(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Ll(e.slice(t+1))}`:qE(e)}function ZE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return WE.test(t)||VE.test(t)}function Zt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(ZE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Ll(r))}return t}function QE(e){let t=wl(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>kl?r.slice(0,kl):r))].sort();if(n.length!==0)return n.length>Tl?{names:n.slice(0,Tl),truncated:!0}:{names:n,truncated:!1}}function ey(e){let t=ar(e);if(!t)return{headers:[],envVars:[]};let n=[],r=[];for(let[o,s]of Object.entries(t))o.length>0&&n.push(o),typeof s=="string"&&s.length>0&&r.push(s);return{headers:n,envVars:r}}function vl(e,t){let n=new Set;for(let{raw:r,attr:o}of ir){if(n.has(o)||!(r in t))continue;let s=t[r];if(o==="auto_approve"&&typeof s=="boolean"){e.auto_approve=s,n.add(o);continue}let i=QE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Hl(e,t){let n=ar(e),r={transport:t};if(!n)return r;Nl(r,Object.keys(n));let o=typeof n.command=="string"?n.command:void 0,s=typeof n.url=="string"?n.url:void 0,i=typeof n.serverUrl=="string"?n.serverUrl:void 0,a=o??s??i,c=wl(n.args);a&&(r.command_or_url=it(a));let u=Zt(c);u.length>0&&(r.args=u),Ml(r,a,c);let l=ey(n.env_http_headers),p=[...new Set([...Qo(n.env),...Qo(n.envVars),...Qo(n.env_vars),...l.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),l.headers.length>0&&(r.env_http_header_names=[...new Set(l.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let m=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;m&&(r.bearer_token_env_var=m);let g=typeof n.default_tools_approval_mode=="string"?n.default_tools_approval_mode:typeof n.defaultToolsApprovalMode=="string"?n.defaultToolsApprovalMode:void 0;return g&&(r.default_tools_approval_mode=g),vl(r,n),r}function Ul(e){let t=ar(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function ns(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return X(JSON.stringify({name:e,attributes:r,enabled:n}))}function yt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function qt(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*\\[([^\\]]*)\\]`,"m").exec(e);return n?.[1]?[...n[1].matchAll(/"([^"]*)"|'([^']*)'/g)].map(r=>r[1]??r[2]??"").filter(r=>r.length>0):[]}function ts(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function es(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=yt(n[1]);return r.length>0?r:void 0}function ty(e,t){let n=[],r=i=>{for(let a of i.split(/[,\n]/)){let c=/^\s*"?([A-Za-z_][A-Za-z0-9_-]*)"?\s*=\s*(.+?)\s*$/.exec(a);c?.[1]&&n.push([c[1],yt(c[2]??"")])}},o=new RegExp(`^\\s*${t}\\s*=\\s*\\{([^}]*)\\}`,"m").exec(e);o?.[1]&&r(o[1]);let s=new RegExp(`(?:^|\\n)\\[[^\\]]*\\.${t}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`).exec(`
|
|
36
|
+
${e}`);return s?.[1]&&r(s[1]),n}function Dl(e){return ts(e,"enabled")===!1?!1:ts(e,"disabled")!==!0}function ny(e,t){let n={};for(let{raw:r,attr:o}of ir){if(o==="auto_approve"){let i=ts(t,r);if(i!==void 0){n[r]=i;continue}}let s=qt(t,r);s.length>0&&(n[r]=s)}vl(e,n)}var ry=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,oy=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function sy(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=ry.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(oy))o[1]&&t.add(o[1]);return[...t]}function Fl(e,t){let n={transport:t};Nl(n,sy(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=qt(e,"args");a&&(n.command_or_url=it(a));let u=Zt(c);u.length>0&&(n.args=u),Ml(n,a,c);let l=new Set;for(let A of e.split(`
|
|
38
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(`
|
|
39
39
|
${e}`);if(f?.[1])for(let A of f[1].split(`
|
|
40
|
-
`)){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}for(let A of
|
|
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
|
|
43
|
-
`);return X(n)}function
|
|
44
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: self-config cache write failed open: ${r}`)}}function
|
|
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
|
|
46
|
-
${n}`}function
|
|
47
|
-
`);if(t<0)return null;let n;try{n=JSON.parse(e.slice(0,t))}catch{return null}return{meta:n,body:e.slice(t+1)}}async function
|
|
48
|
-
`,p=L("EV_AI_HOOK_DEBUG");p==="full"?O(`DEBUG envelope=${u}`):p==="1"&&O(`DEBUG summary=${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}
|
|
40
|
+
`)){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}for(let A of qt(e,"env_vars"))l.add(A);let m=ty(e,"env_http_headers");for(let[,A]of m)A.length>0&&l.add(A);let g=es(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=es(e,"auth");S&&(n.auth=S);let C=es(e,"default_tools_approval_mode");return C&&(n.default_tools_approval_mode=C),ny(n,e),n}var Ne=je(Je(),1);import{createHash as uy}from"node:crypto";import{join as Qt}from"node:path";var iy=300,ay=256;function $l(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 cr(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 jl(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function cy(e){return jl(e,iy)}function Bl(e,t){let n=$l(e.trim(),t),r=cr(n);if(r.length===0)return"";let[o,...s]=r,i=it(o),a=Zt(s);return cy([i,...a].join(" "))}function Kl(e,t){if(typeof e!="string")return null;let n=$l(e.trim(),t),r=cr(n)[0];if(!r)return null;let o=it(r);return o.length===0?null:jl(o,ay)}function ly(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 fy(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
41
|
+
`);return uy("sha512").update(t).digest("hex").slice(0,16)}function py(e){let t=process.platform==="win32"?Qt(L("LOCALAPPDATA")??e,"npm-cache"):Qt(e,".npm"),n=L("npm_config_cache")??L("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Gl(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function dy(e,t,n){let r=fy(e);for(let o of py(n)){let s=Qt(o,"_npx",r),i=te(Qt(s,"node_modules",...t.split("/"),"package.json"),{}),a=Gl(i.version);if(a!==null)return a;let c=te(Qt(s,"package-lock.json"),{}),u=Gl(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function my(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function rs(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,Ne.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,Ne.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:my(o),...ly(o,dy(r,s,n))}}function zl(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=cr(e.trim());return n===void 0?null:rs(n,r,t)}function ur(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return rs(typeof n.command=="string"?n.command:null,r,t)}function Wl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:rs(yt(n[1]??""),qt(e,"args"),t)}function hy(e){if(!e||typeof e!="object"||Array.isArray(e))return"unknown";let t=e;return typeof t.type=="string"&&t.type.length>0?t.type:typeof t.url=="string"?"http":typeof t.command=="string"?"stdio":"unknown"}function Vl(e,t,n){if(!e.claimFile(t))return;let o=e.readJson(t,{})?.mcpServers;if(!o||typeof o!="object")return;let s=e.componentPath(t);for(let[i,a]of Object.entries(o)){if(e.truncated)return;let c=hy(a),u=Hl(a,c);Object.assign(u,ur(a,e.home)??{});let l=Ul(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:ns(i,u,l),origin:n,enabled:l,attributes:u})}}function Jl(e,t,n){if(!gy(t)||!e.claimFile(t))return;let r;try{r=_y(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),u=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),l=u===-1?c:c.slice(0,u),p="unknown";/^\s*url\s*=/m.test(l)?p="http":/^\s*command\s*=/m.test(l)&&(p="stdio");let f=Fl(l,p);Object.assign(f,Wl(l,e.home)??{});let m=Dl(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:ns(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as yy,readdirSync as Ry}from"node:fs";import{join as ce}from"node:path";function Sy(e){if(e.prompt||e.type==="prompt")return"prompt";let t=e.command??e.bash??e.powershell??"";return/\bnpx\b/i.test(t)?"npx":/\.(sh|bash|zsh|js|mjs|cjs|ts|py)(\s|$|"|')/i.test(t)||/^(\.\/|~\/|\/|[A-Za-z]:[\\/])/.test(t.trim())?"script":"inline"}function Ey(e){return Array.isArray(e.hooks)&&e.hooks.length>0?e.hooks:[{type:e.type,command:e.command,bash:e.bash,powershell:e.powershell,prompt:e.prompt}]}function os(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let u of Ey(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=Sy({type:u.type??c.type,command:u.command??c.command,bash:u.bash??c.bash,powershell:u.powershell??c.powershell,prompt:u.prompt??c.prompt}),f=typeof c.matcher=="string"?c.matcher:"",m=X(l),g=f?`${s}:${f}:${p}:${m}`:`${s}:${p}:${m}`,S=`${s}|${f}|${p}|${l}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:X(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:p,action_hash:m,...p!=="prompt"&&l.trim()?{command:Bl(l,e.home)}:{}}})}}}function ss(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||os(e,t,r.hooks,n)}var Yl=50;function en(e,t,n,r){if(!yy(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(Yl,()=>{st(e,{dir:ce(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),st(e,{dir:ce(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),st(e,{dir:ce(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});ss(e,ce(t,"hooks","hooks.json"),n),ss(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=Yl;return{componentCount:i,expandTruncated:a}}function tn(e,t){e.push({kind:"PLUGIN",name:t.pluginKey,path:t.rowPath,content_hash:t.contentHash,origin:"user",enabled:t.enabled,attributes:{...t.marketplace?{marketplace:t.marketplace}:{},...t.version?{version:t.version}:{},scope:t.scope,component_count:t.componentCount,...t.expandTruncated?{expand_truncated:!0}:{}}})}function Xl(e){let t=ce(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ce(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let u=Array.isArray(c)?c:[c],l=u[0]??{},p=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",m=typeof l.version=="string"?l.version:"",g=typeof l.scope=="string"?l.scope:"user",S=`plugin:${a}`,C=0,A=!1;for(let T of u)if(typeof T.installPath=="string"&&T.installPath.length>0){let x=en(e,T.installPath,S,p);C+=x.componentCount,A=A||x.expandTruncated}tn(e,{pluginKey:a,rowPath:i,enabled:p,scope:g,version:m||void 0,marketplace:f||void 0,componentCount:C,expandTruncated:A,contentHash:X(`${a}|${m}|${g}|${p}|${C}`)})}}function Cy(e){let t=e,n="";try{let r=Ry(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ce(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ce(e,s),n=s)}}catch{}return{installPath:t,version:n}}var Ay=/^\d+$/;function Iy(e){let t=e.filter(n=>!Ay.test(n.pluginId));return t.length>0?t:e}function ql(e){let t=[{base:ce(e.home,".cursor/plugins/local"),scope:"local"},{base:ce(e.home,".cursor/plugins/cache"),scope:"cache"}];for(let{base:n,scope:r}of t)if(!e.truncated)for(let o of e.readEntries(n)){if(!o.isDirectory()||e.truncated)continue;if(r==="local"){let a=o.name,c=ce(n,o.name),u=`plugin:${a}`,{componentCount:l,expandTruncated:p}=en(e,c,u,!0);tn(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:l,expandTruncated:p,contentHash:X(`${a}|local|${l}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ce(n,s))){if(!a.isDirectory())continue;let c=ce(n,s,a.name),{installPath:u,version:l}=Cy(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of Iy(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=en(e,a.installPath,u,!0);tn(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:l,expandTruncated:p,contentHash:X(`${c}|${a.version}|${l}`)})}}}import{existsSync as xy}from"node:fs";var by=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,is="<path>",Oy=new RegExp(`${is}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function lr(e){let t=e.replace(by,is).replace(Oy,is);return t.length>200?`${t.slice(0,200)}...`:t}var Zl=200,Ql=200,as=16*1024,ef=6,Ty=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),ky=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),Py=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),Ny=new Set(["permissions"]),wy={claude:Ty,cursor_sandbox:ky,cursor_permissions:Py,cursor_cli:Ny},My=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fr(e){return e.replace(/\\/g,"/")}function cs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>cs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${cs(t[r])}`).join(",")}}`}function Ly(e){return X(`${cs(e)}|settings1`)}function sf(e){let t=fr(e);if(t.endsWith(".claude/settings.json")||t.endsWith(".claude/settings.local.json"))return"claude";if(t.endsWith(".cursor/sandbox.json"))return"cursor_sandbox";if(t.endsWith(".cursor/permissions.json"))return"cursor_permissions";if(t.endsWith(".cursor/cli-config.json")||t.endsWith(".cursor/cli.json"))return"cursor_cli"}function af(e,t){if(e!=="claude")return{};let n=fr(t);return n.endsWith("/.claude/remote-settings.json")?{profile:"claude",managedSource:"server"}:n.includes("/managed-settings.d/")&&n.endsWith(".json")?{profile:"claude",managedSource:"file_dropin"}:n.endsWith("/managed-settings.json")?{profile:"claude",managedSource:"file"}:{profile:"claude"}}function cf(e){let t=fr(e).replace(/\/+$/,"");return t.length<=1?"":t}function uf(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function vy(e,t){let n=fr(e);if(n==="~"||n.startsWith("~/"))return n;let r=cf(t);if(!r)return n;let o=n.slice(0,r.length);if(!(uf(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var tf=new Map;function Hy(e){let t=tf.get(e);if(t!==void 0)return t;let n=cf(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,uf(e)?"gi":"g")}return tf.set(e,r),r}function Uy(e,t){let n=Hy(t);return n?e.replace(n,"~"):e}function nf(e,t){return e.length<=Ql?e:(t.truncated=!0,e.slice(0,Ql))}function lf(e,t){return e.length<=Zl?e:(t.truncated=!0,e.slice(0,Zl))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return nf(vy(e,n),r);let o=t==="rule"?lr(e):e;return nf(Uy(o,n),r)}if(typeof e=="number"||typeof e=="boolean"||e===null)return typeof e=="number"&&!Number.isFinite(e)?void 0:e;if(Array.isArray(e)){let o=lf(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(Xe(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function rf(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";My.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function Dy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=lf(s,n);r[o]=a.map(c=>{if(!Xe(c))return ne(c,"plain",t,n);let u={};for(let[l,p]of Object.entries(c)){let m=ne(p,l==="path"?"path":"plain",t,n);m!==void 0&&(u[l]=m)}return u});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function Fy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function $y(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=Fy(s,t,n):o==="credentials"?i=Dy(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function jy(e,t,n,r,o){return n==="claude"?e==="permissions"?rf(t,r,o):e==="sandbox"?$y(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?rf(t,r,o):ne(t,"plain",r,o)}function nn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function us(e,t){return e?`${e}.${t}`:t}function ls(e,t,n,r){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o-=1){let s=e[o];s!==null&&typeof s=="object"&&(t+1>=ef?(e.splice(o,1),r.add(n)):ls(s,t+1,n,r))}return}if(!(e===null||typeof e!="object"))for(let[o,s]of Object.entries(e))s!==null&&typeof s=="object"&&(t+1>=ef?(delete e[o],r.add(us(n,o))):ls(s,t+1,us(n,o),r))}function ff(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:nn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))ff(o,us(t,r),n)}function By(e,t,n){let r=nn(e);if(r<=as)return;t.truncated=!0;let o=[];for(ff(e,"",o);r>as;){let s;for(let c of o)c.items.length>0&&(!s||c.bytes>s.bytes)&&(s=c);if(!s)break;let i=s.items.pop(),a=nn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;nn(e)>as;){let s,i=-1;for(let[a,c]of Object.entries(e)){let u=nn(c);u>i&&(s=a,i=u)}if(s===void 0)break;delete e[s],n.add(s)}}function Ky(e,t,n){let r=wy[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let u=jy(c,e[c],t,n,o);u!==void 0&&(s[c]=u)}i.sort();let a=new Set;return ls(s,1,"",a),a.size>0&&(o.truncated=!0),By(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function of(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:Ly(t.attributes),attributes:t.attributes};e.push(n)}function fs(e,t,n,r){if(!e.claimFile(t)||!xy(t))return;let o=Gs(t);if(!o.ok||!Xe(o.value)){if(r.profile){let u=!o.ok&&o.reason==="read"?"read_error":"parse_error",l={profile:r.profile,[u]:!0};r.managedSource&&(l.managed_source=r.managedSource),of(e,{kind:r.kind,absPath:t,origin:n,attributes:l})}return}let s=o.value,i=s.hooks;if(Xe(i)&&os(e,t,i,n),!r.profile)return;let a=Ky(s,r.profile,e.home),c={profile:r.profile,settings:a.settings,keys_omitted:a.keys_omitted};a.truncated&&(c.truncated=!0),a.trimmed_paths.length>0&&(c.trimmed_paths=a.trimmed_paths),r.managedSource&&(c.managed_source=r.managedSource),of(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as Gy}from"node:fs";import{join as we}from"node:path";var pf=".claude/skills/synced",df=".claude/plugins/synced";function mf(e){return[we(e,pf),we(e,df)]}function pr(e){return typeof e=="string"&&e.length>0?e:void 0}function gf(e){let t=we(e.home,pf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.skills??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}let a=we(r,i.name,"SKILL.md");if(!i.isDirectory()||!Gy(a))continue;let c=s.get(i.name),u=pr(c?.source),l=pr(c?.creatorType);Et(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...u?{source:u}:{},...l?{creator_type:l}:{}}})}}}function _f(e){let t=we(e.home,df);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=pr(a?.marketplaceName),u=pr(a?.version),l=c?`${i.name}@${c}`:i.name,p=we(r,i.name),{componentCount:f,expandTruncated:m}=en(e,p,`plugin:${l}`,!0);tn(e,{pluginKey:l,rowPath:e.componentPath(p),enabled:!0,scope:"synced",version:u,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${l}|${u??""}|synced|${f}`)})}}}function Wy(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)st(e,{dir:Rt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:mf(e.home)});for(let i of n.dirs)st(e,{dir:Rt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=xl(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:zy(a)})}for(let i of Yi(n))fs(e,Rt(r,i),o,{kind:"SETTINGS",profile:sf(i)});for(let i of n.mcpJson??[])Vl(e,Rt(r,i),o);for(let i of n.mcpToml??[])Jl(e,Rt(r,i),o);if(s){if(n.managed){for(let i of Tn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=af(n.managed,i);fs(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(Xl(e),_f(e),gf(e)):n.plugins==="cursor"&&ql(e)}}function hf(e,t){try{let n=new Zn(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Wy(n,{layout:r,levelDir:t.levelDir,origin:t.origin,includeMachineWide:t.includeMachineWide});return{scopeRef:t.scopeRef,anchor:t.levelDir,components:n.components,truncated:n.truncated}}catch{return}}function ps(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=hf(t,{layouts:Object.values(pt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Be,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Ge),u=Po({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>qi(c,l)});i=u.parentRel;for(let l of u.anchors){let p=So(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let f=hf(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:No,scopeRef:p});f&&(r[l.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function ds(e,t,n={}){let r=n.truncated===!0,o=Gt(e),s=new Set(e.map(l=>_e(l.path,l.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let l of e){let p=_e(l.path,l.name);c[p]!==l.content_hash&&a.push(l)}let u=[];if(!r){for(let l of Object.keys(c))if(!s.has(l)){let p=qc(l);p&&u.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:u,unchanged:a.length===0&&u.length===0}}var Ef=2*1024*1024,Vy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function ms(e,t,n){let r=new Set(t.map(s=>_e(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(_e(s.path,s.name))||o.push(s));return o}function gs(e,t,n){let r=new Set(e);for(let s of t)r.add(s);let o=new Set(n.map(s=>s.content_hash));return[...r].filter(s=>o.has(s))}function Sf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function yf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function _s(e,t=Ef){let n=[],r=[];for(let l of e)Vy.has(l.kind)?n.push(l):r.push(l);r.sort((l,p)=>(l.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,u=[];for(let l of o){let p=s.length>0?1:0,f=Sf(l)+p;if(i+f<=t){s.push(l),i+=f,l.text!==void 0&&u.push(l.content_hash);continue}if(l.text!==void 0){let m=yf(l),g=Sf(m)+p;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:u}}function hs(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:yf(n))}var Jy=["user","cwd","repo","parent"];function Ss(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of Jy){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,b=ds(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),H=ms(k.components,b.upserts,N),d=hs([...b.upserts,...H],N);s.push({scope:M,walk:k,delta:b,outgoing:d,outgoingKeys:new Set(d.map(I=>_e(I.path,I.name))),deliveredTextHashes:N,cachedComponents:D})}let i=s.flatMap(M=>M.outgoing),a=_s(i,o),c=new Set(a.components.map(M=>_e(M.path,M.name))),u=[],l=[],p=[],f=[],m=[],g=[],S=[];for(let M of s){let{scope:k,walk:K,delta:D}=M;g.push(...K.components),u.push(k);let b=a.components.filter(I=>M.outgoingKeys.has(_e(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),H=D.truncated||N;H?p.push(k):D.full&&l.push(k),f.push(...b),!D.full&&!H&&m.push(...D.removed);let d=D.full?{}:{...M.cachedComponents??{}};if(!H)for(let I of D.removed)delete d[_e(I.path,I.name)];for(let I of b)d[_e(I.path,I.name)]=I.content_hash;S.push({scope:k,scopeRef:K.scopeRef,components:d,textHashes:gs(M.deliveredTextHashes,b.filter(I=>I.text!==void 0).map(I=>I.content_hash),K.components),collectedAtMs:r,included:b.length>0||D.removed.length>0&&!H||D.full})}let C={user_spec_hash:Gt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};u.length>0&&(C.user_spec_scopes=u,C.user_spec_full_scopes=l,C.user_spec_truncated_scopes=p,C.user_spec_cwd_in_git_repo=t.cwdInGitRepo),l.length>0&&l.length===u.length&&(C.user_spec_full=!0),f.length>0&&(C.user_spec=f),m.length>0&&(C.user_spec_removed=m),a.textDeferredCount>0&&(C.user_spec_text_deferred=a.textDeferredCount);let A=t.scopes.cwd;A&&(C.user_spec_cwd_scope_ref=A.scopeRef);let T=t.scopes.repo;T&&(C.user_spec_repo_scope_ref=T.scopeRef);let x=t.scopes.parent;return x&&(C.user_spec_parent_scope_ref=x.scopeRef,t.parentRel&&(C.user_spec_parent_rel=t.parentRel)),{fields:C,scopes:S}}var dr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Es(e){return e==="cwd"||e==="repo"||e==="parent"}function rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ys(e){return!rn(e)||!rn(e.components)||!Object.values(e.components).every(t=>typeof t=="string")||!Array.isArray(e.text_hashes)||!e.text_hashes.every(t=>typeof t=="string")?!1:typeof e.collected_at_ms=="number"&&Number.isFinite(e.collected_at_ms)}function Rf(e){return Yy(e)}function Cf(e){return Xy(e)}function Af(e){return qy(e)}function Yy(e){if(!rn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Xy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function If(e,t){if(!rn(e))return;let n=e[t];return ys(n)?n:void 0}function qy(e){if(!rn(e))return{};let t={};for(let[n,r]of Object.entries(e))ys(r)&&(t[n]=r);return t}function Rs(e,t=20){let n=[];for(let[r,o]of Object.entries(e))ys(o)&&n.push([r,o]);return n.sort((r,o)=>o[1].collected_at_ms-r[1].collected_at_ms),Object.fromEntries(n.slice(0,t))}var nR=["allow","deny","ask"];function gr(e){let t=te(e,{}),n=[];for(let r of nR)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:lr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function rR(e){let{serverManaged:t,fileBased:n}=Gr(process.platform,e),r=gr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=gr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function oR(e){let t=new Set,n=[];for(let r of e){let o=`${r.mode}\0${r.key}`;t.has(o)||(t.add(o),n.push(r))}return n}var sR=10,iR="self-config-cache.json",Of=4;function At(){return L("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function aR(){return L("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var cR={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function uR(e,t=ee){let n=cR[e];if(!n||n.length===0)return null;let r=async o=>{let s=n[o];if(s===void 0)return null;let a=((await t(s,["--version"],2e3)).split(`
|
|
42
|
+
`)[0]??"").trim();return a||r(o+1)};return r(0)}function lR(e=bf()){return Ct(e,".ev-ai","agent-hook",iR)}function fR(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
43
|
+
`);return X(n)}function mr(e,t,n=!1){let r=fR(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 Cs(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>Ct(e,a)),...n]){let a=tR(i);if(s.has(a))continue;s.add(a);let c=xr(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function pR(e){return Qy(e)?me(eR(e,"utf8"),{}):{}}function dR(e,t){try{de(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 mR(e,t,n){if(t==="user")return{components:Rf(e.user_spec_components),textHashes:Cf(e.user_spec_text_hashes)};if(!Es(t))return{components:void 0,textHashes:[]};let r=If(e[dr[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function gR(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=Of,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(!Es(s.scope))continue;let i=dr[s.scope],a=Af(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]=Rs(a)}}return o}async function xf(e,t=process.cwd(),n=bf(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await uR(e),a="",c=[];if(o){let H=rR(n),d=gr(Ct(n,".claude/settings.json")),I=gr(Ct(t,".claude/settings.local.json"));a=H.model||I.model||d.model,c=oR([...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=zs(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=lR(n),f=pR(p),m=f[e]??{},g=(m.send_count??0)+1,S=g>0&&g%sR===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:mr(A.entries,C("skills"),A.truncated),subagents:mr(T.entries,C("subagents"),T.truncated),commands:mr(x.entries,C("commands"),x.truncated),rules:mr(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:Cs(n,We.memory),settings:Cs(n,We.settings,Zi(n)),mcp:Cs(n,We.mcp)},local_settings:o?xr(Ct(t,".claude/settings.local.json")):u},D=null,b=r.nowMs??Date.now();if(!At()){let H=m.user_spec_layout_version!==Of,d=ps(e,n,{launchCwd:aR()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(d.scopes).length>0){let I=Ss({collected:d,cacheFor:(U,ue)=>H?{components:void 0,textHashes:[]}:mR(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=gR(m,k,g,D);return{config:K,commit:()=>{f[e]=N,dR(p,f)}}}import{homedir as MR}from"node:os";import{join as Pf}from"node:path";function at(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as _r}from"node:path";function _R(e){return _r(e,".ev-ai","agent-hook","js","signed-v1")}function hR(e){return _r(_R(e),"scopes")}function Tf(e,t){return _r(hR(e),t)}function kf(e){return _r(e,"attempts")}function As(e){return String(e).padStart(10,"0")}var SR=/^(\d{10})$/,ER=/^(\d{10})\.done$/,yR=/^[0-9a-f]{128}$/,RR=64;async function Lf(e,t,n=!1){let r=kf(t),o=await Gi(e,r),s=new Map,i=new Map,a=Nf(o,SR),c=Nf(o,ER),u=async f=>{let m=await Mf(e,Pf(r,CR(f)));return m&&s.set(f,{record:IR(m.value),mtimeMs:m.mtimeMs}),m!==void 0},l=async f=>{let m=bR((await Mf(e,Pf(r,AR(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([wf(a,u),wf(c,l)]);let p=on(s);return p<on(i)&&c.includes(p)&&await l(p),{claims:s,dones:i}}function Nf(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function wf(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function on(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function vf(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 CR(e){return As(e)}function AR(e){return`${As(e)}.done`}async function Mf(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>Pr)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>Pr?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function IR(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 bR(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=OR(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function OR(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"&&yR.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&xR(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function xR(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==RR||t.toString("base64")!==e))return t.toString("hex")}function NR(e){return e==="bootstrap"?3e3:6e4}function wR(e,t){let n=on(e.claims);if(n===0)return;let r=on(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=vf(o),c=o.record==="empty"?void 0:o.record.owner,u=NR(c)+3e4;if(t-a>u)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:Hf(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:Hf(i.selection)}}async function Uf(e,t,n){try{let r=await Lf(zi(),Tf(e,t),!0);return wR(r,n)}catch{return}}function Hf(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function Df(e=MR()){let t=po()?.launcherScope;if(!t)return{};let n=await Uf(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:Cn,event:e,timestamp:fn(),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:Fr,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=po();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=Ac(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 Bf}from"node:fs";import{spawn as Kf}from"node:child_process";import{fileURLToPath as WR}from"node:url";import{gzipSync as LR}from"node:zlib";function Is(e){return L("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<Ei?{body:e}:{body:LR(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function hr(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function bs(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}import{readFileSync as vR,statSync as HR}from"node:fs";import{homedir as Os}from"node:os";import{join as UR}from"node:path";var DR="hook-config.json",FR=10080*60*1e3,$R=1440*60*1e3,jR=2048,BR=1024*1024;function bt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ff(e=Os()){return UR(Ee(e),DR)}function $f(e){let t=Ff(e);try{let n=HR(t);if(!n.isFile()||n.size>BR)return;let r=JSON.parse(vR(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 KR(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function Sr(e,t=Os(),n=Date.now()){if(!e)return;let r=wt(e);if(!r)return;let o=$f(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>FR))return KR(s.config)}function GR(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")>jR))return n.hook_config}function zR(e,t,n,r){let o={...e},s=o[t];if(Object.keys(n).length===0)return s===void 0?void 0:(delete o[t],o);if(!(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<$R))return o[t]={config:n,fetched_at_ms:r},o}function jf(e,t,n=Os(),r=Date.now()){let o=GR(e),s=t?wt(t):void 0;if(o===void 0||!s)return"skipped";try{let i=$f(n);if(i===void 0)return"skipped";let a=zR(i??{},s,o,r);return a?(de(Ff(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 xs="__post",Er="__work";async function VR(e,t,n={}){if(At())return e;let r=await yo(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 JR(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 Gf(e){switch(e){case"session_start":return gi;case"session_end":return _i;case"tool_invoked":case"skill_invoked":return Ur;default:return Ur}}function YR(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
46
|
+
${n}`}function zf(e,t=[],n=process.execPath,r=import.meta.url,o=Bf){if(mi(n))return{command:n,args:[e,...t]};let s=WR(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function XR(e=process.execPath,t=import.meta.url,n=Bf){return zf(xs,[],e,t,n)}function qR(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 Wf(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();jf(n,t)}catch{}}async function Vf(e,t=fetch){let n=await e(),r=qR(n);if(!r)return;let{meta:o,body:s}=r,i=Is(s),a=hr(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await Wf(c,o.url)}catch{}}async function ZR(e,t,n,r=fetch){let o=Gf(e),s=Is(t),i=hr(s.contentEncoding),a=bs(s.body);O(`POST event=${e} url=${yn(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:hr(),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 Wf(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 Jf(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()},hi),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 QR(e,t,n,r=Kf,o=XR){let s=Gf(e),i=YR(n,s,t),{command:a,args:c}=o();return Jf(a,c,i,r,"detached post")}async function Yf(e,t,n=Kf,r=zf){let{command:o,args:s}=r(Er,t);return Jf(o,s,e,n,"detached work")}async function Ot(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(!Sn(o))return O(`WARN: collector URL blocked (https required): ${yn(o)}`),!1;let a=await VR(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=${JR(c,bs(l))}`);let f=process.argv.includes(Er),m=L("EV_AI_HOOK_SYNC")==="1";return Fn(n.runnerEvent,n.runnerPlatform)||f||m?ZR(e,l,o):(await QR(e,l,o),!1)}import{createReadStream as eC}from"node:fs";import{stat as tC}from"node:fs/promises";import{basename as nC,resolve as rC}from"node:path";import{createInterface as oC}from"node:readline";var sC=1024*1024;function iC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&nC(t).endsWith(".jsonl")}async function Xf(e){if(!e||!iC(e))return null;try{let t=rC(e),n=await tC(t);if(!n.isFile())return null;let r=Math.max(0,n.size-sC),o=[],s=oC({input:eC(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let u=c.message;if(!u||typeof u!="object")continue;let l=u.model;if(typeof l=="string"&&l.length>0)return l}catch{continue}}return null}catch{return null}}function yr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Jn(e.manifest.manifest,e.manifest.hookConfig)}}function an(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function ks(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:xo(e.manifest.hookConfig)}}async function Qf(e){let t=Date.now();await SC(e);let{gitRoot:n}=e.manifest;await Ns(e,n);let r=ks(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Xn(e.hookInput,e.manifest.manifest,r),envelopeFields:yr(e),launchCwd:To(e.hookInput,r),home:cC()}}function qf(e){try{return ge(aC(e))}catch{return null}}function ep(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Zf(e,t){let n=e.replaceAll("\\","/");if(!ep(n))return null;let r=ge(e),o=ge(t),s=qf(e)??r,i=qf(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function tp(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Zf(e,t)??(ep(r)?null:r),i=Zf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function Ts(e,t,n,r,o){return np(e,tp(n,t.gitRoot,t.home),r,o)}function np(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?uC({installableKind:r,sourcePath:s,nativeKey:i,inRepository:t!==null,platformAgentId:e.platformAgentId,installationId:e.manifest.installationId}):void 0;return{sourcePath:s,nativeKey:i,componentReference:a}}function uC(e){try{let t=e.inRepository?pC(e.platformAgentId,e.sourcePath):(0,B.installationRootExternalKey)(e.installationId,(0,B.userConfigRootFromPath)(e.sourcePath));return t?(0,B.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function rp(e){let t=e.policyFindings;return t===void 0||t.length===0?{}:{policy_findings:t,...e.policyJudgeSpawnMs!==void 0?{policy_judge_spawn_ms:e.policyJudgeSpawnMs}:{}}}function Ps(e,t,n){return Ot("tool_invoked",{...n,...rp(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,an(e,t.home))}function lC(e){return $a(e.runnerEvent,e.runnerPlatform)?[]:sa(e.hookInput)}function fC(e,t){return Ps(e,t,{})}var op=new Set([...Object.values(tt),".github"]);function pC(e,t){let n=e.indexOf(":");if(n<=0)return null;let r=e.slice(0,n),o=t.replaceAll("\\","/").split("/").filter(Boolean),s=o.findIndex(i=>op.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var sp=".codex/config.toml",dC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",sp]]);function mC(e,t,n,r,o,s,i){if(e===null||t===null||!(i!==null||/^mcp__.+?__.+$/i.test(e)||/^MCP:[^:]+:.+$/i.test(e)||/^MCP:.+__.+$/i.test(e)||e.toLowerCase()===`mcp:${t.toLowerCase()}`))return;let c=s.find(S=>S.name.toLowerCase()===t.toLowerCase()),u=c?dC.get(c.source):o==="codex"?sp:void 0,l=c?.sourcePath??u;if((c?.scope==="user"||u!==void 0)&&l)try{let S=(0,B.userConfigRootFromPath)(l);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:l,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let m=n.slice(f+1),g=m.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!op.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function gC(...e){for(let t of e)if(t)return t;return null}function ut(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return O(`WARN: ${n} failed open: ${r}`),t}function _C(e){let t={present:!1,size:0},n={hash:"",count:0};return{config:{runner_platform:e,config_scope:"user",cli_version:null,claude_version:null,model:null,permission_keys:[],user_scope:{skills:n,subagents:n,commands:n,rules:n,memory:t,settings:t,mcp:t},local_settings:t},commit:()=>{}}}function hC(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,sn=null;async function SC(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!Co(n)){ct.add(t);return}let r=kt({sessionId:e.sessionId,hostname:mn()});if(Qc(r)){if(sn){await sn;return}sn=(async()=>{if(ct.has(t)||!Co(n)){ct.add(t);return}if(!vi(n)){ct.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:u}=await ip(e,r,Un(i),Ro({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),l={...u,self_config:hC(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Ot("session_start",l,yr(e),It,e.manifest.collectorUrl,s,an(e)),o&&(c.commit(),ct.add(t))}finally{Hi(n)}})().finally(()=>{sn=null}),await sn}}async function Ns(e,t,n){try{e.platformAgentId=await Pa(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,n,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);O(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function ip(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,Ys(),bc(t),qs(),r]),u=ut(o,null,"gitSnapshot"),l=ut(s,"","detectVirt"),p=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await Ns(e,e.manifest.gitRoot,u),{operatorResolved:m,fields:{identity:{host:mn(),context:t,virt:l||null,cloud:p,git:u},host_env:f,env_vars:wc()}}}async function EC(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=kt({sessionId:e.sessionId,hostname:mn()}),o=String(e.runnerPlatform),s=ks(e),i=To(e.hookInput,s),a=Un(n),c=Df().catch(()=>({})),u=At()?Promise.resolve({commit:()=>{}}):Ro({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),l=ip(e,r,a,u),[p,f]=await Promise.allSettled([go(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>xf(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:m,fields:g}=await l,S=ut(p,[],"mcpDeclared"),C=ut(f,_C(o),"selfConfig"),A=C.config,T=v(e.hookInput,"model");T&&(A.model=T);let x={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:Xn(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await Ot("session_start",x,{...yr(e),...M},It,e.manifest.collectorUrl,t,an(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function yC(e){let t=Date.now(),[,n]=await Promise.all([Ns(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?Xf(v(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=gC(v(e.hookInput,"status"),v(e.hookInput,"stop_reason"),v(e.hookInput,"reason"),$t(v(e.hookInput,"error")),r==="stop"?Me(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=Xn(e.hookInput,e.manifest.manifest,ks(e));n&&(s.model=n),r!=="stopfailure"&&Jn(e.manifest.manifest,e.manifest.hookConfig)!=="off"&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Ot("session_end",{status:o,...n?{model:n}:{},hook_input:s},yr(e),It,e.manifest.collectorUrl,t,an(e))}async function RC(e){let t=lC(e),n=La(e.hookInput),r=Fa(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r||o&&Jn(e.manifest.manifest,e.manifest.hookConfig)==="off")return;let s=await Qf(e);await Promise.all([o?fC(e,s):void 0,t.length===0?void 0:CC(e,s,t),n.length===0?void 0:AC(e,s,n)])}function ap(e,t,n,r){let o=r??oa({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=Ts(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&Wr(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??va({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=Ts(e,t,i,B.ComponentKind.COMMAND,B.nativeKeyForCommandPath);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function CC(e,t,n){let r=Pn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=ap(e,t,o,r);return Ps(e,t,{tool_name:"Skill",skill_name:o,...s.commandName===void 0?{}:{command_name:s.commandName},...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}function AC(e,t,n){return Promise.all(n.map(r=>{let o=Na({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=Ts(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Ma(r);return Ps(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var IC=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function bC(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Jr(e.hookInput);if(r===null)return n.skillName===null?{}:ap(e,t,n.skillName,null);let o=tp(r,t.gitRoot,t.home);for(let s of IC){let i=np(e,o,s.kind,s.nativeKeyFn);if(i.nativeKey!==null)return{...i.componentReference===void 0?{}:{componentReference:i.componentReference},...s.kind===B.ComponentKind.RULE?{ruleName:i.nativeKey}:{},...s.kind===B.ComponentKind.COMMAND?{commandName:i.nativeKey}:{}}}return{}}var OC=/mcp/i;function xC(e,t,n,r){let o=OC.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?zl(t,n):ur(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function TC(e){let t=await Qf(e),n=Ka(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=Vr(e.hookInput),i=Kl(s,t.home),a=za(e.hookInput),c=ja(e.runnerEvent),u=c===!1?Wa(e.hookInput,e.runnerEvent):null,l=$t(v(e.hookInput,"mcp_server_name")),p=l!==null||r!==null&&$n(r)?await go(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=Ja(r,p.map(K=>K.name),l??""),g=mC(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,l),S=g===void 0?bC(e,t,n):{},C=f===null?null:Nc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=xC(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),T=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=Ga(e.hookInput);await Ot("tool_invoked",{tool_name:r,skill_name:o,...x?{rule_name:x}:{},...M?{command_name:M}:{},success:c,duration_ms:a,...i?{executable:i}:{},...u?{failure_reason:u}:{},...f?{mcp_server:f}:{},...m?{mcp_tool:m}:{},...A,...T?{component_reference:T}:{},...k?{subagent_type:k}:{},...rp(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,an(e,t.home))}async function cp(e){switch(e.internalEvent){case"session_start":await EC(e);return;case"session_end":await yC(e);return;case"skill_invoked":await RC(e);return;case"tool_invoked":await TC(e);return;default:return}}import{existsSync as Ms,readFileSync as kC}from"node:fs";import{dirname as PC,isAbsolute as NC,join as wC,relative as MC}from"node:path";function up(e){for(let t of ui){let n=wC(e,t);if(Ms(n))return n}}async function LC(e=process.cwd(),t){let n=t??await Or(e);return up(n)??up(e)}async function vC(e,t){let n=t??await Or(PC(e)),r=MC(n,e);if(r.startsWith("..")||NC(r))return!1;let o=await Se("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(O(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function ws(e){let t=kC(e,"utf8");return me(dn(t),{})}function HC(){return{schema_version:Cn,mcp_servers:[]}}function UC(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(O(`WARN: ignoring capture_hook_input=full in git-tracked manifest ${t}; use EV_AI_HOOK_CAPTURE_FULL_INPUT=1 or an untracked operator manifest`),delete e.capture_hook_input),e.debug===!0&&r.has("debug")&&(O(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}function DC(){let e=di(process.env);return e.problem&&O(`WARN: ignoring ${Hr}: ${e.problem}`),e.url??""}async function lp(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await br(e),o=L("EV_AI_HOOK_MANIFEST"),s=o&&Ms(o)?o:void 0,i=s?void 0:Ms(Nt())?Nt():void 0,a=s?void 0:await LC(e,n),c=i?ws(i):void 0,u=a?ws(a):void 0,l,p,f,m=new Set;if(s){l=ws(s),p=s,f=s;for(let x of Object.keys(l))m.add(x)}else if(c&&u){l=fi(u,c),p=i,f=a;for(let x of Object.keys(u))x in c||m.add(x)}else if(c)l=c,p=i;else if(u){l=u,p=a,f=a;for(let x of Object.keys(u))m.add(x)}else l=HC();delete l.installation_id;let g=f?await vC(f,n):!1;UC(l,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await $i(n,{sessionId:t.sessionId}),T=vr(l)||DC();return{manifestPath:p??C,manifest:l,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:T,hookConfig:Sr(T),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as FC,readdirSync as $C,readFileSync as jC,statSync as fp,unlinkSync as BC,writeFileSync as KC}from"node:fs";import{homedir as Rr}from"node:os";import{join as Ls}from"node:path";var GC="turns",pp=1440*60*1e3,zC=100,WC=new Set(["stop","stopfailure","sessionend"]);function vs(e=Rr()){return Ls(Ee(e),GC)}function dp(e,t){return Ls(e,Tt(t))}function VC(e,t=Date.now()){let n;try{n=$C(e)}catch{return}let r=0;for(let o of n){if(r>=zC)return;r+=1;try{let s=Ls(e,o);t-fp(s).mtimeMs>pp&&BC(s)}catch{}}}function JC(e,t,n=Rr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=vs(n);FC(s,{recursive:!0}),KC(dp(s,r),o,"utf8")}catch{}}function YC(e,t=Rr()){let n=e.trim();if(!n)return"";try{let r=dp(vs(t),n);return Date.now()-fp(r).mtimeMs>pp?"":jC(r,"utf8").trim()}catch{return""}}function mp(e,t,n,r=Rr()){let o=t.trim(),s=WC.has(n.trim().toLowerCase());return s&&VC(vs(r)),o?(JC(e,o,r),o):s?YC(e,r):""}async function gp(e,t,n,r){let o=t??await pn(An),s=me(o,{}),i=await lp(process.cwd(),{sessionId:Ft(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Sr(r));let a=Ba(s,i.manifest.platform,n),c=so(e,a.runnerEvent);if(!c){O(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let u={hookInput:s,sessionId:a.sessionId,turnId:mp(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await cp(u)}function XC(e,t=!1){if(L("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Dt(r,o,void 0,n.runner);return Fn(o,s)?!0:t}function _p(e,t){let n=wr(e),r=me(t,{}),o=n.event??oo(r);return Vs()||Da(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function Sp(e){return gc(so(e.parsed.event,e.runnerEvent))}async function hp(e,t){let{parsed:n}=e;if(Sp(e)){await gp(n.event,t,n.runner,no(n));return}let r=uo(n.cap),o=Rc(r);if(!o){fo(r);return}try{await gp(n.event,t,n.runner,no(n))}finally{lo(o)}}async function Ep(e=process.argv.slice(2)){if(Cc(),L("EV_AI_HOOK_JUDGE")==="1"){try{await pn(An)}catch{}return Ar(),0}if(e[0]===xs){try{await Vf(Ir)}catch{}return 0}if(e[0]===Er){try{let t=await Ir(),n=_p(e.slice(1),t);if(!n)return 0;await hp(n,t)}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await pn(An),n=_p(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Qa(o,s,r.runner))return 0;if(XC(n))await hp(n,t);else{let i=Sp(n)?void 0:uo(r.cap);i===void 0||Ec(i)?await Yf(t,e):fo(i)}}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: hook failed open: ${n}`)}finally{Ar()}return 0}Ep().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
49
49
|
`),process.exit(1)});
|