@ev-ai/agent-hook 1.3.5 → 1.3.7
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 +1 -1
- package/README.md +1 -1
- package/dist/cli.mjs +40 -40
- package/dist/hook.mjs +35 -35
- package/dist/launcher-update.mjs +4 -4
- package/dist/launcher.mjs +6 -4
- package/dist/managed-hooks-snippet.cjs +5 -3
- package/dist/managed-hooks-snippet.mjs +5 -3
- package/dist/plugin-hooks.mjs +30 -9
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -2,54 +2,54 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from 'node:module';
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
|
|
5
|
-
var yp=Object.create;var ui=Object.defineProperty;var Rp=Object.getOwnPropertyDescriptor;var Cp=Object.getOwnPropertyNames;var Ap=Object.getPrototypeOf,kp=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 bp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cp(t))!kp.call(e,o)&&o!==n&&ui(e,o,{get:()=>t[o],enumerable:!(r=Rp(t,o))||r.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?yp(Ap(e)):{},bp(t||!e||!e.__esModule?ui(n,"default",{value:e,enumerable:!0}):n,e));var qn=V(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.MCP_MISSING_LAUNCH_SERIALIZED=Z.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;Z.foldMcpName=lc;Z.buildMcpFamilyCanonicalKey=R_;Z.launchContainsCredentials=A_;Z.serializeMcpLaunchIdentity=fc;Z.hashMcpLaunchIdentity=Jt;Z.projectMcpMissingLaunchIdentity=x_;Z.projectMcpLaunchIdentity=O_;Z.maskMcpLaunchForDisplay=T_;Z.normalizeMcpToolNames=P_;var y_=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 lc(e){return $e(e)}function R_(e){return`interface:${lc(e)}`}var uc=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),C_=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function xt(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function A_(e){return e.kind==="url"?k_(e.url):e.kind==="command"?e.arguments.some(t=>C_.test(t)):!1}function k_(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(uc.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 uc.has(a)})}}function fc(e){if(e.kind==="url")return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",xt($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",xt($e(e.command)),String(t.length),...t.map(xt)].join("|")}return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",xt(e.installationRootExternalKey),xt(e.sourcePath),xt(e.nativeKey)].join("|")}function Jt(e){return(0,y_.createHash)("sha256").update(e).digest("hex")}var b_=Jt(Z.MCP_MISSING_LAUNCH_SERIALIZED);function x_(){return{kind:"unknown",arguments:[],serialized:Z.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:b_}}function O_(e){let t=fc(e);return e.kind==="url"?{kind:"url",url:$e(e.url),arguments:[],serialized:t,contentHash:Jt(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:Jt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Jt(t)}}var I_=/^(https?:\/\/)([^/?#]*@)/i;function T_(e){return e.replace(I_,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function P_(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 Qn=V(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});Te.PACKAGE_FIELD_MAX=void 0;Te.npxExecBin=dc;Te.packageNameFromSpec=Zn;Te.pinnedPackageVersionFromSpec=pc;Te.pinnedPackageVersionFromNpx=F_;Te.npxPackageSpecs=mc;Te.PACKAGE_FIELD_MAX=128;var w_=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,N_=new Set(["-p","--package"]),v_=new Set(["-c","--call"]),M_=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),L_=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),H_=/^--no-/;function U_(e){return L_.has(e)||H_.test(e)}function dc(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var D_=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function 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 w_.test(n)?n:null}function pc(e){let t=Zn(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return D_.test(n)?n:void 0}function F_(e,t){for(let n of mc(e,t)){let r=pc(n);if(r!==void 0)return r}}function mc(e,t){let n=dc(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(v_.has(l))return[];if(N_.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||U_(l))){if(M_.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Zn(i)!==null)?o:[]:s===null||Zn(s)===null?[]:[s]}});var gc=V(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.McpPackageEcosystem=void 0;lt.resolveMcpPackageIdentity=Z_;var $_=qn(),Oo=Qn();lt.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var j_=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,B_=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,K_=/^(?:\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 W_=new Set(["--from","--spec"]),z_=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"]),V_=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"]),J_=/^--no-/;function Y_(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(W_.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||V_.has(l)||J_.test(l))){if(z_.has(l)){i+=1;continue}return null}}return o??s}function X_(e){if(e.length===0||e.length>Oo.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!B_.test(r)||!K_.test(o)?null:{ecosystem:lt.McpPackageEcosystem.PYPI,packageName:r,version:o}}function q_(e){let t=(0,Oo.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return j_.test(n)?{ecosystem:lt.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Z_(e){if(e?.kind!=="command"||(0,$_.launchContainsCredentials)(e))return;for(let n of(0,Oo.npxPackageSpecs)(e.command,e.arguments)){let r=q_(n);if(r!==null)return r}let t=Y_(e.command,e.arguments);if(t!==null)return X_(t)??void 0}});var Rc=V(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.EMPTY_NPM_PUBLISHER=void 0;je.isNpmRegistryPublisher=eh;je.displayPublisherName=th;je.classifyMcpProvenance=lh;var Sc=qn(),Io=Qn();je.EMPTY_NPM_PUBLISHER="npm:";var _c="npm:",Q_=/^[A-Za-z0-9._-]+$/;function eh(e){return e.startsWith(_c)&&e!==je.EMPTY_NPM_PUBLISHER&&Q_.test(e.slice(_c.length))}function th(e){if(!(e==null||e===""||e===je.EMPTY_NPM_PUBLISHER))return e}function hc(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 nh(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 To(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function rh(e){let t=To(e),n=nh(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||hc(t)||n!==void 0&&hc(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function oh(e){let t=To(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function sh(e){let t=To(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function Ec(e){let t={kind:"url",url:e};if((0,Sc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||rh(n.hostname))return{origin:"UNKNOWN"};let r=oh(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:sh(n)}}catch{return{origin:"UNKNOWN"}}}var yc="mcp-remote";function ih(e,t){if(e===yc)return t.find(n=>/^https?:\/\//i.test(n))}function ah(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function ch(e,t,n){let r=ih(e,t);return r!==void 0?Ec(r):e===yc?{origin:"UNKNOWN"}:ah(e,n)}function uh(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 lh(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,Sc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return Ec(t.url);let r=(0,Io.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Io.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=ch(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Io.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return uh(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var Ac=V(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.mcpServerToolSegmentForms=Cc;er.mcpServerNameMatchesToolSegment=fh;function Cc(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function fh(e,t){let n=t.toLowerCase();return Cc(e).some(r=>r.toLowerCase()===n)}});var kc=V(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.parseFrontmatterField=Re.parseFrontmatterDescription=Re.usableCatalogText=void 0;var dh=/^(?:>|\|)[-+]?$/,ph=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,mh=e=>{let t=e?.trim()??"";if(!(t.length===0||dh.test(t)))return t};Re.usableCatalogText=mh;var gh=e=>(0,Re.parseFrontmatterField)(e,"description");Re.parseFrontmatterDescription=gh;var _h=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Sh(n[1],t)};Re.parseFrontmatterField=_h;var hh=e=>e.replace(/^["']|["']$/g,"");function Sh(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 Ip=Object.create;var Si=Object.defineProperty;var Tp=Object.getOwnPropertyDescriptor;var Pp=Object.getOwnPropertyNames;var wp=Object.getPrototypeOf,Np=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 vp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Pp(t))!Np.call(e,o)&&o!==n&&Si(e,o,{get:()=>t[o],enumerable:!(r=Tp(t,o))||r.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?Ip(wp(e)):{},vp(t||!e||!e.__esModule?Si(n,"default",{value:e,enumerable:!0}):n,e));var rr=V(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.MCP_MISSING_LAUNCH_SERIALIZED=Z.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;Z.foldMcpName=Oc;Z.buildMcpFamilyCanonicalKey=w_;Z.launchContainsCredentials=v_;Z.serializeMcpLaunchIdentity=Ic;Z.hashMcpLaunchIdentity=qt;Z.projectMcpMissingLaunchIdentity=H_;Z.projectMcpLaunchIdentity=U_;Z.maskMcpLaunchForDisplay=F_;Z.normalizeMcpToolNames=$_;var P_=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 Oc(e){return $e(e)}function w_(e){return`interface:${Oc(e)}`}var bc=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),N_=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function It(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function v_(e){return e.kind==="url"?M_(e.url):e.kind==="command"?e.arguments.some(t=>N_.test(t)):!1}function M_(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(bc.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 bc.has(a)})}}function Ic(e){if(e.kind==="url")return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",It($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",It($e(e.command)),String(t.length),...t.map(It)].join("|")}return[Z.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",It(e.installationRootExternalKey),It(e.sourcePath),It(e.nativeKey)].join("|")}function qt(e){return(0,P_.createHash)("sha256").update(e).digest("hex")}var L_=qt(Z.MCP_MISSING_LAUNCH_SERIALIZED);function H_(){return{kind:"unknown",arguments:[],serialized:Z.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:L_}}function U_(e){let t=Ic(e);return e.kind==="url"?{kind:"url",url:$e(e.url),arguments:[],serialized:t,contentHash:qt(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:qt(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:qt(t)}}var D_=/^(https?:\/\/)([^/?#]*@)/i;function F_(e){return e.replace(D_,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function $_(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 sr=V(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});Te.PACKAGE_FIELD_MAX=void 0;Te.npxExecBin=Tc;Te.packageNameFromSpec=or;Te.pinnedPackageVersionFromSpec=Pc;Te.pinnedPackageVersionFromNpx=Y_;Te.npxPackageSpecs=wc;Te.PACKAGE_FIELD_MAX=128;var j_=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,B_=new Set(["-p","--package"]),K_=new Set(["-c","--call"]),G_=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),W_=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),z_=/^--no-/;function V_(e){return W_.has(e)||z_.test(e)}function Tc(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var J_=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function or(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 j_.test(n)?n:null}function Pc(e){let t=or(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return J_.test(n)?n:void 0}function Y_(e,t){for(let n of wc(e,t)){let r=Pc(n);if(r!==void 0)return r}}function wc(e,t){let n=Tc(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(K_.has(l))return[];if(B_.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||V_(l))){if(G_.has(l)){i+=1;continue}return[]}}return o.length>0?o.every(i=>or(i)!==null)?o:[]:s===null||or(s)===null?[]:[s]}});var Nc=V(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.McpPackageEcosystem=void 0;lt.resolveMcpPackageIdentity=ch;var X_=rr(),Ho=sr();lt.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var q_=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,Z_=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Q_=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function eh(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var th=new Set(["--from","--spec"]),nh=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"]),rh=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"]),oh=/^--no-/;function sh(e,t){let n=eh(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(th.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||rh.has(l)||oh.test(l))){if(nh.has(l)){i+=1;continue}return null}}return o??s}function ih(e){if(e.length===0||e.length>Ho.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!Z_.test(r)||!Q_.test(o)?null:{ecosystem:lt.McpPackageEcosystem.PYPI,packageName:r,version:o}}function ah(e){let t=(0,Ho.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return q_.test(n)?{ecosystem:lt.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function ch(e){if(e?.kind!=="command"||(0,X_.launchContainsCredentials)(e))return;for(let n of(0,Ho.npxPackageSpecs)(e.command,e.arguments)){let r=ah(n);if(r!==null)return r}let t=sh(e.command,e.arguments);if(t!==null)return ih(t)??void 0}});var Dc=V(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.EMPTY_NPM_PUBLISHER=void 0;je.isNpmRegistryPublisher=lh;je.displayPublisherName=fh;je.classifyMcpProvenance=yh;var Lc=rr(),Uo=sr();je.EMPTY_NPM_PUBLISHER="npm:";var vc="npm:",uh=/^[A-Za-z0-9._-]+$/;function lh(e){return e.startsWith(vc)&&e!==je.EMPTY_NPM_PUBLISHER&&uh.test(e.slice(vc.length))}function fh(e){if(!(e==null||e===""||e===je.EMPTY_NPM_PUBLISHER))return e}function Mc(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 dh(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 Do(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function ph(e){let t=Do(e),n=dh(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||Mc(t)||n!==void 0&&Mc(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function mh(e){let t=Do(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function gh(e){let t=Do(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function Hc(e){let t={kind:"url",url:e};if((0,Lc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||ph(n.hostname))return{origin:"UNKNOWN"};let r=mh(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:gh(n)}}catch{return{origin:"UNKNOWN"}}}var Uc="mcp-remote";function _h(e,t){if(e===Uc)return t.find(n=>/^https?:\/\//i.test(n))}function hh(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Sh(e,t,n){let r=_h(e,t);return r!==void 0?Hc(r):e===Uc?{origin:"UNKNOWN"}:hh(e,n)}function Eh(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 yh(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,Lc.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return Hc(t.url);let r=(0,Uo.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Uo.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Sh(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Uo.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return Eh(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var $c=V(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});ir.mcpServerToolSegmentForms=Fc;ir.mcpServerNameMatchesToolSegment=Rh;function Fc(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function Rh(e,t){let n=t.toLowerCase();return Fc(e).some(r=>r.toLowerCase()===n)}});var jc=V(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.parseFrontmatterField=Ce.parseFrontmatterDescription=Ce.usableCatalogText=void 0;var Ch=/^(?:>|\|)[-+]?$/,Ah=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,xh=e=>{let t=e?.trim()??"";if(!(t.length===0||Ch.test(t)))return t};Ce.usableCatalogText=xh;var kh=e=>(0,Ce.parseFrontmatterField)(e,"description");Ce.parseFrontmatterDescription=kh;var bh=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Ih(n[1],t)};Ce.parseFrontmatterField=bh;var Oh=e=>e.replace(/^["']|["']$/g,"");function Ih(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=Ah.exec(s);if(!i){let p=Oh(s).trim();return(0,Ce.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 Oh(e){return Po(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=Uh;y.installationRootExternalKey=Dh;y.normalizeRepositoryRelativePath=Ic;y.nativeKeyForSkillPath=Fh;y.nativeKeyForRulePath=$h;y.nativeKeyForCommandPath=jh;y.serializeComponentIdentity=Pc;y.buildComponentReference=Kh;y.validateComponentReference=Gh;var Ih=ze("node:crypto"),Th=ze("node:path"),Ph="cmp1_",wh=/^cmp1_[A-Za-z0-9_-]{43}$/,Nh=["/skills/","/skills-cursor/"],vh=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Mh=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Lh=[".cursor",".claude",".codex"],Hh={".claude.json":".claude",".agents":".codex"};y.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Uh(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Lh.includes(o));return n||(t.map(o=>Hh[o]).find(o=>o!==void 0)??"unknown")}function Dh(e,t){return`runtime-install:${e}/${t}`}function tr(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function Ic(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Th.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return tr(n,"sourcePath")}function Fh(e){let t=e.replaceAll("\\","/");for(let n of Nh){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Tc(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 $h(e){return Tc(e,vh,/\.(mdc|md|rules)$/i)}function jh(e){return Tc(e,Mh,/\.(md|mdc|toml)$/i)}function Bh(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Pc(e){let t=[tr(e.installationRootExternalKey,"installationRootExternalKey"),tr(e.installableKind,"installableKind"),Ic(e.sourcePath),tr(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Bh).join("|")}`,"utf8")}function Kh(e){let t=(0,Ih.createHash)("sha256").update(Pc(e)).digest("base64url");return`${Ph}${t}`}function Gh(e){return wh.test(e)}var Ce=qn();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 Ot=Qn();Object.defineProperty(y,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return Ot.PACKAGE_FIELD_MAX}});Object.defineProperty(y,"npxExecBin",{enumerable:!0,get:function(){return Ot.npxExecBin}});Object.defineProperty(y,"npxPackageSpecs",{enumerable:!0,get:function(){return Ot.npxPackageSpecs}});Object.defineProperty(y,"packageNameFromSpec",{enumerable:!0,get:function(){return Ot.packageNameFromSpec}});Object.defineProperty(y,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return Ot.pinnedPackageVersionFromNpx}});Object.defineProperty(y,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return Ot.pinnedPackageVersionFromSpec}});var wc=gc();Object.defineProperty(y,"McpPackageEcosystem",{enumerable:!0,get:function(){return wc.McpPackageEcosystem}});Object.defineProperty(y,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return wc.resolveMcpPackageIdentity}});var nr=Rc();Object.defineProperty(y,"classifyMcpProvenance",{enumerable:!0,get:function(){return nr.classifyMcpProvenance}});Object.defineProperty(y,"displayPublisherName",{enumerable:!0,get:function(){return nr.displayPublisherName}});Object.defineProperty(y,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return nr.EMPTY_NPM_PUBLISHER}});Object.defineProperty(y,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return nr.isNpmRegistryPublisher}});var Nc=Ac();Object.defineProperty(y,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return Nc.mcpServerNameMatchesToolSegment}});Object.defineProperty(y,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return Nc.mcpServerToolSegmentForms}});var wo=kc();Object.defineProperty(y,"parseFrontmatterDescription",{enumerable:!0,get:function(){return wo.parseFrontmatterDescription}});Object.defineProperty(y,"parseFrontmatterField",{enumerable:!0,get:function(){return wo.parseFrontmatterField}});Object.defineProperty(y,"usableCatalogText",{enumerable:!0,get:function(){return wo.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 Er=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 yr=V((DI,_l)=>{"use strict";var gl=Er();_l.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&gl.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&gl.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 Sl=V((FI,hl)=>{"use strict";hl.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Ol=V(($I,xl)=>{"use strict";var El=Sl(),dt=(e,t,n)=>{if(El(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(El(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(dt.cache.hasOwnProperty(c))return dt.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=bl(e)||bl(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=yl(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(p=yl(l,u,f,r)),f.negatives=g,f.positives=p,f.result=hy(g,p,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&p.length+g.length>1&&(f.result=`(?:${f.result})`),dt.cache[c]=f,f.result};function hy(e,t,n){let r=us(e,t,"-",!1,n)||[],o=us(t,e,"",!1,n)||[],s=us(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function Sy(e,t){let n=1,r=1,o=Cl(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=Cl(e,n);for(o=Al(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=Al(t+1,r)-1;return s=[...s],s.sort(Ry),s}function Ey(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=yy(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+=Cy(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function yl(e,t,n,r){let o=Sy(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=Ey(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+kl(a.count),i=l+1;continue}n.isPadded&&(d=Ay(l,n,r)),u.string=d+u.pattern+kl(u.count),s.push(u),i=l+1,a=u}return s}function us(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Rl(t,"string",a)&&s.push(n+a),r&&Rl(t,"string",a)&&s.push(n+a)}return s}function yy(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function Ry(e,t){return e>t?1:t>e?-1:0}function Rl(e,t,n){return e.some(r=>r[t]===n)}function Cl(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Al(e,t){return e-e%Math.pow(10,t)}function kl(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function Cy(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function bl(e){return/^-?(0+)\d/.test(e)}function Ay(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}}`}}dt.cache={};dt.clearCache=()=>dt.cache={};xl.exports=dt});var ds=V((jI,Ml)=>{"use strict";var ky=ze("util"),Tl=Ol(),Il=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),by=e=>t=>e===!0?Number(t):String(t),ls=e=>typeof e=="number"||typeof e=="string"&&e!=="",on=e=>Number.isInteger(+e),fs=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},xy=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,Oy=(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},Cr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},Iy=(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=>Cr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>Cr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Pl=(e,t,n,r)=>{if(n)return Tl(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},wl=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Tl(e,t,n)},Nl=(...e)=>new RangeError("Invalid range arguments: "+ky.inspect(...e)),vl=(e,t,n)=>{if(n.strictRanges===!0)throw Nl([e,t]);return[]},Ty=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Py=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw Nl([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=fs(a)||fs(c)||fs(l),d=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&xy(e,t,r)===!1,p=r.transform||by(f);if(r.toRegex&&n===1)return Pl(Cr(e,d),Cr(t,d),!0,r);let g={negatives:[],positives:[]},S=I=>g[I<0?"negatives":"positives"].push(Math.abs(I)),A=[],k=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):A.push(Oy(p(o,k),d,f)),o=i?o-n:o+n,k++;return r.toRegex===!0?n>1?Iy(g,r,d):wl(A,null,{wrap:!1,...r}):A},wy=(e,t,n=1,r={})=>{if(!on(e)&&e.length>1||!on(t)&&t.length>1)return vl(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 Pl(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?wl(u,null,{wrap:!1,options:r}):u},Rr=(e,t,n,r={})=>{if(t==null&&ls(e))return[e];if(!ls(e)||!ls(t))return vl(e,t,r);if(typeof n=="function")return Rr(e,t,1,{transform:n});if(Il(n))return Rr(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,on(n)?on(e)&&on(t)?Py(e,t,n,o):wy(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Il(n)?Ty(n,o):Rr(e,t,1,n)};Ml.exports=Rr});var Ul=V((BI,Hl)=>{"use strict";var Ny=ds(),Ll=Er(),vy=(e,t={})=>{let n=(r,o={})=>{let s=Ll.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=Ll.reduce(r.nodes),d=Ny(...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)};Hl.exports=vy});var $l=V((KI,Fl)=>{"use strict";var My=ds(),Dl=yr(),Tt=Er(),pt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?Tt.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(pt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?pt(o,s,n):o+s);return Tt.flatten(r)},Ly=(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(pt(a.pop(),Dl(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(pt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=Tt.reduce(o.nodes);if(Tt.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=My(...d,t);f.length===0&&(f=Dl(o,t)),a.push(pt(a.pop(),f)),o.nodes=[];return}let c=Tt.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(pt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(pt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return Tt.flatten(r(e))};Fl.exports=Ly});var Bl=V((GI,jl)=>{"use strict";jl.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 Vl=V((WI,zl)=>{"use strict";var Hy=yr(),{MAX_LENGTH:Kl,CHAR_BACKSLASH:ps,CHAR_BACKTICK:Uy,CHAR_COMMA:Dy,CHAR_DOT:Fy,CHAR_LEFT_PARENTHESES:$y,CHAR_RIGHT_PARENTHESES:jy,CHAR_LEFT_CURLY_BRACE:By,CHAR_RIGHT_CURLY_BRACE:Ky,CHAR_LEFT_SQUARE_BRACKET:Gl,CHAR_RIGHT_SQUARE_BRACKET:Wl,CHAR_DOUBLE_QUOTE:Gy,CHAR_SINGLE_QUOTE:Wy,CHAR_NO_BREAK_SPACE:zy,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Vy}=Bl(),Jy=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Kl,n.maxLength):Kl;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===Vy||f===zy)){if(f===ps){g({type:"text",value:(t.keepEscaping?f:"")+p()});continue}if(f===Wl){g({type:"text",value:"\\"+f});continue}if(f===Gl){c++;let S;for(;u<l&&(S=p());){if(f+=S,S===Gl){c++;continue}if(S===ps){f+=p();continue}if(S===Wl&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===$y){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===jy){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===Gy||f===Wy||f===Uy){let S=f,A;for(t.keepQuotes!==!0&&(f="");u<l&&(A=p());){if(A===ps){f+=A+p();continue}if(A===S){t.keepQuotes===!0&&(f+=A);break}f+=A}g({type:"text",value:f});continue}if(f===By){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===Ky){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===Dy&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:Hy(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===Fy&&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};zl.exports=Jy});var Xl=V((zI,Yl)=>{"use strict";var Jl=yr(),Yy=Ul(),Xy=$l(),qy=Vl(),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={})=>qy(e,t);pe.stringify=(e,t={})=>Jl(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),Yy(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=Xy(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);Yl.exports=pe});var sn=V((VI,tf)=>{"use strict";var Zy=ze("path"),we="\\\\/",ql=`[^${we}]`,Qy=0,Ge="\\.",eR="\\+",tR="\\?",Ar="\\/",nR="(?=.)",Zl="[^/]",ms=`(?:${Ar}|$)`,Ql=`(?:^|${Ar})`,gs=`${Ge}{1,2}${ms}`,rR=`(?!${Ge})`,oR=`(?!${Ql}${gs})`,sR=`(?!${Ge}{0,1}${ms})`,iR=`(?!${gs})`,aR=`[^.${Ar}]`,cR=`${Zl}*?`,ef={DOT_LITERAL:Ge,PLUS_LITERAL:eR,QMARK_LITERAL:tR,SLASH_LITERAL:Ar,ONE_CHAR:nR,QMARK:Zl,END_ANCHOR:ms,DOTS_SLASH:gs,NO_DOT:rR,NO_DOTS:oR,NO_DOT_SLASH:sR,NO_DOTS_SLASH:iR,QMARK_NO_DOT:aR,STAR:cR,START_ANCHOR:Ql},uR={...ef,SLASH_LITERAL:`[${we}]`,QMARK:ql,STAR:`${ql}*?`,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}]|$)`},lR={__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"};tf.exports={DEFAULT_MAX_EXTGLOB_RECURSION:Qy,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:lR,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:Zy.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?uR:ef}}});var an=V(ce=>{"use strict";var fR=ze("path"),dR=process.platform==="win32",{REGEX_BACKSLASH:pR,REGEX_REMOVE_BACKSLASH:mR,REGEX_SPECIAL_CHARS:gR,REGEX_SPECIAL_CHARS_GLOBAL:_R}=sn();ce.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ce.hasRegexChars=e=>gR.test(e);ce.isRegexChar=e=>e.length===1&&ce.hasRegexChars(e);ce.escapeRegex=e=>e.replace(_R,"\\$1");ce.toPosixSlashes=e=>e.replace(pR,"/");ce.removeBackslashes=e=>e.replace(mR,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:dR===!0||fR.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 lf=V((YI,uf)=>{"use strict";var nf=an(),{CHAR_ASTERISK:_s,CHAR_AT:hR,CHAR_BACKWARD_SLASH:cn,CHAR_COMMA:SR,CHAR_DOT:hs,CHAR_EXCLAMATION_MARK:Ss,CHAR_FORWARD_SLASH:cf,CHAR_LEFT_CURLY_BRACE:Es,CHAR_LEFT_PARENTHESES:ys,CHAR_LEFT_SQUARE_BRACKET:ER,CHAR_PLUS:yR,CHAR_QUESTION_MARK:rf,CHAR_RIGHT_CURLY_BRACE:RR,CHAR_RIGHT_PARENTHESES:of,CHAR_RIGHT_SQUARE_BRACKET:CR}=sn(),sf=e=>e===cf||e===cn,af=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},AR=(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,I=!1,O=!1,v=!1,T=!1,K=0,D,x,w={value:"",depth:0,isGlob:!1},H=()=>l>=r,m=()=>c.charCodeAt(l+1),b=()=>(D=x,c.charCodeAt(++l));for(;l<r;){x=b();let ie;if(x===cn){I=w.backslashes=!0,x=b(),x===Es&&(k=!0);continue}if(k===!0||x===Es){for(K++;H()!==!0&&(x=b());){if(x===cn){I=w.backslashes=!0,b();continue}if(x===Es){K++;continue}if(k!==!0&&x===hs&&(x=b())===hs){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(k!==!0&&x===SR){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===RR&&(K--,K===0)){k=!1,f=w.isBrace=!0,T=!0;break}}if(o===!0)continue;break}if(x===cf){if(s.push(l),i.push(w),w={value:"",depth:0,isGlob:!1},T===!0)continue;if(D===hs&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(x===yR||x===hR||x===_s||x===rf||x===Ss)===!0&&m()===ys){if(g=w.isGlob=!0,S=w.isExtglob=!0,T=!0,x===Ss&&l===u&&(v=!0),o===!0){for(;H()!==!0&&(x=b());){if(x===cn){I=w.backslashes=!0,x=b();continue}if(x===of){g=w.isGlob=!0,T=!0;break}}continue}break}if(x===_s){if(D===_s&&(A=w.isGlobstar=!0),g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===rf){if(g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x===ER){for(;H()!==!0&&(ie=b());){if(ie===cn){I=w.backslashes=!0,b();continue}if(ie===CR){p=w.isBracket=!0,g=w.isGlob=!0,T=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&x===Ss&&l===u){O=w.negated=!0,u++;continue}if(n.noparen!==!0&&x===ys){if(g=w.isGlob=!0,o===!0){for(;H()!==!0&&(x=b());){if(x===ys){I=w.backslashes=!0,x=b();continue}if(x===of){T=!0;break}}continue}break}if(g===!0){if(T=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,le="",_="";u>0&&(le=c.slice(0,u),c=c.slice(u),d-=u),U&&g===!0&&d>0?(U=c.slice(0,d),_=c.slice(d)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&sf(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=nf.removeBackslashes(_)),U&&I===!0&&(U=nf.removeBackslashes(U)));let h={prefix:le,input:e,start:u,base:U,glob:_,isBrace:f,isBracket:p,isGlob:g,isExtglob:S,isGlobstar:A,negated:O,negatedExtglob:v};if(n.tokens===!0&&(h.maxDepth=0,sf(x)||i.push(w),h.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,af(i[F]),h.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,af(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};uf.exports=AR});var gf=V((XI,mf)=>{"use strict";var un=sn(),se=an(),{MAX_LENGTH:kr,POSIX_REGEX_SOURCE:kR,REGEX_NON_SPECIAL_CHARS:bR,REGEX_SPECIAL_CHARS_BACKREF:xR,REPLACEMENTS:ff}=un,OR=(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},Pt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,df=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},IR=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},pf=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(IR(t))return t.replace(/\\(.)/g,"$1")},TR=e=>{let t=e.map(pf).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},Rs=(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}}}}},PR=e=>{let t=0,n=[];for(;t<e.length;){let o=Rs(e.slice(t),!1);if(!o||o.type!=="*")return;let s=df(o.body).map(a=>a.trim());if(s.length!==1)return;let i=pf(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("")}]`}*`},wR=e=>{let t=0,n=e.trim(),r=Rs(n);for(;r;)t++,n=r.body.trim(),r=Rs(n);return t},NR=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:un.DEFAULT_MAX_EXTGLOB_RECURSION,r=df(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||TR(r)))return{risky:!0};for(let o of r){let s=PR(o);if(s)return{risky:!0,safeOutput:s};if(wR(o)>n)return{risky:!0}}return{risky:!1}},Cs=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=ff[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(kr,n.maxLength):kr,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=un.globChars(c),u=un.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:I,QMARK:O,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?O:v,H=n.bash===!0?D(n):T;n.capture&&(H=`(${H})`),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=[],U=[],le=[],_=s,h,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},Rn=C=>{m.output+=C.output!=null?C.output:C.value,fe(C.value)},Sp=()=>{let C=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)Ae(),m.start++,C++;return C%2===0?!1:(m.negated=!0,m.start++,!0)},Cn=C=>{m[C]++,le.push(C)},We=C=>{m[C]--,le.pop()},N=C=>{if(_.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,-_.output.length),_.type="star",_.value="*",_.output=H,m.output+=_.output)}if(b.length&&C.type!=="paren"&&(b[b.length-1].inner+=C.value),(C.value||C.output)&&Rn(C),_&&_.type==="text"&&C.type==="text"){_.value+=C.value,_.output=(_.output||"")+C.value;return}C.prev=_,i.push(C),_=C},An=(C,Y)=>{let R={...u[Y],conditions:1,inner:""};R.prev=_,R.parens=m.parens,R.output=m.output,R.startIndex=m.index,R.tokensIndex=i.length;let P=(n.capture?"(":"")+R.open;Cn("parens"),N({type:C,value:Y,output:m.output?"":g}),N({type:"paren",extglob:!0,value:Ae(),output:P}),b.push(R)},Ep=C=>{let Y=e.slice(C.startIndex,m.index+1),R=e.slice(C.startIndex+2,m.index),P=NR(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:h,output:""}),We("parens");return}let z=C.close+(n.capture?")":""),oe;if(C.type==="negate"){let G=H;if(C.inner&&C.inner.length>1&&C.inner.includes("/")&&(G=D(n)),(G!==H||ie()||/^\)+$/.test(ke()))&&(z=C.close=`)$))${G}`),C.inner.includes("*")&&(oe=ke())&&/^\.[^\\/.]+$/.test(oe)){let be=Cs(oe,{...t,fastpaths:!1}).output;z=C.close=`)${be})${G})`}C.prev.type==="bos"&&(m.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:h,output:z}),We("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let C=!1,Y=e.replace(xR,(R,P,z,oe,G,be)=>oe==="\\"?(C=!0,R):oe==="?"?P?P+oe+(G?O.repeat(G.length):""):be===0?w+(G?O.repeat(G.length):""):O.repeat(z.length):oe==="."?d.repeat(z.length):oe==="*"?P?P+oe+(G?H:""):H: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(h=Ae(),h==="\0")continue;if(h==="\\"){let R=F();if(R==="/"&&n.bash!==!0||R==="."||R===";")continue;if(!R){h+="\\",N({type:"text",value:h});continue}let P=/^\\+/.exec(ke()),z=0;if(P&&P[0].length>2&&(z=P[0].length,m.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=Ae():h+=Ae(),m.brackets===0){N({type:"text",value:h});continue}}if(m.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let R=_.value.slice(1);if(R.includes("[")&&(_.posix=!0,R.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),oe=_.value.slice(P+2),G=kR[oe];if(G){_.value=z+G,m.backtrack=!0,Ae(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,Rn({value:h});continue}if(m.quotes===1&&h!=='"'){h=se.escapeRegex(h),_.value+=h,Rn({value:h});continue}if(h==='"'){m.quotes=m.quotes===1?0:1,n.keepQuotes===!0&&N({type:"text",value:h});continue}if(h==="("){Cn("parens"),N({type:"paren",value:h});continue}if(h===")"){if(m.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Pt("opening","("));let R=b[b.length-1];if(R&&m.parens===R.parens+1){Ep(b.pop());continue}N({type:"paren",value:h,output:m.parens?")":"\\)"}),We("parens");continue}if(h==="["){if(n.nobracket===!0||!ke().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Pt("closing","]"));h=`\\${h}`}else Cn("brackets");N({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){N({type:"text",value:h,output:`\\${h}`});continue}if(m.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Pt("opening","["));N({type:"text",value:h,output:`\\${h}`});continue}We("brackets");let R=_.value.slice(1);if(_.posix!==!0&&R[0]==="^"&&!R.includes("/")&&(h=`/${h}`),_.value+=h,Rn({value:h}),n.literalBrackets===!1||se.hasRegexChars(R))continue;let P=se.escapeRegex(_.value);if(m.output=m.output.slice(0,-_.value.length),n.literalBrackets===!0){m.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,m.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){Cn("braces");let R={type:"brace",value:h,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};U.push(R),N(R);continue}if(h==="}"){let R=U[U.length-1];if(n.nobrace===!0||!R){N({type:"text",value:h,output:h});continue}let P=")";if(R.dots===!0){let z=i.slice(),oe=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&oe.unshift(z[G].value);P=OR(oe,n),m.backtrack=!0}if(R.comma!==!0&&R.dots!==!0){let z=m.output.slice(0,R.outputIndex),oe=m.tokens.slice(R.tokensIndex);R.value=R.output="\\{",h=P="\\}",m.output=z;for(let G of oe)m.output+=G.output||G.value}N({type:"brace",value:h,output:P}),We("braces"),U.pop();continue}if(h==="|"){b.length>0&&b[b.length-1].conditions++,N({type:"text",value:h});continue}if(h===","){let R=h,P=U[U.length-1];P&&le[le.length-1]==="braces"&&(P.comma=!0,R="|"),N({type:"comma",value:h,output:R});continue}if(h==="/"){if(_.type==="dot"&&m.index===m.start+1){m.start=m.index+1,m.consumed="",m.output="",i.pop(),_=s;continue}N({type:"slash",value:h,output:p});continue}if(h==="."){if(m.braces>0&&_.type==="dot"){_.value==="."&&(_.output=d);let R=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,R.dots=!0;continue}if(m.braces+m.parens===0&&_.type!=="bos"&&_.type!=="slash"){N({type:"text",value:h,output:d});continue}N({type:"dot",value:h,output:d});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){An("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!se.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(ke()))&&(z=`\\${h}`),N({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){N({type:"qmark",value:h,output:v});continue}N({type:"qmark",value:h,output:O});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){An("negate",h);continue}if(n.nonegate!==!0&&m.index===0){Sp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){An("plus",h);continue}if(_&&_.value==="("||n.regex===!1){N({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||m.parens>0){N({type:"plus",value:h});continue}N({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){N({type:"at",extglob:!0,value:h,output:""});continue}N({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let R=bR.exec(ke());R&&(h+=R[0],m.index+=R[0].length),N({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,m.backtrack=!0,m.globstar=!0,fe(h);continue}let C=ke();if(n.noextglob!==!0&&/^\([^?]/.test(C)){An("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){fe(h);continue}let R=_.prev,P=R.prev,z=R.type==="slash"||R.type==="bos",oe=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||C[0]&&C[0]!=="/")){N({type:"star",value:h,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:h,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()){_.type="globstar",_.value+=h,_.output=D(n),m.output=_.output,m.globstar=!0,fe(h);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&!oe&&ie()){m.output=m.output.slice(0,-(R.output+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,m.globstar=!0,m.output+=R.output+_.output,fe(h);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+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=`${D(n)}${p}|${p}${xe})`,_.value+=h,m.output+=R.output+_.output,m.globstar=!0,fe(h+Ae()),N({type:"slash",value:"/",output:""});continue}if(R.type==="bos"&&C[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${p}|${D(n)}${p})`,m.output=_.output,m.globstar=!0,fe(h+Ae()),N({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,m.output+=_.output,m.globstar=!0,fe(h);continue}let Y={type:"star",value:h,output:H};if(n.bash===!0){Y.output=".*?",(_.type==="bos"||_.type==="slash")&&(Y.output=x+Y.output),N(Y);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){Y.output=h,N(Y);continue}(m.index===m.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(m.output+=k,_.output+=k):n.dot===!0?(m.output+=I,_.output+=I):(m.output+=x,_.output+=x),F()!=="*"&&(m.output+=g,_.output+=g)),N(Y)}for(;m.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Pt("closing","]"));m.output=se.escapeLast(m.output,"["),We("brackets")}for(;m.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Pt("closing",")"));m.output=se.escapeLast(m.output,"("),We("parens")}for(;m.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Pt("closing","}"));m.output=se.escapeLast(m.output,"{"),We("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.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};Cs.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(kr,n.maxLength):kr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=ff[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}=un.globChars(s),S=n.dot?d:u,A=n.dot?f:u,k=n.capture?"":"?:",I={negated:!1,prefix:""},O=n.bash===!0?".*?":p;n.capture&&(O=`(${O})`);let v=x=>x.noglobstar===!0?O:`(${k}(?:(?!${g}${x.dot?l:i}).)*?)`,T=x=>{switch(x){case"*":return`${S}${c}${O}`;case".*":return`${i}${c}${O}`;case"*.*":return`${S}${O}${i}${c}${O}`;case"*/*":return`${S}${O}${a}${c}${A}${O}`;case"**":return S+v(n);case"**/*":return`(?:${S}${v(n)}${a})?${A}${c}${O}`;case"**/*.*":return`(?:${S}${v(n)}${a})?${A}${O}${i}${c}${O}`;case"**/.*":return`(?:${S}${v(n)}${a})?${i}${c}${O}`;default:{let w=/^(.*?)\.(\w+)$/.exec(x);if(!w)return;let H=T(w[1]);return H?H+i+w[2]:void 0}}},K=se.removePrefix(e,I),D=T(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};mf.exports=Cs});var hf=V((qI,_f)=>{"use strict";var vR=ze("path"),MR=lf(),As=gf(),ks=an(),LR=sn(),HR=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=HR(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=ks.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?ks.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=ks.isWindows(n))=>(t instanceof RegExp?t:ee.makeRe(t,n)).test(vR.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)):As(e,{...t,fastpaths:!1});ee.scan=(e,t)=>MR(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=As.fastpaths(e,t)),o.output||(o=As(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=LR;_f.exports=ee});var Ef=V((ZI,Sf)=>{"use strict";Sf.exports=hf()});var bf=V((QI,kf)=>{"use strict";var Rf=ze("util"),Cf=Xl(),Ne=Ef(),bs=an(),yf=e=>e===""||e==="./",Af=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: "${Rf.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>J.contains(e,r,n));if(typeof t=="string"){if(yf(e)||yf(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(!bs.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: "${Rf.inspect(e)}"`);return[].concat(t).every(r=>Ne(r,n)(e))};J.capture=(e,t,n)=>{let r=bs.isWindows(n),s=Ne.makeRe(String(e),{...n,capture:!0}).exec(r?bs.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 Cf(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||!Af(e)?[e]:Cf(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=Af;kf.exports=J});import{realpathSync as Hk}from"node:fs";import{resolve as Uk}from"node:path";import{fileURLToPath as Dk,pathToFileURL as Fk}from"node:url";import{createHash as Lp}from"node:crypto";import{homedir as Hp}from"node:os";import{dirname as rb,join as Up,parse as ob,resolve as sb}from"node:path";var li="EV_AI_LAUNCHER_VERSION";var fi="EV_AI_HOOK_SOURCE",di="EV_AI_HOOK_FALLBACK_REASON",pi="EV_AI_LAUNCHER_SCOPE",Kr="EV_AI_LAUNCHER_READY_FD";var mi="--defer-user-spec",kn="--cap";var gi=Buffer.from([1]);var Kk=1024*1024,Gk=4*1024*1024,Wk=64*1024,zk=64*1024,Vk=64*1024;var Gr=4096,Jk=4*1024*1024;import{createHash as xp,randomBytes as Op}from"node:crypto";import{existsSync as Wr,mkdirSync as Ip,readdirSync as Tp,readFileSync as Pp,renameSync as _i,statSync as yi,unlinkSync as hi,writeFileSync as wp}from"node:fs";import{basename as Np,dirname as Si,join as Ri,relative as vp}from"node:path";function E(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
15
|
-
`)}function Dt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Ft(e){return xp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){Ip(Si(e),{recursive:!0});let n=Ri(Si(e),`.${Np(e)}.${process.pid}.${Op(4).toString("hex")}.tmp`);try{wp(n,t,"utf8");try{_i(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){hi(e),_i(n,e);return}throw r}}catch(r){try{hi(n)}catch{}throw r}}function bn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function zr(){process.stdout.write('{"continue":true}')}function M(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function $t(){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 xn(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 Vr(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(M("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=M("CURSOR_PROJECT_DIR")??M("CLAUDE_PROJECT_DIR");if(n&&Wr(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 Le(e=process.cwd()){return(await Vr(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var Ei=new Map;function On(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Mp(e){let t;try{t=Pp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(On(t))}}catch{return{ok:!1,reason:"parse"}}}function Ci(e){let t=Ei.get(e);if(t!==void 0)return t;let n=Mp(e);return Ei.set(e,n),n}function Ai(e){return Ci(e)}function ne(e,t){let n=Ci(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 L(e,t){let n=He(e,t);return typeof n=="string"?n:""}var Je=500;function ki(e,t=2){if(!Wr(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Tp(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Ri(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:vp(e,l),size:yi(l).size})}catch{continue}if(n.length>=Je){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function Jr(e){return Wr(e)?{present:!0,size:yi(e).size}:{present:!1,size:0}}var Oi="https://hooks.ev-ai.ai",In=".claude/ev-ai-runtime-report.json",Ii="config.json",Dp="max_concurrent_hooks",cb=1024*1024,Fp=new Set(["localhost","127.0.0.1","[::1]","::1"]),$p=["claude","cursor","codex"],Tn=[In,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Yr=/^[A-Za-z0-9._~-]+$/;function Pn(e){return e!==void 0&&$p.includes(e)}function Ti(e){if(!e||typeof e!="object")return;let t=e[Dp];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function bi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function jt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Xr(e){let t,n,r,o,s,i;for(let a=0;a<e.length;a++){let c=e[a];if(c!==void 0){if(c==="--runner"){let l=jt(e,a);t=l.value,a=l.next;continue}if(c.startsWith("--runner=")){t=c.slice(9);continue}if(c==="--url"){let l=jt(e,a);l.value&&(r=l.value),a=l.next;continue}if(c.startsWith("--url=")){r=c.slice(6);continue}if(c==="--token"){let l=jt(e,a);l.value&&(o=l.value),a=l.next;continue}if(c.startsWith("--token=")){o=c.slice(8);continue}if(c==="--base-url"){let l=jt(e,a);l.value&&(s=l.value),a=l.next;continue}if(c.startsWith("--base-url=")){s=c.slice(11);continue}if(c===kn){let l=jt(e,a);i=bi(l.value)??i,a=l.next;continue}if(c.startsWith(`${kn}=`)){i=bi(c.slice(kn.length+1))??i;continue}c!==mi&&!c.startsWith("-")&&n===void 0&&(n=c)}}return{runner:Pn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{}}}function wn(e,t=Oi){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Bt(e=Hp()){return Up(e,".ev-ai",Ii)}function Pi(e,t){return{...e,...t}}function xi(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 Nn(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Fp.has(t.hostname):!1}catch{return!1}}function qr(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 at(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!Nn(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=qr(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Yr.test(n))return`org token must match ${Yr.source} (got: ${n})`;if(xi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(xi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function yt(e){return new URL(e).toString()}function Zr(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?wn(n):""}function vn(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 wi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=wn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=at(n);return r?{problem:r}:{url:yt(n)}}var Qr="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Ni(e){let t=e[Qr]?.trim();if(!t)return{};let n=at(t);return n?{problem:n}:{url:yt(t)}}function Kt(e){if(at(e))return;let t;try{t=new URL(e)}catch{return}let n=qr(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 Lp("sha256").update(i).digest("hex").slice(0,32)}var Ye=2,vi="node_modules/@ev-ai/agent-hook/dist/hook.mjs",Oe="ev-ai-agent-hook";function jp(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Mn(e){let t=jp(e);return t===Oe||t===`${Oe}.exe`}var Mi="https://cdn.ev-ai.ai/agent-hook";var eo=`current/${Oe}`,to=`.ev-ai/agent-hook/${Oe}`,Li=5e3,Hi=5e3,no=3e3;var Ln=3e3,Ui=1500,Di=4*1024,ro=256*1024,Bp=4*1024,Fi=32*1024,Ue="1.3.5",Hn=`@ev-ai/agent-hook@${Ue}`,$i="ev-ai runtime report";import{chmodSync as ka,cpSync as ba,existsSync as Xe,mkdirSync as So,readFileSync as Qm,rmSync as Gn,symlinkSync as eg,writeFileSync as tg}from"node:fs";import{homedir as De}from"node:os";import{dirname as Eo,isAbsolute as ng,join as W,relative as xa,resolve as Ca,sep as rg}from"node:path";import{fileURLToPath as og}from"node:url";import{existsSync as Kp,readdirSync as ji}from"node:fs";import{homedir as Un}from"node:os";import{join as ae}from"node:path";function Bi(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 oo(e=process.platform){let t=Bi(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!Kp(r))return n;let o=ji(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function so(e=process.platform,t=Un()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:oo(e)}}function Gp(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 Wp(e=process.platform,t=Un()){let n=[ae(Gp(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of ji(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function zp(e=process.platform,t=Un()){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 Dn(e,t=process.platform,n=Un()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=so(t,n);return[r,...o]}case"cursor":return Wp(t,n);default:return zp(t,n)}}import{createHash as Qi,randomBytes as cm}from"node:crypto";import{existsSync as ea,mkdirSync as ao,readFileSync as ta,unlinkSync as na,writeFileSync as ra}from"node:fs";import{homedir as co}from"node:os";import{dirname as $n,join as uo,resolve as um}from"node:path";var Vp=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Jp=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]")||Jp.has(n)||r.includes("[bot]")||Vp.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 Yp,readFileSync as Xp}from"node:fs";import{hostname as Ki,userInfo as qp}from"node:os";function Rt(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Gi(e=process.env){return Rt(X("CURSOR_SANDBOX",e))}var Zp=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Qp(e){return Zp.some(t=>!!X(t,e))}function em(e){if(X("KUBERNETES_SERVICE_HOST",e)||Rt(X("REMOTE_CONTAINERS",e))||Rt(X("DEVCONTAINER",e)))return!0;try{if(Yp("/.dockerenv")||Xp("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function Wi(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function tm(e,t=process.platform){return Wi(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function nm(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function rm(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return M(e)}function om(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!sm(X("CURSOR_VERSION",n))}function sm(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function io(e){if(nm(e.sessionId))return!0;let t=e.hostname??Ki(),n=e.osUser??Vi(e.env);return om(t,n,e.env)}function im(e){return Rt(X("CURSOR_AGENT",e.env))?!0:io(e)}function am(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))||Wi(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function Gt(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(Rt(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!tm(t,n)&&im(e)&&(Rt(X("CURSOR_AGENT",t))||rm(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(Qp(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":em(t)?"container":am(t)?"interactive":"unknown"}async function zi(){return await te("systemd-detect-virt",[],1e3)}function Vi(e=process.env,t=qp){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 Ji(){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=Vi(),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 Fn(){return Ki()}var lm="installation.json",fm="cloud-bootstrap.lock",dm=6e4;function oa(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function ye(e=co()){return uo(e,".ev-ai","agent-hook")}function pm(e=co()){return uo(ye(e),lm)}function sa(e){return uo($n(e),fm)}function ia(){return cm(8).toString("hex")}function Ct(e){return Qi("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 aa(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function mm(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!aa(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 ca(e,t){return e&&aa(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),mm(t))}function gm(e){return/^[0-9a-f]{16}$/.test(e)}function _m(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 Ct(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return Ct(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return Ct(`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 Ct(`gitlab|${t}|${n}`)}return null}var hm="cursoragent@cursor.com";function Sm(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===hm?null:t}function Em(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function ym(e){return Dt(e).replace(/\.git$/i,"").toLowerCase()}async function Rm(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?ym(t):e}async function Cm(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 Am(e,t){let n=Em(e,t);return n?Ct(`cursor_cloud|${n}|${Sm(e)??""}`):null}async function km(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Rm(n),o=await Cm(n);return Ct(`claude_remote|${r}|${o??""}`)}function Yi(e,t){let n=ca(e,t);if(n)return n;let r=_m(t);return r||ia()}async function bm(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||um(e);return Qi("sha256").update(n).digest("hex").slice(0,16)}function xm(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 Om(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=xm(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 ct(e){if(ea(e))try{return Om(ta(e,"utf8"))}catch{}}function lo(e){return ct(e)}function ua(e,t,n){let r=ct(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
|
-
`
|
|
17
|
-
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(ma(r))return!1;let o=r instanceof Error?r.message:String(r);return E(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function fa(e){if(e)try{na(sa(e))}catch{}}function da(e,t){let r=ct(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function pa(e,t,n){if(!n)return;let r=ct(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:
|
|
19
|
-
`,{encoding:"utf8",flag:"wx"})}
|
|
20
|
-
`)}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
`).trimEnd();return(0,Ce.usableCatalogText)(f)}});var Gc=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=Th;Q.capComponentTextBytes=Kc;Q.prepareComponentInspectionText=Ph;Q.redactComponentSource=Fo;Q.componentSourceContainsRedactableSecret=Uh;Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";Q.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;Q.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function Th(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 Kc(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 Ph(e){if(!(e==null||e.length===0))return Kc(Fo(e),Q.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var wh=[/\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],Nh=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,vh=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,Mh=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,Lh=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,Bc=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function Hh(e){let t=e.replace(vh,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(Mh,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(Nh,(n,r)=>`${r}${Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of wh)t=t.replace(n,Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return t}function Fo(e){if(e.length===0)return e;let t=e.split(`
|
|
12
|
+
`),n=!1;return t.map(o=>n?Bc.test(o)?(n=!1,o):o.trim().length===0?o:Q.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:Lh.test(o)&&!Bc.test(o)?(n=!0,o):Hh(o)).join(`
|
|
13
|
+
`)}function Uh(e){return Fo(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=Jh;y.normalizeRepositoryRelativePath=Wc;y.nativeKeyForSkillPath=Yh;y.nativeKeyForRulePath=Xh;y.nativeKeyForCommandPath=qh;y.serializeComponentIdentity=Vc;y.buildComponentReference=Qh;y.validateComponentReference=eS;var Dh=ze("node:crypto"),Fh=ze("node:path"),$h="cmp1_",jh=/^cmp1_[A-Za-z0-9_-]{43}$/,Bh=["/skills/","/skills-cursor/"],Kh=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,Gh=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Wh=[".cursor",".claude",".codex"],zh={".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=>zh[o]).find(o=>o!==void 0)??"unknown")}function Jh(e,t){return`runtime-install:${e}/${t}`}function ar(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function Wc(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=Fh.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return ar(n,"sourcePath")}function Yh(e){let t=e.replaceAll("\\","/");for(let n of Bh){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function zc(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 Xh(e){return zc(e,Kh,/\.(mdc|md|rules)$/i)}function qh(e){return zc(e,Gh,/\.(md|mdc|toml)$/i)}function Zh(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Vc(e){let t=[ar(e.installationRootExternalKey,"installationRootExternalKey"),ar(e.installableKind,"installableKind"),Wc(e.sourcePath),ar(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Zh).join("|")}`,"utf8")}function Qh(e){let t=(0,Dh.createHash)("sha256").update(Vc(e)).digest("base64url");return`${$h}${t}`}function eS(e){return jh.test(e)}var Ae=rr();Object.defineProperty(y,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Ae.buildMcpFamilyCanonicalKey}});Object.defineProperty(y,"foldMcpName",{enumerable:!0,get:function(){return Ae.foldMcpName}});Object.defineProperty(y,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Ae.hashMcpLaunchIdentity}});Object.defineProperty(y,"launchContainsCredentials",{enumerable:!0,get:function(){return Ae.launchContainsCredentials}});Object.defineProperty(y,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Ae.maskMcpLaunchForDisplay}});Object.defineProperty(y,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Ae.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(y,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Ae.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(y,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Ae.normalizeMcpToolNames}});Object.defineProperty(y,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Ae.projectMcpLaunchIdentity}});Object.defineProperty(y,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Ae.projectMcpMissingLaunchIdentity}});Object.defineProperty(y,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Ae.serializeMcpLaunchIdentity}});var Tt=sr();Object.defineProperty(y,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return Tt.PACKAGE_FIELD_MAX}});Object.defineProperty(y,"npxExecBin",{enumerable:!0,get:function(){return Tt.npxExecBin}});Object.defineProperty(y,"npxPackageSpecs",{enumerable:!0,get:function(){return Tt.npxPackageSpecs}});Object.defineProperty(y,"packageNameFromSpec",{enumerable:!0,get:function(){return Tt.packageNameFromSpec}});Object.defineProperty(y,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return Tt.pinnedPackageVersionFromNpx}});Object.defineProperty(y,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return Tt.pinnedPackageVersionFromSpec}});var Jc=Nc();Object.defineProperty(y,"McpPackageEcosystem",{enumerable:!0,get:function(){return Jc.McpPackageEcosystem}});Object.defineProperty(y,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return Jc.resolveMcpPackageIdentity}});var cr=Dc();Object.defineProperty(y,"classifyMcpProvenance",{enumerable:!0,get:function(){return cr.classifyMcpProvenance}});Object.defineProperty(y,"displayPublisherName",{enumerable:!0,get:function(){return cr.displayPublisherName}});Object.defineProperty(y,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return cr.EMPTY_NPM_PUBLISHER}});Object.defineProperty(y,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return cr.isNpmRegistryPublisher}});var Yc=$c();Object.defineProperty(y,"mcpServerNameMatchesToolSegment",{enumerable:!0,get:function(){return Yc.mcpServerNameMatchesToolSegment}});Object.defineProperty(y,"mcpServerToolSegmentForms",{enumerable:!0,get:function(){return Yc.mcpServerToolSegmentForms}});var $o=jc();Object.defineProperty(y,"parseFrontmatterDescription",{enumerable:!0,get:function(){return $o.parseFrontmatterDescription}});Object.defineProperty(y,"parseFrontmatterField",{enumerable:!0,get:function(){return $o.parseFrontmatterField}});Object.defineProperty(y,"usableCatalogText",{enumerable:!0,get:function(){return $o.usableCatalogText}});var nt=Gc();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 br=V(Ee=>{"use strict";Ee.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;Ee.find=(e,t)=>e.nodes.find(n=>n.type===t);Ee.exceedsLimit=(e,t,n=1,r)=>r===!1||!Ee.isInteger(e)||!Ee.isInteger(t)?!1:(Number(t)-Number(e))/Number(n)>=r;Ee.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)};Ee.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;Ee.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;Ee.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;Ee.reduce=e=>e.reduce((t,n)=>(n.type==="text"&&t.push(n.value),n.type==="range"&&(n.type="text"),t),[]);Ee.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 Or=V((YI,kl)=>{"use strict";var xl=br();kl.exports=(e,t={})=>{let n=(r,o={})=>{let s=t.escapeInvalid&&xl.isInvalidBrace(o),i=r.invalid===!0&&t.escapeInvalid===!0,a="";if(r.value)return(s||i)&&xl.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 Ol=V((XI,bl)=>{"use strict";bl.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var Hl=V((qI,Ll)=>{"use strict";var Il=Ol(),dt=(e,t,n)=>{if(Il(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(Il(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(dt.cache.hasOwnProperty(c))return dt.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=Ml(e)||Ml(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=Tl(S,Math.abs(l),f,r),l=f.a=0}return u>=0&&(p=Tl(l,u,f,r)),f.negatives=g,f.positives=p,f.result=Ay(g,p,r),r.capture===!0?f.result=`(${f.result})`:r.wrap!==!1&&p.length+g.length>1&&(f.result=`(?:${f.result})`),dt.cache[c]=f,f.result};function Ay(e,t,n){let r=Ss(e,t,"-",!1,n)||[],o=Ss(t,e,"",!1,n)||[],s=Ss(e,t,"-?",!0,n)||[];return r.concat(s).concat(o).join("|")}function xy(e,t){let n=1,r=1,o=wl(e,n),s=new Set([t]);for(;e<=o&&o<=t;)s.add(o),n+=1,o=wl(e,n);for(o=Nl(t+1,r)-1;e<o&&o<=t;)s.add(o),r+=1,o=Nl(t+1,r)-1;return s=[...s],s.sort(Oy),s}function ky(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let r=by(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+=Iy(c,l,n):i++}return i&&(s+=n.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[i],digits:o}}function Tl(e,t,n,r){let o=xy(e,t),s=[],i=e,a;for(let c=0;c<o.length;c++){let l=o[c],u=ky(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+vl(a.count),i=l+1;continue}n.isPadded&&(d=Ty(l,n,r)),u.string=d+u.pattern+vl(u.count),s.push(u),i=l+1,a=u}return s}function Ss(e,t,n,r,o){let s=[];for(let i of e){let{string:a}=i;!r&&!Pl(t,"string",a)&&s.push(n+a),r&&Pl(t,"string",a)&&s.push(n+a)}return s}function by(e,t){let n=[];for(let r=0;r<e.length;r++)n.push([e[r],t[r]]);return n}function Oy(e,t){return e>t?1:t>e?-1:0}function Pl(e,t,n){return e.some(r=>r[t]===n)}function wl(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function Nl(e,t){return e-e%Math.pow(10,t)}function vl(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function Iy(e,t,n){return`[${e}${t-e===1?"":"-"}${t}]`}function Ml(e){return/^-?(0+)\d/.test(e)}function Ty(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}}`}}dt.cache={};dt.clearCache=()=>dt.cache={};Ll.exports=dt});var Rs=V((ZI,Kl)=>{"use strict";var Py=ze("util"),Dl=Hl(),Ul=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),wy=e=>t=>e===!0?Number(t):String(t),Es=e=>typeof e=="number"||typeof e=="string"&&e!=="",cn=e=>Number.isInteger(+e),ys=e=>{let t=`${e}`,n=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++n]==="0";);return n>0},Ny=(e,t,n)=>typeof e=="string"||typeof t=="string"?!0:n.stringify===!0,vy=(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},Tr=(e,t)=>{let n=e[0]==="-"?"-":"";for(n&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return n?"-"+e:e},My=(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=>Tr(String(a),n)).join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.map(a=>Tr(String(a),n)).join("|")})`),o&&s?i=`${o}|${s}`:i=o||s,t.wrap?`(${r}${i})`:i},Fl=(e,t,n,r)=>{if(n)return Dl(e,t,{wrap:!1,...r});let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`},$l=(e,t,n)=>{if(Array.isArray(e)){let r=n.wrap===!0,o=n.capture?"":"?:";return r?`(${o}${e.join("|")})`:e.join("|")}return Dl(e,t,n)},jl=(...e)=>new RangeError("Invalid range arguments: "+Py.inspect(...e)),Bl=(e,t,n)=>{if(n.strictRanges===!0)throw jl([e,t]);return[]},Ly=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Hy=(e,t,n=1,r={})=>{let o=Number(e),s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(r.strictRanges===!0)throw jl([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=ys(a)||ys(c)||ys(l),d=u?Math.max(a.length,c.length,l.length):0,f=u===!1&&Ny(e,t,r)===!1,p=r.transform||wy(f);if(r.toRegex&&n===1)return Fl(Tr(e,d),Tr(t,d),!0,r);let g={negatives:[],positives:[]},S=I=>g[I<0?"negatives":"positives"].push(Math.abs(I)),A=[],x=0;for(;i?o>=s:o<=s;)r.toRegex===!0&&n>1?S(o):A.push(vy(p(o,x),d,f)),o=i?o-n:o+n,x++;return r.toRegex===!0?n>1?My(g,r,d):$l(A,null,{wrap:!1,...r}):A},Uy=(e,t,n=1,r={})=>{if(!cn(e)&&e.length>1||!cn(t)&&t.length>1)return Bl(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 Fl(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?$l(u,null,{wrap:!1,options:r}):u},Ir=(e,t,n,r={})=>{if(t==null&&Es(e))return[e];if(!Es(e)||!Es(t))return Bl(e,t,r);if(typeof n=="function")return Ir(e,t,1,{transform:n});if(Ul(n))return Ir(e,t,0,n);let o={...r};return o.capture===!0&&(o.wrap=!0),n=n||o.step||1,cn(n)?cn(e)&&cn(t)?Hy(e,t,n,o):Uy(e,t,Math.max(Math.abs(n),1),o):n!=null&&!Ul(n)?Ly(n,o):Ir(e,t,1,n)};Kl.exports=Ir});var zl=V((QI,Wl)=>{"use strict";var Dy=Rs(),Gl=br(),Fy=(e,t={})=>{let n=(r,o={})=>{let s=Gl.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=Gl.reduce(r.nodes),d=Dy(...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)};Wl.exports=Fy});var Yl=V((eT,Jl)=>{"use strict";var $y=Rs(),Vl=Or(),wt=br(),pt=(e="",t="",n=!1)=>{let r=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return n?wt.flatten(t).map(o=>`{${o}}`):t;for(let o of e)if(Array.isArray(o))for(let s of o)r.push(pt(s,t,n));else for(let s of t)n===!0&&typeof s=="string"&&(s=`{${s}}`),r.push(Array.isArray(s)?pt(o,s,n):o+s);return wt.flatten(r)},jy=(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(pt(a.pop(),Vl(o,t)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){a.push(pt(a.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=wt.reduce(o.nodes);if(wt.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=$y(...d,t);f.length===0&&(f=Vl(o,t)),a.push(pt(a.pop(),f)),o.nodes=[];return}let c=wt.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(pt(a.pop(),l,c));continue}if(f.value&&f.type!=="open"){l.push(pt(l.pop(),f.value));continue}f.nodes&&r(f,o)}return l};return wt.flatten(r(e))};Jl.exports=jy});var ql=V((tT,Xl)=>{"use strict";Xl.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 nf=V((nT,tf)=>{"use strict";var By=Or(),{MAX_LENGTH:Zl,CHAR_BACKSLASH:Cs,CHAR_BACKTICK:Ky,CHAR_COMMA:Gy,CHAR_DOT:Wy,CHAR_LEFT_PARENTHESES:zy,CHAR_RIGHT_PARENTHESES:Vy,CHAR_LEFT_CURLY_BRACE:Jy,CHAR_RIGHT_CURLY_BRACE:Yy,CHAR_LEFT_SQUARE_BRACKET:Ql,CHAR_RIGHT_SQUARE_BRACKET:ef,CHAR_DOUBLE_QUOTE:Xy,CHAR_SINGLE_QUOTE:qy,CHAR_NO_BREAK_SPACE:Zy,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Qy}=ql(),eR=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let n=t||{},r=typeof n.maxLength=="number"?Math.min(Zl,n.maxLength):Zl;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===Qy||f===Zy)){if(f===Cs){g({type:"text",value:(t.keepEscaping?f:"")+p()});continue}if(f===ef){g({type:"text",value:"\\"+f});continue}if(f===Ql){c++;let S;for(;u<l&&(S=p());){if(f+=S,S===Ql){c++;continue}if(S===Cs){f+=p();continue}if(S===ef&&(c--,c===0))break}g({type:"text",value:f});continue}if(f===zy){i=g({type:"paren",nodes:[]}),s.push(i),g({type:"text",value:f});continue}if(f===Vy){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===Xy||f===qy||f===Ky){let S=f,A;for(t.keepQuotes!==!0&&(f="");u<l&&(A=p());){if(A===Cs){f+=A+p();continue}if(A===S){t.keepQuotes===!0&&(f+=A);break}f+=A}g({type:"text",value:f});continue}if(f===Jy){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===Yy){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===Gy&&d>0){if(i.ranges>0){i.ranges=0;let S=i.nodes.shift();i.nodes=[S,{type:"text",value:By(i)}]}g({type:"comma",value:f}),i.commas++;continue}if(f===Wy&&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(x=>{x.nodes||(x.type==="open"&&(x.isOpen=!0),x.type==="close"&&(x.isClose=!0),x.nodes||(x.type="text"),x.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};tf.exports=eR});var sf=V((rT,of)=>{"use strict";var rf=Or(),tR=zl(),nR=Yl(),rR=nf(),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={})=>rR(e,t);pe.stringify=(e,t={})=>rf(typeof e=="string"?pe.parse(e,t):e,t);pe.compile=(e,t={})=>(typeof e=="string"&&(e=pe.parse(e,t)),tR(e,t));pe.expand=(e,t={})=>{typeof e=="string"&&(e=pe.parse(e,t));let n=nR(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);of.exports=pe});var un=V((oT,ff)=>{"use strict";var oR=ze("path"),we="\\\\/",af=`[^${we}]`,sR=0,Ge="\\.",iR="\\+",aR="\\?",Pr="\\/",cR="(?=.)",cf="[^/]",As=`(?:${Pr}|$)`,uf=`(?:^|${Pr})`,xs=`${Ge}{1,2}${As}`,uR=`(?!${Ge})`,lR=`(?!${uf}${xs})`,fR=`(?!${Ge}{0,1}${As})`,dR=`(?!${xs})`,pR=`[^.${Pr}]`,mR=`${cf}*?`,lf={DOT_LITERAL:Ge,PLUS_LITERAL:iR,QMARK_LITERAL:aR,SLASH_LITERAL:Pr,ONE_CHAR:cR,QMARK:cf,END_ANCHOR:As,DOTS_SLASH:xs,NO_DOT:uR,NO_DOTS:lR,NO_DOT_SLASH:fR,NO_DOTS_SLASH:dR,QMARK_NO_DOT:pR,STAR:mR,START_ANCHOR:uf},gR={...lf,SLASH_LITERAL:`[${we}]`,QMARK:af,STAR:`${af}*?`,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}]|$)`},_R={__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"};ff.exports={DEFAULT_MAX_EXTGLOB_RECURSION:sR,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:_R,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:oR.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?gR:lf}}});var ln=V(ce=>{"use strict";var hR=ze("path"),SR=process.platform==="win32",{REGEX_BACKSLASH:ER,REGEX_REMOVE_BACKSLASH:yR,REGEX_SPECIAL_CHARS:RR,REGEX_SPECIAL_CHARS_GLOBAL:CR}=un();ce.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);ce.hasRegexChars=e=>RR.test(e);ce.isRegexChar=e=>e.length===1&&ce.hasRegexChars(e);ce.escapeRegex=e=>e.replace(CR,"\\$1");ce.toPosixSlashes=e=>e.replace(ER,"/");ce.removeBackslashes=e=>e.replace(yR,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:SR===!0||hR.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 Ef=V((iT,Sf)=>{"use strict";var df=ln(),{CHAR_ASTERISK:ks,CHAR_AT:AR,CHAR_BACKWARD_SLASH:fn,CHAR_COMMA:xR,CHAR_DOT:bs,CHAR_EXCLAMATION_MARK:Os,CHAR_FORWARD_SLASH:hf,CHAR_LEFT_CURLY_BRACE:Is,CHAR_LEFT_PARENTHESES:Ts,CHAR_LEFT_SQUARE_BRACKET:kR,CHAR_PLUS:bR,CHAR_QUESTION_MARK:pf,CHAR_RIGHT_CURLY_BRACE:OR,CHAR_RIGHT_PARENTHESES:mf,CHAR_RIGHT_SQUARE_BRACKET:IR}=un(),gf=e=>e===hf||e===fn,_f=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},TR=(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,x=!1,I=!1,O=!1,v=!1,T=!1,K=0,D,b,w={value:"",depth:0,isGlob:!1},H=()=>l>=r,m=()=>c.charCodeAt(l+1),k=()=>(D=b,c.charCodeAt(++l));for(;l<r;){b=k();let ie;if(b===fn){I=w.backslashes=!0,b=k(),b===Is&&(x=!0);continue}if(x===!0||b===Is){for(K++;H()!==!0&&(b=k());){if(b===fn){I=w.backslashes=!0,k();continue}if(b===Is){K++;continue}if(x!==!0&&b===bs&&(b=k())===bs){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(x!==!0&&b===xR){if(f=w.isBrace=!0,g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===OR&&(K--,K===0)){x=!1,f=w.isBrace=!0,T=!0;break}}if(o===!0)continue;break}if(b===hf){if(s.push(l),i.push(w),w={value:"",depth:0,isGlob:!1},T===!0)continue;if(D===bs&&l===u+1){u+=2;continue}d=l+1;continue}if(n.noext!==!0&&(b===bR||b===AR||b===ks||b===pf||b===Os)===!0&&m()===Ts){if(g=w.isGlob=!0,S=w.isExtglob=!0,T=!0,b===Os&&l===u&&(v=!0),o===!0){for(;H()!==!0&&(b=k());){if(b===fn){I=w.backslashes=!0,b=k();continue}if(b===mf){g=w.isGlob=!0,T=!0;break}}continue}break}if(b===ks){if(D===ks&&(A=w.isGlobstar=!0),g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===pf){if(g=w.isGlob=!0,T=!0,o===!0)continue;break}if(b===kR){for(;H()!==!0&&(ie=k());){if(ie===fn){I=w.backslashes=!0,k();continue}if(ie===IR){p=w.isBracket=!0,g=w.isGlob=!0,T=!0;break}}if(o===!0)continue;break}if(n.nonegate!==!0&&b===Os&&l===u){O=w.negated=!0,u++;continue}if(n.noparen!==!0&&b===Ts){if(g=w.isGlob=!0,o===!0){for(;H()!==!0&&(b=k());){if(b===Ts){I=w.backslashes=!0,b=k();continue}if(b===mf){T=!0;break}}continue}break}if(g===!0){if(T=!0,o===!0)continue;break}}n.noext===!0&&(S=!1,g=!1);let U=c,le="",_="";u>0&&(le=c.slice(0,u),c=c.slice(u),d-=u),U&&g===!0&&d>0?(U=c.slice(0,d),_=c.slice(d)):g===!0?(U="",_=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&gf(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),n.unescape===!0&&(_&&(_=df.removeBackslashes(_)),U&&I===!0&&(U=df.removeBackslashes(U)));let h={prefix:le,input:e,start:u,base:U,glob:_,isBrace:f,isBracket:p,isGlob:g,isExtglob:S,isGlobstar:A,negated:O,negatedExtglob:v};if(n.tokens===!0&&(h.maxDepth=0,gf(b)||i.push(w),h.tokens=i),n.parts===!0||n.tokens===!0){let ie;for(let F=0;F<s.length;F++){let xe=ie?ie+1:u,ke=s[F],fe=e.slice(xe,ke);n.tokens&&(F===0&&u!==0?(i[F].isPrefix=!0,i[F].value=le):i[F].value=fe,_f(i[F]),h.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,_f(i[i.length-1]),h.maxDepth+=i[i.length-1].depth)}h.slashes=s,h.parts=a}return h};Sf.exports=TR});var xf=V((aT,Af)=>{"use strict";var dn=un(),se=ln(),{MAX_LENGTH:wr,POSIX_REGEX_SOURCE:PR,REGEX_NON_SPECIAL_CHARS:wR,REGEX_SPECIAL_CHARS_BACKREF:NR,REPLACEMENTS:yf}=dn,vR=(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},Nt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,Rf=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},MR=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},Cf=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(MR(t))return t.replace(/\\(.)/g,"$1")},LR=e=>{let t=e.map(Cf).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},Ps=(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}}}}},HR=e=>{let t=0,n=[];for(;t<e.length;){let o=Ps(e.slice(t),!1);if(!o||o.type!=="*")return;let s=Rf(o.body).map(a=>a.trim());if(s.length!==1)return;let i=Cf(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("")}]`}*`},UR=e=>{let t=0,n=e.trim(),r=Ps(n);for(;r;)t++,n=r.body.trim(),r=Ps(n);return t},DR=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let n=typeof t.maxExtglobRecursion=="number"?t.maxExtglobRecursion:dn.DEFAULT_MAX_EXTGLOB_RECURSION,r=Rf(e).map(o=>o.trim());if(r.length>1&&(r.some(o=>o==="")||r.some(o=>/^[*?]+$/.test(o))||LR(r)))return{risky:!0};for(let o of r){let s=HR(o);if(s)return{risky:!0,safeOutput:s};if(UR(o)>n)return{risky:!0}}return{risky:!1}},ws=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=yf[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(wr,n.maxLength):wr,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=dn.globChars(c),u=dn.extglobChars(l),{DOT_LITERAL:d,PLUS_LITERAL:f,SLASH_LITERAL:p,ONE_CHAR:g,DOTS_SLASH:S,NO_DOT:A,NO_DOT_SLASH:x,NO_DOTS_SLASH:I,QMARK:O,QMARK_NO_DOT:v,STAR:T,START_ANCHOR:K}=l,D=C=>`(${a}(?:(?!${K}${C.dot?S:d}).)*?)`,b=n.dot?"":A,w=n.dot?O:v,H=n.bash===!0?D(n):T;n.capture&&(H=`(${H})`),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 k=[],U=[],le=[],_=s,h,ie=()=>m.index===o-1,F=m.peek=(C=1)=>e[m.index+C],xe=m.advance=()=>e[++m.index]||"",ke=()=>e.slice(m.index+1),fe=(C="",Y=0)=>{m.consumed+=C,m.index+=Y},xn=C=>{m.output+=C.output!=null?C.output:C.value,fe(C.value)},bp=()=>{let C=1;for(;F()==="!"&&(F(2)!=="("||F(3)==="?");)xe(),m.start++,C++;return C%2===0?!1:(m.negated=!0,m.start++,!0)},kn=C=>{m[C]++,le.push(C)},We=C=>{m[C]--,le.pop()},N=C=>{if(_.type==="globstar"){let Y=m.braces>0&&(C.type==="comma"||C.type==="brace"),R=C.extglob===!0||k.length&&(C.type==="pipe"||C.type==="paren");C.type!=="slash"&&C.type!=="paren"&&!Y&&!R&&(m.output=m.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=H,m.output+=_.output)}if(k.length&&C.type!=="paren"&&(k[k.length-1].inner+=C.value),(C.value||C.output)&&xn(C),_&&_.type==="text"&&C.type==="text"){_.value+=C.value,_.output=(_.output||"")+C.value;return}C.prev=_,i.push(C),_=C},bn=(C,Y)=>{let R={...u[Y],conditions:1,inner:""};R.prev=_,R.parens=m.parens,R.output=m.output,R.startIndex=m.index,R.tokensIndex=i.length;let P=(n.capture?"(":"")+R.open;kn("parens"),N({type:C,value:Y,output:m.output?"":g}),N({type:"paren",extglob:!0,value:xe(),output:P}),k.push(R)},Op=C=>{let Y=e.slice(C.startIndex,m.index+1),R=e.slice(C.startIndex+2,m.index),P=DR(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 Oe=C.tokensIndex+1;Oe<i.length;Oe++)i[Oe].value="",i[Oe].output="",delete i[Oe].suffix;m.output=C.output+be.output,m.backtrack=!0,N({type:"paren",extglob:!0,value:h,output:""}),We("parens");return}let z=C.close+(n.capture?")":""),oe;if(C.type==="negate"){let G=H;if(C.inner&&C.inner.length>1&&C.inner.includes("/")&&(G=D(n)),(G!==H||ie()||/^\)+$/.test(ke()))&&(z=C.close=`)$))${G}`),C.inner.includes("*")&&(oe=ke())&&/^\.[^\\/.]+$/.test(oe)){let be=ws(oe,{...t,fastpaths:!1}).output;z=C.close=`)${be})${G})`}C.prev.type==="bos"&&(m.negatedExtglob=!0)}N({type:"paren",extglob:!0,value:h,output:z}),We("parens")};if(n.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let C=!1,Y=e.replace(NR,(R,P,z,oe,G,be)=>oe==="\\"?(C=!0,R):oe==="?"?P?P+oe+(G?O.repeat(G.length):""):be===0?w+(G?O.repeat(G.length):""):O.repeat(z.length):oe==="."?d.repeat(z.length):oe==="*"?P?P+oe+(G?H:""):H: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(h=xe(),h==="\0")continue;if(h==="\\"){let R=F();if(R==="/"&&n.bash!==!0||R==="."||R===";")continue;if(!R){h+="\\",N({type:"text",value:h});continue}let P=/^\\+/.exec(ke()),z=0;if(P&&P[0].length>2&&(z=P[0].length,m.index+=z,z%2!==0&&(h+="\\")),n.unescape===!0?h=xe():h+=xe(),m.brackets===0){N({type:"text",value:h});continue}}if(m.brackets>0&&(h!=="]"||_.value==="["||_.value==="[^")){if(n.posix!==!1&&h===":"){let R=_.value.slice(1);if(R.includes("[")&&(_.posix=!0,R.includes(":"))){let P=_.value.lastIndexOf("["),z=_.value.slice(0,P),oe=_.value.slice(P+2),G=PR[oe];if(G){_.value=z+G,m.backtrack=!0,xe(),!s.output&&i.indexOf(_)===1&&(s.output=g);continue}}}(h==="["&&F()!==":"||h==="-"&&F()==="]")&&(h=`\\${h}`),h==="]"&&(_.value==="["||_.value==="[^")&&(h=`\\${h}`),n.posix===!0&&h==="!"&&_.value==="["&&(h="^"),_.value+=h,xn({value:h});continue}if(m.quotes===1&&h!=='"'){h=se.escapeRegex(h),_.value+=h,xn({value:h});continue}if(h==='"'){m.quotes=m.quotes===1?0:1,n.keepQuotes===!0&&N({type:"text",value:h});continue}if(h==="("){kn("parens"),N({type:"paren",value:h});continue}if(h===")"){if(m.parens===0&&n.strictBrackets===!0)throw new SyntaxError(Nt("opening","("));let R=k[k.length-1];if(R&&m.parens===R.parens+1){Op(k.pop());continue}N({type:"paren",value:h,output:m.parens?")":"\\)"}),We("parens");continue}if(h==="["){if(n.nobracket===!0||!ke().includes("]")){if(n.nobracket!==!0&&n.strictBrackets===!0)throw new SyntaxError(Nt("closing","]"));h=`\\${h}`}else kn("brackets");N({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===!0||_&&_.type==="bracket"&&_.value.length===1){N({type:"text",value:h,output:`\\${h}`});continue}if(m.brackets===0){if(n.strictBrackets===!0)throw new SyntaxError(Nt("opening","["));N({type:"text",value:h,output:`\\${h}`});continue}We("brackets");let R=_.value.slice(1);if(_.posix!==!0&&R[0]==="^"&&!R.includes("/")&&(h=`/${h}`),_.value+=h,xn({value:h}),n.literalBrackets===!1||se.hasRegexChars(R))continue;let P=se.escapeRegex(_.value);if(m.output=m.output.slice(0,-_.value.length),n.literalBrackets===!0){m.output+=P,_.value=P;continue}_.value=`(${a}${P}|${_.value})`,m.output+=_.value;continue}if(h==="{"&&n.nobrace!==!0){kn("braces");let R={type:"brace",value:h,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};U.push(R),N(R);continue}if(h==="}"){let R=U[U.length-1];if(n.nobrace===!0||!R){N({type:"text",value:h,output:h});continue}let P=")";if(R.dots===!0){let z=i.slice(),oe=[];for(let G=z.length-1;G>=0&&(i.pop(),z[G].type!=="brace");G--)z[G].type!=="dots"&&oe.unshift(z[G].value);P=vR(oe,n),m.backtrack=!0}if(R.comma!==!0&&R.dots!==!0){let z=m.output.slice(0,R.outputIndex),oe=m.tokens.slice(R.tokensIndex);R.value=R.output="\\{",h=P="\\}",m.output=z;for(let G of oe)m.output+=G.output||G.value}N({type:"brace",value:h,output:P}),We("braces"),U.pop();continue}if(h==="|"){k.length>0&&k[k.length-1].conditions++,N({type:"text",value:h});continue}if(h===","){let R=h,P=U[U.length-1];P&&le[le.length-1]==="braces"&&(P.comma=!0,R="|"),N({type:"comma",value:h,output:R});continue}if(h==="/"){if(_.type==="dot"&&m.index===m.start+1){m.start=m.index+1,m.consumed="",m.output="",i.pop(),_=s;continue}N({type:"slash",value:h,output:p});continue}if(h==="."){if(m.braces>0&&_.type==="dot"){_.value==="."&&(_.output=d);let R=U[U.length-1];_.type="dots",_.output+=h,_.value+=h,R.dots=!0;continue}if(m.braces+m.parens===0&&_.type!=="bos"&&_.type!=="slash"){N({type:"text",value:h,output:d});continue}N({type:"dot",value:h,output:d});continue}if(h==="?"){if(!(_&&_.value==="(")&&n.noextglob!==!0&&F()==="("&&F(2)!=="?"){bn("qmark",h);continue}if(_&&_.type==="paren"){let P=F(),z=h;if(P==="<"&&!se.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(_.value==="("&&!/[!=<:]/.test(P)||P==="<"&&!/<([!=]|\w+>)/.test(ke()))&&(z=`\\${h}`),N({type:"text",value:h,output:z});continue}if(n.dot!==!0&&(_.type==="slash"||_.type==="bos")){N({type:"qmark",value:h,output:v});continue}N({type:"qmark",value:h,output:O});continue}if(h==="!"){if(n.noextglob!==!0&&F()==="("&&(F(2)!=="?"||!/[!=<:]/.test(F(3)))){bn("negate",h);continue}if(n.nonegate!==!0&&m.index===0){bp();continue}}if(h==="+"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){bn("plus",h);continue}if(_&&_.value==="("||n.regex===!1){N({type:"plus",value:h,output:f});continue}if(_&&(_.type==="bracket"||_.type==="paren"||_.type==="brace")||m.parens>0){N({type:"plus",value:h});continue}N({type:"plus",value:f});continue}if(h==="@"){if(n.noextglob!==!0&&F()==="("&&F(2)!=="?"){N({type:"at",extglob:!0,value:h,output:""});continue}N({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let R=wR.exec(ke());R&&(h+=R[0],m.index+=R[0].length),N({type:"text",value:h});continue}if(_&&(_.type==="globstar"||_.star===!0)){_.type="star",_.star=!0,_.value+=h,_.output=H,m.backtrack=!0,m.globstar=!0,fe(h);continue}let C=ke();if(n.noextglob!==!0&&/^\([^?]/.test(C)){bn("star",h);continue}if(_.type==="star"){if(n.noglobstar===!0){fe(h);continue}let R=_.prev,P=R.prev,z=R.type==="slash"||R.type==="bos",oe=P&&(P.type==="star"||P.type==="globstar");if(n.bash===!0&&(!z||C[0]&&C[0]!=="/")){N({type:"star",value:h,output:""});continue}let G=m.braces>0&&(R.type==="comma"||R.type==="brace"),be=k.length&&(R.type==="pipe"||R.type==="paren");if(!z&&R.type!=="paren"&&!G&&!be){N({type:"star",value:h,output:""});continue}for(;C.slice(0,3)==="/**";){let Oe=e[m.index+4];if(Oe&&Oe!=="/")break;C=C.slice(3),fe("/**",3)}if(R.type==="bos"&&ie()){_.type="globstar",_.value+=h,_.output=D(n),m.output=_.output,m.globstar=!0,fe(h);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&!oe&&ie()){m.output=m.output.slice(0,-(R.output+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=D(n)+(n.strictSlashes?")":"|$)"),_.value+=h,m.globstar=!0,m.output+=R.output+_.output,fe(h);continue}if(R.type==="slash"&&R.prev.type!=="bos"&&C[0]==="/"){let Oe=C[1]!==void 0?"|$":"";m.output=m.output.slice(0,-(R.output+_.output).length),R.output=`(?:${R.output}`,_.type="globstar",_.output=`${D(n)}${p}|${p}${Oe})`,_.value+=h,m.output+=R.output+_.output,m.globstar=!0,fe(h+xe()),N({type:"slash",value:"/",output:""});continue}if(R.type==="bos"&&C[0]==="/"){_.type="globstar",_.value+=h,_.output=`(?:^|${p}|${D(n)}${p})`,m.output=_.output,m.globstar=!0,fe(h+xe()),N({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-_.output.length),_.type="globstar",_.output=D(n),_.value+=h,m.output+=_.output,m.globstar=!0,fe(h);continue}let Y={type:"star",value:h,output:H};if(n.bash===!0){Y.output=".*?",(_.type==="bos"||_.type==="slash")&&(Y.output=b+Y.output),N(Y);continue}if(_&&(_.type==="bracket"||_.type==="paren")&&n.regex===!0){Y.output=h,N(Y);continue}(m.index===m.start||_.type==="slash"||_.type==="dot")&&(_.type==="dot"?(m.output+=x,_.output+=x):n.dot===!0?(m.output+=I,_.output+=I):(m.output+=b,_.output+=b),F()!=="*"&&(m.output+=g,_.output+=g)),N(Y)}for(;m.brackets>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing","]"));m.output=se.escapeLast(m.output,"["),We("brackets")}for(;m.parens>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing",")"));m.output=se.escapeLast(m.output,"("),We("parens")}for(;m.braces>0;){if(n.strictBrackets===!0)throw new SyntaxError(Nt("closing","}"));m.output=se.escapeLast(m.output,"{"),We("braces")}if(n.strictSlashes!==!0&&(_.type==="star"||_.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};ws.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(wr,n.maxLength):wr,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=yf[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}=dn.globChars(s),S=n.dot?d:u,A=n.dot?f:u,x=n.capture?"":"?:",I={negated:!1,prefix:""},O=n.bash===!0?".*?":p;n.capture&&(O=`(${O})`);let v=b=>b.noglobstar===!0?O:`(${x}(?:(?!${g}${b.dot?l:i}).)*?)`,T=b=>{switch(b){case"*":return`${S}${c}${O}`;case".*":return`${i}${c}${O}`;case"*.*":return`${S}${O}${i}${c}${O}`;case"*/*":return`${S}${O}${a}${c}${A}${O}`;case"**":return S+v(n);case"**/*":return`(?:${S}${v(n)}${a})?${A}${c}${O}`;case"**/*.*":return`(?:${S}${v(n)}${a})?${A}${O}${i}${c}${O}`;case"**/.*":return`(?:${S}${v(n)}${a})?${i}${c}${O}`;default:{let w=/^(.*?)\.(\w+)$/.exec(b);if(!w)return;let H=T(w[1]);return H?H+i+w[2]:void 0}}},K=se.removePrefix(e,I),D=T(K);return D&&n.strictSlashes!==!0&&(D+=`${a}?`),D};Af.exports=ws});var bf=V((cT,kf)=>{"use strict";var FR=ze("path"),$R=Ef(),Ns=xf(),vs=ln(),jR=un(),BR=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=BR(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=vs.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?vs.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=vs.isWindows(n))=>(t instanceof RegExp?t:ee.makeRe(t,n)).test(FR.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)):Ns(e,{...t,fastpaths:!1});ee.scan=(e,t)=>$R(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=Ns.fastpaths(e,t)),o.output||(o=Ns(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=jR;kf.exports=ee});var If=V((uT,Of)=>{"use strict";Of.exports=bf()});var Mf=V((lT,vf)=>{"use strict";var Pf=ze("util"),wf=sf(),Ne=If(),Ms=ln(),Tf=e=>e===""||e==="./",Nf=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: "${Pf.inspect(e)}"`);if(Array.isArray(t))return t.some(r=>J.contains(e,r,n));if(typeof t=="string"){if(Tf(e)||Tf(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(!Ms.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: "${Pf.inspect(e)}"`);return[].concat(t).every(r=>Ne(r,n)(e))};J.capture=(e,t,n)=>{let r=Ms.isWindows(n),s=Ne.makeRe(String(e),{...n,capture:!0}).exec(r?Ms.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 wf(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||!Nf(e)?[e]:wf(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=Nf;vf.exports=J});import{realpathSync as Gx}from"node:fs";import{resolve as Wx}from"node:path";import{fileURLToPath as zx,pathToFileURL as Vx}from"node:url";import{createHash as Qp}from"node:crypto";import{homedir as em}from"node:os";import{dirname as yk,join as tm,parse as Rk,resolve as Ck}from"node:path";var Ei="EV_AI_LAUNCHER_VERSION";var yi="EV_AI_HOOK_SOURCE",Ri="EV_AI_HOOK_FALLBACK_REASON",Ci="EV_AI_LAUNCHER_SCOPE",Xr="EV_AI_LAUNCHER_READY_FD";var Ai="--defer-user-spec",On="--cap",$t="--slot";var xi=Buffer.from([1]);var qx=1024*1024,Zx=4*1024*1024,Qx=64*1024,ek=64*1024,tk=64*1024;var qr=4096,nk=4*1024*1024;import{join as Pi}from"node:path";import{open as ki,mkdir as Mp,readFile as Lp,readdir as Hp,rename as Up,stat as Dp,rmdir as Fp,unlink as $p,utimes as jp}from"node:fs/promises";var In=new WeakMap;function Oi(e){if(e&&typeof e=="object"&&"code"in e)return e}function yt(e){return Oi(e)?.code==="ENOENT"}function jt(e){return Oi(e)?.code==="EEXIST"}async function Ii(e,t){try{return await e.readdir(t)}catch(n){if(yt(n))return[];throw n}}function Ti(){return{async open(e,t){let n=await ki(e,t),r={path:e};return In.set(r,n),r},async write(e,t){let n=bi(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await bi(e).sync()},async close(e){let t=In.get(e);In.delete(e),t&&await t.close()},rename:Up,async readdir(e){return Hp(e)},readFile:Lp,async stat(e){let t=await Dp(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Mp(e,t)},unlink:$p,rmdir:Fp,utimes:jp,async fsyncDir(e){if(process.platform==="win32")return;let t=await ki(e,"r");try{await t.sync()}finally{await t.close()}}}}function bi(e){let t=In.get(e);if(!t)throw new Error("closed");return t}var wi=4,Ni=10;function Tn(e=process.platform){return e==="win32"?wi:Ni}var Pn=6e4,Bt=2e3,vi="slots",Zr=64;function Mi(e){return Pi(e,".ev-ai","agent-hook",vi)}function wn(e,t){return Pi(e,`slot-${t}`)}function Nn(e,t){return`${e}
|
|
15
|
+
${t}
|
|
16
|
+
`}function Qr(e){let t=e===void 0?null:/^(\d+):(\d+)$/.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&Number.isSafeInteger(r)?{index:n,acquiredAtMs:r}:void 0}function Li(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var Bp=/^(\d+)\n(\d+)\n$/;function Kp(e){let t=Bp.exec(e);if(!t)return;let n=Number(t[1]),r=Number(t[2]);return Number.isSafeInteger(n)&&n>0&&Number.isSafeInteger(r)?{pid:n,acquiredAtMs:r}:void 0}function Hi(e,t,n){let r=Kp(e);if(!r)return Math.abs(n-t)<Bt;let o=n-r.acquiredAtMs;return o<-Bt||o>=Pn?!1:Li(r.pid)}import{createHash as Gp,randomBytes as Wp}from"node:crypto";import{existsSync as eo,mkdirSync as zp,readdirSync as Vp,readFileSync as Jp,renameSync as Ui,statSync as ji,unlinkSync as Di,writeFileSync as Yp}from"node:fs";import{basename as Xp,dirname as Fi,join as Bi,relative as qp}from"node:path";function E(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
|
|
17
|
+
`)}function Kt(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1")}function Gt(e){return Gp("sha256").update(e).digest("hex").slice(0,32)}function me(e,t){zp(Fi(e),{recursive:!0});let n=Bi(Fi(e),`.${Xp(e)}.${process.pid}.${Wp(4).toString("hex")}.tmp`);try{Yp(n,t,"utf8");try{Ui(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Di(e),Ui(n,e);return}throw r}}catch(r){try{Di(n)}catch{}throw r}}function vn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function to(){process.stdout.write('{"continue":true}')}function M(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function Wt(){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 Mn(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 ye(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 ye(e,t,n,r);return o.ok?o.stdout:""}async function no(e=process.cwd()){let t=await ye("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(M("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=M("CURSOR_PROJECT_DIR")??M("CLAUDE_PROJECT_DIR");if(n&&eo(n)){let r=await ye("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 no(e)).root}function ge(e,t){try{return JSON.parse(e)}catch{return t}}var $i=new Map;function Ln(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Zp(e){let t;try{t=Jp(e,"utf8")}catch{return{ok:!1,reason:"read"}}try{return{ok:!0,value:JSON.parse(Ln(t))}}catch{return{ok:!1,reason:"parse"}}}function Ki(e){let t=$i.get(e);if(t!==void 0)return t;let n=Zp(e);return $i.set(e,n),n}function Gi(e){return Ki(e)}function ne(e,t){let n=Ki(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 L(e,t){let n=He(e,t);return typeof n=="string"?n:""}var Je=500;function Wi(e,t=2){if(!eo(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Vp(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let l=Bi(s,c.name);if(c.isDirectory()){o(l,i+1);continue}if(c.isFile()){try{n.push({name:qp(e,l),size:ji(l).size})}catch{continue}if(n.length>=Je){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function ro(e){return eo(e)?{present:!0,size:ji(e).size}:{present:!1,size:0}}var Ji="https://hooks.ev-ai.ai",Hn=".claude/ev-ai-runtime-report.json",Yi="config.json",nm="max_concurrent_hooks",bk=1024*1024,rm=new Set(["localhost","127.0.0.1","[::1]","::1"]),om=["claude","cursor","codex"],Un=[Hn,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],oo=/^[A-Za-z0-9._~-]+$/;function Dn(e){return e!==void 0&&om.includes(e)}function Xi(e){if(!e||typeof e!="object")return;let t=e[nm];return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?t:void 0}function zi(e){if(e===void 0||!/^\d+$/.test(e))return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Rt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function so(e){let t,n,r,o,s,i,a;for(let c=0;c<e.length;c++){let l=e[c];if(l!==void 0){if(l==="--runner"){let u=Rt(e,c);t=u.value,c=u.next;continue}if(l.startsWith("--runner=")){t=l.slice(9);continue}if(l==="--url"){let u=Rt(e,c);u.value&&(r=u.value),c=u.next;continue}if(l.startsWith("--url=")){r=l.slice(6);continue}if(l==="--token"){let u=Rt(e,c);u.value&&(o=u.value),c=u.next;continue}if(l.startsWith("--token=")){o=l.slice(8);continue}if(l==="--base-url"){let u=Rt(e,c);u.value&&(s=u.value),c=u.next;continue}if(l.startsWith("--base-url=")){s=l.slice(11);continue}if(l===On){let u=Rt(e,c);i=zi(u.value)??i,c=u.next;continue}if(l.startsWith(`${On}=`)){i=zi(l.slice(On.length+1))??i;continue}if(l===$t){let u=Rt(e,c);a=Qr(u.value)??a,c=u.next;continue}if(l.startsWith(`${$t}=`)){a=Qr(l.slice($t.length+1))??a;continue}l!==Ai&&!l.startsWith("-")&&n===void 0&&(n=l)}}return{runner:Dn(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s,...i!==void 0?{cap:i}:{},...a!==void 0?{slot:a}:{}}}function Fn(e,t=Ji){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function zt(e=em()){return tm(e,".ev-ai",Yi)}function qi(e,t){return{...e,...t}}function Vi(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 $n(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?rm.has(t.hostname):!1}catch{return!1}}function io(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 at(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!$n(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=io(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!oo.test(n))return`org token must match ${oo.source} (got: ${n})`;if(Vi(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(Vi(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function Ct(e){return new URL(e).toString()}function ao(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?Fn(n):""}function jn(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 Zi(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=Fn(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=at(n);return r?{problem:r}:{url:Ct(n)}}var co="CLAUDE_PLUGIN_OPTION_COLLECTOR_URL";function Qi(e){let t=e[co]?.trim();if(!t)return{};let n=at(t);return n?{problem:n}:{url:Ct(t)}}function Vt(e){if(at(e))return;let t;try{t=new URL(e)}catch{return}let n=io(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 Qp("sha256").update(i).digest("hex").slice(0,32)}var Ye=2,ea="node_modules/@ev-ai/agent-hook/dist/hook.mjs",_e="ev-ai-agent-hook";function sm(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function Bn(e){let t=sm(e);return t===_e||t===`${_e}.exe`}var ta="https://cdn.ev-ai.ai/agent-hook";var uo=`current/${_e}`,lo=`.ev-ai/agent-hook/${_e}`,na=5e3,ra=5e3,fo=3e3;var Kn=3e3,oa=1500,sa=4*1024,po=256*1024,im=4*1024,ia=32*1024,Ue="1.3.7",Gn=`@ev-ai/agent-hook@${Ue}`,aa="ev-ai runtime report";var ca={claude:"CLAUDE_PLUGIN_ROOT",cursor:"CURSOR_PLUGIN_ROOT",codex:"PLUGIN_ROOT"};import{chmodSync as za,cpSync as Va,existsSync as Xe,mkdirSync as Oo,readFileSync as hg,rmSync as Zn,symlinkSync as Sg,writeFileSync as Eg}from"node:fs";import{homedir as De}from"node:os";import{dirname as Io,isAbsolute as yg,join as W,relative as Ja,resolve as Ga,sep as Rg}from"node:path";import{fileURLToPath as Cg}from"node:url";import{existsSync as am,readdirSync as ua}from"node:fs";import{homedir as Wn}from"node:os";import{join as ae}from"node:path";function la(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 mo(e=process.platform){let t=la(e),n=[ae(t,"managed-settings.json")],r=ae(t,"managed-settings.d");try{if(!am(r))return n;let o=ua(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>ae(r,s));n.push(...o)}catch{}return n}function go(e=process.platform,t=Wn()){return{serverManaged:ae(t,".claude","remote-settings.json"),fileBased:mo(e)}}function cm(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 um(e=process.platform,t=Wn()){let n=[ae(cm(e),"hooks.json")],r=ae(t,".cursor","managed");try{for(let o of ua(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(ae(r,o.name,"hooks.json"))}catch{}return n}function lm(e=process.platform,t=Wn()){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 zn(e,t=process.platform,n=Wn()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=go(t,n);return[r,...o]}case"cursor":return um(t,n);default:return lm(t,n)}}import{createHash as Ra,randomBytes as bm}from"node:crypto";import{existsSync as Ca,mkdirSync as ho,readFileSync as Aa,unlinkSync as xa,writeFileSync as ka}from"node:fs";import{homedir as So}from"node:os";import{dirname as Jn,join as Eo,resolve as Om}from"node:path";var fm=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),dm=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]")||dm.has(n)||r.includes("[bot]")||fm.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 pm,readFileSync as mm}from"node:fs";import{hostname as fa,userInfo as gm}from"node:os";function At(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function da(e=process.env){return At(X("CURSOR_SANDBOX",e))}var _m=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function hm(e){return _m.some(t=>!!X(t,e))}function Sm(e){if(X("KUBERNETES_SERVICE_HOST",e)||At(X("REMOTE_CONTAINERS",e))||At(X("DEVCONTAINER",e)))return!0;try{if(pm("/.dockerenv")||mm("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function pa(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!X(t,e))}function Em(e,t=process.platform){return pa(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!X(n,e)):!1}function ym(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Rm(e){return e==="linux"}function X(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return M(e)}function Cm(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Am(X("CURSOR_VERSION",n))}function Am(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function _o(e){if(ym(e.sessionId))return!0;let t=e.hostname??fa(),n=e.osUser??ga(e.env);return Cm(t,n,e.env)}function xm(e){return At(X("CURSOR_AGENT",e.env))?!0:_o(e)}function km(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))||pa(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!X(t,e))||X("SESSIONNAME",e))}function Jt(e={}){let t=e.env;if(X("GITHUB_ACTIONS",t))return"github_actions";if(At(X("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!Em(t,n)&&xm(e)&&(At(X("CURSOR_AGENT",t))||Rm(n)))return"cursor_cloud";if(X("CODESPACES",t)||X("CODESPACE_NAME",t))return"codespaces";if(X("GITLAB_CI",t))return"gitlab_ci";if(hm(t))return"managed";let r=X("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Sm(t)?"container":km(t)?"interactive":"unknown"}async function ma(){return await te("systemd-detect-virt",[],1e3)}function ga(e=process.env,t=gm){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 _a(){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=ga(),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 Vn(){return fa()}var Im="installation.json",Tm="cloud-bootstrap.lock",Pm=6e4;function ba(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function Re(e=So()){return Eo(e,".ev-ai","agent-hook")}function wm(e=So()){return Eo(Re(e),Im)}function Oa(e){return Eo(Jn(e),Tm)}function Ia(){return bm(8).toString("hex")}function xt(e){return Ra("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 Ta(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function Nm(e=process.env){let t=$(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Ta(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 Pa(e,t){return e&&Ta(e)?e:(e&&E(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),Nm(t))}function vm(e){return/^[0-9a-f]{16}$/.test(e)}function Mm(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 xt(`github_actions|${t}|${n}`)}if($(e.CODESPACES)||$(e.CODESPACE_NAME)){let t=$(e.CODESPACE_NAME);if(t)return xt(`codespaces|${t}`);let n=$(e.GITHUB_REPOSITORY_ID)??$(e.GITHUB_REPOSITORY),r=$(e.GITHUB_USER)??$(e.GITHUB_ACTOR);if(n&&r)return xt(`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 xt(`gitlab|${t}|${n}`)}return null}var Lm="cursoragent@cursor.com";function Hm(e){let t=$(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===Lm?null:t}function Um(e,t){return $(e.CURSOR_PROJECT_DIR)??$(e.CLAUDE_PROJECT_DIR)??t}function Dm(e){return Kt(e).replace(/\.git$/i,"").toLowerCase()}async function Fm(e){let t=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?Dm(t):e}async function $m(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 jm(e,t){let n=Um(e,t);return n?xt(`cursor_cloud|${n}|${Hm(e)??""}`):null}async function Bm(e,t){let n=$(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await Fm(n),o=await $m(n);return xt(`claude_remote|${r}|${o??""}`)}function ha(e,t){let n=Pa(e,t);if(n)return n;let r=Mm(t);return r||Ia()}async function Km(e){let n=await te("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Om(e);return Ra("sha256").update(n).digest("hex").slice(0,16)}function Gm(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 Wm(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=Gm(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 ct(e){if(Ca(e))try{return Wm(Aa(e,"utf8"))}catch{}}function yo(e){return ct(e)}function wa(e,t,n){let r=ct(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)}
|
|
18
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: operator identity cache write failed open: ${i}`)}}function Na(e,t=Date.now()){if(!e)return!0;if(ct(e)?.operator_identity_hash)return!1;let n=Oa(e);try{if(Ca(n)){let r=Number.NaN;try{r=Number(Aa(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<Pm)return!1;try{xa(n)}catch{}}}catch{}try{return ho(Jn(n),{recursive:!0}),ka(n,`${t}
|
|
19
|
+
`,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(Ha(r))return!1;let o=r instanceof Error?r.message:String(r);return E(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function va(e){if(e)try{xa(Oa(e))}catch{}}function Ma(e,t){let r=ct(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function La(e,t,n){if(!n)return;let r=ct(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)}
|
|
20
|
+
`)}catch(s){let i=s instanceof Error?s.message:String(s);E(`WARN: platform_agent_id cache write failed open: ${i}`)}}function Ha(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function zm(e,t){ho(Jn(e),{recursive:!0}),ka(e,`${JSON.stringify(t,null,2)}
|
|
21
|
+
`,{encoding:"utf8",flag:"wx"})}function Sa(e,t){try{return zm(e,t),t}catch(n){if(!Ha(n))throw n;return ct(e)}}function Ea(e,t){ho(Jn(e),{recursive:!0}),me(e,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}function ya(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function Yn(e,t={}){let n=t.home??So(),r=t.env??process.env,o=await Km(e),s=wm(n),i={sessionId:t.sessionId,hostname:$(r.HOSTNAME)??void 0,osUser:$(r.USER)??$(r.LOGNAME)??$(r.USERNAME)??void 0,env:r},a=Jt(i),c=Pa(t.overrideId,r),l=a==="cursor_cloud"&&_o(i)?jm(r,e):a==="claude_remote"?await Bm(r,e):null,u=ct(s);if(u){let S=u;if(c&&c===u.installation_id&&u.pinned!==!0&&(S={...u,pinned:!0},Ea(s,S)),!!l&&l!==S.installation_id&&!c&&S.pinned!==!0&&vm(S.installation_id)&&l){let x={installation_id:l,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Ea(s,x),{installationId:l,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let d=c??l??ha(void 0,r),f=Sa(s,ya(d,c));if(f)return{installationId:f.installation_id,storePath:s,repoKey:o};let p=c??l??ha(void 0,r),g=Sa(s,ya(p===d?Ia():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 Ao,readFileSync as og}from"node:fs";import{dirname as sg,isAbsolute as ig,join as ag,relative as cg}from"node:path";import{readFileSync as Vm,statSync as Jm}from"node:fs";import{homedir as Ro}from"node:os";import{join as Ym}from"node:path";var Xm="hook-config.json",qm=10080*60*1e3,Zm=1440*60*1e3,Qm=2048,eg=1024*1024;function kt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ua(e=Ro()){return Ym(Re(e),Xm)}function Da(e){let t=Ua(e);try{let n=Jm(t);if(!n.isFile()||n.size>eg)return;let r=JSON.parse(Vm(t,"utf8"));return kt(r)?r:void 0}catch(n){return(n instanceof Error&&"code"in n?n.code:void 0)==="ENOENT"?null:void 0}}function tg(e){let t={};return typeof e.collect_prompt=="boolean"&&(t.collect_prompt=e.collect_prompt),t}function Xn(e,t=Ro(),n=Date.now()){if(!e)return;let r=Vt(e);if(!r)return;let o=Da(t),s=o?o[r]:void 0;if(!kt(s)||!kt(s.config))return;let i=s.fetched_at_ms;if(!(typeof i!="number"||n-i>qm))return tg(s.config)}function ng(e){let t=e.trim();if(t==="")return;let n;try{n=JSON.parse(t)}catch{return}if(!(!kt(n)||!kt(n.hook_config))&&!(Buffer.byteLength(JSON.stringify(n.hook_config),"utf8")>Qm))return n.hook_config}function rg(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(!(kt(s)&&JSON.stringify(s.config)===JSON.stringify(n)&&typeof s.fetched_at_ms=="number"&&s.fetched_at_ms<=r&&r-s.fetched_at_ms<Zm))return o[t]={config:n,fetched_at_ms:r},o}function Fa(e,t,n=Ro(),r=Date.now()){let o=ng(e),s=t?Vt(t):void 0;if(o===void 0||!s)return"skipped";try{let i=Da(n);if(i===void 0)return"skipped";let a=rg(i??{},s,o,r);return a?(me(Ua(n),`${JSON.stringify(a,null,2)}
|
|
23
|
+
`),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 $a(e){for(let t of Un){let n=ag(e,t);if(Ao(n))return n}}async function ug(e=process.cwd(),t){let n=t??await Le(e);return $a(n)??$a(e)}async function lg(e,t){let n=t??await Le(sg(e)),r=cg(n,e);if(r.startsWith("..")||ig(r))return!1;let o=await ye("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 Co(e){let t=og(e,"utf8");return ge(Ln(t),{})}function fg(){return{schema_version:Ye,mcp_servers:[]}}function dg(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))}function pg(){let e=Qi(process.env);return e.problem&&E(`WARN: ignoring ${co}: ${e.problem}`),e.url??""}async function ja(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await no(e),o=M("EV_AI_HOOK_MANIFEST"),s=o&&Ao(o)?o:void 0,i=s?void 0:Ao(zt())?zt():void 0,a=s?void 0:await ug(e,n),c=i?Co(i):void 0,l=a?Co(a):void 0,u,d,f,p=new Set;if(s){u=Co(s),d=s,f=s;for(let O of Object.keys(u))p.add(O)}else if(c&&l){u=qi(l,c),d=i,f=a;for(let O of Object.keys(l))O in c||p.add(O)}else if(c)u=c,d=i;else if(l){u=l,d=a,f=a;for(let O of Object.keys(l))p.add(O)}else u=fg();delete u.installation_id;let g=f?await lg(f,n):!1;dg(u,f,g,p);let{installationId:S,storePath:A,repoKey:x}=await Yn(n,{sessionId:t.sessionId}),I=ao(u)||pg();return{manifestPath:d??A,manifest:u,installationId:S,installationStorePath:A,repoKey:x,collectorUrl:I,hookConfig:Xn(I),platformAgentId:u.platform_agent_id??"",gitRoot:n,inGitRepo:r}}function Ba(e){return{schema_version:Ye,...e?{collector_url:e}:{},mcp_servers:[]}}var mg=["darwin-arm64","darwin-x64","linux-arm64","linux-x64","windows-x64","windows-arm64"];function gg(e){return e==="windows-x64"||e==="windows-arm64"}function xo(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 Ka(e=process.platform,t=process.arch){let n=xo(e,t);if(!n)throw new Error(`Unsupported platform ${e}-${t}. Supported: ${mg.join(", ")}.`);return n}function _g(e){return gg(e)?`${_e}.exe`:_e}function ko(e){return`compile-out/bin/${e}/${_g(e)}`}function Ag(e,t){let n=e.collectorUrl?.trim();if(!n)throw new Error(`${t} requires --url <https://hooks.ev-ai.ai/{orgToken}/hook>`);let r=at(n);if(r)throw new Error(`collector URL rejected: ${r}`);return Ct(n)}function xg(e){let t=e.collectorUrl?.trim();if(!t)return;let n=at(t);if(n)throw new Error(`collector URL rejected: ${n}`);return Ct(t)}function kg(e){return Ag(e,"install")}function Ya(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 Xa(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 qa(e=process.execPath){return Za(e)?"binary":"npx"}function bg(){return W(De(),".ev-ai","agent-hook")}function Og(e=De()){return W(e,".ev-ai","agent-hook",uo)}function Ig(){let e=Io(Cg(import.meta.url)),t=W(e,"hook.mjs");return Xe(t)?t:W(e,"..","dist","hook.mjs")}function Za(e=process.execPath){return Bn(e)}function Qa(e,t){let n=Ja(Ga(e),Ga(t));return!n.startsWith("..")&&!yg(n)}function Qn(e){return e.split(Rg).join("/")}function Tg(e){return`node "$(git rev-parse --show-toplevel)/${Qn(e)}"`}function Pg(e){return`"$(git rev-parse --show-toplevel)/${Qn(e)}"`}function wg(e){return W(e,lo)}function ec(e,t){let n=wg(e);Oo(Io(n),{recursive:!0}),Va(t,n,{force:!0});try{za(n,493)}catch{}return n}function Ng(e){let t=W(bg(),"current");try{Zn(t,{recursive:!0,force:!0})}catch{}Sg(e,t,process.platform==="win32"?"junction":"dir")}function tc(e,t=Ue,n=De()){let r=W(n,".ev-ai","agent-hook",t),o=W(r,_e);Oo(r,{recursive:!0}),Va(e,o,{force:!0});try{za(o,493)}catch{}return Ng(r),W(n,".ev-ai","agent-hook",uo)}function nc(e){let t=xo();if(!t)return;let n=[W(e,ko(t)),W(e,"packages","agent-hook",ko(t))];for(let r of n)if(Xe(r)&&Qa(e,r))return r}function vg(e=De()){let t=Og(e);return Xe(t)?t:void 0}function Mg(e,t=De()){let n=vg(t);return n||(Za()?tc(process.execPath,Ue,t):nc(e))}function Lg(e,t=De()){let n=nc(e);if(!n)throw new Error(`update requires a locally compiled binary \u2014 run this package\u2019s build:hook-binary script first.
|
|
24
|
+
To install a released binary instead: curl -fsSL https://cdn.ev-ai.ai/agent-hook/install.sh | sh`);let r=tc(n,Ue,t),o=ec(e,n);return{sourcePath:n,projectPath:o,globalPath:r}}function Wa(e){let t=[W(e,"packages","agent-hook","dist","hook.mjs"),W(e,ea)],n=Ig();Xe(n)&&Qa(e,n)&&t.unshift(n);for(let r of t){if(!Xe(r))continue;let o=Qn(Ja(e,r));return{command:Tg(o),hookPath:o,strategy:"dev_mjs"}}}function Hg(e){return e==="SessionStart"||e==="sessionStart"}function Ug(e){return e.replace(/\s+--prefer-offline\b/g,"")}function qn(e,t){return Hg(e)?Ug(t):t}function Dg(e=Gn){return`npx -y --prefer-offline ${e}`}function Fg(e,t=De(),n=qa()){if(n==="npx")return{command:Dg(),hookPath:Gn,strategy:"npx"};if(n==="local"){let s=Wa(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=Mg(e,t);if(r){ec(e,r);let s=Qn(lo);return{command:Pg(s),hookPath:s,strategy:"project_binary"}}let o=Wa(e);if(o)return o;throw new Error(`ev-ai-agent-hook binary not found. Install from CDN:
|
|
25
|
+
curl -fsSL ${ta}/install.sh | sh
|
|
24
26
|
Or use npx delivery:
|
|
25
|
-
npx ${
|
|
26
|
-
`,"utf8")}function Fe(e){if(Xe(e))try{return JSON.parse(Qm(e,"utf8"))}catch(t){throw t instanceof SyntaxError?new Error(`Invalid JSON in ${e} \u2014 fix or remove the file`,{cause:t}):t}}function Cg(e,t){let n=ya(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 Ag(e){return(e.schema_version??Ye)===Ye&&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 Ha(e,t){let n=W(e,In),r=Fe(n),o=Cg(r,t);return t.collectorUrl!==void 0||Xe(n)||!Ag(o)?(qe(n,o),{manifestPath:n,wrote:!0}):{manifestPath:void 0,wrote:!1}}function ho(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 kg(e){if(ho(process.env))return!0;let t=De();return[...oo(),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?ho(o.env):!1}catch{return!1}})}function bg(e){try{let t=Fe(W(e,".claude","settings.json"));return t?ho(t.env):!1}catch{return!1}}function Ua(e){return Array.isArray(e)?e:[]}function zn(e){let t=[],n=r=>!!r&&typeof r=="object"&&La(r.command);for(let r of Ua(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 Da(e,t){return[...zn(e),...t]}function Ro(e){return Array.isArray(e)?e.filter(t=>!t||typeof t!="object"?!0:!La(t.command)):[]}function xg(e,t){return[...Ro(e),{command:t}]}function Og(e){return typeof e=="string"?[e]:e}function Ig(e){let t=(n="")=>({hooks:Og(e).map(r=>({type:"command",command:Kn(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 Tg(e){let t=typeof e=="string"?{command:e}:e,n=(r="")=>({hooks:[{type:"command",command:Kn(r,t.command),...t.commandWindows===void 0?{}:{commandWindows:Kn(r,t.commandWindows)},statusMessage:$i}]});return{SessionStart:[n("SessionStart")],UserPromptSubmit:[n()],PreToolUse:[n()],PostToolUse:[n()],Stop:[n()],SubagentStart:[n()],SubagentStop:[n()]}}var Pg=["sessionStart","beforeSubmitPrompt","preToolUse","postToolUse","postToolUseFailure","beforeShellExecution","beforeReadFile","beforeMCPExecution","subagentStart","subagentStop","stop"],wg=["afterShellExecution","afterFileEdit"];function Ng(e,t=wg){let n={...e};for(let r of t){if(!(r in n))continue;let o=Ro(n[r]);o.length===0?delete n[r]:n[r]=o}return n}function vg(e,t,n={}){let r=W(e,".claude/settings.json"),o=yo(t,"claude"),s=Fe(r)??{};if(kg(e)&&!n.force){if(s.hooks&&typeof s.hooks=="object"){let u={...s.hooks};for(let d of Object.keys(u))u[d]=zn(u[d]),Ua(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=Ig(o),l={...a};for(let[u,d]of Object.entries(c))l[u]=Da(a[u],d);return s.hooks=l,qe(r,s),!0}function Mg(e,t){let n=W(e,".cursor/hooks.json"),r=yo(t,"cursor"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Ng({...s});for(let a of Pg)i[a]=xg(i[a],Kn(a,r));qe(n,{...o,version:typeof o.version=="number"?o.version:1,hooks:i})}function Lg(e,t){let n=W(e,".codex/hooks.json"),r=yo(t,"codex"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Tg(r),a={...s};for(let[c,l]of Object.entries(i))a[c]=Da(s[c],l);qe(n,{...o,hooks:a})}function Hg(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=zn(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 Ug(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=Ro(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){Gn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function Dg(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=zn(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){Gn(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)&&Ra(e,t)}async function Fa(e={}){let t=ag(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??Ta();Co(process.platform,process.arch,{requireBinaryArch:s==="binary"});let i=e.cwd??process.cwd(),a=await Le(i),{command:c,hookPath:l,strategy:u}=Rg(a,De(),s),{installationId:d,storePath:f}=await jn(a,{overrideId:e.installationId}),{manifestPath:p,wrote:g}=Ha(a,e),S=[];return n?E("Skipped Claude hook \u2014 --no-claude"):vg(a,c,{force:e.force})?(S.push("Claude"),e.force&&bg(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"):(Mg(a,c),S.push("Cursor")),o?E("Skipped Codex hook \u2014 --no-codex"):(Lg(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 $a(e=process.cwd()){Co(process.platform,process.arch,{requireBinaryArch:!0});let t=await Le(e),{projectPath:n,globalPath:r}=hg(t);E(`Refreshed ${r}`),E(`Refreshed ${n}`),E("Hook configs and shared manifest left unchanged")}async function ja(e={}){let t=ig(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}=Ha(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 Ba(e){for(let t of[()=>Hg(e),()=>Ug(e),()=>Dg(e)])try{t()}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: strip skipped a hook file: ${r}`)}}async function Ka(e=process.cwd()){let t=await Le(e);return Ba(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 Ga(e=process.cwd()){let t=await Le(e);Ba(t);for(let n of Tn){let r=W(t,n);if(Xe(r))try{Gn(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 RS,mkdirSync as CS,readdirSync as AS,readFileSync as kS,unlinkSync as Zc,writeFileSync as bS}from"node:fs";import{homedir as Qc}from"node:os";import{join as Do}from"node:path";import{open as Wa,mkdir as Fg,readFile as $g,readdir as jg,rename as Bg,stat as Kg,rmdir as Gg,unlink as Wg,utimes as zg}from"node:fs/promises";var Vn=new WeakMap;function Va(e){if(e&&typeof e=="object"&&"code"in e)return e}function Wt(e){return Va(e)?.code==="ENOENT"}function Jn(e){return Va(e)?.code==="EEXIST"}async function Ja(e,t){try{return await e.readdir(t)}catch(n){if(Wt(n))return[];throw n}}function Ya(){return{async open(e,t){let n=await Wa(e,t),r={path:e};return Vn.set(r,n),r},async write(e,t){let n=za(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await za(e).sync()},async close(e){let t=Vn.get(e);Vn.delete(e),t&&await t.close()},rename:Bg,async readdir(e){return jg(e)},readFile:$g,async stat(e){let t=await Kg(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Fg(e,t)},unlink:Wg,rmdir:Gg,utimes:zg,async fsyncDir(e){if(process.platform==="win32")return;let t=await Wa(e,"r");try{await t.sync()}finally{await t.close()}}}}function za(e){let t=Vn.get(e);if(!t)throw new Error("closed");return t}import{existsSync as r_}from"node:fs";import{existsSync as Vg}from"node:fs";import{homedir as qa}from"node:os";import{join as Jg}from"node:path";function Za(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Yg={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 Xa(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Xg(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:Xa(n.mcpJson,t.mcpJson),mcpToml:Xa(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Qa(e){return Object.fromEntries(Object.entries(Yg).map(([t,n])=>[t,Xg(n,n[e])]))}var kt=Qa("homeOnly"),Qe=Qa("projectOnly");function qg(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Zg(e,t){return qg(e).some(n=>Vg(Jg(t,n)))}function ec(e,t){for(let n of e)if(Zg(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 Qg(e,t=qa(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Dn(o.managed,n,t));return Ze(r)}var tt=et(Object.values(kt));function tc(e=qa(),t=process.platform){return Qg(Object.values(kt),e,t)}import{existsSync as e_}from"node:fs";import{resolve as Ao}from"node:path";function _e(e){return Ao(e).replaceAll("\\","/").replace(/\/$/,"")}function ut(e,t){let n=new Set(t),r=[];for(let o of e)n.delete(o)&&r.push(o);for(let o of[...n].sort())r.push(o);return r}function Yn(e,t){if(!e)return t;let n=`${e}/`,r=[],o=[];for(let s of t)s===e||s.startsWith(n)?r.push(s):o.push(s);return r.length===0?t:[...r,...o]}var t_=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function zt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!t_.test(t)?null:t}function bt(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=_e(o);n.has(s)||(n.add(s),r.push(s))}return r}function n_(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Ie(e,t,n,r=e_){for(let o of e)for(let s of t){let i=_e(Ao(o,s)),a=Ao(o,s,n).replaceAll("\\","/");if(n_(i,a)&&r(a))return a}return null}var rc=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,oc=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,o_=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,nc=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"]),s_=/^[a-z][a-z0-9-]{1,63}$/,i_=[".cursor/skills",".claude/skills",".agents/skills"],a_=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],c_=ut(i_,et(Object.values(Qe)).skills),u_=ut(a_,et(Object.values(kt)).skills),l_=new Set(["read","read_file","view"]),f_=new Set(["bash","shell","zsh"]);function ko(e){let t=e.replace(/\\/g,"/");return rc.exec(t)?.[1]??null}function d_(e){let t=e.replace(/\\/g,"/"),r=oc.exec(t)?.[1];return r?r.toLowerCase():null}function p_(e){return ko(e)??d_(e)}function m_(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 Xn(e){return typeof e=="string"?Xn(ge(e,null)):!e||typeof e!="object"?null:m_(e)}function sc(e){if(typeof e=="string")return sc(ge(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function bo(e){let t=sc(e.tool_input);if(t)return t;let n=it(e.command);return n.length>0?n:null}function g_(e){let t=e.replace(/\\/g,"/"),n=rc.exec(t);if(n?.[1])return n[1];let o=oc.exec(t)?.[1];return o?o.toLowerCase():null}function __(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function xo(e){let t=Xn(e.tool_input)??it(e.file_path);return t.length>0?t:null}function Vt(e,t,n){let r=__(e).toLowerCase();if(l_.has(r)){let o=xo(e);return o?t(o):null}if(f_.has(r)){let o=bo(e);return o?n(o):null}return null}function ic(e){return Vt(e,p_,g_)}function h_(e){let t=new Set,n=[];for(let r of e.matchAll(o_)){let o=r[1]?.toLowerCase();!o||t.has(o)||S_(o)||(t.add(o),n.push(o))}return n}function S_(e){let t=e.split("/")[0];return nc.has(e)||t!==void 0&&nc.has(t)}function ac(e){let t=e.skillId.toLowerCase();if(!s_.test(t))return null;let n=e.exists??r_,r=`${t}/SKILL.md`,o=Ie(bt(e.launchCwd,e.gitRoot),c_,r,n);return o!==null?o:e.home?Ie([_e(e.home)],u_,r,n):null}function E_(e){return it(e.prompt)}function cc(e){let t=L(e,"command_name");if(t){let r=L(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=E_(e);return n?h_(n):[]}var No=Ve(rt(),1);import{existsSync as zh}from"node:fs";var ft={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Yt(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Wh(e){if(!e)return"";let t=Dt(e).replace(/\.git$/i,""),n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Yt(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Yt(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Yt(o[1]):Yt(t)}async function rr(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?Dt(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 vc(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=ft[n];if(!a)return"";let c=oa(n,e.scope_path,i);if(s){let g=da(s,c);if(g)return g}let l=o??await rr(r),u=l?.remote?Wh(l.remote):"";if(u||(u=Yt(process.env.GITHUB_REPOSITORY??"")),!u)return"";let d=e.scope_path??"",f=d?`${d}/`:"",p=`${u}:${f}${a}`;return s&&pa(s,c,p),p}var Vh=[".cursor/rules",".claude/rules",".codex/rules"],Jh=et(Object.values(Qe)).rules;function Yh(e){return ut(Yn(e?ft[e]:void 0,Vh),Jh)}var Xh=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Mc(e){let t=zt(e.relativePath);if(!t)return null;let n=e.exists??zh,r=bt(e.launchCwd,e.gitRoot),o=Yh(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([_e(e.home)],o,t,n):null}function qh(e){let t=e.replace(/\\/g,"/"),r=Xh.exec(t)?.[1];return r?(0,No.nativeKeyForRulePath)(r):null}function Lc(e){return Vt(e,No.nativeKeyForRulePath,qh)}function Hc(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function Uc(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=zt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var vo=Ve(rt(),1);import{existsSync as Zh}from"node:fs";var Qh=[".cursor/commands",".claude/commands",".codex/prompts"],eS=et(Object.values(Qe)).commands;function tS(e){return ut(Yn(e?ft[e]:void 0,Qh),eS)}var nS=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function Dc(e){let t=zt(e.commandId);if(!t)return null;let n=e.exists??Zh,r=`${t}.md`,o=tS(e.runnerPlatform),s=Ie(bt(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Ie([_e(e.home)],o,r,n):null}function rS(e){let t=e.replace(/\\/g,"/"),r=nS.exec(t)?.[1];return r?(0,vo.nativeKeyForCommandPath)(r):null}function Fc(e){return Vt(e,vo.nativeKeyForCommandPath,rS)}var or=Ve(rt(),1);function Mo(e){let t=wi(e);if(t.problem){E(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function $c(e,t){if(L(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function oS(){return!!(M("CURSOR_VERSION")??M("CURSOR_PROJECT_DIR"))}function jc(e,t,n){return e!=="claude"&&e!=="codex"?!1:$c(t,n)?!0:oS()}var sS=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Xt(e,t,n,r){return $c(e,t)?"cursor":Pn(r)?r:Pn(n)?n:L(e,"turn_id")?"codex":L(e,"session_id")||sS.has(t.toLowerCase())?"claude":"unknown"}function sr(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function iS(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 Bc(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function Kc(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Gc(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function qt(e){return L(e,"session_id")||L(e,"conversation_id")}function Lo(e){return L(e,"prompt.id")||L(e,"prompt_id")||L(e,"generation_id")||L(e,"turn_id")}function Ho(e){return L(e,"hook_event_name")||L(e,"event")}function Wc(e,t,n){let r=qt(e),o=Lo(e),s=Ho(e),i=L(e,"source"),a=Xt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var aS=["session_start","session_end","tool_invoked","skill_invoked"];function cS(e){return aS.includes(e)}function Uo(e,t){return e&&cS(e)?e:iS(t.toLowerCase())}var uS={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function ir(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function zc(e,t=""){let n=L(e,"tool_name")||L(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!ir(n)&&(n=`MCP:${n}`):n=uS[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?it(o.skill)||it(o.skill_name):"")||L(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=ic(a);let c=Lc(a),l=Fc(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var lS=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Vc(e){for(let t of["subagent_type","agent_type"]){let n=L(e,t);if(n&&lS.test(n))return n}return null}function Jc(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 fS="error",dS="interrupted",pS="permission_denied",mS=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Zt(e){return mS.test(e)?e:null}function gS(e){for(let t of["failure_type","error_type"]){let n=Zt(L(e,t));if(n)return n}return null}function Yc(e,t){return He(e,"is_interrupt")===!0?dS:t.toLowerCase()==="permissiondenied"?pS:gS(e)??fS}function Xc(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function _S(e,t){return Xc(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function hS(e,t){return Xc(t,n=>(0,or.mcpServerNameMatchesToolSegment)(n,e))}function SS(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,or.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:hS(o[1],t)??o[1],mcpTool:o[2]}}function ES(e,t){if(/^mcp__/i.test(e))return SS(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:_S(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function yS(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function qc(e,t=[],n=""){let r=e?ES(e,t):{mcpServer:null,mcpTool:null},o=Zt(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!ir(e)&&(s=e),s&&(s=yS(s,o)),{mcpServer:o,mcpTool:s}}var eu=3e4,xS="claims",OS=!0,IS=100,TS=new Set(["sessionstart","sessionend","stopfailure"]),PS=["tool_name","tool","command","file_path","url"];function wS(e=Qc()){return Do(ye(e),xS)}function tu(e,t){try{let n=kS(e,"utf8").split(`
|
|
27
|
-
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function
|
|
28
|
-
`,{encoding:"utf8",flag:"wx"})}catch(o){if(
|
|
29
|
-
${e.
|
|
30
|
-
`
|
|
31
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cloud cache write failed open: ${r}`)}}function QS(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?YS:JS;return n-e.probed_at<r}async function eE(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 tE(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 nE(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 rE(e){let t=await Promise.allSettled([eE(e),tE(e),nE(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function Iu(e,t){if(e==="interactive")return null;let n=t?.home??Ou(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=XS(n),i=qS(s);if(QS(i,e,o))return i.result;let a=await rE(r);return ZS(s,{context:e,probed_at:o,result:a}),a}var Nu=Ve(rt(),1);import{existsSync as Pu}from"node:fs";import{homedir as wu}from"node:os";import{join as en,resolve as Wo,sep as Tu}from"node:path";function ur(e,t,n){if(!Pu(e))return;let r=ne(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function oE(e,t,n){if(!Pu(e))return;let r=ne(e,{}),o=Wo(t),s=null;for(let a of Object.keys(r.projects??{})){let c=Wo(a);(o===c||o.startsWith(c.endsWith(Tu)?c:c+Tu))&&(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 vu(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"?(ur(en(r,".claude.json"),{source:"claude_json_user"},o),oE(en(r,".claude.json"),t,o)):n==="cursor"&&ur(en(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),ur(en(t,".mcp.json"),{source:"mcp_json"},o),ur(en(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function zo(e,t=process.cwd(),n="claude",r=wu()){return[...vu(e,t,n,r).values()].map(o=>o.declared)}function Mu(e,t,n=process.cwd(),r="claude",o=wu()){let s=vu(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,Nu.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var sE=["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"],iE=["CURSOR_PROJECT_DIR"],aE=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function cE(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)aE.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Lu(e=process.env){let t=sE.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:cE(e[r]??"")}:{name:r,present:!1}),n=iE.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as DE}from"node:os";import{homedir as Hu}from"node:os";import{join as uE}from"node:path";function lE(e=Hu()){return uE(e,".claude.json")}function lr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Uu(e=Hu()){let n=ne(lE(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=lr(n.emailAddress),o=lr(n.fullName)??lr(n.displayName),s=lr(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 $u}from"node:os";import{join as Du}from"node:path";var fE="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 ju(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function dE(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 ju(r)}catch{return null}}function Fu(e,t,n){return It(e[n])??It(t?.[n])}function pE(e=process.env,t=$u()){let n=It(e.CODEX_HOME)??Du(t,".codex");return Du(n,"auth.json")}function Bu(e=process.env,t=$u()){let n=ne(pE(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=dE(o);if(!s)return null;let i=ju(s[fE]),a=Fu(s,i,"name"),c=Fu(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 pr}from"node:os";import{join as Be}from"node:path";import{join as mE}from"node:path";var gE="cursor-ide-identity.json",_E=840*60*1e3;function Gu(e){return mE(ye(e),gE)}function Ku(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Wu(e){let t=ne(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:Ku(t.email),auth_id:Ku(t.auth_id)}}function zu(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<_E}function Vu(e,t){try{me(e,`${JSON.stringify(t)}
|
|
32
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as hE}from"node:child_process";import{existsSync as SE}from"node:fs";import{createRequire as EE}from"node:module";import{pathToFileURL as yE}from"node:url";var Yu=EE(import.meta.url),fr=`
|
|
27
|
+
npx ${Gn} install`)}function rc(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(_e)||/(?:^|[\s/"'])ev-ai-agent-hook(?:$|[\s"'])/.test(e)}function To(e,t){return`${e.replace(/\s+--runner(?:=|\s+)\S+/g,"").trimEnd()} --runner ${t}`}function qe(e,t){Oo(Io(e),{recursive:!0}),Eg(e,`${JSON.stringify(t,null,2)}
|
|
28
|
+
`,"utf8")}function Fe(e){if(Xe(e))try{return JSON.parse(hg(e,"utf8"))}catch(t){throw t instanceof SyntaxError?new Error(`Invalid JSON in ${e} \u2014 fix or remove the file`,{cause:t}):t}}function $g(e,t){let n=Ba(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 jg(e){return(e.schema_version??Ye)===Ye&&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 oc(e,t){let n=W(e,Hn),r=Fe(n),o=$g(r,t);return t.collectorUrl!==void 0||Xe(n)||!jg(o)?(qe(n,o),{manifestPath:n,wrote:!0}):{manifestPath:void 0,wrote:!1}}function bo(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 Bg(e){if(bo(process.env))return!0;let t=De();return[...mo(),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?bo(o.env):!1}catch{return!1}})}function Kg(e){try{let t=Fe(W(e,".claude","settings.json"));return t?bo(t.env):!1}catch{return!1}}function sc(e){return Array.isArray(e)?e:[]}function er(e){let t=[],n=r=>!!r&&typeof r=="object"&&rc(r.command);for(let r of sc(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 ic(e,t){return[...er(e),...t]}function Po(e){return Array.isArray(e)?e.filter(t=>!t||typeof t!="object"?!0:!rc(t.command)):[]}function Gg(e,t){return[...Po(e),{command:t}]}function Wg(e){return typeof e=="string"?[e]:e}function zg(e){let t=(n="")=>({hooks:Wg(e).map(r=>({type:"command",command:qn(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 Vg(e){let t=typeof e=="string"?{command:e}:e,n=(r="")=>({hooks:[{type:"command",command:qn(r,t.command),...t.commandWindows===void 0?{}:{commandWindows:qn(r,t.commandWindows)},statusMessage:aa}]});return{SessionStart:[n("SessionStart")],UserPromptSubmit:[n()],PreToolUse:[n()],PostToolUse:[n()],Stop:[n()],SubagentStart:[n()],SubagentStop:[n()]}}var Jg=["sessionStart","beforeSubmitPrompt","preToolUse","postToolUse","postToolUseFailure","beforeShellExecution","beforeReadFile","beforeMCPExecution","subagentStart","subagentStop","stop"],Yg=["afterShellExecution","afterFileEdit"];function Xg(e,t=Yg){let n={...e};for(let r of t){if(!(r in n))continue;let o=Po(n[r]);o.length===0?delete n[r]:n[r]=o}return n}function qg(e,t,n={}){let r=W(e,".claude/settings.json"),o=To(t,"claude"),s=Fe(r)??{};if(Bg(e)&&!n.force){if(s.hooks&&typeof s.hooks=="object"){let u={...s.hooks};for(let d of Object.keys(u))u[d]=er(u[d]),sc(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=zg(o),l={...a};for(let[u,d]of Object.entries(c))l[u]=ic(a[u],d);return s.hooks=l,qe(r,s),!0}function Zg(e,t){let n=W(e,".cursor/hooks.json"),r=To(t,"cursor"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Xg({...s});for(let a of Jg)i[a]=Gg(i[a],qn(a,r));qe(n,{...o,version:typeof o.version=="number"?o.version:1,hooks:i})}function Qg(e,t){let n=W(e,".codex/hooks.json"),r=To(t,"codex"),o=Fe(n)??{},s=o.hooks&&typeof o.hooks=="object"?o.hooks:{},i=Vg(r),a={...s};for(let[c,l]of Object.entries(i))a[c]=ic(s[c],l);qe(n,{...o,hooks:a})}function e_(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=er(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 t_(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=Po(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){Zn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function n_(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=er(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){Zn(t,{force:!0}),E(`Removed ${t}`);return}qe(t,{...n,hooks:r}),E(`Removed ev-ai hooks from ${t}`)}}function wo(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)&&Ka(e,t)}async function ac(e={}){let t=kg(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??qa();wo(process.platform,process.arch,{requireBinaryArch:s==="binary"});let i=e.cwd??process.cwd(),a=await Le(i),{command:c,hookPath:l,strategy:u}=Fg(a,De(),s),{installationId:d,storePath:f}=await Yn(a,{overrideId:e.installationId}),{manifestPath:p,wrote:g}=oc(a,e),S=[];return n?E("Skipped Claude hook \u2014 --no-claude"):qg(a,c,{force:e.force})?(S.push("Claude"),e.force&&Kg(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"):(Zg(a,c),S.push("Cursor")),o?E("Skipped Codex hook \u2014 --no-codex"):(Qg(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 cc(e=process.cwd()){wo(process.platform,process.arch,{requireBinaryArch:!0});let t=await Le(e),{projectPath:n,globalPath:r}=Lg(t);E(`Refreshed ${r}`),E(`Refreshed ${n}`),E("Hook configs and shared manifest left unchanged")}async function uc(e={}){let t=xg(e);e.collectorUrl=t,wo(process.platform,process.arch,{requireBinaryArch:!1});let n=e.cwd??process.cwd(),r=await Le(n),{manifestPath:o,wrote:s}=oc(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 lc(e){for(let t of[()=>e_(e),()=>t_(e),()=>n_(e)])try{t()}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: strip skipped a hook file: ${r}`)}}async function fc(e=process.cwd()){let t=await Le(e);return lc(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 dc(e=process.cwd()){let t=await Le(e);lc(t);for(let n of Un){let r=W(t,n);if(Xe(r))try{Zn(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 wS,mkdirSync as NS,readdirSync as vS,readFileSync as MS,unlinkSync as _u,writeFileSync as LS}from"node:fs";import{homedir as hu}from"node:os";import{join as zo}from"node:path";import{existsSync as p_}from"node:fs";import{existsSync as r_}from"node:fs";import{homedir as mc}from"node:os";import{join as o_}from"node:path";function gc(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var s_={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 pc(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function i_(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:pc(n.mcpJson,t.mcpJson),mcpToml:pc(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function _c(e){return Object.fromEntries(Object.entries(s_).map(([t,n])=>[t,i_(n,n[e])]))}var bt=_c("homeOnly"),Qe=_c("projectOnly");function a_(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function c_(e,t){return a_(e).some(n=>r_(o_(t,n)))}function hc(e,t){for(let n of e)if(c_(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 u_(e,t=mc(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...zn(o.managed,n,t));return Ze(r)}var tt=et(Object.values(bt));function Sc(e=mc(),t=process.platform){return u_(Object.values(bt),e,t)}import{existsSync as l_}from"node:fs";import{resolve as No}from"node:path";function he(e){return No(e).replaceAll("\\","/").replace(/\/$/,"")}function ut(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 tr(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 f_=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Yt(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!f_.test(t)?null:t}function Ot(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 d_(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function Ie(e,t,n,r=l_){for(let o of e)for(let s of t){let i=he(No(o,s)),a=No(o,s,n).replaceAll("\\","/");if(d_(i,a)&&r(a))return a}return null}var yc=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,Rc=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,m_=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Ec=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"]),g_=/^[a-z][a-z0-9-]{1,63}$/,__=[".cursor/skills",".claude/skills",".agents/skills"],h_=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],S_=ut(__,et(Object.values(Qe)).skills),E_=ut(h_,et(Object.values(bt)).skills),y_=new Set(["read","read_file","view"]),R_=new Set(["bash","shell","zsh"]);function vo(e){let t=e.replace(/\\/g,"/");return yc.exec(t)?.[1]??null}function C_(e){let t=e.replace(/\\/g,"/"),r=Rc.exec(t)?.[1];return r?r.toLowerCase():null}function A_(e){return vo(e)??C_(e)}function x_(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 nr(e){return typeof e=="string"?nr(ge(e,null)):!e||typeof e!="object"?null:x_(e)}function Cc(e){if(typeof e=="string")return Cc(ge(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function Mo(e){let t=Cc(e.tool_input);if(t)return t;let n=it(e.command);return n.length>0?n:null}function k_(e){let t=e.replace(/\\/g,"/"),n=yc.exec(t);if(n?.[1])return n[1];let o=Rc.exec(t)?.[1];return o?o.toLowerCase():null}function b_(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Lo(e){let t=nr(e.tool_input)??it(e.file_path);return t.length>0?t:null}function Xt(e,t,n){let r=b_(e).toLowerCase();if(y_.has(r)){let o=Lo(e);return o?t(o):null}if(R_.has(r)){let o=Mo(e);return o?n(o):null}return null}function Ac(e){return Xt(e,A_,k_)}function O_(e){let t=new Set,n=[];for(let r of e.matchAll(m_)){let o=r[1]?.toLowerCase();!o||t.has(o)||I_(o)||(t.add(o),n.push(o))}return n}function I_(e){let t=e.split("/")[0];return Ec.has(e)||t!==void 0&&Ec.has(t)}function xc(e){let t=e.skillId.toLowerCase();if(!g_.test(t))return null;let n=e.exists??p_,r=`${t}/SKILL.md`,o=Ie(Ot(e.launchCwd,e.gitRoot),S_,r,n);return o!==null?o:e.home?Ie([he(e.home)],E_,r,n):null}function T_(e){return it(e.prompt)}function kc(e){let t=L(e,"command_name");if(t){let r=L(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=T_(e);return n?O_(n):[]}var jo=Ve(rt(),1);import{existsSync as nS}from"node:fs";var ft={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 tS(e){if(!e)return"";let t=Kt(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 ur(e=process.cwd()){let t=await ye("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([ye("git",["remote","get-url","origin"],2e3,{cwd:e}),ye("git",["branch","--show-current"],2e3,{cwd:e}),ye("git",["rev-parse","HEAD"],2e3,{cwd:e}),ye("git",["status","--porcelain"],2e3,{cwd:e})]);return{remote:n.ok?Kt(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 Xc(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=ft[n];if(!a)return"";let c=ba(n,e.scope_path,i);if(s){let g=Ma(s,c);if(g)return g}let l=o??await ur(r),u=l?.remote?tS(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&&La(s,c,p),p}var rS=[".cursor/rules",".claude/rules",".codex/rules"],oS=et(Object.values(Qe)).rules;function sS(e){return ut(tr(e?ft[e]:void 0,rS),oS)}var iS=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function qc(e){let t=Yt(e.relativePath);if(!t)return null;let n=e.exists??nS,r=Ot(e.launchCwd,e.gitRoot),o=sS(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([he(e.home)],o,t,n):null}function aS(e){let t=e.replace(/\\/g,"/"),r=iS.exec(t)?.[1];return r?(0,jo.nativeKeyForRulePath)(r):null}function Zc(e){return Xt(e,jo.nativeKeyForRulePath,aS)}function Qc(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function eu(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=Yt(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Bo=Ve(rt(),1);import{existsSync as cS}from"node:fs";var uS=[".cursor/commands",".claude/commands",".codex/prompts"],lS=et(Object.values(Qe)).commands;function fS(e){return ut(tr(e?ft[e]:void 0,uS),lS)}var dS=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function tu(e){let t=Yt(e.commandId);if(!t)return null;let n=e.exists??cS,r=`${t}.md`,o=fS(e.runnerPlatform),s=Ie(Ot(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?Ie([he(e.home)],o,r,n):null}function pS(e){let t=e.replace(/\\/g,"/"),r=dS.exec(t)?.[1];return r?(0,Bo.nativeKeyForCommandPath)(r):null}function nu(e){return Xt(e,Bo.nativeKeyForCommandPath,pS)}var lr=Ve(rt(),1);function ru(e){let t=Zi(e);if(t.problem){E(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function ou(e,t){if(L(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function mS(){return!!(M("CURSOR_VERSION")??M("CURSOR_PROJECT_DIR"))}function su(e,t,n){return e!=="claude"&&e!=="codex"?!1:ou(t,n)?!0:mS()}var gS=new Set(["sessionstart","sessionend","stop","stopfailure","pretooluse","posttooluse","posttoolusefailure","permissiondenied","subagentstart","subagentstop","userpromptexpansion","userpromptsubmit"]);function Qt(e,t,n,r){return ou(e,t)?"cursor":Dn(r)?r:Dn(n)?n:L(e,"turn_id")?"codex":L(e,"session_id")||gS.has(t.toLowerCase())?"claude":"unknown"}function fr(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function _S(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 iu(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function au(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function cu(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function en(e){return L(e,"session_id")||L(e,"conversation_id")}function Ko(e){return L(e,"prompt.id")||L(e,"prompt_id")||L(e,"generation_id")||L(e,"turn_id")}function Go(e){return L(e,"hook_event_name")||L(e,"event")}function uu(e,t,n){let r=en(e),o=Ko(e),s=Go(e),i=L(e,"source"),a=Qt(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var hS=["session_start","session_end","tool_invoked","skill_invoked"];function SS(e){return hS.includes(e)}function Wo(e,t){return e&&SS(e)?e:_S(t.toLowerCase())}var ES={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function dr(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function lu(e,t=""){let n=L(e,"tool_name")||L(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!dr(n)&&(n=`MCP:${n}`):n=ES[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?it(o.skill)||it(o.skill_name):"")||L(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=Ac(a);let c=Zc(a),l=nu(a);return{toolName:n,skillName:i,ruleName:c,commandName:l}}var yS=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function fu(e){for(let t of["subagent_type","agent_type"]){let n=L(e,t);if(n&&yS.test(n))return n}return null}function du(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 RS="error",CS="interrupted",AS="permission_denied",xS=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function tn(e){return xS.test(e)?e:null}function kS(e){for(let t of["failure_type","error_type"]){let n=tn(L(e,t));if(n)return n}return null}function pu(e,t){return He(e,"is_interrupt")===!0?CS:t.toLowerCase()==="permissiondenied"?AS:kS(e)??RS}function mu(e,t){let n=null;for(let r of e)r&&t(r)&&(n===null||r.length>n.length)&&(n=r);return n}function bS(e,t){return mu(t,n=>e===n||e.startsWith(`${n}_`)||e.startsWith(`${n}-`))}function OS(e,t){return mu(t,n=>(0,lr.mcpServerNameMatchesToolSegment)(n,e))}function IS(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of(0,lr.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:OS(o[1],t)??o[1],mcpTool:o[2]}}function TS(e,t){if(/^mcp__/i.test(e))return IS(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:bS(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function PS(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function gu(e,t=[],n=""){let r=e?TS(e,t):{mcpServer:null,mcpTool:null},o=tn(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!dr(e)&&(s=e),s&&(s=PS(s,o)),{mcpServer:o,mcpTool:s}}var Su=3e4,HS="claims",US=!0,DS=100,FS=new Set(["sessionstart","sessionend","stopfailure"]),$S=["tool_name","tool","command","file_path","url"];function jS(e=hu()){return zo(Re(e),HS)}function Eu(e,t){try{let n=MS(e,"utf8").split(`
|
|
29
|
+
`,1)[0]??"";return t-Number(n.trim())}catch{return Number.NaN}}function BS(e){let t=[];for(let n of $S){let r=L(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":Gt(t.join("\0"))}function KS(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=FS.has(n);if(!a&&!c)return;let l=e.runnerPlatform.trim()||"unknown";return Gt(`${l}|${t}|${n}|${r}|${o}|${i}|${s}`)}function GS(e,t=Date.now()){let n;try{n=vS(e)}catch{return}let r=0;for(let o of n){if(r>=DS)break;r+=1;let s=zo(e,o),i=Eu(s,t);if(!(!Number.isFinite(i)||i<Su))try{_u(s)}catch{}}}function WS(e,t,n=Date.now()){let r=zo(t,e);try{if(wS(r)){let o=Eu(r,n);if(Number.isFinite(o)&&o>=0&&o<Su)return!1;try{_u(r)}catch{}}}catch{}try{NS(t,{recursive:!0}),LS(r,`${n}
|
|
30
|
+
`,{encoding:"utf8",flag:"wx"})}catch(o){if(jt(o))return!1;let s=o instanceof Error?o.message:String(o);return E(`WARN: event claim failed open: ${s}`),!0}return GS(t,n),!0}function zS(e,t,n){let r=en(e),o=Ko(e),s=L(e,"tool_use_id"),i=L(e,"subagent_id")||L(e,"agent_id"),a=Qt(e,t,void 0,n),c=BS(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function yu(e,t,n,r=hu(),o=Date.now()){if(!US)return!0;let s=KS(zS(e,t,n));if(!s)return!0;let i=WS(s,jS(r),o);return!i&&M("EV_AI_HOOK_DEBUG")&&E(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{mkdirSync as VS,readFileSync as Vo,statSync as xu,unlinkSync as ku,writeFileSync as Jo}from"node:fs";import{homedir as bu}from"node:os";function Ou(e){return e==="session_start"||e==="session_end"}var pr=new Set,Ru=!1;function Yo(e=bu()){return Mi(e)}function Xo(e,t=bu(),n=process.platform){if(e!==void 0)return e>0?e:Tn(n);let r=ne(zt(t),{});return Xi(r)??Tn(n)}function nn(e){return Nn(e.pid,e.acquiredAtMs)}function Iu(e){try{let t=xu(e);return t.isFile()&&t.size<=Zr?Vo(e,"utf8"):void 0}catch{return}}function qo(e,t=Yo()){if(!e)return;let n=wn(t,e.index),r={path:n,pid:process.pid,acquiredAtMs:e.acquiredAtMs},o=Iu(n);if(o===nn(r))return mr(r);if(o===Nn(process.ppid,e.acquiredAtMs))try{return Jo(n,nn(r),{encoding:"utf8",mode:384}),mr(r)}catch{return}}function Tu(e,t){if(e.path){pr.delete(e);try{Iu(e.path)===nn(e)&&Jo(e.path,Nn(t,e.acquiredAtMs),{encoding:"utf8",mode:384})}catch{}}}function Pu(e,t=Date.now()){let n,r;try{let o=xu(e);if(!o.isFile())return!1;r=o.mtimeMs,n=o.size<=Zr?Vo(e,"utf8"):""}catch{return!1}return Hi(n,r,t)}function wu(e,t=Yo(),n=Date.now){for(let r=0;r<e;r+=1)if(!Pu(wn(t,r),n()))return!0;return e<=0}function Nu(e){return{pid:process.pid,acquiredAtMs:e}}function Cu(e,t){let n=e instanceof Error?e.message:String(e);return E(`WARN: hook process slot failed open: ${n}`),Nu(t)}function mr(e){return pr.add(e),Ru||(Ru=!0,process.once("exit",()=>{for(let t of[...pr])gr(t)})),e}function Au(e){try{return Jo(e.path,nn(e),{encoding:"utf8",flag:"wx",mode:384}),!0}catch(t){if(jt(t))return!1;throw t}}function vu(e,t=Yo(),n=Date.now){if(e<=0)return Nu(n());try{VS(t,{recursive:!0})}catch(s){return Cu(s,n())}let r,o=0;for(let s=0;s<e;s+=1)try{let i={path:wn(t,s),pid:process.pid,acquiredAtMs:n()};if(Au(i))return mr(i);if(Pu(i.path,n())){o+=1;continue}try{ku(i.path)}catch(a){if(!yt(a))throw a}if(i.acquiredAtMs=n(),Au(i))return mr(i);o+=1}catch(i){r??=i}return r===void 0||o>0?null:Cu(r,n())}function gr(e,t=Date.now()){if(pr.delete(e),!(!e.path||t-e.acquiredAtMs>=Pn-Bt))try{Vo(e.path,"utf8")===nn(e)&&ku(e.path)}catch{}}function Zo(e){M("EV_AI_HOOK_DEBUG")&&E(`DEBUG: hook process cap reached (${e}/${e}); event dropped`)}import{closeSync as JS,writeSync as YS}from"node:fs";function Mu(e=process.env){let t=e[Xr];if(delete e[Xr],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{YS(n,xi)}catch{}try{JS(n)}catch{}}}function Qo(e=process.env){let t=e[Ei];if(t)return{launcherVersion:t,hookSource:e[yi]??"",fallbackReason:e[Ri],launcherScope:e[Ci]}}function Lu(e,t){return(e?Vt(e):void 0)===t}import{realpathSync as ux}from"node:fs";import{homedir as lx}from"node:os";var B=Ve(rt(),1);import{existsSync as XS,readFileSync as qS}from"node:fs";import{homedir as Hu}from"node:os";import{join as ZS}from"node:path";var QS="cloud-cache.json",eE=1440*60*1e3,tE=900*1e3;function nE(e=Hu()){return ZS(Re(e),QS)}function rE(e){if(!XS(e))return;let t=ge(qS(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 oE(e,t){try{me(e,`${JSON.stringify(t)}
|
|
31
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cloud cache write failed open: ${r}`)}}function sE(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?tE:eE;return n-e.probed_at<r}async function iE(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 aE(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 cE(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 uE(e){let t=await Promise.allSettled([iE(e),aE(e),cE(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function Uu(e,t){if(e==="interactive")return null;let n=t?.home??Hu(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=nE(n),i=rE(s);if(sE(i,e,o))return i.result;let a=await uE(r);return oE(s,{context:e,probed_at:o,result:a}),a}var ju=Ve(rt(),1);import{existsSync as Fu}from"node:fs";import{homedir as $u}from"node:os";import{join as rn,resolve as es,sep as Du}from"node:path";function _r(e,t,n){if(!Fu(e))return;let r=ne(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function lE(e,t,n){if(!Fu(e))return;let r=ne(e,{}),o=es(t),s=null;for(let a of Object.keys(r.projects??{})){let c=es(a);(o===c||o.startsWith(c.endsWith(Du)?c:c+Du))&&(s===null||c.length>es(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 Bu(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"?(_r(rn(r,".claude.json"),{source:"claude_json_user"},o),lE(rn(r,".claude.json"),t,o)):n==="cursor"&&_r(rn(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),_r(rn(t,".mcp.json"),{source:"mcp_json"},o),_r(rn(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function ts(e,t=process.cwd(),n="claude",r=$u()){return[...Bu(e,t,n,r).values()].map(o=>o.declared)}function Ku(e,t,n=process.cwd(),r="claude",o=$u()){let s=Bu(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if((0,ju.mcpServerNameMatchesToolSegment)(a,e))return c.config??null;return null}var fE=["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"],dE=["CURSOR_PROJECT_DIR"],pE=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function mE(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)pE.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Gu(e=process.env){let t=fE.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:mE(e[r]??"")}:{name:r,present:!1}),n=dE.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as GE}from"node:os";import{homedir as Wu}from"node:os";import{join as gE}from"node:path";function _E(e=Wu()){return gE(e,".claude.json")}function hr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function zu(e=Wu()){let n=ne(_E(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=hr(n.emailAddress),o=hr(n.fullName)??hr(n.displayName),s=hr(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 Yu}from"node:os";import{join as Vu}from"node:path";var hE="https://api.openai.com/auth";function Pt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Xu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function SE(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 Xu(r)}catch{return null}}function Ju(e,t,n){return Pt(e[n])??Pt(t?.[n])}function EE(e=process.env,t=Yu()){let n=Pt(e.CODEX_HOME)??Vu(t,".codex");return Vu(n,"auth.json")}function qu(e=process.env,t=Yu()){let n=ne(EE(e,t),{}),r=Pt(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&Pt(n.OPENAI_API_KEY))return null;let o=Pt(n.tokens?.id_token);if(!o)return null;let s=SE(o);if(!s)return null;let i=Xu(s[hE]),a=Ju(s,i,"name"),c=Ju(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 yr}from"node:os";import{join as Be}from"node:path";import{join as yE}from"node:path";var RE="cursor-ide-identity.json",CE=840*60*1e3;function Qu(e){return yE(Re(e),RE)}function Zu(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function el(e){let t=ne(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:Zu(t.email),auth_id:Zu(t.auth_id)}}function tl(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<CE}function nl(e,t){try{me(e,`${JSON.stringify(t)}
|
|
32
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as AE}from"node:child_process";import{existsSync as xE}from"node:fs";import{createRequire as kE}from"node:module";import{pathToFileURL as bE}from"node:url";var ol=kE(import.meta.url),Sr=`
|
|
33
33
|
SELECT key, value
|
|
34
34
|
FROM ItemTable
|
|
35
35
|
WHERE key LIKE 'cursorAuth/%'
|
|
36
36
|
AND key NOT LIKE '%Token%'
|
|
37
37
|
AND key NOT LIKE '%token%'
|
|
38
38
|
ORDER BY key
|
|
39
|
-
`.trim(),
|
|
40
|
-
`)){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&&!
|
|
41
|
-
`);return q(n)}function
|
|
42
|
-
`)){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 jE(e,t=te){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return $E(n)}function BE(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 KE(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),I=Ke(k,null,"codebuild",k);if(I)return I;let O=j(e.DRONE_COMMIT_AUTHOR_EMAIL),v=j(e.DRONE_COMMIT_AUTHOR),T=Ke(v??j(e.DRONE_COMMIT_AUTHOR_NAME),O,"drone",O??v);if(T)return T;if(tl(e.CLAUDE_CODE_REMOTE)||tl(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 Xo(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 tl(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function GE(e,t,n){return e==="claude"?Uu(t):e==="cursor"?Qu(t,n):e==="codex"?Bu(n,t):null}async function qo(e,t=te,n=process.env,r={}){let o=await jE(e,t),s=BE(n),i=Xo(o)?o:s&&Xo(s)?s:null,a=GE(r.runnerPlatform,r.home??DE(),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=KE(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:Xo(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 Zo(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??te,s=e.env??process.env,i=await qo(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=FE(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?lo(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let p=n;return{operator:i,commit:()=>{p&&ua(p,a,bn())}}}function Qo(e){return e?!lo(e)?.operator_identity_hash:!0}function nl(e){return!0}import{existsSync as sA,readFileSync as iA}from"node:fs";import{homedir as Id}from"node:os";import{join as Mt,resolve as aA}from"node:path";import{basename as qC,join as vt}from"node:path";import{dirname as pl,resolve as hr}from"node:path";import{existsSync as WE}from"node:fs";import{homedir as sl}from"node:os";import{relative as il,resolve as Pe,sep as ot}from"node:path";var zE=["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"],VE=["prompt","tool_input","tool_response","last_assistant_message","command"],JE=new Set;function YE(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return JE}}var al=new Set(["on","1","true"]);function os(e){let t=M("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?al.has(t.toLowerCase()):e?.collect_prompt===!0}function mr(e,t){let n=cl(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=M("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?al.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function cl(e){return M("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||M("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function XE(e){let t={};for(let n of zE){let r=He(e,n);r!==void 0&&(t[n]=r)}return t}function gr(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Pe(e),r=Pe(t),o=il(r,n);return!o||o==="."?".":o.startsWith(`..${ot}`)||o===".."||Pe(r,o)!==n?null:o.split(ot).join("/")}function ul(e,t){let n=il(Pe(t),Pe(e)).split(ot).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function ll(e){return typeof e!="string"||e.length===0?null:Pe(e).split(ot).join("/")}function qE(){let e=M("CURSOR_PROJECT_DIR");if(!e)return null;let t=Pe(e);return WE(t)?t.split(ot).join("/"):null}function ts(e,t){return gr(e,t)!==null}function ZE(e,t){let n=Pe(t??sl(),".cursor").split(ot).join("/");return ts(e,n)}function QE(e,t,n){return t!==null&&ts(e,t)?!0:t!==null&&ZE(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&ts(e,n.gitRoot)?!0:t===null}function fl(e,t){let n=ll(e.cwd);if(n!==null)return n;let r=Pe(process.cwd()).split(ot).join("/"),o=qE();return QE(r,o,t)?r:o??r}function ss(e,t={}){return fl(e,t)}function is(e,t=sl()){let n=Pe(t).split(ot).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function rl(e,t,n){let r=ll(n.launchCwd)??fl(t,n);e.cwd=is(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?gr(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var dl="\u2026[truncated]\u2026",ns=Buffer.byteLength(dl,"utf8"),ey=8;function rn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function ol(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function ty(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 ny(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=ns)return ol(e,t);let r=t-ns,o=Math.ceil(r/2),s=Math.floor(r/2);return`${ol(e,o)}${dl}${ty(e,s)}`}function rs(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)=>{rs(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||rs(o,[...t,r],n)}function ry(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 oy=256;function sy(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 iy(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=rn(e);if(s<=t)return;let i=[];rs(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=sy(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&&ry(e,u.path,ny(u.value,r))}}function ay(e,t){let n=Math.max(0,t-oy),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:rn(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(rn(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function es(e,t){let n=rn(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,iy(r,t,ns+ey),rn(r)>t&&ay(r,t),r}function cy(e,t,n){if(!(n.promptCapture??os()))return;let r=YE(n.runnerEvent);for(let o of VE){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function _r(e,t,n={}){let r=cl(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,rl(s,e,n),es(s,ro)}let o=XE(e);return rl(o,e,n),r==="content"?(cy(o,e,n),es(o,ro)):es(o,Di)}function uy(e){return typeof e=="string"&&e.length>0}function as(e){let t=hr(e.home),n=hr(e.launchCwd),r=e.gitRoot?hr(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&uy(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&&gr(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=pl(r);for(;;){let u=hr(l);if(u===t)break;let d=pl(u);if(d===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=ul(u,n);break}l=d}}return{anchors:s,parentRel:a}}import{existsSync as ml,readdirSync as ly,realpathSync as fy}from"node:fs";import{basename as dy,dirname as py,relative as my,resolve as gy,sep as _y}from"node:path";var cs=400,Sr=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Je}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=gy(t).split(_y).join("/");return is(r,this.home)}let n=my(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${q(py(t))}/${dy(t)}`:n}claimFile(t){try{let n=fy(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(!ml(t))return[];try{return ly(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(ml(t))return ne(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 xs,readFileSync as FR,statSync as $R}from"node:fs";import{basename as Pf,join as mt,relative as Os}from"node:path";var xf=Ve(bf());var UR=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Of=UR.map(e=>xf.default.matcher(e,{dot:!0}));function DR(e){return e===""?!1:Of.some(t=>t(`${e}/`))}function If(e,t){if(t==="")return!1;if(e==="")return DR(t);let n=e.replace(/\/+$/,"");return Of.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var Is=100*1024,jR=4;function BR(e){return e.length<=Is?e:`${e.slice(0,Is-1)}\u2026`}function KR(e){try{let t=FR(e),n=t.toString("utf8");return{hash:q(t),length:t.length,text:BR(n)}}catch{return null}}var Tf={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function GR(e){return e in Tf?Tf[e]:"UNSPECIFIED"}function wt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=KR(t.absolutePath);if(!n)return!1;let r=t.name??Pf(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=GR(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function WR(e,t,n){let r=Os(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Pf(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function gt(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;Ts(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Ts(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>jR))for(let d of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(d.isDirectory()&&If(n.replace(/\\/g,"/"),Os(n,mt(r,d.name)).replace(/\\/g,"/"))||d.isDirectory()&&u?.includes(mt(r,d.name)))continue;if(c){if(!d.isDirectory())continue;let g=mt(r,d.name,c);if(xs(g)){let S=Os(n,mt(r,d.name)).replace(/\\/g,"/");wt(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||d.name});continue}Ts(e,{walkRoot:n,currentDir:mt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(d.isDirectory()){Ts(e,{walkRoot:n,currentDir:mt(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=mt(r,d.name);wt(e,{absolutePath:p,kind:s,origin:i,enabled:a,name:WR(n,p,!0)})}}function wf(e){for(let t of e)if(xs(t))try{if($R(t).size>0)return t}catch{continue}return e.find(t=>xs(t))}import{existsSync as RC,readFileSync as CC}from"node:fs";var br=Ve(rt(),1);var zR="<omitted>",VR=["package_name","package_spec","package_version","package_version_source"],Nf=100,vf=120,xr=[{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"}],Mf=new Set(xr.map(e=>e.attr)),JR=["enabled","disabled"],YR=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],XR=new Set(["type","command","url","args","env","envVars","headers",...JR,...YR,...xr.map(e=>e.raw)]),qR=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",...VR,...Mf,...[...Mf].map(e=>`${e}_truncated`)]);function Lf(e,t){for(let n of t)XR.has(n)||qR.has(n)||(e[n]=zR)}var ZR=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,QR=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,eC=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,tC=/^bearer(?:\s+|$)/i;function Or(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Hf(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Ps(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=Or(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function _t(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function nC(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,br.launchContainsCredentials)({kind:"url",url:e})||(0,br.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=fn([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,br.launchContainsCredentials)({kind:"url",url:r}):!0)}function Uf(e,t,n){nC(t,n)&&(e.launch_had_credentials=!0)}function rC(e){return eC.test(e)||tC.test(e)?"<redacted>":e.includes("://")?_t(e):e}function Df(e){if(/^https?:\/\//i.test(e))return _t(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Df(e.slice(t+1))}`:rC(e)}function oC(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return ZR.test(t)||QR.test(t)}function fn(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(oC(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Df(r))}return t}function sC(e){let t=Hf(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>vf?r.slice(0,vf):r))].sort();if(n.length!==0)return n.length>Nf?{names:n.slice(0,Nf),truncated:!0}:{names:n,truncated:!1}}function iC(e){let t=Or(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 Ff(e,t){let n=new Set;for(let{raw:r,attr:o}of xr){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=sC(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function $f(e,t){let n=Or(e),r={transport:t};if(!n)return r;Lf(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=Hf(n.args);a&&(r.command_or_url=_t(a));let l=fn(c);l.length>0&&(r.args=l),Uf(r,a,c);let u=iC(n.env_http_headers),d=[...new Set([...Ps(n.env),...Ps(n.envVars),...Ps(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),Ff(r,n),r}function jf(e){let t=Or(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function vs(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 Nt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function ln(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 Ns(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function ws(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=Nt(n[1]);return r.length>0?r:void 0}function aC(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],Nt(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(`
|
|
43
|
-
${e}`);return s?.[1]&&r(s[1]),n}function
|
|
44
|
-
`)){let s=
|
|
45
|
-
`)){let I=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(
|
|
46
|
-
${e}`);if(f?.[1])for(let
|
|
47
|
-
`)){let I=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(
|
|
48
|
-
`);return gC("sha512").update(t).digest("hex").slice(0,16)}function SC(e){let t=process.platform==="win32"?dn(M("LOCALAPPDATA")??e,"npm-cache"):dn(e,".npm"),n=M("npm_config_cache")??M("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function Jf(e){return typeof e=="string"&&e.length>0&&e.length<=ve.PACKAGE_FIELD_MAX?e:null}function EC(e,t,n){let r=hC(e);for(let o of SC(n)){let s=dn(o,"_npx",r),i=ne(dn(s,"node_modules",...t.split("/"),"package.json"),{}),a=Jf(i.version);if(a!==null)return a;let c=ne(dn(s,"package-lock.json"),{}),l=Jf(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function yC(e){return e.length<=ve.PACKAGE_FIELD_MAX?e:`${e.slice(0,ve.PACKAGE_FIELD_MAX-1)}\u2026`}function Ms(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:yC(o),..._C(o,EC(r,s,n))}}function Yf(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Ir(e.trim());return n===void 0?null:Ms(n,r,t)}function Tr(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 Ms(typeof n.command=="string"?n.command:null,r,t)}function Xf(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Ms(Nt(n[1]??""),ln(e,"args"),t)}function AC(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 qf(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=AC(a),l=$f(a,c);Object.assign(l,Tr(a,e.home)??{});let u=jf(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:vs(i,l,u),origin:n,enabled:u,attributes:l})}}function Zf(e,t,n){if(!RC(t)||!e.claimFile(t))return;let r;try{r=CC(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=Kf(u,d);Object.assign(f,Xf(u,e.home)??{});let p=Bf(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:vs(a,f,p),origin:n,enabled:p,attributes:f})}}import{existsSync as xC,readdirSync as OC}from"node:fs";import{join as ue}from"node:path";function kC(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 bC(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 Ls(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 bC(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",d=kC({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:zf(u,e.home)}:{}}})}}}function Hs(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Ls(e,t,r.hooks,n)}var Qf=50;function pn(e,t,n,r){if(!xC(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(Qf,()=>{gt(e,{dir:ue(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),gt(e,{dir:ue(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),gt(e,{dir:ue(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});Hs(e,ue(t,"hooks","hooks.json"),n),Hs(e,ue(t,"hooks.json"),n);let i=e.components.length-o,a=s>=Qf;return{componentCount:i,expandTruncated:a}}function mn(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 ed(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 I of l)if(typeof I.installPath=="string"&&I.installPath.length>0){let O=pn(e,I.installPath,S,d);A+=O.componentCount,k=k||O.expandTruncated}mn(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 IC(e){let t=e,n="";try{let r=OC(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 TC=/^\d+$/;function PC(e){let t=e.filter(n=>!TC.test(n.pluginId));return t.length>0?t:e}function td(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}=pn(e,c,l,!0);mn(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}=IC(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of PC(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:d}=pn(e,a.installPath,l,!0);mn(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 vC}from"node:fs";var wC=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,Us="<path>",NC=new RegExp(`${Us}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function Pr(e){let t=e.replace(wC,Us).replace(NC,Us);return t.length>200?`${t.slice(0,200)}...`:t}var nd=200,rd=200,Ds=16*1024,od=6,MC=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),LC=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),HC=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),UC=new Set(["permissions"]),DC={claude:MC,cursor_sandbox:LC,cursor_permissions:HC,cursor_cli:UC},FC=new Set(["allow","deny","ask"]);function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wr(e){return e.replace(/\\/g,"/")}function Fs(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>Fs(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${Fs(t[r])}`).join(",")}}`}function $C(e){return q(`${Fs(e)}|settings1`)}function ud(e){let t=wr(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 ld(e,t){if(e!=="claude")return{};let n=wr(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 fd(e){let t=wr(e).replace(/\/+$/,"");return t.length<=1?"":t}function dd(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function jC(e,t){let n=wr(e);if(n==="~"||n.startsWith("~/"))return n;let r=fd(t);if(!r)return n;let o=n.slice(0,r.length);if(!(dd(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var sd=new Map;function BC(e){let t=sd.get(e);if(t!==void 0)return t;let n=fd(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,dd(e)?"gi":"g")}return sd.set(e,r),r}function KC(e,t){let n=BC(t);return n?e.replace(n,"~"):e}function id(e,t){return e.length<=rd?e:(t.truncated=!0,e.slice(0,rd))}function pd(e,t){return e.length<=nd?e:(t.truncated=!0,e.slice(0,nd))}function re(e,t,n,r){if(typeof e=="string"){if(t==="path")return id(jC(e,n),r);let o=t==="rule"?Pr(e):e;return id(KC(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=pd(e,r),s=[];for(let i of o){let a=re(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=re(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function ad(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";FC.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=re(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function GC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=pd(s,n);r[o]=a.map(c=>{if(!st(c))return re(c,"plain",t,n);let l={};for(let[u,d]of Object.entries(c)){let p=re(d,u==="path"?"path":"plain",t,n);p!==void 0&&(l[u]=p)}return l});continue}let i=re(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function WC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=re(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function zC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=re(s,"rule",t,n):o==="filesystem"?i=re(s,"path",t,n):o==="network"?i=WC(s,t,n):o==="credentials"?i=GC(s,t,n):i=re(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function VC(e,t,n,r,o){return n==="claude"?e==="permissions"?ad(t,r,o):e==="sandbox"?zC(t,r,o):re(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?re(t,"path",r,o):re(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?re(t,"rule",r,o):re(t,"plain",r,o):e==="permissions"?ad(t,r,o):re(t,"plain",r,o)}function gn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function $s(e,t){return e?`${e}.${t}`:t}function js(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>=od?(e.splice(o,1),r.add(n)):js(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>=od?(delete e[o],r.add($s(n,o))):js(s,t+1,$s(n,o),r))}function md(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:gn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))md(o,$s(t,r),n)}function JC(e,t,n){let r=gn(e);if(r<=Ds)return;t.truncated=!0;let o=[];for(md(e,"",o);r>Ds;){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=gn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;gn(e)>Ds;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=gn(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function YC(e,t,n){let r=DC[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=VC(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return js(s,1,"",a),a.size>0&&(o.truncated=!0),JC(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function cd(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:$C(t.attributes),attributes:t.attributes};e.push(n)}function Bs(e,t,n,r){if(!e.claimFile(t)||!vC(t))return;let o=Ai(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),cd(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(st(i)&&Ls(e,t,i,n),!r.profile)return;let a=YC(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),cd(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as XC}from"node:fs";import{join as Me}from"node:path";var gd=".claude/skills/synced",_d=".claude/plugins/synced";function hd(e){return[Me(e,gd),Me(e,_d)]}function Nr(e){return typeof e=="string"&&e.length>0?e:void 0}function Sd(e){let t=Me(e.home,gd);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()||!XC(a))continue;let c=s.get(i.name),l=Nr(c?.source),u=Nr(c?.creatorType);wt(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Ed(e){let t=Me(e.home,_d);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=Nr(a?.marketplaceName),l=Nr(a?.version),u=c?`${i.name}@${c}`:i.name,d=Me(r,i.name),{componentCount:f,expandTruncated:p}=pn(e,d,`plugin:${u}`,!0);mn(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 ZC(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)gt(e,{dir:vt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:hd(e.home)});for(let i of n.dirs)gt(e,{dir:vt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=wf(i.map(c=>vt(r,c)));a&&wt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:qC(a)})}for(let i of Za(n))Bs(e,vt(r,i),o,{kind:"SETTINGS",profile:ud(i)});for(let i of n.mcpJson??[])qf(e,vt(r,i),o);for(let i of n.mcpToml??[])Zf(e,vt(r,i),o);if(s){if(n.managed){for(let i of Dn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=ld(n.managed,i);Bs(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(ed(e),Ed(e),Sd(e)):n.plugins==="cursor"&&td(e)}}function yd(e,t){try{let n=new Sr(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)ZC(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 Ks(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=yd(t,{layouts:Object.values(kt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Je,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=as({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>ec(c,u)});i=l.parentRel;for(let u of l.anchors){let d=Yo(u.dir);if(o!==void 0&&!o(u.scope,d))continue;let f=yd(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:cs,scopeRef:d});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Gs(e,t,n={}){let r=n.truncated===!0,o=nn(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=el(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 Cd=2*1024*1024,QC=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function Ws(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 zs(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 Rd(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Ad(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function Vs(e,t=Cd){let n=[],r=[];for(let u of e)QC.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=Rd(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=Ad(u),g=Rd(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 Js(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:Ad(n))}var eA=["user","cwd","repo","parent"];function Ys(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let v of eA){let T=t.scopes[v];if(!T)continue;let K=n(v,T.scopeRef),D=K.components,x=Gs(T.components,D,{forceFull:D===void 0,truncated:T.truncated}),w=new Set(K.textHashes),H=Ws(T.components,x.upserts,w),m=Js([...x.upserts,...H],w);s.push({scope:v,walk:T,delta:x,outgoing:m,outgoingKeys:new Set(m.map(b=>he(b.path,b.name))),deliveredTextHashes:w,cachedComponents:D})}let i=s.flatMap(v=>v.outgoing),a=Vs(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:T,walk:K,delta:D}=v;g.push(...K.components),l.push(T);let x=a.components.filter(b=>v.outgoingKeys.has(he(b.path,b.name))),w=[...v.outgoingKeys].some(b=>!c.has(b)),H=D.truncated||w;H?d.push(T):D.full&&u.push(T),f.push(...x),!D.full&&!H&&p.push(...D.removed);let m=D.full?{}:{...v.cachedComponents??{}};if(!H)for(let b of D.removed)delete m[he(b.path,b.name)];for(let b of x)m[he(b.path,b.name)]=b.content_hash;S.push({scope:T,scopeRef:K.scopeRef,components:m,textHashes:zs(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&&!H||D.full})}let A={user_spec_hash:nn(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 I=t.scopes.repo;I&&(A.user_spec_repo_scope_ref=I.scopeRef);let O=t.scopes.parent;return O&&(A.user_spec_parent_scope_ref=O.scopeRef,t.parentRel&&(A.user_spec_parent_rel=t.parentRel)),{fields:A,scopes:S}}var vr={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Xs(e){return e==="cwd"||e==="repo"||e==="parent"}function _n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qs(e){return!_n(e)||!_n(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 kd(e){return tA(e)}function bd(e){return nA(e)}function xd(e){return rA(e)}function tA(e){if(!_n(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function nA(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Od(e,t){if(!_n(e))return;let n=e[t];return qs(n)?n:void 0}function rA(e){if(!_n(e))return{};let t={};for(let[n,r]of Object.entries(e))qs(r)&&(t[n]=r);return t}function Zs(e,t=20){let n=[];for(let[r,o]of Object.entries(e))qs(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 cA=["allow","deny","ask"];function Lr(e){let t=ne(e,{}),n=[];for(let r of cA)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:Pr(o),mode:r});return{model:t.model??"",permissionKeys:n}}function uA(e){let{serverManaged:t,fileBased:n}=so(process.platform,e),r=Lr(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Lr(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function lA(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 fA=10,dA="self-config-cache.json",Td=4;function Lt(){return M("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function pA(){return M("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var mA={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function gA(e,t=te){let n=mA[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(`
|
|
49
|
-
`)[0]??"").trim();return a||r(o+1)};return r(0)}function
|
|
50
|
-
`);return q(n)}function
|
|
51
|
-
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: self-config cache write failed open: ${r}`)}}function
|
|
52
|
-
${n}`}function
|
|
53
|
-
`);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
|
|
54
|
-
`,d=M("EV_AI_HOOK_DEBUG");d==="full"?E(`DEBUG envelope=${l}`):d==="1"&&E(`DEBUG summary=${KA(c,ni(u))}`);let f=process.argv.includes(Dr),p=M("EV_AI_HOOK_SYNC")==="1";return sr(n.runnerEvent,n.runnerPlatform)||f||p?VA(e,u,o):(await JA(e,u,o),!1)}import{createReadStream as YA}from"node:fs";import{stat as XA}from"node:fs/promises";import{basename as qA,resolve as ZA}from"node:path";import{createInterface as QA}from"node:readline";var ek=1024*1024;function tk(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&qA(t).endsWith(".jsonl")}async function Yd(e){if(!e||!tk(e))return null;try{let t=ZA(e),n=await XA(t);if(!n.isFile())return null;let r=Math.max(0,n.size-ek),o=[],s=QA({input:YA(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 $r(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:mr(e.manifest.manifest,e.manifest.hookConfig)}}function yn(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function oi(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:os(e.manifest.hookConfig)}}async function Zd(e){let t=Date.now();await pk(e);let{gitRoot:n}=e.manifest;await ii(e,n);let r=oi(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:_r(e.hookInput,e.manifest.manifest,r),envelopeFields:$r(e),launchCwd:ss(e.hookInput,r),home:rk()}}function Xd(e){try{return _e(nk(e))}catch{return null}}function Qd(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function qd(e,t){let n=e.replaceAll("\\","/");if(!Qd(n))return null;let r=_e(e),o=_e(t),s=Xd(e)??r,i=Xd(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function ep(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=qd(e,t)??(Qd(r)?null:r),i=qd(e,n);return{repositorySourcePath:s,userSourcePath:i}}function ri(e,t,n,r,o){return tp(e,ep(n,t.gitRoot,t.home),r,o)}function tp(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?ok({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 ok(e){try{let t=e.inRepository?ak(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 np(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 si(e,t,n){return Ut("tool_invoked",{...n,...np(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Ht,e.manifest.collectorUrl,t.buildStartedAtMs,yn(e,t.home))}function sk(e){return Kc(e.runnerEvent,e.runnerPlatform)?[]:cc(e.hookInput)}function ik(e,t){return si(e,t,{})}var rp=new Set([...Object.values(ft),".github"]);function ak(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=>rp.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var op=".codex/config.toml",ck=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",op]]);function uk(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?ck.get(c.source):o==="codex"?op: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||!rp.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:p,nativeKey:t})}catch{return}}function lk(...e){for(let t of e)if(t)return t;return null}function Et(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 fk(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 dk(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var St=new Set,En=null;async function pk(e){if(Lt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(St.has(t))return;if(!Qo(n)){St.add(t);return}let r=Gt({sessionId:e.sessionId,hostname:Fn()});if(nl(r)){if(En){await En;return}En=(async()=>{if(St.has(t)||!Qo(n)){St.add(t);return}if(!la(n)){St.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await sp(e,r,rr(i),Zo({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:dk(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Ut("session_start",u,$r(e),Ht,e.manifest.collectorUrl,s,yn(e)),o&&(c.commit(),St.add(t))}finally{fa(n)}})().finally(()=>{En=null}),await En}}async function ii(e,t,n){try{e.platformAgentId=await vc(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 sp(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,zi(),Iu(t),Ji(),r]),l=Et(o,null,"gitSnapshot"),u=Et(s,"","detectVirt"),d=Et(i,null,"probeCloud"),f=Et(a,{},"hostEnv"),p=Et(c,{commit:()=>{}},"resolveOperatorForSend");return await ii(e,e.manifest.gitRoot,l),{operatorResolved:p,fields:{identity:{host:Fn(),context:t,virt:u||null,cloud:d,git:l},host_env:f,env_vars:Lu()}}}async function mk(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=Gt({sessionId:e.sessionId,hostname:Fn()}),o=String(e.runnerPlatform),s=oi(e),i=ss(e.hookInput,s),a=rr(n),c=jd().catch(()=>({})),l=Lt()?Promise.resolve({commit:()=>{}}):Zo({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=sp(e,r,a,l),[d,f]=await Promise.allSettled([zo(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Pd(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=Et(d,[],"mcpDeclared"),A=Et(f,fk(o),"selfConfig"),k=A.config,I=L(e.hookInput,"model");I&&(k.model=I);let O={...g,mcp:{declared:S},self_config:k,run_meta:{trigger:e.hookSource||"startup"},hook_input:_r(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},v=await c;await Ut("session_start",O,{...$r(e),...v},Ht,e.manifest.collectorUrl,t,yn(e))&&(A.commit(),p.commit(),St.add(e.manifest.installationId))}async function gk(e){let t=Date.now(),[,n]=await Promise.all([ii(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?Yd(L(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=lk(L(e.hookInput,"status"),L(e.hookInput,"stop_reason"),L(e.hookInput,"reason"),Zt(L(e.hookInput,"error")),r==="stop"?He(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=_r(e.hookInput,e.manifest.manifest,oi(e));n&&(s.model=n),r!=="stopfailure"&&mr(e.manifest.manifest,e.manifest.hookConfig)!=="off"&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Ut("session_end",{status:o,...n?{model:n}:{},hook_input:s},$r(e),Ht,e.manifest.collectorUrl,t,yn(e))}async function _k(e){let t=sk(e),n=Uc(e.hookInput),r=Bc(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r||o&&mr(e.manifest.manifest,e.manifest.hookConfig)==="off")return;let s=await Zd(e);await Promise.all([o?ik(e,s):void 0,t.length===0?void 0:hk(e,s,t),n.length===0?void 0:Sk(e,s,n)])}function ip(e,t,n,r){let o=r??ac({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=ri(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&ko(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??Dc({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=ri(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 hk(e,t,n){let r=Xn(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=ip(e,t,o,r);return si(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 Sk(e,t,n){return Promise.all(n.map(r=>{let o=Mc({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=ri(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Hc(r);return si(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var Ek=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function yk(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=xo(e.hookInput);if(r===null)return n.skillName===null?{}:ip(e,t,n.skillName,null);let o=ep(r,t.gitRoot,t.home);for(let s of Ek){let i=tp(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 Rk=/mcp/i;function Ck(e,t,n,r){let o=Rk.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?Yf(t,n):Tr(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 Ak(e){let t=await Zd(e),n=zc(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=bo(e.hookInput),i=Vf(s,t.home),a=Jc(e.hookInput),c=Gc(e.runnerEvent),l=c===!1?Yc(e.hookInput,e.runnerEvent):null,u=Zt(L(e.hookInput,"mcp_server_name")),d=u!==null||r!==null&&ir(r)?await zo(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:p}=qc(r,d.map(K=>K.name),u??""),g=uk(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),d,u),S=g===void 0?yk(e,t,n):{},A=f===null?null:Mu(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),k=Ck(e,s,t.home,{hasMcpIdentity:!!f||!!p,declaredConfig:A}),I=g??S.componentReference,O=S.ruleName??n.ruleName,v=S.commandName??n.commandName,T=Vc(e.hookInput);await Ut("tool_invoked",{tool_name:r,skill_name:o,...O?{rule_name:O}:{},...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,...I?{component_reference:I}:{},...T?{subagent_type:T}:{},...np(e),hook_input:t.hookInput},t.envelopeFields,Ht,e.manifest.collectorUrl,t.buildStartedAtMs,yn(e,t.home))}async function ap(e){switch(e.internalEvent){case"session_start":await mk(e);return;case"session_end":await gk(e);return;case"skill_invoked":await _k(e);return;case"tool_invoked":await Ak(e);return;default:return}}import{mkdirSync as kk,readdirSync as bk,readFileSync as xk,statSync as cp,unlinkSync as Ok,writeFileSync as Ik}from"node:fs";import{homedir as jr}from"node:os";import{join as ai}from"node:path";var Tk="turns",up=1440*60*1e3,Pk=100,wk=new Set(["stop","stopfailure","sessionend"]);function ci(e=jr()){return ai(ye(e),Tk)}function lp(e,t){return ai(e,Ft(t))}function Nk(e,t=Date.now()){let n;try{n=bk(e)}catch{return}let r=0;for(let o of n){if(r>=Pk)return;r+=1;try{let s=ai(e,o);t-cp(s).mtimeMs>up&&Ok(s)}catch{}}}function vk(e,t,n=jr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=ci(n);kk(s,{recursive:!0}),Ik(lp(s,r),o,"utf8")}catch{}}function Mk(e,t=jr()){let n=e.trim();if(!n)return"";try{let r=lp(ci(t),n);return Date.now()-cp(r).mtimeMs>up?"":xk(r,"utf8").trim()}catch{return""}}function fp(e,t,n,r=jr()){let o=t.trim(),s=wk.has(n.trim().toLowerCase());return s&&Nk(ci(r)),o?(vk(e,o,r),o):s?Mk(e,r):""}async function dp(e,t,n,r){let o=t??await xn(Ln),s=ge(o,{}),i=await Ea(process.cwd(),{sessionId:qt(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Bn(r));let a=Wc(s,i.manifest.platform,n),c=Uo(e,a.runnerEvent);if(!c){E(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:fp(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await ap(l)}function Lk(e,t=!1){if(M("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Xt(r,o,void 0,n.runner);return sr(o,s)?!0:t}function pp(e,t){let n=Xr(e),r=ge(t,{}),o=n.event??Ho(r);return Gi()||jc(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function gp(e){return Su(Uo(e.parsed.event,e.runnerEvent))}async function mp(e,t){let{parsed:n}=e;if(gp(e)){await dp(n.event,t,n.runner,Mo(n));return}let r=jo(n.cap),o=ku(r);if(!o){Ko(r);return}try{await dp(n.event,t,n.runner,Mo(n))}finally{Bo(o)}}async function _p(e=process.argv.slice(2)){if(bu(),M("EV_AI_HOOK_JUDGE")==="1"){try{await xn(Ln)}catch{}return zr(),0}if(e[0]===Sn){try{await Fr($t)}catch{}return 0}if(e[0]===Dr){try{let t=await $t(),n=pp(e.slice(1),t);if(!n)return 0;await mp(n,t)}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await xn(Ln),n=pp(e,t);if(!n)return 0;let{parsed:r,hookInput:o,runnerEvent:s}=n;if(!nu(o,s,r.runner))return 0;if(Lk(n))await mp(n,t);else{let i=gp(n)?void 0:jo(r.cap);i===void 0||Cu(i)?await Jd(t,e):Ko(i)}}catch(t){let n=t instanceof Error?t.message:String(t);E(`WARN: hook failed open: ${n}`)}finally{zr()}return 0}function Br(){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 hp(e){return e.includes("--help")||e.includes("-h")}async function $k(e=process.argv.slice(2)){let[t,...n]=e;if(t===Sn){try{await Fr($t)}catch{}return 0}return t==="--version"||t==="-V"?(process.stdout.write(`${Ue}
|
|
55
|
-
`),0):t==="configure"?
|
|
39
|
+
`.trim(),ns=new Map;function rl(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 sl(e){return e.toLowerCase().includes("token")}function il(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=rl(r.key),s=rl(r.value);o&&s&&!sl(o)&&t.set(o,s)}return t}function OE(e){let t=bE(e);return t.search="mode=ro&immutable=1",t.href}function IE(e){try{let t=ol("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(Sr)??n.prepare(Sr);return il(r.all?.())}finally{n.close?.()}}catch{return null}}function TE(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 PE(e){try{return TE(()=>{let t=ol("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return il(n.prepare(Sr).all?.())}finally{n.close?.()}})}catch{return null}}function wE(e){let t=new Map;for(let n of e.split(`
|
|
40
|
+
`)){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&&!sl(s)&&t.set(s,i)}return t}function NE(e){try{let t=AE("sqlite3",["-noheader","-batch","-separator"," ",e,Sr],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return wE(t)}catch{return null}}function al(e){let t=ns.get(e);if(t)return t;if(!xE(e)){let o=new Map;return ns.set(e,o),o}let n=OE(e),r=IE(n)??NE(n)??PE(n)??new Map;return ns.set(e,r),r}var vE="cursorAuth/cachedEmail",ME="cursorAuth/stripeMembershipAuthId";function Er(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function LE(e=yr(),t=process.platform,n=process.env){let r=Er(n.VSCODE_PORTABLE);if(r)return Be(r,"user-data");let o=Er(n.VSCODE_APPDATA);if(o)return Be(o,"Cursor");switch(t){case"darwin":return Be(e,"Library","Application Support","Cursor");case"win32":return Be(Er(n.APPDATA)??Be(e,"AppData","Roaming"),"Cursor");default:return Be(Er(n.XDG_CONFIG_HOME)??Be(e,".config"),"Cursor")}}function HE(e=yr()){return Be(e,".cursor","cli-config.json")}function UE(e=yr(),t=process.platform,n=process.env){return Be(LE(e,t,n),"User","globalStorage","state.vscdb")}function on(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function DE(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):on(e.userId)}function FE(e){return on(e.email)??on(e.authId)??DE(e)}function rs(e){let t=on(e.email),n=on(e.displayName),r=FE(e);return!r||de(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function $E(e){let n=ne(HE(e),{}).authInfo;return!n||typeof n!="object"?null:rs(n)}function jE(e,t,n){let r=UE(e,process.platform,t),o=Qu(e),s=el(o);if(tl(s,r,n))return rs({email:s?.email,authId:s?.auth_id});let i=al(r),a=i.get(vE)??null,c=i.get(ME)??null;return nl(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),rs({email:a,authId:c})}function cl(e=yr(),t=process.env,n=Date.now()){return $E(e)??jE(e,t,n)}import{createHash as BE}from"node:crypto";import{resolve as KE}from"node:path";function q(e){return BE("sha256").update(e).digest("hex").slice(0,16)}function os(e){return q(KE(e))}function Se(e,t){return`${e}\0${t}`}function ul(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function sn(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(`
|
|
41
|
+
`);return q(n)}function WE(e,t,n="git_config",r=null){return q(`${e??""}|${t??""}|${r??""}|${n}`)}function zE(e){let t=null,n=null;for(let r of e.split(`
|
|
42
|
+
`)){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 VE(e,t=te){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return zE(n)}function JE(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 YE(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 x=j(e.CODEBUILD_INITIATOR),I=Ke(x,null,"codebuild",x);if(I)return I;let O=j(e.DRONE_COMMIT_AUTHOR_EMAIL),v=j(e.DRONE_COMMIT_AUTHOR),T=Ke(v??j(e.DRONE_COMMIT_AUTHOR_NAME),O,"drone",O??v);if(T)return T;if(ll(e.CLAUDE_CODE_REMOTE)||ll(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 ss(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 ll(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function XE(e,t,n){return e==="claude"?zu(t):e==="cursor"?cl(t,n):e==="codex"?qu(n,t):null}async function is(e,t=te,n=process.env,r={}){let o=await VE(e,t),s=JE(n),i=ss(o)?o:s&&ss(s)?s:null,a=XE(r.runnerPlatform,r.home??GE(),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=YE(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:ss(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 as(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??te,s=e.env??process.env,i=await is(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=WE(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),l=(n?yo(n):void 0)?.operator_identity_hash;if(!(r||l!==void 0&&l!==a||!l))return{commit:()=>{}};let p=n;return{operator:i,commit:()=>{p&&wa(p,a,vn())}}}function cs(e){return e?!yo(e)?.operator_identity_hash:!0}function fl(e){return!0}import{existsSync as fA,readFileSync as dA}from"node:fs";import{homedir as Ud}from"node:os";import{join as Ht,resolve as pA}from"node:path";import{basename as rA,join as Lt}from"node:path";import{dirname as Cl,resolve as xr}from"node:path";import{existsSync as qE}from"node:fs";import{homedir as ml}from"node:os";import{relative as gl,resolve as Pe,sep as ot}from"node:path";var ZE=["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"],QE=["prompt","tool_input","tool_response","last_assistant_message","command"],ey=new Set;function ty(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return ey}}var _l=new Set(["on","1","true"]);function ps(e){let t=M("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return t!==void 0&&t!==""?_l.has(t.toLowerCase()):e?.collect_prompt===!0}function Rr(e,t){let n=hl(e);if(n==="allowlist")return"off";if(n==="full")return"full";let r=M("EV_AI_HOOK_CAPTURE_PROMPT")?.trim();return r!==void 0&&r!==""?_l.has(r.toLowerCase())?"env":"off":t?.collect_prompt===!0?"config":"off"}function hl(e){return M("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||M("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function ny(e){let t={};for(let n of ZE){let r=He(e,n);r!==void 0&&(t[n]=r)}return t}function Cr(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=Pe(e),r=Pe(t),o=gl(r,n);return!o||o==="."?".":o.startsWith(`..${ot}`)||o===".."||Pe(r,o)!==n?null:o.split(ot).join("/")}function Sl(e,t){let n=gl(Pe(t),Pe(e)).split(ot).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function El(e){return typeof e!="string"||e.length===0?null:Pe(e).split(ot).join("/")}function ry(){let e=M("CURSOR_PROJECT_DIR");if(!e)return null;let t=Pe(e);return qE(t)?t.split(ot).join("/"):null}function ls(e,t){return Cr(e,t)!==null}function oy(e,t){let n=Pe(t??ml(),".cursor").split(ot).join("/");return ls(e,n)}function sy(e,t,n){return t!==null&&ls(e,t)?!0:t!==null&&oy(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&ls(e,n.gitRoot)?!0:t===null}function yl(e,t){let n=El(e.cwd);if(n!==null)return n;let r=Pe(process.cwd()).split(ot).join("/"),o=ry();return sy(r,o,t)?r:o??r}function ms(e,t={}){return yl(e,t)}function gs(e,t=ml()){let n=Pe(t).split(ot).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function dl(e,t,n){let r=El(n.launchCwd)??yl(t,n);e.cwd=gs(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Cr(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var Rl="\u2026[truncated]\u2026",fs=Buffer.byteLength(Rl,"utf8"),iy=8;function an(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function pl(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function ay(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 cy(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=fs)return pl(e,t);let r=t-fs,o=Math.ceil(r/2),s=Math.floor(r/2);return`${pl(e,o)}${Rl}${ay(e,s)}`}function ds(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)=>{ds(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||ds(o,[...t,r],n)}function uy(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 ly=256;function fy(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 dy(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=an(e);if(s<=t)return;let i=[];ds(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=fy(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&&uy(e,u.path,cy(u.value,r))}}function py(e,t){let n=Math.max(0,t-ly),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:an(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(an(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function us(e,t){let n=an(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,dy(r,t,fs+iy),an(r)>t&&py(r,t),r}function my(e,t,n){if(!(n.promptCapture??ps()))return;let r=ty(n.runnerEvent);for(let o of QE){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Ar(e,t,n={}){let r=hl(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,dl(s,e,n),us(s,po)}let o=ny(e);return dl(o,e,n),r==="content"?(my(o,e,n),us(o,po)):us(o,sa)}function gy(e){return typeof e=="string"&&e.length>0}function _s(e){let t=xr(e.home),n=xr(e.launchCwd),r=e.gitRoot?xr(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&gy(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&&Cr(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let l=Cl(r);for(;;){let u=xr(l);if(u===t)break;let d=Cl(u);if(d===u)break;if(e.hasProjectSpec(u)){s.push({scope:"parent",dir:u}),a=Sl(u,n);break}l=d}}return{anchors:s,parentRel:a}}import{existsSync as Al,readdirSync as _y,realpathSync as hy}from"node:fs";import{basename as Sy,dirname as Ey,relative as yy,resolve as Ry,sep as Cy}from"node:path";var hs=400,kr=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??Je}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=Ry(t).split(Cy).join("/");return gs(r,this.home)}let n=yy(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${q(Ey(t))}/${Sy(t)}`:n}claimFile(t){try{let n=hy(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(!Al(t))return[];try{return _y(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(Al(t))return ne(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 Ls,readFileSync as WR,statSync as zR}from"node:fs";import{basename as Ff,join as mt,relative as Hs}from"node:path";var Lf=Ve(Mf());var KR=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.trash/**","**/.claude/cache/**","**/.codex/skills/.system/**","**/vendor/**","**/.yarn/**","**/coverage/**","**/.next/**"],Hf=KR.map(e=>Lf.default.matcher(e,{dot:!0}));function GR(e){return e===""?!1:Hf.some(t=>t(`${e}/`))}function Uf(e,t){if(t==="")return!1;if(e==="")return GR(t);let n=e.replace(/\/+$/,"");return Hf.some(r=>r(`${n}/${t}/`)&&!r(`${n}/`))}var Us=100*1024,VR=4;function JR(e){return e.length<=Us?e:`${e.slice(0,Us-1)}\u2026`}function YR(e){try{let t=WR(e),n=t.toString("utf8");return{hash:q(t),length:t.length,text:JR(n)}}catch{return null}}var Df={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function XR(e){return e in Df?Df[e]:"UNSPECIFIED"}function vt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=YR(t.absolutePath);if(!n)return!1;let r=t.name??Ff(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=XR(t.kind);return s&&(o.trigger=s),t.attributes&&(o.attributes=t.attributes),e.push(o)}function qR(e,t,n){let r=Hs(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Ff(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function gt(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c}=t;Ds(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a,skipDirs:c})}function Ds(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u}=t;if(!(o>VR))for(let d of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(d.isDirectory()&&Uf(n.replace(/\\/g,"/"),Hs(n,mt(r,d.name)).replace(/\\/g,"/"))||d.isDirectory()&&u?.includes(mt(r,d.name)))continue;if(c){if(!d.isDirectory())continue;let g=mt(r,d.name,c);if(Ls(g)){let S=Hs(n,mt(r,d.name)).replace(/\\/g,"/");vt(e,{absolutePath:g,kind:s,origin:i,enabled:a,name:S||d.name});continue}Ds(e,{walkRoot:n,currentDir:mt(r,d.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:l,skipDirs:u});continue}if(d.isDirectory()){Ds(e,{walkRoot:n,currentDir:mt(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=mt(r,d.name);vt(e,{absolutePath:p,kind:s,origin:i,enabled:a,name:qR(n,p,!0)})}}function $f(e){for(let t of e)if(Ls(t))try{if(zR(t).size>0)return t}catch{continue}return e.find(t=>Ls(t))}import{existsSync as OC,readFileSync as IC}from"node:fs";var Nr=Ve(rt(),1);var ZR="<omitted>",QR=["package_name","package_spec","package_version","package_version_source"],jf=100,Bf=120,vr=[{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"}],Kf=new Set(vr.map(e=>e.attr)),eC=["enabled","disabled"],tC=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],nC=new Set(["type","command","url","args","env","envVars","headers",...eC,...tC,...vr.map(e=>e.raw)]),rC=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",...QR,...Kf,...[...Kf].map(e=>`${e}_truncated`)]);function Gf(e,t){for(let n of t)nC.has(n)||rC.has(n)||(e[n]=ZR)}var oC=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,sC=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,iC=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,aC=/^bearer(?:\s+|$)/i;function Mr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Wf(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=Mr(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function _t(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function cC(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,Nr.launchContainsCredentials)({kind:"url",url:e})||(0,Nr.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=mn([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,Nr.launchContainsCredentials)({kind:"url",url:r}):!0)}function zf(e,t,n){cC(t,n)&&(e.launch_had_credentials=!0)}function uC(e){return iC.test(e)||aC.test(e)?"<redacted>":e.includes("://")?_t(e):e}function Vf(e){if(/^https?:\/\//i.test(e))return _t(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Vf(e.slice(t+1))}`:uC(e)}function lC(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return oC.test(t)||sC.test(t)}function mn(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(lC(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Vf(r))}return t}function fC(e){let t=Wf(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Bf?r.slice(0,Bf):r))].sort();if(n.length!==0)return n.length>jf?{names:n.slice(0,jf),truncated:!0}:{names:n,truncated:!1}}function dC(e){let t=Mr(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 Jf(e,t){let n=new Set;for(let{raw:r,attr:o}of vr){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=fC(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function Yf(e,t){let n=Mr(e),r={transport:t};if(!n)return r;Gf(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=Wf(n.args);a&&(r.command_or_url=_t(a));let l=mn(c);l.length>0&&(r.args=l),zf(r,a,c);let u=dC(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),Jf(r,n),r}function Xf(e){let t=Mr(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function Bs(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 Mt(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function pn(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 js(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function $s(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=Mt(n[1]);return r.length>0?r:void 0}function pC(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],Mt(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(`
|
|
43
|
+
${e}`);return s?.[1]&&r(s[1]),n}function qf(e){return js(e,"enabled")===!1?!1:js(e,"disabled")!==!0}function mC(e,t){let n={};for(let{raw:r,attr:o}of vr){if(o==="auto_approve"){let i=js(t,r);if(i!==void 0){n[r]=i;continue}}let s=pn(t,r);s.length>0&&(n[r]=s)}Jf(e,n)}var gC=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,_C=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function hC(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
|
|
44
|
+
`)){let s=gC.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(_C))o[1]&&t.add(o[1]);return[...t]}function Zf(e,t){let n={transport:t};Gf(n,hC(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?Mt(r[1]??""):void 0,i=o?Mt(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=pn(e,"args");a&&(n.command_or_url=_t(a));let l=mn(c);l.length>0&&(n.args=l),zf(n,a,c);let u=new Set;for(let x of e.split(`
|
|
45
|
+
`)){let I=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(x);I?.[1]&&u.add(I[1])}let d=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(d?.[1])for(let x of d[1].split(",")){let I=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(x);I?.[1]&&u.add(I[1])}let f=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
|
|
46
|
+
${e}`);if(f?.[1])for(let x of f[1].split(`
|
|
47
|
+
`)){let I=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(x);I?.[1]&&u.add(I[1])}for(let x of pn(e,"env_vars"))u.add(x);let p=pC(e,"env_http_headers");for(let[,x]of p)x.length>0&&u.add(x);let g=$s(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(([x])=>x))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let S=$s(e,"auth");S&&(n.auth=S);let A=$s(e,"default_tools_approval_mode");return A&&(n.default_tools_approval_mode=A),mC(n,e),n}var ve=Ve(rt(),1);import{createHash as RC}from"node:crypto";import{join as gn}from"node:path";var SC=300,EC=256;function Qf(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 Lr(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 ed(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function yC(e){return ed(e,SC)}function td(e,t){let n=Qf(e.trim(),t),r=Lr(n);if(r.length===0)return"";let[o,...s]=r,i=_t(o),a=mn(s);return yC([i,...a].join(" "))}function nd(e,t){if(typeof e!="string")return null;let n=Qf(e.trim(),t),r=Lr(n)[0];if(!r)return null;let o=_t(r);return o.length===0?null:ed(o,EC)}function CC(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 AC(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
|
|
48
|
+
`);return RC("sha512").update(t).digest("hex").slice(0,16)}function xC(e){let t=process.platform==="win32"?gn(M("LOCALAPPDATA")??e,"npm-cache"):gn(e,".npm"),n=M("npm_config_cache")??M("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function rd(e){return typeof e=="string"&&e.length>0&&e.length<=ve.PACKAGE_FIELD_MAX?e:null}function kC(e,t,n){let r=AC(e);for(let o of xC(n)){let s=gn(o,"_npx",r),i=ne(gn(s,"node_modules",...t.split("/"),"package.json"),{}),a=rd(i.version);if(a!==null)return a;let c=ne(gn(s,"package-lock.json"),{}),l=rd(c.packages?.[`node_modules/${t}`]?.version);if(l!==null)return l}return null}function bC(e){return e.length<=ve.PACKAGE_FIELD_MAX?e:`${e.slice(0,ve.PACKAGE_FIELD_MAX-1)}\u2026`}function Ks(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:bC(o),...CC(o,kC(r,s,n))}}function od(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Lr(e.trim());return n===void 0?null:Ks(n,r,t)}function Hr(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 Ks(typeof n.command=="string"?n.command:null,r,t)}function sd(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Ks(Mt(n[1]??""),pn(e,"args"),t)}function TC(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 id(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=TC(a),l=Yf(a,c);Object.assign(l,Hr(a,e.home)??{});let u=Xf(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:Bs(i,l,u),origin:n,enabled:u,attributes:l})}}function ad(e,t,n){if(!OC(t)||!e.claimFile(t))return;let r;try{r=IC(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=Zf(u,d);Object.assign(f,sd(u,e.home)??{});let p=qf(u);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:Bs(a,f,p),origin:n,enabled:p,attributes:f})}}import{existsSync as NC,readdirSync as vC}from"node:fs";import{join as ue}from"node:path";function PC(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 wC(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 Gs(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 wC(c)){if(e.truncated)return;let u=l.command??l.bash??l.prompt??l.powershell??c.powershell??"",d=PC({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:td(u,e.home)}:{}}})}}}function Ws(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||Gs(e,t,r.hooks,n)}var cd=50;function _n(e,t,n,r){if(!NC(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(cd,()=>{gt(e,{dir:ue(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),gt(e,{dir:ue(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),gt(e,{dir:ue(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});Ws(e,ue(t,"hooks","hooks.json"),n),Ws(e,ue(t,"hooks.json"),n);let i=e.components.length-o,a=s>=cd;return{componentCount:i,expandTruncated:a}}function hn(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 ud(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,x=!1;for(let I of l)if(typeof I.installPath=="string"&&I.installPath.length>0){let O=_n(e,I.installPath,S,d);A+=O.componentCount,x=x||O.expandTruncated}hn(e,{pluginKey:a,rowPath:i,enabled:d,scope:g,version:p||void 0,marketplace:f||void 0,componentCount:A,expandTruncated:x,contentHash:q(`${a}|${p}|${g}|${d}|${A}`)})}}function MC(e){let t=e,n="";try{let r=vC(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 LC=/^\d+$/;function HC(e){let t=e.filter(n=>!LC.test(n.pluginId));return t.length>0?t:e}function ld(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}=_n(e,c,l,!0);hn(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}=MC(c);i.push({pluginId:a.name,installPath:l,version:u})}for(let a of HC(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,l=`plugin:${c}`,{componentCount:u,expandTruncated:d}=_n(e,a.installPath,l,!0);hn(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 FC}from"node:fs";var UC=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,zs="<path>",DC=new RegExp(`${zs}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function Ur(e){let t=e.replace(UC,zs).replace(DC,zs);return t.length>200?`${t.slice(0,200)}...`:t}var fd=200,dd=200,Vs=16*1024,pd=6,$C=new Set(["permissions","sandbox","enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers","disableAllHooks","disableAutoMode","allowManagedHooksOnly","allowManagedPermissionRulesOnly","allowManagedMcpServersOnly","strictKnownMarketplaces","strictPluginOnlyCustomization","disableSideloadFlags","forceLoginMethod","forceLoginOrgUUID"]),jC=new Set(["type","additionalReadwritePaths","additionalReadonlyPaths","disableTmpWrite","enableSharedBuildCache","networkPolicy"]),BC=new Set(["terminalAllowlist","mcpAllowlist","autoRun"]),KC=new Set(["permissions"]),GC={claude:$C,cursor_sandbox:jC,cursor_permissions:BC,cursor_cli:KC},WC=new Set(["allow","deny","ask"]);function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dr(e){return e.replace(/\\/g,"/")}function Js(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>Js(r)).join(",")}]`;let t=e;return`{${Object.keys(t).filter(r=>t[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${Js(t[r])}`).join(",")}}`}function zC(e){return q(`${Js(e)}|settings1`)}function Sd(e){let t=Dr(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 Ed(e,t){if(e!=="claude")return{};let n=Dr(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 yd(e){let t=Dr(e).replace(/\/+$/,"");return t.length<=1?"":t}function Rd(e){return/^[A-Za-z]:/.test(e)||e.includes("\\")}function VC(e,t){let n=Dr(e);if(n==="~"||n.startsWith("~/"))return n;let r=yd(t);if(!r)return n;let o=n.slice(0,r.length);if(!(Rd(t)?o.toLowerCase()===r.toLowerCase():o===r))return n;let i=n.slice(r.length);return i===""?"~":i.startsWith("/")?`~${i}`:n}var md=new Map;function JC(e){let t=md.get(e);if(t!==void 0)return t;let n=yd(e),r=null;if(n){let o=n.split("/").map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\\\/]+");r=new RegExp(`(?<![\\w.-])${o}(?![\\w.-])`,Rd(e)?"gi":"g")}return md.set(e,r),r}function YC(e,t){let n=JC(t);return n?e.replace(n,"~"):e}function gd(e,t){return e.length<=dd?e:(t.truncated=!0,e.slice(0,dd))}function Cd(e,t){return e.length<=fd?e:(t.truncated=!0,e.slice(0,fd))}function re(e,t,n,r){if(typeof e=="string"){if(t==="path")return gd(VC(e,n),r);let o=t==="rule"?Ur(e):e;return gd(YC(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=Cd(e,r),s=[];for(let i of o){let a=re(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=re(i,t,n,r);a!==void 0&&(o[s]=a)}return o}}function _d(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i="plain";WC.has(o)?i="rule":o==="additionalDirectories"&&(i="path");let a=re(s,i,t,n);a!==void 0&&(r[o]=a)}return r}function XC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){if(o==="files"&&Array.isArray(s)){let a=Cd(s,n);r[o]=a.map(c=>{if(!st(c))return re(c,"plain",t,n);let l={};for(let[u,d]of Object.entries(c)){let p=re(d,u==="path"?"path":"plain",t,n);p!==void 0&&(l[u]=p)}return l});continue}let i=re(s,"plain",t,n);i!==void 0&&(r[o]=i)}return r}function qC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let a=re(s,o==="allowUnixSockets"?"path":"plain",t,n);a!==void 0&&(r[o]=a)}return r}function ZC(e,t,n){if(!st(e))return re(e,"plain",t,n);let r={};for(let[o,s]of Object.entries(e)){let i;o==="excludedCommands"?i=re(s,"rule",t,n):o==="filesystem"?i=re(s,"path",t,n):o==="network"?i=qC(s,t,n):o==="credentials"?i=XC(s,t,n):i=re(s,"plain",t,n),i!==void 0&&(r[o]=i)}return r}function QC(e,t,n,r,o){return n==="claude"?e==="permissions"?_d(t,r,o):e==="sandbox"?ZC(t,r,o):re(t,"plain",r,o):n==="cursor_sandbox"?e==="additionalReadwritePaths"||e==="additionalReadonlyPaths"?re(t,"path",r,o):re(t,"plain",r,o):n==="cursor_permissions"?e==="terminalAllowlist"||e==="mcpAllowlist"?re(t,"rule",r,o):re(t,"plain",r,o):e==="permissions"?_d(t,r,o):re(t,"plain",r,o)}function Sn(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Ys(e,t){return e?`${e}.${t}`:t}function Xs(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>=pd?(e.splice(o,1),r.add(n)):Xs(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>=pd?(delete e[o],r.add(Ys(n,o))):Xs(s,t+1,Ys(n,o),r))}function Ad(e,t,n){if(Array.isArray(e)){e.length>0&&n.push({path:t,items:e,bytes:Sn(e)});return}if(!(e===null||typeof e!="object"))for(let[r,o]of Object.entries(e))Ad(o,Ys(t,r),n)}function eA(e,t,n){let r=Sn(e);if(r<=Vs)return;t.truncated=!0;let o=[];for(Ad(e,"",o);r>Vs;){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=Sn(i)+(s.items.length>0?1:0);s.bytes-=a,r-=a,n.add(s.path)}for(;Sn(e)>Vs;){let s,i=-1;for(let[a,c]of Object.entries(e)){let l=Sn(c);l>i&&(s=a,i=l)}if(s===void 0)break;delete e[s],n.add(s)}}function tA(e,t,n){let r=GC[t],o={truncated:!1},s={},i=[];for(let c of Object.keys(e)){if(!r.has(c)){i.push(c);continue}let l=QC(c,e[c],t,n,o);l!==void 0&&(s[c]=l)}i.sort();let a=new Set;return Xs(s,1,"",a),a.size>0&&(o.truncated=!0),eA(s,o,a),{settings:s,keys_omitted:i,truncated:o.truncated,trimmed_paths:[...a].sort()}}function hd(e,t){let n={kind:t.kind,name:"settings",path:e.componentPath(t.absPath),origin:t.origin,enabled:!0,content_hash:zC(t.attributes),attributes:t.attributes};e.push(n)}function qs(e,t,n,r){if(!e.claimFile(t)||!FC(t))return;let o=Gi(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),hd(e,{kind:r.kind,absPath:t,origin:n,attributes:u})}return}let s=o.value,i=s.hooks;if(st(i)&&Gs(e,t,i,n),!r.profile)return;let a=tA(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),hd(e,{kind:r.kind,absPath:t,origin:n,attributes:c})}import{existsSync as nA}from"node:fs";import{join as Me}from"node:path";var xd=".claude/skills/synced",kd=".claude/plugins/synced";function bd(e){return[Me(e,xd),Me(e,kd)]}function Fr(e){return typeof e=="string"&&e.length>0?e:void 0}function Od(e){let t=Me(e.home,xd);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()||!nA(a))continue;let c=s.get(i.name),l=Fr(c?.source),u=Fr(c?.creatorType);vt(e,{absolutePath:a,kind:"SKILL",origin:"user",enabled:!0,name:i.name,attributes:{scope:"synced",...l?{source:l}:{},...u?{creator_type:u}:{}}})}}}function Id(e){let t=Me(e.home,kd);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=Fr(a?.marketplaceName),l=Fr(a?.version),u=c?`${i.name}@${c}`:i.name,d=Me(r,i.name),{componentCount:f,expandTruncated:p}=_n(e,d,`plugin:${u}`,!0);hn(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 oA(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)gt(e,{dir:Lt(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md",skipDirs:bd(e.home)});for(let i of n.dirs)gt(e,{dir:Lt(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=$f(i.map(c=>Lt(r,c)));a&&vt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:rA(a)})}for(let i of gc(n))qs(e,Lt(r,i),o,{kind:"SETTINGS",profile:Sd(i)});for(let i of n.mcpJson??[])id(e,Lt(r,i),o);for(let i of n.mcpToml??[])ad(e,Lt(r,i),o);if(s){if(n.managed){for(let i of zn(n.managed,process.platform,e.home))if(i.toLowerCase().endsWith(".json")){let a=Ed(n.managed,i);qs(e,i,o,{kind:"MANAGED_SETTINGS",...a})}}n.plugins==="claude"?(ud(e),Id(e),Od(e)):n.plugins==="cursor"&&ld(e)}}function Td(e,t){try{let n=new kr(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)oA(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 Zs(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=Td(t,{layouts:Object.values(bt),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:Je,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=_s({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:u=>hc(c,u)});i=l.parentRel;for(let u of l.anchors){let d=os(u.dir);if(o!==void 0&&!o(u.scope,d))continue;let f=Td(t,{layouts:c,levelDir:u.dir,origin:u.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:hs,scopeRef:d});f&&(r[u.scope]=f)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Qs(e,t,n={}){let r=n.truncated===!0,o=sn(e),s=new Set(e.map(u=>Se(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=Se(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=ul(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 wd=2*1024*1024,sA=new Set(["HOOK","MCP_SERVER","PLUGIN","SETTINGS","MANAGED_SETTINGS"]);function ei(e,t,n){let r=new Set(t.map(s=>Se(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(Se(s.path,s.name))||o.push(s));return o}function ti(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 Pd(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Nd(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function ni(e,t=wd){let n=[],r=[];for(let u of e)sA.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=Pd(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=Nd(u),g=Pd(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 ri(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:Nd(n))}var iA=["user","cwd","repo","parent"];function oi(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let v of iA){let T=t.scopes[v];if(!T)continue;let K=n(v,T.scopeRef),D=K.components,b=Qs(T.components,D,{forceFull:D===void 0,truncated:T.truncated}),w=new Set(K.textHashes),H=ei(T.components,b.upserts,w),m=ri([...b.upserts,...H],w);s.push({scope:v,walk:T,delta:b,outgoing:m,outgoingKeys:new Set(m.map(k=>Se(k.path,k.name))),deliveredTextHashes:w,cachedComponents:D})}let i=s.flatMap(v=>v.outgoing),a=ni(i,o),c=new Set(a.components.map(v=>Se(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 b=a.components.filter(k=>v.outgoingKeys.has(Se(k.path,k.name))),w=[...v.outgoingKeys].some(k=>!c.has(k)),H=D.truncated||w;H?d.push(T):D.full&&u.push(T),f.push(...b),!D.full&&!H&&p.push(...D.removed);let m=D.full?{}:{...v.cachedComponents??{}};if(!H)for(let k of D.removed)delete m[Se(k.path,k.name)];for(let k of b)m[Se(k.path,k.name)]=k.content_hash;S.push({scope:T,scopeRef:K.scopeRef,components:m,textHashes:ti(v.deliveredTextHashes,b.filter(k=>k.text!==void 0).map(k=>k.content_hash),K.components),collectedAtMs:r,included:b.length>0||D.removed.length>0&&!H||D.full})}let A={user_spec_hash:sn(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 x=t.scopes.cwd;x&&(A.user_spec_cwd_scope_ref=x.scopeRef);let I=t.scopes.repo;I&&(A.user_spec_repo_scope_ref=I.scopeRef);let O=t.scopes.parent;return O&&(A.user_spec_parent_scope_ref=O.scopeRef,t.parentRel&&(A.user_spec_parent_rel=t.parentRel)),{fields:A,scopes:S}}var $r={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function si(e){return e==="cwd"||e==="repo"||e==="parent"}function En(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ii(e){return!En(e)||!En(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 vd(e){return aA(e)}function Md(e){return cA(e)}function Ld(e){return uA(e)}function aA(e){if(!En(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function cA(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Hd(e,t){if(!En(e))return;let n=e[t];return ii(n)?n:void 0}function uA(e){if(!En(e))return{};let t={};for(let[n,r]of Object.entries(e))ii(r)&&(t[n]=r);return t}function ai(e,t=20){let n=[];for(let[r,o]of Object.entries(e))ii(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 mA=["allow","deny","ask"];function Br(e){let t=ne(e,{}),n=[];for(let r of mA)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:Ur(o),mode:r});return{model:t.model??"",permissionKeys:n}}function gA(e){let{serverManaged:t,fileBased:n}=go(process.platform,e),r=Br(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Br(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function _A(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 hA=10,SA="self-config-cache.json",Dd=4;function Ut(){return M("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function EA(){return M("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}var yA={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function RA(e,t=te){let n=yA[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(`
|
|
49
|
+
`)[0]??"").trim();return a||r(o+1)};return r(0)}function CA(e=Ud()){return Ht(e,".ev-ai","agent-hook",SA)}function AA(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
|
|
50
|
+
`);return q(n)}function jr(e,t,n=!1){let r=AA(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 ci(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>Ht(e,a)),...n]){let a=pA(i);if(s.has(a))continue;s.add(a);let c=ro(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function xA(e){return fA(e)?ge(dA(e,"utf8"),{}):{}}function kA(e,t){try{me(e,`${JSON.stringify(t)}
|
|
51
|
+
`)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: self-config cache write failed open: ${r}`)}}function bA(e,t,n){if(t==="user")return{components:vd(e.user_spec_components),textHashes:Md(e.user_spec_text_hashes)};if(!si(t))return{components:void 0,textHashes:[]};let r=Hd(e[$r[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function OA(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=Dd,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(!si(s.scope))continue;let i=$r[s.scope],a=Ld(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]=ai(a)}}return o}async function Fd(e,t=process.cwd(),n=Ud(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await RA(e),a="",c=[];if(o){let H=gA(n),m=Br(Ht(n,".claude/settings.json")),k=Br(Ht(t,".claude/settings.local.json"));a=H.model||k.model||m.model,c=_A([...H.permissionKeys,...m.permissionKeys,...k.permissionKeys]).slice(0,200)}let l={present:!1,size:0},u=H=>{let m=[],k=!1;for(let U of H){let le=Wi(Ht(n,U));if(m=m.concat(le.entries),k=k||le.truncated,m.length>=Je){m=m.slice(0,Je),k=!0;break}}return{entries:m,truncated:k}},d=CA(n),f=xA(d),p=f[e]??{},g=(p.send_count??0)+1,S=g>0&&g%hA===0,A=H=>S?void 0:p[H],x=u(tt.skills),I=u(tt.subagents),O=u(tt.commands),v=u(tt.rules),T={skills:jr(x.entries,A("skills"),x.truncated),subagents:jr(I.entries,A("subagents"),I.truncated),commands:jr(O.entries,A("commands"),O.truncated),rules:jr(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:ci(n,tt.memory),settings:ci(n,tt.settings,Sc(n)),mcp:ci(n,tt.mcp)},local_settings:o?ro(Ht(t,".claude/settings.local.json")):l},D=null,b=r.nowMs??Date.now();if(!Ut()){let H=p.user_spec_layout_version!==Dd,m=Zs(e,n,{launchCwd:EA()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote});if(Object.keys(m.scopes).length>0){let k=oi({collected:m,cacheFor:(U,le)=>H?{components:void 0,textHashes:[]}:bA(p,U,le),nowMs:b});Object.assign(K,k.fields),D={hash:k.fields.user_spec_hash,home:k.scopes.find(U=>U.scope==="user")??null,project:k.scopes.filter(U=>U.scope!=="user")}}}let w=OA(p,T,g,D);return{config:K,commit:()=>{f[e]=w,kA(d,f)}}}import{homedir as WA}from"node:os";import{join as Bd}from"node:path";function ht(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as Kr}from"node:path";function IA(e){return Kr(e,".ev-ai","agent-hook","js","signed-v1")}function TA(e){return Kr(IA(e),"scopes")}function $d(e,t){return Kr(TA(e),t)}function jd(e){return Kr(e,"attempts")}function ui(e){return String(e).padStart(10,"0")}var PA=/^(\d{10})$/,wA=/^(\d{10})\.done$/,NA=/^[0-9a-f]{128}$/,vA=64;async function zd(e,t,n=!1){let r=jd(t),o=await Ii(e,r),s=new Map,i=new Map,a=Kd(o,PA),c=Kd(o,wA),l=async f=>{let p=await Wd(e,Bd(r,MA(f)));return p&&s.set(f,{record:HA(p.value),mtimeMs:p.mtimeMs}),p!==void 0},u=async f=>{let p=UA((await Wd(e,Bd(r,LA(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([Gd(a,l),Gd(c,u)]);let d=yn(s);return d<yn(i)&&c.includes(d)&&await u(d),{claims:s,dones:i}}function Kd(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function Gd(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function yn(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Vd(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 MA(e){return ui(e)}function LA(e){return`${ui(e)}.done`}async function Wd(e,t){let n;try{n=await e.stat(t)}catch(o){if(yt(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>qr)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>qr?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function HA(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 UA(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=DA(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function DA(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"&&NA.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&FA(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function FA(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==vA||t.toString("base64")!==e))return t.toString("hex")}function KA(e){return e==="bootstrap"?3e3:6e4}function GA(e,t){let n=yn(e.claims);if(n===0)return;let r=yn(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Vd(o),c=o.record==="empty"?void 0:o.record.owner,l=KA(c)+3e4;if(t-a>l)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:Jd(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:Jd(i.selection)}}async function Yd(e,t,n){try{let r=await zd(Ti(),$d(e,t),!0);return GA(r,n)}catch{return}}function Jd(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}function zA(e=process.env){if(Object.values(ca).some(n=>e[n]))return"plugin";let t=e.npm_lifecycle_script?.trim().split(/\s+/)[0]?.replace(/^["']|["']$/g,"");return e.npm_lifecycle_event==="npx"&&t===_e?"npx":null}async function Xd(e=WA()){let t=Qo()?.launcherScope;if(!t)return{};let n=await Yd(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function Dt(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:Ye,event:e,timestamp:vn(),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:Ue,hook_delivery:zA(),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=Qo();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=Lu(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 qd}from"node:fs";import{spawn as Zd}from"node:child_process";import{fileURLToPath as JA}from"node:url";import{gzipSync as VA}from"node:zlib";function li(e){return M("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<ia?{body:e}:{body:VA(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function Gr(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function fi(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}var Rn="__post",Wr="__work";async function YA(e,t,n={}){if(Ut())return e;let r=await is(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 XA(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 Qd(e){switch(e){case"session_start":return na;case"session_end":return ra;case"tool_invoked":case"skill_invoked":return fo;default:return fo}}function qA(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
|
|
52
|
+
${n}`}function ep(e,t=[],n=process.execPath,r=import.meta.url,o=qd){if(Bn(n))return{command:n,args:[e,...t]};let s=JA(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function ZA(e=process.execPath,t=import.meta.url,n=qd){return ep(Rn,[],e,t,n)}function QA(e){let t=e.indexOf(`
|
|
53
|
+
`);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 tp(e,t){if(!(!e.ok||typeof e.text!="function"))try{let n=await e.text();Fa(n,t)}catch{}}async function zr(e,t=fetch){let n=await e(),r=QA(n);if(!r)return;let{meta:o,body:s}=r,i=li(s),a=Gr(i.contentEncoding);try{let c=await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))});await tp(c,o.url)}catch{}}async function ex(e,t,n,r=fetch){let o=Qd(e),s=li(t),i=Gr(s.contentEncoding),a=fi(s.body);E(`POST event=${e} url=${jn(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:Gr(),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 tp(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 np(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()},oa),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 tx(e,t,n,r=Zd,o=ZA){let s=Qd(e),i=qA(n,s,t),{command:a,args:c}=o();return np(a,c,i,r,"detached post")}async function rp(e,t,n=Zd,r=ep){let{command:o,args:s}=r(Wr,t);return np(o,s,e,n,"detached work")}async function Ft(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(!$n(o))return E(`WARN: collector URL blocked (https required): ${jn(o)}`),!1;let a=await YA(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}
|
|
54
|
+
`,d=M("EV_AI_HOOK_DEBUG");d==="full"?E(`DEBUG envelope=${l}`):d==="1"&&E(`DEBUG summary=${XA(c,fi(u))}`);let f=process.argv.includes(Wr),p=M("EV_AI_HOOK_SYNC")==="1";return fr(n.runnerEvent,n.runnerPlatform)||f||p?ex(e,u,o):(await tx(e,u,o),!1)}import{createReadStream as nx}from"node:fs";import{stat as rx}from"node:fs/promises";import{basename as ox,resolve as sx}from"node:path";import{createInterface as ix}from"node:readline";var ax=1024*1024;function cx(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&ox(t).endsWith(".jsonl")}async function op(e){if(!e||!cx(e))return null;try{let t=sx(e),n=await rx(t);if(!n.isFile())return null;let r=Math.max(0,n.size-ax),o=[],s=ix({input:nx(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 Vr(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent,promptCaptureSource:Rr(e.manifest.manifest,e.manifest.hookConfig)}}function An(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function pi(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent,promptCapture:ps(e.manifest.hookConfig)}}async function ap(e){let t=Date.now();await yx(e);let{gitRoot:n}=e.manifest;await gi(e,n);let r=pi(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Ar(e.hookInput,e.manifest.manifest,r),envelopeFields:Vr(e),launchCwd:ms(e.hookInput,r),home:lx()}}function sp(e){try{return he(ux(e))}catch{return null}}function cp(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function ip(e,t){let n=e.replaceAll("\\","/");if(!cp(n))return null;let r=he(e),o=he(t),s=sp(e)??r,i=sp(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function up(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=ip(e,t)??(cp(r)?null:r),i=ip(e,n);return{repositorySourcePath:s,userSourcePath:i}}function di(e,t,n,r,o){return lp(e,up(n,t.gitRoot,t.home),r,o)}function lp(e,{repositorySourcePath:t,userSourcePath:n},r,o){let s=t??n,i=s===null?null:o(s),a=i!==null&&s!==null?fx({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 fx(e){try{let t=e.inRepository?mx(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 fp(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 mi(e,t,n){return Ft("tool_invoked",{...n,...fp(e),success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Dt,e.manifest.collectorUrl,t.buildStartedAtMs,An(e,t.home))}function dx(e){return au(e.runnerEvent,e.runnerPlatform)?[]:kc(e.hookInput)}function px(e,t){return mi(e,t,{})}var dp=new Set([...Object.values(ft),".github"]);function mx(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=>dp.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}var pp=".codex/config.toml",gx=new Map([["claude_json_user",".claude.json"],["cursor_mcp_user",".cursor/mcp.json"],["codex_toml_user",pp]]);function _x(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?gx.get(c.source):o==="codex"?pp: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||!dp.has(g)))try{return(0,B.buildComponentReference)({installationRootExternalKey:n,installableKind:B.ComponentKind.INTERFACE,sourcePath:p,nativeKey:t})}catch{return}}function hx(...e){for(let t of e)if(t)return t;return null}function Et(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 Sx(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 Ex(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var St=new Set,Cn=null;async function yx(e){if(Ut())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(St.has(t))return;if(!cs(n)){St.add(t);return}let r=Jt({sessionId:e.sessionId,hostname:Vn()});if(fl(r)){if(Cn){await Cn;return}Cn=(async()=>{if(St.has(t)||!cs(n)){St.add(t);return}if(!Na(n)){St.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),{operatorResolved:c,fields:l}=await mp(e,r,ur(i),as({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})),u={...l,self_config:Ex(a,c.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await Ft("session_start",u,Vr(e),Dt,e.manifest.collectorUrl,s,An(e)),o&&(c.commit(),St.add(t))}finally{va(n)}})().finally(()=>{Cn=null}),await Cn}}async function gi(e,t,n){try{e.platformAgentId=await Xc(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 mp(e,t,n,r){let[o,s,i,a,c]=await Promise.allSettled([n,ma(),Uu(t),_a(),r]),l=Et(o,null,"gitSnapshot"),u=Et(s,"","detectVirt"),d=Et(i,null,"probeCloud"),f=Et(a,{},"hostEnv"),p=Et(c,{commit:()=>{}},"resolveOperatorForSend");return await gi(e,e.manifest.gitRoot,l),{operatorResolved:p,fields:{identity:{host:Vn(),context:t,virt:u||null,cloud:d,git:l},host_env:f,env_vars:Gu()}}}async function Rx(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=Jt({sessionId:e.sessionId,hostname:Vn()}),o=String(e.runnerPlatform),s=pi(e),i=ms(e.hookInput,s),a=ur(n),c=Xd().catch(()=>({})),l=Ut()?Promise.resolve({commit:()=>{}}):as({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),u=mp(e,r,a,l),[d,f]=await Promise.allSettled([ts(e.manifest.manifest,n,o),a.catch(()=>null).then(K=>Fd(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=Et(d,[],"mcpDeclared"),A=Et(f,Sx(o),"selfConfig"),x=A.config,I=L(e.hookInput,"model");I&&(x.model=I);let O={...g,mcp:{declared:S},self_config:x,run_meta:{trigger:e.hookSource||"startup"},hook_input:Ar(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},v=await c;await Ft("session_start",O,{...Vr(e),...v},Dt,e.manifest.collectorUrl,t,An(e))&&(A.commit(),p.commit(),St.add(e.manifest.installationId))}async function Cx(e){let t=Date.now(),[,n]=await Promise.all([gi(e,e.manifest.gitRoot),e.runnerPlatform==="claude"?op(L(e.hookInput,"transcript_path")):null]),r=e.runnerEvent.toLowerCase(),o=hx(L(e.hookInput,"status"),L(e.hookInput,"stop_reason"),L(e.hookInput,"reason"),tn(L(e.hookInput,"error")),r==="stop"?He(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=Ar(e.hookInput,e.manifest.manifest,pi(e));n&&(s.model=n),r!=="stopfailure"&&Rr(e.manifest.manifest,e.manifest.hookConfig)!=="off"&&s.last_assistant_message===void 0&&(s.last_assistant_message=""),await Ft("session_end",{status:o,...n?{model:n}:{},hook_input:s},Vr(e),Dt,e.manifest.collectorUrl,t,An(e))}async function Ax(e){let t=dx(e),n=eu(e.hookInput),r=iu(e.runnerEvent),o=r&&t.length===0&&n.length===0;if(t.length===0&&n.length===0&&!r||o&&Rr(e.manifest.manifest,e.manifest.hookConfig)==="off")return;let s=await ap(e);await Promise.all([o?px(e,s):void 0,t.length===0?void 0:xx(e,s,t),n.length===0?void 0:kx(e,s,n)])}function gp(e,t,n,r){let o=r??xc({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=di(e,t,o,B.ComponentKind.SKILL,B.nativeKeyForSkillPath);if(s.sourcePath!==null&&vo(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??tu({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=di(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 xx(e,t,n){let r=nr(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=gp(e,t,o,r);return mi(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 kx(e,t,n){return Promise.all(n.map(r=>{let o=qc({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=di(e,t,o,B.ComponentKind.RULE,B.nativeKeyForRulePath),i=s.nativeKey??Qc(r);return mi(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var bx=[{kind:B.ComponentKind.SKILL,nativeKeyFn:B.nativeKeyForSkillPath},{kind:B.ComponentKind.RULE,nativeKeyFn:B.nativeKeyForRulePath},{kind:B.ComponentKind.COMMAND,nativeKeyFn:B.nativeKeyForCommandPath}];function Ox(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Lo(e.hookInput);if(r===null)return n.skillName===null?{}:gp(e,t,n.skillName,null);let o=up(r,t.gitRoot,t.home);for(let s of bx){let i=lp(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 Ix=/mcp/i;function Tx(e,t,n,r){let o=Ix.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?od(t,n):Hr(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 Px(e){let t=await ap(e),n=lu(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=Mo(e.hookInput),i=nd(s,t.home),a=du(e.hookInput),c=cu(e.runnerEvent),l=c===!1?pu(e.hookInput,e.runnerEvent):null,u=tn(L(e.hookInput,"mcp_server_name")),d=u!==null||r!==null&&dr(r)?await ts(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]):[],{mcpServer:f,mcpTool:p}=gu(r,d.map(K=>K.name),u??""),g=_x(r,f,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),d,u),S=g===void 0?Ox(e,t,n):{},A=f===null?null:Ku(f,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),x=Tx(e,s,t.home,{hasMcpIdentity:!!f||!!p,declaredConfig:A}),I=g??S.componentReference,O=S.ruleName??n.ruleName,v=S.commandName??n.commandName,T=fu(e.hookInput);await Ft("tool_invoked",{tool_name:r,skill_name:o,...O?{rule_name:O}:{},...v?{command_name:v}:{},success:c,duration_ms:a,...i?{executable:i}:{},...l?{failure_reason:l}:{},...f?{mcp_server:f}:{},...p?{mcp_tool:p}:{},...x,...I?{component_reference:I}:{},...T?{subagent_type:T}:{},...fp(e),hook_input:t.hookInput},t.envelopeFields,Dt,e.manifest.collectorUrl,t.buildStartedAtMs,An(e,t.home))}async function _p(e){switch(e.internalEvent){case"session_start":await Rx(e);return;case"session_end":await Cx(e);return;case"skill_invoked":await Ax(e);return;case"tool_invoked":await Px(e);return;default:return}}import{mkdirSync as wx,readdirSync as Nx,readFileSync as vx,statSync as hp,unlinkSync as Mx,writeFileSync as Lx}from"node:fs";import{homedir as Jr}from"node:os";import{join as _i}from"node:path";var Hx="turns",Sp=1440*60*1e3,Ux=100,Dx=new Set(["stop","stopfailure","sessionend"]);function hi(e=Jr()){return _i(Re(e),Hx)}function Ep(e,t){return _i(e,Gt(t))}function Fx(e,t=Date.now()){let n;try{n=Nx(e)}catch{return}let r=0;for(let o of n){if(r>=Ux)return;r+=1;try{let s=_i(e,o);t-hp(s).mtimeMs>Sp&&Mx(s)}catch{}}}function $x(e,t,n=Jr()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=hi(n);wx(s,{recursive:!0}),Lx(Ep(s,r),o,"utf8")}catch{}}function jx(e,t=Jr()){let n=e.trim();if(!n)return"";try{let r=Ep(hi(t),n);return Date.now()-hp(r).mtimeMs>Sp?"":vx(r,"utf8").trim()}catch{return""}}function yp(e,t,n,r=Jr()){let o=t.trim(),s=Dx.has(n.trim().toLowerCase());return s&&Fx(hi(r)),o?($x(e,o,r),o):s?jx(e,r):""}async function Bx(e,t,n,r){let o=t??await Mn(Kn),s=ge(o,{}),i=await ja(process.cwd(),{sessionId:en(s)});if(!i)return;r&&(i.collectorUrl=r,i.hookConfig=Xn(r));let a=uu(s,i.manifest.platform,n),c=Wo(e,a.runnerEvent);if(!c){E(`WARN: unknown hook event '${a.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:a.sessionId,turnId:yp(a.sessionId,a.turnId,a.runnerEvent),runnerEvent:a.runnerEvent,runnerPlatform:a.runnerPlatform,hookSource:a.hookSource,internalEvent:c,manifest:i,platformAgentId:i.platformAgentId};await _p(l)}function Kx(e,t=!1){if(M("EV_AI_HOOK_SYNC")==="1")return!0;let{parsed:n,hookInput:r,runnerEvent:o}=e,s=Qt(r,o,void 0,n.runner);return fr(o,s)?!0:t}function Rp(e,t){let n=so(e),r=ge(t,{}),o=n.event??Go(r);return da()||su(n.runner,r,o)?null:{parsed:n,hookInput:r,runnerEvent:o}}function Ap(e){return Ou(Wo(e.parsed.event,e.runnerEvent))}async function Cp(e,t,n){let{parsed:r}=e,o=n??qo(r.slot);if(!o&&!Ap(e)){let s=Xo(r.cap),i=vu(s);if(!i){Zo(s);return}o=i}try{await Bx(r.event,t,r.runner,ru(r))}finally{o&&gr(o)}}async function xp(e=process.argv.slice(2)){if(Mu(),M("EV_AI_HOOK_JUDGE")==="1"){try{await Mn(Kn)}catch{}return to(),0}if(e[0]===Rn){try{await zr(Wt)}catch{}return 0}if(e[0]===Wr){try{let n=await Wt(),r=Rp(e.slice(1),n);if(!r)return 0;await Cp(r,n)}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: detached work failed open: ${r}`)}return 0}let t;try{let n=await Mn(Kn),r=Rp(e,n);if(!r)return 0;let{parsed:o,hookInput:s,runnerEvent:i}=r;if(t=qo(o.slot),!yu(s,i,o.runner))return 0;if(Kx(r))await Cp(r,n,t);else{let a=t||Ap(r)?void 0:Xo(o.cap);if(a===void 0||wu(a)){let c=await rp(n,e);t&&c?.pid!==void 0&&Tu(t,c.pid)}else Zo(a)}}catch(n){let r=n instanceof Error?n.message:String(n);E(`WARN: hook failed open: ${r}`)}finally{t&&gr(t),to()}return 0}function Yr(){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 kp(e){return e.includes("--help")||e.includes("-h")}async function Jx(e=process.argv.slice(2)){let[t,...n]=e;if(t===Rn){try{await zr(Wt)}catch{}return 0}return t==="--version"||t==="-V"?(process.stdout.write(`${Ue}
|
|
55
|
+
`),0):t==="configure"?kp(n)?(Yr(),0):(await uc(Ya(n)),0):t==="install"?kp(n)?(Yr(),0):(await ac(Xa(n)),0):t==="migrate-to-plugin"?(await fc(),0):t==="update"?(await cc(),0):t==="uninstall"?(await dc(),0):t==="help"||t==="--help"||t==="-h"?(Yr(),0):t===void 0?(Yr(),1):xp(e)}function Yx(e,t,n=Gx){if(!t)return!1;try{return e===Vx(Wx(t)).href?!0:n(zx(e))===n(t)}catch{return!1}}Yx(import.meta.url,process.argv[1])&&process.env.VITEST===void 0&&Jx().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);E(t),process.exit(1)});export{Yx as isCliEntrypoint,Jx as main};
|