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