@ev-ai/agent-hook 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COLLECTED-DATA.md +2 -2
- package/README.md +7 -4
- package/dist/cli.mjs +40 -37
- package/dist/hook.mjs +35 -32
- package/dist/launcher-update.mjs +4 -4
- package/dist/launcher.mjs +3 -3
- package/dist/managed-hooks-snippet.cjs +1299 -2
- package/dist/managed-hooks-snippet.mjs +1316 -2
- package/dist/plugin-hooks.mjs +6 -1
- package/package.json +1 -1
package/dist/hook.mjs
CHANGED
|
@@ -1,46 +1,49 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module';
|
|
2
2
|
const require = __createRequire(import.meta.url);
|
|
3
3
|
|
|
4
|
-
var Pf=Object.create;var _s=Object.defineProperty;var Nf=Object.getOwnPropertyDescriptor;var wf=Object.getOwnPropertyNames;var Mf=Object.getPrototypeOf,Lf=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 vf=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wf(t))!Lf.call(e,o)&&o!==n&&_s(e,o,{get:()=>t[o],enumerable:!(r=Nf(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?Pf(Mf(e)):{},vf(t||!e||!e.__esModule?_s(n,"default",{value:e,enumerable:!0}):n,e));var Cn=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=ji;q.buildMcpFamilyCanonicalKey=Ad;q.launchContainsCredentials=bd;q.serializeMcpLaunchIdentity=Bi;q.hashMcpLaunchIdentity=Nt;q.projectMcpMissingLaunchIdentity=Td;q.projectMcpLaunchIdentity=kd;q.maskMcpLaunchForDisplay=Nd;q.normalizeMcpToolNames=wd;var Cd=$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 ji(e){return Le(e)}function Ad(e){return`interface:${ji(e)}`}var $i=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),Id=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function bd(e){return e.kind==="url"?xd(e.url):e.kind==="command"?e.arguments.some(t=>Id.test(t)):!1}function xd(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($i.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 $i.has(a)})}}function Bi(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 Nt(e){return(0,Cd.createHash)("sha256").update(e).digest("hex")}var Od=Nt(q.MCP_MISSING_LAUNCH_SERIALIZED);function Td(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:Od}}function kd(e){let t=Bi(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:Nt(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:Nt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Nt(t)}}var Pd=/^(https?:\/\/)([^/?#]*@)/i;function Nd(e){return e.replace(Pd,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function wd(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 In=W(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.PACKAGE_FIELD_MAX=void 0;xe.npxExecBin=Ki;xe.packageNameFromSpec=An;xe.pinnedPackageVersionFromSpec=Gi;xe.pinnedPackageVersionFromNpx=jd;xe.npxPackageSpecs=zi;xe.PACKAGE_FIELD_MAX=128;var Md=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Ld=new Set(["-p","--package"]),vd=new Set(["-c","--call"]),Ud=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),Hd=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Dd=/^--no-/;function Fd(e){return Hd.has(e)||Dd.test(e)}function Ki(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var $d=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function An(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 Md.test(n)?n:null}function Gi(e){let t=An(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return $d.test(n)?n:void 0}function jd(e,t){for(let n of zi(e,t)){let r=Gi(n);if(r!==void 0)return r}}function zi(e,t){let n=Ki(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),l=c===-1?a:a.slice(0,c);if(vd.has(l))return[];if(Ld.has(l)){let u=c===-1?r[i+1]:a.slice(c+1);u!==void 0&&u.length>0&&o.push(u),c===-1&&(i+=1);continue}if(!(c!==-1||Fd(l))){if(Ud.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>An(i)!==null)?o:[]:s===null||An(s)===null?[]:[s]}});var Wi=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=em;var Bd=Cn(),Hr=In();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var Kd=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Gd=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,zd=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Wd(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Vd=new Set(["--from","--spec"]),Jd=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"]),Yd=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"]),Xd=/^--no-/;function qd(e,t){let n=Wd(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),l=c===-1?a:a.slice(0,c);if(Vd.has(l)){let u=c===-1?r[i+1]:a.slice(c+1);u!==void 0&&u.length>0&&(o=u),c===-1&&(i+=1);continue}if(!(c!==-1||Yd.has(l)||Xd.test(l))){if(Jd.has(l)){i+=1;continue}return null}}return o??s}function Zd(e){if(e.length===0||e.length>Hr.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!Gd.test(r)||!zd.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Qd(e){let t=(0,Hr.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return Kd.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function em(e){if(e?.kind!=="command"||(0,Bd.launchContainsCredentials)(e))return;for(let n of(0,Hr.npxPackageSpecs)(e.command,e.arguments)){let r=Qd(n);if(r!==null)return r}let t=qd(e.command,e.arguments);if(t!==null)return Zd(t)??void 0}});var Zi=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=nm;ve.displayPublisherName=rm;ve.classifyMcpProvenance=pm;var Yi=Cn(),Dr=In();ve.EMPTY_NPM_PUBLISHER="npm:";var Vi="npm:",tm=/^[A-Za-z0-9._-]+$/;function nm(e){return e.startsWith(Vi)&&e!==ve.EMPTY_NPM_PUBLISHER&&tm.test(e.slice(Vi.length))}function rm(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function Ji(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 om(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 Fr(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function sm(e){let t=Fr(e),n=om(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||Ji(t)||n!==void 0&&Ji(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function im(e){let t=Fr(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function am(e){let t=Fr(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function Xi(e){let t={kind:"url",url:e};if((0,Yi.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||sm(n.hostname))return{origin:"UNKNOWN"};let r=im(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:am(n)}}catch{return{origin:"UNKNOWN"}}}var qi="mcp-remote";function cm(e,t){if(e===qi)return t.find(n=>/^https?:\/\//i.test(n))}function um(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function lm(e,t,n){let r=cm(e,t);return r!==void 0?Xi(r):e===qi?{origin:"UNKNOWN"}:um(e,n)}function fm(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 pm(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,Yi.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return Xi(t.url);let r=(0,Dr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Dr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=lm(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Dr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return fm(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ea=W(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.mcpServerToolSegmentForms=Qi;bn.mcpServerNameMatchesToolSegment=dm;function Qi(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function dm(e,t){let n=t.toLowerCase();return Qi(e).some(r=>r.toLowerCase()===n)}});var ta=W(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.parseFrontmatterField=Se.parseFrontmatterDescription=Se.usableCatalogText=void 0;var mm=/^(?:>|\|)[-+]?$/,gm=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,_m=e=>{let t=e?.trim()??"";if(!(t.length===0||mm.test(t)))return t};Se.usableCatalogText=_m;var hm=e=>(0,Se.parseFrontmatterField)(e,"description");Se.parseFrontmatterDescription=hm;var Sm=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return ym(n[1],t)};Se.parseFrontmatterField=Sm;var Em=e=>e.replace(/^["']|["']$/g,"");function ym(e,t){let n=e.split(`
|
|
5
|
-
`),r=`${t}:`,o=n.findIndex(m=>m===r||m.startsWith(`${r} `)||m.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=
|
|
4
|
+
var mp=Object.create;var Ns=Object.defineProperty;var gp=Object.getOwnPropertyDescriptor;var _p=Object.getOwnPropertyNames;var hp=Object.getPrototypeOf,Sp=Object.prototype.hasOwnProperty;var $e=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ep=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _p(t))!Sp.call(e,o)&&o!==n&&Ns(e,o,{get:()=>t[o],enumerable:!(r=gp(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?mp(hp(e)):{},Ep(t||!e||!e.__esModule?Ns(n,"default",{value:e,enumerable:!0}):n,e));var kn=W(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.MCP_MISSING_LAUNCH_SERIALIZED=q.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;q.foldMcpName=na;q.buildMcpFamilyCanonicalKey=am;q.launchContainsCredentials=um;q.serializeMcpLaunchIdentity=ra;q.hashMcpLaunchIdentity=Ht;q.projectMcpMissingLaunchIdentity=pm;q.projectMcpLaunchIdentity=dm;q.maskMcpLaunchForDisplay=gm;q.normalizeMcpToolNames=_m;var im=$e("node:crypto");q.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";q.MCP_MISSING_LAUNCH_SERIALIZED=`${q.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function Le(e){return e.toLocaleLowerCase("en-US")}function na(e){return Le(e)}function am(e){return`interface:${na(e)}`}var ta=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),cm=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function mt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function um(e){return e.kind==="url"?lm(e.url):e.kind==="command"?e.arguments.some(t=>cm.test(t)):!1}function lm(e){try{let t=new URL(e);if(t.username.length>0||t.password.length>0)return!0;for(let n of t.searchParams.keys())if(ta.has(Le(n)))return!0;return!1}catch{let t=e.split("://",2),n=t.length===2?t[1]:e,r=n.indexOf("@"),o=n.indexOf("/");if(r>0&&(o===-1||r<o))return!0;let s=e.split("?",2)[1];return s===void 0?!1:s.split("&").some(i=>{let a=Le(i.split("=",1)[0]??"");return ta.has(a)})}}function ra(e){if(e.kind==="url")return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",mt(Le(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",mt(Le(e.command)),String(t.length),...t.map(mt)].join("|")}return[q.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",mt(e.installationRootExternalKey),mt(e.sourcePath),mt(e.nativeKey)].join("|")}function Ht(e){return(0,im.createHash)("sha256").update(e).digest("hex")}var fm=Ht(q.MCP_MISSING_LAUNCH_SERIALIZED);function pm(){return{kind:"unknown",arguments:[],serialized:q.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:fm}}function dm(e){let t=ra(e);return e.kind==="url"?{kind:"url",url:Le(e.url),arguments:[],serialized:t,contentHash:Ht(t)}:e.kind==="command"?{kind:"command",command:Le(e.command),arguments:[...e.arguments].map(n=>Le(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Ht(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Ht(t)}}var mm=/^(https?:\/\/)([^/?#]*@)/i;function gm(e){return e.replace(mm,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function _m(e){let t=new Set,n=[];for(let r of e)r.length===0||t.has(r)||(t.add(r),n.push(r));return n.sort((r,o)=>r<o?-1:r>o?1:0),n}});var Nn=W(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.PACKAGE_FIELD_MAX=void 0;Oe.npxExecBin=oa;Oe.packageNameFromSpec=Pn;Oe.pinnedPackageVersionFromSpec=sa;Oe.pinnedPackageVersionFromNpx=bm;Oe.npxPackageSpecs=ia;Oe.PACKAGE_FIELD_MAX=128;var hm=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Sm=new Set(["-p","--package"]),Em=new Set(["-c","--call"]),ym=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),Rm=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Cm=/^--no-/;function Am(e){return Rm.has(e)||Cm.test(e)}function oa(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var Im=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Pn(e){if(e.length===0||e.length>Oe.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return hm.test(n)?n:null}function sa(e){let t=Pn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return Im.test(n)?n:void 0}function bm(e,t){for(let n of ia(e,t)){let r=sa(n);if(r!==void 0)return r}}function ia(e,t){let n=oa(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(Em.has(u))return[];if(Sm.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&o.push(l),c===-1&&(i+=1);continue}if(!(c!==-1||Am(u))){if(ym.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Pn(i)!==null)?o:[]:s===null||Pn(s)===null?[]:[s]}});var aa=W(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.McpPackageEcosystem=void 0;et.resolveMcpPackageIdentity=Dm;var xm=kn(),Kr=Nn();et.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var Om=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Tm=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,km=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function Pm(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Nm=new Set(["--from","--spec"]),wm=new Set(["--python","-p","--with","--with-editable","--with-requirements","--index","--index-url","--default-index","--extra-index-url","--find-links","-f","--constraint","-c","--override","--refresh-package","--cache-dir","--directory","--project","--config-file","--color","--exclude-newer","--pip-args","--verbose-pip"]),Mm=new Set(["-q","--quiet","-v","--verbose","-n","--native-tls","--offline","--isolated","--preview","--refresh","--reinstall","--upgrade","-U","--force","--system","--system-site-packages","--path","--managed-python","--progress"]),Lm=/^--no-/;function vm(e,t){let n=Pm(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(Nm.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&(o=l),c===-1&&(i+=1);continue}if(!(c!==-1||Mm.has(u)||Lm.test(u))){if(wm.has(u)){i+=1;continue}return null}}return o??s}function Hm(e){if(e.length===0||e.length>Kr.PACKAGE_FIELD_MAX)return null;let t=e.includes("==")?"==":e.includes("@")?"@":null;if(t===null)return null;let n=e.indexOf(t),r=e.slice(0,n),o=e.slice(n+t.length);return!Tm.test(r)||!km.test(o)?null:{ecosystem:et.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Um(e){let t=(0,Kr.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return Om.test(n)?{ecosystem:et.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Dm(e){if(e?.kind!=="command"||(0,xm.launchContainsCredentials)(e))return;for(let n of(0,Kr.npxPackageSpecs)(e.command,e.arguments)){let r=Um(n);if(r!==null)return r}let t=vm(e.command,e.arguments);if(t!==null)return Hm(t)??void 0}});var da=W(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.EMPTY_NPM_PUBLISHER=void 0;ve.isNpmRegistryPublisher=$m;ve.displayPublisherName=jm;ve.classifyMcpProvenance=Xm;var la=kn(),Gr=Nn();ve.EMPTY_NPM_PUBLISHER="npm:";var ca="npm:",Fm=/^[A-Za-z0-9._-]+$/;function $m(e){return e.startsWith(ca)&&e!==ve.EMPTY_NPM_PUBLISHER&&Fm.test(e.slice(ca.length))}function jm(e){if(!(e==null||e===""||e===ve.EMPTY_NPM_PUBLISHER))return e}function ua(e){let t=e.split(".").map(Number);return t.length!==4||t.some(n=>!Number.isInteger(n)||n<0||n>255)?!1:t[0]===0||t[0]===10||t[0]===127||t[0]===169&&t[1]===254||t[0]===172&&(t[1]??0)>=16&&(t[1]??0)<=31||t[0]===192&&t[1]===168}function Bm(e){let t=/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/i.exec(e);if(t?.[1])return t[1];let n=/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i.exec(e);if(!n)return;let r=Number.parseInt(n[1],16),o=Number.parseInt(n[2],16);return`${r>>8&255}.${r&255}.${o>>8&255}.${o&255}`}function zr(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function Km(e){let t=zr(e),n=Bm(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||ua(t)||n!==void 0&&ua(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function Gm(e){let t=zr(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function zm(e){let t=zr(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function fa(e){let t={kind:"url",url:e};if((0,la.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||Km(n.hostname))return{origin:"UNKNOWN"};let r=Gm(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:zm(n)}}catch{return{origin:"UNKNOWN"}}}var pa="mcp-remote";function Wm(e,t){if(e===pa)return t.find(n=>/^https?:\/\//i.test(n))}function Vm(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Jm(e,t,n){let r=Wm(e,t);return r!==void 0?fa(r):e===pa?{origin:"UNKNOWN"}:Vm(e,n)}function Ym(e){let t=e.replaceAll("\\","/");return t.startsWith("~/")||t.startsWith("/")||/^[A-Za-z]:\//.test(t)?!1:t.startsWith("./")||t.startsWith("../")||t==="scripts"||t.startsWith("scripts/")}function Xm(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,la.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return fa(t.url);let r=(0,Gr.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Gr.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Jm(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Gr.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return Ym(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ga=W(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.mcpServerToolSegmentForms=ma;wn.mcpServerNameMatchesToolSegment=qm;function ma(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function qm(e,t){let n=t.toLowerCase();return ma(e).some(r=>r.toLowerCase()===n)}});var _a=W(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.parseFrontmatterField=ye.parseFrontmatterDescription=ye.usableCatalogText=void 0;var Zm=/^(?:>|\|)[-+]?$/,Qm=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,eg=e=>{let t=e?.trim()??"";if(!(t.length===0||Zm.test(t)))return t};ye.usableCatalogText=eg;var tg=e=>(0,ye.parseFrontmatterField)(e,"description");ye.parseFrontmatterDescription=tg;var ng=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return og(n[1],t)};ye.parseFrontmatterField=ng;var rg=e=>e.replace(/^["']|["']$/g,"");function og(e,t){let n=e.split(`
|
|
5
|
+
`),r=`${t}:`,o=n.findIndex(m=>m===r||m.startsWith(`${r} `)||m.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=Qm.exec(s);if(!i){let m=rg(s).trim();return(0,ye.usableCatalogText)(m)}let a=[];for(let m=o+1;m<n.length;m+=1){let g=n[m]??"";if(g.trim()===""){a.push("");continue}if(g.length===g.trimStart().length)break;a.push(g)}let c=a.reduce((m,g)=>g.trim()===""?m:Math.min(m,g.length-g.trimStart().length),Number.POSITIVE_INFINITY),u=[],l=i[1]?.trim();l&&u.push(l);for(let m of a)u.push(m.trim()===""?"":m.slice(c));for(;u.length>0&&u[u.length-1]==="";)u.pop();let f=s.startsWith(">")?u.join(`
|
|
6
6
|
`).split(/\n{2,}/).map(m=>m.split(`
|
|
7
7
|
`).map(g=>g.trim()).filter(Boolean).join(" ")).filter(m=>m.length>0).join(`
|
|
8
8
|
|
|
9
|
-
`):
|
|
10
|
-
`).trimEnd();return(0,
|
|
11
|
-
`),n=!1;return t.map(o=>n?
|
|
12
|
-
`)}function km(e){return $r(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=Fm;E.installationRootExternalKey=$m;E.normalizeRepositoryRelativePath=sa;E.nativeKeyForSkillPath=jm;E.nativeKeyForRulePath=Bm;E.nativeKeyForCommandPath=Km;E.serializeComponentIdentity=aa;E.buildComponentReference=zm;E.validateComponentReference=Wm;var Pm=$e("node:crypto"),Nm=$e("node:path"),wm="cmp1_",Mm=/^cmp1_[A-Za-z0-9_-]{43}$/,Lm=["/skills/","/skills-cursor/"],vm=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Um=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Hm=[".cursor",".claude",".codex"],Dm={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Fm(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Hm.includes(o));return n||(t.map(o=>Dm[o]).find(o=>o!==void 0)??"unknown")}function $m(e,t){return`runtime-install:${e}/${t}`}function xn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function sa(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Nm.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return xn(n,"sourcePath")}function jm(e){let t=e.replaceAll("\\","/");for(let n of Lm){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function ia(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 Bm(e){return ia(e,vm,/\.(mdc|md|rules)$/i)}function Km(e){return ia(e,Um,/\.(md|mdc|toml)$/i)}function Gm(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function aa(e){let t=[xn(e.installationRootExternalKey,"installationRootExternalKey"),xn(e.installableKind,"installableKind"),sa(e.sourcePath),xn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Gm).join("|")}`,"utf8")}function zm(e){let t=(0,Pm.createHash)("sha256").update(aa(e)).digest("base64url");return`${wm}${t}`}function Wm(e){return Mm.test(e)}var Ee=Cn();Object.defineProperty(E,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Ee.buildMcpFamilyCanonicalKey}});Object.defineProperty(E,"foldMcpName",{enumerable:!0,get:function(){return Ee.foldMcpName}});Object.defineProperty(E,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Ee.hashMcpLaunchIdentity}});Object.defineProperty(E,"launchContainsCredentials",{enumerable:!0,get:function(){return Ee.launchContainsCredentials}});Object.defineProperty(E,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Ee.maskMcpLaunchForDisplay}});Object.defineProperty(E,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Ee.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(E,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Ee.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(E,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Ee.normalizeMcpToolNames}});Object.defineProperty(E,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Ee.projectMcpLaunchIdentity}});Object.defineProperty(E,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Ee.projectMcpMissingLaunchIdentity}});Object.defineProperty(E,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Ee.serializeMcpLaunchIdentity}});var gt=In();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 ca=Wi();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return ca.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return ca.resolveMcpPackageIdentity}});var On=Zi();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return On.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return On.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return On.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return On.isNpmRegistryPublisher}});var ua=ea();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return ua.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return ua.mcpServerToolSegmentForms}});var jr=ta();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return jr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return jr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return jr.usableCatalogText}});var Ve=oa();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(_e=>{"use strict";_e.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;_e.find=(e,t)=>e.nodes.find(n=>n.type===t);_e.exceedsLimit=(e,t,n=1,r)=>r===!1||!_e.isInteger(e)||!_e.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;_e.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)};_e.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;_e.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;_e.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;_e.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);_e.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 Bn=W((YI,xc)=>{"use strict";var bc=jn();xc.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&bc.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&bc.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 Tc=W((XI,Oc)=>{"use strict";Oc.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Hc=W((qI,Uc)=>{"use strict";var kc=Tc(),nt=(e,t,n)=>{if(kc(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(kc(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let r={relaxZeros:!0,...n};typeof r.strictZeros=="boolean"&&(r.relaxZeros=r.strictZeros===!1);let o=String(r.relaxZeros),s=String(r.shorthand),i=String(r.capture),a=String(r.wrap),c=e+":"+t+"="+o+s+i+a;if(nt.cache.hasOwnProperty(c))return nt.cache[c].result;let l=Math.min(e,t),u=Math.max(e,t);if(Math.abs(l-u)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let p=vc(e)||vc(t),f={min:e,max:t,a:l,b:u},m=[],g=[];if(p&&(f.isPadded=p,f.maxLen=String(f.max).length),l<0){let S=u<0?Math.abs(u):1;g=Pc(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(m=Pc(l,u,f,r)),f.negatives=g,f.positives=m,f.result=mh(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 mh(e,t,n){let r=po(e,t,"-",!1,n)||[],o=po(t,e,"",!1,n)||[],s=po(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function gh(e,t){let n=1,r=1,o=wc(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=wc(e,n);for(o=Mc(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=Mc(t+1,r)-1;return s=[...s],s.sort(Sh),s}function _h(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=hh(e,t),o=r.length,s="",i=0;for(let a=0;a<o;a++){let[c,l]=r[a];c===l?s+=c:c!=="0"||l!=="9"?s+=Eh(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function Pc(e,t,n,r){let o=gh(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=_h(String(i),String(l),r),p="";if(!n.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+Lc(a.count),i=l+1;continue}n.isPadded&&(p=yh(l,n,r)),u.string=p+u.pattern+Lc(u.count),s.push(u),i=l+1,a=u}return s}function po(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Nc(t,"string",a)&&s.push(n+a),r&&Nc(t,"string",a)&&s.push(n+a)}return s}function hh(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function Sh(e,t){return e>t?1:t>e?-1:0}function Nc(e,t,n){return e.some(r=>r[t]===n)}function wc(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Mc(e,t){return e-e%Math.pow(10,t)}function Lc(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function Eh(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function vc(e){return/^-?(0+)\d/.test(e)}function yh(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={};Uc.exports=nt});var _o=W((ZI,Gc)=>{"use strict";var Rh=$e("util"),Fc=Hc(),Dc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Ch=e=>t=>e===!0?Number(t):String(t),mo=e=>typeof e=="number"||typeof e=="string"&&e!=="",$t=e=>Number.isInteger(+e),go=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},Ah=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,Ih=(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},Gn=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},bh=(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=>Gn(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>Gn(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},$c=(e,t,n,r)=>{if(n)return Fc(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},jc=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Fc(e,t,n)},Bc=(...e)=>new RangeError("Invalid range arguments: "+Rh.inspect(...e)),Kc=(e,t,n)=>{if(n.strictRanges===!0)throw Bc([e,t]);return[]},xh=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Oh=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Bc([e,t]);return[]}o===0&&(o=0),s===0&&(s=0);let i=o>s,a=String(e),c=String(t),l=String(n);n=Math.max(Math.abs(n),1);let u=go(a)||go(c)||go(l),p=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&Ah(e,t,r)===!1,m=r.transform||Ch(f);if(r.toRegex&&n===1)return $c(Gn(e,p),Gn(t,p),!0,r);let g={negatives:[],positives:[]},S=x=>g[x<0?"negatives":"positives"].push(Math.abs(x)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(Ih(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?bh(g,r,p):jc(C,null,{wrap:!1,...r}):C},Th=(e,t,n=1,r={})=>{if(!$t(e)&&e.length>1||!$t(t)&&t.length>1)return Kc(e,t,r);let o=r.transform||(f=>String.fromCharCode(f)),s=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),a=s>i,c=Math.min(s,i),l=Math.max(s,i);if(r.toRegex&&n===1)return $c(c,l,!1,r);let u=[],p=0;for(;a?s>=i:s<=i;)u.push(o(s,p)),s=a?s-n:s+n,p++;return r.toRegex===!0?jc(u,null,{wrap:!1,options:r}):u},Kn=(e,t,n,r={})=>{if(t==null&&mo(e))return[e];if(!mo(e)||!mo(t))return Kc(e,t,r);if(typeof n=="function")return Kn(e,t,1,{transform:n});if(Dc(n))return Kn(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,$t(n)?$t(e)&&$t(t)?Oh(e,t,n,o):Th(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Dc(n)?xh(n,o):Kn(e,t,1,n)};Gc.exports=Kn});var Vc=W((QI,Wc)=>{"use strict";var kh=_o(),zc=jn(),Ph=(e,t={})=>{let n=(r,o={})=>{let s=zc.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",l="";if(r.isOpen===!0)return c+r.value;if(r.isClose===!0)return console.log("node.isClose",c,r.value),c+r.value;if(r.type==="open")return a?c+r.value:"(";if(r.type==="close")return a?c+r.value:")";if(r.type==="comma")return r.prev.type==="comma"?"":a?r.value:"|";if(r.value)return r.value;if(r.nodes&&r.ranges>0){let u=zc.reduce(r.nodes),p=kh(...u,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return u.length>1&&p.length>1?`(${p})`:p}if(r.nodes)for(let u of r.nodes)l+=n(u,r);return l};return n(e)};Wc.exports=Ph});var Xc=W((eb,Yc)=>{"use strict";var Nh=_o(),Jc=Bn(),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)},wh=(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(),Jc(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=Nh(...p,t);f.length===0&&(f=Jc(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=ht.encloseBrace(o),l=o.queue,u=o;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,l=u.queue;for(let p=0;p<o.nodes.length;p++){let f=o.nodes[p];if(f.type==="comma"&&o.type==="brace"){p===1&&l.push(""),l.push("");continue}if(f.type==="close"){a.push(rt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(rt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return ht.flatten(r(e))};Yc.exports=wh});var Zc=W((tb,qc)=>{"use strict";qc.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 ru=W((nb,nu)=>{"use strict";var Mh=Bn(),{MAX_LENGTH:Qc,CHAR_BACKSLASH:ho,CHAR_BACKTICK:Lh,CHAR_COMMA:vh,CHAR_DOT:Uh,CHAR_LEFT_PARENTHESES:Hh,CHAR_RIGHT_PARENTHESES:Dh,CHAR_LEFT_CURLY_BRACE:Fh,CHAR_RIGHT_CURLY_BRACE:$h,CHAR_LEFT_SQUARE_BRACKET:eu,CHAR_RIGHT_SQUARE_BRACKET:tu,CHAR_DOUBLE_QUOTE:jh,CHAR_SINGLE_QUOTE:Bh,CHAR_NO_BREAK_SPACE:Kh,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Gh}=Zc(),zh=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Qc,n.maxLength):Qc;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,l=e.length,u=0,p=0,f,m=()=>e[u++],g=S=>{if(S.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&S.type==="text"){a.value+=S.value;return}return i.nodes.push(S),S.parent=i,S.prev=a,a=S,S};for(g({type:"bos"});u<l;)if(i=s[s.length-1],f=m(),!(f===Gh||f===Kh)){if(f===ho){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===tu){g({type:"text",value:"\\"+f});continue}if(f===eu){c++;let S;for(;u<l&&(S=m());){if(f+=S,S===eu){c++;continue}if(S===ho){f+=m();continue}if(S===tu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===Hh){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===Dh){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===jh||f===Bh||f===Lh){let S=f,C;for(t.keepQuotes!==!0&&(f="");u<l&&(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===Fh){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===$h){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===vh&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:Mh(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===Uh&&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};nu.exports=zh});var iu=W((rb,su)=>{"use strict";var ou=Bn(),Wh=Vc(),Vh=Xc(),Jh=ru(),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={})=>Jh(e,t);pe.stringify=(e,t={})=>ou(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),Wh(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=Vh(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);su.exports=pe});var jt=W((ob,fu)=>{"use strict";var Yh=$e("path"),Te="\\\\/",au=`[^${Te}]`,Xh=0,De="\\.",qh="\\+",Zh="\\?",zn="\\/",Qh="(?=.)",cu="[^/]",So=`(?:${zn}|$)`,uu=`(?:^|${zn})`,Eo=`${De}{1,2}${So}`,eS=`(?!${De})`,tS=`(?!${uu}${Eo})`,nS=`(?!${De}{0,1}${So})`,rS=`(?!${Eo})`,oS=`[^.${zn}]`,sS=`${cu}*?`,lu={DOT_LITERAL:De,PLUS_LITERAL:qh,QMARK_LITERAL:Zh,SLASH_LITERAL:zn,ONE_CHAR:Qh,QMARK:cu,END_ANCHOR:So,DOTS_SLASH:Eo,NO_DOT:eS,NO_DOTS:tS,NO_DOT_SLASH:nS,NO_DOTS_SLASH:rS,QMARK_NO_DOT:oS,STAR:sS,START_ANCHOR:uu},iS={...lu,SLASH_LITERAL:`[${Te}]`,QMARK:au,STAR:`${au}*?`,DOTS_SLASH:`${De}{1,2}(?:[${Te}]|$)`,NO_DOT:`(?!${De})`,NO_DOTS:`(?!(?:^|[${Te}])${De}{1,2}(?:[${Te}]|$))`,NO_DOT_SLASH:`(?!${De}{0,1}(?:[${Te}]|$))`,NO_DOTS_SLASH:`(?!${De}{1,2}(?:[${Te}]|$))`,QMARK_NO_DOT:`[^.${Te}]`,START_ANCHOR:`(?:^|[${Te}])`,END_ANCHOR:`(?:[${Te}]|$)`},aS={__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"};fu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:Xh,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:aS,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:Yh.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?iS:lu}}});var Bt=W(ae=>{"use strict";var cS=$e("path"),uS=process.platform==="win32",{REGEX_BACKSLASH:lS,REGEX_REMOVE_BACKSLASH:fS,REGEX_SPECIAL_CHARS:pS,REGEX_SPECIAL_CHARS_GLOBAL:dS}=jt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>pS.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(dS,"\\$1");ae.toPosixSlashes=e=>e.replace(lS,"/");ae.removeBackslashes=e=>e.replace(fS,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:uS===!0||cS.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 Eu=W((ib,Su)=>{"use strict";var pu=Bt(),{CHAR_ASTERISK:yo,CHAR_AT:mS,CHAR_BACKWARD_SLASH:Kt,CHAR_COMMA:gS,CHAR_DOT:Ro,CHAR_EXCLAMATION_MARK:Co,CHAR_FORWARD_SLASH:hu,CHAR_LEFT_CURLY_BRACE:Ao,CHAR_LEFT_PARENTHESES:Io,CHAR_LEFT_SQUARE_BRACKET:_S,CHAR_PLUS:hS,CHAR_QUESTION_MARK:du,CHAR_RIGHT_CURLY_BRACE:SS,CHAR_RIGHT_PARENTHESES:mu,CHAR_RIGHT_SQUARE_BRACKET:ES}=jt(),gu=e=>e===hu||e===Kt,_u=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},yS=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,l=-1,u=0,p=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,x=!1,k=!1,M=!1,O=!1,K=0,H,b,N={value:"",depth:0,isGlob:!1},v=()=>l>=r,d=()=>c.charCodeAt(l+1),I=()=>(H=b,c.charCodeAt(++l));for(;l<r;){b=I();let se;if(b===Kt){x=N.backslashes=!0,b=I(),b===Ao&&(A=!0);continue}if(A===!0||b===Ao){for(K++;v()!==!0&&(b=I());){if(b===Kt){x=N.backslashes=!0,I();continue}if(b===Ao){K++;continue}if(A!==!0&&b===Ro&&(b=I())===Ro){if(f=N.isBrace=!0,g=N.isGlob=!0,O=!0,o===!0)continue;break}if(A!==!0&&b===gS){if(f=N.isBrace=!0,g=N.isGlob=!0,O=!0,o===!0)continue;break}if(b===SS&&(K--,K===0)){A=!1,f=N.isBrace=!0,O=!0;break}}if(o===!0)continue;break}if(b===hu){if(s.push(l),i.push(N),N={value:"",depth:0,isGlob:!1},O===!0)continue;if(H===Ro&&l===u+1){u+=2;continue}p=l+1;continue}if(n.noext!==!0&&(b===hS||b===mS||b===yo||b===du||b===Co)===!0&&d()===Io){if(g=N.isGlob=!0,S=N.isExtglob=!0,O=!0,b===Co&&l===u&&(M=!0),o===!0){for(;v()!==!0&&(b=I());){if(b===Kt){x=N.backslashes=!0,b=I();continue}if(b===mu){g=N.isGlob=!0,O=!0;break}}continue}break}if(b===yo){if(H===yo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,O=!0,o===!0)continue;break}if(b===du){if(g=N.isGlob=!0,O=!0,o===!0)continue;break}if(b===_S){for(;v()!==!0&&(se=I());){if(se===Kt){x=N.backslashes=!0,I();continue}if(se===ES){m=N.isBracket=!0,g=N.isGlob=!0,O=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Co&&l===u){k=N.negated=!0,u++;continue}if(n.noparen!==!0&&b===Io){if(g=N.isGlob=!0,o===!0){for(;v()!==!0&&(b=I());){if(b===Io){x=N.backslashes=!0,b=I();continue}if(b===mu){O=!0;break}}continue}break}if(g===!0){if(O=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,ue="",_="";u>0&&(ue=c.slice(0,u),c=c.slice(u),p-=u),U&&g===!0&&p>0?(U=c.slice(0,p),_=c.slice(p)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&gu(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=pu.removeBackslashes(_)),U&&x===!0&&(U=pu.removeBackslashes(U)));let h={prefix:ue,input:e,start:u,base:U,glob:_,isBrace:f,isBracket:m,isGlob:g,isExtglob:S,isGlobstar:C,negated:k,negatedExtglob:M};if(n.tokens===!0&&(h.maxDepth=0,gu(b)||i.push(N),h.tokens=i),n.parts===!0||n.tokens===!0){let se;for(let D=0;D<s.length;D++){let ye=se?se+1:u,Re=s[D],le=e.slice(ye,Re);n.tokens&&(D===0&&u!==0?(i[D].isPrefix=!0,i[D].value=ue):i[D].value=le,_u(i[D]),h.maxDepth+=i[D].depth),(D!==0||le!=="")&&a.push(le),se=Re}if(se&&se+1<e.length){let D=e.slice(se+1);a.push(D),n.tokens&&(i[i.length-1].value=D,_u(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};Su.exports=yS});var Iu=W((ab,Au)=>{"use strict";var Gt=jt(),oe=Bt(),{MAX_LENGTH:Wn,POSIX_REGEX_SOURCE:RS,REGEX_NON_SPECIAL_CHARS:CS,REGEX_SPECIAL_CHARS_BACKREF:AS,REPLACEMENTS:yu}=Gt,IS=(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`,Ru=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},bS=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},Cu=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(bS(t))return t.replace(/\\(.)/g,"$1")},xS=e=>{let t=e.map(Cu).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},bo=(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}}}}},OS=e=>{let t=0,n=[];for(;t<e.length;){let o=bo(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Ru(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Cu(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("")}]`}*`},TS=e=>{let t=0,n=e.trim(),r=bo(n);for(;r;)t++,n=r.body.trim(),r=bo(n);return t},kS=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Gt.DEFAULT_MAX_EXTGLOB_RECURSION,r=Ru(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||xS(r)))return{risky:!0};for(let o of r){let s=OS(o);if(s)return{risky:!0,safeOutput:s};if(TS(o)>n)return{risky:!0}}return{risky:!1}},xo=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=yu[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(Wn,n.maxLength):Wn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},i=[s],a=n.capture?"":"?:",c=oe.isWindows(t),l=Gt.globChars(c),u=Gt.extglobChars(l),{DOT_LITERAL:p,PLUS_LITERAL:f,SLASH_LITERAL:m,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:C,NO_DOT_SLASH:A,NO_DOTS_SLASH:x,QMARK:k,QMARK_NO_DOT:M,STAR:O,START_ANCHOR:K}=l,H=R=>`(${a}(?:(?!${K}${R.dot?S:p}).)*?)`,b=n.dot?"":C,N=n.dot?k:M,v=n.bash===!0?H(n):O;n.capture&&(v=`(${v})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let d={input:e,index:-1,start:0,dot:n.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=oe.removePrefix(e,d),o=e.length;let I=[],U=[],ue=[],_=s,h,se=()=>d.index===o-1,D=d.peek=(R=1)=>e[d.index+R],ye=d.advance=()=>e[++d.index]||"",Re=()=>e.slice(d.index+1),le=(R="",J=0)=>{d.consumed+=R,d.index+=J},tn=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},Tf=()=>{let R=1;for(;D()==="!"&&(D(2)!=="("||D(3)==="?");)ye(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},nn=R=>{d[R]++,ue.push(R)},Fe=R=>{d[R]--,ue.pop()},w=R=>{if(_.type==="globstar"){let J=d.braces>0&&(R.type==="comma"||R.type==="brace"),y=R.extglob===!0||I.length&&(R.type==="pipe"||R.type==="paren");R.type!=="slash"&&R.type!=="paren"&&!J&&!y&&(d.output=d.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=v,d.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&tn(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},rn=(R,J)=>{let y={...u[J],conditions:1,inner:""};y.prev=_,y.parens=d.parens,y.output=d.output,y.startIndex=d.index,y.tokensIndex=i.length;let P=(n.capture?"(":"")+y.open;nn("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:ye(),output:P}),I.push(y)},kf=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=kS(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,Ce=i[R.tokensIndex];Ce.type="text",Ce.value=J,Ce.output=G||oe.escapeRegex(J);for(let Ae=R.tokensIndex+1;Ae<i.length;Ae++)i[Ae].value="",i[Ae].output="",delete i[Ae].suffix;d.output=R.output+Ce.output,d.backtrack=!0,w({type:"paren",extglob:!0,value:h,output:""}),Fe("parens");return}let z=R.close+(n.capture?")":""),ne;if(R.type==="negate"){let G=v;if(R.inner&&R.inner.length>1&&R.inner.includes("/")&&(G=H(n)),(G!==v||se()||/^\)+$/.test(Re()))&&(z=R.close=`)$))${G}`),R.inner.includes("*")&&(ne=Re())&&/^\.[^\\/.]+$/.test(ne)){let Ce=xo(ne,{...t,fastpaths:!1}).output;z=R.close=`)${Ce})${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(AS,(y,P,z,ne,G,Ce)=>ne==="\\"?(R=!0,y):ne==="?"?P?P+ne+(G?k.repeat(G.length):""):Ce===0?N+(G?k.repeat(G.length):""):k.repeat(z.length):ne==="."?p.repeat(z.length):ne==="*"?P?P+ne+(G?v:""):v:P?y:`\\${y}`);return R===!0&&(n.unescape===!0?J=J.replace(/\\/g,""):J=J.replace(/\\+/g,y=>y.length%2===0?"\\\\":y?"\\":"")),J===e&&n.contains===!0?(d.output=e,d):(d.output=oe.wrapOutput(J,d,t),d)}for(;!se();){if(h=ye(),h==="\0")continue;if(h==="\\"){let y=D();if(y==="/"&&n.bash!==!0||y==="."||y===";")continue;if(!y){h+="\\",w({type:"text",value:h});continue}let P=/^\\+/.exec(Re()),z=0;if(P&&P[0].length>2&&(z=P[0].length,d.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=ye():h+=ye(),d.brackets===0){w({type:"text",value:h});continue}}if(d.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let y=_.value.slice(1);if(y.includes("[")&&(_.posix=!0,y.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),ne=_.value.slice(P+2),G=RS[ne];if(G){_.value=z+G,d.backtrack=!0,ye(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&D()!==":"||h==="-"&&D()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,tn({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,tn({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){nn("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){kf(I.pop());continue}w({type:"paren",value:h,output:d.parens?")":"\\)"}),Fe("parens");continue}if(h==="["){if(n.nobracket===!0||!Re().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));h=`\\${h}`}else nn("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,tn({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){nn("braces");let y={type:"brace",value:h,output:"(",outputIndex:d.output.length,tokensIndex:d.tokens.length};U.push(y),w(y);continue}if(h==="}"){let y=U[U.length-1];if(n.nobrace===!0||!y){w({type:"text",value:h,output:h});continue}let P=")";if(y.dots===!0){let z=i.slice(),ne=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&ne.unshift(z[G].value);P=IS(ne,n),d.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=d.output.slice(0,y.outputIndex),ne=d.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",d.output=z;for(let G of ne)d.output+=G.output||G.value}w({type:"brace",value:h,output:P}),Fe("braces"),U.pop();continue}if(h==="|"){I.length>0&&I[I.length-1].conditions++,w({type:"text",value:h});continue}if(h===","){let y=h,P=U[U.length-1];P&&ue[ue.length-1]==="braces"&&(P.comma=!0,y="|"),w({type:"comma",value:h,output:y});continue}if(h==="/"){if(_.type==="dot"&&d.index===d.start+1){d.start=d.index+1,d.consumed="",d.output="",i.pop(),_=s;continue}w({type:"slash",value:h,output:m});continue}if(h==="."){if(d.braces>0&&_.type==="dot"){_.value==="."&&(_.output=p);let y=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,y.dots=!0;continue}if(d.braces+d.parens===0&&_.type!=="bos"&&_.type!=="slash"){w({type:"text",value:h,output:p});continue}w({type:"dot",value:h,output:p});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&D()==="("&&D(2)!=="?"){rn("qmark",h);continue}if(_&&_.type==="paren"){let P=D(),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(Re()))&&(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:k});continue}if(h==="!"){if(n.noextglob!==!0&&D()==="("&&(D(2)!=="?"||!/[!=<:]/.test(D(3)))){rn("negate",h);continue}if(n.nonegate!==!0&&d.index===0){Tf();continue}}if(h==="+"){if(n.noextglob!==!0&&D()==="("&&D(2)!=="?"){rn("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&&D()==="("&&D(2)!=="?"){w({type:"at",extglob:!0,value:h,output:""});continue}w({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let y=CS.exec(Re());y&&(h+=y[0],d.index+=y[0].length),w({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=v,d.backtrack=!0,d.globstar=!0,le(h);continue}let R=Re();if(n.noextglob!==!0&&/^\([^?]/.test(R)){rn("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){le(h);continue}let y=_.prev,P=y.prev,z=y.type==="slash"||y.type==="bos",ne=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||R[0]&&R[0]!=="/")){w({type:"star",value:h,output:""});continue}let G=d.braces>0&&(y.type==="comma"||y.type==="brace"),Ce=I.length&&(y.type==="pipe"||y.type==="paren");if(!z&&y.type!=="paren"&&!G&&!Ce){w({type:"star",value:h,output:""});continue}for(;R.slice(0,3)==="/**";){let Ae=e[d.index+4];if(Ae&&Ae!=="/")break;R=R.slice(3),le("/**",3)}if(y.type==="bos"&&se()){_.type="globstar",_.value+=h,_.output=H(n),d.output=_.output,d.globstar=!0,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&!ne&&se()){d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=H(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 Ae=R[1]!==void 0?"|$":"";d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=`${H(n)}${m}|${m}${Ae})`,_.value+=h,d.output+=y.output+_.output,d.globstar=!0,le(h+ye()),w({type:"slash",value:"/",output:""});continue}if(y.type==="bos"&&R[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${m}|${H(n)}${m})`,d.output=_.output,d.globstar=!0,le(h+ye()),w({type:"slash",value:"/",output:""});continue}d.output=d.output.slice(0,-_.output.length),_.type="globstar",_.output=H(n),_.value+=h,d.output+=_.output,d.globstar=!0,le(h);continue}let J={type:"star",value:h,output:v};if(n.bash===!0){J.output=".*?",(_.type==="bos"||_.type==="slash")&&(J.output=b+J.output),w(J);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){J.output=h,w(J);continue}(d.index===d.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(d.output+=A,_.output+=A):n.dot===!0?(d.output+=x,_.output+=x):(d.output+=b,_.output+=b),D()!=="*"&&(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};xo.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(Wn,n.maxLength):Wn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=yu[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=Gt.globChars(s),S=n.dot?p:u,C=n.dot?f:u,A=n.capture?"":"?:",x={negated:!1,prefix:""},k=n.bash===!0?".*?":m;n.capture&&(k=`(${k})`);let M=b=>b.noglobstar===!0?k:`(${A}(?:(?!${g}${b.dot?l:i}).)*?)`,O=b=>{switch(b){case"*":return`${S}${c}${k}`;case".*":return`${i}${c}${k}`;case"*.*":return`${S}${k}${i}${c}${k}`;case"*/*":return`${S}${k}${a}${c}${C}${k}`;case"**":return S+M(n);case"**/*":return`(?:${S}${M(n)}${a})?${C}${c}${k}`;case"**/*.*":return`(?:${S}${M(n)}${a})?${C}${k}${i}${c}${k}`;case"**/.*":return`(?:${S}${M(n)}${a})?${i}${c}${k}`;default:{let N=/^(.*?)\.(\w+)$/.exec(b);if(!N)return;let v=O(N[1]);return v?v+i+N[2]:void 0}}},K=oe.removePrefix(e,x),H=O(K);return H&&n.strictSlashes!==!0&&(H+=`${a}?`),H};Au.exports=xo});var xu=W((cb,bu)=>{"use strict";var PS=$e("path"),NS=Eu(),Oo=Iu(),To=Bt(),wS=jt(),MS=e=>e&&typeof e=="object"&&!Array.isArray(e),Q=(e,t,n=!1)=>{if(Array.isArray(e)){let u=e.map(f=>Q(f,t,n));return f=>{for(let m of u){let g=m(f);if(g)return g}return!1}}let r=MS(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=To.isWindows(t),i=r?Q.compileRe(e,t):Q.makeRe(e,t,!1,!0),a=i.state;delete i.state;let c=()=>!1;if(o.ignore){let u={...t,ignore:null,onMatch:null,onResult:null};c=Q(o.ignore,u,n)}let l=(u,p=!1)=>{let{isMatch:f,match:m,output:g}=Q.test(u,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:u,output:g,match:m,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,p?S:!1):c(u)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,p?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),p?S:!0)};return n&&(l.state=a),l};Q.test=(e,t,n,{glob:r,posix:o}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=n||{},i=s.format||(o?To.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=To.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(PS.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)):Oo(e,{...t,fastpaths:!1});Q.scan=(e,t)=>NS(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=Oo.fastpaths(e,t)),o.output||(o=Oo(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=wS;bu.exports=Q});var Tu=W((ub,Ou)=>{"use strict";Ou.exports=xu()});var Lu=W((lb,Mu)=>{"use strict";var Pu=$e("util"),Nu=iu(),ke=Tu(),ko=Bt(),ku=e=>e===""||e==="./",wu=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},V=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=u=>{s.add(u.output),n&&n.onResult&&n.onResult(u)};for(let u=0;u<t.length;u++){let p=ke(String(t[u]),{...n,onResult:a},!0),f=p.state.negated||p.state.negatedExtglob;f&&i++;for(let m of e){let g=p(m,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let l=(i===t.length?[...s]:[...o]).filter(u=>!r.has(u));if(n&&l.length===0){if(n.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(n.nonull===!0||n.nullglob===!0)return n.unescape?t.map(u=>u.replace(/\\/g,"")):t}return l};V.match=V;V.matcher=(e,t)=>ke(e,t);V.isMatch=(e,t,n)=>ke(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: "${Pu.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(ku(e)||ku(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=ke(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=ke(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: "${Pu.inspect(e)}"`);return[].concat(t).every(r=>ke(r,n)(e))};V.capture=(e,t,n)=>{let r=ko.isWindows(n),s=ke.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)=>ke.makeRe(...e);V.scan=(...e)=>ke.scan(...e);V.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of Nu(String(r),t))n.push(ke.parse(o,t));return n};V.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!wu(e)?[e]:Nu(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=wu;Mu.exports=V});import{existsSync as Wf,readFileSync as Vf}from"node:fs";import{hostname as xs,userInfo as Jf}from"node:os";import{createHash as Uf,randomBytes as Hf}from"node:crypto";import{existsSync as ur,mkdirSync as Df,readdirSync as Ff,readFileSync as $f,renameSync as hs,statSync as Rs,unlinkSync as Ss,writeFileSync as jf}from"node:fs";import{basename as Bf,dirname as Es,join as Cs,relative as Kf}from"node:path";function T(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
-
`)}function xt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Ot(e){return Uf("sha256").update(e).digest("hex").slice(0,32)}function Ie(e,t){Df(Es(e),{recursive:!0});let n=Cs(Es(e),`.${Bf(e)}.${process.pid}.${Hf(4).toString("hex")}.tmp`);try{jf(n,t,"utf8");try{hs(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Ss(e),hs(n,e);return}throw r}}catch(r){try{Ss(n)}catch{}throw r}}function on(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function lr(){process.stdout.write('{"continue":true}')}function F(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function fr(){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 sn(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 he(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,l=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:l,spawnFailed:l===void 0}}}async function ee(e,t,n=3e3,r={}){let o=await he(e,t,n,r);return o.ok?o.stdout:""}async function pr(e=process.cwd()){let t=await he("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(F("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;T(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=F("CURSOR_PROJECT_DIR")??F("CLAUDE_PROJECT_DIR");if(n&&ur(n)){let r=await he("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 dr(e=process.cwd()){return(await pr(e)).root}function de(e,t){try{return JSON.parse(e)}catch{return t}}var ys=new Map;function Gf(e){return e.charCodeAt(0)===65279?e.slice(1):e}function zf(e){let t;try{t=$f(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(Gf(t))}}catch{return{ok:!1,reason:"parse"}}}function As(e){let t=ys.get(e);if(t!==void 0)return t;let n=zf(e);return ys.set(e,n),n}function Is(e){return As(e)}function re(e,t){let n=As(e);return n.ok?n.value:t}function qe(e){return typeof e=="string"?e:""}function we(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function L(e,t){let n=we(e,t);return typeof n=="string"?n:""}var Be=500;function bs(e,t=2){if(!ur(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Ff(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Cs(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:Kf(e,l),size:Rs(l).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function mr(e){return ur(e)?{present:!0,size:Rs(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 Os(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var Yf=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Xf(e){return Yf.some(t=>!!Y(t,e))}function qf(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(Wf("/.dockerenv")||Vf("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Ts(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function Zf(e,t=process.platform){return Ts(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Qf(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function ep(e){return e==="linux"}function Y(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return F(e)}function tp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!np(Y("CURSOR_VERSION",n))}function np(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function gr(e){if(Qf(e.sessionId))return!0;let t=e.hostname??xs(),n=e.osUser??Ps(e.env);return tp(t,n,e.env)}function rp(e){return lt(Y("CURSOR_AGENT",e.env))?!0:gr(e)}function op(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))||Ts(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!Y(t,e))||Y("SESSIONNAME",e))}function Tt(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(!Zf(t,n)&&rp(e)&&(lt(Y("CURSOR_AGENT",t))||ep(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(Xf(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":qf(t)?"container":op(t)?"interactive":"unknown"}async function ks(){return await ee("systemd-detect-virt",[],1e3)}function Ps(e=process.env,t=Jf){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 Ns(){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=Ps(),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 an(){return xs()}import{createHash as sp}from"node:crypto";import{homedir as ip}from"node:os";import{dirname as aC,join as ap,parse as cC,resolve as uC}from"node:path";var ws="EV_AI_LAUNCHER_VERSION";var Ms="EV_AI_HOOK_SOURCE",Ls="EV_AI_HOOK_FALLBACK_REASON",vs="EV_AI_LAUNCHER_SCOPE",_r="EV_AI_LAUNCHER_READY_FD";var Us="--defer-user-spec",Hs=Buffer.from([1]);var qR=1024*1024,ZR=4*1024*1024,QR=64*1024,eC=64*1024,tC=64*1024;var hr=4096,nC=4*1024*1024;var Fs="https://hooks.ev-ai.ai",$s=".claude/ev-ai-runtime-report.json",js="config.json",fC=1024*1024,cp=new Set(["localhost","127.0.0.1","[::1]","::1"]),up=["claude","cursor","codex"],Bs=[$s,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Sr=/^[A-Za-z0-9._~-]+$/;function un(e){return e!==void 0&&up.includes(e)}function cn(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Er(e){let t,n,r,o,s;for(let i=0;i<e.length;i++){let a=e[i];if(a!==void 0){if(a==="--runner"){let c=cn(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=cn(e,i);c.value&&(r=c.value),i=c.next;continue}if(a.startsWith("--url=")){r=a.slice(6);continue}if(a==="--token"){let c=cn(e,i);c.value&&(o=c.value),i=c.next;continue}if(a.startsWith("--token=")){o=a.slice(8);continue}if(a==="--base-url"){let c=cn(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}a!==Us&&!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:un(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function ln(e,t=Fs){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function yr(e=ip()){return ap(e,".ev-ai",js)}function Ks(e,t){return{...e,...t}}function Ds(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 fn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?cp.has(t.hostname):!1}catch{return!1}}function Rr(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 Cr(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!fn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Rr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Sr.test(n))return`org token must match ${Sr.source} (got: ${n})`;if(Ds(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(Ds(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Gs(e){return new URL(e).toString()}function Ar(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?ln(n):""}function pn(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 zs(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=ln(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Cr(n);return r?{problem:r}:{url:Gs(n)}}function Ws(e){if(Cr(e))return;let t;try{t=new URL(e)}catch{return}let n=Rr(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 sp("sha256").update(i).digest("hex").slice(0,32)}var mn=2;var dn="ev-ai-agent-hook";function lp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Vs(e){let t=lp(e);return t===dn||t===`${dn}.exe`}var dC=`current/${dn}`,mC=`.ev-ai/agent-hook/${dn}`,Js=5e3,Ys=5e3,Ir=3e3;var gn=3e3,Xs=1500,qs=4*1024,br=256*1024,fp=4*1024,Zs=32*1024,xr="1.3.1",gC=`@ev-ai/agent-hook@${xr}`;import{existsSync as Ag,mkdirSync as Ig,readdirSync as bg,readFileSync as xg,unlinkSync as Pa,writeFileSync as Og}from"node:fs";import{homedir as Na}from"node:os";import{join as Vr}from"node:path";import{createHash as ri,randomBytes as mp}from"node:crypto";import{existsSync as oi,mkdirSync as Or,readFileSync as si,unlinkSync as ii,writeFileSync as ai}from"node:fs";import{homedir as Tr}from"node:os";import{dirname as _n,join as kr,resolve as gp}from"node:path";var pp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),dp=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]")||dp.has(n)||r.includes("[bot]")||pp.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 _p="installation.json",hp="cloud-bootstrap.lock",Sp=6e4;function ci(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Me(e=Tr()){return kr(e,".ev-ai","agent-hook")}function Ep(e=Tr()){return kr(Me(e),_p)}function ui(e){return kr(_n(e),hp)}function li(){return mp(8).toString("hex")}function ft(e){return ri("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 fi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function yp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!fi(t)){T(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function pi(e,t){return e&&fi(e)?e:(e&&T(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),yp(t))}function Rp(e){return/^[0-9a-f]{16}$/.test(e)}function Cp(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 Ap="cursoragent@cursor.com";function Ip(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Ap?null:t}function bp(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function xp(e){return xt(e).replace(/\.git$/i,"").toLowerCase()}async function Op(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?xp(t):e}async function Tp(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 kp(e,t){let n=bp(e,t);return n?ft(`cursor_cloud|${n}|${Ip(e)??""}`):null}async function Pp(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Op(n),o=await Tp(n);return ft(`claude_remote|${r}|${o??""}`)}function Qs(e,t){let n=pi(e,t);if(n)return n;let r=Cp(t);return r||li()}async function Np(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||gp(e);return ri("sha256").update(n).digest("hex").slice(0,16)}function wp(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 Mp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=wp(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(oi(e))try{return Mp(si(e,"utf8"))}catch{}}function Pr(e){return Ze(e)}function di(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{Ie(e,`${JSON.stringify(o,null,2)}
|
|
15
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);
|
|
16
|
-
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(
|
|
17
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);
|
|
18
|
-
`,{encoding:"utf8",flag:"wx"})}function
|
|
19
|
-
`)}function ni(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function Ei(e,t={}){let n=t.home??Tr(),r=t.env??process.env,o=await Np(e),s=Ep(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=Tt(i),c=pi(t.overrideId,r),l=a==="cursor_cloud"&&gr(i)?kp(r,e):a==="claude_remote"?await Pp(r,e):null,u=Ze(s);if(u){let S=u;if(c&&c===u.installation_id&&u.pinned!==!0&&(S={...u,pinned:!0},ti(s,S)),!!l&&l!==S.installation_id&&!c&&S.pinned!==!0&&Rp(S.installation_id)&&l){let A={installation_id:l,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return ti(s,A),{installationId:l,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??l??Qs(void 0,r),f=ei(s,ni(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??l??Qs(void 0,r),g=ei(s,ni(m===p?li():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 yi,mkdir as vp,readFile as Up,readdir as Hp,rename as Dp,stat as Fp,rmdir as $p,unlink as jp,utimes as Bp}from"node:fs/promises";var hn=new WeakMap;function Ci(e){if(e&&typeof e=="object"&&"code"in e)return e}function Nr(e){return Ci(e)?.code==="ENOENT"}function Ai(e){return Ci(e)?.code==="EEXIST"}async function Ii(e,t){try{return await e.readdir(t)}catch(n){if(Nr(n))return[];throw n}}function bi(){return{async open(e,t){let n=await yi(e,t),r={path:e};return hn.set(r,n),r},async write(e,t){let n=Ri(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Ri(e).sync()},async close(e){let t=hn.get(e);hn.delete(e),t&&await t.close()},rename:Dp,async readdir(e){return Hp(e)},readFile:Up,async stat(e){let t=await Fp(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await vp(e,t)},unlink:jp,rmdir:$p,utimes:Bp,async fsyncDir(e){if(process.platform==="win32")return;let t=await yi(e,"r");try{await t.sync()}finally{await t.close()}}}}function Ri(e){let t=hn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as sd}from"node:fs";import{existsSync as Yp}from"node:fs";import{homedir as Ti}from"node:os";import{join as Xp}from"node:path";import{existsSync as Kp,readdirSync as xi}from"node:fs";import{homedir as Sn}from"node:os";import{join as ie}from"node:path";function Gp(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 zp(e=process.platform){let t=Gp(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!Kp(r))return n;let o=xi(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function wr(e=process.platform,t=Sn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:zp(e)}}function Wp(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 Vp(e=process.platform,t=Sn()){let n=[ie(Wp(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of xi(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function Jp(e=process.platform,t=Sn()){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 En(e,t=process.platform,n=Sn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=wr(t,n);return[r,...o]}case"cursor":return Vp(t,n);default:return Jp(t,n)}}function ki(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var qp={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function Oi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Zp(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:Oi(n.mcpJson,t.mcpJson),mcpToml:Oi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Pi(e){return Object.fromEntries(Object.entries(qp).map(([t,n])=>[t,Zp(n,n[e])]))}var pt=Pi("homeOnly"),Ge=Pi("projectOnly");function Qp(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function ed(e,t){return Qp(e).some(n=>Yp(Xp(t,n)))}function Ni(e,t){for(let n of e)if(ed(n,t))return!0;return!1}function Ke(e){return[...new Set(e)]}function ze(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let l of c.dirs)l.kind==="SUBAGENT"?n.push(l.dir):l.kind==="COMMAND"?r.push(l.dir):o.push(l.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:Ke(t),subagents:Ke(n),commands:Ke(r),rules:Ke(o),memory:Ke(s),settings:Ke(i),mcp:Ke(a)}}function td(e,t=Ti(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...En(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function wi(e=Ti(),t=process.platform){return td(Object.values(pt),e,t)}import{existsSync as nd}from"node:fs";import{resolve as Mr}from"node:path";function me(e){return Mr(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 yn(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 rd=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function kt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!rd.test(t)?null:t}function dt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=me(o);n.has(s)||(n.add(s),r.push(s))}return r}function od(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function be(e,t,n,r=nd){for(let o of e)for(let s of t){let i=me(Mr(o,s)),a=Mr(o,s,n).replaceAll("\\","/");if(od(i,a)&&r(a))return a}return null}var Li=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,vi=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,id=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Mi=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"]),ad=/^[a-z][a-z0-9-]{1,63}$/,cd=[".cursor/skills",".claude/skills",".agents/skills"],ud=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],ld=Qe(cd,ze(Object.values(Ge)).skills),fd=Qe(ud,ze(Object.values(pt)).skills),pd=new Set(["read","read_file","view"]),dd=new Set(["bash","shell","zsh"]);function Lr(e){let t=e.replace(/\\/g,"/");return Li.exec(t)?.[1]??null}function md(e){let t=e.replace(/\\/g,"/"),r=vi.exec(t)?.[1];return r?r.toLowerCase():null}function gd(e){return Lr(e)??md(e)}function _d(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 Rn(e){return typeof e=="string"?Rn(de(e,null)):!e||typeof e!="object"?null:_d(e)}function Ui(e){if(typeof e=="string")return Ui(de(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=Ui(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function hd(e){let t=e.replace(/\\/g,"/"),n=Li.exec(t);if(n?.[1])return n[1];let o=vi.exec(t)?.[1];return o?o.toLowerCase():null}function Sd(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Ur(e){let t=Rn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function Pt(e,t,n){let r=Sd(e).toLowerCase();if(pd.has(r)){let o=Ur(e);return o?t(o):null}if(dd.has(r)){let o=vr(e);return o?n(o):null}return null}function Hi(e){return Pt(e,gd,hd)}function Ed(e){let t=new Set,n=[];for(let r of e.matchAll(id)){let o=r[1]?.toLowerCase();!o||t.has(o)||yd(o)||(t.add(o),n.push(o))}return n}function yd(e){let t=e.split("/")[0];return Mi.has(e)||t!==void 0&&Mi.has(t)}function Di(e){let t=e.skillId.toLowerCase();if(!ad.test(t))return null;let n=e.exists??sd,r=`${t}/SKILL.md`,o=be(dt(e.launchCwd,e.gitRoot),ld,r,n);return o!==null?o:e.home?be([me(e.home)],fd,r,n):null}function Rd(e){return qe(e.prompt)}function Fi(e){let t=L(e,"command_name");if(t){let r=L(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Rd(e);return n?Ed(n):[]}var Br=je(Je(),1);import{existsSync as Jm}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function wt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Vm(e){if(!e)return"";let t=xt(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return wt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return wt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?wt(o[1]):wt(t)}async function Tn(e=process.cwd()){let t=await he("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([he("git",["remote","get-url","origin"],2e3,{cwd:e}),he("git",["branch","--show-current"],2e3,{cwd:e}),he("git",["rev-parse","HEAD"],2e3,{cwd:e}),he("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 la(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=ci(n,e.scope_path,i);if(s){let g=_i(s,c);if(g)return g}let l=o??await Tn(r),u=l?.remote?Vm(l.remote):"";if(u||(u=wt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let p=e.scope_path??"",f=p?`${p}/`:"",m=`${u}:${f}${a}`;return s&&hi(s,c,m),m}var Ym=[".cursor/rules",".claude/rules",".codex/rules"],Xm=ze(Object.values(Ge)).rules;function qm(e){return Qe(yn(e?tt[e]:void 0,Ym),Xm)}var Zm=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function fa(e){let t=kt(e.relativePath);if(!t)return null;let n=e.exists??Jm,r=dt(e.launchCwd,e.gitRoot),o=qm(e.runnerPlatform),s=be(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=be(r,["."],t,n);if(i!==null)return i}return e.home?be([me(e.home)],o,t,n):null}function Qm(e){let t=e.replace(/\\/g,"/"),r=Zm.exec(t)?.[1];return r?(0,Br.nativeKeyForRulePath)(r):null}function pa(e){return Pt(e,Br.nativeKeyForRulePath,Qm)}function da(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function ma(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=kt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Kr=je(Je(),1);import{existsSync as eg}from"node:fs";var tg=[".cursor/commands",".claude/commands",".codex/prompts"],ng=ze(Object.values(Ge)).commands;function rg(e){return Qe(yn(e?tt[e]:void 0,tg),ng)}var og=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function ga(e){let t=kt(e.commandId);if(!t)return null;let n=e.exists??eg,r=`${t}.md`,o=rg(e.runnerPlatform),s=be(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?be([me(e.home)],o,r,n):null}function sg(e){let t=e.replace(/\\/g,"/"),r=og.exec(t)?.[1];return r?(0,Kr.nativeKeyForCommandPath)(r):null}function _a(e){return Pt(e,Kr.nativeKeyForCommandPath,sg)}var kn=je(Je(),1);function Gr(e){let t=zs(e);if(t.problem){T(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function ha(e,t){if(L(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function ig(){return!!(F("CURSOR_VERSION")??F("CURSOR_PROJECT_DIR"))}function Sa(e,t,n){return e!=="claude"&&e!=="codex"?!1:ha(t,n)?!0:ig()}var ag=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Mt(e,t,n,r){return ha(e,t)?"cursor":un(r)?r:un(n)?n:L(e,"turn_id")?"codex":L(e,"session_id")||ag.has(t.toLowerCase())?"claude":"unknown"}function Pn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function cg(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 Ea(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function ya(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Ra(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Lt(e){return L(e,"session_id")||L(e,"conversation_id")}function zr(e){return L(e,"prompt.id")||L(e,"prompt_id")||L(e,"generation_id")||L(e,"turn_id")}function Wr(e){return L(e,"hook_event_name")||L(e,"event")}function Ca(e,t,n){let r=Lt(e),o=zr(e),s=Wr(e),i=L(e,"source"),a=Mt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var ug=["session_start","session_end","tool_invoked","skill_invoked"];function lg(e){return ug.includes(e)}function Aa(e,t){return e&&lg(e)?e:cg(t.toLowerCase())}var fg={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Nn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Ia(e,t=""){let n=L(e,"tool_name")||L(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Nn(n)&&(n=`MCP:${n}`):n=fg[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||L(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Hi(a);let c=pa(a),l=_a(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var pg=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function ba(e){for(let t of["subagent_type","agent_type"]){let n=L(e,t);if(n&&pg.test(n))return n}return null}function xa(e){let t=we(e,"duration_ms");if(typeof t=="number")return t;let n=we(e,"duration");return typeof n=="number"?n:null}var dg="error",mg="interrupted",gg="permission_denied",_g=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function vt(e){return _g.test(e)?e:null}function hg(e){for(let t of["failure_type","error_type"]){let n=vt(L(e,t));if(n)return n}return null}function Oa(e,t){return we(e,"is_interrupt")===!0?mg:t.toLowerCase()==="permissiondenied"?gg:hg(e)??dg}function Ta(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function Sg(e,t){return Ta(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function Eg(e,t){return Ta(t,n=>(0,kn.mcpServerNameMatchesToolSegment)(n,e))}function yg(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,kn.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:Eg(o[1],t)??o[1],mcpTool:o[2]}}function Rg(e,t){if(/^mcp__/i.test(e))return yg(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:Sg(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function Cg(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?Rg(e,t):{mcpServer:null,mcpTool:null},o=vt(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Nn(e)&&(s=e),s&&(s=Cg(s,o)),{mcpServer:o,mcpTool:s}}var wa=3e4,Tg="claims",kg=!0,Pg=100,Ng=new Set(["sessionstart","sessionend","stopfailure"]),wg=["tool_name","tool","command","file_path","url"];function Mg(e=Na()){return Vr(Me(e),Tg)}function Ma(e,t){try{let n=xg(e,"utf8").split(`
|
|
20
|
-
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function
|
|
21
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(
|
|
22
|
-
|
|
23
|
-
`)}catch(n){let r=n instanceof Error?
|
|
9
|
+
`):u.join(`
|
|
10
|
+
`).trimEnd();return(0,ye.usableCatalogText)(f)}});var Ea=W(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=void 0;Z.fitSnapshotInspectionTextBudget=sg;Z.capComponentTextBytes=Sa;Z.prepareComponentInspectionText=ig;Z.redactComponentSource=Wr;Z.componentSourceContainsRedactableSecret=dg;Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function sg(e){let t=0;return e.map(n=>{let r=n,o=r.skill?.inspectionText;if(o===void 0)return n;let s=Buffer.byteLength(o,"utf8");return t+s<=Z.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES?(t+=s,n):{...n,skill:{...r.skill,inspectionText:void 0}}})}function Sa(e,t){if(e==null||e.length===0)return;let n=Buffer.from(e,"utf8");if(n.byteLength<=t)return e;let r=new TextDecoder("utf-8",{fatal:!0});for(let o=t;o>0;o-=1)try{return r.decode(n.subarray(0,o))}catch{}}function ig(e){if(!(e==null||e.length===0))return Sa(Wr(e),Z.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var ag=[/\bsk-(?:proj-)?[A-Za-z0-9_-]{16,}/g,/\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}/g,/\bgithub_pat_[A-Za-z0-9_]{20,}/g,/\bxox[baprs]-[A-Za-z0-9-]{10,}/g,/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g,/\bAIza[0-9A-Za-z_-]{35}\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g],cg=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,ug=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,lg=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,fg=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,ha=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function pg(e){let t=e.replace(ug,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(lg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(cg,(n,r)=>`${r}${Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of ag)t=t.replace(n,Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function Wr(e){if(e.length===0)return e;let t=e.split(`
|
|
11
|
+
`),n=!1;return t.map(o=>n?ha.test(o)?(n=!1,o):o.trim().length===0?o:Z.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:fg.test(o)&&!ha.test(o)?(n=!0,o):pg(o)).join(`
|
|
12
|
+
`)}function dg(e){return Wr(e)!==e}});var Je=W(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.redactComponentSource=E.prepareComponentInspectionText=E.fitSnapshotInspectionTextBudget=E.componentSourceContainsRedactableSecret=E.capComponentTextBytes=E.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=E.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=E.COMPONENT_INSPECTION_TEXT_MAX_BYTES=E.usableCatalogText=E.parseFrontmatterField=E.parseFrontmatterDescription=E.mcpServerToolSegmentForms=E.mcpServerNameMatchesToolSegment=E.isNpmRegistryPublisher=E.EMPTY_NPM_PUBLISHER=E.displayPublisherName=E.classifyMcpProvenance=E.resolveMcpPackageIdentity=E.McpPackageEcosystem=E.pinnedPackageVersionFromSpec=E.pinnedPackageVersionFromNpx=E.packageNameFromSpec=E.npxPackageSpecs=E.npxExecBin=E.PACKAGE_FIELD_MAX=E.serializeMcpLaunchIdentity=E.projectMcpMissingLaunchIdentity=E.projectMcpLaunchIdentity=E.normalizeMcpToolNames=E.MCP_MISSING_LAUNCH_SERIALIZED=E.MCP_LAUNCH_IDENTITY_ALGORITHM=E.maskMcpLaunchForDisplay=E.launchContainsCredentials=E.hashMcpLaunchIdentity=E.foldMcpName=E.buildMcpFamilyCanonicalKey=E.ComponentKind=void 0;E.userConfigRootFromPath=Ag;E.installationRootExternalKey=Ig;E.normalizeRepositoryRelativePath=ya;E.nativeKeyForSkillPath=bg;E.nativeKeyForRulePath=xg;E.nativeKeyForCommandPath=Og;E.serializeComponentIdentity=Ca;E.buildComponentReference=kg;E.validateComponentReference=Pg;var mg=$e("node:crypto"),gg=$e("node:path"),_g="cmp1_",hg=/^cmp1_[A-Za-z0-9_-]{43}$/,Sg=["/skills/","/skills-cursor/"],Eg=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,yg=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Rg=[".cursor",".claude",".codex"],Cg={".claude.json":".claude",".agents":".codex"};E.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Ag(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Rg.includes(o));return n||(t.map(o=>Cg[o]).find(o=>o!==void 0)??"unknown")}function Ig(e,t){return`runtime-install:${e}/${t}`}function Mn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function ya(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=gg.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return Mn(n,"sourcePath")}function bg(e){let t=e.replaceAll("\\","/");for(let n of Sg){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Ra(e,t,n){let r=e.replaceAll("\\","/"),s=t.exec(r)?.[1];if(!s||s.split("/").includes(".."))return null;let i=s.replace(n,"");return i.length>0?i:null}function xg(e){return Ra(e,Eg,/\.(mdc|md|rules)$/i)}function Og(e){return Ra(e,yg,/\.(md|mdc|toml)$/i)}function Tg(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Ca(e){let t=[Mn(e.installationRootExternalKey,"installationRootExternalKey"),Mn(e.installableKind,"installableKind"),ya(e.sourcePath),Mn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Tg).join("|")}`,"utf8")}function kg(e){let t=(0,mg.createHash)("sha256").update(Ca(e)).digest("base64url");return`${_g}${t}`}function Pg(e){return hg.test(e)}var Re=kn();Object.defineProperty(E,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Re.buildMcpFamilyCanonicalKey}});Object.defineProperty(E,"foldMcpName",{enumerable:!0,get:function(){return Re.foldMcpName}});Object.defineProperty(E,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.hashMcpLaunchIdentity}});Object.defineProperty(E,"launchContainsCredentials",{enumerable:!0,get:function(){return Re.launchContainsCredentials}});Object.defineProperty(E,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Re.maskMcpLaunchForDisplay}});Object.defineProperty(E,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Re.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(E,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Re.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(E,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Re.normalizeMcpToolNames}});Object.defineProperty(E,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpLaunchIdentity}});Object.defineProperty(E,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Re.projectMcpMissingLaunchIdentity}});Object.defineProperty(E,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Re.serializeMcpLaunchIdentity}});var gt=Nn();Object.defineProperty(E,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return gt.PACKAGE_FIELD_MAX}});Object.defineProperty(E,"npxExecBin",{enumerable:!0,get:function(){return gt.npxExecBin}});Object.defineProperty(E,"npxPackageSpecs",{enumerable:!0,get:function(){return gt.npxPackageSpecs}});Object.defineProperty(E,"packageNameFromSpec",{enumerable:!0,get:function(){return gt.packageNameFromSpec}});Object.defineProperty(E,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromNpx}});Object.defineProperty(E,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return gt.pinnedPackageVersionFromSpec}});var Aa=aa();Object.defineProperty(E,"McpPackageEcosystem",{enumerable:!0,get:function(){return Aa.McpPackageEcosystem}});Object.defineProperty(E,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return Aa.resolveMcpPackageIdentity}});var Ln=da();Object.defineProperty(E,"classifyMcpProvenance",{enumerable:!0,get:function(){return Ln.classifyMcpProvenance}});Object.defineProperty(E,"displayPublisherName",{enumerable:!0,get:function(){return Ln.displayPublisherName}});Object.defineProperty(E,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Ln.EMPTY_NPM_PUBLISHER}});Object.defineProperty(E,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Ln.isNpmRegistryPublisher}});var Ia=ga();Object.defineProperty(E,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return Ia.mcpServerNameMatchesToolSegment}});Object.defineProperty(E,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return Ia.mcpServerToolSegmentForms}});var Vr=_a();Object.defineProperty(E,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Vr.parseFrontmatterDescription}});Object.defineProperty(E,"parseFrontmatterField",{enumerable:!0,get:function(){return Vr.parseFrontmatterField}});Object.defineProperty(E,"usableCatalogText",{enumerable:!0,get:function(){return Vr.usableCatalogText}});var Ve=Ea();Object.defineProperty(E,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return Ve.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(E,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return Ve.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(E,"capComponentTextBytes",{enumerable:!0,get:function(){return Ve.capComponentTextBytes}});Object.defineProperty(E,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return Ve.componentSourceContainsRedactableSecret}});Object.defineProperty(E,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return Ve.fitSnapshotInspectionTextBudget}});Object.defineProperty(E,"prepareComponentInspectionText",{enumerable:!0,get:function(){return Ve.prepareComponentInspectionText}});Object.defineProperty(E,"redactComponentSource",{enumerable:!0,get:function(){return Ve.redactComponentSource}})});var Jn=W(Se=>{"use strict";Se.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;Se.find=(e,t)=>e.nodes.find(n=>n.type===t);Se.exceedsLimit=(e,t,n=1,r)=>r===!1||!Se.isInteger(e)||!Se.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;Se.escapeNode=(e,t=0,n)=>{let r=e.nodes[t];r&&(n&&r.type===n||r.type==="open"||r.type==="close")&&r.escaped!==!0&&(r.value="\\"+r.value,r.escaped=!0)};Se.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;Se.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;Se.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;Se.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);Se.flatten=(...e)=>{let t=[],n=r=>{for(let o=0;o<r.length;o++){let s=r[o];if(Array.isArray(s)){n(s);continue}s!==void 0&&t.push(s)}return t};return n(e),t}});var Yn=W((ux,su)=>{"use strict";var ou=Jn();su.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&ou.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&ou.isOpenOrClose(r)?"\\"+r.value:r.value;if(r.value)return r.value;if(r.nodes)for(let c of r.nodes)a+=n(c);return a};return n(e)}});var au=W((lx,iu)=>{"use strict";iu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var _u=W((fx,gu)=>{"use strict";var cu=au(),nt=(e,t,n)=>{if(cu(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(cu(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let r={relaxZeros:!0,...n};typeof r.strictZeros=="boolean"&&(r.relaxZeros=r.strictZeros===!1);let o=String(r.relaxZeros),s=String(r.shorthand),i=String(r.capture),a=String(r.wrap),c=e+":"+t+"="+o+s+i+a;if(nt.cache.hasOwnProperty(c))return nt.cache[c].result;let u=Math.min(e,t),l=Math.max(e,t);if(Math.abs(u-l)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let p=mu(e)||mu(t),f={min:e,max:t,a:u,b:l},m=[],g=[];if(p&&(f.isPadded=p,f.maxLen=String(f.max).length),u<0){let S=l<0?Math.abs(l):1;g=uu(S,Math.abs(u),f,r),u=f.a=0}return l>=0&&(m=uu(u,l,f,r)),f.negatives=g,f.positives=m,f.result=cS(g,m,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&m.length+g.length>1&&(f.result=`(?:${f.result})`),nt.cache[c]=f,f.result};function cS(e,t,n){let r=Oo(e,t,"-",!1,n)||[],o=Oo(t,e,"",!1,n)||[],s=Oo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function uS(e,t){let n=1,r=1,o=fu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=fu(e,n);for(o=pu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=pu(t+1,r)-1;return s=[...s],s.sort(pS),s}function lS(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=fS(e,t),o=r.length,s="",i=0;for(let a=0;a<o;a++){let[c,u]=r[a];c===u?s+=c:c!=="0"||u!=="9"?s+=dS(c,u,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function uu(e,t,n,r){let o=uS(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let u=o[c],l=lS(String(i),String(u),r),p="";if(!n.isPadded&&a&&a.pattern===l.pattern){a.count.length>1&&a.count.pop(),a.count.push(l.count[0]),a.string=a.pattern+du(a.count),i=u+1;continue}n.isPadded&&(p=mS(u,n,r)),l.string=p+l.pattern+du(l.count),s.push(l),i=u+1,a=l}return s}function Oo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!lu(t,"string",a)&&s.push(n+a),r&&lu(t,"string",a)&&s.push(n+a)}return s}function fS(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function pS(e,t){return e>t?1:t>e?-1:0}function lu(e,t,n){return e.some(r=>r[t]===n)}function fu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function pu(e,t){return e-e%Math.pow(10,t)}function du(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function dS(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function mu(e){return/^-?(0+)\d/.test(e)}function mS(e,t,n){if(!t.isPadded)return e;let r=Math.abs(t.maxLen-String(e).length),o=n.relaxZeros!==!1;switch(r){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:return o?`0{0,${r}}`:`0{${r}}`}}nt.cache={};nt.clearCache=()=>nt.cache={};gu.exports=nt});var Po=W((px,Au)=>{"use strict";var gS=$e("util"),Su=_u(),hu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),_S=e=>t=>e===!0?Number(t):String(t),To=e=>typeof e=="number"||typeof e=="string"&&e!=="",zt=e=>Number.isInteger(+e),ko=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},hS=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,SS=(e,t,n)=>{if(t>0){let r=e[0]==="-"?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return n===!1?String(e):e},qn=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},ES=(e,t,n)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let r=t.capture?"":"?:",o="",s="",i;return e.positives.length&&(o=e.positives.map(a=>qn(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>qn(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Eu=(e,t,n,r)=>{if(n)return Su(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},yu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Su(e,t,n)},Ru=(...e)=>new RangeError("Invalid range arguments: "+gS.inspect(...e)),Cu=(e,t,n)=>{if(n.strictRanges===!0)throw Ru([e,t]);return[]},yS=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},RS=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Ru([e,t]);return[]}o===0&&(o=0),s===0&&(s=0);let i=o>s,a=String(e),c=String(t),u=String(n);n=Math.max(Math.abs(n),1);let l=ko(a)||ko(c)||ko(u),p=l?Math.max(a.length,c.length,u.length):0,f=l===!1&&hS(e,t,r)===!1,m=r.transform||_S(f);if(r.toRegex&&n===1)return Eu(qn(e,p),qn(t,p),!0,r);let g={negatives:[],positives:[]},S=T=>g[T<0?"negatives":"positives"].push(Math.abs(T)),C=[],A=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):C.push(SS(m(o,A),p,f)),o=i?o-n:o+n,A++;return r.toRegex===!0?n>1?ES(g,r,p):yu(C,null,{wrap:!1,...r}):C},CS=(e,t,n=1,r={})=>{if(!zt(e)&&e.length>1||!zt(t)&&t.length>1)return Cu(e,t,r);let o=r.transform||(f=>String.fromCharCode(f)),s=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),a=s>i,c=Math.min(s,i),u=Math.max(s,i);if(r.toRegex&&n===1)return Eu(c,u,!1,r);let l=[],p=0;for(;a?s>=i:s<=i;)l.push(o(s,p)),s=a?s-n:s+n,p++;return r.toRegex===!0?yu(l,null,{wrap:!1,options:r}):l},Xn=(e,t,n,r={})=>{if(t==null&&To(e))return[e];if(!To(e)||!To(t))return Cu(e,t,r);if(typeof n=="function")return Xn(e,t,1,{transform:n});if(hu(n))return Xn(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,zt(n)?zt(e)&&zt(t)?RS(e,t,n,o):CS(e,t,Math.max(Math.abs(n),1),o):n!=null&&!hu(n)?yS(n,o):Xn(e,t,1,n)};Au.exports=Xn});var xu=W((dx,bu)=>{"use strict";var AS=Po(),Iu=Jn(),IS=(e,t={})=>{let n=(r,o={})=>{let s=Iu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",u="";if(r.isOpen===!0)return c+r.value;if(r.isClose===!0)return console.log("node.isClose",c,r.value),c+r.value;if(r.type==="open")return a?c+r.value:"(";if(r.type==="close")return a?c+r.value:")";if(r.type==="comma")return r.prev.type==="comma"?"":a?r.value:"|";if(r.value)return r.value;if(r.nodes&&r.ranges>0){let l=Iu.reduce(r.nodes),p=AS(...l,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return l.length>1&&p.length>1?`(${p})`:p}if(r.nodes)for(let l of r.nodes)u+=n(l,r);return u};return n(e)};bu.exports=IS});var ku=W((mx,Tu)=>{"use strict";var bS=Po(),Ou=Yn(),ht=Jn(),rt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?ht.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(rt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?rt(o,s,n):o+s);return ht.flatten(r)},xS=(e,t={})=>{let n=t.rangeLimit===void 0?1e3:t.rangeLimit,r=(o,s={})=>{o.queue=[];let i=s,a=s.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,a=i.queue;if(o.invalid||o.dollar){a.push(rt(a.pop(),Ou(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(rt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let p=ht.reduce(o.nodes);if(ht.exceedsLimit(...p,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=bS(...p,t);f.length===0&&(f=Ou(o,t)),a.push(rt(a.pop(),f)),o.nodes=[];return}let c=ht.encloseBrace(o),u=o.queue,l=o;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,u=l.queue;for(let p=0;p<o.nodes.length;p++){let f=o.nodes[p];if(f.type==="comma"&&o.type==="brace"){p===1&&u.push(""),u.push("");continue}if(f.type==="close"){a.push(rt(a.pop(),u,c));continue}if(f.value&&f.type!=="open"){u.push(rt(u.pop(),f.value));continue}f.nodes&&r(f,o)}return u};return ht.flatten(r(e))};Tu.exports=xS});var Nu=W((gx,Pu)=>{"use strict";Pu.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
13
|
+
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Hu=W((_x,vu)=>{"use strict";var OS=Yn(),{MAX_LENGTH:wu,CHAR_BACKSLASH:No,CHAR_BACKTICK:TS,CHAR_COMMA:kS,CHAR_DOT:PS,CHAR_LEFT_PARENTHESES:NS,CHAR_RIGHT_PARENTHESES:wS,CHAR_LEFT_CURLY_BRACE:MS,CHAR_RIGHT_CURLY_BRACE:LS,CHAR_LEFT_SQUARE_BRACKET:Mu,CHAR_RIGHT_SQUARE_BRACKET:Lu,CHAR_DOUBLE_QUOTE:vS,CHAR_SINGLE_QUOTE:HS,CHAR_NO_BREAK_SPACE:US,CHAR_ZERO_WIDTH_NOBREAK_SPACE:DS}=Nu(),FS=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(wu,n.maxLength):wu;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,u=e.length,l=0,p=0,f,m=()=>e[l++],g=S=>{if(S.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&S.type==="text"){a.value+=S.value;return}return i.nodes.push(S),S.parent=i,S.prev=a,a=S,S};for(g({type:"bos"});l<u;)if(i=s[s.length-1],f=m(),!(f===DS||f===US)){if(f===No){g({type:"text",value:(t.keepEscaping?f:"")+m()});continue}if(f===Lu){g({type:"text",value:"\\"+f});continue}if(f===Mu){c++;let S;for(;l<u&&(S=m());){if(f+=S,S===Mu){c++;continue}if(S===No){f+=m();continue}if(S===Lu&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===NS){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===wS){if(i.type!=="paren"){g({type:"text",value:f});continue}i=s.pop(),g({type:"text",value:f}),i=s[s.length-1];continue}if(f===vS||f===HS||f===TS){let S=f,C;for(t.keepQuotes!==!0&&(f="");l<u&&(C=m());){if(C===No){f+=C+m();continue}if(C===S){t.keepQuotes===!0&&(f+=C);break}f+=C}g({type:"text",value:f});continue}if(f===MS){p++;let C={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:p,commas:0,ranges:0,nodes:[]};i=g(C),s.push(i),g({type:"open",value:f});continue}if(f===LS){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),p--,i=s[s.length-1];continue}if(f===kS&&p>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:OS(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===PS&&p>0&&i.commas===0){let S=i.nodes;if(p===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let C=S[S.length-1];C.value+=a.value+f,a=C,i.ranges--;continue}g({type:"dot",value:f});continue}g({type:"text",value:f})}do if(i=s.pop(),i.type!=="root"){i.nodes.forEach(A=>{A.nodes||(A.type==="open"&&(A.isOpen=!0),A.type==="close"&&(A.isClose=!0),A.nodes||(A.type="text"),A.invalid=!0)});let S=s[s.length-1],C=S.nodes.indexOf(i);S.nodes.splice(C,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};vu.exports=FS});var Fu=W((hx,Du)=>{"use strict";var Uu=Yn(),$S=xu(),jS=ku(),BS=Hu(),de=(e,t={})=>{let n=[];if(Array.isArray(e))for(let r of e){let o=de.create(r,t);Array.isArray(o)?n.push(...o):n.push(o)}else n=[].concat(de.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(n=[...new Set(n)]),n};de.parse=(e,t={})=>BS(e,t);de.stringify=(e,t={})=>Uu(typeof e=="string"?de.parse(e,t):e,t);de.compile=(e,t={})=>(typeof e=="string"&&(e=de.parse(e,t)),$S(e,t));de.expand=(e,t={})=>{typeof e=="string"&&(e=de.parse(e,t));let n=jS(e,t);return t.noempty===!0&&(n=n.filter(Boolean)),t.nodupes===!0&&(n=[...new Set(n)]),n};de.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?de.compile(e,t):de.expand(e,t);Du.exports=de});var Wt=W((Sx,Gu)=>{"use strict";var KS=$e("path"),ke="\\\\/",$u=`[^${ke}]`,GS=0,De="\\.",zS="\\+",WS="\\?",Zn="\\/",VS="(?=.)",ju="[^/]",wo=`(?:${Zn}|$)`,Bu=`(?:^|${Zn})`,Mo=`${De}{1,2}${wo}`,JS=`(?!${De})`,YS=`(?!${Bu}${Mo})`,XS=`(?!${De}{0,1}${wo})`,qS=`(?!${Mo})`,ZS=`[^.${Zn}]`,QS=`${ju}*?`,Ku={DOT_LITERAL:De,PLUS_LITERAL:zS,QMARK_LITERAL:WS,SLASH_LITERAL:Zn,ONE_CHAR:VS,QMARK:ju,END_ANCHOR:wo,DOTS_SLASH:Mo,NO_DOT:JS,NO_DOTS:YS,NO_DOT_SLASH:XS,NO_DOTS_SLASH:qS,QMARK_NO_DOT:ZS,STAR:QS,START_ANCHOR:Bu},eE={...Ku,SLASH_LITERAL:`[${ke}]`,QMARK:$u,STAR:`${$u}*?`,DOTS_SLASH:`${De}{1,2}(?:[${ke}]|$)`,NO_DOT:`(?!${De})`,NO_DOTS:`(?!(?:^|[${ke}])${De}{1,2}(?:[${ke}]|$))`,NO_DOT_SLASH:`(?!${De}{0,1}(?:[${ke}]|$))`,NO_DOTS_SLASH:`(?!${De}{1,2}(?:[${ke}]|$))`,QMARK_NO_DOT:`[^.${ke}]`,START_ANCHOR:`(?:^|[${ke}])`,END_ANCHOR:`(?:[${ke}]|$)`},tE={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Gu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:GS,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:tE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:KS.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?eE:Ku}}});var Vt=W(ae=>{"use strict";var nE=$e("path"),rE=process.platform==="win32",{REGEX_BACKSLASH:oE,REGEX_REMOVE_BACKSLASH:sE,REGEX_SPECIAL_CHARS:iE,REGEX_SPECIAL_CHARS_GLOBAL:aE}=Wt();ae.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ae.hasRegexChars=e=>iE.test(e);ae.isRegexChar=e=>e.length===1&&ae.hasRegexChars(e);ae.escapeRegex=e=>e.replace(aE,"\\$1");ae.toPosixSlashes=e=>e.replace(oE,"/");ae.removeBackslashes=e=>e.replace(sE,t=>t==="\\"?"":t);ae.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ae.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:rE===!0||nE.sep==="\\";ae.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ae.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ae.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ae.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Zu=W((yx,qu)=>{"use strict";var zu=Vt(),{CHAR_ASTERISK:Lo,CHAR_AT:cE,CHAR_BACKWARD_SLASH:Jt,CHAR_COMMA:uE,CHAR_DOT:vo,CHAR_EXCLAMATION_MARK:Ho,CHAR_FORWARD_SLASH:Xu,CHAR_LEFT_CURLY_BRACE:Uo,CHAR_LEFT_PARENTHESES:Do,CHAR_LEFT_SQUARE_BRACKET:lE,CHAR_PLUS:fE,CHAR_QUESTION_MARK:Wu,CHAR_RIGHT_CURLY_BRACE:pE,CHAR_RIGHT_PARENTHESES:Vu,CHAR_RIGHT_SQUARE_BRACKET:dE}=Wt(),Ju=e=>e===Xu||e===Jt,Yu=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},mE=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,u=-1,l=0,p=0,f=!1,m=!1,g=!1,S=!1,C=!1,A=!1,T=!1,x=!1,M=!1,k=!1,K=0,D,b,N={value:"",depth:0,isGlob:!1},H=()=>u>=r,d=()=>c.charCodeAt(u+1),I=()=>(D=b,c.charCodeAt(++u));for(;u<r;){b=I();let se;if(b===Jt){T=N.backslashes=!0,b=I(),b===Uo&&(A=!0);continue}if(A===!0||b===Uo){for(K++;H()!==!0&&(b=I());){if(b===Jt){T=N.backslashes=!0,I();continue}if(b===Uo){K++;continue}if(A!==!0&&b===vo&&(b=I())===vo){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(A!==!0&&b===uE){if(f=N.isBrace=!0,g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===pE&&(K--,K===0)){A=!1,f=N.isBrace=!0,k=!0;break}}if(o===!0)continue;break}if(b===Xu){if(s.push(u),i.push(N),N={value:"",depth:0,isGlob:!1},k===!0)continue;if(D===vo&&u===l+1){l+=2;continue}p=u+1;continue}if(n.noext!==!0&&(b===fE||b===cE||b===Lo||b===Wu||b===Ho)===!0&&d()===Do){if(g=N.isGlob=!0,S=N.isExtglob=!0,k=!0,b===Ho&&u===l&&(M=!0),o===!0){for(;H()!==!0&&(b=I());){if(b===Jt){T=N.backslashes=!0,b=I();continue}if(b===Vu){g=N.isGlob=!0,k=!0;break}}continue}break}if(b===Lo){if(D===Lo&&(C=N.isGlobstar=!0),g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===Wu){if(g=N.isGlob=!0,k=!0,o===!0)continue;break}if(b===lE){for(;H()!==!0&&(se=I());){if(se===Jt){T=N.backslashes=!0,I();continue}if(se===dE){m=N.isBracket=!0,g=N.isGlob=!0,k=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Ho&&u===l){x=N.negated=!0,l++;continue}if(n.noparen!==!0&&b===Do){if(g=N.isGlob=!0,o===!0){for(;H()!==!0&&(b=I());){if(b===Do){T=N.backslashes=!0,b=I();continue}if(b===Vu){k=!0;break}}continue}break}if(g===!0){if(k=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,ue="",_="";l>0&&(ue=c.slice(0,l),c=c.slice(l),p-=l),U&&g===!0&&p>0?(U=c.slice(0,p),_=c.slice(p)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&Ju(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=zu.removeBackslashes(_)),U&&T===!0&&(U=zu.removeBackslashes(U)));let h={prefix:ue,input:e,start:l,base:U,glob:_,isBrace:f,isBracket:m,isGlob:g,isExtglob:S,isGlobstar:C,negated:x,negatedExtglob:M};if(n.tokens===!0&&(h.maxDepth=0,Ju(b)||i.push(N),h.tokens=i),n.parts===!0||n.tokens===!0){let se;for(let F=0;F<s.length;F++){let Ce=se?se+1:l,Ae=s[F],le=e.slice(Ce,Ae);n.tokens&&(F===0&&l!==0?(i[F].isPrefix=!0,i[F].value=ue):i[F].value=le,Yu(i[F]),h.maxDepth+=i[F].depth),(F!==0||le!=="")&&a.push(le),se=Ae}if(se&&se+1<e.length){let F=e.slice(se+1);a.push(F),n.tokens&&(i[i.length-1].value=F,Yu(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};qu.exports=mE});var rl=W((Rx,nl)=>{"use strict";var Yt=Wt(),oe=Vt(),{MAX_LENGTH:Qn,POSIX_REGEX_SOURCE:gE,REGEX_NON_SPECIAL_CHARS:_E,REGEX_SPECIAL_CHARS_BACKREF:hE,REPLACEMENTS:Qu}=Yt,SE=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let n=`[${e.join("-")}]`;try{new RegExp(n)}catch{return e.map(o=>oe.escapeRegex(o)).join("..")}return n},St=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,el=e=>{let t=[],n=0,r=0,o=0,s="",i=!1;for(let a of e){if(i===!0){s+=a,i=!1;continue}if(a==="\\"){s+=a,i=!0;continue}if(a==='"'){o=o===1?0:1,s+=a;continue}if(o===0){if(a==="[")n++;else if(a==="]"&&n>0)n--;else if(n===0){if(a==="(")r++;else if(a===")"&&r>0)r--;else if(a==="|"&&r===0){t.push(s),s="";continue}}}s+=a}return t.push(s),t},EE=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n==="\\"){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},tl=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(EE(t))return t.replace(/\\(.)/g,"$1")},yE=e=>{let t=e.map(tl).filter(Boolean);for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){let o=t[n],s=t[r],i=o[0];if(!(!i||o!==i.repeat(o.length)||s!==i.repeat(s.length))&&(o===s||o.startsWith(s)||s.startsWith(o)))return!0}return!1},Fo=(e,t=!0)=>{if(e[0]!=="+"&&e[0]!=="*"||e[1]!=="(")return;let n=0,r=0,o=0,s=!1;for(let i=1;i<e.length;i++){let a=e[i];if(s===!0){s=!1;continue}if(a==="\\"){s=!0;continue}if(a==='"'){o=o===1?0:1;continue}if(o!==1){if(a==="["){n++;continue}if(a==="]"&&n>0){n--;continue}if(!(n>0)){if(a==="("){r++;continue}if(a===")"&&(r--,r===0))return t===!0&&i!==e.length-1?void 0:{type:e[0],body:e.slice(2,i),end:i}}}}},RE=e=>{let t=0,n=[];for(;t<e.length;){let o=Fo(e.slice(t),!1);if(!o||o.type!=="*")return;let s=el(o.body).map(a=>a.trim());if(s.length!==1)return;let i=tl(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?oe.escapeRegex(n[0]):`[${n.map(o=>oe.escapeRegex(o)).join("")}]`}*`},CE=e=>{let t=0,n=e.trim(),r=Fo(n);for(;r;)t++,n=r.body.trim(),r=Fo(n);return t},AE=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:Yt.DEFAULT_MAX_EXTGLOB_RECURSION,r=el(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||yE(r)))return{risky:!0};for(let o of r){let s=RE(o);if(s)return{risky:!0,safeOutput:s};if(CE(o)>n)return{risky:!0}}return{risky:!1}},$o=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Qu[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(Qn,n.maxLength):Qn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},i=[s],a=n.capture?"":"?:",c=oe.isWindows(t),u=Yt.globChars(c),l=Yt.extglobChars(u),{DOT_LITERAL:p,PLUS_LITERAL:f,SLASH_LITERAL:m,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:C,NO_DOT_SLASH:A,NO_DOTS_SLASH:T,QMARK:x,QMARK_NO_DOT:M,STAR:k,START_ANCHOR:K}=u,D=R=>`(${a}(?:(?!${K}${R.dot?S:p}).)*?)`,b=n.dot?"":C,N=n.dot?x:M,H=n.bash===!0?D(n):k;n.capture&&(H=`(${H})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let d={input:e,index:-1,start:0,dot:n.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=oe.removePrefix(e,d),o=e.length;let I=[],U=[],ue=[],_=s,h,se=()=>d.index===o-1,F=d.peek=(R=1)=>e[d.index+R],Ce=d.advance=()=>e[++d.index]||"",Ae=()=>e.slice(d.index+1),le=(R="",J=0)=>{d.consumed+=R,d.index+=J},an=R=>{d.output+=R.output!=null?R.output:R.value,le(R.value)},pp=()=>{let R=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ce(),d.start++,R++;return R%2===0?!1:(d.negated=!0,d.start++,!0)},cn=R=>{d[R]++,ue.push(R)},Fe=R=>{d[R]--,ue.pop()},w=R=>{if(_.type==="globstar"){let J=d.braces>0&&(R.type==="comma"||R.type==="brace"),y=R.extglob===!0||I.length&&(R.type==="pipe"||R.type==="paren");R.type!=="slash"&&R.type!=="paren"&&!J&&!y&&(d.output=d.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,d.output+=_.output)}if(I.length&&R.type!=="paren"&&(I[I.length-1].inner+=R.value),(R.value||R.output)&&an(R),_&&_.type==="text"&&R.type==="text"){_.value+=R.value,_.output=(_.output||"")+R.value;return}R.prev=_,i.push(R),_=R},un=(R,J)=>{let y={...l[J],conditions:1,inner:""};y.prev=_,y.parens=d.parens,y.output=d.output,y.startIndex=d.index,y.tokensIndex=i.length;let P=(n.capture?"(":"")+y.open;cn("parens"),w({type:R,value:J,output:d.output?"":g}),w({type:"paren",extglob:!0,value:Ce(),output:P}),I.push(y)},dp=R=>{let J=e.slice(R.startIndex,d.index+1),y=e.slice(R.startIndex+2,d.index),P=AE(y,n);if((R.type==="plus"||R.type==="star")&&P.risky){let G=P.safeOutput?(R.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,Ie=i[R.tokensIndex];Ie.type="text",Ie.value=J,Ie.output=G||oe.escapeRegex(J);for(let be=R.tokensIndex+1;be<i.length;be++)i[be].value="",i[be].output="",delete i[be].suffix;d.output=R.output+Ie.output,d.backtrack=!0,w({type:"paren",extglob:!0,value:h,output:""}),Fe("parens");return}let z=R.close+(n.capture?")":""),re;if(R.type==="negate"){let G=H;if(R.inner&&R.inner.length>1&&R.inner.includes("/")&&(G=D(n)),(G!==H||se()||/^\)+$/.test(Ae()))&&(z=R.close=`)$))${G}`),R.inner.includes("*")&&(re=Ae())&&/^\.[^\\/.]+$/.test(re)){let Ie=$o(re,{...t,fastpaths:!1}).output;z=R.close=`)${Ie})${G})`}R.prev.type==="bos"&&(d.negatedExtglob=!0)}w({type:"paren",extglob:!0,value:h,output:z}),Fe("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let R=!1,J=e.replace(hE,(y,P,z,re,G,Ie)=>re==="\\"?(R=!0,y):re==="?"?P?P+re+(G?x.repeat(G.length):""):Ie===0?N+(G?x.repeat(G.length):""):x.repeat(z.length):re==="."?p.repeat(z.length):re==="*"?P?P+re+(G?H:""):H:P?y:`\\${y}`);return R===!0&&(n.unescape===!0?J=J.replace(/\\/g,""):J=J.replace(/\\+/g,y=>y.length%2===0?"\\\\":y?"\\":"")),J===e&&n.contains===!0?(d.output=e,d):(d.output=oe.wrapOutput(J,d,t),d)}for(;!se();){if(h=Ce(),h==="\0")continue;if(h==="\\"){let y=F();if(y==="/"&&n.bash!==!0||y==="."||y===";")continue;if(!y){h+="\\",w({type:"text",value:h});continue}let P=/^\\+/.exec(Ae()),z=0;if(P&&P[0].length>2&&(z=P[0].length,d.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=Ce():h+=Ce(),d.brackets===0){w({type:"text",value:h});continue}}if(d.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let y=_.value.slice(1);if(y.includes("[")&&(_.posix=!0,y.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),re=_.value.slice(P+2),G=gE[re];if(G){_.value=z+G,d.backtrack=!0,Ce(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,an({value:h});continue}if(d.quotes===1&&h!=='"'){h=oe.escapeRegex(h),_.value+=h,an({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===!0&&w({type:"text",value:h});continue}if(h==="("){cn("parens"),w({type:"paren",value:h});continue}if(h===")"){if(d.parens===0&&n.strictBrackets===!0)throw new SyntaxError(St("opening","("));let y=I[I.length-1];if(y&&d.parens===y.parens+1){dp(I.pop());continue}w({type:"paren",value:h,output:d.parens?")":"\\)"}),Fe("parens");continue}if(h==="["){if(n.nobracket===!0||!Ae().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));h=`\\${h}`}else cn("brackets");w({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){w({type:"text",value:h,output:`\\${h}`});continue}if(d.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(St("opening","["));w({type:"text",value:h,output:`\\${h}`});continue}Fe("brackets");let y=_.value.slice(1);if(_.posix!==!0&&y[0]==="^"&&!y.includes("/")&&(h=`/${h}`),_.value+=h,an({value:h}),n.literalBrackets===!1||oe.hasRegexChars(y))continue;let P=oe.escapeRegex(_.value);if(d.output=d.output.slice(0,-_.value.length),n.literalBrackets===!0){d.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,d.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){cn("braces");let y={type:"brace",value:h,output:"(",outputIndex:d.output.length,tokensIndex:d.tokens.length};U.push(y),w(y);continue}if(h==="}"){let y=U[U.length-1];if(n.nobrace===!0||!y){w({type:"text",value:h,output:h});continue}let P=")";if(y.dots===!0){let z=i.slice(),re=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&re.unshift(z[G].value);P=SE(re,n),d.backtrack=!0}if(y.comma!==!0&&y.dots!==!0){let z=d.output.slice(0,y.outputIndex),re=d.tokens.slice(y.tokensIndex);y.value=y.output="\\{",h=P="\\}",d.output=z;for(let G of re)d.output+=G.output||G.value}w({type:"brace",value:h,output:P}),Fe("braces"),U.pop();continue}if(h==="|"){I.length>0&&I[I.length-1].conditions++,w({type:"text",value:h});continue}if(h===","){let y=h,P=U[U.length-1];P&&ue[ue.length-1]==="braces"&&(P.comma=!0,y="|"),w({type:"comma",value:h,output:y});continue}if(h==="/"){if(_.type==="dot"&&d.index===d.start+1){d.start=d.index+1,d.consumed="",d.output="",i.pop(),_=s;continue}w({type:"slash",value:h,output:m});continue}if(h==="."){if(d.braces>0&&_.type==="dot"){_.value==="."&&(_.output=p);let y=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,y.dots=!0;continue}if(d.braces+d.parens===0&&_.type!=="bos"&&_.type!=="slash"){w({type:"text",value:h,output:p});continue}w({type:"dot",value:h,output:p});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){un("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!oe.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(Ae()))&&(z=`\\${h}`),w({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){w({type:"qmark",value:h,output:M});continue}w({type:"qmark",value:h,output:x});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){un("negate",h);continue}if(n.nonegate!==!0&&d.index===0){pp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){un("plus",h);continue}if(_&&_.value==="("||n.regex===!1){w({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||d.parens>0){w({type:"plus",value:h});continue}w({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){w({type:"at",extglob:!0,value:h,output:""});continue}w({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let y=_E.exec(Ae());y&&(h+=y[0],d.index+=y[0].length),w({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,d.backtrack=!0,d.globstar=!0,le(h);continue}let R=Ae();if(n.noextglob!==!0&&/^\([^?]/.test(R)){un("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){le(h);continue}let y=_.prev,P=y.prev,z=y.type==="slash"||y.type==="bos",re=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||R[0]&&R[0]!=="/")){w({type:"star",value:h,output:""});continue}let G=d.braces>0&&(y.type==="comma"||y.type==="brace"),Ie=I.length&&(y.type==="pipe"||y.type==="paren");if(!z&&y.type!=="paren"&&!G&&!Ie){w({type:"star",value:h,output:""});continue}for(;R.slice(0,3)==="/**";){let be=e[d.index+4];if(be&&be!=="/")break;R=R.slice(3),le("/**",3)}if(y.type==="bos"&&se()){_.type="globstar",_.value+=h,_.output=D(n),d.output=_.output,d.globstar=!0,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&!re&&se()){d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,d.globstar=!0,d.output+=y.output+_.output,le(h);continue}if(y.type==="slash"&&y.prev.type!=="bos"&&R[0]==="/"){let be=R[1]!==void 0?"|$":"";d.output=d.output.slice(0,-(y.output+_.output).length),y.output=`(?:${y.output}`,_.type="globstar",_.output=`${D(n)}${m}|${m}${be})`,_.value+=h,d.output+=y.output+_.output,d.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}if(y.type==="bos"&&R[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${m}|${D(n)}${m})`,d.output=_.output,d.globstar=!0,le(h+Ce()),w({type:"slash",value:"/",output:""});continue}d.output=d.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,d.output+=_.output,d.globstar=!0,le(h);continue}let J={type:"star",value:h,output:H};if(n.bash===!0){J.output=".*?",(_.type==="bos"||_.type==="slash")&&(J.output=b+J.output),w(J);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){J.output=h,w(J);continue}(d.index===d.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(d.output+=A,_.output+=A):n.dot===!0?(d.output+=T,_.output+=T):(d.output+=b,_.output+=b),F()!=="*"&&(d.output+=g,_.output+=g)),w(J)}for(;d.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","]"));d.output=oe.escapeLast(d.output,"["),Fe("brackets")}for(;d.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing",")"));d.output=oe.escapeLast(d.output,"("),Fe("parens")}for(;d.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(St("closing","}"));d.output=oe.escapeLast(d.output,"{"),Fe("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.type==="bracket")&&w({type:"maybe_slash",value:"",output:`${m}?`}),d.backtrack===!0){d.output="";for(let R of d.tokens)d.output+=R.output!=null?R.output:R.value,R.suffix&&(d.output+=R.suffix)}return d};$o.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(Qn,n.maxLength):Qn,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=Qu[e]||e;let s=oe.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:u,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:m,START_ANCHOR:g}=Yt.globChars(s),S=n.dot?p:l,C=n.dot?f:l,A=n.capture?"":"?:",T={negated:!1,prefix:""},x=n.bash===!0?".*?":m;n.capture&&(x=`(${x})`);let M=b=>b.noglobstar===!0?x:`(${A}(?:(?!${g}${b.dot?u:i}).)*?)`,k=b=>{switch(b){case"*":return`${S}${c}${x}`;case".*":return`${i}${c}${x}`;case"*.*":return`${S}${x}${i}${c}${x}`;case"*/*":return`${S}${x}${a}${c}${C}${x}`;case"**":return S+M(n);case"**/*":return`(?:${S}${M(n)}${a})?${C}${c}${x}`;case"**/*.*":return`(?:${S}${M(n)}${a})?${C}${x}${i}${c}${x}`;case"**/.*":return`(?:${S}${M(n)}${a})?${i}${c}${x}`;default:{let N=/^(.*?)\.(\w+)$/.exec(b);if(!N)return;let H=k(N[1]);return H?H+i+N[2]:void 0}}},K=oe.removePrefix(e,T),D=k(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};nl.exports=$o});var sl=W((Cx,ol)=>{"use strict";var IE=$e("path"),bE=Zu(),jo=rl(),Bo=Vt(),xE=Wt(),OE=e=>e&&typeof e=="object"&&!Array.isArray(e),Q=(e,t,n=!1)=>{if(Array.isArray(e)){let l=e.map(f=>Q(f,t,n));return f=>{for(let m of l){let g=m(f);if(g)return g}return!1}}let r=OE(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let o=t||{},s=Bo.isWindows(t),i=r?Q.compileRe(e,t):Q.makeRe(e,t,!1,!0),a=i.state;delete i.state;let c=()=>!1;if(o.ignore){let l={...t,ignore:null,onMatch:null,onResult:null};c=Q(o.ignore,l,n)}let u=(l,p=!1)=>{let{isMatch:f,match:m,output:g}=Q.test(l,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:l,output:g,match:m,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,p?S:!1):c(l)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,p?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),p?S:!0)};return n&&(u.state=a),u};Q.test=(e,t,n,{glob:r,posix:o}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=n||{},i=s.format||(o?Bo.toPosixSlashes:null),a=e===r,c=a&&i?i(e):e;return a===!1&&(c=i?i(e):e,a=c===r),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Q.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};Q.matchBase=(e,t,n,r=Bo.isWindows(n))=>(t instanceof RegExp?t:Q.makeRe(t,n)).test(IE.basename(e));Q.isMatch=(e,t,n)=>Q(t,n)(e);Q.parse=(e,t)=>Array.isArray(e)?e.map(n=>Q.parse(n,t)):jo(e,{...t,fastpaths:!1});Q.scan=(e,t)=>bE(e,t);Q.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let o=t||{},s=o.contains?"":"^",i=o.contains?"":"$",a=`${s}(?:${e.output})${i}`;e&&e.negated===!0&&(a=`^(?!${a}).*$`);let c=Q.toRegex(a,t);return r===!0&&(c.state=e),c};Q.makeRe=(e,t={},n=!1,r=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(o.output=jo.fastpaths(e,t)),o.output||(o=jo(e,t)),Q.compileRe(o,t,n,r)};Q.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(n){if(t&&t.debug===!0)throw n;return/$^/}};Q.constants=xE;ol.exports=Q});var al=W((Ax,il)=>{"use strict";il.exports=sl()});var dl=W((Ix,pl)=>{"use strict";var ul=$e("util"),ll=Fu(),Pe=al(),Ko=Vt(),cl=e=>e===""||e==="./",fl=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},V=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=l=>{s.add(l.output),n&&n.onResult&&n.onResult(l)};for(let l=0;l<t.length;l++){let p=Pe(String(t[l]),{...n,onResult:a},!0),f=p.state.negated||p.state.negatedExtglob;f&&i++;for(let m of e){let g=p(m,!0);(f?!g.isMatch:g.isMatch)&&(f?r.add(g.output):(r.delete(g.output),o.add(g.output)))}}let u=(i===t.length?[...s]:[...o]).filter(l=>!r.has(l));if(n&&u.length===0){if(n.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(n.nonull===!0||n.nullglob===!0)return n.unescape?t.map(l=>l.replace(/\\/g,"")):t}return u};V.match=V;V.matcher=(e,t)=>Pe(e,t);V.isMatch=(e,t,n)=>Pe(t,n)(e);V.any=V.isMatch;V.not=(e,t,n={})=>{t=[].concat(t).map(String);let r=new Set,o=[],s=a=>{n.onResult&&n.onResult(a),o.push(a.output)},i=new Set(V(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};V.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ul.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>V.contains(e,r,n));if(typeof t=="string"){if(cl(e)||cl(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return V.isMatch(e,t,{...n,contains:!0})};V.matchKeys=(e,t,n)=>{if(!Ko.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=V(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};V.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(r.some(i=>s(i)))return!0}return!1};V.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Pe(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};V.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ul.inspect(e)}"`);return[].concat(t).every(r=>Pe(r,n)(e))};V.capture=(e,t,n)=>{let r=Ko.isWindows(n),s=Pe.makeRe(String(e),{...n,capture:!0}).exec(r?Ko.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};V.makeRe=(...e)=>Pe.makeRe(...e);V.scan=(...e)=>Pe.scan(...e);V.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of ll(String(r),t))n.push(Pe.parse(o,t));return n};V.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!fl(e)?[e]:ll(e,t)};V.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return V.braces(e,{...t,expand:!0})};V.hasBraces=fl;pl.exports=V});import{existsSync as kp,readFileSync as Pp}from"node:fs";import{hostname as js,userInfo as Np}from"node:os";import{createHash as yp,randomBytes as Rp}from"node:crypto";import{existsSync as hr,mkdirSync as Cp,readdirSync as Ap,readFileSync as Ip,renameSync as ws,statSync as Hs,unlinkSync as Ms,writeFileSync as bp}from"node:fs";import{basename as xp,dirname as Ls,join as Us,relative as Op}from"node:path";function O(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
14
|
+
`)}function Ot(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Tt(e){return yp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){Cp(Ls(e),{recursive:!0});let n=Us(Ls(e),`.${xp(e)}.${process.pid}.${Rp(4).toString("hex")}.tmp`);try{bp(n,t,"utf8");try{ws(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Ms(e),ws(n,e);return}throw r}}catch(r){try{Ms(n)}catch{}throw r}}function ln(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Sr(){process.stdout.write('{"continue":true}')}function L(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Er(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>{e(t)}),process.stdin.on("error",()=>{e(t)}),process.stdin.resume()})}async function fn(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function Ee(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,u=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:u,spawnFailed:u===void 0}}}async function ee(e,t,n=3e3,r={}){let o=await Ee(e,t,n,r);return o.ok?o.stdout:""}async function yr(e=process.cwd()){let t=await Ee("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(L("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;O(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=L("CURSOR_PROJECT_DIR")??L("CLAUDE_PROJECT_DIR");if(n&&hr(n)){let r=await Ee("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function Rr(e=process.cwd()){return(await yr(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var vs=new Map;function pn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Tp(e){let t;try{t=Ip(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(pn(t))}}catch{return{ok:!1,reason:"parse"}}}function Ds(e){let t=vs.get(e);if(t!==void 0)return t;let n=Tp(e);return vs.set(e,n),n}function Fs(e){return Ds(e)}function te(e,t){let n=Ds(e);return n.ok?n.value:t}function qe(e){return typeof e=="string"?e:""}function Me(e,t){let n=e[t];if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(!t.includes("."))return;let r=t.split("."),o=e;for(let s of r){if(o===null||typeof o!="object"||Array.isArray(o))return;o=o[s]}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}function v(e,t){let n=Me(e,t);return typeof n=="string"?n:""}var Be=500;function $s(e,t=2){if(!hr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Ap(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=Us(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:Op(e,u),size:Hs(u).size})}catch{continue}if(n.length>=Be){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Cr(e){return hr(e)?{present:!0,size:Hs(e).size}:{present:!1,size:0}}function lt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Bs(e=process.env){return lt(Y("CURSOR_SANDBOX",e))}var wp=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Mp(e){return wp.some(t=>!!Y(t,e))}function Lp(e){if(Y("KUBERNETES_SERVICE_HOST",e)||lt(Y("REMOTE_CONTAINERS",e))||lt(Y("DEVCONTAINER",e)))return!0;try{if(kp("/.dockerenv")||Pp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Ks(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!Y(t,e))}function vp(e,t=process.platform){return Ks(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!Y(n,e)):!1}function Hp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Up(e){return e==="linux"}function Y(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return L(e)}function Dp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Fp(Y("CURSOR_VERSION",n))}function Fp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Ar(e){if(Hp(e.sessionId))return!0;let t=e.hostname??js(),n=e.osUser??zs(e.env);return Dp(t,n,e.env)}function $p(e){return lt(Y("CURSOR_AGENT",e.env))?!0:Ar(e)}function jp(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(Y("TERM",e)??Y("TERM_PROGRAM",e))||(Y("SSH_TTY",e)??Y("SSH_CONNECTION",e))||(Y("__CFBundleIdentifier",e)??Y("XPC_SERVICE_NAME",e))||Ks(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!Y(t,e))||Y("SESSIONNAME",e))}function kt(e={}){let t=e.env;if(Y("GITHUB_ACTIONS",t))return"github_actions";if(lt(Y("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!vp(t,n)&&$p(e)&&(lt(Y("CURSOR_AGENT",t))||Up(n)))return"cursor_cloud";if(Y("CODESPACES",t)||Y("CODESPACE_NAME",t))return"codespaces";if(Y("GITLAB_CI",t))return"gitlab_ci";if(Mp(t))return"managed";let r=Y("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Lp(t)?"container":jp(t)?"interactive":"unknown"}async function Gs(){return await ee("systemd-detect-virt",[],1e3)}function zs(e=process.env,t=Np){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function Ws(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await ee("sw_vers",["-productVersion"],1e3);else if(process.platform==="linux"){try{let{readFileSync:s}=await import("node:fs"),i=s("/etc/os-release","utf8"),a=i.match(/^PRETTY_NAME="?([^"\n]+)"?/m)?.[1],c=i.match(/^VERSION_ID="?([^"\n]+)"?/m)?.[1];t=a??c??""}catch{t=await ee("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await ee("uname",["-r"],1e3))}else t=await ee("ver",[],1e3);let n=zs(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await ee("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function dn(){return js()}import{createHash as Bp}from"node:crypto";import{homedir as Kp}from"node:os";import{dirname as pA,join as Gp,parse as dA,resolve as mA}from"node:path";var Vs="EV_AI_LAUNCHER_VERSION";var Js="EV_AI_HOOK_SOURCE",Ys="EV_AI_HOOK_FALLBACK_REASON",Xs="EV_AI_LAUNCHER_SCOPE",Ir="EV_AI_LAUNCHER_READY_FD";var qs="--defer-user-spec",mn="--cap",Zs=Buffer.from([1]);var nA=1024*1024,rA=4*1024*1024,oA=64*1024,sA=64*1024,iA=64*1024;var br=4096,aA=4*1024*1024;var ti="https://hooks.ev-ai.ai",ni=".claude/ev-ai-runtime-report.json",ri="config.json",zp="max_concurrent_hooks",hA=1024*1024,Wp=new Set(["localhost","127.0.0.1","[::1]","::1"]),Vp=["claude","cursor","codex"],oi=[ni,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],xr=/^[A-Za-z0-9._~-]+$/;function gn(e){return e!==void 0&&Vp.includes(e)}function si(e){if(!e||typeof e!="object")return;let t=e[zp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function Qs(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Pt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Or(e){let t,n,r,o,s,i;for(let a=0;a<e.length;a++){let c=e[a];if(c!==void 0){if(c==="--runner"){let u=Pt(e,a);t=u.value,a=u.next;continue}if(c.startsWith("--runner=")){t=c.slice(9);continue}if(c==="--url"){let u=Pt(e,a);u.value&&(r=u.value),a=u.next;continue}if(c.startsWith("--url=")){r=c.slice(6);continue}if(c==="--token"){let u=Pt(e,a);u.value&&(o=u.value),a=u.next;continue}if(c.startsWith("--token=")){o=c.slice(8);continue}if(c==="--base-url"){let u=Pt(e,a);u.value&&(s=u.value),a=u.next;continue}if(c.startsWith("--base-url=")){s=c.slice(11);continue}if(c===mn){let u=Pt(e,a);i=Qs(u.value)??i,a=u.next;continue}if(c.startsWith(`${mn}=`)){i=Qs(c.slice(mn.length+1))??i;continue}c!==qs&&!c.startsWith("-")&&n===void 0&&(n=c)}}return{runner:gn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{}}}function _n(e,t=ti){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Nt(e=Kp()){return Gp(e,".ev-ai",ri)}function ii(e,t){return{...e,...t}}function ei(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<=32||n===127||n===39)return!0}return!1}function hn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Wp.has(t.hostname):!1}catch{return!1}}function Tr(e){try{let n=new URL(e).pathname.split("/").filter(r=>r.length>0);if(n.length>=2&&n[n.length-1]==="hook"){let r=n[n.length-2];return r&&r.length>0?r:void 0}return}catch{return}}function kr(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!hn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Tr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!xr.test(n))return`org token must match ${xr.source} (got: ${n})`;if(ei(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(ei(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function ai(e){return new URL(e).toString()}function Pr(e){if(e.collector_url)return e.collector_url;let t=e.repo_ingest_token,n=typeof t=="string"?t.trim():void 0;return n?_n(n):""}function Sn(e){try{let t=new URL(e),n=t.pathname.split("/").filter(r=>r.length>0);return n.length>=2&&n[n.length-1]==="hook"&&(n[n.length-2]="***",t.pathname=`/${n.join("/")}`),t.toString()}catch{return"<invalid-url>"}}function ci(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=_n(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=kr(n);return r?{problem:r}:{url:ai(n)}}function wt(e){if(kr(e))return;let t;try{t=new URL(e)}catch{return}let n=Tr(e);if(!n)return;let o=t.pathname.split("/").filter(a=>a.length>0).slice(0,-2),s=o.length>0?`/${o.join("/")}`:"",i=`${t.origin}${s}/${n}`;return Bp("sha256").update(i).digest("hex").slice(0,32)}var yn=2;var En="ev-ai-agent-hook";function Jp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function ui(e){let t=Jp(e);return t===En||t===`${En}.exe`}var EA=`current/${En}`,yA=`.ev-ai/agent-hook/${En}`,li=5e3,fi=5e3,Nr=3e3;var Rn=3e3,pi=1500,di=4*1024,wr=256*1024,Yp=4*1024,mi=32*1024,Mr="1.3.3",RA=`@ev-ai/agent-hook@${Mr}`;import{existsSync as a_,mkdirSync as c_,readdirSync as u_,readFileSync as l_,unlinkSync as Ga,writeFileSync as f_}from"node:fs";import{homedir as za}from"node:os";import{join as eo}from"node:path";import{createHash as Ei,randomBytes as Zp}from"node:crypto";import{existsSync as yi,mkdirSync as Lr,readFileSync as Ri,unlinkSync as Ci,writeFileSync as Ai}from"node:fs";import{homedir as vr}from"node:os";import{dirname as Cn,join as Hr,resolve as Qp}from"node:path";var Xp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),qp=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function fe(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||qp.has(n)||r.includes("[bot]")||Xp.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var ed="installation.json",td="cloud-bootstrap.lock",nd=6e4;function Ii(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function pe(e=vr()){return Hr(e,".ev-ai","agent-hook")}function rd(e=vr()){return Hr(pe(e),ed)}function bi(e){return Hr(Cn(e),td)}function xi(){return Zp(8).toString("hex")}function ft(e){return Ei("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Oi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function od(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Oi(t)){O(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Ti(e,t){return e&&Oi(e)?e:(e&&O(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),od(t))}function sd(e){return/^[0-9a-f]{16}$/.test(e)}function id(e=process.env){if($(e.GITHUB_ACTIONS)){let t=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),n=$(e.GITHUB_ACTOR)??$(e.GITHUB_TRIGGERING_ACTOR)??$(e.GITHUB_USER);if(t&&n)return ft(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return ft(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return ft(`codespaces|${n}|${r}`)}if($(e.GITLAB_CI)){let t=$(e.CI_PROJECT_ID)??$(e.CI_PROJECT_PATH),n=$(e.GITLAB_USER_LOGIN)??$(e.GITLAB_USER_EMAIL)??$(e.GITLAB_USER_NAME);if(t&&n)return ft(`gitlab|${t}|${n}`)}return null}var ad="cursoragent@cursor.com";function cd(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===ad?null:t}function ud(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function ld(e){return Ot(e).replace(/\.git$/i,"").toLowerCase()}async function fd(e){let t=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?ld(t):e}async function pd(e){let t=$(await ee("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!fe(null,t))return t;let n=$(await ee("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!fe(null,n)?n:null}function dd(e,t){let n=ud(e,t);return n?ft(`cursor_cloud|${n}|${cd(e)??""}`):null}async function md(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await fd(n),o=await pd(n);return ft(`claude_remote|${r}|${o??""}`)}function gi(e,t){let n=Ti(e,t);if(n)return n;let r=id(t);return r||xi()}async function gd(e){let n=await ee("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Qp(e);return Ei("sha256").update(n).digest("hex").slice(0,16)}function _d(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&r.length>0&&(t[n]=r);return Object.keys(t).length>0?t:void 0}function hd(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=_d(t.platform_agent_ids);return{installation_id:t.installation_id,...t.pinned===!0?{pinned:!0}:{},...n?{platform_agent_ids:n}:{},...typeof t.operator_identity_hash=="string"?{operator_identity_hash:t.operator_identity_hash}:{},...typeof t.operator_identity_sent_at=="string"?{operator_identity_sent_at:t.operator_identity_sent_at}:{}}}catch{return}}function Ze(e){if(yi(e))try{return hd(Ri(e,"utf8"))}catch{}}function Ur(e){return Ze(e)}function ki(e,t,n){let r=Ze(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{me(e,`${JSON.stringify(o,null,2)}
|
|
15
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: operator identity cache write failed open: ${i}`)}}function Pi(e,t=Date.now()){if(!e)return!0;if(Ze(e)?.operator_identity_hash)return!1;let n=bi(e);try{if(yi(n)){let r=Number.NaN;try{r=Number(Ri(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<nd)return!1;try{Ci(n)}catch{}}}catch{}try{return Lr(Cn(n),{recursive:!0}),Ai(n,`${t}
|
|
16
|
+
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Li(r))return!1;let o=r instanceof Error?r.message:String(r);return O(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function Ni(e){if(e)try{Ci(bi(e))}catch{}}function wi(e,t){let r=Ze(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function Mi(e,t,n){if(!n)return;let r=Ze(e);if(!r||r.platform_agent_ids?.[t]===n)return;let o={installation_id:r.installation_id,platform_agent_ids:{...r.platform_agent_ids,[t]:n},...r.operator_identity_hash?{operator_identity_hash:r.operator_identity_hash}:{},...r.operator_identity_sent_at?{operator_identity_sent_at:r.operator_identity_sent_at}:{}};try{me(e,`${JSON.stringify(o,null,2)}
|
|
17
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);O(`WARN: platform_agent_id cache write failed open: ${i}`)}}function Li(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Sd(e,t){Lr(Cn(e),{recursive:!0}),Ai(e,`${JSON.stringify(t,null,2)}
|
|
18
|
+
`,{encoding:"utf8",flag:"wx"})}function _i(e,t){try{return Sd(e,t),t}catch(n){if(!Li(n))throw n;return Ze(e)}}function hi(e,t){Lr(Cn(e),{recursive:!0}),me(e,`${JSON.stringify(t,null,2)}
|
|
19
|
+
`)}function Si(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function vi(e,t={}){let n=t.home??vr(),r=t.env??process.env,o=await gd(e),s=rd(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=kt(i),c=Ti(t.overrideId,r),u=a==="cursor_cloud"&&Ar(i)?dd(r,e):a==="claude_remote"?await md(r,e):null,l=Ze(s);if(l){let S=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(S={...l,pinned:!0},hi(s,S)),!!u&&u!==S.installation_id&&!c&&S.pinned!==!0&&sd(S.installation_id)&&u){let A={installation_id:u,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return hi(s,A),{installationId:u,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??u??gi(void 0,r),f=_i(s,Si(p,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let m=c??u??gi(void 0,r),g=_i(s,Si(m===p?xi():m,c));if(g)return{installationId:g.installation_id,storePath:s,repoKey:o};throw new Error(`Failed to create installation record at ${s}`)}import{open as Hi,mkdir as Ed,readFile as yd,readdir as Rd,rename as Cd,stat as Ad,rmdir as Id,unlink as bd,utimes as xd}from"node:fs/promises";var An=new WeakMap;function Di(e){if(e&&typeof e=="object"&&"code"in e)return e}function Mt(e){return Di(e)?.code==="ENOENT"}function In(e){return Di(e)?.code==="EEXIST"}async function Fi(e,t){try{return await e.readdir(t)}catch(n){if(Mt(n))return[];throw n}}function $i(){return{async open(e,t){let n=await Hi(e,t),r={path:e};return An.set(r,n),r},async write(e,t){let n=Ui(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Ui(e).sync()},async close(e){let t=An.get(e);An.delete(e),t&&await t.close()},rename:Cd,async readdir(e){return Rd(e)},readFile:yd,async stat(e){let t=await Ad(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Ed(e,t)},unlink:bd,rmdir:Id,utimes:xd,async fsyncDir(e){if(process.platform==="win32")return;let t=await Hi(e,"r");try{await t.sync()}finally{await t.close()}}}}function Ui(e){let t=An.get(e);if(!t)throw new Error("closed");return t}import{existsSync as Kd}from"node:fs";import{existsSync as Md}from"node:fs";import{homedir as Ki}from"node:os";import{join as Ld}from"node:path";import{existsSync as Od,readdirSync as ji}from"node:fs";import{homedir as bn}from"node:os";import{join as ie}from"node:path";function Td(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ie(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function kd(e=process.platform){let t=Td(e),n=[ie(t,"managed-settings.json")],r=ie(t,"managed-settings.d");try{if(!Od(r))return n;let o=ji(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ie(r,s));n.push(...o)}catch{}return n}function Dr(e=process.platform,t=bn()){return{serverManaged:ie(t,".claude","remote-settings.json"),fileBased:kd(e)}}function Pd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ie(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Nd(e=process.platform,t=bn()){let n=[ie(Pd(e),"hooks.json")],r=ie(t,".cursor","managed");try{for(let o of ji(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ie(r,o.name,"hooks.json"))}catch{}return n}function wd(e=process.platform,t=bn()){let n=e==="win32"?ie(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ie(n,"requirements.toml")];return e!=="win32"&&r.push(ie(n,"managed_config.toml")),r.push(ie(t,".codex","managed_config.toml"),ie(n,"config.toml")),r}function xn(e,t=process.platform,n=bn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Dr(t,n);return[r,...o]}case"cursor":return Nd(t,n);default:return wd(t,n)}}function Gi(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var vd={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function Bi(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Hd(e,t={}){let{shared:n}=e;return{skillRoots:[...n.skillRoots,...t.skillRoots??[]],dirs:n.dirs,memory:[...n.memory,...t.memory??[]],settings:[...n.settings,...t.settings??[]],mcpJson:Bi(n.mcpJson,t.mcpJson),mcpToml:Bi(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function zi(e){return Object.fromEntries(Object.entries(vd).map(([t,n])=>[t,Hd(n,n[e])]))}var pt=zi("homeOnly"),Ge=zi("projectOnly");function Ud(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Dd(e,t){return Ud(e).some(n=>Md(Ld(t,n)))}function Wi(e,t){for(let n of e)if(Dd(n,t))return!0;return!1}function Ke(e){return[...new Set(e)]}function ze(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let u of c.dirs)u.kind==="SUBAGENT"?n.push(u.dir):u.kind==="COMMAND"?r.push(u.dir):o.push(u.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:Ke(t),subagents:Ke(n),commands:Ke(r),rules:Ke(o),memory:Ke(s),settings:Ke(i),mcp:Ke(a)}}function Fd(e,t=Ki(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...xn(o.managed,n,t));return Ke(r)}var We=ze(Object.values(pt));function Vi(e=Ki(),t=process.platform){return Fd(Object.values(pt),e,t)}import{existsSync as $d}from"node:fs";import{resolve as Fr}from"node:path";function _e(e){return Fr(e).replaceAll("\\","/").replace(/\/$/,"")}function Qe(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function On(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var jd=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Lt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!jd.test(t)?null:t}function dt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=_e(o);n.has(s)||(n.add(s),r.push(s))}return r}function Bd(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function xe(e,t,n,r=$d){for(let o of e)for(let s of t){let i=_e(Fr(o,s)),a=Fr(o,s,n).replaceAll("\\","/");if(Bd(i,a)&&r(a))return a}return null}var Yi=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,Xi=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,Gd=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Ji=new Set(["applications","app","bin","boot","data","dev","etc","home","lib","media","mnt","node_modules","opt","pkg","private","proc","projects","repos","run","sbin","src","srv","sys","tmp","usr","users","var","volumes","workspace","workspaces"]),zd=/^[a-z][a-z0-9-]{1,63}$/,Wd=[".cursor/skills",".claude/skills",".agents/skills"],Vd=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],Jd=Qe(Wd,ze(Object.values(Ge)).skills),Yd=Qe(Vd,ze(Object.values(pt)).skills),Xd=new Set(["read","read_file","view"]),qd=new Set(["bash","shell","zsh"]);function $r(e){let t=e.replace(/\\/g,"/");return Yi.exec(t)?.[1]??null}function Zd(e){let t=e.replace(/\\/g,"/"),r=Xi.exec(t)?.[1];return r?r.toLowerCase():null}function Qd(e){return $r(e)??Zd(e)}function em(e){for(let t of["path","file_path","target_file"]){let n=e[t];if(typeof n=="string"&&n.length>0)return n}return null}function Tn(e){return typeof e=="string"?Tn(ge(e,null)):!e||typeof e!="object"?null:em(e)}function qi(e){if(typeof e=="string")return qi(ge(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function jr(e){let t=qi(e.tool_input);if(t)return t;let n=qe(e.command);return n.length>0?n:null}function tm(e){let t=e.replace(/\\/g,"/"),n=Yi.exec(t);if(n?.[1])return n[1];let o=Xi.exec(t)?.[1];return o?o.toLowerCase():null}function nm(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Br(e){let t=Tn(e.tool_input)??qe(e.file_path);return t.length>0?t:null}function vt(e,t,n){let r=nm(e).toLowerCase();if(Xd.has(r)){let o=Br(e);return o?t(o):null}if(qd.has(r)){let o=jr(e);return o?n(o):null}return null}function Zi(e){return vt(e,Qd,tm)}function rm(e){let t=new Set,n=[];for(let r of e.matchAll(Gd)){let o=r[1]?.toLowerCase();!o||t.has(o)||om(o)||(t.add(o),n.push(o))}return n}function om(e){let t=e.split("/")[0];return Ji.has(e)||t!==void 0&&Ji.has(t)}function Qi(e){let t=e.skillId.toLowerCase();if(!zd.test(t))return null;let n=e.exists??Kd,r=`${t}/SKILL.md`,o=xe(dt(e.launchCwd,e.gitRoot),Jd,r,n);return o!==null?o:e.home?xe([_e(e.home)],Yd,r,n):null}function sm(e){return qe(e.prompt)}function ea(e){let t=v(e,"command_name");if(t){let r=v(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=sm(e);return n?rm(n):[]}var Jr=je(Je(),1);import{existsSync as wg}from"node:fs";var tt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Ut(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Ng(e){if(!e)return"";let t=Ot(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Ut(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Ut(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Ut(o[1]):Ut(t)}async function vn(e=process.cwd()){let t=await Ee("git",["rev-parse","--is-inside-work-tree"],2e3,{cwd:e});if(!t.ok||t.stdout!=="true")return null;let[n,r,o,s]=await Promise.all([Ee("git",["remote","get-url","origin"],2e3,{cwd:e}),Ee("git",["branch","--show-current"],2e3,{cwd:e}),Ee("git",["rev-parse","HEAD"],2e3,{cwd:e}),Ee("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?Ot(n.stdout):null,branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function ba(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=tt[n];if(!a)return"";let c=Ii(n,e.scope_path,i);if(s){let g=wi(s,c);if(g)return g}let u=o??await vn(r),l=u?.remote?Ng(u.remote):"";if(l||(l=Ut(process.env.GITHUB_REPOSITORY??"")),!l)return"";let p=e.scope_path??"",f=p?`${p}/`:"",m=`${l}:${f}${a}`;return s&&Mi(s,c,m),m}var Mg=[".cursor/rules",".claude/rules",".codex/rules"],Lg=ze(Object.values(Ge)).rules;function vg(e){return Qe(On(e?tt[e]:void 0,Mg),Lg)}var Hg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function xa(e){let t=Lt(e.relativePath);if(!t)return null;let n=e.exists??wg,r=dt(e.launchCwd,e.gitRoot),o=vg(e.runnerPlatform),s=xe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=xe(r,["."],t,n);if(i!==null)return i}return e.home?xe([_e(e.home)],o,t,n):null}function Ug(e){let t=e.replace(/\\/g,"/"),r=Hg.exec(t)?.[1];return r?(0,Jr.nativeKeyForRulePath)(r):null}function Oa(e){return vt(e,Jr.nativeKeyForRulePath,Ug)}function Ta(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function ka(e){let t=e.attachments;if(!Array.isArray(t))return[];let n=new Set,r=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o;if(s.type!=="rule")continue;let i=typeof s.file_path=="string"?s.file_path:"",a=Lt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Yr=je(Je(),1);import{existsSync as Dg}from"node:fs";var Fg=[".cursor/commands",".claude/commands",".codex/prompts"],$g=ze(Object.values(Ge)).commands;function jg(e){return Qe(On(e?tt[e]:void 0,Fg),$g)}var Bg=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function Pa(e){let t=Lt(e.commandId);if(!t)return null;let n=e.exists??Dg,r=`${t}.md`,o=jg(e.runnerPlatform),s=xe(dt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?xe([_e(e.home)],o,r,n):null}function Kg(e){let t=e.replace(/\\/g,"/"),r=Bg.exec(t)?.[1];return r?(0,Yr.nativeKeyForCommandPath)(r):null}function Na(e){return vt(e,Yr.nativeKeyForCommandPath,Kg)}var Hn=je(Je(),1);function Xr(e){let t=ci(e);if(t.problem){O(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function wa(e,t){if(v(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function Gg(){return!!(L("CURSOR_VERSION")??L("CURSOR_PROJECT_DIR"))}function Ma(e,t,n){return e!=="claude"&&e!=="codex"?!1:wa(t,n)?!0:Gg()}var zg=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Dt(e,t,n,r){return wa(e,t)?"cursor":gn(r)?r:gn(n)?n:v(e,"turn_id")?"codex":v(e,"session_id")||zg.has(t.toLowerCase())?"claude":"unknown"}function Un(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function Wg(e){switch(e){case"sessionstart":return"session_start";case"stop":case"sessionend":case"stopfailure":return"session_end";case"pretooluse":case"posttooluse":case"posttoolusefailure":case"permissiondenied":case"beforemcpexecution":case"beforeshellexecution":case"aftershellexecution":case"beforereadfile":case"afterfileedit":case"subagentstart":case"subagentstop":return"tool_invoked";case"beforesubmitprompt":case"userpromptexpansion":case"userpromptsubmit":return"skill_invoked";default:return""}}function La(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function va(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Ha(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Ft(e){return v(e,"session_id")||v(e,"conversation_id")}function qr(e){return v(e,"prompt.id")||v(e,"prompt_id")||v(e,"generation_id")||v(e,"turn_id")}function Zr(e){return v(e,"hook_event_name")||v(e,"event")}function Ua(e,t,n){let r=Ft(e),o=qr(e),s=Zr(e),i=v(e,"source"),a=Dt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var Vg=["session_start","session_end","tool_invoked","skill_invoked"];function Jg(e){return Vg.includes(e)}function Qr(e,t){return e&&Jg(e)?e:Wg(t.toLowerCase())}var Yg={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Dn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Da(e,t=""){let n=v(e,"tool_name")||v(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Dn(n)&&(n=`MCP:${n}`):n=Yg[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?qe(o.skill)||qe(o.skill_name):"")||v(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Zi(a);let c=Oa(a),u=Na(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var Xg=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Fa(e){for(let t of["subagent_type","agent_type"]){let n=v(e,t);if(n&&Xg.test(n))return n}return null}function $a(e){let t=Me(e,"duration_ms");if(typeof t=="number")return t;let n=Me(e,"duration");return typeof n=="number"?n:null}var qg="error",Zg="interrupted",Qg="permission_denied",e_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function $t(e){return e_.test(e)?e:null}function t_(e){for(let t of["failure_type","error_type"]){let n=$t(v(e,t));if(n)return n}return null}function ja(e,t){return Me(e,"is_interrupt")===!0?Zg:t.toLowerCase()==="permissiondenied"?Qg:t_(e)??qg}function Ba(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function n_(e,t){return Ba(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function r_(e,t){return Ba(t,n=>(0,Hn.mcpServerNameMatchesToolSegment)(n,e))}function o_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Hn.mcpServerToolSegmentForms)(s)){let a=`${i}__`;e.length>a.length&&e.slice(0,a.length).toLowerCase()===a.toLowerCase()&&i.length>r&&(n={mcpServer:s,mcpTool:e.slice(a.length)},r=i.length)}if(n!==null)return n;let o=/^(.+?)__(.+)$/.exec(e);return!o?.[1]||!o[2]?{mcpServer:null,mcpTool:null}:{mcpServer:r_(o[1],t)??o[1],mcpTool:o[2]}}function s_(e,t){if(/^mcp__/i.test(e))return o_(e.slice(5),t);if(/^MCP:/i.test(e)){let n=e.slice(4);if(!n)return{mcpServer:null,mcpTool:null};let r=n.indexOf(":");if(r>0)return{mcpServer:n.slice(0,r),mcpTool:n.slice(r+1)||null};let o=n.indexOf("__");return o>0?{mcpServer:n.slice(0,o),mcpTool:n.slice(o+2)||null}:{mcpServer:n_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function i_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Ka(e,t=[],n=""){let r=e?s_(e,t):{mcpServer:null,mcpTool:null},o=$t(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Dn(e)&&(s=e),s&&(s=i_(s,o)),{mcpServer:o,mcpTool:s}}var Wa=3e4,p_="claims",d_=!0,m_=100,g_=new Set(["sessionstart","sessionend","stopfailure"]),__=["tool_name","tool","command","file_path","url"];function h_(e=za()){return eo(pe(e),p_)}function Va(e,t){try{let n=l_(e,"utf8").split(`
|
|
20
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function S_(e){let t=[];for(let n of __){let r=v(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":Tt(t.join("\0"))}function E_(e){let t=e.sessionId.trim();if(!t)return;let n=e.runnerEvent.trim().toLowerCase(),r=e.turnId.trim(),o=e.toolUseId.trim(),s=e.subagentId?.trim()??"",i=e.callFingerprint?.trim()??"",a=!!(o||r||s),c=g_.has(n);if(!a&&!c)return;let u=e.runnerPlatform.trim()||"unknown";return Tt(`${u}|${t}|${n}|${r}|${o}|${i}|${s}`)}function y_(e,t=Date.now()){let n;try{n=u_(e)}catch{return}let r=0;for(let o of n){if(r>=m_)break;r+=1;let s=eo(e,o),i=Va(s,t);if(!(!Number.isFinite(i)||i<Wa))try{Ga(s)}catch{}}}function R_(e,t,n=Date.now()){let r=eo(t,e);try{if(a_(r)){let o=Va(r,n);if(Number.isFinite(o)&&o>=0&&o<Wa)return!1;try{Ga(r)}catch{}}}catch{}try{c_(t,{recursive:!0}),f_(r,`${n}
|
|
21
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(In(o))return!1;let s=o instanceof Error?o.message:String(o);return O(`WARN: event claim failed open: ${s}`),!0}return y_(t,n),!0}function C_(e,t,n){let r=Ft(e),o=qr(e),s=v(e,"tool_use_id"),i=v(e,"subagent_id")||v(e,"agent_id"),a=Dt(e,t,void 0,n),c=S_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function Ja(e,t,n,r=za(),o=Date.now()){if(!d_)return!0;let s=E_(C_(e,t,n));if(!s)return!0;let i=R_(s,h_(r),o);return!i&&L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{mkdirSync as A_,readFileSync as ec,statSync as I_,unlinkSync as tc,writeFileSync as b_}from"node:fs";import{homedir as nc}from"node:os";import{join as rc}from"node:path";var x_=4,O_=10;function Ya(e=process.platform){return e==="win32"?x_:O_}function oc(e){return e==="session_start"||e==="session_end"}var sc=6e4,to=2e3,T_="slots",no=new Set,Xa=!1;function ic(e=nc()){return rc(pe(e),T_)}function ro(e,t=nc(),n=process.platform){if(e!==void 0)return e>0?e:Ya(n);let r=te(Nt(t),{});return si(r)??Ya(n)}function k_(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function ac(e,t){return rc(e,`slot-${t}`)}function cc(e){return`${e.pid}
|
|
22
|
+
${e.acquiredAtMs}
|
|
23
|
+
`}var P_=/^(\d+)\n(\d+)\n$/,N_=64;function w_(e){let t=P_.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function uc(e,t=Date.now()){let n,r;try{let i=I_(e);if(!i.isFile())return!1;r=i.mtimeMs,n=i.size<=N_?ec(e,"utf8"):""}catch{return!1}let o=w_(n);if(!o)return Math.abs(t-r)<to;let s=t-o.acquiredAtMs;return s<-to||s>=sc?!1:k_(o.pid)}function lc(e,t=ic(),n=Date.now){for(let r=0;r<e;r+=1)if(!uc(ac(t,r),n()))return!0;return e<=0}function fc(e){return{pid:process.pid,acquiredAtMs:e}}function qa(e,t){let n=e instanceof Error?e.message:String(e);return O(`WARN: hook process slot failed open: ${n}`),fc(t)}function Za(e){return no.add(e),Xa||(Xa=!0,process.once("exit",()=>{for(let t of[...no])oo(t)})),e}function Qa(e){try{return b_(e.path,cc(e),{encoding:"utf8",flag:"wx",mode:384}),!0}catch(t){if(In(t))return!1;throw t}}function pc(e,t=ic(),n=Date.now){if(e<=0)return fc(n());let r;try{A_(t,{recursive:!0});for(let o=0;o<e;o+=1){let s={path:ac(t,o),pid:process.pid,acquiredAtMs:n()};if(Qa(s))return Za(s);if(!uc(s.path,n())){try{tc(s.path)}catch(i){if(!Mt(i)){r??=i;continue}}if(s.acquiredAtMs=n(),Qa(s))return Za(s)}}}catch(o){return qa(o,n())}return r===void 0?null:qa(r,n())}function oo(e,t=Date.now()){if(no.delete(e),!(!e.path||t-e.acquiredAtMs>=sc-to))try{ec(e.path,"utf8")===cc(e)&&tc(e.path)}catch{}}function so(e){L("EV_AI_HOOK_DEBUG")&&O(`DEBUG: hook process cap reached (${e}/${e}); event dropped`)}import{closeSync as M_,writeSync as L_}from"node:fs";function dc(e=process.env){let t=e[Ir];if(delete e[Ir],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{L_(n,Zs)}catch{}try{M_(n)}catch{}}}function io(e=process.env){let t=e[Vs];if(t)return{launcherVersion:t,hookSource:e[Js]??"",fallbackReason:e[Ys],launcherScope:e[Xs]}}function mc(e,t){return(e?wt(e):void 0)===t}import{realpathSync as oC}from"node:fs";import{homedir as sC}from"node:os";var B=je(Je(),1);import{existsSync as v_,readFileSync as H_}from"node:fs";import{homedir as gc}from"node:os";import{join as U_}from"node:path";var D_="cloud-cache.json",F_=1440*60*1e3,$_=900*1e3;function j_(e=gc()){return U_(pe(e),D_)}function B_(e){if(!v_(e))return;let t=ge(H_(e,"utf8"),{});if(!(typeof t.context!="string"||typeof t.probed_at!="number"||t.result!==null&&t.result!==void 0&&typeof t.result!="object"))return{context:t.context,probed_at:t.probed_at,result:t.result??null}}function K_(e,t){try{me(e,`${JSON.stringify(t)}
|
|
24
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: cloud cache write failed open: ${r}`)}}function G_(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?$_:F_;return n-e.probed_at<r}async function z_(e){let t=await fetch("http://169.254.169.254/latest/api/token",{method:"PUT",headers:{"X-aws-ec2-metadata-token-ttl-seconds":"60"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=(await t.text()).trim();if(!n)return;let r={"X-aws-ec2-metadata-token":n},[o,s]=await Promise.all([fetch("http://169.254.169.254/latest/meta-data/placement/region",{headers:r,signal:AbortSignal.timeout(e)}).catch(()=>{}),fetch("http://169.254.169.254/latest/meta-data/instance-id",{headers:r,signal:AbortSignal.timeout(e)}).catch(()=>{})]);if(!o?.ok&&!s?.ok)return;let i=o?.ok?(await o.text()).trim():"",a=s?.ok?(await s.text()).trim():"";if(!(!i&&!a))return{provider:"aws",region:i,instance_id:a}}async function W_(e){let t=await fetch("http://metadata.google.internal/computeMetadata/v1/instance/?recursive=true",{headers:{"Metadata-Flavor":"Google"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=await t.json(),r=typeof n.zone=="string"?n.zone.split("/").pop()??"":"",o=n.id===void 0?"":String(n.id);if(!(!r&&!o))return{provider:"gcp",region:r,instance_id:o}}async function V_(e){let t=await fetch("http://169.254.169.254/metadata/instance?api-version=2021-02-01",{headers:{Metadata:"true"},signal:AbortSignal.timeout(e)}).catch(()=>{});if(!t?.ok)return;let n=await t.json(),r=n.compute?.location??"",o=n.compute?.vmId??"";if(!(!r&&!o))return{provider:"azure",region:r,instance_id:o}}async function J_(e){let t=await Promise.allSettled([z_(e),W_(e),V_(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function _c(e,t){if(e==="interactive")return null;let n=t?.home??gc(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=j_(n),i=B_(s);if(G_(i,e,o))return i.result;let a=await J_(r);return K_(s,{context:e,probed_at:o,result:a}),a}var yc=je(Je(),1);import{existsSync as Sc}from"node:fs";import{homedir as Ec}from"node:os";import{join as jt,resolve as ao,sep as hc}from"node:path";function Fn(e,t,n){if(!Sc(e))return;let r=te(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function Y_(e,t,n){if(!Sc(e))return;let r=te(e,{}),o=ao(t),s=null;for(let a of Object.keys(r.projects??{})){let c=ao(a);(o===c||o.startsWith(c.endsWith(hc)?c:c+hc))&&(s===null||c.length>ao(s).length)&&(s=a)}if(s===null)return;let i=r.projects?.[s]?.mcpServers??{};for(let[a,c]of Object.entries(i))n.set(a,{declared:{name:a,source:"claude_json_project",sourcePath:".claude.json",scope:"user"},config:c})}function Rc(e,t,n,r){let o=new Map;for(let s of e.mcp_servers??[])s.name&&o.set(s.name,{declared:{name:s.name,source:"manifest"}});return n==="claude"?(Fn(jt(r,".claude.json"),{source:"claude_json_user"},o),Y_(jt(r,".claude.json"),t,o)):n==="cursor"&&Fn(jt(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),Fn(jt(t,".mcp.json"),{source:"mcp_json"},o),Fn(jt(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function co(e,t=process.cwd(),n="claude",r=Ec()){return[...Rc(e,t,n,r).values()].map(o=>o.declared)}function Cc(e,t,n=process.cwd(),r="claude",o=Ec()){let s=Rc(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,yc.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var X_=["CI","GITHUB_ACTIONS","GITLAB_CI","CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER","KUBERNETES_SERVICE_HOST","REMOTE_CONTAINERS","DEVCONTAINER","GITHUB_REPOSITORY","GITHUB_REPOSITORY_ID","GITHUB_REF","GITHUB_SHA","GITHUB_RUN_ID","GITHUB_WORKFLOW","GITHUB_ACTOR","GITHUB_TRIGGERING_ACTOR","GITHUB_ACTOR_ID","GITHUB_USER","GITLAB_USER_LOGIN","GITLAB_USER_NAME","GITLAB_USER_EMAIL","BUILD_REQUESTEDFOR","BUILD_REQUESTEDFOREMAIL","BUILD_REQUESTEDFORID","BUILDKITE_BUILD_CREATOR","BUILDKITE_BUILD_CREATOR_EMAIL","BUILD_USER","BUILD_USER_ID","BUILD_USER_EMAIL","CHANGE_AUTHOR","CHANGE_AUTHOR_EMAIL","CIRCLE_USERNAME","CODEBUILD_INITIATOR","DRONE_COMMIT_AUTHOR","DRONE_COMMIT_AUTHOR_NAME","DRONE_COMMIT_AUTHOR_EMAIL","EV_AI_HOOK_OPERATOR_NAME","EV_AI_HOOK_OPERATOR_EMAIL","EV_AI_HOOK_OPERATOR_LOGIN","GIT_AUTHOR_NAME","GIT_AUTHOR_EMAIL","GIT_COMMITTER_NAME","GIT_COMMITTER_EMAIL","EMAIL","RUNNER_OS","RUNNER_ARCH","NODE_ENV","TERM_PROGRAM","CLAUDE_CODE_REMOTE","CLAUDE_CODE_REMOTE_SESSION_ID","CURSOR_AGENT","CURSOR_VERSION","CURSOR_CODE_REMOTE","CURSOR_USER_EMAIL","CODESPACES","CODESPACE_NAME","ANTHROPIC_BASE_URL","OPENAI_BASE_URL","OPENAI_API_BASE","AZURE_OPENAI_ENDPOINT","GOOGLE_GEMINI_BASE_URL","GEMINI_API_BASE","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX"],q_=["CURSOR_PROJECT_DIR"],Z_=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function Q_(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)Z_.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Ac(e=process.env){let t=X_.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:Q_(e[r]??"")}:{name:r,present:!1}),n=q_.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as kh}from"node:os";import{homedir as Ic}from"node:os";import{join as eh}from"node:path";function th(e=Ic()){return eh(e,".claude.json")}function $n(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function bc(e=Ic()){let n=te(th(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=$n(n.emailAddress),o=$n(n.fullName)??$n(n.displayName),s=$n(n.accountUuid),i=r??s;return!i||fe(o,r)?null:{git_user_name:null,git_user_email:null,platform_login:i,identity_source:"claude_oauth"}}import{homedir as Tc}from"node:os";import{join as xc}from"node:path";var nh="https://api.openai.com/auth";function _t(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function kc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function rh(e){let t=e.split(".");if(t.length!==3||t.some(r=>r.length===0))return null;let n=t[1];if(!n)return null;try{let r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"));return kc(r)}catch{return null}}function Oc(e,t,n){return _t(e[n])??_t(t?.[n])}function oh(e=process.env,t=Tc()){let n=_t(e.CODEX_HOME)??xc(t,".codex");return xc(n,"auth.json")}function Pc(e=process.env,t=Tc()){let n=te(oh(e,t),{}),r=_t(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&_t(n.OPENAI_API_KEY))return null;let o=_t(n.tokens?.id_token);if(!o)return null;let s=rh(o);if(!s)return null;let i=kc(s[nh]),a=Oc(s,i,"name"),c=Oc(s,i,"email");return!c||fe(a,c)?null:{git_user_name:null,git_user_email:null,platform_login:c,identity_source:"codex_oauth"}}import{homedir as Kn}from"node:os";import{join as He}from"node:path";import{join as sh}from"node:path";var ih="cursor-ide-identity.json",ah=840*60*1e3;function wc(e){return sh(pe(e),ih)}function Nc(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Mc(e){let t=te(e,{}),n=t.read_at_ms,r=t.db_path;if(!(typeof n!="number"||!Number.isFinite(n)||typeof r!="string"))return{read_at_ms:n,db_path:r,email:Nc(t.email),auth_id:Nc(t.auth_id)}}function Lc(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<ah}function vc(e,t){try{me(e,`${JSON.stringify(t)}
|
|
25
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as ch}from"node:child_process";import{existsSync as uh}from"node:fs";import{createRequire as lh}from"node:module";import{pathToFileURL as fh}from"node:url";var Uc=lh(import.meta.url),jn=`
|
|
24
26
|
SELECT key, value
|
|
25
27
|
FROM ItemTable
|
|
26
28
|
WHERE key LIKE 'cursorAuth/%'
|
|
27
29
|
AND key NOT LIKE '%Token%'
|
|
28
30
|
AND key NOT LIKE '%token%'
|
|
29
31
|
ORDER BY key
|
|
30
|
-
`.trim(),
|
|
31
|
-
`)){let r=n.trimEnd();if(!r)continue;let o=r.indexOf(" ");if(o<=0)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();s&&i&&!
|
|
32
|
-
`);return X(n)}function
|
|
33
|
-
`)){let o=r.trim();if(!o)continue;let s=o.indexOf(" ");if(s<=0)continue;let i=o.slice(0,s).toLowerCase(),a=o.slice(s+1).trim();a&&(i==="user.name"?t=a:i==="user.email"&&(n=a))}return{git_user_name:t,git_user_email:n,platform_login:null}}async function D_(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return H_(n)}function F_(e=process.env){let t=j(e.GIT_AUTHOR_NAME),n=j(e.GIT_AUTHOR_EMAIL);if(t||n)return{git_user_name:t,git_user_email:n,platform_login:null,identity_source:"git_env"};let r=j(e.GIT_COMMITTER_NAME),o=j(e.GIT_COMMITTER_EMAIL);if(r||o)return{git_user_name:r,git_user_email:o,platform_login:null,identity_source:"git_env"};let s=j(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function He(e,t,n,r=null){return!e&&!t&&!r?null:{git_user_name:e,git_user_email:t,platform_login:r,identity_source:n}}function $_(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=He(j(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=j(e.GITHUB_ACTOR)??j(e.GITHUB_TRIGGERING_ACTOR)??j(e.GITHUB_USER),s=He(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=He(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let l=j(e.BUILD_REQUESTEDFOREMAIL),u=He(j(e.BUILD_REQUESTEDFOR),l,"azure_devops",l??j(e.BUILD_REQUESTEDFORID));if(u)return u;let p=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=He(j(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(f)return f;let m=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=He(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),m,"jenkins",m??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),C=He(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),x=He(A,null,"codebuild",A);if(x)return x;let k=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),O=He(M??j(e.DRONE_COMMIT_AUTHOR_NAME),k,"drone",k??M);if(O)return O;if(fc(e.CLAUDE_CODE_REMOTE)||fc(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 fc(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function j_(e,t,n){return e==="claude"?Va(t):e==="cursor"?uc(t,n):e==="codex"?Za(n,t):null}async function to(e,t=ee,n=process.env,r={}){let o=await D_(e,t),s=F_(n),i=eo(o)?o:s&&eo(s)?s:null,a=j_(r.runnerPlatform,r.home??v_(),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=$_(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 no(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await to(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=U_(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?Pr(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&di(m,a,on())}}}function ro(e){return e?!Pr(e)?.operator_identity_hash:!0}function pc(e){return!0}import{existsSync as ny,readFileSync as ry}from"node:fs";import{homedir as Hl}from"node:os";import{join as Ct,resolve as oy}from"node:path";import{basename as JE,join as Rt}from"node:path";import{dirname as Ac,resolve as Fn}from"node:path";import{existsSync as B_}from"node:fs";import{homedir as gc}from"node:os";import{relative as _c,resolve as Oe,sep as Ye}from"node:path";var K_=["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"],G_=["prompt","tool_input","tool_response","last_assistant_message","command"],z_=new Set;function W_(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return z_}}function hc(e){return Sc(e)==="allowlist"}function Sc(e){return F("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||F("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function V_(e){let t={};for(let n of K_){let r=we(e,n);r!==void 0&&(t[n]=r)}return t}function Hn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Oe(e),r=Oe(t),o=_c(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Oe(r,o)!==n?null:o.split(Ye).join("/")}function Ec(e,t){let n=_c(Oe(t),Oe(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function yc(e){return typeof e!="string"||e.length===0?null:Oe(e).split(Ye).join("/")}function J_(){let e=F("CURSOR_PROJECT_DIR");if(!e)return null;let t=Oe(e);return B_(t)?t.split(Ye).join("/"):null}function so(e,t){return Hn(e,t)!==null}function Y_(e,t){let n=Oe(t??gc(),".cursor").split(Ye).join("/");return so(e,n)}function X_(e,t,n){return t!==null&&so(e,t)?!0:t!==null&&Y_(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&so(e,n.gitRoot)?!0:t===null}function Rc(e,t){let n=yc(e.cwd);if(n!==null)return n;let r=Oe(process.cwd()).split(Ye).join("/"),o=J_();return X_(r,o,t)?r:o??r}function co(e,t={}){return Rc(e,t)}function uo(e,t=gc()){let n=Oe(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function dc(e,t,n){let r=yc(n.launchCwd)??Rc(t,n);e.cwd=uo(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Hn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var Cc="\u2026[truncated]\u2026",io=Buffer.byteLength(Cc,"utf8"),q_=8;function Ft(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function mc(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Z_(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 Q_(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=io)return mc(e,t);let r=t-io,o=Math.ceil(r/2),s=Math.floor(r/2);return`${mc(e,o)}${Cc}${Z_(e,s)}`}function ao(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)=>{ao(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||ao(o,[...t,r],n)}function eh(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 th=256;function nh(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 rh(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=Ft(e);if(s<=t)return;let i=[];ao(e,[],i),i.sort((u,p)=>p.bytes-u.bytes);let a=i.filter(u=>u.bytes>n);if(a.length===0)return;let c=nh(a,s-t,n),l=Math.max(n,Math.min(c,r-1));if(l>=r)return;r=l;for(let u of a)u.bytes>r&&eh(e,u.path,Q_(u.value,r))}}function oh(e,t){let n=Math.max(0,t-th),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:Ft(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(Ft(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function oo(e,t){let n=Ft(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,rh(r,t,io+q_),Ft(r)>t&&oh(r,t),r}function sh(e,t,n){let r=W_(n.runnerEvent);for(let o of G_){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Dn(e,t,n={}){let r=Sc(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,dc(s,e,n),oo(s,br)}let o=V_(e);return dc(o,e,n),r==="content"?(sh(o,e,n),oo(o,br)):oo(o,qs)}function ih(e){return typeof e=="string"&&e.length>0}function lo(e){let t=Fn(e.home),n=Fn(e.launchCwd),r=e.gitRoot?Fn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&ih(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&&Hn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=Ac(r);for(;;){let u=Fn(l);if(u===t)break;let p=Ac(u);if(p===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=Ec(u,n);break}l=p}}return{anchors:s,parentRel:a}}import{existsSync as Ic,readdirSync as ah,realpathSync as ch}from"node:fs";import{basename as uh,dirname as lh,relative as fh,resolve as ph,sep as dh}from"node:path";var fo=400,$n=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=ph(t).split(dh).join("/");return uo(r,this.home)}let n=fh(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(lh(t))}/${uh(t)}`:n}claimFile(t){try{let n=ch(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(!Ic(t))return[];try{return ah(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(Ic(t))return re(t,n)}push(t){return this.components.length>=this.maxEntries?(this.truncated=!0,!1):this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0?!1:(this.pluginExpandRemaining!==void 0&&(this.pluginExpandRemaining-=1),this.components.push(t),!0)}withPluginExpandCap(t,n){let r=this.pluginExpandRemaining;this.pluginExpandRemaining=t;try{let o=n(),s=t-(this.pluginExpandRemaining??0);return{result:o,expanded:s}}finally{this.pluginExpandRemaining=r}}};import{existsSync as Po,readFileSync as US,statSync as HS}from"node:fs";import{basename as Fu,join as ot,relative as No}from"node:path";var vu=je(Lu());var LS=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Uu=LS.map(e=>vu.default.matcher(e,{dot:!0}));function vS(e){return e===""?!1:Uu.some(t=>t(`${e}/`))}function Hu(e,t){if(t==="")return!1;if(e==="")return vS(t);let n=e.replace(/\/+$/,"");return Uu.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var wo=100*1024,DS=4;function FS(e){return e.length<=wo?e:`${e.slice(0,wo-1)}\u2026`}function $S(e){try{let t=US(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:FS(n)}}catch{return null}}var Du={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function jS(e){return e in Du?Du[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=$S(t.absolutePath);if(!n)return!1;let r=t.name??Fu(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=jS(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function BS(e,t,n){let r=No(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Fu(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;Mo(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Mo(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>DS))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&Hu(n.replace(/\\/g,"/"),No(n,ot(r,p.name)).replace(/\\/g,"/"))||p.isDirectory()&&u?.includes(ot(r,p.name)))continue;if(c){if(!p.isDirectory())continue;let g=ot(r,p.name,c);if(Po(g)){let S=No(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Mo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(p.isDirectory()){Mo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(!p.isFile()||!l)continue;let f=p.name.toLowerCase();if(!l.some(g=>f.endsWith(g)))continue;let m=ot(r,p.name);Et(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:BS(n,m,!0)})}}function $u(e){for(let t of e)if(Po(t))try{if(HS(t).size>0)return t}catch{continue}return e.find(t=>Po(t))}import{existsSync as SE,readFileSync as EE}from"node:fs";var Vn=je(Je(),1);var KS="<omitted>",GS=["package_name","package_spec","package_version","package_version_source"],ju=100,Bu=120,Jn=[{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"}],Ku=new Set(Jn.map(e=>e.attr)),zS=["enabled","disabled"],WS=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],VS=new Set(["type","command","url","args","env","envVars","headers",...zS,...WS,...Jn.map(e=>e.raw)]),JS=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",...GS,...Ku,...[...Ku].map(e=>`${e}_truncated`)]);function Gu(e,t){for(let n of t)VS.has(n)||JS.has(n)||(e[n]=KS)}var YS=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,XS=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,qS=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,ZS=/^bearer(?:\s+|$)/i;function Yn(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function zu(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Lo(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=Yn(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 QS(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,Vn.launchContainsCredentials)({kind:"url",url:e})||(0,Vn.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=Wt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,Vn.launchContainsCredentials)({kind:"url",url:r}):!0)}function Wu(e,t,n){QS(t,n)&&(e.launch_had_credentials=!0)}function eE(e){return qS.test(e)||ZS.test(e)?"<redacted>":e.includes("://")?it(e):e}function Vu(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Vu(e.slice(t+1))}`:eE(e)}function tE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return YS.test(t)||XS.test(t)}function Wt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(tE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Vu(r))}return t}function nE(e){let t=zu(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Bu?r.slice(0,Bu):r))].sort();if(n.length!==0)return n.length>ju?{names:n.slice(0,ju),truncated:!0}:{names:n,truncated:!1}}function rE(e){let t=Yn(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 Ju(e,t){let n=new Set;for(let{raw:r,attr:o}of Jn){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=nE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Yu(e,t){let n=Yn(e),r={transport:t};if(!n)return r;Gu(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=zu(n.args);a&&(r.command_or_url=it(a));let l=Wt(c);l.length>0&&(r.args=l),Wu(r,a,c);let u=rE(n.env_http_headers),p=[...new Set([...Lo(n.env),...Lo(n.envVars),...Lo(n.env_vars),...u.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),u.headers.length>0&&(r.env_http_header_names=[...new Set(u.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let m=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;m&&(r.bearer_token_env_var=m);let g=typeof n.default_tools_approval_mode=="string"?n.default_tools_approval_mode:typeof n.defaultToolsApprovalMode=="string"?n.defaultToolsApprovalMode:void 0;return g&&(r.default_tools_approval_mode=g),Ju(r,n),r}function Xu(e){let t=Yn(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function Ho(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 zt(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 Uo(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function vo(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 oE(e,t){let n=[],r=i=>{for(let a of i.split(/[,\n]/)){let c=/^\s*"?([A-Za-z_][A-Za-z0-9_-]*)"?\s*=\s*(.+?)\s*$/.exec(a);c?.[1]&&n.push([c[1],yt(c[2]??"")])}},o=new RegExp(`^\\s*${t}\\s*=\\s*\\{([^}]*)\\}`,"m").exec(e);o?.[1]&&r(o[1]);let s=new RegExp(`(?:^|\\n)\\[[^\\]]*\\.${t}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`).exec(`
|
|
34
|
-
${e}`);return s?.[1]&&r(s[1]),n}function
|
|
35
|
-
`)){let s=
|
|
36
|
-
`)){let
|
|
32
|
+
`.trim(),uo=new Map;function Hc(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:null}if(e instanceof Uint8Array){let t=Buffer.from(e).toString("utf8").trim();return t.length>0?t:null}return null}function Dc(e){return e.toLowerCase().includes("token")}function Fc(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=Hc(r.key),s=Hc(r.value);o&&s&&!Dc(o)&&t.set(o,s)}return t}function ph(e){let t=fh(e);return t.search="mode=ro&immutable=1",t.href}function dh(e){try{let t=Uc("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(jn)??n.prepare(jn);return Fc(r.all?.())}finally{n.close?.()}}catch{return null}}function mh(e){let t=process.emitWarning.bind(process);process.emitWarning=((n,...r)=>{(typeof n=="string"?n:n instanceof Error?n.message:"").includes("SQLite is an experimental feature")||t(n,...r)});try{return e()}finally{process.emitWarning=t}}function gh(e){try{return mh(()=>{let t=Uc("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return Fc(n.prepare(jn).all?.())}finally{n.close?.()}})}catch{return null}}function _h(e){let t=new Map;for(let n of e.split(`
|
|
33
|
+
`)){let r=n.trimEnd();if(!r)continue;let o=r.indexOf(" ");if(o<=0)continue;let s=r.slice(0,o).trim(),i=r.slice(o+1).trim();s&&i&&!Dc(s)&&t.set(s,i)}return t}function hh(e){try{let t=ch("sqlite3",["-noheader","-batch","-separator"," ",e,jn],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return _h(t)}catch{return null}}function $c(e){let t=uo.get(e);if(t)return t;if(!uh(e)){let o=new Map;return uo.set(e,o),o}let n=ph(e),r=dh(n)??hh(n)??gh(n)??new Map;return uo.set(e,r),r}var Sh="cursorAuth/cachedEmail",Eh="cursorAuth/stripeMembershipAuthId";function Bn(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function yh(e=Kn(),t=process.platform,n=process.env){let r=Bn(n.VSCODE_PORTABLE);if(r)return He(r,"user-data");let o=Bn(n.VSCODE_APPDATA);if(o)return He(o,"Cursor");switch(t){case"darwin":return He(e,"Library","Application Support","Cursor");case"win32":return He(Bn(n.APPDATA)??He(e,"AppData","Roaming"),"Cursor");default:return He(Bn(n.XDG_CONFIG_HOME)??He(e,".config"),"Cursor")}}function Rh(e=Kn()){return He(e,".cursor","cli-config.json")}function Ch(e=Kn(),t=process.platform,n=process.env){return He(yh(e,t,n),"User","globalStorage","state.vscdb")}function Bt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Ah(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):Bt(e.userId)}function Ih(e){return Bt(e.email)??Bt(e.authId)??Ah(e)}function lo(e){let t=Bt(e.email),n=Bt(e.displayName),r=Ih(e);return!r||fe(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function bh(e){let n=te(Rh(e),{}).authInfo;return!n||typeof n!="object"?null:lo(n)}function xh(e,t,n){let r=Ch(e,process.platform,t),o=wc(e),s=Mc(o);if(Lc(s,r,n))return lo({email:s?.email,authId:s?.auth_id});let i=$c(r),a=i.get(Sh)??null,c=i.get(Eh)??null;return vc(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),lo({email:a,authId:c})}function jc(e=Kn(),t=process.env,n=Date.now()){return bh(e)??xh(e,t,n)}import{createHash as Oh}from"node:crypto";import{resolve as Th}from"node:path";function X(e){return Oh("sha256").update(e).digest("hex").slice(0,16)}function fo(e){return X(Th(e))}function he(e,t){return`${e}\0${t}`}function Bc(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function Kt(e){let n=[...e].sort((r,o)=>{let s=r.path.localeCompare(o.path);return s!==0?s:r.name.localeCompare(o.name)}).map(r=>`${r.path}|${r.name}|${r.content_hash}`).join(`
|
|
34
|
+
`);return X(n)}function Ph(e,t,n="git_config",r=null){return X(`${e??""}|${t??""}|${r??""}|${n}`)}function Nh(e){let t=null,n=null;for(let r of e.split(`
|
|
35
|
+
`)){let o=r.trim();if(!o)continue;let s=o.indexOf(" ");if(s<=0)continue;let i=o.slice(0,s).toLowerCase(),a=o.slice(s+1).trim();a&&(i==="user.name"?t=a:i==="user.email"&&(n=a))}return{git_user_name:t,git_user_email:n,platform_login:null}}async function wh(e,t=ee){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Nh(n)}function Mh(e=process.env){let t=j(e.GIT_AUTHOR_NAME),n=j(e.GIT_AUTHOR_EMAIL);if(t||n)return{git_user_name:t,git_user_email:n,platform_login:null,identity_source:"git_env"};let r=j(e.GIT_COMMITTER_NAME),o=j(e.GIT_COMMITTER_EMAIL);if(r||o)return{git_user_name:r,git_user_email:o,platform_login:null,identity_source:"git_env"};let s=j(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function Ue(e,t,n,r=null){return!e&&!t&&!r?null:{git_user_name:e,git_user_email:t,platform_login:r,identity_source:n}}function Lh(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ue(j(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=j(e.GITHUB_ACTOR)??j(e.GITHUB_TRIGGERING_ACTOR)??j(e.GITHUB_USER),s=Ue(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ue(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let u=j(e.BUILD_REQUESTEDFOREMAIL),l=Ue(j(e.BUILD_REQUESTEDFOR),u,"azure_devops",u??j(e.BUILD_REQUESTEDFORID));if(l)return l;let p=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ue(j(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(f)return f;let m=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ue(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),m,"jenkins",m??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),C=Ue(S,null,"circleci",S);if(C)return C;let A=j(e.CODEBUILD_INITIATOR),T=Ue(A,null,"codebuild",A);if(T)return T;let x=j(e.DRONE_COMMIT_AUTHOR_EMAIL),M=j(e.DRONE_COMMIT_AUTHOR),k=Ue(M??j(e.DRONE_COMMIT_AUTHOR_NAME),x,"drone",x??M);if(k)return k;if(Kc(e.CLAUDE_CODE_REMOTE)||Kc(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!fe(null,K)?K:null,identity_source:"cloud"}}return null}function po(e){return!!((e.git_user_name??e.git_user_email)&&!fe(e.git_user_name,e.git_user_email))}function j(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Kc(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function vh(e,t,n){return e==="claude"?bc(t):e==="cursor"?jc(t,n):e==="codex"?Pc(n,t):null}async function mo(e,t=ee,n=process.env,r={}){let o=await wh(e,t),s=Mh(n),i=po(o)?o:s&&po(s)?s:null,a=vh(r.runnerPlatform,r.home??kh(),n);if(a)return{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:a.platform_login,identity_source:a.identity_source};let c=Lh(n);return c?.platform_login?{git_user_name:i?.git_user_name??null,git_user_email:i?.git_user_email??null,platform_login:c.platform_login,identity_source:c.identity_source}:i?{...i,platform_login:null,identity_source:po(o)?"git_config":"git_env"}:c||(o.git_user_name||o.git_user_email?{...o,identity_source:"git_config"}:s||{git_user_name:null,git_user_email:null,platform_login:null,identity_source:"git_config"})}async function go(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??ee,s=e.env??process.env,i=await mo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Ph(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?Ur(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let m=n;return{operator:i,commit:()=>{m&&ki(m,a,ln())}}}function _o(e){return e?!Ur(e)?.operator_identity_hash:!0}function Gc(e){return!0}import{existsSync as Xy,readFileSync as qy}from"node:fs";import{homedir as hf}from"node:os";import{join as Ct,resolve as Zy}from"node:path";import{basename as By,join as Rt}from"node:path";import{dirname as nu,resolve as Wn}from"node:path";import{existsSync as Hh}from"node:fs";import{homedir as Vc}from"node:os";import{relative as Jc,resolve as Te,sep as Ye}from"node:path";var Uh=["session_id","conversation_id","turn_id","generation_id","prompt.id","prompt_id","hook_event_name","event","source","status","stop_reason","reason","tool_name","tool","tool_use_id","skill_name","command_name","expansion_type","command_source","permission_mode","model","model_id","agent_id","agent_type","subagent_id","subagent_type","subagent_model","is_parallel_worker","effort","effort.level","duration_ms","duration","sandbox","failure_type","is_interrupt"],Dh=["prompt","tool_input","tool_response","last_assistant_message","command"],Fh=new Set;function $h(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Fh}}var Yc=new Set(["on","1","true"]);function Ro(e){let t=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?Yc.has(t.toLowerCase()):e?.collect_prompt===!0}function Xc(e,t){let n=Co(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=L("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?Yc.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function qc(e){return Co(e)==="allowlist"}function Co(e){return L("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||L("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function jh(e){let t={};for(let n of Uh){let r=Me(e,n);r!==void 0&&(t[n]=r)}return t}function Gn(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=Jc(r,n);return!o||o==="."?".":o.startsWith(`..${Ye}`)||o===".."||Te(r,o)!==n?null:o.split(Ye).join("/")}function Zc(e,t){let n=Jc(Te(t),Te(e)).split(Ye).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function Qc(e){return typeof e!="string"||e.length===0?null:Te(e).split(Ye).join("/")}function Bh(){let e=L("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return Hh(t)?t.split(Ye).join("/"):null}function So(e,t){return Gn(e,t)!==null}function Kh(e,t){let n=Te(t??Vc(),".cursor").split(Ye).join("/");return So(e,n)}function Gh(e,t,n){return t!==null&&So(e,t)?!0:t!==null&&Kh(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&So(e,n.gitRoot)?!0:t===null}function eu(e,t){let n=Qc(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(Ye).join("/"),o=Bh();return Gh(r,o,t)?r:o??r}function Ao(e,t={}){return eu(e,t)}function Io(e,t=Vc()){let n=Te(t).split(Ye).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function zc(e,t,n){let r=Qc(n.launchCwd)??eu(t,n);e.cwd=Io(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Gn(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var tu="\u2026[truncated]\u2026",Eo=Buffer.byteLength(tu,"utf8"),zh=8;function Gt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Wc(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Wh(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(n.length-t).toString("utf8")}function Vh(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=Eo)return Wc(e,t);let r=t-Eo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Wc(e,o)}${tu}${Wh(e,s)}`}function yo(e,t,n){if(typeof e=="string"){n.push({path:t,value:e,bytes:Buffer.byteLength(e,"utf8")});return}if(Array.isArray(e)){e.forEach((r,o)=>{yo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||yo(o,[...t,r],n)}function Jh(e,t,n){let r=e;for(let s=0;s<t.length-1;s++){let i=t[s];if(i===void 0)return;r=(Array.isArray(r),r[i])}let o=t[t.length-1];if(!(o===void 0||r===null||typeof r!="object")){if(Array.isArray(r)){r[o]=n;return}r[o]=n}}var Yh=256;function Xh(e,t,n){let r=n,o=Math.max(n,e[0]?.bytes??n);for(;r<o;){let s=Math.ceil((r+o)/2),i=0;for(let a of e)a.bytes>s&&(i+=a.bytes-s);i>=t?r=s:o=s-1}return r}function qh(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=Gt(e);if(s<=t)return;let i=[];yo(e,[],i),i.sort((l,p)=>p.bytes-l.bytes);let a=i.filter(l=>l.bytes>n);if(a.length===0)return;let c=Xh(a,s-t,n),u=Math.max(n,Math.min(c,r-1));if(u>=r)return;r=u;for(let l of a)l.bytes>r&&Jh(e,l.path,Vh(l.value,r))}}function Zh(e,t){let n=Math.max(0,t-Yh),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:Gt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(Gt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function ho(e,t){let n=Gt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,qh(r,t,Eo+zh),Gt(r)>t&&Zh(r,t),r}function Qh(e,t,n){let r=$h(n.runnerEvent),o=n.promptCapture??Ro();for(let s of Dh){if(r.has(s)||s==="prompt"&&!o)continue;let i=t[s];i!==void 0&&(e[s]=i)}}function zn(e,t,n={}){let r=Co(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,zc(s,e,n),ho(s,wr)}let o=jh(e);return zc(o,e,n),r==="content"?(Qh(o,e,n),ho(o,wr)):ho(o,di)}function eS(e){return typeof e=="string"&&e.length>0}function bo(e){let t=Wn(e.home),n=Wn(e.launchCwd),r=e.gitRoot?Wn(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&eS(e.remote)&&r!==null&&r!==t&&(i=r,o.add(r)),n!==t&&!o.has(n)&&(s.push({scope:"cwd",dir:n}),o.add(n)),i!==null&&s.push({scope:"repo",dir:i});let a=null,c=r!==null&&Gn(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=nu(r);for(;;){let l=Wn(u);if(l===t)break;let p=nu(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=Zc(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as ru,readdirSync as tS,realpathSync as nS}from"node:fs";import{basename as rS,dirname as oS,relative as sS,resolve as iS,sep as aS}from"node:path";var xo=400,Vn=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Be}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=iS(t).split(aS).join("/");return Io(r,this.home)}let n=sS(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${X(oS(t))}/${rS(t)}`:n}claimFile(t){try{let n=nS(t);return this.seenRealpaths.has(n)?!1:(this.seenRealpaths.add(n),!0)}catch{return this.seenRealpaths.has(t)?!1:(this.seenRealpaths.add(t),!0)}}get atGlobalCap(){return this.truncated||this.components.length>=this.maxEntries}get pluginBudgetSpent(){return this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0}readEntries(t){if(!ru(t))return[];try{return tS(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(ru(t))return te(t,n)}push(t){return this.components.length>=this.maxEntries?(this.truncated=!0,!1):this.pluginExpandRemaining!==void 0&&this.pluginExpandRemaining<=0?!1:(this.pluginExpandRemaining!==void 0&&(this.pluginExpandRemaining-=1),this.components.push(t),!0)}withPluginExpandCap(t,n){let r=this.pluginExpandRemaining;this.pluginExpandRemaining=t;try{let o=n(),s=t-(this.pluginExpandRemaining??0);return{result:o,expanded:s}}finally{this.pluginExpandRemaining=r}}};import{existsSync as Go,readFileSync as PE,statSync as NE}from"node:fs";import{basename as Sl,join as ot,relative as zo}from"node:path";var ml=je(dl());var TE=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],gl=TE.map(e=>ml.default.matcher(e,{dot:!0}));function kE(e){return e===""?!1:gl.some(t=>t(`${e}/`))}function _l(e,t){if(t==="")return!1;if(e==="")return kE(t);let n=e.replace(/\/+$/,"");return gl.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var Wo=100*1024,wE=4;function ME(e){return e.length<=Wo?e:`${e.slice(0,Wo-1)}\u2026`}function LE(e){try{let t=PE(e),n=t.toString("utf8");return{hash:X(t),length:t.length,text:ME(n)}}catch{return null}}var hl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function vE(e){return e in hl?hl[e]:"UNSPECIFIED"}function Et(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=LE(t.absolutePath);if(!n)return!1;let r=t.name??Sl(t.absolutePath).replace(/\.(md|mdc|toml)$/i,""),o={kind:t.kind,name:r,path:e.componentPath(t.absolutePath),text:n.text,content_hash:n.hash,content_length:n.length,origin:t.origin,enabled:t.enabled},s=vE(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function HE(e,t,n){let r=zo(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Sl(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function st(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;Vo(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Vo(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l}=t;if(!(o>wE))for(let p of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(p.isDirectory()&&_l(n.replace(/\\/g,"/"),zo(n,ot(r,p.name)).replace(/\\/g,"/"))||p.isDirectory()&&l?.includes(ot(r,p.name)))continue;if(c){if(!p.isDirectory())continue;let g=ot(r,p.name,c);if(Go(g)){let S=zo(n,ot(r,p.name)).replace(/\\/g,"/");Et(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||p.name});continue}Vo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(p.isDirectory()){Vo(e,{walkRoot:n,currentDir:ot(r,p.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u,skipDirs:l});continue}if(!p.isFile()||!u)continue;let f=p.name.toLowerCase();if(!u.some(g=>f.endsWith(g)))continue;let m=ot(r,p.name);Et(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:HE(n,m,!0)})}}function El(e){for(let t of e)if(Go(t))try{if(NE(t).size>0)return t}catch{continue}return e.find(t=>Go(t))}import{existsSync as py,readFileSync as dy}from"node:fs";var er=je(Je(),1);var UE="<omitted>",DE=["package_name","package_spec","package_version","package_version_source"],yl=100,Rl=120,tr=[{raw:"tools",attr:"tools"},{raw:"autoApprove",attr:"auto_approve"},{raw:"auto_approve",attr:"auto_approve"},{raw:"alwaysAllow",attr:"always_allow"},{raw:"always_allow",attr:"always_allow"},{raw:"enabledTools",attr:"enabled_tools"},{raw:"enabled_tools",attr:"enabled_tools"},{raw:"disabledTools",attr:"disabled_tools"},{raw:"disabled_tools",attr:"disabled_tools"}],Cl=new Set(tr.map(e=>e.attr)),FE=["enabled","disabled"],$E=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],jE=new Set(["type","command","url","args","env","envVars","headers",...FE,...$E,...tr.map(e=>e.raw)]),BE=new Set(["transport","command_or_url","args","env_var_names","headers_present","auth","bearer_token_env_var","default_tools_approval_mode","env_http_header_names",...DE,...Cl,...[...Cl].map(e=>`${e}_truncated`)]);function Al(e,t){for(let n of t)jE.has(n)||BE.has(n)||(e[n]=UE)}var KE=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,GE=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,zE=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,WE=/^bearer(?:\s+|$)/i;function nr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Il(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Jo(e){if(Array.isArray(e)){let n=[];for(let r of e){if(typeof r!="string"||r.length===0)continue;let o=r.split("=",1)[0]?.trim();o&&n.push(o)}return n}let t=nr(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function it(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function VE(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,er.launchContainsCredentials)({kind:"url",url:e})||(0,er.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=qt([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,er.launchContainsCredentials)({kind:"url",url:r}):!0)}function bl(e,t,n){VE(t,n)&&(e.launch_had_credentials=!0)}function JE(e){return zE.test(e)||WE.test(e)?"<redacted>":e.includes("://")?it(e):e}function xl(e){if(/^https?:\/\//i.test(e))return it(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${xl(e.slice(t+1))}`:JE(e)}function YE(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return KE.test(t)||GE.test(t)}function qt(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(YE(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(xl(r))}return t}function XE(e){let t=Il(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Rl?r.slice(0,Rl):r))].sort();if(n.length!==0)return n.length>yl?{names:n.slice(0,yl),truncated:!0}:{names:n,truncated:!1}}function qE(e){let t=nr(e);if(!t)return{headers:[],envVars:[]};let n=[],r=[];for(let[o,s]of Object.entries(t))o.length>0&&n.push(o),typeof s=="string"&&s.length>0&&r.push(s);return{headers:n,envVars:r}}function Ol(e,t){let n=new Set;for(let{raw:r,attr:o}of tr){if(n.has(o)||!(r in t))continue;let s=t[r];if(o==="auto_approve"&&typeof s=="boolean"){e.auto_approve=s,n.add(o);continue}let i=XE(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Tl(e,t){let n=nr(e),r={transport:t};if(!n)return r;Al(r,Object.keys(n));let o=typeof n.command=="string"?n.command:void 0,s=typeof n.url=="string"?n.url:void 0,i=typeof n.serverUrl=="string"?n.serverUrl:void 0,a=o??s??i,c=Il(n.args);a&&(r.command_or_url=it(a));let u=qt(c);u.length>0&&(r.args=u),bl(r,a,c);let l=qE(n.env_http_headers),p=[...new Set([...Jo(n.env),...Jo(n.envVars),...Jo(n.env_vars),...l.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),l.headers.length>0&&(r.env_http_header_names=[...new Set(l.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let m=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;m&&(r.bearer_token_env_var=m);let g=typeof n.default_tools_approval_mode=="string"?n.default_tools_approval_mode:typeof n.defaultToolsApprovalMode=="string"?n.defaultToolsApprovalMode:void 0;return g&&(r.default_tools_approval_mode=g),Ol(r,n),r}function kl(e){let t=nr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function qo(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return X(JSON.stringify({name:e,attributes:r,enabled:n}))}function yt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function Xt(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*\\[([^\\]]*)\\]`,"m").exec(e);return n?.[1]?[...n[1].matchAll(/"([^"]*)"|'([^']*)'/g)].map(r=>r[1]??r[2]??"").filter(r=>r.length>0):[]}function Xo(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function Yo(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=yt(n[1]);return r.length>0?r:void 0}function ZE(e,t){let n=[],r=i=>{for(let a of i.split(/[,\n]/)){let c=/^\s*"?([A-Za-z_][A-Za-z0-9_-]*)"?\s*=\s*(.+?)\s*$/.exec(a);c?.[1]&&n.push([c[1],yt(c[2]??"")])}},o=new RegExp(`^\\s*${t}\\s*=\\s*\\{([^}]*)\\}`,"m").exec(e);o?.[1]&&r(o[1]);let s=new RegExp(`(?:^|\\n)\\[[^\\]]*\\.${t}\\]\\s*\\n([\\s\\S]*?)(?=\\n\\[|$)`).exec(`
|
|
36
|
+
${e}`);return s?.[1]&&r(s[1]),n}function Pl(e){return Xo(e,"enabled")===!1?!1:Xo(e,"disabled")!==!0}function QE(e,t){let n={};for(let{raw:r,attr:o}of tr){if(o==="auto_approve"){let i=Xo(t,r);if(i!==void 0){n[r]=i;continue}}let s=Xt(t,r);s.length>0&&(n[r]=s)}Ol(e,n)}var ey=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,ty=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function ny(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
|
|
37
|
+
`)){let s=ey.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(ty))o[1]&&t.add(o[1]);return[...t]}function Nl(e,t){let n={transport:t};Al(n,ny(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?yt(r[1]??""):void 0,i=o?yt(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=Xt(e,"args");a&&(n.command_or_url=it(a));let u=qt(c);u.length>0&&(n.args=u),bl(n,a,c);let l=new Set;for(let A of e.split(`
|
|
38
|
+
`)){let T=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}let p=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(p?.[1])for(let A of p[1].split(",")){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}let f=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
|
|
37
39
|
${e}`);if(f?.[1])for(let A of f[1].split(`
|
|
38
|
-
`)){let
|
|
39
|
-
`);return pE("sha512").update(t).digest("hex").slice(0,16)}function gE(e){let t=process.platform==="win32"?Vt(F("LOCALAPPDATA")??e,"npm-cache"):Vt(e,".npm"),n=F("npm_config_cache")??F("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function rl(e){return typeof e=="string"&&e.length>0&&e.length<=Pe.PACKAGE_FIELD_MAX?e:null}function _E(e,t,n){let r=mE(e);for(let o of gE(n)){let s=Vt(o,"_npx",r),i=re(Vt(s,"node_modules",...t.split("/"),"package.json"),{}),a=rl(i.version);if(a!==null)return a;let c=re(Vt(s,"package-lock.json"),{}),l=rl(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function hE(e){return e.length<=Pe.PACKAGE_FIELD_MAX?e:`${e.slice(0,Pe.PACKAGE_FIELD_MAX-1)}\u2026`}function Do(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,Pe.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,Pe.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:hE(o),...dE(o,_E(r,s,n))}}function ol(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Xn(e.trim());return n===void 0?null:Do(n,r,t)}function qn(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return Do(typeof n.command=="string"?n.command:null,r,t)}function sl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Do(yt(n[1]??""),zt(e,"args"),t)}function yE(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 il(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=yE(a),l=Yu(a,c);Object.assign(l,qn(a,e.home)??{});let u=Xu(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:Ho(i,l,u),origin:n,enabled:u,attributes:l})}}function al(e,t,n){if(!SE(t)||!e.claimFile(t))return;let r;try{r=EE(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),l=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),u=l===-1?c:c.slice(0,l),p="unknown";/^\s*url\s*=/m.test(u)?p="http":/^\s*command\s*=/m.test(u)&&(p="stdio");let f=Zu(u,p);Object.assign(f,sl(u,e.home)??{});let m=qu(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:Ho(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as AE,readdirSync as IE}from"node:fs";import{join as ce}from"node:path";function RE(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 CE(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 Fo(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let l of CE(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",p=RE({type:l.type??c.type,command:l.command??c.command,bash:l.bash??c.bash,powershell:l.powershell??c.powershell,prompt:l.prompt??c.prompt}),f=typeof c.matcher=="string"?c.matcher:"",m=X(u),g=f?`${s}:${f}:${p}:${m}`:`${s}:${p}:${m}`,S=`${s}|${f}|${p}|${u}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:X(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:p,action_hash:m,...p!=="prompt"&&u.trim()?{command:tl(u,e.home)}:{}}})}}}function $o(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Fo(e,t,r.hooks,n)}var cl=50;function Jt(e,t,n,r){if(!AE(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(cl,()=>{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"]})});$o(e,ce(t,"hooks","hooks.json"),n),$o(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=cl;return{componentCount:i,expandTruncated:a}}function Yt(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 ul(e){let t=ce(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ce(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let l=Array.isArray(c)?c:[c],u=l[0]??{},p=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",m=typeof u.version=="string"?u.version:"",g=typeof u.scope=="string"?u.scope:"user",S=`plugin:${a}`,C=0,A=!1;for(let x of l)if(typeof x.installPath=="string"&&x.installPath.length>0){let k=Jt(e,x.installPath,S,p);C+=k.componentCount,A=A||k.expandTruncated}Yt(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 bE(e){let t=e,n="";try{let r=IE(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 xE=/^\d+$/;function OE(e){let t=e.filter(n=>!xE.test(n.pluginId));return t.length>0?t:e}function ll(e){let t=[{base:ce(e.home,".cursor/plugins/local"),scope:"local"},{base:ce(e.home,".cursor/plugins/cache"),scope:"cache"}];for(let{base:n,scope:r}of t)if(!e.truncated)for(let o of e.readEntries(n)){if(!o.isDirectory()||e.truncated)continue;if(r==="local"){let a=o.name,c=ce(n,o.name),l=`plugin:${a}`,{componentCount:u,expandTruncated:p}=Jt(e,c,l,!0);Yt(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:u,expandTruncated:p,contentHash:X(`${a}|local|${u}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ce(n,s))){if(!a.isDirectory())continue;let c=ce(n,s,a.name),{installPath:l,version:u}=bE(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of OE(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:p}=Jt(e,a.installPath,l,!0);Yt(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:u,expandTruncated:p,contentHash:X(`${c}|${a.version}|${u}`)})}}}import{existsSync as PE}from"node:fs";var TE=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,jo="<path>",kE=new RegExp(`${jo}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function Zn(e){let t=e.replace(TE,jo).replace(kE,jo);return t.length>200?`${t.slice(0,200)}...`:t}var fl=200,pl=200,Bo=16*1024,dl=6,NE=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),wE=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),ME=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),LE=new Set(["permissions"]),vE={claude:NE,cursor_sandbox:wE,cursor_permissions:ME,cursor_cli:LE},UE=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qn(e){return e.replace(/\\/g,"/")}function Ko(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>Ko(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${Ko(t[r])}`).join(",")}}`}function HE(e){return X(`${Ko(e)}|settings1`)}function Sl(e){let t=Qn(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 El(e,t){if(e!=="claude")return{};let n=Qn(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 yl(e){let t=Qn(e).replace(/\/+$/,"");return t.length<=1?"":t}function Rl(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function DE(e,t){let n=Qn(e);if(n==="~"||n.startsWith("~/"))return n;let r=yl(t);if(!r)return n;let o=n.slice(0,r.length);if(!(Rl(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var ml=new Map;function FE(e){let t=ml.get(e);if(t!==void 0)return t;let n=yl(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,Rl(e)?"gi":"g")}return ml.set(e,r),r}function $E(e,t){let n=FE(t);return n?e.replace(n,"~"):e}function gl(e,t){return e.length<=pl?e:(t.truncated=!0,e.slice(0,pl))}function Cl(e,t){return e.length<=fl?e:(t.truncated=!0,e.slice(0,fl))}function te(e,t,n,r){if(typeof e=="string"){if(t==="path")return gl(DE(e,n),r);let o=t==="rule"?Zn(e):e;return gl($E(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=Cl(e,r),s=[];for(let i of o){let a=te(i,t,n,r);a!==void 0&&s.push(a)}return s}if(Xe(e)){let o={};for(let[s,i]of Object.entries(e)){let a=te(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function _l(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";UE.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=te(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function jE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Cl(s,n);r[o]=a.map(c=>{if(!Xe(c))return te(c,"plain",t,n);let l={};for(let[u,p]of Object.entries(c)){let m=te(p,u==="path"?"path":"plain",t,n);m!==void 0&&(l[u]=m)}return l});continue}let i=te(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function BE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=te(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function KE(e,t,n){if(!Xe(e))return te(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=te(s,"rule",t,n):o==="filesystem"?i=te(s,"path",t,n):o==="network"?i=BE(s,t,n):o==="credentials"?i=jE(s,t,n):i=te(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function GE(e,t,n,r,o){return n==="claude"?e==="permissions"?_l(t,r,o):e==="sandbox"?KE(t,r,o):te(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?te(t,"path",r,o):te(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?te(t,"rule",r,o):te(t,"plain",r,o):e==="permissions"?_l(t,r,o):te(t,"plain",r,o)}function Xt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Go(e,t){return e?`${e}.${t}`:t}function zo(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>=dl?(e.splice(o,1),r.add(n)):zo(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>=dl?(delete e[o],r.add(Go(n,o))):zo(s,t+1,Go(n,o),r))}function Al(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:Xt(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))Al(o,Go(t,r),n)}function zE(e,t,n){let r=Xt(e);if(r<=Bo)return;t.truncated=!0;let o=[];for(Al(e,"",o);r>Bo;){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=Xt(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;Xt(e)>Bo;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=Xt(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function WE(e,t,n){let r=vE[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=GE(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return zo(s,1,"",a),a.size>0&&(o.truncated=!0),zE(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function hl(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:HE(t.attributes),attributes:t.attributes};e.push(n)}function Wo(e,t,n,r){if(!e.claimFile(t)||!PE(t))return;let o=Is(t);if(!o.ok||!Xe(o.value)){if(r.profile){let l=!o.ok&&o.reason==="read"?"read_error":"parse_error",u={profile:r.profile,[l]:!0};r.managedSource&&(u.managed_source=r.managedSource),hl(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(Xe(i)&&Fo(e,t,i,n),!r.profile)return;let a=WE(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),hl(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as VE}from"node:fs";import{join as Ne}from"node:path";var Il=".claude/skills/synced",bl=".claude/plugins/synced";function xl(e){return[Ne(e,Il),Ne(e,bl)]}function er(e){return typeof e=="string"&&e.length>0?e:void 0}function Ol(e){let t=Ne(e.home,Il);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=Ne(t,n.name),o=e.readJson(Ne(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=Ne(r,i.name,"SKILL.md");if(!i.isDirectory()||!VE(a))continue;let c=s.get(i.name),l=er(c?.source),u=er(c?.creatorType);Et(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Tl(e){let t=Ne(e.home,bl);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=Ne(t,n.name),o=e.readJson(Ne(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=er(a?.marketplaceName),l=er(a?.version),u=c?`${i.name}@${c}`:i.name,p=Ne(r,i.name),{componentCount:f,expandTruncated:m}=Jt(e,p,`plugin:${u}`,!0);Yt(e,{pluginKey:u,rowPath:e.componentPath(p),enabled:!0,scope:"synced",version:l,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${u}|${l??""}|synced|${f}`)})}}}function YE(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:xl(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=$u(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:JE(a)})}for(let i of ki(n))Wo(e,Rt(r,i),o,{kind:"SETTINGS",profile:Sl(i)});for(let i of n.mcpJson??[])il(e,Rt(r,i),o);for(let i of n.mcpToml??[])al(e,Rt(r,i),o);if(s){if(n.managed){for(let i of En(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=El(n.managed,i);Wo(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(ul(e),Tl(e),Ol(e)):n.plugins==="cursor"&&ll(e)}}function kl(e,t){try{let n=new $n(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)YE(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 Vo(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=kl(t,{layouts:Object.values(pt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Be,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Ge),l=lo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>Ni(c,u)});i=l.parentRel;for(let u of l.anchors){let p=Qr(u.dir);if(o!==void 0&&!o(u.scope,p))continue;let f=kl(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:fo,scopeRef:p});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Jo(e,t,n={}){let r=n.truncated===!0,o=Dt(e),s=new Set(e.map(u=>ge(u.path,u.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let u of e){let p=ge(u.path,u.name);c[p]!==u.content_hash&&a.push(u)}let l=[];if(!r){for(let u of Object.keys(c))if(!s.has(u)){let p=lc(u);p&&l.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:l,unchanged:a.length===0&&l.length===0}}var Nl=2*1024*1024,XE=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function Yo(e,t,n){let r=new Set(t.map(s=>ge(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(ge(s.path,s.name))||o.push(s));return o}function Xo(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 Pl(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function wl(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function qo(e,t=Nl){let n=[],r=[];for(let u of e)XE.has(u.kind)?n.push(u):r.push(u);r.sort((u,p)=>(u.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,l=[];for(let u of o){let p=s.length>0?1:0,f=Pl(u)+p;if(i+f<=t){s.push(u),i+=f,u.text!==void 0&&l.push(u.content_hash);continue}if(u.text!==void 0){let m=wl(u),g=Pl(m)+p;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:l}}function Zo(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:wl(n))}var qE=["user","cwd","repo","parent"];function Qo(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of qE){let O=t.scopes[M];if(!O)continue;let K=n(M,O.scopeRef),H=K.components,b=Jo(O.components,H,{forceFull:H===void 0,truncated:O.truncated}),N=new Set(K.textHashes),v=Yo(O.components,b.upserts,N),d=Zo([...b.upserts,...v],N);s.push({scope:M,walk:O,delta:b,outgoing:d,outgoingKeys:new Set(d.map(I=>ge(I.path,I.name))),deliveredTextHashes:N,cachedComponents:H})}let i=s.flatMap(M=>M.outgoing),a=qo(i,o),c=new Set(a.components.map(M=>ge(M.path,M.name))),l=[],u=[],p=[],f=[],m=[],g=[],S=[];for(let M of s){let{scope:O,walk:K,delta:H}=M;g.push(...K.components),l.push(O);let b=a.components.filter(I=>M.outgoingKeys.has(ge(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),v=H.truncated||N;v?p.push(O):H.full&&u.push(O),f.push(...b),!H.full&&!v&&m.push(...H.removed);let d=H.full?{}:{...M.cachedComponents??{}};if(!v)for(let I of H.removed)delete d[ge(I.path,I.name)];for(let I of b)d[ge(I.path,I.name)]=I.content_hash;S.push({scope:O,scopeRef:K.scopeRef,components:d,textHashes:Xo(M.deliveredTextHashes,b.filter(I=>I.text!==void 0).map(I=>I.content_hash),K.components),collectedAtMs:r,included:b.length>0||H.removed.length>0&&!v||H.full})}let C={user_spec_hash:Dt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};l.length>0&&(C.user_spec_scopes=l,C.user_spec_full_scopes=u,C.user_spec_truncated_scopes=p,C.user_spec_cwd_in_git_repo=t.cwdInGitRepo),u.length>0&&u.length===l.length&&(C.user_spec_full=!0),f.length>0&&(C.user_spec=f),m.length>0&&(C.user_spec_removed=m),a.textDeferredCount>0&&(C.user_spec_text_deferred=a.textDeferredCount);let A=t.scopes.cwd;A&&(C.user_spec_cwd_scope_ref=A.scopeRef);let x=t.scopes.repo;x&&(C.user_spec_repo_scope_ref=x.scopeRef);let k=t.scopes.parent;return k&&(C.user_spec_parent_scope_ref=k.scopeRef,t.parentRel&&(C.user_spec_parent_rel=t.parentRel)),{fields:C,scopes:S}}var tr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function es(e){return e==="cwd"||e==="repo"||e==="parent"}function qt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ts(e){return!qt(e)||!qt(e.components)||!Object.values(e.components).every(t=>typeof t=="string")||!Array.isArray(e.text_hashes)||!e.text_hashes.every(t=>typeof t=="string")?!1:typeof e.collected_at_ms=="number"&&Number.isFinite(e.collected_at_ms)}function Ml(e){return ZE(e)}function Ll(e){return QE(e)}function vl(e){return ey(e)}function ZE(e){if(!qt(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function QE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Ul(e,t){if(!qt(e))return;let n=e[t];return ts(n)?n:void 0}function ey(e){if(!qt(e))return{};let t={};for(let[n,r]of Object.entries(e))ts(r)&&(t[n]=r);return t}function ns(e,t=20){let n=[];for(let[r,o]of Object.entries(e))ts(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 sy=["allow","deny","ask"];function rr(e){let t=re(e,{}),n=[];for(let r of sy)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:Zn(o),mode:r});return{model:t.model??"",permissionKeys:n}}function iy(e){let{serverManaged:t,fileBased:n}=wr(process.platform,e),r=rr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=rr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function ay(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 cy=10,uy="self-config-cache.json",Dl=4;function At(){return F("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function ly(){return F("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var fy={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function py(e,t=ee){let n=fy[e];if(!n||n.length===0)return null;let r=async o=>{let s=n[o];if(s===void 0)return null;let a=((await t(s,["--version"],2e3)).split(`
|
|
40
|
-
`)[0]??"").trim();return a||r(o+1)};return r(0)}function
|
|
41
|
-
`);return X(n)}function
|
|
42
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);
|
|
43
|
-
${
|
|
44
|
-
|
|
45
|
-
`,p=F("EV_AI_HOOK_DEBUG");p==="full"?T(`DEBUG envelope=${l}`):p==="1"&&T(`DEBUG summary=${$y(c,is(u))}`);let f=process.argv.includes(ir),m=F("EV_AI_HOOK_SYNC")==="1";return Pn(n.runnerEvent,n.runnerPlatform)||f||m?Gy(e,u,o):(await zy(e,u,o),!1)}import{createReadStream as Wy}from"node:fs";import{stat as Vy}from"node:fs/promises";import{basename as Jy,resolve as Yy}from"node:path";import{createInterface as Xy}from"node:readline";var qy=1024*1024;function Zy(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&Jy(t).endsWith(".jsonl")}async function sf(e){if(!e||!Zy(e))return null;try{let t=Yy(e),n=await Vy(t);if(!n.isFile())return null;let r=Math.max(0,n.size-qy),o=[],s=Xy({input:Wy(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let l=c.message;if(!l||typeof l!="object")continue;let u=l.model;if(typeof u=="string"&&u.length>0)return u}catch{continue}}return null}catch{return null}}function ar(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent}}function en(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function us(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent}}async function uf(e){let t=Date.now();await lR(e);let{gitRoot:n}=e.manifest;await fs(e,n);let r=us(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Dn(e.hookInput,e.manifest.manifest,r),envelopeFields:ar(e),launchCwd:co(e.hookInput,r),home:eR()}}function af(e){try{return me(Qy(e))}catch{return null}}function lf(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function cf(e,t){let n=e.replaceAll("\\","/");if(!lf(n))return null;let r=me(e),o=me(t),s=af(e)??r,i=af(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function ff(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=cf(e,t)??(lf(r)?null:r),i=cf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function cs(e,t,n,r,o){return pf(e,ff(n,t.gitRoot,t.home),r,o)}function pf(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?tR({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 tR(e){try{let t=e.inRepository?oR(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 df(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 ls(e,t,n){return bt("tool_invoked",{...n,...df(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,en(e,t.home))}function nR(e){return ya(e.runnerEvent,e.runnerPlatform)?[]:Fi(e.hookInput)}function rR(e,t){return ls(e,t,{})}var mf=new Set([...Object.values(tt),".github"]);function oR(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=>mf.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var gf=".codex/config.toml",sR=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",gf]]);function iR(e,t,n,r,o,s,i){if(e===null||t===null||!(i!==null||/^mcp__.+?__.+$/i.test(e)||/^MCP:[^:]+:.+$/i.test(e)||/^MCP:.+__.+$/i.test(e)||e.toLowerCase()===`mcp:${t.toLowerCase()}`))return;let c=s.find(S=>S.name.toLowerCase()===t.toLowerCase()),l=c?sR.get(c.source):o==="codex"?gf:void 0,u=c?.sourcePath??l;if((c?.scope==="user"||l!==void 0)&&u)try{let S=(0,B.userConfigRootFromPath)(u);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:u,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let m=n.slice(f+1),g=m.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!mf.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function aR(...e){for(let t of e)if(t)return t;return null}function ut(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return T(`WARN: ${n} failed open: ${r}`),t}function cR(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 uR(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,Qt=null;async function lR(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!ro(n)){ct.add(t);return}let r=Tt({sessionId:e.sessionId,hostname:an()});if(pc(r)){if(Qt){await Qt;return}Qt=(async()=>{if(ct.has(t)||!ro(n)){ct.add(t);return}if(!mi(n)){ct.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await _f(e,r,Tn(i),no({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:uR(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await bt("session_start",u,ar(e),It,e.manifest.collectorUrl,s,en(e)),o&&(c.commit(),ct.add(t))}finally{gi(n)}})().finally(()=>{Qt=null}),await Qt}}async function fs(e,t,n){try{e.platformAgentId=await la(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,n,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);T(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function _f(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,ks(),Da(t),Ns(),r]),l=ut(o,null,"gitSnapshot"),u=ut(s,"","detectVirt"),p=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await fs(e,e.manifest.gitRoot,l),{operatorResolved:m,fields:{identity:{host:an(),context:t,virt:u||null,cloud:p,git:l},host_env:f,env_vars:za()}}}async function fR(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=Tt({sessionId:e.sessionId,hostname:an()}),o=String(e.runnerPlatform),s=us(e),i=co(e.hookInput,s),a=Tn(n),c=Xl().catch(()=>({})),l=At()?Promise.resolve({commit:()=>{}}):no({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=_f(e,r,a,l),[p,f]=await Promise.allSettled([Xr(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Fl(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:m,fields:g}=await u,S=ut(p,[],"mcpDeclared"),C=ut(f,cR(o),"selfConfig"),A=C.config,x=L(e.hookInput,"model");x&&(A.model=x);let k={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:Dn(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await bt("session_start",k,{...ar(e),...M},It,e.manifest.collectorUrl,t,en(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function pR(e){let t=Date.now(),[,n]=await Promise.all([fs(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?sf(L(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=aR(L(e.hookInput,"status"),L(e.hookInput,"stop_reason"),L(e.hookInput,"reason"),vt(L(e.hookInput,"error")),r==="stop"?we(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=Dn(e.hookInput,e.manifest.manifest,us(e));n&&(s.model=n),r!=="stopfailure"&&!hc(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await bt("session_end",{status:o,...n?{model:n}:{},hook_input:s},ar(e),It,e.manifest.collectorUrl,t,en(e))}async function dR(e){let t=nR(e),n=ma(e.hookInput),r=Ea(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await uf(e);await Promise.all([o?rR(e,s):void 0,t.length===0?void 0:mR(e,s,t),n.length===0?void 0:gR(e,s,n)])}function hf(e,t,n,r){let o=r??Di({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=cs(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&Lr(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??ga({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=cs(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 mR(e,t,n){let r=Rn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=hf(e,t,o,r);return ls(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 gR(e,t,n){return Promise.all(n.map(r=>{let o=fa({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=cs(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??da(r);return ls(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var _R=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function hR(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Ur(e.hookInput);if(r===null)return n.skillName===null?{}:hf(e,t,n.skillName,null);let o=ff(r,t.gitRoot,t.home);for(let s of _R){let i=pf(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 SR=/mcp/i;function ER(e,t,n,r){let o=SR.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?ol(t,n):qn(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function yR(e){let t=await uf(e),n=Ia(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=vr(e.hookInput),i=nl(s,t.home),a=xa(e.hookInput),c=Ra(e.runnerEvent),l=c===!1?Oa(e.hookInput,e.runnerEvent):null,u=vt(L(e.hookInput,"mcp_server_name")),p=u!==null||r!==null&&Nn(r)?await Xr(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=ka(r,p.map(K=>K.name),u??""),g=iR(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,u),S=g===void 0?hR(e,t,n):{},C=f===null?null:Ga(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=ER(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),x=g??S.componentReference,k=S.ruleName??n.ruleName,M=S.commandName??n.commandName,O=ba(e.hookInput);await bt("tool_invoked",{tool_name:r,skill_name:o,...k?{rule_name:k}:{},...M?{command_name:M}:{},success:c,duration_ms:a,...i?{executable:i}:{},...l?{failure_reason:l}:{},...f?{mcp_server:f}:{},...m?{mcp_tool:m}:{},...A,...x?{component_reference:x}:{},...O?{subagent_type:O}:{},...df(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,en(e,t.home))}async function Sf(e){switch(e.internalEvent){case"session_start":await fR(e);return;case"session_end":await pR(e);return;case"skill_invoked":await dR(e);return;case"tool_invoked":await yR(e);return;default:return}}import{existsSync as ds,readFileSync as RR}from"node:fs";import{dirname as CR,isAbsolute as AR,join as IR,relative as bR}from"node:path";function Ef(e){for(let t of Bs){let n=IR(e,t);if(ds(n))return n}}async function xR(e=process.cwd(),t){let n=t??await dr(e);return Ef(n)??Ef(e)}async function OR(e,t){let n=t??await dr(CR(e)),r=bR(n,e);if(r.startsWith("..")||AR(r))return!1;let o=await he("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(T(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function ps(e){let t=RR(e,"utf8");return de(t,{})}function TR(){return{schema_version:mn,mcp_servers:[]}}function kR(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(T(`WARN: ignoring capture_hook_input=full in git-tracked manifest ${t}; use EV_AI_HOOK_CAPTURE_FULL_INPUT=1 or an untracked operator manifest`),delete e.capture_hook_input),e.debug===!0&&r.has("debug")&&(T(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function yf(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await pr(e),o=F("EV_AI_HOOK_MANIFEST"),s=o&&ds(o)?o:void 0,i=s?void 0:ds(yr())?yr():void 0,a=s?void 0:await xR(e,n),c=i?ps(i):void 0,l=a?ps(a):void 0,u,p,f,m=new Set;if(s){u=ps(s),p=s,f=s;for(let x of Object.keys(u))m.add(x)}else if(c&&l){u=Ks(l,c),p=i,f=a;for(let x of Object.keys(l))x in c||m.add(x)}else if(c)u=c,p=i;else if(l){u=l,p=a,f=a;for(let x of Object.keys(l))m.add(x)}else u=TR();delete u.installation_id;let g=f?await OR(f,n):!1;kR(u,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await Ei(n,{sessionId:t.sessionId});return{manifestPath:p??C,manifest:u,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:Ar(u),platformAgentId:u.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as PR,readdirSync as NR,readFileSync as wR,statSync as Rf,unlinkSync as MR,writeFileSync as LR}from"node:fs";import{homedir as cr}from"node:os";import{join as ms}from"node:path";var vR="turns",Cf=1440*60*1e3,UR=100,HR=new Set(["stop","stopfailure","sessionend"]);function gs(e=cr()){return ms(Me(e),vR)}function Af(e,t){return ms(e,Ot(t))}function DR(e,t=Date.now()){let n;try{n=NR(e)}catch{return}let r=0;for(let o of n){if(r>=UR)return;r+=1;try{let s=ms(e,o);t-Rf(s).mtimeMs>Cf&&MR(s)}catch{}}}function FR(e,t,n=cr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=gs(n);PR(s,{recursive:!0}),LR(Af(s,r),o,"utf8")}catch{}}function $R(e,t=cr()){let n=e.trim();if(!n)return"";try{let r=Af(gs(t),n);return Date.now()-Rf(r).mtimeMs>Cf?"":wR(r,"utf8").trim()}catch{return""}}function If(e,t,n,r=cr()){let o=t.trim(),s=HR.has(n.trim().toLowerCase());return s&&DR(gs(r)),o?(FR(e,o,r),o):s?$R(e,r):""}async function bf(e,t,n,r){let o=t??await sn(gn),s=de(o,{}),i=await yf(process.cwd(),{sessionId:Lt(s)});if(!i)return;r&&(i.collectorUrl=r);let a=Ca(s,i.manifest.platform,n),c=Aa(e,a.runnerEvent);if(!c){T(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:If(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await Sf(l)}function jR(e,t=!1){if(F("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Mt(r,o,void 0,n.runner);return Pn(o,s)?!0:t}function xf(e,t){let n=Er(e),r=de(t,{}),o=n.event??Wr(r);return Os()||Sa(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}async function Of(e=process.argv.slice(2)){if(va(),F("EV_AI_HOOK_JUDGE")==="1"){try{await sn(gn)}catch{}return lr(),0}if(e[0]===as){try{await nf(fr)}catch{}return 0}if(e[0]===ir){try{let t=await fr(),n=xf(e.slice(1),t);if(!n)return 0;let{parsed:r}=n;await bf(r.event,t,r.runner,Gr(r))}catch(t){let n=t instanceof Error?t.message:String(t);T(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await sn(gn),n=xf(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!La(o,s,r.runner))return 0;jR(n)?await bf(r.event,t,r.runner,Gr(r)):await of(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);T(`WARN: hook failed open: ${n}`)}finally{lr()}return 0}Of().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
40
|
+
`)){let T=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(A);T?.[1]&&l.add(T[1])}for(let A of Xt(e,"env_vars"))l.add(A);let m=ZE(e,"env_http_headers");for(let[,A]of m)A.length>0&&l.add(A);let g=Yo(e,"bearer_token_env_var");g&&(l.add(g),n.bearer_token_env_var=g),l.size>0&&(n.env_var_names=[...l].sort()),m.length>0&&(n.env_http_header_names=[...new Set(m.map(([A])=>A))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let S=Yo(e,"auth");S&&(n.auth=S);let C=Yo(e,"default_tools_approval_mode");return C&&(n.default_tools_approval_mode=C),QE(n,e),n}var Ne=je(Je(),1);import{createHash as iy}from"node:crypto";import{join as Zt}from"node:path";var ry=300,oy=256;function wl(e,t){if(!t)return e;let n=[...new Set([t,t.replace(/\\/g,"/")])].filter(o=>o.length>1),r=e;for(let o of n)r=r.split(o).join("~");return r}function rr(e){let t=[],n="",r=null;for(let o of e){if(r){o===r?r=null:n+=o;continue}if(o==='"'||o==="'"){r=o;continue}if(/\s/.test(o)){n.length>0&&(t.push(n),n="");continue}n+=o}return n.length>0&&t.push(n),t}function Ml(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function sy(e){return Ml(e,ry)}function Ll(e,t){let n=wl(e.trim(),t),r=rr(n);if(r.length===0)return"";let[o,...s]=r,i=it(o),a=qt(s);return sy([i,...a].join(" "))}function vl(e,t){if(typeof e!="string")return null;let n=wl(e.trim(),t),r=rr(n)[0];if(!r)return null;let o=it(r);return o.length===0?null:Ml(o,oy)}function ay(e,t){if(t!==null)return{package_version:t,package_version_source:"npx_cache"};let n=(0,Ne.pinnedPackageVersionFromSpec)(e);return n===void 0?{}:{package_version:n,package_version_source:"declared_pin"}}function cy(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
41
|
+
`);return iy("sha512").update(t).digest("hex").slice(0,16)}function uy(e){let t=process.platform==="win32"?Zt(L("LOCALAPPDATA")??e,"npm-cache"):Zt(e,".npm"),n=L("npm_config_cache")??L("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Hl(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function ly(e,t,n){let r=cy(e);for(let o of uy(n)){let s=Zt(o,"_npx",r),i=te(Zt(s,"node_modules",...t.split("/"),"package.json"),{}),a=Hl(i.version);if(a!==null)return a;let c=te(Zt(s,"package-lock.json"),{}),u=Hl(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function fy(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function Zo(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,Ne.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,Ne.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:fy(o),...ay(o,ly(r,s,n))}}function Ul(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=rr(e.trim());return n===void 0?null:Zo(n,r,t)}function or(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return Zo(typeof n.command=="string"?n.command:null,r,t)}function Dl(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Zo(yt(n[1]??""),Xt(e,"args"),t)}function my(e){if(!e||typeof e!="object"||Array.isArray(e))return"unknown";let t=e;return typeof t.type=="string"&&t.type.length>0?t.type:typeof t.url=="string"?"http":typeof t.command=="string"?"stdio":"unknown"}function Fl(e,t,n){if(!e.claimFile(t))return;let o=e.readJson(t,{})?.mcpServers;if(!o||typeof o!="object")return;let s=e.componentPath(t);for(let[i,a]of Object.entries(o)){if(e.truncated)return;let c=my(a),u=Tl(a,c);Object.assign(u,or(a,e.home)??{});let l=kl(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:qo(i,u,l),origin:n,enabled:l,attributes:u})}}function $l(e,t,n){if(!py(t)||!e.claimFile(t))return;let r;try{r=dy(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),u=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),l=u===-1?c:c.slice(0,u),p="unknown";/^\s*url\s*=/m.test(l)?p="http":/^\s*command\s*=/m.test(l)&&(p="stdio");let f=Nl(l,p);Object.assign(f,Dl(l,e.home)??{});let m=Pl(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:qo(a,f,m),origin:n,enabled:m,attributes:f})}}import{existsSync as hy,readdirSync as Sy}from"node:fs";import{join as ce}from"node:path";function gy(e){if(e.prompt||e.type==="prompt")return"prompt";let t=e.command??e.bash??e.powershell??"";return/\bnpx\b/i.test(t)?"npx":/\.(sh|bash|zsh|js|mjs|cjs|ts|py)(\s|$|"|')/i.test(t)||/^(\.\/|~\/|\/|[A-Za-z]:[\\/])/.test(t.trim())?"script":"inline"}function _y(e){return Array.isArray(e.hooks)&&e.hooks.length>0?e.hooks:[{type:e.type,command:e.command,bash:e.bash,powershell:e.powershell,prompt:e.prompt}]}function Qo(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let u of _y(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=gy({type:u.type??c.type,command:u.command??c.command,bash:u.bash??c.bash,powershell:u.powershell??c.powershell,prompt:u.prompt??c.prompt}),f=typeof c.matcher=="string"?c.matcher:"",m=X(l),g=f?`${s}:${f}:${p}:${m}`:`${s}:${p}:${m}`,S=`${s}|${f}|${p}|${l}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:X(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:p,action_hash:m,...p!=="prompt"&&l.trim()?{command:Ll(l,e.home)}:{}}})}}}function es(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Qo(e,t,r.hooks,n)}var jl=50;function Qt(e,t,n,r){if(!hy(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(jl,()=>{st(e,{dir:ce(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),st(e,{dir:ce(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),st(e,{dir:ce(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});es(e,ce(t,"hooks","hooks.json"),n),es(e,ce(t,"hooks.json"),n);let i=e.components.length-o,a=s>=jl;return{componentCount:i,expandTruncated:a}}function en(e,t){e.push({kind:"PLUGIN",name:t.pluginKey,path:t.rowPath,content_hash:t.contentHash,origin:"user",enabled:t.enabled,attributes:{...t.marketplace?{marketplace:t.marketplace}:{},...t.version?{version:t.version}:{},scope:t.scope,component_count:t.componentCount,...t.expandTruncated?{expand_truncated:!0}:{}}})}function Bl(e){let t=ce(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ce(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let u=Array.isArray(c)?c:[c],l=u[0]??{},p=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",m=typeof l.version=="string"?l.version:"",g=typeof l.scope=="string"?l.scope:"user",S=`plugin:${a}`,C=0,A=!1;for(let T of u)if(typeof T.installPath=="string"&&T.installPath.length>0){let x=Qt(e,T.installPath,S,p);C+=x.componentCount,A=A||x.expandTruncated}en(e,{pluginKey:a,rowPath:i,enabled:p,scope:g,version:m||void 0,marketplace:f||void 0,componentCount:C,expandTruncated:A,contentHash:X(`${a}|${m}|${g}|${p}|${C}`)})}}function Ey(e){let t=e,n="";try{let r=Sy(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ce(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ce(e,s),n=s)}}catch{}return{installPath:t,version:n}}var yy=/^\d+$/;function Ry(e){let t=e.filter(n=>!yy.test(n.pluginId));return t.length>0?t:e}function Kl(e){let t=[{base:ce(e.home,".cursor/plugins/local"),scope:"local"},{base:ce(e.home,".cursor/plugins/cache"),scope:"cache"}];for(let{base:n,scope:r}of t)if(!e.truncated)for(let o of e.readEntries(n)){if(!o.isDirectory()||e.truncated)continue;if(r==="local"){let a=o.name,c=ce(n,o.name),u=`plugin:${a}`,{componentCount:l,expandTruncated:p}=Qt(e,c,u,!0);en(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:l,expandTruncated:p,contentHash:X(`${a}|local|${l}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ce(n,s))){if(!a.isDirectory())continue;let c=ce(n,s,a.name),{installPath:u,version:l}=Ey(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of Ry(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=Qt(e,a.installPath,u,!0);en(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:l,expandTruncated:p,contentHash:X(`${c}|${a.version}|${l}`)})}}}import{existsSync as Iy}from"node:fs";var Cy=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,ts="<path>",Ay=new RegExp(`${ts}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function sr(e){let t=e.replace(Cy,ts).replace(Ay,ts);return t.length>200?`${t.slice(0,200)}...`:t}var Gl=200,zl=200,ns=16*1024,Wl=6,by=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),xy=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),Oy=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),Ty=new Set(["permissions"]),ky={claude:by,cursor_sandbox:xy,cursor_permissions:Oy,cursor_cli:Ty},Py=new Set(["allow","deny","ask"]);function Xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ir(e){return e.replace(/\\/g,"/")}function rs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>rs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${rs(t[r])}`).join(",")}}`}function Ny(e){return X(`${rs(e)}|settings1`)}function ql(e){let t=ir(e);if(t.endsWith(".claude/settings.json")||t.endsWith(".claude/settings.local.json"))return"claude";if(t.endsWith(".cursor/sandbox.json"))return"cursor_sandbox";if(t.endsWith(".cursor/permissions.json"))return"cursor_permissions";if(t.endsWith(".cursor/cli-config.json")||t.endsWith(".cursor/cli.json"))return"cursor_cli"}function Zl(e,t){if(e!=="claude")return{};let n=ir(t);return n.endsWith("/.claude/remote-settings.json")?{profile:"claude",managedSource:"server"}:n.includes("/managed-settings.d/")&&n.endsWith(".json")?{profile:"claude",managedSource:"file_dropin"}:n.endsWith("/managed-settings.json")?{profile:"claude",managedSource:"file"}:{profile:"claude"}}function Ql(e){let t=ir(e).replace(/\/+$/,"");return t.length<=1?"":t}function ef(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function wy(e,t){let n=ir(e);if(n==="~"||n.startsWith("~/"))return n;let r=Ql(t);if(!r)return n;let o=n.slice(0,r.length);if(!(ef(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var Vl=new Map;function My(e){let t=Vl.get(e);if(t!==void 0)return t;let n=Ql(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,ef(e)?"gi":"g")}return Vl.set(e,r),r}function Ly(e,t){let n=My(t);return n?e.replace(n,"~"):e}function Jl(e,t){return e.length<=zl?e:(t.truncated=!0,e.slice(0,zl))}function tf(e,t){return e.length<=Gl?e:(t.truncated=!0,e.slice(0,Gl))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return Jl(wy(e,n),r);let o=t==="rule"?sr(e):e;return Jl(Ly(o,n),r)}if(typeof e=="number"||typeof e=="boolean"||e===null)return typeof e=="number"&&!Number.isFinite(e)?void 0:e;if(Array.isArray(e)){let o=tf(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(Xe(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function Yl(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";Py.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function vy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=tf(s,n);r[o]=a.map(c=>{if(!Xe(c))return ne(c,"plain",t,n);let u={};for(let[l,p]of Object.entries(c)){let m=ne(p,l==="path"?"path":"plain",t,n);m!==void 0&&(u[l]=m)}return u});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function Hy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function Uy(e,t,n){if(!Xe(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=Hy(s,t,n):o==="credentials"?i=vy(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function Dy(e,t,n,r,o){return n==="claude"?e==="permissions"?Yl(t,r,o):e==="sandbox"?Uy(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?Yl(t,r,o):ne(t,"plain",r,o)}function tn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function os(e,t){return e?`${e}.${t}`:t}function ss(e,t,n,r){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o-=1){let s=e[o];s!==null&&typeof s=="object"&&(t+1>=Wl?(e.splice(o,1),r.add(n)):ss(s,t+1,n,r))}return}if(!(e===null||typeof e!="object"))for(let[o,s]of Object.entries(e))s!==null&&typeof s=="object"&&(t+1>=Wl?(delete e[o],r.add(os(n,o))):ss(s,t+1,os(n,o),r))}function nf(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:tn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))nf(o,os(t,r),n)}function Fy(e,t,n){let r=tn(e);if(r<=ns)return;t.truncated=!0;let o=[];for(nf(e,"",o);r>ns;){let s;for(let c of o)c.items.length>0&&(!s||c.bytes>s.bytes)&&(s=c);if(!s)break;let i=s.items.pop(),a=tn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;tn(e)>ns;){let s,i=-1;for(let[a,c]of Object.entries(e)){let u=tn(c);u>i&&(s=a,i=u)}if(s===void 0)break;delete e[s],n.add(s)}}function $y(e,t,n){let r=ky[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let u=Dy(c,e[c],t,n,o);u!==void 0&&(s[c]=u)}i.sort();let a=new Set;return ss(s,1,"",a),a.size>0&&(o.truncated=!0),Fy(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function Xl(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:Ny(t.attributes),attributes:t.attributes};e.push(n)}function is(e,t,n,r){if(!e.claimFile(t)||!Iy(t))return;let o=Fs(t);if(!o.ok||!Xe(o.value)){if(r.profile){let u=!o.ok&&o.reason==="read"?"read_error":"parse_error",l={profile:r.profile,[u]:!0};r.managedSource&&(l.managed_source=r.managedSource),Xl(e,{kind:r.kind,absPath:t,origin:n,attributes:l})}return}let s=o.value,i=s.hooks;if(Xe(i)&&Qo(e,t,i,n),!r.profile)return;let a=$y(s,r.profile,e.home),c={profile:r.profile,settings:a.settings,keys_omitted:a.keys_omitted};a.truncated&&(c.truncated=!0),a.trimmed_paths.length>0&&(c.trimmed_paths=a.trimmed_paths),r.managedSource&&(c.managed_source=r.managedSource),Xl(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as jy}from"node:fs";import{join as we}from"node:path";var rf=".claude/skills/synced",of=".claude/plugins/synced";function sf(e){return[we(e,rf),we(e,of)]}function ar(e){return typeof e=="string"&&e.length>0?e:void 0}function af(e){let t=we(e.home,rf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.skills??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}let a=we(r,i.name,"SKILL.md");if(!i.isDirectory()||!jy(a))continue;let c=s.get(i.name),u=ar(c?.source),l=ar(c?.creatorType);Et(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...u?{source:u}:{},...l?{creator_type:l}:{}}})}}}function cf(e){let t=we(e.home,of);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=we(t,n.name),o=e.readJson(we(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=ar(a?.marketplaceName),u=ar(a?.version),l=c?`${i.name}@${c}`:i.name,p=we(r,i.name),{componentCount:f,expandTruncated:m}=Qt(e,p,`plugin:${l}`,!0);en(e,{pluginKey:l,rowPath:e.componentPath(p),enabled:!0,scope:"synced",version:u,marketplace:c,componentCount:f,expandTruncated:m,contentHash:X(`${l}|${u??""}|synced|${f}`)})}}}function Ky(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)st(e,{dir:Rt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:sf(e.home)});for(let i of n.dirs)st(e,{dir:Rt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=El(i.map(c=>Rt(r,c)));a&&Et(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:By(a)})}for(let i of Gi(n))is(e,Rt(r,i),o,{kind:"SETTINGS",profile:ql(i)});for(let i of n.mcpJson??[])Fl(e,Rt(r,i),o);for(let i of n.mcpToml??[])$l(e,Rt(r,i),o);if(s){if(n.managed){for(let i of xn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=Zl(n.managed,i);is(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(Bl(e),cf(e),af(e)):n.plugins==="cursor"&&Kl(e)}}function uf(e,t){try{let n=new Vn(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Ky(n,{layout:r,levelDir:t.levelDir,origin:t.origin,includeMachineWide:t.includeMachineWide});return{scopeRef:t.scopeRef,anchor:t.levelDir,components:n.components,truncated:n.truncated}}catch{return}}function as(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=uf(t,{layouts:Object.values(pt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Be,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Ge),u=bo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>Wi(c,l)});i=u.parentRel;for(let l of u.anchors){let p=fo(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let f=uf(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:xo,scopeRef:p});f&&(r[l.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function cs(e,t,n={}){let r=n.truncated===!0,o=Kt(e),s=new Set(e.map(l=>he(l.path,l.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let l of e){let p=he(l.path,l.name);c[p]!==l.content_hash&&a.push(l)}let u=[];if(!r){for(let l of Object.keys(c))if(!s.has(l)){let p=Bc(l);p&&u.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:u,unchanged:a.length===0&&u.length===0}}var ff=2*1024*1024,Gy=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function us(e,t,n){let r=new Set(t.map(s=>he(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(he(s.path,s.name))||o.push(s));return o}function ls(e,t,n){let r=new Set(e);for(let s of t)r.add(s);let o=new Set(n.map(s=>s.content_hash));return[...r].filter(s=>o.has(s))}function lf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function pf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function fs(e,t=ff){let n=[],r=[];for(let l of e)Gy.has(l.kind)?n.push(l):r.push(l);r.sort((l,p)=>(l.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,u=[];for(let l of o){let p=s.length>0?1:0,f=lf(l)+p;if(i+f<=t){s.push(l),i+=f,l.text!==void 0&&u.push(l.content_hash);continue}if(l.text!==void 0){let m=pf(l),g=lf(m)+p;if(i+g<=t){s.push(m),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:u}}function ps(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:pf(n))}var zy=["user","cwd","repo","parent"];function ds(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let M of zy){let k=t.scopes[M];if(!k)continue;let K=n(M,k.scopeRef),D=K.components,b=cs(k.components,D,{forceFull:D===void 0,truncated:k.truncated}),N=new Set(K.textHashes),H=us(k.components,b.upserts,N),d=ps([...b.upserts,...H],N);s.push({scope:M,walk:k,delta:b,outgoing:d,outgoingKeys:new Set(d.map(I=>he(I.path,I.name))),deliveredTextHashes:N,cachedComponents:D})}let i=s.flatMap(M=>M.outgoing),a=fs(i,o),c=new Set(a.components.map(M=>he(M.path,M.name))),u=[],l=[],p=[],f=[],m=[],g=[],S=[];for(let M of s){let{scope:k,walk:K,delta:D}=M;g.push(...K.components),u.push(k);let b=a.components.filter(I=>M.outgoingKeys.has(he(I.path,I.name))),N=[...M.outgoingKeys].some(I=>!c.has(I)),H=D.truncated||N;H?p.push(k):D.full&&l.push(k),f.push(...b),!D.full&&!H&&m.push(...D.removed);let d=D.full?{}:{...M.cachedComponents??{}};if(!H)for(let I of D.removed)delete d[he(I.path,I.name)];for(let I of b)d[he(I.path,I.name)]=I.content_hash;S.push({scope:k,scopeRef:K.scopeRef,components:d,textHashes:ls(M.deliveredTextHashes,b.filter(I=>I.text!==void 0).map(I=>I.content_hash),K.components),collectedAtMs:r,included:b.length>0||D.removed.length>0&&!H||D.full})}let C={user_spec_hash:Kt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};u.length>0&&(C.user_spec_scopes=u,C.user_spec_full_scopes=l,C.user_spec_truncated_scopes=p,C.user_spec_cwd_in_git_repo=t.cwdInGitRepo),l.length>0&&l.length===u.length&&(C.user_spec_full=!0),f.length>0&&(C.user_spec=f),m.length>0&&(C.user_spec_removed=m),a.textDeferredCount>0&&(C.user_spec_text_deferred=a.textDeferredCount);let A=t.scopes.cwd;A&&(C.user_spec_cwd_scope_ref=A.scopeRef);let T=t.scopes.repo;T&&(C.user_spec_repo_scope_ref=T.scopeRef);let x=t.scopes.parent;return x&&(C.user_spec_parent_scope_ref=x.scopeRef,t.parentRel&&(C.user_spec_parent_rel=t.parentRel)),{fields:C,scopes:S}}var cr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function ms(e){return e==="cwd"||e==="repo"||e==="parent"}function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gs(e){return!nn(e)||!nn(e.components)||!Object.values(e.components).every(t=>typeof t=="string")||!Array.isArray(e.text_hashes)||!e.text_hashes.every(t=>typeof t=="string")?!1:typeof e.collected_at_ms=="number"&&Number.isFinite(e.collected_at_ms)}function df(e){return Wy(e)}function mf(e){return Vy(e)}function gf(e){return Jy(e)}function Wy(e){if(!nn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Vy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function _f(e,t){if(!nn(e))return;let n=e[t];return gs(n)?n:void 0}function Jy(e){if(!nn(e))return{};let t={};for(let[n,r]of Object.entries(e))gs(r)&&(t[n]=r);return t}function _s(e,t=20){let n=[];for(let[r,o]of Object.entries(e))gs(o)&&n.push([r,o]);return n.sort((r,o)=>o[1].collected_at_ms-r[1].collected_at_ms),Object.fromEntries(n.slice(0,t))}var Qy=["allow","deny","ask"];function lr(e){let t=te(e,{}),n=[];for(let r of Qy)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:sr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function eR(e){let{serverManaged:t,fileBased:n}=Dr(process.platform,e),r=lr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=lr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function tR(e){let t=new Set,n=[];for(let r of e){let o=`${r.mode}\0${r.key}`;t.has(o)||(t.add(o),n.push(r))}return n}var nR=10,rR="self-config-cache.json",Sf=4;function At(){return L("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function oR(){return L("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var sR={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function iR(e,t=ee){let n=sR[e];if(!n||n.length===0)return null;let r=async o=>{let s=n[o];if(s===void 0)return null;let a=((await t(s,["--version"],2e3)).split(`
|
|
42
|
+
`)[0]??"").trim();return a||r(o+1)};return r(0)}function aR(e=hf()){return Ct(e,".ev-ai","agent-hook",rR)}function cR(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
43
|
+
`);return X(n)}function ur(e,t,n=!1){let r=cR(e),o=e.length;return t===r?n?{hash:r,count:o,truncated:n}:{hash:r,count:o}:n?{hash:r,count:o,entries:e,truncated:n}:{hash:r,count:o,entries:e}}function hs(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>Ct(e,a)),...n]){let a=Zy(i);if(s.has(a))continue;s.add(a);let c=Cr(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function uR(e){return Xy(e)?ge(qy(e,"utf8"),{}):{}}function lR(e,t){try{me(e,`${JSON.stringify(t)}
|
|
44
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);O(`WARN: self-config cache write failed open: ${r}`)}}function fR(e,t,n){if(t==="user")return{components:df(e.user_spec_components),textHashes:mf(e.user_spec_text_hashes)};if(!ms(t))return{components:void 0,textHashes:[]};let r=_f(e[cr[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function pR(e,t,n,r){let o={...e,send_count:n};for(let s of Object.keys(t)){let i=t[s];i.entries!==void 0&&(o[s]=i.hash)}if(r){o.user_spec_layout_version=Sf,r.home&&(o.user_spec_collected_at_ms=r.home.collectedAtMs,r.home.included&&(o.user_spec=r.hash,o.user_spec_components=r.home.components),o.user_spec_text_hashes=r.home.textHashes);for(let s of r.project){if(!ms(s.scope))continue;let i=cr[s.scope],a=gf(o[i]),c=a[s.scopeRef];a[s.scopeRef]={components:s.included?s.components:c?.components??{},text_hashes:s.textHashes,collected_at_ms:s.collectedAtMs},o[i]=_s(a)}}return o}async function Ef(e,t=process.cwd(),n=hf(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await iR(e),a="",c=[];if(o){let H=eR(n),d=lr(Ct(n,".claude/settings.json")),I=lr(Ct(t,".claude/settings.local.json"));a=H.model||I.model||d.model,c=tR([...H.permissionKeys,...d.permissionKeys,...I.permissionKeys]).slice(0,200)}let u={present:!1,size:0},l=H=>{let d=[],I=!1;for(let U of H){let ue=$s(Ct(n,U));if(d=d.concat(ue.entries),I=I||ue.truncated,d.length>=Be){d=d.slice(0,Be),I=!0;break}}return{entries:d,truncated:I}},p=aR(n),f=uR(p),m=f[e]??{},g=(m.send_count??0)+1,S=g>0&&g%nR===0,C=H=>S?void 0:m[H],A=l(We.skills),T=l(We.subagents),x=l(We.commands),M=l(We.rules),k={skills:ur(A.entries,C("skills"),A.truncated),subagents:ur(T.entries,C("subagents"),T.truncated),commands:ur(x.entries,C("commands"),x.truncated),rules:ur(M.entries,C("rules"),M.truncated)},K={runner_platform:e,config_scope:"user",cli_version:i,claude_version:o?i:null,model:o&&a||null,permission_keys:c,user_scope:{skills:k.skills,subagents:k.subagents,commands:k.commands,rules:k.rules,memory:hs(n,We.memory),settings:hs(n,We.settings,Vi(n)),mcp:hs(n,We.mcp)},local_settings:o?Cr(Ct(t,".claude/settings.local.json")):u},D=null,b=r.nowMs??Date.now();if(!At()){let H=m.user_spec_layout_version!==Sf,d=as(e,n,{launchCwd:oR()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(d.scopes).length>0){let I=ds({collected:d,cacheFor:(U,ue)=>H?{components:void 0,textHashes:[]}:fR(m,U,ue),nowMs:b});Object.assign(K,I.fields),D={hash:I.fields.user_spec_hash,home:I.scopes.find(U=>U.scope==="user")??null,project:I.scopes.filter(U=>U.scope!=="user")}}}let N=pR(m,k,g,D);return{config:K,commit:()=>{f[e]=N,lR(p,f)}}}import{homedir as PR}from"node:os";import{join as Cf}from"node:path";function at(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as fr}from"node:path";function dR(e){return fr(e,".ev-ai","agent-hook","js","signed-v1")}function mR(e){return fr(dR(e),"scopes")}function yf(e,t){return fr(mR(e),t)}function Rf(e){return fr(e,"attempts")}function Ss(e){return String(e).padStart(10,"0")}var gR=/^(\d{10})$/,_R=/^(\d{10})\.done$/,hR=/^[0-9a-f]{128}$/,SR=64;async function xf(e,t,n=!1){let r=Rf(t),o=await Fi(e,r),s=new Map,i=new Map,a=Af(o,gR),c=Af(o,_R),u=async f=>{let m=await bf(e,Cf(r,ER(f)));return m&&s.set(f,{record:RR(m.value),mtimeMs:m.mtimeMs}),m!==void 0},l=async f=>{let m=CR((await bf(e,Cf(r,yR(f))))?.value);return m&&i.set(f,m),m!==void 0};if(!n)return await Promise.all([...a.map(u),...c.map(l)]),{claims:s,dones:i};await Promise.all([If(a,u),If(c,l)]);let p=rn(s);return p<rn(i)&&c.includes(p)&&await l(p),{claims:s,dones:i}}function Af(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function If(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function rn(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Of(e){if(e.record!=="empty"&&e.record.started_at){let t=Date.parse(e.record.started_at);if(Number.isFinite(t))return t}return e.mtimeMs}function ER(e){return Ss(e)}function yR(e){return`${Ss(e)}.done`}async function bf(e,t){let n;try{n=await e.stat(t)}catch(o){if(Mt(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>br)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>br?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function RR(e){if(!at(e))return"empty";let t={};return typeof e.started_at=="string"&&(t.started_at=e.started_at),(e.owner==="bootstrap"||e.owner==="refresh")&&(t.owner=e.owner),e.resync===!0&&(t.resync=!0),t}function CR(e){if(!at(e))return;let t=e;if(typeof t.finished_at!="string"||typeof t.outcome!="string"||typeof t.interval_s!="number"||!Number.isFinite(t.interval_s))return;let n=AR(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function AR(e){if(!at(e))return;let t=e;if(t.kind==="bundled")return t.why==="server"||t.why==="bootstrap_failed"?{kind:"bundled",why:t.why}:void 0;if(t.kind==="cached"&&typeof t.digest=="string"&&hR.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&IR(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function IR(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==SR||t.toString("base64")!==e))return t.toString("hex")}function TR(e){return e==="bootstrap"?3e3:6e4}function kR(e,t){let n=rn(e.claims);if(n===0)return;let r=rn(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Of(o),c=o.record==="empty"?void 0:o.record.owner,u=TR(c)+3e4;if(t-a>u)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:Tf(e.dones.get(r)?.selection)}}if(r===0)return;let i=e.dones.get(r);if(i)return{n:r,latest_claim:n,outcome:i.outcome,finished_at:i.finished_at,selection_version:Tf(i.selection)}}async function kf(e,t,n){try{let r=await xf($i(),yf(e,t),!0);return kR(r,n)}catch{return}}function Tf(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function Pf(e=PR()){let t=io()?.launcherScope;if(!t)return{};let n=await kf(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function It(e,t,n){let r={installation_id:n.installationId};n.platformAgentId&&(r.platform_agent_id=n.platformAgentId),n.sessionId&&(r.session_id=n.sessionId),n.turnId&&(r.turn_id=n.turnId);let o={schema_version:yn,event:e,timestamp:ln(),session_id:n.sessionId||null,turn_id:n.turnId||null,installation_id:n.installationId,platform:n.runnerPlatform,platform_agent_id:n.platformAgentId||null,runner_event:n.runnerEvent||null,agent_hook_version:Mr,host_arch:process.arch,node_version:process.version,policy_version:null,policy_capabilities:[],...n.promptCaptureSource!==void 0?{prompt_capture_source:n.promptCaptureSource}:{},correlation:r,payload:t},s=io();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=mc(n.collectorUrl,s.launcherScope)),e==="session_start"&&(n.launcher_scope&&(o.launcher_scope=n.launcher_scope),n.launcher_attempt&&(o.launcher_attempt=n.launcher_attempt)),o}import{existsSync as Lf}from"node:fs";import{spawn as vf}from"node:child_process";import{fileURLToPath as KR}from"node:url";import{gzipSync as NR}from"node:zlib";function Es(e){return L("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<mi?{body:e}:{body:NR(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function pr(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function ys(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}import{readFileSync as wR,statSync as MR}from"node:fs";import{homedir as Rs}from"node:os";import{join as LR}from"node:path";var vR="hook-config.json",HR=10080*60*1e3,UR=1440*60*1e3,DR=2048,FR=1024*1024;function bt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Nf(e=Rs()){return LR(pe(e),vR)}function wf(e){let t=Nf(e);try{let n=MR(t);if(!n.isFile()||n.size>FR)return;let r=JSON.parse(wR(t,"utf8"));return bt(r)?r:void 0}catch(n){return(n instanceof Error&&"code"in n?n.code:void 0)==="ENOENT"?null:void 0}}function $R(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function dr(e,t=Rs(),n=Date.now()){if(!e)return;let r=wt(e);if(!r)return;let o=wf(t),s=o?o[r]:void 0;if(!bt(s)||!bt(s.config))return;let i=s.fetched_at_ms;if(!(typeof i!="number"||n-i>HR))return $R(s.config)}function jR(e){let t=e.trim();if(t==="")return;let n;try{n=JSON.parse(t)}catch{return}if(!(!bt(n)||!bt(n.hook_config))&&!(Buffer.byteLength(JSON.stringify(n.hook_config),"utf8")>DR))return n.hook_config}function BR(e,t,n,r){let o={...e},s=o[t];if(Object.keys(n).length===0)return s===void 0?void 0:(delete o[t],o);if(!(bt(s)&&JSON.stringify(s.config)===JSON.stringify(n)&&typeof s.fetched_at_ms=="number"&&s.fetched_at_ms<=r&&r-s.fetched_at_ms<UR))return o[t]={config:n,fetched_at_ms:r},o}function Mf(e,t,n=Rs(),r=Date.now()){let o=jR(e),s=t?wt(t):void 0;if(o===void 0||!s)return"skipped";try{let i=wf(n);if(i===void 0)return"skipped";let a=BR(i??{},s,o,r);return a?(me(Nf(n),`${JSON.stringify(a,null,2)}
|
|
45
|
+
`),Object.keys(o).length===0?"cleared":"written"):"unchanged"}catch(i){let a=i instanceof Error?i.message:String(i);return O(`WARN: hook config write failed open: ${a}`),"failed"}}var Cs="__post",mr="__work";async function GR(e,t,n={}){if(At())return e;let r=await mo(n.gitRoot??process.cwd(),ee,process.env,{runnerPlatform:t,home:n.home}),o=at(e.self_config)?e.self_config:{};return{...e,self_config:{...o,runner_platform:typeof o.runner_platform=="string"?o.runner_platform:t,operator:r}}}function zR(e,t){let n=at(e.payload)?Object.keys(e.payload):[],r=e.correlation&&typeof e.correlation=="object"?Object.keys(e.correlation):[];return JSON.stringify({event:e.event,schema_version:e.schema_version,agent_hook_version:e.agent_hook_version,host_arch:e.host_arch,node_version:e.node_version,build_ms:e.build_ms,body_bytes:t,correlation_keys:r,payload_keys:n})}function Hf(e){switch(e){case"session_start":return li;case"session_end":return fi;case"tool_invoked":case"skill_invoked":return Nr;default:return Nr}}function WR(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
46
|
+
${n}`}function Uf(e,t=[],n=process.execPath,r=import.meta.url,o=Lf){if(ui(n))return{command:n,args:[e,...t]};let s=KR(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function VR(e=process.execPath,t=import.meta.url,n=Lf){return Uf(Cs,[],e,t,n)}function JR(e){let t=e.indexOf(`
|
|
47
|
+
`);if(t<0)return null;let n;try{n=JSON.parse(e.slice(0,t))}catch{return null}return{meta:n,body:e.slice(t+1)}}async function Df(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();Mf(n,t)}catch{}}async function Ff(e,t=fetch){let n=await e(),r=JR(n);if(!r)return;let{meta:o,body:s}=r,i=Es(s),a=pr(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await Df(c,o.url)}catch{}}async function YR(e,t,n,r=fetch){let o=Hf(e),s=Es(t),i=pr(s.contentEncoding),a=ys(s.body);O(`POST event=${e} url=${Sn(n)} size=${a} encoding=${s.contentEncoding??"identity"} platform=${process.platform}`);let c=Date.now();try{let u=await r(n,{method:"POST",headers:i,body:s.body,signal:AbortSignal.timeout(o)});if(!u.ok&&s.contentEncoding==="gzip"&&(u.status===400||u.status===415)){try{await u.text()}catch{}O(`POST gzip rejected http=${u.status} \u2014 retrying uncompressed`),u=await r(n,{method:"POST",headers:pr(),body:t,signal:AbortSignal.timeout(o)})}let l=Date.now()-c;if(u.ok)return O(`POST outcome=ok elapsed_ms=${l} http=${u.status}`),await Df(u,n),!0;let p=(await u.text()).slice(0,200).replace(/[\n\r]/g,"");return O(`POST outcome=fail elapsed_ms=${l} http=${u.status} body=${p}`),!1}catch(u){let l=Date.now()-c,p=u instanceof Error?u.message:String(u);return O(`POST outcome=fail elapsed_ms=${l} http=000 body=${p}`),!1}}async function $f(e,t,n,r,o){try{let s=r(e,t,{detached:!0,stdio:["pipe","ignore","ignore"],windowsHide:!0});s.on("error",()=>{}),s.stdin.on("error",()=>{});let i=!1;return await new Promise(a=>{let c=setTimeout(()=>{if(!i){O(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},pi),u=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>u()),s.stdin.once("error",()=>u())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return O(`WARN: ${o} spawn failed open: ${i}`),null}}async function XR(e,t,n,r=vf,o=VR){let s=Hf(e),i=WR(n,s,t),{command:a,args:c}=o();return $f(a,c,i,r,"detached post")}async function jf(e,t,n=vf,r=Uf){let{command:o,args:s}=r(mr,t);return $f(o,s,e,n,"detached work")}async function xt(e,t,n,r,o,s,i){if(!o)return O("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!hn(o))return O(`WARN: collector URL blocked (https required): ${Sn(o)}`),!1;let a=await GR(t,n.runnerPlatform,i),c=r(e,a,{...n,collectorUrl:o});s!==void 0&&(c.build_ms=Math.max(0,Date.now()-s));let u=JSON.stringify(c),l=`${u}
|
|
48
|
+
`,p=L("EV_AI_HOOK_DEBUG");p==="full"?O(`DEBUG envelope=${u}`):p==="1"&&O(`DEBUG summary=${zR(c,ys(l))}`);let f=process.argv.includes(mr),m=L("EV_AI_HOOK_SYNC")==="1";return Un(n.runnerEvent,n.runnerPlatform)||f||m?YR(e,l,o):(await XR(e,l,o),!1)}import{createReadStream as qR}from"node:fs";import{stat as ZR}from"node:fs/promises";import{basename as QR,resolve as eC}from"node:path";import{createInterface as tC}from"node:readline";var nC=1024*1024;function rC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&QR(t).endsWith(".jsonl")}async function Bf(e){if(!e||!rC(e))return null;try{let t=eC(e),n=await ZR(t);if(!n.isFile())return null;let r=Math.max(0,n.size-nC),o=[],s=tC({input:qR(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let u=c.message;if(!u||typeof u!="object")continue;let l=u.model;if(typeof l=="string"&&l.length>0)return l}catch{continue}}return null}catch{return null}}function gr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Xc(e.manifest.manifest,e.manifest.hookConfig)}}function sn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Is(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:Ro(e.manifest.hookConfig)}}async function zf(e){let t=Date.now();await gC(e);let{gitRoot:n}=e.manifest;await xs(e,n);let r=Is(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:zn(e.hookInput,e.manifest.manifest,r),envelopeFields:gr(e),launchCwd:Ao(e.hookInput,r),home:sC()}}function Kf(e){try{return _e(oC(e))}catch{return null}}function Wf(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Gf(e,t){let n=e.replaceAll("\\","/");if(!Wf(n))return null;let r=_e(e),o=_e(t),s=Kf(e)??r,i=Kf(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function Vf(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Gf(e,t)??(Wf(r)?null:r),i=Gf(e,n);return{repositorySourcePath:s,userSourcePath:i}}function As(e,t,n,r,o){return Jf(e,Vf(n,t.gitRoot,t.home),r,o)}function Jf(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?iC({installableKind:r,sourcePath:s,nativeKey:i,inRepository:t!==null,platformAgentId:e.platformAgentId,installationId:e.manifest.installationId}):void 0;return{sourcePath:s,nativeKey:i,componentReference:a}}function iC(e){try{let t=e.inRepository?uC(e.platformAgentId,e.sourcePath):(0,B.installationRootExternalKey)(e.installationId,(0,B.userConfigRootFromPath)(e.sourcePath));return t?(0,B.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function Yf(e){let t=e.policyFindings;return t===void 0||t.length===0?{}:{policy_findings:t,...e.policyJudgeSpawnMs!==void 0?{policy_judge_spawn_ms:e.policyJudgeSpawnMs}:{}}}function bs(e,t,n){return xt("tool_invoked",{...n,...Yf(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,sn(e,t.home))}function aC(e){return va(e.runnerEvent,e.runnerPlatform)?[]:ea(e.hookInput)}function cC(e,t){return bs(e,t,{})}var Xf=new Set([...Object.values(tt),".github"]);function uC(e,t){let n=e.indexOf(":");if(n<=0)return null;let r=e.slice(0,n),o=t.replaceAll("\\","/").split("/").filter(Boolean),s=o.findIndex(i=>Xf.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var qf=".codex/config.toml",lC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",qf]]);function fC(e,t,n,r,o,s,i){if(e===null||t===null||!(i!==null||/^mcp__.+?__.+$/i.test(e)||/^MCP:[^:]+:.+$/i.test(e)||/^MCP:.+__.+$/i.test(e)||e.toLowerCase()===`mcp:${t.toLowerCase()}`))return;let c=s.find(S=>S.name.toLowerCase()===t.toLowerCase()),u=c?lC.get(c.source):o==="codex"?qf:void 0,l=c?.sourcePath??u;if((c?.scope==="user"||u!==void 0)&&l)try{let S=(0,B.userConfigRootFromPath)(l);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:l,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let m=n.slice(f+1),g=m.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!Xf.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function pC(...e){for(let t of e)if(t)return t;return null}function ut(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return O(`WARN: ${n} failed open: ${r}`),t}function dC(e){let t={present:!1,size:0},n={hash:"",count:0};return{config:{runner_platform:e,config_scope:"user",cli_version:null,claude_version:null,model:null,permission_keys:[],user_scope:{skills:n,subagents:n,commands:n,rules:n,memory:t,settings:t,mcp:t},local_settings:t},commit:()=>{}}}function mC(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var ct=new Set,on=null;async function gC(e){if(At())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(ct.has(t))return;if(!_o(n)){ct.add(t);return}let r=kt({sessionId:e.sessionId,hostname:dn()});if(Gc(r)){if(on){await on;return}on=(async()=>{if(ct.has(t)||!_o(n)){ct.add(t);return}if(!Pi(n)){ct.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:u}=await Zf(e,r,vn(i),go({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),l={...u,self_config:mC(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await xt("session_start",l,gr(e),It,e.manifest.collectorUrl,s,sn(e)),o&&(c.commit(),ct.add(t))}finally{Ni(n)}})().finally(()=>{on=null}),await on}}async function xs(e,t,n){try{e.platformAgentId=await ba(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,n,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);O(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function Zf(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,Gs(),_c(t),Ws(),r]),u=ut(o,null,"gitSnapshot"),l=ut(s,"","detectVirt"),p=ut(i,null,"probeCloud"),f=ut(a,{},"hostEnv"),m=ut(c,{commit:()=>{}},"resolveOperatorForSend");return await xs(e,e.manifest.gitRoot,u),{operatorResolved:m,fields:{identity:{host:dn(),context:t,virt:l||null,cloud:p,git:u},host_env:f,env_vars:Ac()}}}async function _C(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=kt({sessionId:e.sessionId,hostname:dn()}),o=String(e.runnerPlatform),s=Is(e),i=Ao(e.hookInput,s),a=vn(n),c=Pf().catch(()=>({})),u=At()?Promise.resolve({commit:()=>{}}):go({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),l=Zf(e,r,a,u),[p,f]=await Promise.allSettled([co(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Ef(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:m,fields:g}=await l,S=ut(p,[],"mcpDeclared"),C=ut(f,dC(o),"selfConfig"),A=C.config,T=v(e.hookInput,"model");T&&(A.model=T);let x={...g,mcp:{declared:S},self_config:A,run_meta:{trigger:e.hookSource||"startup"},hook_input:zn(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M=await c;await xt("session_start",x,{...gr(e),...M},It,e.manifest.collectorUrl,t,sn(e))&&(C.commit(),m.commit(),ct.add(e.manifest.installationId))}async function hC(e){let t=Date.now(),[,n]=await Promise.all([xs(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?Bf(v(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=pC(v(e.hookInput,"status"),v(e.hookInput,"stop_reason"),v(e.hookInput,"reason"),$t(v(e.hookInput,"error")),r==="stop"?Me(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=zn(e.hookInput,e.manifest.manifest,Is(e));n&&(s.model=n),r!=="stopfailure"&&!qc(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await xt("session_end",{status:o,...n?{model:n}:{},hook_input:s},gr(e),It,e.manifest.collectorUrl,t,sn(e))}async function SC(e){let t=aC(e),n=ka(e.hookInput),r=La(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await zf(e);await Promise.all([o?cC(e,s):void 0,t.length===0?void 0:EC(e,s,t),n.length===0?void 0:yC(e,s,n)])}function Qf(e,t,n,r){let o=r??Qi({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=As(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&$r(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??Pa({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=As(e,t,i,B.ComponentKind.COMMAND,B.nativeKeyForCommandPath);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function EC(e,t,n){let r=Tn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=Qf(e,t,o,r);return bs(e,t,{tool_name:"Skill",skill_name:o,...s.commandName===void 0?{}:{command_name:s.commandName},...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}function yC(e,t,n){return Promise.all(n.map(r=>{let o=xa({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=As(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Ta(r);return bs(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var RC=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function CC(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Br(e.hookInput);if(r===null)return n.skillName===null?{}:Qf(e,t,n.skillName,null);let o=Vf(r,t.gitRoot,t.home);for(let s of RC){let i=Jf(e,o,s.kind,s.nativeKeyFn);if(i.nativeKey!==null)return{...i.componentReference===void 0?{}:{componentReference:i.componentReference},...s.kind===B.ComponentKind.RULE?{ruleName:i.nativeKey}:{},...s.kind===B.ComponentKind.COMMAND?{commandName:i.nativeKey}:{}}}return{}}var AC=/mcp/i;function IC(e,t,n,r){let o=AC.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?Ul(t,n):or(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function bC(e){let t=await zf(e),n=Da(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=jr(e.hookInput),i=vl(s,t.home),a=$a(e.hookInput),c=Ha(e.runnerEvent),u=c===!1?ja(e.hookInput,e.runnerEvent):null,l=$t(v(e.hookInput,"mcp_server_name")),p=l!==null||r!==null&&Dn(r)?await co(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:m}=Ka(r,p.map(K=>K.name),l??""),g=fC(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),p,l),S=g===void 0?CC(e,t,n):{},C=f===null?null:Cc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),A=IC(e,s,t.home,{hasMcpIdentity:!!f||!!m,declaredConfig:C}),T=g??S.componentReference,x=S.ruleName??n.ruleName,M=S.commandName??n.commandName,k=Fa(e.hookInput);await xt("tool_invoked",{tool_name:r,skill_name:o,...x?{rule_name:x}:{},...M?{command_name:M}:{},success:c,duration_ms:a,...i?{executable:i}:{},...u?{failure_reason:u}:{},...f?{mcp_server:f}:{},...m?{mcp_tool:m}:{},...A,...T?{component_reference:T}:{},...k?{subagent_type:k}:{},...Yf(e),hook_input:t.hookInput},t.envelopeFields,It,e.manifest.collectorUrl,t.buildStartedAtMs,sn(e,t.home))}async function ep(e){switch(e.internalEvent){case"session_start":await _C(e);return;case"session_end":await hC(e);return;case"skill_invoked":await SC(e);return;case"tool_invoked":await bC(e);return;default:return}}import{existsSync as Ts,readFileSync as xC}from"node:fs";import{dirname as OC,isAbsolute as TC,join as kC,relative as PC}from"node:path";function tp(e){for(let t of oi){let n=kC(e,t);if(Ts(n))return n}}async function NC(e=process.cwd(),t){let n=t??await Rr(e);return tp(n)??tp(e)}async function wC(e,t){let n=t??await Rr(OC(e)),r=PC(n,e);if(r.startsWith("..")||TC(r))return!1;let o=await Ee("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(O(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function Os(e){let t=xC(e,"utf8");return ge(pn(t),{})}function MC(){return{schema_version:yn,mcp_servers:[]}}function LC(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(O(`WARN: ignoring capture_hook_input=full in git-tracked manifest ${t}; use EV_AI_HOOK_CAPTURE_FULL_INPUT=1 or an untracked operator manifest`),delete e.capture_hook_input),e.debug===!0&&r.has("debug")&&(O(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function np(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await yr(e),o=L("EV_AI_HOOK_MANIFEST"),s=o&&Ts(o)?o:void 0,i=s?void 0:Ts(Nt())?Nt():void 0,a=s?void 0:await NC(e,n),c=i?Os(i):void 0,u=a?Os(a):void 0,l,p,f,m=new Set;if(s){l=Os(s),p=s,f=s;for(let x of Object.keys(l))m.add(x)}else if(c&&u){l=ii(u,c),p=i,f=a;for(let x of Object.keys(u))x in c||m.add(x)}else if(c)l=c,p=i;else if(u){l=u,p=a,f=a;for(let x of Object.keys(u))m.add(x)}else l=MC();delete l.installation_id;let g=f?await wC(f,n):!1;LC(l,f,g,m);let{installationId:S,storePath:C,repoKey:A}=await vi(n,{sessionId:t.sessionId}),T=Pr(l);return{manifestPath:p??C,manifest:l,installationId:S,installationStorePath:C,repoKey:A,collectorUrl:T,hookConfig:dr(T),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{mkdirSync as vC,readdirSync as HC,readFileSync as UC,statSync as rp,unlinkSync as DC,writeFileSync as FC}from"node:fs";import{homedir as _r}from"node:os";import{join as ks}from"node:path";var $C="turns",op=1440*60*1e3,jC=100,BC=new Set(["stop","stopfailure","sessionend"]);function Ps(e=_r()){return ks(pe(e),$C)}function sp(e,t){return ks(e,Tt(t))}function KC(e,t=Date.now()){let n;try{n=HC(e)}catch{return}let r=0;for(let o of n){if(r>=jC)return;r+=1;try{let s=ks(e,o);t-rp(s).mtimeMs>op&&DC(s)}catch{}}}function GC(e,t,n=_r()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Ps(n);vC(s,{recursive:!0}),FC(sp(s,r),o,"utf8")}catch{}}function zC(e,t=_r()){let n=e.trim();if(!n)return"";try{let r=sp(Ps(t),n);return Date.now()-rp(r).mtimeMs>op?"":UC(r,"utf8").trim()}catch{return""}}function ip(e,t,n,r=_r()){let o=t.trim(),s=BC.has(n.trim().toLowerCase());return s&&KC(Ps(r)),o?(GC(e,o,r),o):s?zC(e,r):""}async function ap(e,t,n,r){let o=t??await fn(Rn),s=ge(o,{}),i=await np(process.cwd(),{sessionId:Ft(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=dr(r));let a=Ua(s,i.manifest.platform,n),c=Qr(e,a.runnerEvent);if(!c){O(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let u={hookInput:s,sessionId:a.sessionId,turnId:ip(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await ep(u)}function WC(e,t=!1){if(L("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Dt(r,o,void 0,n.runner);return Un(o,s)?!0:t}function cp(e,t){let n=Or(e),r=ge(t,{}),o=n.event??Zr(r);return Bs()||Ma(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function lp(e){return oc(Qr(e.parsed.event,e.runnerEvent))}async function up(e,t){let{parsed:n}=e;if(lp(e)){await ap(n.event,t,n.runner,Xr(n));return}let r=ro(n.cap),o=pc(r);if(!o){so(r);return}try{await ap(n.event,t,n.runner,Xr(n))}finally{oo(o)}}async function fp(e=process.argv.slice(2)){if(dc(),L("EV_AI_HOOK_JUDGE")==="1"){try{await fn(Rn)}catch{}return Sr(),0}if(e[0]===Cs){try{await Ff(Er)}catch{}return 0}if(e[0]===mr){try{let t=await Er(),n=cp(e.slice(1),t);if(!n)return 0;await up(n,t)}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await fn(Rn),n=cp(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Ja(o,s,r.runner))return 0;if(WC(n))await up(n,t);else{let i=lp(n)?void 0:ro(r.cap);i===void 0||lc(i)?await jf(t,e):so(i)}}catch(t){let n=t instanceof Error?t.message:String(t);O(`WARN: hook failed open: ${n}`)}finally{Sr()}return 0}fp().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
|
|
46
49
|
`),process.exit(1)});
|