@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/cli.mjs
CHANGED
|
@@ -2,51 +2,52 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from 'node:module';
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
|
|
5
|
-
var Od=Object.create;var Gs=Object.defineProperty;var Td=Object.getOwnPropertyDescriptor;var Pd=Object.getOwnPropertyNames;var wd=Object.getPrototypeOf,Nd=Object.prototype.hasOwnProperty;var ze=(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 V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var vd=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Pd(t))!Nd.call(e,o)&&o!==n&&Gs(e,o,{get:()=>t[o],enumerable:!(r=Td(t,o))||r.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?Od(wd(e)):{},vd(t||!e||!e.__esModule?Gs(n,"default",{value:e,enumerable:!0}):n,e));var Bn=V(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.MCP_MISSING_LAUNCH_SERIALIZED=Z.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;Z.foldMcpName=ja;Z.buildMcpFamilyCanonicalKey=_g;Z.launchContainsCredentials=Eg;Z.serializeMcpLaunchIdentity=Ba;Z.hashMcpLaunchIdentity=Kt;Z.projectMcpMissingLaunchIdentity=Cg;Z.projectMcpLaunchIdentity=Ag;Z.maskMcpLaunchForDisplay=xg;Z.normalizeMcpToolNames=kg;var hg=ze("node:crypto");Z.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";Z.MCP_MISSING_LAUNCH_SERIALIZED=`${Z.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function $e(e){return e.toLocaleLowerCase("en-US")}function ja(e){return $e(e)}function _g(e){return`interface:${ja(e)}`}var $a=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),Sg=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function bt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Eg(e){return e.kind==="url"?yg(e.url):e.kind==="command"?e.arguments.some(t=>Sg.test(t)):!1}function yg(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($a.has($e(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=$e(i.split("=",1)[0]??"");return $a.has(a)})}}function Ba(e){if(e.kind==="url")return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",bt($e(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>$e(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",bt($e(e.command)),String(t.length),...t.map(bt)].join("|")}return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",bt(e.installationRootExternalKey),bt(e.sourcePath),bt(e.nativeKey)].join("|")}function Kt(e){return(0,hg.createHash)("sha256").update(e).digest("hex")}var Rg=Kt(Z.MCP_MISSING_LAUNCH_SERIALIZED);function Cg(){return{kind:"unknown",arguments:[],serialized:Z.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:Rg}}function Ag(e){let t=Ba(e);return e.kind==="url"?{kind:"url",url:$e(e.url),arguments:[],serialized:t,contentHash:Kt(t)}:e.kind==="command"?{kind:"command",command:$e(e.command),arguments:[...e.arguments].map(n=>$e(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Kt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Kt(t)}}var bg=/^(https?:\/\/)([^/?#]*@)/i;function xg(e){return e.replace(bg,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function kg(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 Gn=V(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.PACKAGE_FIELD_MAX=void 0;Oe.npxExecBin=Ka;Oe.packageNameFromSpec=Kn;Oe.pinnedPackageVersionFromSpec=Ga;Oe.pinnedPackageVersionFromNpx=Lg;Oe.npxPackageSpecs=Wa;Oe.PACKAGE_FIELD_MAX=128;var Ig=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Og=new Set(["-p","--package"]),Tg=new Set(["-c","--call"]),Pg=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),wg=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Ng=/^--no-/;function vg(e){return wg.has(e)||Ng.test(e)}function Ka(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var Mg=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Kn(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 Ig.test(n)?n:null}function Ga(e){let t=Kn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return Mg.test(n)?n:void 0}function Lg(e,t){for(let n of Wa(e,t)){let r=Ga(n);if(r!==void 0)return r}}function Wa(e,t){let n=Ka(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(Tg.has(l))return[];if(Og.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||vg(l))){if(Pg.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Kn(i)!==null)?o:[]:s===null||Kn(s)===null?[]:[s]}});var za=V(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.McpPackageEcosystem=void 0;ut.resolveMcpPackageIdentity=Jg;var Hg=Bn(),go=Gn();ut.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var Ug=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Dg=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Fg=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function $g(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var jg=new Set(["--from","--spec"]),Bg=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"]),Kg=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"]),Gg=/^--no-/;function Wg(e,t){let n=$g(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(jg.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||Kg.has(l)||Gg.test(l))){if(Bg.has(l)){i+=1;continue}return null}}return o??s}function zg(e){if(e.length===0||e.length>go.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!Dg.test(r)||!Fg.test(o)?null:{ecosystem:ut.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Vg(e){let t=(0,go.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return Ug.test(n)?{ecosystem:ut.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Jg(e){if(e?.kind!=="command"||(0,Hg.launchContainsCredentials)(e))return;for(let n of(0,go.npxPackageSpecs)(e.command,e.arguments)){let r=Vg(n);if(r!==null)return r}let t=Wg(e.command,e.arguments);if(t!==null)return zg(t)??void 0}});var Za=V(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.EMPTY_NPM_PUBLISHER=void 0;je.isNpmRegistryPublisher=Xg;je.displayPublisherName=qg;je.classifyMcpProvenance=ih;var Ya=Bn(),ho=Gn();je.EMPTY_NPM_PUBLISHER="npm:";var Va="npm:",Yg=/^[A-Za-z0-9._-]+$/;function Xg(e){return e.startsWith(Va)&&e!==je.EMPTY_NPM_PUBLISHER&&Yg.test(e.slice(Va.length))}function qg(e){if(!(e==null||e===""||e===je.EMPTY_NPM_PUBLISHER))return e}function Ja(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 Zg(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 _o(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function Qg(e){let t=_o(e),n=Zg(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||Ja(t)||n!==void 0&&Ja(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function eh(e){let t=_o(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function th(e){let t=_o(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function Xa(e){let t={kind:"url",url:e};if((0,Ya.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||Qg(n.hostname))return{origin:"UNKNOWN"};let r=eh(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:th(n)}}catch{return{origin:"UNKNOWN"}}}var qa="mcp-remote";function nh(e,t){if(e===qa)return t.find(n=>/^https?:\/\//i.test(n))}function rh(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function oh(e,t,n){let r=nh(e,t);return r!==void 0?Xa(r):e===qa?{origin:"UNKNOWN"}:rh(e,n)}function sh(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 ih(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,Ya.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return Xa(t.url);let r=(0,ho.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,ho.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=oh(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,ho.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return sh(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ec=V(Wn=>{"use strict";Object.defineProperty(Wn,"__esModule",{value:!0});Wn.mcpServerToolSegmentForms=Qa;Wn.mcpServerNameMatchesToolSegment=ah;function Qa(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function ah(e,t){let n=t.toLowerCase();return Qa(e).some(r=>r.toLowerCase()===n)}});var tc=V(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.parseFrontmatterField=Ee.parseFrontmatterDescription=Ee.usableCatalogText=void 0;var ch=/^(?:>|\|)[-+]?$/,uh=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,lh=e=>{let t=e?.trim()??"";if(!(t.length===0||ch.test(t)))return t};Ee.usableCatalogText=lh;var fh=e=>(0,Ee.parseFrontmatterField)(e,"description");Ee.parseFrontmatterDescription=fh;var dh=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return mh(n[1],t)};Ee.parseFrontmatterField=dh;var ph=e=>e.replace(/^["']|["']$/g,"");function mh(e,t){let n=e.split(`
|
|
6
|
-
`),r=`${t}:`,o=n.findIndex(p=>p===r||p.startsWith(`${r} `)||p.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=
|
|
5
|
+
var Ud=Object.create;var Xs=Object.defineProperty;var Dd=Object.getOwnPropertyDescriptor;var Fd=Object.getOwnPropertyNames;var $d=Object.getPrototypeOf,jd=Object.prototype.hasOwnProperty;var ze=(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 V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bd=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Fd(t))!jd.call(e,o)&&o!==n&&Xs(e,o,{get:()=>t[o],enumerable:!(r=Dd(t,o))||r.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?Ud($d(e)):{},Bd(t||!e||!e.__esModule?Xs(n,"default",{value:e,enumerable:!0}):n,e));var Wn=V(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.MCP_MISSING_LAUNCH_SERIALIZED=Z.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;Z.foldMcpName=Ya;Z.buildMcpFamilyCanonicalKey=Ug;Z.launchContainsCredentials=Fg;Z.serializeMcpLaunchIdentity=Xa;Z.hashMcpLaunchIdentity=Wt;Z.projectMcpMissingLaunchIdentity=Bg;Z.projectMcpLaunchIdentity=Kg;Z.maskMcpLaunchForDisplay=Wg;Z.normalizeMcpToolNames=zg;var Hg=ze("node:crypto");Z.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";Z.MCP_MISSING_LAUNCH_SERIALIZED=`${Z.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function $e(e){return e.toLocaleLowerCase("en-US")}function Ya(e){return $e(e)}function Ug(e){return`interface:${Ya(e)}`}var Ja=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),Dg=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function bt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Fg(e){return e.kind==="url"?$g(e.url):e.kind==="command"?e.arguments.some(t=>Dg.test(t)):!1}function $g(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(Ja.has($e(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=$e(i.split("=",1)[0]??"");return Ja.has(a)})}}function Xa(e){if(e.kind==="url")return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",bt($e(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>$e(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",bt($e(e.command)),String(t.length),...t.map(bt)].join("|")}return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",bt(e.installationRootExternalKey),bt(e.sourcePath),bt(e.nativeKey)].join("|")}function Wt(e){return(0,Hg.createHash)("sha256").update(e).digest("hex")}var jg=Wt(Z.MCP_MISSING_LAUNCH_SERIALIZED);function Bg(){return{kind:"unknown",arguments:[],serialized:Z.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:jg}}function Kg(e){let t=Xa(e);return e.kind==="url"?{kind:"url",url:$e(e.url),arguments:[],serialized:t,contentHash:Wt(t)}:e.kind==="command"?{kind:"command",command:$e(e.command),arguments:[...e.arguments].map(n=>$e(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Wt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Wt(t)}}var Gg=/^(https?:\/\/)([^/?#]*@)/i;function Wg(e){return e.replace(Gg,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function zg(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 Vn=V(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});Te.PACKAGE_FIELD_MAX=void 0;Te.npxExecBin=qa;Te.packageNameFromSpec=zn;Te.pinnedPackageVersionFromSpec=Za;Te.pinnedPackageVersionFromNpx=th;Te.npxPackageSpecs=Qa;Te.PACKAGE_FIELD_MAX=128;var Vg=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,Jg=new Set(["-p","--package"]),Yg=new Set(["-c","--call"]),Xg=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),qg=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),Zg=/^--no-/;function Qg(e){return qg.has(e)||Zg.test(e)}function qa(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var eh=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function zn(e){if(e.length===0||e.length>Te.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return Vg.test(n)?n:null}function Za(e){let t=zn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return eh.test(n)?n:void 0}function th(e,t){for(let n of Qa(e,t)){let r=Za(n);if(r!==void 0)return r}}function Qa(e,t){let n=qa(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(Yg.has(l))return[];if(Jg.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||Qg(l))){if(Xg.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>zn(i)!==null)?o:[]:s===null||zn(s)===null?[]:[s]}});var ec=V(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.McpPackageEcosystem=void 0;ut.resolveMcpPackageIdentity=mh;var nh=Wn(),Eo=Vn();ut.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var rh=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,oh=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,sh=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function ih(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var ah=new Set(["--from","--spec"]),ch=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"]),uh=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"]),lh=/^--no-/;function fh(e,t){let n=ih(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(ah.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||uh.has(l)||lh.test(l))){if(ch.has(l)){i+=1;continue}return null}}return o??s}function dh(e){if(e.length===0||e.length>Eo.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!oh.test(r)||!sh.test(o)?null:{ecosystem:ut.McpPackageEcosystem.PYPI,packageName:r,version:o}}function ph(e){let t=(0,Eo.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return rh.test(n)?{ecosystem:ut.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function mh(e){if(e?.kind!=="command"||(0,nh.launchContainsCredentials)(e))return;for(let n of(0,Eo.npxPackageSpecs)(e.command,e.arguments)){let r=ph(n);if(r!==null)return r}let t=fh(e.command,e.arguments);if(t!==null)return dh(t)??void 0}});var ic=V(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.EMPTY_NPM_PUBLISHER=void 0;je.isNpmRegistryPublisher=hh;je.displayPublisherName=_h;je.classifyMcpProvenance=xh;var rc=Wn(),yo=Vn();je.EMPTY_NPM_PUBLISHER="npm:";var tc="npm:",gh=/^[A-Za-z0-9._-]+$/;function hh(e){return e.startsWith(tc)&&e!==je.EMPTY_NPM_PUBLISHER&&gh.test(e.slice(tc.length))}function _h(e){if(!(e==null||e===""||e===je.EMPTY_NPM_PUBLISHER))return e}function nc(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 Sh(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 Ro(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function Eh(e){let t=Ro(e),n=Sh(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||nc(t)||n!==void 0&&nc(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function yh(e){let t=Ro(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function Rh(e){let t=Ro(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function oc(e){let t={kind:"url",url:e};if((0,rc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||Eh(n.hostname))return{origin:"UNKNOWN"};let r=yh(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:Rh(n)}}catch{return{origin:"UNKNOWN"}}}var sc="mcp-remote";function Ch(e,t){if(e===sc)return t.find(n=>/^https?:\/\//i.test(n))}function Ah(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function kh(e,t,n){let r=Ch(e,t);return r!==void 0?oc(r):e===sc?{origin:"UNKNOWN"}:Ah(e,n)}function bh(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 xh(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,rc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return oc(t.url);let r=(0,yo.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,yo.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=kh(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,yo.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return bh(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var cc=V(Jn=>{"use strict";Object.defineProperty(Jn,"__esModule",{value:!0});Jn.mcpServerToolSegmentForms=ac;Jn.mcpServerNameMatchesToolSegment=Ih;function ac(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function Ih(e,t){let n=t.toLowerCase();return ac(e).some(r=>r.toLowerCase()===n)}});var uc=V(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.parseFrontmatterField=Re.parseFrontmatterDescription=Re.usableCatalogText=void 0;var Oh=/^(?:>|\|)[-+]?$/,Th=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,Ph=e=>{let t=e?.trim()??"";if(!(t.length===0||Oh.test(t)))return t};Re.usableCatalogText=Ph;var wh=e=>(0,Re.parseFrontmatterField)(e,"description");Re.parseFrontmatterDescription=wh;var Nh=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Mh(n[1],t)};Re.parseFrontmatterField=Nh;var vh=e=>e.replace(/^["']|["']$/g,"");function Mh(e,t){let n=e.split(`
|
|
6
|
+
`),r=`${t}:`,o=n.findIndex(p=>p===r||p.startsWith(`${r} `)||p.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=Th.exec(s);if(!i){let p=vh(s).trim();return(0,Re.usableCatalogText)(p)}let a=[];for(let p=o+1;p<n.length;p+=1){let g=n[p]??"";if(g.trim()===""){a.push("");continue}if(g.length===g.trimStart().length)break;a.push(g)}let c=a.reduce((p,g)=>g.trim()===""?p:Math.min(p,g.length-g.trimStart().length),Number.POSITIVE_INFINITY),l=[],u=i[1]?.trim();u&&l.push(u);for(let p of a)l.push(p.trim()===""?"":p.slice(c));for(;l.length>0&&l[l.length-1]==="";)l.pop();let f=s.startsWith(">")?l.join(`
|
|
7
7
|
`).split(/\n{2,}/).map(p=>p.split(`
|
|
8
8
|
`).map(g=>g.trim()).filter(Boolean).join(" ")).filter(p=>p.length>0).join(`
|
|
9
9
|
|
|
10
10
|
`):l.join(`
|
|
11
|
-
`).trimEnd();return(0,
|
|
12
|
-
`),n=!1;return t.map(o=>n?
|
|
13
|
-
`)}function Ah(e){return So(e)!==e}});var rt=V(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.redactComponentSource=y.prepareComponentInspectionText=y.fitSnapshotInspectionTextBudget=y.componentSourceContainsRedactableSecret=y.capComponentTextBytes=y.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=y.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=y.COMPONENT_INSPECTION_TEXT_MAX_BYTES=y.usableCatalogText=y.parseFrontmatterField=y.parseFrontmatterDescription=y.mcpServerToolSegmentForms=y.mcpServerNameMatchesToolSegment=y.isNpmRegistryPublisher=y.EMPTY_NPM_PUBLISHER=y.displayPublisherName=y.classifyMcpProvenance=y.resolveMcpPackageIdentity=y.McpPackageEcosystem=y.pinnedPackageVersionFromSpec=y.pinnedPackageVersionFromNpx=y.packageNameFromSpec=y.npxPackageSpecs=y.npxExecBin=y.PACKAGE_FIELD_MAX=y.serializeMcpLaunchIdentity=y.projectMcpMissingLaunchIdentity=y.projectMcpLaunchIdentity=y.normalizeMcpToolNames=y.MCP_MISSING_LAUNCH_SERIALIZED=y.MCP_LAUNCH_IDENTITY_ALGORITHM=y.maskMcpLaunchForDisplay=y.launchContainsCredentials=y.hashMcpLaunchIdentity=y.foldMcpName=y.buildMcpFamilyCanonicalKey=y.ComponentKind=void 0;y.userConfigRootFromPath=vh;y.installationRootExternalKey=Mh;y.normalizeRepositoryRelativePath=sc;y.nativeKeyForSkillPath=Lh;y.nativeKeyForRulePath=Hh;y.nativeKeyForCommandPath=Uh;y.serializeComponentIdentity=ac;y.buildComponentReference=Fh;y.validateComponentReference=$h;var bh=ze("node:crypto"),xh=ze("node:path"),kh="cmp1_",Ih=/^cmp1_[A-Za-z0-9_-]{43}$/,Oh=["/skills/","/skills-cursor/"],Th=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Ph=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,wh=[".cursor",".claude",".codex"],Nh={".claude.json":".claude",".agents":".codex"};y.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function vh(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>wh.includes(o));return n||(t.map(o=>Nh[o]).find(o=>o!==void 0)??"unknown")}function Mh(e,t){return`runtime-install:${e}/${t}`}function zn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function sc(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=xh.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return zn(n,"sourcePath")}function Lh(e){let t=e.replaceAll("\\","/");for(let n of Oh){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function ic(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 Hh(e){return ic(e,Th,/\.(mdc|md|rules)$/i)}function Uh(e){return ic(e,Ph,/\.(md|mdc|toml)$/i)}function Dh(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function ac(e){let t=[zn(e.installationRootExternalKey,"installationRootExternalKey"),zn(e.installableKind,"installableKind"),sc(e.sourcePath),zn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Dh).join("|")}`,"utf8")}function Fh(e){let t=(0,bh.createHash)("sha256").update(ac(e)).digest("base64url");return`${kh}${t}`}function $h(e){return Ih.test(e)}var ye=Bn();Object.defineProperty(y,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return ye.buildMcpFamilyCanonicalKey}});Object.defineProperty(y,"foldMcpName",{enumerable:!0,get:function(){return ye.foldMcpName}});Object.defineProperty(y,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return ye.hashMcpLaunchIdentity}});Object.defineProperty(y,"launchContainsCredentials",{enumerable:!0,get:function(){return ye.launchContainsCredentials}});Object.defineProperty(y,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return ye.maskMcpLaunchForDisplay}});Object.defineProperty(y,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return ye.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(y,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return ye.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(y,"normalizeMcpToolNames",{enumerable:!0,get:function(){return ye.normalizeMcpToolNames}});Object.defineProperty(y,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return ye.projectMcpLaunchIdentity}});Object.defineProperty(y,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return ye.projectMcpMissingLaunchIdentity}});Object.defineProperty(y,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return ye.serializeMcpLaunchIdentity}});var xt=Gn();Object.defineProperty(y,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return xt.PACKAGE_FIELD_MAX}});Object.defineProperty(y,"npxExecBin",{enumerable:!0,get:function(){return xt.npxExecBin}});Object.defineProperty(y,"npxPackageSpecs",{enumerable:!0,get:function(){return xt.npxPackageSpecs}});Object.defineProperty(y,"packageNameFromSpec",{enumerable:!0,get:function(){return xt.packageNameFromSpec}});Object.defineProperty(y,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return xt.pinnedPackageVersionFromNpx}});Object.defineProperty(y,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return xt.pinnedPackageVersionFromSpec}});var cc=za();Object.defineProperty(y,"McpPackageEcosystem",{enumerable:!0,get:function(){return cc.McpPackageEcosystem}});Object.defineProperty(y,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return cc.resolveMcpPackageIdentity}});var Vn=Za();Object.defineProperty(y,"classifyMcpProvenance",{enumerable:!0,get:function(){return Vn.classifyMcpProvenance}});Object.defineProperty(y,"displayPublisherName",{enumerable:!0,get:function(){return Vn.displayPublisherName}});Object.defineProperty(y,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Vn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(y,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Vn.isNpmRegistryPublisher}});var uc=ec();Object.defineProperty(y,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return uc.mcpServerNameMatchesToolSegment}});Object.defineProperty(y,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return uc.mcpServerToolSegmentForms}});var Eo=tc();Object.defineProperty(y,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Eo.parseFrontmatterDescription}});Object.defineProperty(y,"parseFrontmatterField",{enumerable:!0,get:function(){return Eo.parseFrontmatterField}});Object.defineProperty(y,"usableCatalogText",{enumerable:!0,get:function(){return Eo.usableCatalogText}});var nt=oc();Object.defineProperty(y,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return nt.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(y,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return nt.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(y,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return nt.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(y,"capComponentTextBytes",{enumerable:!0,get:function(){return nt.capComponentTextBytes}});Object.defineProperty(y,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return nt.componentSourceContainsRedactableSecret}});Object.defineProperty(y,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return nt.fitSnapshotInspectionTextBudget}});Object.defineProperty(y,"prepareComponentInspectionText",{enumerable:!0,get:function(){return nt.prepareComponentInspectionText}});Object.defineProperty(y,"redactComponentSource",{enumerable:!0,get:function(){return nt.redactComponentSource}})});var ar=V(_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 cr=V((lI,ku)=>{"use strict";var xu=ar();ku.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&xu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&xu.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 Ou=V((fI,Iu)=>{"use strict";Iu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Uu=V((dI,Hu)=>{"use strict";var Tu=Ou(),ft=(e,t,n)=>{if(Tu(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(Tu(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(ft.cache.hasOwnProperty(c))return ft.cache[c].result;let l=Math.min(e,t),u=Math.max(e,t);if(Math.abs(l-u)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let d=Lu(e)||Lu(t),f={min:e,max:t,a:l,b:u},p=[],g=[];if(d&&(f.isPadded=d,f.maxLen=String(f.max).length),l<0){let S=u<0?Math.abs(u):1;g=Pu(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(p=Pu(l,u,f,r)),f.negatives=g,f.positives=p,f.result=cE(g,p,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&p.length+g.length>1&&(f.result=`(?:${f.result})`),ft.cache[c]=f,f.result};function cE(e,t,n){let r=Go(e,t,"-",!1,n)||[],o=Go(t,e,"",!1,n)||[],s=Go(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function uE(e,t){let n=1,r=1,o=Nu(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Nu(e,n);for(o=vu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=vu(t+1,r)-1;return s=[...s],s.sort(dE),s}function lE(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=fE(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+=pE(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function Pu(e,t,n,r){let o=uE(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=lE(String(i),String(l),r),d="";if(!n.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+Mu(a.count),i=l+1;continue}n.isPadded&&(d=mE(l,n,r)),u.string=d+u.pattern+Mu(u.count),s.push(u),i=l+1,a=u}return s}function Go(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!wu(t,"string",a)&&s.push(n+a),r&&wu(t,"string",a)&&s.push(n+a)}return s}function fE(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function dE(e,t){return e>t?1:t>e?-1:0}function wu(e,t,n){return e.some(r=>r[t]===n)}function Nu(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function vu(e,t){return e-e%Math.pow(10,t)}function Mu(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function pE(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Lu(e){return/^-?(0+)\d/.test(e)}function mE(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}}`}}ft.cache={};ft.clearCache=()=>ft.cache={};Hu.exports=ft});var Vo=V((pI,Gu)=>{"use strict";var gE=ze("util"),Fu=Uu(),Du=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),hE=e=>t=>e===!0?Number(t):String(t),Wo=e=>typeof e=="number"||typeof e=="string"&&e!=="",Zt=e=>Number.isInteger(+e),zo=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},_E=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,SE=(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},lr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},EE=(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=>lr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>lr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},$u=(e,t,n,r)=>{if(n)return Fu(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},ju=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Fu(e,t,n)},Bu=(...e)=>new RangeError("Invalid range arguments: "+gE.inspect(...e)),Ku=(e,t,n)=>{if(n.strictRanges===!0)throw Bu([e,t]);return[]},yE=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},RE=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Bu([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=zo(a)||zo(c)||zo(l),d=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&_E(e,t,r)===!1,p=r.transform||hE(f);if(r.toRegex&&n===1)return $u(lr(e,d),lr(t,d),!0,r);let g={negatives:[],positives:[]},S=I=>g[I<0?"negatives":"positives"].push(Math.abs(I)),A=[],b=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):A.push(SE(p(o,b),d,f)),o=i?o-n:o+n,b++;return r.toRegex===!0?n>1?EE(g,r,d):ju(A,null,{wrap:!1,...r}):A},CE=(e,t,n=1,r={})=>{if(!Zt(e)&&e.length>1||!Zt(t)&&t.length>1)return Ku(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 $u(c,l,!1,r);let u=[],d=0;for(;a?s>=i:s<=i;)u.push(o(s,d)),s=a?s-n:s+n,d++;return r.toRegex===!0?ju(u,null,{wrap:!1,options:r}):u},ur=(e,t,n,r={})=>{if(t==null&&Wo(e))return[e];if(!Wo(e)||!Wo(t))return Ku(e,t,r);if(typeof n=="function")return ur(e,t,1,{transform:n});if(Du(n))return ur(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,Zt(n)?Zt(e)&&Zt(t)?RE(e,t,n,o):CE(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Du(n)?yE(n,o):ur(e,t,1,n)};Gu.exports=ur});var Vu=V((mI,zu)=>{"use strict";var AE=Vo(),Wu=ar(),bE=(e,t={})=>{let n=(r,o={})=>{let s=Wu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a=s===!0||i===!0,c=t.escapeInvalid===!0?"\\":"",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=Wu.reduce(r.nodes),d=AE(...u,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return u.length>1&&d.length>1?`(${d})`:d}if(r.nodes)for(let u of r.nodes)l+=n(u,r);return l};return n(e)};zu.exports=bE});var Xu=V((gI,Yu)=>{"use strict";var xE=Vo(),Ju=cr(),It=ar(),dt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?It.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(dt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?dt(o,s,n):o+s);return It.flatten(r)},kE=(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(dt(a.pop(),Ju(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(dt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=It.reduce(o.nodes);if(It.exceedsLimit(...d,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=xE(...d,t);f.length===0&&(f=Ju(o,t)),a.push(dt(a.pop(),f)),o.nodes=[];return}let c=It.encloseBrace(o),l=o.queue,u=o;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,l=u.queue;for(let d=0;d<o.nodes.length;d++){let f=o.nodes[d];if(f.type==="comma"&&o.type==="brace"){d===1&&l.push(""),l.push("");continue}if(f.type==="close"){a.push(dt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(dt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return It.flatten(r(e))};Yu.exports=kE});var Zu=V((hI,qu)=>{"use strict";qu.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:`
|
|
14
|
-
`,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 rl=V((_I,nl)=>{"use strict";var IE=cr(),{MAX_LENGTH:Qu,CHAR_BACKSLASH:Jo,CHAR_BACKTICK:OE,CHAR_COMMA:TE,CHAR_DOT:PE,CHAR_LEFT_PARENTHESES:wE,CHAR_RIGHT_PARENTHESES:NE,CHAR_LEFT_CURLY_BRACE:vE,CHAR_RIGHT_CURLY_BRACE:ME,CHAR_LEFT_SQUARE_BRACKET:el,CHAR_RIGHT_SQUARE_BRACKET:tl,CHAR_DOUBLE_QUOTE:LE,CHAR_SINGLE_QUOTE:HE,CHAR_NO_BREAK_SPACE:UE,CHAR_ZERO_WIDTH_NOBREAK_SPACE:DE}=Zu(),FE=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Qu,n.maxLength):Qu;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,l=e.length,u=0,d=0,f,p=()=>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=p(),!(f===DE||f===UE)){if(f===Jo){g({type:"text",value:(t.keepEscaping?f:"")+p()});continue}if(f===tl){g({type:"text",value:"\\"+f});continue}if(f===el){c++;let S;for(;u<l&&(S=p());){if(f+=S,S===el){c++;continue}if(S===Jo){f+=p();continue}if(S===tl&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===wE){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===NE){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===LE||f===HE||f===OE){let S=f,A;for(t.keepQuotes!==!0&&(f="");u<l&&(A=p());){if(A===Jo){f+=A+p();continue}if(A===S){t.keepQuotes===!0&&(f+=A);break}f+=A}g({type:"text",value:f});continue}if(f===vE){d++;let A={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};i=g(A),s.push(i),g({type:"open",value:f});continue}if(f===ME){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),d--,i=s[s.length-1];continue}if(f===TE&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:IE(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===PE&&d>0&&i.commas===0){let S=i.nodes;if(d===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let A=S[S.length-1];A.value+=a.value+f,a=A,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(b=>{b.nodes||(b.type==="open"&&(b.isOpen=!0),b.type==="close"&&(b.isClose=!0),b.nodes||(b.type="text"),b.invalid=!0)});let S=s[s.length-1],A=S.nodes.indexOf(i);S.nodes.splice(A,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};nl.exports=FE});var il=V((SI,sl)=>{"use strict";var ol=cr(),$E=Vu(),jE=Xu(),BE=rl(),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={})=>BE(e,t);pe.stringify=(e,t={})=>ol(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),$E(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=jE(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);sl.exports=pe});var Qt=V((EI,fl)=>{"use strict";var KE=ze("path"),Pe="\\\\/",al=`[^${Pe}]`,GE=0,Ge="\\.",WE="\\+",zE="\\?",fr="\\/",VE="(?=.)",cl="[^/]",Yo=`(?:${fr}|$)`,ul=`(?:^|${fr})`,Xo=`${Ge}{1,2}${Yo}`,JE=`(?!${Ge})`,YE=`(?!${ul}${Xo})`,XE=`(?!${Ge}{0,1}${Yo})`,qE=`(?!${Xo})`,ZE=`[^.${fr}]`,QE=`${cl}*?`,ll={DOT_LITERAL:Ge,PLUS_LITERAL:WE,QMARK_LITERAL:zE,SLASH_LITERAL:fr,ONE_CHAR:VE,QMARK:cl,END_ANCHOR:Yo,DOTS_SLASH:Xo,NO_DOT:JE,NO_DOTS:YE,NO_DOT_SLASH:XE,NO_DOTS_SLASH:qE,QMARK_NO_DOT:ZE,STAR:QE,START_ANCHOR:ul},ey={...ll,SLASH_LITERAL:`[${Pe}]`,QMARK:al,STAR:`${al}*?`,DOTS_SLASH:`${Ge}{1,2}(?:[${Pe}]|$)`,NO_DOT:`(?!${Ge})`,NO_DOTS:`(?!(?:^|[${Pe}])${Ge}{1,2}(?:[${Pe}]|$))`,NO_DOT_SLASH:`(?!${Ge}{0,1}(?:[${Pe}]|$))`,NO_DOTS_SLASH:`(?!${Ge}{1,2}(?:[${Pe}]|$))`,QMARK_NO_DOT:`[^.${Pe}]`,START_ANCHOR:`(?:^|[${Pe}])`,END_ANCHOR:`(?:[${Pe}]|$)`},ty={__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"};fl.exports={DEFAULT_MAX_EXTGLOB_RECURSION:GE,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:ty,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:KE.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?ey:ll}}});var en=V(ce=>{"use strict";var ny=ze("path"),ry=process.platform==="win32",{REGEX_BACKSLASH:oy,REGEX_REMOVE_BACKSLASH:sy,REGEX_SPECIAL_CHARS:iy,REGEX_SPECIAL_CHARS_GLOBAL:ay}=Qt();ce.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ce.hasRegexChars=e=>iy.test(e);ce.isRegexChar=e=>e.length===1&&ce.hasRegexChars(e);ce.escapeRegex=e=>e.replace(ay,"\\$1");ce.toPosixSlashes=e=>e.replace(oy,"/");ce.removeBackslashes=e=>e.replace(sy,t=>t==="\\"?"":t);ce.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ce.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:ry===!0||ny.sep==="\\";ce.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ce.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ce.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ce.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var El=V((RI,Sl)=>{"use strict";var dl=en(),{CHAR_ASTERISK:qo,CHAR_AT:cy,CHAR_BACKWARD_SLASH:tn,CHAR_COMMA:uy,CHAR_DOT:Zo,CHAR_EXCLAMATION_MARK:Qo,CHAR_FORWARD_SLASH:_l,CHAR_LEFT_CURLY_BRACE:es,CHAR_LEFT_PARENTHESES:ts,CHAR_LEFT_SQUARE_BRACKET:ly,CHAR_PLUS:fy,CHAR_QUESTION_MARK:pl,CHAR_RIGHT_CURLY_BRACE:dy,CHAR_RIGHT_PARENTHESES:ml,CHAR_RIGHT_SQUARE_BRACKET:py}=Qt(),gl=e=>e===_l||e===tn,hl=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},my=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,l=-1,u=0,d=0,f=!1,p=!1,g=!1,S=!1,A=!1,b=!1,I=!1,T=!1,v=!1,O=!1,K=0,U,k,w={value:"",depth:0,isGlob:!1},L=()=>l>=r,m=()=>c.charCodeAt(l+1),x=()=>(U=k,c.charCodeAt(++l));for(;l<r;){k=x();let ie;if(k===tn){I=w.backslashes=!0,k=x(),k===es&&(b=!0);continue}if(b===!0||k===es){for(K++;L()!==!0&&(k=x());){if(k===tn){I=w.backslashes=!0,x();continue}if(k===es){K++;continue}if(b!==!0&&k===Zo&&(k=x())===Zo){if(f=w.isBrace=!0,g=w.isGlob=!0,O=!0,o===!0)continue;break}if(b!==!0&&k===uy){if(f=w.isBrace=!0,g=w.isGlob=!0,O=!0,o===!0)continue;break}if(k===dy&&(K--,K===0)){b=!1,f=w.isBrace=!0,O=!0;break}}if(o===!0)continue;break}if(k===_l){if(s.push(l),i.push(w),w={value:"",depth:0,isGlob:!1},O===!0)continue;if(U===Zo&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(k===fy||k===cy||k===qo||k===pl||k===Qo)===!0&&m()===ts){if(g=w.isGlob=!0,S=w.isExtglob=!0,O=!0,k===Qo&&l===u&&(v=!0),o===!0){for(;L()!==!0&&(k=x());){if(k===tn){I=w.backslashes=!0,k=x();continue}if(k===ml){g=w.isGlob=!0,O=!0;break}}continue}break}if(k===qo){if(U===qo&&(A=w.isGlobstar=!0),g=w.isGlob=!0,O=!0,o===!0)continue;break}if(k===pl){if(g=w.isGlob=!0,O=!0,o===!0)continue;break}if(k===ly){for(;L()!==!0&&(ie=x());){if(ie===tn){I=w.backslashes=!0,x();continue}if(ie===py){p=w.isBracket=!0,g=w.isGlob=!0,O=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&k===Qo&&l===u){T=w.negated=!0,u++;continue}if(n.noparen!==!0&&k===ts){if(g=w.isGlob=!0,o===!0){for(;L()!==!0&&(k=x());){if(k===ts){I=w.backslashes=!0,k=x();continue}if(k===ml){O=!0;break}}continue}break}if(g===!0){if(O=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let H=c,le="",h="";u>0&&(le=c.slice(0,u),c=c.slice(u),d-=u),H&&g===!0&&d>0?(H=c.slice(0,d),h=c.slice(d)):g===!0?(H="",h=c):H=c,H&&H!==""&&H!=="/"&&H!==c&&gl(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),n.unescape===!0&&(h&&(h=dl.removeBackslashes(h)),H&&I===!0&&(H=dl.removeBackslashes(H)));let _={prefix:le,input:e,start:u,base:H,glob:h,isBrace:f,isBracket:p,isGlob:g,isExtglob:S,isGlobstar:A,negated:T,negatedExtglob:v};if(n.tokens===!0&&(_.maxDepth=0,gl(k)||i.push(w),_.tokens=i),n.parts===!0||n.tokens===!0){let ie;for(let D=0;D<s.length;D++){let Re=ie?ie+1:u,Ce=s[D],fe=e.slice(Re,Ce);n.tokens&&(D===0&&u!==0?(i[D].isPrefix=!0,i[D].value=le):i[D].value=fe,hl(i[D]),_.maxDepth+=i[D].depth),(D!==0||fe!=="")&&a.push(fe),ie=Ce}if(ie&&ie+1<e.length){let D=e.slice(ie+1);a.push(D),n.tokens&&(i[i.length-1].value=D,hl(i[i.length-1]),_.maxDepth+=i[i.length-1].depth)}_.slashes=s,_.parts=a}return _};Sl.exports=my});var bl=V((CI,Al)=>{"use strict";var nn=Qt(),se=en(),{MAX_LENGTH:dr,POSIX_REGEX_SOURCE:gy,REGEX_NON_SPECIAL_CHARS:hy,REGEX_SPECIAL_CHARS_BACKREF:_y,REPLACEMENTS:yl}=nn,Sy=(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=>se.escapeRegex(o)).join("..")}return n},Ot=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,Rl=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},Ey=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},Cl=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(Ey(t))return t.replace(/\\(.)/g,"$1")},yy=e=>{let t=e.map(Cl).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},ns=(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}}}}},Ry=e=>{let t=0,n=[];for(;t<e.length;){let o=ns(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Rl(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Cl(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?se.escapeRegex(n[0]):`[${n.map(o=>se.escapeRegex(o)).join("")}]`}*`},Cy=e=>{let t=0,n=e.trim(),r=ns(n);for(;r;)t++,n=r.body.trim(),r=ns(n);return t},Ay=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:nn.DEFAULT_MAX_EXTGLOB_RECURSION,r=Rl(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||yy(r)))return{risky:!0};for(let o of r){let s=Ry(o);if(s)return{risky:!0,safeOutput:s};if(Cy(o)>n)return{risky:!0}}return{risky:!1}},rs=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=yl[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(dr,n.maxLength):dr,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=se.isWindows(t),l=nn.globChars(c),u=nn.extglobChars(l),{DOT_LITERAL:d,PLUS_LITERAL:f,SLASH_LITERAL:p,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:A,NO_DOT_SLASH:b,NO_DOTS_SLASH:I,QMARK:T,QMARK_NO_DOT:v,STAR:O,START_ANCHOR:K}=l,U=C=>`(${a}(?:(?!${K}${C.dot?S:d}).)*?)`,k=n.dot?"":A,w=n.dot?T:v,L=n.bash===!0?U(n):O;n.capture&&(L=`(${L})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let m={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=se.removePrefix(e,m),o=e.length;let x=[],H=[],le=[],h=s,_,ie=()=>m.index===o-1,D=m.peek=(C=1)=>e[m.index+C],Re=m.advance=()=>e[++m.index]||"",Ce=()=>e.slice(m.index+1),fe=(C="",Y=0)=>{m.consumed+=C,m.index+=Y},gn=C=>{m.output+=C.output!=null?C.output:C.value,fe(C.value)},kd=()=>{let C=1;for(;D()==="!"&&(D(2)!=="("||D(3)==="?");)Re(),m.start++,C++;return C%2===0?!1:(m.negated=!0,m.start++,!0)},hn=C=>{m[C]++,le.push(C)},We=C=>{m[C]--,le.pop()},N=C=>{if(h.type==="globstar"){let Y=m.braces>0&&(C.type==="comma"||C.type==="brace"),R=C.extglob===!0||x.length&&(C.type==="pipe"||C.type==="paren");C.type!=="slash"&&C.type!=="paren"&&!Y&&!R&&(m.output=m.output.slice(0,-h.output.length),h.type="star",h.value="*",h.output=L,m.output+=h.output)}if(x.length&&C.type!=="paren"&&(x[x.length-1].inner+=C.value),(C.value||C.output)&&gn(C),h&&h.type==="text"&&C.type==="text"){h.value+=C.value,h.output=(h.output||"")+C.value;return}C.prev=h,i.push(C),h=C},_n=(C,Y)=>{let R={...u[Y],conditions:1,inner:""};R.prev=h,R.parens=m.parens,R.output=m.output,R.startIndex=m.index,R.tokensIndex=i.length;let P=(n.capture?"(":"")+R.open;hn("parens"),N({type:C,value:Y,output:m.output?"":g}),N({type:"paren",extglob:!0,value:Re(),output:P}),x.push(R)},Id=C=>{let Y=e.slice(C.startIndex,m.index+1),R=e.slice(C.startIndex+2,m.index),P=Ay(R,n);if((C.type==="plus"||C.type==="star")&&P.risky){let G=P.safeOutput?(C.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,Ae=i[C.tokensIndex];Ae.type="text",Ae.value=Y,Ae.output=G||se.escapeRegex(Y);for(let be=C.tokensIndex+1;be<i.length;be++)i[be].value="",i[be].output="",delete i[be].suffix;m.output=C.output+Ae.output,m.backtrack=!0,N({type:"paren",extglob:!0,value:_,output:""}),We("parens");return}let z=C.close+(n.capture?")":""),re;if(C.type==="negate"){let G=L;if(C.inner&&C.inner.length>1&&C.inner.includes("/")&&(G=U(n)),(G!==L||ie()||/^\)+$/.test(Ce()))&&(z=C.close=`)$))${G}`),C.inner.includes("*")&&(re=Ce())&&/^\.[^\\/.]+$/.test(re)){let Ae=rs(re,{...t,fastpaths:!1}).output;z=C.close=`)${Ae})${G})`}C.prev.type==="bos"&&(m.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:_,output:z}),We("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let C=!1,Y=e.replace(_y,(R,P,z,re,G,Ae)=>re==="\\"?(C=!0,R):re==="?"?P?P+re+(G?T.repeat(G.length):""):Ae===0?w+(G?T.repeat(G.length):""):T.repeat(z.length):re==="."?d.repeat(z.length):re==="*"?P?P+re+(G?L:""):L:P?R:`\\${R}`);return C===!0&&(n.unescape===!0?Y=Y.replace(/\\/g,""):Y=Y.replace(/\\+/g,R=>R.length%2===0?"\\\\":R?"\\":"")),Y===e&&n.contains===!0?(m.output=e,m):(m.output=se.wrapOutput(Y,m,t),m)}for(;!ie();){if(_=Re(),_==="\0")continue;if(_==="\\"){let R=D();if(R==="/"&&n.bash!==!0||R==="."||R===";")continue;if(!R){_+="\\",N({type:"text",value:_});continue}let P=/^\\+/.exec(Ce()),z=0;if(P&&P[0].length>2&&(z=P[0].length,m.index+=z,z%2!==0&&(_+="\\")),n.unescape===!0?_=Re():_+=Re(),m.brackets===0){N({type:"text",value:_});continue}}if(m.brackets>0&&(_!=="]"||h.value==="["||h.value==="[^")){if(n.posix!==!1&&_===":"){let R=h.value.slice(1);if(R.includes("[")&&(h.posix=!0,R.includes(":"))){let P=h.value.lastIndexOf("["),z=h.value.slice(0,P),re=h.value.slice(P+2),G=gy[re];if(G){h.value=z+G,m.backtrack=!0,Re(),!s.output&&i.indexOf(h)===1&&(s.output=g);continue}}}(_==="["&&D()!==":"||_==="-"&&D()==="]")&&(_=`\\${_}`),_==="]"&&(h.value==="["||h.value==="[^")&&(_=`\\${_}`),n.posix===!0&&_==="!"&&h.value==="["&&(_="^"),h.value+=_,gn({value:_});continue}if(m.quotes===1&&_!=='"'){_=se.escapeRegex(_),h.value+=_,gn({value:_});continue}if(_==='"'){m.quotes=m.quotes===1?0:1,n.keepQuotes===!0&&N({type:"text",value:_});continue}if(_==="("){hn("parens"),N({type:"paren",value:_});continue}if(_===")"){if(m.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Ot("opening","("));let R=x[x.length-1];if(R&&m.parens===R.parens+1){Id(x.pop());continue}N({type:"paren",value:_,output:m.parens?")":"\\)"}),We("parens");continue}if(_==="["){if(n.nobracket===!0||!Ce().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Ot("closing","]"));_=`\\${_}`}else hn("brackets");N({type:"bracket",value:_});continue}if(_==="]"){if(n.nobracket===!0||h&&h.type==="bracket"&&h.value.length===1){N({type:"text",value:_,output:`\\${_}`});continue}if(m.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Ot("opening","["));N({type:"text",value:_,output:`\\${_}`});continue}We("brackets");let R=h.value.slice(1);if(h.posix!==!0&&R[0]==="^"&&!R.includes("/")&&(_=`/${_}`),h.value+=_,gn({value:_}),n.literalBrackets===!1||se.hasRegexChars(R))continue;let P=se.escapeRegex(h.value);if(m.output=m.output.slice(0,-h.value.length),n.literalBrackets===!0){m.output+=P,h.value=P;continue}h.value=`(${a}${P}|${h.value})`,m.output+=h.value;continue}if(_==="{"&&n.nobrace!==!0){hn("braces");let R={type:"brace",value:_,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};H.push(R),N(R);continue}if(_==="}"){let R=H[H.length-1];if(n.nobrace===!0||!R){N({type:"text",value:_,output:_});continue}let P=")";if(R.dots===!0){let z=i.slice(),re=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&re.unshift(z[G].value);P=Sy(re,n),m.backtrack=!0}if(R.comma!==!0&&R.dots!==!0){let z=m.output.slice(0,R.outputIndex),re=m.tokens.slice(R.tokensIndex);R.value=R.output="\\{",_=P="\\}",m.output=z;for(let G of re)m.output+=G.output||G.value}N({type:"brace",value:_,output:P}),We("braces"),H.pop();continue}if(_==="|"){x.length>0&&x[x.length-1].conditions++,N({type:"text",value:_});continue}if(_===","){let R=_,P=H[H.length-1];P&&le[le.length-1]==="braces"&&(P.comma=!0,R="|"),N({type:"comma",value:_,output:R});continue}if(_==="/"){if(h.type==="dot"&&m.index===m.start+1){m.start=m.index+1,m.consumed="",m.output="",i.pop(),h=s;continue}N({type:"slash",value:_,output:p});continue}if(_==="."){if(m.braces>0&&h.type==="dot"){h.value==="."&&(h.output=d);let R=H[H.length-1];h.type="dots",h.output+=_,h.value+=_,R.dots=!0;continue}if(m.braces+m.parens===0&&h.type!=="bos"&&h.type!=="slash"){N({type:"text",value:_,output:d});continue}N({type:"dot",value:_,output:d});continue}if(_==="?"){if(!(h&&h.value==="(")&&n.noextglob!==!0&&D()==="("&&D(2)!=="?"){_n("qmark",_);continue}if(h&&h.type==="paren"){let P=D(),z=_;if(P==="<"&&!se.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(h.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(Ce()))&&(z=`\\${_}`),N({type:"text",value:_,output:z});continue}if(n.dot!==!0&&(h.type==="slash"||h.type==="bos")){N({type:"qmark",value:_,output:v});continue}N({type:"qmark",value:_,output:T});continue}if(_==="!"){if(n.noextglob!==!0&&D()==="("&&(D(2)!=="?"||!/[!=<:]/.test(D(3)))){_n("negate",_);continue}if(n.nonegate!==!0&&m.index===0){kd();continue}}if(_==="+"){if(n.noextglob!==!0&&D()==="("&&D(2)!=="?"){_n("plus",_);continue}if(h&&h.value==="("||n.regex===!1){N({type:"plus",value:_,output:f});continue}if(h&&(h.type==="bracket"||h.type==="paren"||h.type==="brace")||m.parens>0){N({type:"plus",value:_});continue}N({type:"plus",value:f});continue}if(_==="@"){if(n.noextglob!==!0&&D()==="("&&D(2)!=="?"){N({type:"at",extglob:!0,value:_,output:""});continue}N({type:"text",value:_});continue}if(_!=="*"){(_==="$"||_==="^")&&(_=`\\${_}`);let R=hy.exec(Ce());R&&(_+=R[0],m.index+=R[0].length),N({type:"text",value:_});continue}if(h&&(h.type==="globstar"||h.star===!0)){h.type="star",h.star=!0,h.value+=_,h.output=L,m.backtrack=!0,m.globstar=!0,fe(_);continue}let C=Ce();if(n.noextglob!==!0&&/^\([^?]/.test(C)){_n("star",_);continue}if(h.type==="star"){if(n.noglobstar===!0){fe(_);continue}let R=h.prev,P=R.prev,z=R.type==="slash"||R.type==="bos",re=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||C[0]&&C[0]!=="/")){N({type:"star",value:_,output:""});continue}let G=m.braces>0&&(R.type==="comma"||R.type==="brace"),Ae=x.length&&(R.type==="pipe"||R.type==="paren");if(!z&&R.type!=="paren"&&!G&&!Ae){N({type:"star",value:_,output:""});continue}for(;C.slice(0,3)==="/**";){let be=e[m.index+4];if(be&&be!=="/")break;C=C.slice(3),fe("/**",3)}if(R.type==="bos"&&ie()){h.type="globstar",h.value+=_,h.output=U(n),m.output=h.output,m.globstar=!0,fe(_);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&!re&&ie()){m.output=m.output.slice(0,-(R.output+h.output).length),R.output=`(?:${R.output}`,h.type="globstar",h.output=U(n)+(n.strictSlashes?")":"|$)"),h.value+=_,m.globstar=!0,m.output+=R.output+h.output,fe(_);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&C[0]==="/"){let be=C[1]!==void 0?"|$":"";m.output=m.output.slice(0,-(R.output+h.output).length),R.output=`(?:${R.output}`,h.type="globstar",h.output=`${U(n)}${p}|${p}${be})`,h.value+=_,m.output+=R.output+h.output,m.globstar=!0,fe(_+Re()),N({type:"slash",value:"/",output:""});continue}if(R.type==="bos"&&C[0]==="/"){h.type="globstar",h.value+=_,h.output=`(?:^|${p}|${U(n)}${p})`,m.output=h.output,m.globstar=!0,fe(_+Re()),N({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-h.output.length),h.type="globstar",h.output=U(n),h.value+=_,m.output+=h.output,m.globstar=!0,fe(_);continue}let Y={type:"star",value:_,output:L};if(n.bash===!0){Y.output=".*?",(h.type==="bos"||h.type==="slash")&&(Y.output=k+Y.output),N(Y);continue}if(h&&(h.type==="bracket"||h.type==="paren")&&n.regex===!0){Y.output=_,N(Y);continue}(m.index===m.start||h.type==="slash"||h.type==="dot")&&(h.type==="dot"?(m.output+=b,h.output+=b):n.dot===!0?(m.output+=I,h.output+=I):(m.output+=k,h.output+=k),D()!=="*"&&(m.output+=g,h.output+=g)),N(Y)}for(;m.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Ot("closing","]"));m.output=se.escapeLast(m.output,"["),We("brackets")}for(;m.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Ot("closing",")"));m.output=se.escapeLast(m.output,"("),We("parens")}for(;m.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Ot("closing","}"));m.output=se.escapeLast(m.output,"{"),We("braces")}if(n.strictSlashes!==!0&&(h.type==="star"||h.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${p}?`}),m.backtrack===!0){m.output="";for(let C of m.tokens)m.output+=C.output!=null?C.output:C.value,C.suffix&&(m.output+=C.suffix)}return m};rs.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(dr,n.maxLength):dr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=yl[e]||e;let s=se.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:p,START_ANCHOR:g}=nn.globChars(s),S=n.dot?d:u,A=n.dot?f:u,b=n.capture?"":"?:",I={negated:!1,prefix:""},T=n.bash===!0?".*?":p;n.capture&&(T=`(${T})`);let v=k=>k.noglobstar===!0?T:`(${b}(?:(?!${g}${k.dot?l:i}).)*?)`,O=k=>{switch(k){case"*":return`${S}${c}${T}`;case".*":return`${i}${c}${T}`;case"*.*":return`${S}${T}${i}${c}${T}`;case"*/*":return`${S}${T}${a}${c}${A}${T}`;case"**":return S+v(n);case"**/*":return`(?:${S}${v(n)}${a})?${A}${c}${T}`;case"**/*.*":return`(?:${S}${v(n)}${a})?${A}${T}${i}${c}${T}`;case"**/.*":return`(?:${S}${v(n)}${a})?${i}${c}${T}`;default:{let w=/^(.*?)\.(\w+)$/.exec(k);if(!w)return;let L=O(w[1]);return L?L+i+w[2]:void 0}}},K=se.removePrefix(e,I),U=O(K);return U&&n.strictSlashes!==!0&&(U+=`${a}?`),U};Al.exports=rs});var kl=V((AI,xl)=>{"use strict";var by=ze("path"),xy=El(),os=bl(),ss=en(),ky=Qt(),Iy=e=>e&&typeof e=="object"&&!Array.isArray(e),ee=(e,t,n=!1)=>{if(Array.isArray(e)){let u=e.map(f=>ee(f,t,n));return f=>{for(let p of u){let g=p(f);if(g)return g}return!1}}let r=Iy(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=ss.isWindows(t),i=r?ee.compileRe(e,t):ee.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=ee(o.ignore,u,n)}let l=(u,d=!1)=>{let{isMatch:f,match:p,output:g}=ee.test(u,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:u,output:g,match:p,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,d?S:!1):c(u)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,d?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),d?S:!0)};return n&&(l.state=a),l};ee.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?ss.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=ee.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};ee.matchBase=(e,t,n,r=ss.isWindows(n))=>(t instanceof RegExp?t:ee.makeRe(t,n)).test(by.basename(e));ee.isMatch=(e,t,n)=>ee(t,n)(e);ee.parse=(e,t)=>Array.isArray(e)?e.map(n=>ee.parse(n,t)):os(e,{...t,fastpaths:!1});ee.scan=(e,t)=>xy(e,t);ee.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=ee.toRegex(a,t);return r===!0&&(c.state=e),c};ee.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=os.fastpaths(e,t)),o.output||(o=os(e,t)),ee.compileRe(o,t,n,r)};ee.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/$^/}};ee.constants=ky;xl.exports=ee});var Ol=V((bI,Il)=>{"use strict";Il.exports=kl()});var Ml=V((xI,vl)=>{"use strict";var Pl=ze("util"),wl=il(),we=Ol(),is=en(),Tl=e=>e===""||e==="./",Nl=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},J=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=u=>{s.add(u.output),n&&n.onResult&&n.onResult(u)};for(let u=0;u<t.length;u++){let d=we(String(t[u]),{...n,onResult:a},!0),f=d.state.negated||d.state.negatedExtglob;f&&i++;for(let p of e){let g=d(p,!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};J.match=J;J.matcher=(e,t)=>we(e,t);J.isMatch=(e,t,n)=>we(t,n)(e);J.any=J.isMatch;J.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(J(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};J.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Pl.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>J.contains(e,r,n));if(typeof t=="string"){if(Tl(e)||Tl(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return J.isMatch(e,t,{...n,contains:!0})};J.matchKeys=(e,t,n)=>{if(!is.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=J(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};J.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=we(String(o),n);if(r.some(i=>s(i)))return!0}return!1};J.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=we(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};J.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Pl.inspect(e)}"`);return[].concat(t).every(r=>we(r,n)(e))};J.capture=(e,t,n)=>{let r=is.isWindows(n),s=we.makeRe(String(e),{...n,capture:!0}).exec(r?is.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};J.makeRe=(...e)=>we.makeRe(...e);J.scan=(...e)=>we.scan(...e);J.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of wl(String(r),t))n.push(we.parse(o,t));return n};J.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Nl(e)?[e]:wl(e,t)};J.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return J.braces(e,{...t,expand:!0})};J.hasBraces=Nl;vl.exports=J});import{realpathSync as IA}from"node:fs";import{resolve as OA}from"node:path";import{fileURLToPath as TA,pathToFileURL as PA}from"node:url";import{createHash as Md}from"node:crypto";import{homedir as Ld}from"node:os";import{dirname as GA,join as Hd,parse as WA,resolve as zA}from"node:path";var Ws="EV_AI_LAUNCHER_VERSION";var zs="EV_AI_HOOK_SOURCE",Vs="EV_AI_HOOK_FALLBACK_REASON",Js="EV_AI_LAUNCHER_SCOPE",wr="EV_AI_LAUNCHER_READY_FD";var Ys="--defer-user-spec",Xs=Buffer.from([1]);var MA=1024*1024,LA=4*1024*1024,HA=64*1024,UA=64*1024,DA=64*1024;var Nr=4096,FA=4*1024*1024;var Zs="https://hooks.ev-ai.ai",En=".claude/ev-ai-runtime-report.json",Qs="config.json",JA=1024*1024,Ud=new Set(["localhost","127.0.0.1","[::1]","::1"]),Dd=["claude","cursor","codex"],yn=[En,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],vr=/^[A-Za-z0-9._~-]+$/;function Rn(e){return e!==void 0&&Dd.includes(e)}function Sn(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Mr(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=Sn(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=Sn(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=Sn(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=Sn(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}a!==Ys&&!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:Rn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function Cn(e,t=Zs){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Lr(e=Ld()){return Hd(e,".ev-ai",Qs)}function ei(e,t){return{...e,...t}}function qs(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 An(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Ud.has(t.hostname):!1}catch{return!1}}function Hr(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 Et(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!An(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Hr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!vr.test(n))return`org token must match ${vr.source} (got: ${n})`;if(qs(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(qs(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Ht(e){return new URL(e).toString()}function Ur(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?Cn(n):""}function bn(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 ti(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=Cn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Et(n);return r?{problem:r}:{url:Ht(n)}}function ni(e){if(Et(e))return;let t;try{t=new URL(e)}catch{return}let n=Hr(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 Md("sha256").update(i).digest("hex").slice(0,32)}var Je=2,ri="node_modules/@ev-ai/agent-hook/dist/hook.mjs",xe="ev-ai-agent-hook";function Fd(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function xn(e){let t=Fd(e);return t===xe||t===`${xe}.exe`}var oi="https://cdn.ev-ai.ai/agent-hook";var Dr=`current/${xe}`,Fr=`.ev-ai/agent-hook/${xe}`,si=5e3,ii=5e3,$r=3e3;var kn=3e3,ai=1500,ci=4*1024,jr=256*1024,$d=4*1024,ui=32*1024,Me="1.3.1",In=`@ev-ai/agent-hook@${Me}`,li="ev-ai runtime report";import{chmodSync as ea,cpSync as ta,existsSync as Xe,mkdirSync as oo,readFileSync as Yp,rmSync as Hn,symlinkSync as Xp,writeFileSync as qp}from"node:fs";import{homedir as De}from"node:os";import{dirname as so,isAbsolute as Zp,join as W,relative as na,resolve as Zi,sep as Qp}from"node:path";import{fileURLToPath as em}from"node:url";import{existsSync as jd,readdirSync as fi}from"node:fs";import{homedir as On}from"node:os";import{join as ae}from"node:path";function di(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ae(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Br(e=process.platform){let t=di(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!jd(r))return n;let o=fi(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function Kr(e=process.platform,t=On()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:Br(e)}}function Bd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ae(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Kd(e=process.platform,t=On()){let n=[ae(Bd(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of fi(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function Gd(e=process.platform,t=On()){let n=e==="win32"?ae(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ae(n,"requirements.toml")];return e!=="win32"&&r.push(ae(n,"managed_config.toml")),r.push(ae(t,".codex","managed_config.toml"),ae(n,"config.toml")),r}function Tn(e,t=process.platform,n=On()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Kr(t,n);return[r,...o]}case"cursor":return Kd(t,n);default:return Gd(t,n)}}import{createHash as Ni,randomBytes as hp}from"node:crypto";import{existsSync as vi,mkdirSync as Yr,readFileSync as Mi,unlinkSync as Li,writeFileSync as Hi}from"node:fs";import{homedir as Xr}from"node:os";import{dirname as vn,join as qr,resolve as _p}from"node:path";var Wd=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),zd=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function de(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||zd.has(n)||r.includes("[bot]")||Wd.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}import{existsSync as rp,readFileSync as op}from"node:fs";import{hostname as Ci,userInfo as sp}from"node:os";import{createHash as Vd,randomBytes as Jd}from"node:crypto";import{existsSync as Gr,mkdirSync as Yd,readdirSync as Xd,readFileSync as qd,renameSync as pi,statSync as _i,unlinkSync as mi,writeFileSync as Zd}from"node:fs";import{basename as Qd,dirname as gi,join as Si,relative as ep}from"node:path";function E(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
15
|
-
`)}function Ut(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Dt(e){return Vd("sha256").update(e).digest("hex").slice(0,32)}function ke(e,t){Yd(gi(e),{recursive:!0});let n=Si(gi(e),`.${Qd(e)}.${process.pid}.${Jd(4).toString("hex")}.tmp`);try{Zd(n,t,"utf8");try{pi(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){mi(e),pi(n,e);return}throw r}}catch(r){try{mi(n)}catch{}throw r}}function Pn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Wr(){process.stdout.write('{"continue":true}')}function F(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Ft(){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 wn(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 te(e,t,n=3e3,r={}){let o=await Se(e,t,n,r);return o.ok?o.stdout:""}async function zr(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(F("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;E(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=F("CURSOR_PROJECT_DIR")??F("CLAUDE_PROJECT_DIR");if(n&&Gr(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 Le(e=process.cwd()){return(await zr(e)).root}function me(e,t){try{return JSON.parse(e)}catch{return t}}var hi=new Map;function tp(e){return e.charCodeAt(0)===65279?e.slice(1):e}function np(e){let t;try{t=qd(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(tp(t))}}catch{return{ok:!1,reason:"parse"}}}function Ei(e){let t=hi.get(e);if(t!==void 0)return t;let n=np(e);return hi.set(e,n),n}function yi(e){return Ei(e)}function oe(e,t){let n=Ei(e);return n.ok?n.value:t}function it(e){return typeof e=="string"?e:""}function He(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 M(e,t){let n=He(e,t);return typeof n=="string"?n:""}var Ye=500;function Ri(e,t=2){if(!Gr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Xd(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Si(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:ep(e,l),size:_i(l).size})}catch{continue}if(n.length>=Ye){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Vr(e){return Gr(e)?{present:!0,size:_i(e).size}:{present:!1,size:0}}function yt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Ai(e=process.env){return yt(X("CURSOR_SANDBOX",e))}var ip=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function ap(e){return ip.some(t=>!!X(t,e))}function cp(e){if(X("KUBERNETES_SERVICE_HOST",e)||yt(X("REMOTE_CONTAINERS",e))||yt(X("DEVCONTAINER",e)))return!0;try{if(rp("/.dockerenv")||op("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function bi(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function up(e,t=process.platform){return bi(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function lp(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function fp(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return F(e)}function dp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!pp(X("CURSOR_VERSION",n))}function pp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Jr(e){if(lp(e.sessionId))return!0;let t=e.hostname??Ci(),n=e.osUser??ki(e.env);return dp(t,n,e.env)}function mp(e){return yt(X("CURSOR_AGENT",e.env))?!0:Jr(e)}function gp(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(X("TERM",e)??X("TERM_PROGRAM",e))||(X("SSH_TTY",e)??X("SSH_CONNECTION",e))||(X("__CFBundleIdentifier",e)??X("XPC_SERVICE_NAME",e))||bi(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function $t(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(yt(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!up(t,n)&&mp(e)&&(yt(X("CURSOR_AGENT",t))||fp(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(ap(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":cp(t)?"container":gp(t)?"interactive":"unknown"}async function xi(){return await te("systemd-detect-virt",[],1e3)}function ki(e=process.env,t=sp){for(let n of["USER","LOGNAME","USERNAME"]){let r=e[n];if(typeof r=="string"){let o=r.trim();if(o.length>0)return o}}try{return t().username??""}catch{return""}}async function Ii(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await te("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 te("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await te("uname",["-r"],1e3))}else t=await te("ver",[],1e3);let n=ki(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await te("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 Nn(){return Ci()}var Sp="installation.json",Ep="cloud-bootstrap.lock",yp=6e4;function Ui(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Ue(e=Xr()){return qr(e,".ev-ai","agent-hook")}function Rp(e=Xr()){return qr(Ue(e),Sp)}function Di(e){return qr(vn(e),Ep)}function Fi(){return hp(8).toString("hex")}function Rt(e){return Ni("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 Cp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!$i(t)){E(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function ji(e,t){return e&&$i(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Cp(t))}function Ap(e){return/^[0-9a-f]{16}$/.test(e)}function bp(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 Rt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return Rt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return Rt(`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 Rt(`gitlab|${t}|${n}`)}return null}var xp="cursoragent@cursor.com";function kp(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===xp?null:t}function Ip(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Op(e){return Ut(e).replace(/\.git$/i,"").toLowerCase()}async function Tp(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Op(t):e}async function Pp(e){let t=$(await te("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!de(null,t))return t;let n=$(await te("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!de(null,n)?n:null}function wp(e,t){let n=Ip(e,t);return n?Rt(`cursor_cloud|${n}|${kp(e)??""}`):null}async function Np(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Tp(n),o=await Pp(n);return Rt(`claude_remote|${r}|${o??""}`)}function Oi(e,t){let n=ji(e,t);if(n)return n;let r=bp(t);return r||Fi()}async function vp(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||_p(e);return Ni("sha256").update(n).digest("hex").slice(0,16)}function Mp(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 Lp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Mp(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 at(e){if(vi(e))try{return Lp(Mi(e,"utf8"))}catch{}}function Zr(e){return at(e)}function Bi(e,t,n){let r=at(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{ke(e,`${JSON.stringify(o,null,2)}
|
|
16
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: operator identity cache write failed open: ${i}`)}}function
|
|
17
|
-
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(
|
|
18
|
-
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: platform_agent_id cache write failed open: ${i}`)}}function
|
|
19
|
-
`,{encoding:"utf8",flag:"wx"})}function
|
|
20
|
-
`)}function
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
`).trimEnd();return(0,Re.usableCatalogText)(f)}});var dc=V(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=Q.COMPONENT_INSPECTION_TEXT_MAX_BYTES=Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=void 0;Q.fitSnapshotInspectionTextBudget=Lh;Q.capComponentTextBytes=fc;Q.prepareComponentInspectionText=Hh;Q.redactComponentSource=Co;Q.componentSourceContainsRedactableSecret=Kh;Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Q.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Q.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function Lh(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<=Q.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES?(t+=s,n):{...n,skill:{...r.skill,inspectionText:void 0}}})}function fc(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 Hh(e){if(!(e==null||e.length===0))return fc(Co(e),Q.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var Uh=[/\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],Dh=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,Fh=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,$h=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,jh=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,lc=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function Bh(e){let t=e.replace(Fh,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace($h,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(Dh,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of Uh)t=t.replace(n,Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function Co(e){if(e.length===0)return e;let t=e.split(`
|
|
12
|
+
`),n=!1;return t.map(o=>n?lc.test(o)?(n=!1,o):o.trim().length===0?o:Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:jh.test(o)&&!lc.test(o)?(n=!0,o):Bh(o)).join(`
|
|
13
|
+
`)}function Kh(e){return Co(e)!==e}});var rt=V(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.redactComponentSource=y.prepareComponentInspectionText=y.fitSnapshotInspectionTextBudget=y.componentSourceContainsRedactableSecret=y.capComponentTextBytes=y.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=y.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=y.COMPONENT_INSPECTION_TEXT_MAX_BYTES=y.usableCatalogText=y.parseFrontmatterField=y.parseFrontmatterDescription=y.mcpServerToolSegmentForms=y.mcpServerNameMatchesToolSegment=y.isNpmRegistryPublisher=y.EMPTY_NPM_PUBLISHER=y.displayPublisherName=y.classifyMcpProvenance=y.resolveMcpPackageIdentity=y.McpPackageEcosystem=y.pinnedPackageVersionFromSpec=y.pinnedPackageVersionFromNpx=y.packageNameFromSpec=y.npxPackageSpecs=y.npxExecBin=y.PACKAGE_FIELD_MAX=y.serializeMcpLaunchIdentity=y.projectMcpMissingLaunchIdentity=y.projectMcpLaunchIdentity=y.normalizeMcpToolNames=y.MCP_MISSING_LAUNCH_SERIALIZED=y.MCP_LAUNCH_IDENTITY_ALGORITHM=y.maskMcpLaunchForDisplay=y.launchContainsCredentials=y.hashMcpLaunchIdentity=y.foldMcpName=y.buildMcpFamilyCanonicalKey=y.ComponentKind=void 0;y.userConfigRootFromPath=Qh;y.installationRootExternalKey=e_;y.normalizeRepositoryRelativePath=pc;y.nativeKeyForSkillPath=t_;y.nativeKeyForRulePath=n_;y.nativeKeyForCommandPath=r_;y.serializeComponentIdentity=gc;y.buildComponentReference=s_;y.validateComponentReference=i_;var Gh=ze("node:crypto"),Wh=ze("node:path"),zh="cmp1_",Vh=/^cmp1_[A-Za-z0-9_-]{43}$/,Jh=["/skills/","/skills-cursor/"],Yh=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Xh=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,qh=[".cursor",".claude",".codex"],Zh={".claude.json":".claude",".agents":".codex"};y.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Qh(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>qh.includes(o));return n||(t.map(o=>Zh[o]).find(o=>o!==void 0)??"unknown")}function e_(e,t){return`runtime-install:${e}/${t}`}function Yn(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function pc(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Wh.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return Yn(n,"sourcePath")}function t_(e){let t=e.replaceAll("\\","/");for(let n of Jh){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function mc(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 n_(e){return mc(e,Yh,/\.(mdc|md|rules)$/i)}function r_(e){return mc(e,Xh,/\.(md|mdc|toml)$/i)}function o_(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function gc(e){let t=[Yn(e.installationRootExternalKey,"installationRootExternalKey"),Yn(e.installableKind,"installableKind"),pc(e.sourcePath),Yn(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(o_).join("|")}`,"utf8")}function s_(e){let t=(0,Gh.createHash)("sha256").update(gc(e)).digest("base64url");return`${zh}${t}`}function i_(e){return Vh.test(e)}var Ce=Wn();Object.defineProperty(y,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Ce.buildMcpFamilyCanonicalKey}});Object.defineProperty(y,"foldMcpName",{enumerable:!0,get:function(){return Ce.foldMcpName}});Object.defineProperty(y,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Ce.hashMcpLaunchIdentity}});Object.defineProperty(y,"launchContainsCredentials",{enumerable:!0,get:function(){return Ce.launchContainsCredentials}});Object.defineProperty(y,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Ce.maskMcpLaunchForDisplay}});Object.defineProperty(y,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Ce.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(y,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Ce.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(y,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Ce.normalizeMcpToolNames}});Object.defineProperty(y,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Ce.projectMcpLaunchIdentity}});Object.defineProperty(y,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Ce.projectMcpMissingLaunchIdentity}});Object.defineProperty(y,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Ce.serializeMcpLaunchIdentity}});var xt=Vn();Object.defineProperty(y,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return xt.PACKAGE_FIELD_MAX}});Object.defineProperty(y,"npxExecBin",{enumerable:!0,get:function(){return xt.npxExecBin}});Object.defineProperty(y,"npxPackageSpecs",{enumerable:!0,get:function(){return xt.npxPackageSpecs}});Object.defineProperty(y,"packageNameFromSpec",{enumerable:!0,get:function(){return xt.packageNameFromSpec}});Object.defineProperty(y,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return xt.pinnedPackageVersionFromNpx}});Object.defineProperty(y,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return xt.pinnedPackageVersionFromSpec}});var hc=ec();Object.defineProperty(y,"McpPackageEcosystem",{enumerable:!0,get:function(){return hc.McpPackageEcosystem}});Object.defineProperty(y,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return hc.resolveMcpPackageIdentity}});var Xn=ic();Object.defineProperty(y,"classifyMcpProvenance",{enumerable:!0,get:function(){return Xn.classifyMcpProvenance}});Object.defineProperty(y,"displayPublisherName",{enumerable:!0,get:function(){return Xn.displayPublisherName}});Object.defineProperty(y,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return Xn.EMPTY_NPM_PUBLISHER}});Object.defineProperty(y,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return Xn.isNpmRegistryPublisher}});var _c=cc();Object.defineProperty(y,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return _c.mcpServerNameMatchesToolSegment}});Object.defineProperty(y,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return _c.mcpServerToolSegmentForms}});var Ao=uc();Object.defineProperty(y,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Ao.parseFrontmatterDescription}});Object.defineProperty(y,"parseFrontmatterField",{enumerable:!0,get:function(){return Ao.parseFrontmatterField}});Object.defineProperty(y,"usableCatalogText",{enumerable:!0,get:function(){return Ao.usableCatalogText}});var nt=dc();Object.defineProperty(y,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return nt.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(y,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return nt.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(y,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return nt.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(y,"capComponentTextBytes",{enumerable:!0,get:function(){return nt.capComponentTextBytes}});Object.defineProperty(y,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return nt.componentSourceContainsRedactableSecret}});Object.defineProperty(y,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return nt.fitSnapshotInspectionTextBudget}});Object.defineProperty(y,"prepareComponentInspectionText",{enumerable:!0,get:function(){return nt.prepareComponentInspectionText}});Object.defineProperty(y,"redactComponentSource",{enumerable:!0,get:function(){return nt.redactComponentSource}})});var lr=V(Se=>{"use strict";Se.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;Se.find=(e,t)=>e.nodes.find(n=>n.type===t);Se.exceedsLimit=(e,t,n=1,r)=>r===!1||!Se.isInteger(e)||!Se.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;Se.escapeNode=(e,t=0,n)=>{let r=e.nodes[t];r&&(n&&r.type===n||r.type==="open"||r.type==="close")&&r.escaped!==!0&&(r.value="\\"+r.value,r.escaped=!0)};Se.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;Se.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;Se.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;Se.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);Se.flatten=(...e)=>{let t=[],n=r=>{for(let o=0;o<r.length;o++){let s=r[o];if(Array.isArray(s)){n(s);continue}s!==void 0&&t.push(s)}return t};return n(e),t}});var fr=V((DI,Lu)=>{"use strict";var Mu=lr();Lu.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&Mu.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&Mu.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 Uu=V((FI,Hu)=>{"use strict";Hu.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var zu=V(($I,Wu)=>{"use strict";var Du=Uu(),ft=(e,t,n)=>{if(Du(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(Du(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(ft.cache.hasOwnProperty(c))return ft.cache[c].result;let l=Math.min(e,t),u=Math.max(e,t);if(Math.abs(l-u)===1){let S=e+"|"+t;return r.capture?`(${S})`:r.wrap===!1?S:`(?:${S})`}let d=Gu(e)||Gu(t),f={min:e,max:t,a:l,b:u},p=[],g=[];if(d&&(f.isPadded=d,f.maxLen=String(f.max).length),l<0){let S=u<0?Math.abs(u):1;g=Fu(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(p=Fu(l,u,f,r)),f.negatives=g,f.positives=p,f.result=OE(g,p,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&p.length+g.length>1&&(f.result=`(?:${f.result})`),ft.cache[c]=f,f.result};function OE(e,t,n){let r=Xo(e,t,"-",!1,n)||[],o=Xo(t,e,"",!1,n)||[],s=Xo(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function TE(e,t){let n=1,r=1,o=ju(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=ju(e,n);for(o=Bu(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=Bu(t+1,r)-1;return s=[...s],s.sort(NE),s}function PE(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=wE(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+=vE(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function Fu(e,t,n,r){let o=TE(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=PE(String(i),String(l),r),d="";if(!n.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+Ku(a.count),i=l+1;continue}n.isPadded&&(d=ME(l,n,r)),u.string=d+u.pattern+Ku(u.count),s.push(u),i=l+1,a=u}return s}function Xo(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!$u(t,"string",a)&&s.push(n+a),r&&$u(t,"string",a)&&s.push(n+a)}return s}function wE(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function NE(e,t){return e>t?1:t>e?-1:0}function $u(e,t,n){return e.some(r=>r[t]===n)}function ju(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Bu(e,t){return e-e%Math.pow(10,t)}function Ku(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function vE(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Gu(e){return/^-?(0+)\d/.test(e)}function ME(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}}`}}ft.cache={};ft.clearCache=()=>ft.cache={};Wu.exports=ft});var Qo=V((jI,Qu)=>{"use strict";var LE=ze("util"),Ju=zu(),Vu=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),HE=e=>t=>e===!0?Number(t):String(t),qo=e=>typeof e=="number"||typeof e=="string"&&e!=="",en=e=>Number.isInteger(+e),Zo=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},UE=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,DE=(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},pr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},FE=(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=>pr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>pr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Yu=(e,t,n,r)=>{if(n)return Ju(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},Xu=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Ju(e,t,n)},qu=(...e)=>new RangeError("Invalid range arguments: "+LE.inspect(...e)),Zu=(e,t,n)=>{if(n.strictRanges===!0)throw qu([e,t]);return[]},$E=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},jE=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw qu([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=Zo(a)||Zo(c)||Zo(l),d=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&UE(e,t,r)===!1,p=r.transform||HE(f);if(r.toRegex&&n===1)return Yu(pr(e,d),pr(t,d),!0,r);let g={negatives:[],positives:[]},S=O=>g[O<0?"negatives":"positives"].push(Math.abs(O)),A=[],k=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):A.push(DE(p(o,k),d,f)),o=i?o-n:o+n,k++;return r.toRegex===!0?n>1?FE(g,r,d):Xu(A,null,{wrap:!1,...r}):A},BE=(e,t,n=1,r={})=>{if(!en(e)&&e.length>1||!en(t)&&t.length>1)return Zu(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 Yu(c,l,!1,r);let u=[],d=0;for(;a?s>=i:s<=i;)u.push(o(s,d)),s=a?s-n:s+n,d++;return r.toRegex===!0?Xu(u,null,{wrap:!1,options:r}):u},dr=(e,t,n,r={})=>{if(t==null&&qo(e))return[e];if(!qo(e)||!qo(t))return Zu(e,t,r);if(typeof n=="function")return dr(e,t,1,{transform:n});if(Vu(n))return dr(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,en(n)?en(e)&&en(t)?jE(e,t,n,o):BE(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Vu(n)?$E(n,o):dr(e,t,1,n)};Qu.exports=dr});var nl=V((BI,tl)=>{"use strict";var KE=Qo(),el=lr(),GE=(e,t={})=>{let n=(r,o={})=>{let s=el.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=el.reduce(r.nodes),d=KE(...u,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return u.length>1&&d.length>1?`(${d})`:d}if(r.nodes)for(let u of r.nodes)l+=n(u,r);return l};return n(e)};tl.exports=GE});var sl=V((KI,ol)=>{"use strict";var WE=Qo(),rl=fr(),Ot=lr(),dt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?Ot.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(dt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?dt(o,s,n):o+s);return Ot.flatten(r)},zE=(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(dt(a.pop(),rl(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(dt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=Ot.reduce(o.nodes);if(Ot.exceedsLimit(...d,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=WE(...d,t);f.length===0&&(f=rl(o,t)),a.push(dt(a.pop(),f)),o.nodes=[];return}let c=Ot.encloseBrace(o),l=o.queue,u=o;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,l=u.queue;for(let d=0;d<o.nodes.length;d++){let f=o.nodes[d];if(f.type==="comma"&&o.type==="brace"){d===1&&l.push(""),l.push("");continue}if(f.type==="close"){a.push(dt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(dt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return Ot.flatten(r(e))};ol.exports=zE});var al=V((GI,il)=>{"use strict";il.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:`
|
|
14
|
+
`,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 dl=V((WI,fl)=>{"use strict";var VE=fr(),{MAX_LENGTH:cl,CHAR_BACKSLASH:es,CHAR_BACKTICK:JE,CHAR_COMMA:YE,CHAR_DOT:XE,CHAR_LEFT_PARENTHESES:qE,CHAR_RIGHT_PARENTHESES:ZE,CHAR_LEFT_CURLY_BRACE:QE,CHAR_RIGHT_CURLY_BRACE:ey,CHAR_LEFT_SQUARE_BRACKET:ul,CHAR_RIGHT_SQUARE_BRACKET:ll,CHAR_DOUBLE_QUOTE:ty,CHAR_SINGLE_QUOTE:ny,CHAR_NO_BREAK_SPACE:ry,CHAR_ZERO_WIDTH_NOBREAK_SPACE:oy}=al(),sy=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(cl,n.maxLength):cl;if(e.length>r)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${r})`);let o={type:"root",input:e,nodes:[]},s=[o],i=o,a=o,c=0,l=e.length,u=0,d=0,f,p=()=>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=p(),!(f===oy||f===ry)){if(f===es){g({type:"text",value:(t.keepEscaping?f:"")+p()});continue}if(f===ll){g({type:"text",value:"\\"+f});continue}if(f===ul){c++;let S;for(;u<l&&(S=p());){if(f+=S,S===ul){c++;continue}if(S===es){f+=p();continue}if(S===ll&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===qE){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===ZE){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===ty||f===ny||f===JE){let S=f,A;for(t.keepQuotes!==!0&&(f="");u<l&&(A=p());){if(A===es){f+=A+p();continue}if(A===S){t.keepQuotes===!0&&(f+=A);break}f+=A}g({type:"text",value:f});continue}if(f===QE){d++;let A={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||i.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};i=g(A),s.push(i),g({type:"open",value:f});continue}if(f===ey){if(i.type!=="brace"){g({type:"text",value:f});continue}let S="close";i=s.pop(),i.close=!0,g({type:S,value:f}),d--,i=s[s.length-1];continue}if(f===YE&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:VE(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===XE&&d>0&&i.commas===0){let S=i.nodes;if(d===0||S.length===0){g({type:"text",value:f});continue}if(a.type==="dot"){if(i.range=[],a.value+=f,a.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,a.type="text";continue}i.ranges++,i.args=[];continue}if(a.type==="range"){S.pop();let A=S[S.length-1];A.value+=a.value+f,a=A,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(k=>{k.nodes||(k.type==="open"&&(k.isOpen=!0),k.type==="close"&&(k.isClose=!0),k.nodes||(k.type="text"),k.invalid=!0)});let S=s[s.length-1],A=S.nodes.indexOf(i);S.nodes.splice(A,1,...i.nodes)}while(s.length>0);return g({type:"eos"}),o};fl.exports=sy});var gl=V((zI,ml)=>{"use strict";var pl=fr(),iy=nl(),ay=sl(),cy=dl(),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={})=>cy(e,t);pe.stringify=(e,t={})=>pl(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),iy(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=ay(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);ml.exports=pe});var tn=V((VI,yl)=>{"use strict";var uy=ze("path"),we="\\\\/",hl=`[^${we}]`,ly=0,Ge="\\.",fy="\\+",dy="\\?",mr="\\/",py="(?=.)",_l="[^/]",ts=`(?:${mr}|$)`,Sl=`(?:^|${mr})`,ns=`${Ge}{1,2}${ts}`,my=`(?!${Ge})`,gy=`(?!${Sl}${ns})`,hy=`(?!${Ge}{0,1}${ts})`,_y=`(?!${ns})`,Sy=`[^.${mr}]`,Ey=`${_l}*?`,El={DOT_LITERAL:Ge,PLUS_LITERAL:fy,QMARK_LITERAL:dy,SLASH_LITERAL:mr,ONE_CHAR:py,QMARK:_l,END_ANCHOR:ts,DOTS_SLASH:ns,NO_DOT:my,NO_DOTS:gy,NO_DOT_SLASH:hy,NO_DOTS_SLASH:_y,QMARK_NO_DOT:Sy,STAR:Ey,START_ANCHOR:Sl},yy={...El,SLASH_LITERAL:`[${we}]`,QMARK:hl,STAR:`${hl}*?`,DOTS_SLASH:`${Ge}{1,2}(?:[${we}]|$)`,NO_DOT:`(?!${Ge})`,NO_DOTS:`(?!(?:^|[${we}])${Ge}{1,2}(?:[${we}]|$))`,NO_DOT_SLASH:`(?!${Ge}{0,1}(?:[${we}]|$))`,NO_DOTS_SLASH:`(?!${Ge}{1,2}(?:[${we}]|$))`,QMARK_NO_DOT:`[^.${we}]`,START_ANCHOR:`(?:^|[${we}])`,END_ANCHOR:`(?:[${we}]|$)`},Ry={__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"};yl.exports={DEFAULT_MAX_EXTGLOB_RECURSION:ly,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Ry,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:uy.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?yy:El}}});var nn=V(ce=>{"use strict";var Cy=ze("path"),Ay=process.platform==="win32",{REGEX_BACKSLASH:ky,REGEX_REMOVE_BACKSLASH:by,REGEX_SPECIAL_CHARS:xy,REGEX_SPECIAL_CHARS_GLOBAL:Iy}=tn();ce.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ce.hasRegexChars=e=>xy.test(e);ce.isRegexChar=e=>e.length===1&&ce.hasRegexChars(e);ce.escapeRegex=e=>e.replace(Iy,"\\$1");ce.toPosixSlashes=e=>e.replace(ky,"/");ce.removeBackslashes=e=>e.replace(by,t=>t==="\\"?"":t);ce.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};ce.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:Ay===!0||Cy.sep==="\\";ce.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?ce.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};ce.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};ce.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",o=n.contains?"":"$",s=`${r}(?:${e})${o}`;return t.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Ol=V((YI,Il)=>{"use strict";var Rl=nn(),{CHAR_ASTERISK:rs,CHAR_AT:Oy,CHAR_BACKWARD_SLASH:rn,CHAR_COMMA:Ty,CHAR_DOT:os,CHAR_EXCLAMATION_MARK:ss,CHAR_FORWARD_SLASH:xl,CHAR_LEFT_CURLY_BRACE:is,CHAR_LEFT_PARENTHESES:as,CHAR_LEFT_SQUARE_BRACKET:Py,CHAR_PLUS:wy,CHAR_QUESTION_MARK:Cl,CHAR_RIGHT_CURLY_BRACE:Ny,CHAR_RIGHT_PARENTHESES:Al,CHAR_RIGHT_SQUARE_BRACKET:vy}=tn(),kl=e=>e===xl||e===rn,bl=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},My=(e,t)=>{let n=t||{},r=e.length-1,o=n.parts===!0||n.scanToEnd===!0,s=[],i=[],a=[],c=e,l=-1,u=0,d=0,f=!1,p=!1,g=!1,S=!1,A=!1,k=!1,O=!1,I=!1,v=!1,T=!1,K=0,D,x,w={value:"",depth:0,isGlob:!1},L=()=>l>=r,m=()=>c.charCodeAt(l+1),b=()=>(D=x,c.charCodeAt(++l));for(;l<r;){x=b();let ie;if(x===rn){O=w.backslashes=!0,x=b(),x===is&&(k=!0);continue}if(k===!0||x===is){for(K++;L()!==!0&&(x=b());){if(x===rn){O=w.backslashes=!0,b();continue}if(x===is){K++;continue}if(k!==!0&&x===os&&(x=b())===os){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(k!==!0&&x===Ty){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===Ny&&(K--,K===0)){k=!1,f=w.isBrace=!0,T=!0;break}}if(o===!0)continue;break}if(x===xl){if(s.push(l),i.push(w),w={value:"",depth:0,isGlob:!1},T===!0)continue;if(D===os&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(x===wy||x===Oy||x===rs||x===Cl||x===ss)===!0&&m()===as){if(g=w.isGlob=!0,S=w.isExtglob=!0,T=!0,x===ss&&l===u&&(v=!0),o===!0){for(;L()!==!0&&(x=b());){if(x===rn){O=w.backslashes=!0,x=b();continue}if(x===Al){g=w.isGlob=!0,T=!0;break}}continue}break}if(x===rs){if(D===rs&&(A=w.isGlobstar=!0),g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===Cl){if(g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===Py){for(;L()!==!0&&(ie=b());){if(ie===rn){O=w.backslashes=!0,b();continue}if(ie===vy){p=w.isBracket=!0,g=w.isGlob=!0,T=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&x===ss&&l===u){I=w.negated=!0,u++;continue}if(n.noparen!==!0&&x===as){if(g=w.isGlob=!0,o===!0){for(;L()!==!0&&(x=b());){if(x===as){O=w.backslashes=!0,x=b();continue}if(x===Al){T=!0;break}}continue}break}if(g===!0){if(T=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let H=c,le="",h="";u>0&&(le=c.slice(0,u),c=c.slice(u),d-=u),H&&g===!0&&d>0?(H=c.slice(0,d),h=c.slice(d)):g===!0?(H="",h=c):H=c,H&&H!==""&&H!=="/"&&H!==c&&kl(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),n.unescape===!0&&(h&&(h=Rl.removeBackslashes(h)),H&&O===!0&&(H=Rl.removeBackslashes(H)));let _={prefix:le,input:e,start:u,base:H,glob:h,isBrace:f,isBracket:p,isGlob:g,isExtglob:S,isGlobstar:A,negated:I,negatedExtglob:v};if(n.tokens===!0&&(_.maxDepth=0,kl(x)||i.push(w),_.tokens=i),n.parts===!0||n.tokens===!0){let ie;for(let F=0;F<s.length;F++){let Ae=ie?ie+1:u,ke=s[F],fe=e.slice(Ae,ke);n.tokens&&(F===0&&u!==0?(i[F].isPrefix=!0,i[F].value=le):i[F].value=fe,bl(i[F]),_.maxDepth+=i[F].depth),(F!==0||fe!=="")&&a.push(fe),ie=ke}if(ie&&ie+1<e.length){let F=e.slice(ie+1);a.push(F),n.tokens&&(i[i.length-1].value=F,bl(i[i.length-1]),_.maxDepth+=i[i.length-1].depth)}_.slashes=s,_.parts=a}return _};Il.exports=My});var vl=V((XI,Nl)=>{"use strict";var on=tn(),se=nn(),{MAX_LENGTH:gr,POSIX_REGEX_SOURCE:Ly,REGEX_NON_SPECIAL_CHARS:Hy,REGEX_SPECIAL_CHARS_BACKREF:Uy,REPLACEMENTS:Tl}=on,Dy=(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=>se.escapeRegex(o)).join("..")}return n},Tt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,Pl=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},Fy=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},wl=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(Fy(t))return t.replace(/\\(.)/g,"$1")},$y=e=>{let t=e.map(wl).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},cs=(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}}}}},jy=e=>{let t=0,n=[];for(;t<e.length;){let o=cs(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Pl(o.body).map(a=>a.trim());if(s.length!==1)return;let i=wl(s[0]);if(!i||i.length!==1)return;n.push(i),t+=o.end+1}return n.length<1?void 0:`${n.length===1?se.escapeRegex(n[0]):`[${n.map(o=>se.escapeRegex(o)).join("")}]`}*`},By=e=>{let t=0,n=e.trim(),r=cs(n);for(;r;)t++,n=r.body.trim(),r=cs(n);return t},Ky=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:on.DEFAULT_MAX_EXTGLOB_RECURSION,r=Pl(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||$y(r)))return{risky:!0};for(let o of r){let s=jy(o);if(s)return{risky:!0,safeOutput:s};if(By(o)>n)return{risky:!0}}return{risky:!1}},us=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Tl[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(gr,n.maxLength):gr,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=se.isWindows(t),l=on.globChars(c),u=on.extglobChars(l),{DOT_LITERAL:d,PLUS_LITERAL:f,SLASH_LITERAL:p,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:A,NO_DOT_SLASH:k,NO_DOTS_SLASH:O,QMARK:I,QMARK_NO_DOT:v,STAR:T,START_ANCHOR:K}=l,D=C=>`(${a}(?:(?!${K}${C.dot?S:d}).)*?)`,x=n.dot?"":A,w=n.dot?I:v,L=n.bash===!0?D(n):T;n.capture&&(L=`(${L})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let m={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=se.removePrefix(e,m),o=e.length;let b=[],H=[],le=[],h=s,_,ie=()=>m.index===o-1,F=m.peek=(C=1)=>e[m.index+C],Ae=m.advance=()=>e[++m.index]||"",ke=()=>e.slice(m.index+1),fe=(C="",Y=0)=>{m.consumed+=C,m.index+=Y},_n=C=>{m.output+=C.output!=null?C.output:C.value,fe(C.value)},Ld=()=>{let C=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ae(),m.start++,C++;return C%2===0?!1:(m.negated=!0,m.start++,!0)},Sn=C=>{m[C]++,le.push(C)},We=C=>{m[C]--,le.pop()},N=C=>{if(h.type==="globstar"){let Y=m.braces>0&&(C.type==="comma"||C.type==="brace"),R=C.extglob===!0||b.length&&(C.type==="pipe"||C.type==="paren");C.type!=="slash"&&C.type!=="paren"&&!Y&&!R&&(m.output=m.output.slice(0,-h.output.length),h.type="star",h.value="*",h.output=L,m.output+=h.output)}if(b.length&&C.type!=="paren"&&(b[b.length-1].inner+=C.value),(C.value||C.output)&&_n(C),h&&h.type==="text"&&C.type==="text"){h.value+=C.value,h.output=(h.output||"")+C.value;return}C.prev=h,i.push(C),h=C},En=(C,Y)=>{let R={...u[Y],conditions:1,inner:""};R.prev=h,R.parens=m.parens,R.output=m.output,R.startIndex=m.index,R.tokensIndex=i.length;let P=(n.capture?"(":"")+R.open;Sn("parens"),N({type:C,value:Y,output:m.output?"":g}),N({type:"paren",extglob:!0,value:Ae(),output:P}),b.push(R)},Hd=C=>{let Y=e.slice(C.startIndex,m.index+1),R=e.slice(C.startIndex+2,m.index),P=Ky(R,n);if((C.type==="plus"||C.type==="star")&&P.risky){let G=P.safeOutput?(C.output?"":g)+(n.capture?`(${P.safeOutput})`:P.safeOutput):void 0,be=i[C.tokensIndex];be.type="text",be.value=Y,be.output=G||se.escapeRegex(Y);for(let xe=C.tokensIndex+1;xe<i.length;xe++)i[xe].value="",i[xe].output="",delete i[xe].suffix;m.output=C.output+be.output,m.backtrack=!0,N({type:"paren",extglob:!0,value:_,output:""}),We("parens");return}let z=C.close+(n.capture?")":""),re;if(C.type==="negate"){let G=L;if(C.inner&&C.inner.length>1&&C.inner.includes("/")&&(G=D(n)),(G!==L||ie()||/^\)+$/.test(ke()))&&(z=C.close=`)$))${G}`),C.inner.includes("*")&&(re=ke())&&/^\.[^\\/.]+$/.test(re)){let be=us(re,{...t,fastpaths:!1}).output;z=C.close=`)${be})${G})`}C.prev.type==="bos"&&(m.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:_,output:z}),We("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let C=!1,Y=e.replace(Uy,(R,P,z,re,G,be)=>re==="\\"?(C=!0,R):re==="?"?P?P+re+(G?I.repeat(G.length):""):be===0?w+(G?I.repeat(G.length):""):I.repeat(z.length):re==="."?d.repeat(z.length):re==="*"?P?P+re+(G?L:""):L:P?R:`\\${R}`);return C===!0&&(n.unescape===!0?Y=Y.replace(/\\/g,""):Y=Y.replace(/\\+/g,R=>R.length%2===0?"\\\\":R?"\\":"")),Y===e&&n.contains===!0?(m.output=e,m):(m.output=se.wrapOutput(Y,m,t),m)}for(;!ie();){if(_=Ae(),_==="\0")continue;if(_==="\\"){let R=F();if(R==="/"&&n.bash!==!0||R==="."||R===";")continue;if(!R){_+="\\",N({type:"text",value:_});continue}let P=/^\\+/.exec(ke()),z=0;if(P&&P[0].length>2&&(z=P[0].length,m.index+=z,z%2!==0&&(_+="\\")),n.unescape===!0?_=Ae():_+=Ae(),m.brackets===0){N({type:"text",value:_});continue}}if(m.brackets>0&&(_!=="]"||h.value==="["||h.value==="[^")){if(n.posix!==!1&&_===":"){let R=h.value.slice(1);if(R.includes("[")&&(h.posix=!0,R.includes(":"))){let P=h.value.lastIndexOf("["),z=h.value.slice(0,P),re=h.value.slice(P+2),G=Ly[re];if(G){h.value=z+G,m.backtrack=!0,Ae(),!s.output&&i.indexOf(h)===1&&(s.output=g);continue}}}(_==="["&&F()!==":"||_==="-"&&F()==="]")&&(_=`\\${_}`),_==="]"&&(h.value==="["||h.value==="[^")&&(_=`\\${_}`),n.posix===!0&&_==="!"&&h.value==="["&&(_="^"),h.value+=_,_n({value:_});continue}if(m.quotes===1&&_!=='"'){_=se.escapeRegex(_),h.value+=_,_n({value:_});continue}if(_==='"'){m.quotes=m.quotes===1?0:1,n.keepQuotes===!0&&N({type:"text",value:_});continue}if(_==="("){Sn("parens"),N({type:"paren",value:_});continue}if(_===")"){if(m.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Tt("opening","("));let R=b[b.length-1];if(R&&m.parens===R.parens+1){Hd(b.pop());continue}N({type:"paren",value:_,output:m.parens?")":"\\)"}),We("parens");continue}if(_==="["){if(n.nobracket===!0||!ke().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Tt("closing","]"));_=`\\${_}`}else Sn("brackets");N({type:"bracket",value:_});continue}if(_==="]"){if(n.nobracket===!0||h&&h.type==="bracket"&&h.value.length===1){N({type:"text",value:_,output:`\\${_}`});continue}if(m.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Tt("opening","["));N({type:"text",value:_,output:`\\${_}`});continue}We("brackets");let R=h.value.slice(1);if(h.posix!==!0&&R[0]==="^"&&!R.includes("/")&&(_=`/${_}`),h.value+=_,_n({value:_}),n.literalBrackets===!1||se.hasRegexChars(R))continue;let P=se.escapeRegex(h.value);if(m.output=m.output.slice(0,-h.value.length),n.literalBrackets===!0){m.output+=P,h.value=P;continue}h.value=`(${a}${P}|${h.value})`,m.output+=h.value;continue}if(_==="{"&&n.nobrace!==!0){Sn("braces");let R={type:"brace",value:_,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};H.push(R),N(R);continue}if(_==="}"){let R=H[H.length-1];if(n.nobrace===!0||!R){N({type:"text",value:_,output:_});continue}let P=")";if(R.dots===!0){let z=i.slice(),re=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&re.unshift(z[G].value);P=Dy(re,n),m.backtrack=!0}if(R.comma!==!0&&R.dots!==!0){let z=m.output.slice(0,R.outputIndex),re=m.tokens.slice(R.tokensIndex);R.value=R.output="\\{",_=P="\\}",m.output=z;for(let G of re)m.output+=G.output||G.value}N({type:"brace",value:_,output:P}),We("braces"),H.pop();continue}if(_==="|"){b.length>0&&b[b.length-1].conditions++,N({type:"text",value:_});continue}if(_===","){let R=_,P=H[H.length-1];P&&le[le.length-1]==="braces"&&(P.comma=!0,R="|"),N({type:"comma",value:_,output:R});continue}if(_==="/"){if(h.type==="dot"&&m.index===m.start+1){m.start=m.index+1,m.consumed="",m.output="",i.pop(),h=s;continue}N({type:"slash",value:_,output:p});continue}if(_==="."){if(m.braces>0&&h.type==="dot"){h.value==="."&&(h.output=d);let R=H[H.length-1];h.type="dots",h.output+=_,h.value+=_,R.dots=!0;continue}if(m.braces+m.parens===0&&h.type!=="bos"&&h.type!=="slash"){N({type:"text",value:_,output:d});continue}N({type:"dot",value:_,output:d});continue}if(_==="?"){if(!(h&&h.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){En("qmark",_);continue}if(h&&h.type==="paren"){let P=F(),z=_;if(P==="<"&&!se.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(h.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(ke()))&&(z=`\\${_}`),N({type:"text",value:_,output:z});continue}if(n.dot!==!0&&(h.type==="slash"||h.type==="bos")){N({type:"qmark",value:_,output:v});continue}N({type:"qmark",value:_,output:I});continue}if(_==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){En("negate",_);continue}if(n.nonegate!==!0&&m.index===0){Ld();continue}}if(_==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){En("plus",_);continue}if(h&&h.value==="("||n.regex===!1){N({type:"plus",value:_,output:f});continue}if(h&&(h.type==="bracket"||h.type==="paren"||h.type==="brace")||m.parens>0){N({type:"plus",value:_});continue}N({type:"plus",value:f});continue}if(_==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){N({type:"at",extglob:!0,value:_,output:""});continue}N({type:"text",value:_});continue}if(_!=="*"){(_==="$"||_==="^")&&(_=`\\${_}`);let R=Hy.exec(ke());R&&(_+=R[0],m.index+=R[0].length),N({type:"text",value:_});continue}if(h&&(h.type==="globstar"||h.star===!0)){h.type="star",h.star=!0,h.value+=_,h.output=L,m.backtrack=!0,m.globstar=!0,fe(_);continue}let C=ke();if(n.noextglob!==!0&&/^\([^?]/.test(C)){En("star",_);continue}if(h.type==="star"){if(n.noglobstar===!0){fe(_);continue}let R=h.prev,P=R.prev,z=R.type==="slash"||R.type==="bos",re=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||C[0]&&C[0]!=="/")){N({type:"star",value:_,output:""});continue}let G=m.braces>0&&(R.type==="comma"||R.type==="brace"),be=b.length&&(R.type==="pipe"||R.type==="paren");if(!z&&R.type!=="paren"&&!G&&!be){N({type:"star",value:_,output:""});continue}for(;C.slice(0,3)==="/**";){let xe=e[m.index+4];if(xe&&xe!=="/")break;C=C.slice(3),fe("/**",3)}if(R.type==="bos"&&ie()){h.type="globstar",h.value+=_,h.output=D(n),m.output=h.output,m.globstar=!0,fe(_);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&!re&&ie()){m.output=m.output.slice(0,-(R.output+h.output).length),R.output=`(?:${R.output}`,h.type="globstar",h.output=D(n)+(n.strictSlashes?")":"|$)"),h.value+=_,m.globstar=!0,m.output+=R.output+h.output,fe(_);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&C[0]==="/"){let xe=C[1]!==void 0?"|$":"";m.output=m.output.slice(0,-(R.output+h.output).length),R.output=`(?:${R.output}`,h.type="globstar",h.output=`${D(n)}${p}|${p}${xe})`,h.value+=_,m.output+=R.output+h.output,m.globstar=!0,fe(_+Ae()),N({type:"slash",value:"/",output:""});continue}if(R.type==="bos"&&C[0]==="/"){h.type="globstar",h.value+=_,h.output=`(?:^|${p}|${D(n)}${p})`,m.output=h.output,m.globstar=!0,fe(_+Ae()),N({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-h.output.length),h.type="globstar",h.output=D(n),h.value+=_,m.output+=h.output,m.globstar=!0,fe(_);continue}let Y={type:"star",value:_,output:L};if(n.bash===!0){Y.output=".*?",(h.type==="bos"||h.type==="slash")&&(Y.output=x+Y.output),N(Y);continue}if(h&&(h.type==="bracket"||h.type==="paren")&&n.regex===!0){Y.output=_,N(Y);continue}(m.index===m.start||h.type==="slash"||h.type==="dot")&&(h.type==="dot"?(m.output+=k,h.output+=k):n.dot===!0?(m.output+=O,h.output+=O):(m.output+=x,h.output+=x),F()!=="*"&&(m.output+=g,h.output+=g)),N(Y)}for(;m.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Tt("closing","]"));m.output=se.escapeLast(m.output,"["),We("brackets")}for(;m.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Tt("closing",")"));m.output=se.escapeLast(m.output,"("),We("parens")}for(;m.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Tt("closing","}"));m.output=se.escapeLast(m.output,"{"),We("braces")}if(n.strictSlashes!==!0&&(h.type==="star"||h.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${p}?`}),m.backtrack===!0){m.output="";for(let C of m.tokens)m.output+=C.output!=null?C.output:C.value,C.suffix&&(m.output+=C.suffix)}return m};us.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(gr,n.maxLength):gr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=Tl[e]||e;let s=se.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:a,ONE_CHAR:c,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:p,START_ANCHOR:g}=on.globChars(s),S=n.dot?d:u,A=n.dot?f:u,k=n.capture?"":"?:",O={negated:!1,prefix:""},I=n.bash===!0?".*?":p;n.capture&&(I=`(${I})`);let v=x=>x.noglobstar===!0?I:`(${k}(?:(?!${g}${x.dot?l:i}).)*?)`,T=x=>{switch(x){case"*":return`${S}${c}${I}`;case".*":return`${i}${c}${I}`;case"*.*":return`${S}${I}${i}${c}${I}`;case"*/*":return`${S}${I}${a}${c}${A}${I}`;case"**":return S+v(n);case"**/*":return`(?:${S}${v(n)}${a})?${A}${c}${I}`;case"**/*.*":return`(?:${S}${v(n)}${a})?${A}${I}${i}${c}${I}`;case"**/.*":return`(?:${S}${v(n)}${a})?${i}${c}${I}`;default:{let w=/^(.*?)\.(\w+)$/.exec(x);if(!w)return;let L=T(w[1]);return L?L+i+w[2]:void 0}}},K=se.removePrefix(e,O),D=T(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};Nl.exports=us});var Ll=V((qI,Ml)=>{"use strict";var Gy=ze("path"),Wy=Ol(),ls=vl(),fs=nn(),zy=tn(),Vy=e=>e&&typeof e=="object"&&!Array.isArray(e),ee=(e,t,n=!1)=>{if(Array.isArray(e)){let u=e.map(f=>ee(f,t,n));return f=>{for(let p of u){let g=p(f);if(g)return g}return!1}}let r=Vy(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=fs.isWindows(t),i=r?ee.compileRe(e,t):ee.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=ee(o.ignore,u,n)}let l=(u,d=!1)=>{let{isMatch:f,match:p,output:g}=ee.test(u,i,t,{glob:e,posix:s}),S={glob:e,state:a,regex:i,posix:s,input:u,output:g,match:p,isMatch:f};return typeof o.onResult=="function"&&o.onResult(S),f===!1?(S.isMatch=!1,d?S:!1):c(u)?(typeof o.onIgnore=="function"&&o.onIgnore(S),S.isMatch=!1,d?S:!1):(typeof o.onMatch=="function"&&o.onMatch(S),d?S:!0)};return n&&(l.state=a),l};ee.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?fs.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=ee.matchBase(e,t,n,o):a=t.exec(c)),{isMatch:!!a,match:a,output:c}};ee.matchBase=(e,t,n,r=fs.isWindows(n))=>(t instanceof RegExp?t:ee.makeRe(t,n)).test(Gy.basename(e));ee.isMatch=(e,t,n)=>ee(t,n)(e);ee.parse=(e,t)=>Array.isArray(e)?e.map(n=>ee.parse(n,t)):ls(e,{...t,fastpaths:!1});ee.scan=(e,t)=>Wy(e,t);ee.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=ee.toRegex(a,t);return r===!0&&(c.state=e),c};ee.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=ls.fastpaths(e,t)),o.output||(o=ls(e,t)),ee.compileRe(o,t,n,r)};ee.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/$^/}};ee.constants=zy;Ml.exports=ee});var Ul=V((ZI,Hl)=>{"use strict";Hl.exports=Ll()});var Kl=V((QI,Bl)=>{"use strict";var Fl=ze("util"),$l=gl(),Ne=Ul(),ds=nn(),Dl=e=>e===""||e==="./",jl=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},J=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let r=new Set,o=new Set,s=new Set,i=0,a=u=>{s.add(u.output),n&&n.onResult&&n.onResult(u)};for(let u=0;u<t.length;u++){let d=Ne(String(t[u]),{...n,onResult:a},!0),f=d.state.negated||d.state.negatedExtglob;f&&i++;for(let p of e){let g=d(p,!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};J.match=J;J.matcher=(e,t)=>Ne(e,t);J.isMatch=(e,t,n)=>Ne(t,n)(e);J.any=J.isMatch;J.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(J(e,t,{...n,onResult:s}));for(let a of o)i.has(a)||r.add(a);return[...r]};J.contains=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Fl.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>J.contains(e,r,n));if(typeof t=="string"){if(Dl(e)||Dl(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return J.isMatch(e,t,{...n,contains:!0})};J.matchKeys=(e,t,n)=>{if(!ds.isObject(e))throw new TypeError("Expected the first argument to be an object");let r=J(Object.keys(e),t,n),o={};for(let s of r)o[s]=e[s];return o};J.some=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Ne(String(o),n);if(r.some(i=>s(i)))return!0}return!1};J.every=(e,t,n)=>{let r=[].concat(e);for(let o of[].concat(t)){let s=Ne(String(o),n);if(!r.every(i=>s(i)))return!1}return!0};J.all=(e,t,n)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Fl.inspect(e)}"`);return[].concat(t).every(r=>Ne(r,n)(e))};J.capture=(e,t,n)=>{let r=ds.isWindows(n),s=Ne.makeRe(String(e),{...n,capture:!0}).exec(r?ds.toPosixSlashes(t):t);if(s)return s.slice(1).map(i=>i===void 0?"":i)};J.makeRe=(...e)=>Ne.makeRe(...e);J.scan=(...e)=>Ne.scan(...e);J.parse=(e,t)=>{let n=[];for(let r of[].concat(e||[]))for(let o of $l(String(r),t))n.push(Ne.parse(o,t));return n};J.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!jl(e)?[e]:$l(e,t)};J.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return J.braces(e,{...t,expand:!0})};J.hasBraces=jl;Bl.exports=J});import{realpathSync as VA}from"node:fs";import{resolve as JA}from"node:path";import{fileURLToPath as YA,pathToFileURL as XA}from"node:url";import{createHash as Kd}from"node:crypto";import{homedir as Gd}from"node:os";import{dirname as lk,join as Wd,parse as fk,resolve as dk}from"node:path";var qs="EV_AI_LAUNCHER_VERSION";var Zs="EV_AI_HOOK_SOURCE",Qs="EV_AI_HOOK_FALLBACK_REASON",ei="EV_AI_LAUNCHER_SCOPE",Mr="EV_AI_LAUNCHER_READY_FD";var ti="--defer-user-spec",ni=Buffer.from([1]);var ek=1024*1024,tk=4*1024*1024,nk=64*1024,rk=64*1024,ok=64*1024;var Lr=4096,sk=4*1024*1024;var oi="https://hooks.ev-ai.ai",Rn=".claude/ev-ai-runtime-report.json",si="config.json",mk=1024*1024,zd=new Set(["localhost","127.0.0.1","[::1]","::1"]),Vd=["claude","cursor","codex"],Cn=[Rn,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Hr=/^[A-Za-z0-9._~-]+$/;function An(e){return e!==void 0&&Vd.includes(e)}function yn(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Ur(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=yn(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=yn(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=yn(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=yn(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}a!==ti&&!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:An(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function kn(e,t=oi){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Dr(e=Gd()){return Wd(e,".ev-ai",si)}function ii(e,t){return{...e,...t}}function ri(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 bn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?zd.has(t.hostname):!1}catch{return!1}}function Fr(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 Et(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!bn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=Fr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Hr.test(n))return`org token must match ${Hr.source} (got: ${n})`;if(ri(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(ri(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Ut(e){return new URL(e).toString()}function $r(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?kn(n):""}function xn(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 ai(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=kn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Et(n);return r?{problem:r}:{url:Ut(n)}}function Dt(e){if(Et(e))return;let t;try{t=new URL(e)}catch{return}let n=Fr(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 Kd("sha256").update(i).digest("hex").slice(0,32)}var Je=2,ci="node_modules/@ev-ai/agent-hook/dist/hook.mjs",Ie="ev-ai-agent-hook";function Jd(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function In(e){let t=Jd(e);return t===Ie||t===`${Ie}.exe`}var ui="https://cdn.ev-ai.ai/agent-hook";var jr=`current/${Ie}`,Br=`.ev-ai/agent-hook/${Ie}`,li=5e3,fi=5e3,Kr=3e3;var On=3e3,di=1500,pi=4*1024,Gr=256*1024,Yd=4*1024,mi=32*1024,Le="1.3.2",Tn=`@ev-ai/agent-hook@${Le}`,gi="ev-ai runtime report";import{chmodSync as ca,cpSync as ua,existsSync as Xe,mkdirSync as co,readFileSync as gm,rmSync as Fn,symlinkSync as hm,writeFileSync as _m}from"node:fs";import{homedir as De}from"node:os";import{dirname as uo,isAbsolute as Sm,join as W,relative as la,resolve as ia,sep as Em}from"node:path";import{fileURLToPath as ym}from"node:url";import{existsSync as Xd,readdirSync as hi}from"node:fs";import{homedir as Pn}from"node:os";import{join as ae}from"node:path";function _i(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return ae(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Wr(e=process.platform){let t=_i(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!Xd(r))return n;let o=hi(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function zr(e=process.platform,t=Pn()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:Wr(e)}}function qd(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return ae(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Zd(e=process.platform,t=Pn()){let n=[ae(qd(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of hi(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function Qd(e=process.platform,t=Pn()){let n=e==="win32"?ae(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[ae(n,"requirements.toml")];return e!=="win32"&&r.push(ae(n,"managed_config.toml")),r.push(ae(t,".codex","managed_config.toml"),ae(n,"config.toml")),r}function wn(e,t=process.platform,n=Pn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=zr(t,n);return[r,...o]}case"cursor":return Zd(t,n);default:return Qd(t,n)}}import{createHash as Ui,randomBytes as bp}from"node:crypto";import{existsSync as Di,mkdirSync as Zr,readFileSync as Fi,unlinkSync as $i,writeFileSync as ji}from"node:fs";import{homedir as Qr}from"node:os";import{dirname as Ln,join as eo,resolve as xp}from"node:path";var ep=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),tp=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function de(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||tp.has(n)||r.includes("[bot]")||ep.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}import{existsSync as dp,readFileSync as pp}from"node:fs";import{hostname as Ii,userInfo as mp}from"node:os";import{createHash as np,randomBytes as rp}from"node:crypto";import{existsSync as Vr,mkdirSync as op,readdirSync as sp,readFileSync as ip,renameSync as Si,statSync as Ci,unlinkSync as Ei,writeFileSync as ap}from"node:fs";import{basename as cp,dirname as yi,join as Ai,relative as up}from"node:path";function E(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
15
|
+
`)}function Ft(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function $t(e){return np("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){op(yi(e),{recursive:!0});let n=Ai(yi(e),`.${cp(e)}.${process.pid}.${rp(4).toString("hex")}.tmp`);try{ap(n,t,"utf8");try{Si(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Ei(e),Si(n,e);return}throw r}}catch(r){try{Ei(n)}catch{}throw r}}function Nn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Jr(){process.stdout.write('{"continue":true}')}function U(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function jt(){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 vn(e){return new Promise(t=>{let n="",r=!1,o=i=>{r||(r=!0,clearTimeout(s),t(i||"{}"))},s=setTimeout(()=>{o(n)},e);if(process.stdin.isTTY){o("{}");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>{o(n)}),process.stdin.on("error",()=>{o(n)}),process.stdin.resume()})}async function Ee(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,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 te(e,t,n=3e3,r={}){let o=await Ee(e,t,n,r);return o.ok?o.stdout:""}async function Yr(e=process.cwd()){let t=await Ee("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(U("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;E(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=U("CURSOR_PROJECT_DIR")??U("CLAUDE_PROJECT_DIR");if(n&&Vr(n)){let r=await Ee("git",["rev-parse","--show-toplevel"],2e3,{cwd:n});return r.ok&&r.stdout?{root:r.stdout,inGitRepo:!0}:{root:n,inGitRepo:!1}}return{root:e,inGitRepo:!1}}async function He(e=process.cwd()){return(await Yr(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var Ri=new Map;function lp(e){return e.charCodeAt(0)===65279?e.slice(1):e}function fp(e){let t;try{t=ip(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(lp(t))}}catch{return{ok:!1,reason:"parse"}}}function ki(e){let t=Ri.get(e);if(t!==void 0)return t;let n=fp(e);return Ri.set(e,n),n}function bi(e){return ki(e)}function oe(e,t){let n=ki(e);return n.ok?n.value:t}function it(e){return typeof e=="string"?e:""}function Ue(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 M(e,t){let n=Ue(e,t);return typeof n=="string"?n:""}var Ye=500;function xi(e,t=2){if(!Vr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=sp(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Ai(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:up(e,l),size:Ci(l).size})}catch{continue}if(n.length>=Ye){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Xr(e){return Vr(e)?{present:!0,size:Ci(e).size}:{present:!1,size:0}}function yt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Oi(e=process.env){return yt(X("CURSOR_SANDBOX",e))}var gp=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function hp(e){return gp.some(t=>!!X(t,e))}function _p(e){if(X("KUBERNETES_SERVICE_HOST",e)||yt(X("REMOTE_CONTAINERS",e))||yt(X("DEVCONTAINER",e)))return!0;try{if(dp("/.dockerenv")||pp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Ti(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function Sp(e,t=process.platform){return Ti(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function Ep(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function yp(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return U(e)}function Rp(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Cp(X("CURSOR_VERSION",n))}function Cp(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function qr(e){if(Ep(e.sessionId))return!0;let t=e.hostname??Ii(),n=e.osUser??wi(e.env);return Rp(t,n,e.env)}function Ap(e){return yt(X("CURSOR_AGENT",e.env))?!0:qr(e)}function kp(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(X("TERM",e)??X("TERM_PROGRAM",e))||(X("SSH_TTY",e)??X("SSH_CONNECTION",e))||(X("__CFBundleIdentifier",e)??X("XPC_SERVICE_NAME",e))||Ti(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function Bt(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(yt(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!Sp(t,n)&&Ap(e)&&(yt(X("CURSOR_AGENT",t))||yp(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(hp(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":_p(t)?"container":kp(t)?"interactive":"unknown"}async function Pi(){return await te("systemd-detect-virt",[],1e3)}function wi(e=process.env,t=mp){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 Ni(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await te("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 te("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await te("uname",["-r"],1e3))}else t=await te("ver",[],1e3);let n=wi(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await te("tty",[],500),o.includes("not a tty")&&(o="")}catch{o=""}return{os:e,os_version:t||null,user:n||null,shell:r||null,tty:o||null}}function Mn(){return Ii()}var Ip="installation.json",Op="cloud-bootstrap.lock",Tp=6e4;function Bi(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function ye(e=Qr()){return eo(e,".ev-ai","agent-hook")}function Pp(e=Qr()){return eo(ye(e),Ip)}function Ki(e){return eo(Ln(e),Op)}function Gi(){return bp(8).toString("hex")}function Rt(e){return Ui("sha256").update(e).digest("hex").slice(0,16)}function $(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Wi(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function wp(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Wi(t)){E(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function zi(e,t){return e&&Wi(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),wp(t))}function Np(e){return/^[0-9a-f]{16}$/.test(e)}function vp(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 Rt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return Rt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return Rt(`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 Rt(`gitlab|${t}|${n}`)}return null}var Mp="cursoragent@cursor.com";function Lp(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Mp?null:t}function Hp(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Up(e){return Ft(e).replace(/\.git$/i,"").toLowerCase()}async function Dp(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Up(t):e}async function Fp(e){let t=$(await te("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!de(null,t))return t;let n=$(await te("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!de(null,n)?n:null}function $p(e,t){let n=Hp(e,t);return n?Rt(`cursor_cloud|${n}|${Lp(e)??""}`):null}async function jp(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Dp(n),o=await Fp(n);return Rt(`claude_remote|${r}|${o??""}`)}function vi(e,t){let n=zi(e,t);if(n)return n;let r=vp(t);return r||Gi()}async function Bp(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||xp(e);return Ui("sha256").update(n).digest("hex").slice(0,16)}function Kp(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 Gp(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Kp(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 at(e){if(Di(e))try{return Gp(Fi(e,"utf8"))}catch{}}function to(e){return at(e)}function Vi(e,t,n){let r=at(e);if(!r||r.operator_identity_hash===t&&r.operator_identity_sent_at===n)return;let o={...r,operator_identity_hash:t,operator_identity_sent_at:n};try{me(e,`${JSON.stringify(o,null,2)}
|
|
16
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: operator identity cache write failed open: ${i}`)}}function Ji(e,t=Date.now()){if(!e)return!0;if(at(e)?.operator_identity_hash)return!1;let n=Ki(e);try{if(Di(n)){let r=Number.NaN;try{r=Number(Fi(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<Tp)return!1;try{$i(n)}catch{}}}catch{}try{return Zr(Ln(n),{recursive:!0}),ji(n,`${t}
|
|
17
|
+
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Zi(r))return!1;let o=r instanceof Error?r.message:String(r);return E(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function Yi(e){if(e)try{$i(Ki(e))}catch{}}function Xi(e,t){let r=at(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function qi(e,t,n){if(!n)return;let r=at(e);if(!r||r.platform_agent_ids?.[t]===n)return;let o={installation_id:r.installation_id,platform_agent_ids:{...r.platform_agent_ids,[t]:n},...r.operator_identity_hash?{operator_identity_hash:r.operator_identity_hash}:{},...r.operator_identity_sent_at?{operator_identity_sent_at:r.operator_identity_sent_at}:{}};try{me(e,`${JSON.stringify(o,null,2)}
|
|
18
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: platform_agent_id cache write failed open: ${i}`)}}function Zi(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Wp(e,t){Zr(Ln(e),{recursive:!0}),ji(e,`${JSON.stringify(t,null,2)}
|
|
19
|
+
`,{encoding:"utf8",flag:"wx"})}function Mi(e,t){try{return Wp(e,t),t}catch(n){if(!Zi(n))throw n;return at(e)}}function Li(e,t){Zr(Ln(e),{recursive:!0}),me(e,`${JSON.stringify(t,null,2)}
|
|
20
|
+
`)}function Hi(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function Hn(e,t={}){let n=t.home??Qr(),r=t.env??process.env,o=await Bp(e),s=Pp(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=Bt(i),c=zi(t.overrideId,r),l=a==="cursor_cloud"&&qr(i)?$p(r,e):a==="claude_remote"?await jp(r,e):null,u=at(s);if(u){let S=u;if(c&&c===u.installation_id&&u.pinned!==!0&&(S={...u,pinned:!0},Li(s,S)),!!l&&l!==S.installation_id&&!c&&S.pinned!==!0&&Np(S.installation_id)&&l){let k={installation_id:l,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Li(s,k),{installationId:l,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let d=c??l??vi(void 0,r),f=Mi(s,Hi(d,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let p=c??l??vi(void 0,r),g=Mi(s,Hi(p===d?Gi():p,c));if(g)return{installationId:g.installation_id,storePath:s,repoKey:o};throw new Error(`Failed to create installation record at ${s}`)}import{existsSync as oo,readFileSync as rm}from"node:fs";import{dirname as om,isAbsolute as sm,join as im,relative as am}from"node:path";import{readFileSync as zp,statSync as Vp}from"node:fs";import{homedir as no}from"node:os";import{join as Jp}from"node:path";var Yp="hook-config.json",Xp=10080*60*1e3,qp=1440*60*1e3,Zp=2048,Qp=1024*1024;function Ct(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Qi(e=no()){return Jp(ye(e),Yp)}function ea(e){let t=Qi(e);try{let n=Vp(t);if(!n.isFile()||n.size>Qp)return;let r=JSON.parse(zp(t,"utf8"));return Ct(r)?r:void 0}catch(n){return(n instanceof Error&&"code"in n?n.code:void 0)==="ENOENT"?null:void 0}}function em(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function Un(e,t=no(),n=Date.now()){if(!e)return;let r=Dt(e);if(!r)return;let o=ea(t),s=o?o[r]:void 0;if(!Ct(s)||!Ct(s.config))return;let i=s.fetched_at_ms;if(!(typeof i!="number"||n-i>Xp))return em(s.config)}function tm(e){let t=e.trim();if(t==="")return;let n;try{n=JSON.parse(t)}catch{return}if(!(!Ct(n)||!Ct(n.hook_config))&&!(Buffer.byteLength(JSON.stringify(n.hook_config),"utf8")>Zp))return n.hook_config}function nm(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(!(Ct(s)&&JSON.stringify(s.config)===JSON.stringify(n)&&typeof s.fetched_at_ms=="number"&&s.fetched_at_ms<=r&&r-s.fetched_at_ms<qp))return o[t]={config:n,fetched_at_ms:r},o}function ta(e,t,n=no(),r=Date.now()){let o=tm(e),s=t?Dt(t):void 0;if(o===void 0||!s)return"skipped";try{let i=ea(n);if(i===void 0)return"skipped";let a=nm(i??{},s,o,r);return a?(me(Qi(n),`${JSON.stringify(a,null,2)}
|
|
21
|
+
`),Object.keys(o).length===0?"cleared":"written"):"unchanged"}catch(i){let a=i instanceof Error?i.message:String(i);return E(`WARN: hook config write failed open: ${a}`),"failed"}}function na(e){for(let t of Cn){let n=im(e,t);if(oo(n))return n}}async function cm(e=process.cwd(),t){let n=t??await He(e);return na(n)??na(e)}async function um(e,t){let n=t??await He(om(e)),r=am(n,e);if(r.startsWith("..")||sm(r))return!1;let o=await Ee("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(E(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function ro(e){let t=rm(e,"utf8");return ge(t,{})}function lm(){return{schema_version:Je,mcp_servers:[]}}function fm(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(E(`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")&&(E(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function ra(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await Yr(e),o=U("EV_AI_HOOK_MANIFEST"),s=o&&oo(o)?o:void 0,i=s?void 0:oo(Dr())?Dr():void 0,a=s?void 0:await cm(e,n),c=i?ro(i):void 0,l=a?ro(a):void 0,u,d,f,p=new Set;if(s){u=ro(s),d=s,f=s;for(let I of Object.keys(u))p.add(I)}else if(c&&l){u=ii(l,c),d=i,f=a;for(let I of Object.keys(l))I in c||p.add(I)}else if(c)u=c,d=i;else if(l){u=l,d=a,f=a;for(let I of Object.keys(l))p.add(I)}else u=lm();delete u.installation_id;let g=f?await um(f,n):!1;fm(u,f,g,p);let{installationId:S,storePath:A,repoKey:k}=await Hn(n,{sessionId:t.sessionId}),O=$r(u);return{manifestPath:d??A,manifest:u,installationId:S,installationStorePath:A,repoKey:k,collectorUrl:O,hookConfig:Un(O),platformAgentId:u.platform_agent_id??"",gitRoot:n,inGitRepo:r}}function oa(e){return{schema_version:Je,...e?{collector_url:e}:{},mcp_servers:[]}}var dm=["darwin-arm64","darwin-x64","linux-arm64","linux-x64","windows-x64","windows-arm64"];function pm(e){return e==="windows-x64"||e==="windows-arm64"}function so(e=process.platform,t=process.arch){if(e==="darwin")return t==="arm64"?"darwin-arm64":t==="x64"?"darwin-x64":void 0;if(e==="linux")return t==="arm64"?"linux-arm64":t==="x64"?"linux-x64":void 0;if(e==="win32")return t==="x64"?"windows-x64":t==="arm64"?"windows-arm64":void 0}function sa(e=process.platform,t=process.arch){let n=so(e,t);if(!n)throw new Error(`Unsupported platform ${e}-${t}. Supported: ${dm.join(", ")}.`);return n}function mm(e){return pm(e)?`${Ie}.exe`:Ie}function io(e){return`compile-out/bin/${e}/${mm(e)}`}function Rm(e,t){let n=e.collectorUrl?.trim();if(!n)throw new Error(`${t} requires --url <https://hooks.ev-ai.ai/{orgToken}/hook>`);let r=Et(n);if(r)throw new Error(`collector URL rejected: ${r}`);return Ut(n)}function Cm(e){let t=e.collectorUrl?.trim();if(!t)return;let n=Et(t);if(n)throw new Error(`collector URL rejected: ${n}`);return Ut(t)}function Am(e){return Rm(e,"install")}function fa(e){let t={};for(let n=0;n<e.length;n++){let r=e[n];if(r==="--url"){let o=e[n+1];o&&!o.startsWith("--")&&(t.collectorUrl=o,n+=1);continue}if(r==="--collector-url")throw new Error("--collector-url was renamed to --url")}return t}function da(e){let t={};for(let n=0;n<e.length;n++){let r=e[n];if(r==="--url"){let o=e[n+1];o&&!o.startsWith("--")&&(t.collectorUrl=o,n+=1);continue}if(r==="--collector-url")throw new Error("--collector-url was renamed to --url");if(r==="--update")throw new Error("--update was removed; use the `update` command instead of `install --update`");if(r==="--delivery"){let o=e[n+1];(o==="npx"||o==="binary"||o==="local")&&(t.delivery=o,n+=1);continue}if(r==="--force"){t.force=!0;continue}if(r==="--no-claude"){t.skipClaude=!0;continue}if(r==="--no-cursor"){t.skipCursor=!0;continue}if(r==="--no-codex"){t.skipCodex=!0;continue}}return t}function pa(e=process.execPath){return ma(e)?"binary":"npx"}function km(){return W(De(),".ev-ai","agent-hook")}function bm(e=De()){return W(e,".ev-ai","agent-hook",jr)}function xm(){let e=uo(ym(import.meta.url)),t=W(e,"hook.mjs");return Xe(t)?t:W(e,"..","dist","hook.mjs")}function ma(e=process.execPath){return In(e)}function ga(e,t){let n=la(ia(e),ia(t));return!n.startsWith("..")&&!Sm(n)}function $n(e){return e.split(Em).join("/")}function Im(e){return`node "$(git rev-parse --show-toplevel)/${$n(e)}"`}function Om(e){return`"$(git rev-parse --show-toplevel)/${$n(e)}"`}function Tm(e){return W(e,Br)}function ha(e,t){let n=Tm(e);co(uo(n),{recursive:!0}),ua(t,n,{force:!0});try{ca(n,493)}catch{}return n}function Pm(e){let t=W(km(),"current");try{Fn(t,{recursive:!0,force:!0})}catch{}hm(e,t,process.platform==="win32"?"junction":"dir")}function _a(e,t=Le,n=De()){let r=W(n,".ev-ai","agent-hook",t),o=W(r,Ie);co(r,{recursive:!0}),ua(e,o,{force:!0});try{ca(o,493)}catch{}return Pm(r),W(n,".ev-ai","agent-hook",jr)}function Sa(e){let t=so();if(!t)return;let n=[W(e,io(t)),W(e,"packages","agent-hook",io(t))];for(let r of n)if(Xe(r)&&ga(e,r))return r}function wm(e=De()){let t=bm(e);return Xe(t)?t:void 0}function Nm(e,t=De()){let n=wm(t);return n||(ma()?_a(process.execPath,Le,t):Sa(e))}function vm(e,t=De()){let n=Sa(e);if(!n)throw new Error(`update requires a locally compiled binary \u2014 run this package\u2019s build:hook-binary script first.
|
|
22
|
+
To install a released binary instead: curl -fsSL https://cdn.ev-ai.ai/agent-hook/install.sh | sh`);let r=_a(n,Le,t),o=ha(e,n);return{sourcePath:n,projectPath:o,globalPath:r}}function aa(e){let t=[W(e,"packages","agent-hook","dist","hook.mjs"),W(e,ci)],n=xm();Xe(n)&&ga(e,n)&&t.unshift(n);for(let r of t){if(!Xe(r))continue;let o=$n(la(e,r));return{command:Im(o),hookPath:o,strategy:"dev_mjs"}}}function Mm(e){return e==="SessionStart"||e==="sessionStart"}function Lm(e){return e.replace(/\s+--prefer-offline\b/g,"")}function Dn(e,t){return Mm(e)?Lm(t):t}function Hm(e=Tn){return`npx -y --prefer-offline ${e}`}function Um(e,t=De(),n=pa()){if(n==="npx")return{command:Hm(),hookPath:Tn,strategy:"npx"};if(n==="local"){let s=aa(e);if(s)return s;throw new Error("local delivery requires packages/agent-hook/dist/hook.mjs (or node_modules/@ev-ai/agent-hook/dist/hook.mjs) under the git root \u2014 run yarn workspace @ev-ai/agent-hook build first")}let r=Nm(e,t);if(r){ha(e,r);let s=$n(Br);return{command:Om(s),hookPath:s,strategy:"project_binary"}}let o=aa(e);if(o)return o;throw new Error(`ev-ai-agent-hook binary not found. Install from CDN:
|
|
23
|
+
curl -fsSL ${ui}/install.sh | sh
|
|
23
24
|
Or use npx delivery:
|
|
24
|
-
npx ${
|
|
25
|
-
`,"utf8")}function Fe(e){if(Xe(e))try{return JSON.parse(Yp(e,"utf8"))}catch(t){throw t instanceof SyntaxError?new Error(`Invalid JSON in ${e} \u2014 fix or remove the file`,{cause:t}):t}}function Sm(e,t){let n=Xi(t.collectorUrl),r={...e,schema_version:e?.schema_version??n.schema_version};return t.collectorUrl!==void 0?r.collector_url=t.collectorUrl:r.collector_url=e?.collector_url??n.collector_url,delete r.repo_ingest_token,delete r.installation_id,r.mcp_servers??=n.mcp_servers,r}function Em(e){return(e.schema_version??Je)===Je&&e.collector_url===void 0&&(e.mcp_servers?.length??0)===0&&e.platform_agent_id===void 0&&e.capture_hook_input===void 0&&e.debug===void 0&&e.repo_ingest_token===void 0}function da(e,t){let n=W(e,En),r=Fe(n),o=Sm(r,t);return t.collectorUrl!==void 0||Xe(n)||!Em(o)?(qe(n,o),{manifestPath:n,wrote:!0}):{manifestPath:void 0,wrote:!1}}function ro(e){if(e===null||typeof e!="object")return!1;let t=e,n=String(t.CLAUDE_CODE_ENABLE_TELEMETRY??"").toLowerCase();return n==="1"||n==="true"?!0:Object.keys(t).some(r=>r.startsWith("OTEL_"))}function ym(e){if(ro(process.env))return!0;let t=De();return[...Br(),W(t,".claude","settings.json"),W(t,".claude","remote-settings.json"),W(e,".claude","settings.json"),W(e,".claude","settings.local.json")].some(r=>{try{let o=Fe(r);return o?ro(o.env):!1}catch{return!1}})}function Rm(e){try{let t=Fe(W(e,".claude","settings.json"));return t?ro(t.env):!1}catch{return!1}}function pa(e){return Array.isArray(e)?e:[]}function Dn(e){let t=[],n=r=>!!r&&typeof r=="object"&&fa(r.command);for(let r of pa(e)){if(!r||typeof r!="object"){t.push(r);continue}let o=Array.isArray(r.hooks)?r.hooks:[],s=o.filter(i=>!n(i));if(!(s.length===0&&o.some(n))){if(s.length!==o.length){t.push({...r,hooks:s});continue}t.push(r)}}return t}function ma(e,t){return[...Dn(e),...t]}function ao(e){return Array.isArray(e)?e.filter(t=>!t||typeof t!="object"?!0:!fa(t.command)):[]}function Cm(e,t){return[...ao(e),{command:t}]}function Am(e){return typeof e=="string"?[e]:e}function bm(e){let t=(n="")=>({hooks:Am(e).map(r=>({type:"command",command:Ln(n,r)}))});return{SessionStart:[t("SessionStart")],UserPromptExpansion:[t()],UserPromptSubmit:[t()],PreToolUse:[t()],PostToolUse:[t()],PostToolUseFailure:[t()],PermissionDenied:[t()],Stop:[t()],StopFailure:[t()],SessionEnd:[t()],SubagentStart:[t()],SubagentStop:[t()]}}function xm(e){let t=typeof e=="string"?{command:e}:e,n=(r="")=>({hooks:[{type:"command",command:Ln(r,t.command),...t.commandWindows===void 0?{}:{commandWindows:Ln(r,t.commandWindows)},statusMessage:li}]});return{SessionStart:[n("SessionStart")],UserPromptSubmit:[n()],PreToolUse:[n()],PostToolUse:[n()],Stop:[n()],SubagentStart:[n()],SubagentStop:[n()]}}var km=["sessionStart","beforeSubmitPrompt","preToolUse","postToolUse","postToolUseFailure","beforeShellExecution","beforeReadFile","beforeMCPExecution","subagentStart","subagentStop","stop"],Im=["afterShellExecution","afterFileEdit"];function Om(e,t=Im){let n={...e};for(let r of t){if(!(r in n))continue;let o=ao(n[r]);o.length===0?delete n[r]:n[r]=o}return n}function Tm(e,t,n={}){let r=W(e,".claude/settings.json"),o=io(t,"claude"),s=Fe(r)??{};if(ym(e)&&!n.force){if(s.hooks&&typeof s.hooks=="object"){let u={...s.hooks};for(let d of Object.keys(u))u[d]=Dn(u[d]),pa(u[d]).length===0&&delete u[d];Object.keys(u).length===0?delete s.hooks:s.hooks=u,qe(r,s)}return!1}let a=s.hooks&&typeof s.hooks=="object"?s.hooks:{},c=bm(o),l={...a};for(let[u,d]of Object.entries(c))l[u]=ma(a[u],d);return s.hooks=l,qe(r,s),!0}function Pm(e,t){let n=W(e,".cursor/hooks.json"),r=io(t,"cursor"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Om({...s});for(let a of km)i[a]=Cm(i[a],Ln(a,r));qe(n,{...o,version:typeof o.version=="number"?o.version:1,hooks:i})}function wm(e,t){let n=W(e,".codex/hooks.json"),r=io(t,"codex"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=xm(r),a={...s};for(let[c,l]of Object.entries(i))a[c]=ma(s[c],l);qe(n,{...o,hooks:a})}function Nm(e){let t=W(e,".claude/settings.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1;for(let s of Object.keys(r)){let i=r[s],a=Dn(i);JSON.stringify(i)!==JSON.stringify(a)&&(o=!0),a.length===0?delete r[s]:r[s]=a}o&&(Object.keys(r).length===0?delete n.hooks:n.hooks=r,qe(t,n),E(`Removed ev-ai hooks from ${t}`))}function vm(e){let t=W(e,".cursor/hooks.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1,s=0;for(let i of Object.keys(r)){let a=r[i],c=ao(a);JSON.stringify(a)!==JSON.stringify(c)&&(o=!0),c.length===0?delete r[i]:(r[i]=c,s+=c.length)}if(o){if(s===0&&Object.keys(r).length===0&&Object.keys(n).filter(a=>a!=="hooks"&&a!=="version").length===0){Hn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function Mm(e){let t=W(e,".codex/hooks.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1,s=0;for(let i of Object.keys(r)){let a=r[i],c=Dn(a);JSON.stringify(a)!==JSON.stringify(c)&&(o=!0),c.length===0?delete r[i]:(r[i]=c,s+=c.length)}if(o){if(s===0&&Object.keys(r).length===0&&Object.keys(n).filter(a=>a!=="hooks").length===0){Hn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function co(e=process.platform,t=process.arch,n={}){if(e==="win32")throw new Error("Windows install is not supported yet. Use macOS/Linux, or wait for phase-2 native commands.");(n.requireBinaryArch??!0)&&qi(e,t)}async function ga(e={}){let t=rm(e);e.collectorUrl=t;let n=e.skipClaude===!0,r=e.skipCursor===!0,o=e.skipCodex===!0;if(n&&r&&o)throw new Error("at least one runner must be wired; refuse --no-claude --no-cursor --no-codex together");let s=e.delivery??sa();co(process.platform,process.arch,{requireBinaryArch:s==="binary"});let i=e.cwd??process.cwd(),a=await Le(i),{command:c,hookPath:l,strategy:u}=_m(a,De(),s),{installationId:d,storePath:f}=await Mn(a,{overrideId:e.installationId}),{manifestPath:p,wrote:g}=da(a,e),S=[];return n?E("Skipped Claude hook \u2014 --no-claude"):Tm(a,c,{force:e.force})?(S.push("Claude"),e.force&&Rm(a)&&E("Forced Claude hook despite project native OTEL \u2014 expect duplicate session/tool events")):E("Skipped Claude hook \u2014 native OTEL telemetry already enabled (avoids duplicate events); pass --force to wire anyway"),r?E("Skipped Cursor hook \u2014 --no-cursor"):(Pm(a,c),S.push("Cursor")),o?E("Skipped Codex hook \u2014 --no-codex"):(wm(a,c),S.push("Codex")),E(`Installed hook (${u}) at ${l}`),E(`Installation identity ${d} at ${f}`),g&&p?E(`Shared manifest written to ${p}`):E("Using package default collector config (no shared manifest file needed)"),E(S.length>0?`Wired ${S.join(", ")} hooks in ${a} (commands include --runner)`:`No runner hooks wired in ${a} (Claude skipped by OTEL; Cursor/Codex excluded via flags)`),u==="npx"?E("Hook commands use npx and may be committed; teammates need Node on PATH only (no install step, no env vars when collector_url is in the shared manifest)."):u==="project_binary"?E("Hook commands are git-root-relative and may be committed; each collaborator runs install once to populate .ev-ai/agent-hook/ (gitignored)."):u==="dev_mjs"&&E("Hook commands use node + monorepo packages/agent-hook/dist/hook.mjs (local delivery; rebuild with yarn workspace @ev-ai/agent-hook build)."),g&&p&&e.collectorUrl&&E("Shared manifest includes collector_url \u2014 commit it with hook configs so teammates post without env vars."),{gitRoot:a,hookPath:l,manifestPath:p,installationStorePath:f,strategy:u}}async function ha(e=process.cwd()){co(process.platform,process.arch,{requireBinaryArch:!0});let t=await Le(e),{projectPath:n,globalPath:r}=pm(t);E(`Refreshed ${r}`),E(`Refreshed ${n}`),E("Hook configs and shared manifest left unchanged")}async function _a(e={}){let t=nm(e);e.collectorUrl=t,co(process.platform,process.arch,{requireBinaryArch:!1});let n=e.cwd??process.cwd(),r=await Le(n),{manifestPath:o,wrote:s}=da(r,e);if(t!==void 0&&(!o||!s))throw new Error("configure failed to write shared collector manifest");return s&&o?E(`Wrote ${o}`):t===void 0&&E("No --url given and no shared manifest yet \u2014 pass --url <\u2026/{orgToken}/hook> to write collector destination."),E("Manifest only \u2014 enable ev-ai marketplace plugins. Do not also run file-wiring install for the same events."),{gitRoot:r,manifestPath:o}}function Sa(e){for(let t of[()=>Nm(e),()=>vm(e),()=>Mm(e)])try{t()}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: strip skipped a hook file: ${r}`)}}async function Ea(e=process.cwd()){let t=await Le(e);return Sa(t),E("Stripped ev-ai file-wired hooks; shared collector manifest left in place."),E("Next: enable ev-ai marketplace plugins, then restart runners."),{gitRoot:t}}async function ya(e=process.cwd()){let t=await Le(e);Sa(t);for(let n of yn){let r=W(t,n);if(Xe(r))try{Hn(r,{force:!0}),E(`Removed ${r}`)}catch(o){let s=o instanceof Error?o.message:String(o);E(`WARN: uninstall could not remove ${r}: ${s}`)}}}import{existsSync as __,mkdirSync as S_,readdirSync as E_,readFileSync as y_,unlinkSync as Pc,writeFileSync as R_}from"node:fs";import{homedir as wc}from"node:os";import{join as xo}from"node:path";import{open as Ra,mkdir as Lm,readFile as Hm,readdir as Um,rename as Dm,stat as Fm,rmdir as $m,unlink as jm,utimes as Bm}from"node:fs/promises";var Fn=new WeakMap;function Aa(e){if(e&&typeof e=="object"&&"code"in e)return e}function uo(e){return Aa(e)?.code==="ENOENT"}function ba(e){return Aa(e)?.code==="EEXIST"}async function xa(e,t){try{return await e.readdir(t)}catch(n){if(uo(n))return[];throw n}}function ka(){return{async open(e,t){let n=await Ra(e,t),r={path:e};return Fn.set(r,n),r},async write(e,t){let n=Ca(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Ca(e).sync()},async close(e){let t=Fn.get(e);Fn.delete(e),t&&await t.close()},rename:Dm,async readdir(e){return Um(e)},readFile:Hm,async stat(e){let t=await Fm(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Lm(e,t)},unlink:jm,rmdir:$m,utimes:Bm,async fsyncDir(e){if(process.platform==="win32")return;let t=await Ra(e,"r");try{await t.sync()}finally{await t.close()}}}}function Ca(e){let t=Fn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as Qm}from"node:fs";import{existsSync as Km}from"node:fs";import{homedir as Oa}from"node:os";import{join as Gm}from"node:path";function Ta(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Wm={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 Ia(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function zm(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:Ia(n.mcpJson,t.mcpJson),mcpToml:Ia(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Pa(e){return Object.fromEntries(Object.entries(Wm).map(([t,n])=>[t,zm(n,n[e])]))}var Ct=Pa("homeOnly"),Qe=Pa("projectOnly");function Vm(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Jm(e,t){return Vm(e).some(n=>Km(Gm(t,n)))}function wa(e,t){for(let n of e)if(Jm(n,t))return!0;return!1}function Ze(e){return[...new Set(e)]}function et(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:Ze(t),subagents:Ze(n),commands:Ze(r),rules:Ze(o),memory:Ze(s),settings:Ze(i),mcp:Ze(a)}}function Ym(e,t=Oa(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Tn(o.managed,n,t));return Ze(r)}var tt=et(Object.values(Ct));function Na(e=Oa(),t=process.platform){return Ym(Object.values(Ct),e,t)}import{existsSync as Xm}from"node:fs";import{resolve as lo}from"node:path";function ge(e){return lo(e).replaceAll("\\","/").replace(/\/$/,"")}function ct(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 $n(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 qm=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function jt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!qm.test(t)?null:t}function At(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 Zm(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Ie(e,t,n,r=Xm){for(let o of e)for(let s of t){let i=ge(lo(o,s)),a=lo(o,s,n).replaceAll("\\","/");if(Zm(i,a)&&r(a))return a}return null}var Ma=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,La=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,eg=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,va=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"]),tg=/^[a-z][a-z0-9-]{1,63}$/,ng=[".cursor/skills",".claude/skills",".agents/skills"],rg=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],og=ct(ng,et(Object.values(Qe)).skills),sg=ct(rg,et(Object.values(Ct)).skills),ig=new Set(["read","read_file","view"]),ag=new Set(["bash","shell","zsh"]);function fo(e){let t=e.replace(/\\/g,"/");return Ma.exec(t)?.[1]??null}function cg(e){let t=e.replace(/\\/g,"/"),r=La.exec(t)?.[1];return r?r.toLowerCase():null}function ug(e){return fo(e)??cg(e)}function lg(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 jn(e){return typeof e=="string"?jn(me(e,null)):!e||typeof e!="object"?null:lg(e)}function Ha(e){if(typeof e=="string")return Ha(me(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function po(e){let t=Ha(e.tool_input);if(t)return t;let n=it(e.command);return n.length>0?n:null}function fg(e){let t=e.replace(/\\/g,"/"),n=Ma.exec(t);if(n?.[1])return n[1];let o=La.exec(t)?.[1];return o?o.toLowerCase():null}function dg(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function mo(e){let t=jn(e.tool_input)??it(e.file_path);return t.length>0?t:null}function Bt(e,t,n){let r=dg(e).toLowerCase();if(ig.has(r)){let o=mo(e);return o?t(o):null}if(ag.has(r)){let o=po(e);return o?n(o):null}return null}function Ua(e){return Bt(e,ug,fg)}function pg(e){let t=new Set,n=[];for(let r of e.matchAll(eg)){let o=r[1]?.toLowerCase();!o||t.has(o)||mg(o)||(t.add(o),n.push(o))}return n}function mg(e){let t=e.split("/")[0];return va.has(e)||t!==void 0&&va.has(t)}function Da(e){let t=e.skillId.toLowerCase();if(!tg.test(t))return null;let n=e.exists??Qm,r=`${t}/SKILL.md`,o=Ie(At(e.launchCwd,e.gitRoot),og,r,n);return o!==null?o:e.home?Ie([ge(e.home)],sg,r,n):null}function gg(e){return it(e.prompt)}function Fa(e){let t=M(e,"command_name");if(t){let r=M(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=gg(e);return n?pg(n):[]}var yo=Ve(rt(),1);import{existsSync as Bh}from"node:fs";var lt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Gt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function jh(e){if(!e)return"";let t=Ut(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Gt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Gt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Gt(o[1]):Gt(t)}async function Jn(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?Ut(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 lc(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=lt[n];if(!a)return"";let c=Ui(n,e.scope_path,i);if(s){let g=Wi(s,c);if(g)return g}let l=o??await Jn(r),u=l?.remote?jh(l.remote):"";if(u||(u=Gt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let d=e.scope_path??"",f=d?`${d}/`:"",p=`${u}:${f}${a}`;return s&&zi(s,c,p),p}var Kh=[".cursor/rules",".claude/rules",".codex/rules"],Gh=et(Object.values(Qe)).rules;function Wh(e){return ct($n(e?lt[e]:void 0,Kh),Gh)}var zh=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function fc(e){let t=jt(e.relativePath);if(!t)return null;let n=e.exists??Bh,r=At(e.launchCwd,e.gitRoot),o=Wh(e.runnerPlatform),s=Ie(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=Ie(r,["."],t,n);if(i!==null)return i}return e.home?Ie([ge(e.home)],o,t,n):null}function Vh(e){let t=e.replace(/\\/g,"/"),r=zh.exec(t)?.[1];return r?(0,yo.nativeKeyForRulePath)(r):null}function dc(e){return Bt(e,yo.nativeKeyForRulePath,Vh)}function pc(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function mc(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=jt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Ro=Ve(rt(),1);import{existsSync as Jh}from"node:fs";var Yh=[".cursor/commands",".claude/commands",".codex/prompts"],Xh=et(Object.values(Qe)).commands;function qh(e){return ct($n(e?lt[e]:void 0,Yh),Xh)}var Zh=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function gc(e){let t=jt(e.commandId);if(!t)return null;let n=e.exists??Jh,r=`${t}.md`,o=qh(e.runnerPlatform),s=Ie(At(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Ie([ge(e.home)],o,r,n):null}function Qh(e){let t=e.replace(/\\/g,"/"),r=Zh.exec(t)?.[1];return r?(0,Ro.nativeKeyForCommandPath)(r):null}function hc(e){return Bt(e,Ro.nativeKeyForCommandPath,Qh)}var Yn=Ve(rt(),1);function Co(e){let t=ti(e);if(t.problem){E(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function _c(e,t){if(M(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function e_(){return!!(F("CURSOR_VERSION")??F("CURSOR_PROJECT_DIR"))}function Sc(e,t,n){return e!=="claude"&&e!=="codex"?!1:_c(t,n)?!0:e_()}var t_=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Wt(e,t,n,r){return _c(e,t)?"cursor":Rn(r)?r:Rn(n)?n:M(e,"turn_id")?"codex":M(e,"session_id")||t_.has(t.toLowerCase())?"claude":"unknown"}function Xn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function n_(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 Ec(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function yc(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Rc(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function zt(e){return M(e,"session_id")||M(e,"conversation_id")}function Ao(e){return M(e,"prompt.id")||M(e,"prompt_id")||M(e,"generation_id")||M(e,"turn_id")}function bo(e){return M(e,"hook_event_name")||M(e,"event")}function Cc(e,t,n){let r=zt(e),o=Ao(e),s=bo(e),i=M(e,"source"),a=Wt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var r_=["session_start","session_end","tool_invoked","skill_invoked"];function o_(e){return r_.includes(e)}function Ac(e,t){return e&&o_(e)?e:n_(t.toLowerCase())}var s_={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function qn(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function bc(e,t=""){let n=M(e,"tool_name")||M(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!qn(n)&&(n=`MCP:${n}`):n=s_[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?it(o.skill)||it(o.skill_name):"")||M(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Ua(a);let c=dc(a),l=hc(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var i_=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function xc(e){for(let t of["subagent_type","agent_type"]){let n=M(e,t);if(n&&i_.test(n))return n}return null}function kc(e){let t=He(e,"duration_ms");if(typeof t=="number")return t;let n=He(e,"duration");return typeof n=="number"?n:null}var a_="error",c_="interrupted",u_="permission_denied",l_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Vt(e){return l_.test(e)?e:null}function f_(e){for(let t of["failure_type","error_type"]){let n=Vt(M(e,t));if(n)return n}return null}function Ic(e,t){return He(e,"is_interrupt")===!0?c_:t.toLowerCase()==="permissiondenied"?u_:f_(e)??a_}function Oc(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function d_(e,t){return Oc(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function p_(e,t){return Oc(t,n=>(0,Yn.mcpServerNameMatchesToolSegment)(n,e))}function m_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Yn.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:p_(o[1],t)??o[1],mcpTool:o[2]}}function g_(e,t){if(/^mcp__/i.test(e))return m_(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:d_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function h_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Tc(e,t=[],n=""){let r=e?g_(e,t):{mcpServer:null,mcpTool:null},o=Vt(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!qn(e)&&(s=e),s&&(s=h_(s,o)),{mcpServer:o,mcpTool:s}}var Nc=3e4,C_="claims",A_=!0,b_=100,x_=new Set(["sessionstart","sessionend","stopfailure"]),k_=["tool_name","tool","command","file_path","url"];function I_(e=wc()){return xo(Ue(e),C_)}function vc(e,t){try{let n=y_(e,"utf8").split(`
|
|
26
|
-
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function
|
|
27
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(
|
|
28
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cloud cache write failed open: ${r}`)}}function
|
|
29
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as
|
|
25
|
+
npx ${Tn} install`)}function Ea(e){return typeof e!="string"?!1:e.includes("@ev-ai/agent-hook")||e.includes("agent-hook/dist/hook")||e.includes(".ev-ai/agent-hook")||e.includes(Ie)||/(?:^|[\s/"'])ev-ai-agent-hook(?:$|[\s"'])/.test(e)}function lo(e,t){return`${e.replace(/\s+--runner(?:=|\s+)\S+/g,"").trimEnd()} --runner ${t}`}function qe(e,t){co(uo(e),{recursive:!0}),_m(e,`${JSON.stringify(t,null,2)}
|
|
26
|
+
`,"utf8")}function Fe(e){if(Xe(e))try{return JSON.parse(gm(e,"utf8"))}catch(t){throw t instanceof SyntaxError?new Error(`Invalid JSON in ${e} \u2014 fix or remove the file`,{cause:t}):t}}function Dm(e,t){let n=oa(t.collectorUrl),r={...e,schema_version:e?.schema_version??n.schema_version};return t.collectorUrl!==void 0?r.collector_url=t.collectorUrl:r.collector_url=e?.collector_url??n.collector_url,delete r.repo_ingest_token,delete r.installation_id,r.mcp_servers??=n.mcp_servers,r}function Fm(e){return(e.schema_version??Je)===Je&&e.collector_url===void 0&&(e.mcp_servers?.length??0)===0&&e.platform_agent_id===void 0&&e.capture_hook_input===void 0&&e.debug===void 0&&e.repo_ingest_token===void 0}function ya(e,t){let n=W(e,Rn),r=Fe(n),o=Dm(r,t);return t.collectorUrl!==void 0||Xe(n)||!Fm(o)?(qe(n,o),{manifestPath:n,wrote:!0}):{manifestPath:void 0,wrote:!1}}function ao(e){if(e===null||typeof e!="object")return!1;let t=e,n=String(t.CLAUDE_CODE_ENABLE_TELEMETRY??"").toLowerCase();return n==="1"||n==="true"?!0:Object.keys(t).some(r=>r.startsWith("OTEL_"))}function $m(e){if(ao(process.env))return!0;let t=De();return[...Wr(),W(t,".claude","settings.json"),W(t,".claude","remote-settings.json"),W(e,".claude","settings.json"),W(e,".claude","settings.local.json")].some(r=>{try{let o=Fe(r);return o?ao(o.env):!1}catch{return!1}})}function jm(e){try{let t=Fe(W(e,".claude","settings.json"));return t?ao(t.env):!1}catch{return!1}}function Ra(e){return Array.isArray(e)?e:[]}function jn(e){let t=[],n=r=>!!r&&typeof r=="object"&&Ea(r.command);for(let r of Ra(e)){if(!r||typeof r!="object"){t.push(r);continue}let o=Array.isArray(r.hooks)?r.hooks:[],s=o.filter(i=>!n(i));if(!(s.length===0&&o.some(n))){if(s.length!==o.length){t.push({...r,hooks:s});continue}t.push(r)}}return t}function Ca(e,t){return[...jn(e),...t]}function fo(e){return Array.isArray(e)?e.filter(t=>!t||typeof t!="object"?!0:!Ea(t.command)):[]}function Bm(e,t){return[...fo(e),{command:t}]}function Km(e){return typeof e=="string"?[e]:e}function Gm(e){let t=(n="")=>({hooks:Km(e).map(r=>({type:"command",command:Dn(n,r)}))});return{SessionStart:[t("SessionStart")],UserPromptExpansion:[t()],UserPromptSubmit:[t()],PreToolUse:[t()],PostToolUse:[t()],PostToolUseFailure:[t()],PermissionDenied:[t()],Stop:[t()],StopFailure:[t()],SessionEnd:[t()],SubagentStart:[t()],SubagentStop:[t()]}}function Wm(e){let t=typeof e=="string"?{command:e}:e,n=(r="")=>({hooks:[{type:"command",command:Dn(r,t.command),...t.commandWindows===void 0?{}:{commandWindows:Dn(r,t.commandWindows)},statusMessage:gi}]});return{SessionStart:[n("SessionStart")],UserPromptSubmit:[n()],PreToolUse:[n()],PostToolUse:[n()],Stop:[n()],SubagentStart:[n()],SubagentStop:[n()]}}var zm=["sessionStart","beforeSubmitPrompt","preToolUse","postToolUse","postToolUseFailure","beforeShellExecution","beforeReadFile","beforeMCPExecution","subagentStart","subagentStop","stop"],Vm=["afterShellExecution","afterFileEdit"];function Jm(e,t=Vm){let n={...e};for(let r of t){if(!(r in n))continue;let o=fo(n[r]);o.length===0?delete n[r]:n[r]=o}return n}function Ym(e,t,n={}){let r=W(e,".claude/settings.json"),o=lo(t,"claude"),s=Fe(r)??{};if($m(e)&&!n.force){if(s.hooks&&typeof s.hooks=="object"){let u={...s.hooks};for(let d of Object.keys(u))u[d]=jn(u[d]),Ra(u[d]).length===0&&delete u[d];Object.keys(u).length===0?delete s.hooks:s.hooks=u,qe(r,s)}return!1}let a=s.hooks&&typeof s.hooks=="object"?s.hooks:{},c=Gm(o),l={...a};for(let[u,d]of Object.entries(c))l[u]=Ca(a[u],d);return s.hooks=l,qe(r,s),!0}function Xm(e,t){let n=W(e,".cursor/hooks.json"),r=lo(t,"cursor"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Jm({...s});for(let a of zm)i[a]=Bm(i[a],Dn(a,r));qe(n,{...o,version:typeof o.version=="number"?o.version:1,hooks:i})}function qm(e,t){let n=W(e,".codex/hooks.json"),r=lo(t,"codex"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Wm(r),a={...s};for(let[c,l]of Object.entries(i))a[c]=Ca(s[c],l);qe(n,{...o,hooks:a})}function Zm(e){let t=W(e,".claude/settings.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1;for(let s of Object.keys(r)){let i=r[s],a=jn(i);JSON.stringify(i)!==JSON.stringify(a)&&(o=!0),a.length===0?delete r[s]:r[s]=a}o&&(Object.keys(r).length===0?delete n.hooks:n.hooks=r,qe(t,n),E(`Removed ev-ai hooks from ${t}`))}function Qm(e){let t=W(e,".cursor/hooks.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1,s=0;for(let i of Object.keys(r)){let a=r[i],c=fo(a);JSON.stringify(a)!==JSON.stringify(c)&&(o=!0),c.length===0?delete r[i]:(r[i]=c,s+=c.length)}if(o){if(s===0&&Object.keys(r).length===0&&Object.keys(n).filter(a=>a!=="hooks"&&a!=="version").length===0){Fn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function eg(e){let t=W(e,".codex/hooks.json"),n=Fe(t);if(!n?.hooks||typeof n.hooks!="object")return;let r={...n.hooks},o=!1,s=0;for(let i of Object.keys(r)){let a=r[i],c=jn(a);JSON.stringify(a)!==JSON.stringify(c)&&(o=!0),c.length===0?delete r[i]:(r[i]=c,s+=c.length)}if(o){if(s===0&&Object.keys(r).length===0&&Object.keys(n).filter(a=>a!=="hooks").length===0){Fn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function po(e=process.platform,t=process.arch,n={}){if(e==="win32")throw new Error("Windows install is not supported yet. Use macOS/Linux, or wait for phase-2 native commands.");(n.requireBinaryArch??!0)&&sa(e,t)}async function Aa(e={}){let t=Am(e);e.collectorUrl=t;let n=e.skipClaude===!0,r=e.skipCursor===!0,o=e.skipCodex===!0;if(n&&r&&o)throw new Error("at least one runner must be wired; refuse --no-claude --no-cursor --no-codex together");let s=e.delivery??pa();po(process.platform,process.arch,{requireBinaryArch:s==="binary"});let i=e.cwd??process.cwd(),a=await He(i),{command:c,hookPath:l,strategy:u}=Um(a,De(),s),{installationId:d,storePath:f}=await Hn(a,{overrideId:e.installationId}),{manifestPath:p,wrote:g}=ya(a,e),S=[];return n?E("Skipped Claude hook \u2014 --no-claude"):Ym(a,c,{force:e.force})?(S.push("Claude"),e.force&&jm(a)&&E("Forced Claude hook despite project native OTEL \u2014 expect duplicate session/tool events")):E("Skipped Claude hook \u2014 native OTEL telemetry already enabled (avoids duplicate events); pass --force to wire anyway"),r?E("Skipped Cursor hook \u2014 --no-cursor"):(Xm(a,c),S.push("Cursor")),o?E("Skipped Codex hook \u2014 --no-codex"):(qm(a,c),S.push("Codex")),E(`Installed hook (${u}) at ${l}`),E(`Installation identity ${d} at ${f}`),g&&p?E(`Shared manifest written to ${p}`):E("Using package default collector config (no shared manifest file needed)"),E(S.length>0?`Wired ${S.join(", ")} hooks in ${a} (commands include --runner)`:`No runner hooks wired in ${a} (Claude skipped by OTEL; Cursor/Codex excluded via flags)`),u==="npx"?E("Hook commands use npx and may be committed; teammates need Node on PATH only (no install step, no env vars when collector_url is in the shared manifest)."):u==="project_binary"?E("Hook commands are git-root-relative and may be committed; each collaborator runs install once to populate .ev-ai/agent-hook/ (gitignored)."):u==="dev_mjs"&&E("Hook commands use node + monorepo packages/agent-hook/dist/hook.mjs (local delivery; rebuild with yarn workspace @ev-ai/agent-hook build)."),g&&p&&e.collectorUrl&&E("Shared manifest includes collector_url \u2014 commit it with hook configs so teammates post without env vars."),{gitRoot:a,hookPath:l,manifestPath:p,installationStorePath:f,strategy:u}}async function ka(e=process.cwd()){po(process.platform,process.arch,{requireBinaryArch:!0});let t=await He(e),{projectPath:n,globalPath:r}=vm(t);E(`Refreshed ${r}`),E(`Refreshed ${n}`),E("Hook configs and shared manifest left unchanged")}async function ba(e={}){let t=Cm(e);e.collectorUrl=t,po(process.platform,process.arch,{requireBinaryArch:!1});let n=e.cwd??process.cwd(),r=await He(n),{manifestPath:o,wrote:s}=ya(r,e);if(t!==void 0&&(!o||!s))throw new Error("configure failed to write shared collector manifest");return s&&o?E(`Wrote ${o}`):t===void 0&&E("No --url given and no shared manifest yet \u2014 pass --url <\u2026/{orgToken}/hook> to write collector destination."),E("Manifest only \u2014 enable ev-ai marketplace plugins. Do not also run file-wiring install for the same events."),{gitRoot:r,manifestPath:o}}function xa(e){for(let t of[()=>Zm(e),()=>Qm(e),()=>eg(e)])try{t()}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: strip skipped a hook file: ${r}`)}}async function Ia(e=process.cwd()){let t=await He(e);return xa(t),E("Stripped ev-ai file-wired hooks; shared collector manifest left in place."),E("Next: enable ev-ai marketplace plugins, then restart runners."),{gitRoot:t}}async function Oa(e=process.cwd()){let t=await He(e);xa(t);for(let n of Cn){let r=W(t,n);if(Xe(r))try{Fn(r,{force:!0}),E(`Removed ${r}`)}catch(o){let s=o instanceof Error?o.message:String(o);E(`WARN: uninstall could not remove ${r}: ${s}`)}}}import{existsSync as U_,mkdirSync as D_,readdirSync as F_,readFileSync as $_,unlinkSync as Dc,writeFileSync as j_}from"node:fs";import{homedir as Fc}from"node:os";import{join as To}from"node:path";import{open as Ta,mkdir as tg,readFile as ng,readdir as rg,rename as og,stat as sg,rmdir as ig,unlink as ag,utimes as cg}from"node:fs/promises";var Bn=new WeakMap;function wa(e){if(e&&typeof e=="object"&&"code"in e)return e}function mo(e){return wa(e)?.code==="ENOENT"}function Na(e){return wa(e)?.code==="EEXIST"}async function va(e,t){try{return await e.readdir(t)}catch(n){if(mo(n))return[];throw n}}function Ma(){return{async open(e,t){let n=await Ta(e,t),r={path:e};return Bn.set(r,n),r},async write(e,t){let n=Pa(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await Pa(e).sync()},async close(e){let t=Bn.get(e);Bn.delete(e),t&&await t.close()},rename:og,async readdir(e){return rg(e)},readFile:ng,async stat(e){let t=await sg(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await tg(e,t)},unlink:ag,rmdir:ig,utimes:cg,async fsyncDir(e){if(process.platform==="win32")return;let t=await Ta(e,"r");try{await t.sync()}finally{await t.close()}}}}function Pa(e){let t=Bn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as Eg}from"node:fs";import{existsSync as ug}from"node:fs";import{homedir as Ha}from"node:os";import{join as lg}from"node:path";function Ua(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var fg={claude:{shared:{skillRoots:[".claude/skills"],dirs:[{dir:".claude/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".claude/commands",kind:"COMMAND",extensions:[".md"]},{dir:".claude/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["CLAUDE.md"],["CLAUDE.local.md"],[".claude/CLAUDE.md"]],settings:[".claude/settings.json",".claude/settings.local.json",".claude/hooks.json"]},homeOnly:{mcpJson:[".claude.json"],plugins:"claude",managed:"claude"},projectOnly:{mcpJson:[".mcp.json","mcp.json"]}},cursor:{shared:{skillRoots:[".cursor/skills"],dirs:[{dir:".cursor/agents",kind:"SUBAGENT",extensions:[".md"]},{dir:".cursor/commands",kind:"COMMAND",extensions:[".md"]},{dir:".cursor/rules",kind:"RULE",extensions:[".mdc",".md"]}],memory:[["AGENTS.md"]],settings:[".cursor/hooks.json",".cursor/sandbox.json",".cursor/permissions.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],settings:[".cursor/cli-config.json"],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"],settings:[".cursor/cli.json"]}},codex:{shared:{skillRoots:[".agents/skills",".codex/skills"],dirs:[{dir:".codex/agents",kind:"SUBAGENT",extensions:[".toml",".md"]},{dir:".codex/prompts",kind:"COMMAND",extensions:[".md"]},{dir:".codex/rules",kind:"RULE",extensions:[".md",".rules"]}],memory:[["AGENTS.override.md","AGENTS.md"]],settings:[".codex/hooks.json",".codex/config.toml"],mcpToml:[".codex/config.toml"]},homeOnly:{memory:[[".codex/AGENTS.override.md",".codex/AGENTS.md"]],managed:"codex"}}};function La(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function dg(e,t={}){let{shared:n}=e;return{skillRoots:[...n.skillRoots,...t.skillRoots??[]],dirs:n.dirs,memory:[...n.memory,...t.memory??[]],settings:[...n.settings,...t.settings??[]],mcpJson:La(n.mcpJson,t.mcpJson),mcpToml:La(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Da(e){return Object.fromEntries(Object.entries(fg).map(([t,n])=>[t,dg(n,n[e])]))}var At=Da("homeOnly"),Qe=Da("projectOnly");function pg(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function mg(e,t){return pg(e).some(n=>ug(lg(t,n)))}function Fa(e,t){for(let n of e)if(mg(n,t))return!0;return!1}function Ze(e){return[...new Set(e)]}function et(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:Ze(t),subagents:Ze(n),commands:Ze(r),rules:Ze(o),memory:Ze(s),settings:Ze(i),mcp:Ze(a)}}function gg(e,t=Ha(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...wn(o.managed,n,t));return Ze(r)}var tt=et(Object.values(At));function $a(e=Ha(),t=process.platform){return gg(Object.values(At),e,t)}import{existsSync as hg}from"node:fs";import{resolve as go}from"node:path";function he(e){return go(e).replaceAll("\\","/").replace(/\/$/,"")}function ct(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function Kn(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var _g=/^(?!\.)[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("..")||!_g.test(t)?null:t}function kt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=he(o);n.has(s)||(n.add(s),r.push(s))}return r}function Sg(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Oe(e,t,n,r=hg){for(let o of e)for(let s of t){let i=he(go(o,s)),a=go(o,s,n).replaceAll("\\","/");if(Sg(i,a)&&r(a))return a}return null}var Ba=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,Ka=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,yg=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,ja=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"]),Rg=/^[a-z][a-z0-9-]{1,63}$/,Cg=[".cursor/skills",".claude/skills",".agents/skills"],Ag=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],kg=ct(Cg,et(Object.values(Qe)).skills),bg=ct(Ag,et(Object.values(At)).skills),xg=new Set(["read","read_file","view"]),Ig=new Set(["bash","shell","zsh"]);function ho(e){let t=e.replace(/\\/g,"/");return Ba.exec(t)?.[1]??null}function Og(e){let t=e.replace(/\\/g,"/"),r=Ka.exec(t)?.[1];return r?r.toLowerCase():null}function Tg(e){return ho(e)??Og(e)}function Pg(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 Gn(e){return typeof e=="string"?Gn(ge(e,null)):!e||typeof e!="object"?null:Pg(e)}function Ga(e){if(typeof e=="string")return Ga(ge(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function _o(e){let t=Ga(e.tool_input);if(t)return t;let n=it(e.command);return n.length>0?n:null}function wg(e){let t=e.replace(/\\/g,"/"),n=Ba.exec(t);if(n?.[1])return n[1];let o=Ka.exec(t)?.[1];return o?o.toLowerCase():null}function Ng(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function So(e){let t=Gn(e.tool_input)??it(e.file_path);return t.length>0?t:null}function Gt(e,t,n){let r=Ng(e).toLowerCase();if(xg.has(r)){let o=So(e);return o?t(o):null}if(Ig.has(r)){let o=_o(e);return o?n(o):null}return null}function Wa(e){return Gt(e,Tg,wg)}function vg(e){let t=new Set,n=[];for(let r of e.matchAll(yg)){let o=r[1]?.toLowerCase();!o||t.has(o)||Mg(o)||(t.add(o),n.push(o))}return n}function Mg(e){let t=e.split("/")[0];return ja.has(e)||t!==void 0&&ja.has(t)}function za(e){let t=e.skillId.toLowerCase();if(!Rg.test(t))return null;let n=e.exists??Eg,r=`${t}/SKILL.md`,o=Oe(kt(e.launchCwd,e.gitRoot),kg,r,n);return o!==null?o:e.home?Oe([he(e.home)],bg,r,n):null}function Lg(e){return it(e.prompt)}function Va(e){let t=M(e,"command_name");if(t){let r=M(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Lg(e);return n?vg(n):[]}var ko=Ve(rt(),1);import{existsSync as c_}from"node:fs";var lt={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function zt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function a_(e){if(!e)return"";let t=Ft(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return zt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return zt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?zt(o[1]):zt(t)}async function qn(e=process.cwd()){let t=await Ee("git",["rev-parse","--is-inside-work-tree"],2e3,{cwd:e});if(!t.ok||t.stdout!=="true")return null;let[n,r,o,s]=await Promise.all([Ee("git",["remote","get-url","origin"],2e3,{cwd:e}),Ee("git",["branch","--show-current"],2e3,{cwd:e}),Ee("git",["rev-parse","HEAD"],2e3,{cwd:e}),Ee("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?Ft(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 Sc(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=lt[n];if(!a)return"";let c=Bi(n,e.scope_path,i);if(s){let g=Xi(s,c);if(g)return g}let l=o??await qn(r),u=l?.remote?a_(l.remote):"";if(u||(u=zt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let d=e.scope_path??"",f=d?`${d}/`:"",p=`${u}:${f}${a}`;return s&&qi(s,c,p),p}var u_=[".cursor/rules",".claude/rules",".codex/rules"],l_=et(Object.values(Qe)).rules;function f_(e){return ct(Kn(e?lt[e]:void 0,u_),l_)}var d_=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Ec(e){let t=Kt(e.relativePath);if(!t)return null;let n=e.exists??c_,r=kt(e.launchCwd,e.gitRoot),o=f_(e.runnerPlatform),s=Oe(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=Oe(r,["."],t,n);if(i!==null)return i}return e.home?Oe([he(e.home)],o,t,n):null}function p_(e){let t=e.replace(/\\/g,"/"),r=d_.exec(t)?.[1];return r?(0,ko.nativeKeyForRulePath)(r):null}function yc(e){return Gt(e,ko.nativeKeyForRulePath,p_)}function Rc(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function Cc(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 bo=Ve(rt(),1);import{existsSync as m_}from"node:fs";var g_=[".cursor/commands",".claude/commands",".codex/prompts"],h_=et(Object.values(Qe)).commands;function __(e){return ct(Kn(e?lt[e]:void 0,g_),h_)}var S_=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function Ac(e){let t=Kt(e.commandId);if(!t)return null;let n=e.exists??m_,r=`${t}.md`,o=__(e.runnerPlatform),s=Oe(kt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Oe([he(e.home)],o,r,n):null}function E_(e){let t=e.replace(/\\/g,"/"),r=S_.exec(t)?.[1];return r?(0,bo.nativeKeyForCommandPath)(r):null}function kc(e){return Gt(e,bo.nativeKeyForCommandPath,E_)}var Zn=Ve(rt(),1);function xo(e){let t=ai(e);if(t.problem){E(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function bc(e,t){if(M(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function y_(){return!!(U("CURSOR_VERSION")??U("CURSOR_PROJECT_DIR"))}function xc(e,t,n){return e!=="claude"&&e!=="codex"?!1:bc(t,n)?!0:y_()}var R_=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Vt(e,t,n,r){return bc(e,t)?"cursor":An(r)?r:An(n)?n:M(e,"turn_id")?"codex":M(e,"session_id")||R_.has(t.toLowerCase())?"claude":"unknown"}function Qn(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function C_(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 Ic(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function Oc(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Tc(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function Jt(e){return M(e,"session_id")||M(e,"conversation_id")}function Io(e){return M(e,"prompt.id")||M(e,"prompt_id")||M(e,"generation_id")||M(e,"turn_id")}function Oo(e){return M(e,"hook_event_name")||M(e,"event")}function Pc(e,t,n){let r=Jt(e),o=Io(e),s=Oo(e),i=M(e,"source"),a=Vt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var A_=["session_start","session_end","tool_invoked","skill_invoked"];function k_(e){return A_.includes(e)}function wc(e,t){return e&&k_(e)?e:C_(t.toLowerCase())}var b_={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function er(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Nc(e,t=""){let n=M(e,"tool_name")||M(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!er(n)&&(n=`MCP:${n}`):n=b_[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?it(o.skill)||it(o.skill_name):"")||M(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Wa(a);let c=yc(a),l=kc(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var x_=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function vc(e){for(let t of["subagent_type","agent_type"]){let n=M(e,t);if(n&&x_.test(n))return n}return null}function Mc(e){let t=Ue(e,"duration_ms");if(typeof t=="number")return t;let n=Ue(e,"duration");return typeof n=="number"?n:null}var I_="error",O_="interrupted",T_="permission_denied",P_=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Yt(e){return P_.test(e)?e:null}function w_(e){for(let t of["failure_type","error_type"]){let n=Yt(M(e,t));if(n)return n}return null}function Lc(e,t){return Ue(e,"is_interrupt")===!0?O_:t.toLowerCase()==="permissiondenied"?T_:w_(e)??I_}function Hc(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function N_(e,t){return Hc(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function v_(e,t){return Hc(t,n=>(0,Zn.mcpServerNameMatchesToolSegment)(n,e))}function M_(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,Zn.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:v_(o[1],t)??o[1],mcpTool:o[2]}}function L_(e,t){if(/^mcp__/i.test(e))return M_(e.slice(5),t);if(/^MCP:/i.test(e)){let n=e.slice(4);if(!n)return{mcpServer:null,mcpTool:null};let r=n.indexOf(":");if(r>0)return{mcpServer:n.slice(0,r),mcpTool:n.slice(r+1)||null};let o=n.indexOf("__");return o>0?{mcpServer:n.slice(0,o),mcpTool:n.slice(o+2)||null}:{mcpServer:N_(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function H_(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Uc(e,t=[],n=""){let r=e?L_(e,t):{mcpServer:null,mcpTool:null},o=Yt(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!er(e)&&(s=e),s&&(s=H_(s,o)),{mcpServer:o,mcpTool:s}}var $c=3e4,B_="claims",K_=!0,G_=100,W_=new Set(["sessionstart","sessionend","stopfailure"]),z_=["tool_name","tool","command","file_path","url"];function V_(e=Fc()){return To(ye(e),B_)}function jc(e,t){try{let n=$_(e,"utf8").split(`
|
|
27
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function J_(e){let t=[];for(let n of z_){let r=M(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":$t(t.join("\0"))}function Y_(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=W_.has(n);if(!a&&!c)return;let l=e.runnerPlatform.trim()||"unknown";return $t(`${l}|${t}|${n}|${r}|${o}|${i}|${s}`)}function X_(e,t=Date.now()){let n;try{n=F_(e)}catch{return}let r=0;for(let o of n){if(r>=G_)break;r+=1;let s=To(e,o),i=jc(s,t);if(!(!Number.isFinite(i)||i<$c))try{Dc(s)}catch{}}}function q_(e,t,n=Date.now()){let r=To(t,e);try{if(U_(r)){let o=jc(r,n);if(Number.isFinite(o)&&o>=0&&o<$c)return!1;try{Dc(r)}catch{}}}catch{}try{D_(t,{recursive:!0}),j_(r,`${n}
|
|
28
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(Na(o))return!1;let s=o instanceof Error?o.message:String(o);return E(`WARN: event claim failed open: ${s}`),!0}return X_(t,n),!0}function Z_(e,t,n){let r=Jt(e),o=Io(e),s=M(e,"tool_use_id"),i=M(e,"subagent_id")||M(e,"agent_id"),a=Vt(e,t,void 0,n),c=J_(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function Bc(e,t,n,r=Fc(),o=Date.now()){if(!K_)return!0;let s=Y_(Z_(e,t,n));if(!s)return!0;let i=q_(s,V_(r),o);return!i&&U("EV_AI_HOOK_DEBUG")&&E(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{closeSync as Q_,writeSync as eS}from"node:fs";function Kc(e=process.env){let t=e[Mr];if(delete e[Mr],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{eS(n,ni)}catch{}try{Q_(n)}catch{}}}function Po(e=process.env){let t=e[qs];if(t)return{launcherVersion:t,hookSource:e[Zs]??"",fallbackReason:e[Qs],launcherScope:e[ei]}}function Gc(e,t){return(e?Dt(e):void 0)===t}import{realpathSync as pA}from"node:fs";import{homedir as mA}from"node:os";var B=Ve(rt(),1);import{existsSync as tS,readFileSync as nS}from"node:fs";import{homedir as Wc}from"node:os";import{join as rS}from"node:path";var oS="cloud-cache.json",sS=1440*60*1e3,iS=900*1e3;function aS(e=Wc()){return rS(ye(e),oS)}function cS(e){if(!tS(e))return;let t=ge(nS(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 uS(e,t){try{me(e,`${JSON.stringify(t)}
|
|
29
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cloud cache write failed open: ${r}`)}}function lS(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?iS:sS;return n-e.probed_at<r}async function fS(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 dS(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 pS(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 mS(e){let t=await Promise.allSettled([fS(e),dS(e),pS(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function zc(e,t){if(e==="interactive")return null;let n=t?.home??Wc(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=aS(n),i=cS(s);if(lS(i,e,o))return i.result;let a=await mS(r);return uS(s,{context:e,probed_at:o,result:a}),a}var Xc=Ve(rt(),1);import{existsSync as Jc}from"node:fs";import{homedir as Yc}from"node:os";import{join as Xt,resolve as wo,sep as Vc}from"node:path";function tr(e,t,n){if(!Jc(e))return;let r=oe(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function gS(e,t,n){if(!Jc(e))return;let r=oe(e,{}),o=wo(t),s=null;for(let a of Object.keys(r.projects??{})){let c=wo(a);(o===c||o.startsWith(c.endsWith(Vc)?c:c+Vc))&&(s===null||c.length>wo(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 qc(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"?(tr(Xt(r,".claude.json"),{source:"claude_json_user"},o),gS(Xt(r,".claude.json"),t,o)):n==="cursor"&&tr(Xt(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),tr(Xt(t,".mcp.json"),{source:"mcp_json"},o),tr(Xt(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function No(e,t=process.cwd(),n="claude",r=Yc()){return[...qc(e,t,n,r).values()].map(o=>o.declared)}function Zc(e,t,n=process.cwd(),r="claude",o=Yc()){let s=qc(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,Xc.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var hS=["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"],_S=["CURSOR_PROJECT_DIR"],SS=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function ES(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)SS.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Qc(e=process.env){let t=hS.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:ES(e[r]??"")}:{name:r,present:!1}),n=_S.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as YS}from"node:os";import{homedir as eu}from"node:os";import{join as yS}from"node:path";function RS(e=eu()){return yS(e,".claude.json")}function nr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function tu(e=eu()){let n=oe(RS(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=nr(n.emailAddress),o=nr(n.fullName)??nr(n.displayName),s=nr(n.accountUuid),i=r??s;return!i||de(o,r)?null:{git_user_name:null,git_user_email:null,platform_login:i,identity_source:"claude_oauth"}}import{homedir as ou}from"node:os";import{join as nu}from"node:path";var CS="https://api.openai.com/auth";function It(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function su(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function AS(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 su(r)}catch{return null}}function ru(e,t,n){return It(e[n])??It(t?.[n])}function kS(e=process.env,t=ou()){let n=It(e.CODEX_HOME)??nu(t,".codex");return nu(n,"auth.json")}function iu(e=process.env,t=ou()){let n=oe(kS(e,t),{}),r=It(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&It(n.OPENAI_API_KEY))return null;let o=It(n.tokens?.id_token);if(!o)return null;let s=AS(o);if(!s)return null;let i=su(s[CS]),a=ru(s,i,"name"),c=ru(s,i,"email");return!c||de(a,c)?null:{git_user_name:null,git_user_email:null,platform_login:c,identity_source:"codex_oauth"}}import{homedir as sr}from"node:os";import{join as Be}from"node:path";import{join as bS}from"node:path";var xS="cursor-ide-identity.json",IS=840*60*1e3;function cu(e){return bS(ye(e),xS)}function au(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function uu(e){let t=oe(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:au(t.email),auth_id:au(t.auth_id)}}function lu(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<IS}function fu(e,t){try{me(e,`${JSON.stringify(t)}
|
|
30
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as OS}from"node:child_process";import{existsSync as TS}from"node:fs";import{createRequire as PS}from"node:module";import{pathToFileURL as wS}from"node:url";var pu=PS(import.meta.url),rr=`
|
|
30
31
|
SELECT key, value
|
|
31
32
|
FROM ItemTable
|
|
32
33
|
WHERE key LIKE 'cursorAuth/%'
|
|
33
34
|
AND key NOT LIKE '%Token%'
|
|
34
35
|
AND key NOT LIKE '%token%'
|
|
35
36
|
ORDER BY key
|
|
36
|
-
`.trim(),
|
|
37
|
-
`)){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&&!
|
|
38
|
-
`);return q(n)}function
|
|
39
|
-
`)){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 NS(e,t=te){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return wS(n)}function vS(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 Ke(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 MS(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ke(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=Ke(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ke(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let l=j(e.BUILD_REQUESTEDFOREMAIL),u=Ke(j(e.BUILD_REQUESTEDFOR),l,"azure_devops",l??j(e.BUILD_REQUESTEDFORID));if(u)return u;let d=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ke(j(e.BUILDKITE_BUILD_CREATOR),d,"buildkite",d);if(f)return f;let p=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ke(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),p,"jenkins",p??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),A=Ke(S,null,"circleci",S);if(A)return A;let b=j(e.CODEBUILD_INITIATOR),I=Ke(b,null,"codebuild",b);if(I)return I;let T=j(e.DRONE_COMMIT_AUTHOR_EMAIL),v=j(e.DRONE_COMMIT_AUTHOR),O=Ke(v??j(e.DRONE_COMMIT_AUTHOR_NAME),T,"drone",T??v);if(O)return O;if(fu(e.CLAUDE_CODE_REMOTE)||fu(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!de(null,K)?K:null,identity_source:"cloud"}}return null}function No(e){return!!((e.git_user_name??e.git_user_email)&&!de(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 fu(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function LS(e,t,n){return e==="claude"?Vc(t):e==="cursor"?uu(t,n):e==="codex"?Zc(n,t):null}async function vo(e,t=te,n=process.env,r={}){let o=await NS(e,t),s=vS(n),i=No(o)?o:s&&No(s)?s:null,a=LS(r.runnerPlatform,r.home??TS(),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=MS(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:No(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 Mo(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??te,s=e.env??process.env,i=await vo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=PS(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?Zr(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let p=n;return{operator:i,commit:()=>{p&&Bi(p,a,Pn())}}}function Lo(e){return e?!Zr(e)?.operator_identity_hash:!0}function du(e){return!0}import{existsSync as XR,readFileSync as qR}from"node:fs";import{homedir as Df}from"node:os";import{join as Nt,resolve as ZR}from"node:path";import{basename as BR,join as wt}from"node:path";import{dirname as Au,resolve as sr}from"node:path";import{existsSync as HS}from"node:fs";import{homedir as gu}from"node:os";import{relative as hu,resolve as Te,sep as ot}from"node:path";var US=["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"],DS=["prompt","tool_input","tool_response","last_assistant_message","command"],FS=new Set;function $S(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return FS}}function _u(e){return Su(e)==="allowlist"}function Su(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 jS(e){let t={};for(let n of US){let r=He(e,n);r!==void 0&&(t[n]=r)}return t}function rr(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Te(e),r=Te(t),o=hu(r,n);return!o||o==="."?".":o.startsWith(`..${ot}`)||o===".."||Te(r,o)!==n?null:o.split(ot).join("/")}function Eu(e,t){let n=hu(Te(t),Te(e)).split(ot).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function yu(e){return typeof e!="string"||e.length===0?null:Te(e).split(ot).join("/")}function BS(){let e=F("CURSOR_PROJECT_DIR");if(!e)return null;let t=Te(e);return HS(t)?t.split(ot).join("/"):null}function Uo(e,t){return rr(e,t)!==null}function KS(e,t){let n=Te(t??gu(),".cursor").split(ot).join("/");return Uo(e,n)}function GS(e,t,n){return t!==null&&Uo(e,t)?!0:t!==null&&KS(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&Uo(e,n.gitRoot)?!0:t===null}function Ru(e,t){let n=yu(e.cwd);if(n!==null)return n;let r=Te(process.cwd()).split(ot).join("/"),o=BS();return GS(r,o,t)?r:o??r}function $o(e,t={}){return Ru(e,t)}function jo(e,t=gu()){let n=Te(t).split(ot).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function pu(e,t,n){let r=yu(n.launchCwd)??Ru(t,n);e.cwd=jo(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?rr(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var Cu="\u2026[truncated]\u2026",Do=Buffer.byteLength(Cu,"utf8"),WS=8;function qt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function mu(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function zS(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 VS(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=Do)return mu(e,t);let r=t-Do,o=Math.ceil(r/2),s=Math.floor(r/2);return`${mu(e,o)}${Cu}${zS(e,s)}`}function Fo(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)=>{Fo(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||Fo(o,[...t,r],n)}function JS(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 YS=256;function XS(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 qS(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=qt(e);if(s<=t)return;let i=[];Fo(e,[],i),i.sort((u,d)=>d.bytes-u.bytes);let a=i.filter(u=>u.bytes>n);if(a.length===0)return;let c=XS(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&&JS(e,u.path,VS(u.value,r))}}function ZS(e,t){let n=Math.max(0,t-YS),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:qt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(qt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function Ho(e,t){let n=qt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,qS(r,t,Do+WS),qt(r)>t&&ZS(r,t),r}function QS(e,t,n){let r=$S(n.runnerEvent);for(let o of DS){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function or(e,t,n={}){let r=Su(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,pu(s,e,n),Ho(s,jr)}let o=jS(e);return pu(o,e,n),r==="content"?(QS(o,e,n),Ho(o,jr)):Ho(o,ci)}function eE(e){return typeof e=="string"&&e.length>0}function Bo(e){let t=sr(e.home),n=sr(e.launchCwd),r=e.gitRoot?sr(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&eE(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&&rr(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=Au(r);for(;;){let u=sr(l);if(u===t)break;let d=Au(u);if(d===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=Eu(u,n);break}l=d}}return{anchors:s,parentRel:a}}import{existsSync as bu,readdirSync as tE,realpathSync as nE}from"node:fs";import{basename as rE,dirname as oE,relative as sE,resolve as iE,sep as aE}from"node:path";var Ko=400,ir=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Ye}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=iE(t).split(aE).join("/");return jo(r,this.home)}let n=sE(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${q(oE(t))}/${rE(t)}`:n}claimFile(t){try{let n=nE(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(!bu(t))return[];try{return tE(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(bu(t))return oe(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 as,readFileSync as Py,statSync as wy}from"node:fs";import{basename as Fl,join as pt,relative as cs}from"node:path";var Ll=Ve(Ml());var Oy=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Hl=Oy.map(e=>Ll.default.matcher(e,{dot:!0}));function Ty(e){return e===""?!1:Hl.some(t=>t(`${e}/`))}function Ul(e,t){if(t==="")return!1;if(e==="")return Ty(t);let n=e.replace(/\/+$/,"");return Hl.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var us=100*1024,Ny=4;function vy(e){return e.length<=us?e:`${e.slice(0,us-1)}\u2026`}function My(e){try{let t=Py(e),n=t.toString("utf8");return{hash:q(t),length:t.length,text:vy(n)}}catch{return null}}var Dl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function Ly(e){return e in Dl?Dl[e]:"UNSPECIFIED"}function Tt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=My(t.absolutePath);if(!n)return!1;let r=t.name??Fl(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=Ly(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function Hy(e,t,n){let r=cs(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Fl(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function mt(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;ls(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function ls(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>Ny))for(let d of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(d.isDirectory()&&Ul(n.replace(/\\/g,"/"),cs(n,pt(r,d.name)).replace(/\\/g,"/"))||d.isDirectory()&&u?.includes(pt(r,d.name)))continue;if(c){if(!d.isDirectory())continue;let g=pt(r,d.name,c);if(as(g)){let S=cs(n,pt(r,d.name)).replace(/\\/g,"/");Tt(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||d.name});continue}ls(e,{walkRoot:n,currentDir:pt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(d.isDirectory()){ls(e,{walkRoot:n,currentDir:pt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(!d.isFile()||!l)continue;let f=d.name.toLowerCase();if(!l.some(g=>f.endsWith(g)))continue;let p=pt(r,d.name);Tt(e,{absolutePath:p,kind:s,origin:i,enabled:a,name:Hy(n,p,!0)})}}function $l(e){for(let t of e)if(as(t))try{if(wy(t).size>0)return t}catch{continue}return e.find(t=>as(t))}import{existsSync as dR,readFileSync as pR}from"node:fs";var pr=Ve(rt(),1);var Uy="<omitted>",Dy=["package_name","package_spec","package_version","package_version_source"],jl=100,Bl=120,mr=[{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"}],Kl=new Set(mr.map(e=>e.attr)),Fy=["enabled","disabled"],$y=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],jy=new Set(["type","command","url","args","env","envVars","headers",...Fy,...$y,...mr.map(e=>e.raw)]),By=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",...Dy,...Kl,...[...Kl].map(e=>`${e}_truncated`)]);function Gl(e,t){for(let n of t)jy.has(n)||By.has(n)||(e[n]=Uy)}var Ky=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,Gy=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,Wy=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,zy=/^bearer(?:\s+|$)/i;function gr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Wl(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function fs(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=gr(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function gt(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function Vy(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,pr.launchContainsCredentials)({kind:"url",url:e})||(0,pr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=on([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,pr.launchContainsCredentials)({kind:"url",url:r}):!0)}function zl(e,t,n){Vy(t,n)&&(e.launch_had_credentials=!0)}function Jy(e){return Wy.test(e)||zy.test(e)?"<redacted>":e.includes("://")?gt(e):e}function Vl(e){if(/^https?:\/\//i.test(e))return gt(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Vl(e.slice(t+1))}`:Jy(e)}function Yy(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return Ky.test(t)||Gy.test(t)}function on(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(Yy(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Vl(r))}return t}function Xy(e){let t=Wl(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Bl?r.slice(0,Bl):r))].sort();if(n.length!==0)return n.length>jl?{names:n.slice(0,jl),truncated:!0}:{names:n,truncated:!1}}function qy(e){let t=gr(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 Jl(e,t){let n=new Set;for(let{raw:r,attr:o}of mr){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=Xy(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Yl(e,t){let n=gr(e),r={transport:t};if(!n)return r;Gl(r,Object.keys(n));let o=typeof n.command=="string"?n.command:void 0,s=typeof n.url=="string"?n.url:void 0,i=typeof n.serverUrl=="string"?n.serverUrl:void 0,a=o??s??i,c=Wl(n.args);a&&(r.command_or_url=gt(a));let l=on(c);l.length>0&&(r.args=l),zl(r,a,c);let u=qy(n.env_http_headers),d=[...new Set([...fs(n.env),...fs(n.envVars),...fs(n.env_vars),...u.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();d.length>0&&(r.env_var_names=d),u.headers.length>0&&(r.env_http_header_names=[...new Set(u.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let p=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;p&&(r.bearer_token_env_var=p);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),Jl(r,n),r}function Xl(e){let t=gr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function ms(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return q(JSON.stringify({name:e,attributes:r,enabled:n}))}function Pt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function rn(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 ps(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function ds(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=Pt(n[1]);return r.length>0?r:void 0}function Zy(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],Pt(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(`
|
|
40
|
-
${e}`);return s?.[1]&&r(s[1]),n}function
|
|
41
|
-
`)){let s=
|
|
42
|
-
`)){let
|
|
43
|
-
${e}`);if(f?.[1])for(let
|
|
44
|
-
`)){let
|
|
45
|
-
`);return iR("sha512").update(t).digest("hex").slice(0,16)}function uR(e){let t=process.platform==="win32"?sn(F("LOCALAPPDATA")??e,"npm-cache"):sn(e,".npm"),n=F("npm_config_cache")??F("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function rf(e){return typeof e=="string"&&e.length>0&&e.length<=Ne.PACKAGE_FIELD_MAX?e:null}function lR(e,t,n){let r=cR(e);for(let o of uR(n)){let s=sn(o,"_npx",r),i=oe(sn(s,"node_modules",...t.split("/"),"package.json"),{}),a=rf(i.version);if(a!==null)return a;let c=oe(sn(s,"package-lock.json"),{}),l=rf(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function fR(e){return e.length<=Ne.PACKAGE_FIELD_MAX?e:`${e.slice(0,Ne.PACKAGE_FIELD_MAX-1)}\u2026`}function gs(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:fR(o),...aR(o,lR(r,s,n))}}function of(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=hr(e.trim());return n===void 0?null:gs(n,r,t)}function _r(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return gs(typeof n.command=="string"?n.command:null,r,t)}function sf(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:gs(Pt(n[1]??""),rn(e,"args"),t)}function mR(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 af(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=mR(a),l=Yl(a,c);Object.assign(l,_r(a,e.home)??{});let u=Xl(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:ms(i,l,u),origin:n,enabled:u,attributes:l})}}function cf(e,t,n){if(!dR(t)||!e.claimFile(t))return;let r;try{r=pR(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),l=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),u=l===-1?c:c.slice(0,l),d="unknown";/^\s*url\s*=/m.test(u)?d="http":/^\s*command\s*=/m.test(u)&&(d="stdio");let f=Zl(u,d);Object.assign(f,sf(u,e.home)??{});let p=ql(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:ms(a,f,p),origin:n,enabled:p,attributes:f})}}import{existsSync as _R,readdirSync as SR}from"node:fs";import{join as ue}from"node:path";function gR(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 hR(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 hs(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 hR(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",d=gR({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:"",p=q(u),g=f?`${s}:${f}:${d}:${p}`:`${s}:${d}:${p}`,S=`${s}|${f}|${d}|${u}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:q(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:d,action_hash:p,...d!=="prompt"&&u.trim()?{command:tf(u,e.home)}:{}}})}}}function _s(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||hs(e,t,r.hooks,n)}var uf=50;function an(e,t,n,r){if(!_R(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(uf,()=>{mt(e,{dir:ue(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),mt(e,{dir:ue(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),mt(e,{dir:ue(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});_s(e,ue(t,"hooks","hooks.json"),n),_s(e,ue(t,"hooks.json"),n);let i=e.components.length-o,a=s>=uf;return{componentCount:i,expandTruncated:a}}function cn(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 lf(e){let t=ue(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ue(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let l=Array.isArray(c)?c:[c],u=l[0]??{},d=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",p=typeof u.version=="string"?u.version:"",g=typeof u.scope=="string"?u.scope:"user",S=`plugin:${a}`,A=0,b=!1;for(let I of l)if(typeof I.installPath=="string"&&I.installPath.length>0){let T=an(e,I.installPath,S,d);A+=T.componentCount,b=b||T.expandTruncated}cn(e,{pluginKey:a,rowPath:i,enabled:d,scope:g,version:p||void 0,marketplace:f||void 0,componentCount:A,expandTruncated:b,contentHash:q(`${a}|${p}|${g}|${d}|${A}`)})}}function ER(e){let t=e,n="";try{let r=SR(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ue(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ue(e,s),n=s)}}catch{}return{installPath:t,version:n}}var yR=/^\d+$/;function RR(e){let t=e.filter(n=>!yR.test(n.pluginId));return t.length>0?t:e}function ff(e){let t=[{base:ue(e.home,".cursor/plugins/local"),scope:"local"},{base:ue(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=ue(n,o.name),l=`plugin:${a}`,{componentCount:u,expandTruncated:d}=an(e,c,l,!0);cn(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:u,expandTruncated:d,contentHash:q(`${a}|local|${u}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ue(n,s))){if(!a.isDirectory())continue;let c=ue(n,s,a.name),{installPath:l,version:u}=ER(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of RR(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:d}=an(e,a.installPath,l,!0);cn(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:u,expandTruncated:d,contentHash:q(`${c}|${a.version}|${u}`)})}}}import{existsSync as bR}from"node:fs";var CR=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,Ss="<path>",AR=new RegExp(`${Ss}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function Sr(e){let t=e.replace(CR,Ss).replace(AR,Ss);return t.length>200?`${t.slice(0,200)}...`:t}var df=200,pf=200,Es=16*1024,mf=6,xR=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),kR=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),IR=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),OR=new Set(["permissions"]),TR={claude:xR,cursor_sandbox:kR,cursor_permissions:IR,cursor_cli:OR},PR=new Set(["allow","deny","ask"]);function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Er(e){return e.replace(/\\/g,"/")}function ys(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>ys(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${ys(t[r])}`).join(",")}}`}function wR(e){return q(`${ys(e)}|settings1`)}function Ef(e){let t=Er(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 yf(e,t){if(e!=="claude")return{};let n=Er(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 Rf(e){let t=Er(e).replace(/\/+$/,"");return t.length<=1?"":t}function Cf(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function NR(e,t){let n=Er(e);if(n==="~"||n.startsWith("~/"))return n;let r=Rf(t);if(!r)return n;let o=n.slice(0,r.length);if(!(Cf(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var gf=new Map;function vR(e){let t=gf.get(e);if(t!==void 0)return t;let n=Rf(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,Cf(e)?"gi":"g")}return gf.set(e,r),r}function MR(e,t){let n=vR(t);return n?e.replace(n,"~"):e}function hf(e,t){return e.length<=pf?e:(t.truncated=!0,e.slice(0,pf))}function Af(e,t){return e.length<=df?e:(t.truncated=!0,e.slice(0,df))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return hf(NR(e,n),r);let o=t==="rule"?Sr(e):e;return hf(MR(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=Af(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(st(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function _f(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";PR.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function LR(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Af(s,n);r[o]=a.map(c=>{if(!st(c))return ne(c,"plain",t,n);let l={};for(let[u,d]of Object.entries(c)){let p=ne(d,u==="path"?"path":"plain",t,n);p!==void 0&&(l[u]=p)}return l});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function HR(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function UR(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=HR(s,t,n):o==="credentials"?i=LR(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function DR(e,t,n,r,o){return n==="claude"?e==="permissions"?_f(t,r,o):e==="sandbox"?UR(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?_f(t,r,o):ne(t,"plain",r,o)}function un(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Rs(e,t){return e?`${e}.${t}`:t}function Cs(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>=mf?(e.splice(o,1),r.add(n)):Cs(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>=mf?(delete e[o],r.add(Rs(n,o))):Cs(s,t+1,Rs(n,o),r))}function bf(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:un(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))bf(o,Rs(t,r),n)}function FR(e,t,n){let r=un(e);if(r<=Es)return;t.truncated=!0;let o=[];for(bf(e,"",o);r>Es;){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=un(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;un(e)>Es;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=un(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function $R(e,t,n){let r=TR[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=DR(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return Cs(s,1,"",a),a.size>0&&(o.truncated=!0),FR(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function Sf(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:wR(t.attributes),attributes:t.attributes};e.push(n)}function As(e,t,n,r){if(!e.claimFile(t)||!bR(t))return;let o=yi(t);if(!o.ok||!st(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),Sf(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(st(i)&&hs(e,t,i,n),!r.profile)return;let a=$R(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),Sf(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as jR}from"node:fs";import{join as ve}from"node:path";var xf=".claude/skills/synced",kf=".claude/plugins/synced";function If(e){return[ve(e,xf),ve(e,kf)]}function yr(e){return typeof e=="string"&&e.length>0?e:void 0}function Of(e){let t=ve(e.home,xf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=ve(t,n.name),o=e.readJson(ve(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=ve(r,i.name,"SKILL.md");if(!i.isDirectory()||!jR(a))continue;let c=s.get(i.name),l=yr(c?.source),u=yr(c?.creatorType);Tt(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Tf(e){let t=ve(e.home,kf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=ve(t,n.name),o=e.readJson(ve(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=yr(a?.marketplaceName),l=yr(a?.version),u=c?`${i.name}@${c}`:i.name,d=ve(r,i.name),{componentCount:f,expandTruncated:p}=an(e,d,`plugin:${u}`,!0);cn(e,{pluginKey:u,rowPath:e.componentPath(d),enabled:!0,scope:"synced",version:l,marketplace:c,componentCount:f,expandTruncated:p,contentHash:q(`${u}|${l??""}|synced|${f}`)})}}}function KR(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)mt(e,{dir:wt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:If(e.home)});for(let i of n.dirs)mt(e,{dir:wt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=$l(i.map(c=>wt(r,c)));a&&Tt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:BR(a)})}for(let i of Ta(n))As(e,wt(r,i),o,{kind:"SETTINGS",profile:Ef(i)});for(let i of n.mcpJson??[])af(e,wt(r,i),o);for(let i of n.mcpToml??[])cf(e,wt(r,i),o);if(s){if(n.managed){for(let i of Tn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=yf(n.managed,i);As(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(lf(e),Tf(e),Of(e)):n.plugins==="cursor"&&ff(e)}}function Pf(e,t){try{let n=new ir(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)KR(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 bs(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=Pf(t,{layouts:Object.values(Ct),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Ye,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Qe),l=Bo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>wa(c,u)});i=l.parentRel;for(let u of l.anchors){let d=wo(u.dir);if(o!==void 0&&!o(u.scope,d))continue;let f=Pf(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:Ko,scopeRef:d});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function xs(e,t,n={}){let r=n.truncated===!0,o=Xt(e),s=new Set(e.map(u=>he(u.path,u.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let u of e){let d=he(u.path,u.name);c[d]!==u.content_hash&&a.push(u)}let l=[];if(!r){for(let u of Object.keys(c))if(!s.has(u)){let d=lu(u);d&&l.push(d)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:l,unchanged:a.length===0&&l.length===0}}var Nf=2*1024*1024,GR=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function ks(e,t,n){let r=new Set(t.map(s=>he(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(he(s.path,s.name))||o.push(s));return o}function Is(e,t,n){let r=new Set(e);for(let s of t)r.add(s);let o=new Set(n.map(s=>s.content_hash));return[...r].filter(s=>o.has(s))}function wf(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function vf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function Os(e,t=Nf){let n=[],r=[];for(let u of e)GR.has(u.kind)?n.push(u):r.push(u);r.sort((u,d)=>(u.text?.length??0)-(d.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,l=[];for(let u of o){let d=s.length>0?1:0,f=wf(u)+d;if(i+f<=t){s.push(u),i+=f,u.text!==void 0&&l.push(u.content_hash);continue}if(u.text!==void 0){let p=vf(u),g=wf(p)+d;if(i+g<=t){s.push(p),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:l}}function Ts(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:vf(n))}var WR=["user","cwd","repo","parent"];function Ps(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let v of WR){let O=t.scopes[v];if(!O)continue;let K=n(v,O.scopeRef),U=K.components,k=xs(O.components,U,{forceFull:U===void 0,truncated:O.truncated}),w=new Set(K.textHashes),L=ks(O.components,k.upserts,w),m=Ts([...k.upserts,...L],w);s.push({scope:v,walk:O,delta:k,outgoing:m,outgoingKeys:new Set(m.map(x=>he(x.path,x.name))),deliveredTextHashes:w,cachedComponents:U})}let i=s.flatMap(v=>v.outgoing),a=Os(i,o),c=new Set(a.components.map(v=>he(v.path,v.name))),l=[],u=[],d=[],f=[],p=[],g=[],S=[];for(let v of s){let{scope:O,walk:K,delta:U}=v;g.push(...K.components),l.push(O);let k=a.components.filter(x=>v.outgoingKeys.has(he(x.path,x.name))),w=[...v.outgoingKeys].some(x=>!c.has(x)),L=U.truncated||w;L?d.push(O):U.full&&u.push(O),f.push(...k),!U.full&&!L&&p.push(...U.removed);let m=U.full?{}:{...v.cachedComponents??{}};if(!L)for(let x of U.removed)delete m[he(x.path,x.name)];for(let x of k)m[he(x.path,x.name)]=x.content_hash;S.push({scope:O,scopeRef:K.scopeRef,components:m,textHashes:Is(v.deliveredTextHashes,k.filter(x=>x.text!==void 0).map(x=>x.content_hash),K.components),collectedAtMs:r,included:k.length>0||U.removed.length>0&&!L||U.full})}let A={user_spec_hash:Xt(g),user_spec_count:g.length,user_spec_truncated:d.length>0};l.length>0&&(A.user_spec_scopes=l,A.user_spec_full_scopes=u,A.user_spec_truncated_scopes=d,A.user_spec_cwd_in_git_repo=t.cwdInGitRepo),u.length>0&&u.length===l.length&&(A.user_spec_full=!0),f.length>0&&(A.user_spec=f),p.length>0&&(A.user_spec_removed=p),a.textDeferredCount>0&&(A.user_spec_text_deferred=a.textDeferredCount);let b=t.scopes.cwd;b&&(A.user_spec_cwd_scope_ref=b.scopeRef);let I=t.scopes.repo;I&&(A.user_spec_repo_scope_ref=I.scopeRef);let T=t.scopes.parent;return T&&(A.user_spec_parent_scope_ref=T.scopeRef,t.parentRel&&(A.user_spec_parent_rel=t.parentRel)),{fields:A,scopes:S}}var Rr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function ws(e){return e==="cwd"||e==="repo"||e==="parent"}function ln(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ns(e){return!ln(e)||!ln(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 Mf(e){return zR(e)}function Lf(e){return VR(e)}function Hf(e){return JR(e)}function zR(e){if(!ln(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function VR(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Uf(e,t){if(!ln(e))return;let n=e[t];return Ns(n)?n:void 0}function JR(e){if(!ln(e))return{};let t={};for(let[n,r]of Object.entries(e))Ns(r)&&(t[n]=r);return t}function vs(e,t=20){let n=[];for(let[r,o]of Object.entries(e))Ns(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 QR=["allow","deny","ask"];function Ar(e){let t=oe(e,{}),n=[];for(let r of QR)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:Sr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function eC(e){let{serverManaged:t,fileBased:n}=Kr(process.platform,e),r=Ar(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Ar(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function tC(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 nC=10,rC="self-config-cache.json",Ff=4;function vt(){return F("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function oC(){return F("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var sC={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function iC(e,t=te){let n=sC[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(`
|
|
46
|
-
`)[0]??"").trim();return a||r(o+1)};return r(0)}function
|
|
47
|
-
`);return q(n)}function
|
|
48
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: self-config cache write failed open: ${r}`)}}function
|
|
49
|
-
${n}`}function
|
|
50
|
-
`);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
|
|
51
|
-
`,d=F("EV_AI_HOOK_DEBUG");d==="full"?E(`DEBUG envelope=${l}`):d==="1"&&E(`DEBUG summary=${MC(c,Us(u))}`);let f=process.argv.includes(kr),p=F("EV_AI_HOOK_SYNC")==="1";return Xn(n.runnerEvent,n.runnerPlatform)||f||p?DC(e,u,o):(await FC(e,u,o),!1)}import{createReadStream as $C}from"node:fs";import{stat as jC}from"node:fs/promises";import{basename as BC,resolve as KC}from"node:path";import{createInterface as GC}from"node:readline";var WC=1024*1024;function zC(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&BC(t).endsWith(".jsonl")}async function sd(e){if(!e||!zC(e))return null;try{let t=KC(e),n=await jC(t);if(!n.isFile())return null;let r=Math.max(0,n.size-WC),o=[],s=GC({input:$C(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 Or(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent}}function mn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Fs(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent}}async function cd(e){let t=Date.now();await oA(e);let{gitRoot:n}=e.manifest;await js(e,n);let r=Fs(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:or(e.hookInput,e.manifest.manifest,r),envelopeFields:Or(e),launchCwd:$o(e.hookInput,r),home:JC()}}function id(e){try{return ge(VC(e))}catch{return null}}function ud(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function ad(e,t){let n=e.replaceAll("\\","/");if(!ud(n))return null;let r=ge(e),o=ge(t),s=id(e)??r,i=id(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function ld(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=ad(e,t)??(ud(r)?null:r),i=ad(e,n);return{repositorySourcePath:s,userSourcePath:i}}function Ds(e,t,n,r,o){return fd(e,ld(n,t.gitRoot,t.home),r,o)}function fd(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?YC({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 YC(e){try{let t=e.inRepository?ZC(e.platformAgentId,e.sourcePath):(0,B.installationRootExternalKey)(e.installationId,(0,B.userConfigRootFromPath)(e.sourcePath));return t?(0,B.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function dd(e){let t=e.policyFindings;return t===void 0||t.length===0?{}:{policy_findings:t,...e.policyJudgeSpawnMs!==void 0?{policy_judge_spawn_ms:e.policyJudgeSpawnMs}:{}}}function $s(e,t,n){return Lt("tool_invoked",{...n,...dd(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Mt,e.manifest.collectorUrl,t.buildStartedAtMs,mn(e,t.home))}function XC(e){return yc(e.runnerEvent,e.runnerPlatform)?[]:Fa(e.hookInput)}function qC(e,t){return $s(e,t,{})}var pd=new Set([...Object.values(lt),".github"]);function ZC(e,t){let n=e.indexOf(":");if(n<=0)return null;let r=e.slice(0,n),o=t.replaceAll("\\","/").split("/").filter(Boolean),s=o.findIndex(i=>pd.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var md=".codex/config.toml",QC=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",md]]);function eA(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?QC.get(c.source):o==="codex"?md:void 0,u=c?.sourcePath??l;if((c?.scope==="user"||l!==void 0)&&u)try{let S=(0,B.userConfigRootFromPath)(u);return(0,B.buildComponentReference)({installationRootExternalKey:(0,B.installationRootExternalKey)(r,S),installableKind:B.ComponentKind.INTERFACE,sourcePath:u,nativeKey:c?.name??t})}catch{return}if(n===null)return;let f=n.indexOf(":");if(f<=0||f===n.length-1)return;let p=n.slice(f+1),g=p.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!pd.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:p,nativeKey:t})}catch{return}}function tA(...e){for(let t of e)if(t)return t;return null}function St(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return E(`WARN: ${n} failed open: ${r}`),t}function nA(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 rA(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var _t=new Set,pn=null;async function oA(e){if(vt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(_t.has(t))return;if(!Lo(n)){_t.add(t);return}let r=$t({sessionId:e.sessionId,hostname:Nn()});if(du(r)){if(pn){await pn;return}pn=(async()=>{if(_t.has(t)||!Lo(n)){_t.add(t);return}if(!Ki(n)){_t.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await gd(e,r,Jn(i),Mo({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:rA(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Lt("session_start",u,Or(e),Mt,e.manifest.collectorUrl,s,mn(e)),o&&(c.commit(),_t.add(t))}finally{Gi(n)}})().finally(()=>{pn=null}),await pn}}async function js(e,t,n){try{e.platformAgentId=await lc(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);E(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function gd(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,xi(),Dc(t),Ii(),r]),l=St(o,null,"gitSnapshot"),u=St(s,"","detectVirt"),d=St(i,null,"probeCloud"),f=St(a,{},"hostEnv"),p=St(c,{commit:()=>{}},"resolveOperatorForSend");return await js(e,e.manifest.gitRoot,l),{operatorResolved:p,fields:{identity:{host:Nn(),context:t,virt:u||null,cloud:d,git:l},host_env:f,env_vars:Wc()}}}async function sA(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=$t({sessionId:e.sessionId,hostname:Nn()}),o=String(e.runnerPlatform),s=Fs(e),i=$o(e.hookInput,s),a=Jn(n),c=qf().catch(()=>({})),l=vt()?Promise.resolve({commit:()=>{}}):Mo({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=gd(e,r,a,l),[d,f]=await Promise.allSettled([Oo(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>$f(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:p,fields:g}=await u,S=St(d,[],"mcpDeclared"),A=St(f,nA(o),"selfConfig"),b=A.config,I=M(e.hookInput,"model");I&&(b.model=I);let T={...g,mcp:{declared:S},self_config:b,run_meta:{trigger:e.hookSource||"startup"},hook_input:or(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},v=await c;await Lt("session_start",T,{...Or(e),...v},Mt,e.manifest.collectorUrl,t,mn(e))&&(A.commit(),p.commit(),_t.add(e.manifest.installationId))}async function iA(e){let t=Date.now(),[,n]=await Promise.all([js(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?sd(M(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=tA(M(e.hookInput,"status"),M(e.hookInput,"stop_reason"),M(e.hookInput,"reason"),Vt(M(e.hookInput,"error")),r==="stop"?He(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=or(e.hookInput,e.manifest.manifest,Fs(e));n&&(s.model=n),r!=="stopfailure"&&!_u(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Lt("session_end",{status:o,...n?{model:n}:{},hook_input:s},Or(e),Mt,e.manifest.collectorUrl,t,mn(e))}async function aA(e){let t=XC(e),n=mc(e.hookInput),r=Ec(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await cd(e);await Promise.all([o?qC(e,s):void 0,t.length===0?void 0:cA(e,s,t),n.length===0?void 0:uA(e,s,n)])}function hd(e,t,n,r){let o=r??Da({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=Ds(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&fo(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??gc({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=Ds(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 cA(e,t,n){let r=jn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=hd(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 uA(e,t,n){return Promise.all(n.map(r=>{let o=fc({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=Ds(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??pc(r);return $s(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var lA=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function fA(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=mo(e.hookInput);if(r===null)return n.skillName===null?{}:hd(e,t,n.skillName,null);let o=ld(r,t.gitRoot,t.home);for(let s of lA){let i=fd(e,o,s.kind,s.nativeKeyFn);if(i.nativeKey!==null)return{...i.componentReference===void 0?{}:{componentReference:i.componentReference},...s.kind===B.ComponentKind.RULE?{ruleName:i.nativeKey}:{},...s.kind===B.ComponentKind.COMMAND?{commandName:i.nativeKey}:{}}}return{}}var dA=/mcp/i;function pA(e,t,n,r){let o=dA.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?of(t,n):_r(r.declaredConfig,n);return s===null?{}:Object.fromEntries(Object.entries(s).filter(i=>typeof i[1]=="string").map(([i,a])=>[`mcp_${i}`,a]))}async function mA(e){let t=await cd(e),n=bc(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=po(e.hookInput),i=nf(s,t.home),a=kc(e.hookInput),c=Rc(e.runnerEvent),l=c===!1?Ic(e.hookInput,e.runnerEvent):null,u=Vt(M(e.hookInput,"mcp_server_name")),d=u!==null||r!==null&&qn(r)?await Oo(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:p}=Tc(r,d.map(K=>K.name),u??""),g=eA(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),d,u),S=g===void 0?fA(e,t,n):{},A=f===null?null:Gc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),b=pA(e,s,t.home,{hasMcpIdentity:!!f||!!p,declaredConfig:A}),I=g??S.componentReference,T=S.ruleName??n.ruleName,v=S.commandName??n.commandName,O=xc(e.hookInput);await Lt("tool_invoked",{tool_name:r,skill_name:o,...T?{rule_name:T}:{},...v?{command_name:v}:{},success:c,duration_ms:a,...i?{executable:i}:{},...l?{failure_reason:l}:{},...f?{mcp_server:f}:{},...p?{mcp_tool:p}:{},...b,...I?{component_reference:I}:{},...O?{subagent_type:O}:{},...dd(e),hook_input:t.hookInput},t.envelopeFields,Mt,e.manifest.collectorUrl,t.buildStartedAtMs,mn(e,t.home))}async function _d(e){switch(e.internalEvent){case"session_start":await sA(e);return;case"session_end":await iA(e);return;case"skill_invoked":await aA(e);return;case"tool_invoked":await mA(e);return;default:return}}import{mkdirSync as gA,readdirSync as hA,readFileSync as _A,statSync as Sd,unlinkSync as SA,writeFileSync as EA}from"node:fs";import{homedir as Tr}from"node:os";import{join as Bs}from"node:path";var yA="turns",Ed=1440*60*1e3,RA=100,CA=new Set(["stop","stopfailure","sessionend"]);function Ks(e=Tr()){return Bs(Ue(e),yA)}function yd(e,t){return Bs(e,Dt(t))}function AA(e,t=Date.now()){let n;try{n=hA(e)}catch{return}let r=0;for(let o of n){if(r>=RA)return;r+=1;try{let s=Bs(e,o);t-Sd(s).mtimeMs>Ed&&SA(s)}catch{}}}function bA(e,t,n=Tr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Ks(n);gA(s,{recursive:!0}),EA(yd(s,r),o,"utf8")}catch{}}function xA(e,t=Tr()){let n=e.trim();if(!n)return"";try{let r=yd(Ks(t),n);return Date.now()-Sd(r).mtimeMs>Ed?"":_A(r,"utf8").trim()}catch{return""}}function Rd(e,t,n,r=Tr()){let o=t.trim(),s=CA.has(n.trim().toLowerCase());return s&&AA(Ks(r)),o?(bA(e,o,r),o):s?xA(e,r):""}async function Cd(e,t,n,r){let o=t??await wn(kn),s=me(o,{}),i=await Yi(process.cwd(),{sessionId:zt(s)});if(!i)return;r&&(i.collectorUrl=r);let a=Cc(s,i.manifest.platform,n),c=Ac(e,a.runnerEvent);if(!c){E(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:Rd(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await _d(l)}function kA(e,t=!1){if(F("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Wt(r,o,void 0,n.runner);return Xn(o,s)?!0:t}function Ad(e,t){let n=Mr(e),r=me(t,{}),o=n.event??bo(r);return Ai()||Sc(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}async function bd(e=process.argv.slice(2)){if(Lc(),F("EV_AI_HOOK_JUDGE")==="1"){try{await wn(kn)}catch{}return Wr(),0}if(e[0]===dn){try{await Ir(Ft)}catch{}return 0}if(e[0]===kr){try{let t=await Ft(),n=Ad(e.slice(1),t);if(!n)return 0;let{parsed:r}=n;await Cd(r.event,t,r.runner,Co(r))}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await wn(kn),n=Ad(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Mc(o,s,r.runner))return 0;kA(n)?await Cd(r.event,t,r.runner,Co(r)):await od(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: hook failed open: ${n}`)}finally{Wr()}return 0}function Pr(){E("Usage: ev-ai-agent-hook <configure|install|migrate-to-plugin|update|uninstall|--version>"),E(" configure [--url <\u2026/{orgToken}/hook>]"),E(" (manifest only \u2014 pair with marketplace plugins)"),E(" install --url <\u2026/{orgToken}/hook>"),E(" [--delivery npx|binary|local] [--force]"),E(" [--no-claude] [--no-cursor] [--no-codex]"),E(" (fallback: merge hooks into .claude / .cursor / .codex configs)"),E(" (writes collector_url to shared manifest; hook commands use --runner only)"),E(" migrate-to-plugin"),E(" (strip ev-ai file hooks; keep collector manifest)"),E(" update (refresh binary pins from a local build; leaves hook configs alone)"),E(" uninstall"),E("Hook mode: --runner <platform> [--url <\u2026/hook>|--token <orgToken>] [event]"),E(" (--url/--token optional overrides; else collector_url from manifest)")}function xd(e){return e.includes("--help")||e.includes("-h")}async function wA(e=process.argv.slice(2)){let[t,...n]=e;if(t===dn){try{await Ir(Ft)}catch{}return 0}return t==="--version"||t==="-V"?(process.stdout.write(`${Me}
|
|
52
|
-
`),0):t==="configure"?
|
|
37
|
+
`.trim(),vo=new Map;function du(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 mu(e){return e.toLowerCase().includes("token")}function gu(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=du(r.key),s=du(r.value);o&&s&&!mu(o)&&t.set(o,s)}return t}function NS(e){let t=wS(e);return t.search="mode=ro&immutable=1",t.href}function vS(e){try{let t=pu("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(rr)??n.prepare(rr);return gu(r.all?.())}finally{n.close?.()}}catch{return null}}function MS(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 LS(e){try{return MS(()=>{let t=pu("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return gu(n.prepare(rr).all?.())}finally{n.close?.()}})}catch{return null}}function HS(e){let t=new Map;for(let n of e.split(`
|
|
38
|
+
`)){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&&!mu(s)&&t.set(s,i)}return t}function US(e){try{let t=OS("sqlite3",["-noheader","-batch","-separator"," ",e,rr],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return HS(t)}catch{return null}}function hu(e){let t=vo.get(e);if(t)return t;if(!TS(e)){let o=new Map;return vo.set(e,o),o}let n=NS(e),r=vS(n)??US(n)??LS(n)??new Map;return vo.set(e,r),r}var DS="cursorAuth/cachedEmail",FS="cursorAuth/stripeMembershipAuthId";function or(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function $S(e=sr(),t=process.platform,n=process.env){let r=or(n.VSCODE_PORTABLE);if(r)return Be(r,"user-data");let o=or(n.VSCODE_APPDATA);if(o)return Be(o,"Cursor");switch(t){case"darwin":return Be(e,"Library","Application Support","Cursor");case"win32":return Be(or(n.APPDATA)??Be(e,"AppData","Roaming"),"Cursor");default:return Be(or(n.XDG_CONFIG_HOME)??Be(e,".config"),"Cursor")}}function jS(e=sr()){return Be(e,".cursor","cli-config.json")}function BS(e=sr(),t=process.platform,n=process.env){return Be($S(e,t,n),"User","globalStorage","state.vscdb")}function qt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function KS(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):qt(e.userId)}function GS(e){return qt(e.email)??qt(e.authId)??KS(e)}function Mo(e){let t=qt(e.email),n=qt(e.displayName),r=GS(e);return!r||de(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function WS(e){let n=oe(jS(e),{}).authInfo;return!n||typeof n!="object"?null:Mo(n)}function zS(e,t,n){let r=BS(e,process.platform,t),o=cu(e),s=uu(o);if(lu(s,r,n))return Mo({email:s?.email,authId:s?.auth_id});let i=hu(r),a=i.get(DS)??null,c=i.get(FS)??null;return fu(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),Mo({email:a,authId:c})}function _u(e=sr(),t=process.env,n=Date.now()){return WS(e)??zS(e,t,n)}import{createHash as VS}from"node:crypto";import{resolve as JS}from"node:path";function q(e){return VS("sha256").update(e).digest("hex").slice(0,16)}function Lo(e){return q(JS(e))}function _e(e,t){return`${e}\0${t}`}function Su(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function Zt(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(`
|
|
39
|
+
`);return q(n)}function XS(e,t,n="git_config",r=null){return q(`${e??""}|${t??""}|${r??""}|${n}`)}function qS(e){let t=null,n=null;for(let r of e.split(`
|
|
40
|
+
`)){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 ZS(e,t=te){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return qS(n)}function QS(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 Ke(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 eE(e=process.env){let t=j(e.EV_AI_HOOK_OPERATOR_EMAIL),n=j(e.EV_AI_HOOK_OPERATOR_LOGIN),r=Ke(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=Ke(o,null,"github",o);if(s)return s;let i=j(e.GITLAB_USER_LOGIN),a=j(e.GITLAB_USER_EMAIL),c=Ke(j(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let l=j(e.BUILD_REQUESTEDFOREMAIL),u=Ke(j(e.BUILD_REQUESTEDFOR),l,"azure_devops",l??j(e.BUILD_REQUESTEDFORID));if(u)return u;let d=j(e.BUILDKITE_BUILD_CREATOR_EMAIL),f=Ke(j(e.BUILDKITE_BUILD_CREATOR),d,"buildkite",d);if(f)return f;let p=j(e.BUILD_USER_EMAIL)??j(e.CHANGE_AUTHOR_EMAIL),g=Ke(j(e.BUILD_USER)??j(e.CHANGE_AUTHOR),p,"jenkins",p??j(e.BUILD_USER_ID));if(g)return g;let S=j(e.CIRCLE_USERNAME),A=Ke(S,null,"circleci",S);if(A)return A;let k=j(e.CODEBUILD_INITIATOR),O=Ke(k,null,"codebuild",k);if(O)return O;let I=j(e.DRONE_COMMIT_AUTHOR_EMAIL),v=j(e.DRONE_COMMIT_AUTHOR),T=Ke(v??j(e.DRONE_COMMIT_AUTHOR_NAME),I,"drone",I??v);if(T)return T;if(Eu(e.CLAUDE_CODE_REMOTE)||Eu(e.CURSOR_AGENT)){let K=j(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:K&&!de(null,K)?K:null,identity_source:"cloud"}}return null}function Ho(e){return!!((e.git_user_name??e.git_user_email)&&!de(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 Eu(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function tE(e,t,n){return e==="claude"?tu(t):e==="cursor"?_u(t,n):e==="codex"?iu(n,t):null}async function Uo(e,t=te,n=process.env,r={}){let o=await ZS(e,t),s=QS(n),i=Ho(o)?o:s&&Ho(s)?s:null,a=tE(r.runnerPlatform,r.home??YS(),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=eE(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:Ho(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 Do(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??te,s=e.env??process.env,i=await Uo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=XS(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?to(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let p=n;return{operator:i,commit:()=>{p&&Vi(p,a,Nn())}}}function Fo(e){return e?!to(e)?.operator_identity_hash:!0}function yu(e){return!0}import{existsSync as hC,readFileSync as _C}from"node:fs";import{homedir as Vf}from"node:os";import{join as vt,resolve as SC}from"node:path";import{basename as cC,join as Nt}from"node:path";import{dirname as Nu,resolve as cr}from"node:path";import{existsSync as nE}from"node:fs";import{homedir as Au}from"node:os";import{relative as ku,resolve as Pe,sep as ot}from"node:path";var rE=["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"],oE=["prompt","tool_input","tool_response","last_assistant_message","command"],sE=new Set;function iE(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return sE}}var bu=new Set(["on","1","true"]);function Go(e){let t=U("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?bu.has(t.toLowerCase()):e?.collect_prompt===!0}function xu(e,t){let n=Wo(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=U("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?bu.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function Iu(e){return Wo(e)==="allowlist"}function Wo(e){return U("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||U("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function aE(e){let t={};for(let n of rE){let r=Ue(e,n);r!==void 0&&(t[n]=r)}return t}function ir(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Pe(e),r=Pe(t),o=ku(r,n);return!o||o==="."?".":o.startsWith(`..${ot}`)||o===".."||Pe(r,o)!==n?null:o.split(ot).join("/")}function Ou(e,t){let n=ku(Pe(t),Pe(e)).split(ot).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function Tu(e){return typeof e!="string"||e.length===0?null:Pe(e).split(ot).join("/")}function cE(){let e=U("CURSOR_PROJECT_DIR");if(!e)return null;let t=Pe(e);return nE(t)?t.split(ot).join("/"):null}function jo(e,t){return ir(e,t)!==null}function uE(e,t){let n=Pe(t??Au(),".cursor").split(ot).join("/");return jo(e,n)}function lE(e,t,n){return t!==null&&jo(e,t)?!0:t!==null&&uE(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&jo(e,n.gitRoot)?!0:t===null}function Pu(e,t){let n=Tu(e.cwd);if(n!==null)return n;let r=Pe(process.cwd()).split(ot).join("/"),o=cE();return lE(r,o,t)?r:o??r}function zo(e,t={}){return Pu(e,t)}function Vo(e,t=Au()){let n=Pe(t).split(ot).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function Ru(e,t,n){let r=Tu(n.launchCwd)??Pu(t,n);e.cwd=Vo(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?ir(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var wu="\u2026[truncated]\u2026",Bo=Buffer.byteLength(wu,"utf8"),fE=8;function Qt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Cu(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function dE(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 pE(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=Bo)return Cu(e,t);let r=t-Bo,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Cu(e,o)}${wu}${dE(e,s)}`}function Ko(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)=>{Ko(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||Ko(o,[...t,r],n)}function mE(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 gE=256;function hE(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 _E(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=Qt(e);if(s<=t)return;let i=[];Ko(e,[],i),i.sort((u,d)=>d.bytes-u.bytes);let a=i.filter(u=>u.bytes>n);if(a.length===0)return;let c=hE(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&&mE(e,u.path,pE(u.value,r))}}function SE(e,t){let n=Math.max(0,t-gE),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:Qt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(Qt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function $o(e,t){let n=Qt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,_E(r,t,Bo+fE),Qt(r)>t&&SE(r,t),r}function EE(e,t,n){let r=iE(n.runnerEvent),o=n.promptCapture??Go();for(let s of oE){if(r.has(s)||s==="prompt"&&!o)continue;let i=t[s];i!==void 0&&(e[s]=i)}}function ar(e,t,n={}){let r=Wo(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,Ru(s,e,n),$o(s,Gr)}let o=aE(e);return Ru(o,e,n),r==="content"?(EE(o,e,n),$o(o,Gr)):$o(o,pi)}function yE(e){return typeof e=="string"&&e.length>0}function Jo(e){let t=cr(e.home),n=cr(e.launchCwd),r=e.gitRoot?cr(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&yE(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&&ir(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=Nu(r);for(;;){let u=cr(l);if(u===t)break;let d=Nu(u);if(d===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=Ou(u,n);break}l=d}}return{anchors:s,parentRel:a}}import{existsSync as vu,readdirSync as RE,realpathSync as CE}from"node:fs";import{basename as AE,dirname as kE,relative as bE,resolve as xE,sep as IE}from"node:path";var Yo=400,ur=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Ye}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=xE(t).split(IE).join("/");return Vo(r,this.home)}let n=bE(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${q(kE(t))}/${AE(t)}`:n}claimFile(t){try{let n=CE(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(!vu(t))return[];try{return RE(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(vu(t))return oe(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 ps,readFileSync as Xy,statSync as qy}from"node:fs";import{basename as Jl,join as pt,relative as ms}from"node:path";var Gl=Ve(Kl());var Jy=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Wl=Jy.map(e=>Gl.default.matcher(e,{dot:!0}));function Yy(e){return e===""?!1:Wl.some(t=>t(`${e}/`))}function zl(e,t){if(t==="")return!1;if(e==="")return Yy(t);let n=e.replace(/\/+$/,"");return Wl.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var gs=100*1024,Zy=4;function Qy(e){return e.length<=gs?e:`${e.slice(0,gs-1)}\u2026`}function eR(e){try{let t=Xy(e),n=t.toString("utf8");return{hash:q(t),length:t.length,text:Qy(n)}}catch{return null}}var Vl={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function tR(e){return e in Vl?Vl[e]:"UNSPECIFIED"}function Pt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=eR(t.absolutePath);if(!n)return!1;let r=t.name??Jl(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=tR(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function nR(e,t,n){let r=ms(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Jl(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function mt(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;hs(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function hs(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>Zy))for(let d of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(d.isDirectory()&&zl(n.replace(/\\/g,"/"),ms(n,pt(r,d.name)).replace(/\\/g,"/"))||d.isDirectory()&&u?.includes(pt(r,d.name)))continue;if(c){if(!d.isDirectory())continue;let g=pt(r,d.name,c);if(ps(g)){let S=ms(n,pt(r,d.name)).replace(/\\/g,"/");Pt(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||d.name});continue}hs(e,{walkRoot:n,currentDir:pt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(d.isDirectory()){hs(e,{walkRoot:n,currentDir:pt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(!d.isFile()||!l)continue;let f=d.name.toLowerCase();if(!l.some(g=>f.endsWith(g)))continue;let p=pt(r,d.name);Pt(e,{absolutePath:p,kind:s,origin:i,enabled:a,name:nR(n,p,!0)})}}function Yl(e){for(let t of e)if(ps(t))try{if(qy(t).size>0)return t}catch{continue}return e.find(t=>ps(t))}import{existsSync as NR,readFileSync as vR}from"node:fs";var hr=Ve(rt(),1);var rR="<omitted>",oR=["package_name","package_spec","package_version","package_version_source"],Xl=100,ql=120,_r=[{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"}],Zl=new Set(_r.map(e=>e.attr)),sR=["enabled","disabled"],iR=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],aR=new Set(["type","command","url","args","env","envVars","headers",...sR,...iR,..._r.map(e=>e.raw)]),cR=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",...oR,...Zl,...[...Zl].map(e=>`${e}_truncated`)]);function Ql(e,t){for(let n of t)aR.has(n)||cR.has(n)||(e[n]=rR)}var uR=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,lR=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,fR=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,dR=/^bearer(?:\s+|$)/i;function Sr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function ef(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function _s(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=Sr(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function gt(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function pR(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,hr.launchContainsCredentials)({kind:"url",url:e})||(0,hr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=an([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,hr.launchContainsCredentials)({kind:"url",url:r}):!0)}function tf(e,t,n){pR(t,n)&&(e.launch_had_credentials=!0)}function mR(e){return fR.test(e)||dR.test(e)?"<redacted>":e.includes("://")?gt(e):e}function nf(e){if(/^https?:\/\//i.test(e))return gt(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${nf(e.slice(t+1))}`:mR(e)}function gR(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return uR.test(t)||lR.test(t)}function an(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(gR(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(nf(r))}return t}function hR(e){let t=ef(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>ql?r.slice(0,ql):r))].sort();if(n.length!==0)return n.length>Xl?{names:n.slice(0,Xl),truncated:!0}:{names:n,truncated:!1}}function _R(e){let t=Sr(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 rf(e,t){let n=new Set;for(let{raw:r,attr:o}of _r){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=hR(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function of(e,t){let n=Sr(e),r={transport:t};if(!n)return r;Ql(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=ef(n.args);a&&(r.command_or_url=gt(a));let l=an(c);l.length>0&&(r.args=l),tf(r,a,c);let u=_R(n.env_http_headers),d=[...new Set([..._s(n.env),..._s(n.envVars),..._s(n.env_vars),...u.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();d.length>0&&(r.env_var_names=d),u.headers.length>0&&(r.env_http_header_names=[...new Set(u.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let f=typeof n.auth=="string"?n.auth:void 0;f&&(r.auth=f);let p=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;p&&(r.bearer_token_env_var=p);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),rf(r,n),r}function sf(e){let t=Sr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function ys(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return q(JSON.stringify({name:e,attributes:r,enabled:n}))}function wt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function sn(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 Es(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function Ss(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=wt(n[1]);return r.length>0?r:void 0}function SR(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],wt(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(`
|
|
41
|
+
${e}`);return s?.[1]&&r(s[1]),n}function af(e){return Es(e,"enabled")===!1?!1:Es(e,"disabled")!==!0}function ER(e,t){let n={};for(let{raw:r,attr:o}of _r){if(o==="auto_approve"){let i=Es(t,r);if(i!==void 0){n[r]=i;continue}}let s=sn(t,r);s.length>0&&(n[r]=s)}rf(e,n)}var yR=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,RR=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function CR(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
|
|
42
|
+
`)){let s=yR.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(RR))o[1]&&t.add(o[1]);return[...t]}function cf(e,t){let n={transport:t};Ql(n,CR(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?wt(r[1]??""):void 0,i=o?wt(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=sn(e,"args");a&&(n.command_or_url=gt(a));let l=an(c);l.length>0&&(n.args=l),tf(n,a,c);let u=new Set;for(let k of e.split(`
|
|
43
|
+
`)){let O=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(k);O?.[1]&&u.add(O[1])}let d=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(d?.[1])for(let k of d[1].split(",")){let O=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(k);O?.[1]&&u.add(O[1])}let f=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
|
|
44
|
+
${e}`);if(f?.[1])for(let k of f[1].split(`
|
|
45
|
+
`)){let O=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(k);O?.[1]&&u.add(O[1])}for(let k of sn(e,"env_vars"))u.add(k);let p=SR(e,"env_http_headers");for(let[,k]of p)k.length>0&&u.add(k);let g=Ss(e,"bearer_token_env_var");g&&(u.add(g),n.bearer_token_env_var=g),u.size>0&&(n.env_var_names=[...u].sort()),p.length>0&&(n.env_http_header_names=[...new Set(p.map(([k])=>k))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let S=Ss(e,"auth");S&&(n.auth=S);let A=Ss(e,"default_tools_approval_mode");return A&&(n.default_tools_approval_mode=A),ER(n,e),n}var ve=Ve(rt(),1);import{createHash as xR}from"node:crypto";import{join as cn}from"node:path";var AR=300,kR=256;function uf(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 Er(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 lf(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function bR(e){return lf(e,AR)}function ff(e,t){let n=uf(e.trim(),t),r=Er(n);if(r.length===0)return"";let[o,...s]=r,i=gt(o),a=an(s);return bR([i,...a].join(" "))}function df(e,t){if(typeof e!="string")return null;let n=uf(e.trim(),t),r=Er(n)[0];if(!r)return null;let o=gt(r);return o.length===0?null:lf(o,kR)}function IR(e,t){if(t!==null)return{package_version:t,package_version_source:"npx_cache"};let n=(0,ve.pinnedPackageVersionFromSpec)(e);return n===void 0?{}:{package_version:n,package_version_source:"declared_pin"}}function OR(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
46
|
+
`);return xR("sha512").update(t).digest("hex").slice(0,16)}function TR(e){let t=process.platform==="win32"?cn(U("LOCALAPPDATA")??e,"npm-cache"):cn(e,".npm"),n=U("npm_config_cache")??U("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function pf(e){return typeof e=="string"&&e.length>0&&e.length<=ve.PACKAGE_FIELD_MAX?e:null}function PR(e,t,n){let r=OR(e);for(let o of TR(n)){let s=cn(o,"_npx",r),i=oe(cn(s,"node_modules",...t.split("/"),"package.json"),{}),a=pf(i.version);if(a!==null)return a;let c=oe(cn(s,"package-lock.json"),{}),l=pf(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function wR(e){return e.length<=ve.PACKAGE_FIELD_MAX?e:`${e.slice(0,ve.PACKAGE_FIELD_MAX-1)}\u2026`}function Rs(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,ve.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,ve.packageNameFromSpec)(o);return s===null?null:{package_name:s,package_spec:wR(o),...IR(o,PR(r,s,n))}}function mf(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Er(e.trim());return n===void 0?null:Rs(n,r,t)}function yr(e,t){if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e,r=Array.isArray(n.args)?n.args.filter(o=>typeof o=="string"):[];return Rs(typeof n.command=="string"?n.command:null,r,t)}function gf(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Rs(wt(n[1]??""),sn(e,"args"),t)}function MR(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 hf(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=MR(a),l=of(a,c);Object.assign(l,yr(a,e.home)??{});let u=sf(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:ys(i,l,u),origin:n,enabled:u,attributes:l})}}function _f(e,t,n){if(!NR(t)||!e.claimFile(t))return;let r;try{r=vR(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),l=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),u=l===-1?c:c.slice(0,l),d="unknown";/^\s*url\s*=/m.test(u)?d="http":/^\s*command\s*=/m.test(u)&&(d="stdio");let f=cf(u,d);Object.assign(f,gf(u,e.home)??{});let p=af(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:ys(a,f,p),origin:n,enabled:p,attributes:f})}}import{existsSync as UR,readdirSync as DR}from"node:fs";import{join as ue}from"node:path";function LR(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 HR(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 Cs(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 HR(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",d=LR({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:"",p=q(u),g=f?`${s}:${f}:${d}:${p}`:`${s}:${d}:${p}`,S=`${s}|${f}|${d}|${u}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:q(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...f?{matcher:f}:{},action_kind:d,action_hash:p,...d!=="prompt"&&u.trim()?{command:ff(u,e.home)}:{}}})}}}function As(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Cs(e,t,r.hooks,n)}var Sf=50;function un(e,t,n,r){if(!UR(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(Sf,()=>{mt(e,{dir:ue(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),mt(e,{dir:ue(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),mt(e,{dir:ue(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});As(e,ue(t,"hooks","hooks.json"),n),As(e,ue(t,"hooks.json"),n);let i=e.components.length-o,a=s>=Sf;return{componentCount:i,expandTruncated:a}}function ln(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 Ef(e){let t=ue(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(ue(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let l=Array.isArray(c)?c:[c],u=l[0]??{},d=s[a]===!0,f=a.includes("@")?a.split("@").slice(1).join("@"):"",p=typeof u.version=="string"?u.version:"",g=typeof u.scope=="string"?u.scope:"user",S=`plugin:${a}`,A=0,k=!1;for(let O of l)if(typeof O.installPath=="string"&&O.installPath.length>0){let I=un(e,O.installPath,S,d);A+=I.componentCount,k=k||I.expandTruncated}ln(e,{pluginKey:a,rowPath:i,enabled:d,scope:g,version:p||void 0,marketplace:f||void 0,componentCount:A,expandTruncated:k,contentHash:q(`${a}|${p}|${g}|${d}|${A}`)})}}function FR(e){let t=e,n="";try{let r=DR(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=ue(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=ue(e,s),n=s)}}catch{}return{installPath:t,version:n}}var $R=/^\d+$/;function jR(e){let t=e.filter(n=>!$R.test(n.pluginId));return t.length>0?t:e}function yf(e){let t=[{base:ue(e.home,".cursor/plugins/local"),scope:"local"},{base:ue(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=ue(n,o.name),l=`plugin:${a}`,{componentCount:u,expandTruncated:d}=un(e,c,l,!0);ln(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:u,expandTruncated:d,contentHash:q(`${a}|local|${u}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(ue(n,s))){if(!a.isDirectory())continue;let c=ue(n,s,a.name),{installPath:l,version:u}=FR(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of jR(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:d}=un(e,a.installPath,l,!0);ln(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:u,expandTruncated:d,contentHash:q(`${c}|${a.version}|${u}`)})}}}import{existsSync as GR}from"node:fs";var BR=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,ks="<path>",KR=new RegExp(`${ks}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function Rr(e){let t=e.replace(BR,ks).replace(KR,ks);return t.length>200?`${t.slice(0,200)}...`:t}var Rf=200,Cf=200,bs=16*1024,Af=6,WR=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),zR=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),VR=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),JR=new Set(["permissions"]),YR={claude:WR,cursor_sandbox:zR,cursor_permissions:VR,cursor_cli:JR},XR=new Set(["allow","deny","ask"]);function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Cr(e){return e.replace(/\\/g,"/")}function xs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>xs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${xs(t[r])}`).join(",")}}`}function qR(e){return q(`${xs(e)}|settings1`)}function Of(e){let t=Cr(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 Tf(e,t){if(e!=="claude")return{};let n=Cr(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 Pf(e){let t=Cr(e).replace(/\/+$/,"");return t.length<=1?"":t}function wf(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function ZR(e,t){let n=Cr(e);if(n==="~"||n.startsWith("~/"))return n;let r=Pf(t);if(!r)return n;let o=n.slice(0,r.length);if(!(wf(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var kf=new Map;function QR(e){let t=kf.get(e);if(t!==void 0)return t;let n=Pf(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,wf(e)?"gi":"g")}return kf.set(e,r),r}function eC(e,t){let n=QR(t);return n?e.replace(n,"~"):e}function bf(e,t){return e.length<=Cf?e:(t.truncated=!0,e.slice(0,Cf))}function Nf(e,t){return e.length<=Rf?e:(t.truncated=!0,e.slice(0,Rf))}function ne(e,t,n,r){if(typeof e=="string"){if(t==="path")return bf(ZR(e,n),r);let o=t==="rule"?Rr(e):e;return bf(eC(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=Nf(e,r),s=[];for(let i of o){let a=ne(i,t,n,r);a!==void 0&&s.push(a)}return s}if(st(e)){let o={};for(let[s,i]of Object.entries(e)){let a=ne(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function xf(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";XR.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=ne(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function tC(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Nf(s,n);r[o]=a.map(c=>{if(!st(c))return ne(c,"plain",t,n);let l={};for(let[u,d]of Object.entries(c)){let p=ne(d,u==="path"?"path":"plain",t,n);p!==void 0&&(l[u]=p)}return l});continue}let i=ne(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function nC(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=ne(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function rC(e,t,n){if(!st(e))return ne(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=ne(s,"rule",t,n):o==="filesystem"?i=ne(s,"path",t,n):o==="network"?i=nC(s,t,n):o==="credentials"?i=tC(s,t,n):i=ne(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function oC(e,t,n,r,o){return n==="claude"?e==="permissions"?xf(t,r,o):e==="sandbox"?rC(t,r,o):ne(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?ne(t,"path",r,o):ne(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?ne(t,"rule",r,o):ne(t,"plain",r,o):e==="permissions"?xf(t,r,o):ne(t,"plain",r,o)}function fn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Is(e,t){return e?`${e}.${t}`:t}function Os(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>=Af?(e.splice(o,1),r.add(n)):Os(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>=Af?(delete e[o],r.add(Is(n,o))):Os(s,t+1,Is(n,o),r))}function vf(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:fn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))vf(o,Is(t,r),n)}function sC(e,t,n){let r=fn(e);if(r<=bs)return;t.truncated=!0;let o=[];for(vf(e,"",o);r>bs;){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=fn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;fn(e)>bs;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=fn(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function iC(e,t,n){let r=YR[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=oC(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return Os(s,1,"",a),a.size>0&&(o.truncated=!0),sC(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function If(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:qR(t.attributes),attributes:t.attributes};e.push(n)}function Ts(e,t,n,r){if(!e.claimFile(t)||!GR(t))return;let o=bi(t);if(!o.ok||!st(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),If(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(st(i)&&Cs(e,t,i,n),!r.profile)return;let a=iC(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),If(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as aC}from"node:fs";import{join as Me}from"node:path";var Mf=".claude/skills/synced",Lf=".claude/plugins/synced";function Hf(e){return[Me(e,Mf),Me(e,Lf)]}function Ar(e){return typeof e=="string"&&e.length>0?e:void 0}function Uf(e){let t=Me(e.home,Mf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=Me(t,n.name),o=e.readJson(Me(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=Me(r,i.name,"SKILL.md");if(!i.isDirectory()||!aC(a))continue;let c=s.get(i.name),l=Ar(c?.source),u=Ar(c?.creatorType);Pt(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Df(e){let t=Me(e.home,Lf);for(let n of e.readEntries(t)){if(!n.isDirectory()||n.name.startsWith("."))continue;let r=Me(t,n.name),o=e.readJson(Me(r,"manifest.json"),{}),s=new Map((o?.plugins??[]).flatMap(i=>i.name?[[i.name,i]]:[]));for(let i of e.readEntries(r)){if(e.truncated)return;if(!i.isDirectory()||i.name.startsWith("."))continue;let a=s.get(i.name),c=Ar(a?.marketplaceName),l=Ar(a?.version),u=c?`${i.name}@${c}`:i.name,d=Me(r,i.name),{componentCount:f,expandTruncated:p}=un(e,d,`plugin:${u}`,!0);ln(e,{pluginKey:u,rowPath:e.componentPath(d),enabled:!0,scope:"synced",version:l,marketplace:c,componentCount:f,expandTruncated:p,contentHash:q(`${u}|${l??""}|synced|${f}`)})}}}function uC(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)mt(e,{dir:Nt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:Hf(e.home)});for(let i of n.dirs)mt(e,{dir:Nt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=Yl(i.map(c=>Nt(r,c)));a&&Pt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:cC(a)})}for(let i of Ua(n))Ts(e,Nt(r,i),o,{kind:"SETTINGS",profile:Of(i)});for(let i of n.mcpJson??[])hf(e,Nt(r,i),o);for(let i of n.mcpToml??[])_f(e,Nt(r,i),o);if(s){if(n.managed){for(let i of wn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=Tf(n.managed,i);Ts(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(Ef(e),Df(e),Uf(e)):n.plugins==="cursor"&&yf(e)}}function Ff(e,t){try{let n=new ur(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)uC(n,{layout:r,levelDir:t.levelDir,origin:t.origin,includeMachineWide:t.includeMachineWide});return{scopeRef:t.scopeRef,anchor:t.levelDir,components:n.components,truncated:n.truncated}}catch{return}}function Ps(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=Ff(t,{layouts:Object.values(At),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Ye,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(Qe),l=Jo({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>Fa(c,u)});i=l.parentRel;for(let u of l.anchors){let d=Lo(u.dir);if(o!==void 0&&!o(u.scope,d))continue;let f=Ff(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:Yo,scopeRef:d});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function ws(e,t,n={}){let r=n.truncated===!0,o=Zt(e),s=new Set(e.map(u=>_e(u.path,u.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let u of e){let d=_e(u.path,u.name);c[d]!==u.content_hash&&a.push(u)}let l=[];if(!r){for(let u of Object.keys(c))if(!s.has(u)){let d=Su(u);d&&l.push(d)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:l,unchanged:a.length===0&&l.length===0}}var jf=2*1024*1024,lC=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function Ns(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 vs(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 $f(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Bf(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function Ms(e,t=jf){let n=[],r=[];for(let u of e)lC.has(u.kind)?n.push(u):r.push(u);r.sort((u,d)=>(u.text?.length??0)-(d.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,l=[];for(let u of o){let d=s.length>0?1:0,f=$f(u)+d;if(i+f<=t){s.push(u),i+=f,u.text!==void 0&&l.push(u.content_hash);continue}if(u.text!==void 0){let p=Bf(u),g=$f(p)+d;if(i+g<=t){s.push(p),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:l}}function Ls(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:Bf(n))}var fC=["user","cwd","repo","parent"];function Hs(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let v of fC){let T=t.scopes[v];if(!T)continue;let K=n(v,T.scopeRef),D=K.components,x=ws(T.components,D,{forceFull:D===void 0,truncated:T.truncated}),w=new Set(K.textHashes),L=Ns(T.components,x.upserts,w),m=Ls([...x.upserts,...L],w);s.push({scope:v,walk:T,delta:x,outgoing:m,outgoingKeys:new Set(m.map(b=>_e(b.path,b.name))),deliveredTextHashes:w,cachedComponents:D})}let i=s.flatMap(v=>v.outgoing),a=Ms(i,o),c=new Set(a.components.map(v=>_e(v.path,v.name))),l=[],u=[],d=[],f=[],p=[],g=[],S=[];for(let v of s){let{scope:T,walk:K,delta:D}=v;g.push(...K.components),l.push(T);let x=a.components.filter(b=>v.outgoingKeys.has(_e(b.path,b.name))),w=[...v.outgoingKeys].some(b=>!c.has(b)),L=D.truncated||w;L?d.push(T):D.full&&u.push(T),f.push(...x),!D.full&&!L&&p.push(...D.removed);let m=D.full?{}:{...v.cachedComponents??{}};if(!L)for(let b of D.removed)delete m[_e(b.path,b.name)];for(let b of x)m[_e(b.path,b.name)]=b.content_hash;S.push({scope:T,scopeRef:K.scopeRef,components:m,textHashes:vs(v.deliveredTextHashes,x.filter(b=>b.text!==void 0).map(b=>b.content_hash),K.components),collectedAtMs:r,included:x.length>0||D.removed.length>0&&!L||D.full})}let A={user_spec_hash:Zt(g),user_spec_count:g.length,user_spec_truncated:d.length>0};l.length>0&&(A.user_spec_scopes=l,A.user_spec_full_scopes=u,A.user_spec_truncated_scopes=d,A.user_spec_cwd_in_git_repo=t.cwdInGitRepo),u.length>0&&u.length===l.length&&(A.user_spec_full=!0),f.length>0&&(A.user_spec=f),p.length>0&&(A.user_spec_removed=p),a.textDeferredCount>0&&(A.user_spec_text_deferred=a.textDeferredCount);let k=t.scopes.cwd;k&&(A.user_spec_cwd_scope_ref=k.scopeRef);let O=t.scopes.repo;O&&(A.user_spec_repo_scope_ref=O.scopeRef);let I=t.scopes.parent;return I&&(A.user_spec_parent_scope_ref=I.scopeRef,t.parentRel&&(A.user_spec_parent_rel=t.parentRel)),{fields:A,scopes:S}}var kr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Us(e){return e==="cwd"||e==="repo"||e==="parent"}function dn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ds(e){return!dn(e)||!dn(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 Kf(e){return dC(e)}function Gf(e){return pC(e)}function Wf(e){return mC(e)}function dC(e){if(!dn(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function pC(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function zf(e,t){if(!dn(e))return;let n=e[t];return Ds(n)?n:void 0}function mC(e){if(!dn(e))return{};let t={};for(let[n,r]of Object.entries(e))Ds(r)&&(t[n]=r);return t}function Fs(e,t=20){let n=[];for(let[r,o]of Object.entries(e))Ds(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 EC=["allow","deny","ask"];function xr(e){let t=oe(e,{}),n=[];for(let r of EC)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:Rr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function yC(e){let{serverManaged:t,fileBased:n}=zr(process.platform,e),r=xr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=xr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function RC(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 CC=10,AC="self-config-cache.json",Jf=4;function Mt(){return U("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function kC(){return U("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var bC={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function xC(e,t=te){let n=bC[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(`
|
|
47
|
+
`)[0]??"").trim();return a||r(o+1)};return r(0)}function IC(e=Vf()){return vt(e,".ev-ai","agent-hook",AC)}function OC(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
48
|
+
`);return q(n)}function br(e,t,n=!1){let r=OC(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 $s(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>vt(e,a)),...n]){let a=SC(i);if(s.has(a))continue;s.add(a);let c=Xr(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function TC(e){return hC(e)?ge(_C(e,"utf8"),{}):{}}function PC(e,t){try{me(e,`${JSON.stringify(t)}
|
|
49
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: self-config cache write failed open: ${r}`)}}function wC(e,t,n){if(t==="user")return{components:Kf(e.user_spec_components),textHashes:Gf(e.user_spec_text_hashes)};if(!Us(t))return{components:void 0,textHashes:[]};let r=zf(e[kr[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function NC(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=Jf,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(!Us(s.scope))continue;let i=kr[s.scope],a=Wf(o[i]),c=a[s.scopeRef];a[s.scopeRef]={components:s.included?s.components:c?.components??{},text_hashes:s.textHashes,collected_at_ms:s.collectedAtMs},o[i]=Fs(a)}}return o}async function Yf(e,t=process.cwd(),n=Vf(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await xC(e),a="",c=[];if(o){let L=yC(n),m=xr(vt(n,".claude/settings.json")),b=xr(vt(t,".claude/settings.local.json"));a=L.model||b.model||m.model,c=RC([...L.permissionKeys,...m.permissionKeys,...b.permissionKeys]).slice(0,200)}let l={present:!1,size:0},u=L=>{let m=[],b=!1;for(let H of L){let le=xi(vt(n,H));if(m=m.concat(le.entries),b=b||le.truncated,m.length>=Ye){m=m.slice(0,Ye),b=!0;break}}return{entries:m,truncated:b}},d=IC(n),f=TC(d),p=f[e]??{},g=(p.send_count??0)+1,S=g>0&&g%CC===0,A=L=>S?void 0:p[L],k=u(tt.skills),O=u(tt.subagents),I=u(tt.commands),v=u(tt.rules),T={skills:br(k.entries,A("skills"),k.truncated),subagents:br(O.entries,A("subagents"),O.truncated),commands:br(I.entries,A("commands"),I.truncated),rules:br(v.entries,A("rules"),v.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:T.skills,subagents:T.subagents,commands:T.commands,rules:T.rules,memory:$s(n,tt.memory),settings:$s(n,tt.settings,$a(n)),mcp:$s(n,tt.mcp)},local_settings:o?Xr(vt(t,".claude/settings.local.json")):l},D=null,x=r.nowMs??Date.now();if(!Mt()){let L=p.user_spec_layout_version!==Jf,m=Ps(e,n,{launchCwd:kC()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(m.scopes).length>0){let b=Hs({collected:m,cacheFor:(H,le)=>L?{components:void 0,textHashes:[]}:wC(p,H,le),nowMs:x});Object.assign(K,b.fields),D={hash:b.fields.user_spec_hash,home:b.scopes.find(H=>H.scope==="user")??null,project:b.scopes.filter(H=>H.scope!=="user")}}}let w=NC(p,T,g,D);return{config:K,commit:()=>{f[e]=w,PC(d,f)}}}import{homedir as XC}from"node:os";import{join as Zf}from"node:path";function ht(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as Ir}from"node:path";function vC(e){return Ir(e,".ev-ai","agent-hook","js","signed-v1")}function MC(e){return Ir(vC(e),"scopes")}function Xf(e,t){return Ir(MC(e),t)}function qf(e){return Ir(e,"attempts")}function js(e){return String(e).padStart(10,"0")}var LC=/^(\d{10})$/,HC=/^(\d{10})\.done$/,UC=/^[0-9a-f]{128}$/,DC=64;async function nd(e,t,n=!1){let r=qf(t),o=await va(e,r),s=new Map,i=new Map,a=Qf(o,LC),c=Qf(o,HC),l=async f=>{let p=await td(e,Zf(r,FC(f)));return p&&s.set(f,{record:jC(p.value),mtimeMs:p.mtimeMs}),p!==void 0},u=async f=>{let p=BC((await td(e,Zf(r,$C(f))))?.value);return p&&i.set(f,p),p!==void 0};if(!n)return await Promise.all([...a.map(l),...c.map(u)]),{claims:s,dones:i};await Promise.all([ed(a,l),ed(c,u)]);let d=pn(s);return d<pn(i)&&c.includes(d)&&await u(d),{claims:s,dones:i}}function Qf(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function ed(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function pn(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function rd(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 FC(e){return js(e)}function $C(e){return`${js(e)}.done`}async function td(e,t){let n;try{n=await e.stat(t)}catch(o){if(mo(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>Lr)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>Lr?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function jC(e){if(!ht(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 BC(e){if(!ht(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=KC(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function KC(e){if(!ht(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"&&UC.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&GC(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function GC(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==DC||t.toString("base64")!==e))return t.toString("hex")}function JC(e){return e==="bootstrap"?3e3:6e4}function YC(e,t){let n=pn(e.claims);if(n===0)return;let r=pn(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=rd(o),c=o.record==="empty"?void 0:o.record.owner,l=JC(c)+3e4;if(t-a>l)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:od(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:od(i.selection)}}async function sd(e,t,n){try{let r=await nd(Ma(),Xf(e,t),!0);return YC(r,n)}catch{return}}function od(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function id(e=XC()){let t=Po()?.launcherScope;if(!t)return{};let n=await sd(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function Lt(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:Je,event:e,timestamp:Nn(),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:Le,host_arch:process.arch,node_version:process.version,policy_version:null,policy_capabilities:[],...n.promptCaptureSource!==void 0?{prompt_capture_source:n.promptCaptureSource}:{},correlation:r,payload:t},s=Po();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=Gc(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 ad}from"node:fs";import{spawn as cd}from"node:child_process";import{fileURLToPath as ZC}from"node:url";import{gzipSync as qC}from"node:zlib";function Bs(e){return U("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<mi?{body:e}:{body:qC(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function Or(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function Ks(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}var mn="__post",Tr="__work";async function QC(e,t,n={}){if(Mt())return e;let r=await Uo(n.gitRoot??process.cwd(),te,process.env,{runnerPlatform:t,home:n.home}),o=ht(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 eA(e,t){let n=ht(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 ud(e){switch(e){case"session_start":return li;case"session_end":return fi;case"tool_invoked":case"skill_invoked":return Kr;default:return Kr}}function tA(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
50
|
+
${n}`}function ld(e,t=[],n=process.execPath,r=import.meta.url,o=ad){if(In(n))return{command:n,args:[e,...t]};let s=ZC(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function nA(e=process.execPath,t=import.meta.url,n=ad){return ld(mn,[],e,t,n)}function rA(e){let t=e.indexOf(`
|
|
51
|
+
`);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 fd(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();ta(n,t)}catch{}}async function Pr(e,t=fetch){let n=await e(),r=rA(n);if(!r)return;let{meta:o,body:s}=r,i=Bs(s),a=Or(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await fd(c,o.url)}catch{}}async function oA(e,t,n,r=fetch){let o=ud(e),s=Bs(t),i=Or(s.contentEncoding),a=Ks(s.body);E(`POST event=${e} url=${xn(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{}E(`POST gzip rejected http=${l.status} \u2014 retrying uncompressed`),l=await r(n,{method:"POST",headers:Or(),body:t,signal:AbortSignal.timeout(o)})}let u=Date.now()-c;if(l.ok)return E(`POST outcome=ok elapsed_ms=${u} http=${l.status}`),await fd(l,n),!0;let d=(await l.text()).slice(0,200).replace(/[\n\r]/g,"");return E(`POST outcome=fail elapsed_ms=${u} http=${l.status} body=${d}`),!1}catch(l){let u=Date.now()-c,d=l instanceof Error?l.message:String(l);return E(`POST outcome=fail elapsed_ms=${u} http=000 body=${d}`),!1}}async function dd(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){E(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},di),l=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>l()),s.stdin.once("error",()=>l())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return E(`WARN: ${o} spawn failed open: ${i}`),null}}async function sA(e,t,n,r=cd,o=nA){let s=ud(e),i=tA(n,s,t),{command:a,args:c}=o();return dd(a,c,i,r,"detached post")}async function pd(e,t,n=cd,r=ld){let{command:o,args:s}=r(Tr,t);return dd(o,s,e,n,"detached work")}async function Ht(e,t,n,r,o,s,i){if(!o)return E("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!bn(o))return E(`WARN: collector URL blocked (https required): ${xn(o)}`),!1;let a=await QC(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}
|
|
52
|
+
`,d=U("EV_AI_HOOK_DEBUG");d==="full"?E(`DEBUG envelope=${l}`):d==="1"&&E(`DEBUG summary=${eA(c,Ks(u))}`);let f=process.argv.includes(Tr),p=U("EV_AI_HOOK_SYNC")==="1";return Qn(n.runnerEvent,n.runnerPlatform)||f||p?oA(e,u,o):(await sA(e,u,o),!1)}import{createReadStream as iA}from"node:fs";import{stat as aA}from"node:fs/promises";import{basename as cA,resolve as uA}from"node:path";import{createInterface as lA}from"node:readline";var fA=1024*1024;function dA(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&cA(t).endsWith(".jsonl")}async function md(e){if(!e||!dA(e))return null;try{let t=uA(e),n=await aA(t);if(!n.isFile())return null;let r=Math.max(0,n.size-fA),o=[],s=lA({input:iA(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 wr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:xu(e.manifest.manifest,e.manifest.hookConfig)}}function hn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Ws(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:Go(e.manifest.hookConfig)}}async function _d(e){let t=Date.now();await kA(e);let{gitRoot:n}=e.manifest;await Vs(e,n);let r=Ws(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:ar(e.hookInput,e.manifest.manifest,r),envelopeFields:wr(e),launchCwd:zo(e.hookInput,r),home:mA()}}function gd(e){try{return he(pA(e))}catch{return null}}function Sd(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function hd(e,t){let n=e.replaceAll("\\","/");if(!Sd(n))return null;let r=he(e),o=he(t),s=gd(e)??r,i=gd(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function Ed(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=hd(e,t)??(Sd(r)?null:r),i=hd(e,n);return{repositorySourcePath:s,userSourcePath:i}}function Gs(e,t,n,r,o){return yd(e,Ed(n,t.gitRoot,t.home),r,o)}function yd(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?gA({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 gA(e){try{let t=e.inRepository?SA(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 Rd(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 zs(e,t,n){return Ht("tool_invoked",{...n,...Rd(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Lt,e.manifest.collectorUrl,t.buildStartedAtMs,hn(e,t.home))}function hA(e){return Oc(e.runnerEvent,e.runnerPlatform)?[]:Va(e.hookInput)}function _A(e,t){return zs(e,t,{})}var Cd=new Set([...Object.values(lt),".github"]);function SA(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=>Cd.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var Ad=".codex/config.toml",EA=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",Ad]]);function yA(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?EA.get(c.source):o==="codex"?Ad: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 p=n.slice(f+1),g=p.replaceAll("\\","/").split("/").at(-1);if(!(g===void 0||!Cd.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:p,nativeKey:t})}catch{return}}function RA(...e){for(let t of e)if(t)return t;return null}function St(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return E(`WARN: ${n} failed open: ${r}`),t}function CA(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 AA(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var _t=new Set,gn=null;async function kA(e){if(Mt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(_t.has(t))return;if(!Fo(n)){_t.add(t);return}let r=Bt({sessionId:e.sessionId,hostname:Mn()});if(yu(r)){if(gn){await gn;return}gn=(async()=>{if(_t.has(t)||!Fo(n)){_t.add(t);return}if(!Ji(n)){_t.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await kd(e,r,qn(i),Do({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:AA(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Ht("session_start",u,wr(e),Lt,e.manifest.collectorUrl,s,hn(e)),o&&(c.commit(),_t.add(t))}finally{Yi(n)}})().finally(()=>{gn=null}),await gn}}async function Vs(e,t,n){try{e.platformAgentId=await Sc(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);E(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function kd(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,Pi(),zc(t),Ni(),r]),l=St(o,null,"gitSnapshot"),u=St(s,"","detectVirt"),d=St(i,null,"probeCloud"),f=St(a,{},"hostEnv"),p=St(c,{commit:()=>{}},"resolveOperatorForSend");return await Vs(e,e.manifest.gitRoot,l),{operatorResolved:p,fields:{identity:{host:Mn(),context:t,virt:u||null,cloud:d,git:l},host_env:f,env_vars:Qc()}}}async function bA(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=Bt({sessionId:e.sessionId,hostname:Mn()}),o=String(e.runnerPlatform),s=Ws(e),i=zo(e.hookInput,s),a=qn(n),c=id().catch(()=>({})),l=Mt()?Promise.resolve({commit:()=>{}}):Do({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=kd(e,r,a,l),[d,f]=await Promise.allSettled([No(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Yf(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:K?.remote??null}))]),{operatorResolved:p,fields:g}=await u,S=St(d,[],"mcpDeclared"),A=St(f,CA(o),"selfConfig"),k=A.config,O=M(e.hookInput,"model");O&&(k.model=O);let I={...g,mcp:{declared:S},self_config:k,run_meta:{trigger:e.hookSource||"startup"},hook_input:ar(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},v=await c;await Ht("session_start",I,{...wr(e),...v},Lt,e.manifest.collectorUrl,t,hn(e))&&(A.commit(),p.commit(),_t.add(e.manifest.installationId))}async function xA(e){let t=Date.now(),[,n]=await Promise.all([Vs(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?md(M(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=RA(M(e.hookInput,"status"),M(e.hookInput,"stop_reason"),M(e.hookInput,"reason"),Yt(M(e.hookInput,"error")),r==="stop"?Ue(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=ar(e.hookInput,e.manifest.manifest,Ws(e));n&&(s.model=n),r!=="stopfailure"&&!Iu(e.manifest.manifest)&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Ht("session_end",{status:o,...n?{model:n}:{},hook_input:s},wr(e),Lt,e.manifest.collectorUrl,t,hn(e))}async function IA(e){let t=hA(e),n=Cc(e.hookInput),r=Ic(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r)return;let s=await _d(e);await Promise.all([o?_A(e,s):void 0,t.length===0?void 0:OA(e,s,t),n.length===0?void 0:TA(e,s,n)])}function bd(e,t,n,r){let o=r??za({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=Gs(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&ho(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??Ac({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=Gs(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 OA(e,t,n){let r=Gn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=bd(e,t,o,r);return zs(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 TA(e,t,n){return Promise.all(n.map(r=>{let o=Ec({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=Gs(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Rc(r);return zs(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var PA=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function wA(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=So(e.hookInput);if(r===null)return n.skillName===null?{}:bd(e,t,n.skillName,null);let o=Ed(r,t.gitRoot,t.home);for(let s of PA){let i=yd(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 NA=/mcp/i;function vA(e,t,n,r){let o=NA.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?mf(t,n):yr(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 MA(e){let t=await _d(e),n=Nc(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=_o(e.hookInput),i=df(s,t.home),a=Mc(e.hookInput),c=Tc(e.runnerEvent),l=c===!1?Lc(e.hookInput,e.runnerEvent):null,u=Yt(M(e.hookInput,"mcp_server_name")),d=u!==null||r!==null&&er(r)?await No(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:p}=Uc(r,d.map(K=>K.name),u??""),g=yA(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),d,u),S=g===void 0?wA(e,t,n):{},A=f===null?null:Zc(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),k=vA(e,s,t.home,{hasMcpIdentity:!!f||!!p,declaredConfig:A}),O=g??S.componentReference,I=S.ruleName??n.ruleName,v=S.commandName??n.commandName,T=vc(e.hookInput);await Ht("tool_invoked",{tool_name:r,skill_name:o,...I?{rule_name:I}:{},...v?{command_name:v}:{},success:c,duration_ms:a,...i?{executable:i}:{},...l?{failure_reason:l}:{},...f?{mcp_server:f}:{},...p?{mcp_tool:p}:{},...k,...O?{component_reference:O}:{},...T?{subagent_type:T}:{},...Rd(e),hook_input:t.hookInput},t.envelopeFields,Lt,e.manifest.collectorUrl,t.buildStartedAtMs,hn(e,t.home))}async function xd(e){switch(e.internalEvent){case"session_start":await bA(e);return;case"session_end":await xA(e);return;case"skill_invoked":await IA(e);return;case"tool_invoked":await MA(e);return;default:return}}import{mkdirSync as LA,readdirSync as HA,readFileSync as UA,statSync as Id,unlinkSync as DA,writeFileSync as FA}from"node:fs";import{homedir as Nr}from"node:os";import{join as Js}from"node:path";var $A="turns",Od=1440*60*1e3,jA=100,BA=new Set(["stop","stopfailure","sessionend"]);function Ys(e=Nr()){return Js(ye(e),$A)}function Td(e,t){return Js(e,$t(t))}function KA(e,t=Date.now()){let n;try{n=HA(e)}catch{return}let r=0;for(let o of n){if(r>=jA)return;r+=1;try{let s=Js(e,o);t-Id(s).mtimeMs>Od&&DA(s)}catch{}}}function GA(e,t,n=Nr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Ys(n);LA(s,{recursive:!0}),FA(Td(s,r),o,"utf8")}catch{}}function WA(e,t=Nr()){let n=e.trim();if(!n)return"";try{let r=Td(Ys(t),n);return Date.now()-Id(r).mtimeMs>Od?"":UA(r,"utf8").trim()}catch{return""}}function Pd(e,t,n,r=Nr()){let o=t.trim(),s=BA.has(n.trim().toLowerCase());return s&&KA(Ys(r)),o?(GA(e,o,r),o):s?WA(e,r):""}async function wd(e,t,n,r){let o=t??await vn(On),s=ge(o,{}),i=await ra(process.cwd(),{sessionId:Jt(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Un(r));let a=Pc(s,i.manifest.platform,n),c=wc(e,a.runnerEvent);if(!c){E(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:Pd(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await xd(l)}function zA(e,t=!1){if(U("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Vt(r,o,void 0,n.runner);return Qn(o,s)?!0:t}function Nd(e,t){let n=Ur(e),r=ge(t,{}),o=n.event??Oo(r);return Oi()||xc(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}async function vd(e=process.argv.slice(2)){if(Kc(),U("EV_AI_HOOK_JUDGE")==="1"){try{await vn(On)}catch{}return Jr(),0}if(e[0]===mn){try{await Pr(jt)}catch{}return 0}if(e[0]===Tr){try{let t=await jt(),n=Nd(e.slice(1),t);if(!n)return 0;let{parsed:r}=n;await wd(r.event,t,r.runner,xo(r))}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await vn(On),n=Nd(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!Bc(o,s,r.runner))return 0;zA(n)?await wd(r.event,t,r.runner,xo(r)):await pd(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: hook failed open: ${n}`)}finally{Jr()}return 0}function vr(){E("Usage: ev-ai-agent-hook <configure|install|migrate-to-plugin|update|uninstall|--version>"),E(" configure [--url <\u2026/{orgToken}/hook>]"),E(" (manifest only \u2014 pair with marketplace plugins)"),E(" install --url <\u2026/{orgToken}/hook>"),E(" [--delivery npx|binary|local] [--force]"),E(" [--no-claude] [--no-cursor] [--no-codex]"),E(" (fallback: merge hooks into .claude / .cursor / .codex configs)"),E(" (writes collector_url to shared manifest; hook commands use --runner only)"),E(" migrate-to-plugin"),E(" (strip ev-ai file hooks; keep collector manifest)"),E(" update (refresh binary pins from a local build; leaves hook configs alone)"),E(" uninstall"),E("Hook mode: --runner <platform> [--url <\u2026/hook>|--token <orgToken>] [event]"),E(" (--url/--token optional overrides; else collector_url from manifest)")}function Md(e){return e.includes("--help")||e.includes("-h")}async function qA(e=process.argv.slice(2)){let[t,...n]=e;if(t===mn){try{await Pr(jt)}catch{}return 0}return t==="--version"||t==="-V"?(process.stdout.write(`${Le}
|
|
53
|
+
`),0):t==="configure"?Md(n)?(vr(),0):(await ba(fa(n)),0):t==="install"?Md(n)?(vr(),0):(await Aa(da(n)),0):t==="migrate-to-plugin"?(await Ia(),0):t==="update"?(await ka(),0):t==="uninstall"?(await Oa(),0):t==="help"||t==="--help"||t==="-h"?(vr(),0):t===void 0?(vr(),1):vd(e)}function ZA(e,t,n=VA){if(!t)return!1;try{return e===XA(JA(t)).href?!0:n(YA(e))===n(t)}catch{return!1}}ZA(import.meta.url,process.argv[1])&&process.env.VITEST===void 0&&qA().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);E(t),process.exit(1)});export{ZA as isCliEntrypoint,qA as main};
|