@ev-ai/agent-hook 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hook.mjs CHANGED
@@ -1,45 +1,45 @@
1
1
  import { createRequire as __createRequire } from 'node:module';
2
2
  const require = __createRequire(import.meta.url);
3
3
 
4
- var gc=Object.create;var Yr=Object.defineProperty;var _c=Object.getOwnPropertyDescriptor;var hc=Object.getOwnPropertyNames;var Ec=Object.getPrototypeOf,Sc=Object.prototype.hasOwnProperty;var sn=(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 he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var yc=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hc(t))!Sc.call(e,o)&&o!==n&&Yr(e,o,{get:()=>t[o],enumerable:!(r=_c(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?gc(Ec(e)):{},yc(t||!e||!e.__esModule?Yr(n,"default",{value:e,enumerable:!0}):n,e));var Ot=he(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0});N.MCP_MISSING_LAUNCH_SERIALIZED=N.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;N.foldMcpName=cs;N.buildMcpFamilyCanonicalKey=Zu;N.launchContainsCredentials=Qu;N.serializeMcpLaunchIdentity=us;N.hashMcpLaunchIdentity=Ye;N.projectMcpMissingLaunchIdentity=nl;N.projectMcpLaunchIdentity=rl;N.maskMcpLaunchForDisplay=sl;N.normalizeMcpToolNames=il;var Xu=sn("node:crypto");N.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";N.MCP_MISSING_LAUNCH_SERIALIZED=`${N.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function se(e){return e.toLocaleLowerCase("en-US")}function cs(e){return se(e)}function Zu(e){return`interface:${cs(e)}`}var as=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),qu=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function be(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Qu(e){return e.kind==="url"?el(e.url):e.kind==="command"?e.arguments.some(t=>qu.test(t)):!1}function el(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(as.has(se(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=se(i.split("=",1)[0]??"");return as.has(a)})}}function us(e){if(e.kind==="url")return[N.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",be(se(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>se(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[N.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",be(se(e.command)),String(t.length),...t.map(be)].join("|")}return[N.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",be(e.installationRootExternalKey),be(e.sourcePath),be(e.nativeKey)].join("|")}function Ye(e){return(0,Xu.createHash)("sha256").update(e).digest("hex")}var tl=Ye(N.MCP_MISSING_LAUNCH_SERIALIZED);function nl(){return{kind:"unknown",arguments:[],serialized:N.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:tl}}function rl(e){let t=us(e);return e.kind==="url"?{kind:"url",url:se(e.url),arguments:[],serialized:t,contentHash:Ye(t)}:e.kind==="command"?{kind:"command",command:se(e.command),arguments:[...e.arguments].map(n=>se(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Ye(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Ye(t)}}var ol=/^(https?:\/\/)([^/?#]*@)/i;function sl(e){return e.replace(ol,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function il(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 Tt=he(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.PACKAGE_FIELD_MAX=void 0;Q.npxExecBin=ls;Q.packageNameFromSpec=Pt;Q.pinnedPackageVersionFromSpec=ds;Q.pinnedPackageVersionFromNpx=gl;Q.npxPackageSpecs=ps;Q.PACKAGE_FIELD_MAX=128;var al=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,cl=new Set(["-p","--package"]),ul=new Set(["-c","--call"]),ll=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),dl=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),pl=/^--no-/;function fl(e){return dl.has(e)||pl.test(e)}function ls(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var ml=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Pt(e){if(e.length===0||e.length>Q.PACKAGE_FIELD_MAX)return null;let t=e.lastIndexOf("@"),n=t>0?e.slice(0,t):e;return al.test(n)?n:null}function ds(e){let t=Pt(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return ml.test(n)?n:void 0}function gl(e,t){for(let n of ps(e,t)){let r=ds(n);if(r!==void 0)return r}}function ps(e,t){let n=ls(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(ul.has(u))return[];if(cl.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&o.push(l),c===-1&&(i+=1);continue}if(!(c!==-1||fl(u))){if(ll.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Pt(i)!==null)?o:[]:s===null||Pt(s)===null?[]:[s]}});var fs=he(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.McpPackageEcosystem=void 0;Re.resolveMcpPackageIdentity=kl;var _l=Ot(),Un=Tt();Re.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var hl=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,El=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Sl=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function yl(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var Rl=new Set(["--from","--spec"]),Cl=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"]),Il=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"]),Al=/^--no-/;function Ol(e,t){let n=yl(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(Rl.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&(o=l),c===-1&&(i+=1);continue}if(!(c!==-1||Il.has(u)||Al.test(u))){if(Cl.has(u)){i+=1;continue}return null}}return o??s}function Pl(e){if(e.length===0||e.length>Un.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!El.test(r)||!Sl.test(o)?null:{ecosystem:Re.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Tl(e){let t=(0,Un.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return hl.test(n)?{ecosystem:Re.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function kl(e){if(e?.kind!=="command"||(0,_l.launchContainsCredentials)(e))return;for(let n of(0,Un.npxPackageSpecs)(e.command,e.arguments)){let r=Tl(n);if(r!==null)return r}let t=Ol(e.command,e.arguments);if(t!==null)return Pl(t)??void 0}});var Ss=he(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.EMPTY_NPM_PUBLISHER=void 0;ie.isNpmRegistryPublisher=bl;ie.displayPublisherName=Nl;ie.classifyMcpProvenance=jl;var _s=Ot(),Dn=Tt();ie.EMPTY_NPM_PUBLISHER="npm:";var ms="npm:",xl=/^[A-Za-z0-9._-]+$/;function bl(e){return e.startsWith(ms)&&e!==ie.EMPTY_NPM_PUBLISHER&&xl.test(e.slice(ms.length))}function Nl(e){if(!(e==null||e===""||e===ie.EMPTY_NPM_PUBLISHER))return e}function gs(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 Ml(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 Fn(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function wl(e){let t=Fn(e),n=Ml(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||gs(t)||n!==void 0&&gs(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function vl(e){let t=Fn(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function Ll(e){let t=Fn(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function hs(e){let t={kind:"url",url:e};if((0,_s.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||wl(n.hostname))return{origin:"UNKNOWN"};let r=vl(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:Ll(n)}}catch{return{origin:"UNKNOWN"}}}var Es="mcp-remote";function Ul(e,t){if(e===Es)return t.find(n=>/^https?:\/\//i.test(n))}function Dl(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Fl(e,t,n){let r=Ul(e,t);return r!==void 0?hs(r):e===Es?{origin:"UNKNOWN"}:Dl(e,n)}function Hl(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 jl(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,_s.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return hs(t.url);let r=(0,Dn.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Dn.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Fl(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Dn.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return Hl(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var ys=he(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.parseFrontmatterField=J.parseFrontmatterDescription=J.usableCatalogText=void 0;var Kl=/^(?:>|\|)[-+]?$/,$l=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,Bl=e=>{let t=e?.trim()??"";if(!(t.length===0||Kl.test(t)))return t};J.usableCatalogText=Bl;var Gl=e=>(0,J.parseFrontmatterField)(e,"description");J.parseFrontmatterDescription=Gl;var zl=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Wl(n[1],t)};J.parseFrontmatterField=zl;var Vl=e=>e.replace(/^["']|["']$/g,"");function Wl(e,t){let n=e.split(`
5
- `),r=`${t}:`,o=n.findIndex(d=>d===r||d.startsWith(`${r} `)||d.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=$l.exec(s);if(!i){let d=Vl(s).trim();return(0,J.usableCatalogText)(d)}let a=[];for(let d=o+1;d<n.length;d+=1){let g=n[d]??"";if(g.trim()===""){a.push("");continue}if(g.length===g.trimStart().length)break;a.push(g)}let c=a.reduce((d,g)=>g.trim()===""?d:Math.min(d,g.length-g.trimStart().length),Number.POSITIVE_INFINITY),u=[],l=i[1]?.trim();l&&u.push(l);for(let d of a)u.push(d.trim()===""?"":d.slice(c));for(;u.length>0&&u[u.length-1]==="";)u.pop();let m=s.startsWith(">")?u.join(`
4
+ var mc=Object.create;var Jr=Object.defineProperty;var gc=Object.getOwnPropertyDescriptor;var _c=Object.getOwnPropertyNames;var hc=Object.getPrototypeOf,Sc=Object.prototype.hasOwnProperty;var sn=(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 he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ec=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _c(t))!Sc.call(e,o)&&o!==n&&Jr(e,o,{get:()=>t[o],enumerable:!(r=gc(t,o))||r.enumerable});return e};var je=(e,t,n)=>(n=e!=null?mc(hc(e)):{},Ec(t||!e||!e.__esModule?Jr(n,"default",{value:e,enumerable:!0}):n,e));var Ot=he(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});M.MCP_MISSING_LAUNCH_SERIALIZED=M.MCP_LAUNCH_IDENTITY_ALGORITHM=void 0;M.foldMcpName=os;M.buildMcpFamilyCanonicalKey=Xu;M.launchContainsCredentials=qu;M.serializeMcpLaunchIdentity=ss;M.hashMcpLaunchIdentity=Ye;M.projectMcpMissingLaunchIdentity=tl;M.projectMcpLaunchIdentity=nl;M.maskMcpLaunchForDisplay=ol;M.normalizeMcpToolNames=sl;var Ju=sn("node:crypto");M.MCP_LAUNCH_IDENTITY_ALGORITHM="mcp-launch-v1";M.MCP_MISSING_LAUNCH_SERIALIZED=`${M.MCP_LAUNCH_IDENTITY_ALGORITHM}|missing`;function se(e){return e.toLocaleLowerCase("en-US")}function os(e){return se(e)}function Xu(e){return`interface:${os(e)}`}var rs=new Set(["access_token","api_key","apikey","auth","authorization","key","password","secret","token"]),Zu=/^(?:--?(?:token|api[-_]?key|password|secret|authorization)(?:=|\s+)|(?:sk-|ghp_|xox[baprs]-|Bearer\s+))/i;function be(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function qu(e){return e.kind==="url"?Qu(e.url):e.kind==="command"?e.arguments.some(t=>Zu.test(t)):!1}function Qu(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(rs.has(se(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=se(i.split("=",1)[0]??"");return rs.has(a)})}}function ss(e){if(e.kind==="url")return[M.MCP_LAUNCH_IDENTITY_ALGORITHM,"url",be(se(e.url))].join("|");if(e.kind==="command"){let t=[...e.arguments].map(n=>se(n)).sort((n,r)=>n<r?-1:n>r?1:0);return[M.MCP_LAUNCH_IDENTITY_ALGORITHM,"command",be(se(e.command)),String(t.length),...t.map(be)].join("|")}return[M.MCP_LAUNCH_IDENTITY_ALGORITHM,"unknown",be(e.installationRootExternalKey),be(e.sourcePath),be(e.nativeKey)].join("|")}function Ye(e){return(0,Ju.createHash)("sha256").update(e).digest("hex")}var el=Ye(M.MCP_MISSING_LAUNCH_SERIALIZED);function tl(){return{kind:"unknown",arguments:[],serialized:M.MCP_MISSING_LAUNCH_SERIALIZED,contentHash:el}}function nl(e){let t=ss(e);return e.kind==="url"?{kind:"url",url:se(e.url),arguments:[],serialized:t,contentHash:Ye(t)}:e.kind==="command"?{kind:"command",command:se(e.command),arguments:[...e.arguments].map(n=>se(n)).sort((n,r)=>n<r?-1:n>r?1:0),serialized:t,contentHash:Ye(t)}:{kind:"unknown",arguments:[],serialized:t,contentHash:Ye(t)}}var rl=/^(https?:\/\/)([^/?#]*@)/i;function ol(e){return e.replace(rl,"$1***@").replace(/([?&](?:access_token|api_key|apikey|auth|authorization|key|password|secret|token)=)([^&]*)/gi,"$1***")}function sl(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 Tt=he(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.PACKAGE_FIELD_MAX=void 0;te.npxExecBin=is;te.packageNameFromSpec=Pt;te.pinnedPackageVersionFromSpec=as;te.pinnedPackageVersionFromNpx=ml;te.npxPackageSpecs=cs;te.PACKAGE_FIELD_MAX=128;var il=/^(?:@[A-Za-z0-9~-][A-Za-z0-9._~-]*\/)?[A-Za-z0-9~-][A-Za-z0-9._~-]*$/,al=new Set(["-p","--package"]),cl=new Set(["-c","--call"]),ul=new Set(["--registry","--userconfig","--globalconfig","--prefix","--cache","--node-options","--workspace","-w","--loglevel"]),ll=new Set(["-y","--yes","-n","--no","-q","-s","--quiet","--silent","--offline","--prefer-offline","--prefer-online","--ignore-existing","--ignore-scripts","--legacy-peer-deps","--foreground-scripts"]),dl=/^--no-/;function pl(e){return ll.has(e)||dl.test(e)}function is(e){let n=(e.replace(/\\/g,"/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="npx"?"npx":n==="npm"?"npm":null}var fl=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function Pt(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 il.test(n)?n:null}function as(e){let t=Pt(e);if(t===null||!e.startsWith(`${t}@`))return;let n=e.slice(t.length+1);return fl.test(n)?n:void 0}function ml(e,t){for(let n of cs(e,t)){let r=as(n);if(r!==void 0)return r}}function cs(e,t){let n=is(e);if(n===null)return[];let r=[...t];if(n==="npm"){let i=r[0]?.toLowerCase();if(i!=="exec"&&i!=="x")return[];r=r.slice(1)}let o=[],s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(cl.has(u))return[];if(al.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&o.push(l),c===-1&&(i+=1);continue}if(!(c!==-1||pl(u))){if(ul.has(u)){i+=1;continue}return[]}}return o.length>0?o.every(i=>Pt(i)!==null)?o:[]:s===null||Pt(s)===null?[]:[s]}});var us=he(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.McpPackageEcosystem=void 0;Re.resolveMcpPackageIdentity=Tl;var gl=Ot(),Un=Tt();Re.McpPackageEcosystem={NPM:"npm",PYPI:"pypi"};var _l=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/,hl=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,Sl=/^(?:\d+!)?\d+(?:\.\d+)*(?:(?:a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?(?:\+[0-9A-Za-z]+(?:[.][0-9A-Za-z]+)*)?$/;function El(e){let n=(e.replaceAll("\\","/").split("/").pop()??"").replace(/\.(cmd|exe|bat|ps1)$/i,"").toLowerCase();return n==="uvx"||n==="uv"||n==="pipx"?n:null}var yl=new Set(["--from","--spec"]),Rl=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"]),Cl=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"]),Il=/^--no-/;function Al(e,t){let n=El(e);if(n===null)return null;let r=[...t];if(n==="uv"){if(r[0]?.toLowerCase()!=="tool"||r[1]?.toLowerCase()!=="run")return null;r=r.slice(2)}else if(n==="pipx"){if(r[0]?.toLowerCase()!=="run")return null;r=r.slice(1)}let o=null,s=null;for(let i=0;i<r.length;i+=1){let a=r[i]??"";if(a==="--"){s=r[i+1]??null;break}if(!a.startsWith("-")){s=a;break}let c=a.indexOf("="),u=c===-1?a:a.slice(0,c);if(yl.has(u)){let l=c===-1?r[i+1]:a.slice(c+1);l!==void 0&&l.length>0&&(o=l),c===-1&&(i+=1);continue}if(!(c!==-1||Cl.has(u)||Il.test(u))){if(Rl.has(u)){i+=1;continue}return null}}return o??s}function Ol(e){if(e.length===0||e.length>Un.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!hl.test(r)||!Sl.test(o)?null:{ecosystem:Re.McpPackageEcosystem.PYPI,packageName:r,version:o}}function Pl(e){let t=(0,Un.packageNameFromSpec)(e);if(t===null||!e.startsWith(`${t}@`))return null;let n=e.slice(t.length+1);return _l.test(n)?{ecosystem:Re.McpPackageEcosystem.NPM,packageName:t,version:n}:null}function Tl(e){if(e?.kind!=="command"||(0,gl.launchContainsCredentials)(e))return;for(let n of(0,Un.npxPackageSpecs)(e.command,e.arguments)){let r=Pl(n);if(r!==null)return r}let t=Al(e.command,e.arguments);if(t!==null)return Ol(t)??void 0}});var gs=he(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.EMPTY_NPM_PUBLISHER=void 0;ie.isNpmRegistryPublisher=xl;ie.displayPublisherName=bl;ie.classifyMcpProvenance=Hl;var ps=Ot(),Dn=Tt();ie.EMPTY_NPM_PUBLISHER="npm:";var ls="npm:",kl=/^[A-Za-z0-9._-]+$/;function xl(e){return e.startsWith(ls)&&e!==ie.EMPTY_NPM_PUBLISHER&&kl.test(e.slice(ls.length))}function bl(e){if(!(e==null||e===""||e===ie.EMPTY_NPM_PUBLISHER))return e}function ds(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 Nl(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 Fn(e){return e.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}function Ml(e){let t=Fn(e),n=Nl(t);return t==="localhost"||t.endsWith(".localhost")||t==="::1"||t.endsWith(".local")||!t.includes(".")&&!t.includes(":")||ds(t)||n!==void 0&&ds(n)||/^(?:fc|fd)[0-9a-f]{2}:/i.test(t)||/^fe[89ab][0-9a-f]:/i.test(t)}function wl(e){let t=Fn(e);return t.includes(":")||/^[0-9.]+$/.test(t)||t.split(".").filter(Boolean).length<2?null:t}function vl(e){let t=Fn(e.hostname),n=t.includes(":")?`[${t}]`:t,r=e.port?`:${e.port}`:"";return`${e.protocol}//${n}${r}`}function fs(e){let t={kind:"url",url:e};if((0,ps.launchContainsCredentials)(t))return{origin:"UNKNOWN"};try{let n=new URL(e);if(!["http:","https:"].includes(n.protocol)||Ml(n.hostname))return{origin:"UNKNOWN"};let r=wl(n.hostname);return{origin:"THIRD_PARTY",...r===null?{}:{publisherName:r},packageSourceUrl:vl(n)}}catch{return{origin:"UNKNOWN"}}}var ms="mcp-remote";function Ll(e,t){if(e===ms)return t.find(n=>/^https?:\/\//i.test(n))}function Ul(e,t){return{origin:"THIRD_PARTY",...t?{publisherName:t}:{},packageName:e,packageKey:e}}function Dl(e,t,n){let r=Ll(e,t);return r!==void 0?fs(r):e===ms?{origin:"UNKNOWN"}:Ul(e,n)}function Fl(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 Hl(e){let t=e.launch;if(t===void 0||t.kind==="unknown")return{origin:"UNKNOWN"};if((0,ps.launchContainsCredentials)(t))return{origin:"UNKNOWN"};if(t.kind==="url")return fs(t.url);let r=(0,Dn.npxPackageSpecs)(t.command,t.arguments)[0];if(r!==void 0){let o=(0,Dn.packageNameFromSpec)(r);if(o===null)return{origin:"UNKNOWN"};let s=Dl(o,t.arguments,e.publisherName),i=typeof e.packageName=="string"?(0,Dn.packageNameFromSpec)(e.packageName):null;return i!==null&&i===o&&s.packageName!==void 0?{...s,packageName:i,packageKey:i}:s}return Fl(t.command)?{origin:"INTERNAL"}:{origin:"UNKNOWN"}}});var _s=he(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.parseFrontmatterField=X.parseFrontmatterDescription=X.usableCatalogText=void 0;var jl=/^(?:>|\|)[-+]?$/,$l=/^(?:>|\|)[-+]?(?:\s+(.*))?$/,Kl=e=>{let t=e?.trim()??"";if(!(t.length===0||jl.test(t)))return t};X.usableCatalogText=Kl;var Bl=e=>(0,X.parseFrontmatterField)(e,"description");X.parseFrontmatterDescription=Bl;var Gl=(e,t)=>{let n=/^---\s*\n([\s\S]*?)\n---/.exec(e);if(n)return Vl(n[1],t)};X.parseFrontmatterField=Gl;var zl=e=>e.replace(/^["']|["']$/g,"");function Vl(e,t){let n=e.split(`
5
+ `),r=`${t}:`,o=n.findIndex(d=>d===r||d.startsWith(`${r} `)||d.startsWith(`${r} `));if(o<0)return;let s=(n[o]??"").slice(r.length).trim(),i=$l.exec(s);if(!i){let d=zl(s).trim();return(0,X.usableCatalogText)(d)}let a=[];for(let d=o+1;d<n.length;d+=1){let g=n[d]??"";if(g.trim()===""){a.push("");continue}if(g.length===g.trimStart().length)break;a.push(g)}let c=a.reduce((d,g)=>g.trim()===""?d:Math.min(d,g.length-g.trimStart().length),Number.POSITIVE_INFINITY),u=[],l=i[1]?.trim();l&&u.push(l);for(let d of a)u.push(d.trim()===""?"":d.slice(c));for(;u.length>0&&u[u.length-1]==="";)u.pop();let m=s.startsWith(">")?u.join(`
6
6
  `).split(/\n{2,}/).map(d=>d.split(`
7
7
  `).map(g=>g.trim()).filter(Boolean).join(" ")).filter(d=>d.length>0).join(`
8
8
 
9
9
  `):u.join(`
10
- `).trimEnd();return(0,J.usableCatalogText)(m)}});var As=he(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=T.COMPONENT_INSPECTION_TEXT_MAX_BYTES=T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=void 0;T.fitSnapshotInspectionTextBudget=Yl;T.capComponentTextBytes=Cs;T.prepareComponentInspectionText=Jl;T.redactComponentSource=jn;T.componentSourceContainsRedactableSecret=ld;T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";T.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function Yl(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<=T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES?(t+=s,n):{...n,skill:{...r.skill,inspectionText:void 0}}})}function Cs(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 Jl(e){if(!(e==null||e.length===0))return Cs(jn(e),T.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var Xl="(?:[A-Za-z0-9_.-]*(?:passwd|password|secret|token|credential|credentials|apikey|api[_-]?key|access[_-]?key|secret[_-]?key|private[_-]?key|auth|authorization|session[_-]?id)[A-Za-z0-9_.-]*)",Zl=new RegExp(`(\\b${Xl})(\\s*[:=]\\s*)(?:(")([^"\\n]*)(")|(')([^'\\n]*)(')|([^\\s"'][^"'\\n]*))`,"gi"),ql=[/^(?:none|null|nil|n\/a|empty|unset|not (?:required|needed|set)|no (?:password|token|auth))(?=$|[\s.,;:()—–-])/i,/^\$\{?[A-Za-z_][A-Za-z0-9_]*\}?$/,/^\$\(.*\)$/,/^\$\{\{.*\}\}$/,/^%[A-Za-z_][A-Za-z0-9_]*%$/,/^(?:process\.env|os\.environ|import\.meta\.env)\.[A-Za-z_][A-Za-z0-9_]*[,;]?$/,/^<[^<>]*>$/,/^(?:\*{3,}|\.{3,}|…|x{3,})$/i,/^your[-_ ]/i,/^(?:see|from|via|stored in|use|ask|obtain|get|fetch|run|read|provided by|generated by)\b/i];function Hn(e){let t=e.trim().replace(/^`+|`+$/g,"").trim();return ql.some(n=>n.test(t))}function Ql(e){if(e.startsWith("$(")){let n=0;for(let r=1;r<e.length;r+=1)if(e[r]==="("&&(n+=1),e[r]===")"&&(n-=1,n===0))return e.slice(0,r+1);return e}return/^(?:\$\{\{[^}]*\}\}|<[^<>]*>)/.exec(e)?.[0]??/^\S+/.exec(e)?.[0]??""}var ed=[/\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],td=/\b[A-Za-z0-9_+/-]{32,}={0,2}\b/g,nd=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function rd(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);let n=0;for(let r of t.values()){let o=r/e.length;n-=o*Math.log2(o)}return n}function od(e){return e.replace(td,t=>{if(nd.test(t))return t;let n=/[A-Za-z]/.test(t),r=/\d/.test(t);return n&&r&&rd(t)>=3.5?T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:t})}var sd=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,id=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,ad=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,cd=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,Rs=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function Is(e){return e.replace(Zl,(t,n,r,o,s,i,a,c,u,l)=>{let p=`${n}${r}`;if(o!==void 0||a!==void 0){let d=o??a??"",g=i??u??"",E=s??c??"";return E===""||E.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(E)?t:`${p}${d}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}${g}`}let m=l??"";if(r==="="){let d=Ql(m).replace(/`+$/,""),g=Is(m.slice(d.length));return d===""||d.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(d)?`${p}${d}${g}`:`${p}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}${g}`}return m.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(m)?t:`${p}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`})}function ud(e){let t=e.replace(id,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(ad,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(sd,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of ed)t=t.replace(n,T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return Is(od(t))}function jn(e){if(e.length===0)return e;let t=e.split(`
11
- `),n=!1;return t.map(o=>n?Rs.test(o)?(n=!1,o):o.trim().length===0?o:T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:cd.test(o)&&!Rs.test(o)?(n=!0,o):ud(o)).join(`
12
- `)}function ld(e){return jn(e)!==e}});var Me=he(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.redactComponentSource=f.prepareComponentInspectionText=f.fitSnapshotInspectionTextBudget=f.componentSourceContainsRedactableSecret=f.capComponentTextBytes=f.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=f.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=f.COMPONENT_INSPECTION_TEXT_MAX_BYTES=f.usableCatalogText=f.parseFrontmatterField=f.parseFrontmatterDescription=f.isNpmRegistryPublisher=f.EMPTY_NPM_PUBLISHER=f.displayPublisherName=f.classifyMcpProvenance=f.resolveMcpPackageIdentity=f.McpPackageEcosystem=f.pinnedPackageVersionFromSpec=f.pinnedPackageVersionFromNpx=f.packageNameFromSpec=f.npxPackageSpecs=f.npxExecBin=f.PACKAGE_FIELD_MAX=f.serializeMcpLaunchIdentity=f.projectMcpMissingLaunchIdentity=f.projectMcpLaunchIdentity=f.normalizeMcpToolNames=f.MCP_MISSING_LAUNCH_SERIALIZED=f.MCP_LAUNCH_IDENTITY_ALGORITHM=f.maskMcpLaunchForDisplay=f.launchContainsCredentials=f.hashMcpLaunchIdentity=f.foldMcpName=f.buildMcpFamilyCanonicalKey=f.ComponentKind=void 0;f.userConfigRootFromPath=yd;f.installationRootExternalKey=Rd;f.normalizeRepositoryRelativePath=Os;f.nativeKeyForSkillPath=Cd;f.nativeKeyForRulePath=Id;f.nativeKeyForCommandPath=Ad;f.serializeComponentIdentity=Ts;f.buildComponentReference=Pd;f.validateComponentReference=Td;var dd=sn("node:crypto"),pd=sn("node:path"),fd="cmp1_",md=/^cmp1_[A-Za-z0-9_-]{43}$/,gd=["/skills/","/skills-cursor/"],_d=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,hd=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,Ed=[".cursor",".claude",".codex"],Sd={".claude.json":".claude",".agents":".codex"};f.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function yd(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>Ed.includes(o));return n||(t.map(o=>Sd[o]).find(o=>o!==void 0)??"unknown")}function Rd(e,t){return`runtime-install:${e}/${t}`}function kt(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function Os(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=pd.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return kt(n,"sourcePath")}function Cd(e){let t=e.replaceAll("\\","/");for(let n of gd){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Ps(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 Id(e){return Ps(e,_d,/\.(mdc|md|rules)$/i)}function Ad(e){return Ps(e,hd,/\.(md|mdc|toml)$/i)}function Od(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Ts(e){let t=[kt(e.installationRootExternalKey,"installationRootExternalKey"),kt(e.installableKind,"installableKind"),Os(e.sourcePath),kt(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Od).join("|")}`,"utf8")}function Pd(e){let t=(0,dd.createHash)("sha256").update(Ts(e)).digest("base64url");return`${fd}${t}`}function Td(e){return md.test(e)}var X=Ot();Object.defineProperty(f,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return X.buildMcpFamilyCanonicalKey}});Object.defineProperty(f,"foldMcpName",{enumerable:!0,get:function(){return X.foldMcpName}});Object.defineProperty(f,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return X.hashMcpLaunchIdentity}});Object.defineProperty(f,"launchContainsCredentials",{enumerable:!0,get:function(){return X.launchContainsCredentials}});Object.defineProperty(f,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return X.maskMcpLaunchForDisplay}});Object.defineProperty(f,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return X.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(f,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return X.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(f,"normalizeMcpToolNames",{enumerable:!0,get:function(){return X.normalizeMcpToolNames}});Object.defineProperty(f,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return X.projectMcpLaunchIdentity}});Object.defineProperty(f,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return X.projectMcpMissingLaunchIdentity}});Object.defineProperty(f,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return X.serializeMcpLaunchIdentity}});var Ne=Tt();Object.defineProperty(f,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return Ne.PACKAGE_FIELD_MAX}});Object.defineProperty(f,"npxExecBin",{enumerable:!0,get:function(){return Ne.npxExecBin}});Object.defineProperty(f,"npxPackageSpecs",{enumerable:!0,get:function(){return Ne.npxPackageSpecs}});Object.defineProperty(f,"packageNameFromSpec",{enumerable:!0,get:function(){return Ne.packageNameFromSpec}});Object.defineProperty(f,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return Ne.pinnedPackageVersionFromNpx}});Object.defineProperty(f,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return Ne.pinnedPackageVersionFromSpec}});var ks=fs();Object.defineProperty(f,"McpPackageEcosystem",{enumerable:!0,get:function(){return ks.McpPackageEcosystem}});Object.defineProperty(f,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return ks.resolveMcpPackageIdentity}});var xt=Ss();Object.defineProperty(f,"classifyMcpProvenance",{enumerable:!0,get:function(){return xt.classifyMcpProvenance}});Object.defineProperty(f,"displayPublisherName",{enumerable:!0,get:function(){return xt.displayPublisherName}});Object.defineProperty(f,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return xt.EMPTY_NPM_PUBLISHER}});Object.defineProperty(f,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return xt.isNpmRegistryPublisher}});var Kn=ys();Object.defineProperty(f,"parseFrontmatterDescription",{enumerable:!0,get:function(){return Kn.parseFrontmatterDescription}});Object.defineProperty(f,"parseFrontmatterField",{enumerable:!0,get:function(){return Kn.parseFrontmatterField}});Object.defineProperty(f,"usableCatalogText",{enumerable:!0,get:function(){return Kn.usableCatalogText}});var me=As();Object.defineProperty(f,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return me.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(f,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return me.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(f,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return me.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(f,"capComponentTextBytes",{enumerable:!0,get:function(){return me.capComponentTextBytes}});Object.defineProperty(f,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return me.componentSourceContainsRedactableSecret}});Object.defineProperty(f,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return me.fitSnapshotInspectionTextBudget}});Object.defineProperty(f,"prepareComponentInspectionText",{enumerable:!0,get:function(){return me.prepareComponentInspectionText}});Object.defineProperty(f,"redactComponentSource",{enumerable:!0,get:function(){return me.redactComponentSource}})});import{existsSync as kc,readFileSync as xc}from"node:fs";import{hostname as no,userInfo as bc}from"node:os";import{randomBytes as Rc}from"node:crypto";import{existsSync as cn,mkdirSync as Cc,readdirSync as Ic,readFileSync as Ac,renameSync as Jr,statSync as qr,unlinkSync as Xr,writeFileSync as Oc}from"node:fs";import{basename as Pc,dirname as Zr,join as Qr,relative as Tc}from"node:path";function h(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
13
- `)}function Z(e,t){Cc(Zr(e),{recursive:!0});let n=Qr(Zr(e),`.${Pc(e)}.${process.pid}.${Rc(4).toString("hex")}.tmp`);try{Oc(n,t,"utf8");try{Jr(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Xr(e),Jr(n,e);return}throw r}}catch(r){try{Xr(n)}catch{}throw r}}function ft(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function eo(){process.stdout.write('{"continue":true}')}function I(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function un(){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 ln(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 Y(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,u=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:u,spawnFailed:u===void 0}}}async function v(e,t,n=3e3,r={}){let o=await Y(e,t,n,r);return o.ok?o.stdout:""}async function dn(e=process.cwd()){let t=await Y("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(I("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;h(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=I("CURSOR_PROJECT_DIR")??I("CLAUDE_PROJECT_DIR");if(n&&cn(n)){let r=await Y("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 pn(e=process.cwd()){return(await dn(e)).root}function j(e,t){try{return JSON.parse(e)}catch{return t}}var an=new Map;function D(e,t){let n=an.get(e);if(n!==void 0)return n;try{let r=j(Ac(e,"utf8"),t);return an.set(e,r),r}catch{return an.set(e,t),t}}function Ee(e){return typeof e=="string"?e:""}function re(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 _(e,t){let n=re(e,t);return typeof n=="string"?n:""}var ue=500;function to(e,t=2){if(!cn(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Ic(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=Qr(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:Tc(e,u),size:qr(u).size})}catch{continue}if(n.length>=ue){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function fn(e){return cn(e)?{present:!0,size:qr(e).size}:{present:!1,size:0}}function Pe(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function mn(e=process.env){return Pe(b("CURSOR_SANDBOX",e))}var Nc=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Mc(e){return Nc.some(t=>!!b(t,e))}function wc(e){if(b("KUBERNETES_SERVICE_HOST",e)||Pe(b("REMOTE_CONTAINERS",e))||Pe(b("DEVCONTAINER",e)))return!0;try{if(kc("/.dockerenv")||xc("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function ro(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!b(t,e))}function vc(e,t=process.platform){return ro(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!b(n,e)):!1}function Lc(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Uc(e){return e==="linux"}function b(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return I(e)}function Dc(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Fc(b("CURSOR_VERSION",n))}function Fc(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function gn(e){if(Lc(e.sessionId))return!0;let t=e.hostname??no(),n=e.osUser??oo(e.env);return Dc(t,n,e.env)}function Hc(e){return Pe(b("CURSOR_AGENT",e.env))?!0:gn(e)}function jc(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(b("TERM",e)??b("TERM_PROGRAM",e))||(b("SSH_TTY",e)??b("SSH_CONNECTION",e))||(b("__CFBundleIdentifier",e)??b("XPC_SERVICE_NAME",e))||ro(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!b(t,e))||b("SESSIONNAME",e))}function Ke(e={}){let t=e.env;if(b("GITHUB_ACTIONS",t))return"github_actions";if(Pe(b("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!vc(t,n)&&Hc(e)&&(Pe(b("CURSOR_AGENT",t))||Uc(n)))return"cursor_cloud";if(b("CODESPACES",t)||b("CODESPACE_NAME",t))return"codespaces";if(b("GITLAB_CI",t))return"gitlab_ci";if(Mc(t))return"managed";let r=b("CI",t);return r&&r!=="false"&&r!=="0"?"managed":wc(t)?"container":jc(t)?"interactive":"unknown"}async function _n(){return await v("systemd-detect-virt",[],1e3)}function oo(e=process.env,t=bc){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 hn(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await v("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 v("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await v("uname",["-r"],1e3))}else t=await v("ver",[],1e3);let n=oo(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await v("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 $e(){return no()}import{createHash as Kc}from"node:crypto";import{homedir as $c}from"node:os";import{dirname as uh,join as Bc,parse as lh,resolve as dh}from"node:path";var io="https://hooks.ev-ai.ai",ao=".claude/ev-ai-runtime-report.json",co="config.json",ph=1024*1024,Gc=new Set(["localhost","127.0.0.1","[::1]","::1"]),zc=["claude","cursor","codex"],uo=[ao,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],En=/^[A-Za-z0-9._~-]+$/;function gt(e){return e!==void 0&&zc.includes(e)}function mt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Be(e){let t,n,r,o,s;for(let i=0;i<e.length;i++){let a=e[i];if(a!==void 0){if(a==="--runner"){let c=mt(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=mt(e,i);c.value&&(r=c.value),i=c.next;continue}if(a.startsWith("--url=")){r=a.slice(6);continue}if(a==="--token"){let c=mt(e,i);c.value&&(o=c.value),i=c.next;continue}if(a.startsWith("--token=")){o=a.slice(8);continue}if(a==="--base-url"){let c=mt(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:gt(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function _t(e,t=io){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function Sn(e=$c()){return Bc(e,".ev-ai",co)}function lo(e,t){return{...e,...t}}function so(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 Ge(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Gc.has(t.hostname):!1}catch{return!1}}function yn(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 Rn(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!Ge(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=yn(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!En.test(n))return`org token must match ${En.source} (got: ${n})`;if(so(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(so(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function po(e){return new URL(e).toString()}function Cn(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?_t(n):""}function ht(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 fo(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=_t(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Rn(n);return r?{problem:r}:{url:po(n)}}function mo(e){if(Rn(e))return;let t;try{t=new URL(e)}catch{return}let n=yn(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 Kc("sha256").update(i).digest("hex").slice(0,32)}var St=2;var go="EV_AI_LAUNCHER_VERSION";var _o="EV_AI_HOOK_SOURCE",ho="EV_AI_HOOK_FALLBACK_REASON",Eo="EV_AI_LAUNCHER_SCOPE",So="EV_AI_LAUNCHER_READY_FD";var Et="ev-ai-agent-hook";function Vc(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function yo(e){let t=Vc(e);return t===Et||t===`${Et}.exe`}var mh=`current/${Et}`,gh=`.ev-ai/agent-hook/${Et}`,Ro=5e3,Co=5e3,In=3e3;var An=3e3,Io=1500,Ao=4*1024,On=256*1024,Wc=4*1024,Oo=32*1024,ze=840*60*1e3,Pn="1.2.2",_h=`@ev-ai/agent-hook@${Pn}`;import{createHash as op}from"node:crypto";import{existsSync as sp,mkdirSync as ip,readdirSync as ap,readFileSync as Qs,unlinkSync as ei,writeFileSync as cp}from"node:fs";import{homedir as ti}from"node:os";import{join as Xn}from"node:path";import{createHash as bo,randomBytes as Xc}from"node:crypto";import{existsSync as No,mkdirSync as Tn,readFileSync as Mo,unlinkSync as wo,writeFileSync as vo}from"node:fs";import{homedir as kn}from"node:os";import{dirname as yt,join as xn,resolve as Zc}from"node:path";var Yc=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Jc=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function G(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||Jc.has(n)||r.includes("[bot]")||Yc.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var qc="installation.json",Qc="cloud-bootstrap.lock",eu=6e4;function Lo(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function oe(e=kn()){return xn(e,".ev-ai","agent-hook")}function tu(e=kn()){return xn(oe(e),qc)}function Uo(e){return xn(yt(e),Qc)}function Do(){return Xc(8).toString("hex")}function Te(e){return bo("sha256").update(e).digest("hex").slice(0,16)}function A(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function Fo(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function nu(e=process.env){let t=A(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!Fo(t)){h(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Ho(e,t){return e&&Fo(e)?e:(e&&h(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),nu(t))}function ru(e){return/^[0-9a-f]{16}$/.test(e)}function ou(e=process.env){if(A(e.GITHUB_ACTIONS)){let t=A(e.GITHUB_REPOSITORY_ID)??A(e.GITHUB_REPOSITORY),n=A(e.GITHUB_ACTOR)??A(e.GITHUB_TRIGGERING_ACTOR)??A(e.GITHUB_USER);if(t&&n)return Te(`github_actions|${t}|${n}`)}if(A(e.CODESPACES)||A(e.CODESPACE_NAME)){let t=A(e.CODESPACE_NAME);if(t)return Te(`codespaces|${t}`);let n=A(e.GITHUB_REPOSITORY_ID)??A(e.GITHUB_REPOSITORY),r=A(e.GITHUB_USER)??A(e.GITHUB_ACTOR);if(n&&r)return Te(`codespaces|${n}|${r}`)}if(A(e.GITLAB_CI)){let t=A(e.CI_PROJECT_ID)??A(e.CI_PROJECT_PATH),n=A(e.GITLAB_USER_LOGIN)??A(e.GITLAB_USER_EMAIL)??A(e.GITLAB_USER_NAME);if(t&&n)return Te(`gitlab|${t}|${n}`)}return null}var su="cursoragent@cursor.com";function iu(e){let t=A(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===su?null:t}function au(e,t){return A(e.CURSOR_PROJECT_DIR)??A(e.CLAUDE_PROJECT_DIR)??t}function cu(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1").replace(/\.git$/i,"").toLowerCase()}async function uu(e){let t=await v("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?cu(t):e}async function lu(e){let t=A(await v("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!G(null,t))return t;let n=A(await v("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!G(null,n)?n:null}function du(e,t){let n=au(e,t);return n?Te(`cursor_cloud|${n}|${iu(e)??""}`):null}async function pu(e,t){let n=A(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await uu(n),o=await lu(n);return Te(`claude_remote|${r}|${o??""}`)}function Po(e,t){let n=Ho(e,t);if(n)return n;let r=ou(t);return r||Do()}async function fu(e){let n=await v("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Zc(e);return bo("sha256").update(n).digest("hex").slice(0,16)}function mu(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 gu(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=mu(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 Se(e){if(No(e))try{return gu(Mo(e,"utf8"))}catch{}}function bn(e){return Se(e)}function jo(e,t,n){let r=Se(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{Z(e,`${JSON.stringify(o,null,2)}
14
- `)}catch(s){let i=s instanceof Error?s.message:String(s);h(`WARN: operator identity cache write failed open: ${i}`)}}function Ko(e,t=Date.now()){if(!e)return!0;if(Se(e)?.operator_identity_hash)return!1;let n=Uo(e);try{if(No(n)){let r=Number.NaN;try{r=Number(Mo(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<eu)return!1;try{wo(n)}catch{}}}catch{}try{return Tn(yt(n),{recursive:!0}),vo(n,`${t}
15
- `,{encoding:"utf8",flag:"wx"}),!0}catch(r){if(zo(r))return!1;let o=r instanceof Error?r.message:String(r);return h(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function $o(e){if(e)try{wo(Uo(e))}catch{}}function Bo(e,t){let r=Se(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function Go(e,t,n){if(!n)return;let r=Se(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{Z(e,`${JSON.stringify(o,null,2)}
16
- `)}catch(s){let i=s instanceof Error?s.message:String(s);h(`WARN: platform_agent_id cache write failed open: ${i}`)}}function zo(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function _u(e,t){Tn(yt(e),{recursive:!0}),vo(e,`${JSON.stringify(t,null,2)}
17
- `,{encoding:"utf8",flag:"wx"})}function To(e,t){try{return _u(e,t),t}catch(n){if(!zo(n))throw n;return Se(e)}}function ko(e,t){Tn(yt(e),{recursive:!0}),Z(e,`${JSON.stringify(t,null,2)}
18
- `)}function xo(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function Vo(e,t={}){let n=t.home??kn(),r=t.env??process.env,o=await fu(e),s=tu(n),i={sessionId:t.sessionId,hostname:A(r.HOSTNAME)??void 0,osUser:A(r.USER)??A(r.LOGNAME)??A(r.USERNAME)??void 0,env:r},a=Ke(i),c=Ho(t.overrideId,r),u=a==="cursor_cloud"&&gn(i)?du(r,e):a==="claude_remote"?await pu(r,e):null,l=Se(s);if(l){let E=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(E={...l,pinned:!0},ko(s,E)),!!u&&u!==E.installation_id&&!c&&E.pinned!==!0&&ru(E.installation_id)&&u){let y={installation_id:u,...E.platform_agent_ids?{platform_agent_ids:E.platform_agent_ids}:{}};return ko(s,y),{installationId:u,storePath:s,repoKey:o}}return{installationId:E.installation_id,storePath:s,repoKey:o}}let p=c??u??Po(void 0,r),m=To(s,xo(p,c));if(m)return{installationId:m.installation_id,storePath:s,repoKey:o};let d=c??u??Po(void 0,r),g=To(s,xo(d===p?Do():d,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 wu}from"node:fs";import{existsSync as Iu}from"node:fs";import{homedir as Jo}from"node:os";import{join as Au}from"node:path";import{existsSync as hu,readdirSync as Wo}from"node:fs";import{homedir as Rt}from"node:os";import{join as $}from"node:path";function Eu(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return $(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Su(e=process.platform){let t=Eu(e),n=[$(t,"managed-settings.json")],r=$(t,"managed-settings.d");try{if(!hu(r))return n;let o=Wo(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>$(r,s));n.push(...o)}catch{}return n}function Nn(e=process.platform,t=Rt()){return{serverManaged:$(t,".claude","remote-settings.json"),fileBased:Su(e)}}function yu(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return $(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function Ru(e=process.platform,t=Rt()){let n=[$(yu(e),"hooks.json")],r=$(t,".cursor","managed");try{for(let o of Wo(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push($(r,o.name,"hooks.json"))}catch{}return n}function Cu(e=process.platform,t=Rt()){let n=e==="win32"?$(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[$(n,"requirements.toml")];return e!=="win32"&&r.push($(n,"managed_config.toml")),r.push($(t,".codex","managed_config.toml"),$(n,"config.toml")),r}function Ct(e,t=process.platform,n=Rt()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Nn(t,n);return[r,...o]}case"cursor":return Ru(t,n);default:return Cu(t,n)}}function Xo(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Ou={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/cli-config.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"]}},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 Yo(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Pu(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:Yo(n.mcpJson,t.mcpJson),mcpToml:Yo(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Zo(e){return Object.fromEntries(Object.entries(Ou).map(([t,n])=>[t,Pu(n,n[e])]))}var ke=Zo("homeOnly"),de=Zo("projectOnly");function Tu(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function ku(e,t){return Tu(e).some(n=>Iu(Au(t,n)))}function qo(e,t){for(let n of e)if(ku(n,t))return!0;return!1}function le(e){return[...new Set(e)]}function pe(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let u of c.dirs)u.kind==="SUBAGENT"?n.push(u.dir):u.kind==="COMMAND"?r.push(u.dir):o.push(u.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:le(t),subagents:le(n),commands:le(r),rules:le(o),memory:le(s),settings:le(i),mcp:le(a)}}function xu(e,t=Jo(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Ct(o.managed,n,t));return le(r)}var fe=pe(Object.values(ke));function Qo(e=Jo(),t=process.platform){return xu(Object.values(ke),e,t)}import{existsSync as bu}from"node:fs";import{resolve as Mn}from"node:path";function z(e){return Mn(e).replaceAll("\\","/").replace(/\/$/,"")}function ye(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 It(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 Nu=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Ve(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!Nu.test(t)?null:t}function xe(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=z(o);n.has(s)||(n.add(s),r.push(s))}return r}function Mu(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function q(e,t,n,r=bu){for(let o of e)for(let s of t){let i=z(Mn(o,s)),a=Mn(o,s,n).replaceAll("\\","/");if(Mu(i,a)&&r(a))return a}return null}var ts=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,ns=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,vu=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,es=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"]),Lu=/^[a-z][a-z0-9-]{1,63}$/,Uu=[".cursor/skills",".claude/skills",".agents/skills"],Du=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],Fu=ye(Uu,pe(Object.values(de)).skills),Hu=ye(Du,pe(Object.values(ke)).skills),ju=new Set(["read","read_file","view"]),Ku=new Set(["bash","shell","zsh"]);function wn(e){let t=e.replace(/\\/g,"/");return ts.exec(t)?.[1]??null}function $u(e){let t=e.replace(/\\/g,"/"),r=ns.exec(t)?.[1];return r?r.toLowerCase():null}function Bu(e){return wn(e)??$u(e)}function Gu(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 At(e){return typeof e=="string"?At(j(e,null)):!e||typeof e!="object"?null:Gu(e)}function rs(e){if(typeof e=="string")return rs(j(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function vn(e){let t=rs(e.tool_input);if(t)return t;let n=Ee(e.command);return n.length>0?n:null}function zu(e){let t=e.replace(/\\/g,"/"),n=ts.exec(t);if(n?.[1])return n[1];let o=ns.exec(t)?.[1];return o?o.toLowerCase():null}function Vu(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Ln(e){let t=At(e.tool_input)??Ee(e.file_path);return t.length>0?t:null}function We(e,t,n){let r=Vu(e).toLowerCase();if(ju.has(r)){let o=Ln(e);return o?t(o):null}if(Ku.has(r)){let o=vn(e);return o?n(o):null}return null}function os(e){return We(e,Bu,zu)}function Wu(e){let t=new Set,n=[];for(let r of e.matchAll(vu)){let o=r[1]?.toLowerCase();!o||t.has(o)||Yu(o)||(t.add(o),n.push(o))}return n}function Yu(e){let t=e.split("/")[0];return es.has(e)||t!==void 0&&es.has(t)}function ss(e){let t=e.skillId.toLowerCase();if(!Lu.test(t))return null;let n=e.exists??wu,r=`${t}/SKILL.md`,o=q(xe(e.launchCwd,e.gitRoot),Fu,r,n);return o!==null?o:e.home?q([z(e.home)],Hu,r,n):null}function Ju(e){return Ee(e.prompt)}function is(e){let t=_(e,"command_name");if(t){let r=_(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Ju(e);return n?Wu(n):[]}var $n=je(Me(),1);import{existsSync as xd}from"node:fs";var Ce={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Je(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function kd(e){if(!e)return"";let t=e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1");t=t.replace(/\.git$/i,"");let n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Je(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Je(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Je(o[1]):Je(t)}async function Xe(e=process.cwd()){let t=await Y("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([Y("git",["remote","get-url","origin"],2e3,{cwd:e}),Y("git",["branch","--show-current"],2e3,{cwd:e}),Y("git",["rev-parse","HEAD"],2e3,{cwd:e}),Y("git",["status","--porcelain"],2e3,{cwd:e})]),i=n.ok?n.stdout:null;return{remote:i===null?null:i.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1"),branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function xs(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=Ce[n];if(!a)return"";let c=Lo(n,e.scope_path,i);if(s){let g=Bo(s,c);if(g)return g}let u=o??await Xe(r),l=u?.remote?kd(u.remote):"";if(l||(l=Je(process.env.GITHUB_REPOSITORY??"")),!l)return"";let p=e.scope_path??"",m=p?`${p}/`:"",d=`${l}:${m}${a}`;return s&&Go(s,c,d),d}var bd=[".cursor/rules",".claude/rules",".codex/rules"],Nd=pe(Object.values(de)).rules;function Md(e){return ye(It(e?Ce[e]:void 0,bd),Nd)}var wd=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function bs(e){let t=Ve(e.relativePath);if(!t)return null;let n=e.exists??xd,r=xe(e.launchCwd,e.gitRoot),o=Md(e.runnerPlatform),s=q(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=q(r,["."],t,n);if(i!==null)return i}return e.home?q([z(e.home)],o,t,n):null}function vd(e){let t=e.replace(/\\/g,"/"),r=wd.exec(t)?.[1];return r?(0,$n.nativeKeyForRulePath)(r):null}function Ns(e){return We(e,$n.nativeKeyForRulePath,vd)}function Ms(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function ws(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=Ve(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Bn=je(Me(),1);import{existsSync as Ld}from"node:fs";var Ud=[".cursor/commands",".claude/commands",".codex/prompts"],Dd=pe(Object.values(de)).commands;function Fd(e){return ye(It(e?Ce[e]:void 0,Ud),Dd)}var Hd=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function vs(e){let t=Ve(e.commandId);if(!t)return null;let n=e.exists??Ld,r=`${t}.md`,o=Fd(e.runnerPlatform),s=q(xe(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?q([z(e.home)],o,r,n):null}function jd(e){let t=e.replace(/\\/g,"/"),r=Hd.exec(t)?.[1];return r?(0,Bn.nativeKeyForCommandPath)(r):null}function Ls(e){return We(e,Bn.nativeKeyForCommandPath,jd)}import{existsSync as Ds}from"node:fs";import{homedir as Fs}from"node:os";import{join as Ze,resolve as Gn,sep as Us}from"node:path";function zn(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function Vn(e,t){let n=t.toLowerCase();return zn(e).some(r=>r.toLowerCase()===n)}function bt(e,t,n){if(!Ds(e))return;let r=D(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function Kd(e,t,n){if(!Ds(e))return;let r=D(e,{}),o=Gn(t),s=null;for(let a of Object.keys(r.projects??{})){let c=Gn(a);(o===c||o.startsWith(c.endsWith(Us)?c:c+Us))&&(s===null||c.length>Gn(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 Hs(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"?(bt(Ze(r,".claude.json"),{source:"claude_json_user"},o),Kd(Ze(r,".claude.json"),t,o)):n==="cursor"&&bt(Ze(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),bt(Ze(t,".mcp.json"),{source:"mcp_json"},o),bt(Ze(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function Wn(e,t=process.cwd(),n="claude",r=Fs()){return[...Hs(e,t,n,r).values()].map(o=>o.declared)}function js(e,t,n=process.cwd(),r="claude",o=Fs()){let s=Hs(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if(Vn(a,e))return c.config??null;return null}function Yn(e){let t=fo(e);if(t.problem){h(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function Ks(e,t){if(_(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function $d(){return!!(I("CURSOR_VERSION")??I("CURSOR_PROJECT_DIR"))}function Jn(e,t,n){return e!=="claude"&&e!=="codex"?!1:Ks(t,n)?!0:$d()}function qe(e,t,n,r){if(Ks(e,t))return"cursor";if(gt(r))return r;let o=_(e,"conversation_id"),s=_(e,"turn_id"),i=_(e,"session_id"),a=t.toLowerCase(),c="unknown";return o||t===a&&t!==""?c="cursor":s?c="codex":(i||a==="sessionstart"||a==="sessionend"||a==="stop"||a==="stopfailure"||a==="pretooluse"||a==="posttooluse"||a==="posttoolusefailure"||a==="permissiondenied"||a==="subagentstart"||a==="subagentstop"||a==="userpromptexpansion"||a==="userpromptsubmit")&&(c="claude"),gt(n)&&(c=n),c}function Nt(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function Bd(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 $s(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function Bs(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function Gs(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function zs(e,t,n){let r=_(e,"session_id")||_(e,"conversation_id"),o=_(e,"prompt.id")||_(e,"prompt_id")||_(e,"generation_id")||_(e,"turn_id"),s=_(e,"hook_event_name")||_(e,"event"),i=_(e,"source"),a=qe(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var Gd=["session_start","session_end","tool_invoked","skill_invoked"];function zd(e){return Gd.includes(e)}function Vs(e,t){return e&&zd(e)?e:Bd(t.toLowerCase())}var Vd={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Ws(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Ys(e,t=""){let n=_(e,"tool_name")||_(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Ws(n)&&(n=`MCP:${n}`):n=Vd[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?Ee(o.skill)||Ee(o.skill_name):"")||_(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=os(a);let c=Ns(a),u=Ls(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var Wd=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function Js(e){for(let t of["subagent_type","agent_type"]){let n=_(e,t);if(n&&Wd.test(n))return n}return null}function Xs(e){let t=re(e,"duration_ms");if(typeof t=="number")return t;let n=re(e,"duration");return typeof n=="number"?n:null}var Yd="error",Jd="interrupted",Xd="permission_denied",Zd=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Qe(e){return Zd.test(e)?e:null}function qd(e){for(let t of["failure_type","error_type"]){let n=Qe(_(e,t));if(n)return n}return null}function Zs(e,t){return re(e,"is_interrupt")===!0?Jd:t.toLowerCase()==="permissiondenied"?Xd:qd(e)??Yd}function Qd(e,t){let n=null;for(let r of t)r&&(e===r||e.startsWith(`${r}_`)||e.startsWith(`${r}-`))&&(n===null||r.length>n.length)&&(n=r);return n}function ep(e,t){let n=null;for(let r of t)!r||!Vn(r,e)||(n===null||r.length>n.length)&&(n=r);return n}function tp(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of zn(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:ep(o[1],t)??o[1],mcpTool:o[2]}}function np(e,t){if(/^mcp__/i.test(e))return tp(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:Qd(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function rp(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function qs(e,t=[],n=""){let r=e?np(e,t):{mcpServer:null,mcpTool:null},o=Qe(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Ws(e)&&(s=e),s&&(s=rp(s,o)),{mcpServer:o,mcpTool:s}}var ni=3e4,up="claims",lp=!0,dp=100,pp=new Set(["sessionstart","sessionend","stopfailure"]),fp=["tool_name","tool","command","file_path","url"];function mp(e=ti()){return Xn(oe(e),up)}function ri(e){let t=e.split(`
19
- `,1)[0]??"";return Number(t.trim())}function oi(e){return op("sha256").update(e).digest("hex").slice(0,32)}function gp(e){let t=[];for(let n of fp){let r=_(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":oi(t.join("\0"))}function _p(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=pp.has(n);if(!a&&!c)return;let u=e.runnerPlatform.trim()||"unknown";return oi(`${u}|${t}|${n}|${r}|${o}|${i}|${s}`)}function hp(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function Ep(e,t){return Xn(e,t)}function Sp(e,t=Date.now()){let n;try{n=ap(e)}catch{return}let r=0;for(let o of n){if(r>=dp)break;r+=1;let s=Xn(e,o),i=Number.NaN;try{i=ri(Qs(s,"utf8"))}catch{continue}let a=t-i;if(!(!Number.isFinite(a)||a<0||a<ni))try{ei(s)}catch{}}}function yp(e,t,n=Date.now()){let r=Ep(t,e);try{if(sp(r)){let o=Number.NaN;try{o=ri(Qs(r,"utf8"))}catch{}let s=n-o;if(Number.isFinite(s)&&s>=0&&s<ni)return!1;try{ei(r)}catch{}}}catch{}try{ip(t,{recursive:!0}),cp(r,`${n}
20
- `,{encoding:"utf8",flag:"wx"})}catch(o){if(hp(o))return!1;let s=o instanceof Error?o.message:String(o);return h(`WARN: event claim failed open: ${s}`),!0}return Sp(t,n),!0}function Rp(e,t,n){let r=_(e,"session_id")||_(e,"conversation_id"),o=_(e,"prompt.id")||_(e,"prompt_id")||_(e,"generation_id")||_(e,"turn_id"),s=_(e,"tool_use_id"),i=_(e,"subagent_id")||_(e,"agent_id"),a=qe(e,t,void 0,n),c=gp(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function si(e,t,n,r=ti(),o=Date.now()){if(!lp)return!0;let s=_p(Rp(e,t,n));if(!s)return!0;let i=yp(s,mp(r),o);return!i&&I("EV_AI_HOOK_DEBUG")&&h(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{closeSync as Cp,writeSync as Ip}from"node:fs";var Ap=Buffer.from([1]),ii=So;function ai(e=process.env){let t=e[ii];if(delete e[ii],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{Ip(n,Ap)}catch{}try{Cp(n)}catch{}}}function Zn(e=process.env){let t=e[go];if(!t)return;let n=e[ho],r=e[Eo];return{launcherVersion:t,hookSource:e[_o]??"",fallbackReason:n??void 0,launcherScope:r??void 0}}function ci(e,t){return(e?mo(e):void 0)===t}import{realpathSync as c_}from"node:fs";import{homedir as ec}from"node:os";var P=je(Me(),1);import{existsSync as Op,readFileSync as Pp}from"node:fs";import{homedir as ui}from"node:os";import{join as Tp}from"node:path";var kp="cloud-cache.json",xp=1440*60*1e3,bp=900*1e3;function Np(e=ui()){return Tp(oe(e),kp)}function Mp(e){if(!Op(e))return;let t=j(Pp(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 wp(e,t){try{Z(e,`${JSON.stringify(t)}
21
- `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: cloud cache write failed open: ${r}`)}}function vp(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?bp:xp;return n-e.probed_at<r}async function Lp(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 Up(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 Dp(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 Fp(e){let t=await Promise.allSettled([Lp(e),Up(e),Dp(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function qn(e,t){if(e==="interactive")return null;let n=t?.home??ui(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=Np(n),i=Mp(s);if(vp(i,e,o))return i.result;let a=await Fp(r);return wp(s,{context:e,probed_at:o,result:a}),a}var Hp=["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"],jp=["CURSOR_PROJECT_DIR"],Kp=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function $p(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)Kp.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function Qn(e=process.env){let t=Hp.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:$p(e[r]??"")}:{name:r,present:!1}),n=jp.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as Sf}from"node:os";import{homedir as li}from"node:os";import{join as Bp}from"node:path";function Gp(e=li()){return Bp(e,".claude.json")}function Mt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function di(e=li()){let n=D(Gp(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=Mt(n.emailAddress),o=Mt(n.fullName)??Mt(n.displayName),s=Mt(n.accountUuid),i=r??s;return!i||G(o,r)?null:{git_user_name:null,git_user_email:null,platform_login:i,identity_source:"claude_oauth"}}import{homedir as mi}from"node:os";import{join as pi}from"node:path";var zp="https://api.openai.com/auth";function we(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function gi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Vp(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 gi(r)}catch{return null}}function fi(e,t,n){return we(e[n])??we(t?.[n])}function Wp(e=process.env,t=mi()){let n=we(e.CODEX_HOME)??pi(t,".codex");return pi(n,"auth.json")}function _i(e=process.env,t=mi()){let n=D(Wp(e,t),{}),r=we(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&we(n.OPENAI_API_KEY))return null;let o=we(n.tokens?.id_token);if(!o)return null;let s=Vp(o);if(!s)return null;let i=gi(s[zp]),a=fi(s,i,"name"),c=fi(s,i,"email");return!c||G(a,c)?null:{git_user_name:null,git_user_email:null,platform_login:c,identity_source:"codex_oauth"}}import{homedir as Lt}from"node:os";import{join as ae}from"node:path";import{join as Yp}from"node:path";var Jp="cursor-ide-identity.json",Xp=ze;function Ei(e){return Yp(oe(e),Jp)}function hi(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Si(e){let t=D(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:hi(t.email),auth_id:hi(t.auth_id)}}function yi(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<Xp}function Ri(e,t){try{Z(e,`${JSON.stringify(t)}
22
- `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as Zp}from"node:child_process";import{existsSync as qp}from"node:fs";import{createRequire as Qp}from"node:module";import{pathToFileURL as ef}from"node:url";var Ii=Qp(import.meta.url),wt=`
10
+ `).trimEnd();return(0,X.usableCatalogText)(m)}});var ys=he(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=T.COMPONENT_INSPECTION_TEXT_MAX_BYTES=T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=void 0;T.fitSnapshotInspectionTextBudget=Wl;T.capComponentTextBytes=Ss;T.prepareComponentInspectionText=Yl;T.redactComponentSource=jn;T.componentSourceContainsRedactableSecret=ud;T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER="[REDACTED]";T.COMPONENT_INSPECTION_TEXT_MAX_BYTES=256*1024;T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=3*1024*1024;function Wl(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<=T.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES?(t+=s,n):{...n,skill:{...r.skill,inspectionText:void 0}}})}function Ss(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 Yl(e){if(!(e==null||e.length===0))return Ss(jn(e),T.COMPONENT_INSPECTION_TEXT_MAX_BYTES)}var Jl="(?:[A-Za-z0-9_.-]*(?:passwd|password|secret|token|credential|credentials|apikey|api[_-]?key|access[_-]?key|secret[_-]?key|private[_-]?key|auth|authorization|session[_-]?id)[A-Za-z0-9_.-]*)",Xl=new RegExp(`(\\b${Jl})(\\s*[:=]\\s*)(?:(")([^"\\n]*)(")|(')([^'\\n]*)(')|([^\\s"'][^"'\\n]*))`,"gi"),Zl=[/^(?:none|null|nil|n\/a|empty|unset|not (?:required|needed|set)|no (?:password|token|auth))(?=$|[\s.,;:()—–-])/i,/^\$\{?[A-Za-z_][A-Za-z0-9_]*\}?$/,/^\$\(.*\)$/,/^\$\{\{.*\}\}$/,/^%[A-Za-z_][A-Za-z0-9_]*%$/,/^(?:process\.env|os\.environ|import\.meta\.env)\.[A-Za-z_][A-Za-z0-9_]*[,;]?$/,/^<[^<>]*>$/,/^(?:\*{3,}|\.{3,}|…|x{3,})$/i,/^your[-_ ]/i,/^(?:see|from|via|stored in|use|ask|obtain|get|fetch|run|read|provided by|generated by)\b/i];function Hn(e){let t=e.trim().replace(/^`+|`+$/g,"").trim();return Zl.some(n=>n.test(t))}function ql(e){if(e.startsWith("$(")){let n=0;for(let r=1;r<e.length;r+=1)if(e[r]==="("&&(n+=1),e[r]===")"&&(n-=1,n===0))return e.slice(0,r+1);return e}return/^(?:\$\{\{[^}]*\}\}|<[^<>]*>)/.exec(e)?.[0]??/^\S+/.exec(e)?.[0]??""}var Ql=[/\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],ed=/\b[A-Za-z0-9_+/-]{32,}={0,2}\b/g,td=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function nd(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);let n=0;for(let r of t.values()){let o=r/e.length;n-=o*Math.log2(o)}return n}function rd(e){return e.replace(ed,t=>{if(td.test(t))return t;let n=/[A-Za-z]/.test(t),r=/\d/.test(t);return n&&r&&nd(t)>=3.5?T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:t})}var od=/\b(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,sd=/\b([a-z][a-z0-9+.-]*:\/\/)([^\s/@:]+):([^\s/@]*)@/gi,id=/([?&](?:access_token|api_key|apikey|auth|authorization|client_secret|key|password|secret|token)=)[^&\s"'<>]+/gi,ad=/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/,hs=/-----END [A-Z0-9 ]*PRIVATE KEY-----/;function Es(e){return e.replace(Xl,(t,n,r,o,s,i,a,c,u,l)=>{let p=`${n}${r}`;if(o!==void 0||a!==void 0){let d=o??a??"",g=i??u??"",S=s??c??"";return S===""||S.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(S)?t:`${p}${d}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}${g}`}let m=l??"";if(r==="="){let d=ql(m).replace(/`+$/,""),g=Es(m.slice(d.length));return d===""||d.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(d)?`${p}${d}${g}`:`${p}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}${g}`}return m.includes(T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER)||Hn(m)?t:`${p}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`})}function cd(e){let t=e.replace(sd,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}:${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}@`);t=t.replace(id,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`),t=t.replace(od,(n,r)=>`${r}${T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}`);for(let n of Ql)t=t.replace(n,T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER);return Es(rd(t))}function jn(e){if(e.length===0)return e;let t=e.split(`
11
+ `),n=!1;return t.map(o=>n?hs.test(o)?(n=!1,o):o.trim().length===0?o:T.COMPONENT_SOURCE_REDACTION_PLACEHOLDER:ad.test(o)&&!hs.test(o)?(n=!0,o):cd(o)).join(`
12
+ `)}function ud(e){return jn(e)!==e}});var Me=he(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.redactComponentSource=f.prepareComponentInspectionText=f.fitSnapshotInspectionTextBudget=f.componentSourceContainsRedactableSecret=f.capComponentTextBytes=f.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES=f.COMPONENT_SOURCE_REDACTION_PLACEHOLDER=f.COMPONENT_INSPECTION_TEXT_MAX_BYTES=f.usableCatalogText=f.parseFrontmatterField=f.parseFrontmatterDescription=f.isNpmRegistryPublisher=f.EMPTY_NPM_PUBLISHER=f.displayPublisherName=f.classifyMcpProvenance=f.resolveMcpPackageIdentity=f.McpPackageEcosystem=f.pinnedPackageVersionFromSpec=f.pinnedPackageVersionFromNpx=f.packageNameFromSpec=f.npxPackageSpecs=f.npxExecBin=f.PACKAGE_FIELD_MAX=f.serializeMcpLaunchIdentity=f.projectMcpMissingLaunchIdentity=f.projectMcpLaunchIdentity=f.normalizeMcpToolNames=f.MCP_MISSING_LAUNCH_SERIALIZED=f.MCP_LAUNCH_IDENTITY_ALGORITHM=f.maskMcpLaunchForDisplay=f.launchContainsCredentials=f.hashMcpLaunchIdentity=f.foldMcpName=f.buildMcpFamilyCanonicalKey=f.ComponentKind=void 0;f.userConfigRootFromPath=Ed;f.installationRootExternalKey=yd;f.normalizeRepositoryRelativePath=Rs;f.nativeKeyForSkillPath=Rd;f.nativeKeyForRulePath=Cd;f.nativeKeyForCommandPath=Id;f.serializeComponentIdentity=Is;f.buildComponentReference=Od;f.validateComponentReference=Pd;var ld=sn("node:crypto"),dd=sn("node:path"),pd="cmp1_",fd=/^cmp1_[A-Za-z0-9_-]{43}$/,md=["/skills/","/skills-cursor/"],gd=/(?:^|\/)\.(?:cursor|claude|codex)\/rules\/(.+)$/i,_d=/(?:^|\/)\.(?:cursor|claude|codex)\/(?:commands|prompts)\/(.+)$/i,hd=[".cursor",".claude",".codex"],Sd={".claude.json":".claude",".agents":".codex"};f.ComponentKind={SKILL:"SKILL",INTERFACE:"INTERFACE",RULE:"RULE",COMMAND:"COMMAND"};function Ed(e){let t=e.replaceAll("\\","/").split("/").filter(Boolean),n=t.find(o=>hd.includes(o));return n||(t.map(o=>Sd[o]).find(o=>o!==void 0)??"unknown")}function yd(e,t){return`runtime-install:${e}/${t}`}function kt(e,t){if(e.length===0)throw new Error(`${t} is required`);return e}function Rs(e){let t=e.replaceAll("\\","/");if(t.startsWith("/")||/^[A-Za-z]:\//.test(t))throw new Error("sourcePath must be repository-relative");let n=dd.posix.normalize(t).replace(/^\.\//,"");if(n==="."||n===".."||n.startsWith("../"))throw new Error("sourcePath must be repository-relative");return kt(n,"sourcePath")}function Rd(e){let t=e.replaceAll("\\","/");for(let n of md){let r=t.split(n)[1]?.split("/")[0];if(r&&r.length>0)return r}return null}function Cs(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 Cd(e){return Cs(e,gd,/\.(mdc|md|rules)$/i)}function Id(e){return Cs(e,_d,/\.(md|mdc|toml)$/i)}function Ad(e){return`${Buffer.byteLength(e,"utf8")}:${e}`}function Is(e){let t=[kt(e.installationRootExternalKey,"installationRootExternalKey"),kt(e.installableKind,"installableKind"),Rs(e.sourcePath),kt(e.nativeKey,"nativeKey")];return Buffer.from(`1|${t.map(Ad).join("|")}`,"utf8")}function Od(e){let t=(0,ld.createHash)("sha256").update(Is(e)).digest("base64url");return`${pd}${t}`}function Pd(e){return fd.test(e)}var Z=Ot();Object.defineProperty(f,"buildMcpFamilyCanonicalKey",{enumerable:!0,get:function(){return Z.buildMcpFamilyCanonicalKey}});Object.defineProperty(f,"foldMcpName",{enumerable:!0,get:function(){return Z.foldMcpName}});Object.defineProperty(f,"hashMcpLaunchIdentity",{enumerable:!0,get:function(){return Z.hashMcpLaunchIdentity}});Object.defineProperty(f,"launchContainsCredentials",{enumerable:!0,get:function(){return Z.launchContainsCredentials}});Object.defineProperty(f,"maskMcpLaunchForDisplay",{enumerable:!0,get:function(){return Z.maskMcpLaunchForDisplay}});Object.defineProperty(f,"MCP_LAUNCH_IDENTITY_ALGORITHM",{enumerable:!0,get:function(){return Z.MCP_LAUNCH_IDENTITY_ALGORITHM}});Object.defineProperty(f,"MCP_MISSING_LAUNCH_SERIALIZED",{enumerable:!0,get:function(){return Z.MCP_MISSING_LAUNCH_SERIALIZED}});Object.defineProperty(f,"normalizeMcpToolNames",{enumerable:!0,get:function(){return Z.normalizeMcpToolNames}});Object.defineProperty(f,"projectMcpLaunchIdentity",{enumerable:!0,get:function(){return Z.projectMcpLaunchIdentity}});Object.defineProperty(f,"projectMcpMissingLaunchIdentity",{enumerable:!0,get:function(){return Z.projectMcpMissingLaunchIdentity}});Object.defineProperty(f,"serializeMcpLaunchIdentity",{enumerable:!0,get:function(){return Z.serializeMcpLaunchIdentity}});var Ne=Tt();Object.defineProperty(f,"PACKAGE_FIELD_MAX",{enumerable:!0,get:function(){return Ne.PACKAGE_FIELD_MAX}});Object.defineProperty(f,"npxExecBin",{enumerable:!0,get:function(){return Ne.npxExecBin}});Object.defineProperty(f,"npxPackageSpecs",{enumerable:!0,get:function(){return Ne.npxPackageSpecs}});Object.defineProperty(f,"packageNameFromSpec",{enumerable:!0,get:function(){return Ne.packageNameFromSpec}});Object.defineProperty(f,"pinnedPackageVersionFromNpx",{enumerable:!0,get:function(){return Ne.pinnedPackageVersionFromNpx}});Object.defineProperty(f,"pinnedPackageVersionFromSpec",{enumerable:!0,get:function(){return Ne.pinnedPackageVersionFromSpec}});var As=us();Object.defineProperty(f,"McpPackageEcosystem",{enumerable:!0,get:function(){return As.McpPackageEcosystem}});Object.defineProperty(f,"resolveMcpPackageIdentity",{enumerable:!0,get:function(){return As.resolveMcpPackageIdentity}});var xt=gs();Object.defineProperty(f,"classifyMcpProvenance",{enumerable:!0,get:function(){return xt.classifyMcpProvenance}});Object.defineProperty(f,"displayPublisherName",{enumerable:!0,get:function(){return xt.displayPublisherName}});Object.defineProperty(f,"EMPTY_NPM_PUBLISHER",{enumerable:!0,get:function(){return xt.EMPTY_NPM_PUBLISHER}});Object.defineProperty(f,"isNpmRegistryPublisher",{enumerable:!0,get:function(){return xt.isNpmRegistryPublisher}});var $n=_s();Object.defineProperty(f,"parseFrontmatterDescription",{enumerable:!0,get:function(){return $n.parseFrontmatterDescription}});Object.defineProperty(f,"parseFrontmatterField",{enumerable:!0,get:function(){return $n.parseFrontmatterField}});Object.defineProperty(f,"usableCatalogText",{enumerable:!0,get:function(){return $n.usableCatalogText}});var me=ys();Object.defineProperty(f,"COMPONENT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return me.COMPONENT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(f,"COMPONENT_SOURCE_REDACTION_PLACEHOLDER",{enumerable:!0,get:function(){return me.COMPONENT_SOURCE_REDACTION_PLACEHOLDER}});Object.defineProperty(f,"SNAPSHOT_INSPECTION_TEXT_MAX_BYTES",{enumerable:!0,get:function(){return me.SNAPSHOT_INSPECTION_TEXT_MAX_BYTES}});Object.defineProperty(f,"capComponentTextBytes",{enumerable:!0,get:function(){return me.capComponentTextBytes}});Object.defineProperty(f,"componentSourceContainsRedactableSecret",{enumerable:!0,get:function(){return me.componentSourceContainsRedactableSecret}});Object.defineProperty(f,"fitSnapshotInspectionTextBudget",{enumerable:!0,get:function(){return me.fitSnapshotInspectionTextBudget}});Object.defineProperty(f,"prepareComponentInspectionText",{enumerable:!0,get:function(){return me.prepareComponentInspectionText}});Object.defineProperty(f,"redactComponentSource",{enumerable:!0,get:function(){return me.redactComponentSource}})});import{existsSync as Tc,readFileSync as kc}from"node:fs";import{hostname as ro,userInfo as xc}from"node:os";import{randomBytes as yc}from"node:crypto";import{existsSync as cn,mkdirSync as Rc,readdirSync as Cc,readFileSync as Ic,renameSync as Xr,statSync as Qr,unlinkSync as Zr,writeFileSync as Ac}from"node:fs";import{basename as Oc,dirname as qr,join as eo,relative as Pc}from"node:path";function h(e){process.stderr.write(`[ev-ai-agent-hook] ${e}
13
+ `)}function Q(e,t){Rc(qr(e),{recursive:!0});let n=eo(qr(e),`.${Oc(e)}.${process.pid}.${yc(4).toString("hex")}.tmp`);try{Ac(n,t,"utf8");try{Xr(n,e)}catch(r){let o=r instanceof Error&&"code"in r?r.code:void 0;if(o==="EEXIST"||o==="EPERM"||o==="EACCES"){Zr(e),Xr(n,e);return}throw r}}catch(r){try{Zr(n)}catch{}throw r}}function ft(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function to(){process.stdout.write('{"continue":true}')}function I(e){let t=process.env[e];return t===void 0||t===""?void 0:t}async function un(){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 ln(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 J(e,t,n=3e3,r={}){let{execFile:o}=await import("node:child_process"),{promisify:s}=await import("node:util"),i=s(o);try{let{stdout:a}=await i(e,t,{timeout:n,windowsHide:!0,maxBuffer:1048576,cwd:r.cwd});return{ok:!0,stdout:a.trim()}}catch(a){let c=a,u=typeof c.code=="number"?c.code:typeof c.status=="number"?c.status:void 0;return{ok:!1,code:u,spawnFailed:u===void 0}}}async function w(e,t,n=3e3,r={}){let o=await J(e,t,n,r);return o.ok?o.stdout:""}async function dn(e=process.cwd()){let t=await J("git",["rev-parse","--show-toplevel"],2e3,{cwd:e});if(t.ok&&t.stdout)return{root:t.stdout,inGitRepo:!0};if(I("EV_AI_HOOK_DEBUG")){let r=t.ok?"empty stdout":t.spawnFailed?"spawn failed":`exit ${String(t.code??"unknown")}`;h(`DEBUG: git rev-parse --show-toplevel failed (${r}) cwd=${e}`)}let n=I("CURSOR_PROJECT_DIR")??I("CLAUDE_PROJECT_DIR");if(n&&cn(n)){let r=await J("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 pn(e=process.cwd()){return(await dn(e)).root}function j(e,t){try{return JSON.parse(e)}catch{return t}}var an=new Map;function F(e,t){let n=an.get(e);if(n!==void 0)return n;try{let r=j(Ic(e,"utf8"),t);return an.set(e,r),r}catch{return an.set(e,t),t}}function Se(e){return typeof e=="string"?e:""}function re(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 _(e,t){let n=re(e,t);return typeof n=="string"?n:""}var ue=500;function no(e,t=2){if(!cn(e))return{entries:[],truncated:!1};let n=[],r=!1,o=(s,i)=>{if(i>t||r)return;let a;try{a=Cc(s,{withFileTypes:!0})}catch{return}for(let c of a){if(r)return;let u=eo(s,c.name);if(c.isDirectory()){o(u,i+1);continue}if(c.isFile()){try{n.push({name:Pc(e,u),size:Qr(u).size})}catch{continue}if(n.length>=ue){r=!0;return}}}};return o(e,1),{entries:n,truncated:r}}function fn(e){return cn(e)?{present:!0,size:Qr(e).size}:{present:!1,size:0}}function Pe(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function mn(e=process.env){return Pe(b("CURSOR_SANDBOX",e))}var bc=["CIRCLECI","BUILDKITE","TF_BUILD","JENKINS_URL","JENKINS_HOME","CODEBUILD_BUILD_ID","DRONE","DRONE_BUILD_NUMBER","TEAMCITY_VERSION","TRAVIS","APPVEYOR","BITBUCKET_BUILD_NUMBER"];function Nc(e){return bc.some(t=>!!b(t,e))}function Mc(e){if(b("KUBERNETES_SERVICE_HOST",e)||Pe(b("REMOTE_CONTAINERS",e))||Pe(b("DEVCONTAINER",e)))return!0;try{if(Tc("/.dockerenv")||kc("/proc/1/environ","utf8").includes("container="))return!0}catch{}return!1}function oo(e){return["VSCODE_PID","VSCODE_IPC_HOOK","CURSOR_EXTENSION_HOST_ROLE","CURSOR_WORKSPACE_LABEL"].some(t=>!!b(t,e))}function wc(e,t=process.platform){return oo(e)?t==="darwin"||t==="win32"?!0:["__CFBundleIdentifier","DISPLAY","WAYLAND_DISPLAY","SESSIONNAME"].some(n=>!!b(n,e)):!1}function vc(e){return e===void 0?!1:e.trim().toLowerCase().startsWith("bc-")}function Lc(e){return e==="linux"}function b(e,t){if(t){let n=t[e];return n===void 0||n===""?void 0:n}return I(e)}function Uc(e,t,n){return e.trim().toLowerCase()==="cursor"&&t.trim().toLowerCase()==="ubuntu"&&!!Dc(b("CURSOR_VERSION",n))}function Dc(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function gn(e){if(vc(e.sessionId))return!0;let t=e.hostname??ro(),n=e.osUser??so(e.env);return Uc(t,n,e.env)}function Fc(e){return Pe(b("CURSOR_AGENT",e.env))?!0:gn(e)}function Hc(e){return!!(process.stdin.isTTY||process.stdout.isTTY||(b("TERM",e)??b("TERM_PROGRAM",e))||(b("SSH_TTY",e)??b("SSH_CONNECTION",e))||(b("__CFBundleIdentifier",e)??b("XPC_SERVICE_NAME",e))||oo(e)||["DISPLAY","WAYLAND_DISPLAY","XDG_SESSION_TYPE","DBUS_SESSION_BUS_ADDRESS"].some(t=>!!b(t,e))||b("SESSIONNAME",e))}function $e(e={}){let t=e.env;if(b("GITHUB_ACTIONS",t))return"github_actions";if(Pe(b("CLAUDE_CODE_REMOTE",t)))return"claude_remote";let n=e.platform??process.platform;if(!wc(t,n)&&Fc(e)&&(Pe(b("CURSOR_AGENT",t))||Lc(n)))return"cursor_cloud";if(b("CODESPACES",t)||b("CODESPACE_NAME",t))return"codespaces";if(b("GITLAB_CI",t))return"gitlab_ci";if(Nc(t))return"managed";let r=b("CI",t);return r&&r!=="false"&&r!=="0"?"managed":Mc(t)?"container":Hc(t)?"interactive":"unknown"}async function _n(){return await w("systemd-detect-virt",[],1e3)}function so(e=process.env,t=xc){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 hn(){let e=process.platform==="darwin"?"Darwin":process.platform==="win32"?"Windows_NT":"Linux",t="";if(process.platform==="darwin")t=await w("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 w("lsb_release",["-sd"],1e3).then(s=>s.replace(/^"|"$/g,""))}t||(t=await w("uname",["-r"],1e3))}else t=await w("ver",[],1e3);let n=so(),r=(process.env.SHELL??"").split(/[/\\]/).pop()??"",o="";try{o=await w("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 Ke(){return ro()}import{createHash as jc}from"node:crypto";import{homedir as $c}from"node:os";import{dirname as uh,join as Kc,parse as lh,resolve as dh}from"node:path";var ao="https://hooks.ev-ai.ai",co=".claude/ev-ai-runtime-report.json",uo="config.json",ph=1024*1024,Bc=new Set(["localhost","127.0.0.1","[::1]","::1"]),Gc=["claude","cursor","codex"],lo=[co,".cursor/ev-ai-runtime-report.json",".codex/ev-ai-runtime-report.json"],Sn=/^[A-Za-z0-9._~-]+$/;function gt(e){return e!==void 0&&Gc.includes(e)}function mt(e,t){let n=e[t+1];return n&&!n.startsWith("--")?{value:n,next:t+1}:{next:t}}function Be(e){let t,n,r,o,s;for(let i=0;i<e.length;i++){let a=e[i];if(a!==void 0){if(a==="--runner"){let c=mt(e,i);t=c.value,i=c.next;continue}if(a.startsWith("--runner=")){t=a.slice(9);continue}if(a==="--url"){let c=mt(e,i);c.value&&(r=c.value),i=c.next;continue}if(a.startsWith("--url=")){r=a.slice(6);continue}if(a==="--token"){let c=mt(e,i);c.value&&(o=c.value),i=c.next;continue}if(a.startsWith("--token=")){o=a.slice(8);continue}if(a==="--base-url"){let c=mt(e,i);c.value&&(s=c.value),i=c.next;continue}if(a.startsWith("--base-url=")){s=a.slice(11);continue}!a.startsWith("-")&&n===void 0&&(n=a)}}return{runner:gt(t)?t:void 0,event:n,collectorUrl:r,orgToken:o,baseUrl:s}}function _t(e,t=ao){let n=t.replace(/\/+$/,""),r=e.trim();return`${n}/${r}/hook`}function En(e=$c()){return Kc(e,".ev-ai",uo)}function po(e,t){return{...e,...t}}function io(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 Ge(e){try{let t=new URL(e);return t.protocol==="https:"?!0:t.protocol==="http:"?Bc.has(t.hostname):!1}catch{return!1}}function yn(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 Rn(e){let t;try{t=new URL(e)}catch{return`invalid URL (got: ${e})`}if(!Ge(e))return`must be https (or http on localhost / 127.0.0.1 / ::1) (got: ${e})`;let n=yn(e);if(!n)return`must end with /{orgToken}/hook (got: ${e})`;if(!Sn.test(n))return`org token must match ${Sn.source} (got: ${n})`;if(io(e))return`must not contain whitespace, control characters, or single quotes (got: ${e})`;if(io(t.pathname))return`pathname must not contain whitespace, control characters, or single quotes (got: ${e})`}function fo(e){return new URL(e).toString()}function Cn(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?_t(n):""}function ht(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 mo(e){let t=e.collectorUrl?.trim(),n;if(t)n=t;else{let o=e.orgToken?.trim();o&&(n=_t(o,e.baseUrl?.trim()??void 0))}if(!n)return{};let r=Rn(n);return r?{problem:r}:{url:fo(n)}}function go(e){if(Rn(e))return;let t;try{t=new URL(e)}catch{return}let n=yn(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 jc("sha256").update(i).digest("hex").slice(0,32)}var Et=2;var St="ev-ai-agent-hook";function zc(e){let t=e.split(/[/\\]/).pop();return t&&t.length>0?t:e}function _o(e){let t=zc(e);return t===St||t===`${St}.exe`}var mh=`current/${St}`,gh=`.ev-ai/agent-hook/${St}`,ho=5e3,So=5e3,In=3e3;var An=3e3,Eo=1500,yo=4*1024,On=256*1024,Vc=4*1024,Ro=32*1024,ze=840*60*1e3,Pn="1.2.3",_h=`@ev-ai/agent-hook@${Pn}`;import{createHash as rp}from"node:crypto";import{existsSync as op,mkdirSync as sp,readdirSync as ip,readFileSync as Js,unlinkSync as Xs,writeFileSync as ap}from"node:fs";import{homedir as Zs}from"node:os";import{join as Xn}from"node:path";import{createHash as Po,randomBytes as Jc}from"node:crypto";import{existsSync as To,mkdirSync as Tn,readFileSync as ko,unlinkSync as xo,writeFileSync as bo}from"node:fs";import{homedir as kn}from"node:os";import{dirname as yt,join as xn,resolve as Xc}from"node:path";var Wc=new Set(["action@github.com","noreply@github.com","noreply@anthropic.com","cursoragent@cursor.com"]),Yc=new Set(["github-actions","github actions","dependabot","renovate","cursoragent","cursor agent"]);function G(e,t){let n=(e??"").trim().toLowerCase(),r=(t??"").trim().toLowerCase();if(!n&&!r)return!1;if(n.includes("[bot]")||Yc.has(n)||r.includes("[bot]")||Wc.has(r))return!0;if(r.endsWith("@users.noreply.github.com")){let o=r.slice(0,r.indexOf("@")),s=o.includes("+")?o.slice(o.indexOf("+")+1):o;if(s.endsWith("bot")||s.includes("[bot]"))return!0}return!1}var Zc="installation.json",qc="cloud-bootstrap.lock",Qc=6e4;function No(e,t,n){let r=`${e}:${t??""}`;return n?`${n}:${r}`:r}function oe(e=kn()){return xn(e,".ev-ai","agent-hook")}function eu(e=kn()){return xn(oe(e),Zc)}function Mo(e){return xn(yt(e),qc)}function wo(){return Jc(8).toString("hex")}function Te(e){return Po("sha256").update(e).digest("hex").slice(0,16)}function A(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function vo(e){return/^[A-Za-z0-9._-]{8,64}$/.test(e)}function tu(e=process.env){let t=A(e.EV_AI_HOOK_INSTALLATION_ID);if(t){if(!vo(t)){h(`WARN: ignoring EV_AI_HOOK_INSTALLATION_ID (expected 8\u201364 chars [A-Za-z0-9._-], got length ${t.length})`);return}return t}}function Lo(e,t){return e&&vo(e)?e:(e&&h(`WARN: ignoring installation id override (expected 8\u201364 chars [A-Za-z0-9._-], got length ${e.length})`),tu(t))}function nu(e){return/^[0-9a-f]{16}$/.test(e)}function ru(e=process.env){if(A(e.GITHUB_ACTIONS)){let t=A(e.GITHUB_REPOSITORY_ID)??A(e.GITHUB_REPOSITORY),n=A(e.GITHUB_ACTOR)??A(e.GITHUB_TRIGGERING_ACTOR)??A(e.GITHUB_USER);if(t&&n)return Te(`github_actions|${t}|${n}`)}if(A(e.CODESPACES)||A(e.CODESPACE_NAME)){let t=A(e.CODESPACE_NAME);if(t)return Te(`codespaces|${t}`);let n=A(e.GITHUB_REPOSITORY_ID)??A(e.GITHUB_REPOSITORY),r=A(e.GITHUB_USER)??A(e.GITHUB_ACTOR);if(n&&r)return Te(`codespaces|${n}|${r}`)}if(A(e.GITLAB_CI)){let t=A(e.CI_PROJECT_ID)??A(e.CI_PROJECT_PATH),n=A(e.GITLAB_USER_LOGIN)??A(e.GITLAB_USER_EMAIL)??A(e.GITLAB_USER_NAME);if(t&&n)return Te(`gitlab|${t}|${n}`)}return null}var ou="cursoragent@cursor.com";function su(e){let t=A(e.CURSOR_USER_EMAIL);return!t||t.toLowerCase()===ou?null:t}function iu(e,t){return A(e.CURSOR_PROJECT_DIR)??A(e.CLAUDE_PROJECT_DIR)??t}function au(e){return e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1").replace(/\.git$/i,"").toLowerCase()}async function cu(e){let t=await w("git",["config","--get","remote.origin.url"],2e3,{cwd:e});return t?au(t):e}async function uu(e){let t=A(await w("git",["config","--local","--get","user.email"],2e3,{cwd:e})||void 0);if(t&&!G(null,t))return t;let n=A(await w("git",["log","-1","--format=%ae"],2e3,{cwd:e})||void 0);return n&&!G(null,n)?n:null}function lu(e,t){let n=iu(e,t);return n?Te(`cursor_cloud|${n}|${su(e)??""}`):null}async function du(e,t){let n=A(e.CLAUDE_PROJECT_DIR)??t;if(!n)return null;let r=await cu(n),o=await uu(n);return Te(`claude_remote|${r}|${o??""}`)}function Co(e,t){let n=Lo(e,t);if(n)return n;let r=ru(t);return r||wo()}async function pu(e){let n=await w("git",["config","--get","remote.origin.url"],2e3,{cwd:e})||Xc(e);return Po("sha256").update(n).digest("hex").slice(0,16)}function fu(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 mu(e){try{let t=JSON.parse(e);if(typeof t.installation_id!="string"||t.installation_id.length===0)return;let n=fu(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 Ee(e){if(To(e))try{return mu(ko(e,"utf8"))}catch{}}function bn(e){return Ee(e)}function Uo(e,t,n){let r=Ee(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{Q(e,`${JSON.stringify(o,null,2)}
14
+ `)}catch(s){let i=s instanceof Error?s.message:String(s);h(`WARN: operator identity cache write failed open: ${i}`)}}function Do(e,t=Date.now()){if(!e)return!0;if(Ee(e)?.operator_identity_hash)return!1;let n=Mo(e);try{if(To(n)){let r=Number.NaN;try{r=Number(ko(n,"utf8").trim())}catch{}let o=t-r;if(Number.isFinite(o)&&o>=0&&o<Qc)return!1;try{xo(n)}catch{}}}catch{}try{return Tn(yt(n),{recursive:!0}),bo(n,`${t}
15
+ `,{encoding:"utf8",flag:"wx"}),!0}catch(r){if($o(r))return!1;let o=r instanceof Error?r.message:String(r);return h(`WARN: cloud bootstrap claim failed open: ${o}`),!0}}function Fo(e){if(e)try{xo(Mo(e))}catch{}}function Ho(e,t){let r=Ee(e)?.platform_agent_ids?.[t];return typeof r=="string"&&r.length>0?r:void 0}function jo(e,t,n){if(!n)return;let r=Ee(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{Q(e,`${JSON.stringify(o,null,2)}
16
+ `)}catch(s){let i=s instanceof Error?s.message:String(s);h(`WARN: platform_agent_id cache write failed open: ${i}`)}}function $o(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function gu(e,t){Tn(yt(e),{recursive:!0}),bo(e,`${JSON.stringify(t,null,2)}
17
+ `,{encoding:"utf8",flag:"wx"})}function Io(e,t){try{return gu(e,t),t}catch(n){if(!$o(n))throw n;return Ee(e)}}function Ao(e,t){Tn(yt(e),{recursive:!0}),Q(e,`${JSON.stringify(t,null,2)}
18
+ `)}function Oo(e,t){return{installation_id:e,...t&&t===e?{pinned:!0}:{}}}async function Ko(e,t={}){let n=t.home??kn(),r=t.env??process.env,o=await pu(e),s=eu(n),i={sessionId:t.sessionId,hostname:A(r.HOSTNAME)??void 0,osUser:A(r.USER)??A(r.LOGNAME)??A(r.USERNAME)??void 0,env:r},a=$e(i),c=Lo(t.overrideId,r),u=a==="cursor_cloud"&&gn(i)?lu(r,e):a==="claude_remote"?await du(r,e):null,l=Ee(s);if(l){let S=l;if(c&&c===l.installation_id&&l.pinned!==!0&&(S={...l,pinned:!0},Ao(s,S)),!!u&&u!==S.installation_id&&!c&&S.pinned!==!0&&nu(S.installation_id)&&u){let y={installation_id:u,...S.platform_agent_ids?{platform_agent_ids:S.platform_agent_ids}:{}};return Ao(s,y),{installationId:u,storePath:s,repoKey:o}}return{installationId:S.installation_id,storePath:s,repoKey:o}}let p=c??u??Co(void 0,r),m=Io(s,Oo(p,c));if(m)return{installationId:m.installation_id,storePath:s,repoKey:o};let d=c??u??Co(void 0,r),g=Io(s,Oo(d===p?wo():d,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 Mu}from"node:fs";import{existsSync as Cu}from"node:fs";import{homedir as zo}from"node:os";import{join as Iu}from"node:path";import{existsSync as _u,readdirSync as Bo}from"node:fs";import{homedir as Rt}from"node:os";import{join as K}from"node:path";function hu(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/ClaudeCode";case"win32":return K(process.env.ProgramFiles??"C:\\Program Files","ClaudeCode");default:return"/etc/claude-code"}}function Su(e=process.platform){let t=hu(e),n=[K(t,"managed-settings.json")],r=K(t,"managed-settings.d");try{if(!_u(r))return n;let o=Bo(r).filter(s=>s.endsWith(".json")&&!s.startsWith(".")).sort().map(s=>K(r,s));n.push(...o)}catch{}return n}function Nn(e=process.platform,t=Rt()){return{serverManaged:K(t,".claude","remote-settings.json"),fileBased:Su(e)}}function Eu(e=process.platform){switch(e){case"darwin":return"/Library/Application Support/Cursor";case"win32":return K(process.env.ProgramData??"C:\\ProgramData","Cursor");default:return"/etc/cursor"}}function yu(e=process.platform,t=Rt()){let n=[K(Eu(e),"hooks.json")],r=K(t,".cursor","managed");try{for(let o of Bo(r,{withFileTypes:!0}))!o.isDirectory()||o.name.startsWith(".")||n.push(K(r,o.name,"hooks.json"))}catch{}return n}function Ru(e=process.platform,t=Rt()){let n=e==="win32"?K(process.env.ProgramData??"C:\\ProgramData","OpenAI","Codex"):"/etc/codex",r=[K(n,"requirements.toml")];return e!=="win32"&&r.push(K(n,"managed_config.toml")),r.push(K(t,".codex","managed_config.toml"),K(n,"config.toml")),r}function Ct(e,t=process.platform,n=Rt()){switch(e){case"claude":{let{serverManaged:r,fileBased:o}=Nn(t,n);return[r,...o]}case"cursor":return yu(t,n);default:return Ru(t,n)}}function Vo(e){return e.settings.filter(t=>t.toLowerCase().endsWith(".json"))}var Au={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/cli-config.json"],mcpJson:[".cursor/mcp.json"]},homeOnly:{skillRoots:[".cursor/skills-cursor"],memory:[[".cursor/AGENTS.md"]],plugins:"cursor",managed:"cursor"},projectOnly:{skillRoots:[".agents/skills"]}},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 Go(e,t){if(!(!e&&!t))return[...e??[],...t??[]]}function Ou(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:Go(n.mcpJson,t.mcpJson),mcpToml:Go(n.mcpToml,t.mcpToml),plugins:t.plugins??n.plugins,managed:t.managed??n.managed}}function Wo(e){return Object.fromEntries(Object.entries(Au).map(([t,n])=>[t,Ou(n,n[e])]))}var ke=Wo("homeOnly"),de=Wo("projectOnly");function Pu(e){return[...e.skillRoots,...e.dirs.map(t=>t.dir),...e.memory.flat(),...e.settings,...e.mcpJson??[],...e.mcpToml??[]]}function Tu(e,t){return Pu(e).some(n=>Cu(Iu(t,n)))}function Yo(e,t){for(let n of e)if(Tu(n,t))return!0;return!1}function le(e){return[...new Set(e)]}function pe(e){let t=[],n=[],r=[],o=[],s=[],i=[],a=[];for(let c of e){t.push(...c.skillRoots);for(let u of c.dirs)u.kind==="SUBAGENT"?n.push(u.dir):u.kind==="COMMAND"?r.push(u.dir):o.push(u.dir);s.push(...c.memory.flat()),i.push(...c.settings),a.push(...c.mcpJson??[],...c.mcpToml??[])}return{skills:le(t),subagents:le(n),commands:le(r),rules:le(o),memory:le(s),settings:le(i),mcp:le(a)}}function ku(e,t=zo(),n=process.platform){let r=[];for(let o of e)o.managed&&r.push(...Ct(o.managed,n,t));return le(r)}var fe=pe(Object.values(ke));function Jo(e=zo(),t=process.platform){return ku(Object.values(ke),e,t)}import{existsSync as xu}from"node:fs";import{resolve as Mn}from"node:path";function z(e){return Mn(e).replaceAll("\\","/").replace(/\/$/,"")}function ye(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 It(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 bu=/^(?!\.)[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*$/;function Ve(e){let t=e.replaceAll("\\","/").replace(/^\.\//,"");return!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t)||t.split("/").includes("..")||!bu.test(t)?null:t}function xe(e,t){let n=new Set,r=[];for(let o of[e,t]){if(!o)continue;let s=z(o);n.has(s)||(n.add(s),r.push(s))}return r}function Nu(e,t){let n=`${e}/`;return t===e||t.startsWith(n)}function ee(e,t,n,r=xu){for(let o of e)for(let s of t){let i=z(Mn(o,s)),a=Mn(o,s,n).replaceAll("\\","/");if(Nu(i,a)&&r(a))return a}return null}var Zo=/(?:^|\/|[\s"'=(])(?:\.cursor\/|\.claude\/|\.agents\/)skills(?:-cursor)?\/([^/]+)\/SKILL\.md/i,qo=/(?:^|\/|[\s"'=(])\.codex\/commands\/([^/]+)\.md\b/i,wu=/(?:^|\s)\/([a-z][a-z0-9-]{1,63}(?:\/[a-z][a-z0-9-]{1,63}){0,5})\b/gi,Xo=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"]),vu=/^[a-z][a-z0-9-]{1,63}$/,Lu=[".cursor/skills",".claude/skills",".agents/skills"],Uu=[".cursor/skills",".cursor/skills-cursor",".claude/skills",".agents/skills"],Du=ye(Lu,pe(Object.values(de)).skills),Fu=ye(Uu,pe(Object.values(ke)).skills),Hu=new Set(["read","read_file","view"]),ju=new Set(["bash","shell","zsh"]);function wn(e){let t=e.replace(/\\/g,"/");return Zo.exec(t)?.[1]??null}function $u(e){let t=e.replace(/\\/g,"/"),r=qo.exec(t)?.[1];return r?r.toLowerCase():null}function Ku(e){return wn(e)??$u(e)}function Bu(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 At(e){return typeof e=="string"?At(j(e,null)):!e||typeof e!="object"?null:Bu(e)}function Qo(e){if(typeof e=="string")return Qo(j(e,null));if(!e||typeof e!="object")return null;let t=e.command;return typeof t=="string"&&t.length>0?t:null}function vn(e){let t=Qo(e.tool_input);if(t)return t;let n=Se(e.command);return n.length>0?n:null}function Gu(e){let t=e.replace(/\\/g,"/"),n=Zo.exec(t);if(n?.[1])return n[1];let o=qo.exec(t)?.[1];return o?o.toLowerCase():null}function zu(e){return typeof e.tool_name=="string"?e.tool_name:typeof e.tool=="string"?e.tool:""}function Ln(e){let t=At(e.tool_input)??Se(e.file_path);return t.length>0?t:null}function We(e,t,n){let r=zu(e).toLowerCase();if(Hu.has(r)){let o=Ln(e);return o?t(o):null}if(ju.has(r)){let o=vn(e);return o?n(o):null}return null}function es(e){return We(e,Ku,Gu)}function Vu(e){let t=new Set,n=[];for(let r of e.matchAll(wu)){let o=r[1]?.toLowerCase();!o||t.has(o)||Wu(o)||(t.add(o),n.push(o))}return n}function Wu(e){let t=e.split("/")[0];return Xo.has(e)||t!==void 0&&Xo.has(t)}function ts(e){let t=e.skillId.toLowerCase();if(!vu.test(t))return null;let n=e.exists??Mu,r=`${t}/SKILL.md`,o=ee(xe(e.launchCwd,e.gitRoot),Du,r,n);return o!==null?o:e.home?ee([z(e.home)],Fu,r,n):null}function Yu(e){return Se(e.prompt)}function ns(e){let t=_(e,"command_name");if(t){let r=_(e,"expansion_type");if(r&&r!=="slash_command")return[];let o=t.replace(/^\//,"").toLowerCase();return o?[o]:[]}let n=Yu(e);return n?Vu(n):[]}var Kn=je(Me(),1);import{existsSync as kd}from"node:fs";var Ce={claude:".claude",cursor:".cursor",codex:".codex",opencode:".opencode"};function Je(e){let n=e.replace(/^\/+|\/+$/g,"").toLowerCase().split("/").filter(Boolean);return n.length<2?"":n.join("/")}function Td(e){if(!e)return"";let t=e.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1");t=t.replace(/\.git$/i,"");let n=t.match(/^git@[^:]+:(.+)$/);if(n?.[1])return Je(n[1]);let r=t.match(/^ssh:\/\/[^/]+\/(.+)$/i);if(r?.[1])return Je(r[1]);t=t.replace(/^https:\/\//i,""),t=t.replace(/^http:\/\//i,""),t=t.replace(/^ssh:\/\//i,"");let o=t.match(/^[^/]+\/(.+)$/);return o?.[1]?Je(o[1]):Je(t)}async function Xe(e=process.cwd()){let t=await J("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([J("git",["remote","get-url","origin"],2e3,{cwd:e}),J("git",["branch","--show-current"],2e3,{cwd:e}),J("git",["rev-parse","HEAD"],2e3,{cwd:e}),J("git",["status","--porcelain"],2e3,{cwd:e})]),i=n.ok?n.stdout:null;return{remote:i===null?null:i.replace(/^([a-z]+:\/\/)[^/@]+@/i,"$1"),branch:r.ok?r.stdout:null,head:o.ok?o.stdout:null,dirty:s.ok?s.stdout.length>0:null}}async function Os(e,t,n,r=process.cwd(),o,s,i){if(t)return t;let a=Ce[n];if(!a)return"";let c=No(n,e.scope_path,i);if(s){let g=Ho(s,c);if(g)return g}let u=o??await Xe(r),l=u?.remote?Td(u.remote):"";if(l||(l=Je(process.env.GITHUB_REPOSITORY??"")),!l)return"";let p=e.scope_path??"",m=p?`${p}/`:"",d=`${l}:${m}${a}`;return s&&jo(s,c,d),d}var xd=[".cursor/rules",".claude/rules",".codex/rules"],bd=pe(Object.values(de)).rules;function Nd(e){return ye(It(e?Ce[e]:void 0,xd),bd)}var Md=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/rules\/[^'"\s]+?\.(?:mdc|md|rules))\b/i;function Ps(e){let t=Ve(e.relativePath);if(!t)return null;let n=e.exists??kd,r=xe(e.launchCwd,e.gitRoot),o=Nd(e.runnerPlatform),s=ee(r,o,t,n);if(s!==null)return s;if(!t.includes("/")){let i=ee(r,["."],t,n);if(i!==null)return i}return e.home?ee([z(e.home)],o,t,n):null}function wd(e){let t=e.replace(/\\/g,"/"),r=Md.exec(t)?.[1];return r?(0,Kn.nativeKeyForRulePath)(r):null}function Ts(e){return We(e,Kn.nativeKeyForRulePath,wd)}function ks(e){return e.replace(/\.(mdc|md|rules)$/i,"")}function xs(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=Ve(i);!a||n.has(a)||(n.add(a),r.push(a))}return r}var Bn=je(Me(),1);import{existsSync as vd}from"node:fs";var Ld=[".cursor/commands",".claude/commands",".codex/prompts"],Ud=pe(Object.values(de)).commands;function Dd(e){return ye(It(e?Ce[e]:void 0,Ld),Ud)}var Fd=/(?:^|\/|[\s"'=(])((?:\.cursor|\.claude|\.codex)\/(?:commands|prompts)\/[^'"\s]+?\.(?:md|mdc))\b/i;function bs(e){let t=Ve(e.commandId);if(!t)return null;let n=e.exists??vd,r=`${t}.md`,o=Dd(e.runnerPlatform),s=ee(xe(e.launchCwd,e.gitRoot),o,r,n);return s!==null?s:e.home?ee([z(e.home)],o,r,n):null}function Hd(e){let t=e.replace(/\\/g,"/"),r=Fd.exec(t)?.[1];return r?(0,Bn.nativeKeyForCommandPath)(r):null}function Ns(e){return We(e,Bn.nativeKeyForCommandPath,Hd)}import{existsSync as ws}from"node:fs";import{homedir as vs}from"node:os";import{join as Ze,resolve as Gn,sep as Ms}from"node:path";function zn(e){return[...new Set([e,e.replaceAll(/[^A-Za-z0-9_-]/g,"_"),e.replaceAll(/[^A-Za-z0-9_-]+/g,"_")])]}function Vn(e,t){let n=t.toLowerCase();return zn(e).some(r=>r.toLowerCase()===n)}function bt(e,t,n){if(!ws(e))return;let r=F(e,{});for(let[o,s]of Object.entries(r.mcpServers??{}))n.set(o,{declared:{name:o,...t},config:s})}function jd(e,t,n){if(!ws(e))return;let r=F(e,{}),o=Gn(t),s=null;for(let a of Object.keys(r.projects??{})){let c=Gn(a);(o===c||o.startsWith(c.endsWith(Ms)?c:c+Ms))&&(s===null||c.length>Gn(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 Ls(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"?(bt(Ze(r,".claude.json"),{source:"claude_json_user"},o),jd(Ze(r,".claude.json"),t,o)):n==="cursor"&&bt(Ze(r,".cursor/mcp.json"),{source:"cursor_mcp_user"},o),bt(Ze(t,".mcp.json"),{source:"mcp_json"},o),bt(Ze(t,".cursor/mcp.json"),{source:"cursor_mcp"},o),o}async function Wn(e,t=process.cwd(),n="claude",r=vs()){return[...Ls(e,t,n,r).values()].map(o=>o.declared)}function Us(e,t,n=process.cwd(),r="claude",o=vs()){let s=Ls(t,n,r,o),i=s.get(e);if(i!==void 0)return i.config??null;for(let[a,c]of s)if(Vn(a,e))return c.config??null;return null}function Yn(e){let t=mo(e);if(t.problem){h(`WARN: ignoring --url/--token collector override: ${t.problem}`);return}return t.url}function Ds(e,t){if(_(e,"conversation_id"))return!0;if(t==="")return!1;let n=t[0];return n?.toLowerCase()===n}function $d(){return!!(I("CURSOR_VERSION")??I("CURSOR_PROJECT_DIR"))}function Jn(e,t,n){return e!=="claude"&&e!=="codex"?!1:Ds(t,n)?!0:$d()}function qe(e,t,n,r){if(Ds(e,t))return"cursor";if(gt(r))return r;let o=_(e,"conversation_id"),s=_(e,"turn_id"),i=_(e,"session_id"),a=t.toLowerCase(),c="unknown";return o||t===a&&t!==""?c="cursor":s?c="codex":(i||a==="sessionstart"||a==="sessionend"||a==="stop"||a==="stopfailure"||a==="pretooluse"||a==="posttooluse"||a==="posttoolusefailure"||a==="permissiondenied"||a==="subagentstart"||a==="subagentstop"||a==="userpromptexpansion"||a==="userpromptsubmit")&&(c="claude"),gt(n)&&(c=n),c}function Nt(e,t){let n=e.toLowerCase();return n==="sessionend"||n==="stopfailure"||n==="subagentstop"?!0:n==="stop"&&t==="codex"}function Kd(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 Fs(e){let t=e.toLowerCase();return t==="userpromptsubmit"||t==="beforesubmitprompt"}function Hs(e,t){return e.toLowerCase()==="userpromptsubmit"&&t==="claude"}function js(e){let t=e.toLowerCase();return t==="posttooluse"?!0:t==="posttoolusefailure"||t==="permissiondenied"?!1:null}function $s(e,t,n){let r=_(e,"session_id")||_(e,"conversation_id"),o=_(e,"prompt.id")||_(e,"prompt_id")||_(e,"generation_id")||_(e,"turn_id"),s=_(e,"hook_event_name")||_(e,"event"),i=_(e,"source"),a=qe(e,s,t,n);return{sessionId:r,turnId:o,runnerEvent:s,hookSource:i,runnerPlatform:a}}var Bd=["session_start","session_end","tool_invoked","skill_invoked"];function Gd(e){return Bd.includes(e)}function Ks(e,t){return e&&Gd(e)?e:Kd(t.toLowerCase())}var zd={beforeshellexecution:"Shell",aftershellexecution:"Shell",beforereadfile:"Read",afterfileedit:"Write"};function Bs(e){return/^mcp__/i.test(e)||/^MCP:/i.test(e)}function Gs(e,t=""){let n=_(e,"tool_name")||_(e,"tool")||null,r=t.toLowerCase();n?r==="beforemcpexecution"&&!Bs(n)&&(n=`MCP:${n}`):n=zd[r]??null;let o=e.tool_input,i=(o&&typeof o=="object"?Se(o.skill)||Se(o.skill_name):"")||_(e,"skill_name")||null,a=n&&e.tool_name!==n&&e.tool!==n?{...e,tool_name:n}:e;i??=es(a);let c=Ts(a),u=Ns(a);return{toolName:n,skillName:i,ruleName:c,commandName:u}}var Vd=/^[A-Za-z][A-Za-z0-9_.:-]{0,63}$/;function zs(e){for(let t of["subagent_type","agent_type"]){let n=_(e,t);if(n&&Vd.test(n))return n}return null}function Vs(e){let t=re(e,"duration_ms");if(typeof t=="number")return t;let n=re(e,"duration");return typeof n=="number"?n:null}var Wd="error",Yd="interrupted",Jd="permission_denied",Xd=/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;function Qe(e){return Xd.test(e)?e:null}function Zd(e){for(let t of["failure_type","error_type"]){let n=Qe(_(e,t));if(n)return n}return null}function Ws(e,t){return re(e,"is_interrupt")===!0?Yd:t.toLowerCase()==="permissiondenied"?Jd:Zd(e)??Wd}function qd(e,t){let n=null;for(let r of t)r&&(e===r||e.startsWith(`${r}_`)||e.startsWith(`${r}-`))&&(n===null||r.length>n.length)&&(n=r);return n}function Qd(e,t){let n=null;for(let r of t)!r||!Vn(r,e)||(n===null||r.length>n.length)&&(n=r);return n}function ep(e,t){let n=null,r=0;for(let s of t)if(s)for(let i of zn(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:Qd(o[1],t)??o[1],mcpTool:o[2]}}function tp(e,t){if(/^mcp__/i.test(e))return ep(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:qd(n,t),mcpTool:n}}return{mcpServer:null,mcpTool:null}}function np(e,t){let n=`${t}__`;return e.length>n.length&&e.toLowerCase().startsWith(n.toLowerCase())?e.slice(n.length):e}function Ys(e,t=[],n=""){let r=e?tp(e,t):{mcpServer:null,mcpTool:null},o=Qe(n.trim());if(!o)return r;let s=r.mcpTool;return!s&&e&&!Bs(e)&&(s=e),s&&(s=np(s,o)),{mcpServer:o,mcpTool:s}}var qs=3e4,cp="claims",up=!0,lp=100,dp=new Set(["sessionstart","sessionend","stopfailure"]),pp=["tool_name","tool","command","file_path","url"];function fp(e=Zs()){return Xn(oe(e),cp)}function Qs(e){let t=e.split(`
19
+ `,1)[0]??"";return Number(t.trim())}function ei(e){return rp("sha256").update(e).digest("hex").slice(0,32)}function mp(e){let t=[];for(let n of pp){let r=_(e,n).trim();r&&t.push(`${n}=${r}`)}return t.length===0?"":ei(t.join("\0"))}function gp(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=dp.has(n);if(!a&&!c)return;let u=e.runnerPlatform.trim()||"unknown";return ei(`${u}|${t}|${n}|${r}|${o}|${i}|${s}`)}function _p(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}function hp(e,t){return Xn(e,t)}function Sp(e,t=Date.now()){let n;try{n=ip(e)}catch{return}let r=0;for(let o of n){if(r>=lp)break;r+=1;let s=Xn(e,o),i=Number.NaN;try{i=Qs(Js(s,"utf8"))}catch{continue}let a=t-i;if(!(!Number.isFinite(a)||a<0||a<qs))try{Xs(s)}catch{}}}function Ep(e,t,n=Date.now()){let r=hp(t,e);try{if(op(r)){let o=Number.NaN;try{o=Qs(Js(r,"utf8"))}catch{}let s=n-o;if(Number.isFinite(s)&&s>=0&&s<qs)return!1;try{Xs(r)}catch{}}}catch{}try{sp(t,{recursive:!0}),ap(r,`${n}
20
+ `,{encoding:"utf8",flag:"wx"})}catch(o){if(_p(o))return!1;let s=o instanceof Error?o.message:String(o);return h(`WARN: event claim failed open: ${s}`),!0}return Sp(t,n),!0}function yp(e,t,n){let r=_(e,"session_id")||_(e,"conversation_id"),o=_(e,"prompt.id")||_(e,"prompt_id")||_(e,"generation_id")||_(e,"turn_id"),s=_(e,"tool_use_id"),i=_(e,"subagent_id")||_(e,"agent_id"),a=qe(e,t,void 0,n),c=mp(e);return{runnerPlatform:a,sessionId:r,runnerEvent:t,turnId:o,toolUseId:s,subagentId:i,callFingerprint:c}}function ti(e,t,n,r=Zs(),o=Date.now()){if(!up)return!0;let s=gp(yp(e,t,n));if(!s)return!0;let i=Ep(s,fp(r),o);return!i&&I("EV_AI_HOOK_DEBUG")&&h(`DEBUG: duplicate hook event suppressed (claim ${s.slice(0,8)}\u2026)`),i}import{closeSync as Rp,writeSync as Cp}from"node:fs";var ni="EV_AI_LAUNCHER_VERSION";var ri="EV_AI_HOOK_SOURCE",oi="EV_AI_HOOK_FALLBACK_REASON",si="EV_AI_LAUNCHER_SCOPE",Zn="EV_AI_LAUNCHER_READY_FD";var ii=Buffer.from([1]);var wS=1024*1024,vS=4*1024*1024,LS=64*1024,US=64*1024,DS=64*1024;var qn=4096,FS=4*1024*1024;function ai(e=process.env){let t=e[Zn];if(delete e[Zn],t===void 0)return;let n=Number.parseInt(t,10);if(!(!Number.isInteger(n)||n<3)){try{Cp(n,ii)}catch{}try{Rp(n)}catch{}}}function Qn(e=process.env){let t=e[ni];if(t)return{launcherVersion:t,hookSource:e[ri]??"",fallbackReason:e[oi],launcherScope:e[si]}}function ci(e,t){return(e?go(e):void 0)===t}import{realpathSync as a_}from"node:fs";import{homedir as c_}from"node:os";var P=je(Me(),1);import{existsSync as Ip,readFileSync as Ap}from"node:fs";import{homedir as ui}from"node:os";import{join as Op}from"node:path";var Pp="cloud-cache.json",Tp=1440*60*1e3,kp=900*1e3;function xp(e=ui()){return Op(oe(e),Pp)}function bp(e){if(!Ip(e))return;let t=j(Ap(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 Np(e,t){try{Q(e,`${JSON.stringify(t)}
21
+ `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: cloud cache write failed open: ${r}`)}}function Mp(e,t,n){if(!e||e.context!==t)return!1;let r=e.result===null?kp:Tp;return n-e.probed_at<r}async function wp(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 vp(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 Lp(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 Up(e){let t=await Promise.allSettled([wp(e),vp(e),Lp(e)]);for(let n of t)if(n.status==="fulfilled"&&n.value)return n.value;return null}async function er(e,t){if(e==="interactive")return null;let n=t?.home??ui(),r=t?.timeoutMs??1e3,o=t?.nowMs??Date.now(),s=xp(n),i=bp(s);if(Mp(i,e,o))return i.result;let a=await Up(r);return Np(s,{context:e,probed_at:o,result:a}),a}var Dp=["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"],Fp=["CURSOR_PROJECT_DIR"],Hp=new Set(["key","api-key","api_key","apikey","token","sig","signature","access_token","password","pwd","secret","client_secret"]);function jp(e){try{let t=new URL(e);(t.username||t.password)&&(t.username="",t.password="");for(let[n]of t.searchParams)Hp.has(n.toLowerCase())&&t.searchParams.set(n,"[redacted]");return t.toString()}catch{return e}}function tr(e=process.env){let t=Dp.map(r=>Object.prototype.hasOwnProperty.call(e,r)?{name:r,present:!0,value:jp(e[r]??"")}:{name:r,present:!1}),n=Fp.map(r=>({name:r,present:Object.prototype.hasOwnProperty.call(e,r)&&!!e[r]}));return[...t,...n]}import{homedir as hf}from"node:os";import{homedir as li}from"node:os";import{join as $p}from"node:path";function Kp(e=li()){return $p(e,".claude.json")}function Mt(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function di(e=li()){let n=F(Kp(e),{}).oauthAccount;if(!n||typeof n!="object")return null;let r=Mt(n.emailAddress),o=Mt(n.fullName)??Mt(n.displayName),s=Mt(n.accountUuid),i=r??s;return!i||G(o,r)?null:{git_user_name:null,git_user_email:null,platform_login:i,identity_source:"claude_oauth"}}import{homedir as mi}from"node:os";import{join as pi}from"node:path";var Bp="https://api.openai.com/auth";function we(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function gi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Gp(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 gi(r)}catch{return null}}function fi(e,t,n){return we(e[n])??we(t?.[n])}function zp(e=process.env,t=mi()){let n=we(e.CODEX_HOME)??pi(t,".codex");return pi(n,"auth.json")}function _i(e=process.env,t=mi()){let n=F(zp(e,t),{}),r=we(n.auth_mode);if(r!==null&&r!=="chatgpt"||r===null&&we(n.OPENAI_API_KEY))return null;let o=we(n.tokens?.id_token);if(!o)return null;let s=Gp(o);if(!s)return null;let i=gi(s[Bp]),a=fi(s,i,"name"),c=fi(s,i,"email");return!c||G(a,c)?null:{git_user_name:null,git_user_email:null,platform_login:c,identity_source:"codex_oauth"}}import{homedir as Lt}from"node:os";import{join as ae}from"node:path";import{join as Vp}from"node:path";var Wp="cursor-ide-identity.json",Yp=ze;function Si(e){return Vp(oe(e),Wp)}function hi(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Ei(e){let t=F(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:hi(t.email),auth_id:hi(t.auth_id)}}function yi(e,t,n){if(e?.db_path!==t)return!1;let r=n-e.read_at_ms;return r>=0&&r<Yp}function Ri(e,t){try{Q(e,`${JSON.stringify(t)}
22
+ `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: cursor IDE identity cache write failed open: ${r}`)}}import{execFileSync as Jp}from"node:child_process";import{existsSync as Xp}from"node:fs";import{createRequire as Zp}from"node:module";import{pathToFileURL as qp}from"node:url";var Ii=Zp(import.meta.url),wt=`
23
23
  SELECT key, value
24
24
  FROM ItemTable
25
25
  WHERE key LIKE 'cursorAuth/%'
26
26
  AND key NOT LIKE '%Token%'
27
27
  AND key NOT LIKE '%token%'
28
28
  ORDER BY key
29
- `.trim(),er=new Map;function Ci(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 Ai(e){return e.toLowerCase().includes("token")}function Oi(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=Ci(r.key),s=Ci(r.value);o&&s&&!Ai(o)&&t.set(o,s)}return t}function tf(e){let t=ef(e);return t.search="mode=ro&immutable=1",t.href}function nf(e){try{let t=Ii("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(wt)??n.prepare(wt);return Oi(r.all?.())}finally{n.close?.()}}catch{return null}}function rf(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 of(e){try{return rf(()=>{let t=Ii("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return Oi(n.prepare(wt).all?.())}finally{n.close?.()}})}catch{return null}}function sf(e){let t=new Map;for(let n of e.split(`
30
- `)){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&&!Ai(s)&&t.set(s,i)}return t}function af(e){try{let t=Zp("sqlite3",["-noheader","-batch","-separator"," ",e,wt],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return sf(t)}catch{return null}}function Pi(e){let t=er.get(e);if(t)return t;if(!qp(e)){let o=new Map;return er.set(e,o),o}let n=tf(e),r=nf(n)??af(n)??of(n)??new Map;return er.set(e,r),r}var cf="cursorAuth/cachedEmail",uf="cursorAuth/stripeMembershipAuthId";function vt(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function lf(e=Lt(),t=process.platform,n=process.env){let r=vt(n.VSCODE_PORTABLE);if(r)return ae(r,"user-data");let o=vt(n.VSCODE_APPDATA);if(o)return ae(o,"Cursor");switch(t){case"darwin":return ae(e,"Library","Application Support","Cursor");case"win32":return ae(vt(n.APPDATA)??ae(e,"AppData","Roaming"),"Cursor");default:return ae(vt(n.XDG_CONFIG_HOME)??ae(e,".config"),"Cursor")}}function df(e=Lt()){return ae(e,".cursor","cli-config.json")}function pf(e=Lt(),t=process.platform,n=process.env){return ae(lf(e,t,n),"User","globalStorage","state.vscdb")}function et(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ff(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):et(e.userId)}function mf(e){return et(e.email)??et(e.authId)??ff(e)}function tr(e){let t=et(e.email),n=et(e.displayName),r=mf(e);return!r||G(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function gf(e){let n=D(df(e),{}).authInfo;return!n||typeof n!="object"?null:tr(n)}function _f(e,t,n){let r=pf(e,process.platform,t),o=Ei(e),s=Si(o);if(yi(s,r,n))return tr({email:s?.email,authId:s?.auth_id});let i=Pi(r),a=i.get(cf)??null,c=i.get(uf)??null;return Ri(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),tr({email:a,authId:c})}function Ti(e=Lt(),t=process.env,n=Date.now()){return gf(e)??_f(e,t,n)}import{createHash as hf}from"node:crypto";import{resolve as Ef}from"node:path";function U(e){return hf("sha256").update(e).digest("hex").slice(0,16)}function nr(e){return U(Ef(e))}function V(e,t){return`${e}\0${t}`}function ki(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function tt(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(`
31
- `);return U(n)}function yf(e,t,n="git_config",r=null){return U(`${e??""}|${t??""}|${r??""}|${n}`)}function Rf(e){let t=null,n=null;for(let r of e.split(`
32
- `)){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 Cf(e,t=v){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Rf(n)}function If(e=process.env){let t=O(e.GIT_AUTHOR_NAME),n=O(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=O(e.GIT_COMMITTER_NAME),o=O(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=O(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function ce(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 Af(e=process.env){let t=O(e.EV_AI_HOOK_OPERATOR_EMAIL),n=O(e.EV_AI_HOOK_OPERATOR_LOGIN),r=ce(O(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=O(e.GITHUB_ACTOR)??O(e.GITHUB_TRIGGERING_ACTOR)??O(e.GITHUB_USER),s=ce(o,null,"github",o);if(s)return s;let i=O(e.GITLAB_USER_LOGIN),a=O(e.GITLAB_USER_EMAIL),c=ce(O(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let u=O(e.BUILD_REQUESTEDFOREMAIL),l=ce(O(e.BUILD_REQUESTEDFOR),u,"azure_devops",u??O(e.BUILD_REQUESTEDFORID));if(l)return l;let p=O(e.BUILDKITE_BUILD_CREATOR_EMAIL),m=ce(O(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(m)return m;let d=O(e.BUILD_USER_EMAIL)??O(e.CHANGE_AUTHOR_EMAIL),g=ce(O(e.BUILD_USER)??O(e.CHANGE_AUTHOR),d,"jenkins",d??O(e.BUILD_USER_ID));if(g)return g;let E=O(e.CIRCLE_USERNAME),S=ce(E,null,"circleci",E);if(S)return S;let y=O(e.CODEBUILD_INITIATOR),R=ce(y,null,"codebuild",y);if(R)return R;let H=O(e.DRONE_COMMIT_AUTHOR_EMAIL),x=O(e.DRONE_COMMIT_AUTHOR),k=ce(x??O(e.DRONE_COMMIT_AUTHOR_NAME),H,"drone",H??x);if(k)return k;if(xi(e.CLAUDE_CODE_REMOTE)||xi(e.CURSOR_AGENT)){let F=O(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:F&&!G(null,F)?F:null,identity_source:"cloud"}}return null}function rr(e){return!!((e.git_user_name??e.git_user_email)&&!G(e.git_user_name,e.git_user_email))}function O(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function xi(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function Of(e,t,n){return e==="claude"?di(t):e==="cursor"?Ti(t,n):e==="codex"?_i(n,t):null}async function or(e,t=v,n=process.env,r={}){let o=await Cf(e,t),s=If(n),i=rr(o)?o:s&&rr(s)?s:null,a=Of(r.runnerPlatform,r.home??Sf(),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=Af(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:rr(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 sr(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??v,s=e.env??process.env,i=await or(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=yf(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?bn(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let d=n;return{operator:i,commit:()=>{d&&jo(d,a,ft())}}}function ir(e){return e?!bn(e)?.operator_identity_hash:!0}function bi(e){return!0}import{existsSync as Zm,readFileSync as qm}from"node:fs";import{homedir as Oa}from"node:os";import{join as De,resolve as Qm}from"node:path";import{basename as Gm,join as Ue}from"node:path";import{dirname as Ki,resolve as Ft}from"node:path";import{existsSync as Pf}from"node:fs";import{homedir as wi}from"node:os";import{relative as vi,resolve as ee,sep as ge}from"node:path";var Tf=["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"],kf=["prompt","tool_input","tool_response","last_assistant_message","command"],xf=new Set;function bf(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return xf}}function Li(e){return Ui(e)==="allowlist"}function Ui(e){return I("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||I("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function Nf(e){let t={};for(let n of Tf){let r=re(e,n);r!==void 0&&(t[n]=r)}return t}function Ut(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=ee(e),r=ee(t),o=vi(r,n);return!o||o==="."?".":o.startsWith(`..${ge}`)||o===".."||ee(r,o)!==n?null:o.split(ge).join("/")}function Di(e,t){let n=vi(ee(t),ee(e)).split(ge).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function Fi(e){return typeof e!="string"||e.length===0?null:ee(e).split(ge).join("/")}function Mf(){let e=I("CURSOR_PROJECT_DIR");if(!e)return null;let t=ee(e);return Pf(t)?t.split(ge).join("/"):null}function cr(e,t){return Ut(e,t)!==null}function wf(e,t){let n=ee(t??wi(),".cursor").split(ge).join("/");return cr(e,n)}function vf(e,t,n){return t!==null&&cr(e,t)?!0:t!==null&&wf(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&cr(e,n.gitRoot)?!0:t===null}function Hi(e,t){let n=Fi(e.cwd);if(n!==null)return n;let r=ee(process.cwd()).split(ge).join("/"),o=Mf();return vf(r,o,t)?r:o??r}function dr(e,t={}){return Hi(e,t)}function pr(e,t=wi()){let n=ee(t).split(ge).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function Ni(e,t,n){let r=Fi(n.launchCwd)??Hi(t,n);e.cwd=pr(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Ut(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var ji="\u2026[truncated]\u2026",ur=Buffer.byteLength(ji,"utf8"),Lf=8;function nt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Mi(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function Uf(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 Df(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=ur)return Mi(e,t);let r=t-ur,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Mi(e,o)}${ji}${Uf(e,s)}`}function lr(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)=>{lr(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||lr(o,[...t,r],n)}function Ff(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 Hf=256;function jf(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 Kf(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=nt(e);if(s<=t)return;let i=[];lr(e,[],i),i.sort((l,p)=>p.bytes-l.bytes);let a=i.filter(l=>l.bytes>n);if(a.length===0)return;let c=jf(a,s-t,n),u=Math.max(n,Math.min(c,r-1));if(u>=r)return;r=u;for(let l of a)l.bytes>r&&Ff(e,l.path,Df(l.value,r))}}function $f(e,t){let n=Math.max(0,t-Hf),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:nt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(nt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function ar(e,t){let n=nt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,Kf(r,t,ur+Lf),nt(r)>t&&$f(r,t),r}function Bf(e,t,n){let r=bf(n.runnerEvent);for(let o of kf){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Dt(e,t,n={}){let r=Ui(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,Ni(s,e,n),ar(s,On)}let o=Nf(e);return Ni(o,e,n),r==="content"?(Bf(o,e,n),ar(o,On)):ar(o,Ao)}function Gf(e){return typeof e=="string"&&e.length>0}function fr(e){let t=Ft(e.home),n=Ft(e.launchCwd),r=e.gitRoot?Ft(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&Gf(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&&Ut(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=Ki(r);for(;;){let l=Ft(u);if(l===t)break;let p=Ki(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=Di(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as $i,readdirSync as zf,realpathSync as Vf}from"node:fs";import{basename as Wf,dirname as Yf,relative as Jf,resolve as Xf,sep as Zf}from"node:path";var mr=400,Ht=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??ue}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=Xf(t).split(Zf).join("/");return pr(r,this.home)}let n=Jf(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${U(Yf(t))}/${Wf(t)}`:n}claimFile(t){try{let n=Vf(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(!$i(t))return[];try{return zf(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if($i(t))return D(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 gr,readFileSync as qf,statSync as Qf}from"node:fs";import{basename as Gi,join as rt,relative as zi}from"node:path";var _r=100*1024,em=4;function tm(e){return e.length<=_r?e:`${e.slice(0,_r-1)}\u2026`}function nm(e){try{let t=qf(e),n=t.toString("utf8");return{hash:U(t),length:t.length,text:tm(n)}}catch{return null}}var Bi={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function rm(e){return e in Bi?Bi[e]:"UNSPECIFIED"}function jt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=nm(t.absolutePath);if(!n)return!1;let r=t.name??Gi(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=rm(t.kind);return s&&(o.trigger=s),e.push(o)}function om(e,t,n){let r=zi(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Gi(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function Ie(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a}=t;hr(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a})}function hr(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u}=t;if(!(o>em))for(let l of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(c){if(!l.isDirectory())continue;let d=rt(r,l.name,c);if(gr(d)){let g=zi(n,rt(r,l.name)).replace(/\\/g,"/");jt(e,{absolutePath:d,kind:s,origin:i,enabled:a,name:g||l.name});continue}hr(e,{walkRoot:n,currentDir:rt(r,l.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u});continue}if(l.isDirectory()){hr(e,{walkRoot:n,currentDir:rt(r,l.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u});continue}if(!l.isFile()||!u)continue;let p=l.name.toLowerCase();if(!u.some(d=>p.endsWith(d)))continue;let m=rt(r,l.name);jt(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:om(n,m,!0)})}}function Vi(e){for(let t of e)if(gr(t))try{if(Qf(t).size>0)return t}catch{continue}return e.find(t=>gr(t))}var Kt=je(Me(),1);var sm="<omitted>",im=["package_name","package_spec","package_version","package_version_source"],Wi=100,Yi=120,$t=[{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"}],Ji=new Set($t.map(e=>e.attr)),am=["enabled","disabled"],cm=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],um=new Set(["type","command","url","args","env","envVars","headers",...am,...cm,...$t.map(e=>e.raw)]),lm=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",...im,...Ji,...[...Ji].map(e=>`${e}_truncated`)]);function Xi(e,t){for(let n of t)um.has(n)||lm.has(n)||(e[n]=sm)}var dm=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,pm=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,fm=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,mm=/^bearer(?:\s+|$)/i;function Bt(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Zi(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Er(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=Bt(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function Ae(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function gm(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,Kt.launchContainsCredentials)({kind:"url",url:e})||(0,Kt.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=st([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,Kt.launchContainsCredentials)({kind:"url",url:r}):!0)}function qi(e,t,n){gm(t,n)&&(e.launch_had_credentials=!0)}function _m(e){return fm.test(e)||mm.test(e)?"<redacted>":e.includes("://")?Ae(e):e}function Qi(e){if(/^https?:\/\//i.test(e))return Ae(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Qi(e.slice(t+1))}`:_m(e)}function hm(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return dm.test(t)||pm.test(t)}function st(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(hm(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Qi(r))}return t}function Em(e){let t=Zi(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Yi?r.slice(0,Yi):r))].sort();if(n.length!==0)return n.length>Wi?{names:n.slice(0,Wi),truncated:!0}:{names:n,truncated:!1}}function Sm(e){let t=Bt(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 ea(e,t){let n=new Set;for(let{raw:r,attr:o}of $t){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=Em(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function ta(e,t){let n=Bt(e),r={transport:t};if(!n)return r;Xi(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=Zi(n.args);a&&(r.command_or_url=Ae(a));let u=st(c);u.length>0&&(r.args=u),qi(r,a,c);let l=Sm(n.env_http_headers),p=[...new Set([...Er(n.env),...Er(n.envVars),...Er(n.env_vars),...l.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),l.headers.length>0&&(r.env_http_header_names=[...new Set(l.headers)].sort());for(let E of["headers","http_headers","env_http_headers"])if(n[E]!==void 0&&n[E]!==null){r.headers_present=!0;break}let m=typeof n.auth=="string"?n.auth:void 0;m&&(r.auth=m);let d=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;d&&(r.bearer_token_env_var=d);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),ea(r,n),r}function na(e){let t=Bt(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function Rr(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return U(JSON.stringify({name:e,attributes:r,enabled:n}))}function ve(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function ot(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 yr(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function Sr(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=ve(n[1]);return r.length>0?r:void 0}function ym(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],ve(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(`
33
- ${e}`);return s?.[1]&&r(s[1]),n}function ra(e){return yr(e,"enabled")===!1?!1:yr(e,"disabled")!==!0}function Rm(e,t){let n={};for(let{raw:r,attr:o}of $t){if(o==="auto_approve"){let i=yr(t,r);if(i!==void 0){n[r]=i;continue}}let s=ot(t,r);s.length>0&&(n[r]=s)}ea(e,n)}var Cm=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,Im=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function Am(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
34
- `)){let s=Cm.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(Im))o[1]&&t.add(o[1]);return[...t]}function oa(e,t){let n={transport:t};Xi(n,Am(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?ve(r[1]??""):void 0,i=o?ve(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=ot(e,"args");a&&(n.command_or_url=Ae(a));let u=st(c);u.length>0&&(n.args=u),qi(n,a,c);let l=new Set;for(let y of e.split(`
29
+ `.trim(),nr=new Map;function Ci(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 Ai(e){return e.toLowerCase().includes("token")}function Oi(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=Ci(r.key),s=Ci(r.value);o&&s&&!Ai(o)&&t.set(o,s)}return t}function Qp(e){let t=qp(e);return t.search="mode=ro&immutable=1",t.href}function ef(e){try{let t=Ii("bun:sqlite");if(typeof t.Database!="function")return null;let n=new t.Database(e,{readonly:!0,create:!1});try{let r=n.query?.(wt)??n.prepare(wt);return Oi(r.all?.())}finally{n.close?.()}}catch{return null}}function tf(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 nf(e){try{return tf(()=>{let t=Ii("node:sqlite");if(typeof t.DatabaseSync!="function")return null;let n=new t.DatabaseSync(e,{readOnly:!0});try{return Oi(n.prepare(wt).all?.())}finally{n.close?.()}})}catch{return null}}function rf(e){let t=new Map;for(let n of e.split(`
30
+ `)){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&&!Ai(s)&&t.set(s,i)}return t}function of(e){try{let t=Jp("sqlite3",["-noheader","-batch","-separator"," ",e,wt],{encoding:"utf8",timeout:2e3,maxBuffer:65536,windowsHide:!0,stdio:["ignore","pipe","ignore"]});return rf(t)}catch{return null}}function Pi(e){let t=nr.get(e);if(t)return t;if(!Xp(e)){let o=new Map;return nr.set(e,o),o}let n=Qp(e),r=ef(n)??of(n)??nf(n)??new Map;return nr.set(e,r),r}var sf="cursorAuth/cachedEmail",af="cursorAuth/stripeMembershipAuthId";function vt(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function cf(e=Lt(),t=process.platform,n=process.env){let r=vt(n.VSCODE_PORTABLE);if(r)return ae(r,"user-data");let o=vt(n.VSCODE_APPDATA);if(o)return ae(o,"Cursor");switch(t){case"darwin":return ae(e,"Library","Application Support","Cursor");case"win32":return ae(vt(n.APPDATA)??ae(e,"AppData","Roaming"),"Cursor");default:return ae(vt(n.XDG_CONFIG_HOME)??ae(e,".config"),"Cursor")}}function uf(e=Lt()){return ae(e,".cursor","cli-config.json")}function lf(e=Lt(),t=process.platform,n=process.env){return ae(cf(e,t,n),"User","globalStorage","state.vscdb")}function et(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function df(e){return typeof e.userId=="number"&&Number.isFinite(e.userId)?String(e.userId):et(e.userId)}function pf(e){return et(e.email)??et(e.authId)??df(e)}function rr(e){let t=et(e.email),n=et(e.displayName),r=pf(e);return!r||G(n,t)?null:{git_user_name:null,git_user_email:null,platform_login:r,identity_source:"cursor_oauth"}}function ff(e){let n=F(uf(e),{}).authInfo;return!n||typeof n!="object"?null:rr(n)}function mf(e,t,n){let r=lf(e,process.platform,t),o=Si(e),s=Ei(o);if(yi(s,r,n))return rr({email:s?.email,authId:s?.auth_id});let i=Pi(r),a=i.get(sf)??null,c=i.get(af)??null;return Ri(o,{read_at_ms:n,db_path:r,email:a,auth_id:c}),rr({email:a,authId:c})}function Ti(e=Lt(),t=process.env,n=Date.now()){return ff(e)??mf(e,t,n)}import{createHash as gf}from"node:crypto";import{resolve as _f}from"node:path";function v(e){return gf("sha256").update(e).digest("hex").slice(0,16)}function or(e){return v(_f(e))}function V(e,t){return`${e}\0${t}`}function ki(e){let t=e.indexOf("\0");return t<=0?null:{path:e.slice(0,t),name:e.slice(t+1)}}function tt(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(`
31
+ `);return v(n)}function Sf(e,t,n="git_config",r=null){return v(`${e??""}|${t??""}|${r??""}|${n}`)}function Ef(e){let t=null,n=null;for(let r of e.split(`
32
+ `)){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 yf(e,t=w){let n=await t("git",["config","--get-regexp","^user\\.(name|email)$"],2e3,{cwd:e});return Ef(n)}function Rf(e=process.env){let t=O(e.GIT_AUTHOR_NAME),n=O(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=O(e.GIT_COMMITTER_NAME),o=O(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=O(e.EMAIL);return s?{git_user_name:null,git_user_email:s,platform_login:null,identity_source:"git_env"}:null}function ce(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 Cf(e=process.env){let t=O(e.EV_AI_HOOK_OPERATOR_EMAIL),n=O(e.EV_AI_HOOK_OPERATOR_LOGIN),r=ce(O(e.EV_AI_HOOK_OPERATOR_NAME),t,"configured",t??n);if(r)return r;let o=O(e.GITHUB_ACTOR)??O(e.GITHUB_TRIGGERING_ACTOR)??O(e.GITHUB_USER),s=ce(o,null,"github",o);if(s)return s;let i=O(e.GITLAB_USER_LOGIN),a=O(e.GITLAB_USER_EMAIL),c=ce(O(e.GITLAB_USER_NAME)??i,a,"gitlab",a??i);if(c)return c;let u=O(e.BUILD_REQUESTEDFOREMAIL),l=ce(O(e.BUILD_REQUESTEDFOR),u,"azure_devops",u??O(e.BUILD_REQUESTEDFORID));if(l)return l;let p=O(e.BUILDKITE_BUILD_CREATOR_EMAIL),m=ce(O(e.BUILDKITE_BUILD_CREATOR),p,"buildkite",p);if(m)return m;let d=O(e.BUILD_USER_EMAIL)??O(e.CHANGE_AUTHOR_EMAIL),g=ce(O(e.BUILD_USER)??O(e.CHANGE_AUTHOR),d,"jenkins",d??O(e.BUILD_USER_ID));if(g)return g;let S=O(e.CIRCLE_USERNAME),E=ce(S,null,"circleci",S);if(E)return E;let y=O(e.CODEBUILD_INITIATOR),R=ce(y,null,"codebuild",y);if(R)return R;let H=O(e.DRONE_COMMIT_AUTHOR_EMAIL),k=O(e.DRONE_COMMIT_AUTHOR),x=ce(k??O(e.DRONE_COMMIT_AUTHOR_NAME),H,"drone",H??k);if(x)return x;if(xi(e.CLAUDE_CODE_REMOTE)||xi(e.CURSOR_AGENT)){let L=O(e.CURSOR_USER_EMAIL);return{git_user_name:null,git_user_email:null,platform_login:L&&!G(null,L)?L:null,identity_source:"cloud"}}return null}function sr(e){return!!((e.git_user_name??e.git_user_email)&&!G(e.git_user_name,e.git_user_email))}function O(e){if(e===void 0)return null;let t=e.trim();return t.length>0?t:null}function xi(e){if(e===void 0||e==="")return!1;let t=e.trim().toLowerCase();return t!=="0"&&t!=="false"&&t!=="no"}function If(e,t,n){return e==="claude"?di(t):e==="cursor"?Ti(t,n):e==="codex"?_i(n,t):null}async function ir(e,t=w,n=process.env,r={}){let o=await yf(e,t),s=Rf(n),i=sr(o)?o:s&&sr(s)?s:null,a=If(r.runnerPlatform,r.home??hf(),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=Cf(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:sr(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 ar(e){let{gitRoot:t,installationStorePath:n,forceResend:r}=e,o=e.exec??w,s=e.env??process.env,i=await ir(t,o,s,{runnerPlatform:e.runnerPlatform,home:e.home}),a=Sf(i.git_user_name,i.git_user_email,i.identity_source,i.platform_login),u=(n?bn(n):void 0)?.operator_identity_hash;if(!(r||u!==void 0&&u!==a||!u))return{commit:()=>{}};let d=n;return{operator:i,commit:()=>{d&&Uo(d,a,ft())}}}function cr(e){return e?!bn(e)?.operator_identity_hash:!0}function bi(e){return!0}import{existsSync as Jm,readFileSync as Xm}from"node:fs";import{homedir as Oa}from"node:os";import{join as De,resolve as Zm}from"node:path";import{basename as Km,join as Ue}from"node:path";import{dirname as $i,resolve as Ft}from"node:path";import{existsSync as Af}from"node:fs";import{homedir as wi}from"node:os";import{relative as vi,resolve as ne,sep as ge}from"node:path";var Of=["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"],Pf=["prompt","tool_input","tool_response","last_assistant_message","command"],Tf=new Set;function kf(e){switch(e?.toLowerCase()){case"beforemcpexecution":return new Set(["command"]);case"stopfailure":return new Set(["last_assistant_message"]);default:return Tf}}function Li(e){return Ui(e)==="allowlist"}function Ui(e){return I("EV_AI_HOOK_CAPTURE_CONTENT")?.toLowerCase()==="off"||e.capture_hook_input==="allowlist"?"allowlist":e.capture_hook_input==="full"||e.debug===!0||I("EV_AI_HOOK_CAPTURE_FULL_INPUT")==="1"?"full":"content"}function xf(e){let t={};for(let n of Of){let r=re(e,n);r!==void 0&&(t[n]=r)}return t}function Ut(e,t){if(typeof e!="string"||e.length===0||!t)return null;let n=ne(e),r=ne(t),o=vi(r,n);return!o||o==="."?".":o.startsWith(`..${ge}`)||o===".."||ne(r,o)!==n?null:o.split(ge).join("/")}function Di(e,t){let n=vi(ne(t),ne(e)).split(ge).join("/");return!n||n==="."?null:n===".."||n.startsWith("../")&&n.split("/").every(r=>r==="..")?n:null}function Fi(e){return typeof e!="string"||e.length===0?null:ne(e).split(ge).join("/")}function bf(){let e=I("CURSOR_PROJECT_DIR");if(!e)return null;let t=ne(e);return Af(t)?t.split(ge).join("/"):null}function lr(e,t){return Ut(e,t)!==null}function Nf(e,t){let n=ne(t??wi(),".cursor").split(ge).join("/");return lr(e,n)}function Mf(e,t,n){return t!==null&&lr(e,t)?!0:t!==null&&Nf(e,n.home)?!1:n.inGitRepo===!0&&n.gitRoot!==void 0&&lr(e,n.gitRoot)?!0:t===null}function Hi(e,t){let n=Fi(e.cwd);if(n!==null)return n;let r=ne(process.cwd()).split(ge).join("/"),o=bf();return Mf(r,o,t)?r:o??r}function fr(e,t={}){return Hi(e,t)}function mr(e,t=wi()){let n=ne(t).split(ge).join("/").replace(/\/$/,"");return n.length<=1?e:e===n?"~":e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function Ni(e,t,n){let r=Fi(n.launchCwd)??Hi(t,n);e.cwd=mr(r,n.home);let o=n.inGitRepo===!0&&n.gitRoot!==void 0?Ut(r,n.gitRoot):null;o!==null&&(e.cwd_relative=o)}var ji="\u2026[truncated]\u2026",dr=Buffer.byteLength(ji,"utf8"),wf=8;function nt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function Mi(e,t){if(t<=0)return"";let n=Buffer.from(e,"utf8");return n.length<=t?e:n.subarray(0,t).toString("utf8")}function vf(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 Lf(e,t){if(Buffer.byteLength(e,"utf8")<=t)return e;if(t<=dr)return Mi(e,t);let r=t-dr,o=Math.ceil(r/2),s=Math.floor(r/2);return`${Mi(e,o)}${ji}${vf(e,s)}`}function pr(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)=>{pr(r,[...t,o],n)});return}if(e!==null&&typeof e=="object")for(let[r,o]of Object.entries(e))t.length===0&&r.startsWith("_")||pr(o,[...t,r],n)}function Uf(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 Df=256;function Ff(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 Hf(e,t,n){let r=Number.POSITIVE_INFINITY;for(let o=0;o<6;o++){let s=nt(e);if(s<=t)return;let i=[];pr(e,[],i),i.sort((l,p)=>p.bytes-l.bytes);let a=i.filter(l=>l.bytes>n);if(a.length===0)return;let c=Ff(a,s-t,n),u=Math.max(n,Math.min(c,r-1));if(u>=r)return;r=u;for(let l of a)l.bytes>r&&Uf(e,l.path,Lf(l.value,r))}}function jf(e,t){let n=Math.max(0,t-Df),r=Object.keys(e).filter(s=>!s.startsWith("_")).map(s=>({key:s,bytes:nt(e[s])})).sort((s,i)=>i.bytes-s.bytes),o=[];for(let{key:s}of r){if(nt(e)<=n)break;delete e[s],o.push(s)}o.length>0&&(e._dropped_keys=o.slice(0,10))}function ur(e,t){let n=nt(e);if(n<=t)return e;let r=structuredClone(e);return r._truncated=!0,r._original_bytes=n,Hf(r,t,dr+wf),nt(r)>t&&jf(r,t),r}function $f(e,t,n){let r=kf(n.runnerEvent);for(let o of Pf){if(r.has(o))continue;let s=t[o];s!==void 0&&(e[o]=s)}}function Dt(e,t,n={}){let r=Ui(t);if(r==="full"){let s={...e};return delete s.cwd,delete s.transcript_path,Ni(s,e,n),ur(s,On)}let o=xf(e);return Ni(o,e,n),r==="content"?($f(o,e,n),ur(o,On)):ur(o,yo)}function Kf(e){return typeof e=="string"&&e.length>0}function gr(e){let t=Ft(e.home),n=Ft(e.launchCwd),r=e.gitRoot?Ft(e.gitRoot):null,o=new Set,s=[],i=null;e.inGitRepo&&Kf(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&&Ut(n,r)!==null;if(e.inGitRepo&&r!==null&&r!==t&&c){let u=$i(r);for(;;){let l=Ft(u);if(l===t)break;let p=$i(l);if(p===l)break;if(e.hasProjectSpec(l)){s.push({scope:"parent",dir:l}),a=Di(l,n);break}u=p}}return{anchors:s,parentRel:a}}import{existsSync as Ki,readdirSync as Bf,realpathSync as Gf}from"node:fs";import{basename as zf,dirname as Vf,relative as Wf,resolve as Yf,sep as Jf}from"node:path";var _r=400,Ht=class{constructor(t,n={}){this.home=t;this.pathMode=n.pathMode??"home-relative",this.maxEntries=n.maxEntries??ue}components=[];truncated=!1;pathMode;maxEntries;pluginExpandRemaining;seenRealpaths=new Set;componentPath(t){if(this.pathMode==="tilde"){let r=Yf(t).split(Jf).join("/");return mr(r,this.home)}let n=Wf(this.home,t).replace(/\\/g,"/");return!n||n.startsWith("..")?`external/${v(Vf(t))}/${zf(t)}`:n}claimFile(t){try{let n=Gf(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(!Ki(t))return[];try{return Bf(t,{withFileTypes:!0})}catch{return[]}}readJson(t,n){if(Ki(t))return F(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 hr,readFileSync as Xf,statSync as Zf}from"node:fs";import{basename as Gi,join as rt,relative as zi}from"node:path";var Sr=100*1024,qf=4;function Qf(e){return e.length<=Sr?e:`${e.slice(0,Sr-1)}\u2026`}function em(e){try{let t=Xf(e),n=t.toString("utf8");return{hash:v(t),length:t.length,text:Qf(n)}}catch{return null}}var Bi={HOOK:"EVENT",COMMAND:"EXPLICIT_INVOCATION",MEMORY:void 0,MCP_SERVER:void 0,PLUGIN:void 0,SKILL:"UNSPECIFIED",RULE:"UNSPECIFIED",SUBAGENT:"UNSPECIFIED"};function tm(e){return e in Bi?Bi[e]:"UNSPECIFIED"}function jt(e,t){if(!e.claimFile(t.absolutePath))return!1;let n=em(t.absolutePath);if(!n)return!1;let r=t.name??Gi(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=tm(t.kind);return s&&(o.trigger=s),e.push(o)}function nm(e,t,n){let r=zi(e,t).replace(/\\/g,"/");return!r||r.startsWith("..")?Gi(t).replace(/\.(md|mdc|toml)$/i,""):n?r.replace(/\.(md|mdc|toml)$/i,""):r}function Ie(e,t){let{dir:n,kind:r,origin:o,enabled:s,nested:i,extensions:a}=t;Er(e,{walkRoot:n,currentDir:n,depth:0,kind:r,origin:o,enabled:s,nested:i,extensions:a})}function Er(e,t){let{walkRoot:n,currentDir:r,depth:o,kind:s,origin:i,enabled:a,nested:c,extensions:u}=t;if(!(o>qf))for(let l of e.readEntries(r)){if(e.atGlobalCap){e.truncated=!0;return}if(e.pluginBudgetSpent)return;if(c){if(!l.isDirectory())continue;let d=rt(r,l.name,c);if(hr(d)){let g=zi(n,rt(r,l.name)).replace(/\\/g,"/");jt(e,{absolutePath:d,kind:s,origin:i,enabled:a,name:g||l.name});continue}Er(e,{walkRoot:n,currentDir:rt(r,l.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u});continue}if(l.isDirectory()){Er(e,{walkRoot:n,currentDir:rt(r,l.name),depth:o+1,kind:s,origin:i,enabled:a,nested:c,extensions:u});continue}if(!l.isFile()||!u)continue;let p=l.name.toLowerCase();if(!u.some(d=>p.endsWith(d)))continue;let m=rt(r,l.name);jt(e,{absolutePath:m,kind:s,origin:i,enabled:a,name:nm(n,m,!0)})}}function Vi(e){for(let t of e)if(hr(t))try{if(Zf(t).size>0)return t}catch{continue}return e.find(t=>hr(t))}var $t=je(Me(),1);var rm="<omitted>",om=["package_name","package_spec","package_version","package_version_source"],Wi=100,Yi=120,Kt=[{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"}],Ji=new Set(Kt.map(e=>e.attr)),sm=["enabled","disabled"],im=["serverUrl","auth","bearer_token_env_var","default_tools_approval_mode","defaultToolsApprovalMode","env_vars","env_http_headers","http_headers"],am=new Set(["type","command","url","args","env","envVars","headers",...sm,...im,...Kt.map(e=>e.raw)]),cm=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",...om,...Ji,...[...Ji].map(e=>`${e}_truncated`)]);function Xi(e,t){for(let n of t)am.has(n)||cm.has(n)||(e[n]=rm)}var um=/^(authorization|auth|api[-_]?key|access[-_]?token|refresh[-_]?token|secret|password|passwd|token|bearer|client[-_]?secret|client[-_]?id|private[-_]?key|signing[-_]?key)$/i,lm=/(?:^|[-_])(secret|password|passwd|token|api[-_]?key|private[-_]?key|signing[-_]?key|client[-_]?secret|client[-_]?id)(?:[-_]|$)/i,dm=/^(sk-|ghp_|gho_|github_pat_|xox[baprs]-|AKIA|ASIA|AIza|ya29\.)/,pm=/^bearer(?:\s+|$)/i;function Bt(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Zi(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function yr(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=Bt(e);return t?Object.keys(t).filter(n=>n.length>0):[]}function Ae(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch{return e}}function fm(e,t){if(e!==void 0&&/^https?:\/\//i.test(e)&&(0,$t.launchContainsCredentials)({kind:"url",url:e})||(0,$t.launchContainsCredentials)({kind:"command",command:e??"",arguments:t}))return!0;let n=st([...t]);return t.some((r,o)=>n[o]===r?!1:/^https?:\/\//i.test(r)?(0,$t.launchContainsCredentials)({kind:"url",url:r}):!0)}function qi(e,t,n){fm(t,n)&&(e.launch_had_credentials=!0)}function mm(e){return dm.test(e)||pm.test(e)?"<redacted>":e.includes("://")?Ae(e):e}function Qi(e){if(/^https?:\/\//i.test(e))return Ae(e);let t=e.indexOf("=");return t>0?`${e.slice(0,t+1)}${Qi(e.slice(t+1))}`:mm(e)}function gm(e){let t=e.replace(/^-+/,"").split("=",1)[0]??"";return um.test(t)||lm.test(t)}function st(e){let t=[],n=!1;for(let r of e){if(n){t.push("<redacted>"),n=!1;continue}if(gm(r)){t.push("<redacted>"),n=!r.includes("=");continue}t.push(Qi(r))}return t}function _m(e){let t=Zi(e);if(t.length===0)return;let n=[...new Set(t.map(r=>r.length>Yi?r.slice(0,Yi):r))].sort();if(n.length!==0)return n.length>Wi?{names:n.slice(0,Wi),truncated:!0}:{names:n,truncated:!1}}function hm(e){let t=Bt(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 ea(e,t){let n=new Set;for(let{raw:r,attr:o}of Kt){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=_m(s);i&&(e[o]=i.names,i.truncated&&(e[`${o}_truncated`]=!0),n.add(o))}}function ta(e,t){let n=Bt(e),r={transport:t};if(!n)return r;Xi(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=Zi(n.args);a&&(r.command_or_url=Ae(a));let u=st(c);u.length>0&&(r.args=u),qi(r,a,c);let l=hm(n.env_http_headers),p=[...new Set([...yr(n.env),...yr(n.envVars),...yr(n.env_vars),...l.envVars,...typeof n.bearer_token_env_var=="string"&&n.bearer_token_env_var.length>0?[n.bearer_token_env_var]:[]])].sort();p.length>0&&(r.env_var_names=p),l.headers.length>0&&(r.env_http_header_names=[...new Set(l.headers)].sort());for(let S of["headers","http_headers","env_http_headers"])if(n[S]!==void 0&&n[S]!==null){r.headers_present=!0;break}let m=typeof n.auth=="string"?n.auth:void 0;m&&(r.auth=m);let d=typeof n.bearer_token_env_var=="string"?n.bearer_token_env_var:void 0;d&&(r.bearer_token_env_var=d);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),ea(r,n),r}function na(e){let t=Bt(e);return t?t.enabled===!1?!1:t.disabled!==!0:!0}function Ir(e,t,n=!0){let r=Object.keys(t).sort().map(o=>[o,t[o]??null]);return v(JSON.stringify({name:e,attributes:r,enabled:n}))}function ve(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t}function ot(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 Cr(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(true|false)\\s*$`,"m").exec(e);if(n?.[1])return n[1]==="true"}function Rr(e,t){let n=new RegExp(`^\\s*${t}\\s*=\\s*(.+)$`,"m").exec(e);if(!n?.[1])return;let r=ve(n[1]);return r.length>0?r:void 0}function Sm(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],ve(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(`
33
+ ${e}`);return s?.[1]&&r(s[1]),n}function ra(e){return Cr(e,"enabled")===!1?!1:Cr(e,"disabled")!==!0}function Em(e,t){let n={};for(let{raw:r,attr:o}of Kt){if(o==="auto_approve"){let i=Cr(t,r);if(i!==void 0){n[r]=i;continue}}let s=ot(t,r);s.length>0&&(n[r]=s)}ea(e,n)}var ym=/^\s*([A-Za-z_][A-Za-z0-9_-]*)\s*[.=]/,Rm=/^\[[^\]]*\.([A-Za-z_][A-Za-z0-9_-]*)\]\s*$/gm;function Cm(e){let t=new Set,n=e.search(/^\[/m),r=n===-1?e:e.slice(0,n);for(let o of r.split(`
34
+ `)){let s=ym.exec(o);s?.[1]&&t.add(s[1])}for(let o of e.matchAll(Rm))o[1]&&t.add(o[1]);return[...t]}function oa(e,t){let n={transport:t};Xi(n,Cm(e));let r=/^\s*command\s*=\s*(.+)$/m.exec(e),o=/^\s*url\s*=\s*(.+)$/m.exec(e),s=r?ve(r[1]??""):void 0,i=o?ve(o[1]??""):void 0,a=s!==void 0&&s.length>0?s:i,c=ot(e,"args");a&&(n.command_or_url=Ae(a));let u=st(c);u.length>0&&(n.args=u),qi(n,a,c);let l=new Set;for(let y of e.split(`
35
35
  `)){let R=/^\s*env\.([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(y);R?.[1]&&l.add(R[1])}let p=/^\s*env\s*=\s*\{([^}]*)\}/m.exec(e);if(p?.[1])for(let y of p[1].split(",")){let R=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(y);R?.[1]&&l.add(R[1])}let m=/(?:^|\n)\[[^\]]*env\]\s*\n([\s\S]*?)(?=\n\[|$)/.exec(`
36
36
  ${e}`);if(m?.[1])for(let y of m[1].split(`
37
- `)){let R=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(y);R?.[1]&&l.add(R[1])}for(let y of ot(e,"env_vars"))l.add(y);let d=ym(e,"env_http_headers");for(let[,y]of d)y.length>0&&l.add(y);let g=Sr(e,"bearer_token_env_var");g&&(l.add(g),n.bearer_token_env_var=g),l.size>0&&(n.env_var_names=[...l].sort()),d.length>0&&(n.env_http_header_names=[...new Set(d.map(([y])=>y))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let E=Sr(e,"auth");E&&(n.auth=E);let S=Sr(e,"default_tools_approval_mode");return S&&(n.default_tools_approval_mode=S),Rm(n,e),n}var Om=300,Pm=256;function sa(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 Gt(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 ia(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function Tm(e){return ia(e,Om)}function aa(e,t){let n=sa(e.trim(),t),r=Gt(n);if(r.length===0)return"";let[o,...s]=r,i=Ae(o),a=st(s);return Tm([i,...a].join(" "))}function ca(e,t){if(typeof e!="string")return null;let n=sa(e.trim(),t),r=Gt(n)[0];if(!r)return null;let o=Ae(r);return o.length===0?null:ia(o,Pm)}function km(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 xm(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 bm(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let u of xm(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=km({type:u.type??c.type,command:u.command??c.command,bash:u.bash??c.bash,powershell:u.powershell??c.powershell,prompt:u.prompt??c.prompt}),m=typeof c.matcher=="string"?c.matcher:"",d=U(l),g=m?`${s}:${m}:${p}:${d}`:`${s}:${p}:${d}`,E=`${s}|${m}|${p}|${l}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:U(E),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...m?{matcher:m}:{},action_kind:p,action_hash:d,...p!=="prompt"&&l.trim()?{command:aa(l,e.home)}:{}}})}}}function Le(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||bm(e,t,r.hooks,n)}import{existsSync as Um,readFileSync as Dm}from"node:fs";var _e=je(Me(),1);import{createHash as Nm}from"node:crypto";import{join as it}from"node:path";function Mm(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
38
- `);return Nm("sha512").update(t).digest("hex").slice(0,16)}function wm(e){let t=process.platform==="win32"?it(I("LOCALAPPDATA")??e,"npm-cache"):it(e,".npm"),n=I("npm_config_cache")??I("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function ua(e){return typeof e=="string"&&e.length>0&&e.length<=_e.PACKAGE_FIELD_MAX?e:null}function vm(e,t,n){let r=Mm(e);for(let o of wm(n)){let s=it(o,"_npx",r),i=D(it(s,"node_modules",...t.split("/"),"package.json"),{}),a=ua(i.version);if(a!==null)return a;let c=D(it(s,"package-lock.json"),{}),u=ua(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function Lm(e){return e.length<=_e.PACKAGE_FIELD_MAX?e:`${e.slice(0,_e.PACKAGE_FIELD_MAX-1)}\u2026`}function Cr(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,_e.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,_e.packageNameFromSpec)(o);if(s===null)return null;let i=vm(r,s,n);return{package_name:s,package_spec:Lm(o),...i===null?{}:{package_version:i,package_version_source:"npx_cache"}}}function la(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Gt(e.trim());return n===void 0?null:Cr(n,r,t)}function zt(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 Cr(typeof n.command=="string"?n.command:null,r,t)}function da(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Cr(ve(n[1]??""),ot(e,"args"),t)}function Fm(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 pa(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=Fm(a),u=ta(a,c);Object.assign(u,zt(a,e.home)??{});let l=na(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:Rr(i,u,l),origin:n,enabled:l,attributes:u})}}function fa(e,t,n){if(!Um(t)||!e.claimFile(t))return;let r;try{r=Dm(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),u=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),l=u===-1?c:c.slice(0,u),p="unknown";/^\s*url\s*=/m.test(l)?p="http":/^\s*command\s*=/m.test(l)&&(p="stdio");let m=oa(l,p);Object.assign(m,da(l,e.home)??{});let d=ra(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:Rr(a,m,d),origin:n,enabled:d,attributes:m})}}import{existsSync as Hm,readdirSync as jm}from"node:fs";import{join as B}from"node:path";var ma=50;function Ir(e,t,n,r){if(!Hm(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(ma,()=>{Ie(e,{dir:B(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),Ie(e,{dir:B(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),Ie(e,{dir:B(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});Le(e,B(t,"hooks","hooks.json"),n),Le(e,B(t,"hooks.json"),n);let i=e.components.length-o,a=s>=ma;return{componentCount:i,expandTruncated:a}}function Ar(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 ga(e){let t=B(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(B(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let u=Array.isArray(c)?c:[c],l=u[0]??{},p=s[a]===!0,m=a.includes("@")?a.split("@").slice(1).join("@"):"",d=typeof l.version=="string"?l.version:"",g=typeof l.scope=="string"?l.scope:"user",E=`plugin:${a}`,S=0,y=!1;for(let R of u)if(typeof R.installPath=="string"&&R.installPath.length>0){let H=Ir(e,R.installPath,E,p);S+=H.componentCount,y=y||H.expandTruncated}Ar(e,{pluginKey:a,rowPath:i,enabled:p,scope:g,version:d||void 0,marketplace:m||void 0,componentCount:S,expandTruncated:y,contentHash:U(`${a}|${d}|${g}|${p}|${S}`)})}}function Km(e){let t=e,n="";try{let r=jm(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=B(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=B(e,s),n=s)}}catch{}return{installPath:t,version:n}}var $m=/^\d+$/;function Bm(e){let t=e.filter(n=>!$m.test(n.pluginId));return t.length>0?t:e}function _a(e){let t=[{base:B(e.home,".cursor/plugins/local"),scope:"local"},{base:B(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=B(n,o.name),u=`plugin:${a}`,{componentCount:l,expandTruncated:p}=Ir(e,c,u,!0);Ar(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:l,expandTruncated:p,contentHash:U(`${a}|local|${l}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(B(n,s))){if(!a.isDirectory())continue;let c=B(n,s,a.name),{installPath:u,version:l}=Km(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of Bm(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=Ir(e,a.installPath,u,!0);Ar(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:l,expandTruncated:p,contentHash:U(`${c}|${a.version}|${l}`)})}}}function zm(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)Ie(e,{dir:Ue(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md"});for(let i of n.dirs)Ie(e,{dir:Ue(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=Vi(i.map(c=>Ue(r,c)));a&&jt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:Gm(a)})}for(let i of Xo(n))Le(e,Ue(r,i),o);for(let i of n.mcpJson??[])pa(e,Ue(r,i),o);for(let i of n.mcpToml??[])fa(e,Ue(r,i),o);if(s){if(n.managed)for(let i of Ct(n.managed,process.platform,e.home))i.toLowerCase().endsWith(".json")&&Le(e,i,o);n.plugins==="claude"?ga(e):n.plugins==="cursor"&&_a(e)}}function ha(e,t){try{let n=new Ht(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)zm(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 Or(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=ha(t,{layouts:Object.values(ke),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:ue,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(de),u=fr({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>qo(c,l)});i=u.parentRel;for(let l of u.anchors){let p=nr(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let m=ha(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:mr,scopeRef:p});m&&(r[l.scope]=m)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function Pr(e,t,n={}){let r=n.truncated===!0,o=tt(e),s=new Set(e.map(l=>V(l.path,l.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let l of e){let p=V(l.path,l.name);c[p]!==l.content_hash&&a.push(l)}let u=[];if(!r){for(let l of Object.keys(c))if(!s.has(l)){let p=ki(l);p&&u.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:u,unchanged:a.length===0&&u.length===0}}var Sa=2*1024*1024,Vm=new Set(["HOOK","MCP_SERVER","PLUGIN"]);function Tr(e,t,n){let r=new Set(t.map(s=>V(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(V(s.path,s.name))||o.push(s));return o}function kr(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 Ea(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function ya(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function xr(e,t=Sa){let n=[],r=[];for(let l of e)Vm.has(l.kind)?n.push(l):r.push(l);r.sort((l,p)=>(l.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,u=[];for(let l of o){let p=s.length>0?1:0,m=Ea(l)+p;if(i+m<=t){s.push(l),i+=m,l.text!==void 0&&u.push(l.content_hash);continue}if(l.text!==void 0){let d=ya(l),g=Ea(d)+p;if(i+g<=t){s.push(d),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:u}}function br(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:ya(n))}var Wm=["user","cwd","repo","parent"];function Nr(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let x of Wm){let k=t.scopes[x];if(!k)continue;let F=n(x,k.scopeRef),L=F.components,K=Pr(k.components,L,{forceFull:L===void 0,truncated:k.truncated}),te=new Set(F.textHashes),M=Tr(k.components,K.upserts,te),w=br([...K.upserts,...M],te);s.push({scope:x,walk:k,delta:K,outgoing:w,outgoingKeys:new Set(w.map(C=>V(C.path,C.name))),deliveredTextHashes:te,cachedComponents:L})}let i=s.flatMap(x=>x.outgoing),a=xr(i,o),c=new Set(a.components.map(x=>V(x.path,x.name))),u=[],l=[],p=[],m=[],d=[],g=[],E=[];for(let x of s){let{scope:k,walk:F,delta:L}=x;g.push(...F.components),u.push(k);let K=a.components.filter(C=>x.outgoingKeys.has(V(C.path,C.name))),te=[...x.outgoingKeys].some(C=>!c.has(C)),M=L.truncated||te;M?p.push(k):L.full&&l.push(k),m.push(...K),!L.full&&!M&&d.push(...L.removed);let w=L.full?{}:{...x.cachedComponents??{}};if(!M)for(let C of L.removed)delete w[V(C.path,C.name)];for(let C of K)w[V(C.path,C.name)]=C.content_hash;E.push({scope:k,scopeRef:F.scopeRef,components:w,textHashes:kr(x.deliveredTextHashes,K.filter(C=>C.text!==void 0).map(C=>C.content_hash),F.components),collectedAtMs:r,included:K.length>0||L.removed.length>0&&!M||L.full})}let S={user_spec_hash:tt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};u.length>0&&(S.user_spec_scopes=u,S.user_spec_full_scopes=l,S.user_spec_truncated_scopes=p,S.user_spec_cwd_in_git_repo=t.cwdInGitRepo),l.length>0&&l.length===u.length&&(S.user_spec_full=!0),m.length>0&&(S.user_spec=m),d.length>0&&(S.user_spec_removed=d),a.textDeferredCount>0&&(S.user_spec_text_deferred=a.textDeferredCount);let y=t.scopes.cwd;y&&(S.user_spec_cwd_scope_ref=y.scopeRef);let R=t.scopes.repo;R&&(S.user_spec_repo_scope_ref=R.scopeRef);let H=t.scopes.parent;return H&&(S.user_spec_parent_scope_ref=H.scopeRef,t.parentRel&&(S.user_spec_parent_rel=t.parentRel)),{fields:S,scopes:E}}var ct={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Vt(e){return e==="cwd"||e==="repo"||e==="parent"}function at(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Mr(e){return!at(e)||!at(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 Ra(e){return Ym(e)}function Ca(e){return Jm(e)}function Ia(e){return Xm(e)}function Ym(e){if(!at(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Jm(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function wr(e,t){if(!at(e))return;let n=e[t];return Mr(n)?n:void 0}function Xm(e){if(!at(e))return{};let t={};for(let[n,r]of Object.entries(e))Mr(r)&&(t[n]=r);return t}function vr(e,t=20){let n=[];for(let[r,o]of Object.entries(e))Mr(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 eg=200,Aa=200,tg=["allow","deny","ask"],ng=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,Ur="<path>",rg=new RegExp(`${Ur}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function og(e){let t=e.replace(ng,Ur).replace(rg,Ur);return t.length>Aa?`${t.slice(0,Aa)}...`:t}function Yt(e){let t=D(e,{}),n=[];for(let r of tg)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:og(o),mode:r});return{model:t.model??"",permissionKeys:n}}function sg(e){let{serverManaged:t,fileBased:n}=Nn(process.platform,e),r=Yt(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Yt(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function ig(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 ag=10,cg="self-config-cache.json",Pa=2;function Jt(){return I("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function ug(){return I("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}function lg(e,t=Date.now()){return e===void 0||!Number.isFinite(e)?!0:t-e>=ze}var dg={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function pg(e,t=v){let n=dg[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(`
39
- `)[0]??"").trim();return a||r(o+1)};return r(0)}function fg(e=Oa()){return De(e,".ev-ai","agent-hook",cg)}function mg(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
40
- `);return U(n)}function Wt(e,t,n=!1){let r=mg(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 Lr(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>De(e,a)),...n]){let a=Qm(i);if(s.has(a))continue;s.add(a);let c=fn(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function gg(e){return Zm(e)?j(qm(e,"utf8"),{}):{}}function _g(e,t){try{Z(e,`${JSON.stringify(t)}
41
- `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: self-config cache write failed open: ${r}`)}}function hg(e,t,n){if(t==="user")return e.user_spec_collected_at_ms;if(Vt(t))return wr(e[ct[t]],n)?.collected_at_ms}function Eg(e,t,n){if(t==="user")return{components:Ra(e.user_spec_components),textHashes:Ca(e.user_spec_text_hashes)};if(!Vt(t))return{components:void 0,textHashes:[]};let r=wr(e[ct[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function Sg(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=Pa,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(!Vt(s.scope))continue;let i=ct[s.scope],a=Ia(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]=vr(a)}}return o}async function Ta(e,t=process.cwd(),n=Oa(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await pg(e),a="",c=[];if(o){let M=sg(n),w=Yt(De(n,".claude/settings.json")),C=Yt(De(t,".claude/settings.local.json"));a=M.model||C.model||w.model,c=ig([...M.permissionKeys,...w.permissionKeys,...C.permissionKeys]).slice(0,eg)}let u={present:!1,size:0},l=M=>{let w=[],C=!1;for(let ne of M){let pt=to(De(n,ne));if(w=w.concat(pt.entries),C=C||pt.truncated,w.length>=ue){w=w.slice(0,ue),C=!0;break}}return{entries:w,truncated:C}},p=fg(n),m=gg(p),d=m[e]??{},g=(d.send_count??0)+1,E=g>0&&g%ag===0,S=M=>E?void 0:d[M],y=l(fe.skills),R=l(fe.subagents),H=l(fe.commands),x=l(fe.rules),k={skills:Wt(y.entries,S("skills"),y.truncated),subagents:Wt(R.entries,S("subagents"),R.truncated),commands:Wt(H.entries,S("commands"),H.truncated),rules:Wt(x.entries,S("rules"),x.truncated)},F={runner_platform:e,config_scope:"user",cli_version:i,claude_version:o?i:null,model:o&&a||null,permission_keys:c,user_scope:{skills:k.skills,subagents:k.subagents,commands:k.commands,rules:k.rules,memory:Lr(n,fe.memory),settings:Lr(n,fe.settings,Qo(n)),mcp:Lr(n,fe.mcp)},local_settings:o?fn(De(t,".claude/settings.local.json")):u},L=null,K=r.nowMs??Date.now();if(!Jt()){let M=d.user_spec_layout_version!==Pa,w=Or(e,n,{launchCwd:ug()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote,shouldWalk:(C,ne)=>M||lg(hg(d,C,ne),K)});if(Object.keys(w.scopes).length>0){let C=Nr({collected:w,cacheFor:(ne,pt)=>M?{components:void 0,textHashes:[]}:Eg(d,ne,pt),nowMs:K});Object.assign(F,C.fields),L={hash:C.fields.user_spec_hash,home:C.scopes.find(ne=>ne.scope==="user")??null,project:C.scopes.filter(ne=>ne.scope!=="user")}}}let te=Sg(d,k,g,L);return{config:F,commit:()=>{m[e]=te,_g(p,m)}}}import{homedir as zg}from"node:os";import{join as va}from"node:path";var lR=Buffer.from([1]);var dR=1024*1024,pR=4*1024*1024,fR=64*1024,mR=64*1024,gR=64*1024;var Dr=4096,_R=4*1024*1024;import{open as ka,mkdir as yg,readFile as Rg,readdir as Cg,rename as Ig,stat as Ag,rmdir as Og,unlink as Pg,utimes as Tg}from"node:fs/promises";var Xt=new WeakMap;function kg(e){if(e&&typeof e=="object"&&"code"in e)return e}function Fr(e){return kg(e)?.code==="ENOENT"}async function ba(e,t){try{return await e.readdir(t)}catch(n){if(Fr(n))return[];throw n}}function Na(){return{async open(e,t){let n=await ka(e,t),r={path:e};return Xt.set(r,n),r},async write(e,t){let n=xa(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await xa(e).sync()},async close(e){let t=Xt.get(e);Xt.delete(e),t&&await t.close()},rename:Ig,async readdir(e){return Cg(e)},readFile:Rg,async stat(e){let t=await Ag(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await yg(e,t)},unlink:Pg,rmdir:Og,utimes:Tg,async fsyncDir(e){if(process.platform==="win32")return;let t=await ka(e,"r");try{await t.sync()}finally{await t.close()}}}}function xa(e){let t=Xt.get(e);if(!t)throw new Error("closed");return t}function Zt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as qt}from"node:path";function xg(e){return qt(e,".ev-ai","agent-hook","js","signed-v1")}function bg(e){return qt(xg(e),"scopes")}function Ma(e,t){return qt(bg(e),t)}function wa(e){return qt(e,"attempts")}function Hr(e){return String(e).padStart(10,"0")}var Ng=/^(\d{10})$/,Mg=/^(\d{10})\.done$/,wg=/^[0-9a-f]{128}$/,vg=64;async function Fa(e,t,n=!1){let r=wa(t),o=await ba(e,r),s=new Map,i=new Map,a=La(o,Ng),c=La(o,Mg),u=async m=>{let d=await Da(e,va(r,Lg(m)));return d&&s.set(m,{record:Dg(d.value),mtimeMs:d.mtimeMs}),d!==void 0},l=async m=>{let d=Fg((await Da(e,va(r,Ug(m))))?.value);return d&&i.set(m,d),d!==void 0};if(!n)return await Promise.all([...a.map(u),...c.map(l)]),{claims:s,dones:i};await Promise.all([Ua(a,u),Ua(c,l)]);let p=ut(s);return p<ut(i)&&c.includes(p)&&await l(p),{claims:s,dones:i}}function La(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function Ua(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function ut(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Ha(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 Lg(e){return Hr(e)}function Ug(e){return`${Hr(e)}.done`}async function Da(e,t){let n;try{n=await e.stat(t)}catch(o){if(Fr(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>Dr)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>Dr?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function Dg(e){if(!Zt(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 Fg(e){if(!Zt(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=Hg(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function Hg(e){if(!Zt(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"&&wg.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&jg(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function jg(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==vg||t.toString("base64")!==e))return t.toString("hex")}function Gg(e){return e==="bootstrap"?3e3:6e4}function Ka(e,t){let n=ut(e.claims);if(n===0)return;let r=ut(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Ha(o),c=o.record==="empty"?void 0:o.record.owner,u=Gg(c)+3e4;if(t-a>u)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:ja(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:ja(i.selection)}}function ja(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function $a(e=zg(),t=process.env){let n=Zn(t),r=n?.launcherScope;if(!n||!r)return{};try{let o=await Fa(Na(),Ma(e,r)),s=Ka(o,Date.now());return s?{launcher_scope:r,launcher_attempt:s}:{launcher_scope:r}}catch{return{launcher_scope:r}}}function Fe(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:St,event:e,timestamp:ft(),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:Pn,host_arch:process.arch,node_version:process.version,correlation:r,payload:t},s=Zn();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=ci(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 Ga}from"node:fs";import{spawn as za}from"node:child_process";import{fileURLToPath as Wg}from"node:url";import{gzipSync as Vg}from"node:zlib";function jr(e){return I("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<Oo?{body:e}:{body:Vg(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function Qt(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function Ba(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}var Kr="__post",en="__work";async function Yg(e,t,n={}){if(I("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off")return e;let r=await or(n.gitRoot??process.cwd(),v,process.env,{runnerPlatform:t,home:n.home}),o=e.self_config,s=o!==null&&typeof o=="object"&&!Array.isArray(o)?o:{};return{...e,self_config:{...s,runner_platform:typeof s.runner_platform=="string"?s.runner_platform:t,operator:r}}}function Jg(e,t){let n=e.payload,r=n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n):[],o=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:o,payload_keys:r})}function Va(e){switch(e){case"session_start":return Ro;case"session_end":return Co;case"tool_invoked":case"skill_invoked":return In;default:return In}}function Xg(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
42
- ${n}`}function Wa(e,t=[],n=process.execPath,r=import.meta.url,o=Ga){if(yo(n))return{command:n,args:[e,...t]};let s=Wg(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function Zg(e=process.execPath,t=import.meta.url,n=Ga){return Wa(Kr,[],e,t,n)}function qg(e){let t=e.indexOf(`
43
- `);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 Ya(e,t=fetch){let n=await e(),r=qg(n);if(!r)return;let{meta:o,body:s}=r,i=jr(s),a=Qt(i.contentEncoding);try{await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))})}catch{}}async function Qg(e,t,n,r=fetch){let o=Va(e),s=jr(t),i=Qt(s.contentEncoding),a=Ba(s.body);h(`POST event=${e} url=${ht(n)} size=${a} encoding=${s.contentEncoding??"identity"} platform=${process.platform}`);let c=Date.now();try{let u=await r(n,{method:"POST",headers:i,body:s.body,signal:AbortSignal.timeout(o)});if(!u.ok&&s.contentEncoding==="gzip"&&(u.status===400||u.status===415)){try{await u.text()}catch{}h(`POST gzip rejected http=${u.status} \u2014 retrying uncompressed`),u=await r(n,{method:"POST",headers:Qt(),body:t,signal:AbortSignal.timeout(o)})}let l=Date.now()-c;if(u.ok)return h(`POST outcome=ok elapsed_ms=${l} http=${u.status}`),!0;let p=(await u.text()).slice(0,200).replace(/[\n\r]/g,"");return h(`POST outcome=fail elapsed_ms=${l} http=${u.status} body=${p}`),!1}catch(u){let l=Date.now()-c,p=u instanceof Error?u.message:String(u);return h(`POST outcome=fail elapsed_ms=${l} http=000 body=${p}`),!1}}async function Ja(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){h(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},Io),u=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>u()),s.stdin.once("error",()=>u())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return h(`WARN: ${o} spawn failed open: ${i}`),null}}async function e_(e,t,n,r=za,o=Zg){let s=Va(e),i=Xg(n,s,t),{command:a,args:c}=o();return Ja(a,c,i,r,"detached post")}async function Xa(e,t,n=za,r=Wa){let{command:o,args:s}=r(en,t);return Ja(o,s,e,n,"detached work")}async function He(e,t,n,r,o,s,i){if(!o)return h("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!Ge(o))return h(`WARN: collector URL blocked (https required): ${ht(o)}`),!1;let a=await Yg(t,n.runnerPlatform,i),c=r(e,a,{...n,collectorUrl:o});s!==void 0&&(c.build_ms=Math.max(0,Date.now()-s));let u=`${JSON.stringify(c)}
44
- `,l=I("EV_AI_HOOK_DEBUG");l==="full"?h(`DEBUG envelope=${JSON.stringify(c)}`):l==="1"&&h(`DEBUG summary=${Jg(c,Buffer.byteLength(u,"utf8"))}`);let p=process.argv.includes(en),m=I("EV_AI_HOOK_SYNC")==="1";return Nt(n.runnerEvent,n.runnerPlatform)||p||m?Qg(e,u,o):(await e_(e,u,o),!1)}import{createReadStream as t_}from"node:fs";import{stat as n_}from"node:fs/promises";import{basename as r_,resolve as o_}from"node:path";import{createInterface as s_}from"node:readline";var i_=1024*1024;function a_(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&r_(t).endsWith(".jsonl")}async function Za(e){if(!e||!a_(e))return null;try{let t=o_(e),n=await n_(t);if(!n.isFile())return null;let r=Math.max(0,n.size-i_),o=[],s=s_({input:t_(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let u=c.message;if(!u||typeof u!="object")continue;let l=u.model;if(typeof l=="string"&&l.length>0)return l}catch{continue}}return null}catch{return null}}function nn(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent}}function dt(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function $r(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent}}async function tc(e){let t=Date.now();await E_(e);let{gitRoot:n}=e.manifest;await rn(e,n);let r=$r(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Dt(e.hookInput,e.manifest.manifest,r),envelopeFields:nn(e),launchCwd:dr(e.hookInput,r),home:ec()}}function qa(e){try{return z(c_(e))}catch{return null}}function nc(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Qa(e,t){let n=e.replaceAll("\\","/");if(!nc(n))return null;let r=z(e),o=z(t),s=qa(e)??r,i=qa(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function u_(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Qa(e,t)??(nc(r)?null:r),i=Qa(e,n);return{repositorySourcePath:s,userSourcePath:i}}function tn(e,t,n,r,o,s){let{repositorySourcePath:i,userSourcePath:a}=u_(e,t,n),c=i??a,u=c===null?null:o(c),l=u!==null&&c!==null?l_({installableKind:r,sourcePath:c,nativeKey:u,inRepository:i!==null,platformAgentId:s.platformAgentId,installationId:s.manifest.installationId}):void 0;return{sourcePath:c,nativeKey:u,componentReference:l}}function l_(e){try{let t=e.inRepository?f_(e.platformAgentId,e.sourcePath):(0,P.installationRootExternalKey)(e.installationId,(0,P.userConfigRootFromPath)(e.sourcePath));return t?(0,P.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function Br(e,t,n){return He("tool_invoked",{...n,success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Fe,e.manifest.collectorUrl,t.buildStartedAtMs,dt(e,t.home))}function d_(e){return Bs(e.runnerEvent,e.runnerPlatform)?[]:is(e.hookInput)}function p_(e,t){return Br(e,t,{})}var rc=new Set([...Object.values(Ce),".github"]);function f_(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=>rc.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}function m_(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(g=>g.name.toLowerCase()===t.toLowerCase()),u=c?.sourcePath??(c?.source==="claude_json_user"?".claude.json":c?.source==="cursor_mcp_user"?".cursor/mcp.json":c?.source==="codex_toml_user"||c===void 0&&o==="codex"?".codex/config.toml":void 0);if((c?.scope==="user"||c?.source==="claude_json_user"||c?.source==="cursor_mcp_user"||c?.source==="codex_toml_user"||c===void 0&&o==="codex")&&u)try{let g=(0,P.userConfigRootFromPath)(u);return(0,P.buildComponentReference)({installationRootExternalKey:(0,P.installationRootExternalKey)(r,g),installableKind:P.ComponentKind.INTERFACE,sourcePath:u,nativeKey:c?.name??t})}catch{return}if(n===null)return;let p=n.indexOf(":");if(p<=0||p===n.length-1)return;let m=n.slice(p+1),d=m.replaceAll("\\","/").split("/").at(-1);if(!(d===void 0||!rc.has(d)))try{return(0,P.buildComponentReference)({installationRootExternalKey:n,installableKind:P.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function g_(...e){for(let t of e)if(t)return t;return null}function W(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return h(`WARN: ${n} failed open: ${r}`),t}function __(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 h_(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var Oe=new Set,lt=null;async function E_(e){if(Jt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(Oe.has(t))return;if(!ir(n)){Oe.add(t);return}let r=Ke({sessionId:e.sessionId,hostname:$e()});if(bi(r)){if(lt){await lt;return}lt=(async()=>{if(Oe.has(t)||!ir(n)){Oe.add(t);return}if(!Ko(n)){Oe.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),[c,u,l,p,m]=await Promise.allSettled([Xe(i),_n(),qn(r),hn(),sr({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})]),d=W(c,null,"gitSnapshot"),g=W(u,"","detectVirt"),E=W(l,null,"probeCloud"),S=W(p,{},"hostEnv"),y=W(m,{commit:()=>{}},"resolveOperatorForSend");await rn(e,i,d);let R={identity:{host:$e(),context:r,virt:g||null,cloud:E,git:d},host_env:S,env_vars:Qn(),self_config:h_(a,y.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await He("session_start",R,nn(e),Fe,e.manifest.collectorUrl,s,dt(e)),o&&(y.commit(),Oe.add(t))}finally{$o(n)}})().finally(()=>{lt=null}),await lt}}async function rn(e,t,n){try{let r=n===void 0?await Xe(t):n;e.platformAgentId=await xs(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,r,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);h(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function S_(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=Ke({sessionId:e.sessionId,hostname:$e()}),o=String(e.runnerPlatform),s=$r(e),i=dr(e.hookInput,s),a=Xe(n),c=Jt()?Promise.resolve({commit:()=>{}}):sr({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),[u,l,p,m,d,g,E]=await Promise.allSettled([a,_n(),qn(r),hn(),Wn(e.manifest.manifest,n,o),a.catch(()=>null).then(C=>Ta(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:C?.remote??null})),c]),S=W(u,null,"gitSnapshot"),y=W(l,"","detectVirt"),R=W(p,null,"probeCloud"),H=W(m,{},"hostEnv"),x=W(d,[],"mcpDeclared"),k=W(g,__(o),"selfConfig"),F=W(E,{commit:()=>{}},"resolveOperatorForSend"),L=k.config;await rn(e,n,S);let K=_(e.hookInput,"model");K&&(L.model=K);let te={identity:{host:$e(),context:r,virt:y||null,cloud:R,git:S},host_env:H,env_vars:Qn(),mcp:{declared:x},self_config:L,run_meta:{trigger:e.hookSource||"startup"},hook_input:Dt(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},M={};try{M=await $a(ec())}catch{M={}}await He("session_start",te,{...nn(e),...M},Fe,e.manifest.collectorUrl,t,dt(e))&&(k.commit(),F.commit(),Oe.add(e.manifest.installationId))}async function y_(e){let t=Date.now(),{gitRoot:n}=e.manifest;await rn(e,n);let r=e.runnerEvent.toLowerCase(),o=g_(_(e.hookInput,"status"),_(e.hookInput,"stop_reason"),_(e.hookInput,"reason"),Qe(_(e.hookInput,"error")),r==="stop"?re(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=e.runnerPlatform==="claude"?await Za(_(e.hookInput,"transcript_path")):null,i=Dt(e.hookInput,e.manifest.manifest,$r(e));s&&(i.model=s),r!=="stopfailure"&&!Li(e.manifest.manifest)&&i.last_assistant_message===void 0&&(i.last_assistant_message=""),await He("session_end",{status:o,...s?{model:s}:{},hook_input:i},nn(e),Fe,e.manifest.collectorUrl,t,dt(e))}function oc(e,t,n,r){let o=r??ss({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=tn(o,t.gitRoot,t.home,P.ComponentKind.SKILL,P.nativeKeyForSkillPath,e);if(s.sourcePath!==null&&wn(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??vs({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=tn(i,t.gitRoot,t.home,P.ComponentKind.COMMAND,P.nativeKeyForCommandPath,e);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function R_(e,t,n){let r=At(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=oc(e,t,o,r);return Br(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 C_(e,t,n){return Promise.all(n.map(r=>{let o=bs({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=tn(o,t.gitRoot,t.home,P.ComponentKind.RULE,P.nativeKeyForRulePath,e),i=s.nativeKey??Ms(r);return Br(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var I_=[{kind:P.ComponentKind.SKILL,nativeKeyFn:P.nativeKeyForSkillPath},{kind:P.ComponentKind.RULE,nativeKeyFn:P.nativeKeyForRulePath},{kind:P.ComponentKind.COMMAND,nativeKeyFn:P.nativeKeyForCommandPath}];function A_(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Ln(e.hookInput);if(r===null)return n.skillName===null?{}:oc(e,t,n.skillName,null);for(let o of I_){let s=tn(r,t.gitRoot,t.home,o.kind,o.nativeKeyFn,e);if(s.nativeKey!==null)return{...s.componentReference===void 0?{}:{componentReference:s.componentReference},...o.kind===P.ComponentKind.RULE?{ruleName:s.nativeKey}:{},...o.kind===P.ComponentKind.COMMAND?{commandName:s.nativeKey}:{}}}return{}}var O_=/mcp/i;function P_(e,t,n,r){let o=O_.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?la(t,n):zt(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 T_(e){let t=await tc(e),n=Ys(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=vn(e.hookInput),i=ca(s,t.home),a=Xs(e.hookInput),c=Gs(e.runnerEvent),u=c===!1?Zs(e.hookInput,e.runnerEvent):null,l=await Wn(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]),p=Qe(_(e.hookInput,"mcp_server_name")),{mcpServer:m,mcpTool:d}=qs(r,l.map(F=>F.name),p??""),g=m_(r,m,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),l,p),E=g===void 0?A_(e,t,n):{},S=m===null?null:js(m,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),y=P_(e,s,t.home,{hasMcpIdentity:!!m||!!d,declaredConfig:S}),R=g??E.componentReference,H=E.ruleName??n.ruleName,x=E.commandName??n.commandName,k=Js(e.hookInput);await He("tool_invoked",{tool_name:r,skill_name:o,...H?{rule_name:H}:{},...x?{command_name:x}:{},success:c,duration_ms:a,...i?{executable:i}:{},...u?{failure_reason:u}:{},...m?{mcp_server:m}:{},...d?{mcp_tool:d}:{},...y,...R?{component_reference:R}:{},...k?{subagent_type:k}:{},hook_input:t.hookInput},t.envelopeFields,Fe,e.manifest.collectorUrl,t.buildStartedAtMs,dt(e,t.home))}async function sc(e){switch(e.internalEvent){case"session_start":await S_(e);return;case"session_end":await y_(e);return;case"skill_invoked":{let t=d_(e),n=ws(e.hookInput),r=$s(e.runnerEvent);if(t.length===0&&n.length===0&&!r)return;let o=await tc(e);await Promise.all([r&&t.length===0&&n.length===0?p_(e,o):void 0,t.length===0?void 0:R_(e,o,t),n.length===0?void 0:C_(e,o,n)]);return}case"tool_invoked":await T_(e);return;default:return}}function ic(e){return e!=="session_start"&&e!=="session_end"&&e!=="tool_invoked"&&e!=="skill_invoked"&&e!==""}import{existsSync as zr,readFileSync as k_}from"node:fs";import{dirname as x_,isAbsolute as b_,join as N_,relative as M_}from"node:path";function ac(e){for(let t of uo){let n=N_(e,t);if(zr(n))return n}}async function w_(e=process.cwd(),t){let n=t??await pn(e);return ac(n)??ac(e)}async function v_(e,t){let n=t??await pn(x_(e)),r=M_(n,e);if(r.startsWith("..")||b_(r))return!1;let o=await Y("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(h(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function Gr(e){let t=k_(e,"utf8");return j(t,{})}function L_(){return{schema_version:St,mcp_servers:[]}}function U_(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(h(`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")&&(h(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function cc(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await dn(e),o=I("EV_AI_HOOK_MANIFEST"),s=o&&zr(o)?o:void 0,i=s?void 0:zr(Sn())?Sn():void 0,a=s?void 0:await w_(e,n),c=i?Gr(i):void 0,u=a?Gr(a):void 0,l,p,m,d=new Set;if(s){l=Gr(s),p=s,m=s;for(let R of Object.keys(l))d.add(R)}else if(c&&u){l=lo(u,c),p=i,m=a;for(let R of Object.keys(u))R in c||d.add(R)}else if(c)l=c,p=i;else if(u){l=u,p=a,m=a;for(let R of Object.keys(u))d.add(R)}else l=L_();delete l.installation_id;let g=m?await v_(m,n):!1;U_(l,m,g,d);let{installationId:E,storePath:S,repoKey:y}=await Vo(n,{sessionId:t.sessionId});return{manifestPath:p??S,manifest:l,installationId:E,installationStorePath:S,repoKey:y,collectorUrl:Cn(l),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{createHash as D_}from"node:crypto";import{mkdirSync as F_,readdirSync as H_,readFileSync as j_,statSync as uc,unlinkSync as K_,writeFileSync as $_}from"node:fs";import{homedir as on}from"node:os";import{join as Vr}from"node:path";var B_="turns",lc=1440*60*1e3,G_=100,z_=new Set(["stop","stopfailure","sessionend"]);function Wr(e=on()){return Vr(oe(e),B_)}function V_(e){return D_("sha256").update(e).digest("hex").slice(0,32)}function dc(e,t){return Vr(e,V_(t))}function W_(e,t=Date.now()){let n;try{n=H_(e)}catch{return}let r=0;for(let o of n){if(r>=G_)return;r+=1;try{let s=Vr(e,o);t-uc(s).mtimeMs>lc&&K_(s)}catch{}}}function Y_(e,t,n=on()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Wr(n);F_(s,{recursive:!0}),$_(dc(s,r),o,"utf8")}catch{}}function J_(e,t=on()){let n=e.trim();if(!n)return"";try{let r=dc(Wr(t),n);return Date.now()-uc(r).mtimeMs>lc?"":j_(r,"utf8").trim()}catch{return""}}function pc(e,t,n,r=on()){let o=t.trim(),s=z_.has(n.trim().toLowerCase());return s&&W_(Wr(r)),o?(Y_(e,o,r),o):s?J_(e,r):""}async function fc(e,t,n,r){let o=t??await ln(An),s=j(o,{}),i=_(s,"session_id")||_(s,"conversation_id"),a=await cc(process.cwd(),{sessionId:i});if(!a)return;r&&(a.collectorUrl=r);let c=zs(s,a.manifest.platform,n),u=Vs(e,c.runnerEvent);if(!u){h(`WARN: unknown hook event '${c.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:c.sessionId,turnId:pc(c.sessionId,c.turnId,c.runnerEvent),runnerEvent:c.runnerEvent,runnerPlatform:c.runnerPlatform,hookSource:c.hookSource,internalEvent:u,manifest:a,platformAgentId:a.platformAgentId};if(ic(u)){h(`WARN: unsupported internal event '${u}'`);return}await sc(l)}function X_(e,t){if(I("EV_AI_HOOK_SYNC")==="1")return!0;let n=Be(e),r=j(t,{}),o=n.event??(_(r,"hook_event_name")||_(r,"event")),s=qe(r,o,void 0,n.runner);return Nt(o,s)}async function mc(e=process.argv.slice(2)){if(ai(),e[0]===Kr){try{await Ya(un)}catch{}return 0}if(e[0]===en){try{let t=Be(e.slice(1)),n=await un(),r=j(n,{}),o=t.event??(_(r,"hook_event_name")||_(r,"event"));if(mn()||Jn(t.runner,r,o))return 0;await fc(t.event,n,t.runner,Yn(t))}catch(t){let n=t instanceof Error?t.message:String(t);h(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await ln(An),n=Be(e),r=Yn(n),o=j(t,{}),s=n.event??(_(o,"hook_event_name")||_(o,"event"));if(mn()||Jn(n.runner,o,s)||!si(o,s,n.runner))return 0;X_(e,t)?await fc(n.event,t,n.runner,r):await Xa(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);h(`WARN: hook failed open: ${n}`)}finally{eo()}return 0}mc().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
37
+ `)){let R=/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/.exec(y);R?.[1]&&l.add(R[1])}for(let y of ot(e,"env_vars"))l.add(y);let d=Sm(e,"env_http_headers");for(let[,y]of d)y.length>0&&l.add(y);let g=Rr(e,"bearer_token_env_var");g&&(l.add(g),n.bearer_token_env_var=g),l.size>0&&(n.env_var_names=[...l].sort()),d.length>0&&(n.env_http_header_names=[...new Set(d.map(([y])=>y))].sort()),(/^\s*(?:http_|env_http_)?headers\s*=/m.test(e)||/(?:^|\n)\[[^\]]*headers\]\s*(?:\n|$)/.test(e))&&(n.headers_present=!0);let S=Rr(e,"auth");S&&(n.auth=S);let E=Rr(e,"default_tools_approval_mode");return E&&(n.default_tools_approval_mode=E),Em(n,e),n}var Im=300,Am=256;function sa(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 Gt(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 ia(e,t){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}function Om(e){return ia(e,Im)}function aa(e,t){let n=sa(e.trim(),t),r=Gt(n);if(r.length===0)return"";let[o,...s]=r,i=Ae(o),a=st(s);return Om([i,...a].join(" "))}function ca(e,t){if(typeof e!="string")return null;let n=sa(e.trim(),t),r=Gt(n)[0];if(!r)return null;let o=Ae(r);return o.length===0?null:ia(o,Am)}function Pm(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 Tm(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 km(e,t,n,r){let o=e.componentPath(t);for(let[s,i]of Object.entries(n))if(!(!Array.isArray(i)||e.truncated))for(let a of i){if(!a||typeof a!="object"||e.truncated)continue;let c=a;for(let u of Tm(c)){if(e.truncated)return;let l=u.command??u.bash??u.prompt??u.powershell??c.powershell??"",p=Pm({type:u.type??c.type,command:u.command??c.command,bash:u.bash??c.bash,powershell:u.powershell??c.powershell,prompt:u.prompt??c.prompt}),m=typeof c.matcher=="string"?c.matcher:"",d=v(l),g=m?`${s}:${m}:${p}:${d}`:`${s}:${p}:${d}`,S=`${s}|${m}|${p}|${l}|attrs2`;e.push({kind:"HOOK",name:g,path:o,content_hash:v(S),origin:r,enabled:!0,trigger:"EVENT",attributes:{event:s,...m?{matcher:m}:{},action_kind:p,action_hash:d,...p!=="prompt"&&l.trim()?{command:aa(l,e.home)}:{}}})}}}function Le(e,t,n){if(!e.claimFile(t))return;let r=e.readJson(t,{});!r?.hooks||typeof r.hooks!="object"||km(e,t,r.hooks,n)}import{existsSync as vm,readFileSync as Lm}from"node:fs";var _e=je(Me(),1);import{createHash as xm}from"node:crypto";import{join as it}from"node:path";function bm(e){let t=[...e].sort((n,r)=>n.localeCompare(r,"en")).join(`
38
+ `);return xm("sha512").update(t).digest("hex").slice(0,16)}function Nm(e){let t=process.platform==="win32"?it(I("LOCALAPPDATA")??e,"npm-cache"):it(e,".npm"),n=I("npm_config_cache")??I("NPM_CONFIG_CACHE");return n===void 0||n===t?[t]:[n,t]}function ua(e){return typeof e=="string"&&e.length>0&&e.length<=_e.PACKAGE_FIELD_MAX?e:null}function Mm(e,t,n){let r=bm(e);for(let o of Nm(n)){let s=it(o,"_npx",r),i=F(it(s,"node_modules",...t.split("/"),"package.json"),{}),a=ua(i.version);if(a!==null)return a;let c=F(it(s,"package-lock.json"),{}),u=ua(c.packages?.[`node_modules/${t}`]?.version);if(u!==null)return u}return null}function wm(e){return e.length<=_e.PACKAGE_FIELD_MAX?e:`${e.slice(0,_e.PACKAGE_FIELD_MAX-1)}\u2026`}function Ar(e,t,n){if(typeof e!="string"||e.length===0)return null;let r=(0,_e.npxPackageSpecs)(e,t??[]),o=r[0];if(o===void 0)return null;let s=(0,_e.packageNameFromSpec)(o);if(s===null)return null;let i=Mm(r,s,n);return{package_name:s,package_spec:wm(o),...i===null?{}:{package_version:i,package_version_source:"npx_cache"}}}function la(e,t){if(typeof e!="string"||e.length===0)return null;let[n,...r]=Gt(e.trim());return n===void 0?null:Ar(n,r,t)}function zt(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 Ar(typeof n.command=="string"?n.command:null,r,t)}function da(e,t){let n=/^\s*command\s*=\s*(.+)$/m.exec(e);return n===null?null:Ar(ve(n[1]??""),ot(e,"args"),t)}function Um(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 pa(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=Um(a),u=ta(a,c);Object.assign(u,zt(a,e.home)??{});let l=na(a);e.push({kind:"MCP_SERVER",name:i,path:s,content_hash:Ir(i,u,l),origin:n,enabled:l,attributes:u})}}function fa(e,t,n){if(!vm(t)||!e.claimFile(t))return;let r;try{r=Lm(t,"utf8")}catch{return}let o=e.componentPath(t),s=/^\[mcp_servers(?:\.(\w+)|\."([^"]+)"|\.'([^']+)')\]\s*$/gm,i;for(;(i=s.exec(r))!==null;){if(e.truncated)return;let a=i[1]??i[2]??i[3];if(!a)continue;let c=r.slice(i.index+i[0].length),u=c.search(/^\[mcp_servers(?:\.(?:\w+|"[^"]+"|'[^']+'))\]\s*$/m),l=u===-1?c:c.slice(0,u),p="unknown";/^\s*url\s*=/m.test(l)?p="http":/^\s*command\s*=/m.test(l)&&(p="stdio");let m=oa(l,p);Object.assign(m,da(l,e.home)??{});let d=ra(l);e.push({kind:"MCP_SERVER",name:a,path:o,content_hash:Ir(a,m,d),origin:n,enabled:d,attributes:m})}}import{existsSync as Dm,readdirSync as Fm}from"node:fs";import{join as B}from"node:path";var ma=50;function Or(e,t,n,r){if(!Dm(t))return{componentCount:0,expandTruncated:!1};let o=e.components.length,{expanded:s}=e.withPluginExpandCap(ma,()=>{Ie(e,{dir:B(t,"skills"),kind:"SKILL",origin:n,enabled:r,nested:"SKILL.md"}),Ie(e,{dir:B(t,"commands"),kind:"COMMAND",origin:n,enabled:r,extensions:[".md"]}),Ie(e,{dir:B(t,"agents"),kind:"SUBAGENT",origin:n,enabled:r,extensions:[".md"]})});Le(e,B(t,"hooks","hooks.json"),n),Le(e,B(t,"hooks.json"),n);let i=e.components.length-o,a=s>=ma;return{componentCount:i,expandTruncated:a}}function Pr(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 ga(e){let t=B(e.home,".claude/plugins/installed_plugins.json"),n=e.readJson(t,{});if(!n)return;let r=n.plugins??{},s=e.readJson(B(e.home,".claude/settings.json"),{})?.enabledPlugins??{},i=e.componentPath(t);for(let[a,c]of Object.entries(r)){if(e.truncated)return;let u=Array.isArray(c)?c:[c],l=u[0]??{},p=s[a]===!0,m=a.includes("@")?a.split("@").slice(1).join("@"):"",d=typeof l.version=="string"?l.version:"",g=typeof l.scope=="string"?l.scope:"user",S=`plugin:${a}`,E=0,y=!1;for(let R of u)if(typeof R.installPath=="string"&&R.installPath.length>0){let H=Or(e,R.installPath,S,p);E+=H.componentCount,y=y||H.expandTruncated}Pr(e,{pluginKey:a,rowPath:i,enabled:p,scope:g,version:d||void 0,marketplace:m||void 0,componentCount:E,expandTruncated:y,contentHash:v(`${a}|${d}|${g}|${p}|${E}`)})}}function Hm(e){let t=e,n="";try{let r=Fm(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name);if(r.length===1&&r[0])t=B(e,r[0]),n=r[0];else if(r.length>1){let o=[...r].sort(),s=o[o.length-1];s&&(t=B(e,s),n=s)}}catch{}return{installPath:t,version:n}}var jm=/^\d+$/;function $m(e){let t=e.filter(n=>!jm.test(n.pluginId));return t.length>0?t:e}function _a(e){let t=[{base:B(e.home,".cursor/plugins/local"),scope:"local"},{base:B(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=B(n,o.name),u=`plugin:${a}`,{componentCount:l,expandTruncated:p}=Or(e,c,u,!0);Pr(e,{pluginKey:a,rowPath:e.componentPath(c),enabled:!0,scope:"local",componentCount:l,expandTruncated:p,contentHash:v(`${a}|local|${l}`)});continue}let s=o.name,i=[];for(let a of e.readEntries(B(n,s))){if(!a.isDirectory())continue;let c=B(n,s,a.name),{installPath:u,version:l}=Hm(c);i.push({pluginId:a.name,installPath:u,version:l})}for(let a of $m(i)){if(e.truncated)break;let c=`${a.pluginId}@${s}`,u=`plugin:${c}`,{componentCount:l,expandTruncated:p}=Or(e,a.installPath,u,!0);Pr(e,{pluginKey:c,rowPath:e.componentPath(a.installPath),enabled:!0,scope:"cache",version:a.version||void 0,marketplace:s,componentCount:l,expandTruncated:p,contentHash:v(`${c}|${a.version}|${l}`)})}}}function Bm(e,t){let{layout:n,levelDir:r,origin:o,includeMachineWide:s}=t;for(let i of n.skillRoots)Ie(e,{dir:Ue(r,i),kind:"SKILL",origin:o,enabled:!0,nested:"SKILL.md"});for(let i of n.dirs)Ie(e,{dir:Ue(r,i.dir),kind:i.kind,origin:o,enabled:!0,extensions:i.extensions});for(let i of n.memory){let a=Vi(i.map(c=>Ue(r,c)));a&&jt(e,{absolutePath:a,kind:"MEMORY",origin:o,enabled:!0,name:Km(a)})}for(let i of Vo(n))Le(e,Ue(r,i),o);for(let i of n.mcpJson??[])pa(e,Ue(r,i),o);for(let i of n.mcpToml??[])fa(e,Ue(r,i),o);if(s){if(n.managed)for(let i of Ct(n.managed,process.platform,e.home))i.toLowerCase().endsWith(".json")&&Le(e,i,o);n.plugins==="claude"?ga(e):n.plugins==="cursor"&&_a(e)}}function ha(e,t){try{let n=new Ht(e,{pathMode:t.pathMode,maxEntries:t.maxEntries});for(let r of t.layouts)Bm(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 Tr(e,t,n={}){let r={},o=n.shouldWalk;if(o===void 0||o("user","")){let c=ha(t,{layouts:Object.values(ke),levelDir:t,origin:"user",includeMachineWide:!0,pathMode:"home-relative",maxEntries:ue,scopeRef:""});c&&(r.user=c)}let s=n.inGitRepo===!0,i=null,a=n.launchCwd;if(a!==void 0){let c=Object.values(de),u=gr({launchCwd:a,gitRoot:n.gitRoot,inGitRepo:s,remote:n.remote,home:t,hasProjectSpec:l=>Yo(c,l)});i=u.parentRel;for(let l of u.anchors){let p=or(l.dir);if(o!==void 0&&!o(l.scope,p))continue;let m=ha(t,{layouts:c,levelDir:l.dir,origin:l.scope,includeMachineWide:!1,pathMode:"tilde",maxEntries:_r,scopeRef:p});m&&(r[l.scope]=m)}r.parent||(i=null)}return{scopes:r,parentRel:i,cwdInGitRepo:s}}function kr(e,t,n={}){let r=n.truncated===!0,o=tt(e),s=new Set(e.map(l=>V(l.path,l.name)));if(n.forceFull===!0||t===void 0)return{hash:o,count:e.length,truncated:r,full:!0,upserts:e,removed:[],unchanged:!1};let a=[],c=t;for(let l of e){let p=V(l.path,l.name);c[p]!==l.content_hash&&a.push(l)}let u=[];if(!r){for(let l of Object.keys(c))if(!s.has(l)){let p=ki(l);p&&u.push(p)}}return{hash:o,count:e.length,truncated:r,full:!1,upserts:a,removed:u,unchanged:a.length===0&&u.length===0}}var Ea=2*1024*1024,Gm=new Set(["HOOK","MCP_SERVER","PLUGIN"]);function xr(e,t,n){let r=new Set(t.map(s=>V(s.path,s.name))),o=[];for(let s of e)s.text!==void 0&&(n.has(s.content_hash)||r.has(V(s.path,s.name))||o.push(s));return o}function br(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 Sa(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function ya(e){if(e.text===void 0)return e;let{text:t,...n}=e;return n}function Nr(e,t=Ea){let n=[],r=[];for(let l of e)Gm.has(l.kind)?n.push(l):r.push(l);r.sort((l,p)=>(l.text?.length??0)-(p.text?.length??0));let o=[...n,...r],s=[],i=2,a=0,c=0,u=[];for(let l of o){let p=s.length>0?1:0,m=Sa(l)+p;if(i+m<=t){s.push(l),i+=m,l.text!==void 0&&u.push(l.content_hash);continue}if(l.text!==void 0){let d=ya(l),g=Sa(d)+p;if(i+g<=t){s.push(d),i+=g,a+=1;continue}}c+=1}return{components:s,textDeferredCount:a,droppedCount:c,textHashesSent:u}}function Mr(e,t){return t.size===0?e:e.map(n=>n.text===void 0||!t.has(n.content_hash)?n:ya(n))}var zm=["user","cwd","repo","parent"];function wr(e){let{collected:t,cacheFor:n,nowMs:r,maxBytes:o}=e,s=[];for(let k of zm){let x=t.scopes[k];if(!x)continue;let L=n(k,x.scopeRef),U=L.components,$=kr(x.components,U,{forceFull:U===void 0,truncated:x.truncated}),q=new Set(L.textHashes),D=xr(x.components,$.upserts,q),N=Mr([...$.upserts,...D],q);s.push({scope:k,walk:x,delta:$,outgoing:N,outgoingKeys:new Set(N.map(C=>V(C.path,C.name))),deliveredTextHashes:q,cachedComponents:U})}let i=s.flatMap(k=>k.outgoing),a=Nr(i,o),c=new Set(a.components.map(k=>V(k.path,k.name))),u=[],l=[],p=[],m=[],d=[],g=[],S=[];for(let k of s){let{scope:x,walk:L,delta:U}=k;g.push(...L.components),u.push(x);let $=a.components.filter(C=>k.outgoingKeys.has(V(C.path,C.name))),q=[...k.outgoingKeys].some(C=>!c.has(C)),D=U.truncated||q;D?p.push(x):U.full&&l.push(x),m.push(...$),!U.full&&!D&&d.push(...U.removed);let N=U.full?{}:{...k.cachedComponents??{}};if(!D)for(let C of U.removed)delete N[V(C.path,C.name)];for(let C of $)N[V(C.path,C.name)]=C.content_hash;S.push({scope:x,scopeRef:L.scopeRef,components:N,textHashes:br(k.deliveredTextHashes,$.filter(C=>C.text!==void 0).map(C=>C.content_hash),L.components),collectedAtMs:r,included:$.length>0||U.removed.length>0&&!D||U.full})}let E={user_spec_hash:tt(g),user_spec_count:g.length,user_spec_truncated:p.length>0};u.length>0&&(E.user_spec_scopes=u,E.user_spec_full_scopes=l,E.user_spec_truncated_scopes=p,E.user_spec_cwd_in_git_repo=t.cwdInGitRepo),l.length>0&&l.length===u.length&&(E.user_spec_full=!0),m.length>0&&(E.user_spec=m),d.length>0&&(E.user_spec_removed=d),a.textDeferredCount>0&&(E.user_spec_text_deferred=a.textDeferredCount);let y=t.scopes.cwd;y&&(E.user_spec_cwd_scope_ref=y.scopeRef);let R=t.scopes.repo;R&&(E.user_spec_repo_scope_ref=R.scopeRef);let H=t.scopes.parent;return H&&(E.user_spec_parent_scope_ref=H.scopeRef,t.parentRel&&(E.user_spec_parent_rel=t.parentRel)),{fields:E,scopes:S}}var ct={cwd:"cwd_spec",repo:"repo_spec",parent:"parent_spec"};function Vt(e){return e==="cwd"||e==="repo"||e==="parent"}function at(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function vr(e){return!at(e)||!at(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 Ra(e){return Vm(e)}function Ca(e){return Wm(e)}function Ia(e){return Ym(e)}function Vm(e){if(!at(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r=="string"&&(t[n]=r);return t}function Wm(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Lr(e,t){if(!at(e))return;let n=e[t];return vr(n)?n:void 0}function Ym(e){if(!at(e))return{};let t={};for(let[n,r]of Object.entries(e))vr(r)&&(t[n]=r);return t}function Ur(e,t=20){let n=[];for(let[r,o]of Object.entries(e))vr(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 qm=200,Aa=200,Qm=["allow","deny","ask"],eg=/(?<=^|[\s(,=:])(?:~|[A-Za-z]:)?[\\/][^\s,)]+/g,Fr="<path>",tg=new RegExp(`${Fr}(?:\\s+[A-Za-z.][^\\s,)]*[\\\\/][^\\s,)]*)+`,"g");function ng(e){let t=e.replace(eg,Fr).replace(tg,Fr);return t.length>Aa?`${t.slice(0,Aa)}...`:t}function Yt(e){let t=F(e,{}),n=[];for(let r of Qm)for(let o of t.permissions?.[r]??[])typeof o=="string"&&o.length>0&&n.push({key:ng(o),mode:r});return{model:t.model??"",permissionKeys:n}}function rg(e){let{serverManaged:t,fileBased:n}=Nn(process.platform,e),r=Yt(t);if(r.model||r.permissionKeys.length>0)return r;let o="",s=[];for(let i of n){let a=Yt(i);a.model&&(o=a.model),s.push(...a.permissionKeys)}return{model:o,permissionKeys:s}}function og(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 sg=10,ig="self-config-cache.json",Pa=2;function Jt(){return I("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off"}function ag(){return I("EV_AI_HOOK_CWD_SPEC")?.toLowerCase()==="off"}function cg(e,t=Date.now()){return e===void 0||!Number.isFinite(e)?!0:t-e>=ze}var ug={claude:["claude"],cursor:["agent","cursor-agent"],codex:["codex"]};async function lg(e,t=w){let n=ug[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(`
39
+ `)[0]??"").trim();return a||r(o+1)};return r(0)}function dg(e=Oa()){return De(e,".ev-ai","agent-hook",ig)}function pg(e){let n=[...e].sort((r,o)=>r.name.localeCompare(o.name)).map(r=>`${r.name}:${r.size}`).join(`
40
+ `);return v(n)}function Wt(e,t,n=!1){let r=pg(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 Dr(e,t,n=[]){let r=0,o=!1,s=new Set;for(let i of[...t.map(a=>De(e,a)),...n]){let a=Zm(i);if(s.has(a))continue;s.add(a);let c=fn(i);c.present&&(o=!0,r+=c.size)}return o?{present:!0,size:r}:{present:!1,size:0}}function fg(e){return Jm(e)?j(Xm(e,"utf8"),{}):{}}function mg(e,t){try{Q(e,`${JSON.stringify(t)}
41
+ `)}catch(n){let r=n instanceof Error?n.message:String(n);h(`WARN: self-config cache write failed open: ${r}`)}}function gg(e,t,n){if(t==="user")return e.user_spec_collected_at_ms;if(Vt(t))return Lr(e[ct[t]],n)?.collected_at_ms}function _g(e,t,n){if(t==="user")return{components:Ra(e.user_spec_components),textHashes:Ca(e.user_spec_text_hashes)};if(!Vt(t))return{components:void 0,textHashes:[]};let r=Lr(e[ct[t]],n);return r?{components:r.components,textHashes:r.text_hashes}:{components:void 0,textHashes:[]}}function hg(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=Pa,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(!Vt(s.scope))continue;let i=ct[s.scope],a=Ia(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]=Ur(a)}}return o}async function Ta(e,t=process.cwd(),n=Oa(),r={}){let o=e==="claude",s=r.gitRoot??t,i=await lg(e),a="",c=[];if(o){let D=rg(n),N=Yt(De(n,".claude/settings.json")),C=Yt(De(t,".claude/settings.local.json"));a=D.model||C.model||N.model,c=og([...D.permissionKeys,...N.permissionKeys,...C.permissionKeys]).slice(0,qm)}let u={present:!1,size:0},l=D=>{let N=[],C=!1;for(let Y of D){let pt=no(De(n,Y));if(N=N.concat(pt.entries),C=C||pt.truncated,N.length>=ue){N=N.slice(0,ue),C=!0;break}}return{entries:N,truncated:C}},p=dg(n),m=fg(p),d=m[e]??{},g=(d.send_count??0)+1,S=g>0&&g%sg===0,E=D=>S?void 0:d[D],y=l(fe.skills),R=l(fe.subagents),H=l(fe.commands),k=l(fe.rules),x={skills:Wt(y.entries,E("skills"),y.truncated),subagents:Wt(R.entries,E("subagents"),R.truncated),commands:Wt(H.entries,E("commands"),H.truncated),rules:Wt(k.entries,E("rules"),k.truncated)},L={runner_platform:e,config_scope:"user",cli_version:i,claude_version:o?i:null,model:o&&a||null,permission_keys:c,user_scope:{skills:x.skills,subagents:x.subagents,commands:x.commands,rules:x.rules,memory:Dr(n,fe.memory),settings:Dr(n,fe.settings,Jo(n)),mcp:Dr(n,fe.mcp)},local_settings:o?fn(De(t,".claude/settings.local.json")):u},U=null,$=r.nowMs??Date.now();if(!Jt()){let D=d.user_spec_layout_version!==Pa,N=Tr(e,n,{launchCwd:ag()?void 0:r.launchCwd,gitRoot:s,inGitRepo:r.inGitRepo,remote:r.remote,shouldWalk:(C,Y)=>D||cg(gg(d,C,Y),$)});if(Object.keys(N.scopes).length>0){let C=wr({collected:N,cacheFor:(Y,pt)=>D?{components:void 0,textHashes:[]}:_g(d,Y,pt),nowMs:$});Object.assign(L,C.fields),U={hash:C.fields.user_spec_hash,home:C.scopes.find(Y=>Y.scope==="user")??null,project:C.scopes.filter(Y=>Y.scope!=="user")}}}let q=hg(d,x,g,U);return{config:L,commit:()=>{m[e]=q,mg(p,m)}}}import{homedir as Gg}from"node:os";import{join as va}from"node:path";import{open as ka,mkdir as Sg,readFile as Eg,readdir as yg,rename as Rg,stat as Cg,rmdir as Ig,unlink as Ag,utimes as Og}from"node:fs/promises";var Xt=new WeakMap;function Pg(e){if(e&&typeof e=="object"&&"code"in e)return e}function Hr(e){return Pg(e)?.code==="ENOENT"}async function ba(e,t){try{return await e.readdir(t)}catch(n){if(Hr(n))return[];throw n}}function Na(){return{async open(e,t){let n=await ka(e,t),r={path:e};return Xt.set(r,n),r},async write(e,t){let n=xa(e),r=typeof t=="string"?Buffer.from(t,"utf8"):t;await n.write(r)},async fsync(e){await xa(e).sync()},async close(e){let t=Xt.get(e);Xt.delete(e),t&&await t.close()},rename:Rg,async readdir(e){return yg(e)},readFile:Eg,async stat(e){let t=await Cg(e);return{mtimeMs:t.mtimeMs,size:t.size,isDirectory:()=>t.isDirectory()}},async mkdir(e,t){await Sg(e,t)},unlink:Ag,rmdir:Ig,utimes:Og,async fsyncDir(e){if(process.platform==="win32")return;let t=await ka(e,"r");try{await t.sync()}finally{await t.close()}}}}function xa(e){let t=Xt.get(e);if(!t)throw new Error("closed");return t}function Zt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}import{join as qt}from"node:path";function Tg(e){return qt(e,".ev-ai","agent-hook","js","signed-v1")}function kg(e){return qt(Tg(e),"scopes")}function Ma(e,t){return qt(kg(e),t)}function wa(e){return qt(e,"attempts")}function jr(e){return String(e).padStart(10,"0")}var xg=/^(\d{10})$/,bg=/^(\d{10})\.done$/,Ng=/^[0-9a-f]{128}$/,Mg=64;async function Fa(e,t,n=!1){let r=wa(t),o=await ba(e,r),s=new Map,i=new Map,a=La(o,xg),c=La(o,bg),u=async m=>{let d=await Da(e,va(r,wg(m)));return d&&s.set(m,{record:Lg(d.value),mtimeMs:d.mtimeMs}),d!==void 0},l=async m=>{let d=Ug((await Da(e,va(r,vg(m))))?.value);return d&&i.set(m,d),d!==void 0};if(!n)return await Promise.all([...a.map(u),...c.map(l)]),{claims:s,dones:i};await Promise.all([Ua(a,u),Ua(c,l)]);let p=ut(s);return p<ut(i)&&c.includes(p)&&await l(p),{claims:s,dones:i}}function La(e,t){return e.flatMap(n=>{let r=t.exec(n);return r?[Number(r[1])]:[]})}async function Ua(e,t){for(let n of[...e].sort((r,o)=>o-r))if(await t(n))return}function ut(e){let t=0;for(let n of e.keys())n>t&&(t=n);return t}function Ha(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 wg(e){return jr(e)}function vg(e){return`${jr(e)}.done`}async function Da(e,t){let n;try{n=await e.stat(t)}catch(o){if(Hr(o))return;throw o}let r=n.mtimeMs;if(n.size===0||n.size>qn)return{mtimeMs:r};try{let o=await e.readFile(t);return o.byteLength===0||o.byteLength>qn?{mtimeMs:r}:{mtimeMs:r,value:JSON.parse(o.toString("utf8"))}}catch{return{mtimeMs:r}}}function Lg(e){if(!Zt(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 Ug(e){if(!Zt(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=Dg(t.selection);if(n)return{finished_at:t.finished_at,interval_s:t.interval_s,outcome:t.outcome,selection:n}}function Dg(e){if(!Zt(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"&&Ng.test(t.digest)&&typeof t.version=="string"&&t.version.length>0&&typeof t.sha512=="string"&&Fg(t.sha512)===t.digest)return{kind:"cached",digest:t.digest,version:t.version,sha512:t.sha512}}function Fg(e){if(e.length===0||!/^[A-Za-z0-9+/]+=*$/.test(e))return;let t=Buffer.from(e,"base64");if(!(t.byteLength!==Mg||t.toString("base64")!==e))return t.toString("hex")}function Kg(e){return e==="bootstrap"?3e3:6e4}function Bg(e,t){let n=ut(e.claims);if(n===0)return;let r=ut(e.dones),o=e.claims.get(n),s=e.dones.get(n);if(o&&!s){let a=Ha(o),c=o.record==="empty"?void 0:o.record.owner,u=Kg(c)+3e4;if(t-a>u)return{n,latest_claim:n,outcome:"incomplete",finished_at:null,selection_version:ja(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:ja(i.selection)}}async function $a(e,t,n){try{let r=await Fa(Na(),Ma(e,t),!0);return Bg(r,n)}catch{return}}function ja(e){return e?.kind==="cached"&&typeof e.version=="string"?e.version:null}async function Ka(e=Gg()){let t=Qn()?.launcherScope;if(!t)return{};let n=await $a(e,t,Date.now());return n?{launcher_scope:t,launcher_attempt:n}:{launcher_scope:t}}function Fe(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:Et,event:e,timestamp:ft(),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:Pn,host_arch:process.arch,node_version:process.version,correlation:r,payload:t},s=Qn();return s&&(o.launcher_version=s.launcherVersion,o.hook_source=s.hookSource,o.hook_fallback_reason=s.fallbackReason??null,o.launcher_scope_match=ci(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 Ga}from"node:fs";import{spawn as za}from"node:child_process";import{fileURLToPath as Vg}from"node:url";import{gzipSync as zg}from"node:zlib";function $r(e){return I("EV_AI_HOOK_COMPRESS")==="off"?{body:e}:Buffer.byteLength(e,"utf8")<Ro?{body:e}:{body:zg(Buffer.from(e,"utf8")),contentEncoding:"gzip"}}function Qt(e){let t={"Content-Type":"application/json"};return e!==void 0&&(t["Content-Encoding"]=e),t}function Ba(e){return typeof e=="string"?Buffer.byteLength(e,"utf8"):e.length}var Kr="__post",en="__work";async function Wg(e,t,n={}){if(I("EV_AI_HOOK_USER_SPEC")?.toLowerCase()==="off")return e;let r=await ir(n.gitRoot??process.cwd(),w,process.env,{runnerPlatform:t,home:n.home}),o=e.self_config,s=o!==null&&typeof o=="object"&&!Array.isArray(o)?o:{};return{...e,self_config:{...s,runner_platform:typeof s.runner_platform=="string"?s.runner_platform:t,operator:r}}}function Yg(e,t){let n=e.payload,r=n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n):[],o=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:o,payload_keys:r})}function Va(e){switch(e){case"session_start":return ho;case"session_end":return So;case"tool_invoked":case"skill_invoked":return In;default:return In}}function Jg(e,t,n){return`${JSON.stringify({url:e,timeoutMs:t})}
42
+ ${n}`}function Wa(e,t=[],n=process.execPath,r=import.meta.url,o=Ga){if(_o(n))return{command:n,args:[e,...t]};let s=Vg(r);return o(s)?{command:n,args:[s,e,...t]}:{command:n,args:[e,...t]}}function Xg(e=process.execPath,t=import.meta.url,n=Ga){return Wa(Kr,[],e,t,n)}function Zg(e){let t=e.indexOf(`
43
+ `);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 Ya(e,t=fetch){let n=await e(),r=Zg(n);if(!r)return;let{meta:o,body:s}=r,i=$r(s),a=Qt(i.contentEncoding);try{await t(o.url,{method:"POST",headers:a,body:i.body,signal:AbortSignal.timeout(Number(o.timeoutMs))})}catch{}}async function qg(e,t,n,r=fetch){let o=Va(e),s=$r(t),i=Qt(s.contentEncoding),a=Ba(s.body);h(`POST event=${e} url=${ht(n)} size=${a} encoding=${s.contentEncoding??"identity"} platform=${process.platform}`);let c=Date.now();try{let u=await r(n,{method:"POST",headers:i,body:s.body,signal:AbortSignal.timeout(o)});if(!u.ok&&s.contentEncoding==="gzip"&&(u.status===400||u.status===415)){try{await u.text()}catch{}h(`POST gzip rejected http=${u.status} \u2014 retrying uncompressed`),u=await r(n,{method:"POST",headers:Qt(),body:t,signal:AbortSignal.timeout(o)})}let l=Date.now()-c;if(u.ok)return h(`POST outcome=ok elapsed_ms=${l} http=${u.status}`),!0;let p=(await u.text()).slice(0,200).replace(/[\n\r]/g,"");return h(`POST outcome=fail elapsed_ms=${l} http=${u.status} body=${p}`),!1}catch(u){let l=Date.now()-c,p=u instanceof Error?u.message:String(u);return h(`POST outcome=fail elapsed_ms=${l} http=000 body=${p}`),!1}}async function Ja(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){h(`WARN: ${o} stdin handoff timed out \u2014 continuing fail-open`);try{s.stdin.destroy()}catch{}}a()},Eo),u=()=>{i=!0,clearTimeout(c),a()};s.stdin.end(n,()=>u()),s.stdin.once("error",()=>u())}),s.unref(),s}catch(s){let i=s instanceof Error?s.message:String(s);return h(`WARN: ${o} spawn failed open: ${i}`),null}}async function Qg(e,t,n,r=za,o=Xg){let s=Va(e),i=Jg(n,s,t),{command:a,args:c}=o();return Ja(a,c,i,r,"detached post")}async function Xa(e,t,n=za,r=Wa){let{command:o,args:s}=r(en,t);return Ja(o,s,e,n,"detached work")}async function He(e,t,n,r,o,s,i){if(!o)return h("WARN: collector URL missing \u2014 pass --url on the hook command or set collector_url in manifest"),!1;if(!Ge(o))return h(`WARN: collector URL blocked (https required): ${ht(o)}`),!1;let a=await Wg(t,n.runnerPlatform,i),c=r(e,a,{...n,collectorUrl:o});s!==void 0&&(c.build_ms=Math.max(0,Date.now()-s));let u=`${JSON.stringify(c)}
44
+ `,l=I("EV_AI_HOOK_DEBUG");l==="full"?h(`DEBUG envelope=${JSON.stringify(c)}`):l==="1"&&h(`DEBUG summary=${Yg(c,Buffer.byteLength(u,"utf8"))}`);let p=process.argv.includes(en),m=I("EV_AI_HOOK_SYNC")==="1";return Nt(n.runnerEvent,n.runnerPlatform)||p||m?qg(e,u,o):(await Qg(e,u,o),!1)}import{createReadStream as e_}from"node:fs";import{stat as t_}from"node:fs/promises";import{basename as n_,resolve as r_}from"node:path";import{createInterface as o_}from"node:readline";var s_=1024*1024;function i_(e){let t=e.replace(/\\/g,"/");return t.includes("/.claude/projects/")&&n_(t).endsWith(".jsonl")}async function Za(e){if(!e||!i_(e))return null;try{let t=r_(e),n=await t_(t);if(!n.isFile())return null;let r=Math.max(0,n.size-s_),o=[],s=o_({input:e_(t,{encoding:"utf8",start:r}),crlfDelay:1/0});for await(let i of s)i.length!==0&&o.push(i);r>0&&o.length>0&&o.shift();for(let i=o.length-1;i>=0;i--){let a=o[i];if(a)try{let c=JSON.parse(a);if(c.type!=="assistant")continue;let u=c.message;if(!u||typeof u!="object")continue;let l=u.model;if(typeof l=="string"&&l.length>0)return l}catch{continue}}return null}catch{return null}}function nn(e){return{sessionId:e.sessionId,turnId:e.turnId,installationId:e.manifest.installationId,runnerPlatform:e.runnerPlatform,platformAgentId:e.platformAgentId,runnerEvent:e.runnerEvent}}function dt(e,t){return{gitRoot:e.manifest.gitRoot,...t?{home:t}:{}}}function Br(e){return{gitRoot:e.manifest.gitRoot,inGitRepo:e.manifest.inGitRepo,runnerEvent:e.runnerEvent}}async function ec(e){let t=Date.now();await S_(e);let{gitRoot:n}=e.manifest;await rn(e,n);let r=Br(e);return{buildStartedAtMs:t,gitRoot:n,hookInput:Dt(e.hookInput,e.manifest.manifest,r),envelopeFields:nn(e),launchCwd:fr(e.hookInput,r),home:c_()}}function qa(e){try{return z(a_(e))}catch{return null}}function tc(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function Qa(e,t){let n=e.replaceAll("\\","/");if(!tc(n))return null;let r=z(e),o=z(t),s=qa(e)??r,i=qa(t)??o;return s.startsWith(`${i}/`)?s.slice(i.length+1):r.startsWith(`${o}/`)?r.slice(o.length+1):null}function u_(e,t,n){if(!e)return{repositorySourcePath:null,userSourcePath:null};let r=e.replaceAll("\\","/"),s=Qa(e,t)??(tc(r)?null:r),i=Qa(e,n);return{repositorySourcePath:s,userSourcePath:i}}function tn(e,t,n,r,o,s){let{repositorySourcePath:i,userSourcePath:a}=u_(e,t,n),c=i??a,u=c===null?null:o(c),l=u!==null&&c!==null?l_({installableKind:r,sourcePath:c,nativeKey:u,inRepository:i!==null,platformAgentId:s.platformAgentId,installationId:s.manifest.installationId}):void 0;return{sourcePath:c,nativeKey:u,componentReference:l}}function l_(e){try{let t=e.inRepository?f_(e.platformAgentId,e.sourcePath):(0,P.installationRootExternalKey)(e.installationId,(0,P.userConfigRootFromPath)(e.sourcePath));return t?(0,P.buildComponentReference)({installationRootExternalKey:t,installableKind:e.installableKind,sourcePath:e.sourcePath,nativeKey:e.nativeKey}):void 0}catch{return}}function Gr(e,t,n){return He("tool_invoked",{...n,success:null,duration_ms:null,hook_input:t.hookInput},t.envelopeFields,Fe,e.manifest.collectorUrl,t.buildStartedAtMs,dt(e,t.home))}function d_(e){return Hs(e.runnerEvent,e.runnerPlatform)?[]:ns(e.hookInput)}function p_(e,t){return Gr(e,t,{})}var nc=new Set([...Object.values(Ce),".github"]);function f_(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=>nc.has(i));return s<0?null:`${r}:${o.slice(0,s+1).join("/")}`}function m_(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(g=>g.name.toLowerCase()===t.toLowerCase()),u=c?.sourcePath??(c?.source==="claude_json_user"?".claude.json":c?.source==="cursor_mcp_user"?".cursor/mcp.json":c?.source==="codex_toml_user"||c===void 0&&o==="codex"?".codex/config.toml":void 0);if((c?.scope==="user"||c?.source==="claude_json_user"||c?.source==="cursor_mcp_user"||c?.source==="codex_toml_user"||c===void 0&&o==="codex")&&u)try{let g=(0,P.userConfigRootFromPath)(u);return(0,P.buildComponentReference)({installationRootExternalKey:(0,P.installationRootExternalKey)(r,g),installableKind:P.ComponentKind.INTERFACE,sourcePath:u,nativeKey:c?.name??t})}catch{return}if(n===null)return;let p=n.indexOf(":");if(p<=0||p===n.length-1)return;let m=n.slice(p+1),d=m.replaceAll("\\","/").split("/").at(-1);if(!(d===void 0||!nc.has(d)))try{return(0,P.buildComponentReference)({installationRootExternalKey:n,installableKind:P.ComponentKind.INTERFACE,sourcePath:m,nativeKey:t})}catch{return}}function g_(...e){for(let t of e)if(t)return t;return null}function W(e,t,n){if(e.status==="fulfilled")return e.value;let r=e.reason instanceof Error?e.reason.message:String(e.reason);return h(`WARN: ${n} failed open: ${r}`),t}function __(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 h_(e,t){return{runner_platform:e,config_scope:"user",...t?{operator:t}:{}}}var Oe=new Set,lt=null;async function S_(e){if(Jt())return;let t=e.manifest.installationId,n=e.manifest.installationStorePath;if(Oe.has(t))return;if(!cr(n)){Oe.add(t);return}let r=$e({sessionId:e.sessionId,hostname:Ke()});if(bi(r)){if(lt){await lt;return}lt=(async()=>{if(Oe.has(t)||!cr(n)){Oe.add(t);return}if(!Do(n)){Oe.add(t);return}let o=!1;try{let s=Date.now(),{gitRoot:i}=e.manifest,a=String(e.runnerPlatform),[c,u,l,p,m]=await Promise.allSettled([Xe(i),_n(),er(r),hn(),ar({gitRoot:i,installationStorePath:n,forceResend:!1,runnerPlatform:a})]),d=W(c,null,"gitSnapshot"),g=W(u,"","detectVirt"),S=W(l,null,"probeCloud"),E=W(p,{},"hostEnv"),y=W(m,{commit:()=>{}},"resolveOperatorForSend");await rn(e,i,d);let R={identity:{host:Ke(),context:r,virt:g||null,cloud:S,git:d},host_env:E,env_vars:tr(),self_config:h_(a,y.operator),run_meta:{trigger:"cloud_identity_bootstrap"}};o=!!await He("session_start",R,nn(e),Fe,e.manifest.collectorUrl,s,dt(e)),o&&(y.commit(),Oe.add(t))}finally{Fo(n)}})().finally(()=>{lt=null}),await lt}}async function rn(e,t,n){try{let r=n===void 0?await Xe(t):n;e.platformAgentId=await Os(e.manifest.manifest,e.platformAgentId,String(e.runnerPlatform),t,r,e.manifest.installationStorePath,e.manifest.repoKey)}catch(r){let o=r instanceof Error?r.message:String(r);h(`WARN: derivePlatformAgentId failed open: ${o}`)}}async function E_(e){let t=Date.now(),{gitRoot:n}=e.manifest,r=$e({sessionId:e.sessionId,hostname:Ke()}),o=String(e.runnerPlatform),s=Br(e),i=fr(e.hookInput,s),a=Xe(n),c=Ka().catch(()=>({})),u=Jt()?Promise.resolve({commit:()=>{}}):ar({gitRoot:n,installationStorePath:e.manifest.installationStorePath,forceResend:!1,runnerPlatform:o}),[l,p,m,d,g,S,E]=await Promise.allSettled([a,_n(),er(r),hn(),Wn(e.manifest.manifest,n,o),a.catch(()=>null).then(Y=>Ta(o,n,void 0,{installationStorePath:e.manifest.installationStorePath,gitRoot:n,launchCwd:i,inGitRepo:e.manifest.inGitRepo,remote:Y?.remote??null})),u]),y=W(l,null,"gitSnapshot"),R=W(p,"","detectVirt"),H=W(m,null,"probeCloud"),k=W(d,{},"hostEnv"),x=W(g,[],"mcpDeclared"),L=W(S,__(o),"selfConfig"),U=W(E,{commit:()=>{}},"resolveOperatorForSend"),$=L.config;await rn(e,n,y);let q=_(e.hookInput,"model");q&&($.model=q);let D={identity:{host:Ke(),context:r,virt:R||null,cloud:H,git:y},host_env:k,env_vars:tr(),mcp:{declared:x},self_config:$,run_meta:{trigger:e.hookSource||"startup"},hook_input:Dt(e.hookInput,e.manifest.manifest,{...s,launchCwd:i})},N=await c;await He("session_start",D,{...nn(e),...N},Fe,e.manifest.collectorUrl,t,dt(e))&&(L.commit(),U.commit(),Oe.add(e.manifest.installationId))}async function y_(e){let t=Date.now(),{gitRoot:n}=e.manifest;await rn(e,n);let r=e.runnerEvent.toLowerCase(),o=g_(_(e.hookInput,"status"),_(e.hookInput,"stop_reason"),_(e.hookInput,"reason"),Qe(_(e.hookInput,"error")),r==="stop"?re(e.hookInput,"is_interrupt")===!0?"interrupted":"completed":""),s=e.runnerPlatform==="claude"?await Za(_(e.hookInput,"transcript_path")):null,i=Dt(e.hookInput,e.manifest.manifest,Br(e));s&&(i.model=s),r!=="stopfailure"&&!Li(e.manifest.manifest)&&i.last_assistant_message===void 0&&(i.last_assistant_message=""),await He("session_end",{status:o,...s?{model:s}:{},hook_input:i},nn(e),Fe,e.manifest.collectorUrl,t,dt(e))}function rc(e,t,n,r){let o=r??ts({skillId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home}),s=tn(o,t.gitRoot,t.home,P.ComponentKind.SKILL,P.nativeKeyForSkillPath,e);if(s.sourcePath!==null&&wn(s.sourcePath)?.toLowerCase()===n.toLowerCase())return s.componentReference===void 0?{}:{componentReference:s.componentReference};let i=r??bs({commandId:n,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),a=tn(i,t.gitRoot,t.home,P.ComponentKind.COMMAND,P.nativeKeyForCommandPath,e);return a.nativeKey?.toLowerCase()!==n.toLowerCase()?{}:{commandName:a.nativeKey,...a.componentReference===void 0?{}:{componentReference:a.componentReference}}}function R_(e,t,n){let r=At(e.hookInput.tool_input);return Promise.all(n.map(o=>{let s=rc(e,t,o,r);return Gr(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 C_(e,t,n){return Promise.all(n.map(r=>{let o=Ps({relativePath:r,launchCwd:t.launchCwd,gitRoot:t.gitRoot,home:t.home,runnerPlatform:e.runnerPlatform}),s=tn(o,t.gitRoot,t.home,P.ComponentKind.RULE,P.nativeKeyForRulePath,e),i=s.nativeKey??ks(r);return Gr(e,t,{tool_name:"Rule",rule_name:i,...s.componentReference===void 0?{}:{component_reference:s.componentReference}})}))}var I_=[{kind:P.ComponentKind.SKILL,nativeKeyFn:P.nativeKeyForSkillPath},{kind:P.ComponentKind.RULE,nativeKeyFn:P.nativeKeyForRulePath},{kind:P.ComponentKind.COMMAND,nativeKeyFn:P.nativeKeyForCommandPath}];function A_(e,t,n){if(n.skillName===null&&n.ruleName===null&&n.commandName===null)return{};let r=Ln(e.hookInput);if(r===null)return n.skillName===null?{}:rc(e,t,n.skillName,null);for(let o of I_){let s=tn(r,t.gitRoot,t.home,o.kind,o.nativeKeyFn,e);if(s.nativeKey!==null)return{...s.componentReference===void 0?{}:{componentReference:s.componentReference},...o.kind===P.ComponentKind.RULE?{ruleName:s.nativeKey}:{},...o.kind===P.ComponentKind.COMMAND?{commandName:s.nativeKey}:{}}}return{}}var O_=/mcp/i;function P_(e,t,n,r){let o=O_.test(e.runnerEvent);if(!r.hasMcpIdentity&&!o)return{};let s=o?la(t,n):zt(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 T_(e){let t=await ec(e),n=Gs(e.hookInput,e.runnerEvent),{toolName:r,skillName:o}=n,s=vn(e.hookInput),i=ca(s,t.home),a=Vs(e.hookInput),c=js(e.runnerEvent),u=c===!1?Ws(e.hookInput,e.runnerEvent):null,l=await Wn(e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home).catch(()=>[]),p=Qe(_(e.hookInput,"mcp_server_name")),{mcpServer:m,mcpTool:d}=Ys(r,l.map(L=>L.name),p??""),g=m_(r,m,e.platformAgentId,e.manifest.installationId,String(e.runnerPlatform),l,p),S=g===void 0?A_(e,t,n):{},E=m===null?null:Us(m,e.manifest.manifest,e.manifest.gitRoot,String(e.runnerPlatform),t.home),y=P_(e,s,t.home,{hasMcpIdentity:!!m||!!d,declaredConfig:E}),R=g??S.componentReference,H=S.ruleName??n.ruleName,k=S.commandName??n.commandName,x=zs(e.hookInput);await He("tool_invoked",{tool_name:r,skill_name:o,...H?{rule_name:H}:{},...k?{command_name:k}:{},success:c,duration_ms:a,...i?{executable:i}:{},...u?{failure_reason:u}:{},...m?{mcp_server:m}:{},...d?{mcp_tool:d}:{},...y,...R?{component_reference:R}:{},...x?{subagent_type:x}:{},hook_input:t.hookInput},t.envelopeFields,Fe,e.manifest.collectorUrl,t.buildStartedAtMs,dt(e,t.home))}async function oc(e){switch(e.internalEvent){case"session_start":await E_(e);return;case"session_end":await y_(e);return;case"skill_invoked":{let t=d_(e),n=xs(e.hookInput),r=Fs(e.runnerEvent);if(t.length===0&&n.length===0&&!r)return;let o=await ec(e);await Promise.all([r&&t.length===0&&n.length===0?p_(e,o):void 0,t.length===0?void 0:R_(e,o,t),n.length===0?void 0:C_(e,o,n)]);return}case"tool_invoked":await T_(e);return;default:return}}function sc(e){return e!=="session_start"&&e!=="session_end"&&e!=="tool_invoked"&&e!=="skill_invoked"&&e!==""}import{existsSync as Vr,readFileSync as k_}from"node:fs";import{dirname as x_,isAbsolute as b_,join as N_,relative as M_}from"node:path";function ic(e){for(let t of lo){let n=N_(e,t);if(Vr(n))return n}}async function w_(e=process.cwd(),t){let n=t??await pn(e);return ic(n)??ic(e)}async function v_(e,t){let n=t??await pn(x_(e)),r=M_(n,e);if(r.startsWith("..")||b_(r))return!1;let o=await J("git",["ls-files","--error-unmatch",r],2e3,{cwd:n});return o.ok?!0:o.code===1?!1:(h(`WARN: git ls-files failed for manifest ${e} (code=${String(o.code)}); treating as tracked`),!0)}function zr(e){let t=k_(e,"utf8");return j(t,{})}function L_(){return{schema_version:Et,mcp_servers:[]}}function U_(e,t,n,r){!t||!n||(e.capture_hook_input==="full"&&r.has("capture_hook_input")&&(h(`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")&&(h(`WARN: ignoring debug=true in git-tracked manifest ${t}; set debug on ~/.ev-ai/config.json`),delete e.debug))}async function ac(e=process.cwd(),t={}){let{root:n,inGitRepo:r}=await dn(e),o=I("EV_AI_HOOK_MANIFEST"),s=o&&Vr(o)?o:void 0,i=s?void 0:Vr(En())?En():void 0,a=s?void 0:await w_(e,n),c=i?zr(i):void 0,u=a?zr(a):void 0,l,p,m,d=new Set;if(s){l=zr(s),p=s,m=s;for(let R of Object.keys(l))d.add(R)}else if(c&&u){l=po(u,c),p=i,m=a;for(let R of Object.keys(u))R in c||d.add(R)}else if(c)l=c,p=i;else if(u){l=u,p=a,m=a;for(let R of Object.keys(u))d.add(R)}else l=L_();delete l.installation_id;let g=m?await v_(m,n):!1;U_(l,m,g,d);let{installationId:S,storePath:E,repoKey:y}=await Ko(n,{sessionId:t.sessionId});return{manifestPath:p??E,manifest:l,installationId:S,installationStorePath:E,repoKey:y,collectorUrl:Cn(l),platformAgentId:l.platform_agent_id??"",gitRoot:n,inGitRepo:r}}import{createHash as D_}from"node:crypto";import{mkdirSync as F_,readdirSync as H_,readFileSync as j_,statSync as cc,unlinkSync as $_,writeFileSync as K_}from"node:fs";import{homedir as on}from"node:os";import{join as Wr}from"node:path";var B_="turns",uc=1440*60*1e3,G_=100,z_=new Set(["stop","stopfailure","sessionend"]);function Yr(e=on()){return Wr(oe(e),B_)}function V_(e){return D_("sha256").update(e).digest("hex").slice(0,32)}function lc(e,t){return Wr(e,V_(t))}function W_(e,t=Date.now()){let n;try{n=H_(e)}catch{return}let r=0;for(let o of n){if(r>=G_)return;r+=1;try{let s=Wr(e,o);t-cc(s).mtimeMs>uc&&$_(s)}catch{}}}function Y_(e,t,n=on()){let r=e.trim(),o=t.trim();if(!(!r||!o))try{let s=Yr(n);F_(s,{recursive:!0}),K_(lc(s,r),o,"utf8")}catch{}}function J_(e,t=on()){let n=e.trim();if(!n)return"";try{let r=lc(Yr(t),n);return Date.now()-cc(r).mtimeMs>uc?"":j_(r,"utf8").trim()}catch{return""}}function dc(e,t,n,r=on()){let o=t.trim(),s=z_.has(n.trim().toLowerCase());return s&&W_(Yr(r)),o?(Y_(e,o,r),o):s?J_(e,r):""}async function pc(e,t,n,r){let o=t??await ln(An),s=j(o,{}),i=_(s,"session_id")||_(s,"conversation_id"),a=await ac(process.cwd(),{sessionId:i});if(!a)return;r&&(a.collectorUrl=r);let c=$s(s,a.manifest.platform,n),u=Ks(e,c.runnerEvent);if(!u){h(`WARN: unknown hook event '${c.runnerEvent}'; skipping telemetry`);return}let l={hookInput:s,sessionId:c.sessionId,turnId:dc(c.sessionId,c.turnId,c.runnerEvent),runnerEvent:c.runnerEvent,runnerPlatform:c.runnerPlatform,hookSource:c.hookSource,internalEvent:u,manifest:a,platformAgentId:a.platformAgentId};if(sc(u)){h(`WARN: unsupported internal event '${u}'`);return}await oc(l)}function X_(e,t){if(I("EV_AI_HOOK_SYNC")==="1")return!0;let n=Be(e),r=j(t,{}),o=n.event??(_(r,"hook_event_name")||_(r,"event")),s=qe(r,o,void 0,n.runner);return Nt(o,s)}async function fc(e=process.argv.slice(2)){if(ai(),e[0]===Kr){try{await Ya(un)}catch{}return 0}if(e[0]===en){try{let t=Be(e.slice(1)),n=await un(),r=j(n,{}),o=t.event??(_(r,"hook_event_name")||_(r,"event"));if(mn()||Jn(t.runner,r,o))return 0;await pc(t.event,n,t.runner,Yn(t))}catch(t){let n=t instanceof Error?t.message:String(t);h(`WARN: detached work failed open: ${n}`)}return 0}try{let t=await ln(An),n=Be(e),r=Yn(n),o=j(t,{}),s=n.event??(_(o,"hook_event_name")||_(o,"event"));if(mn()||Jn(n.runner,o,s)||!ti(o,s,n.runner))return 0;X_(e,t)?await pc(n.event,t,n.runner,r):await Xa(t,e)}catch(t){let n=t instanceof Error?t.message:String(t);h(`WARN: hook failed open: ${n}`)}finally{to()}return 0}fc().then(e=>{process.exit(e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);process.stderr.write(`[ev-ai-agent-hook] ${t}
45
45
  `),process.exit(1)});