agentsmesh 0.24.0 → 0.25.0

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/cli.js CHANGED
@@ -1,223 +1,223 @@
1
1
  #!/usr/bin/env node
2
- import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize,isAbsolute}from'path';import {rm as rm$1,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp as cp$1,readlink,symlink,copyFile}from'fs/promises';import {setTimeout as setTimeout$1}from'timers/promises';import {realpathSync,rmSync,existsSync,statSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,readFileSync,writeFileSync,renameSync,constants,appendFileSync}from'fs';import {z as z$1}from'zod';import {stringify,parse,parseDocument,YAMLSeq,YAMLMap}from'yaml';import {homedir,tmpdir,hostname}from'os';import {execFile}from'child_process';import {fileURLToPath,URL,pathToFileURL}from'url';import {promisify}from'util';import*as LE from'tar';import {createHash}from'crypto';import {parse as parse$1}from'smol-toml';import {Buffer as Buffer$1}from'buffer';import {createRequire}from'module';import i6 from'picomatch';import {createTwoFilesPatch}from'diff';import V7 from'chokidar';import*as zW from'readline';import {Server}from'@modelcontextprotocol/sdk/server/index.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import {ListToolsRequestSchema,CallToolRequestSchema,ListResourcesRequestSchema,ReadResourceRequestSchema}from'@modelcontextprotocol/sdk/types.js';import {toJSONSchema}from'zod/v4/core';var VC=Object.defineProperty;var s=(e,t)=>VC(e,"name",{value:t,configurable:true});var d=(e,t)=>()=>(e&&(t=e(e=0)),t);var Dy=(e,t)=>{for(var r in t)VC(e,r,{get:t[r],enumerable:true});};function lV(){let e=process.env.NO_COLOR;return e!==void 0&&e!==""}function cV(){let e=process.env.FORCE_COLOR;if(e!==void 0)return e!=="0"&&e!=="false"}function Bl(e=process.stdout){let t=cV();return t!==void 0?t:lV()?false:e.isTTY===true}var fd=d(()=>{s(lV,"noColorRequested");s(cV,"forceColorRequested");s(Bl,"colorEnabled");});function XC(){ha=true;}function QC(){YC=true;}function gd(){return YC?process.stderr:process.stdout}function Kl(e){gd().write(e);}function zm(e,t,r){return Bl(r)?`${e}${t}${Wl.reset}`:t}function mV(e,t){let r=[...e].length;return e+" ".repeat(Math.max(0,t-r))}var Wl,ha,YC,y,se=d(()=>{fd();Wl={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},ha=false,YC=false;s(XC,"muteLogger");s(QC,"redirectLoggerToStderr");s(gd,"outStream");s(Kl,"out");s(zm,"c");s(mV,"pad");y={info(e){ha||Kl(zm(Wl.cyan,e,gd())+`
3
- `);},warn(e){ha||process.stderr.write(zm(Wl.yellow,"\u26A0 ",process.stderr)+e+`
4
- `);},error(e){ha||process.stderr.write(zm(Wl.red,"\u2717 ",process.stderr)+e+`
5
- `);},success(e){ha||Kl(zm(Wl.green,"\u2713 ",gd())+e+`
6
- `);},debug(e){ha||process.env.AGENTSMESH_DEBUG==="1"&&Kl(zm(Wl.cyan,"[debug] ",gd())+e+`
7
- `);},table(e){if(ha||e.length===0)return;let t=e[0].length,r=[];for(let o=0;o<t;o++){let i=0;for(let a=0;a<e.length;a++){let l=[...e[a][o]].length;l>i&&(i=l);}r[o]=i;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";Kl(n+`
8
- `);for(let o=0;o<e.length;o++){let a="| "+e[o].map((l,c)=>mV(l,r[c])).join(" | ")+" |";Kl(a+`
9
- `);}Kl(n+`
10
- `);}};});var Xo,an,Vl,Hn,Jl,Jt,Qo=d(()=>{Xo=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(t,r,n){super(r,n),this.name="AgentsMeshError",this.code=t;}},an=class extends Xo{static{s(this,"ConfigNotFoundError");}path;constructor(t,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${t}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=t;}},Vl=class extends Xo{static{s(this,"ConfigValidationError");}issues;constructor(t,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${t}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}},Hn=class extends Xo{static{s(this,"TargetNotFoundError");}target;constructor(t,r){let n=r?.supported?` Supported: ${r.supported.join(", ")}.`:"";super("AM_TARGET_NOT_FOUND",`Unknown target "${t}".${n}`,r),this.name="TargetNotFoundError",this.target=t;}},Jl=class extends Xo{static{s(this,"LockAcquisitionError");}lockPath;holder;label;constructor(t,r,n){let o=n?.label??"lock";super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire ${o} at ${t}: currently held by ${r}. Wait for the other process to finish, or remove ${t} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=t,this.holder=r,this.label=o;}},Jt=class extends Xo{static{s(this,"FileSystemError");}path;errnoCode;constructor(t,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=t,this.errnoCode=n?.errnoCode;}};});function Rd(e){let t=extname(e).toLowerCase();if(t.length>0)return _V.has(t);let r=basename(e).toLowerCase();return SV.has(r)}function kd(e){return e.replace(/\r\n?/g,`
11
- `)}function Fy(e){return RV.has(extname(e).toLowerCase())?493:void 0}var Yl,_V,SV,RV,Id=d(()=>{Yl="\uFEFF",_V=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),SV=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Rd,"shouldNormalizeLineEndings");s(kd,"normalizeLineEndings");RV=new Set([".sh",".bash",".zsh"]);s(Fy,"executableModeFor");});function aE(e){if(e.length>bV)return true;let t=new Map;for(let r of e){let n=(t.get(r)??0)+1;if(n>=AV)return true;t.set(r,n);}return false}async function U(e,t,r){let n=r??[basename(e)],o;try{o=await realpath(e);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new Jt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=t??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(e,{withFileTypes:!0}),l=[];for(let c of a){let m=join(e,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if(aE(u))continue;l.push(...await U(m,i,u));}else l.push(m);}return l}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="EACCES")return [];throw new Jt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function gi(e,t){let r=t??[basename(e)];try{let n=await readdir(e,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(e,i.name);if(i.isDirectory()){let l=[...r,i.name];if(aE(l))continue;o.push(...await gi(a,l));}else i.isFile()&&o.push(a);}return o}catch(n){let o=n;if(o.code==="ENOENT"||o.code==="ENOTDIR"||o.code==="EACCES")return [];throw new Jt(e,`Failed to read directory ${e}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function My(e,t){let r=resolve(e);try{if(!(await lstat(t)).isSymbolicLink()||resolve(dirname(t),await readlink(t))===r)return;await unlink(t);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,t,"dir");}var bV,AV,Gy=d(()=>{Qo();bV=32,AV=3;s(aE,"shouldSkipRecursiveBranch");s(U,"readDirRecursive");s(gi,"readDirRecursiveNoSymlinks");s(My,"ensureCacheSymlink");});async function $y(e,t,r={}){let n=r.attempts??5,o=r.delayMs??50;for(let i=0;;i++)try{await rename(e,t);return}catch(a){let l=a.code;if(!(l!==void 0&&PV.has(l))||i>=n-1)throw a;await setTimeout$1(o*2**i);}}var PV,lE=d(()=>{PV=new Set(["EPERM","EACCES","EBUSY","ENOTEMPTY","EEXIST"]);s($y,"renameWithRetry");});async function k(e){try{let t=await readFile(e,"utf-8");return t.startsWith(Yl)?t.slice(Yl.length):t}catch(t){let r=t;if(r.code==="ENOENT")return null;throw new Jt(e,`Failed to read ${e}: ${r.message}. Ensure the file exists and is readable.`,{cause:t,errnoCode:r.code})}}async function L(e,t,r){let n=dirname(e);await mkdir(n,{recursive:true});try{let l=await lstat(e);if(l.isDirectory())throw new Jt(e,`Failed to write ${e}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(e).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof Jt||l.code!=="ENOENT")throw l}let o=`${e}.tmp`,i=Rd(e)?kd(t):t,a=r?.mode??Fy(e);try{try{(await lstat(o)).isSymbolicLink()&&await unlink(o);}catch(c){if(c.code!=="ENOENT")throw c}let l={encoding:"utf-8",flag:"w"};a!==void 0&&(l.mode=a),await writeFile(o,i,l),await rename(o,e),a!==void 0&&await chmod(e,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new Jt(e,`Failed to write ${e}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(e){try{return await access(e,constants.F_OK),!0}catch{return false}}async function O(e){await mkdir(e,{recursive:true});}var b=d(()=>{Qo();Id();Gy();Id();lE();s(k,"readFileSafe");s(L,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function Yt(e){return jy.includes(e)}var jy,uE=d(()=>{jy=["aider","amazon-q","amp","antigravity","augment-code","claude-code","cline","codex-cli","continue","copilot","crush","cursor","deepagents-cli","factory-droid","gemini-cli","goose","jules","junie","kilo-code","kiro","opencode","pi-agent","qwen-code","replit-agent","roo-code","rovodev","trae","warp","windsurf","zed"];s(Yt,"isBuiltinTargetId");});var Ue,Uy,zn=d(()=>{uE();Ue=jy,Uy="codex-cli";});var dE,kr,Xl,UV,Jm,BV,KV,Vm,WV,HV,_a,qo=d(()=>{zn();dE=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],kr=z$1.enum(Ue),Xl=z$1.enum(dE),UV=z$1.enum(["rules","commands","agents","skills"]),Jm=z$1.object({skills:z$1.array(z$1.string()).optional(),commands:z$1.array(z$1.string()).optional(),rules:z$1.array(z$1.string()).optional(),agents:z$1.array(z$1.string()).optional()}).strict(),BV=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:kr.optional(),as:UV.optional(),features:z$1.array(Xl),path:z$1.string().optional(),pick:Jm.optional()}),KV=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Vm=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),WV=z$1.object({commands_to_skills:z$1.object({"codex-cli":Vm.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Vm.optional(),cline:Vm.optional(),"codex-cli":Vm.optional(),windsurf:Vm.optional()}).passthrough().optional()}).strict().optional(),HV=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional(),strict:z$1.boolean().optional()}).strict(),_a=z$1.object({version:z$1.literal(1),targets:z$1.array(kr).default([...Ue]),features:z$1.array(Xl).default([...dE]),extends:z$1.array(BV).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:KV.default({strategy:"merge",lock_features:[]}),conversions:WV,plugins:z$1.array(HV).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function JV(e){let t=resolve(e);for(;;){let r=join(t,Ky);if(await j(r))return r;let n=dirname(t);if(n===t)return null;t=n;}}async function YV(e){let t=await k(e);if(t===null)throw new an(e);let r=parse(t),n=_a.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Vl(e,o,{cause:n.error})}return n.data}function By(e,t){let r={...e};for(let[n,o]of Object.entries(t)){if(o==null||XV.has(n))continue;let i=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]=By(i,o):r[n]=o;}return r}function QV(e,t){let r={...e};return Array.isArray(t.targets)&&t.targets.length>0&&(r.targets=t.targets),Array.isArray(t.features)&&t.features.length>0&&(r.features=t.features),typeof t.overrides=="object"&&t.overrides!==null&&!Array.isArray(t.overrides)&&(r.overrides=By(r.overrides??{},t.overrides)),typeof t.conversions=="object"&&t.conversions!==null&&!Array.isArray(t.conversions)&&(r.conversions=By(r.conversions??{},t.conversions)),Array.isArray(t.extends)&&t.extends.length>0&&(r.extends=[...e.extends??[],...t.extends]),r}async function Cd(e){let t=join(e,Ky),r=await YV(t),n=join(e,VV),o=await k(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=QV(r,i),l=_a.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");y.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:e}}async function Ed(e){let t=await JV(e);if(t===null)throw new an(join(e,Ky));return Cd(dirname(t))}var Ky,VV,XV,Od=d(()=>{b();se();Qo();qo();Ky="agentsmesh.yaml",VV="agentsmesh.local.yaml";s(JV,"findConfigPath");s(YV,"loadConfig");XV=new Set(["__proto__","constructor","prototype"]);s(By,"deepMergeObjects");s(QV,"mergeLocalConfig");s(Cd,"loadConfigFromExactDir");s(Ed,"loadConfigFromDir");});function Sa(e,t="project"){if(t==="project")return {scope:t,rootBase:e,configDir:e,canonicalDir:join(e,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:t,rootBase:r,configDir:n,canonicalDir:n}}async function ye(e,t="project"){if(t==="project"){let{config:n,configDir:o}=await Ed(e);return {config:n,context:{scope:t,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Sa(e,t);try{let{config:n}=await Cd(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof an?new an(n.path,{cause:n,message:`agentsmesh.yaml not found at ${n.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):n}}var tt=d(()=>{Od();Qo();s(Sa,"resolveScopeContext");s(ye,"loadScopedConfig");});function Ql(e){return e.replace(ZV,(t,r,n,o)=>`${r}***@${o}`)}var ZV,Hy=d(()=>{ZV=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(Ql,"redactUrlSecrets");});function _E(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}async function wd(e,t,r,n,o){let i="cloneUrl"in e?"gitlab":"git",a="cloneUrl"in e?`${e.namespace}/${e.project}`:e.url,l=e.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,hE),u=`${m}.tmp`,f=join(u,hE);if(!r.refresh&&await yE(p))return Jy(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await iJ(sJ(e),f),e.ref&&await aJ(f,e.ref),await rm$1(m,{recursive:!0,force:!0}),await $y(u,m),Jy(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await yE(p)){let _=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${t}; using cached version. Error: ${Ql(_)}`),Jy(p)}throw g instanceof Error?Object.assign(new Error(Ql(g.message)),{cause:g.cause}):g}}async function Jy(e){return {resolvedPath:e,version:await lJ(e)}}async function yE(e){return j(e)}function sJ(e){if("cloneUrl"in e){let t=process.env.AGENTSMESH_GITLAB_TOKEN;if(t){let r=new URL(e.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=t,r.toString()}return e.cloneUrl}return e.url}async function iJ(e,t){_E(e,"clone-url"),await Yy(["clone",e,t]);}async function aJ(e,t){_E(t,"ref"),await Yy(["checkout",t],e);}async function lJ(e){return Yy(["rev-parse","HEAD"],e)}async function Yy(e,t){let{stdout:r}=await oJ("git",e,{cwd:t,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var oJ,hE,Xy=d(()=>{b();Hy();oJ=promisify(execFile),hE="repo";s(_E,"ensureNotFlag");s(wd,"fetchGitRemoteExtend");s(Jy,"readCachedRepo");s(yE,"hasCachedRepo");s(sJ,"resolveCloneUrl");s(iJ,"cloneRepo");s(aJ,"checkoutRef");s(lJ,"getHeadSha");s(Yy,"runGit");});function uJ(){let e=process.env.AGENTSMESH_MAX_TARBALL_MB;if(e===void 0||e==="")return Xm*1024*1024;let t=Number(e);return !Number.isFinite(t)||!Number.isInteger(t)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${e}" is not an integer; using default ${Xm} MiB.`),Xm*1024*1024):t<RE||t>kE?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${t} is outside [${RE}, ${kE}]; using default ${Xm} MiB.`),Xm*1024*1024):t*1024*1024}async function fJ(e,t){let r=typeof e.headers?.get=="function"?e.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>t)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${t}`)}let n=e.body;if(!n){let m=await e.arrayBuffer();if(m.byteLength>t)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${t}`);return new Uint8Array(m)}let o=n.getReader(),i=[],a=0;for(;;){let{done:m,value:p}=await o.read();if(m)break;if(p){if(a+=p.byteLength,a>t)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${t} bytes during streaming`);i.push(p);}}let l=new Uint8Array(a),c=0;for(let m of i)l.set(m,c),c+=m.byteLength;return l}async function CE(e,t,r){let n=`https://api.github.com/repos/${e}/${t}/releases/latest`,o={Accept:"application/vnd.github+json"};r&&(o.Authorization=`Bearer ${r}`);let i=await globalThis.fetch(n,{headers:o});if(!i.ok)throw new Error(`Failed to resolve latest release for ${e}/${t}: ${i.status} ${i.statusText}`);let a=await i.json();if(!a.tag_name||typeof a.tag_name!="string")throw new Error(`No tag_name in releases/latest response for ${e}/${t}`);return a.tag_name}async function EE(e,t,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=e.tag;if(c==="latest")try{c=await CE(e.org,e.repo,a);}catch(R){if(!i)throw R;return hJ(e,t,r,n,o,a)}let m=o("github",`${e.org}/${e.repo}`,c),p=join(n,m);if(!l&&await j(p)){let R=await Qy(p);if(R)return {resolvedPath:join(p,R),version:c}}let u=`https://github.com/${e.org}/${e.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let R=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!R.ok)throw new Error(`HTTP ${R.status}: ${R.statusText}`);g=await fJ(R,dJ);}catch(R){if(r.allowOfflineFallback!==false&&await j(p)){let w=await Qy(p);if(w){let D=R instanceof Error?R.message:String(R);return console.warn(`[agentsmesh] Network failed for ${t}; using cached version. Error: ${Ql(D)}`),{resolvedPath:join(p,w),version:c}}}throw R instanceof Error?Object.assign(new Error(Ql(R.message)),{cause:R.cause}):R}await rm$1(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,g);try{await LE.extract({file:h,cwd:p,strict:!0,filter:s((R,I)=>{if(gJ(R))return !1;let w=I&&"type"in I?I.type:void 0;return w==="File"||w==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let _=await Qy(p);if(!_)throw new Error(`Extend "${t}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,_),version:c}}async function Qy(e){let r=(await readdir(e,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function IE(e,t,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${e}/${t}.git`:`https://github.com/${e}/${t}.git`}function gJ(e){let t=e.replace(/\\/g,"/");return t.startsWith("/")||t.split("/").includes("..")}async function hJ(e,t,r,n,o,i){let a=i?[IE(e.org,e.repo,i)]:[IE(e.org,e.repo),`ssh://git@github.com/${e.org}/${e.repo}.git`],l;for(let c of a){let m={url:c};try{return await wd(m,t,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Xm,RE,kE,dJ,OE=d(()=>{b();Hy();Xy();Xm=500,RE=1,kE=4096;s(uJ,"resolveMaxTarballBytes");dJ=uJ();s(fJ,"readBoundedResponse");s(CE,"resolveLatestTag");s(EE,"fetchGithubRemoteExtend");s(Qy,"findExtractTopDir");s(IE,"buildGithubCloneUrl");s(gJ,"isZipSlipPath");s(hJ,"fetchGithubDefaultBranch");});function wE(e,t,r){if(!e.startsWith(t))return null;let n=e.slice(t.length).trim();if(!n)return null;let o=n.lastIndexOf("@");if(o<0)return [n,r];let i=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !i||!a?null:[i,a]}function bE(e){let t=wE(e,"github:","latest");if(!t)return null;let[r,n]=t,o=r.indexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a||!n?null:{org:i,repo:a,tag:n}}function AE(e){let t=wE(e,"gitlab:");if(!t)return null;let[r,n]=t,o=r.lastIndexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a?null:{namespace:i,project:a,ref:n,cloneUrl:`https://gitlab.com/${i}/${a}.git`}}function xE(e){if(!e.startsWith("git+"))return null;let t=e.slice(4).trim();if(!t)return null;let r=t.lastIndexOf("#"),n=(r<0?t:t.slice(0,r)).trim(),o=r<0?void 0:t.slice(r+1).trim();if(!n||r>=0&&!o)return null;let i;try{i=new URL(n);}catch{return null}let a=process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="1"||process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="true",l=process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="1"||process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="true",c=["https:","ssh:"];return a&&c.push("http:"),l&&c.push("file:"),c.includes(i.protocol)?{url:n,ref:o}:null}function Ra(e){let t=bE(e);if(t)return {kind:"github",...t};let r=AE(e);if(r)return {kind:"gitlab",...r};let n=xE(e);return n?{kind:"git",...n}:null}function qy(e){return Ra(e)!==null}var Qm=d(()=>{s(wE,"splitSourceRef");s(bE,"parseGithubSource");s(AE,"parseGitlabSource");s(xE,"parseGitSource");s(Ra,"parseRemoteSource");s(qy,"isSupportedRemoteSource");});function RJ(e){let t=Ra(e);return t?t.kind==="github"?ql("github",`${t.org}/${t.repo}`,t.tag):t.kind==="gitlab"?ql("gitlab",`${t.namespace}/${t.project}`,t.ref??"HEAD"):ql("git",t.url,t.ref??"HEAD"):null}async function DE(e,t){let r=RJ(e);if(!r)return;let n=t??Xt(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function NE(e,t){let r=e??Xt(),n=t??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let i=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);i-c>n&&await rm$1(l,{recursive:!0,force:!0});}catch{}}));}var Zy=d(()=>{qm();Qm();s(RJ,"cacheKeyFromSource");s(DE,"cleanInstallCache");s(NE,"sweepStaleCache");});function ql(e,t,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(e==="github"){let[i,a]=t.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(e)}__${n(t)}__${n(r)}`;}else o=`${n(e)}__${n(t)}__${n(r)}`;if(o.length>ME){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,ME-18)}--${i}`;}return o}function Xt(){let e=process.env.AGENTSMESH_CACHE;if(e){let t=e.trim();if(!t)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(t))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${t}").`);if(t==="/"||/^[A-Za-z]:[\\/]?$/.test(t))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${t}").`);return t}return join(homedir(),".agentsmesh","cache")}async function Zl(e,t,r={}){let n=Ra(e);if(!n)throw e.startsWith("github:")?new Error(`Invalid github: source: "${e}" for extend "${t}"`):e.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${e}" for extend "${t}"`):e.startsWith("git+")?new Error(`Invalid git+ source: "${e}" for extend "${t}"`):new Error(`Invalid remote source: "${e}" for extend "${t}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??Xt();return NE(o).catch(()=>{}),n.kind==="github"?EE(n,t,r,o,ql,!e.includes("@")):wd(n,t,r,o,ql)}var ME,qm=d(()=>{Xy();OE();Qm();Zy();ME=80;s(ql,"buildCacheKey");s(Xt,"getCacheDir");s(Zl,"fetchRemoteExtend");});function EJ(e){return e.startsWith("http://")||e.startsWith("https://")}async function ec(e,t,r={}){if(e.extends.length===0)return [];if(r.refreshCache===true&&e.extends.some(o=>qy(o.source))){let o=Xt();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of e.extends){if(EJ(o.source))throw new Error(`Remote extends (http/https) not supported: "${o.source}" for extend "${o.name}". Use github:org/repo@tag, gitlab:group/project@ref, git+https://host/org/repo.git#ref, or a local path (e.g. ./shared/).`);if(qy(o.source)){let a=await Zl(o.source,o.name,{cacheDir:Xt(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,as:o.as,version:a.version,path:o.path,pick:o.pick});continue}let i=resolve(t,o.source);if(!await j(i))throw new Error(`Extend "${o.name}": path does not exist: ${i}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:i,features:[...o.features],target:o.target,as:o.as,path:o.path,pick:o.pick});}return n}var bd=d(()=>{b();qm();Qm();s(EJ,"isOtherRemoteSource");s(ec,"resolveExtendPaths");});function x(e){if(e.indexOf("---")!==0)return {frontmatter:{},body:e.trim()};let r=e.indexOf("---",3);if(r===-1)return {frontmatter:{},body:e.trim()};let n=e.slice(3,r).trim(),o=e.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function bJ(e){if(e.indexOf("---")!==0)return e.trim();let t=e.indexOf("---",3);return t===-1?e.trim():e.slice(t+3).trim()}function ln(e,t){try{return {ok:!0,value:x(e)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${t}: ${n}`,{cause:r}),bodyFallback:bJ(e)}}}function Zo(e,t,r){let n=ln(e,t);if(n.ok)return n.value;if(r)return r(n.error,t),null;throw n.error}function T(e,t){return Object.keys(e).length===0?t:`---
2
+ import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize,isAbsolute}from'path';import {rm as rm$1,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp as cp$1,readlink,symlink,copyFile}from'fs/promises';import {setTimeout as setTimeout$1}from'timers/promises';import {realpathSync,rmSync,existsSync,statSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,readFileSync,writeFileSync,renameSync,constants,appendFileSync}from'fs';import {z as z$1}from'zod';import {stringify,parse,parseDocument,YAMLSeq,YAMLMap}from'yaml';import {homedir,tmpdir,hostname}from'os';import {fileURLToPath,URL,pathToFileURL}from'url';import {execFile}from'child_process';import {promisify}from'util';import*as PE from'tar';import {createHash}from'crypto';import {parse as parse$1}from'smol-toml';import {Buffer as Buffer$1}from'buffer';import {createRequire}from'module';import g6 from'picomatch';import {createTwoFilesPatch}from'diff';import oee from'chokidar';import*as ZW from'readline';import {Server}from'@modelcontextprotocol/sdk/server/index.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import {ListToolsRequestSchema,CallToolRequestSchema,ListResourcesRequestSchema,ReadResourceRequestSchema}from'@modelcontextprotocol/sdk/types.js';import {toJSONSchema}from'zod/v4/core';var XC=Object.defineProperty;var s=(e,t)=>XC(e,"name",{value:t,configurable:true});var d=(e,t)=>()=>(e&&(t=e(e=0)),t);var Fy=(e,t)=>{for(var r in t)XC(e,r,{get:t[r],enumerable:true});};function hV(){let e=process.env.NO_COLOR;return e!==void 0&&e!==""}function yV(){let e=process.env.FORCE_COLOR;if(e!==void 0)return e!=="0"&&e!=="false"}function Wl(e=process.stdout){let t=yV();return t!==void 0?t:hV()?false:e.isTTY===true}var hd=d(()=>{s(hV,"noColorRequested");s(yV,"forceColorRequested");s(Wl,"colorEnabled");});function ZC(){ya=true;}function eE(){qC=true;}function yd(){return qC?process.stderr:process.stdout}function Hl(e){yd().write(e);}function Vm(e,t,r){return Wl(r)?`${e}${t}${zl.reset}`:t}function _V(e,t){let r=[...e].length;return e+" ".repeat(Math.max(0,t-r))}var zl,ya,qC,y,se=d(()=>{hd();zl={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},ya=false,qC=false;s(ZC,"muteLogger");s(eE,"redirectLoggerToStderr");s(yd,"outStream");s(Hl,"out");s(Vm,"c");s(_V,"pad");y={info(e){ya||Hl(Vm(zl.cyan,e,yd())+`
3
+ `);},warn(e){ya||process.stderr.write(Vm(zl.yellow,"\u26A0 ",process.stderr)+e+`
4
+ `);},error(e){ya||process.stderr.write(Vm(zl.red,"\u2717 ",process.stderr)+e+`
5
+ `);},success(e){ya||Hl(Vm(zl.green,"\u2713 ",yd())+e+`
6
+ `);},debug(e){ya||process.env.AGENTSMESH_DEBUG==="1"&&Hl(Vm(zl.cyan,"[debug] ",yd())+e+`
7
+ `);},table(e){if(ya||e.length===0)return;let t=e[0].length,r=[];for(let o=0;o<t;o++){let i=0;for(let a=0;a<e.length;a++){let l=[...e[a][o]].length;l>i&&(i=l);}r[o]=i;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";Hl(n+`
8
+ `);for(let o=0;o<e.length;o++){let a="| "+e[o].map((l,c)=>_V(l,r[c])).join(" | ")+" |";Hl(a+`
9
+ `);}Hl(n+`
10
+ `);}};});var Xo,an,Yl,zn,Xl,Yt,Qo=d(()=>{Xo=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(t,r,n){super(r,n),this.name="AgentsMeshError",this.code=t;}},an=class extends Xo{static{s(this,"ConfigNotFoundError");}path;constructor(t,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${t}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=t;}},Yl=class extends Xo{static{s(this,"ConfigValidationError");}issues;constructor(t,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${t}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}},zn=class extends Xo{static{s(this,"TargetNotFoundError");}target;constructor(t,r){let n=r?.supported?` Supported: ${r.supported.join(", ")}.`:"";super("AM_TARGET_NOT_FOUND",`Unknown target "${t}".${n}`,r),this.name="TargetNotFoundError",this.target=t;}},Xl=class extends Xo{static{s(this,"LockAcquisitionError");}lockPath;holder;label;constructor(t,r,n){let o=n?.label??"lock";super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire ${o} at ${t}: currently held by ${r}. Wait for the other process to finish, or remove ${t} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=t,this.holder=r,this.label=o;}},Yt=class extends Xo{static{s(this,"FileSystemError");}path;errnoCode;constructor(t,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=t,this.errnoCode=n?.errnoCode;}};});function Id(e){let t=extname(e).toLowerCase();if(t.length>0)return OV.has(t);let r=basename(e).toLowerCase();return wV.has(r)}function Ld(e){return e.replace(/\r\n?/g,`
11
+ `)}function $y(e){return bV.has(extname(e).toLowerCase())?493:void 0}var Ql,OV,wV,bV,Cd=d(()=>{Ql="\uFEFF",OV=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),wV=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Id,"shouldNormalizeLineEndings");s(Ld,"normalizeLineEndings");bV=new Set([".sh",".bash",".zsh"]);s($y,"executableModeFor");});function mE(e){if(e.length>FV)return true;let t=new Map;for(let r of e){let n=(t.get(r)??0)+1;if(n>=MV)return true;t.set(r,n);}return false}async function gi(e,t,r){let n=r??[basename(e)],o;try{o=await realpath(e);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new Yt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=t??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(e,{withFileTypes:!0}),l=[];for(let c of a){let m=join(e,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if(mE(u))continue;l.push(...await gi(m,i,u));}else l.push(m);}return l}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="EACCES")return [];throw new Yt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function U(e,t){let r=t??[basename(e)];try{let n=await readdir(e,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(e,i.name);if(i.isDirectory()){let l=[...r,i.name];if(mE(l))continue;o.push(...await U(a,l));}else i.isFile()&&o.push(a);}return o}catch(n){let o=n;if(o.code==="ENOENT"||o.code==="ENOTDIR"||o.code==="EACCES")return [];throw new Yt(e,`Failed to read directory ${e}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function jy(e,t){let r=resolve(e);try{if(!(await lstat(t)).isSymbolicLink()||resolve(dirname(t),await readlink(t))===r)return;await unlink(t);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,t,"dir");}var FV,MV,Uy=d(()=>{Qo();FV=32,MV=3;s(mE,"shouldSkipRecursiveBranch");s(gi,"readDirRecursive");s(U,"readDirRecursiveNoSymlinks");s(jy,"ensureCacheSymlink");});async function By(e,t,r={}){let n=r.attempts??5,o=r.delayMs??50;for(let i=0;;i++)try{await rename(e,t);return}catch(a){let l=a.code;if(!(l!==void 0&&jV.has(l))||i>=n-1)throw a;await setTimeout$1(o*2**i);}}var jV,pE=d(()=>{jV=new Set(["EPERM","EACCES","EBUSY","ENOTEMPTY","EEXIST"]);s(By,"renameWithRetry");});async function k(e){try{let t=await readFile(e,"utf-8");return t.startsWith(Ql)?t.slice(Ql.length):t}catch(t){let r=t;if(r.code==="ENOENT")return null;throw new Yt(e,`Failed to read ${e}: ${r.message}. Ensure the file exists and is readable.`,{cause:t,errnoCode:r.code})}}async function L(e,t,r){let n=dirname(e);await mkdir(n,{recursive:true});try{let l=await lstat(e);if(l.isDirectory())throw new Yt(e,`Failed to write ${e}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(e).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof Yt||l.code!=="ENOENT")throw l}let o=`${e}.tmp`,i=Id(e)?Ld(t):t,a=r?.mode??$y(e);try{try{(await lstat(o)).isSymbolicLink()&&await unlink(o);}catch(c){if(c.code!=="ENOENT")throw c}let l={encoding:"utf-8",flag:"w"};a!==void 0&&(l.mode=a),await writeFile(o,i,l),await rename(o,e),a!==void 0&&await chmod(e,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new Yt(e,`Failed to write ${e}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(e){try{return await access(e,constants.F_OK),!0}catch{return false}}async function O(e){await mkdir(e,{recursive:true});}var b=d(()=>{Qo();Cd();Uy();Cd();pE();s(k,"readFileSafe");s(L,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function Xt(e){return Ky.includes(e)}var Ky,gE=d(()=>{Ky=["aider","amazon-q","amp","antigravity","augment-code","claude-code","cline","codex-cli","continue","copilot","crush","cursor","deepagents-cli","factory-droid","gemini-cli","goose","jules","junie","kilo-code","kiro","opencode","pi-agent","qwen-code","replit-agent","roo-code","rovodev","trae","warp","windsurf","zed"];s(Xt,"isBuiltinTargetId");});var Ue,Wy,Vn=d(()=>{gE();Ue=Ky,Wy="codex-cli";});var hE,Ir,ql,YV,Ym,XV,QV,Jm,qV,ZV,Sa,qo=d(()=>{Vn();hE=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],Ir=z$1.enum(Ue),ql=z$1.enum(hE),YV=z$1.enum(["rules","commands","agents","skills"]),Ym=z$1.object({skills:z$1.array(z$1.string()).optional(),commands:z$1.array(z$1.string()).optional(),rules:z$1.array(z$1.string()).optional(),agents:z$1.array(z$1.string()).optional()}).strict(),XV=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:Ir.optional(),as:YV.optional(),features:z$1.array(ql),path:z$1.string().optional(),pick:Ym.optional()}),QV=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Jm=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),qV=z$1.object({commands_to_skills:z$1.object({"codex-cli":Jm.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Jm.optional(),cline:Jm.optional(),"codex-cli":Jm.optional(),windsurf:Jm.optional()}).passthrough().optional()}).strict().optional(),ZV=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional(),strict:z$1.boolean().optional()}).strict(),Sa=z$1.object({version:z$1.literal(1),targets:z$1.array(Ir).default([...Ue]),features:z$1.array(ql).default([...hE]),extends:z$1.array(XV).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:QV.default({strategy:"merge",lock_features:[]}),conversions:qV,plugins:z$1.array(ZV).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function rJ(e){let t=resolve(e);for(;;){let r=join(t,zy);if(await j(r))return r;let n=dirname(t);if(n===t)return null;t=n;}}async function nJ(e){let t=await k(e);if(t===null)throw new an(e);let r=parse(t),n=Sa.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Yl(e,o,{cause:n.error})}return n.data}function Hy(e,t){let r={...e};for(let[n,o]of Object.entries(t)){if(o==null||oJ.has(n))continue;let i=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]=Hy(i,o):r[n]=o;}return r}function sJ(e,t){let r={...e};return Array.isArray(t.targets)&&t.targets.length>0&&(r.targets=t.targets),Array.isArray(t.features)&&t.features.length>0&&(r.features=t.features),typeof t.overrides=="object"&&t.overrides!==null&&!Array.isArray(t.overrides)&&(r.overrides=Hy(r.overrides??{},t.overrides)),typeof t.conversions=="object"&&t.conversions!==null&&!Array.isArray(t.conversions)&&(r.conversions=Hy(r.conversions??{},t.conversions)),Array.isArray(t.extends)&&t.extends.length>0&&(r.extends=[...e.extends??[],...t.extends]),r}async function Od(e){let t=join(e,zy),r=await nJ(t),n=join(e,tJ),o=await k(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=sJ(r,i),l=Sa.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");y.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:e}}async function wd(e){let t=await rJ(e);if(t===null)throw new an(join(e,zy));return Od(dirname(t))}var zy,tJ,oJ,bd=d(()=>{b();se();Qo();qo();zy="agentsmesh.yaml",tJ="agentsmesh.local.yaml";s(rJ,"findConfigPath");s(nJ,"loadConfig");oJ=new Set(["__proto__","constructor","prototype"]);s(Hy,"deepMergeObjects");s(sJ,"mergeLocalConfig");s(Od,"loadConfigFromExactDir");s(wd,"loadConfigFromDir");});function Ra(e,t="project"){if(t==="project")return {scope:t,rootBase:e,configDir:e,canonicalDir:join(e,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:t,rootBase:r,configDir:n,canonicalDir:n}}async function ye(e,t="project"){if(t==="project"){let{config:n,configDir:o}=await wd(e);return {config:n,context:{scope:t,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Ra(e,t);try{let{config:n}=await Od(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof an?new an(n.path,{cause:n,message:`agentsmesh.yaml not found at ${n.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):n}}var tt=d(()=>{bd();Qo();s(Ra,"resolveScopeContext");s(ye,"loadScopedConfig");});function hi(e){return e.replace(aJ,(t,r,n,o)=>`${r}***@${o}`)}var aJ,Ad=d(()=>{aJ=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(hi,"redactUrlSecrets");});function SE(){let e=s(t=>t==="1"||t==="true","on");return {http:e(process.env.AGENTSMESH_ALLOW_INSECURE_GIT),file:e(process.env.AGENTSMESH_ALLOW_LOCAL_GIT)}}function RE(e){let t;try{t=new URL(e);}catch{return false}let{http:r,file:n}=SE(),o=["https:","ssh:"];return r&&o.push("http:"),n&&o.push("file:"),o.includes(t.protocol)}function xd(){let{http:e,file:t}=SE(),r=["https","ssh"];return e&&r.push("http"),t&&r.push("file"),r.join(":")}function Xm(e){if(!RE(e))throw new Error(`agentsmesh refuses a git remote with a disallowed transport: "${hi(e)}". Allowed: https, ssh. Set AGENTSMESH_ALLOW_INSECURE_GIT=1 to permit http, AGENTSMESH_ALLOW_LOCAL_GIT=1 to permit file.`)}function kE(e,t,r){if(!e.startsWith(t))return null;let n=e.slice(t.length).trim();if(!n)return null;let o=n.lastIndexOf("@");if(o<0)return [n,r];let i=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !i||!a?null:[i,a]}function IE(e){let t=kE(e,"github:","latest");if(!t)return null;let[r,n]=t,o=r.indexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a||!n?null:{org:i,repo:a,tag:n}}function LE(e){let t=kE(e,"gitlab:");if(!t)return null;let[r,n]=t,o=r.lastIndexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a?null:{namespace:i,project:a,ref:n,cloneUrl:`https://gitlab.com/${i}/${a}.git`}}function CE(e){if(!e.startsWith("git+"))return null;let t=e.slice(4).trim();if(!t)return null;let r=t.lastIndexOf("#"),n=(r<0?t:t.slice(0,r)).trim(),o=r<0?void 0:t.slice(r+1).trim();return !n||r>=0&&!o||!RE(n)?null:{url:n,ref:o}}function ka(e){let t=IE(e);if(t)return {kind:"github",...t};let r=LE(e);if(r)return {kind:"gitlab",...r};let n=CE(e);return n?{kind:"git",...n}:null}function Jy(e){return ka(e)!==null}var Ia=d(()=>{Ad();s(SE,"gitProtocolOptIns");s(RE,"isAllowedGitProtocol");s(xd,"gitAllowProtocolEnv");s(Xm,"assertAllowedGitUrl");s(kE,"splitSourceRef");s(IE,"parseGithubSource");s(LE,"parseGitlabSource");s(CE,"parseGitSource");s(ka,"parseRemoteSource");s(Jy,"isSupportedRemoteSource");});function wE(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}async function Td(e,t,r,n,o){let i="cloneUrl"in e?"gitlab":"git",a="cloneUrl"in e?`${e.namespace}/${e.project}`:e.url,l=e.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,EE),u=`${m}.tmp`,f=join(u,EE);if(!r.refresh&&await OE(p))return Qy(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await gJ(fJ(e),f),e.ref&&await hJ(f,e.ref),await rm$1(m,{recursive:!0,force:!0}),await By(u,m),Qy(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await OE(p)){let _=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${t}; using cached version. Error: ${hi(_)}`),Qy(p)}throw g instanceof Error?Object.assign(new Error(hi(g.message)),{cause:g.cause}):g}}async function Qy(e){return {resolvedPath:e,version:await yJ(e)}}async function OE(e){return j(e)}function fJ(e){if("cloneUrl"in e){let t=process.env.AGENTSMESH_GITLAB_TOKEN;if(t){let r=new URL(e.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=t,r.toString()}return e.cloneUrl}return e.url}async function gJ(e,t){wE(e,"clone-url"),Xm(e),await qy(["clone","-c","core.symlinks=false",e,t]);}async function hJ(e,t){wE(t,"ref"),await qy(["checkout",t],e);}async function yJ(e){return qy(["rev-parse","HEAD"],e)}async function qy(e,t){let{stdout:r}=await dJ("git",e,{cwd:t,env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ALLOW_PROTOCOL:xd()}});return r.trim()}var dJ,EE,Zy=d(()=>{b();Ad();Ia();dJ=promisify(execFile),EE="repo";s(wE,"ensureNotFlag");s(Td,"fetchGitRemoteExtend");s(Qy,"readCachedRepo");s(OE,"hasCachedRepo");s(fJ,"resolveCloneUrl");s(gJ,"cloneRepo");s(hJ,"checkoutRef");s(yJ,"getHeadSha");s(qy,"runGit");});function kJ(){let e=process.env.AGENTSMESH_MAX_TARBALL_MB;if(e===void 0||e==="")return qm*1024*1024;let t=Number(e);return !Number.isFinite(t)||!Number.isInteger(t)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${e}" is not an integer; using default ${qm} MiB.`),qm*1024*1024):t<AE||t>xE?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${t} is outside [${AE}, ${xE}]; using default ${qm} MiB.`),qm*1024*1024):t*1024*1024}async function LJ(e,t){let r=typeof e.headers?.get=="function"?e.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>t)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${t}`)}let n=e.body;if(!n){let m=await e.arrayBuffer();if(m.byteLength>t)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${t}`);return new Uint8Array(m)}let o=n.getReader(),i=[],a=0;for(;;){let{done:m,value:p}=await o.read();if(m)break;if(p){if(a+=p.byteLength,a>t)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${t} bytes during streaming`);i.push(p);}}let l=new Uint8Array(a),c=0;for(let m of i)l.set(m,c),c+=m.byteLength;return l}async function DE(e,t,r){let n=`https://api.github.com/repos/${e}/${t}/releases/latest`,o={Accept:"application/vnd.github+json"};r&&(o.Authorization=`Bearer ${r}`);let i=await globalThis.fetch(n,{headers:o});if(!i.ok)throw new Error(`Failed to resolve latest release for ${e}/${t}: ${i.status} ${i.statusText}`);let a=await i.json();if(!a.tag_name||typeof a.tag_name!="string")throw new Error(`No tag_name in releases/latest response for ${e}/${t}`);return a.tag_name}async function NE(e,t,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=e.tag;if(c==="latest")try{c=await DE(e.org,e.repo,a);}catch(R){if(!i)throw R;return EJ(e,t,r,n,o,a)}let m=o("github",`${e.org}/${e.repo}`,c),p=join(n,m);if(!l&&await j(p)){let R=await e_(p);if(R)return {resolvedPath:join(p,R),version:c}}let u=`https://github.com/${e.org}/${e.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let R=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!R.ok)throw new Error(`HTTP ${R.status}: ${R.statusText}`);g=await LJ(R,IJ);}catch(R){if(r.allowOfflineFallback!==false&&await j(p)){let w=await e_(p);if(w){let D=R instanceof Error?R.message:String(R);return console.warn(`[agentsmesh] Network failed for ${t}; using cached version. Error: ${hi(D)}`),{resolvedPath:join(p,w),version:c}}}throw R instanceof Error?Object.assign(new Error(hi(R.message)),{cause:R.cause}):R}await rm$1(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,g);try{await PE.extract({file:h,cwd:p,strict:!0,filter:s((R,I)=>{if(CJ(R))return !1;let w=I&&"type"in I?I.type:void 0;return w==="File"||w==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let _=await e_(p);if(!_)throw new Error(`Extend "${t}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,_),version:c}}async function e_(e){let r=(await readdir(e,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function TE(e,t,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${e}/${t}.git`:`https://github.com/${e}/${t}.git`}function CJ(e){let t=e.replace(/\\/g,"/");return t.startsWith("/")||t.split("/").includes("..")}async function EJ(e,t,r,n,o,i){let a=i?[TE(e.org,e.repo,i)]:[TE(e.org,e.repo),`ssh://git@github.com/${e.org}/${e.repo}.git`],l;for(let c of a){let m={url:c};try{return await Td(m,t,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var qm,AE,xE,IJ,vE=d(()=>{b();Ad();Zy();qm=500,AE=1,xE=4096;s(kJ,"resolveMaxTarballBytes");IJ=kJ();s(LJ,"readBoundedResponse");s(DE,"resolveLatestTag");s(NE,"fetchGithubRemoteExtend");s(e_,"findExtractTopDir");s(TE,"buildGithubCloneUrl");s(CJ,"isZipSlipPath");s(EJ,"fetchGithubDefaultBranch");});function bJ(e){let t=ka(e);return t?t.kind==="github"?Zl("github",`${t.org}/${t.repo}`,t.tag):t.kind==="gitlab"?Zl("gitlab",`${t.namespace}/${t.project}`,t.ref??"HEAD"):Zl("git",t.url,t.ref??"HEAD"):null}async function GE(e,t){let r=bJ(e);if(!r)return;let n=t??Qt(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function $E(e,t){let r=e??Qt(),n=t??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let i=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);i-c>n&&await rm$1(l,{recursive:!0,force:!0});}catch{}}));}var t_=d(()=>{Zm();Ia();s(bJ,"cacheKeyFromSource");s(GE,"cleanInstallCache");s($E,"sweepStaleCache");});function Zl(e,t,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(e==="github"){let[i,a]=t.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(e)}__${n(t)}__${n(r)}`;}else o=`${n(e)}__${n(t)}__${n(r)}`;if(o.length>BE){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,BE-18)}--${i}`;}return o}function Qt(){let e=process.env.AGENTSMESH_CACHE;if(e){let t=e.trim();if(!t)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(t))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${t}").`);if(t==="/"||/^[A-Za-z]:[\\/]?$/.test(t))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${t}").`);return t}return join(homedir(),".agentsmesh","cache")}async function ec(e,t,r={}){let n=ka(e);if(!n)throw e.startsWith("github:")?new Error(`Invalid github: source: "${e}" for extend "${t}"`):e.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${e}" for extend "${t}"`):e.startsWith("git+")?new Error(`Invalid git+ source: "${e}" for extend "${t}"`):new Error(`Invalid remote source: "${e}" for extend "${t}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??Qt();return $E(o).catch(()=>{}),n.kind==="github"?NE(n,t,r,o,Zl,!e.includes("@")):Td(n,t,r,o,Zl)}var BE,Zm=d(()=>{Zy();vE();Ia();t_();BE=80;s(Zl,"buildCacheKey");s(Qt,"getCacheDir");s(ec,"fetchRemoteExtend");});function DJ(e){return e.startsWith("http://")||e.startsWith("https://")}async function tc(e,t,r={}){if(e.extends.length===0)return [];if(r.refreshCache===true&&e.extends.some(o=>Jy(o.source))){let o=Qt();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of e.extends){if(DJ(o.source))throw new Error(`Remote extends (http/https) not supported: "${o.source}" for extend "${o.name}". Use github:org/repo@tag, gitlab:group/project@ref, git+https://host/org/repo.git#ref, or a local path (e.g. ./shared/).`);if(Jy(o.source)){let a=await ec(o.source,o.name,{cacheDir:Qt(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,as:o.as,version:a.version,path:o.path,pick:o.pick});continue}let i=resolve(t,o.source);if(!await j(i))throw new Error(`Extend "${o.name}": path does not exist: ${i}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:i,features:[...o.features],target:o.target,as:o.as,path:o.path,pick:o.pick});}return n}var Pd=d(()=>{b();Zm();Ia();s(DJ,"isOtherRemoteSource");s(tc,"resolveExtendPaths");});function x(e){if(e.indexOf("---")!==0)return {frontmatter:{},body:e.trim()};let r=e.indexOf("---",3);if(r===-1)return {frontmatter:{},body:e.trim()};let n=e.slice(3,r).trim(),o=e.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function FJ(e){if(e.indexOf("---")!==0)return e.trim();let t=e.indexOf("---",3);return t===-1?e.trim():e.slice(t+3).trim()}function ln(e,t){try{return {ok:!0,value:x(e)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${t}: ${n}`,{cause:r}),bodyFallback:FJ(e)}}}function Zo(e,t,r){let n=ln(e,t);if(n.ok)return n.value;if(r)return r(n.error,t),null;throw n.error}function T(e,t){return Object.keys(e).length===0?t:`---
12
12
  ${stringify(e,{lineWidth:0}).trimEnd()}
13
13
  ---
14
14
 
15
- ${t}`}var B=d(()=>{s(x,"parseFrontmatter");s(bJ,"extractBody");s(ln,"tryParseFrontmatter");s(Zo,"parseOrSkipFrontmatter");s(T,"serializeFrontmatter");});function TJ(e){let t=e.replace(/\.[^.]*$/,"").toUpperCase();return AJ.has(t)}function GE(e){let t=[],r=e.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(xJ.test(n)){t.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){t.push({segment:n,reason:"trailing-dot-or-space"});continue}TJ(n)&&t.push({segment:n,reason:"reserved-name"});}return t}var AJ,xJ,$E=d(()=>{AJ=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),xJ=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(TJ,"segmentReservedName");s(GE,"findWindowsPathIssues");});function es(e,t){let r=GE(t);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new Ad(e,t,`canonical ${e} name "${t}" is not portable to Windows: ${n}. Rename the file.`)}function xd(e,t,r){let n=new Map;for(let o of t){let i=o.lastIndexOf("/"),a=o.lastIndexOf("\\"),l=Math.max(i,a),c=l===-1?o:o.slice(l+1),m=c.endsWith(r)?c.slice(0,-r.length):c,p=n.get(m);if(p!==void 0&&p!==o)throw new Ad(e,m,`canonical ${e} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var Ad,Zm=d(()=>{$E();Ad=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(t,r,n){super(n),this.feature=t,this.name=r;}};s(es,"assertCanonicalName");s(xd,"assertNoBasenameCollisions");});function tc(e,t,r,n,o={}){if(r.length===0)return;let i=new Set(n),a=o.handledByOtherReader,l=new Set,c=0;for(let p of r){if(i.has(p)||basename(p).startsWith("."))continue;let u=extname(p).toLowerCase();NJ.has(u)&&(a?.has(u)||(l.add(u),c++));}if(c===0)return;let m=[...l].sort().join(", ");y.warn(`Skipped ${c} ${e} file(s) in ${t} (format${l.size===1?"":"s"}: ${m}). agentsmesh ${e} are parsed from .md files only.`);}var NJ,Td=d(()=>{se();NJ=new Set([".toml",".yaml",".yml",".json"]);s(tc,"warnIfUnrecognizedResourceFormats");});function UE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}async function hi(e,t={}){let r=await U(e),n=r.filter(i=>{if(!i.endsWith(".md"))return false;let a=basename(i,".md");return a==="_root"||!a.startsWith("_")});tc("rules",e,r,n,{handledByOtherReader:t.handledByOtherReader});let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&vJ.includes(g)?g:void 0,_=c.codex_emit,S=_==="execution"?"execution":_==="advisory"?"advisory":void 0,I=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:UE(c.targets),description:typeof c.description=="string"?c.description:"",globs:UE(c.globs),body:m,...h!==void 0&&{trigger:h},...S!==void 0&&{codexEmit:S},...I!==void 0&&{codexInstructionVariant:I}});}return o}var vJ,ep=d(()=>{b();B();Zm();Td();vJ=["always_on","model_decision","glob","manual"];s(UE,"toStrArray");s(hi,"parseRules");});function KE(e){return e===true||e==="true"||e===1||e==="1"}function WE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function yi(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));tc("commands",e,r,n,{handledByOtherReader:t.handledByOtherReader}),xd("command",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("command",p);let u=WE(c.allowedTools),f=WE(c["allowed-tools"]),g=u.length>0?u:f;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",allowedTools:g,outputStyle:KE(c.outputStyle)||KE(c["output-style"]),body:m});}return o}var tp=d(()=>{b();B();Zm();Td();s(KE,"toBool");s(WE,"toToolsArray");s(yi,"parseCommands");});function ka(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function zE(e){return e===true||e==="true"||e===1||e==="1"}function VE(e){if(typeof e=="number"&&Number.isInteger(e)&&e>=0)return e;if(typeof e=="string"){let t=parseInt(e,10);return Number.isInteger(t)&&t>=0?t:0}return 0}function FJ(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}async function _i(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));tc("agents",e,r,n,{handledByOtherReader:t.handledByOtherReader}),xd("agent",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("agent",p);let u=ka(c.tools),f=ka(c.tools),g=u.length>0?u:f,h=ka(c.disallowedTools),_=ka(c["disallowed-tools"]),S=h.length>0?h:_,R=ka(c.mcpServers),I=ka(c["mcp-servers"]),w=R.length>0?R:I,D=ka(c.skills),P=VE(c.maxTurns),K=VE(c["max-turns"]),G=P>0?P:K>0?K:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:S,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:G,mcpServers:w,hooks:FJ(c.hooks),skills:D,memory:typeof c.memory=="string"?c.memory:"",outputStyle:zE(c.outputStyle)||zE(c["output-style"]),body:m});}return o}var rp=d(()=>{b();B();Zm();Td();s(ka,"toStrArray");s(zE,"toBool");s(VE,"toInt");s(FJ,"toHooks");s(_i,"parseAgents");});function e_(e){let t=e.toLowerCase(),r=t.lastIndexOf("."),n=r>0?t.slice(0,r):t;return MJ.get(n)}function Vn(e){return e_(e)!==void 0}function Pd(e){return e_(e)==="preserved"}function Dd(e){return e_(e)==="noise"}function JE(e){return GJ.has(e)}function YE(e){return $J.has(e)}var MJ,GJ,$J,ts=d(()=>{MJ=new Map([["contributing","noise"],["changelog","noise"],["changes","noise"],["history","noise"],["code_of_conduct","noise"],["security","noise"],["support","noise"],["maintainers","noise"],["governance","noise"],["authors","noise"],["contributors","noise"],["codeowners","noise"],["citation","noise"],["acknowledgments","noise"],["acknowledgements","noise"],["license","preserved"],["license-mit","preserved"],["license-apache","preserved"],["license-bsd","preserved"],["license-gpl","preserved"],["notice","preserved"],["copying","preserved"],["copyright","preserved"],["readme","preserved"]]),GJ=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),$J=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(e_,"boilerplateKind");s(Vn,"isBoilerplate");s(Pd,"isPreservedBoilerplate");s(Dd,"isNoiseBoilerplate");s(JE,"isRepoNonContentDir");s(YE,"isRepoNonContentFile");});async function BJ(e){return await k(e)??""}function WJ(e){let t=e.lastIndexOf(".");return t<0?true:KJ.has(e.slice(t).toLowerCase())}function zJ(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function XE(e){let t=await gi(e),r=[];for(let n of t){let i=n.slice(e.length+1).replace(/\\/g,"/");if(i===Nd||i.endsWith(`/${Nd}`))continue;let a=i.split("/")[0];if(HJ.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(WJ(l)&&Dd(l))continue;let c=await BJ(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function vd(e,t={}){let r=join(e,Nd),n=await k(r);if(!n)return null;let o=Zo(n,r,t.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await XE(e),m=(typeof i.name=="string"?zJ(i.name):"")||basename(e);return es("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Si(e,t={}){let r;try{r=await readdir(e,{withFileTypes:!0});}catch{return []}let n=[];for(let o of r){if(!o.isDirectory()||o.name.startsWith("_"))continue;es("skill",o.name);let i=join(e,o.name),a=join(i,Nd),l=await k(a);if(!l)continue;let c=Zo(l,a,t.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await XE(i);n.push({source:a,name:o.name,description:typeof m.description=="string"?m.description:"",body:p,supportingFiles:u});}return n.sort((o,i)=>o.name.localeCompare(i.name))}var Nd,KJ,HJ,rc=d(()=>{b();Gy();B();ts();Zm();s(BJ,"readContent");Nd="SKILL.md",KJ=new Set([".md",".mdx",".rst",".txt"]);s(WJ,"isMarkdownLikeDoc");HJ=[".git","node_modules"];s(zJ,"sanitizeSkillName");s(XE,"listSupportingFiles");s(vd,"parseSkillDirectory");s(Si,"parseSkills");});function QE(e){return e===null||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}function VJ(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.type=="string"?t.type:"stdio",n=QE(t.env),o=typeof t.description=="string"?t.description:void 0,i=typeof t.url=="string"?t.url:"";if(i)return {...o!==void 0&&{description:o},type:r,url:i,headers:QE(t.headers),env:n};let a=typeof t.command=="string"?t.command:"";if(!a)return null;let l=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}function JJ(e){let t="",r=0,n=e.length;for(;r<n;){let o=e[r];if(o==='"'){for(t+=o,r++;r<n;){let i=e[r];if(t+=i,i==="\\")r++,r<n&&(t+=e[r]);else if(i==='"')break;r++;}r++;continue}if(o==="/"&&e[r+1]==="*"){for(r+=2;r<n;){if(e[r]==="*"&&e[r+1]==="/"){r+=2;break}r++;}continue}if(o==="/"&&e[r+1]==="/"){for(r+=2;r<n&&e[r]!==`
16
- `;)r++;continue}t+=o,r++;}return t}async function cn(e){let t=await k(e);if(!t)return null;let r;try{r=JSON.parse(JJ(t));}catch{return null}if(!r||typeof r!="object")return null;let n=r.mcpServers;if(n===void 0||typeof n!="object"||n===null)return null;let o={};for(let[i,a]of Object.entries(n)){let l=VJ(a);l&&(o[i]=l);}return {mcpServers:o}}var np=d(()=>{b();s(QE,"parseStringMap");s(VJ,"parseServer");s(JJ,"stripJsonComments");s(cn,"parseMcp");});function r_(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}async function Fd(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {allow:[],deny:[],ask:[]};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=r_(n.allow),i=r_(n.deny),a=r_(n.ask);return {allow:o,deny:i,ask:a}}var n_=d(()=>{b();s(r_,"ensureStringArray");s(Fd,"parsePermissions");});function qE(e){return typeof e=="string"?e.trim():""}function Je(e){return qE(e.command)}function xt(e){return qE(e.prompt)}function o_(e){let t=Je(e),r=xt(e);return e.type==="prompt"?r||t:t||r}function mn(e){return Je(e).length>0}function Jn(e){return o_(e).length>0}var Ir=d(()=>{s(qE,"trimString");s(Je,"getHookCommand");s(xt,"getHookPrompt");s(o_,"getHookText");s(mn,"hasHookCommand");s(Jn,"hasHookText");});function qJ(e){if(!e||typeof e!="object")return null;let t=e,r=t.matcher;if(typeof r!="string")return null;let n=o_(t);if(!n)return null;let o=typeof t.type=="string"&&QJ.includes(t.type)?t.type:void 0,i=typeof t.timeout=="number"&&Number.isFinite(t.timeout)?t.timeout:void 0,a=xt(t)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function Md(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n={},o=r;for(let[i,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=qJ(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var QJ,s_=d(()=>{b();Ir();QJ=["command","prompt"];s(qJ,"toHookEntry");s(Md,"parseHooks");});async function Gd(e){let t=await k(e);if(t===null||!t.trim())return [];let r=t.split(/\r?\n/),n=[];for(let o of r){let i=o.trim();i===""||i.startsWith("#")||n.push(i);}return n}var i_=d(()=>{b();s(Gd,"parseIgnore");});async function jt(e,t={}){let r=join(e,".agentsmesh"),n=await j(r)?r:e,[o,i,a,l,c,m,p,u]=await Promise.all([hi(join(n,"rules"),t),yi(join(n,"commands"),t),_i(join(n,"agents"),t),Si(join(n,"skills"),t),cn(join(n,"mcp.json")),Fd(join(n,"permissions.yaml")),Md(join(n,"hooks.yaml")),Gd(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Ia=d(()=>{ep();tp();rp();rc();np();n_();s_();i_();b();s(jt,"loadCanonicalFiles");});function ZE(e){return basename(e.source,".md")}function nc(e,t){let r=new Map(e.rules.map(p=>[ZE(p),p]));for(let p of t.rules)r.set(ZE(p),p);let n=new Map(e.commands.map(p=>[p.name,p]));for(let p of t.commands)n.set(p.name,p);let o=new Map(e.agents.map(p=>[p.name,p]));for(let p of t.agents)o.set(p.name,p);let i=new Map(e.skills.map(p=>[p.name,p]));for(let p of t.skills)i.set(p.name,p);let a=eY(e.mcp,t.mcp),l=tY(e.permissions,t.permissions),c=rY(e.hooks,t.hooks),m=nY(e.ignore,t.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(i.values()),mcp:a,permissions:l,hooks:c,ignore:m}}function eY(e,t){if(!e&&!t)return null;let r=e?.mcpServers??{},n=t?.mcpServers??{};return {mcpServers:{...r,...n}}}function tY(e,t){if(!e&&!t)return null;let r=a_(e?.allow??[],t?.allow??[]),n=a_(e?.deny??[],t?.deny??[]),o=a_(e?.ask??[],t?.ask??[]);return {allow:r,deny:n,ask:o}}function a_(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}function rY(e,t){if(!e&&!t)return null;let r={},n=new Set([...Object.keys(e??{}),...Object.keys(t??{})]);for(let o of n){let i=t?.[o],a=e?.[o];r[o]=i!==void 0&&i.length>0?i:a??[];}return r}function nY(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}var l_=d(()=>{s(ZE,"ruleSlug");s(nc,"mergeCanonicalFiles");s(eY,"mergeMcp");s(tY,"mergePermissions");s(a_,"mergeUniqueStrings");s(rY,"mergeHooks");s(nY,"mergeIgnore");});function mY(e){return typeof e=="string"?e:e.level}function eO(e){return cY.includes(e)}function tO(e,t,r,n){for(let o of lY){let i=mY(t[o.feature]);if(i==="none")continue;let a=typeof e.generators[o.generator]=="function",l=eO(o.feature)&&typeof e.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${i}" but generators.${o.generator}`+(eO(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function $d(e){return hY.parse(e)}var ns,rO,oY,sY,nO,iY,aY,lY,cY,pY,uY,dY,fY,gY,hY,c_=d(()=>{ns=z$1.union([z$1.enum(["native","embedded","partial","none"]),z$1.object({level:z$1.enum(["native","embedded","partial","none"]),flavor:z$1.string().optional()})]),rO=z$1.object({rules:ns,additionalRules:ns,commands:ns,agents:ns,skills:ns,mcp:ns,hooks:ns,ignore:ns,permissions:ns}),oY=z$1.object({name:z$1.string(),generateRules:z$1.function(),importFrom:z$1.function(),generateCommands:z$1.function().optional(),generateAgents:z$1.function().optional(),generateSkills:z$1.function().optional(),generateMcp:z$1.function().optional(),generatePermissions:z$1.function().optional(),generateHooks:z$1.function().optional(),generateIgnore:z$1.function().optional(),lint:z$1.function().optional()}).passthrough(),sY=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),nO=z$1.object({paths:sY}).passthrough(),iY=z$1.object({capabilities:rO,detectionPaths:z$1.array(z$1.string()),layout:nO,scopeExtras:z$1.function().optional()}).passthrough(),aY=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],lY=[{feature:"commands",generator:"generateCommands"},{feature:"agents",generator:"generateAgents"},{feature:"skills",generator:"generateSkills"},{feature:"mcp",generator:"generateMcp"},{feature:"hooks",generator:"generateHooks"},{feature:"ignore",generator:"generateIgnore"},{feature:"permissions",generator:"generatePermissions"}],cY=["mcp","hooks","ignore","permissions"];s(mY,"capabilityLevel");s(eO,"canUseScopedSettings");s(tO,"validateCapabilityImplementations");pY=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),uY=z$1.object({displayName:z$1.string().min(1),category:z$1.enum(["cli","ide","agent-platform"]),officialUrl:z$1.string().min(1),shortDescription:z$1.string().min(1)}).passthrough(),dY=z$1.discriminatedUnion("kind",[z$1.object({kind:z$1.literal("basename"),suffix:z$1.string().min(1)}),z$1.object({kind:z$1.literal("skillDir")}),z$1.object({kind:z$1.literal("firstSegment")})]),fY=z$1.object({pickPaths:z$1.array(z$1.object({prefix:z$1.string().min(1),feature:z$1.enum(["commands","rules","agents","skills"]),strategy:dY})).optional(),inferPick:z$1.function().optional(),dialectHints:z$1.array(z$1.object({frontmatterKey:z$1.string().min(1)})).optional()}).strict(),gY=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:uY,generators:oY,capabilities:rO,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:nO,globalSupport:iY.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),nativeInstall:fY.optional(),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:pY.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),hY=gY.superRefine((e,t)=>{for(let r of aY)r in e&&t.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});tO(e,e.capabilities,t,["capabilities"]),e.globalSupport!==void 0&&tO(e,e.globalSupport.capabilities,t,["globalSupport","capabilities"]);});s($d,"validateDescriptor");});function oO(){if(m_)return m_;let e=Pe.filter(r=>r!==void 0&&typeof r.id=="string"),t=new Map(e.map(r=>[r.id,r]));return e.length===Pe.length&&(m_=t),t}function Ud(e){let t=$d(e);jd.set(t.id,t);}function re(e){return jd.get(e)??oO().get(e)}function Bd(){return [...jd.values()]}function Kd(){return [...new Set([...oO().keys(),...jd.keys()])]}var jd,m_,rt=d(()=>{xe();c_();jd=new Map;s(oO,"builtinDescriptors");s(Ud,"registerTargetDescriptor");s(re,"getDescriptor");s(Bd,"getAllDescriptors");s(Kd,"getAllRegisteredDescriptorIds");});function sO(e,t){return re(e)?.conversionDefaults?.[t]}function iO(e,t){if(e!==void 0)return typeof e=="boolean"?e:e[t]}function oc(e,t,r,n="project"){let o=e.conversions?.commands_to_skills?.[t],i=iO(o,n);if(i!==void 0)return i;let a=sO(t,"commandsToSkills");return a!==void 0?a:r??false}function os(e,t,r,n="project"){let o=e.conversions?.agents_to_skills?.[t],i=iO(o,n);if(i!==void 0)return i;let a=sO(t,"agentsToSkills");return a!==void 0?a:r??false}var op=d(()=>{rt();s(sO,"builtinDefault");s(iO,"resolveConversionValue");s(oc,"shouldConvertCommandsToSkills");s(os,"shouldConvertAgentsToSkills");});function un(e,t){return t!==void 0?{level:e,flavor:t}:{level:e}}function pn(e){return typeof e=="string"?{level:e}:e}function p_(e){return {rules:pn(e.rules),additionalRules:pn(e.additionalRules),commands:pn(e.commands),agents:pn(e.agents),skills:pn(e.skills),mcp:pn(e.mcp),hooks:pn(e.hooks),ignore:pn(e.ignore),permissions:pn(e.permissions)}}var La=d(()=>{s(un,"cap");s(pn,"normalizeCapabilityValue");s(p_,"normalizeTargetCapabilities");});function aO(e){for(let t of Pe)if(t.sharedArtifacts){for(let[r,n]of Object.entries(t.sharedArtifacts))if(n==="owner"&&e.startsWith(r))return t.id}return null}function yY(e){let t=[];for(let n of e)if(n.sharedArtifacts)for(let[o,i]of Object.entries(n.sharedArtifacts))i==="owner"&&t.push({targetId:n.id,prefix:o});let r=[];for(let n=0;n<t.length;n++)for(let o=n+1;o<t.length;o++){let i=t[n],a=t[o];i===void 0||a===void 0||(i.prefix===a.prefix||i.prefix.startsWith(a.prefix)||a.prefix.startsWith(i.prefix))&&r.push({a:i,b:a});}return r}function lO(e){let t=yY(e);if(t.length===0)return;let r=t.map(({a:n,b:o})=>` - "${n.targetId}" owns "${n.prefix}" and "${o.targetId}" owns "${o.prefix}"`);throw new Error(`Shared-artifact ownership conflict: two targets claim the same or overlapping prefix.
15
+ ${t}`}var B=d(()=>{s(x,"parseFrontmatter");s(FJ,"extractBody");s(ln,"tryParseFrontmatter");s(Zo,"parseOrSkipFrontmatter");s(T,"serializeFrontmatter");});function $J(e){let t=e.replace(/\.[^.]*$/,"").toUpperCase();return MJ.has(t)}function KE(e){let t=[],r=e.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(GJ.test(n)){t.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){t.push({segment:n,reason:"trailing-dot-or-space"});continue}$J(n)&&t.push({segment:n,reason:"reserved-name"});}return t}var MJ,GJ,WE=d(()=>{MJ=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),GJ=new RegExp('[<>:"|?*\\u0000-\\u001F]');s($J,"segmentReservedName");s(KE,"findWindowsPathIssues");});function es(e,t){let r=KE(t);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new Dd(e,t,`canonical ${e} name "${t}" is not portable to Windows: ${n}. Rename the file.`)}function rc(e,t,r){let n=new Map;for(let o of t){let i=o.lastIndexOf("/"),a=o.lastIndexOf("\\"),l=Math.max(i,a),c=l===-1?o:o.slice(l+1),m=c.endsWith(r)?c.slice(0,-r.length):c,p=m.toLowerCase(),u=n.get(p);if(u!==void 0&&u.path!==o){let f=u.slug===m?`"${m}"`:`"${u.slug}" vs "${m}" (case-insensitive)`;throw new Dd(e,m,`canonical ${e} files collide on slug ${f}: ${u.path} vs ${o}. Rename one.`)}n.set(p,{path:o,slug:m});}}var Dd,ep=d(()=>{WE();Dd=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(t,r,n){super(n),this.feature=t,this.name=r;}};s(es,"assertCanonicalName");s(rc,"assertNoBasenameCollisions");});function nc(e,t,r,n,o={}){if(r.length===0)return;let i=new Set(n),a=o.handledByOtherReader,l=new Set,c=0;for(let p of r){if(i.has(p)||basename(p).startsWith("."))continue;let u=extname(p).toLowerCase();BJ.has(u)&&(a?.has(u)||(l.add(u),c++));}if(c===0)return;let m=[...l].sort().join(", ");y.warn(`Skipped ${c} ${e} file(s) in ${t} (format${l.size===1?"":"s"}: ${m}). agentsmesh ${e} are parsed from .md files only.`);}var BJ,Nd=d(()=>{se();BJ=new Set([".toml",".yaml",".yml",".json"]);s(nc,"warnIfUnrecognizedResourceFormats");});function zE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}async function yi(e,t={}){let r=await U(e),n=r.filter(i=>{if(!i.endsWith(".md"))return false;let a=basename(i,".md");return a==="_root"||!a.startsWith("_")});nc("rules",e,r,n,{handledByOtherReader:t.handledByOtherReader}),rc("rule",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&KJ.includes(g)?g:void 0,_=c.codex_emit,S=_==="execution"?"execution":_==="advisory"?"advisory":void 0,I=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:zE(c.targets),description:typeof c.description=="string"?c.description:"",globs:zE(c.globs),body:m,...h!==void 0&&{trigger:h},...S!==void 0&&{codexEmit:S},...I!==void 0&&{codexInstructionVariant:I}});}return o}var KJ,tp=d(()=>{b();B();ep();Nd();KJ=["always_on","model_decision","glob","manual"];s(zE,"toStrArray");s(yi,"parseRules");});function JE(e){return e===true||e==="true"||e===1||e==="1"}function YE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function _i(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));nc("commands",e,r,n,{handledByOtherReader:t.handledByOtherReader}),rc("command",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("command",p);let u=YE(c.allowedTools),f=YE(c["allowed-tools"]),g=u.length>0?u:f;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",allowedTools:g,outputStyle:JE(c.outputStyle)||JE(c["output-style"]),body:m});}return o}var rp=d(()=>{b();B();ep();Nd();s(JE,"toBool");s(YE,"toToolsArray");s(_i,"parseCommands");});function La(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function QE(e){return e===true||e==="true"||e===1||e==="1"}function qE(e){if(typeof e=="number"&&Number.isInteger(e)&&e>=0)return e;if(typeof e=="string"){let t=parseInt(e,10);return Number.isInteger(t)&&t>=0?t:0}return 0}function WJ(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}async function Si(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));nc("agents",e,r,n,{handledByOtherReader:t.handledByOtherReader}),rc("agent",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Zo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");es("agent",p);let u=La(c.tools),f=La(c.tools),g=u.length>0?u:f,h=La(c.disallowedTools),_=La(c["disallowed-tools"]),S=h.length>0?h:_,R=La(c.mcpServers),I=La(c["mcp-servers"]),w=R.length>0?R:I,D=La(c.skills),P=qE(c.maxTurns),K=qE(c["max-turns"]),G=P>0?P:K>0?K:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:S,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:G,mcpServers:w,hooks:WJ(c.hooks),skills:D,memory:typeof c.memory=="string"?c.memory:"",outputStyle:QE(c.outputStyle)||QE(c["output-style"]),body:m});}return o}var np=d(()=>{b();B();ep();Nd();s(La,"toStrArray");s(QE,"toBool");s(qE,"toInt");s(WJ,"toHooks");s(Si,"parseAgents");});function r_(e){let t=e.toLowerCase(),r=t.lastIndexOf("."),n=r>0?t.slice(0,r):t;return HJ.get(n)}function Jn(e){return r_(e)!==void 0}function vd(e){return r_(e)==="preserved"}function Fd(e){return r_(e)==="noise"}function ZE(e){return zJ.has(e)}function eO(e){return VJ.has(e)}var HJ,zJ,VJ,ts=d(()=>{HJ=new Map([["contributing","noise"],["changelog","noise"],["changes","noise"],["history","noise"],["code_of_conduct","noise"],["security","noise"],["support","noise"],["maintainers","noise"],["governance","noise"],["authors","noise"],["contributors","noise"],["codeowners","noise"],["citation","noise"],["acknowledgments","noise"],["acknowledgements","noise"],["license","preserved"],["license-mit","preserved"],["license-apache","preserved"],["license-bsd","preserved"],["license-gpl","preserved"],["notice","preserved"],["copying","preserved"],["copyright","preserved"],["readme","preserved"]]),zJ=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),VJ=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(r_,"boilerplateKind");s(Jn,"isBoilerplate");s(vd,"isPreservedBoilerplate");s(Fd,"isNoiseBoilerplate");s(ZE,"isRepoNonContentDir");s(eO,"isRepoNonContentFile");});async function XJ(e){return await k(e)??""}function qJ(e){let t=e.lastIndexOf(".");return t<0?true:QJ.has(e.slice(t).toLowerCase())}function eY(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function tO(e){let t=await U(e),r=[];for(let n of t){let i=n.slice(e.length+1).replace(/\\/g,"/");if(i===Md||i.endsWith(`/${Md}`))continue;let a=i.split("/")[0];if(ZJ.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(qJ(l)&&Fd(l))continue;let c=await XJ(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function Gd(e,t={}){let r=join(e,Md),n=await k(r);if(!n)return null;let o=Zo(n,r,t.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await tO(e),m=(typeof i.name=="string"?eY(i.name):"")||basename(e);return es("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Ri(e,t={}){let r;try{r=await readdir(e,{withFileTypes:!0});}catch{return []}let n=[];for(let o of r){if(!o.isDirectory()||o.name.startsWith("_"))continue;es("skill",o.name);let i=join(e,o.name),a=join(i,Md),l=await k(a);if(!l)continue;let c=Zo(l,a,t.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await tO(i);n.push({source:a,name:o.name,description:typeof m.description=="string"?m.description:"",body:p,supportingFiles:u});}return n.sort((o,i)=>o.name.localeCompare(i.name))}var Md,QJ,ZJ,oc=d(()=>{b();Uy();B();ts();ep();s(XJ,"readContent");Md="SKILL.md",QJ=new Set([".md",".mdx",".rst",".txt"]);s(qJ,"isMarkdownLikeDoc");ZJ=[".git","node_modules"];s(eY,"sanitizeSkillName");s(tO,"listSupportingFiles");s(Gd,"parseSkillDirectory");s(Ri,"parseSkills");});function rO(e){return e===null||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}function tY(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.type=="string"?t.type:"stdio",n=rO(t.env),o=typeof t.description=="string"?t.description:void 0,i=typeof t.url=="string"?t.url:"";if(i)return {...o!==void 0&&{description:o},type:r,url:i,headers:rO(t.headers),env:n};let a=typeof t.command=="string"?t.command:"";if(!a)return null;let l=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}function rY(e){let t="",r=0,n=e.length;for(;r<n;){let o=e[r];if(o==='"'){for(t+=o,r++;r<n;){let i=e[r];if(t+=i,i==="\\")r++,r<n&&(t+=e[r]);else if(i==='"')break;r++;}r++;continue}if(o==="/"&&e[r+1]==="*"){for(r+=2;r<n;){if(e[r]==="*"&&e[r+1]==="/"){r+=2;break}r++;}continue}if(o==="/"&&e[r+1]==="/"){for(r+=2;r<n&&e[r]!==`
16
+ `;)r++;continue}t+=o,r++;}return t}async function cn(e){let t=await k(e);if(!t)return null;let r;try{r=JSON.parse(rY(t));}catch{return null}if(!r||typeof r!="object")return null;let n=r.mcpServers;if(n===void 0||typeof n!="object"||n===null)return null;let o={};for(let[i,a]of Object.entries(n)){let l=tY(a);l&&(o[i]=l);}return {mcpServers:o}}var op=d(()=>{b();s(rO,"parseStringMap");s(tY,"parseServer");s(rY,"stripJsonComments");s(cn,"parseMcp");});function o_(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}async function $d(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {allow:[],deny:[],ask:[]};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=o_(n.allow),i=o_(n.deny),a=o_(n.ask);return {allow:o,deny:i,ask:a}}var s_=d(()=>{b();s(o_,"ensureStringArray");s($d,"parsePermissions");});function nO(e){return typeof e=="string"?e.trim():""}function Je(e){return nO(e.command)}function xt(e){return nO(e.prompt)}function i_(e){let t=Je(e),r=xt(e);return e.type==="prompt"?r||t:t||r}function mn(e){return Je(e).length>0}function Yn(e){return i_(e).length>0}var Lr=d(()=>{s(nO,"trimString");s(Je,"getHookCommand");s(xt,"getHookPrompt");s(i_,"getHookText");s(mn,"hasHookCommand");s(Yn,"hasHookText");});function iY(e){if(!e||typeof e!="object")return null;let t=e,r=t.matcher;if(typeof r!="string")return null;let n=i_(t);if(!n)return null;let o=typeof t.type=="string"&&sY.includes(t.type)?t.type:void 0,i=typeof t.timeout=="number"&&Number.isFinite(t.timeout)?t.timeout:void 0,a=xt(t)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function jd(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n={},o=r;for(let[i,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=iY(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var sY,a_=d(()=>{b();Lr();sY=["command","prompt"];s(iY,"toHookEntry");s(jd,"parseHooks");});async function Ud(e){let t=await k(e);if(t===null||!t.trim())return [];let r=t.split(/\r?\n/),n=[];for(let o of r){let i=o.trim();i===""||i.startsWith("#")||n.push(i);}return n}var l_=d(()=>{b();s(Ud,"parseIgnore");});async function jt(e,t={}){let r=join(e,".agentsmesh"),n=await j(r)?r:e,[o,i,a,l,c,m,p,u]=await Promise.all([yi(join(n,"rules"),t),_i(join(n,"commands"),t),Si(join(n,"agents"),t),Ri(join(n,"skills"),t),cn(join(n,"mcp.json")),$d(join(n,"permissions.yaml")),jd(join(n,"hooks.yaml")),Ud(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Ca=d(()=>{tp();rp();np();oc();op();s_();a_();l_();b();s(jt,"loadCanonicalFiles");});function oO(e){return basename(e.source,".md")}function sc(e,t){let r=new Map(e.rules.map(p=>[oO(p),p]));for(let p of t.rules)r.set(oO(p),p);let n=new Map(e.commands.map(p=>[p.name,p]));for(let p of t.commands)n.set(p.name,p);let o=new Map(e.agents.map(p=>[p.name,p]));for(let p of t.agents)o.set(p.name,p);let i=new Map(e.skills.map(p=>[p.name,p]));for(let p of t.skills)i.set(p.name,p);let a=lY(e.mcp,t.mcp),l=cY(e.permissions,t.permissions),c=mY(e.hooks,t.hooks),m=pY(e.ignore,t.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(i.values()),mcp:a,permissions:l,hooks:c,ignore:m}}function lY(e,t){if(!e&&!t)return null;let r=e?.mcpServers??{},n=t?.mcpServers??{};return {mcpServers:{...r,...n}}}function cY(e,t){if(!e&&!t)return null;let r=c_(e?.allow??[],t?.allow??[]),n=c_(e?.deny??[],t?.deny??[]),o=c_(e?.ask??[],t?.ask??[]);return {allow:r,deny:n,ask:o}}function c_(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}function mY(e,t){if(!e&&!t)return null;let r={},n=new Set([...Object.keys(e??{}),...Object.keys(t??{})]);for(let o of n){let i=t?.[o],a=e?.[o];r[o]=i!==void 0&&i.length>0?i:a??[];}return r}function pY(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}var m_=d(()=>{s(oO,"ruleSlug");s(sc,"mergeCanonicalFiles");s(lY,"mergeMcp");s(cY,"mergePermissions");s(c_,"mergeUniqueStrings");s(mY,"mergeHooks");s(pY,"mergeIgnore");});function _Y(e){return typeof e=="string"?e:e.level}function sO(e){return yY.includes(e)}function iO(e,t,r,n){for(let o of hY){let i=_Y(t[o.feature]);if(i==="none")continue;let a=typeof e.generators[o.generator]=="function",l=sO(o.feature)&&typeof e.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${i}" but generators.${o.generator}`+(sO(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function Bd(e){return CY.parse(e)}var ns,aO,uY,dY,lO,fY,gY,hY,yY,SY,RY,kY,IY,LY,CY,p_=d(()=>{ns=z$1.union([z$1.enum(["native","embedded","partial","none"]),z$1.object({level:z$1.enum(["native","embedded","partial","none"]),flavor:z$1.string().optional()})]),aO=z$1.object({rules:ns,additionalRules:ns,commands:ns,agents:ns,skills:ns,mcp:ns,hooks:ns,ignore:ns,permissions:ns}),uY=z$1.object({name:z$1.string(),generateRules:z$1.function(),importFrom:z$1.function(),generateCommands:z$1.function().optional(),generateAgents:z$1.function().optional(),generateSkills:z$1.function().optional(),generateMcp:z$1.function().optional(),generatePermissions:z$1.function().optional(),generateHooks:z$1.function().optional(),generateIgnore:z$1.function().optional(),lint:z$1.function().optional()}).passthrough(),dY=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),lO=z$1.object({paths:dY}).passthrough(),fY=z$1.object({capabilities:aO,detectionPaths:z$1.array(z$1.string()),layout:lO,scopeExtras:z$1.function().optional()}).passthrough(),gY=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],hY=[{feature:"commands",generator:"generateCommands"},{feature:"agents",generator:"generateAgents"},{feature:"skills",generator:"generateSkills"},{feature:"mcp",generator:"generateMcp"},{feature:"hooks",generator:"generateHooks"},{feature:"ignore",generator:"generateIgnore"},{feature:"permissions",generator:"generatePermissions"}],yY=["mcp","hooks","ignore","permissions"];s(_Y,"capabilityLevel");s(sO,"canUseScopedSettings");s(iO,"validateCapabilityImplementations");SY=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),RY=z$1.object({displayName:z$1.string().min(1),category:z$1.enum(["cli","ide","agent-platform"]),officialUrl:z$1.string().min(1),shortDescription:z$1.string().min(1)}).passthrough(),kY=z$1.discriminatedUnion("kind",[z$1.object({kind:z$1.literal("basename"),suffix:z$1.string().min(1)}),z$1.object({kind:z$1.literal("skillDir")}),z$1.object({kind:z$1.literal("firstSegment")})]),IY=z$1.object({pickPaths:z$1.array(z$1.object({prefix:z$1.string().min(1),feature:z$1.enum(["commands","rules","agents","skills"]),strategy:kY})).optional(),inferPick:z$1.function().optional(),dialectHints:z$1.array(z$1.object({frontmatterKey:z$1.string().min(1)})).optional()}).strict(),LY=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:RY,generators:uY,capabilities:aO,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:lO,globalSupport:fY.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),nativeInstall:IY.optional(),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:SY.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),CY=LY.superRefine((e,t)=>{for(let r of gY)r in e&&t.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});iO(e,e.capabilities,t,["capabilities"]),e.globalSupport!==void 0&&iO(e,e.globalSupport.capabilities,t,["globalSupport","capabilities"]);});s(Bd,"validateDescriptor");});function cO(){if(u_)return u_;let e=Pe.filter(r=>r!==void 0&&typeof r.id=="string"),t=new Map(e.map(r=>[r.id,r]));return e.length===Pe.length&&(u_=t),t}function Wd(e){let t=Bd(e);Kd.set(t.id,t);}function re(e){return Kd.get(e)??cO().get(e)}function Hd(){return [...Kd.values()]}function zd(){return [...new Set([...cO().keys(),...Kd.keys()])]}var Kd,u_,rt=d(()=>{xe();p_();Kd=new Map;s(cO,"builtinDescriptors");s(Wd,"registerTargetDescriptor");s(re,"getDescriptor");s(Hd,"getAllDescriptors");s(zd,"getAllRegisteredDescriptorIds");});function mO(e,t){return re(e)?.conversionDefaults?.[t]}function pO(e,t){if(e!==void 0)return typeof e=="boolean"?e:e[t]}function ic(e,t,r,n="project"){let o=e.conversions?.commands_to_skills?.[t],i=pO(o,n);if(i!==void 0)return i;let a=mO(t,"commandsToSkills");return a!==void 0?a:r??false}function os(e,t,r,n="project"){let o=e.conversions?.agents_to_skills?.[t],i=pO(o,n);if(i!==void 0)return i;let a=mO(t,"agentsToSkills");return a!==void 0?a:r??false}var sp=d(()=>{rt();s(mO,"builtinDefault");s(pO,"resolveConversionValue");s(ic,"shouldConvertCommandsToSkills");s(os,"shouldConvertAgentsToSkills");});function un(e,t){return t!==void 0?{level:e,flavor:t}:{level:e}}function pn(e){return typeof e=="string"?{level:e}:e}function d_(e){return {rules:pn(e.rules),additionalRules:pn(e.additionalRules),commands:pn(e.commands),agents:pn(e.agents),skills:pn(e.skills),mcp:pn(e.mcp),hooks:pn(e.hooks),ignore:pn(e.ignore),permissions:pn(e.permissions)}}var Ea=d(()=>{s(un,"cap");s(pn,"normalizeCapabilityValue");s(d_,"normalizeTargetCapabilities");});function uO(e){for(let t of Pe)if(t.sharedArtifacts){for(let[r,n]of Object.entries(t.sharedArtifacts))if(n==="owner"&&e.startsWith(r))return t.id}return null}function EY(e){let t=[];for(let n of e)if(n.sharedArtifacts)for(let[o,i]of Object.entries(n.sharedArtifacts))i==="owner"&&t.push({targetId:n.id,prefix:o});let r=[];for(let n=0;n<t.length;n++)for(let o=n+1;o<t.length;o++){let i=t[n],a=t[o];i===void 0||a===void 0||(i.prefix===a.prefix||i.prefix.startsWith(a.prefix)||a.prefix.startsWith(i.prefix))&&r.push({a:i,b:a});}return r}function dO(e){let t=EY(e);if(t.length===0)return;let r=t.map(({a:n,b:o})=>` - "${n.targetId}" owns "${n.prefix}" and "${o.targetId}" owns "${o.prefix}"`);throw new Error(`Shared-artifact ownership conflict: two targets claim the same or overlapping prefix.
17
17
  `+r.join(`
18
18
  `)+`
19
- Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var u_=d(()=>{xe();s(aO,"ownerTargetIdForSharedPath");s(yY,"findSharedArtifactOwnershipConflicts");s(lO,"assertSharedArtifactOwnersUnique");});function _Y(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function J(e){return `${sc}${e}`}function Ge(e){let t={name:J(e.name),description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function Wd(e,t){if(e["x-agentsmesh-kind"]!=="command")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith(sc)?t.slice(sc.length):t.startsWith(sp)?t.slice(sp.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",allowedTools:_Y(e["x-agentsmesh-allowed-tools"])}:null}function Hd(e,t){return T({description:e.description,"allowed-tools":e.allowedTools},t.trim()||"")}var sc,sp,be=d(()=>{B();sc="am-command-",sp="ab-command-";s(_Y,"toStringArray");s(J,"commandSkillDirName");s(Ge,"serializeCommandSkill");s(Wd,"parseCommandSkillFrontmatter");s(Hd,"serializeImportedCommand");});function zd(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function SY(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))Array.isArray(n)&&(t[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return t}function V(e){return `${ic}${e}`}function $e(e){let t={name:V(e.name),description:e.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":e.name,"x-agentsmesh-tools":e.tools.length>0?e.tools:void 0,"x-agentsmesh-disallowed-tools":e.disallowedTools.length>0?e.disallowedTools:void 0,"x-agentsmesh-model":e.model||void 0,"x-agentsmesh-permission-mode":e.permissionMode||void 0,"x-agentsmesh-max-turns":e.maxTurns>0?e.maxTurns:void 0,"x-agentsmesh-mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(e.hooks).length>0?e.hooks:void 0,"x-agentsmesh-skills":e.skills.length>0?e.skills:void 0,"x-agentsmesh-memory":e.memory||void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),T(t,e.body.trim()||"")}function ac(e,t){if(e["x-agentsmesh-kind"]!=="agent")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith(ic)?t.slice(ic.length):t.startsWith(ip)?t.slice(ip.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",tools:zd(e["x-agentsmesh-tools"]),disallowedTools:zd(e["x-agentsmesh-disallowed-tools"]),model:typeof e["x-agentsmesh-model"]=="string"?e["x-agentsmesh-model"]:"",permissionMode:typeof e["x-agentsmesh-permission-mode"]=="string"?e["x-agentsmesh-permission-mode"]:"",maxTurns:typeof e["x-agentsmesh-max-turns"]=="number"?e["x-agentsmesh-max-turns"]:Number(e["x-agentsmesh-max-turns"]??0),mcpServers:zd(e["x-agentsmesh-mcp-servers"]),hooks:SY(e["x-agentsmesh-hooks"]),skills:zd(e["x-agentsmesh-skills"]),memory:typeof e["x-agentsmesh-memory"]=="string"?e["x-agentsmesh-memory"]:""}:null}function Ri(e,t){let r={name:e.name,description:e.description,tools:e.tools,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),T(r,t.trim()||"")}var ic,ip,_e=d(()=>{B();ic="am-agent-",ip="ab-agent-";s(zd,"toStringArray");s(SY,"toHooks");s(V,"projectedAgentSkillDirName");s($e,"serializeProjectedAgentSkill");s(ac,"parseProjectedAgentSkillFrontmatter");s(Ri,"serializeImportedAgent");});function ap(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function dO(e,t){return new RegExp(`${ap(e)}[\\s\\S]*?${ap(t)}`,"g")}function cp(e,t,r){return e.replace(dO(t,r),"").trim()}function IY(e){if(e.indexOf("---")!==0)return {prefix:"",body:e.trim()};let t=e.indexOf("---",3);return t===-1?{prefix:"",body:e.trim()}:{prefix:e.slice(0,t+3),body:e.slice(t+3).trim()}}function Yd(e,t){let{prefix:r,body:n}=IY(e),o=n?`${t}
19
+ Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var f_=d(()=>{xe();s(uO,"ownerTargetIdForSharedPath");s(EY,"findSharedArtifactOwnershipConflicts");s(dO,"assertSharedArtifactOwnersUnique");});function OY(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function J(e){return `${ac}${e}`}function Ge(e){let t={name:J(e.name),description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function Vd(e,t){if(e["x-agentsmesh-kind"]!=="command")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith(ac)?t.slice(ac.length):t.startsWith(ip)?t.slice(ip.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",allowedTools:OY(e["x-agentsmesh-allowed-tools"])}:null}function Jd(e,t){return T({description:e.description,"allowed-tools":e.allowedTools},t.trim()||"")}var ac,ip,be=d(()=>{B();ac="am-command-",ip="ab-command-";s(OY,"toStringArray");s(J,"commandSkillDirName");s(Ge,"serializeCommandSkill");s(Vd,"parseCommandSkillFrontmatter");s(Jd,"serializeImportedCommand");});function Yd(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function wY(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))Array.isArray(n)&&(t[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return t}function V(e){return `${lc}${e}`}function $e(e){let t={name:V(e.name),description:e.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":e.name,"x-agentsmesh-tools":e.tools.length>0?e.tools:void 0,"x-agentsmesh-disallowed-tools":e.disallowedTools.length>0?e.disallowedTools:void 0,"x-agentsmesh-model":e.model||void 0,"x-agentsmesh-permission-mode":e.permissionMode||void 0,"x-agentsmesh-max-turns":e.maxTurns>0?e.maxTurns:void 0,"x-agentsmesh-mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(e.hooks).length>0?e.hooks:void 0,"x-agentsmesh-skills":e.skills.length>0?e.skills:void 0,"x-agentsmesh-memory":e.memory||void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),T(t,e.body.trim()||"")}function cc(e,t){if(e["x-agentsmesh-kind"]!=="agent")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith(lc)?t.slice(lc.length):t.startsWith(ap)?t.slice(ap.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",tools:Yd(e["x-agentsmesh-tools"]),disallowedTools:Yd(e["x-agentsmesh-disallowed-tools"]),model:typeof e["x-agentsmesh-model"]=="string"?e["x-agentsmesh-model"]:"",permissionMode:typeof e["x-agentsmesh-permission-mode"]=="string"?e["x-agentsmesh-permission-mode"]:"",maxTurns:typeof e["x-agentsmesh-max-turns"]=="number"?e["x-agentsmesh-max-turns"]:Number(e["x-agentsmesh-max-turns"]??0),mcpServers:Yd(e["x-agentsmesh-mcp-servers"]),hooks:wY(e["x-agentsmesh-hooks"]),skills:Yd(e["x-agentsmesh-skills"]),memory:typeof e["x-agentsmesh-memory"]=="string"?e["x-agentsmesh-memory"]:""}:null}function ki(e,t){let r={name:e.name,description:e.description,tools:e.tools,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),T(r,t.trim()||"")}var lc,ap,_e=d(()=>{B();lc="am-agent-",ap="ab-agent-";s(Yd,"toStringArray");s(wY,"toHooks");s(V,"projectedAgentSkillDirName");s($e,"serializeProjectedAgentSkill");s(cc,"parseProjectedAgentSkillFrontmatter");s(ki,"serializeImportedAgent");});function lp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _O(e,t){return new RegExp(`${lp(e)}[\\s\\S]*?${lp(t)}`,"g")}function mp(e,t,r){return e.replace(_O(t,r),"").trim()}function xY(e){if(e.indexOf("---")!==0)return {prefix:"",body:e.trim()};let t=e.indexOf("---",3);return t===-1?{prefix:"",body:e.trim()}:{prefix:e.slice(0,t+3),body:e.slice(t+3).trim()}}function qd(e,t){let{prefix:r,body:n}=xY(e),o=n?`${t}
20
20
 
21
21
  ${n}`:t;return r?`${r}
22
22
 
23
- ${o}`:o}function LY(e){let t=e.replace(/\\/g,"/"),r=t.lastIndexOf(".agentsmesh/");return r>=0?t.slice(r+12):t.startsWith("rules/")?t:join("rules",basename(t)).replace(/\\/g,"/")}function CY(e){return {source:LY(e.source),description:e.description,globs:e.globs,targets:e.targets}}function EY(e){return `${pO}${JSON.stringify(CY(e))}${uO}`}function OY(e){let t=[EY(e)];return e.description.trim()&&t.push(`## ${e.description.trim()}`,""),t.push(e.body.trim(),mO),t.filter(r=>r.length>0).join(`
24
- `)}function wY(e){return e.length===0?"":[Vd,...e.map(OY),Jd].join(`
25
- `)}function le(e,t){let r=wY(t),n=cp(e,Vd,Jd);return r?n?`${n}
23
+ ${o}`:o}function TY(e){let t=e.replace(/\\/g,"/"),r=t.lastIndexOf(".agentsmesh/");return r>=0?t.slice(r+12):t.startsWith("rules/")?t:join("rules",basename(t)).replace(/\\/g,"/")}function PY(e){return {source:TY(e.source),description:e.description,globs:e.globs,targets:e.targets}}function DY(e){return `${hO}${JSON.stringify(PY(e))}${yO}`}function NY(e){let t=[DY(e)];return e.description.trim()&&t.push(`## ${e.description.trim()}`,""),t.push(e.body.trim(),gO),t.filter(r=>r.length>0).join(`
24
+ `)}function vY(e){return e.length===0?"":[Xd,...e.map(NY),Qd].join(`
25
+ `)}function le(e,t){let r=vY(t),n=mp(e,Xd,Qd);return r?n?`${n}
26
26
 
27
- ${r}`:r:n}function cO(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function bY(e){try{let t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return typeof r.source!="string"||!r.source.startsWith("rules/")?null:{source:r.source,description:typeof r.description=="string"?r.description:"",globs:cO(r.globs),targets:cO(r.targets)}}catch{return null}}function AY(e,t){let r=e.trim();if(!t.trim())return r;let n=`## ${t.trim()}`;return r.startsWith(n)?r.slice(n.length).trim():r}function fO(e){let t=[],r=dO(Vd,Jd);return {rootContent:e.replace(r,o=>{let i=o.replace(Vd,"").replace(Jd,"").trim(),a=new RegExp(`${ap(pO)}([\\s\\S]*?)${ap(uO)}([\\s\\S]*?)${ap(mO)}`,"g");for(let l of i.matchAll(a)){let c=l[1],m=l[2];if(c===void 0||m===void 0)continue;let p=bY(c);p&&t.push({...p,body:AY(m,p.description)});}return ""}).trim(),rules:t}}var d_,f_,lp,g_,Vd,Jd,mO,pO,uO,Be=d(()=>{d_="<!-- agentsmesh:root-generation-contract:start -->",f_="<!-- agentsmesh:root-generation-contract:end -->",lp="<!-- agentsmesh:lessons-contract:start -->",g_="<!-- agentsmesh:lessons-contract:end -->",Vd="<!-- agentsmesh:embedded-rules:start -->",Jd="<!-- agentsmesh:embedded-rules:end -->",mO="<!-- agentsmesh:embedded-rule:end -->",pO="<!-- agentsmesh:embedded-rule:start ",uO=" -->";s(ap,"escapeRegExp");s(dO,"managedBlockPattern");s(cp,"stripManagedBlock");s(IY,"splitFrontmatterPrefix");s(Yd,"insertAtBodyTop");s(LY,"ruleSource");s(CY,"markerForRule");s(EY,"embeddedRuleStart");s(OY,"renderRule");s(wY,"renderEmbeddedRulesBlock");s(le,"appendEmbeddedRulesBlock");s(cO,"toStringArray");s(bY,"parseMarker");s(AY,"stripGeneratedHeading");s(fO,"extractEmbeddedRules");});function hO(e){let t=y_(e);return Yd(t,gO)}function y_(e){let t=cp(e,d_,f_);t=t.replace(`
27
+ ${r}`:r:n}function fO(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function FY(e){try{let t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return typeof r.source!="string"||!r.source.startsWith("rules/")?null:{source:r.source,description:typeof r.description=="string"?r.description:"",globs:fO(r.globs),targets:fO(r.targets)}}catch{return null}}function MY(e,t){let r=e.trim();if(!t.trim())return r;let n=`## ${t.trim()}`;return r.startsWith(n)?r.slice(n.length).trim():r}function SO(e){let t=[],r=_O(Xd,Qd);return {rootContent:e.replace(r,o=>{let i=o.replace(Xd,"").replace(Qd,"").trim(),a=new RegExp(`${lp(hO)}([\\s\\S]*?)${lp(yO)}([\\s\\S]*?)${lp(gO)}`,"g");for(let l of i.matchAll(a)){let c=l[1],m=l[2];if(c===void 0||m===void 0)continue;let p=FY(c);p&&t.push({...p,body:MY(m,p.description)});}return ""}).trim(),rules:t}}var g_,h_,cp,y_,Xd,Qd,gO,hO,yO,Be=d(()=>{g_="<!-- agentsmesh:root-generation-contract:start -->",h_="<!-- agentsmesh:root-generation-contract:end -->",cp="<!-- agentsmesh:lessons-contract:start -->",y_="<!-- agentsmesh:lessons-contract:end -->",Xd="<!-- agentsmesh:embedded-rules:start -->",Qd="<!-- agentsmesh:embedded-rules:end -->",gO="<!-- agentsmesh:embedded-rule:end -->",hO="<!-- agentsmesh:embedded-rule:start ",yO=" -->";s(lp,"escapeRegExp");s(_O,"managedBlockPattern");s(mp,"stripManagedBlock");s(xY,"splitFrontmatterPrefix");s(qd,"insertAtBodyTop");s(TY,"ruleSource");s(PY,"markerForRule");s(DY,"embeddedRuleStart");s(NY,"renderRule");s(vY,"renderEmbeddedRulesBlock");s(le,"appendEmbeddedRulesBlock");s(fO,"toStringArray");s(FY,"parseMarker");s(MY,"stripGeneratedHeading");s(SO,"extractEmbeddedRules");});function kO(e){let t=S_(e);return qd(t,RO)}function S_(e){let t=mp(e,g_,h_);t=t.replace(`
28
28
 
29
- ${gO}`,"");for(let r of qY)t=t.replace(`
29
+ ${RO}`,"");for(let r of i2)t=t.replace(`
30
30
 
31
- ${r}`,"");return t.trim()}var h_,xY,TY,PY,DY,NY,vY,FY,MY,GY,$Y,jY,UY,BY,KY,WY,HY,zY,VY,JY,YY,XY,QY,gO,qY,__=d(()=>{Be();h_="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is `.agentsmesh/`; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",xY="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is the `.agentsmesh` directory at the project root; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",TY="AgentsMesh syncs AI coding tool configuration from a single canonical `.agentsmesh` directory. All target-specific files (`.claude/`, `.cursor/`, `AGENTS.md`, etc.) are generated artifacts \u2014 edit canonical config first, then regenerate. The import/generate contract is bidirectional and lossless: embedded or projected features round-trip without data loss.",PY="Create agents, skills, commands, rules, hooks, and MCP in `.agentsmesh`, then run `agentsmesh generate` to sync each tool's native files. Edit `.agentsmesh`, not generated outputs.",DY="Use Claude-style Markdown in `.agentsmesh`: `agents/*.md`, `commands/*.md`, and `skills/*/SKILL.md`; keep rules in `rules/*.md`, hooks in `hooks.yaml`, MCP in `mcp.json`, permissions in `permissions.yaml`, and ignore patterns in `ignore`, then run `agentsmesh generate`.",NY="Create canonical files in `.agentsmesh`: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Then run `agentsmesh generate`.",vY="`.agentsmesh` is the only folder you edit or add these files in: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Do not edit generated tool files; run `agentsmesh generate`.",FY="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, and `merge` as needed; never edit generated tool files.",MY="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",GY="**MUST follow when changing any rule, agent, command, skill, hook, MCP server, permission, or ignore pattern.** `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",$Y="**NEVER edit generated files** (`.claude/`, `.cursor/`, `AGENTS.md`, `.github/copilot-instructions.md`, and similar target outputs) \u2014 `agentsmesh generate` overwrites them. **All changes MUST go through `.agentsmesh` first**: edit `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally); if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed.",jY=h_,UY=`## Project-Specific Rules
31
+ ${r}`,"");return t.trim()}var __,GY,$Y,jY,UY,BY,KY,WY,HY,zY,VY,JY,YY,XY,QY,qY,ZY,e2,t2,r2,n2,o2,s2,RO,i2,R_=d(()=>{Be();__="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is `.agentsmesh/`; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",GY="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is the `.agentsmesh` directory at the project root; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",$Y="AgentsMesh syncs AI coding tool configuration from a single canonical `.agentsmesh` directory. All target-specific files (`.claude/`, `.cursor/`, `AGENTS.md`, etc.) are generated artifacts \u2014 edit canonical config first, then regenerate. The import/generate contract is bidirectional and lossless: embedded or projected features round-trip without data loss.",jY="Create agents, skills, commands, rules, hooks, and MCP in `.agentsmesh`, then run `agentsmesh generate` to sync each tool's native files. Edit `.agentsmesh`, not generated outputs.",UY="Use Claude-style Markdown in `.agentsmesh`: `agents/*.md`, `commands/*.md`, and `skills/*/SKILL.md`; keep rules in `rules/*.md`, hooks in `hooks.yaml`, MCP in `mcp.json`, permissions in `permissions.yaml`, and ignore patterns in `ignore`, then run `agentsmesh generate`.",BY="Create canonical files in `.agentsmesh`: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Then run `agentsmesh generate`.",KY="`.agentsmesh` is the only folder you edit or add these files in: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Do not edit generated tool files; run `agentsmesh generate`.",WY="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, and `merge` as needed; never edit generated tool files.",HY="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",zY="**MUST follow when changing any rule, agent, command, skill, hook, MCP server, permission, or ignore pattern.** `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",VY="**NEVER edit generated files** (`.claude/`, `.cursor/`, `AGENTS.md`, `.github/copilot-instructions.md`, and similar target outputs) \u2014 `agentsmesh generate` overwrites them. **All changes MUST go through `.agentsmesh` first**: edit `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally); if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed.",JY=__,YY=`## Project-Specific Rules
32
32
 
33
- ${h_}`,BY=`## AgentsMesh Generation Contract
33
+ ${__}`,XY=`## AgentsMesh Generation Contract
34
34
 
35
- ${h_}`,KY=`## AgentsMesh Generation Contract
35
+ ${__}`,QY=`## AgentsMesh Generation Contract
36
36
 
37
- ${xY}`,WY=`## AgentsMesh Generation Contract
37
+ ${GY}`,qY=`## AgentsMesh Generation Contract
38
38
 
39
- ${TY}`,HY=`## AgentsMesh Generation Contract
39
+ ${$Y}`,ZY=`## AgentsMesh Generation Contract
40
40
 
41
- ${PY}`,zY=`## AgentsMesh Generation Contract
41
+ ${jY}`,e2=`## AgentsMesh Generation Contract
42
42
 
43
- ${DY}`,VY=`## AgentsMesh Generation Contract
43
+ ${UY}`,t2=`## AgentsMesh Generation Contract
44
44
 
45
- ${NY}`,JY=`## AgentsMesh Generation Contract
45
+ ${BY}`,r2=`## AgentsMesh Generation Contract
46
46
 
47
- ${vY}`,YY=`## AgentsMesh Generation Contract
47
+ ${KY}`,n2=`## AgentsMesh Generation Contract
48
48
 
49
- ${FY}`,XY=`## AgentsMesh Generation Contract
49
+ ${WY}`,o2=`## AgentsMesh Generation Contract
50
50
 
51
- ${MY}`,QY=`## AgentsMesh Generation Contract
51
+ ${HY}`,s2=`## AgentsMesh Generation Contract
52
52
 
53
- ${GY}`,gO=`${d_}
53
+ ${zY}`,RO=`${g_}
54
54
  ## AgentsMesh Generation Contract
55
55
 
56
- ${$Y}
57
- ${f_}`,qY=[QY,XY,YY,JY,VY,zY,HY,WY,KY,BY,UY,jY];s(hO,"appendAgentsmeshRootInstructionParagraph");s(y_,"stripAgentsmeshRootInstructionParagraph");});function Tt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function lc(e){let t=await k(e);return t?x(t).frontmatter:{}}function lt(e,t){return typeof e[t]=="string"?e[t]:void 0}function S_(e){let t=e.hooks;return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}function ZY(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function e2(e,t){let r=basename(e,".md")==="_root",n={...t};return delete n.root,{root:r,...n}}async function z(e,t,r){let n=await lc(e),o=basename(e,".md")==="_root"?y_(r):r.trim(),i=e2(e,ZY({...n,...t})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=Tt(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return T(a,o||"")}var R_=d(()=>{b();B();__();s(Tt,"toStringArray");s(lc,"readExistingFrontmatter");s(lt,"readString");s(S_,"readHooks");s(ZY,"pruneUndefined");s(e2,"serializeCanonicalRuleFrontmatter");s(z,"serializeImportedRuleWithFallback");});async function Ce(e,t,r){let n=await lc(e),o=(()=>{let l=Tt(n.allowedTools);return l.length>0?l:Tt(n["allowed-tools"])})(),i=t.hasDescription?t.description??"":typeof n.description=="string"?n.description:"",a=t.hasAllowedTools?t.allowedTools??[]:o;return T({description:i,"allowed-tools":a},r.trim()||"")}async function Yn(e,t,r){let n=await lc(e),o=basename(dirname(e)),i=lt(t,"name")??lt(n,"name")??o,a=lt(t,"description")??lt(n,"description")??"";return T({name:i,description:a},r.trim()||"")}async function ve(e,t,r){let n=await lc(e),o=Object.prototype.hasOwnProperty.call(t,"tools")?Tt(t.tools):(()=>{let _=Tt(n.tools);return _.length>0?_:[]})(),i=Object.prototype.hasOwnProperty.call(t,"disallowedTools")?Tt(t.disallowedTools):Object.prototype.hasOwnProperty.call(t,"disallowed-tools")?Tt(t["disallowed-tools"]):Tt(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(t,"mcpServers")?Tt(t.mcpServers):Object.prototype.hasOwnProperty.call(t,"mcp-servers")?Tt(t["mcp-servers"]):Tt(n.mcpServers),l=Object.prototype.hasOwnProperty.call(t,"skills")?Tt(t.skills):Tt(n.skills),c=t.maxTurns??t["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=S_(t)??S_(n),u={name:lt(t,"name")??lt(n,"name")??basename(e,".md"),description:lt(t,"description")??lt(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=lt(t,"model")??lt(n,"model");f&&(u.model=f);let g=lt(t,"permissionMode")??lt(t,"permission-mode")??lt(n,"permissionMode")??lt(n,"permission-mode");g&&(u.permissionMode=g),Number.isInteger(m)&&m>0&&(u.maxTurns=m),a.length>0&&(u.mcpServers=a),p&&Object.keys(p).length>0&&(u.hooks=p),l.length>0&&(u.skills=l);let h=lt(t,"memory")??lt(n,"memory");return h&&(u.memory=h),T(u,r.trim()||"")}var SO=d(()=>{B();R_();s(Ce,"serializeImportedCommandWithFallback");s(Yn,"serializeImportedSkillWithFallback");s(ve,"serializeImportedAgentWithFallback");});var de=d(()=>{R_();SO();});function Xd(e){let t=e.split("/").filter(Boolean);return t.length===0||t.some(n=>n.startsWith("."))?false:!t.join("/").startsWith("tests/e2e/fixtures/")}async function Xn(e){await rm$1(e,{recursive:true,force:true});}var mp=d(()=>{s(Xd,"shouldImportScopedAgentsRule");s(Xn,"removePathIfExists");});function ie(e,t){let r=[];for(let n of e.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${t}/${n.name}/SKILL.md`,content:T(o,n.body.trim()||"")});for(let i of n.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");r.push({path:`${t}/${n.name}/${a}`,content:i.content});}}return r}async function ne(e,t,r,n,o){let i=await readdir(join(e,t),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(i!==null)for(let a of i){if(!a.isDirectory())continue;let l=join(e,t,a.name),c=join(l,"SKILL.md"),m=await k(c);if(m===null)continue;let p=join(e,pp,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=x(o(m,c,u)),h=Wd(f,a.name);if(h){await Xn(join(e,pp,a.name));let I=join(e,RO);await O(I);let w=join(I,`${h.name}.md`);await L(w,Hd(h,o(g,c,w))),n.push({fromTool:r,fromPath:c,toPath:`${RO}/${h.name}.md`,feature:"commands"});continue}let _=ac(f,a.name);if(_){await Xn(join(e,pp,a.name));let I=join(e,kO);await O(I);let w=join(I,`${_.name}.md`);await L(w,Ri(_,o(g,c,w))),n.push({fromTool:r,fromPath:c,toPath:`${kO}/${_.name}.md`,feature:"agents"});continue}let S=await Yn(u,{...f,name:a.name},g);await O(p),await L(u,S),n.push({fromTool:r,fromPath:c,toPath:`${pp}/${a.name}/SKILL.md`,feature:"skills"});let R=await U(l);for(let I of R){if(I===c)continue;let w=relative(l,I).replace(/\\/g,"/"),D=await k(I);if(D===null)continue;let P=join(p,w);await O(dirname(P)),await L(P,o(D,I,P)),n.push({fromTool:r,fromPath:I,toPath:`${pp}/${a.name}/${w}`,feature:"skills"});}}}var pp,RO,kO,oe=d(()=>{b();B();de();_e();be();mp();pp=".agentsmesh/skills",RO=".agentsmesh/commands",kO=".agentsmesh/agents";s(ie,"generateEmbeddedSkills");s(ne,"importEmbeddedSkills");});var Qn,Cr,St,ss,is,Er,Ca,IO,LO,cc=d(()=>{Qn="aider",Cr="CONVENTIONS.md",St=".aider/skills",ss=".aiderignore",is="CONVENTIONS.md",Er=".aider/skills",Ca=".aiderignore",IO=".agentsmesh/rules",LO=".agentsmesh/ignore";});function CO(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Qn)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Cr,content:o}]:[]}function EO(e){return ie(e,St)}function OO(e){return e.commands.map(t=>({path:`${St}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function wO(e){return e.agents.map(t=>({path:`${St}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function bO(e){return e.ignore.length===0?[]:[{path:ss,content:e.ignore.join(`
58
- `)}]}var AO=d(()=>{oe();Be();_e();be();cc();s(CO,"generateRules");s(EO,"generateSkills");s(OO,"generateCommands");s(wO,"generateAgents");s(bO,"generateIgnore");});function ce(e){return e.includes("\\")||dn.test(e)?win32:posix}function Ke(e){return e.replace(/\\/g,"/")}function q(e,t){let r=ce(e),n=r.normalize(r===win32?t.replace(/\//g,"\\"):Ke(t));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function TO(e,t){return ce(e).isAbsolute(t)||dn.test(t)}function mc(e){let t=e,r="";for(;a2.test(t);)r=t.at(-1)+r,t=t.slice(0,-1);return {candidate:t,suffix:r}}function PO(e,t){let r=ce(t),n=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==e?q(t,r.join(t,n)):null}var dn,a2,Rt=d(()=>{dn=/^[A-Za-z]:[\\/]/,a2=/[.!?:;]+$/;s(ce,"pathApi");s(Ke,"normalizeSeparators");s(q,"normalizeForProject");s(TO,"isAbsoluteForProject");s(mc,"stripTrailingPunctuation");s(PO,"rootFallbackPath");});async function DO(e,t,r="project"){let n=new Map,o=re(e);return o&&await o.buildImportPaths(n,t,r),n}var NO=d(()=>{rt();s(DO,"buildImportReferenceMap");});function m2(e){let t=[e.project,e.globalSupport?.layout].filter(o=>o!==void 0),r=[...e.detectionPaths,...t.flatMap(o=>o.managedOutputs?.dirs??[]),...t.flatMap(o=>o.managedOutputs?.files??[])],n=new Set;for(let o of r){let i=o.split("/")[0];i&&i.startsWith(".")&&i.length>1&&n.add(`${i}/`);}return n}function p2(){let e=new Set([".agentsmesh/"]);for(let t of Pe)for(let r of m2(t))e.add(r);return Array.from(e)}function u2(){let e=new Set([...p2(),...k_.rootRelativePrefixes]),t=new Set([...c2,...k_.meshRootSegments]);return {protectedSchemes:[...l2,...k_.protectedSchemes],rootRelativePrefixes:Array.from(e),meshRootSegments:t}}function Qd(){return I_||(I_=u2()),I_}var l2,c2,k_,I_,vO=d(()=>{xe();l2=[/\b[A-Za-z][A-Za-z0-9+.-]+:[^\s<>()\]]+/g,/\b[\w.-]+@[\w.-]+:[^\s<>()\]]+/g,/\b[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}\b/g,/\/\/[A-Za-z0-9][\w.-]*\.[A-Za-z]{2,}[^\s<>()\]]*/g],c2=new Set(["skills","rules","commands","agents","packs"]),k_={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(m2,"topLevelDotfilePrefixes");s(p2,"buildDefaultRootRelativePrefixes");s(u2,"rebuild");s(Qd,"getLinkFormatRegistry");});function fn(e){let t=Ke(e);return Qd().rootRelativePrefixes.some(r=>t.startsWith(r))}function f2(e){let t=Ke(e).replace(/^\.\//,"");if(t.startsWith("../")||t.startsWith("/")||dn.test(t)||/^[a-zA-Z]:/.test(t)||fn(t))return false;let r=t.split("/").filter(n=>n.length>0)[0];return r!==void 0&&Qd().meshRootSegments.has(r)}function up(e,t,r){let n=ce(t),o=q(t,t),i=q(t,r),a=Ke(e);if(dn.test(e)){let l=q(t,e);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(n.isAbsolute(e)){let l=q(t,e);return l.startsWith(o)||existsSync(e)?[l]:[q(t,n.join(t,e))]}if(a.startsWith("./")||a.startsWith("../")){let l=q(t,n.join(n.dirname(i),a)),c=PO(a,o);return c&&c!==l?[l,c]:[l]}if(fn(a))return [q(t,n.join(o,a))];if(a.includes("/")){let l=q(t,n.join(o,".agentsmesh")),c=f2(a)?q(t,n.join(l,a)):null,m=q(t,n.join(o,a)),p=q(t,n.join(n.dirname(i),a));return c!==null?[c,m,p]:[m,p]}return g2.has(a)?[]:a.includes(".")?[q(t,n.join(n.dirname(i),a))]:[]}function dp(e,t){let r=[t];if(!TO(e,t)||!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n)o!==t&&!r.includes(o)&&r.push(o);}catch{}return r}function $O(e,t,r){let n=t>0?e.at(t-1):"",o=r<e.length?e.at(r):"";return n==="*"||o==="*"}function qd(e){let t=[];for(let r of Qd().protectedSchemes){let n=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let o of e.matchAll(n))t.push([o.index??0,(o.index??0)+o[0].length]);}for(let r of e.matchAll(h2))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(y2))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(_2))t.push([r.index??0,(r.index??0)+r[0].length]);return t}var g2,h2,y2,_2,GO,pc,ki=d(()=>{Rt();vO();s(fn,"isRootRelativePathToken");s(f2,"isMeshRootRelativePathToken");g2=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),h2=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,y2=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,_2=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,GO=/(?:\.\.[\\/]|\.\/|\.\\|\/[A-Za-z0-9._-]|[A-Za-z]:[\\/][A-Za-z0-9._-]|\.agentsmesh[\\/]|\.claude[\\/]|\.cursor[\\/]|\.github[\\/]|\.continue[\\/]|\.junie[\\/]|\.kiro[\\/]|\.gemini[\\/]|\.clinerules[\\/]|\.cline[\\/]|\.codex[\\/]|\.agents[\\/]|\.windsurf[\\/]|\.roo[\\/]|(?:[A-Za-z0-9._-]+[\\/])+|[A-Za-z0-9._-]+\.[A-Za-z0-9._-]+)[A-Za-z0-9._@%+~:\\/-]*/g,pc=/(?::(\d+)){1,2}$/;s(up,"resolveProjectPath");s(dp,"expandResolvedPaths");s($O,"isGlobAdjacent");s(qd,"protectedRanges");});function S2(e){return e===void 0||e.role==="inline-code"||e.role==="bracketed"||e.role==="quoted"||e.role==="at-prefix"||e.role==="bracket-label"||e.role==="bare-prose"}function jO(e){return S2(e.tokenContext)}function L_(e,t){let r=ce(e),n=q(e,e),o=q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function UO(e){let t=ce(e);return q(e,t.join(e,".agentsmesh"))}function gn(e,t){let r=ce(e),n=UO(e),o=q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function BO(e,t,r){let n=ce(e),o=UO(e),i=q(e,t);if(!gn(e,i))return null;let a=n.relative(o,i).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function C_(e,t,r){let o=ce(e).relative(q(e,e),q(e,t)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let i=o.length>0?o:".";return r&&!i.endsWith("/")?`${i}/`:i}function uc(e,t,r){let n=C_(e,t,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function E_(e,t,r,n,o){let i=ce(e),a=q(e,e),l=q(e,t),c=q(e,r);if(!L_(e,c))return uc(e,c,n)?.text??null;let m=q(e,i.dirname(l));if(!L_(e,m)&&m!==a)return uc(e,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||dn.test(p))return C_(e,c,n);let u=q(e,i.join(m,p));return L_(e,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):C_(e,c,n)}var O_=d(()=>{Rt();s(S2,"isReadingContext");s(jO,"isReadingContextOptions");s(L_,"isUnderProjectRoot");s(UO,"agentsMeshRoot");s(gn,"isUnderAgentsMesh");s(BO,"toAgentsMeshRootRelative");s(C_,"toProjectRootRelative");s(uc,"toProjectRootReference");s(E_,"formatLinkPathForDestinationLegacy");});function KO(e,t,r,n,o={}){let i=o.scope??"project",a=q(e,r);if(jO(o)&&gn(e,t)&&gn(e,a)){let m=ce(e),p=q(e,e),u=m.relative(p,a).replace(/\\/g,"/");if(!u.startsWith("..")&&u.length>0)return n&&!u.endsWith("/")?`${u}/`:u}if(o.forceRelative)return E_(e,t,r,n,o);if(i==="global"&&!gn(e,t))return uc(e,a,n)?.text??null;let l=(()=>{if(gn(e,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&gn(e,q(e,m))?q(e,m):null})();if(!l)return uc(e,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=BO(e,l,n);return m!==null?m:uc(e,l,n)?.text??null}return E_(e,t,r,n,o)}var WO=d(()=>{ki();Rt();O_();O_();s(KO,"formatLinkPathForDestination");});function HO(e,t,r,n){let o=ce(t),i=Ke(e);if(!fn(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=q(t,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),u=q(t,o.join(c,p));if(u!==l&&n(u))return u}return null}var zO=d(()=>{Rt();ki();s(HO,"resolveByDestinationSuffixStrip");});function VO(e){let t=null,r=false,n=null,o=null,i=null;for(let c of up(e.candidate,e.projectRoot,e.sourceFile)){let m=null,p=null;for(let u of dp(e.projectRoot,c)){let f=q(e.projectRoot,u),g=q(e.projectRoot,e.translatePath(f)),h=e.pathExists(f),_=e.pathExists(g);if(_&&g!==f){t=g,n=f,r=true;break}(h||_)&&m===null&&(m=g,p=f),t===null&&(t=g);}if(!r&&m!==null&&o===null&&(o=m,i=p),r)break}if(!r){let c=HO(e.candidate,e.projectRoot,e.destinationFile,e.pathExists);c!==null&&(t=c,r=true);}!r&&o!==null&&(t=o,i!==null&&(n=i),r=true);let a=Ke(e.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&t!==null&&Ke(e.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:t,resolvedBeforeTranslate:n,matchedPath:r}}var JO=d(()=>{Rt();ki();zO();s(VO,"resolveLinkTarget");});function YO(e,t,r){return t>=2&&e[t-2]==="~"&&e[t-1]==="/"?true:t>=1&&e[t-1]==="~"&&r.startsWith("/")}function XO(e,t,r){if(t<=0||e[t-1]!=="(")return false;let n=t+r.length,o=e[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:e[t-2]==="]"}function QO(e){let t=Ke(e);return t.startsWith("./")||t.startsWith("../")?true:t.startsWith("/")||dn.test(t)||fn(t)?false:t.includes("/")}var qO=d(()=>{Rt();ki();s(YO,"isTildeHomeRelativePathToken");s(XO,"isMarkdownLinkDestinationToken");s(QO,"isRelativePathToken");});function R2(e,t,r){let n=t+r.length;if(e[n]!=="]"||e[n+1]!=="(")return false;let o=n+2,i="";for(;o<e.length;){let a=e[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
59
- `)break;i+=a,o++;}return i===r}function ZO(e,t,r){let n=e.lastIndexOf(`
56
+ ${VY}
57
+ ${h_}`,i2=[s2,o2,n2,r2,t2,e2,ZY,qY,QY,XY,YY,JY];s(kO,"appendAgentsmeshRootInstructionParagraph");s(S_,"stripAgentsmeshRootInstructionParagraph");});function Tt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function mc(e){let t=await k(e);return t?x(t).frontmatter:{}}function lt(e,t){return typeof e[t]=="string"?e[t]:void 0}function k_(e){let t=e.hooks;return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}function a2(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function l2(e,t){let r=basename(e,".md")==="_root",n={...t};return delete n.root,{root:r,...n}}async function z(e,t,r){let n=await mc(e),o=basename(e,".md")==="_root"?S_(r):r.trim(),i=l2(e,a2({...n,...t})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=Tt(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return T(a,o||"")}var I_=d(()=>{b();B();R_();s(Tt,"toStringArray");s(mc,"readExistingFrontmatter");s(lt,"readString");s(k_,"readHooks");s(a2,"pruneUndefined");s(l2,"serializeCanonicalRuleFrontmatter");s(z,"serializeImportedRuleWithFallback");});async function Ce(e,t,r){let n=await mc(e),o=(()=>{let l=Tt(n.allowedTools);return l.length>0?l:Tt(n["allowed-tools"])})(),i=t.hasDescription?t.description??"":typeof n.description=="string"?n.description:"",a=t.hasAllowedTools?t.allowedTools??[]:o;return T({description:i,"allowed-tools":a},r.trim()||"")}async function Xn(e,t,r){let n=await mc(e),o=basename(dirname(e)),i=lt(t,"name")??lt(n,"name")??o,a=lt(t,"description")??lt(n,"description")??"";return T({name:i,description:a},r.trim()||"")}async function ve(e,t,r){let n=await mc(e),o=Object.prototype.hasOwnProperty.call(t,"tools")?Tt(t.tools):(()=>{let _=Tt(n.tools);return _.length>0?_:[]})(),i=Object.prototype.hasOwnProperty.call(t,"disallowedTools")?Tt(t.disallowedTools):Object.prototype.hasOwnProperty.call(t,"disallowed-tools")?Tt(t["disallowed-tools"]):Tt(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(t,"mcpServers")?Tt(t.mcpServers):Object.prototype.hasOwnProperty.call(t,"mcp-servers")?Tt(t["mcp-servers"]):Tt(n.mcpServers),l=Object.prototype.hasOwnProperty.call(t,"skills")?Tt(t.skills):Tt(n.skills),c=t.maxTurns??t["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=k_(t)??k_(n),u={name:lt(t,"name")??lt(n,"name")??basename(e,".md"),description:lt(t,"description")??lt(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=lt(t,"model")??lt(n,"model");f&&(u.model=f);let g=lt(t,"permissionMode")??lt(t,"permission-mode")??lt(n,"permissionMode")??lt(n,"permission-mode");g&&(u.permissionMode=g),Number.isInteger(m)&&m>0&&(u.maxTurns=m),a.length>0&&(u.mcpServers=a),p&&Object.keys(p).length>0&&(u.hooks=p),l.length>0&&(u.skills=l);let h=lt(t,"memory")??lt(n,"memory");return h&&(u.memory=h),T(u,r.trim()||"")}var CO=d(()=>{B();I_();s(Ce,"serializeImportedCommandWithFallback");s(Xn,"serializeImportedSkillWithFallback");s(ve,"serializeImportedAgentWithFallback");});var de=d(()=>{I_();CO();});function Zd(e){let t=e.split("/").filter(Boolean);return t.length===0||t.some(n=>n.startsWith("."))?false:!t.join("/").startsWith("tests/e2e/fixtures/")}async function Qn(e){await rm$1(e,{recursive:true,force:true});}var pp=d(()=>{s(Zd,"shouldImportScopedAgentsRule");s(Qn,"removePathIfExists");});function ie(e,t){let r=[];for(let n of e.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${t}/${n.name}/SKILL.md`,content:T(o,n.body.trim()||"")});for(let i of n.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");r.push({path:`${t}/${n.name}/${a}`,content:i.content});}}return r}async function ne(e,t,r,n,o){let i=await readdir(join(e,t),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(i!==null)for(let a of i){if(!a.isDirectory())continue;let l=join(e,t,a.name),c=join(l,"SKILL.md"),m=await k(c);if(m===null)continue;let p=join(e,up,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=x(o(m,c,u)),h=Vd(f,a.name);if(h){await Qn(join(e,up,a.name));let I=join(e,EO);await O(I);let w=join(I,`${h.name}.md`);await L(w,Jd(h,o(g,c,w))),n.push({fromTool:r,fromPath:c,toPath:`${EO}/${h.name}.md`,feature:"commands"});continue}let _=cc(f,a.name);if(_){await Qn(join(e,up,a.name));let I=join(e,OO);await O(I);let w=join(I,`${_.name}.md`);await L(w,ki(_,o(g,c,w))),n.push({fromTool:r,fromPath:c,toPath:`${OO}/${_.name}.md`,feature:"agents"});continue}let S=await Xn(u,{...f,name:a.name},g);await O(p),await L(u,S),n.push({fromTool:r,fromPath:c,toPath:`${up}/${a.name}/SKILL.md`,feature:"skills"});let R=await U(l);for(let I of R){if(I===c)continue;let w=relative(l,I).replace(/\\/g,"/"),D=await k(I);if(D===null)continue;let P=join(p,w);await O(dirname(P)),await L(P,o(D,I,P)),n.push({fromTool:r,fromPath:I,toPath:`${up}/${a.name}/${w}`,feature:"skills"});}}}var up,EO,OO,oe=d(()=>{b();B();de();_e();be();pp();up=".agentsmesh/skills",EO=".agentsmesh/commands",OO=".agentsmesh/agents";s(ie,"generateEmbeddedSkills");s(ne,"importEmbeddedSkills");});var qn,Er,St,ss,is,Or,Oa,wO,bO,pc=d(()=>{qn="aider",Er="CONVENTIONS.md",St=".aider/skills",ss=".aiderignore",is="CONVENTIONS.md",Or=".aider/skills",Oa=".aiderignore",wO=".agentsmesh/rules",bO=".agentsmesh/ignore";});function AO(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(qn)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Er,content:o}]:[]}function xO(e){return ie(e,St)}function TO(e){return e.commands.map(t=>({path:`${St}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function PO(e){return e.agents.map(t=>({path:`${St}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function DO(e){return e.ignore.length===0?[]:[{path:ss,content:e.ignore.join(`
58
+ `)}]}var NO=d(()=>{oe();Be();_e();be();pc();s(AO,"generateRules");s(xO,"generateSkills");s(TO,"generateCommands");s(PO,"generateAgents");s(DO,"generateIgnore");});function ce(e){return e.includes("\\")||dn.test(e)?win32:posix}function Ke(e){return e.replace(/\\/g,"/")}function q(e,t){let r=ce(e),n=r.normalize(r===win32?t.replace(/\//g,"\\"):Ke(t));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function FO(e,t){return ce(e).isAbsolute(t)||dn.test(t)}function uc(e){let t=e,r="";for(;g2.test(t);)r=t.at(-1)+r,t=t.slice(0,-1);return {candidate:t,suffix:r}}function MO(e,t){let r=ce(t),n=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==e?q(t,r.join(t,n)):null}var dn,g2,Rt=d(()=>{dn=/^[A-Za-z]:[\\/]/,g2=/[.!?:;]+$/;s(ce,"pathApi");s(Ke,"normalizeSeparators");s(q,"normalizeForProject");s(FO,"isAbsoluteForProject");s(uc,"stripTrailingPunctuation");s(MO,"rootFallbackPath");});async function GO(e,t,r="project"){let n=new Map,o=re(e);return o&&await o.buildImportPaths(n,t,r),n}var $O=d(()=>{rt();s(GO,"buildImportReferenceMap");});function _2(e){let t=[e.project,e.globalSupport?.layout].filter(o=>o!==void 0),r=[...e.detectionPaths,...t.flatMap(o=>o.managedOutputs?.dirs??[]),...t.flatMap(o=>o.managedOutputs?.files??[])],n=new Set;for(let o of r){let i=o.split("/")[0];i&&i.startsWith(".")&&i.length>1&&n.add(`${i}/`);}return n}function S2(){let e=new Set([".agentsmesh/"]);for(let t of Pe)for(let r of _2(t))e.add(r);return Array.from(e)}function R2(){let e=new Set([...S2(),...L_.rootRelativePrefixes]),t=new Set([...y2,...L_.meshRootSegments]);return {protectedSchemes:[...h2,...L_.protectedSchemes],rootRelativePrefixes:Array.from(e),meshRootSegments:t}}function ef(){return C_||(C_=R2()),C_}var h2,y2,L_,C_,jO=d(()=>{xe();h2=[/\b[A-Za-z][A-Za-z0-9+.-]+:[^\s<>()\]]+/g,/\b[\w.-]+@[\w.-]+:[^\s<>()\]]+/g,/\b[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}\b/g,/\/\/[A-Za-z0-9][\w.-]*\.[A-Za-z]{2,}[^\s<>()\]]*/g],y2=new Set(["skills","rules","commands","agents","packs"]),L_={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(_2,"topLevelDotfilePrefixes");s(S2,"buildDefaultRootRelativePrefixes");s(R2,"rebuild");s(ef,"getLinkFormatRegistry");});function fn(e){let t=Ke(e);return ef().rootRelativePrefixes.some(r=>t.startsWith(r))}function I2(e){let t=Ke(e).replace(/^\.\//,"");if(t.startsWith("../")||t.startsWith("/")||dn.test(t)||/^[a-zA-Z]:/.test(t)||fn(t))return false;let r=t.split("/").filter(n=>n.length>0)[0];return r!==void 0&&ef().meshRootSegments.has(r)}function dp(e,t,r){let n=ce(t),o=q(t,t),i=q(t,r),a=Ke(e);if(dn.test(e)){let l=q(t,e);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(n.isAbsolute(e)){let l=q(t,e);return l.startsWith(o)||existsSync(e)?[l]:[q(t,n.join(t,e))]}if(a.startsWith("./")||a.startsWith("../")){let l=q(t,n.join(n.dirname(i),a)),c=MO(a,o);return c&&c!==l?[l,c]:[l]}if(fn(a))return [q(t,n.join(o,a))];if(a.includes("/")){let l=q(t,n.join(o,".agentsmesh")),c=I2(a)?q(t,n.join(l,a)):null,m=q(t,n.join(o,a)),p=q(t,n.join(n.dirname(i),a));return c!==null?[c,m,p]:[m,p]}return L2.has(a)?[]:a.includes(".")?[q(t,n.join(n.dirname(i),a))]:[]}function fp(e,t){let r=[t];if(!FO(e,t)||!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n)o!==t&&!r.includes(o)&&r.push(o);}catch{}return r}function WO(e,t,r){let n=t>0?e.at(t-1):"",o=r<e.length?e.at(r):"";return n==="*"||o==="*"}function tf(e){let t=[];for(let r of ef().protectedSchemes){let n=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let o of e.matchAll(n))t.push([o.index??0,(o.index??0)+o[0].length]);}for(let r of e.matchAll(C2))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(E2))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(O2))t.push([r.index??0,(r.index??0)+r[0].length]);return t}var L2,C2,E2,O2,KO,dc,Ii=d(()=>{Rt();jO();s(fn,"isRootRelativePathToken");s(I2,"isMeshRootRelativePathToken");L2=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),C2=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,E2=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,O2=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,KO=/(?:\.\.[\\/]|\.\/|\.\\|\/[A-Za-z0-9._-]|[A-Za-z]:[\\/][A-Za-z0-9._-]|\.agentsmesh[\\/]|\.claude[\\/]|\.cursor[\\/]|\.github[\\/]|\.continue[\\/]|\.junie[\\/]|\.kiro[\\/]|\.gemini[\\/]|\.clinerules[\\/]|\.cline[\\/]|\.codex[\\/]|\.agents[\\/]|\.windsurf[\\/]|\.roo[\\/]|(?:[A-Za-z0-9._-]+[\\/])+|[A-Za-z0-9._-]+\.[A-Za-z0-9._-]+)[A-Za-z0-9._@%+~:\\/-]*/g,dc=/(?::(\d+)){1,2}$/;s(dp,"resolveProjectPath");s(fp,"expandResolvedPaths");s(WO,"isGlobAdjacent");s(tf,"protectedRanges");});function w2(e){return e===void 0||e.role==="inline-code"||e.role==="bracketed"||e.role==="quoted"||e.role==="at-prefix"||e.role==="bracket-label"||e.role==="bare-prose"}function HO(e){return w2(e.tokenContext)}function E_(e,t){let r=ce(e),n=q(e,e),o=q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function zO(e){let t=ce(e);return q(e,t.join(e,".agentsmesh"))}function gn(e,t){let r=ce(e),n=zO(e),o=q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function VO(e,t,r){let n=ce(e),o=zO(e),i=q(e,t);if(!gn(e,i))return null;let a=n.relative(o,i).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function O_(e,t,r){let o=ce(e).relative(q(e,e),q(e,t)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let i=o.length>0?o:".";return r&&!i.endsWith("/")?`${i}/`:i}function fc(e,t,r){let n=O_(e,t,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function w_(e,t,r,n,o){let i=ce(e),a=q(e,e),l=q(e,t),c=q(e,r);if(!E_(e,c))return fc(e,c,n)?.text??null;let m=q(e,i.dirname(l));if(!E_(e,m)&&m!==a)return fc(e,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||dn.test(p))return O_(e,c,n);let u=q(e,i.join(m,p));return E_(e,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):O_(e,c,n)}var b_=d(()=>{Rt();s(w2,"isReadingContext");s(HO,"isReadingContextOptions");s(E_,"isUnderProjectRoot");s(zO,"agentsMeshRoot");s(gn,"isUnderAgentsMesh");s(VO,"toAgentsMeshRootRelative");s(O_,"toProjectRootRelative");s(fc,"toProjectRootReference");s(w_,"formatLinkPathForDestinationLegacy");});function JO(e,t,r,n,o={}){let i=o.scope??"project",a=q(e,r);if(HO(o)&&gn(e,t)&&gn(e,a)){let m=ce(e),p=q(e,e),u=m.relative(p,a).replace(/\\/g,"/");if(!u.startsWith("..")&&u.length>0)return n&&!u.endsWith("/")?`${u}/`:u}if(o.forceRelative)return w_(e,t,r,n,o);if(i==="global"&&!gn(e,t))return fc(e,a,n)?.text??null;let l=(()=>{if(gn(e,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&gn(e,q(e,m))?q(e,m):null})();if(!l)return fc(e,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=VO(e,l,n);return m!==null?m:fc(e,l,n)?.text??null}return w_(e,t,r,n,o)}var YO=d(()=>{Ii();Rt();b_();b_();s(JO,"formatLinkPathForDestination");});function XO(e,t,r,n){let o=ce(t),i=Ke(e);if(!fn(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=q(t,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),u=q(t,o.join(c,p));if(u!==l&&n(u))return u}return null}var QO=d(()=>{Rt();Ii();s(XO,"resolveByDestinationSuffixStrip");});function qO(e){let t=null,r=false,n=null,o=null,i=null;for(let c of dp(e.candidate,e.projectRoot,e.sourceFile)){let m=null,p=null;for(let u of fp(e.projectRoot,c)){let f=q(e.projectRoot,u),g=q(e.projectRoot,e.translatePath(f)),h=e.pathExists(f),_=e.pathExists(g);if(_&&g!==f){t=g,n=f,r=true;break}(h||_)&&m===null&&(m=g,p=f),t===null&&(t=g);}if(!r&&m!==null&&o===null&&(o=m,i=p),r)break}if(!r){let c=XO(e.candidate,e.projectRoot,e.destinationFile,e.pathExists);c!==null&&(t=c,r=true);}!r&&o!==null&&(t=o,i!==null&&(n=i),r=true);let a=Ke(e.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&t!==null&&Ke(e.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:t,resolvedBeforeTranslate:n,matchedPath:r}}var ZO=d(()=>{Rt();Ii();QO();s(qO,"resolveLinkTarget");});function ew(e,t,r){return t>=2&&e[t-2]==="~"&&e[t-1]==="/"?true:t>=1&&e[t-1]==="~"&&r.startsWith("/")}function tw(e,t,r){if(t<=0||e[t-1]!=="(")return false;let n=t+r.length,o=e[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:e[t-2]==="]"}function rw(e){let t=Ke(e);return t.startsWith("./")||t.startsWith("../")?true:t.startsWith("/")||dn.test(t)||fn(t)?false:t.includes("/")}var nw=d(()=>{Rt();Ii();s(ew,"isTildeHomeRelativePathToken");s(tw,"isMarkdownLinkDestinationToken");s(rw,"isRelativePathToken");});function b2(e,t,r){let n=t+r.length;if(e[n]!=="]"||e[n+1]!=="(")return false;let o=n+2,i="";for(;o<e.length;){let a=e[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
59
+ `)break;i+=a,o++;}return i===r}function ow(e,t,r){let n=e.lastIndexOf(`
60
60
  `,t-1)+1,o=e.slice(n,t);if(!/^\s*\[[^\]\n]+\]:\s*<?\s*$/.test(o))return false;let i=r<e.length?e[r]:"";return i===""||i===`
61
- `||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function ew(e,t,r){let n=t>0?e[t-1]:"",o=r<e.length?e[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:ZO(e,t,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&e[t-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function tw(e,t,r,n,o){if(t<0||r>e.length)return false;let{candidate:i}=mc(n),a=i.replace(pc,""),l=Ke(a),c=t+a.length,m=e[t-1],p=e[r];return ZO(e,t,c)||m==="`"&&p==="`"?true:m==="'"&&p==="'"||m==='"'&&p==='"'?false:m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!fn(l)&&R2(e,t,n)):m==="@"?true:m==="("&&e[t-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?fn(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var rw=d(()=>{Rt();ki();s(R2,"markdownBracketLabelDuplicatesDestination");s(ZO,"isMarkdownReferenceDefinitionDestination");s(ew,"getTokenContext");s(tw,"shouldRewritePathToken");});function Zd(e){let t=new Set,r=qd(e.content);return {content:e.content.replace(GO,(o,i,a)=>{if(r.some(([we,et])=>i>=we&&i<et)||!tw(a,i,i+o.length,o,e.rewriteBarePathTokens===true)||YO(a,i,o)||$O(a,i,i+o.length))return o;let{candidate:l,suffix:c}=mc(o);if(!l)return o;let m=pc.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=ew(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&dn.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:_}=VO({candidate:p,rawToken:l,projectRoot:e.projectRoot,sourceFile:e.sourceFile,destinationFile:e.destinationFile,translatePath:e.translatePath,pathExists:e.pathExists}),S=h;if(!_||!g)return g&&t.add(g),o;let R=Ke(p),I=p.endsWith("/")||e.pathIsDirectory?.(g)===true;if(I&&!R.includes("/")&&!R.includes("\\"))return o;if(S===null){let we=Ke(l);if(we.startsWith("agentsmesh/")&&(we=`.${we}`),we.startsWith(".agentsmesh/")||we.includes("/.agentsmesh/")){let et=ce(e.projectRoot),it=q(e.projectRoot,e.projectRoot),_t=we.replace(/^\.\//,"");S=q(e.projectRoot,et.join(it,_t));}}let w=ce(e.projectRoot);if(e.scope==="global"){let we=Ke(l),et=we.startsWith(".agentsmesh/")||we.includes("/.agentsmesh/"),it=fn(we)||QO(we),_t=S!==null&&gn(e.projectRoot,S),di=gn(e.projectRoot,g);if(S===g&&!di&&!_t&&!et){let Km=Ke(w.relative(e.projectRoot,q(e.projectRoot,e.sourceFile))).split("/").filter(Boolean)[0]??"",Hm=(S!==null?Ke(w.relative(e.projectRoot,S)):"").split("/").filter(Boolean)[0]??"";if(Km.length>0&&Km===Hm)return o}if(!it&&!et&&!_t&&!di)return o}let D=q(e.projectRoot,e.destinationFile),P=q(e.projectRoot,g),K=Ke(w.relative(e.projectRoot,D)),G=Ke(w.relative(e.projectRoot,P)),Y=K.split("/").filter(Boolean)[0]??"",ee=G.split("/").filter(Boolean)[0]??"",Te=!Ke(p).startsWith(".agentsmesh/")&&!I&&Y.length>0&&Y===ee&&Y.startsWith(".")&&Y!==".agentsmesh"||f.role==="markdown-link-dest"||XO(a,i,p),At=KO(e.projectRoot,e.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:e.explicitCurrentDirLinks===true||Te,scope:e.scope??"project",pathIsDirectory:e.pathIsDirectory,logicalMeshSourceAbsolute:I?null:S,forceRelative:Te,tokenContext:f,originalToken:p});return At?`${At}${u}${c}`:o}),missing:[...t]}}var w_=d(()=>{Rt();ki();WO();JO();qO();rw();s(Zd,"rewriteFileLinks");});function ow(e,t){let r=[e.normalize(t)];if(!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n){let i=e.normalize(o);r.includes(i)||r.push(i);}}catch{}return r}async function H(e,t,r="project"){let n=ce(t),o=new Map,i=Array.from(new Set([e,...Ue]));for(let c of i){let m=await DO(c,t,r);for(let[p,u]of m.entries())o.set(p,u);}let a=new Map;for(let[c,m]of o.entries()){let p=n.normalize(n.join(t,m));for(let u of ow(n,n.join(t,c)))a.set(u,p);}let l=new Set;for(let c of new Set(o.values())){let m=n.normalize(n.join(t,c));l.add(m);for(let p of ow(n,m))l.add(n.normalize(p));}return (c,m,p)=>Zd({content:c,projectRoot:t,sourceFile:m,destinationFile:p,translatePath:s(u=>a.get(u)??u,"translatePath"),pathExists:s(u=>{let f=n.normalize(u);return a.has(u)||a.has(f)||existsSync(u)||l.has(f)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:s(u=>{try{return statSync(u).isDirectory()}catch{return false}},"pathIsDirectory")}).content}var ge=d(()=>{Rt();NO();w_();zn();s(ow,"pathVariants");s(H,"createImportReferenceNormalizer");});async function Xe(e,t,r){let n=join(e,t),i={...await C2(n),...r};await O(dirname(n)),await L(n,JSON.stringify({mcpServers:i},null,2));}async function C2(e){let t=await k(e);if(t===null)return {};let r;try{r=JSON.parse(t);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let n=r.mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n))!a||typeof a!="object"||Array.isArray(a)||(o[i]=a);return o}var hn=d(()=>{b();s(Xe,"writeMcpWithMerge");s(C2,"readExistingServers");});function as(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function Or(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function qn(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function wr(e){return !e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}var Qt=d(()=>{s(as,"toGlobsArray");s(Or,"toToolsArray");s(qn,"toStringArray");s(wr,"toStringRecord");});function w2(e,t){return t.some(r=>e.endsWith(r))}async function Se(e){let r=(await U(e.srcDir)).filter(o=>w2(o,e.extensions)),n=[];for(let o of r){let i=await k(o);if(!i)continue;let a=relative(e.srcDir,o).replace(/\\/g,"/"),l=await e.mapEntry({srcPath:o,relativePath:a,content:i,normalizeTo:s((c,m=i)=>e.normalize(m,o,c),"normalizeTo")});l&&(await O(dirname(l.destPath)),await L(l.destPath,l.content),n.push({fromTool:e.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var qt=d(()=>{b();s(w2,"matchesExtension");s(Se,"importFileDirectory");});function iw(e){return typeof e=="string"?e:void 0}function b2(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function A_(e,t){return t?t(e):e}function A2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=A_(n,e.frontmatterRemap),a=b2({root:false,description:iw(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await z(r,a,o)}}}function x2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=A_(n,e.frontmatterRemap),a=await Ce(r,{hasDescription:true,description:iw(i.description),hasAllowedTools:true,allowedTools:qn(i["allowed-tools"])},o);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:a}}}function T2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=A_(n,e.frontmatterRemap);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await ve(r,i,o)}}}function aw(e){if(e.map)return e.map;switch(e.preset){case "rule":return A2(e);case "command":return x2(e);case "agent":return T2(e);default:throw new Error(`ImportFeatureSpec for ${e.feature} (mode: ${e.mode}) needs a \`preset\` or \`map\``)}}var lw=d(()=>{B();de();Qt();s(iw,"pickString");s(b2,"pruneUndefined");s(A_,"applyRemap");s(A2,"ruleMapper");s(x2,"commandMapper");s(T2,"agentMapper");s(aw,"resolveMapper");});function x_(e,t){return e?e[t]??[]:[]}var cw,mw=d(()=>{cw=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(x_,"resolveScopedSources");});async function v2(e,t,r,n,o){if(!e.canonicalRootFilename)throw new Error(`singleFile spec for ${e.feature} must set canonicalRootFilename`);let i=join(r,e.canonicalDir);for(let a of t){let l=join(r,a),c=await k(l);if(c===null)continue;await O(i);let m=join(i,e.canonicalRootFilename),p=s(R=>o(c,l,R),"normalizeTo");if(e.map){let R;try{R=await e.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(I){let w=I instanceof Error?I.message:String(I);process.stderr.write(`\u26A0 skipping ${l}: ${w}
61
+ `||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function sw(e,t,r){let n=t>0?e[t-1]:"",o=r<e.length?e[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:ow(e,t,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&e[t-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function iw(e,t,r,n,o){if(t<0||r>e.length)return false;let{candidate:i}=uc(n),a=i.replace(dc,""),l=Ke(a),c=t+a.length,m=e[t-1],p=e[r];return ow(e,t,c)||m==="`"&&p==="`"?true:m==="'"&&p==="'"||m==='"'&&p==='"'?false:m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!fn(l)&&b2(e,t,n)):m==="@"?true:m==="("&&e[t-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?fn(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var aw=d(()=>{Rt();Ii();s(b2,"markdownBracketLabelDuplicatesDestination");s(ow,"isMarkdownReferenceDefinitionDestination");s(sw,"getTokenContext");s(iw,"shouldRewritePathToken");});function rf(e){let t=new Set,r=tf(e.content);return {content:e.content.replace(KO,(o,i,a)=>{if(r.some(([we,et])=>i>=we&&i<et)||!iw(a,i,i+o.length,o,e.rewriteBarePathTokens===true)||ew(a,i,o)||WO(a,i,i+o.length))return o;let{candidate:l,suffix:c}=uc(o);if(!l)return o;let m=dc.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=sw(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&dn.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:_}=qO({candidate:p,rawToken:l,projectRoot:e.projectRoot,sourceFile:e.sourceFile,destinationFile:e.destinationFile,translatePath:e.translatePath,pathExists:e.pathExists}),S=h;if(!_||!g)return g&&t.add(g),o;let R=Ke(p),I=p.endsWith("/")||e.pathIsDirectory?.(g)===true;if(I&&!R.includes("/")&&!R.includes("\\"))return o;if(S===null){let we=Ke(l);if(we.startsWith("agentsmesh/")&&(we=`.${we}`),we.startsWith(".agentsmesh/")||we.includes("/.agentsmesh/")){let et=ce(e.projectRoot),it=q(e.projectRoot,e.projectRoot),_t=we.replace(/^\.\//,"");S=q(e.projectRoot,et.join(it,_t));}}let w=ce(e.projectRoot);if(e.scope==="global"){let we=Ke(l),et=we.startsWith(".agentsmesh/")||we.includes("/.agentsmesh/"),it=fn(we)||rw(we),_t=S!==null&&gn(e.projectRoot,S),di=gn(e.projectRoot,g);if(S===g&&!di&&!_t&&!et){let Wm=Ke(w.relative(e.projectRoot,q(e.projectRoot,e.sourceFile))).split("/").filter(Boolean)[0]??"",zm=(S!==null?Ke(w.relative(e.projectRoot,S)):"").split("/").filter(Boolean)[0]??"";if(Wm.length>0&&Wm===zm)return o}if(!it&&!et&&!_t&&!di)return o}let D=q(e.projectRoot,e.destinationFile),P=q(e.projectRoot,g),K=Ke(w.relative(e.projectRoot,D)),G=Ke(w.relative(e.projectRoot,P)),Y=K.split("/").filter(Boolean)[0]??"",ee=G.split("/").filter(Boolean)[0]??"",Te=!Ke(p).startsWith(".agentsmesh/")&&!I&&Y.length>0&&Y===ee&&Y.startsWith(".")&&Y!==".agentsmesh"||f.role==="markdown-link-dest"||tw(a,i,p),At=JO(e.projectRoot,e.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:e.explicitCurrentDirLinks===true||Te,scope:e.scope??"project",pathIsDirectory:e.pathIsDirectory,logicalMeshSourceAbsolute:I?null:S,forceRelative:Te,tokenContext:f,originalToken:p});return At?`${At}${u}${c}`:o}),missing:[...t]}}var A_=d(()=>{Rt();Ii();YO();ZO();nw();aw();s(rf,"rewriteFileLinks");});function cw(e,t){let r=[e.normalize(t)];if(!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n){let i=e.normalize(o);r.includes(i)||r.push(i);}}catch{}return r}async function H(e,t,r="project"){let n=ce(t),o=new Map,i=Array.from(new Set([e,...Ue]));for(let c of i){let m=await GO(c,t,r);for(let[p,u]of m.entries())o.set(p,u);}let a=new Map;for(let[c,m]of o.entries()){let p=n.normalize(n.join(t,m));for(let u of cw(n,n.join(t,c)))a.set(u,p);}let l=new Set;for(let c of new Set(o.values())){let m=n.normalize(n.join(t,c));l.add(m);for(let p of cw(n,m))l.add(n.normalize(p));}return (c,m,p)=>rf({content:c,projectRoot:t,sourceFile:m,destinationFile:p,translatePath:s(u=>a.get(u)??u,"translatePath"),pathExists:s(u=>{let f=n.normalize(u);return a.has(u)||a.has(f)||existsSync(u)||l.has(f)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:s(u=>{try{return statSync(u).isDirectory()}catch{return false}},"pathIsDirectory")}).content}var ge=d(()=>{Rt();$O();A_();Vn();s(cw,"pathVariants");s(H,"createImportReferenceNormalizer");});async function Xe(e,t,r){let n=join(e,t),i={...await P2(n),...r};await O(dirname(n)),await L(n,JSON.stringify({mcpServers:i},null,2));}async function P2(e){let t=await k(e);if(t===null)return {};let r;try{r=JSON.parse(t);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let n=r.mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n))!a||typeof a!="object"||Array.isArray(a)||(o[i]=a);return o}var hn=d(()=>{b();s(Xe,"writeMcpWithMerge");s(P2,"readExistingServers");});function as(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function wr(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Zn(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Ut(e){return !e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}var qt=d(()=>{s(as,"toGlobsArray");s(wr,"toToolsArray");s(Zn,"toStringArray");s(Ut,"toStringRecord");});function v2(e,t){return t.some(r=>e.endsWith(r))}async function Se(e){let r=(await U(e.srcDir)).filter(o=>v2(o,e.extensions)),n=[];for(let o of r){let i=await k(o);if(!i)continue;let a=relative(e.srcDir,o).replace(/\\/g,"/"),l=await e.mapEntry({srcPath:o,relativePath:a,content:i,normalizeTo:s((c,m=i)=>e.normalize(m,o,c),"normalizeTo")});l&&(await O(dirname(l.destPath)),await L(l.destPath,l.content),n.push({fromTool:e.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var Zt=d(()=>{b();s(v2,"matchesExtension");s(Se,"importFileDirectory");});function pw(e){return typeof e=="string"?e:void 0}function F2(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function T_(e,t){return t?t(e):e}function M2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=T_(n,e.frontmatterRemap),a=F2({root:false,description:pw(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await z(r,a,o)}}}function G2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=T_(n,e.frontmatterRemap),a=await Ce(r,{hasDescription:true,description:pw(i.description),hasAllowedTools:true,allowedTools:Zn(i["allowed-tools"])},o);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:a}}}function $2(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=T_(n,e.frontmatterRemap);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await ve(r,i,o)}}}function uw(e){if(e.map)return e.map;switch(e.preset){case "rule":return M2(e);case "command":return G2(e);case "agent":return $2(e);default:throw new Error(`ImportFeatureSpec for ${e.feature} (mode: ${e.mode}) needs a \`preset\` or \`map\``)}}var dw=d(()=>{B();de();qt();s(pw,"pickString");s(F2,"pruneUndefined");s(T_,"applyRemap");s(M2,"ruleMapper");s(G2,"commandMapper");s($2,"agentMapper");s(uw,"resolveMapper");});function P_(e,t){return e?e[t]??[]:[]}var fw,gw=d(()=>{fw=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(P_,"resolveScopedSources");});async function K2(e,t,r,n,o){if(!e.canonicalRootFilename)throw new Error(`singleFile spec for ${e.feature} must set canonicalRootFilename`);let i=join(r,e.canonicalDir);for(let a of t){let l=join(r,a),c=await k(l);if(c===null)continue;await O(i);let m=join(i,e.canonicalRootFilename),p=s(R=>o(c,l,R),"normalizeTo");if(e.map){let R;try{R=await e.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(I){let w=I instanceof Error?I.message:String(I);process.stderr.write(`\u26A0 skipping ${l}: ${w}
62
62
  `);continue}if(!R)continue;return await L(R.destPath,R.content),[{fromTool:n,fromPath:l,toPath:R.toPath,feature:e.feature}]}let u=ln(p(m),l);if(!u.ok){process.stderr.write(`\u26A0 skipping ${l}: ${u.error.message}
63
- `);continue}let{frontmatter:f,body:g}=u.value,h=e.frontmatterRemap?e.frontmatterRemap(f):f,_=e.markAsRoot?{...h,root:true}:h,S=await z(m,_,g);return await L(m,S),[{fromTool:n,fromPath:l,toPath:`${e.canonicalDir}/${e.canonicalRootFilename}`,feature:e.feature}]}return []}async function F2(e,t,r,n,o){let i=aw(e),a=join(r,e.canonicalDir),l=[];for(let c of t){let m=join(r,c),p=await Se({srcDir:m,destDir:a,extensions:[...e.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(Pd(basename(u)))return null;let _;try{_=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(S=>h(S),"normalizeTo")});}catch(S){let R=S instanceof Error?S.message:String(S);return process.stderr.write(`\u26A0 skipping ${u}: ${R}
64
- `),null}return _?{destPath:_.destPath,toPath:_.toPath,feature:e.feature,content:_.content}:null},"mapEntry")});l.push(...p);}return l}function uw(e){let t=e.canonicalFilename;return t.includes("/")||t.includes("\\")?t:posix.join(e.canonicalDir,t)}async function M2(e,t,r,n){if(!e.canonicalFilename)throw new Error(`flatFile spec for ${e.feature} must set canonicalFilename`);let o=uw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=join(r,o);return await O(dirname(c)),await L(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}]}return []}function G2(e,t="mcpServers"){let r;try{r=JSON.parse(e);}catch{return {}}if(!r||typeof r!="object")return {};let n=r[t];if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a,c=typeof l.description=="string"?l.description:void 0;if(typeof l.command=="string"){o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:qn(l.args),env:wr(l.env),description:c};continue}typeof l.url=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"http",url:l.url,headers:wr(l.headers),env:wr(l.env),description:c});}return o}async function $2(e,t,r,n){if(!e.canonicalFilename)throw new Error(`mcpJson spec for ${e.feature} must set canonicalFilename`);let o=uw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=G2(l,e.mcpServersKey);return Object.keys(c).length===0?[]:(await Xe(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}])}return []}function pw(e,t,r,n,o){switch(e.mode){case "singleFile":return v2(e,t,r,n,o);case "directory":return F2(e,t,r,n,o);case "flatFile":return M2(e,t,r,n);case "mcpJson":return $2(e,t,r,n)}}async function j2(e,t,r,n,o){let i=x_(e.source,t),a=x_(e.fallbacks,t);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await pw(e,i,r,n,o);if(l.length>0)return l}return a.length>0?pw(e,a,r,n,o):[]}function U2(e,t){let r=e[t];return r?Array.isArray(r)?r:[r]:[]}async function Q(e,t,r,n){let o=e.importer;if(!o)return [];let i=n?.normalize??await H(e.id,t,r),a=[];for(let l of cw)for(let c of U2(o,l))a.push(...await j2(c,r,t,e.id,i));return a}var Ae=d(()=>{ge();b();hn();B();Qt();de();qt();lw();ts();mw();s(v2,"runSingleFile");s(F2,"runDirectory");s(uw,"resolveCanonicalFilePath");s(M2,"runFlatFile");s(G2,"parseMcpJson");s($2,"runMcpJson");s(pw,"dispatchSpec");s(j2,"runSpec");s(U2,"specsForFeature");s(Q,"runDescriptorImport");});async function dw(e,t={}){let r=t.scope??"project",n=[],o=await H(Qn,e,r);return n.push(...await Q(ef,e,r,{normalize:o})),await ne(e,r==="global"?Er:St,Qn,n,o),n}var fw=d(()=>{ge();oe();Ae();cc();T_();s(dw,"importFromAider");});function B2(e,t){return hw(t).some(n=>K2(e,n))}function gw(e,t){return e.filter(r=>B2(r,t))}function hw(e){let t=e.match(/^(.+)\{([^}]+)\}(.*)$/);if(!t)return [e];let[,r,n,o]=t;if(!n)return [e];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of hw(r+l+o))a.push(c);return a}function K2(e,t){return W2(t).test(e)}function W2(e){let t=[],r=0;for(;r<e.length;){if(e.startsWith("**",r)){let i=e.slice(r+2);if(i.length===0&&t.length===0)t.push(".*");else if(t.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(e[r]==="*"){t.push("[^/]*"),r+=1;continue}if(e[r]==="?"){t.push("[^/]"),r+=1;continue}if(e[r]==="{"){t.push("(?:"),r+=1;continue}if(e[r]==="}"){t.push(")"),r+=1;continue}if(e[r]===","){t.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(e[r])?t.push("\\"+e[r]):t.push(e[r]),r+=1;}let n="^"+t.join("")+"$";return new RegExp(n)}var yw=d(()=>{s(B2,"globMatch");s(gw,"globFilter");s(hw,"expandBraces");s(K2,"matchOne");s(W2,"globToRegex");});function X(e,t,r,n={}){let o=[],{rules:i}=e;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(t,i[0].source),message:"Rules exist but no root rule (_root.md or root: true). Add a root rule."}),n.checkGlobMatches===false)return o;for(let l of i){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(gw(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(t,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ee=d(()=>{yw();s(X,"validateRules");});function Sw(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qn}))}var Rw=d(()=>{Ee();cc();s(Sw,"lintRules");});function F(e,t,r){return {level:"warning",file:e,target:t,message:r}}function H2(e){return e.length===0?"":e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Li(e,t,r,n){let o=n?.unsupportedBy??t,i=H2(r);return F(".agentsmesh/hooks.yaml",t,`${e} is not supported by ${o}; only ${i} are projected.`)}var Re=d(()=>{s(F,"createWarning");s(H2,"formatOxfordComma");s(Li,"createUnsupportedHookWarning");});function kw(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Iw(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function Lw(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var Cw=d(()=>{Re();s(kw,"lintHooks");s(Iw,"lintPermissions");s(Lw,"lintMcp");});function C(e,t){return ce(e).relative(e,t).replace(/\\/g,"/")}async function E(e,t){return U(ce(e).join(e,t)).catch(()=>[])}function Ow(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}function Q2(e,t,r,n){let o=posix.dirname(t),i=posix.dirname(r);for(;o!==n&&o!==".";)Ow(e,o,i),o=posix.dirname(o),i=posix.dirname(i);}function N(e,t,r,n){e.set(t,`${r}/${basename(t,n)}.md`);}function $(e,t,r){if(!t.startsWith(`${r}/`))return;let n=t.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");e.set(t,`${Ew}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(sc)?sc:o.startsWith(sp)?sp:null;if(l&&a==="SKILL.md"){e.set(t,`${Y2}/${o.slice(l.length)}.md`);return}let c=o.startsWith(ic)?ic:o.startsWith(ip)?ip:null;if(c&&a==="SKILL.md"){e.set(t,`${X2}/${o.slice(c.length)}.md`);return}let m=`${Ew}/${o}`;a==="SKILL.md"&&Ow(e,`${r}/${o}`,m);let p=`${m}/${a}`;e.set(t,p),a!=="SKILL.md"&&Q2(e,t,p,`${r}/${o}`);}function q2(e){return e.split("/").filter(Boolean)[0]??""}async function Z2(){if(P_!==void 0)return P_;let{BUILTIN_TARGETS:e}=await Promise.resolve().then(()=>(xe(),ww)),t=new Set;for(let r of e)for(let n of [r.project.rootInstructionPath,r.project.skillDir,...r.project.managedOutputs?.dirs??[],...r.project.managedOutputs?.files??[],...r.detectionPaths,r.globalSupport?.layout.rootInstructionPath,r.globalSupport?.layout.skillDir,...r.globalSupport?.layout.managedOutputs?.dirs??[],...r.globalSupport?.layout.managedOutputs?.files??[],...r.globalSupport?.detectionPaths??[]])if(n!==void 0){let o=q2(n);o.startsWith(".")&&t.add(o);}return P_=t,t}function N_(e){return e.split("/").some(t=>t.startsWith("."))}async function eX(e){let t=[],r=await Z2(),n=ce(e);async function o(i){let a=n.join(e,i),l=await readdir(a,{withFileTypes:true}).catch(()=>[]);for(let c of l){let m=i?`${i}/${c.name}`:c.name;if(c.isDirectory()){if(r.has(c.name)||N_(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(e,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||N_(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&t.push(n.join(e,m));}}return s(o,"walk"),await o(""),t}async function tf(e,t){let r=await eX(t);for(let n of r){let o=C(t,n),i=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!i&&!a)continue;let l=posix.dirname(o);if(N_(l))continue;let c=l.replace(/\//g,"-");e.set(o,`${J2}/${c}.md`);}}var J2,Y2,X2,Ew,P_,Ie=d(()=>{Rt();b();be();_e();J2=".agentsmesh/rules",Y2=".agentsmesh/commands",X2=".agentsmesh/agents",Ew=".agentsmesh/skills";s(C,"rel");s(E,"listFiles");s(Ow,"addDirectoryMapping");s(Q2,"addAncestorMappings");s(N,"addSimpleFileMapping");s($,"addSkillLikeMapping");s(q2,"firstPathSegment");s(Z2,"targetRootSegments");s(N_,"hasHiddenSegment");s(eX,"listScopedAgentsFiles");s(tf,"addScopedAgentsMappings");});var A,ae,ue,Le=d(()=>{A=".agentsmesh/rules",ae=".agentsmesh/commands",ue=".agentsmesh/agents";});async function v_(e,t,r="project"){if(r==="global"){e.set(is,`${A}/_root.md`);for(let n of await E(t,Er))$(e,C(t,n),Er);e.set(Ca,".agentsmesh/ignore");return}e.set(Cr,`${A}/_root.md`);for(let n of await E(t,St))$(e,C(t,n),St);e.set(ss,".agentsmesh/ignore");}var bw=d(()=>{Ie();cc();Le();s(v_,"buildAiderImportPaths");});var Ea,br,Ci,Zn,ls,dc,Oa,Aw,xw,F_,fc=d(()=>{Ea="amazon-q",br=".amazonq/rules",Ci=".amazonq/mcp.json",Zn=".amazonq/cli-agents",ls=".aws/amazonq/rules",dc=".aws/amazonq/mcp.json",Oa=".aws/amazonq/cli-agents",Aw=".agentsmesh/rules",xw=".agentsmesh/mcp.json",F_=".agentsmesh/agents";});async function M_(e,t,r="project"){let n=r==="global"?ls:br;for(let o of await E(t,n)){let i=C(t,o);N(e,i,A,".md");}}var Tw=d(()=>{Ie();fc();Le();s(M_,"buildAmazonQImportPaths");});var Ar,kt,Zt,G_,cs,xr,ms,Pw,wa=d(()=>{Ar="AGENTS.md",kt=".agents/skills",Zt=".amp/settings.json",G_=".config/amp",cs=`${G_}/AGENTS.md`,xr=`${G_}/skills`,ms=`${G_}/settings.json`,Pw=".agentsmesh/rules";});async function $_(e,t,r="project"){if(r==="global"){e.set(cs,`${A}/_root.md`);for(let n of await E(t,xr))$(e,C(t,n),xr);e.set(ms,".agentsmesh/mcp.json");return}e.set(Ar,`${A}/_root.md`);for(let n of await E(t,kt))$(e,C(t,n),kt);e.set(Zt,".agentsmesh/mcp.json");}var Dw=d(()=>{Ie();wa();Le();s($_,"buildAmpImportPaths");});var ba,gp,yn,Tr,hp,_n,eo,yp,_p,j_,to,ro,Sp,gc,U_,Aa,rf,Nw,xa=d(()=>{ba="antigravity",gp=".agents",yn=`${gp}/rules`,Tr=`${yn}/general.md`,hp=`${yn}/_root.md`,_n=`${gp}/skills`,eo=`${gp}/workflows`,yp=`${gp}/antigravity/mcp_config.json`,_p=`${gp}/hooks.json`,j_=".gemini/config/hooks.json",to=".gemini/antigravity/GEMINI.md",ro=".gemini/antigravity/skills",Sp=".gemini/antigravity/workflows",gc=".gemini/antigravity/mcp_config.json",U_=".agentsmesh/rules/_root.md",Aa=".agentsmesh/rules",rf=".agentsmesh/commands",Nw=".agentsmesh/mcp.json";});async function B_(e,t,r="project"){if(r==="global"){e.set(to,`${A}/_root.md`);for(let n of await E(t,ro))$(e,C(t,n),ro);e.set(gc,".agentsmesh/mcp.json");return}e.set(Tr,`${A}/_root.md`),e.set(hp,`${A}/_root.md`);for(let n of await E(t,yn)){let o=C(t,n);o===Tr||o===hp||N(e,o,A,".md");}for(let n of await E(t,eo))N(e,C(t,n),ae,".md");for(let n of await E(t,_n))$(e,C(t,n),_n);}var vw=d(()=>{Ie();xa();Le();s(B_,"buildAntigravityImportPaths");});var ct,Rp,er,Pr,ps,tr,no,oo,kp,us,ds,Ta,so,fs,K_,W_,H_,z_,V_,Pa=d(()=>{ct="augment-code",Rp=".augment",er=`${Rp}/rules`,Pr=`${Rp}/commands`,ps=`${Rp}/agents`,tr=`${Rp}/skills`,no=`${Rp}/settings.json`,oo=".augmentignore",kp=".augment",us=`${kp}/rules`,ds=`${kp}/commands`,Ta=`${kp}/agents`,so=`${kp}/skills`,fs=`${kp}/settings.json`,K_=".agentsmesh/rules",W_=".agentsmesh/agents",H_=".agentsmesh/mcp.json",z_=".agentsmesh/hooks.yaml",V_=".agentsmesh/ignore";});async function J_(e,t,r="project"){if(r==="global"){for(let n of await E(t,us))N(e,C(t,n),A,".md");for(let n of await E(t,ds))N(e,C(t,n),ae,".md");for(let n of await E(t,Ta))N(e,C(t,n),ue,".md");for(let n of await E(t,so))$(e,C(t,n),so);e.set(fs,".agentsmesh/mcp.json");return}for(let n of await E(t,er))N(e,C(t,n),A,".md");for(let n of await E(t,Pr))N(e,C(t,n),ae,".md");for(let n of await E(t,ps))N(e,C(t,n),ue,".md");for(let n of await E(t,tr))$(e,C(t,n),tr);e.set(no,".agentsmesh/mcp.json"),e.set(oo,".agentsmesh/ignore");}var Fw=d(()=>{Ie();Pa();Le();s(J_,"buildAugmentCodeImportPaths");});var Mw,gs,Ei,Ip,Lp,Cp,Ep,Op,hs,Y_,wp,hc,bp,Ap,nf,of,X_,xp,Q_,Da,Gw,ys=d(()=>{Mw="claude-code",gs="CLAUDE.md",Ei=".claude/CLAUDE.md",Ip=".claude/rules",Lp=".claude/commands",Cp=".claude/agents",Ep=".claude/skills",Op=".claude/settings.json",hs=".claude/hooks.json",Y_=".claude/output-styles",wp=".claudeignore",hc=".mcp.json",bp=".claude.json",Ap=".agentsmesh/rules",nf=".agentsmesh/commands",of=".agentsmesh/agents",X_=".agentsmesh/skills",xp=".agentsmesh/mcp.json",Q_=".agentsmesh/permissions.yaml",Da=".agentsmesh/hooks.yaml",Gw=".agentsmesh/ignore";});async function q_(e,t,r="project"){if(e.set(".claude/CLAUDE.md",`${A}/_root.md`),e.set(hs,Da),r==="project"&&e.set("CLAUDE.md",`${A}/_root.md`),r==="global")for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");for(let n of await E(t,".claude/rules"))N(e,C(t,n),A,".md");for(let n of await E(t,".claude/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".claude/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".claude/skills"))$(e,C(t,n),".claude/skills");}var $w=d(()=>{Ie();ys();Le();s(q_,"buildClaudeCodeImportPaths");});var Oi,_s,Na,Ss,jw,Pt,rr,Rs,wi,va,Fa,Ma,Ga,Z_,bi,sf,eS,tS,Tp,Uw,Dr=d(()=>{Oi="cline",_s=".clinerules",Na=".clineignore",Ss=".cline/cline_mcp_settings.json",jw=".cline/mcp_settings.json",Pt=".cline/skills",rr=".cline/agents",Rs=".clinerules/workflows",wi="AGENTS.md",va=".clinerules/hooks",Fa="Documents/Cline/Rules",Ma="Documents/Cline/Workflows",Ga="Documents/Cline/Hooks",Z_=".agentsmesh/hooks.yaml",bi=".agentsmesh/rules",sf=".agentsmesh/commands",eS=".agentsmesh/ignore",tS=".agentsmesh/mcp.json",Tp=".agentsmesh/agents",Uw=".agentsmesh/skills";});async function rS(e,t,r="project"){if(r==="global"){for(let n of await E(t,Fa))N(e,C(t,n),A,".md");for(let n of await E(t,Ma))N(e,C(t,n),ae,".md");for(let n of await E(t,Pt))$(e,C(t,n),Pt);for(let n of await E(t,rr))N(e,C(t,n),ue,".md");e.set(Ss,".agentsmesh/mcp.json");return}e.set(".clinerules/_root.md",`${A}/_root.md`);for(let n of await E(t,".clinerules")){let o=C(t,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||N(e,o,A,".md");}for(let n of await E(t,".clinerules/workflows"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cline/skills"))$(e,C(t,n),".cline/skills");for(let n of await E(t,rr))N(e,C(t,n),ue,".md");}var Bw=d(()=>{Ie();Dr();Le();s(rS,"buildClineImportPaths");});async function nS(e,t,r="project"){if(r==="global"?(e.set(".codex/AGENTS.md",`${A}/_root.md`),e.set(".codex/AGENTS.override.md",`${A}/_root.md`)):(e.set("AGENTS.md",`${A}/_root.md`),e.set("codex.md",`${A}/_root.md`),await tf(e,t)),r==="project")for(let n of await E(t,".codex/instructions"))N(e,C(t,n),A,".md");for(let n of await E(t,".codex/rules")){let o=C(t,n);o.endsWith(".rules")?N(e,o,A,".rules"):o.endsWith(".md")&&N(e,o,A,".md");}for(let n of await E(t,".codex/agents"))N(e,C(t,n),ue,".toml");for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");}var Kw=d(()=>{Ie();Le();s(nS,"buildCodexCliImportPaths");});var yc,Sn,io,oS,af,ks,sS,nr,_c,Pp,lf,cf,iS,ao=d(()=>{yc="continue",Sn=".continue/rules",io=".continue/prompts",oS=".continue/mcpServers",af=`${oS}/agentsmesh.json`,ks=`${Sn}/general.md`,sS=`${Sn}/_root.md`,nr=".continue/skills",_c=".continue/AGENTS.md",Pp=".continue/config.yaml",lf=".agentsmesh/rules",cf=".agentsmesh/commands",iS=".agentsmesh/mcp.json";});async function aS(e,t,r="project"){e.set(ks,`${A}/_root.md`),e.set(sS,`${A}/_root.md`);for(let n of await E(t,".continue/rules")){let o=C(t,n);o===ks||o===sS||N(e,o,A,".md");}for(let n of await E(t,".continue/prompts"))e.set(C(t,n),`${ae}/${basename(n,".md")}.md`);for(let n of await E(t,".continue/skills"))$(e,C(t,n),".continue/skills");if(r==="global")for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");}var Ww=d(()=>{Ie();ao();Le();s(aS,"buildContinueImportPaths");});function nX(e,t){if(t.endsWith(".instructions.md")){e.set(t,`${A}/${basename(t,".instructions.md")}.md`);return}N(e,t,A,".md");}async function lS(e,t){e.set(".github/copilot-instructions.md",`${A}/_root.md`);for(let r of await E(t,".github/copilot"))e.set(C(t,r),`${A}/${basename(r,".instructions.md")}.md`);for(let r of await E(t,".github/instructions"))nX(e,C(t,r));for(let r of await E(t,".github/prompts"))e.set(C(t,r),`${ae}/${basename(r,".prompt.md")}.md`);for(let r of await E(t,".github/agents"))e.set(C(t,r),`${ue}/${basename(r,".agent.md")}.md`);for(let r of await E(t,".github/skills"))$(e,C(t,r),".github/skills");}var Hw=d(()=>{Ie();Le();s(nX,"addCopilotInstructionMapping");s(lS,"buildCopilotImportPaths");});var Nr,vr,mt,or,Is,zw,pf,sr,$a,uf,df,ff,Sc=d(()=>{Nr="crush",vr="CRUSH.md",mt=".crush/skills",or="crush.json",Is=".crushignore",zw=".config/crush",pf=`${zw}/crush.json`,sr=".config/crush/skills",$a=`${zw}/CRUSH.md`,uf=".agentsmesh/rules",df=".agentsmesh/ignore",ff=".agentsmesh/mcp.json";});async function cS(e,t,r="project"){if(r==="global"){for(let n of await E(t,sr))$(e,C(t,n),sr);return}e.set(vr,`${uf}/_root.md`),e.set(or,ff),e.set(Is,df);for(let n of await E(t,mt))$(e,C(t,n),mt);}var Vw=d(()=>{Ie();Sc();s(cS,"buildCrushImportPaths");});var Jw,Ai,Yw,Fr,Ls,Mr,Gr,It,ir,lo,gf,Rn,mS,oX,Rc,kn,co,xi,Ti,Xw,kc,pS,Dp,uS,Qe=d(()=>{Jw="cursor",Ai="AGENTS.md",Yw=".cursorrules",Fr=".cursor/rules",Ls=`${Fr}/general.mdc`,Mr=".cursor/commands",Gr=".cursor/agents",It=".cursor/skills",ir=".cursor/mcp.json",lo=".cursor/hooks.json",gf=".cursor/settings.json",Rn=".cursorignore",mS=".cursorindexingignore",oX=".agentsmesh-exports/cursor",Rc=`${oX}/user-rules.md`,kn=".cursor/AGENTS.md",co=".agentsmesh/rules",xi=".agentsmesh/commands",Ti=".agentsmesh/agents",Xw=".agentsmesh/skills",kc=".agentsmesh/mcp.json",pS=".agentsmesh/permissions.yaml",Dp=".agentsmesh/hooks.yaml",uS=".agentsmesh/ignore";});async function dS(e,t,r="project"){if(r==="global"){e.set(ir,".agentsmesh/mcp.json"),e.set(".cursor/AGENTS.md",`${A}/_root.md`);for(let n of await E(t,".cursor/rules"))N(e,C(t,n),A,".mdc");for(let n of await E(t,".cursor/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cursor/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".cursor/skills"))$(e,C(t,n),".cursor/skills");return}e.set("AGENTS.md",`${A}/_root.md`);for(let n of await E(t,".cursor/rules"))N(e,C(t,n),A,".mdc");for(let n of await E(t,".cursor/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cursor/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".cursor/skills"))$(e,C(t,n),".cursor/skills");}var Qw=d(()=>{Ie();Qe();Le();s(dS,"buildCursorImportPaths");});var mo,$r,Lt,Cs,hf,Es,In,ja,qw,Zw,Ic=d(()=>{mo="deepagents-cli",$r=".deepagents/AGENTS.md",Lt=".deepagents/skills",Cs=".mcp.json",hf=".deepagents/hooks.json",Es=".deepagents/AGENTS.md",In=".deepagents/skills",ja=".deepagents/.mcp.json",qw=".deepagents/hooks.json",Zw=".agentsmesh/rules";});async function fS(e,t,r="project"){if(r==="global"){e.set(Es,`${A}/_root.md`);for(let n of await E(t,In))$(e,C(t,n),In);e.set(ja,".agentsmesh/mcp.json");return}e.set($r,`${A}/_root.md`);for(let n of await E(t,Lt))$(e,C(t,n),Lt);e.set(Cs,".agentsmesh/mcp.json");}var eb=d(()=>{Ie();Ic();Le();s(fS,"buildDeepagentsCliImportPaths");});var jr,Ur,Ut,po,uo,Os,fo,Ua,Pi,yf,tb,rb,Ba=d(()=>{jr="factory-droid",Ur="AGENTS.md",Ut=".factory/skills",po=".factory/droids",uo=".factory/mcp.json",Os=".factory/AGENTS.md",fo=".factory/skills",Ua=".factory/droids",Pi=".factory/mcp.json",yf=".factory/hooks.json",tb=".factory/hooks.json",rb=".agentsmesh/rules";});async function gS(e,t,r="project"){if(r==="global"){e.set(Os,`${A}/_root.md`);for(let n of await E(t,Ua))N(e,C(t,n),ue,".md");for(let n of await E(t,fo))$(e,C(t,n),fo);e.set(Pi,".agentsmesh/mcp.json");return}e.set(Ur,`${A}/_root.md`);for(let n of await E(t,po))N(e,C(t,n),ue,".md");for(let n of await E(t,Ut))$(e,C(t,n),Ut);e.set(uo,".agentsmesh/mcp.json");}var nb=d(()=>{Ie();Ba();Le();s(gS,"buildFactoryDroidImportPaths");});async function hS(e,t){for(let r of await E(t,".gemini/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".gemini/commands")){let n=C(t,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),i=".gemini/commands/",c=(o.startsWith(i)?o.slice(i.length):o).split("/").filter(Boolean).join(":");e.set(n,`${ae}/${c}.md`);}for(let r of await E(t,".gemini/agents"))N(e,C(t,r),ue,".md");for(let r of await E(t,".gemini/skills"))$(e,C(t,r),".gemini/skills");}var ob=d(()=>{Ie();Le();s(hS,"buildGeminiCliImportPaths");});var go,ar,Bt,ho,yS,yo,Di,Ka,Br,sb,ib,Wa=d(()=>{go="goose",ar=".goosehints",Bt=".agents/skills",ho=".gooseignore",yS=".config/goose",yo=`${yS}/.goosehints`,Di=`${yS}/.gooseignore`,Ka=`${yS}/config.yaml`,Br=".agents/skills",sb=".agentsmesh/rules",ib=".agentsmesh/ignore";});async function _S(e,t,r="project"){if(r==="global"){e.set(yo,`${A}/_root.md`);for(let n of await E(t,Br))$(e,C(t,n),Br);e.set(Di,".agentsmesh/ignore");return}e.set(ar,`${A}/_root.md`);for(let n of await E(t,Bt))$(e,C(t,n),Bt);e.set(ho,".agentsmesh/ignore");}var ab=d(()=>{Ie();Wa();Le();s(_S,"buildGooseImportPaths");});var ws,Ln,lb,Lc=d(()=>{ws="jules",Ln="AGENTS.md",lb=".agentsmesh/rules";});async function SS(e,t,r="project"){r!=="global"&&e.set(Ln,`${A}/_root.md`);}var cb=d(()=>{Lc();Le();s(SS,"buildJulesImportPaths");});var Ha,Ni,_f,mb,_o,pb,sX,Np,za,vp,Cc,Ec,Fp,Mp,Gp,$p,jp,iX,Sf,Va,ub,Rf,RS,kf,db,fb,gb,hb,Oc=d(()=>{Ha="junie",Ni=".junie",_f=`${Ni}/guidelines.md`,mb=`${Ni}/ci-guidelines.md`,_o=`${Ni}/AGENTS.md`,pb="AGENTS.md",sX=`${Ni}/mcp`,Np=`${sX}/mcp.json`,za=`${Ni}/skills`,vp=`${Ni}/rules`,Cc=`${Ni}/commands`,Ec=`${Ni}/agents`,Fp=".aiignore",Mp=".junie",Gp=`${Mp}/skills`,$p=`${Mp}/agents`,jp=`${Mp}/commands`,iX=`${Mp}/mcp`,Sf=`${iX}/mcp.json`,Va=`${Mp}/AGENTS.md`,ub=".agents/skills",Rf=".junie/allowlist.json",RS=".agentsmesh/rules/_root.md",kf=".agentsmesh/rules",db=".agentsmesh/commands",fb=".agentsmesh/agents",gb=".agentsmesh/mcp.json",hb=".agentsmesh/ignore";});async function kS(e,t){e.set(_f,`${A}/_root.md`),e.set(_o,`${A}/_root.md`),e.set("AGENTS.md",`${A}/_root.md`);for(let r of await E(t,".junie/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".junie/commands"))N(e,C(t,r),ae,".md");for(let r of await E(t,".junie/agents"))N(e,C(t,r),ue,".md");for(let r of await E(t,".junie/skills"))$(e,C(t,r),".junie/skills");}var yb=d(()=>{Ie();Oc();Le();s(kS,"buildJunieImportPaths");});var Dt,Ja,Up,Bp,Cn,So,Ro,ko,Kr,bs,Ya,If,Xa,wc,Qa,Kp,Lf,bc,As,vi,Fi,Mi,xs,qa,Wp,_b,Gi,Ac,Za,Sb,Rb,Ts=d(()=>{Dt="kilo-code",Ja="kilo.jsonc",Up=".config/kilo/kilo.jsonc",Bp=".kilo",Cn="AGENTS.md",So=`${Bp}/rules`,Ro=`${Bp}/commands`,ko=`${Bp}/agents`,Kr=`${Bp}/skills`,bs=`${Bp}/mcp.json`,Ya=".kilocodeignore",If=".kilocode",Xa=`${If}/rules`,wc=`${If}/workflows`,Qa=`${If}/skills`,Kp=`${If}/mcp.json`,Lf=".kilocodemodes",bc=".kilo",As=`${bc}/AGENTS.md`,vi=`${bc}/rules`,Fi=`${bc}/commands`,Mi=`${bc}/agents`,xs=`${bc}/skills`,qa=`${bc}/mcp.json`,Wp=".kilocodeignore",_b=".agents/skills",Gi=".agentsmesh/rules",Ac=".agentsmesh/commands",Za=".agentsmesh/agents",Sb=".agentsmesh/mcp.json",Rb=".agentsmesh/ignore";});async function IS(e,t,r="project"){if(r==="global"){e.set(As,`${A}/_root.md`);for(let n of await E(t,vi))N(e,C(t,n),A,".md");for(let n of await E(t,Fi))N(e,C(t,n),ae,".md");for(let n of await E(t,Mi))N(e,C(t,n),ue,".md");for(let n of await E(t,xs))$(e,C(t,n),xs);e.set(qa,".agentsmesh/mcp.json");return}e.set(Cn,`${A}/_root.md`);for(let n of await E(t,So))N(e,C(t,n),A,".md");for(let n of await E(t,Ro))N(e,C(t,n),ae,".md");for(let n of await E(t,ko))N(e,C(t,n),ue,".md");for(let n of await E(t,Kr))$(e,C(t,n),Kr);e.set(bs,".agentsmesh/mcp.json");for(let n of await E(t,Xa)){let o=C(t,n);if(basename(o)==="00-root.md"){e.set(o,`${A}/_root.md`);continue}N(e,o,A,".md");}for(let n of await E(t,wc))N(e,C(t,n),ae,".md");for(let n of await E(t,Qa))$(e,C(t,n),Qa);e.set(Kp,".agentsmesh/mcp.json");}var kb=d(()=>{Ie();Ts();Le();s(IS,"buildKiloCodeImportPaths");});var lr,En,Hp,On,Nt,wn,$i,lX,xc,Tc,el,bn,ji,tl,zp,Vp,Ib,LS,CS,Lb,Cb,ES,Eb,Pc=d(()=>{lr="kiro",En="AGENTS.md",Hp=".kiro",On=`${Hp}/steering`,Nt=`${Hp}/skills`,wn=`${Hp}/agents`,$i=`${Hp}/hooks`,lX=`${Hp}/settings`,xc=`${lX}/mcp.json`,Tc=".kiroignore",el=".kiro/steering",bn=".kiro/steering/AGENTS.md",ji=".kiro/skills",tl=".kiro/agents",zp=".kiro/settings/mcp.json",Vp=".kiro/settings/kiroignore",Ib=".agents/skills",LS=".agentsmesh/rules/_root.md",CS=".agentsmesh/rules",Lb=".agentsmesh/agents",Cb=".agentsmesh/mcp.json",ES=".agentsmesh/hooks.yaml",Eb=".agentsmesh/ignore";});async function OS(e,t,r="project"){if(r==="global"){e.set(bn,`${A}/_root.md`);for(let n of await E(t,el)){let o=C(t,n);o!==bn&&N(e,o,A,".md");}for(let n of await E(t,ji))$(e,C(t,n),ji);for(let n of await E(t,tl))N(e,C(t,n),ue,".md");return}e.set(En,`${A}/_root.md`);for(let n of await E(t,On))N(e,C(t,n),A,".md");for(let n of await E(t,Nt))$(e,C(t,n),Nt);for(let n of await E(t,wn))N(e,C(t,n),ue,".md");}var Ob=d(()=>{Ie();Pc();Le();s(OS,"buildKiroImportPaths");});var Wr,Cf,An,Io,Lo,Co,Hr,Ct,Dc,Ps,Ui,Bi,Ki,Ds,zr,wb,Jp,Ef,Of,wS,bS,Ns=d(()=>{Wr="opencode",Cf=".opencode",An="AGENTS.md",Io=`${Cf}/rules`,Lo=`${Cf}/commands`,Co=`${Cf}/agents`,Hr=`${Cf}/skills`,Ct="opencode.json",Dc=".config/opencode",Ps=`${Dc}/AGENTS.md`,Ui=`${Dc}/rules`,Bi=`${Dc}/commands`,Ki=`${Dc}/agents`,Ds=`${Dc}/skills`,zr=`${Dc}/opencode.json`,wb=".agents/skills",Jp=".agentsmesh/rules",Ef=".agentsmesh/commands",Of=".agentsmesh/agents",wS=".agentsmesh/mcp.json",bS=".agentsmesh/permissions.yaml";});async function AS(e,t,r="project"){if(r==="global"){e.set(Ps,`${A}/_root.md`);for(let n of await E(t,Ui))N(e,C(t,n),A,".md");for(let n of await E(t,Bi))N(e,C(t,n),ae,".md");for(let n of await E(t,Ki))N(e,C(t,n),ue,".md");for(let n of await E(t,Ds))$(e,C(t,n),Ds);e.set(zr,".agentsmesh/mcp.json");return}e.set(An,`${A}/_root.md`);for(let n of await E(t,Io))N(e,C(t,n),A,".md");for(let n of await E(t,Lo))N(e,C(t,n),ae,".md");for(let n of await E(t,Co))N(e,C(t,n),ue,".md");for(let n of await E(t,Hr))$(e,C(t,n),Hr);e.set(Ct,".agentsmesh/mcp.json");}var bb=d(()=>{Ie();Ns();Le();s(AS,"buildOpencodeImportPaths");});var Eo,Vr,pt,Ab,vs,Jr,xb,Nc=d(()=>{Eo="pi-agent",Vr="AGENTS.md",pt=".pi/skills",Ab=".pi/agent",vs=`${Ab}/AGENTS.md`,Jr=`${Ab}/skills`,xb=".agentsmesh/rules";});async function xS(e,t,r="project"){if(r==="global"){e.set(vs,`${A}/_root.md`);for(let n of await E(t,Jr))$(e,C(t,n),Jr);return}e.set(Vr,`${A}/_root.md`);for(let n of await E(t,pt))$(e,C(t,n),pt);}var TS=d(()=>{Ie();Nc();Le();s(xS,"buildPiAgentImportPaths");});var xn,cr,Oo,Tn,Pn,mr,Yr,Fs,wo,Ms,Gs,bo,$s,PS,Tb,Pb,rl=d(()=>{xn="qwen-code",cr="QWEN.md",Oo=".qwen/rules",Tn=".qwen/commands",Pn=".qwen/agents",mr=".qwen/skills",Yr=".qwen/settings.json",Fs=".qwenignore",wo=".qwen/QWEN.md",Ms=".qwen/settings.json",Gs=".qwen/commands",bo=".qwen/skills",$s=".qwen/agents",PS=".agentsmesh/rules",Tb=".agentsmesh/commands",Pb=".agentsmesh/agents";});async function DS(e,t,r="project"){if(r==="global"){e.set(wo,`${A}/_root.md`),e.set(Ms,".agentsmesh/mcp.json");for(let n of await E(t,Gs))N(e,C(t,n),ae,".md");for(let n of await E(t,$s))N(e,C(t,n),ue,".md");for(let n of await E(t,bo))$(e,C(t,n),bo);return}e.set(cr,`${A}/_root.md`),e.set(Yr,".agentsmesh/mcp.json"),e.set(Fs,".agentsmesh/ignore");for(let n of await E(t,Oo))N(e,C(t,n),A,".md");for(let n of await E(t,Tn))N(e,C(t,n),ae,".md");for(let n of await E(t,Pn))N(e,C(t,n),ue,".md");for(let n of await E(t,mr))$(e,C(t,n),mr);}var Db=d(()=>{Ie();Le();rl();s(DS,"buildQwenCodeImportPaths");});var Ao,Dn,Kt,Nb,vc=d(()=>{Ao="replit-agent",Dn="replit.md",Kt=".agents/skills",Nb=".agentsmesh/rules";});async function NS(e,t,r="project"){if(r!=="global"){e.set(Dn,`${A}/_root.md`);for(let n of await E(t,Kt))$(e,C(t,n),Kt);}}var vS=d(()=>{Ie();vc();Le();s(NS,"buildReplitAgentImportPaths");});var Wi,nl,Nn,Yp,js,Us,xo,Xp,Qp,Fc,qp,wf,Hi,zi,Bs,ol,Zp,Vi,vb,sl,bf,Fb,Mb,il=d(()=>{Wi="roo-code",nl=".roo",Nn=`${nl}/rules/00-root.md`,Yp=".roorules",js=`${nl}/rules`,Us=`${nl}/commands`,xo=`${nl}/skills`,Xp=`${nl}/mcp.json`,Qp=".rooignore",Fc=".roomodes",qp="settings/custom_modes.yaml",wf=".roo",Hi=`${wf}/rules`,zi=`${wf}/commands`,Bs=`${wf}/skills`,ol="mcp_settings.json",Zp=".rooignore",Vi=`${wf}/AGENTS.md`,vb=".agents/skills",sl=".agentsmesh/rules",bf=".agentsmesh/commands",Fb=".agentsmesh/mcp.json",Mb=".agentsmesh/ignore";});async function FS(e,t,r="project"){if(r==="global"){e.set(Vi,`${A}/_root.md`);for(let n of await E(t,Hi))N(e,C(t,n),A,".md");for(let n of await E(t,zi))N(e,C(t,n),ae,".md");for(let n of await E(t,Bs))$(e,C(t,n),Bs);e.set(ol,".agentsmesh/mcp.json");return}e.set(Nn,`${A}/_root.md`),e.set(Yp,`${A}/_root.md`);for(let n of await E(t,js)){let o=C(t,n);o!==Nn&&N(e,o,A,".md");}for(let n of await E(t,".roo")){let o=C(t,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&N(e,o,A,".md");}for(let n of await E(t,Us))N(e,C(t,n),ae,".md");for(let n of await E(t,xo))$(e,C(t,n),xo);}var Gb=d(()=>{Ie();il();Le();s(FS,"buildRooCodeImportPaths");});var To,Xr,$b,ut,Ks,jb,Ws,pr,Mc,eu,Ub,al=d(()=>{To="rovodev",Xr="AGENTS.md",$b=".rovodev",ut=`${$b}/skills`,Ks=`${$b}/mcp.json`,jb=".rovodev",Ws=".rovodev/AGENTS.md",pr=".rovodev/skills",Mc=".rovodev/mcp.json",eu=".rovodev/config.yml",Ub=".agentsmesh/rules";});async function MS(e,t,r="project"){if(r==="global"){e.set(Ws,`${A}/_root.md`);for(let n of await E(t,pr))$(e,C(t,n),pr);e.set(Mc,".agentsmesh/mcp.json");return}e.set(Xr,`${A}/_root.md`);for(let n of await E(t,ut))$(e,C(t,n),ut);e.set(Ks,".agentsmesh/mcp.json");}var Bb=d(()=>{Ie();al();Le();s(MS,"buildRovodevImportPaths");});var Qr,tu,ur,dr,qr,ll,Gc,Hs,Zr,vn,ru,Kb,Ji,$c,nu,Wb,Hb,zb,jc=d(()=>{Qr="trae",tu=".trae",ur=`${tu}/rules`,dr=`${ur}/project_rules.md`,qr=`${tu}/skills`,ll=`${tu}/mcp.json`,Gc=`${tu}/.ignore`,Hs=".trae/user_rules",Zr=".trae/user_rules/rules.md",vn=".trae/skills",ru=".trae/mcp.json",Kb=".agents/skills",Ji=`${tu}/commands`,$c=".trae/commands",nu=".agentsmesh/rules",Wb=".agentsmesh/commands",Hb=".agentsmesh/mcp.json",zb=".agentsmesh/ignore";});async function GS(e,t,r="project"){if(r==="global"){e.set(Zr,`${A}/_root.md`);for(let n of await E(t,Hs)){let o=C(t,n);o!==Zr&&N(e,o,A,".md");}for(let n of await E(t,$c))N(e,C(t,n),ae,".md");for(let n of await E(t,vn))$(e,C(t,n),vn);return}e.set(dr,`${A}/_root.md`);for(let n of await E(t,ur)){let o=C(t,n);o!==dr&&N(e,o,A,".md");}for(let n of await E(t,Ji))N(e,C(t,n),ae,".md");for(let n of await E(t,qr))$(e,C(t,n),qr);}var Vb=d(()=>{Ie();jc();Le();s(GS,"buildTraeImportPaths");});var Po,Fn,$S,Et,Yi,fr,Jb,Uc=d(()=>{Po="warp",Fn="AGENTS.md",$S="WARP.md",Et=".warp/skills",Yi=".mcp.json",fr=".warp/skills",Jb=".agentsmesh/rules";});async function jS(e,t,r="project"){if(r==="global"){for(let n of await E(t,fr))$(e,C(t,n),fr);return}e.set(Fn,`${A}/_root.md`);for(let n of await E(t,Et))$(e,C(t,n),Et);e.set(Yi,".agentsmesh/mcp.json");}var Yb=d(()=>{Ie();Uc();Le();s(jS,"buildWarpImportPaths");});async function US(e,t){e.set("AGENTS.md",`${A}/_root.md`),e.set(".windsurfrules",`${A}/_root.md`),await tf(e,t);for(let r of await E(t,".windsurf/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".windsurf/workflows"))N(e,C(t,r),ae,".md");for(let r of await E(t,".windsurf/skills"))$(e,C(t,r),".windsurf/skills");}var Xb=d(()=>{Ie();Le();s(US,"buildWindsurfImportPaths");});var Mn,Do,No,cX,vo,Qb,cl=d(()=>{Mn=".rules",Do=".zed/settings.json",No=".agents/skills",cX=".config/zed",vo=`${cX}/settings.json`,Qb=".agentsmesh/rules";});async function BS(e,t,r="project"){if(r==="global"){e.set(vo,".agentsmesh/mcp.json");return}e.set(Mn,`${A}/_root.md`);for(let n of await E(t,No))$(e,C(t,n),No);e.set(Do,".agentsmesh/mcp.json");}var qb=d(()=>{cl();Ie();Le();s(BS,"buildZedImportPaths");});var Zb=d(()=>{bw();Tw();Dw();vw();Fw();$w();Bw();Kw();Ww();Hw();Vw();Qw();eb();nb();ob();ab();cb();yb();kb();Ob();bb();TS();Db();vS();Gb();Bb();Vb();Yb();Xb();qb();});var Oe=d(()=>{Zb();});var mX,pX,uX,eA,ef,T_=d(()=>{be();_e();AO();fw();Rw();Cw();Oe();cc();mX={name:Qn,primaryRootInstructionPath:Cr,generateRules:CO,generateCommands:OO,generateAgents:wO,generateSkills:EO,generateIgnore:bO,importFrom:dw},pX={rootInstructionPath:Cr,skillDir:St,managedOutputs:{dirs:[St],files:[Cr,ss]},paths:{rulePath(e){return Cr},commandPath(e){return `${St}/${J(e)}/SKILL.md`},agentPath(e){return `${St}/${V(e)}/SKILL.md`}}},uX={rootInstructionPath:is,skillDir:Er,managedOutputs:{dirs:[Er],files:[is,Ca]},rewriteGeneratedPath(e){return e===Cr?is:e===ss?Ca:e.startsWith(`${St}/`)?e.replace(`${St}/`,`${Er}/`):e},paths:{rulePath(e){return is},commandPath(e){return `${Er}/${J(e)}/SKILL.md`},agentPath(e){return `${Er}/${V(e)}/SKILL.md`}}},eA={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},ef={id:Qn,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:mX,capabilities:eA,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:Sw,lint:{hooks:kw,permissions:Iw,mcp:Lw},supportsConversion:{commands:true,agents:true},project:pX,globalSupport:{capabilities:eA,detectionPaths:[is,Ca,Er],layout:uX},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Cr],global:[is]},canonicalDir:IO,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ss],global:[Ca]},canonicalDir:".agentsmesh",canonicalFilename:LO}},buildImportPaths:v_,detectionPaths:[Cr,ss]};});function tA(e){let t=[];for(let r of e.rules){if(r.targets.length>0&&!r.targets.includes(Ea))continue;let n=r.root?"_root":basename(r.source,".md");t.push({path:`${br}/${n}.md`,content:r.body.trim()});}return t}function rA(e){return e.agents.map(t=>({path:`${Zn}/${t.name}.json`,content:JSON.stringify({name:t.name,...t.description?{description:t.description}:{},systemPrompt:t.body.trim(),...t.tools.length>0?{allowedTools:t.tools}:{}},null,2)}))}function nA(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Ci,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var oA=d(()=>{fc();s(tA,"generateRules");s(rA,"generateAgents");s(nA,"generateMcp");});async function sA(e,t){let r=t?.scope??"project";return Q(Af,e,r)}var iA=d(()=>{Ae();KS();s(sA,"importFromAmazonQ");});function aA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ea}))}var lA=d(()=>{Ee();fc();s(aA,"lintRules");});function cA(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","amazon-q","Amazon Q CLI hooks are per-agent only; canonical hooks are not projected as standalone config.")]:[]:[]}function mA(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","amazon-q","Amazon Q CLI permissions are per-agent (allowedTools); canonical permissions are not projected as standalone config.")]}var pA=d(()=>{Re();s(cA,"lintHooks");s(mA,"lintPermissions");});async function hX(e){let t=basename(e.relativePath,".json"),r=`${t}.md`,n=join(e.destDir,r),o;try{o=JSON.parse(e.content);}catch{return null}if(!o||typeof o!="object"||Array.isArray(o))return null;let i=o,a=typeof i.name=="string"?i.name:t,l=typeof i.description=="string"?i.description:"",c=Array.isArray(i.allowedTools)?i.allowedTools.filter(u=>typeof u=="string"):[],m=typeof i.systemPrompt=="string"?i.systemPrompt:"",p=await ve(n,{name:a,description:l,tools:c},m);return {destPath:n,toPath:`${F_}/${r}`,content:p}}var uA,dA=d(()=>{de();fc();s(hX,"amazonQAgentMapper");uA={rules:{feature:"rules",mode:"directory",source:{project:[br],global:[ls]},canonicalDir:Aw,extensions:[".md"],preset:"rule"},agents:{feature:"agents",mode:"directory",source:{project:[Zn],global:[Oa]},canonicalDir:F_,extensions:[".json"],map:hX},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ci],global:[dc]},canonicalDir:".agentsmesh",canonicalFilename:xw}};});var fA,gA,hA=d(()=>{fA={rules:"native",additionalRules:"none",commands:"none",agents:"native",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},gA={rules:"native",additionalRules:"none",commands:"none",agents:"native",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};});var yX,_X,SX,Af,KS=d(()=>{oA();iA();lA();pA();Oe();dA();hA();fc();yX={name:Ea,generateRules:tA,generateMcp:nA,generateAgents:rA,importFrom:sA},_X={managedOutputs:{dirs:[br,Zn],files:[Ci]},paths:{rulePath(e,t){return `${br}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return `${Zn}/${e}.json`}}},SX={managedOutputs:{dirs:[ls,Oa],files:[dc]},rewriteGeneratedPath(e){return e.startsWith(`${Zn}/`)?e.replace(`${Zn}/`,`${Oa}/`):e.startsWith(`${br}/`)?e.replace(`${br}/`,`${ls}/`):e===Ci?dc:e},paths:{rulePath(e,t){return `${ls}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return `${Oa}/${e}.json`}}},Af={id:Ea,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:yX,capabilities:fA,emptyImportMessage:"No Amazon Q Developer config found (.amazonq/rules/, .amazonq/cli-agents/, or .amazonq/mcp.json).",lintRules:aA,lint:{hooks:cA,permissions:mA},project:_X,globalSupport:{capabilities:gA,detectionPaths:[ls,dc,Oa],layout:SX},importer:uA,buildImportPaths:M_,detectionPaths:[br,Zn,Ci]};});function en(e){if(!e.hooks||Object.keys(e.hooks).length===0)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Jn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}var ml=d(()=>{Ir();s(en,"buildClaudeHooksObjectFromCanonical");});function yA(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ar,content:o}]:[]}function _A(e){return ie(e,kt)}function SA(e){return e.commands.map(t=>({path:`${kt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function RA(e){return e.agents.map(t=>({path:`${kt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function kA(e,t){let r=[];if(t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&r.push({path:Zt,content:JSON.stringify({"amp.mcpServers":e.mcp.mcpServers},null,2)}),t.has("hooks")&&e.hooks&&Object.keys(e.hooks).length>0){let n=en(e);Object.keys(n).length>0&&r.push({path:Zt,content:JSON.stringify({"amp.hooks":n},null,2)});}if(t.has("permissions")&&e.permissions){let{allow:n,deny:o}=e.permissions,i=e.permissions.ask??[];if(n.length>0||o.length>0||i.length>0){let a={};n.length>0&&(a.allow=n),o.length>0&&(a.deny=o),i.length>0&&(a.ask=i),r.push({path:Zt,content:JSON.stringify({"amp.permissions":a},null,2)});}}return r}var IA=d(()=>{oe();Be();_e();be();ml();wa();s(yA,"generateRules");s(_A,"generateSkills");s(SA,"generateCommands");s(RA,"generateAgents");s(kA,"buildAmpScopedSettings");});function fe(e,t,r){let n=r.some(o=>RX.includes(o));return e.startsWith(`${t}/`)&&!n?`.agents/skills/${e.slice(t.length+1)}`:null}var RX,dt=d(()=>{RX=["amp","antigravity","codex-cli","goose","replit-agent","zed"];s(fe,"mirrorSkillsToAgents");});async function CA(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let i=o,a=i["amp.mcpServers"]??i.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Xe(e,LA,l),r.push({fromTool:"amp",fromPath:t,toPath:LA,feature:"mcp"}));}var LA,EA=d(()=>{b();hn();wa();LA=".agentsmesh/mcp.json";s(CA,"importAmpMcp");});async function OA(e,t={}){let r=t.scope??"project",n=[],o=await H("amp",e,r);return n.push(...await Q(xf,e,r,{normalize:o})),await ne(e,r==="global"?xr:kt,"amp",n,o),await CA(e,r==="global"?ms:Zt,n),n}var wA=d(()=>{ge();oe();Ae();EA();wa();WS();s(OA,"importFromAmp");});function bA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var AA=d(()=>{Ee();wa();s(bA,"lintRules");});function xA(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var TA=d(()=>{Re();s(xA,"lintIgnore");});function EX(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),o["amp.hooks"]!==void 0&&(r["amp.hooks"]=o["amp.hooks"]),o["amp.permissions"]!==void 0&&(r["amp.permissions"]=o["amp.permissions"]),JSON.stringify(r,null,2)}var IX,LX,CX,PA,xf,WS=d(()=>{be();_e();IA();dt();wA();AA();TA();Oe();wa();IX={name:"amp",primaryRootInstructionPath:Ar,generateRules:yA,generateCommands:SA,generateAgents:RA,generateSkills:_A,importFrom:OA},LX={rootInstructionPath:Ar,skillDir:kt,managedOutputs:{dirs:[kt],files:[Ar,Zt]},paths:{rulePath(e){return Ar},commandPath(e){return `${kt}/${J(e)}/SKILL.md`},agentPath(e){return `${kt}/${V(e)}/SKILL.md`}}},CX={rootInstructionPath:cs,skillDir:xr,managedOutputs:{dirs:[xr],files:[cs,ms]},rewriteGeneratedPath(e){return e===Ar?cs:e===Zt?ms:e.startsWith(`${kt}/`)?e.replace(`${kt}/`,`${xr}/`):e},mirrorGlobalPath(e,t){return fe(e,xr,t)},paths:{rulePath(e){return cs},commandPath(e){return `${xr}/${J(e)}/SKILL.md`},agentPath(e){return `${xr}/${V(e)}/SKILL.md`}}},PA={rules:"native",additionalRules:"embedded",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"};s(EX,"mergeAmpSettings");xf={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:IX,capabilities:PA,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:bA,lint:{ignore:xA},supportsConversion:{commands:true,agents:true},project:LX,globalSupport:{capabilities:PA,detectionPaths:[cs,ms],layout:CX},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ar],global:[cs]},canonicalDir:Pw,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){return kA(e,r)},mergeGeneratedOutputContent(e,t,r,n){return n===Zt||n===ms?EX(t?.content??e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:$_,detectionPaths:[Ar,Zt],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function DA(e){let t=e.rules.find(n=>n.root);if(!t)return [];let r=[{path:Tr,content:t.body.trim()||""}];for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${yn}/${o}.md`,content:n.body.trim()||""});}return r}function NA(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
63
+ `);continue}let{frontmatter:f,body:g}=u.value,h=e.frontmatterRemap?e.frontmatterRemap(f):f,_=e.markAsRoot?{...h,root:true}:h,S=await z(m,_,g);return await L(m,S),[{fromTool:n,fromPath:l,toPath:`${e.canonicalDir}/${e.canonicalRootFilename}`,feature:e.feature}]}return []}async function W2(e,t,r,n,o){let i=uw(e),a=join(r,e.canonicalDir),l=[];for(let c of t){let m=join(r,c),p=await Se({srcDir:m,destDir:a,extensions:[...e.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(vd(basename(u)))return null;let _;try{_=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(S=>h(S),"normalizeTo")});}catch(S){let R=S instanceof Error?S.message:String(S);return process.stderr.write(`\u26A0 skipping ${u}: ${R}
64
+ `),null}return _?{destPath:_.destPath,toPath:_.toPath,feature:e.feature,content:_.content}:null},"mapEntry")});l.push(...p);}return l}function yw(e){let t=e.canonicalFilename;return t.includes("/")||t.includes("\\")?t:posix.join(e.canonicalDir,t)}async function H2(e,t,r,n){if(!e.canonicalFilename)throw new Error(`flatFile spec for ${e.feature} must set canonicalFilename`);let o=yw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=join(r,o);return await O(dirname(c)),await L(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}]}return []}function z2(e,t="mcpServers"){let r;try{r=JSON.parse(e);}catch{return {}}if(!r||typeof r!="object")return {};let n=r[t];if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a,c=typeof l.description=="string"?l.description:void 0;if(typeof l.command=="string"){o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:Zn(l.args),env:Ut(l.env),description:c};continue}typeof l.url=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"http",url:l.url,headers:Ut(l.headers),env:Ut(l.env),description:c});}return o}async function V2(e,t,r,n){if(!e.canonicalFilename)throw new Error(`mcpJson spec for ${e.feature} must set canonicalFilename`);let o=yw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=z2(l,e.mcpServersKey);return Object.keys(c).length===0?[]:(await Xe(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}])}return []}function hw(e,t,r,n,o){switch(e.mode){case "singleFile":return K2(e,t,r,n,o);case "directory":return W2(e,t,r,n,o);case "flatFile":return H2(e,t,r,n);case "mcpJson":return V2(e,t,r,n)}}async function J2(e,t,r,n,o){let i=P_(e.source,t),a=P_(e.fallbacks,t);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await hw(e,i,r,n,o);if(l.length>0)return l}return a.length>0?hw(e,a,r,n,o):[]}function Y2(e,t){let r=e[t];return r?Array.isArray(r)?r:[r]:[]}async function Q(e,t,r,n){let o=e.importer;if(!o)return [];let i=n?.normalize??await H(e.id,t,r),a=[];for(let l of fw)for(let c of Y2(o,l))a.push(...await J2(c,r,t,e.id,i));return a}var Ae=d(()=>{ge();b();hn();B();qt();de();Zt();dw();ts();gw();s(K2,"runSingleFile");s(W2,"runDirectory");s(yw,"resolveCanonicalFilePath");s(H2,"runFlatFile");s(z2,"parseMcpJson");s(V2,"runMcpJson");s(hw,"dispatchSpec");s(J2,"runSpec");s(Y2,"specsForFeature");s(Q,"runDescriptorImport");});async function _w(e,t={}){let r=t.scope??"project",n=[],o=await H(qn,e,r);return n.push(...await Q(nf,e,r,{normalize:o})),await ne(e,r==="global"?Or:St,qn,n,o),n}var Sw=d(()=>{ge();oe();Ae();pc();D_();s(_w,"importFromAider");});function X2(e,t){return kw(t).some(n=>Q2(e,n))}function Rw(e,t){return e.filter(r=>X2(r,t))}function kw(e){let t=e.match(/^(.+)\{([^}]+)\}(.*)$/);if(!t)return [e];let[,r,n,o]=t;if(!n)return [e];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of kw(r+l+o))a.push(c);return a}function Q2(e,t){return q2(t).test(e)}function q2(e){let t=[],r=0;for(;r<e.length;){if(e.startsWith("**",r)){let i=e.slice(r+2);if(i.length===0&&t.length===0)t.push(".*");else if(t.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(e[r]==="*"){t.push("[^/]*"),r+=1;continue}if(e[r]==="?"){t.push("[^/]"),r+=1;continue}if(e[r]==="{"){t.push("(?:"),r+=1;continue}if(e[r]==="}"){t.push(")"),r+=1;continue}if(e[r]===","){t.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(e[r])?t.push("\\"+e[r]):t.push(e[r]),r+=1;}let n="^"+t.join("")+"$";return new RegExp(n)}var Iw=d(()=>{s(X2,"globMatch");s(Rw,"globFilter");s(kw,"expandBraces");s(Q2,"matchOne");s(q2,"globToRegex");});function X(e,t,r,n={}){let o=[],{rules:i}=e;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(t,i[0].source),message:"Rules exist but no root rule (_root.md or root: true). Add a root rule."}),n.checkGlobMatches===false)return o;for(let l of i){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(Rw(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(t,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ee=d(()=>{Iw();s(X,"validateRules");});function Cw(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:qn}))}var Ew=d(()=>{Ee();pc();s(Cw,"lintRules");});function F(e,t,r){return {level:"warning",file:e,target:t,message:r}}function Z2(e){return e.length===0?"":e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Ci(e,t,r,n){let o=n?.unsupportedBy??t,i=Z2(r);return F(".agentsmesh/hooks.yaml",t,`${e} is not supported by ${o}; only ${i} are projected.`)}var Re=d(()=>{s(F,"createWarning");s(Z2,"formatOxfordComma");s(Ci,"createUnsupportedHookWarning");});function Ow(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function ww(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function bw(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var Aw=d(()=>{Re();s(Ow,"lintHooks");s(ww,"lintPermissions");s(bw,"lintMcp");});function C(e,t){return ce(e).relative(e,t).replace(/\\/g,"/")}async function E(e,t){return gi(ce(e).join(e,t)).catch(()=>[])}function Tw(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}function sX(e,t,r,n){let o=posix.dirname(t),i=posix.dirname(r);for(;o!==n&&o!==".";)Tw(e,o,i),o=posix.dirname(o),i=posix.dirname(i);}function N(e,t,r,n){e.set(t,`${r}/${basename(t,n)}.md`);}function $(e,t,r){if(!t.startsWith(`${r}/`))return;let n=t.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");e.set(t,`${xw}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(ac)?ac:o.startsWith(ip)?ip:null;if(l&&a==="SKILL.md"){e.set(t,`${nX}/${o.slice(l.length)}.md`);return}let c=o.startsWith(lc)?lc:o.startsWith(ap)?ap:null;if(c&&a==="SKILL.md"){e.set(t,`${oX}/${o.slice(c.length)}.md`);return}let m=`${xw}/${o}`;a==="SKILL.md"&&Tw(e,`${r}/${o}`,m);let p=`${m}/${a}`;e.set(t,p),a!=="SKILL.md"&&sX(e,t,p,`${r}/${o}`);}function iX(e){return e.split("/").filter(Boolean)[0]??""}async function aX(){if(N_!==void 0)return N_;let{BUILTIN_TARGETS:e}=await Promise.resolve().then(()=>(xe(),Pw)),t=new Set;for(let r of e)for(let n of [r.project.rootInstructionPath,r.project.skillDir,...r.project.managedOutputs?.dirs??[],...r.project.managedOutputs?.files??[],...r.detectionPaths,r.globalSupport?.layout.rootInstructionPath,r.globalSupport?.layout.skillDir,...r.globalSupport?.layout.managedOutputs?.dirs??[],...r.globalSupport?.layout.managedOutputs?.files??[],...r.globalSupport?.detectionPaths??[]])if(n!==void 0){let o=iX(n);o.startsWith(".")&&t.add(o);}return N_=t,t}function F_(e){return e.split("/").some(t=>t.startsWith("."))}async function lX(e){let t=[],r=await aX(),n=ce(e);async function o(i){let a=n.join(e,i),l=await readdir(a,{withFileTypes:true}).catch(()=>[]);for(let c of l){let m=i?`${i}/${c.name}`:c.name;if(c.isDirectory()){if(r.has(c.name)||F_(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(e,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||F_(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&t.push(n.join(e,m));}}return s(o,"walk"),await o(""),t}async function of(e,t){let r=await lX(t);for(let n of r){let o=C(t,n),i=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!i&&!a)continue;let l=posix.dirname(o);if(F_(l))continue;let c=l.replace(/\//g,"-");e.set(o,`${rX}/${c}.md`);}}var rX,nX,oX,xw,N_,Ie=d(()=>{Rt();b();be();_e();rX=".agentsmesh/rules",nX=".agentsmesh/commands",oX=".agentsmesh/agents",xw=".agentsmesh/skills";s(C,"rel");s(E,"listFiles");s(Tw,"addDirectoryMapping");s(sX,"addAncestorMappings");s(N,"addSimpleFileMapping");s($,"addSkillLikeMapping");s(iX,"firstPathSegment");s(aX,"targetRootSegments");s(F_,"hasHiddenSegment");s(lX,"listScopedAgentsFiles");s(of,"addScopedAgentsMappings");});var A,ae,ue,Le=d(()=>{A=".agentsmesh/rules",ae=".agentsmesh/commands",ue=".agentsmesh/agents";});async function M_(e,t,r="project"){if(r==="global"){e.set(is,`${A}/_root.md`);for(let n of await E(t,Or))$(e,C(t,n),Or);e.set(Oa,".agentsmesh/ignore");return}e.set(Er,`${A}/_root.md`);for(let n of await E(t,St))$(e,C(t,n),St);e.set(ss,".agentsmesh/ignore");}var Dw=d(()=>{Ie();pc();Le();s(M_,"buildAiderImportPaths");});var wa,br,Ei,eo,ls,gc,ba,Nw,vw,G_,hc=d(()=>{wa="amazon-q",br=".amazonq/rules",Ei=".amazonq/mcp.json",eo=".amazonq/cli-agents",ls=".aws/amazonq/rules",gc=".aws/amazonq/mcp.json",ba=".aws/amazonq/cli-agents",Nw=".agentsmesh/rules",vw=".agentsmesh/mcp.json",G_=".agentsmesh/agents";});async function $_(e,t,r="project"){let n=r==="global"?ls:br;for(let o of await E(t,n)){let i=C(t,o);N(e,i,A,".md");}}var Fw=d(()=>{Ie();hc();Le();s($_,"buildAmazonQImportPaths");});var Ar,kt,er,j_,cs,xr,ms,Mw,Aa=d(()=>{Ar="AGENTS.md",kt=".agents/skills",er=".amp/settings.json",j_=".config/amp",cs=`${j_}/AGENTS.md`,xr=`${j_}/skills`,ms=`${j_}/settings.json`,Mw=".agentsmesh/rules";});async function U_(e,t,r="project"){if(r==="global"){e.set(cs,`${A}/_root.md`);for(let n of await E(t,xr))$(e,C(t,n),xr);e.set(ms,".agentsmesh/mcp.json");return}e.set(Ar,`${A}/_root.md`);for(let n of await E(t,kt))$(e,C(t,n),kt);e.set(er,".agentsmesh/mcp.json");}var Gw=d(()=>{Ie();Aa();Le();s(U_,"buildAmpImportPaths");});var xa,hp,yn,Tr,yp,_n,to,_p,Sp,B_,ro,no,Rp,yc,K_,Ta,sf,$w,Pa=d(()=>{xa="antigravity",hp=".agents",yn=`${hp}/rules`,Tr=`${yn}/general.md`,yp=`${yn}/_root.md`,_n=`${hp}/skills`,to=`${hp}/workflows`,_p=`${hp}/antigravity/mcp_config.json`,Sp=`${hp}/hooks.json`,B_=".gemini/config/hooks.json",ro=".gemini/antigravity/GEMINI.md",no=".gemini/antigravity/skills",Rp=".gemini/antigravity/workflows",yc=".gemini/antigravity/mcp_config.json",K_=".agentsmesh/rules/_root.md",Ta=".agentsmesh/rules",sf=".agentsmesh/commands",$w=".agentsmesh/mcp.json";});async function W_(e,t,r="project"){if(r==="global"){e.set(ro,`${A}/_root.md`);for(let n of await E(t,no))$(e,C(t,n),no);e.set(yc,".agentsmesh/mcp.json");return}e.set(Tr,`${A}/_root.md`),e.set(yp,`${A}/_root.md`);for(let n of await E(t,yn)){let o=C(t,n);o===Tr||o===yp||N(e,o,A,".md");}for(let n of await E(t,to))N(e,C(t,n),ae,".md");for(let n of await E(t,_n))$(e,C(t,n),_n);}var jw=d(()=>{Ie();Pa();Le();s(W_,"buildAntigravityImportPaths");});var ct,kp,tr,Pr,ps,rr,oo,so,Ip,us,ds,Da,io,fs,H_,z_,V_,J_,Y_,Na=d(()=>{ct="augment-code",kp=".augment",tr=`${kp}/rules`,Pr=`${kp}/commands`,ps=`${kp}/agents`,rr=`${kp}/skills`,oo=`${kp}/settings.json`,so=".augmentignore",Ip=".augment",us=`${Ip}/rules`,ds=`${Ip}/commands`,Da=`${Ip}/agents`,io=`${Ip}/skills`,fs=`${Ip}/settings.json`,H_=".agentsmesh/rules",z_=".agentsmesh/agents",V_=".agentsmesh/mcp.json",J_=".agentsmesh/hooks.yaml",Y_=".agentsmesh/ignore";});async function X_(e,t,r="project"){if(r==="global"){for(let n of await E(t,us))N(e,C(t,n),A,".md");for(let n of await E(t,ds))N(e,C(t,n),ae,".md");for(let n of await E(t,Da))N(e,C(t,n),ue,".md");for(let n of await E(t,io))$(e,C(t,n),io);e.set(fs,".agentsmesh/mcp.json");return}for(let n of await E(t,tr))N(e,C(t,n),A,".md");for(let n of await E(t,Pr))N(e,C(t,n),ae,".md");for(let n of await E(t,ps))N(e,C(t,n),ue,".md");for(let n of await E(t,rr))$(e,C(t,n),rr);e.set(oo,".agentsmesh/mcp.json"),e.set(so,".agentsmesh/ignore");}var Uw=d(()=>{Ie();Na();Le();s(X_,"buildAugmentCodeImportPaths");});var Bw,gs,Oi,Lp,Cp,Ep,Op,wp,hs,Q_,bp,_c,Ap,xp,af,lf,q_,Tp,Z_,va,Kw,ys=d(()=>{Bw="claude-code",gs="CLAUDE.md",Oi=".claude/CLAUDE.md",Lp=".claude/rules",Cp=".claude/commands",Ep=".claude/agents",Op=".claude/skills",wp=".claude/settings.json",hs=".claude/hooks.json",Q_=".claude/output-styles",bp=".claudeignore",_c=".mcp.json",Ap=".claude.json",xp=".agentsmesh/rules",af=".agentsmesh/commands",lf=".agentsmesh/agents",q_=".agentsmesh/skills",Tp=".agentsmesh/mcp.json",Z_=".agentsmesh/permissions.yaml",va=".agentsmesh/hooks.yaml",Kw=".agentsmesh/ignore";});async function eS(e,t,r="project"){if(e.set(".claude/CLAUDE.md",`${A}/_root.md`),e.set(hs,va),r==="project"&&e.set("CLAUDE.md",`${A}/_root.md`),r==="global")for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");for(let n of await E(t,".claude/rules"))N(e,C(t,n),A,".md");for(let n of await E(t,".claude/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".claude/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".claude/skills"))$(e,C(t,n),".claude/skills");}var Ww=d(()=>{Ie();ys();Le();s(eS,"buildClaudeCodeImportPaths");});var wi,_s,Fa,Ss,Hw,Pt,nr,Rs,bi,Ma,Ga,$a,ja,tS,Ai,cf,rS,nS,Pp,zw,Dr=d(()=>{wi="cline",_s=".clinerules",Fa=".clineignore",Ss=".cline/cline_mcp_settings.json",Hw=".cline/mcp_settings.json",Pt=".cline/skills",nr=".cline/agents",Rs=".clinerules/workflows",bi="AGENTS.md",Ma=".clinerules/hooks",Ga="Documents/Cline/Rules",$a="Documents/Cline/Workflows",ja="Documents/Cline/Hooks",tS=".agentsmesh/hooks.yaml",Ai=".agentsmesh/rules",cf=".agentsmesh/commands",rS=".agentsmesh/ignore",nS=".agentsmesh/mcp.json",Pp=".agentsmesh/agents",zw=".agentsmesh/skills";});async function oS(e,t,r="project"){if(r==="global"){for(let n of await E(t,Ga))N(e,C(t,n),A,".md");for(let n of await E(t,$a))N(e,C(t,n),ae,".md");for(let n of await E(t,Pt))$(e,C(t,n),Pt);for(let n of await E(t,nr))N(e,C(t,n),ue,".md");e.set(Ss,".agentsmesh/mcp.json");return}e.set(".clinerules/_root.md",`${A}/_root.md`);for(let n of await E(t,".clinerules")){let o=C(t,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||N(e,o,A,".md");}for(let n of await E(t,".clinerules/workflows"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cline/skills"))$(e,C(t,n),".cline/skills");for(let n of await E(t,nr))N(e,C(t,n),ue,".md");}var Vw=d(()=>{Ie();Dr();Le();s(oS,"buildClineImportPaths");});async function sS(e,t,r="project"){if(r==="global"?(e.set(".codex/AGENTS.md",`${A}/_root.md`),e.set(".codex/AGENTS.override.md",`${A}/_root.md`)):(e.set("AGENTS.md",`${A}/_root.md`),e.set("codex.md",`${A}/_root.md`),await of(e,t)),r==="project")for(let n of await E(t,".codex/instructions"))N(e,C(t,n),A,".md");for(let n of await E(t,".codex/rules")){let o=C(t,n);o.endsWith(".rules")?N(e,o,A,".rules"):o.endsWith(".md")&&N(e,o,A,".md");}for(let n of await E(t,".codex/agents"))N(e,C(t,n),ue,".toml");for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");}var Jw=d(()=>{Ie();Le();s(sS,"buildCodexCliImportPaths");});var Sc,Sn,ao,iS,mf,ks,aS,or,Rc,Dp,pf,uf,lS,lo=d(()=>{Sc="continue",Sn=".continue/rules",ao=".continue/prompts",iS=".continue/mcpServers",mf=`${iS}/agentsmesh.json`,ks=`${Sn}/general.md`,aS=`${Sn}/_root.md`,or=".continue/skills",Rc=".continue/AGENTS.md",Dp=".continue/config.yaml",pf=".agentsmesh/rules",uf=".agentsmesh/commands",lS=".agentsmesh/mcp.json";});async function cS(e,t,r="project"){e.set(ks,`${A}/_root.md`),e.set(aS,`${A}/_root.md`);for(let n of await E(t,".continue/rules")){let o=C(t,n);o===ks||o===aS||N(e,o,A,".md");}for(let n of await E(t,".continue/prompts"))e.set(C(t,n),`${ae}/${basename(n,".md")}.md`);for(let n of await E(t,".continue/skills"))$(e,C(t,n),".continue/skills");if(r==="global")for(let n of await E(t,".agents/skills"))$(e,C(t,n),".agents/skills");}var Yw=d(()=>{Ie();lo();Le();s(cS,"buildContinueImportPaths");});function pX(e,t){if(t.endsWith(".instructions.md")){e.set(t,`${A}/${basename(t,".instructions.md")}.md`);return}N(e,t,A,".md");}async function mS(e,t){e.set(".github/copilot-instructions.md",`${A}/_root.md`);for(let r of await E(t,".github/copilot"))e.set(C(t,r),`${A}/${basename(r,".instructions.md")}.md`);for(let r of await E(t,".github/instructions"))pX(e,C(t,r));for(let r of await E(t,".github/prompts"))e.set(C(t,r),`${ae}/${basename(r,".prompt.md")}.md`);for(let r of await E(t,".github/agents"))e.set(C(t,r),`${ue}/${basename(r,".agent.md")}.md`);for(let r of await E(t,".github/skills"))$(e,C(t,r),".github/skills");}var Xw=d(()=>{Ie();Le();s(pX,"addCopilotInstructionMapping");s(mS,"buildCopilotImportPaths");});var Nr,vr,mt,sr,Is,Qw,ff,ir,Ua,gf,hf,yf,kc=d(()=>{Nr="crush",vr="CRUSH.md",mt=".crush/skills",sr="crush.json",Is=".crushignore",Qw=".config/crush",ff=`${Qw}/crush.json`,ir=".config/crush/skills",Ua=`${Qw}/CRUSH.md`,gf=".agentsmesh/rules",hf=".agentsmesh/ignore",yf=".agentsmesh/mcp.json";});async function pS(e,t,r="project"){if(r==="global"){for(let n of await E(t,ir))$(e,C(t,n),ir);return}e.set(vr,`${gf}/_root.md`),e.set(sr,yf),e.set(Is,hf);for(let n of await E(t,mt))$(e,C(t,n),mt);}var qw=d(()=>{Ie();kc();s(pS,"buildCrushImportPaths");});var Zw,xi,eb,Fr,Ls,Mr,Gr,It,ar,co,_f,Rn,uS,uX,Ic,kn,mo,Ti,Pi,tb,Lc,dS,Np,fS,Qe=d(()=>{Zw="cursor",xi="AGENTS.md",eb=".cursorrules",Fr=".cursor/rules",Ls=`${Fr}/general.mdc`,Mr=".cursor/commands",Gr=".cursor/agents",It=".cursor/skills",ar=".cursor/mcp.json",co=".cursor/hooks.json",_f=".cursor/settings.json",Rn=".cursorignore",uS=".cursorindexingignore",uX=".agentsmesh-exports/cursor",Ic=`${uX}/user-rules.md`,kn=".cursor/AGENTS.md",mo=".agentsmesh/rules",Ti=".agentsmesh/commands",Pi=".agentsmesh/agents",tb=".agentsmesh/skills",Lc=".agentsmesh/mcp.json",dS=".agentsmesh/permissions.yaml",Np=".agentsmesh/hooks.yaml",fS=".agentsmesh/ignore";});async function gS(e,t,r="project"){if(r==="global"){e.set(ar,".agentsmesh/mcp.json"),e.set(".cursor/AGENTS.md",`${A}/_root.md`);for(let n of await E(t,".cursor/rules"))N(e,C(t,n),A,".mdc");for(let n of await E(t,".cursor/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cursor/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".cursor/skills"))$(e,C(t,n),".cursor/skills");return}e.set("AGENTS.md",`${A}/_root.md`);for(let n of await E(t,".cursor/rules"))N(e,C(t,n),A,".mdc");for(let n of await E(t,".cursor/commands"))N(e,C(t,n),ae,".md");for(let n of await E(t,".cursor/agents"))N(e,C(t,n),ue,".md");for(let n of await E(t,".cursor/skills"))$(e,C(t,n),".cursor/skills");}var rb=d(()=>{Ie();Qe();Le();s(gS,"buildCursorImportPaths");});var po,$r,Lt,Cs,Sf,Es,In,Ba,nb,ob,Cc=d(()=>{po="deepagents-cli",$r=".deepagents/AGENTS.md",Lt=".deepagents/skills",Cs=".mcp.json",Sf=".deepagents/hooks.json",Es=".deepagents/AGENTS.md",In=".deepagents/skills",Ba=".deepagents/.mcp.json",nb=".deepagents/hooks.json",ob=".agentsmesh/rules";});async function hS(e,t,r="project"){if(r==="global"){e.set(Es,`${A}/_root.md`);for(let n of await E(t,In))$(e,C(t,n),In);e.set(Ba,".agentsmesh/mcp.json");return}e.set($r,`${A}/_root.md`);for(let n of await E(t,Lt))$(e,C(t,n),Lt);e.set(Cs,".agentsmesh/mcp.json");}var sb=d(()=>{Ie();Cc();Le();s(hS,"buildDeepagentsCliImportPaths");});var jr,Ur,Bt,uo,fo,Os,go,Ka,Di,Rf,ib,ab,Wa=d(()=>{jr="factory-droid",Ur="AGENTS.md",Bt=".factory/skills",uo=".factory/droids",fo=".factory/mcp.json",Os=".factory/AGENTS.md",go=".factory/skills",Ka=".factory/droids",Di=".factory/mcp.json",Rf=".factory/hooks.json",ib=".factory/hooks.json",ab=".agentsmesh/rules";});async function yS(e,t,r="project"){if(r==="global"){e.set(Os,`${A}/_root.md`);for(let n of await E(t,Ka))N(e,C(t,n),ue,".md");for(let n of await E(t,go))$(e,C(t,n),go);e.set(Di,".agentsmesh/mcp.json");return}e.set(Ur,`${A}/_root.md`);for(let n of await E(t,uo))N(e,C(t,n),ue,".md");for(let n of await E(t,Bt))$(e,C(t,n),Bt);e.set(fo,".agentsmesh/mcp.json");}var lb=d(()=>{Ie();Wa();Le();s(yS,"buildFactoryDroidImportPaths");});async function _S(e,t){for(let r of await E(t,".gemini/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".gemini/commands")){let n=C(t,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),i=".gemini/commands/",c=(o.startsWith(i)?o.slice(i.length):o).split("/").filter(Boolean).join(":");e.set(n,`${ae}/${c}.md`);}for(let r of await E(t,".gemini/agents"))N(e,C(t,r),ue,".md");for(let r of await E(t,".gemini/skills"))$(e,C(t,r),".gemini/skills");}var cb=d(()=>{Ie();Le();s(_S,"buildGeminiCliImportPaths");});var ho,lr,Kt,yo,SS,_o,Ni,Ha,Br,mb,pb,za=d(()=>{ho="goose",lr=".goosehints",Kt=".agents/skills",yo=".gooseignore",SS=".config/goose",_o=`${SS}/.goosehints`,Ni=`${SS}/.gooseignore`,Ha=`${SS}/config.yaml`,Br=".agents/skills",mb=".agentsmesh/rules",pb=".agentsmesh/ignore";});async function RS(e,t,r="project"){if(r==="global"){e.set(_o,`${A}/_root.md`);for(let n of await E(t,Br))$(e,C(t,n),Br);e.set(Ni,".agentsmesh/ignore");return}e.set(lr,`${A}/_root.md`);for(let n of await E(t,Kt))$(e,C(t,n),Kt);e.set(yo,".agentsmesh/ignore");}var ub=d(()=>{Ie();za();Le();s(RS,"buildGooseImportPaths");});var ws,Ln,db,Ec=d(()=>{ws="jules",Ln="AGENTS.md",db=".agentsmesh/rules";});async function kS(e,t,r="project"){r!=="global"&&e.set(Ln,`${A}/_root.md`);}var fb=d(()=>{Ec();Le();s(kS,"buildJulesImportPaths");});var Va,vi,kf,gb,So,hb,dX,vp,Ja,Fp,Oc,wc,Mp,Gp,$p,jp,Up,fX,If,Ya,yb,Lf,IS,Cf,_b,Sb,Rb,kb,bc=d(()=>{Va="junie",vi=".junie",kf=`${vi}/guidelines.md`,gb=`${vi}/ci-guidelines.md`,So=`${vi}/AGENTS.md`,hb="AGENTS.md",dX=`${vi}/mcp`,vp=`${dX}/mcp.json`,Ja=`${vi}/skills`,Fp=`${vi}/rules`,Oc=`${vi}/commands`,wc=`${vi}/agents`,Mp=".aiignore",Gp=".junie",$p=`${Gp}/skills`,jp=`${Gp}/agents`,Up=`${Gp}/commands`,fX=`${Gp}/mcp`,If=`${fX}/mcp.json`,Ya=`${Gp}/AGENTS.md`,yb=".agents/skills",Lf=".junie/allowlist.json",IS=".agentsmesh/rules/_root.md",Cf=".agentsmesh/rules",_b=".agentsmesh/commands",Sb=".agentsmesh/agents",Rb=".agentsmesh/mcp.json",kb=".agentsmesh/ignore";});async function LS(e,t){e.set(kf,`${A}/_root.md`),e.set(So,`${A}/_root.md`),e.set("AGENTS.md",`${A}/_root.md`);for(let r of await E(t,".junie/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".junie/commands"))N(e,C(t,r),ae,".md");for(let r of await E(t,".junie/agents"))N(e,C(t,r),ue,".md");for(let r of await E(t,".junie/skills"))$(e,C(t,r),".junie/skills");}var Ib=d(()=>{Ie();bc();Le();s(LS,"buildJunieImportPaths");});var Dt,Xa,Bp,Kp,Cn,Ro,ko,Io,Kr,bs,Qa,Ef,qa,Ac,Za,Wp,Of,xc,As,Fi,Mi,Gi,xs,el,Hp,Lb,$i,Tc,tl,Cb,Eb,Ts=d(()=>{Dt="kilo-code",Xa="kilo.jsonc",Bp=".config/kilo/kilo.jsonc",Kp=".kilo",Cn="AGENTS.md",Ro=`${Kp}/rules`,ko=`${Kp}/commands`,Io=`${Kp}/agents`,Kr=`${Kp}/skills`,bs=`${Kp}/mcp.json`,Qa=".kilocodeignore",Ef=".kilocode",qa=`${Ef}/rules`,Ac=`${Ef}/workflows`,Za=`${Ef}/skills`,Wp=`${Ef}/mcp.json`,Of=".kilocodemodes",xc=".kilo",As=`${xc}/AGENTS.md`,Fi=`${xc}/rules`,Mi=`${xc}/commands`,Gi=`${xc}/agents`,xs=`${xc}/skills`,el=`${xc}/mcp.json`,Hp=".kilocodeignore",Lb=".agents/skills",$i=".agentsmesh/rules",Tc=".agentsmesh/commands",tl=".agentsmesh/agents",Cb=".agentsmesh/mcp.json",Eb=".agentsmesh/ignore";});async function CS(e,t,r="project"){if(r==="global"){e.set(As,`${A}/_root.md`);for(let n of await E(t,Fi))N(e,C(t,n),A,".md");for(let n of await E(t,Mi))N(e,C(t,n),ae,".md");for(let n of await E(t,Gi))N(e,C(t,n),ue,".md");for(let n of await E(t,xs))$(e,C(t,n),xs);e.set(el,".agentsmesh/mcp.json");return}e.set(Cn,`${A}/_root.md`);for(let n of await E(t,Ro))N(e,C(t,n),A,".md");for(let n of await E(t,ko))N(e,C(t,n),ae,".md");for(let n of await E(t,Io))N(e,C(t,n),ue,".md");for(let n of await E(t,Kr))$(e,C(t,n),Kr);e.set(bs,".agentsmesh/mcp.json");for(let n of await E(t,qa)){let o=C(t,n);if(basename(o)==="00-root.md"){e.set(o,`${A}/_root.md`);continue}N(e,o,A,".md");}for(let n of await E(t,Ac))N(e,C(t,n),ae,".md");for(let n of await E(t,Za))$(e,C(t,n),Za);e.set(Wp,".agentsmesh/mcp.json");}var Ob=d(()=>{Ie();Ts();Le();s(CS,"buildKiloCodeImportPaths");});var cr,En,zp,On,Nt,wn,ji,hX,Pc,Dc,rl,bn,Ui,nl,Vp,Jp,wb,ES,OS,bb,Ab,wS,xb,Nc=d(()=>{cr="kiro",En="AGENTS.md",zp=".kiro",On=`${zp}/steering`,Nt=`${zp}/skills`,wn=`${zp}/agents`,ji=`${zp}/hooks`,hX=`${zp}/settings`,Pc=`${hX}/mcp.json`,Dc=".kiroignore",rl=".kiro/steering",bn=".kiro/steering/AGENTS.md",Ui=".kiro/skills",nl=".kiro/agents",Vp=".kiro/settings/mcp.json",Jp=".kiro/settings/kiroignore",wb=".agents/skills",ES=".agentsmesh/rules/_root.md",OS=".agentsmesh/rules",bb=".agentsmesh/agents",Ab=".agentsmesh/mcp.json",wS=".agentsmesh/hooks.yaml",xb=".agentsmesh/ignore";});async function bS(e,t,r="project"){if(r==="global"){e.set(bn,`${A}/_root.md`);for(let n of await E(t,rl)){let o=C(t,n);o!==bn&&N(e,o,A,".md");}for(let n of await E(t,Ui))$(e,C(t,n),Ui);for(let n of await E(t,nl))N(e,C(t,n),ue,".md");return}e.set(En,`${A}/_root.md`);for(let n of await E(t,On))N(e,C(t,n),A,".md");for(let n of await E(t,Nt))$(e,C(t,n),Nt);for(let n of await E(t,wn))N(e,C(t,n),ue,".md");}var Tb=d(()=>{Ie();Nc();Le();s(bS,"buildKiroImportPaths");});var Wr,wf,An,Lo,Co,Eo,Hr,Ct,vc,Ps,Bi,Ki,Wi,Ds,zr,Pb,Yp,bf,Af,AS,xS,Ns=d(()=>{Wr="opencode",wf=".opencode",An="AGENTS.md",Lo=`${wf}/rules`,Co=`${wf}/commands`,Eo=`${wf}/agents`,Hr=`${wf}/skills`,Ct="opencode.json",vc=".config/opencode",Ps=`${vc}/AGENTS.md`,Bi=`${vc}/rules`,Ki=`${vc}/commands`,Wi=`${vc}/agents`,Ds=`${vc}/skills`,zr=`${vc}/opencode.json`,Pb=".agents/skills",Yp=".agentsmesh/rules",bf=".agentsmesh/commands",Af=".agentsmesh/agents",AS=".agentsmesh/mcp.json",xS=".agentsmesh/permissions.yaml";});async function TS(e,t,r="project"){if(r==="global"){e.set(Ps,`${A}/_root.md`);for(let n of await E(t,Bi))N(e,C(t,n),A,".md");for(let n of await E(t,Ki))N(e,C(t,n),ae,".md");for(let n of await E(t,Wi))N(e,C(t,n),ue,".md");for(let n of await E(t,Ds))$(e,C(t,n),Ds);e.set(zr,".agentsmesh/mcp.json");return}e.set(An,`${A}/_root.md`);for(let n of await E(t,Lo))N(e,C(t,n),A,".md");for(let n of await E(t,Co))N(e,C(t,n),ae,".md");for(let n of await E(t,Eo))N(e,C(t,n),ue,".md");for(let n of await E(t,Hr))$(e,C(t,n),Hr);e.set(Ct,".agentsmesh/mcp.json");}var Db=d(()=>{Ie();Ns();Le();s(TS,"buildOpencodeImportPaths");});var Oo,Vr,pt,Nb,vs,Jr,vb,Fc=d(()=>{Oo="pi-agent",Vr="AGENTS.md",pt=".pi/skills",Nb=".pi/agent",vs=`${Nb}/AGENTS.md`,Jr=`${Nb}/skills`,vb=".agentsmesh/rules";});async function PS(e,t,r="project"){if(r==="global"){e.set(vs,`${A}/_root.md`);for(let n of await E(t,Jr))$(e,C(t,n),Jr);return}e.set(Vr,`${A}/_root.md`);for(let n of await E(t,pt))$(e,C(t,n),pt);}var DS=d(()=>{Ie();Fc();Le();s(PS,"buildPiAgentImportPaths");});var xn,mr,wo,Tn,Pn,pr,Yr,Fs,bo,Ms,Gs,Ao,$s,NS,Fb,Mb,ol=d(()=>{xn="qwen-code",mr="QWEN.md",wo=".qwen/rules",Tn=".qwen/commands",Pn=".qwen/agents",pr=".qwen/skills",Yr=".qwen/settings.json",Fs=".qwenignore",bo=".qwen/QWEN.md",Ms=".qwen/settings.json",Gs=".qwen/commands",Ao=".qwen/skills",$s=".qwen/agents",NS=".agentsmesh/rules",Fb=".agentsmesh/commands",Mb=".agentsmesh/agents";});async function vS(e,t,r="project"){if(r==="global"){e.set(bo,`${A}/_root.md`),e.set(Ms,".agentsmesh/mcp.json");for(let n of await E(t,Gs))N(e,C(t,n),ae,".md");for(let n of await E(t,$s))N(e,C(t,n),ue,".md");for(let n of await E(t,Ao))$(e,C(t,n),Ao);return}e.set(mr,`${A}/_root.md`),e.set(Yr,".agentsmesh/mcp.json"),e.set(Fs,".agentsmesh/ignore");for(let n of await E(t,wo))N(e,C(t,n),A,".md");for(let n of await E(t,Tn))N(e,C(t,n),ae,".md");for(let n of await E(t,Pn))N(e,C(t,n),ue,".md");for(let n of await E(t,pr))$(e,C(t,n),pr);}var Gb=d(()=>{Ie();Le();ol();s(vS,"buildQwenCodeImportPaths");});var xo,Dn,Wt,$b,Mc=d(()=>{xo="replit-agent",Dn="replit.md",Wt=".agents/skills",$b=".agentsmesh/rules";});async function FS(e,t,r="project"){if(r!=="global"){e.set(Dn,`${A}/_root.md`);for(let n of await E(t,Wt))$(e,C(t,n),Wt);}}var MS=d(()=>{Ie();Mc();Le();s(FS,"buildReplitAgentImportPaths");});var Hi,sl,Nn,Xp,js,Us,To,Qp,qp,Gc,Zp,xf,zi,Vi,Bs,il,eu,Ji,jb,al,Tf,Ub,Bb,ll=d(()=>{Hi="roo-code",sl=".roo",Nn=`${sl}/rules/00-root.md`,Xp=".roorules",js=`${sl}/rules`,Us=`${sl}/commands`,To=`${sl}/skills`,Qp=`${sl}/mcp.json`,qp=".rooignore",Gc=".roomodes",Zp="settings/custom_modes.yaml",xf=".roo",zi=`${xf}/rules`,Vi=`${xf}/commands`,Bs=`${xf}/skills`,il="mcp_settings.json",eu=".rooignore",Ji=`${xf}/AGENTS.md`,jb=".agents/skills",al=".agentsmesh/rules",Tf=".agentsmesh/commands",Ub=".agentsmesh/mcp.json",Bb=".agentsmesh/ignore";});async function GS(e,t,r="project"){if(r==="global"){e.set(Ji,`${A}/_root.md`);for(let n of await E(t,zi))N(e,C(t,n),A,".md");for(let n of await E(t,Vi))N(e,C(t,n),ae,".md");for(let n of await E(t,Bs))$(e,C(t,n),Bs);e.set(il,".agentsmesh/mcp.json");return}e.set(Nn,`${A}/_root.md`),e.set(Xp,`${A}/_root.md`);for(let n of await E(t,js)){let o=C(t,n);o!==Nn&&N(e,o,A,".md");}for(let n of await E(t,".roo")){let o=C(t,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&N(e,o,A,".md");}for(let n of await E(t,Us))N(e,C(t,n),ae,".md");for(let n of await E(t,To))$(e,C(t,n),To);}var Kb=d(()=>{Ie();ll();Le();s(GS,"buildRooCodeImportPaths");});var Po,Xr,Wb,ut,Ks,Hb,Ws,ur,$c,tu,zb,cl=d(()=>{Po="rovodev",Xr="AGENTS.md",Wb=".rovodev",ut=`${Wb}/skills`,Ks=`${Wb}/mcp.json`,Hb=".rovodev",Ws=".rovodev/AGENTS.md",ur=".rovodev/skills",$c=".rovodev/mcp.json",tu=".rovodev/config.yml",zb=".agentsmesh/rules";});async function $S(e,t,r="project"){if(r==="global"){e.set(Ws,`${A}/_root.md`);for(let n of await E(t,ur))$(e,C(t,n),ur);e.set($c,".agentsmesh/mcp.json");return}e.set(Xr,`${A}/_root.md`);for(let n of await E(t,ut))$(e,C(t,n),ut);e.set(Ks,".agentsmesh/mcp.json");}var Vb=d(()=>{Ie();cl();Le();s($S,"buildRovodevImportPaths");});var Qr,ru,dr,fr,qr,ml,jc,Hs,Zr,vn,nu,Jb,Yi,Uc,ou,Yb,Xb,Qb,Bc=d(()=>{Qr="trae",ru=".trae",dr=`${ru}/rules`,fr=`${dr}/project_rules.md`,qr=`${ru}/skills`,ml=`${ru}/mcp.json`,jc=`${ru}/.ignore`,Hs=".trae/user_rules",Zr=".trae/user_rules/rules.md",vn=".trae/skills",nu=".trae/mcp.json",Jb=".agents/skills",Yi=`${ru}/commands`,Uc=".trae/commands",ou=".agentsmesh/rules",Yb=".agentsmesh/commands",Xb=".agentsmesh/mcp.json",Qb=".agentsmesh/ignore";});async function jS(e,t,r="project"){if(r==="global"){e.set(Zr,`${A}/_root.md`);for(let n of await E(t,Hs)){let o=C(t,n);o!==Zr&&N(e,o,A,".md");}for(let n of await E(t,Uc))N(e,C(t,n),ae,".md");for(let n of await E(t,vn))$(e,C(t,n),vn);return}e.set(fr,`${A}/_root.md`);for(let n of await E(t,dr)){let o=C(t,n);o!==fr&&N(e,o,A,".md");}for(let n of await E(t,Yi))N(e,C(t,n),ae,".md");for(let n of await E(t,qr))$(e,C(t,n),qr);}var qb=d(()=>{Ie();Bc();Le();s(jS,"buildTraeImportPaths");});var Do,Fn,US,Et,Xi,gr,Zb,Kc=d(()=>{Do="warp",Fn="AGENTS.md",US="WARP.md",Et=".warp/skills",Xi=".mcp.json",gr=".warp/skills",Zb=".agentsmesh/rules";});async function BS(e,t,r="project"){if(r==="global"){for(let n of await E(t,gr))$(e,C(t,n),gr);return}e.set(Fn,`${A}/_root.md`);for(let n of await E(t,Et))$(e,C(t,n),Et);e.set(Xi,".agentsmesh/mcp.json");}var eA=d(()=>{Ie();Kc();Le();s(BS,"buildWarpImportPaths");});async function KS(e,t){e.set("AGENTS.md",`${A}/_root.md`),e.set(".windsurfrules",`${A}/_root.md`),await of(e,t);for(let r of await E(t,".windsurf/rules"))N(e,C(t,r),A,".md");for(let r of await E(t,".windsurf/workflows"))N(e,C(t,r),ae,".md");for(let r of await E(t,".windsurf/skills"))$(e,C(t,r),".windsurf/skills");}var tA=d(()=>{Ie();Le();s(KS,"buildWindsurfImportPaths");});var Mn,No,vo,yX,Fo,rA,pl=d(()=>{Mn=".rules",No=".zed/settings.json",vo=".agents/skills",yX=".config/zed",Fo=`${yX}/settings.json`,rA=".agentsmesh/rules";});async function WS(e,t,r="project"){if(r==="global"){e.set(Fo,".agentsmesh/mcp.json");return}e.set(Mn,`${A}/_root.md`);for(let n of await E(t,vo))$(e,C(t,n),vo);e.set(No,".agentsmesh/mcp.json");}var nA=d(()=>{pl();Ie();Le();s(WS,"buildZedImportPaths");});var oA=d(()=>{Dw();Fw();Gw();jw();Uw();Ww();Vw();Jw();Yw();Xw();qw();rb();sb();lb();cb();ub();fb();Ib();Ob();Tb();Db();DS();Gb();MS();Kb();Vb();qb();eA();tA();nA();});var Oe=d(()=>{oA();});var _X,SX,RX,sA,nf,D_=d(()=>{be();_e();NO();Sw();Ew();Aw();Oe();pc();_X={name:qn,primaryRootInstructionPath:Er,generateRules:AO,generateCommands:TO,generateAgents:PO,generateSkills:xO,generateIgnore:DO,importFrom:_w},SX={rootInstructionPath:Er,skillDir:St,managedOutputs:{dirs:[St],files:[Er,ss]},paths:{rulePath(e){return Er},commandPath(e){return `${St}/${J(e)}/SKILL.md`},agentPath(e){return `${St}/${V(e)}/SKILL.md`}}},RX={rootInstructionPath:is,skillDir:Or,managedOutputs:{dirs:[Or],files:[is,Oa]},rewriteGeneratedPath(e){return e===Er?is:e===ss?Oa:e.startsWith(`${St}/`)?e.replace(`${St}/`,`${Or}/`):e},paths:{rulePath(e){return is},commandPath(e){return `${Or}/${J(e)}/SKILL.md`},agentPath(e){return `${Or}/${V(e)}/SKILL.md`}}},sA={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},nf={id:qn,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:_X,capabilities:sA,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:Cw,lint:{hooks:Ow,permissions:ww,mcp:bw},supportsConversion:{commands:true,agents:true},project:SX,globalSupport:{capabilities:sA,detectionPaths:[is,Oa,Or],layout:RX},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Er],global:[is]},canonicalDir:wO,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ss],global:[Oa]},canonicalDir:".agentsmesh",canonicalFilename:bO}},buildImportPaths:M_,detectionPaths:[Er,ss]};});function iA(e){let t=[];for(let r of e.rules){if(r.targets.length>0&&!r.targets.includes(wa))continue;let n=r.root?"_root":basename(r.source,".md");t.push({path:`${br}/${n}.md`,content:r.body.trim()});}return t}function aA(e){return e.agents.map(t=>({path:`${eo}/${t.name}.json`,content:JSON.stringify({name:t.name,...t.description?{description:t.description}:{},systemPrompt:t.body.trim(),...t.tools.length>0?{allowedTools:t.tools}:{}},null,2)}))}function lA(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Ei,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var cA=d(()=>{hc();s(iA,"generateRules");s(aA,"generateAgents");s(lA,"generateMcp");});async function mA(e,t){let r=t?.scope??"project";return Q(Pf,e,r)}var pA=d(()=>{Ae();HS();s(mA,"importFromAmazonQ");});function uA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:wa}))}var dA=d(()=>{Ee();hc();s(uA,"lintRules");});function fA(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","amazon-q","Amazon Q CLI hooks are per-agent only; canonical hooks are not projected as standalone config.")]:[]:[]}function gA(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","amazon-q","Amazon Q CLI permissions are per-agent (allowedTools); canonical permissions are not projected as standalone config.")]}var hA=d(()=>{Re();s(fA,"lintHooks");s(gA,"lintPermissions");});async function CX(e){let t=basename(e.relativePath,".json"),r=`${t}.md`,n=join(e.destDir,r),o;try{o=JSON.parse(e.content);}catch{return null}if(!o||typeof o!="object"||Array.isArray(o))return null;let i=o,a=typeof i.name=="string"?i.name:t,l=typeof i.description=="string"?i.description:"",c=Array.isArray(i.allowedTools)?i.allowedTools.filter(u=>typeof u=="string"):[],m=typeof i.systemPrompt=="string"?i.systemPrompt:"",p=await ve(n,{name:a,description:l,tools:c},m);return {destPath:n,toPath:`${G_}/${r}`,content:p}}var yA,_A=d(()=>{de();hc();s(CX,"amazonQAgentMapper");yA={rules:{feature:"rules",mode:"directory",source:{project:[br],global:[ls]},canonicalDir:Nw,extensions:[".md"],preset:"rule"},agents:{feature:"agents",mode:"directory",source:{project:[eo],global:[ba]},canonicalDir:G_,extensions:[".json"],map:CX},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ei],global:[gc]},canonicalDir:".agentsmesh",canonicalFilename:vw}};});var SA,RA,kA=d(()=>{SA={rules:"native",additionalRules:"none",commands:"none",agents:"native",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},RA={rules:"native",additionalRules:"none",commands:"none",agents:"native",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};});var EX,OX,wX,Pf,HS=d(()=>{cA();pA();dA();hA();Oe();_A();kA();hc();EX={name:wa,generateRules:iA,generateMcp:lA,generateAgents:aA,importFrom:mA},OX={managedOutputs:{dirs:[br,eo],files:[Ei]},paths:{rulePath(e,t){return `${br}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return `${eo}/${e}.json`}}},wX={managedOutputs:{dirs:[ls,ba],files:[gc]},rewriteGeneratedPath(e){return e.startsWith(`${eo}/`)?e.replace(`${eo}/`,`${ba}/`):e.startsWith(`${br}/`)?e.replace(`${br}/`,`${ls}/`):e===Ei?gc:e},paths:{rulePath(e,t){return `${ls}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return `${ba}/${e}.json`}}},Pf={id:wa,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:EX,capabilities:SA,emptyImportMessage:"No Amazon Q Developer config found (.amazonq/rules/, .amazonq/cli-agents/, or .amazonq/mcp.json).",lintRules:uA,lint:{hooks:fA,permissions:gA},project:OX,globalSupport:{capabilities:RA,detectionPaths:[ls,gc,ba],layout:wX},importer:yA,buildImportPaths:$_,detectionPaths:[br,eo,Ei]};});function en(e){if(!e.hooks||Object.keys(e.hooks).length===0)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Yn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}var ul=d(()=>{Lr();s(en,"buildClaudeHooksObjectFromCanonical");});function IA(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ar,content:o}]:[]}function LA(e){return ie(e,kt)}function CA(e){return e.commands.map(t=>({path:`${kt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function EA(e){return e.agents.map(t=>({path:`${kt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function OA(e,t){let r=[];if(t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&r.push({path:er,content:JSON.stringify({"amp.mcpServers":e.mcp.mcpServers},null,2)}),t.has("hooks")&&e.hooks&&Object.keys(e.hooks).length>0){let n=en(e);Object.keys(n).length>0&&r.push({path:er,content:JSON.stringify({"amp.hooks":n},null,2)});}if(t.has("permissions")&&e.permissions){let{allow:n,deny:o}=e.permissions,i=e.permissions.ask??[];if(n.length>0||o.length>0||i.length>0){let a={};n.length>0&&(a.allow=n),o.length>0&&(a.deny=o),i.length>0&&(a.ask=i),r.push({path:er,content:JSON.stringify({"amp.permissions":a},null,2)});}}return r}var wA=d(()=>{oe();Be();_e();be();ul();Aa();s(IA,"generateRules");s(LA,"generateSkills");s(CA,"generateCommands");s(EA,"generateAgents");s(OA,"buildAmpScopedSettings");});function fe(e,t,r){let n=r.some(o=>bX.includes(o));return e.startsWith(`${t}/`)&&!n?`.agents/skills/${e.slice(t.length+1)}`:null}var bX,dt=d(()=>{bX=["amp","antigravity","codex-cli","goose","replit-agent","zed"];s(fe,"mirrorSkillsToAgents");});async function AA(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let i=o,a=i["amp.mcpServers"]??i.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Xe(e,bA,l),r.push({fromTool:"amp",fromPath:t,toPath:bA,feature:"mcp"}));}var bA,xA=d(()=>{b();hn();Aa();bA=".agentsmesh/mcp.json";s(AA,"importAmpMcp");});async function TA(e,t={}){let r=t.scope??"project",n=[],o=await H("amp",e,r);return n.push(...await Q(Df,e,r,{normalize:o})),await ne(e,r==="global"?xr:kt,"amp",n,o),await AA(e,r==="global"?ms:er,n),n}var PA=d(()=>{ge();oe();Ae();xA();Aa();zS();s(TA,"importFromAmp");});function DA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var NA=d(()=>{Ee();Aa();s(DA,"lintRules");});function vA(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var FA=d(()=>{Re();s(vA,"lintIgnore");});function DX(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),o["amp.hooks"]!==void 0&&(r["amp.hooks"]=o["amp.hooks"]),o["amp.permissions"]!==void 0&&(r["amp.permissions"]=o["amp.permissions"]),JSON.stringify(r,null,2)}var xX,TX,PX,MA,Df,zS=d(()=>{be();_e();wA();dt();PA();NA();FA();Oe();Aa();xX={name:"amp",primaryRootInstructionPath:Ar,generateRules:IA,generateCommands:CA,generateAgents:EA,generateSkills:LA,importFrom:TA},TX={rootInstructionPath:Ar,skillDir:kt,managedOutputs:{dirs:[kt],files:[Ar,er]},paths:{rulePath(e){return Ar},commandPath(e){return `${kt}/${J(e)}/SKILL.md`},agentPath(e){return `${kt}/${V(e)}/SKILL.md`}}},PX={rootInstructionPath:cs,skillDir:xr,managedOutputs:{dirs:[xr],files:[cs,ms]},rewriteGeneratedPath(e){return e===Ar?cs:e===er?ms:e.startsWith(`${kt}/`)?e.replace(`${kt}/`,`${xr}/`):e},mirrorGlobalPath(e,t){return fe(e,xr,t)},paths:{rulePath(e){return cs},commandPath(e){return `${xr}/${J(e)}/SKILL.md`},agentPath(e){return `${xr}/${V(e)}/SKILL.md`}}},MA={rules:"native",additionalRules:"embedded",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"};s(DX,"mergeAmpSettings");Df={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:xX,capabilities:MA,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:DA,lint:{ignore:vA},supportsConversion:{commands:true,agents:true},project:TX,globalSupport:{capabilities:MA,detectionPaths:[cs,ms],layout:PX},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ar],global:[cs]},canonicalDir:Mw,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){return OA(e,r)},mergeGeneratedOutputContent(e,t,r,n){return n===er||n===ms?DX(t?.content??e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:U_,detectionPaths:[Ar,er],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function GA(e){let t=e.rules.find(n=>n.root);if(!t)return [];let r=[{path:Tr,content:t.body.trim()||""}];for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${yn}/${o}.md`,content:n.body.trim()||""});}return r}function $A(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
65
65
 
66
- ${n}`:n||r;return {path:`${eo}/${t.name}.md`,content:o}})}function vA(e){return ie(e,_n)}function FA(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:yp,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function MA(e){return e.agents.map(t=>({path:`${_n}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function GA(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("antigravity"));return le(t?.body.trim()??"",r)}function $A(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:_p,content:JSON.stringify(t,null,2)}]}function jA(e){return []}var UA=d(()=>{oe();Be();_e();ml();xa();s(DA,"generateRules");s(NA,"generateCommands");s(vA,"generateSkills");s(FA,"generateMcp");s(MA,"generateAgents");s(GA,"renderAntigravityGlobalInstructions");s($A,"generateHooks");s(jA,"generatePermissions");});var BA,KA,WA=d(()=>{La();BA={rules:"native",additionalRules:"native",commands:un("partial","workflows"),agents:"none",skills:"native",mcp:"none",hooks:"native",ignore:"none",permissions:"partial"},KA={rules:"native",additionalRules:"embedded",commands:un("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"partial"};});function wX(e){let t=e.replace(/\\/g,"/");return !t.startsWith("rules/")||t.endsWith("/")||!t.endsWith(".md")?null:t}async function Fo(e){let t=fO(e.content),r=[];if(t.rules.length===0)return {rootContent:t.rootContent,results:r};await O(join(e.projectRoot,e.rulesDir));for(let n of t.rules){let o=wX(n.source);if(o===null||o==="rules/_root.md")continue;let i=join(e.projectRoot,".agentsmesh",o),a=e.normalize(n.body,e.sourcePath,i),{frontmatter:l,body:c}=x(a),m=await z(i,{...l,root:false,description:n.description||void 0,globs:n.globs.length>0?n.globs:void 0,targets:n.targets.length>0?n.targets:void 0},c);await L(i,m),r.push({fromTool:e.fromTool,fromPath:e.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:t.rootContent,results:r}}var Bc=d(()=>{b();B();Be();de();s(wX,"canonicalRulePath");s(Fo,"splitEmbeddedRulesToCanonical");});async function bX(e,t,r,n){let o=n==="global"?to:Tr,i=n==="project"?[o,hp]:[o];for(let a of i){let l=join(e,a),c=await k(l);if(c===null)continue;let m=join(e,U_),p=await Fo({content:c,projectRoot:e,rulesDir:Aa,sourcePath:l,fromTool:ba,normalize:r});t.push(...p.results);let{body:u}=x(r(p.rootContent,l,m)),f=await z(m,{root:true},u);await O(join(e,Aa)),await L(m,f),t.push({fromTool:ba,fromPath:l,toPath:U_,feature:"rules"});return}}async function zA(e,t={}){let r=t.scope??"project",n=[],o=await H(ba,e,r);return await bX(e,n,o,r),n.push(...await Q(Tf,e,r,{normalize:o})),await ne(e,r==="global"?ro:_n,ba,n,o),n}var VA=d(()=>{ge();b();B();oe();Ae();de();Bc();xa();zS();s(bX,"importRootRule");s(zA,"importFromAntigravity");});var XA,QA,qA=d(()=>{B();de();xa();XA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(basename(e)==="general.md"||basename(e)==="_root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Aa}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"nonRootRuleMapper"),QA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${rf}/${e}`,content:await Ce(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function ZA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ba}))}var ex=d(()=>{Ee();xa();s(ZA,"lintRules");});function tx(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","antigravity","Antigravity permissions are managed via tool approval in Gemini IDE; canonical permissions are not projected as config files.")]}var rx=d(()=>{Re();s(tx,"lintPermissions");});var AX,xX,TX,Tf,zS=d(()=>{_e();UA();xa();WA();VA();qA();ex();rx();Oe();AX={name:"antigravity",primaryRootInstructionPath:Tr,generateRules:DA,generateCommands:NA,generateAgents:MA,generateSkills:vA,generateMcp:FA,generateHooks:$A,generatePermissions:jA,importFrom:zA},xX={rootInstructionPath:Tr,skillDir:".agents/skills",managedOutputs:{dirs:[yn,eo,_n],files:[Tr,_p]},rewriteGeneratedPath(e){return e===yp?null:e},paths:{rulePath(e,t){return `${yn}/${e}.md`},commandPath(e,t){return `${eo}/${e}.md`},agentPath(e){return `${_n}/${V(e)}/SKILL.md`}}},TX={rootInstructionPath:to,renderPrimaryRootInstruction:GA,skillDir:ro,managedOutputs:{dirs:[ro,Sp],files:[to,gc,j_]},rewriteGeneratedPath(e){return e===_p?j_:e===Tr?to:e.startsWith(`${yn}/`)?null:e.startsWith(".agents/skills/")?e.replace(".agents/skills",ro):e.startsWith(`${eo}/`)?e.replace(eo,Sp):e===yp?gc:e},paths:{rulePath(e,t){return to},commandPath(e,t){return `${Sp}/${e}.md`},agentPath(e){return `${ro}/${V(e)}/SKILL.md`}}},Tf={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:AX,capabilities:BA,emptyImportMessage:"No Antigravity config found (.agents/rules/, .agents/skills/, or .agents/workflows/).",supportsConversion:{agents:true},lintRules:ZA,lint:{permissions:tx},project:xX,globalSupport:{capabilities:KA,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:TX},importer:{rules:{feature:"rules",mode:"directory",source:{project:[yn]},canonicalDir:Aa,extensions:[".md"],map:XA},commands:{feature:"commands",mode:"directory",source:{project:[eo],global:[Sp]},canonicalDir:rf,extensions:[".md"],map:QA},mcp:{feature:"mcp",mode:"flatFile",source:{global:[gc]},canonicalDir:".agentsmesh",canonicalFilename:Nw}},buildImportPaths:B_,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function DX(e){let t={};return e.description&&(t.description=e.description),e.globs.length>0||e.trigger==="manual"||e.trigger==="model_decision"?(t.agent_requested=true,e.globs.length>0&&(t.globs=e.globs)):t.always_apply=true,t}function NX(e){let t={};return e.description&&(t.description=e.description),t}function nx(e){let t=[];for(let r of e.rules)if(!(r.targets.length>0&&!r.targets.includes(ct)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),t.push({path:`${er}/_root.md`,content:T(n,r.body.trim())});}else {let n=basename(r.source,".md");t.push({path:`${er}/${n}.md`,content:T(DX(r),r.body.trim())});}return t}function ox(e){return e.commands.map(t=>({path:`${Pr}/${t.name}.md`,content:T(NX(t),t.body.trim())}))}function vX(e){let t={name:e.name};return e.description&&(t.description=e.description),t}function sx(e){return e.agents.map(t=>({path:`${ps}/${t.name}.md`,content:T(vX(t),t.body.trim())}))}function ix(e){return ie(e,tr)}function ax(e){return e.ignore.length===0?[]:[{path:oo,content:e.ignore.join(`
67
- `)}]}var lx=d(()=>{oe();B();Pa();s(DX,"ruleFrontmatter");s(NX,"commandFrontmatter");s(nx,"generateRules");s(ox,"generateCommands");s(vX,"agentFrontmatter");s(sx,"generateAgents");s(ix,"generateSkills");s(ax,"generateIgnore");});function MX(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:".*",c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=typeof m.command=="string"?m.command:void 0;if(!p)continue;let u={matcher:l,type:"command",command:p};typeof m.timeout=="number"&&(u.timeout=m.timeout),o.push(u);}}o.length>0&&(t[r]=o);}return t}async function mx(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o.mcpServers&&typeof o.mcpServers=="object"){let a=o.mcpServers;await Xe(e,H_,a),r.push({fromTool:ct,fromPath:join(e,t),toPath:H_,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=MX(i);if(Object.keys(a).length>0){let l=join(e,z_);await O(dirname(l)),await L(l,stringify(a)),r.push({fromTool:ct,fromPath:join(e,t),toPath:z_,feature:"hooks"});}}}async function px(e,t,r){let n=await k(join(e,t));if(n===null)return;let o=n.split(`
68
- `).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(e,V_);await O(dirname(i)),await L(i,o.join(`
69
- `)),r.push({fromTool:ct,fromPath:join(e,t),toPath:V_,feature:"ignore"});}var ux=d(()=>{b();hn();Pa();s(MX,"augmentHooksToCanonical");s(mx,"importAugmentSettings");s(px,"importAugmentIgnore");});function GX(e,t){let r={root:t,description:typeof e.description=="string"?e.description:void 0,globs:Array.isArray(e.globs)?e.globs:[]};return e.agent_requested===true&&(r.trigger="model_decision"),r}async function $X(e,t,r,n){let o=n==="global"?us:er,i=join(e,K_);t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=a==="_root.md"||basename(a)==="_root.md",m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${K_}/${a}`,feature:"rules",content:await z(m,GX(p,c),u)}},"mapEntry")}));}async function jX(e,t,r,n){let o=n==="global"?ds:Pr,i=join(e,".agentsmesh/commands");t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a,".md"),m=join(i,`${c}.md`),{frontmatter:p,body:u}=x(l(m)),f=typeof p.description=="string"?p.description:"";return {destPath:m,toPath:`.agentsmesh/commands/${c}.md`,feature:"commands",content:await Ce(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function UX(e,t,r,n){let o=n==="global"?Ta:ps,i=join(e,W_);t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=join(i,a),{frontmatter:m,body:p}=x(l(c));return {destPath:c,toPath:`${W_}/${a}`,feature:"agents",content:await ve(c,m,p)}},"mapEntry")}));}async function fx(e,t={}){let r=t.scope??"project",n=[],o=await H(ct,e,r);return await $X(e,n,o,r),await jX(e,n,o,r),await UX(e,n,o,r),await ne(e,r==="global"?so:tr,ct,n,o),await mx(e,r==="global"?fs:no,n),r==="project"&&await px(e,oo,n),n}var gx=d(()=>{ge();qt();oe();de();B();ux();Pa();s(GX,"canonicalRuleMeta");s($X,"importRules");s(jX,"importCommands");s(UX,"importAgents");s(fx,"importFromAugmentCode");});function hx(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ct}))}var yx=d(()=>{Ee();Pa();s(hx,"lintRules");});function Sx(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=new Set(_x);return Object.keys(e.hooks).filter(r=>!t.has(r)).map(r=>Li(r,"augment-code",_x,{unsupportedBy:"AugmentCode hooks"}))}var _x,Rx=d(()=>{Re();_x=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(Sx,"lintHooks");});function KX(e){let t={};for(let[r,n]of Object.entries(e)){if(!n||n.length===0)continue;let o=n.map(i=>({matcher:i.matcher,hooks:[{type:"command",command:i.command,...i.timeout!==void 0?{timeout:i.timeout}:{}}]}));t[r]=o;}return t}function WX(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.mcpServers!==void 0&&(r.mcpServers=o.mcpServers),o.hooks!==void 0&&(r.hooks=o.hooks),JSON.stringify(r,null,2)}function HX(e,t){let r={};return t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers),t.has("hooks")&&e.hooks&&Object.keys(e.hooks).length>0&&(r.hooks=KX(e.hooks)),Object.keys(r).length===0?null:JSON.stringify(r,null,2)}var BX,zX,VX,JX,YX,kx,Ix=d(()=>{lx();gx();yx();Rx();Oe();Pa();BX={name:ct,generateRules:nx,generateCommands:ox,generateAgents:sx,generateSkills:ix,generateIgnore:ax,importFrom:fx};s(KX,"serializeHooksForSettings");s(WX,"mergeAugmentSettings");s(HX,"buildSettingsContent");zX={skillDir:tr,managedOutputs:{dirs:[er,Pr,ps,tr],files:[no,oo]},paths:{rulePath(e){return `${er}/${e}.md`},commandPath(e){return `${Pr}/${e}.md`},agentPath(e){return `${ps}/${e}.md`}}},VX={skillDir:so,managedOutputs:{dirs:[us,ds,Ta,so],files:[fs]},rewriteGeneratedPath(e){return e.startsWith(`${er}/`)?e.replace(`${er}/`,`${us}/`):e.startsWith(`${Pr}/`)?e.replace(`${Pr}/`,`${ds}/`):e.startsWith(`${tr}/`)?e.replace(`${tr}/`,`${so}/`):e===no?fs:e===oo?null:e},paths:{rulePath(e){return `${us}/${e}.md`},commandPath(e){return `${ds}/${e}.md`},agentPath(e){return `${Ta}/${e}.md`}}},JX={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},YX={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},kx={id:ct,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:BX,capabilities:JX,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:hx,lint:{hooks:Sx},project:zX,globalSupport:{capabilities:YX,detectionPaths:[us,ds,so,fs],layout:VX},emitScopedSettings(e,t,r){let n=HX(e,r);return n===null?[]:[{path:no,content:n}]},mergeGeneratedOutputContent(e,t,r,n){return n===no||n===fs?WX(e,r):null},buildImportPaths:J_,detectionPaths:[er,Pr,tr,no,oo]};});function Lx(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:gs,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("claude-code")));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=T(a,o.body.trim()||"");t.push({path:`${Ip}/${i}.md`,content:l});}return t}function Cx(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,t.body.trim()||"");return {path:`${Lp}/${t.name}.md`,content:n}})}function Ex(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(a=>{r[a]===void 0&&delete r[a];});let n=t.body.trim()||"",o=/^##\s*Role\b/m.test(n)?n:`## Role
66
+ ${n}`:n||r;return {path:`${to}/${t.name}.md`,content:o}})}function jA(e){return ie(e,_n)}function UA(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:_p,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function BA(e){return e.agents.map(t=>({path:`${_n}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function KA(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("antigravity"));return le(t?.body.trim()??"",r)}function WA(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:Sp,content:JSON.stringify(t,null,2)}]}function HA(e){return []}var zA=d(()=>{oe();Be();_e();ul();Pa();s(GA,"generateRules");s($A,"generateCommands");s(jA,"generateSkills");s(UA,"generateMcp");s(BA,"generateAgents");s(KA,"renderAntigravityGlobalInstructions");s(WA,"generateHooks");s(HA,"generatePermissions");});var VA,JA,YA=d(()=>{Ea();VA={rules:"native",additionalRules:"native",commands:un("partial","workflows"),agents:"none",skills:"native",mcp:"none",hooks:"native",ignore:"none",permissions:"partial"},JA={rules:"native",additionalRules:"embedded",commands:un("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"partial"};});function vX(e){let t=e.replace(/\\/g,"/");return !t.startsWith("rules/")||t.endsWith("/")||!t.endsWith(".md")?null:t}async function Mo(e){let t=SO(e.content),r=[];if(t.rules.length===0)return {rootContent:t.rootContent,results:r};await O(join(e.projectRoot,e.rulesDir));for(let n of t.rules){let o=vX(n.source);if(o===null||o==="rules/_root.md")continue;let i=join(e.projectRoot,".agentsmesh",o),a=e.normalize(n.body,e.sourcePath,i),{frontmatter:l,body:c}=x(a),m=await z(i,{...l,root:false,description:n.description||void 0,globs:n.globs.length>0?n.globs:void 0,targets:n.targets.length>0?n.targets:void 0},c);await L(i,m),r.push({fromTool:e.fromTool,fromPath:e.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:t.rootContent,results:r}}var Wc=d(()=>{b();B();Be();de();s(vX,"canonicalRulePath");s(Mo,"splitEmbeddedRulesToCanonical");});async function FX(e,t,r,n){let o=n==="global"?ro:Tr,i=n==="project"?[o,yp]:[o];for(let a of i){let l=join(e,a),c=await k(l);if(c===null)continue;let m=join(e,K_),p=await Mo({content:c,projectRoot:e,rulesDir:Ta,sourcePath:l,fromTool:xa,normalize:r});t.push(...p.results);let{body:u}=x(r(p.rootContent,l,m)),f=await z(m,{root:true},u);await O(join(e,Ta)),await L(m,f),t.push({fromTool:xa,fromPath:l,toPath:K_,feature:"rules"});return}}async function QA(e,t={}){let r=t.scope??"project",n=[],o=await H(xa,e,r);return await FX(e,n,o,r),n.push(...await Q(Nf,e,r,{normalize:o})),await ne(e,r==="global"?no:_n,xa,n,o),n}var qA=d(()=>{ge();b();B();oe();Ae();de();Wc();Pa();JS();s(FX,"importRootRule");s(QA,"importFromAntigravity");});var tx,rx,nx=d(()=>{B();de();Pa();tx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(basename(e)==="general.md"||basename(e)==="_root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ta}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"nonRootRuleMapper"),rx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${sf}/${e}`,content:await Ce(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function ox(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:xa}))}var sx=d(()=>{Ee();Pa();s(ox,"lintRules");});function ix(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","antigravity","Antigravity permissions are managed via tool approval in Gemini IDE; canonical permissions are not projected as config files.")]}var ax=d(()=>{Re();s(ix,"lintPermissions");});var MX,GX,$X,Nf,JS=d(()=>{_e();zA();Pa();YA();qA();nx();sx();ax();Oe();MX={name:"antigravity",primaryRootInstructionPath:Tr,generateRules:GA,generateCommands:$A,generateAgents:BA,generateSkills:jA,generateMcp:UA,generateHooks:WA,generatePermissions:HA,importFrom:QA},GX={rootInstructionPath:Tr,skillDir:".agents/skills",managedOutputs:{dirs:[yn,to,_n],files:[Tr,Sp]},rewriteGeneratedPath(e){return e===_p?null:e},paths:{rulePath(e,t){return `${yn}/${e}.md`},commandPath(e,t){return `${to}/${e}.md`},agentPath(e){return `${_n}/${V(e)}/SKILL.md`}}},$X={rootInstructionPath:ro,renderPrimaryRootInstruction:KA,skillDir:no,managedOutputs:{dirs:[no,Rp],files:[ro,yc,B_]},rewriteGeneratedPath(e){return e===Sp?B_:e===Tr?ro:e.startsWith(`${yn}/`)?null:e.startsWith(".agents/skills/")?e.replace(".agents/skills",no):e.startsWith(`${to}/`)?e.replace(to,Rp):e===_p?yc:e},paths:{rulePath(e,t){return ro},commandPath(e,t){return `${Rp}/${e}.md`},agentPath(e){return `${no}/${V(e)}/SKILL.md`}}},Nf={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:MX,capabilities:VA,emptyImportMessage:"No Antigravity config found (.agents/rules/, .agents/skills/, or .agents/workflows/).",supportsConversion:{agents:true},lintRules:ox,lint:{permissions:ix},project:GX,globalSupport:{capabilities:JA,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:$X},importer:{rules:{feature:"rules",mode:"directory",source:{project:[yn]},canonicalDir:Ta,extensions:[".md"],map:tx},commands:{feature:"commands",mode:"directory",source:{project:[to],global:[Rp]},canonicalDir:sf,extensions:[".md"],map:rx},mcp:{feature:"mcp",mode:"flatFile",source:{global:[yc]},canonicalDir:".agentsmesh",canonicalFilename:$w}},buildImportPaths:W_,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function UX(e){let t={};return e.description&&(t.description=e.description),e.globs.length>0||e.trigger==="manual"||e.trigger==="model_decision"?(t.agent_requested=true,e.globs.length>0&&(t.globs=e.globs)):t.always_apply=true,t}function BX(e){let t={};return e.description&&(t.description=e.description),t}function lx(e){let t=[];for(let r of e.rules)if(!(r.targets.length>0&&!r.targets.includes(ct)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),t.push({path:`${tr}/_root.md`,content:T(n,r.body.trim())});}else {let n=basename(r.source,".md");t.push({path:`${tr}/${n}.md`,content:T(UX(r),r.body.trim())});}return t}function cx(e){return e.commands.map(t=>({path:`${Pr}/${t.name}.md`,content:T(BX(t),t.body.trim())}))}function KX(e){let t={name:e.name};return e.description&&(t.description=e.description),t}function mx(e){return e.agents.map(t=>({path:`${ps}/${t.name}.md`,content:T(KX(t),t.body.trim())}))}function px(e){return ie(e,rr)}function ux(e){return e.ignore.length===0?[]:[{path:so,content:e.ignore.join(`
67
+ `)}]}var dx=d(()=>{oe();B();Na();s(UX,"ruleFrontmatter");s(BX,"commandFrontmatter");s(lx,"generateRules");s(cx,"generateCommands");s(KX,"agentFrontmatter");s(mx,"generateAgents");s(px,"generateSkills");s(ux,"generateIgnore");});function HX(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:".*",c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=typeof m.command=="string"?m.command:void 0;if(!p)continue;let u={matcher:l,type:"command",command:p};typeof m.timeout=="number"&&(u.timeout=m.timeout),o.push(u);}}o.length>0&&(t[r]=o);}return t}async function gx(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o.mcpServers&&typeof o.mcpServers=="object"){let a=o.mcpServers;await Xe(e,V_,a),r.push({fromTool:ct,fromPath:join(e,t),toPath:V_,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=HX(i);if(Object.keys(a).length>0){let l=join(e,J_);await O(dirname(l)),await L(l,stringify(a)),r.push({fromTool:ct,fromPath:join(e,t),toPath:J_,feature:"hooks"});}}}async function hx(e,t,r){let n=await k(join(e,t));if(n===null)return;let o=n.split(`
68
+ `).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(e,Y_);await O(dirname(i)),await L(i,o.join(`
69
+ `)),r.push({fromTool:ct,fromPath:join(e,t),toPath:Y_,feature:"ignore"});}var yx=d(()=>{b();hn();Na();s(HX,"augmentHooksToCanonical");s(gx,"importAugmentSettings");s(hx,"importAugmentIgnore");});function zX(e,t){let r={root:t,description:typeof e.description=="string"?e.description:void 0,globs:Array.isArray(e.globs)?e.globs:[]};return e.agent_requested===true&&(r.trigger="model_decision"),r}async function VX(e,t,r,n){let o=n==="global"?us:tr,i=join(e,H_);t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=a==="_root.md"||basename(a)==="_root.md",m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${H_}/${a}`,feature:"rules",content:await z(m,zX(p,c),u)}},"mapEntry")}));}async function JX(e,t,r,n){let o=n==="global"?ds:Pr,i=join(e,".agentsmesh/commands");t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a,".md"),m=join(i,`${c}.md`),{frontmatter:p,body:u}=x(l(m)),f=typeof p.description=="string"?p.description:"";return {destPath:m,toPath:`.agentsmesh/commands/${c}.md`,feature:"commands",content:await Ce(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function YX(e,t,r,n){let o=n==="global"?Da:ps,i=join(e,z_);t.push(...await Se({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:ct,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=join(i,a),{frontmatter:m,body:p}=x(l(c));return {destPath:c,toPath:`${z_}/${a}`,feature:"agents",content:await ve(c,m,p)}},"mapEntry")}));}async function Sx(e,t={}){let r=t.scope??"project",n=[],o=await H(ct,e,r);return await VX(e,n,o,r),await JX(e,n,o,r),await YX(e,n,o,r),await ne(e,r==="global"?io:rr,ct,n,o),await gx(e,r==="global"?fs:oo,n),r==="project"&&await hx(e,so,n),n}var Rx=d(()=>{ge();Zt();oe();de();B();yx();Na();s(zX,"canonicalRuleMeta");s(VX,"importRules");s(JX,"importCommands");s(YX,"importAgents");s(Sx,"importFromAugmentCode");});function kx(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ct}))}var Ix=d(()=>{Ee();Na();s(kx,"lintRules");});function Cx(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=new Set(Lx);return Object.keys(e.hooks).filter(r=>!t.has(r)).map(r=>Ci(r,"augment-code",Lx,{unsupportedBy:"AugmentCode hooks"}))}var Lx,Ex=d(()=>{Re();Lx=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(Cx,"lintHooks");});function QX(e){let t={};for(let[r,n]of Object.entries(e)){if(!n||n.length===0)continue;let o=n.map(i=>({matcher:i.matcher,hooks:[{type:"command",command:i.command,...i.timeout!==void 0?{timeout:i.timeout}:{}}]}));t[r]=o;}return t}function qX(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.mcpServers!==void 0&&(r.mcpServers=o.mcpServers),o.hooks!==void 0&&(r.hooks=o.hooks),JSON.stringify(r,null,2)}function ZX(e,t){let r={};return t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers),t.has("hooks")&&e.hooks&&Object.keys(e.hooks).length>0&&(r.hooks=QX(e.hooks)),Object.keys(r).length===0?null:JSON.stringify(r,null,2)}var XX,eQ,tQ,rQ,nQ,Ox,wx=d(()=>{dx();Rx();Ix();Ex();Oe();Na();XX={name:ct,generateRules:lx,generateCommands:cx,generateAgents:mx,generateSkills:px,generateIgnore:ux,importFrom:Sx};s(QX,"serializeHooksForSettings");s(qX,"mergeAugmentSettings");s(ZX,"buildSettingsContent");eQ={skillDir:rr,managedOutputs:{dirs:[tr,Pr,ps,rr],files:[oo,so]},paths:{rulePath(e){return `${tr}/${e}.md`},commandPath(e){return `${Pr}/${e}.md`},agentPath(e){return `${ps}/${e}.md`}}},tQ={skillDir:io,managedOutputs:{dirs:[us,ds,Da,io],files:[fs]},rewriteGeneratedPath(e){return e.startsWith(`${tr}/`)?e.replace(`${tr}/`,`${us}/`):e.startsWith(`${Pr}/`)?e.replace(`${Pr}/`,`${ds}/`):e.startsWith(`${rr}/`)?e.replace(`${rr}/`,`${io}/`):e===oo?fs:e===so?null:e},paths:{rulePath(e){return `${us}/${e}.md`},commandPath(e){return `${ds}/${e}.md`},agentPath(e){return `${Da}/${e}.md`}}},rQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},nQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ox={id:ct,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:XX,capabilities:rQ,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:kx,lint:{hooks:Cx},project:eQ,globalSupport:{capabilities:nQ,detectionPaths:[us,ds,io,fs],layout:tQ},emitScopedSettings(e,t,r){let n=ZX(e,r);return n===null?[]:[{path:oo,content:n}]},mergeGeneratedOutputContent(e,t,r,n){return n===oo||n===fs?qX(e,r):null},buildImportPaths:X_,detectionPaths:[tr,Pr,rr,oo,so]};});function bx(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:gs,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("claude-code")));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=T(a,o.body.trim()||"");t.push({path:`${Lp}/${i}.md`,content:l});}return t}function Ax(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,t.body.trim()||"");return {path:`${Cp}/${t.name}.md`,content:n}})}function xx(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(a=>{r[a]===void 0&&delete r[a];});let n=t.body.trim()||"",o=/^##\s*Role\b/m.test(n)?n:`## Role
70
70
 
71
- ${n}`,i=T(r,o);return {path:`${Cp}/${t.name}.md`,content:i}})}function Ox(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:hc,content:t}]}function wx(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=r.body.trim()||"",i=!o||/^##\s*Purpose\b/m.test(o)?o:`## Purpose
71
+ ${n}`,i=T(r,o);return {path:`${Ep}/${t.name}.md`,content:i}})}function Tx(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:_c,content:t}]}function Px(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=r.body.trim()||"",i=!o||/^##\s*Purpose\b/m.test(o)?o:`## Purpose
72
72
 
73
- ${o}`,a=T(n,i);t.push({path:`${Ep}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");t.push({path:`${Ep}/${r.name}/${c}`,content:l.content});}}return t}function bx(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o=JSON.stringify({permissions:{allow:t,deny:r,ask:n}},null,2);return [{path:Op,content:o}]}function Ax(e,t){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let r=en(e);if(Object.keys(r).length===0)return [];if(t?.scope==="global")return [{path:hs,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:Op,content:n}]}function xx(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
74
- `);return [{path:wp,content:t}]}var Tx=d(()=>{B();ys();ml();s(Lx,"generateRules");s(Cx,"generateCommands");s(Ex,"generateAgents");s(Ox,"generateMcp");s(wx,"generateSkills");s(bx,"generatePermissions");s(Ax,"generateHooks");s(xx,"generateIgnore");});function qX(e){let t=e.description.trim();return t||(basename(e.source)||"rule").replace(/\.md$/i,"")||"Rule"}function Px(e){let t=e.rules.find(o=>o.root),r=(t?.body??"").trim();return r?`# Global Instructions
73
+ ${o}`,a=T(n,i);t.push({path:`${Op}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");t.push({path:`${Op}/${r.name}/${c}`,content:l.content});}}return t}function Dx(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o=JSON.stringify({permissions:{allow:t,deny:r,ask:n}},null,2);return [{path:wp,content:o}]}function Nx(e,t){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let r=en(e);if(Object.keys(r).length===0)return [];if(t?.scope==="global")return [{path:hs,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:wp,content:n}]}function vx(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
74
+ `);return [{path:bp,content:t}]}var Fx=d(()=>{B();ys();ul();s(bx,"generateRules");s(Ax,"generateCommands");s(xx,"generateAgents");s(Tx,"generateMcp");s(Px,"generateSkills");s(Dx,"generatePermissions");s(Nx,"generateHooks");s(vx,"generateIgnore");});function iQ(e){let t=e.description.trim();return t||(basename(e.source)||"rule").replace(/\.md$/i,"")||"Rule"}function Mx(e){let t=e.rules.find(o=>o.root),r=(t?.body??"").trim();return r?`# Global Instructions
75
75
 
76
- ## ${t?qX(t):"Guidance"}
76
+ ## ${t?iQ(t):"Guidance"}
77
77
 
78
78
  ${r}
79
- `:""}var Dx=d(()=>{s(qX,"ruleSectionTitle");s(Px,"renderClaudeGlobalPrimaryInstructions");});function vx(e,t){return e===null?"created":e!==t?"updated":"unchanged"}async function Fx(e,t,r,n){if(r!=="global")return [];let o=n.has("agents"),i=n.has("commands");if(!o&&!i)return [];let a=[];if(o)for(let l of e.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Y_}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:vx(u,m)});}if(i)for(let l of e.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Y_}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:vx(u,m)});}return a}var Mx=d(()=>{b();B();ys();s(vx,"computeStatus");s(Fx,"generateClaudeGlobalExtras");});function Gx(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Jn({...m,type:p}))continue;let u=p==="prompt"?xt(m)||Je(m):Je(m)||xt(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function $x(e,t){let r=join(e,hs),n=await k(r);if(n===null)return false;let o;try{o=JSON.parse(n);}catch{return false}if(!o||typeof o!="object"||Array.isArray(o))return false;let i=Gx(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(e,Da);return await O(dirname(l)),await L(l,a),t.push({fromTool:"claude-code",fromPath:r,toPath:Da,feature:"hooks"}),true}async function jx(e,t){let r=t.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(hs)),n=join(e,Op),o=await k(n);if(!o)return;let i;try{i=JSON.parse(o);}catch{return}if(!t.some(m=>m.feature==="mcp")&&i.mcpServers&&typeof i.mcpServers=="object"){let m=i.mcpServers;await Xe(e,xp,m),t.push({fromTool:"claude-code",fromPath:n,toPath:xp,feature:"mcp"});}let l=i.permissions;if(l&&typeof l=="object"&&!Array.isArray(l)){let m=l,p=Array.isArray(m.allow)?m.allow.filter(g=>typeof g=="string"):[],u=Array.isArray(m.deny)?m.deny.filter(g=>typeof g=="string"):[],f=Array.isArray(m.ask)?m.ask.filter(g=>typeof g=="string"):[];if(p.length>0||u.length>0||f.length>0){let g=stringify({allow:p,deny:u,ask:f}),h=join(e,Q_);await O(dirname(h)),await L(h,g),t.push({fromTool:"claude-code",fromPath:n,toPath:Q_,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=Gx(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(e,Da);await O(dirname(u)),await L(u,p),t.push({fromTool:"claude-code",fromPath:n,toPath:Da,feature:"hooks"});}}}var Ux=d(()=>{Ir();b();hn();ys();s(Gx,"claudeHooksToCanonical");s($x,"importClaudeHooksJson");s(jx,"importSettings");});async function Kx(e,t,r){let n=join(e,Ep),o=join(e,X_),a=(await U(n)).filter(l=>l.endsWith("SKILL.md"));for(let l of a){let c=dirname(l),m=basename(c),p=join(o,m),u=await k(l);if(u===null)continue;let f=r(u,l,join(p,"SKILL.md")),g=ln(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
80
- `);continue}let h=await U(c);for(let _ of h){let S=await k(_);if(S===null)continue;let R=relative(c,_),I=join(p,R);await O(dirname(I));let w=r(S,_,I);await L(I,R==="SKILL.md"?await Yn(I,g.value.frontmatter,g.value.body):w);let D=`${X_}/${m}/${R}`;t.push({fromTool:"claude-code",fromPath:_,toPath:D,feature:"skills"});}}}var Wx=d(()=>{b();B();de();ys();s(Kx,"importClaudeSkills");});async function Hx(e,t={}){let r=t.scope??"project",n=[],o=await H("claude-code",e,r);return n.push(...await Q(Pf,e,r,{normalize:o})),await Kx(e,n,o),await $x(e,n),await jx(e,n),n}var zx=d(()=>{ge();Ae();Ux();Wx();YS();s(Hx,"importFromClaudeCode");});var Vx,Jx,Yx,Xx=d(()=>{B();de();Qt();ys();Vx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ap}/${e}`,content:await z(n,{...o,root:false},i)}},"claudeRuleMapper"),Jx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=Or(o.allowedTools),l=a.length>0?a:Or(o["allowed-tools"]);return {destPath:n,toPath:`${nf}/${e}`,content:await Ce(n,{description:typeof o.description=="string"?o.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"claudeCommandMapper"),Yx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${of}/${e}`,content:await ve(n,o,i)}},"claudeAgentMapper");});function Qx(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Mw}))}var qx=d(()=>{Ee();ys();s(Qx,"lintRules");});var tQ,Zx,rQ,nQ,Pf,YS=d(()=>{Tx();ys();dt();Dx();Mx();zx();Xx();qx();Oe();tQ={name:"claude-code",primaryRootInstructionPath:gs,generateRules:Lx,generateCommands:Cx,generateAgents:Ex,generateSkills:wx,generateMcp:Ox,generatePermissions:bx,generateHooks:Ax,generateIgnore:xx,importFrom:Hx},Zx={rootInstructionPath:gs,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[gs,Ei,".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(e,t){return `.claude/rules/${e}.md`},commandPath(e,t){return `.claude/commands/${e}.md`},agentPath(e,t){return `.claude/agents/${e}.md`}}},rQ={rootInstructionPath:Ei,skillDir:".claude/skills",renderPrimaryRootInstruction:Px,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[Ei,".claude/settings.json",bp,hs,".claudeignore"]},rewriteGeneratedPath(e){return e===gs?Ei:e===hc?bp:e},mirrorGlobalPath(e,t){return fe(e,".claude/skills",t)},paths:Zx.paths},nQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},Pf={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:tQ,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},emptyImportMessage:"No Claude Code config found (CLAUDE.md or .claude/rules/*.md).",lintRules:Qx,project:Zx,globalSupport:{capabilities:nQ,detectionPaths:[".claude/CLAUDE.md",".claude/rules",".claude/commands",".claude/agents",".claude/skills",".claude/settings.json",".claude/hooks.json",".claude/output-styles",".claudeignore",".claude.json",".agents/skills"],layout:rQ,scopeExtras:Fx},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[gs,Ei],global:[Ei]},canonicalDir:Ap,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Ip],global:[Ip]},canonicalDir:Ap,extensions:[".md"],map:Vx}],commands:{feature:"commands",mode:"directory",source:{project:[Lp],global:[Lp]},canonicalDir:nf,extensions:[".md"],map:Jx},agents:{feature:"agents",mode:"directory",source:{project:[Cp],global:[Cp]},canonicalDir:of,extensions:[".md"],map:Yx},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[hc],global:[bp]},canonicalDir:".agentsmesh",canonicalFilename:xp},ignore:{feature:"ignore",mode:"flatFile",source:{project:[wp],global:[wp]},canonicalDir:".agentsmesh",canonicalFilename:Gw}},buildImportPaths:q_,detectionPaths:[gs,Ei,".claude/rules",".claude/commands"],nativeInstall:{pickPaths:[{prefix:".claude/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/skills/",feature:"skills",strategy:{kind:"firstSegment"}}]}};});function QS(e){return e.agents.map(t=>({path:`${rr}/${t.name}.md`,content:T({name:t.name,description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-permission-mode":t.permissionMode||void 0,"x-agentsmesh-max-turns":t.maxTurns>0?t.maxTurns:void 0,"x-agentsmesh-mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(t.hooks).length>0?t.hooks:void 0,"x-agentsmesh-skills":t.skills.length>0?t.skills:void 0,"x-agentsmesh-memory":t.memory||void 0},t.body.trim())}))}var eT=d(()=>{B();Dr();s(QS,"generateAgents");});function sQ(e){let t=basename(e,".md");return t==="_root"?"root":t}function tT(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";t.push({path:wi,content:n});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=sQ(n.source),i={description:n.description||void 0,paths:n.globs.length>0?n.globs:void 0};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${_s}/${o}.md`,content:a});}return t}function rT(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n?`${r}
79
+ `:""}var Gx=d(()=>{s(iQ,"ruleSectionTitle");s(Mx,"renderClaudeGlobalPrimaryInstructions");});function jx(e,t){return e===null?"created":e!==t?"updated":"unchanged"}async function Ux(e,t,r,n){if(r!=="global")return [];let o=n.has("agents"),i=n.has("commands");if(!o&&!i)return [];let a=[];if(o)for(let l of e.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Q_}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:jx(u,m)});}if(i)for(let l of e.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Q_}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:jx(u,m)});}return a}var Bx=d(()=>{b();B();ys();s(jx,"computeStatus");s(Ux,"generateClaudeGlobalExtras");});function Kx(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Yn({...m,type:p}))continue;let u=p==="prompt"?xt(m)||Je(m):Je(m)||xt(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function Wx(e,t){let r=join(e,hs),n=await k(r);if(n===null)return false;let o;try{o=JSON.parse(n);}catch{return false}if(!o||typeof o!="object"||Array.isArray(o))return false;let i=Kx(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(e,va);return await O(dirname(l)),await L(l,a),t.push({fromTool:"claude-code",fromPath:r,toPath:va,feature:"hooks"}),true}async function Hx(e,t){let r=t.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(hs)),n=join(e,wp),o=await k(n);if(!o)return;let i;try{i=JSON.parse(o);}catch{return}if(!t.some(m=>m.feature==="mcp")&&i.mcpServers&&typeof i.mcpServers=="object"){let m=i.mcpServers;await Xe(e,Tp,m),t.push({fromTool:"claude-code",fromPath:n,toPath:Tp,feature:"mcp"});}let l=i.permissions;if(l&&typeof l=="object"&&!Array.isArray(l)){let m=l,p=Array.isArray(m.allow)?m.allow.filter(g=>typeof g=="string"):[],u=Array.isArray(m.deny)?m.deny.filter(g=>typeof g=="string"):[],f=Array.isArray(m.ask)?m.ask.filter(g=>typeof g=="string"):[];if(p.length>0||u.length>0||f.length>0){let g=stringify({allow:p,deny:u,ask:f}),h=join(e,Z_);await O(dirname(h)),await L(h,g),t.push({fromTool:"claude-code",fromPath:n,toPath:Z_,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=Kx(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(e,va);await O(dirname(u)),await L(u,p),t.push({fromTool:"claude-code",fromPath:n,toPath:va,feature:"hooks"});}}}var zx=d(()=>{Lr();b();hn();ys();s(Kx,"claudeHooksToCanonical");s(Wx,"importClaudeHooksJson");s(Hx,"importSettings");});async function Jx(e,t,r){let n=join(e,Op),o=join(e,q_),a=(await U(n)).filter(l=>l.endsWith("SKILL.md"));for(let l of a){let c=dirname(l),m=basename(c),p=join(o,m),u=await k(l);if(u===null)continue;let f=r(u,l,join(p,"SKILL.md")),g=ln(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
80
+ `);continue}let h=await U(c);for(let _ of h){let S=await k(_);if(S===null)continue;let R=relative(c,_),I=join(p,R);await O(dirname(I));let w=r(S,_,I);await L(I,R==="SKILL.md"?await Xn(I,g.value.frontmatter,g.value.body):w);let D=`${q_}/${m}/${R}`;t.push({fromTool:"claude-code",fromPath:_,toPath:D,feature:"skills"});}}}var Yx=d(()=>{b();B();de();ys();s(Jx,"importClaudeSkills");});async function Xx(e,t={}){let r=t.scope??"project",n=[],o=await H("claude-code",e,r);return n.push(...await Q(vf,e,r,{normalize:o})),await Jx(e,n,o),await Wx(e,n),await Hx(e,n),n}var Qx=d(()=>{ge();Ae();zx();Yx();QS();s(Xx,"importFromClaudeCode");});var qx,Zx,eT,tT=d(()=>{B();de();qt();ys();qx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${xp}/${e}`,content:await z(n,{...o,root:false},i)}},"claudeRuleMapper"),Zx=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=wr(o.allowedTools),l=a.length>0?a:wr(o["allowed-tools"]);return {destPath:n,toPath:`${af}/${e}`,content:await Ce(n,{description:typeof o.description=="string"?o.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"claudeCommandMapper"),eT=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${lf}/${e}`,content:await ve(n,o,i)}},"claudeAgentMapper");});function rT(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Bw}))}var nT=d(()=>{Ee();ys();s(rT,"lintRules");});var cQ,oT,mQ,pQ,vf,QS=d(()=>{Fx();ys();dt();Gx();Bx();Qx();tT();nT();Oe();cQ={name:"claude-code",primaryRootInstructionPath:gs,generateRules:bx,generateCommands:Ax,generateAgents:xx,generateSkills:Px,generateMcp:Tx,generatePermissions:Dx,generateHooks:Nx,generateIgnore:vx,importFrom:Xx},oT={rootInstructionPath:gs,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[gs,Oi,".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(e,t){return `.claude/rules/${e}.md`},commandPath(e,t){return `.claude/commands/${e}.md`},agentPath(e,t){return `.claude/agents/${e}.md`}}},mQ={rootInstructionPath:Oi,skillDir:".claude/skills",renderPrimaryRootInstruction:Mx,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[Oi,".claude/settings.json",Ap,hs,".claudeignore"]},rewriteGeneratedPath(e){return e===gs?Oi:e===_c?Ap:e},mirrorGlobalPath(e,t){return fe(e,".claude/skills",t)},paths:oT.paths},pQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},vf={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:cQ,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},emptyImportMessage:"No Claude Code config found (CLAUDE.md or .claude/rules/*.md).",lintRules:rT,project:oT,globalSupport:{capabilities:pQ,detectionPaths:[".claude/CLAUDE.md",".claude/rules",".claude/commands",".claude/agents",".claude/skills",".claude/settings.json",".claude/hooks.json",".claude/output-styles",".claudeignore",".claude.json",".agents/skills"],layout:mQ,scopeExtras:Ux},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[gs,Oi],global:[Oi]},canonicalDir:xp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Lp],global:[Lp]},canonicalDir:xp,extensions:[".md"],map:qx}],commands:{feature:"commands",mode:"directory",source:{project:[Cp],global:[Cp]},canonicalDir:af,extensions:[".md"],map:Zx},agents:{feature:"agents",mode:"directory",source:{project:[Ep],global:[Ep]},canonicalDir:lf,extensions:[".md"],map:eT},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[_c],global:[Ap]},canonicalDir:".agentsmesh",canonicalFilename:Tp},ignore:{feature:"ignore",mode:"flatFile",source:{project:[bp],global:[bp]},canonicalDir:".agentsmesh",canonicalFilename:Kw}},buildImportPaths:eS,detectionPaths:[gs,Oi,".claude/rules",".claude/commands"],nativeInstall:{pickPaths:[{prefix:".claude/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/skills/",feature:"skills",strategy:{kind:"firstSegment"}}]}};});function ZS(e){return e.agents.map(t=>({path:`${nr}/${t.name}.md`,content:T({name:t.name,description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-permission-mode":t.permissionMode||void 0,"x-agentsmesh-max-turns":t.maxTurns>0?t.maxTurns:void 0,"x-agentsmesh-mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(t.hooks).length>0?t.hooks:void 0,"x-agentsmesh-skills":t.skills.length>0?t.skills:void 0,"x-agentsmesh-memory":t.memory||void 0},t.body.trim())}))}var sT=d(()=>{B();Dr();s(ZS,"generateAgents");});function dQ(e){let t=basename(e,".md");return t==="_root"?"root":t}function iT(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";t.push({path:bi,content:n});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=dQ(n.source),i={description:n.description||void 0,paths:n.globs.length>0?n.globs:void 0};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${_s}/${o}.md`,content:a});}return t}function aT(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n?`${r}
81
81
 
82
- ${n}`:r||n;return {path:`${Rs}/${t.name}.md`,content:o}})}function nT(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
83
- `);return [{path:Na,content:t}]}function oT(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ss,content:t}]}function iQ(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function qS(e){return e.replace(/[\r\n]+/g," ")}function aQ(e,t,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${qS(e)}`,`# agentsmesh-matcher: ${qS(r)}`,`# agentsmesh-command: ${qS(t)}`,"set -eu",t,""].join(`
84
- `)}function sT(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=0;for(let i of n)mn(i)&&(t.push({path:`${va}/${iQ(r)}-${o}.sh`,content:aQ(r,i.command,i.matcher)}),o++);}return t}function iT(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${Pt}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Pt}/${r.name}/${a}`,content:i.content});}}return t}var aT=d(()=>{Ir();B();Dr();eT();s(sQ,"ruleSlug");s(tT,"generateRules");s(rT,"generateCommands");s(nT,"generateIgnore");s(oT,"generateMcp");s(iQ,"safeEventName");s(qS,"safeShellLine");s(aQ,"buildHookScript");s(sT,"generateHooks");s(iT,"generateSkills");});async function lT(e,t,r){if(e==="workflows"||e.startsWith("workflows/"))return null;let n=e.replace(/\\/g,"/");if(n==="_root.md")return null;let o=join(t,n),{frontmatter:i,body:a}=x(r(o)),l=as(i.paths??i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${bi}/${n}`,feature:"rules",content:await z(o,c,a)}}async function cT(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=Object.prototype.hasOwnProperty.call(o,"description"),l=a&&typeof o.description=="string"?o.description:"",c=a,m=i;if(!c){let p=i.indexOf(`
82
+ ${n}`:r||n;return {path:`${Rs}/${t.name}.md`,content:o}})}function lT(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
83
+ `);return [{path:Fa,content:t}]}function cT(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ss,content:t}]}function fQ(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function eR(e){return e.replace(/[\r\n]+/g," ")}function gQ(e,t,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${eR(e)}`,`# agentsmesh-matcher: ${eR(r)}`,`# agentsmesh-command: ${eR(t)}`,"set -eu",t,""].join(`
84
+ `)}function mT(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=0;for(let i of n)mn(i)&&(t.push({path:`${Ma}/${fQ(r)}-${o}.sh`,content:gQ(r,i.command,i.matcher)}),o++);}return t}function pT(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${Pt}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Pt}/${r.name}/${a}`,content:i.content});}}return t}var uT=d(()=>{Lr();B();Dr();sT();s(dQ,"ruleSlug");s(iT,"generateRules");s(aT,"generateCommands");s(lT,"generateIgnore");s(cT,"generateMcp");s(fQ,"safeEventName");s(eR,"safeShellLine");s(gQ,"buildHookScript");s(mT,"generateHooks");s(pT,"generateSkills");});async function dT(e,t,r){if(e==="workflows"||e.startsWith("workflows/"))return null;let n=e.replace(/\\/g,"/");if(n==="_root.md")return null;let o=join(t,n),{frontmatter:i,body:a}=x(r(o)),l=as(i.paths??i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${Ai}/${n}`,feature:"rules",content:await z(o,c,a)}}async function fT(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=Object.prototype.hasOwnProperty.call(o,"description"),l=a&&typeof o.description=="string"?o.description:"",c=a,m=i;if(!c){let p=i.indexOf(`
85
85
 
86
86
  `);if(p>0){let u=i.slice(0,p).trim();u&&!u.includes(`
87
- `)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${sf}/${e}`,feature:"commands",content:await Ce(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}async function mT(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a={...o},l={disallowedTools:"x-agentsmesh-disallowed-tools",permissionMode:"x-agentsmesh-permission-mode",maxTurns:"x-agentsmesh-max-turns",mcpServers:"x-agentsmesh-mcp-servers",hooks:"x-agentsmesh-hooks",skills:"x-agentsmesh-skills",memory:"x-agentsmesh-memory"};for(let[c,m]of Object.entries(l))Object.prototype.hasOwnProperty.call(o,m)&&(a[c]=o[m]);return {destPath:n,toPath:`.agentsmesh/agents/${e}`,feature:"agents",content:await ve(n,a,i)}}var eR=d(()=>{B();de();Qt();Dr();s(lT,"mapClineRuleFile");s(cT,"mapClineWorkflowFile");s(mT,"mapClineAgentFile");});async function pT(e,t,r){let n=join(e,bi),o=join(e,_s),i=join(e,_s),a=false;try{a=(await stat(i)).isFile();}catch{}if(a){let p=await k(i);if(p!==null){await O(n);let u=join(n,"_root.md"),{frontmatter:f,body:g}=x(r(p,i,u)),_=f.root===true?f:{...f,root:true},S=await z(u,_,g);await L(u,S),t.push({fromTool:"cline",fromPath:i,toPath:`${bi}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await k(c);if(m===null){let p=join(e,wi),u=await k(p);if(u!==null){l=p,await O(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=x(r(u,p,f)),S=g.root===true?g:{...g,root:true},R=await z(f,S,h);await L(f,R),t.push({fromTool:"cline",fromPath:p,toPath:`${bi}/_root.md`,feature:"rules"});}else {let h=(await U(o)).filter(_=>_.endsWith(".md")&&!_.includes("/workflows/")).sort()[0];if(h){let _=await k(h);if(_!==null){l=h,await O(n);let S=join(n,"_root.md"),{frontmatter:R,body:I}=x(r(_,h,S)),D=R.root===true?R:{...R,root:true},P=await z(S,D,I);await L(S,P),t.push({fromTool:"cline",fromPath:h,toPath:`${bi}/_root.md`,feature:"rules"});}}}}else {l=c,await O(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=x(r(m,c,p)),h=u.root===true?u:{...u,root:true},_=await z(p,h,f);await L(p,_),t.push({fromTool:"cline",fromPath:c,toPath:`${bi}/_root.md`,feature:"rules"});}return t.push(...await Se({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:lT(u,n,f),"mapEntry")})),a}var uT=d(()=>{b();B();de();qt();eR();Dr();s(pT,"importClineRules");});function cQ(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.command=="string"?t.command:"";if(!r)return null;let n=typeof t.type=="string"?t.type:typeof t.transportType=="string"?t.transportType:"stdio",o=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[],i=t.env,a=i!==null&&typeof i=="object"&&!Array.isArray(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[1]=="string")):{},l=typeof t.description=="string"?t.description:void 0;return {...l!==void 0&&{description:l},type:n,command:r,args:o,env:a}}async function dT(e,t){let r=[Ss,jw].map(c=>join(e,c)),n=null,o=null;for(let c of r){let m=await k(c);if(m!==null){n=c,o=m;break}}if(o===null)return;let i=n??r[0],a;try{a=JSON.parse(o);}catch{}let l=a?.mcpServers;if(l!==void 0&&typeof l=="object"&&l!==null&&Object.keys(l).length>0){let c={};for(let[m,p]of Object.entries(l)){let u=cQ(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await O(join(e,".agentsmesh")),await L(join(e,tS),JSON.stringify({mcpServers:c},null,2)),t.push({fromTool:Oi,fromPath:i,toPath:tS,feature:"mcp"}));}}var fT=d(()=>{b();Dr();s(cQ,"mapClineServerToCanonical");s(dT,"importClineMcp");});function gT(e){return mQ.some(t=>t.test(e))}var mQ,hT=d(()=>{mQ=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(gT,"isReservedArtifactName");});async function uQ(e){let t=await U(e).catch(()=>[]),r=[];for(let n of t){let o=relative(e,n).replace(/\\/g,"/"),i=basename(o);if(gT(i))continue;let a=await k(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function iu(e,t,r){let n=await uQ(t),o=join(r.projectRoot,r.destCanonicalSkillsDir,e);for(let i of n){let a=join(o,i.relativePath);await O(dirname(a));let l=r.normalize(i.content,i.absolutePath,a);if(i.relativePath==="SKILL.md"){let{frontmatter:c,body:m}=x(l),p=await Yn(a,{...c,name:e},m);await L(a,p);}else await L(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${e}/${i.relativePath}`,feature:"skills"});}}async function _T(e,t,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,e);await O(o);let i=join(o,"SKILL.md"),a=n.normalize(r,t,i),{frontmatter:l,body:c}=x(a),m=await Yn(i,{...l,name:e},c);await L(i,m),n.results.push({fromTool:n.targetName,fromPath:t,toPath:`${n.destCanonicalSkillsDir}/${e}/SKILL.md`,feature:"skills"});}async function au(e){let t=new Map;try{let n=(await U(e)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let i=dirname(o),a=basename(i);t.set(a,i);}}catch{}return t}async function Kc(e,t,r=[]){for(let n of e){let o=join(t.projectRoot,n),i=await au(o);if(i.size===0)continue;let a=false;for(let[l,c]of i){let m=join(c,"SKILL.md"),p=await k(m);if(p===null)continue;a=true;let{frontmatter:u,body:f}=x(p),g={skillName:l,skillDir:c,skillMdPath:m,rawContent:p,frontmatter:u,rawBody:f,options:t},h=false;for(let _ of r)if(await _.recognize(g)){h=true;break}h||await iu(l,c,t);}if(a)return}}function Wc(e){return {async recognize(t){let r=ac(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await Xn(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalAgentsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,Ri(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function ST(e){return {async recognize(t){let r=Wd(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await Xn(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalCommandsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,Hd(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var Hc=d(()=>{b();B();de();hT();_e();be();mp();s(uQ,"readNativeSkill");s(iu,"importDirectorySkill");s(_T,"importFlatSkill");s(au,"findDirectorySkills");s(Kc,"importSkillsDirectory");s(Wc,"projectedAgentRecognizer");s(ST,"commandSkillRecognizer");});async function RT(e,t,r,n=Pt){await Kc([n],{projectRoot:e,destCanonicalSkillsDir:Uw,targetName:"cline",normalize:r,results:t},[Wc({canonicalAgentsDir:Tp})]);}var kT=d(()=>{Hc();Dr();s(RT,"importClineSkills");});function nR(e,t){return e.match(new RegExp(`^# agentsmesh-${t}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function IT(e,t){let n=(await U(e).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===e);for(let o of n){let i=await k(o);if(!i)continue;let a=nR(i,"event"),l=nR(i,"command");if(!a||!l)continue;let c=nR(i,"matcher")??"*";t[a]||(t[a]=[]),t[a].push({matcher:c,command:l});}}async function CT(e,t){let r={};if(await IT(join(e,va),r),await IT(join(e,Ga),r),Object.keys(r).length===0)return;let n=join(e,Z_);await O(dirname(n)),await L(n,stringify(r)),t.push({fromTool:Oi,fromPath:join(e,Ga),toPath:Z_,feature:"hooks"});}var ET=d(()=>{b();Dr();s(nR,"extractMeta");s(IT,"loadHooksFromDir");s(CT,"importClineHooks");});async function OT(e){let t=[],r=await H(Oi,e),n=await pT(e,t,r),o=join(e,Na),i=await k(o);if(i!==null&&i.trim()){let l=i.split(/\r?\n/),c=[];for(let m of l){let p=m.trim();p&&!p.startsWith("#")&&c.push(p);}if(c.length>0){await O(join(e,".agentsmesh"));let m=join(e,eS);await L(m,c.join(`
88
- `)),t.push({fromTool:"cline",fromPath:o,toPath:eS,feature:"ignore"});}}await dT(e,t);let a=join(e,sf);return n||t.push(...await Se({srcDir:join(e,Rs),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>cT(l,a,c),"mapEntry")})),await RT(e,t,r),t.push(...await Se({srcDir:join(e,rr),destDir:join(e,Tp),extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>mT(l,join(e,Tp),c),"mapEntry")})),await CT(e,t),t}var wT=d(()=>{ge();b();qt();eR();uT();Dr();fT();kT();ET();s(OT,"importFromCline");});function bT(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Oi}))}var AT=d(()=>{Ee();Dr();s(bT,"lintRules");});function xT(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function TT(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","cline","cline hooks are emitted as .clinerules/hooks/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")]:[]:[]}var PT=d(()=>{Re();s(xT,"lintCommands");s(TT,"lintHooks");});var gQ,hQ,yQ,_Q,DT,NT=d(()=>{aT();La();Dr();wT();AT();PT();Oe();gQ={name:"cline",primaryRootInstructionPath:wi,generateRules:tT,generateCommands:rT,generateAgents:QS,generateSkills:iT,generateMcp:oT,generateHooks:sT,generateIgnore:nT,importFrom:OT},hQ={rootInstructionPath:wi,skillDir:".cline/skills",managedOutputs:{dirs:[rr,".cline/skills",".clinerules",".clinerules/hooks",".clinerules/workflows"],files:["AGENTS.md",".cline/cline_mcp_settings.json",".clineignore",".clinerules/typescript.md"]},paths:{rulePath(e,t){return `${_s}/${e}.md`},commandPath(e,t){return `${Rs}/${e}.md`},agentPath(e){return `${rr}/${e}.md`}}},yQ={skillDir:Pt,managedOutputs:{dirs:[Fa,Ma,Ga,Pt,rr,".agents/skills"],files:[Ss,Na]},rewriteGeneratedPath(e){return e===wi?null:e.startsWith(`${va}/`)?`${Ga}/${e.slice(va.length+1)}`:e.startsWith(`${Rs}/`)?`${Ma}/${e.slice(Rs.length+1)}`:e.startsWith(`${_s}/`)?`${Fa}/${e.slice(_s.length+1)}`:e},mirrorGlobalPath(e,t){return e.startsWith(`${Pt}/`)?`.agents/skills/${e.slice(Pt.length+1)}`:null},paths:{rulePath(e,t){return `${Fa}/${e}.md`},commandPath(e,t){return `${Ma}/${e}.md`},agentPath(e){return `${rr}/${e}.md`}}},_Q={rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},DT={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:gQ,capabilities:{rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Cline config found (.clinerules, .clineignore, .cline/cline_mcp_settings.json, or .cline/skills).",supportsConversion:{agents:true},lintRules:bT,lint:{commands:xT,hooks:TT},project:hQ,globalSupport:{capabilities:_Q,detectionPaths:[Fa,Ma,Ga,Pt,rr,Ss,Na],layout:yQ},buildImportPaths:rS,detectionPaths:[".clinerules",".cline"],nativeInstall:{pickPaths:[{prefix:Pt,feature:"skills",strategy:{kind:"skillDir"}},{prefix:Rs,feature:"commands",strategy:{kind:"basename",suffix:".md"}}]},conversionDefaults:{agentsToSkills:true}};});var ft,vT,Js,ul,FT,Mo,MT,Nf,Ys,dl,Go,fl,Xs,GT,lu,$T,oR,sR,jT,iR,UT,BT,aR,lR,cR,nt=d(()=>{ft="codex-cli",vT="codex.md",Js="AGENTS.md",ul=".codex/AGENTS.md",FT=".codex/AGENTS.override.md",Mo=".agents/skills",MT=".codex/skills",Nf=".codex/config.toml",Ys=".codex/hooks.json",dl=".codex/instructions",Go=".codex/rules",fl=".codex/agents",Xs=".agentsmesh/rules",GT=".agentsmesh/commands",lu=".agentsmesh/agents",$T=".agentsmesh/skills",oR=".agentsmesh/mcp.json",sR=".agentsmesh/hooks.yaml",jT="am-codex-rule:v1",iR="# am-json: ",UT="# am-body-b64-begin",BT="# am-body-b64-end",aR="# am64:",lR="<!-- agentsmesh:codex-rule-index:start -->",cR="<!-- agentsmesh:codex-rule-index:end -->";});function mR(e){return basename(e,".md")}function cu(e){return `${dl}/${mR(e.source)}.md`}function KT(e){let t={root:e.root,description:e.description||void 0,globs:e.globs.length>0?e.globs:void 0,targets:e.targets.length>0?e.targets:void 0,codex_emit:e.codexEmit||void 0,codex_instruction:e.codexInstructionVariant&&e.codexInstructionVariant!=="default"?e.codexInstructionVariant:void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),T(t,e.body.trim()||"")}function RQ(e){let t=[];return e.root?t.push("Applies to the whole project."):e.globs.length>0?t.push(`Applies to ${e.globs.map(r=>`\`${r}\``).join(", ")}.`):t.push("General guidance with no file glob restriction."),e.codexInstructionVariant==="override"&&t.push("Override guidance when this rule conflicts with broader instructions."),e.codexEmit==="execution"&&t.push(`Enforced in \`${Go}/${mR(e.source)}.rules\`.`),e.targets.length>0&&t.push(`Targeted to ${e.targets.map(r=>`\`${r}\``).join(", ")}.`),t.join(" ")}function WT(e,t){let r=e.trim(),n=t.filter(a=>!a.root);if(n.length===0)return r;let o=n.map(a=>`- [${a.description||mR(a.source)}](${cu(a)}): ${RQ(a)}`),i=[lR,"## Additional Rule Files",...o,cR].join(`
87
+ `)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${cf}/${e}`,feature:"commands",content:await Ce(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}async function gT(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a={...o},l={disallowedTools:"x-agentsmesh-disallowed-tools",permissionMode:"x-agentsmesh-permission-mode",maxTurns:"x-agentsmesh-max-turns",mcpServers:"x-agentsmesh-mcp-servers",hooks:"x-agentsmesh-hooks",skills:"x-agentsmesh-skills",memory:"x-agentsmesh-memory"};for(let[c,m]of Object.entries(l))Object.prototype.hasOwnProperty.call(o,m)&&(a[c]=o[m]);return {destPath:n,toPath:`.agentsmesh/agents/${e}`,feature:"agents",content:await ve(n,a,i)}}var rR=d(()=>{B();de();qt();Dr();s(dT,"mapClineRuleFile");s(fT,"mapClineWorkflowFile");s(gT,"mapClineAgentFile");});async function hT(e,t,r){let n=join(e,Ai),o=join(e,_s),i=join(e,_s),a=false;try{a=(await stat(i)).isFile();}catch{}if(a){let p=await k(i);if(p!==null){await O(n);let u=join(n,"_root.md"),{frontmatter:f,body:g}=x(r(p,i,u)),_=f.root===true?f:{...f,root:true},S=await z(u,_,g);await L(u,S),t.push({fromTool:"cline",fromPath:i,toPath:`${Ai}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await k(c);if(m===null){let p=join(e,bi),u=await k(p);if(u!==null){l=p,await O(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=x(r(u,p,f)),S=g.root===true?g:{...g,root:true},R=await z(f,S,h);await L(f,R),t.push({fromTool:"cline",fromPath:p,toPath:`${Ai}/_root.md`,feature:"rules"});}else {let h=(await U(o)).filter(_=>_.endsWith(".md")&&!_.includes("/workflows/")).sort()[0];if(h){let _=await k(h);if(_!==null){l=h,await O(n);let S=join(n,"_root.md"),{frontmatter:R,body:I}=x(r(_,h,S)),D=R.root===true?R:{...R,root:true},P=await z(S,D,I);await L(S,P),t.push({fromTool:"cline",fromPath:h,toPath:`${Ai}/_root.md`,feature:"rules"});}}}}else {l=c,await O(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=x(r(m,c,p)),h=u.root===true?u:{...u,root:true},_=await z(p,h,f);await L(p,_),t.push({fromTool:"cline",fromPath:c,toPath:`${Ai}/_root.md`,feature:"rules"});}return t.push(...await Se({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:dT(u,n,f),"mapEntry")})),a}var yT=d(()=>{b();B();de();Zt();rR();Dr();s(hT,"importClineRules");});function _T(e){return e===null||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}function yQ(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.type=="string"?t.type:void 0,n=typeof t.transportType=="string"?t.transportType:void 0,o=_T(t.env),i=typeof t.description=="string"?t.description:void 0,a=typeof t.command=="string"?t.command:"";if(a){let l=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[];return {...i!==void 0&&{description:i},type:r??n??"stdio",command:a,args:l,env:o}}return typeof t.url=="string"?{...i!==void 0&&{description:i},type:r??n??"http",url:t.url,headers:_T(t.headers),env:o}:null}async function ST(e,t){let r=[Ss,Hw].map(c=>join(e,c)),n=null,o=null;for(let c of r){let m=await k(c);if(m!==null){n=c,o=m;break}}if(o===null)return;let i=n??r[0],a;try{a=JSON.parse(o);}catch{}let l=a?.mcpServers;if(l!==void 0&&typeof l=="object"&&l!==null&&Object.keys(l).length>0){let c={};for(let[m,p]of Object.entries(l)){let u=yQ(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await O(join(e,".agentsmesh")),await L(join(e,nS),JSON.stringify({mcpServers:c},null,2)),t.push({fromTool:wi,fromPath:i,toPath:nS,feature:"mcp"}));}}var RT=d(()=>{b();Dr();s(_T,"toStringRecord");s(yQ,"mapClineServerToCanonical");s(ST,"importClineMcp");});function kT(e){return _Q.some(t=>t.test(e))}var _Q,IT=d(()=>{_Q=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(kT,"isReservedArtifactName");});async function RQ(e){let t=await U(e).catch(()=>[]),r=[];for(let n of t){let o=relative(e,n).replace(/\\/g,"/"),i=basename(o);if(kT(i))continue;let a=await k(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function au(e,t,r){let n=await RQ(t),o=join(r.projectRoot,r.destCanonicalSkillsDir,e);for(let i of n){let a=join(o,i.relativePath);await O(dirname(a));let l=r.normalize(i.content,i.absolutePath,a);if(i.relativePath==="SKILL.md"){let{frontmatter:c,body:m}=x(l),p=await Xn(a,{...c,name:e},m);await L(a,p);}else await L(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${e}/${i.relativePath}`,feature:"skills"});}}async function CT(e,t,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,e);await O(o);let i=join(o,"SKILL.md"),a=n.normalize(r,t,i),{frontmatter:l,body:c}=x(a),m=await Xn(i,{...l,name:e},c);await L(i,m),n.results.push({fromTool:n.targetName,fromPath:t,toPath:`${n.destCanonicalSkillsDir}/${e}/SKILL.md`,feature:"skills"});}async function lu(e){let t=new Map;try{let n=(await U(e)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let i=dirname(o),a=basename(i);t.set(a,i);}}catch{}return t}async function Hc(e,t,r=[]){for(let n of e){let o=join(t.projectRoot,n),i=await lu(o);if(i.size===0)continue;let a=false;for(let[l,c]of i){let m=join(c,"SKILL.md"),p=await k(m);if(p===null)continue;a=true;let{frontmatter:u,body:f}=x(p),g={skillName:l,skillDir:c,skillMdPath:m,rawContent:p,frontmatter:u,rawBody:f,options:t},h=false;for(let _ of r)if(await _.recognize(g)){h=true;break}h||await au(l,c,t);}if(a)return}}function zc(e){return {async recognize(t){let r=cc(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await Qn(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalAgentsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,ki(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function ET(e){return {async recognize(t){let r=Vd(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await Qn(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalCommandsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,Jd(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var Vc=d(()=>{b();B();de();IT();_e();be();pp();s(RQ,"readNativeSkill");s(au,"importDirectorySkill");s(CT,"importFlatSkill");s(lu,"findDirectorySkills");s(Hc,"importSkillsDirectory");s(zc,"projectedAgentRecognizer");s(ET,"commandSkillRecognizer");});async function OT(e,t,r,n=Pt){await Hc([n],{projectRoot:e,destCanonicalSkillsDir:zw,targetName:"cline",normalize:r,results:t},[zc({canonicalAgentsDir:Pp})]);}var wT=d(()=>{Vc();Dr();s(OT,"importClineSkills");});function sR(e,t){return e.match(new RegExp(`^# agentsmesh-${t}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function bT(e,t){let n=(await U(e).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===e);for(let o of n){let i=await k(o);if(!i)continue;let a=sR(i,"event"),l=sR(i,"command");if(!a||!l)continue;let c=sR(i,"matcher")??"*";t[a]||(t[a]=[]),t[a].push({matcher:c,command:l});}}async function xT(e,t){let r={};if(await bT(join(e,Ma),r),await bT(join(e,ja),r),Object.keys(r).length===0)return;let n=join(e,tS);await O(dirname(n)),await L(n,stringify(r)),t.push({fromTool:wi,fromPath:join(e,ja),toPath:tS,feature:"hooks"});}var TT=d(()=>{b();Dr();s(sR,"extractMeta");s(bT,"loadHooksFromDir");s(xT,"importClineHooks");});async function PT(e){let t=[],r=await H(wi,e),n=await hT(e,t,r),o=join(e,Fa),i=await k(o);if(i!==null&&i.trim()){let l=i.split(/\r?\n/),c=[];for(let m of l){let p=m.trim();p&&!p.startsWith("#")&&c.push(p);}if(c.length>0){await O(join(e,".agentsmesh"));let m=join(e,rS);await L(m,c.join(`
88
+ `)),t.push({fromTool:"cline",fromPath:o,toPath:rS,feature:"ignore"});}}await ST(e,t);let a=join(e,cf);return n||t.push(...await Se({srcDir:join(e,Rs),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>fT(l,a,c),"mapEntry")})),await OT(e,t,r),t.push(...await Se({srcDir:join(e,nr),destDir:join(e,Pp),extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>gT(l,join(e,Pp),c),"mapEntry")})),await xT(e,t),t}var DT=d(()=>{ge();b();Zt();rR();yT();Dr();RT();wT();TT();s(PT,"importFromCline");});function NT(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:wi}))}var vT=d(()=>{Ee();Dr();s(NT,"lintRules");});function FT(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function MT(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","cline","cline hooks are emitted as .clinerules/hooks/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")]:[]:[]}var GT=d(()=>{Re();s(FT,"lintCommands");s(MT,"lintHooks");});var LQ,CQ,EQ,OQ,$T,jT=d(()=>{uT();Ea();Dr();DT();vT();GT();Oe();LQ={name:"cline",primaryRootInstructionPath:bi,generateRules:iT,generateCommands:aT,generateAgents:ZS,generateSkills:pT,generateMcp:cT,generateHooks:mT,generateIgnore:lT,importFrom:PT},CQ={rootInstructionPath:bi,skillDir:".cline/skills",managedOutputs:{dirs:[nr,".cline/skills",".clinerules",".clinerules/hooks",".clinerules/workflows"],files:["AGENTS.md",".cline/cline_mcp_settings.json",".clineignore",".clinerules/typescript.md"]},paths:{rulePath(e,t){return `${_s}/${e}.md`},commandPath(e,t){return `${Rs}/${e}.md`},agentPath(e){return `${nr}/${e}.md`}}},EQ={skillDir:Pt,managedOutputs:{dirs:[Ga,$a,ja,Pt,nr,".agents/skills"],files:[Ss,Fa]},rewriteGeneratedPath(e){return e===bi?null:e.startsWith(`${Ma}/`)?`${ja}/${e.slice(Ma.length+1)}`:e.startsWith(`${Rs}/`)?`${$a}/${e.slice(Rs.length+1)}`:e.startsWith(`${_s}/`)?`${Ga}/${e.slice(_s.length+1)}`:e},mirrorGlobalPath(e,t){return e.startsWith(`${Pt}/`)?`.agents/skills/${e.slice(Pt.length+1)}`:null},paths:{rulePath(e,t){return `${Ga}/${e}.md`},commandPath(e,t){return `${$a}/${e}.md`},agentPath(e){return `${nr}/${e}.md`}}},OQ={rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},$T={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:LQ,capabilities:{rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Cline config found (.clinerules, .clineignore, .cline/cline_mcp_settings.json, or .cline/skills).",supportsConversion:{agents:true},lintRules:NT,lint:{commands:FT,hooks:MT},project:CQ,globalSupport:{capabilities:OQ,detectionPaths:[Ga,$a,ja,Pt,nr,Ss,Fa],layout:EQ},buildImportPaths:oS,detectionPaths:[".clinerules",".cline"],nativeInstall:{pickPaths:[{prefix:Pt,feature:"skills",strategy:{kind:"skillDir"}},{prefix:Rs,feature:"commands",strategy:{kind:"basename",suffix:".md"}}]},conversionDefaults:{agentsToSkills:true}};});var ft,UT,Js,fl,BT,Go,KT,Mf,Ys,gl,$o,hl,Xs,WT,cu,HT,iR,aR,zT,lR,VT,JT,cR,mR,pR,nt=d(()=>{ft="codex-cli",UT="codex.md",Js="AGENTS.md",fl=".codex/AGENTS.md",BT=".codex/AGENTS.override.md",Go=".agents/skills",KT=".codex/skills",Mf=".codex/config.toml",Ys=".codex/hooks.json",gl=".codex/instructions",$o=".codex/rules",hl=".codex/agents",Xs=".agentsmesh/rules",WT=".agentsmesh/commands",cu=".agentsmesh/agents",HT=".agentsmesh/skills",iR=".agentsmesh/mcp.json",aR=".agentsmesh/hooks.yaml",zT="am-codex-rule:v1",lR="# am-json: ",VT="# am-body-b64-begin",JT="# am-body-b64-end",cR="# am64:",mR="<!-- agentsmesh:codex-rule-index:start -->",pR="<!-- agentsmesh:codex-rule-index:end -->";});function uR(e){return basename(e,".md")}function mu(e){return `${gl}/${uR(e.source)}.md`}function YT(e){let t={root:e.root,description:e.description||void 0,globs:e.globs.length>0?e.globs:void 0,targets:e.targets.length>0?e.targets:void 0,codex_emit:e.codexEmit||void 0,codex_instruction:e.codexInstructionVariant&&e.codexInstructionVariant!=="default"?e.codexInstructionVariant:void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),T(t,e.body.trim()||"")}function bQ(e){let t=[];return e.root?t.push("Applies to the whole project."):e.globs.length>0?t.push(`Applies to ${e.globs.map(r=>`\`${r}\``).join(", ")}.`):t.push("General guidance with no file glob restriction."),e.codexInstructionVariant==="override"&&t.push("Override guidance when this rule conflicts with broader instructions."),e.codexEmit==="execution"&&t.push(`Enforced in \`${$o}/${uR(e.source)}.rules\`.`),e.targets.length>0&&t.push(`Targeted to ${e.targets.map(r=>`\`${r}\``).join(", ")}.`),t.join(" ")}function XT(e,t){let r=e.trim(),n=t.filter(a=>!a.root);if(n.length===0)return r;let o=n.map(a=>`- [${a.description||uR(a.source)}](${mu(a)}): ${bQ(a)}`),i=[mR,"## Additional Rule Files",...o,pR].join(`
89
89
  `);return r?`${r}
90
90
 
91
- ${i}`:i}function HT(e){let t=lR.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=cR.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`\\n?${t}[\\s\\S]*?${r}\\n?`,"g"),`
92
- `).trim()}var vf=d(()=>{B();nt();s(mR,"ruleSlug");s(cu,"codexInstructionMirrorPath");s(KT,"serializeCodexInstructionMirror");s(RQ,"summarizeRule");s(WT,"appendCodexRuleIndex");s(HT,"stripCodexRuleIndex");});function IQ(e){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(e)}function LQ(e){return e.split(`
91
+ ${i}`:i}function QT(e){let t=mR.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=pR.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`\\n?${t}[\\s\\S]*?${r}\\n?`,"g"),`
92
+ `).trim()}var Gf=d(()=>{B();nt();s(uR,"ruleSlug");s(mu,"codexInstructionMirrorPath");s(YT,"serializeCodexInstructionMirror");s(bQ,"summarizeRule");s(XT,"appendCodexRuleIndex");s(QT,"stripCodexRuleIndex");});function xQ(e){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(e)}function TQ(e){return e.split(`
93
93
  `).map(t=>t.length>0?`# ${t}`:"#").join(`
94
- `)}function CQ(e){let t=e.trim();return t?IQ(t)?`${t}
95
- `:`${["# agentsmesh: canonical execution rule body is not Codex DSL","# The original body is preserved below as comments.","# Replace with Codex rules DSL (for example prefix_rule(...)) to enforce behavior.","#",...LQ(t).split(`
94
+ `)}function PQ(e){let t=e.trim();return t?xQ(t)?`${t}
95
+ `:`${["# agentsmesh: canonical execution rule body is not Codex DSL","# The original body is preserved below as comments.","# Replace with Codex rules DSL (for example prefix_rule(...)) to enforce behavior.","#",...TQ(t).split(`
96
96
  `),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
97
97
  `)}
98
- `:""}function pR(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:Js,content:WT(t.body,e.rules)});for(let n of e.rules){if(n.root)continue;let o=basename(n.source,".md");n.targets.length>0&&!n.targets.includes("codex-cli")||(n.codexEmit==="execution"&&r.push({path:`${Go}/${o}.rules`,content:CQ(n.body)}),r.push({path:cu(n),content:KT(n)}));}return r}function uR(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root||n.codexEmit==="execution"?false:n.targets.length===0||n.targets.includes("codex-cli"));return le(t?.body.trim()??"",r)}var zT=d(()=>{Be();nt();vf();s(IQ,"looksLikeCodexRulesDsl");s(LQ,"toCodexRulesComments");s(CQ,"toSafeCodexRulesContent");s(pR,"generateRules");s(uR,"renderCodexGlobalInstructions");});function dR(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${Mo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Mo}/${r.name}/${a}`,content:i.content});}}return t}function EQ(e){return {path:`${Mo}/${J(e.name)}/SKILL.md`,content:Ge(e)}}function fR(e){return e.commands.map(EQ)}var VT=d(()=>{B();nt();be();s(dR,"generateSkills");s(EQ,"commandToSkillOutput");s(fR,"generateCommands");});function gR(e){return e.agents.map(t=>({path:`${fl}/${t.name}.toml`,content:OQ(t)}))}function OQ(e){let t=[];t.push(`name = ${JSON.stringify(e.name)}`),e.description&&t.push(`description = ${JSON.stringify(e.description)}`),e.model&&t.push(`model = ${JSON.stringify(e.model)}`),e.permissionMode==="read-only"||e.permissionMode==="deny"?t.push('sandbox_mode = "read-only"'):e.permissionMode==="allow"&&t.push('sandbox_mode = "workspace-write"');let r=e.body.trim()||"";if(r.includes("'''")){let n=r.replace(/\\/g,"\\\\").replace(/"/g,'\\"');t.push(`developer_instructions = """
98
+ `:""}function dR(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:Js,content:XT(t.body,e.rules)});for(let n of e.rules){if(n.root)continue;let o=basename(n.source,".md");n.targets.length>0&&!n.targets.includes("codex-cli")||(n.codexEmit==="execution"&&r.push({path:`${$o}/${o}.rules`,content:PQ(n.body)}),r.push({path:mu(n),content:YT(n)}));}return r}function fR(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root||n.codexEmit==="execution"?false:n.targets.length===0||n.targets.includes("codex-cli"));return le(t?.body.trim()??"",r)}var qT=d(()=>{Be();nt();Gf();s(xQ,"looksLikeCodexRulesDsl");s(TQ,"toCodexRulesComments");s(PQ,"toSafeCodexRulesContent");s(dR,"generateRules");s(fR,"renderCodexGlobalInstructions");});function gR(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${Go}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Go}/${r.name}/${a}`,content:i.content});}}return t}function DQ(e){return {path:`${Go}/${J(e.name)}/SKILL.md`,content:Ge(e)}}function hR(e){return e.commands.map(DQ)}var ZT=d(()=>{B();nt();be();s(gR,"generateSkills");s(DQ,"commandToSkillOutput");s(hR,"generateCommands");});function yR(e){return e.agents.map(t=>({path:`${hl}/${t.name}.toml`,content:NQ(t)}))}function NQ(e){let t=[];t.push(`name = ${JSON.stringify(e.name)}`),e.description&&t.push(`description = ${JSON.stringify(e.description)}`),e.model&&t.push(`model = ${JSON.stringify(e.model)}`),e.permissionMode==="read-only"||e.permissionMode==="deny"?t.push('sandbox_mode = "read-only"'):e.permissionMode==="allow"&&t.push('sandbox_mode = "workspace-write"');let r=e.body.trim()||"";if(r.includes("'''")){let n=r.replace(/\\/g,"\\\\").replace(/"/g,'\\"');t.push(`developer_instructions = """
99
99
  ${n}
100
100
  """`);}else t.push(`developer_instructions = '''
101
101
  ${r}
102
102
  '''`);return t.join(`
103
103
  `)+`
104
- `}var JT=d(()=>{nt();s(gR,"generateAgents");s(OQ,"serializeAgentToCodexToml");});function Ff(e){return "command"in e}function YT(e){return "url"in e}var Mf=d(()=>{s(Ff,"isStdioMcpServer");s(YT,"isUrlMcpServer");});function hR(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).flatMap(([n,o])=>Ff(o)?[[n,o]]:[]));if(Object.keys(t).length===0)return [];let r=wQ(t);return [{path:Nf,content:r}]}function wQ(e){let t=[];for(let[r,n]of Object.entries(e)){let o=XT(r)?`"${r}"`:r,i=[];i.push(`[mcp_servers.${o}]`),i.push(`command = ${JSON.stringify(n.command)}`);let a="["+n.args.map(c=>JSON.stringify(c)).join(", ")+"]";i.push(`args = ${a}`);let l=Object.entries(n.env);if(l.length>0){let c=l.map(([m,p])=>`${XT(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}t.push(i.join(`
104
+ `}var eP=d(()=>{nt();s(yR,"generateAgents");s(NQ,"serializeAgentToCodexToml");});function $f(e){return "command"in e}function tP(e){return "url"in e}var jf=d(()=>{s($f,"isStdioMcpServer");s(tP,"isUrlMcpServer");});function _R(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).flatMap(([n,o])=>$f(o)?[[n,o]]:[]));if(Object.keys(t).length===0)return [];let r=vQ(t);return [{path:Mf,content:r}]}function vQ(e){let t=[];for(let[r,n]of Object.entries(e)){let o=rP(r)?`"${r}"`:r,i=[];i.push(`[mcp_servers.${o}]`),i.push(`command = ${JSON.stringify(n.command)}`);let a="["+n.args.map(c=>JSON.stringify(c)).join(", ")+"]";i.push(`args = ${a}`);let l=Object.entries(n.env);if(l.length>0){let c=l.map(([m,p])=>`${rP(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}t.push(i.join(`
105
105
  `));}return t.join(`
106
106
 
107
107
  `)+`
108
- `}function XT(e){return !/^[A-Za-z0-9_-]+$/.test(e)}var QT=d(()=>{Mf();nt();s(hR,"generateMcp");s(wQ,"serializeMcpToToml");s(XT,"needsTomlQuoting");});function yR(e){if(!e.hooks)return [];let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=n.flatMap(i=>{if(!mn(i)||i.type==="prompt")return [];let a={type:"command",command:Je(i)};return i.timeout!==void 0&&(a.timeout=i.timeout),[{matcher:i.matcher,hooks:[a]}]});o.length>0&&(t[r]=o);}return Object.keys(t).length===0?[]:[{path:Ys,content:JSON.stringify({hooks:t},null,2)}]}var qT=d(()=>{Ir();nt();s(yR,"generateHooks");});var ZT=d(()=>{zT();VT();JT();QT();qT();});var eP=d(()=>{ZT();});function xQ(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,r=typeof t.command=="string"?t.command:"";if(!r)return null;let n=Array.isArray(t.args)?t.args.filter(a=>typeof a=="string"):[],o=t.env,i=o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.fromEntries(Object.entries(o).filter(a=>typeof a[1]=="string")):{};return {type:"stdio",command:r,args:n,env:i}}async function tP(e,t){let r=join(e,Nf),n=await k(r);if(n===null)return;let o;try{o=parse$1(n);}catch{return}let i=o.mcp_servers;if(!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).length===0)return;let a={};for(let[l,c]of Object.entries(i)){let m=xQ(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Xe(e,oR,a),t.push({fromTool:ft,fromPath:r,toPath:oR,feature:"mcp"}));}var rP=d(()=>{b();hn();nt();s(xQ,"mapTomlServerToCanonical");s(tP,"importMcp");});async function nP(e,t,r){await Kc([Mo,MT],{projectRoot:e,destCanonicalSkillsDir:$T,targetName:ft,normalize:r,results:t},[ST({canonicalCommandsDir:GT}),Wc({canonicalAgentsDir:lu})]);}var oP=d(()=>{Hc();nt();s(nP,"importSkills");});async function sP(e,t,r){let n=join(e,fl),o=join(e,lu);try{let a=(await U(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await k(l);if(!c)continue;let m=parse$1(c);if(!m||typeof m!="object")continue;let p=typeof m.name=="string"?m.name:basename(l,".toml"),u=typeof m.description=="string"?m.description:"",f=typeof m.developer_instructions=="string"?m.developer_instructions.trim():"",g=typeof m.model=="string"?m.model:"",h=typeof m.sandbox_mode=="string"?m.sandbox_mode:"",_=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",S=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(P=>typeof P=="string"):[];await O(o);let R=join(o,`${p}.md`),I=r(f,l,R),D=Ri({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:_,maxTurns:0,mcpServers:S,hooks:{},skills:[],memory:""},I);await L(R,D),t.push({fromTool:ft,fromPath:l,toPath:`${lu}/${p}.md`,feature:"agents"});}}catch{}}var iP=d(()=>{b();_e();nt();s(sP,"importCodexAgentsFromToml");});function aP(e){if(!e.includes(jT))return null;let t=e.split(`
109
- `).find(c=>c.startsWith(iR));if(!t)return null;let r;try{r=JSON.parse(t.slice(iR.length));}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=typeof n.description=="string"?n.description:"",i=Array.isArray(n.globs)?n.globs.filter(c=>typeof c=="string"):[],a=[],l=false;for(let c of e.split(`
110
- `)){let m=c.trimEnd();if(m===UT){l=true;continue}if(m===BT){l=false;continue}l&&m.startsWith(aR)&&a.push(m.slice(aR.length));}if(a.length===0)return null;try{let c=Buffer$1.from(a.join(""),"base64").toString("utf8");return {meta:{description:o,globs:i},body:c}}catch{return null}}var lP=d(()=>{nt();s(aP,"tryParseEmbeddedCanonicalFromCodexRules");});async function mP(e,t,r){let n=[],o=join(e,Go);try{let i=await U(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(t,p),{frontmatter:f,body:g}=x(r(m,c,u));await O(t);let h=f.root===!0?f:{...f,root:!1},_=await z(u,h,g);await L(u,_),n.push({fromTool:ft,fromPath:c,toPath:`${Xs}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(t,p);await O(t);let f=aP(m);if(f){let g=await z(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await L(u,g);}else {let g=await z(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await L(u,g);}n.push({fromTool:ft,fromPath:c,toPath:`${Xs}/${p}`,feature:"rules"});}}catch{}return n}var pP=d(()=>{b();B();de();nt();lP();s(mP,"importCodexNonRootRuleFiles");});async function dP(e,t,r,n,o){let i=join(e,vT),a=join(e,Js),l=join(e,FT),c=join(e,ul),m=o==="global"?await k(l):null,p=o==="global"?await k(c):null,u=o==="project"?await k(a):null,f=o==="project"?await k(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(e,Xs),_=m??p??u??f;if(_!==null){await O(h);let S=join(h,"_root.md"),R=g===a||g===c||g===l?HT(_):_,I=await Fo({content:R,projectRoot:e,rulesDir:Xs,sourcePath:g,fromTool:"codex-cli",normalize:r});t.push(...I.results);let w=r(g===a||g===c||g===l?n(I.rootContent,g,S):I.rootContent,g,S),{frontmatter:D,body:P}=x(w),K=D.root===true?D:{...D,root:true},G=await z(S,K,P);await L(S,G),t.push({fromTool:"codex-cli",fromPath:g,toPath:`${Xs}/_root.md`,feature:"rules"});}await FQ(e,h,t,r),t.push(...await mP(e,h,r)),o!=="global"&&t.push(...await Se({srcDir:e,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:S,normalizeTo:R})=>{let I=relative(e,dirname(S)).replace(/\\/g,"/"),w=basename(S),D=w==="AGENTS.override.md";if(!I||I==="."||!D&&w!=="AGENTS.md")return null;let P=I.replace(/\//g,"-");if(!Xd(I))return await Xn(join(h,`${P}.md`)),null;let K=join(h,`${P}.md`),{frontmatter:G,body:Y}=x(R(K));return {destPath:K,toPath:`${Xs}/${P}.md`,feature:"rules",content:await z(K,{...G,root:false,globs:[`${I}/**`],...D?{codex_instruction:"override"}:{}},Y)}},"mapEntry")}));}async function FQ(e,t,r,n){try{let i=(await U(join(e,dl))).filter(l=>l.endsWith(".md")),a=join(e,dl);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await k(l);if(!m)continue;let p=join(t,c),{frontmatter:u,body:f}=x(n(m,l,p));await O(t);let g=u.root===!0?u:{...u,root:!1},h=await z(p,g,f);await L(p,h),r.push({fromTool:ft,fromPath:l,toPath:`${Xs}/${c}`,feature:"rules"});}}catch{}}var fP=d(()=>{b();B();de();Bc();qt();mp();nt();pP();vf();s(dP,"importCodexRules");s(FQ,"importInstructionMirrors");});async function hP(e,t){let r=join(e,Ys),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object")return;let i=o.hooks;if(!i||typeof i!="object"||Array.isArray(i))return;let a={};for(let[c,m]of Object.entries(i))if(Array.isArray(m))for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.matcher=="string"?u.matcher:"*";if(Array.isArray(u.hooks))for(let g of u.hooks){if(!g||typeof g!="object")continue;let h=g;if(h.type!=="command"||typeof h.command!="string")continue;let _={matcher:f,command:h.command,type:"command"};typeof h.timeout=="number"&&(_.timeout=h.timeout),(a[c]??=[]).push(_);}}if(Object.keys(a).length===0)return;let l=join(e,sR);await O(dirname(l)),await L(l,stringify(a)),t.push({fromTool:ft,fromPath:r,toPath:sR,feature:"hooks"});}var yP=d(()=>{b();nt();s(hP,"importCodexHooks");});async function _P(e,t){let r=t?.scope??"project",n=[],o=await H(ft,e,r),i=await H("windsurf",e,r);return await dP(e,n,o,i,r),await nP(e,n,o),await sP(e,n,o),await tP(e,n),await hP(e,n),n}var SP=d(()=>{ge();nt();rP();oP();iP();fP();yP();s(_P,"importFromCodex");});function RP(e,t,r){let{rules:n}=e;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(t,n[0].source),target:ft,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var kP=d(()=>{nt();s(RP,"lintRules");});function IP(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&t.push(F(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`)),"url"in n||"type"in n){let o="type"in n?n.type:"url";t.push(F(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return t}var LP=d(()=>{Re();s(IP,"lintMcp");});function CP(e){return cu(e)}var EP=d(()=>{vf();s(CP,"codexAdvisoryInstructionPath");});var jQ,UQ,BQ,KQ,wP,bP=d(()=>{eP();nt();SP();kP();LP();Oe();op();EP();be();jQ={name:"codex-cli",primaryRootInstructionPath:Js,generateRules:pR,generateCommands:fR,generateAgents:gR,generateSkills:dR,generateMcp:hR,generateHooks:yR,importFrom:_P},UQ={rootInstructionPath:Js,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${Go}/${t}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml",Ys]},paths:{rulePath(e,t){return CP(t)},commandPath(e,t){return oc(t,"codex-cli")?`${Mo}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${fl}/${e}.toml`}}},BQ={rootInstructionPath:ul,renderPrimaryRootInstruction:uR,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${Go}/${t}.rules`]},skillDir:Mo,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[ul,".codex/config.toml",Ys]},rewriteGeneratedPath(e){return e===Js?ul:e.startsWith(`${dl}/`)?null:e},paths:{rulePath(e,t){return t.codexEmit==="execution"?`${Go}/${e}.rules`:ul},commandPath(e,t){return oc(t,"codex-cli")?`${Mo}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${fl}/${e}.toml`}}},KQ={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},wP={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:jQ,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},emptyImportMessage:"No Codex config found (codex.md or AGENTS.md).",supportsConversion:{commands:true},lintRules:RP,lint:{mcp:IP},project:UQ,globalSupport:{capabilities:KQ,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",Ys,".agents/skills"],layout:BQ},buildImportPaths:nS,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",Ys],nativeInstall:{pickPaths:[{prefix:".codex",feature:"rules",strategy:{kind:"basename",suffix:".md"}}]},excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function HQ(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function AP(e){return `${io}/${e}.md`}function xP(e){let t={description:e.description||void 0,invokable:true,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function TP(e,t){let r=basename(t,".md");return {name:((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||r).trim(),description:typeof e.description=="string"?e.description:"",allowedTools:HQ(e["x-agentsmesh-allowed-tools"])}}function PP(e,t){let r={description:e.description||void 0,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],T(r,t.trim()||"")}var Gf=d(()=>{B();ao();s(HQ,"toStringArray");s(AP,"continueCommandRulePath");s(xP,"serializeCommandRule");s(TP,"parseCommandRuleFrontmatter");s(PP,"serializeImportedCommand");});function DP(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),t.push({path:ks,content:T(n,r.body.trim()||"")});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("continue"))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs),t.push({path:`${Sn}/${o}.md`,content:T(i,n.body.trim()||"")});}return t}function NP(e){return e.commands.map(t=>({path:`${io}/${t.name}.md`,content:xP(t)}))}function vP(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:af,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function FP(e){return e.agents.map(t=>({path:`${nr}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function MP(e){return ie(e,nr)}var GP=d(()=>{oe();_e();B();Gf();ao();s(DP,"generateRules");s(NP,"generateCommands");s(vP,"generateMcp");s(FP,"generateAgents");s(MP,"generateSkills");});function YQ(e,t){let n=(t===".json"?JSON.parse(e):parse(e)??{}).mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a;typeof l.command=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:qn(l.args),env:wr(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function XQ(e,t){let r=(await U(join(e,oS))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await k(i);a&&(Object.assign(n,YQ(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Xe(e,iS,n);for(let i of o)t.push({fromTool:yc,fromPath:i,toPath:iS,feature:"mcp"});}}async function jP(e){let t=[],r=await H(yc,e);return t.push(...await Q($f,e,"project",{normalize:r})),await ne(e,nr,yc,t,r),await XQ(e,t),t}var UP=d(()=>{ge();b();oe();Ae();hn();Qt();ao();RR();s(YQ,"readMcpServers");s(XQ,"importMcp");s(jP,"importFromContinue");});function QQ(e){return e==="general.md"||e==="_root.md"}var BP,KP,WP=d(()=>{B();de();Gf();ao();s(QQ,"isContinueRootRulePath");BP=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=QQ(e),o=n?"_root.md":e,i=join(r,o),{frontmatter:a,body:l}=x(t(i)),c={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:n};return c.description===void 0&&delete c.description,c.globs===void 0&&delete c.globs,{destPath:i,toPath:`${lf}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),KP=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=join(n,t),{frontmatter:i,body:a}=x(r(o)),l=TP(i,e),c=l.name||t.replace(/\.md$/,"").replace(/^.*\//,""),m=t.includes("/")?t.slice(0,t.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await Ce(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},x(PP(l,a)).body);return {destPath:u,toPath:`${cf}/${p}`,content:f}},"continueCommandMapper");});function HP(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:yc}))}var zP=d(()=>{Ee();ao();s(HP,"lintRules");});function VP(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var JP=d(()=>{Re();s(VP,"lintCommands");});function tq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var YP,XP=d(()=>{b();ao();s(tq,"computeStatus");YP=s(async(e,t,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&e.rules.length>0||i&&e.commands.length>0||a&&e.mcp!==null&&Object.keys(e.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&e.rules.length>0&&(c.rules=e.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&e.commands.length>0&&(c.prompts=e.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&e.mcp!==null){let u=Object.entries(e.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await k(join(t,Pp));return [{target:"continue",path:Pp,content:m,currentContent:p??void 0,status:tq(p,m)}]},"generateContinueGlobalConfig");});function nq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var QP,qP=d(()=>{b();ao();XP();s(nq,"computeStatus");QP=s(async(e,t,r,n)=>{let o=await YP(e,t,r,n);if(r!=="global"||!n.has("rules"))return o;let i=e.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await k(join(t,_c));return [...o,{target:"continue",path:_c,content:a,currentContent:l??void 0,status:nq(l,a)}]},"generateContinueScopeExtras");});var oq,sq,iq,aq,$f,RR=d(()=>{_e();GP();ao();UP();WP();zP();JP();Gf();Oe();qP();oq={name:"continue",primaryRootInstructionPath:ks,generateRules:DP,generateCommands:NP,generateAgents:FP,generateSkills:MP,generateMcp:vP,importFrom:jP},sq={rootInstructionPath:ks,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(e,t){return `${Sn}/${e}.md`},commandPath(e,t){return AP(e)},agentPath(e){return `${nr}/${V(e)}/SKILL.md`}}},iq={rootInstructionPath:ks,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[_c]}],skillDir:nr,managedOutputs:{dirs:[Sn,io,nr,".agents/skills"],files:[af,_c,Pp]},mirrorGlobalPath(e,t){return e.startsWith(`${nr}/`)?`.agents/skills/${e.slice(nr.length+1)}`:null},paths:{rulePath(e,t){return `${Sn}/${e}.md`},commandPath(e,t){return `${io}/${e}.md`},agentPath(e){return `${nr}/${V(e)}/SKILL.md`}}},aq={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},$f={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:oq,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Continue config found (.continue/rules/*.md, .continue/skills, or .continue/mcpServers/*).",supportsConversion:{agents:true},lintRules:HP,lint:{commands:VP},project:sq,globalSupport:{capabilities:aq,detectionPaths:[Sn,io,".continue/mcpServers",nr],layout:iq,scopeExtras:QP},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Sn],global:[Sn]},canonicalDir:lf,extensions:[".md"],map:BP},commands:{feature:"commands",mode:"directory",source:{project:[io],global:[io]},canonicalDir:cf,extensions:[".md"],map:KP}},buildImportPaths:aS,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],nativeInstall:{pickPaths:[{prefix:".continue/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/prompts",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/skills",feature:"skills",strategy:{kind:"skillDir"}}]},conversionDefaults:{agentsToSkills:true}};});var Qs,Qi,ZP,qi,qs,$o,jo,Zi,gl,jf,Uf,eD,IR,tD,rD,Zs,hl,ei,yl,_l,LR,CR,Sl,Wt=d(()=>{Qs="copilot",Qi=".github/copilot-instructions.md",ZP=".github/copilot",qi=".github/instructions",qs=".github/prompts",$o=".github/hooks",jo=".github/skills",Zi=".github/agents",gl=".agentsmesh/rules",jf=".agentsmesh/commands",Uf=".agentsmesh/agents",eD=".agentsmesh/skills",IR=".agentsmesh/hooks.yaml",tD=".agentsmesh/mcp.json",rD=".github/copilot-hooks",Zs=".copilot/copilot-instructions.md",hl=".copilot/agents",ei=".copilot/skills",yl=".copilot/prompts",_l=".copilot/AGENTS.md",LR=".claude/skills",CR=".agents/skills",Sl=".vscode/mcp.json";});function nD(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Bf(e){return `${qs}/${e}.prompt.md`}function oD(e){let t={agent:"agent",description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function sD(e,t){let n=((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||basename(t,".prompt.md")).trim(),o=nD(e["x-agentsmesh-allowed-tools"]),i=o.length>0?o:nD(e.tools);return {name:n,description:typeof e.description=="string"?e.description:"",allowedTools:i}}var Kf=d(()=>{B();Wt();s(nD,"toStringArray");s(Bf,"commandPromptPath");s(oD,"serializeCommandPrompt");s(sD,"parseCommandPromptFrontmatter");});function Wf(e){return mn(e)}var ER=d(()=>{Ir();s(Wf,"hasHookCommand");});function OR(e,t){return t?.scope==="global"?[]:!e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Sl,content:JSON.stringify({servers:e.mcp.mcpServers},null,2)}]}var iD=d(()=>{Wt();s(OR,"generateMcp");});function mq(e){let t=basename(e,".md");return t==="_root"?"root":t}function pq(e){switch(e){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function aD(e){let t=[],r=e.rules.find(n=>n.root);r?.body.trim()&&t.push(r.body.trim());for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot"))continue;let o=n.body.trim();if(!o)continue;let i=n.description?`## ${n.description}`:null;i?t.push(`${i}
108
+ `}function rP(e){return !/^[A-Za-z0-9_-]+$/.test(e)}var nP=d(()=>{jf();nt();s(_R,"generateMcp");s(vQ,"serializeMcpToToml");s(rP,"needsTomlQuoting");});function SR(e){if(!e.hooks)return [];let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=n.flatMap(i=>{if(!mn(i)||i.type==="prompt")return [];let a={type:"command",command:Je(i)};return i.timeout!==void 0&&(a.timeout=i.timeout),[{matcher:i.matcher,hooks:[a]}]});o.length>0&&(t[r]=o);}return Object.keys(t).length===0?[]:[{path:Ys,content:JSON.stringify({hooks:t},null,2)}]}var oP=d(()=>{Lr();nt();s(SR,"generateHooks");});var sP=d(()=>{qT();ZT();eP();nP();oP();});var iP=d(()=>{sP();});function GQ(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,r=typeof t.command=="string"?t.command:"";if(!r)return null;let n=Array.isArray(t.args)?t.args.filter(a=>typeof a=="string"):[],o=t.env,i=o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.fromEntries(Object.entries(o).filter(a=>typeof a[1]=="string")):{};return {type:"stdio",command:r,args:n,env:i}}async function aP(e,t){let r=join(e,Mf),n=await k(r);if(n===null)return;let o;try{o=parse$1(n);}catch{return}let i=o.mcp_servers;if(!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).length===0)return;let a={};for(let[l,c]of Object.entries(i)){let m=GQ(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Xe(e,iR,a),t.push({fromTool:ft,fromPath:r,toPath:iR,feature:"mcp"}));}var lP=d(()=>{b();hn();nt();s(GQ,"mapTomlServerToCanonical");s(aP,"importMcp");});async function cP(e,t,r){await Hc([Go,KT],{projectRoot:e,destCanonicalSkillsDir:HT,targetName:ft,normalize:r,results:t},[ET({canonicalCommandsDir:WT}),zc({canonicalAgentsDir:cu})]);}var mP=d(()=>{Vc();nt();s(cP,"importSkills");});async function pP(e,t,r){let n=join(e,hl),o=join(e,cu);try{let a=(await U(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await k(l);if(!c)continue;let m=parse$1(c);if(!m||typeof m!="object")continue;let p=typeof m.name=="string"?m.name:basename(l,".toml"),u=typeof m.description=="string"?m.description:"",f=typeof m.developer_instructions=="string"?m.developer_instructions.trim():"",g=typeof m.model=="string"?m.model:"",h=typeof m.sandbox_mode=="string"?m.sandbox_mode:"",_=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",S=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(P=>typeof P=="string"):[];await O(o);let R=join(o,`${p}.md`),I=r(f,l,R),D=ki({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:_,maxTurns:0,mcpServers:S,hooks:{},skills:[],memory:""},I);await L(R,D),t.push({fromTool:ft,fromPath:l,toPath:`${cu}/${p}.md`,feature:"agents"});}}catch{}}var uP=d(()=>{b();_e();nt();s(pP,"importCodexAgentsFromToml");});function dP(e){if(!e.includes(zT))return null;let t=e.split(`
109
+ `).find(c=>c.startsWith(lR));if(!t)return null;let r;try{r=JSON.parse(t.slice(lR.length));}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=typeof n.description=="string"?n.description:"",i=Array.isArray(n.globs)?n.globs.filter(c=>typeof c=="string"):[],a=[],l=false;for(let c of e.split(`
110
+ `)){let m=c.trimEnd();if(m===VT){l=true;continue}if(m===JT){l=false;continue}l&&m.startsWith(cR)&&a.push(m.slice(cR.length));}if(a.length===0)return null;try{let c=Buffer$1.from(a.join(""),"base64").toString("utf8");return {meta:{description:o,globs:i},body:c}}catch{return null}}var fP=d(()=>{nt();s(dP,"tryParseEmbeddedCanonicalFromCodexRules");});async function hP(e,t,r){let n=[],o=join(e,$o);try{let i=await U(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(t,p),{frontmatter:f,body:g}=x(r(m,c,u));await O(t);let h=f.root===!0?f:{...f,root:!1},_=await z(u,h,g);await L(u,_),n.push({fromTool:ft,fromPath:c,toPath:`${Xs}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(t,p);await O(t);let f=dP(m);if(f){let g=await z(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await L(u,g);}else {let g=await z(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await L(u,g);}n.push({fromTool:ft,fromPath:c,toPath:`${Xs}/${p}`,feature:"rules"});}}catch{}return n}var yP=d(()=>{b();B();de();nt();fP();s(hP,"importCodexNonRootRuleFiles");});async function SP(e,t,r,n,o){let i=join(e,UT),a=join(e,Js),l=join(e,BT),c=join(e,fl),m=o==="global"?await k(l):null,p=o==="global"?await k(c):null,u=o==="project"?await k(a):null,f=o==="project"?await k(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(e,Xs),_=m??p??u??f;if(_!==null){await O(h);let S=join(h,"_root.md"),R=g===a||g===c||g===l?QT(_):_,I=await Mo({content:R,projectRoot:e,rulesDir:Xs,sourcePath:g,fromTool:"codex-cli",normalize:r});t.push(...I.results);let w=r(g===a||g===c||g===l?n(I.rootContent,g,S):I.rootContent,g,S),{frontmatter:D,body:P}=x(w),K=D.root===true?D:{...D,root:true},G=await z(S,K,P);await L(S,G),t.push({fromTool:"codex-cli",fromPath:g,toPath:`${Xs}/_root.md`,feature:"rules"});}await WQ(e,h,t,r),t.push(...await hP(e,h,r)),o!=="global"&&t.push(...await Se({srcDir:e,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:S,normalizeTo:R})=>{let I=relative(e,dirname(S)).replace(/\\/g,"/"),w=basename(S),D=w==="AGENTS.override.md";if(!I||I==="."||!D&&w!=="AGENTS.md")return null;let P=I.replace(/\//g,"-");if(!Zd(I))return await Qn(join(h,`${P}.md`)),null;let K=join(h,`${P}.md`),{frontmatter:G,body:Y}=x(R(K));return {destPath:K,toPath:`${Xs}/${P}.md`,feature:"rules",content:await z(K,{...G,root:false,globs:[`${I}/**`],...D?{codex_instruction:"override"}:{}},Y)}},"mapEntry")}));}async function WQ(e,t,r,n){try{let i=(await U(join(e,gl))).filter(l=>l.endsWith(".md")),a=join(e,gl);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await k(l);if(!m)continue;let p=join(t,c),{frontmatter:u,body:f}=x(n(m,l,p));await O(t);let g=u.root===!0?u:{...u,root:!1},h=await z(p,g,f);await L(p,h),r.push({fromTool:ft,fromPath:l,toPath:`${Xs}/${c}`,feature:"rules"});}}catch{}}var RP=d(()=>{b();B();de();Wc();Zt();pp();nt();yP();Gf();s(SP,"importCodexRules");s(WQ,"importInstructionMirrors");});async function IP(e,t){let r=join(e,Ys),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object")return;let i=o.hooks;if(!i||typeof i!="object"||Array.isArray(i))return;let a={};for(let[c,m]of Object.entries(i))if(Array.isArray(m))for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.matcher=="string"?u.matcher:"*";if(Array.isArray(u.hooks))for(let g of u.hooks){if(!g||typeof g!="object")continue;let h=g;if(h.type!=="command"||typeof h.command!="string")continue;let _={matcher:f,command:h.command,type:"command"};typeof h.timeout=="number"&&(_.timeout=h.timeout),(a[c]??=[]).push(_);}}if(Object.keys(a).length===0)return;let l=join(e,aR);await O(dirname(l)),await L(l,stringify(a)),t.push({fromTool:ft,fromPath:r,toPath:aR,feature:"hooks"});}var LP=d(()=>{b();nt();s(IP,"importCodexHooks");});async function CP(e,t){let r=t?.scope??"project",n=[],o=await H(ft,e,r),i=await H("windsurf",e,r);return await SP(e,n,o,i,r),await cP(e,n,o),await pP(e,n,o),await aP(e,n),await IP(e,n),n}var EP=d(()=>{ge();nt();lP();mP();uP();RP();LP();s(CP,"importFromCodex");});function OP(e,t,r){let{rules:n}=e;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(t,n[0].source),target:ft,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var wP=d(()=>{nt();s(OP,"lintRules");});function bP(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&t.push(F(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`)),"url"in n||"type"in n){let o="type"in n?n.type:"url";t.push(F(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return t}var AP=d(()=>{Re();s(bP,"lintMcp");});function xP(e){return mu(e)}var TP=d(()=>{Gf();s(xP,"codexAdvisoryInstructionPath");});var JQ,YQ,XQ,QQ,DP,NP=d(()=>{iP();nt();EP();wP();AP();Oe();sp();TP();be();JQ={name:"codex-cli",primaryRootInstructionPath:Js,generateRules:dR,generateCommands:hR,generateAgents:yR,generateSkills:gR,generateMcp:_R,generateHooks:SR,importFrom:CP},YQ={rootInstructionPath:Js,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${$o}/${t}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml",Ys]},paths:{rulePath(e,t){return xP(t)},commandPath(e,t){return ic(t,"codex-cli")?`${Go}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${hl}/${e}.toml`}}},XQ={rootInstructionPath:fl,renderPrimaryRootInstruction:fR,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${$o}/${t}.rules`]},skillDir:Go,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[fl,".codex/config.toml",Ys]},rewriteGeneratedPath(e){return e===Js?fl:e.startsWith(`${gl}/`)?null:e},paths:{rulePath(e,t){return t.codexEmit==="execution"?`${$o}/${e}.rules`:fl},commandPath(e,t){return ic(t,"codex-cli")?`${Go}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${hl}/${e}.toml`}}},QQ={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},DP={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:JQ,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},emptyImportMessage:"No Codex config found (codex.md or AGENTS.md).",supportsConversion:{commands:true},lintRules:OP,lint:{mcp:bP},project:YQ,globalSupport:{capabilities:QQ,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",Ys,".agents/skills"],layout:XQ},buildImportPaths:sS,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",Ys],nativeInstall:{pickPaths:[{prefix:".codex",feature:"rules",strategy:{kind:"basename",suffix:".md"}}]},excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function ZQ(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function vP(e){return `${ao}/${e}.md`}function FP(e){let t={description:e.description||void 0,invokable:true,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function MP(e,t){let r=basename(t,".md");return {name:((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||r).trim(),description:typeof e.description=="string"?e.description:"",allowedTools:ZQ(e["x-agentsmesh-allowed-tools"])}}function GP(e,t){let r={description:e.description||void 0,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],T(r,t.trim()||"")}var Uf=d(()=>{B();lo();s(ZQ,"toStringArray");s(vP,"continueCommandRulePath");s(FP,"serializeCommandRule");s(MP,"parseCommandRuleFrontmatter");s(GP,"serializeImportedCommand");});function $P(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),t.push({path:ks,content:T(n,r.body.trim()||"")});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("continue"))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs),t.push({path:`${Sn}/${o}.md`,content:T(i,n.body.trim()||"")});}return t}function jP(e){return e.commands.map(t=>({path:`${ao}/${t.name}.md`,content:FP(t)}))}function UP(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:mf,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function BP(e){return e.agents.map(t=>({path:`${or}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function KP(e){return ie(e,or)}var WP=d(()=>{oe();_e();B();Uf();lo();s($P,"generateRules");s(jP,"generateCommands");s(UP,"generateMcp");s(BP,"generateAgents");s(KP,"generateSkills");});function nq(e,t){let n=(t===".json"?JSON.parse(e):parse(e)??{}).mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a,c=typeof l.description=="string"?l.description:void 0;if(typeof l.command=="string"){o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:Zn(l.args),env:Ut(l.env),description:c};continue}typeof l.url=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"http",url:l.url,headers:Ut(l.headers),env:Ut(l.env),description:c});}return o}async function oq(e,t){let r=(await U(join(e,iS))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await k(i);a&&(Object.assign(n,nq(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Xe(e,lS,n);for(let i of o)t.push({fromTool:Sc,fromPath:i,toPath:lS,feature:"mcp"});}}async function zP(e){let t=[],r=await H(Sc,e);return t.push(...await Q(Bf,e,"project",{normalize:r})),await ne(e,or,Sc,t,r),await oq(e,t),t}var VP=d(()=>{ge();b();oe();Ae();hn();qt();lo();IR();s(nq,"readMcpServers");s(oq,"importMcp");s(zP,"importFromContinue");});function sq(e){return e==="general.md"||e==="_root.md"}var JP,YP,XP=d(()=>{B();de();Uf();lo();s(sq,"isContinueRootRulePath");JP=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=sq(e),o=n?"_root.md":e,i=join(r,o),{frontmatter:a,body:l}=x(t(i)),c={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:n};return c.description===void 0&&delete c.description,c.globs===void 0&&delete c.globs,{destPath:i,toPath:`${pf}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),YP=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=join(n,t),{frontmatter:i,body:a}=x(r(o)),l=MP(i,e),c=l.name||t.replace(/\.md$/,"").replace(/^.*\//,""),m=t.includes("/")?t.slice(0,t.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await Ce(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},x(GP(l,a)).body);return {destPath:u,toPath:`${uf}/${p}`,content:f}},"continueCommandMapper");});function QP(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sc}))}var qP=d(()=>{Ee();lo();s(QP,"lintRules");});function ZP(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var eD=d(()=>{Re();s(ZP,"lintCommands");});function cq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var tD,rD=d(()=>{b();lo();s(cq,"computeStatus");tD=s(async(e,t,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&e.rules.length>0||i&&e.commands.length>0||a&&e.mcp!==null&&Object.keys(e.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&e.rules.length>0&&(c.rules=e.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&e.commands.length>0&&(c.prompts=e.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&e.mcp!==null){let u=Object.entries(e.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await k(join(t,Dp));return [{target:"continue",path:Dp,content:m,currentContent:p??void 0,status:cq(p,m)}]},"generateContinueGlobalConfig");});function pq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var nD,oD=d(()=>{b();lo();rD();s(pq,"computeStatus");nD=s(async(e,t,r,n)=>{let o=await tD(e,t,r,n);if(r!=="global"||!n.has("rules"))return o;let i=e.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await k(join(t,Rc));return [...o,{target:"continue",path:Rc,content:a,currentContent:l??void 0,status:pq(l,a)}]},"generateContinueScopeExtras");});var uq,dq,fq,gq,Bf,IR=d(()=>{_e();WP();lo();VP();XP();qP();eD();Uf();Oe();oD();uq={name:"continue",primaryRootInstructionPath:ks,generateRules:$P,generateCommands:jP,generateAgents:BP,generateSkills:KP,generateMcp:UP,importFrom:zP},dq={rootInstructionPath:ks,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(e,t){return `${Sn}/${e}.md`},commandPath(e,t){return vP(e)},agentPath(e){return `${or}/${V(e)}/SKILL.md`}}},fq={rootInstructionPath:ks,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Rc]}],skillDir:or,managedOutputs:{dirs:[Sn,ao,or,".agents/skills"],files:[mf,Rc,Dp]},mirrorGlobalPath(e,t){return e.startsWith(`${or}/`)?`.agents/skills/${e.slice(or.length+1)}`:null},paths:{rulePath(e,t){return `${Sn}/${e}.md`},commandPath(e,t){return `${ao}/${e}.md`},agentPath(e){return `${or}/${V(e)}/SKILL.md`}}},gq={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Bf={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:uq,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Continue config found (.continue/rules/*.md, .continue/skills, or .continue/mcpServers/*).",supportsConversion:{agents:true},lintRules:QP,lint:{commands:ZP},project:dq,globalSupport:{capabilities:gq,detectionPaths:[Sn,ao,".continue/mcpServers",or],layout:fq,scopeExtras:nD},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Sn],global:[Sn]},canonicalDir:pf,extensions:[".md"],map:JP},commands:{feature:"commands",mode:"directory",source:{project:[ao],global:[ao]},canonicalDir:uf,extensions:[".md"],map:YP}},buildImportPaths:cS,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],nativeInstall:{pickPaths:[{prefix:".continue/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/prompts",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/skills",feature:"skills",strategy:{kind:"skillDir"}}]},conversionDefaults:{agentsToSkills:true}};});var Qs,qi,sD,Zi,qs,jo,Uo,ea,yl,Kf,Wf,iD,CR,aD,lD,Zs,_l,ei,Sl,Rl,ER,OR,kl,Ht=d(()=>{Qs="copilot",qi=".github/copilot-instructions.md",sD=".github/copilot",Zi=".github/instructions",qs=".github/prompts",jo=".github/hooks",Uo=".github/skills",ea=".github/agents",yl=".agentsmesh/rules",Kf=".agentsmesh/commands",Wf=".agentsmesh/agents",iD=".agentsmesh/skills",CR=".agentsmesh/hooks.yaml",aD=".agentsmesh/mcp.json",lD=".github/copilot-hooks",Zs=".copilot/copilot-instructions.md",_l=".copilot/agents",ei=".copilot/skills",Sl=".copilot/prompts",Rl=".copilot/AGENTS.md",ER=".claude/skills",OR=".agents/skills",kl=".vscode/mcp.json";});function cD(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Hf(e){return `${qs}/${e}.prompt.md`}function mD(e){let t={agent:"agent",description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],T(t,e.body.trim()||"")}function pD(e,t){let n=((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||basename(t,".prompt.md")).trim(),o=cD(e["x-agentsmesh-allowed-tools"]),i=o.length>0?o:cD(e.tools);return {name:n,description:typeof e.description=="string"?e.description:"",allowedTools:i}}var zf=d(()=>{B();Ht();s(cD,"toStringArray");s(Hf,"commandPromptPath");s(mD,"serializeCommandPrompt");s(pD,"parseCommandPromptFrontmatter");});function Vf(e){return mn(e)}var wR=d(()=>{Lr();s(Vf,"hasHookCommand");});function bR(e,t){return t?.scope==="global"?[]:!e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:kl,content:JSON.stringify({servers:e.mcp.mcpServers},null,2)}]}var uD=d(()=>{Ht();s(bR,"generateMcp");});function _q(e){let t=basename(e,".md");return t==="_root"?"root":t}function Sq(e){switch(e){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function dD(e){let t=[],r=e.rules.find(n=>n.root);r?.body.trim()&&t.push(r.body.trim());for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot"))continue;let o=n.body.trim();if(!o)continue;let i=n.description?`## ${n.description}`:null;i?t.push(`${i}
111
111
 
112
112
  ${o}`):t.push(o);}return t.join(`
113
113
 
114
- `)}function lD(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:Qi,content:t.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot")||n.globs.length===0)continue;let o=mq(n.source),i={description:n.description||void 0,applyTo:n.globs.length===1?n.globs[0]:n.globs};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=T(i,n.body.trim()||"");r.push({path:`${qi}/${o}.instructions.md`,content:a});}return r}function cD(e){return e.commands.map(t=>({path:Bf(t.name),content:oD(t)}))}function mD(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${jo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${jo}/${r.name}/${a}`,content:i.content});}}return t}function pD(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,"mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,skills:t.skills.length>0?t.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${Zi}/${t.name}.agent.md`,content:n}})}function uD(e){if(!e.hooks)return [];let t=Object.fromEntries(Object.entries(e.hooks).flatMap(([r,n])=>{let o=pq(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&Wf(a)).map((a,l)=>{let m={type:"command",bash:`./scripts/${r.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}-${l}.sh`,comment:`Matcher: ${a.matcher}`};return a.timeout!==void 0&&(m.timeoutSec=Math.ceil(a.timeout/1e3)),m});return i.length>0?[[o,i]]:[]}));return Object.keys(t).length===0?[]:[{path:`${$o}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:t},null,2)}]}var dD=d(()=>{B();Wt();Kf();ER();iD();s(mq,"ruleSlug");s(pq,"mapHookEvent");s(aD,"renderCopilotGlobalInstructions");s(lD,"generateRules");s(cD,"generateCommands");s(mD,"generateSkills");s(pD,"generateAgents");s(uD,"generateHooks");});function dq(e){switch(e){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function fq(e){return typeof e!="string"?"*":e.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function hD(e){let t=e.match(/^# agentsmesh-command:\s*(.+)$/m);return t?.[1]?t[1].trim():e.replace(/^#!.*\n/,"").replace(/^#.*\n/gm,"").replace(/^HOOK_DIR=.*\n/gm,"").replace(/^set -e[u]?\n?/m,"").trim()}async function yD(e,t){let r=join(e,$o),o=(await U(r).catch(()=>[])).filter(p=>p.endsWith(".json")),i={};for(let p of o){let u=await k(p);if(!u)continue;let f;try{f=JSON.parse(u);}catch{continue}if(!(!f||typeof f.hooks!="object"||f.hooks===null))for(let[g,h]of Object.entries(f.hooks)){let _=dq(g);if(!(!_||!Array.isArray(h)))for(let S of h){if(!S||typeof S!="object")continue;let R=S,I=typeof R.bash=="string"?R.bash:"";if(!I)continue;let w=join(r,I.replace(/^\.\//,"")),D=await k(w);if(!D)continue;let P=hD(D);P&&(i[_]||(i[_]=[]),i[_].push({matcher:fq(R.comment),command:P,type:"command"}));}}}let a=join(e,rD),c=(await U(a).catch(()=>[])).filter(p=>dirname(p)===a&&/^[^-]+-\d+\.sh$/i.test(basename(p)));for(let p of c){let u=await k(p);if(!u)continue;let f=basename(p,".sh"),g=f.lastIndexOf("-"),h=g>0?f.slice(0,g):f;i[h]||(i[h]=[]),i[h].push({matcher:"*",command:hD(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(e,IR);await O(dirname(m)),await L(m,stringify(i)),t.push({fromTool:Qs,fromPath:join(e,$o),toPath:IR,feature:"hooks"});}var _D=d(()=>{b();Wt();s(dq,"mapCopilotHookEvent");s(fq,"extractMatcher");s(hD,"extractWrapperCommand");s(yD,"importHooks");});async function SD(e,t,r,n=jo){let o=join(e,n),i=await au(o),a={projectRoot:e,destCanonicalSkillsDir:eD,targetName:Qs,normalize:r,results:t};for(let[l,c]of i)await iu(l,c,a);}var RD=d(()=>{Hc();Wt();s(SD,"importSkills");});async function kD(e,t={}){let r=t.scope??"project",n=[],o=await H(Qs,e,r);return n.push(...await Q(Hf,e,r,{normalize:o})),await SD(e,n,o,r==="global"?ei:jo),r==="project"&&await yD(e,n),n}var ID=d(()=>{ge();Ae();Wt();_D();RD();wR();s(kD,"importFromCopilot");});async function zf(e){let t=await U(e),r=new Set;for(let n of t){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(e,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}var AR=d(()=>{b();s(zf,"skillNamesFromNativeSkillDir");});async function LD(e,t){let r=join(e,...t.split("/"));if(t.startsWith(qs)){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".prompt.md")).map(i=>basename(i,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(t.startsWith(".github/copilot")&&!t.includes("copilot-instructions.md")){let n=await U(r),o=[...new Set(n.filter(i=>i.includes(".instructions.md")).map(i=>basename(i).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(t.startsWith(".github/instructions")){let n=await U(r),o=new Set;for(let a of n){let l=basename(a);l.toLowerCase().endsWith(".instructions.md")?o.add(l.replace(/\.instructions\.md$/i,"")):l.toLowerCase().endsWith(".md")&&o.add(basename(a,".md"));}let i=[...o].sort();return i.length?{rules:i}:{}}if(t.startsWith(".github/skills")){let n=await zf(r);return n.length?{skills:n}:{}}if(t.startsWith(".github/agents")){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".agent.md")).map(i=>basename(i,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}var CD=d(()=>{b();Wt();AR();s(LD,"inferCopilotPickFromPath");});function ED(e,t,r,n){let i=X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:Qs})),a=e.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:Qs,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var OD=d(()=>{Ee();Wt();s(ED,"lintRules");});function wD(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function bD(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification","UserPromptSubmit"],r=new Set(t),n=Object.keys(e.hooks).filter(i=>!r.has(i)).map(i=>Li(i,"copilot",t,{unsupportedBy:"Copilot hooks"}));return Object.values(e.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(F(".agentsmesh/hooks.yaml","copilot","copilot hooks are emitted as .github/hooks/scripts/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")),n}var AD=d(()=>{Re();s(wD,"lintCommands");s(bD,"lintHooks");});function kq(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function Iq(e,t){let r=relative(e,t).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function Lq(e,t){let r=e.match(TD);if(!r?.groups)return e;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${t}"${o}`}async function Cq(e,t){let n=t.match(TD)?.groups?.path;if(!n)return null;let o=join(e,n),i=await k(o);if(i===null)return null;let a=Iq(e,o);return a?{assetPath:`${$o}/scripts/${a}`,content:i,rewrittenCommand:Lq(t,a)}:null}function Eq(e,t){return `${$o}/scripts/${kq(e)}-${t}.sh`}function xD(e){return e.replace(/[\r\n]+/g," ")}function Oq(e,t){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${xD(t)}`,`# agentsmesh-command: ${xD(e)}`,"set -eu",e,""].join(`
115
- `)}async function PD(e,t,r){if(!t.hooks)return r;let n=[],o=new Map;for(let[i,a]of Object.entries(t.hooks)){if(!Array.isArray(a))continue;let l=0;for(let c of a){if(!Wf(c))continue;let m=Eq(i,l),p=c.command,u=await Cq(e,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=Oq(p,c.matcher).replace(`set -eu
114
+ `)}function fD(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:qi,content:t.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot")||n.globs.length===0)continue;let o=_q(n.source),i={description:n.description||void 0,applyTo:n.globs.length===1?n.globs[0]:n.globs};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=T(i,n.body.trim()||"");r.push({path:`${Zi}/${o}.instructions.md`,content:a});}return r}function gD(e){return e.commands.map(t=>({path:Hf(t.name),content:mD(t)}))}function hD(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${Uo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Uo}/${r.name}/${a}`,content:i.content});}}return t}function yD(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,"mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,skills:t.skills.length>0?t.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${ea}/${t.name}.agent.md`,content:n}})}function _D(e){if(!e.hooks)return [];let t=Object.fromEntries(Object.entries(e.hooks).flatMap(([r,n])=>{let o=Sq(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&Vf(a)).map((a,l)=>{let m={type:"command",bash:`./scripts/${r.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}-${l}.sh`,comment:`Matcher: ${a.matcher}`};return a.timeout!==void 0&&(m.timeoutSec=Math.ceil(a.timeout/1e3)),m});return i.length>0?[[o,i]]:[]}));return Object.keys(t).length===0?[]:[{path:`${jo}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:t},null,2)}]}var SD=d(()=>{B();Ht();zf();wR();uD();s(_q,"ruleSlug");s(Sq,"mapHookEvent");s(dD,"renderCopilotGlobalInstructions");s(fD,"generateRules");s(gD,"generateCommands");s(hD,"generateSkills");s(yD,"generateAgents");s(_D,"generateHooks");});function kq(e){switch(e){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function Iq(e){return typeof e!="string"?"*":e.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function ID(e){let t=e.match(/^# agentsmesh-command:\s*(.+)$/m);return t?.[1]?t[1].trim():e.replace(/^#!.*\n/,"").replace(/^#.*\n/gm,"").replace(/^HOOK_DIR=.*\n/gm,"").replace(/^set -e[u]?\n?/m,"").trim()}async function LD(e,t){let r=join(e,jo),o=(await U(r).catch(()=>[])).filter(p=>p.endsWith(".json")),i={};for(let p of o){let u=await k(p);if(!u)continue;let f;try{f=JSON.parse(u);}catch{continue}if(!(!f||typeof f.hooks!="object"||f.hooks===null))for(let[g,h]of Object.entries(f.hooks)){let _=kq(g);if(!(!_||!Array.isArray(h)))for(let S of h){if(!S||typeof S!="object")continue;let R=S,I=typeof R.bash=="string"?R.bash:"";if(!I)continue;let w=join(r,I.replace(/^\.\//,"")),D=await k(w);if(!D)continue;let P=ID(D);P&&(i[_]||(i[_]=[]),i[_].push({matcher:Iq(R.comment),command:P,type:"command"}));}}}let a=join(e,lD),c=(await U(a).catch(()=>[])).filter(p=>dirname(p)===a&&/^[^-]+-\d+\.sh$/i.test(basename(p)));for(let p of c){let u=await k(p);if(!u)continue;let f=basename(p,".sh"),g=f.lastIndexOf("-"),h=g>0?f.slice(0,g):f;i[h]||(i[h]=[]),i[h].push({matcher:"*",command:ID(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(e,CR);await O(dirname(m)),await L(m,stringify(i)),t.push({fromTool:Qs,fromPath:join(e,jo),toPath:CR,feature:"hooks"});}var CD=d(()=>{b();Ht();s(kq,"mapCopilotHookEvent");s(Iq,"extractMatcher");s(ID,"extractWrapperCommand");s(LD,"importHooks");});async function ED(e,t,r,n=Uo){let o=join(e,n),i=await lu(o),a={projectRoot:e,destCanonicalSkillsDir:iD,targetName:Qs,normalize:r,results:t};for(let[l,c]of i)await au(l,c,a);}var OD=d(()=>{Vc();Ht();s(ED,"importSkills");});async function wD(e,t={}){let r=t.scope??"project",n=[],o=await H(Qs,e,r);return n.push(...await Q(Jf,e,r,{normalize:o})),await ED(e,n,o,r==="global"?ei:Uo),r==="project"&&await LD(e,n),n}var bD=d(()=>{ge();Ae();Ht();CD();OD();AR();s(wD,"importFromCopilot");});async function Yf(e){let t=await U(e),r=new Set;for(let n of t){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(e,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}var TR=d(()=>{b();s(Yf,"skillNamesFromNativeSkillDir");});async function AD(e,t){let r=join(e,...t.split("/"));if(t.startsWith(qs)){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".prompt.md")).map(i=>basename(i,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(t.startsWith(".github/copilot")&&!t.includes("copilot-instructions.md")){let n=await U(r),o=[...new Set(n.filter(i=>i.includes(".instructions.md")).map(i=>basename(i).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(t.startsWith(".github/instructions")){let n=await U(r),o=new Set;for(let a of n){let l=basename(a);l.toLowerCase().endsWith(".instructions.md")?o.add(l.replace(/\.instructions\.md$/i,"")):l.toLowerCase().endsWith(".md")&&o.add(basename(a,".md"));}let i=[...o].sort();return i.length?{rules:i}:{}}if(t.startsWith(".github/skills")){let n=await Yf(r);return n.length?{skills:n}:{}}if(t.startsWith(".github/agents")){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".agent.md")).map(i=>basename(i,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}var xD=d(()=>{b();Ht();TR();s(AD,"inferCopilotPickFromPath");});function TD(e,t,r,n){let i=X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:Qs})),a=e.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:Qs,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var PD=d(()=>{Ee();Ht();s(TD,"lintRules");});function DD(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function ND(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification","UserPromptSubmit"],r=new Set(t),n=Object.keys(e.hooks).filter(i=>!r.has(i)).map(i=>Ci(i,"copilot",t,{unsupportedBy:"Copilot hooks"}));return Object.values(e.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(F(".agentsmesh/hooks.yaml","copilot","copilot hooks are emitted as .github/hooks/scripts/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")),n}var vD=d(()=>{Re();s(DD,"lintCommands");s(ND,"lintHooks");});function Aq(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function xq(e,t){let r=relative(e,t).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function Tq(e,t){let r=e.match(MD);if(!r?.groups)return e;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${t}"${o}`}async function Pq(e,t){let n=t.match(MD)?.groups?.path;if(!n)return null;let o=join(e,n),i=await k(o);if(i===null)return null;let a=xq(e,o);return a?{assetPath:`${jo}/scripts/${a}`,content:i,rewrittenCommand:Tq(t,a)}:null}function Dq(e,t){return `${jo}/scripts/${Aq(e)}-${t}.sh`}function FD(e){return e.replace(/[\r\n]+/g," ")}function Nq(e,t){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${FD(t)}`,`# agentsmesh-command: ${FD(e)}`,"set -eu",e,""].join(`
115
+ `)}async function GD(e,t,r){if(!t.hooks)return r;let n=[],o=new Map;for(let[i,a]of Object.entries(t.hooks)){if(!Array.isArray(a))continue;let l=0;for(let c of a){if(!Vf(c))continue;let m=Dq(i,l),p=c.command,u=await Pq(e,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=Nq(p,c.matcher).replace(`set -eu
116
116
  `,`set -eu
117
117
  HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
118
- `);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var TD,DD=d(()=>{b();Wt();ER();TD=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(kq,"safePhaseName");s(Iq,"toRepoRelative");s(Lq,"rewriteWrapperCommand");s(Cq,"buildAssetOutput");s(Eq,"wrapperPath");s(xD,"safeShellLine");s(Oq,"buildWrapper");s(PD,"addHookScriptAssets");});function bq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var ND,vD=d(()=>{b();Wt();s(bq,"computeStatus");ND=s(async(e,t,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=e.rules.find(l=>l.root);if(!o)return [];let i=o.body.trim(),a=await k(join(t,_l));return [{target:"copilot",path:_l,content:i,currentContent:a??void 0,status:bq(a,i)}]},"generateCopilotGlobalExtras");});function FD(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var MD,GD,$D,jD,UD=d(()=>{B();de();Qt();Kf();Wt();s(FD,"pruneUndefined");MD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=as(i.globs),c=FD({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${gl}/${n}`,content:await z(o,c,a)}},"copilotLegacyRuleMapper"),GD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.endsWith(".instructions.md")?e.replace(/\.instructions\.md$/i,".md"):e,o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=as(i.applyTo!==void 0?i.applyTo:i.globs),c=FD({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${gl}/${n}`,content:await z(o,c,a)}},"copilotNewRuleMapper"),$D=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=t.replace(/\.prompt\.md$/i,".md"),i=join(n,o),{frontmatter:a,body:l}=x(r(i)),c=sD(a,e),m=o.includes("/")?o.slice(0,o.lastIndexOf("/")):"",p=`${c.name}.md`,u=m?`${m}/${p}`:p,f=join(n,u);return {destPath:f,toPath:`${jf}/${u}`,content:await Ce(f,{description:c.description,hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:c.allowedTools,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"tools")||Object.prototype.hasOwnProperty.call(a,"x-agentsmesh-allowed-tools")},l)}},"copilotCommandMapper"),jD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(!e.endsWith(".agent.md"))return null;let n=e.replace(/\.agent\.md$/i,".md"),o=basename(n,".md"),i=join(r,n),{frontmatter:a,body:l}=x(t(i));return {destPath:i,toPath:`${Uf}/${n}`,content:await ve(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});var BD,KD=d(()=>{Wt();UD();BD={rules:[{feature:"rules",mode:"singleFile",source:{project:[Qi],global:[Zs]},canonicalDir:gl,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ZP]},canonicalDir:gl,extensions:[".instructions.md"],map:MD},{feature:"rules",mode:"directory",source:{project:[qi]},canonicalDir:gl,extensions:[".instructions.md",".md"],map:GD}],commands:{feature:"commands",mode:"directory",source:{project:[qs],global:[yl]},canonicalDir:jf,extensions:[".prompt.md"],map:$D},agents:{feature:"agents",mode:"directory",source:{project:[Zi],global:[hl]},canonicalDir:Uf,extensions:[".agent.md"],map:jD},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Sl]},canonicalDir:".agentsmesh",canonicalFilename:tD,mcpServersKey:"servers"}};});var WD,HD,zD=d(()=>{WD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},HD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"};});var Tq,Pq,Dq,Hf,wR=d(()=>{dD();Wt();ID();CD();OD();Oe();Kf();AD();DD();vD();KD();zD();Tq={name:"copilot",primaryRootInstructionPath:Qi,generateRules:lD,generateCommands:cD,generateAgents:pD,generateSkills:mD,generateHooks:uD,generateMcp:OR,importFrom:kD},Pq={rootInstructionPath:Qi,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],extraRuleOutputPaths(e){if(e.root||e.globs.length===0)return [];let t=basename(e.source,".md");return [`${qi}/${t}.instructions.md`]},skillDir:".github/skills",managedOutputs:{dirs:[".github/agents",".github/instructions",".github/prompts",".github/skills",".github/hooks/scripts"],files:[".github/copilot-instructions.md",".github/hooks/agentsmesh.json",Sl]},paths:{rulePath(e,t){return `${qi}/${e}.instructions.md`},commandPath(e,t){return Bf(e)},agentPath(e,t){return `${Zi}/${e}.agent.md`}}},Dq={rootInstructionPath:Zs,renderPrimaryRootInstruction:aD,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[_l]}],skillDir:ei,managedOutputs:{dirs:[hl,ei,yl,CR,LR],files:[Zs,_l]},rewriteGeneratedPath(e){return e===Qi?Zs:e.startsWith(`${qi}/`)?Zs:e.startsWith(`${qs}/`)?e.replace(`${qs}/`,`${yl}/`):e.startsWith(`${Zi}/`)?e.replace(`${Zi}/`,`${hl}/`):e.startsWith(`${jo}/`)?e.replace(`${jo}/`,`${ei}/`):e.startsWith(`${$o}/`)||e===Sl?null:e},mirrorGlobalPath(e,t){if(e.startsWith(`${ei}/`)&&!t.includes("codex-cli")){let r=e.slice(ei.length+1);return [`.agents/skills/${r}`,`${LR}/${r}`]}return null},paths:{rulePath(e,t){return Zs},commandPath(e,t){return `${yl}/${e}.prompt.md`},agentPath(e,t){return `${hl}/${e}.agent.md`}}},Hf={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:Tq,capabilities:WD,emptyImportMessage:"No Copilot config found (.github/copilot-instructions.md, .github/copilot or .github/instructions, .github/prompts, .github/skills, .github/agents, or .github/hooks).",lintRules:ED,lint:{commands:wD,hooks:bD},postProcessHookOutputs:s(async(e,t,r)=>PD(e,t,[...r]),"postProcessHookOutputs"),project:Pq,globalSupport:{capabilities:HD,detectionPaths:[Zs,_l,hl,ei,yl,CR],layout:Dq,scopeExtras:ND},importer:BD,buildImportPaths:lS,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"],nativeInstall:{inferPick:LD}};});function Vf(e){return {$schema:"https://charm.land/crush.json",...e}}var VD=d(()=>{s(Vf,"buildCrushConfigJson");});function JD(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Nr)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:vr,content:o}]:[]}function YD(e){return ie(e,mt)}function XD(e){return e.commands.map(t=>({path:`${mt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function QD(e){return e.agents.map(t=>({path:`${mt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function qD(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Vf({mcp:e.mcp.mcpServers});return [{path:or,content:JSON.stringify(t,null,2)}]}function ZD(e){if(!e.hooks)return [];let t=Nq(e);if(Object.keys(t).length===0)return [];let r=Vf({hooks:t});return [{path:or,content:JSON.stringify(r,null,2)}]}function eN(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};t.length>0&&(o.allowed_tools=t),r.length>0&&(o.denied_tools=r);let i=Vf({permissions:o});return [{path:or,content:JSON.stringify(i,null,2)}]}function tN(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
119
- `);return [{path:Is,content:t}]}function Nq(e){if(!e.hooks)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){let a=typeof i.command=="string"?i.command.trim():"";if(!a)continue;let l={matcher:i.matcher,command:a};i.timeout!==void 0&&(l.timeout=i.timeout),o.push(l);}o.length>0&&(t[r]=o);}return t}var rN=d(()=>{oe();Be();_e();be();Sc();VD();s(JD,"generateRules");s(YD,"generateSkills");s(XD,"generateCommands");s(QD,"generateAgents");s(qD,"generateMcp");s(ZD,"generateHooks");s(eN,"generatePermissions");s(tN,"generateIgnore");s(Nq,"buildCrushHooksFromCanonical");});async function oN(e,t={}){let r=t.scope??"project",n=[],o=await H(Nr,e,r);return n.push(...await Q(Jf,e,r,{normalize:o})),await ne(e,r==="global"?sr:mt,Nr,n,o),await vq(e,n),n}async function vq(e,t){let r=join(e,or),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||Array.isArray(o))return;let i=o,a=Fq(i.mcp);if(Object.keys(a).length>0){let c=ff,m=join(e,c);await O(dirname(m)),await L(m,JSON.stringify({mcpServers:a},null,2)),t.push({fromTool:Nr,fromPath:r,toPath:c,feature:"mcp"});}let l=Mq(i.hooks);if(l!==null&&Object.keys(l).length>0){let c=".agentsmesh/hooks.yaml",m=join(e,c);await O(dirname(m));let p=Gq(l);await L(m,p),t.push({fromTool:Nr,fromPath:r,toPath:c,feature:"hooks"});}}function Fq(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e)){if(!n||typeof n!="object"||Array.isArray(n))continue;let o=n,i=typeof o.description=="string"?o.description:void 0;if(typeof o.command=="string"){t[r]={type:typeof o.type=="string"?o.type:"stdio",command:o.command,args:qn(o.args),env:wr(o.env),...i!==void 0?{description:i}:{}};continue}typeof o.url=="string"&&(t[r]={type:typeof o.type=="string"?o.type:"http",url:o.url,headers:wr(o.headers),env:wr(o.env),...i!==void 0?{description:i}:{}});}return t}function Mq(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,l=typeof a.command=="string"?a.command.trim():"";if(!l)continue;let m={matcher:typeof a.matcher=="string"?a.matcher:"",command:l};typeof a.timeout=="number"&&(m.timeout=a.timeout),o.push(m);}o.length>0&&(t[r]=o);}return Object.keys(t).length>0?t:null}function Gq(e){let t=[];for(let[r,n]of Object.entries(e)){t.push(`${r}:`);for(let o of n)t.push(` - matcher: ${JSON.stringify(o.matcher)}`),t.push(` command: ${JSON.stringify(o.command)}`),o.timeout!==void 0&&t.push(` timeout: ${o.timeout}`);}return t.join(`
120
- `)}var sN=d(()=>{ge();oe();Ae();b();Qt();TR();Sc();s(oN,"importFromCrush");s(vq,"importCrushConfigJson");s(Fq,"parseCrushMcpServers");s(Mq,"parseCrushHooks");s(Gq,"serializeHooksYaml");});function iN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Nr}))}var aN=d(()=>{Ee();Sc();s(iN,"lintRules");});function lN(e){return e.commands.length===0?[]:[F(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var cN=d(()=>{Re();s(lN,"lintCommands");});function PR(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}function Yf(e,t){let r=PR(e),n=jq.parse(JSON.parse(t)),o={...r};n.permissions!==void 0&&(o.permissions=n.permissions),n.hooks!==void 0&&(o.hooks=n.hooks);let i=o.permissions;return i&&typeof i=="object"&&!Array.isArray(i)&&!("ask"in i)&&(i.ask=[]),JSON.stringify(o,null,2)}function pN(e,t){let r=PR(e),n=Uq.parse(JSON.parse(t)),o={...r};return n.mcpServers!==void 0&&(o.mcpServers=n.mcpServers),n.hooks!==void 0&&(o.hooks=n.hooks),n.experimental!==void 0&&(o.experimental=n.experimental),n.context!==void 0&&(o.context=n.context),JSON.stringify(o,null,2)}function uN(e,t){let r=PR(e),n=$q.parse(JSON.parse(t)),o={...r};return n.$schema!==void 0&&(o.$schema=n.$schema),n.mcp!==void 0&&(o.mcp=n.mcp),n.hooks!==void 0&&(o.hooks=n.hooks),n.permissions!==void 0&&(o.permissions=n.permissions),n.options!==void 0&&(o.options=n.options),JSON.stringify(o,null,2)}var mN,$q,jq,Uq,du=d(()=>{mN=[".claude/settings.json",".gemini/settings.json"],$q=z$1.object({$schema:z$1.string().optional(),mcp:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),permissions:z$1.record(z$1.string(),z$1.unknown()).optional(),options:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),jq=z$1.object({permissions:z$1.object({allow:z$1.array(z$1.string()).optional(),deny:z$1.array(z$1.string()).optional()}).passthrough().optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),Uq=z$1.object({mcpServers:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),experimental:z$1.record(z$1.string(),z$1.unknown()).optional(),context:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough();s(PR,"parseJsonObject");s(Yf,"mergeSettingsJson");s(pN,"mergeGeminiSettingsJson");s(uN,"mergeCrushConfigJson");});var Bq,Kq,Wq,Hq,zq,Jf,TR=d(()=>{be();_e();rN();dt();sN();aN();cN();Oe();du();Sc();Bq={name:Nr,primaryRootInstructionPath:vr,generateRules:JD,generateCommands:XD,generateAgents:QD,generateSkills:YD,generateMcp:qD,generateHooks:ZD,generatePermissions:eN,generateIgnore:tN,importFrom:oN},Kq={rootInstructionPath:vr,skillDir:mt,managedOutputs:{dirs:[mt],files:[vr,or,Is]},paths:{rulePath(e){return vr},commandPath(e){return `${mt}/${J(e)}/SKILL.md`},agentPath(e){return `${mt}/${V(e)}/SKILL.md`}}},Wq={rootInstructionPath:$a,skillDir:sr,managedOutputs:{dirs:[sr],files:[$a,pf]},rewriteGeneratedPath(e){return e===vr?$a:e===or?pf:e===Is?null:e.startsWith(`${mt}/`)?e.replace(`${mt}/`,`${sr}/`):e},mirrorGlobalPath(e,t){return fe(e,sr,t)},paths:{rulePath(e){return $a},commandPath(e){return `${sr}/${J(e)}/SKILL.md`},agentPath(e){return `${sr}/${V(e)}/SKILL.md`}}},Hq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},zq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},Jf={id:Nr,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:Bq,capabilities:Hq,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:iN,lint:{commands:lN},supportsConversion:{commands:true,agents:true},project:Kq,globalSupport:{capabilities:zq,detectionPaths:[$a,pf,sr],layout:Wq},mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===or?uN(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[vr],global:[$a]},canonicalDir:uf,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Is]},canonicalDir:".agentsmesh",canonicalFilename:df}},buildImportPaths:cS,detectionPaths:[vr,or,mt,Is],sharedArtifacts:{".crush/skills/":"owner"}};});function DR(e){let t=[],r=e.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";t.push({path:Ai,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=T(a,i);t.push({path:Ls,content:l});}let n=e.rules.filter(i=>!i.root&&(i.targets.length===0||i.targets.includes("cursor")));for(let i of n){let a=basename(i.source,".md"),c={alwaysApply:i.trigger==="always_on"};i.description&&(c.description=i.description),i.globs.length>0&&(c.globs=i.globs);let m=T(c,i.body.trim()||"");t.push({path:`${Fr}/${a}.mdc`,content:m});}let o=dN(e);return o.trim()&&t.push({path:kn,content:o}),t}function dN(e){let t=e.rules.find(o=>o.root),r=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("cursor"))),n=[];return t?.body.trim()?n.push(le(t.body,r)):r.length>0&&n.push(le("",r)),n.filter(Boolean).join(`
118
+ `);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var MD,$D=d(()=>{b();Ht();wR();MD=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(Aq,"safePhaseName");s(xq,"toRepoRelative");s(Tq,"rewriteWrapperCommand");s(Pq,"buildAssetOutput");s(Dq,"wrapperPath");s(FD,"safeShellLine");s(Nq,"buildWrapper");s(GD,"addHookScriptAssets");});function Fq(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var jD,UD=d(()=>{b();Ht();s(Fq,"computeStatus");jD=s(async(e,t,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=e.rules.find(l=>l.root);if(!o)return [];let i=o.body.trim(),a=await k(join(t,Rl));return [{target:"copilot",path:Rl,content:i,currentContent:a??void 0,status:Fq(a,i)}]},"generateCopilotGlobalExtras");});function BD(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var KD,WD,HD,zD,VD=d(()=>{B();de();qt();zf();Ht();s(BD,"pruneUndefined");KD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=as(i.globs),c=BD({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${yl}/${n}`,content:await z(o,c,a)}},"copilotLegacyRuleMapper"),WD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.endsWith(".instructions.md")?e.replace(/\.instructions\.md$/i,".md"):e,o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=as(i.applyTo!==void 0?i.applyTo:i.globs),c=BD({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${yl}/${n}`,content:await z(o,c,a)}},"copilotNewRuleMapper"),HD=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=t.replace(/\.prompt\.md$/i,".md"),i=join(n,o),{frontmatter:a,body:l}=x(r(i)),c=pD(a,e),m=o.includes("/")?o.slice(0,o.lastIndexOf("/")):"",p=`${c.name}.md`,u=m?`${m}/${p}`:p,f=join(n,u);return {destPath:f,toPath:`${Kf}/${u}`,content:await Ce(f,{description:c.description,hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:c.allowedTools,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"tools")||Object.prototype.hasOwnProperty.call(a,"x-agentsmesh-allowed-tools")},l)}},"copilotCommandMapper"),zD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(!e.endsWith(".agent.md"))return null;let n=e.replace(/\.agent\.md$/i,".md"),o=basename(n,".md"),i=join(r,n),{frontmatter:a,body:l}=x(t(i));return {destPath:i,toPath:`${Wf}/${n}`,content:await ve(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});var JD,YD=d(()=>{Ht();VD();JD={rules:[{feature:"rules",mode:"singleFile",source:{project:[qi],global:[Zs]},canonicalDir:yl,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[sD]},canonicalDir:yl,extensions:[".instructions.md"],map:KD},{feature:"rules",mode:"directory",source:{project:[Zi]},canonicalDir:yl,extensions:[".instructions.md",".md"],map:WD}],commands:{feature:"commands",mode:"directory",source:{project:[qs],global:[Sl]},canonicalDir:Kf,extensions:[".prompt.md"],map:HD},agents:{feature:"agents",mode:"directory",source:{project:[ea],global:[_l]},canonicalDir:Wf,extensions:[".agent.md"],map:zD},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[kl]},canonicalDir:".agentsmesh",canonicalFilename:aD,mcpServersKey:"servers"}};});var XD,QD,qD=d(()=>{XD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},QD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"};});var $q,jq,Uq,Jf,AR=d(()=>{SD();Ht();bD();xD();PD();Oe();zf();vD();$D();UD();YD();qD();$q={name:"copilot",primaryRootInstructionPath:qi,generateRules:fD,generateCommands:gD,generateAgents:yD,generateSkills:hD,generateHooks:_D,generateMcp:bR,importFrom:wD},jq={rootInstructionPath:qi,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],extraRuleOutputPaths(e){if(e.root||e.globs.length===0)return [];let t=basename(e.source,".md");return [`${Zi}/${t}.instructions.md`]},skillDir:".github/skills",managedOutputs:{dirs:[".github/agents",".github/instructions",".github/prompts",".github/skills",".github/hooks/scripts"],files:[".github/copilot-instructions.md",".github/hooks/agentsmesh.json",kl]},paths:{rulePath(e,t){return `${Zi}/${e}.instructions.md`},commandPath(e,t){return Hf(e)},agentPath(e,t){return `${ea}/${e}.agent.md`}}},Uq={rootInstructionPath:Zs,renderPrimaryRootInstruction:dD,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Rl]}],skillDir:ei,managedOutputs:{dirs:[_l,ei,Sl,OR,ER],files:[Zs,Rl]},rewriteGeneratedPath(e){return e===qi?Zs:e.startsWith(`${Zi}/`)?Zs:e.startsWith(`${qs}/`)?e.replace(`${qs}/`,`${Sl}/`):e.startsWith(`${ea}/`)?e.replace(`${ea}/`,`${_l}/`):e.startsWith(`${Uo}/`)?e.replace(`${Uo}/`,`${ei}/`):e.startsWith(`${jo}/`)||e===kl?null:e},mirrorGlobalPath(e,t){if(e.startsWith(`${ei}/`)&&!t.includes("codex-cli")){let r=e.slice(ei.length+1);return [`.agents/skills/${r}`,`${ER}/${r}`]}return null},paths:{rulePath(e,t){return Zs},commandPath(e,t){return `${Sl}/${e}.prompt.md`},agentPath(e,t){return `${_l}/${e}.agent.md`}}},Jf={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:$q,capabilities:XD,emptyImportMessage:"No Copilot config found (.github/copilot-instructions.md, .github/copilot or .github/instructions, .github/prompts, .github/skills, .github/agents, or .github/hooks).",lintRules:TD,lint:{commands:DD,hooks:ND},postProcessHookOutputs:s(async(e,t,r)=>GD(e,t,[...r]),"postProcessHookOutputs"),project:jq,globalSupport:{capabilities:QD,detectionPaths:[Zs,Rl,_l,ei,Sl,OR],layout:Uq,scopeExtras:jD},importer:JD,buildImportPaths:mS,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"],nativeInstall:{inferPick:AD}};});function Xf(e){return {$schema:"https://charm.land/crush.json",...e}}var ZD=d(()=>{s(Xf,"buildCrushConfigJson");});function eN(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Nr)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:vr,content:o}]:[]}function tN(e){return ie(e,mt)}function rN(e){return e.commands.map(t=>({path:`${mt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function nN(e){return e.agents.map(t=>({path:`${mt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function oN(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Xf({mcp:e.mcp.mcpServers});return [{path:sr,content:JSON.stringify(t,null,2)}]}function sN(e){if(!e.hooks)return [];let t=Bq(e);if(Object.keys(t).length===0)return [];let r=Xf({hooks:t});return [{path:sr,content:JSON.stringify(r,null,2)}]}function iN(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};t.length>0&&(o.allowed_tools=t),r.length>0&&(o.denied_tools=r);let i=Xf({permissions:o});return [{path:sr,content:JSON.stringify(i,null,2)}]}function aN(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
119
+ `);return [{path:Is,content:t}]}function Bq(e){if(!e.hooks)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){let a=typeof i.command=="string"?i.command.trim():"";if(!a)continue;let l={matcher:i.matcher,command:a};i.timeout!==void 0&&(l.timeout=i.timeout),o.push(l);}o.length>0&&(t[r]=o);}return t}var lN=d(()=>{oe();Be();_e();be();kc();ZD();s(eN,"generateRules");s(tN,"generateSkills");s(rN,"generateCommands");s(nN,"generateAgents");s(oN,"generateMcp");s(sN,"generateHooks");s(iN,"generatePermissions");s(aN,"generateIgnore");s(Bq,"buildCrushHooksFromCanonical");});async function mN(e,t={}){let r=t.scope??"project",n=[],o=await H(Nr,e,r);return n.push(...await Q(Qf,e,r,{normalize:o})),await ne(e,r==="global"?ir:mt,Nr,n,o),await Kq(e,n),n}async function Kq(e,t){let r=join(e,sr),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||Array.isArray(o))return;let i=o,a=Wq(i.mcp);if(Object.keys(a).length>0){let c=yf,m=join(e,c);await O(dirname(m)),await L(m,JSON.stringify({mcpServers:a},null,2)),t.push({fromTool:Nr,fromPath:r,toPath:c,feature:"mcp"});}let l=Hq(i.hooks);if(l!==null&&Object.keys(l).length>0){let c=".agentsmesh/hooks.yaml",m=join(e,c);await O(dirname(m));let p=zq(l);await L(m,p),t.push({fromTool:Nr,fromPath:r,toPath:c,feature:"hooks"});}}function Wq(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e)){if(!n||typeof n!="object"||Array.isArray(n))continue;let o=n,i=typeof o.description=="string"?o.description:void 0;if(typeof o.command=="string"){t[r]={type:typeof o.type=="string"?o.type:"stdio",command:o.command,args:Zn(o.args),env:Ut(o.env),...i!==void 0?{description:i}:{}};continue}typeof o.url=="string"&&(t[r]={type:typeof o.type=="string"?o.type:"http",url:o.url,headers:Ut(o.headers),env:Ut(o.env),...i!==void 0?{description:i}:{}});}return t}function Hq(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,l=typeof a.command=="string"?a.command.trim():"";if(!l)continue;let m={matcher:typeof a.matcher=="string"?a.matcher:"",command:l};typeof a.timeout=="number"&&(m.timeout=a.timeout),o.push(m);}o.length>0&&(t[r]=o);}return Object.keys(t).length>0?t:null}function zq(e){let t=[];for(let[r,n]of Object.entries(e)){t.push(`${r}:`);for(let o of n)t.push(` - matcher: ${JSON.stringify(o.matcher)}`),t.push(` command: ${JSON.stringify(o.command)}`),o.timeout!==void 0&&t.push(` timeout: ${o.timeout}`);}return t.join(`
120
+ `)}var pN=d(()=>{ge();oe();Ae();b();qt();DR();kc();s(mN,"importFromCrush");s(Kq,"importCrushConfigJson");s(Wq,"parseCrushMcpServers");s(Hq,"parseCrushHooks");s(zq,"serializeHooksYaml");});function uN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Nr}))}var dN=d(()=>{Ee();kc();s(uN,"lintRules");});function fN(e){return e.commands.length===0?[]:[F(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var gN=d(()=>{Re();s(fN,"lintCommands");});function NR(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}function qf(e,t){let r=NR(e),n=Jq.parse(JSON.parse(t)),o={...r};n.permissions!==void 0&&(o.permissions=n.permissions),n.hooks!==void 0&&(o.hooks=n.hooks);let i=o.permissions;return i&&typeof i=="object"&&!Array.isArray(i)&&!("ask"in i)&&(i.ask=[]),JSON.stringify(o,null,2)}function yN(e,t){let r=NR(e),n=Yq.parse(JSON.parse(t)),o={...r};return n.mcpServers!==void 0&&(o.mcpServers=n.mcpServers),n.hooks!==void 0&&(o.hooks=n.hooks),n.experimental!==void 0&&(o.experimental=n.experimental),n.context!==void 0&&(o.context=n.context),JSON.stringify(o,null,2)}function _N(e,t){let r=NR(e),n=Vq.parse(JSON.parse(t)),o={...r};return n.$schema!==void 0&&(o.$schema=n.$schema),n.mcp!==void 0&&(o.mcp=n.mcp),n.hooks!==void 0&&(o.hooks=n.hooks),n.permissions!==void 0&&(o.permissions=n.permissions),n.options!==void 0&&(o.options=n.options),JSON.stringify(o,null,2)}var hN,Vq,Jq,Yq,fu=d(()=>{hN=[".claude/settings.json",".gemini/settings.json"],Vq=z$1.object({$schema:z$1.string().optional(),mcp:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),permissions:z$1.record(z$1.string(),z$1.unknown()).optional(),options:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),Jq=z$1.object({permissions:z$1.object({allow:z$1.array(z$1.string()).optional(),deny:z$1.array(z$1.string()).optional()}).passthrough().optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),Yq=z$1.object({mcpServers:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),experimental:z$1.record(z$1.string(),z$1.unknown()).optional(),context:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough();s(NR,"parseJsonObject");s(qf,"mergeSettingsJson");s(yN,"mergeGeminiSettingsJson");s(_N,"mergeCrushConfigJson");});var Xq,Qq,qq,Zq,eZ,Qf,DR=d(()=>{be();_e();lN();dt();pN();dN();gN();Oe();fu();kc();Xq={name:Nr,primaryRootInstructionPath:vr,generateRules:eN,generateCommands:rN,generateAgents:nN,generateSkills:tN,generateMcp:oN,generateHooks:sN,generatePermissions:iN,generateIgnore:aN,importFrom:mN},Qq={rootInstructionPath:vr,skillDir:mt,managedOutputs:{dirs:[mt],files:[vr,sr,Is]},paths:{rulePath(e){return vr},commandPath(e){return `${mt}/${J(e)}/SKILL.md`},agentPath(e){return `${mt}/${V(e)}/SKILL.md`}}},qq={rootInstructionPath:Ua,skillDir:ir,managedOutputs:{dirs:[ir],files:[Ua,ff]},rewriteGeneratedPath(e){return e===vr?Ua:e===sr?ff:e===Is?null:e.startsWith(`${mt}/`)?e.replace(`${mt}/`,`${ir}/`):e},mirrorGlobalPath(e,t){return fe(e,ir,t)},paths:{rulePath(e){return Ua},commandPath(e){return `${ir}/${J(e)}/SKILL.md`},agentPath(e){return `${ir}/${V(e)}/SKILL.md`}}},Zq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},eZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},Qf={id:Nr,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:Xq,capabilities:Zq,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:uN,lint:{commands:fN},supportsConversion:{commands:true,agents:true},project:Qq,globalSupport:{capabilities:eZ,detectionPaths:[Ua,ff,ir],layout:qq},mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===sr?_N(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[vr],global:[Ua]},canonicalDir:gf,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Is]},canonicalDir:".agentsmesh",canonicalFilename:hf}},buildImportPaths:pS,detectionPaths:[vr,sr,mt,Is],sharedArtifacts:{".crush/skills/":"owner"}};});function vR(e){let t=[],r=e.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";t.push({path:xi,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=T(a,i);t.push({path:Ls,content:l});}let n=e.rules.filter(i=>!i.root&&(i.targets.length===0||i.targets.includes("cursor")));for(let i of n){let a=basename(i.source,".md"),c={alwaysApply:i.trigger==="always_on"};i.description&&(c.description=i.description),i.globs.length>0&&(c.globs=i.globs);let m=T(c,i.body.trim()||"");t.push({path:`${Fr}/${a}.mdc`,content:m});}let o=SN(e);return o.trim()&&t.push({path:kn,content:o}),t}function SN(e){let t=e.rules.find(o=>o.root),r=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("cursor"))),n=[];return t?.body.trim()?n.push(le(t.body,r)):r.length>0&&n.push(le("",r)),n.filter(Boolean).join(`
121
121
 
122
- `)}var fN=d(()=>{B();Be();Qe();s(DR,"generateRules");s(dN,"renderCursorGlobalUserRules");});function NR(e){return e.commands.map(t=>({path:`${Mr}/${t.name}.md`,content:t.body.trim()||""}))}var gN=d(()=>{Qe();s(NR,"generateCommands");});function vR(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:ir,content:t}]}var hN=d(()=>{Qe();s(vR,"generateMcp");});function FR(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${It}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${It}/${r.name}/${a}`,content:i.content});}}return t}var yN=d(()=>{B();Qe();s(FR,"generateSkills");});function MR(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${Gr}/${t.name}.md`,content:n}})}var _N=d(()=>{B();Qe();s(MR,"generateAgents");});function GR(e){return []}var SN=d(()=>{s(GR,"generatePermissions");});function Jq(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Jn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}function $R(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=Jq(e.hooks);if(Object.keys(t).length===0)return [];let r=JSON.stringify({version:1,hooks:t},null,2);return [{path:lo,content:r}]}var RN=d(()=>{Ir();Qe();s(Jq,"toCursorHooks");s($R,"generateHooks");});function jR(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
123
- `);return [{path:Rn,content:t}]}var kN=d(()=>{Qe();s(jR,"generateIgnore");});var IN=d(()=>{fN();gN();hN();yN();_N();SN();RN();kN();});var LN=d(()=>{IN();});async function Qf(e,t,r,n){let o=e.replace(/\.mdc$/i,".md"),i=join(t,o),l=x(r(i)).frontmatter.alwaysApply===true,c=l?join(t,"_root.md"):i,{frontmatter:m,body:p}=x(r(c));l&&n();let u={...m,root:l};if(delete u.alwaysApply,!l){let f=Yq(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${co}/${l?"_root.md":o}`,feature:"rules",content:await z(c,u,p)}}function Yq(e){return e.alwaysApply!==false?null:(Array.isArray(e.globs)?e.globs:[]).length>0?"glob":(typeof e.description=="string"?e.description:"").trim().length>0?"model_decision":"manual"}async function CN(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=Or(o.allowedTools),l=a.length>0?a:Or(o["allowed-tools"]);return {destPath:n,toPath:`${xi}/${e}`,feature:"commands",content:await Ce(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}}async function EN(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n));return {destPath:n,toPath:`${Ti}/${e}`,feature:"agents",content:await ve(n,o,i)}}var UR=d(()=>{B();de();Qt();Qe();s(Qf,"mapCursorRuleFile");s(Yq,"deriveCursorTrigger");s(CN,"mapCursorCommandFile");s(EN,"mapCursorAgentFile");});async function zc(e){let t=join(e.projectRoot,co);await O(t);let r=join(t,"_root.md"),n=await Fo({content:e.content,projectRoot:e.projectRoot,rulesDir:co,sourcePath:e.sourcePath,fromTool:"cursor",normalize:e.normalize});e.results.push(...n.results);let o=e.normalize(n.rootContent,e.sourcePath,r);if(!o.trim()&&n.results.length>0)return true;let{frontmatter:i,body:a}=x(o),l=i.root===true?i:{...i,root:true},c=await z(r,l,a);return await L(r,c),e.results.push({fromTool:"cursor",fromPath:e.sourcePath,toPath:`${co}/_root.md`,feature:"rules"}),true}var BR=d(()=>{b();B();Bc();de();Qe();s(zc,"importCursorRootFile");});async function wN(e,t,r){let n=join(e,co),o=false,i=join(e,Fr);if(t.push(...await Se({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:s(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await k(a);if(m!==null){let{frontmatter:p}=x(m);if(p.alwaysApply===true)return null}}return Qf(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(e,Ai),l=await k(a);l!==null&&(o=await zc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(e,Yw),l=await k(a);l!==null&&await zc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r});}}var bN=d(()=>{b();B();qt();UR();BR();Qe();s(wN,"importCursorRules");});function AN(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Jn({...m,type:p}))continue;let u=p==="prompt"?xt(m)||Je(m):Je(m)||xt(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function eg(e,t){let r=false,n=join(e,lo),o=await k(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=AN(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(e,Dp);await O(dirname(g)),await L(g,f),t.push({fromTool:"cursor",fromPath:n,toPath:Dp,feature:"hooks"}),r=!0;}}}catch{}let i=join(e,gf),a=await k(i);if(!a)return;let l;try{l=JSON.parse(a);}catch{return}let c=l.permissions;if(c&&typeof c=="object"&&!Array.isArray(c)){let p=c,u=Array.isArray(p.allow)?p.allow.filter(g=>typeof g=="string"):[],f=Array.isArray(p.deny)?p.deny.filter(g=>typeof g=="string"):[];if(u.length>0||f.length>0){let g=stringify({allow:u,deny:f}),h=join(e,pS);await O(dirname(h)),await L(h,g),t.push({fromTool:"cursor",fromPath:i,toPath:pS,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=AN(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(e,Dp);await O(dirname(f)),await L(f,u),t.push({fromTool:"cursor",fromPath:i,toPath:Dp,feature:"hooks"});}}}async function tg(e,t){let r=[{path:join(e,Rn),label:Rn},{path:join(e,mS),label:mS}],n=[],o=[];for(let a of r){let l=await k(a.path);if(l!==null){o.push(a.label);for(let c of l.split(/\r?\n/)){let m=c.trim();m&&!n.includes(m)&&n.push(m);}}}if(n.length===0)return;let i=join(e,uS);await O(dirname(i)),await L(i,n.join(`
122
+ `)}var RN=d(()=>{B();Be();Qe();s(vR,"generateRules");s(SN,"renderCursorGlobalUserRules");});function FR(e){return e.commands.map(t=>({path:`${Mr}/${t.name}.md`,content:t.body.trim()||""}))}var kN=d(()=>{Qe();s(FR,"generateCommands");});function MR(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:ar,content:t}]}var IN=d(()=>{Qe();s(MR,"generateMcp");});function GR(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${It}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${It}/${r.name}/${a}`,content:i.content});}}return t}var LN=d(()=>{B();Qe();s(GR,"generateSkills");});function $R(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${Gr}/${t.name}.md`,content:n}})}var CN=d(()=>{B();Qe();s($R,"generateAgents");});function jR(e){return []}var EN=d(()=>{s(jR,"generatePermissions");});function rZ(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Yn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}function UR(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=rZ(e.hooks);if(Object.keys(t).length===0)return [];let r=JSON.stringify({version:1,hooks:t},null,2);return [{path:co,content:r}]}var ON=d(()=>{Lr();Qe();s(rZ,"toCursorHooks");s(UR,"generateHooks");});function BR(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
123
+ `);return [{path:Rn,content:t}]}var wN=d(()=>{Qe();s(BR,"generateIgnore");});var bN=d(()=>{RN();kN();IN();LN();CN();EN();ON();wN();});var AN=d(()=>{bN();});async function eg(e,t,r,n){let o=e.replace(/\.mdc$/i,".md"),i=join(t,o),l=x(r(i)).frontmatter.alwaysApply===true,c=l?join(t,"_root.md"):i,{frontmatter:m,body:p}=x(r(c));l&&n();let u={...m,root:l};if(delete u.alwaysApply,!l){let f=nZ(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${mo}/${l?"_root.md":o}`,feature:"rules",content:await z(c,u,p)}}function nZ(e){return e.alwaysApply!==false?null:(Array.isArray(e.globs)?e.globs:[]).length>0?"glob":(typeof e.description=="string"?e.description:"").trim().length>0?"model_decision":"manual"}async function xN(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=wr(o.allowedTools),l=a.length>0?a:wr(o["allowed-tools"]);return {destPath:n,toPath:`${Ti}/${e}`,feature:"commands",content:await Ce(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}}async function TN(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n));return {destPath:n,toPath:`${Pi}/${e}`,feature:"agents",content:await ve(n,o,i)}}var KR=d(()=>{B();de();qt();Qe();s(eg,"mapCursorRuleFile");s(nZ,"deriveCursorTrigger");s(xN,"mapCursorCommandFile");s(TN,"mapCursorAgentFile");});async function Jc(e){let t=join(e.projectRoot,mo);await O(t);let r=join(t,"_root.md"),n=await Mo({content:e.content,projectRoot:e.projectRoot,rulesDir:mo,sourcePath:e.sourcePath,fromTool:"cursor",normalize:e.normalize});e.results.push(...n.results);let o=e.normalize(n.rootContent,e.sourcePath,r);if(!o.trim()&&n.results.length>0)return true;let{frontmatter:i,body:a}=x(o),l=i.root===true?i:{...i,root:true},c=await z(r,l,a);return await L(r,c),e.results.push({fromTool:"cursor",fromPath:e.sourcePath,toPath:`${mo}/_root.md`,feature:"rules"}),true}var WR=d(()=>{b();B();Wc();de();Qe();s(Jc,"importCursorRootFile");});async function DN(e,t,r){let n=join(e,mo),o=false,i=join(e,Fr);if(t.push(...await Se({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:s(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await k(a);if(m!==null){let{frontmatter:p}=x(m);if(p.alwaysApply===true)return null}}return eg(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(e,xi),l=await k(a);l!==null&&(o=await Jc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(e,eb),l=await k(a);l!==null&&await Jc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r});}}var NN=d(()=>{b();B();Zt();KR();WR();Qe();s(DN,"importCursorRules");});function vN(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Yn({...m,type:p}))continue;let u=p==="prompt"?xt(m)||Je(m):Je(m)||xt(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function ng(e,t){let r=false,n=join(e,co),o=await k(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=vN(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(e,Np);await O(dirname(g)),await L(g,f),t.push({fromTool:"cursor",fromPath:n,toPath:Np,feature:"hooks"}),r=!0;}}}catch{}let i=join(e,_f),a=await k(i);if(!a)return;let l;try{l=JSON.parse(a);}catch{return}let c=l.permissions;if(c&&typeof c=="object"&&!Array.isArray(c)){let p=c,u=Array.isArray(p.allow)?p.allow.filter(g=>typeof g=="string"):[],f=Array.isArray(p.deny)?p.deny.filter(g=>typeof g=="string"):[];if(u.length>0||f.length>0){let g=stringify({allow:u,deny:f}),h=join(e,dS);await O(dirname(h)),await L(h,g),t.push({fromTool:"cursor",fromPath:i,toPath:dS,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=vN(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(e,Np);await O(dirname(f)),await L(f,u),t.push({fromTool:"cursor",fromPath:i,toPath:Np,feature:"hooks"});}}}async function og(e,t){let r=[{path:join(e,Rn),label:Rn},{path:join(e,uS),label:uS}],n=[],o=[];for(let a of r){let l=await k(a.path);if(l!==null){o.push(a.label);for(let c of l.split(/\r?\n/)){let m=c.trim();m&&!n.includes(m)&&n.push(m);}}}if(n.length===0)return;let i=join(e,fS);await O(dirname(i)),await L(i,n.join(`
124
124
  `)+`
125
- `),t.push({fromTool:"cursor",fromPath:join(e,o[0]),toPath:uS,feature:"ignore"});}var WR=d(()=>{Ir();b();Qe();s(AN,"cursorHooksToCanonical");s(eg,"importSettings");s(tg,"importIgnore");});async function rg(e,t,r,n=It){let o=join(e,n),i=await au(o),a={projectRoot:e,destCanonicalSkillsDir:Xw,targetName:"cursor",normalize:r,results:t};for(let[p,u]of i)await iu(p,u,a);let l=await U(o).catch(()=>[]),c=l.filter(p=>p.endsWith(".md")),m=new Set(Array.from(i.values()).flatMap(p=>l.filter(u=>u.startsWith(p))));for(let p of c){if(m.has(p))continue;let u=await k(p);if(!u)continue;let f=basename(p,".md");await _T(f,p,u,a);}}var HR=d(()=>{b();Hc();Qe();s(rg,"importSkills");});async function xN(e){if(await j(join(e,Fr)))return true;let t=[join(e,kn),join(e,Rc),join(e,ir),join(e,lo),join(e,Rn),join(e,It),join(e,Gr),join(e,Mr)];for(let i of t){let a=await k(i);if(a!==null&&a.trim()!=="")return true}return !!((await U(join(e,It))).some(i=>i.endsWith(".md"))||(await U(join(e,Gr))).some(i=>i.endsWith(".md"))||(await U(join(e,Mr))).some(i=>i.endsWith(".md")))}async function TN(e,t,r){let n=join(e,co),o=false,i=join(e,Fr),a=await Se({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:Vc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await k(l);if(p!==null){let{frontmatter:u}=x(p);if(u.alwaysApply===true)return null}}return Qf(c,n,m,()=>{o=true;})},"mapEntry")});return t.push(...a),o}async function PN(e,t,r){let n=join(e,Rc),o=await k(n);return o===null||o.trim()===""?false:zc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function DN(e,t,r){let n=join(e,kn),o=await k(n);return o===null||o.trim()===""?false:zc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function NN(e,t){let r=join(e,ir),n=await k(r);if(n===null||n.trim()==="")return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=join(e,kc);await O(dirname(i)),await L(i,n),t.push({fromTool:Vc,fromPath:r,toPath:kc,feature:"mcp"});}async function vN(e,t,r){let n=join(e,Gr),o=join(e,Ti);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Vc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>EN(i,o,a),"mapEntry")}));}async function FN(e,t,r){let n=join(e,Mr),o=join(e,xi);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Vc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>CN(i,o,a),"mapEntry")}));}var Vc,MN=d(()=>{b();B();qt();Qe();BR();UR();Vc="cursor";s(xN,"hasGlobalCursorArtifacts");s(TN,"importGlobalCursorRulesFromDir");s(PN,"importGlobalUserRules");s(DN,"importGlobalDotCursorAgents");s(NN,"importGlobalMcp");s(vN,"importGlobalAgents");s(FN,"importGlobalCommands");});async function GN(e){if(!await xN(e))return [];let t=[],r=await H(Vc,e,"global"),n=await TN(e,t,r);return n||(n=await PN(e,t,r)),n||await DN(e,t,r),await NN(e,t),await rg(e,t,r,It),await vN(e,t,r),await FN(e,t,r),await eg(e,t),await tg(e,t),t}var $N=d(()=>{ge();Qe();HR();WR();MN();s(GN,"importFromCursorGlobalExports");});async function eZ(e,t){let r=join(e,ir),n=await k(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=o.mcpServers;await Xe(e,kc,i),t.push({fromTool:"cursor",fromPath:r,toPath:kc,feature:"mcp"});}async function jN(e,t={}){if(t.scope==="global")return GN(e);let r=[],n=await H("cursor",e);return await wN(e,r,n),r.push(...await Q(ng,e,"project",{normalize:n})),await rg(e,r,n),await eZ(e,r),await eg(e,r),await tg(e,r),r}var UN=d(()=>{ge();b();Ae();hn();bN();WR();HR();$N();Qe();zR();s(eZ,"importMcp");s(jN,"importFromCursor");});var KN,WN,HN=d(()=>{B();de();Qt();Qe();KN=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=Or(o.allowedTools),l=a.length>0?a:Or(o["allowed-tools"]);return {destPath:n,toPath:`${xi}/${e}`,content:await Ce(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"cursorCommandMapper"),WN=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ti}/${e}`,content:await ve(n,o,i)}},"cursorAgentMapper");});function zN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Jw}))}var VN=d(()=>{Ee();Qe();s(zN,"lintRules");});function JN(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function YN(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&t.push(F(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return t}function XN(e){if(!e.permissions)return [];let t=e.permissions.ask?.length??0;return e.permissions.allow.length>0||e.permissions.deny.length>0||t>0?[F(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var QN=d(()=>{Re();s(JN,"lintCommands");s(YN,"lintMcp");s(XN,"lintPermissions");});var tZ,rZ,nZ,oZ,ng,zR=d(()=>{LN();Qe();dt();UN();HN();VN();Oe();QN();tZ={name:"cursor",primaryRootInstructionPath:Ls,generateRules:DR,generateCommands:NR,generateAgents:MR,generateSkills:FR,generateMcp:vR,generatePermissions:GR,generateHooks:$R,generateIgnore:jR,importFrom:jN},rZ={rootInstructionPath:Ls,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Ai,kn]}],skillDir:".cursor/skills",managedOutputs:{dirs:[".cursor/agents",".cursor/commands",".cursor/rules",".cursor/skills"],files:[".cursor/hooks.json",".cursor/mcp.json",".cursorignore","AGENTS.md"]},paths:{rulePath(e,t){return `.cursor/rules/${e}.mdc`},commandPath(e,t){return `.cursor/commands/${e}.md`},agentPath(e,t){return `.cursor/agents/${e}.md`}}},nZ={rootInstructionPath:Ls,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Ai,kn]}],skillDir:It,managedOutputs:{dirs:[Fr,Mr,Gr,It],files:[Ls,kn,ir,lo,Rn,Rc]},rewriteGeneratedPath(e){return e===Ai?null:e===kn||e===Ls||e.startsWith(`${Fr}/`)||e.startsWith(`${Mr}/`)||e.startsWith(`${Gr}/`)||e.startsWith(`${It}/`)||e===ir||e===lo||e===Rn?e:e===gf?null:e},mirrorGlobalPath(e,t){return fe(e,It,t)},paths:{rulePath(e,t){return `${Fr}/${e}.mdc`},commandPath(e,t){return `${Mr}/${e}.md`},agentPath(e,t){return `${Gr}/${e}.md`}}},oZ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},ng={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:tZ,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},emptyImportMessage:"No Cursor config found (AGENTS.md or .cursor/rules/*.mdc; with --global: ~/.cursor/{rules/*.mdc,AGENTS.md,mcp.json,hooks.json,cursorignore,skills/,agents/,commands/} and legacy ~/.agentsmesh-exports/cursor/user-rules.md).",lintRules:zN,lint:{commands:JN,mcp:YN,permissions:XN},project:rZ,globalSupport:{capabilities:oZ,detectionPaths:[Ls,kn,ir,lo,Rn,It,Gr,Mr,Rc],layout:nZ},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Mr]},canonicalDir:xi,extensions:[".md"],map:KN},agents:{feature:"agents",mode:"directory",source:{project:[Gr]},canonicalDir:Ti,extensions:[".md"],map:WN}},buildImportPaths:dS,detectionPaths:[".cursor/rules",".cursor/mcp.json"],nativeInstall:{pickPaths:[{prefix:".cursor/rules",feature:"rules",strategy:{kind:"basename",suffix:".mdc"}},{prefix:".cursor/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/skills",feature:"skills",strategy:{kind:"skillDir"}}],dialectHints:[{frontmatterKey:"alwaysApply"}]},preservesManualActivation:true};});function qN(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(mo)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:$r,content:o}]:[]}function ZN(e){return ie(e,Lt)}function ev(e){return e.commands.map(t=>({path:`${Lt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function tv(e){return e.agents.map(t=>({path:`${Lt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function rv(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Cs,content:t}]}function nv(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:hf,content:JSON.stringify(t,null,2)}]}var ov=d(()=>{oe();Be();_e();be();ml();Ic();s(qN,"generateRules");s(ZN,"generateSkills");s(ev,"generateCommands");s(tv,"generateAgents");s(rv,"generateMcp");s(nv,"generateHooks");});async function sv(e,t={}){let r=t.scope??"project",n=[],o=await H(mo,e,r);return n.push(...await Q(og,e,r,{normalize:o})),await ne(e,r==="global"?In:Lt,mo,n,o),n}var iv=d(()=>{ge();oe();Ae();Ic();VR();s(sv,"importFromDeepagentsCli");});function av(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:mo}))}var lv=d(()=>{Ee();Ic();s(av,"lintRules");});function cv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function mv(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var pv=d(()=>{Re();s(cv,"lintPermissions");s(mv,"lintIgnore");});var sZ,iZ,aZ,lZ,cZ,og,VR=d(()=>{be();_e();ov();iv();lv();pv();Oe();Ic();sZ={name:mo,primaryRootInstructionPath:$r,generateRules:qN,generateCommands:ev,generateAgents:tv,generateSkills:ZN,generateMcp:rv,generateHooks:nv,importFrom:sv},iZ={rootInstructionPath:$r,skillDir:Lt,managedOutputs:{dirs:[Lt],files:[$r,Cs,hf]},paths:{rulePath(e){return $r},commandPath(e){return `${Lt}/${J(e)}/SKILL.md`},agentPath(e){return `${Lt}/${V(e)}/SKILL.md`}}},aZ={rootInstructionPath:Es,skillDir:In,managedOutputs:{dirs:[In],files:[Es,ja,qw]},rewriteGeneratedPath(e){return e===$r?Es:e===Cs?ja:e.startsWith(`${Lt}/`)?e.replace(`${Lt}/`,`${In}/`):e},paths:{rulePath(e){return Es},commandPath(e){return `${In}/${J(e)}/SKILL.md`},agentPath(e){return `${In}/${V(e)}/SKILL.md`}}},lZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},cZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},og={id:mo,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:sZ,capabilities:lZ,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:av,lint:{permissions:cv,ignore:mv},supportsConversion:{commands:true,agents:true},project:iZ,globalSupport:{capabilities:cZ,detectionPaths:[Es,ja],layout:aZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[$r],global:[Es]},canonicalDir:Zw,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Cs],global:[ja]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:fS,detectionPaths:[$r,Cs]};});function uv(e){let t={name:e.name};return e.description&&(t.description=e.description.slice(0,500)),e.model?t.model=e.model:t.model="inherit",e.tools.length>0&&(t.tools=e.tools),T(t,e.body.trim()||"")}var dv=d(()=>{B();s(uv,"serializeDroid");});function fv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(jr)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ur,content:o}]:[]}function gv(e){return ie(e,Ut)}function hv(e){return e.commands.map(t=>({path:`${Ut}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function yv(e){return e.agents.map(t=>({path:`${po}/${t.name}.md`,content:uv(t)}))}function _v(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:yf,content:JSON.stringify(t,null,2)}]}function Sv(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:uo,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var Rv=d(()=>{oe();Be();be();ml();dv();Ba();s(fv,"generateRules");s(gv,"generateSkills");s(hv,"generateCommands");s(yv,"generateAgents");s(_v,"generateHooks");s(Sv,"generateMcp");});async function Iv(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Xe(e,kv,l),r.push({fromTool:jr,fromPath:t,toPath:kv,feature:"mcp"}));}var kv,Lv=d(()=>{b();hn();Ba();kv=".agentsmesh/mcp.json";s(Iv,"importFactoryDroidMcp");});async function Cv(e,t={}){let r=t.scope??"project",n=[],o=await H(jr,e,r);return n.push(...await Q(sg,e,r,{normalize:o})),await ne(e,r==="global"?fo:Ut,jr,n,o),await Iv(e,r==="global"?Pi:uo,n),n}var Ev=d(()=>{ge();oe();Ae();Lv();Ba();JR();s(Cv,"importFromFactoryDroid");});function Ov(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jr}))}var wv=d(()=>{Ee();Ba();s(Ov,"lintRules");});function bv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function Av(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var xv=d(()=>{Re();s(bv,"lintPermissions");s(Av,"lintIgnore");});var pZ,uZ,dZ,Tv,sg,JR=d(()=>{Rv();Ba();Ev();wv();xv();Oe();be();pZ={name:jr,primaryRootInstructionPath:Ur,generateRules:fv,generateCommands:hv,generateAgents:yv,generateSkills:gv,generateMcp:Sv,generateHooks:_v,importFrom:Cv},uZ={rootInstructionPath:Ur,skillDir:Ut,managedOutputs:{dirs:[Ut,po],files:[Ur,yf,uo]},paths:{rulePath(e){return Ur},commandPath(e){return `${Ut}/${J(e)}/SKILL.md`},agentPath(e){return `${po}/${e}.md`}}},dZ={rootInstructionPath:Os,skillDir:fo,managedOutputs:{dirs:[fo,Ua],files:[Os,tb,Pi]},rewriteGeneratedPath(e){return e===Ur?Os:e===uo?Pi:e.startsWith(`${Ut}/`)?e.replace(`${Ut}/`,`${fo}/`):e.startsWith(`${po}/`)?e.replace(`${po}/`,`${Ua}/`):e},paths:{rulePath(e){return Os},commandPath(e){return `${fo}/${J(e)}/SKILL.md`},agentPath(e){return `${Ua}/${e}.md`}}},Tv={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},sg={id:jr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:pZ,capabilities:Tv,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:Ov,lint:{permissions:bv,ignore:Av},supportsConversion:{commands:true},project:uZ,globalSupport:{capabilities:Tv,detectionPaths:[Os,Pi,Ua],layout:dZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ur],global:[Os]},canonicalDir:rb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:gS,detectionPaths:[Ur,uo,po]};});var ea,rn,Uo,Pv,Dv,Bo,ig,Rl,ag,fu,ta,Nv,vv,ra,lg,gu,hu,YR,XR,Jc,QR,Yc,Xc,cg,Qc,kl,yu,ot=d(()=>{ea="gemini-cli",rn="GEMINI.md",Uo="AGENTS.md",Pv=".gemini/rules",Dv=".gemini/GEMINI.md",Bo=".gemini/commands",ig=".gemini/policies",Rl=".gemini/settings.json",ag=".geminiignore",fu=".gemini/skills",ta=".gemini/agents",Nv=".gemini/system.md",vv=`${ig}/permissions.toml`,ra=".agentsmesh/rules",lg=".agentsmesh/commands",gu=".agentsmesh/agents",hu=".agentsmesh/skills",YR=".agentsmesh/mcp.json",XR=".agentsmesh/hooks.yaml",Jc=".agentsmesh/ignore",QR=".agentsmesh/permissions.yaml",Yc=".gemini/GEMINI.md",Xc=".gemini/AGENTS.md",cg=".gemini/settings.json",Qc=".gemini/commands",kl=".gemini/skills",yu=".gemini/agents";});function qR(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!t&&r.length===0)return [];let n=le(t?.body.trim()??"",r),o=[{path:rn,content:n}];return t&&o.push({path:Uo,content:t.body.trim()}),o}var Fv=d(()=>{Be();ot();s(qR,"generateRules");});function Mv(e,t){let r=e.split(":").filter(Boolean),n=r.length>0?r.pop():e;return [t,...r,`${n}.toml`].join("/")}var Gv=d(()=>{s(Mv,"canonicalCommandNameToGeminiTomlPath");});function fZ(e){let t=e.replace(/\r\n/g,`
125
+ `),t.push({fromTool:"cursor",fromPath:join(e,o[0]),toPath:fS,feature:"ignore"});}var zR=d(()=>{Lr();b();Qe();s(vN,"cursorHooksToCanonical");s(ng,"importSettings");s(og,"importIgnore");});async function sg(e,t,r,n=It){let o=join(e,n),i=await lu(o),a={projectRoot:e,destCanonicalSkillsDir:tb,targetName:"cursor",normalize:r,results:t};for(let[p,u]of i)await au(p,u,a);let l=await U(o).catch(()=>[]),c=l.filter(p=>p.endsWith(".md")),m=new Set(Array.from(i.values()).flatMap(p=>l.filter(u=>u.startsWith(p))));for(let p of c){if(m.has(p))continue;let u=await k(p);if(!u)continue;let f=basename(p,".md");await CT(f,p,u,a);}}var VR=d(()=>{b();Vc();Qe();s(sg,"importSkills");});async function FN(e){if(await j(join(e,Fr)))return true;let t=[join(e,kn),join(e,Ic),join(e,ar),join(e,co),join(e,Rn),join(e,It),join(e,Gr),join(e,Mr)];for(let i of t){let a=await k(i);if(a!==null&&a.trim()!=="")return true}return !!((await U(join(e,It))).some(i=>i.endsWith(".md"))||(await U(join(e,Gr))).some(i=>i.endsWith(".md"))||(await U(join(e,Mr))).some(i=>i.endsWith(".md")))}async function MN(e,t,r){let n=join(e,mo),o=false,i=join(e,Fr),a=await Se({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:Yc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await k(l);if(p!==null){let{frontmatter:u}=x(p);if(u.alwaysApply===true)return null}}return eg(c,n,m,()=>{o=true;})},"mapEntry")});return t.push(...a),o}async function GN(e,t,r){let n=join(e,Ic),o=await k(n);return o===null||o.trim()===""?false:Jc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function $N(e,t,r){let n=join(e,kn),o=await k(n);return o===null||o.trim()===""?false:Jc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function jN(e,t){let r=join(e,ar),n=await k(r);if(n===null||n.trim()==="")return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=join(e,Lc);await O(dirname(i)),await L(i,n),t.push({fromTool:Yc,fromPath:r,toPath:Lc,feature:"mcp"});}async function UN(e,t,r){let n=join(e,Gr),o=join(e,Pi);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Yc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>TN(i,o,a),"mapEntry")}));}async function BN(e,t,r){let n=join(e,Mr),o=join(e,Ti);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Yc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>xN(i,o,a),"mapEntry")}));}var Yc,KN=d(()=>{b();B();Zt();Qe();WR();KR();Yc="cursor";s(FN,"hasGlobalCursorArtifacts");s(MN,"importGlobalCursorRulesFromDir");s(GN,"importGlobalUserRules");s($N,"importGlobalDotCursorAgents");s(jN,"importGlobalMcp");s(UN,"importGlobalAgents");s(BN,"importGlobalCommands");});async function WN(e){if(!await FN(e))return [];let t=[],r=await H(Yc,e,"global"),n=await MN(e,t,r);return n||(n=await GN(e,t,r)),n||await $N(e,t,r),await jN(e,t),await sg(e,t,r,It),await UN(e,t,r),await BN(e,t,r),await ng(e,t),await og(e,t),t}var HN=d(()=>{ge();Qe();VR();zR();KN();s(WN,"importFromCursorGlobalExports");});async function lZ(e,t){let r=join(e,ar),n=await k(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=o.mcpServers;await Xe(e,Lc,i),t.push({fromTool:"cursor",fromPath:r,toPath:Lc,feature:"mcp"});}async function zN(e,t={}){if(t.scope==="global")return WN(e);let r=[],n=await H("cursor",e);return await DN(e,r,n),r.push(...await Q(ig,e,"project",{normalize:n})),await sg(e,r,n),await lZ(e,r),await ng(e,r),await og(e,r),r}var VN=d(()=>{ge();b();Ae();hn();NN();zR();VR();HN();Qe();JR();s(lZ,"importMcp");s(zN,"importFromCursor");});var YN,XN,QN=d(()=>{B();de();qt();Qe();YN=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=wr(o.allowedTools),l=a.length>0?a:wr(o["allowed-tools"]);return {destPath:n,toPath:`${Ti}/${e}`,content:await Ce(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"cursorCommandMapper"),XN=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Pi}/${e}`,content:await ve(n,o,i)}},"cursorAgentMapper");});function qN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Zw}))}var ZN=d(()=>{Ee();Qe();s(qN,"lintRules");});function ev(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function tv(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&t.push(F(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return t}function rv(e){if(!e.permissions)return [];let t=e.permissions.ask?.length??0;return e.permissions.allow.length>0||e.permissions.deny.length>0||t>0?[F(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var nv=d(()=>{Re();s(ev,"lintCommands");s(tv,"lintMcp");s(rv,"lintPermissions");});var cZ,mZ,pZ,uZ,ig,JR=d(()=>{AN();Qe();dt();VN();QN();ZN();Oe();nv();cZ={name:"cursor",primaryRootInstructionPath:Ls,generateRules:vR,generateCommands:FR,generateAgents:$R,generateSkills:GR,generateMcp:MR,generatePermissions:jR,generateHooks:UR,generateIgnore:BR,importFrom:zN},mZ={rootInstructionPath:Ls,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[xi,kn]}],skillDir:".cursor/skills",managedOutputs:{dirs:[".cursor/agents",".cursor/commands",".cursor/rules",".cursor/skills"],files:[".cursor/hooks.json",".cursor/mcp.json",".cursorignore","AGENTS.md"]},paths:{rulePath(e,t){return `.cursor/rules/${e}.mdc`},commandPath(e,t){return `.cursor/commands/${e}.md`},agentPath(e,t){return `.cursor/agents/${e}.md`}}},pZ={rootInstructionPath:Ls,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[xi,kn]}],skillDir:It,managedOutputs:{dirs:[Fr,Mr,Gr,It],files:[Ls,kn,ar,co,Rn,Ic]},rewriteGeneratedPath(e){return e===xi?null:e===kn||e===Ls||e.startsWith(`${Fr}/`)||e.startsWith(`${Mr}/`)||e.startsWith(`${Gr}/`)||e.startsWith(`${It}/`)||e===ar||e===co||e===Rn?e:e===_f?null:e},mirrorGlobalPath(e,t){return fe(e,It,t)},paths:{rulePath(e,t){return `${Fr}/${e}.mdc`},commandPath(e,t){return `${Mr}/${e}.md`},agentPath(e,t){return `${Gr}/${e}.md`}}},uZ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},ig={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:cZ,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},emptyImportMessage:"No Cursor config found (AGENTS.md or .cursor/rules/*.mdc; with --global: ~/.cursor/{rules/*.mdc,AGENTS.md,mcp.json,hooks.json,cursorignore,skills/,agents/,commands/} and legacy ~/.agentsmesh-exports/cursor/user-rules.md).",lintRules:qN,lint:{commands:ev,mcp:tv,permissions:rv},project:mZ,globalSupport:{capabilities:uZ,detectionPaths:[Ls,kn,ar,co,Rn,It,Gr,Mr,Ic],layout:pZ},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Mr]},canonicalDir:Ti,extensions:[".md"],map:YN},agents:{feature:"agents",mode:"directory",source:{project:[Gr]},canonicalDir:Pi,extensions:[".md"],map:XN}},buildImportPaths:gS,detectionPaths:[".cursor/rules",".cursor/mcp.json"],nativeInstall:{pickPaths:[{prefix:".cursor/rules",feature:"rules",strategy:{kind:"basename",suffix:".mdc"}},{prefix:".cursor/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/skills",feature:"skills",strategy:{kind:"skillDir"}}],dialectHints:[{frontmatterKey:"alwaysApply"}]},preservesManualActivation:true};});function ov(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(po)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:$r,content:o}]:[]}function sv(e){return ie(e,Lt)}function iv(e){return e.commands.map(t=>({path:`${Lt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function av(e){return e.agents.map(t=>({path:`${Lt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function lv(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Cs,content:t}]}function cv(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:Sf,content:JSON.stringify(t,null,2)}]}var mv=d(()=>{oe();Be();_e();be();ul();Cc();s(ov,"generateRules");s(sv,"generateSkills");s(iv,"generateCommands");s(av,"generateAgents");s(lv,"generateMcp");s(cv,"generateHooks");});async function pv(e,t={}){let r=t.scope??"project",n=[],o=await H(po,e,r);return n.push(...await Q(ag,e,r,{normalize:o})),await ne(e,r==="global"?In:Lt,po,n,o),n}var uv=d(()=>{ge();oe();Ae();Cc();YR();s(pv,"importFromDeepagentsCli");});function dv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:po}))}var fv=d(()=>{Ee();Cc();s(dv,"lintRules");});function gv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function hv(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var yv=d(()=>{Re();s(gv,"lintPermissions");s(hv,"lintIgnore");});var dZ,fZ,gZ,hZ,yZ,ag,YR=d(()=>{be();_e();mv();uv();fv();yv();Oe();Cc();dZ={name:po,primaryRootInstructionPath:$r,generateRules:ov,generateCommands:iv,generateAgents:av,generateSkills:sv,generateMcp:lv,generateHooks:cv,importFrom:pv},fZ={rootInstructionPath:$r,skillDir:Lt,managedOutputs:{dirs:[Lt],files:[$r,Cs,Sf]},paths:{rulePath(e){return $r},commandPath(e){return `${Lt}/${J(e)}/SKILL.md`},agentPath(e){return `${Lt}/${V(e)}/SKILL.md`}}},gZ={rootInstructionPath:Es,skillDir:In,managedOutputs:{dirs:[In],files:[Es,Ba,nb]},rewriteGeneratedPath(e){return e===$r?Es:e===Cs?Ba:e.startsWith(`${Lt}/`)?e.replace(`${Lt}/`,`${In}/`):e},paths:{rulePath(e){return Es},commandPath(e){return `${In}/${J(e)}/SKILL.md`},agentPath(e){return `${In}/${V(e)}/SKILL.md`}}},hZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},yZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},ag={id:po,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:dZ,capabilities:hZ,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:dv,lint:{permissions:gv,ignore:hv},supportsConversion:{commands:true,agents:true},project:fZ,globalSupport:{capabilities:yZ,detectionPaths:[Es,Ba],layout:gZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[$r],global:[Es]},canonicalDir:ob,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Cs],global:[Ba]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:hS,detectionPaths:[$r,Cs]};});function _v(e){let t={name:e.name};return e.description&&(t.description=e.description.slice(0,500)),e.model?t.model=e.model:t.model="inherit",e.tools.length>0&&(t.tools=e.tools),T(t,e.body.trim()||"")}var Sv=d(()=>{B();s(_v,"serializeDroid");});function Rv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(jr)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ur,content:o}]:[]}function kv(e){return ie(e,Bt)}function Iv(e){return e.commands.map(t=>({path:`${Bt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function Lv(e){return e.agents.map(t=>({path:`${uo}/${t.name}.md`,content:_v(t)}))}function Cv(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:Rf,content:JSON.stringify(t,null,2)}]}function Ev(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:fo,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var Ov=d(()=>{oe();Be();be();ul();Sv();Wa();s(Rv,"generateRules");s(kv,"generateSkills");s(Iv,"generateCommands");s(Lv,"generateAgents");s(Cv,"generateHooks");s(Ev,"generateMcp");});async function bv(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Xe(e,wv,l),r.push({fromTool:jr,fromPath:t,toPath:wv,feature:"mcp"}));}var wv,Av=d(()=>{b();hn();Wa();wv=".agentsmesh/mcp.json";s(bv,"importFactoryDroidMcp");});async function xv(e,t={}){let r=t.scope??"project",n=[],o=await H(jr,e,r);return n.push(...await Q(lg,e,r,{normalize:o})),await ne(e,r==="global"?go:Bt,jr,n,o),await bv(e,r==="global"?Di:fo,n),n}var Tv=d(()=>{ge();oe();Ae();Av();Wa();XR();s(xv,"importFromFactoryDroid");});function Pv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jr}))}var Dv=d(()=>{Ee();Wa();s(Pv,"lintRules");});function Nv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function vv(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var Fv=d(()=>{Re();s(Nv,"lintPermissions");s(vv,"lintIgnore");});var SZ,RZ,kZ,Mv,lg,XR=d(()=>{Ov();Wa();Tv();Dv();Fv();Oe();be();SZ={name:jr,primaryRootInstructionPath:Ur,generateRules:Rv,generateCommands:Iv,generateAgents:Lv,generateSkills:kv,generateMcp:Ev,generateHooks:Cv,importFrom:xv},RZ={rootInstructionPath:Ur,skillDir:Bt,managedOutputs:{dirs:[Bt,uo],files:[Ur,Rf,fo]},paths:{rulePath(e){return Ur},commandPath(e){return `${Bt}/${J(e)}/SKILL.md`},agentPath(e){return `${uo}/${e}.md`}}},kZ={rootInstructionPath:Os,skillDir:go,managedOutputs:{dirs:[go,Ka],files:[Os,ib,Di]},rewriteGeneratedPath(e){return e===Ur?Os:e===fo?Di:e.startsWith(`${Bt}/`)?e.replace(`${Bt}/`,`${go}/`):e.startsWith(`${uo}/`)?e.replace(`${uo}/`,`${Ka}/`):e},paths:{rulePath(e){return Os},commandPath(e){return `${go}/${J(e)}/SKILL.md`},agentPath(e){return `${Ka}/${e}.md`}}},Mv={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},lg={id:jr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:SZ,capabilities:Mv,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:Pv,lint:{permissions:Nv,ignore:vv},supportsConversion:{commands:true},project:RZ,globalSupport:{capabilities:Mv,detectionPaths:[Os,Di,Ka],layout:kZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ur],global:[Os]},canonicalDir:ab,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:yS,detectionPaths:[Ur,fo,uo]};});var ta,rn,Bo,Gv,$v,Ko,cg,Il,mg,gu,ra,jv,Uv,na,pg,hu,yu,QR,qR,Xc,ZR,Qc,qc,ug,Zc,Ll,_u,ot=d(()=>{ta="gemini-cli",rn="GEMINI.md",Bo="AGENTS.md",Gv=".gemini/rules",$v=".gemini/GEMINI.md",Ko=".gemini/commands",cg=".gemini/policies",Il=".gemini/settings.json",mg=".geminiignore",gu=".gemini/skills",ra=".gemini/agents",jv=".gemini/system.md",Uv=`${cg}/permissions.toml`,na=".agentsmesh/rules",pg=".agentsmesh/commands",hu=".agentsmesh/agents",yu=".agentsmesh/skills",QR=".agentsmesh/mcp.json",qR=".agentsmesh/hooks.yaml",Xc=".agentsmesh/ignore",ZR=".agentsmesh/permissions.yaml",Qc=".gemini/GEMINI.md",qc=".gemini/AGENTS.md",ug=".gemini/settings.json",Zc=".gemini/commands",Ll=".gemini/skills",_u=".gemini/agents";});function ek(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!t&&r.length===0)return [];let n=le(t?.body.trim()??"",r),o=[{path:rn,content:n}];return t&&o.push({path:Bo,content:t.body.trim()}),o}var Bv=d(()=>{Be();ot();s(ek,"generateRules");});function Kv(e,t){let r=e.split(":").filter(Boolean),n=r.length>0?r.pop():e;return [t,...r,`${n}.toml`].join("/")}var Wv=d(()=>{s(Kv,"canonicalCommandNameToGeminiTomlPath");});function IZ(e){let t=e.replace(/\r\n/g,`
126
126
  `);return t.includes('"""')?JSON.stringify(t):`"""
127
127
  ${t}
128
- """`}function gZ(e){return [`description = ${JSON.stringify(e.description||e.name)}`,`prompt = ${fZ(e.body.trim()||"")}`].join(`
128
+ """`}function LZ(e){return [`description = ${JSON.stringify(e.description||e.name)}`,`prompt = ${IZ(e.body.trim()||"")}`].join(`
129
129
  `)+`
130
- `}function ZR(e){return e.commands.map(t=>({path:Mv(t.name,Bo),content:gZ(t)}))}var $v=d(()=>{ot();Gv();s(fZ,"serializeTomlMultilineLiteral");s(gZ,"serializeGeminiCommand");s(ZR,"generateCommands");});function ek(e){return e.agents.map(t=>{let r={name:t.name,kind:"local",description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,permissionMode:t.permissionMode||void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${ta}/${t.name}.md`,content:n}})}var jv=d(()=>{B();ot();s(ek,"generateAgents");});function tk(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${fu}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${fu}/${r.name}/${a}`,content:i.content});}}return t}var Uv=d(()=>{B();ot();s(tk,"generateSkills");});function hZ(e){switch(e){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function rk(e,t){let r={},n=false;if(t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers,n=true),t.has("agents")&&e.agents.length>0&&(r.experimental={enableAgents:true},n=true),t.has("hooks")&&e.hooks){let o=Object.entries(e.hooks).flatMap(([i,a])=>{let l=hZ(i);if(!l||!Array.isArray(a))return [];let c=a.filter(m=>typeof m=="object"&&m!==null&&mn(m)).map((m,p)=>({matcher:m.matcher,hooks:[{name:`${l}-${p+1}`,type:"command",command:Je(m),timeout:m.timeout}]}));return c.length>0?[[l,c]]:[]});o.length>0&&(r.hooks=Object.fromEntries(o),n=true);}return n&&(r.context={fileName:[rn,Uo]}),Object.keys(r).length===0?[]:[{path:Rl,content:JSON.stringify(r,null,2)}]}var nk=d(()=>{Ir();ot();s(hZ,"mapHookEvent");s(rk,"generateGeminiSettingsFiles");});function ok(e){return !e.ignore||e.ignore.length===0?[]:[{path:ag,content:e.ignore.join(`
131
- `)}]}var Bv=d(()=>{ot();s(ok,"generateIgnore");});var Kv=d(()=>{Fv();$v();jv();Uv();nk();Bv();});var Wv=d(()=>{Kv();});function Il(e){return JSON.stringify(e)}function yZ(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _Z(e){let t=e.match(/^Bash\((.*)\)$/);if(t&&typeof t[1]=="string")return {kind:"bash",prefix:t[1]};let r=e.match(/^Read\((.*)\)$/);return r&&typeof r[1]=="string"?{kind:"read",path:r[1]}:e==="Read"||e==="Grep"||e==="LS"||e==="WebFetch"?{kind:"tool",tool:e}:{kind:"unknown",raw:e}}function mg(e,t,r){return ["[[rule]]",`decision = ${Il(e)}`,`priority = ${t}`,...r,""].join(`
132
- `)}function Hv(e,t,r){let n=_Z(e),o={Read:"read_file",Grep:"grep_search",LS:"list_directory",WebFetch:"web_fetch",Bash:"run_shell_command"};if(n.kind==="tool"){let i=o[n.tool]??n.tool;return mg(t,r,[`toolName = ${Il(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return mg(t,r,[`toolName = ${Il(o.Bash)}`,`commandPrefix = ${Il(i)}`])}return n.kind==="read"?mg(t,r,[`toolName = ${Il(o.Read)}`,`argsPattern = ${Il(yZ(n.path))}`]):mg(t,r,[`toolName = ${Il(n.raw)}`])}function zv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions;if(t.length+r.length===0)return [];let o=[];return t.forEach((i,a)=>{let l=Hv(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=Hv(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:vv,content:o.join(`
133
- `)}]}var Vv=d(()=>{ot();s(Il,"escapeTomlBasicString");s(yZ,"escapeRegexLiteral");s(_Z,"parsePermissionExpr");s(mg,"ruleForDecision");s(Hv,"permissionExprToGeminiRule");s(zv,"generateGeminiPermissionsPolicies");});function sk(e){switch(e){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}function pg(e){let t=e.indexOf("---"),r=e.indexOf("+++");if(t===0&&(r===-1||t<=r))return x(e);if(r===0){let n=e.indexOf("+++",3);if(n!==-1)try{let o=e.slice(3,n).trim(),i=e.slice(n+3).trim();return {frontmatter:o===""?{}:parse$1(o)??{},body:i}}catch{return {frontmatter:{},body:e.trim()}}}return {frontmatter:{},body:e.trim()}}var ik=d(()=>{B();s(sk,"mapGeminiHookEvent");s(pg,"parseFlexibleFrontmatter");});async function ak(e,t){let r=join(e,Rl),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{}if(!o)return;let i=o.mcpServers;if(i!==void 0&&typeof i=="object"&&i!==null&&Object.keys(i).length>0){let c=join(e,YR);await O(join(e,".agentsmesh")),await L(c,JSON.stringify({mcpServers:i},null,2)),t.push({fromTool:"gemini-cli",fromPath:r,toPath:YR,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(e,Jc);await O(join(e,".agentsmesh")),await L(c,a.join(`
130
+ `}function tk(e){return e.commands.map(t=>({path:Kv(t.name,Ko),content:LZ(t)}))}var Hv=d(()=>{ot();Wv();s(IZ,"serializeTomlMultilineLiteral");s(LZ,"serializeGeminiCommand");s(tk,"generateCommands");});function rk(e){return e.agents.map(t=>{let r={name:t.name,kind:"local",description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,permissionMode:t.permissionMode||void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${ra}/${t.name}.md`,content:n}})}var zv=d(()=>{B();ot();s(rk,"generateAgents");});function nk(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${gu}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${gu}/${r.name}/${a}`,content:i.content});}}return t}var Vv=d(()=>{B();ot();s(nk,"generateSkills");});function CZ(e){switch(e){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function ok(e,t){let r={},n=false;if(t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers,n=true),t.has("agents")&&e.agents.length>0&&(r.experimental={enableAgents:true},n=true),t.has("hooks")&&e.hooks){let o=Object.entries(e.hooks).flatMap(([i,a])=>{let l=CZ(i);if(!l||!Array.isArray(a))return [];let c=a.filter(m=>typeof m=="object"&&m!==null&&mn(m)).map((m,p)=>({matcher:m.matcher,hooks:[{name:`${l}-${p+1}`,type:"command",command:Je(m),timeout:m.timeout}]}));return c.length>0?[[l,c]]:[]});o.length>0&&(r.hooks=Object.fromEntries(o),n=true);}return n&&(r.context={fileName:[rn,Bo]}),Object.keys(r).length===0?[]:[{path:Il,content:JSON.stringify(r,null,2)}]}var sk=d(()=>{Lr();ot();s(CZ,"mapHookEvent");s(ok,"generateGeminiSettingsFiles");});function ik(e){return !e.ignore||e.ignore.length===0?[]:[{path:mg,content:e.ignore.join(`
131
+ `)}]}var Jv=d(()=>{ot();s(ik,"generateIgnore");});var Yv=d(()=>{Bv();Hv();zv();Vv();sk();Jv();});var Xv=d(()=>{Yv();});function Cl(e){return JSON.stringify(e)}function EZ(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function OZ(e){let t=e.match(/^Bash\((.*)\)$/);if(t&&typeof t[1]=="string")return {kind:"bash",prefix:t[1]};let r=e.match(/^Read\((.*)\)$/);return r&&typeof r[1]=="string"?{kind:"read",path:r[1]}:e==="Read"||e==="Grep"||e==="LS"||e==="WebFetch"?{kind:"tool",tool:e}:{kind:"unknown",raw:e}}function dg(e,t,r){return ["[[rule]]",`decision = ${Cl(e)}`,`priority = ${t}`,...r,""].join(`
132
+ `)}function Qv(e,t,r){let n=OZ(e),o={Read:"read_file",Grep:"grep_search",LS:"list_directory",WebFetch:"web_fetch",Bash:"run_shell_command"};if(n.kind==="tool"){let i=o[n.tool]??n.tool;return dg(t,r,[`toolName = ${Cl(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return dg(t,r,[`toolName = ${Cl(o.Bash)}`,`commandPrefix = ${Cl(i)}`])}return n.kind==="read"?dg(t,r,[`toolName = ${Cl(o.Read)}`,`argsPattern = ${Cl(EZ(n.path))}`]):dg(t,r,[`toolName = ${Cl(n.raw)}`])}function qv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions;if(t.length+r.length===0)return [];let o=[];return t.forEach((i,a)=>{let l=Qv(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=Qv(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:Uv,content:o.join(`
133
+ `)}]}var Zv=d(()=>{ot();s(Cl,"escapeTomlBasicString");s(EZ,"escapeRegexLiteral");s(OZ,"parsePermissionExpr");s(dg,"ruleForDecision");s(Qv,"permissionExprToGeminiRule");s(qv,"generateGeminiPermissionsPolicies");});function ak(e){switch(e){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}function fg(e){let t=e.indexOf("---"),r=e.indexOf("+++");if(t===0&&(r===-1||t<=r))return x(e);if(r===0){let n=e.indexOf("+++",3);if(n!==-1)try{let o=e.slice(3,n).trim(),i=e.slice(n+3).trim();return {frontmatter:o===""?{}:parse$1(o)??{},body:i}}catch{return {frontmatter:{},body:e.trim()}}}return {frontmatter:{},body:e.trim()}}var lk=d(()=>{B();s(ak,"mapGeminiHookEvent");s(fg,"parseFlexibleFrontmatter");});async function ck(e,t){let r=join(e,Il),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{}if(!o)return;let i=o.mcpServers;if(i!==void 0&&typeof i=="object"&&i!==null&&Object.keys(i).length>0){let c=join(e,QR);await O(join(e,".agentsmesh")),await L(c,JSON.stringify({mcpServers:i},null,2)),t.push({fromTool:"gemini-cli",fromPath:r,toPath:QR,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(e,Xc);await O(join(e,".agentsmesh")),await L(c,a.join(`
134
134
  `)+`
135
- `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Jc,feature:"ignore"});}let l=o.hooks;if(l!==void 0&&typeof l=="object"&&l!==null){let c=Object.entries(l).flatMap(([m,p])=>{let u=sk(m);if(!u||!Array.isArray(p))return [];let f=p.filter(g=>g!==null&&typeof g=="object"&&typeof g.matcher=="string"&&Array.isArray(g.hooks)).flatMap(g=>g.hooks.filter(h=>h!==null&&typeof h=="object"&&mn(h)).map(h=>({matcher:g.matcher,command:Je(h),type:"command",timeout:typeof h.timeout=="number"?h.timeout:void 0})));if(f.length===0){let g=p.filter(h=>h!==null&&typeof h=="object"&&typeof h.matcher=="string"&&mn(h)).map(h=>({matcher:h.matcher,command:Je(h),type:"command"}));return g.length>0?[[u,g]]:[]}return f.length>0?[[u,f]]:[]});if(c.length>0){let m=Object.fromEntries(c),p=join(e,XR);await O(join(e,".agentsmesh")),await L(p,stringify(m,{lineWidth:0}).trimEnd()),t.push({fromTool:"gemini-cli",fromPath:r,toPath:XR,feature:"hooks"});}}}var Jv=d(()=>{Ir();b();ot();ik();s(ak,"importGeminiSettings");});async function Yv(e,t){let r=join(e,ag),n=await k(r);if(n!==null&&n.trim()){let o=n.split(/\r?\n/).map(i=>i.trim()).filter(i=>i&&!i.startsWith("#"));if(o.length>0){await O(join(e,".agentsmesh"));let i=join(e,Jc);await L(i,o.join(`
135
+ `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Xc,feature:"ignore"});}let l=o.hooks;if(l!==void 0&&typeof l=="object"&&l!==null){let c=Object.entries(l).flatMap(([m,p])=>{let u=ak(m);if(!u||!Array.isArray(p))return [];let f=p.filter(g=>g!==null&&typeof g=="object"&&typeof g.matcher=="string"&&Array.isArray(g.hooks)).flatMap(g=>g.hooks.filter(h=>h!==null&&typeof h=="object"&&mn(h)).map(h=>({matcher:g.matcher,command:Je(h),type:"command",timeout:typeof h.timeout=="number"?h.timeout:void 0})));if(f.length===0){let g=p.filter(h=>h!==null&&typeof h=="object"&&typeof h.matcher=="string"&&mn(h)).map(h=>({matcher:h.matcher,command:Je(h),type:"command"}));return g.length>0?[[u,g]]:[]}return f.length>0?[[u,f]]:[]});if(c.length>0){let m=Object.fromEntries(c),p=join(e,qR);await O(join(e,".agentsmesh")),await L(p,stringify(m,{lineWidth:0}).trimEnd()),t.push({fromTool:"gemini-cli",fromPath:r,toPath:qR,feature:"hooks"});}}}var eF=d(()=>{Lr();b();ot();lk();s(ck,"importGeminiSettings");});async function tF(e,t){let r=join(e,mg),n=await k(r);if(n!==null&&n.trim()){let o=n.split(/\r?\n/).map(i=>i.trim()).filter(i=>i&&!i.startsWith("#"));if(o.length>0){await O(join(e,".agentsmesh"));let i=join(e,Xc);await L(i,o.join(`
136
136
  `)+`
137
- `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Jc,feature:"ignore"});}}}var ck=d(()=>{b();ot();ik();Jv();s(Yv,"importGeminiIgnore");});function LZ(e){return e.replace(/\\(.)/g,"$1")}function CZ(e){switch(e){case "read_file":return "Read";case "grep_search":return "Grep";case "list_directory":return "LS";case "web_fetch":return "WebFetch";case "run_shell_command":return "Bash";default:return null}}function EZ(e){return `Bash(${e}:*)`}function OZ(e){return `Read(${LZ(e)})`}async function Xv(e){let t=[],r=join(e,ig),n;try{n=await U(r);}catch{return t}let o=n.filter(u=>u.endsWith(".toml"));if(o.length===0)return t;let i=[],a=[],l=new Set,c=new Set;for(let u of o){let f=await k(u);if(!f)continue;let g;try{g=parse$1(f);}catch{continue}let h=g&&typeof g=="object"&&"rule"in g?g.rule:void 0;if(Array.isArray(h))for(let _ of h){if(!_||typeof _!="object")continue;let S=_,R=typeof S.toolName=="string"?S.toolName:null,I=typeof S.decision=="string"?S.decision:null;if(!R||!I)continue;let w=CZ(R);if(!w)continue;let D=null;w==="Bash"?typeof S.commandPrefix=="string"&&S.commandPrefix.trim()&&(D=EZ(S.commandPrefix.trim())):w==="Read"?typeof S.argsPattern=="string"&&S.argsPattern.trim()?D=OZ(S.argsPattern.trim()):D="Read":D=w,D&&(I==="allow"?l.has(D)||(l.add(D),i.push(D)):I==="deny"&&(c.has(D)||(c.add(D),a.push(D))));}}if(i.length===0&&a.length===0)return t;await O(join(e,".agentsmesh"));let m=join(e,QR),p=stringify({allow:i,deny:a});return await L(m,p.trimEnd()+`
138
- `),t.push({fromTool:ea,fromPath:join(e,ig),toPath:QR,feature:"permissions"}),t}var Qv=d(()=>{b();ot();s(LZ,"unescapeRegexLiteral");s(CZ,"toolNameToPermissionBase");s(EZ,"commandPrefixToBashExpr");s(OZ,"argsPatternToReadExpr");s(Xv,"importGeminiPolicies");});function mk(e,t){let r=new Set([t,t.replace(/\\/g,"/"),t.replace(/\//g,"\\")]);try{r.add(realpathSync(t)),r.add(realpathSync.native(t));}catch{}return Array.from(r).reduce((o,i)=>{let a=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return o.replace(new RegExp(`${a}[/\\\\]\\.agentsmesh[/\\\\]`,"g"),".agentsmesh/").replaceAll(`${i}/.agentsmesh`,".agentsmesh").replaceAll(`${i}\\.agentsmesh`,".agentsmesh")},e).replace(/(?:[A-Za-z]:)?[^\s"'`()<>]+[/\\]\.agentsmesh[/\\]/g,".agentsmesh/")}var Zv=d(()=>{s(mk,"stripProjectRootCanonicalPrefix");});async function tF(e,t,r){let n=join(e,fu),i=(await U(n)).filter(l=>basename(l)==="SKILL.md");for(let l of i){let c=await k(l);if(!c)continue;let m=basename(l.slice(0,-9)),p=x(c),u=ac(p.frontmatter,m);if(u){let I=join(e,gu);await O(I);let w=join(I,`${u.name}.md`);await L(w,Ri(u,r(p.body,l,w))),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${gu}/${u.name}.md`,feature:"agents"});continue}let f=join(e,hu,m,"SKILL.md"),g=r(c,l,f),h=join(e,hu,m);await O(h);let{frontmatter:_,body:S}=x(g);await L(f,await Yn(f,{..._,name:m},S)),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${hu}/${m}/SKILL.md`,feature:"skills"});let R=await U(dirname(l));for(let I of R){if(I===l)continue;let w=await k(I);if(w===null)continue;let D=relative(dirname(l),I).replace(/\\/g,"/"),P=join(h,D);await O(dirname(P)),await L(P,r(w,I,P)),t.push({fromTool:"gemini-cli",fromPath:I,toPath:`${hu}/${m}/${D}`,feature:"skills"});}}let a=join(e,ta);try{let c=(await U(a)).filter(m=>m.endsWith(".md"));for(let m of c){let p=await k(m);if(!p)continue;let{frontmatter:u,body:f}=x(p),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),_=join(e,gu);await O(_);let S=join(_,h),R=r(f,m,S);await L(S,await ve(S,{...u,name:typeof u.name=="string"?u.name:basename(h,".md"),maxTurns:u.maxTurns??u["max-turns"]??u.max_turns,permissionMode:u.permissionMode??u["permission-mode"]??u.permission_mode,disallowedTools:u.disallowedTools??u["disallowed-tools"]??u.disallowed_tools},R)),t.push({fromTool:"gemini-cli",fromPath:m,toPath:`${gu}/${h}`,feature:"agents"});}}catch{}}var rF=d(()=>{b();B();de();_e();ot();s(tF,"importGeminiSkillsAndAgents");});async function wZ(e,t,r){let n=await H("codex-cli",e),o=join(e,ra),i=join(e,Uo),a=join(e,Dv),l=[i,a,join(e,rn),join(e,Nv)],c=null,m=l[l.length-1];for(let D of l){let P=await k(D);if(P!==null){c=P,m=D;break}}if(c===null)return;await O(o);let p=join(o,"_root.md"),u=m===i||m===a?n(c,m,p):c,f=await Fo({content:u,projectRoot:e,rulesDir:ra,sourcePath:m,fromTool:ea,normalize:r});t.push(...f.results);let g=r(f.rootContent,m,p),h=mk(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),e),{frontmatter:_,body:S}=x(h),I=_.root===true?_:{..._,root:true},w=mk(await z(p,I,S),e);await L(p,w),t.push({fromTool:ea,fromPath:m,toPath:`${ra}/_root.md`,feature:"rules"});}async function nF(e){let t=[],r=await H(ea,e);return await wZ(e,t,r),t.push(...await Q(dg,e,"project",{normalize:r})),await tF(e,t,r),await ak(e,t),await Yv(e,t),t.push(...await Xv(e)),t}var oF=d(()=>{ge();b();B();de();Bc();Ae();ot();dk();ck();Qv();Zv();rF();s(wZ,"importRootRule");s(nF,"importFromGemini");});function AZ(e){let t=e.replace(/^\/+|\/+$/g,"");return t===".gemini/commands"||t.startsWith(".gemini/commands/")}async function xZ(e,t){let r=join(e,...Bo.split("/")),n=join(e,...t.split("/")),o=await U(n),i=[];for(let a of o){if(!/\.(toml|md)$/i.test(a))continue;let l=relative(r,a).replace(/\\/g,"/");if(l.startsWith("..")||l==="")continue;let m=l.replace(/\.(toml|md)$/i,"").split("/").filter(Boolean).join(":");m&&i.push(m);}return [...new Set(i)].sort()}async function iF(e,t){if(!AZ(t))return {};let r=await xZ(e,t);return r.length?{commands:r}:{}}var aF=d(()=>{b();ot();s(AZ,"isUnderGeminiCommands");s(xZ,"inferGeminiCommandNamesFromFiles");s(iF,"inferGeminiPick");});async function cF(e,t,r){let n=e.replace(/\\/g,"/"),o=join(t,n),{frontmatter:i,body:a}=pg(r(o)),l=as(i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${ra}/${n}`,feature:"rules",content:await z(o,c,a)}}async function mF(e,t,r){let n=e.replace(/\.(toml|md)$/i,".md").replace(/\\/g,"/"),o=join(t,n),i=r(o),{frontmatter:a,body:l}=e.endsWith(".toml")?PZ(i):pg(i),c=Or(a.allowedTools),m=Or(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${lg}/${n}`,feature:"commands",content:await Ce(o,{description:typeof a.description=="string"?a.description:"",hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:p,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"allowedTools")||Object.prototype.hasOwnProperty.call(a,"allowed-tools")},l)}}function PZ(e){try{let t=parse$1(e);return {frontmatter:t,body:typeof t.prompt=="string"?t.prompt:""}}catch{return {frontmatter:{},body:e.trim()}}}var pF=d(()=>{de();Qt();ck();ot();s(cF,"mapGeminiRuleFile");s(mF,"mapGeminiCommandFile");s(PZ,"parseTomlCommand");});var uF,dF,fF=d(()=>{pF();uF=s(({relativePath:e,destDir:t,normalizeTo:r})=>cF(e,t,r),"geminiRuleMapper"),dF=s(({relativePath:e,destDir:t,normalizeTo:r})=>mF(e,t,r),"geminiCommandMapper");});function gF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ea}))}var hF=d(()=>{Ee();ot();s(gF,"lintRules");});function yF(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function _F(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Li(n,"gemini-cli",t))}var SF=d(()=>{Re();s(yF,"lintCommands");s(_F,"lintHooks");});function RF(e,t,r){return t==="project"&&ni("gemini-cli",t)?.ignore.flavor!=="settings-embedded"?[]:rk(e,r)}var kF=d(()=>{xe();nk();s(RF,"emitScopedGeminiSettings");});var DZ,NZ,vZ,FZ,dg,dk=d(()=>{Wv();La();Vv();ot();oF();aF();fF();hF();Oe();op();_e();SF();kF();dt();du();DZ={name:"gemini-cli",primaryRootInstructionPath:rn,generateRules:qR,generateCommands:ZR,generateAgents:ek,generateSkills:tk,generateIgnore:ok,generatePermissions:zv,importFrom:nF},NZ={rootInstructionPath:rn,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Uo]}],extraRuleOutputPaths(){return [Uo]},skillDir:".gemini/skills",managedOutputs:{dirs:[".gemini/agents",".gemini/commands",".gemini/skills",".agents/skills"],files:["AGENTS.md","GEMINI.md",".gemini/settings.json",".gemini/policies/permissions.toml",".geminiignore"]},mirrorGlobalPath(e,t){return fe(e,".gemini/skills",t)},paths:{rulePath(e,t){return rn},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Bo}/${r.join("/")}/${n}.toml`}return `${Bo}/${e}.toml`},agentPath(e,t){return os(t,"gemini-cli")?`.gemini/skills/${V(e)}/SKILL.md`:`${ta}/${e}.md`}}},vZ={rootInstructionPath:Yc,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Xc]}],extraRuleOutputPaths(){return [Xc]},skillDir:kl,managedOutputs:{dirs:[Qc,kl,yu],files:[Yc,Xc,cg]},rewriteGeneratedPath(e){return e===rn?Yc:e===Uo?Xc:e===Rl?cg:e.startsWith(`${Bo}/`)?e.replace(`${Bo}/`,`${Qc}/`):e.startsWith(".gemini/skills/")?e.replace(".gemini/skills/",`${kl}/`):e.startsWith(`${ta}/`)?e.replace(`${ta}/`,`${yu}/`):e.startsWith(".gemini/policies/")||e===".geminiignore"?null:e},mirrorGlobalPath(e,t){return fe(e,kl,t)},paths:{rulePath(e,t){return Yc},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Qc}/${r.join("/")}/${n}.toml`}return `${Qc}/${e}.toml`},agentPath(e,t){return os(t,"gemini-cli")?`${kl}/${V(e)}/SKILL.md`:`${yu}/${e}.md`}}},FZ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},dg={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:DZ,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:un("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:gF,lint:{commands:yF,hooks:_F},emitScopedSettings:RF,mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Rl?pN(o,r):null},project:NZ,globalSupport:{capabilities:FZ,detectionPaths:[Yc,Xc,cg,Qc,kl,yu],layout:vZ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Pv]},canonicalDir:ra,extensions:[".md"],map:uF},commands:{feature:"commands",mode:"directory",source:{project:[Bo]},canonicalDir:lg,extensions:[".md",".toml"],map:dF}},buildImportPaths:hS,detectionPaths:["GEMINI.md",".gemini"],nativeInstall:{inferPick:iF},conversionDefaults:{agentsToSkills:false}};});function IF(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(go)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:ar,content:o}]:[]}function LF(e){return ie(e,Bt)}function CF(e){return e.commands.map(t=>({path:`${Bt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function EF(e){return e.agents.map(t=>({path:`${Bt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function OF(e){return e.ignore.length===0?[]:[{path:ho,content:e.ignore.join(`
139
- `)}]}function GZ(e,t){let r={bundled:null,description:t.description??"",enabled:true,env_keys:[],envs:t.env??{},name:e,timeout:30,type:"command"in t?"stdio":"sse"};return "command"in t?{...r,args:t.args??[],cmd:t.command}:{...r,uri:t.url}}function wF(e,t){if(t?.scope!=="global")return [];if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let r=Object.fromEntries(Object.entries(e.mcp.mcpServers).map(([n,o])=>[n,GZ(n,o)]));return [{path:Ka,content:stringify({extensions:r})}]}var bF=d(()=>{oe();Be();_e();be();Wa();s(IF,"generateRules");s(LF,"generateSkills");s(CF,"generateCommands");s(EF,"generateAgents");s(OF,"generateIgnore");s(GZ,"mcpServerToExtension");s(wF,"generateMcp");});async function AF(e,t={}){let r=t.scope??"project",n=[],o=await H(go,e,r);return n.push(...await Q(fg,e,r,{normalize:o})),await ne(e,r==="global"?Br:Bt,go,n,o),n}var xF=d(()=>{ge();oe();Ae();Wa();fk();s(AF,"importFromGoose");});function KZ(e){let t=typeof e.description=="string"?e.description:"",r=wr(e.envs);return e.type==="stdio"||typeof e.cmd=="string"?typeof e.cmd!="string"?null:{type:"stdio",command:e.cmd,args:qn(e.args),env:r,...t!==""&&{description:t}}:typeof e.uri!="string"?null:{type:"sse",url:e.uri,headers:{},env:r,...t!==""&&{description:t}}}function WZ(e){let t;try{t=parse(e);}catch{return {}}if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t.extensions;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=KZ(i);a&&(n[o]=a);}return n}async function HZ(e){let t=await k(e);if(t===null)return {};let r;try{r=JSON.parse(t);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let n=r.mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n))!a||typeof a!="object"||Array.isArray(a)||(o[i]=a);return o}async function TF(e){let t=WZ(e.content);if(Object.keys(t).length===0)return null;let r=join(e.destDir,"mcp.json"),o={...await HZ(r),...t};return {destPath:r,toPath:posix.normalize(BZ),content:JSON.stringify({mcpServers:o},null,2)}}var BZ,PF=d(()=>{Qt();b();BZ=".agentsmesh/mcp.json";s(KZ,"extensionToMcpServer");s(WZ,"parseExtensions");s(HZ,"readExistingServers");s(TF,"gooseMcpMap");});var DF,NF=d(()=>{PF();Wa();DF={rules:{feature:"rules",mode:"singleFile",source:{project:[ar],global:[yo]},canonicalDir:sb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"singleFile",source:{global:[Ka]},canonicalDir:".agentsmesh",canonicalRootFilename:"mcp.json",map:TF},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ho],global:[Di]},canonicalDir:".agentsmesh",canonicalFilename:ib}};});function vF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:go}))}var FF=d(()=>{Ee();Wa();s(vF,"lintRules");});function MF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function GF(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function $F(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var jF=d(()=>{Re();s(MF,"lintHooks");s(GF,"lintPermissions");s($F,"lintMcp");});var zZ,VZ,JZ,YZ,XZ,fg,fk=d(()=>{be();_e();bF();dt();xF();NF();FF();jF();Oe();Wa();zZ={name:go,primaryRootInstructionPath:ar,generateRules:IF,generateCommands:CF,generateAgents:EF,generateSkills:LF,generateIgnore:OF,generateMcp:wF,importFrom:AF},VZ={rootInstructionPath:ar,skillDir:Bt,managedOutputs:{dirs:[Bt],files:[ar,ho]},paths:{rulePath(e){return ar},commandPath(e){return `${Bt}/${J(e)}/SKILL.md`},agentPath(e){return `${Bt}/${V(e)}/SKILL.md`}}},JZ={rootInstructionPath:yo,skillDir:Br,managedOutputs:{dirs:[Br],files:[yo,Di,Ka]},rewriteGeneratedPath(e){return e===ar?yo:e===ho?Di:e},mirrorGlobalPath(e,t){return fe(e,Br,t)},paths:{rulePath(e){return yo},commandPath(e){return `${Br}/${J(e)}/SKILL.md`},agentPath(e){return `${Br}/${V(e)}/SKILL.md`}}},YZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},XZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},fg={id:go,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:zZ,capabilities:YZ,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:vF,lint:{hooks:MF,permissions:GF,mcp:$F},supportsConversion:{commands:true,agents:true},project:VZ,globalSupport:{capabilities:XZ,detectionPaths:[yo,Di,Br,Ka],layout:JZ},importer:DF,sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:_S,detectionPaths:[ar,ho],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function UF(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ws)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ln,content:o}]:[]}var BF=d(()=>{Be();Lc();s(UF,"generateRules");});async function KF(e,t={}){let r=t.scope??"project",n=await H(ws,e,r);return Q(gg,e,r,{normalize:n})}var WF=d(()=>{ge();Ae();Lc();gk();s(KF,"importFromJules");});function HF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ws}))}var zF=d(()=>{Ee();Lc();s(HF,"lintRules");});function VF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function JF(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","jules","Jules has no permissions system; canonical permissions are not projected.")]}function YF(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function XF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function QF(e){return e.commands.length===0?[]:[F(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var qF=d(()=>{Re();s(VF,"lintHooks");s(JF,"lintPermissions");s(YF,"lintIgnore");s(XF,"lintMcp");s(QF,"lintCommands");});var QZ,qZ,ZZ,gg,gk=d(()=>{BF();WF();zF();qF();Oe();Lc();QZ={name:ws,primaryRootInstructionPath:Ln,generateRules:UF,importFrom:KF},qZ={rootInstructionPath:Ln,managedOutputs:{dirs:[],files:[Ln]},paths:{rulePath(e){return Ln},commandPath(){return null},agentPath(){return null}}},ZZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},gg={id:ws,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:QZ,capabilities:ZZ,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:HF,lint:{hooks:VF,permissions:JF,ignore:YF,mcp:XF,commands:QF},project:qZ,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ln]},canonicalDir:lb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:SS,detectionPaths:[Ln]};});function ZF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:_o,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");t.push({path:`${vp}/${o}.md`,content:n.body.trim()||""});}return t}function t8(e){let t={};return e.description&&(t.description=e.description),e.type!=="stdio"&&(t.type=e.type),Ff(e)?(t.command=e.command,t.args=e.args):(t.url=e.url,Object.keys(e.headers).length>0&&(t.headers=e.headers)),Object.keys(e.env).length>0&&(t.env=e.env),t}function eM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).map(([r,n])=>[r,t8(n)]));return [{path:Np,content:JSON.stringify({mcpServers:t},null,2)}]}function tM(e){return e.commands.map(t=>{let r={description:t.description||void 0};return r.description===void 0&&delete r.description,{path:`${Cc}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function rM(e){return e.agents.map(t=>{let r={name:t.name,description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,skills:t.skills.length>0?t.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${Ec}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function nM(e){return e.ignore.length===0?[]:[{path:Fp,content:e.ignore.join(`
140
- `)}]}function oM(e){return ie(e,za)}function sM(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("junie"));return le(t?.body.trim()??"",r)}function iM(e,t){if(t?.scope!=="global")return [];if(!e.permissions)return [];let{allow:r,deny:n}=e.permissions,o=e.permissions.ask??[];return r.length===0&&n.length===0&&o.length===0?[]:[{path:Rf,content:JSON.stringify({allow:r,deny:n,ask:o},null,2)}]}var aM=d(()=>{Mf();oe();Be();B();Oc();s(ZF,"generateRules");s(t8,"toJunieMcpServer");s(eM,"generateMcp");s(tM,"generateCommands");s(rM,"generateAgents");s(nM,"generateIgnore");s(oM,"generateSkills");s(sM,"renderJunieGlobalInstructions");s(iM,"generatePermissions");});async function r8(e,t,r){let n=[_o,_f,mb,pb],o=join(e,RS);for(let i of n){let a=join(e,i),l=await k(a);if(l===null)continue;let c=await Fo({content:l,projectRoot:e,rulesDir:kf,sourcePath:a,fromTool:Ha,normalize:r});t.push(...c.results);let{frontmatter:m,body:p}=x(r(c.rootContent,a,o)),u=await z(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},p);await L(o,u),t.push({fromTool:Ha,fromPath:a,toPath:RS,feature:"rules"});return}}async function cM(e){let t=[],r=await H(Ha,e);return await r8(e,t,r),t.push(...await Q(hg,e,"project",{normalize:r})),await ne(e,za,Ha,t,r),t}var mM=d(()=>{ge();b();B();oe();Bc();de();Ae();Oc();hk();s(r8,"importRootRule");s(cM,"importFromJunie");});function pM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ha}))}var uM=d(()=>{Ee();Oc();s(pM,"lintRules");});function dM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))YT(n)&&t.push(F(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return t}var fM=d(()=>{Mf();Re();s(dM,"lintMcp");});var n8,o8,s8,i8,hg,hk=d(()=>{aM();Oc();dt();mM();uM();fM();Oe();n8={name:"junie",primaryRootInstructionPath:_o,generateRules:ZF,generateCommands:tM,generateAgents:rM,generateSkills:oM,generateMcp:eM,generateIgnore:nM,generatePermissions:iM,importFrom:cM},o8={rootInstructionPath:_o,skillDir:".junie/skills",managedOutputs:{dirs:[".junie/agents",".junie/commands",".junie/rules",".junie/skills"],files:[".aiignore",".junie/AGENTS.md",".junie/mcp/mcp.json"]},paths:{rulePath(e,t){return `${vp}/${e}.md`},commandPath(e,t){return `${Cc}/${e}.md`},agentPath(e,t){return `${Ec}/${e}.md`}}},s8={rootInstructionPath:Va,renderPrimaryRootInstruction:sM,skillDir:Gp,managedOutputs:{dirs:[Gp,$p,jp,ub],files:[Va,Sf,Rf]},rewriteGeneratedPath(e){return e===_o?Va:e.startsWith(`${vp}/`)?Va:e.startsWith(`${za}/`)?e.replace(`${za}/`,`${Gp}/`):e.startsWith(`${Cc}/`)?e.replace(`${Cc}/`,`${jp}/`):e.startsWith(`${Ec}/`)?e.replace(`${Ec}/`,`${$p}/`):e===Np?Sf:e===Fp?null:e},mirrorGlobalPath(e,t){return fe(e,".junie/skills",t)},paths:{rulePath(e,t){return Va},commandPath(e,t){return `${jp}/${e}.md`},agentPath(e,t){return `${$p}/${e}.md`}}},i8={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"native"},hg={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:n8,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Junie config found (.junie/guidelines.md, .junie/AGENTS.md, .junie/skills, .junie/mcp/mcp.json, or .aiignore).",lintRules:pM,lint:{mcp:dM},project:o8,globalSupport:{capabilities:i8,detectionPaths:[Va,Gp,$p,jp,Sf],layout:s8},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:kf,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:db,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:fb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Np]},canonicalDir:".agentsmesh",canonicalFilename:gb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Fp]},canonicalDir:".agentsmesh",canonicalFilename:hb}},buildImportPaths:kS,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"],nativeInstall:{pickPaths:[{prefix:".junie/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/skills",feature:"skills",strategy:{kind:"skillDir"}}]}};});function hM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Cn,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Dt))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${So}/${o}.md`,content:a});}return t}function yM(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Ro}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function _M(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${ko}/${r}.md`,content:T(n,t.body.trim()||"")}})}function SM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:bs,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function RM(e){return e.ignore.length===0?[]:[{path:Ya,content:e.ignore.join(`
141
- `)}]}function kM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};for(let i of t)o[i]="allow";for(let i of n)o[i]="ask";for(let i of r)o[i]="deny";return [{path:Ja,content:JSON.stringify({permission:o},null,2)}]}function IM(e){return ie(e,Kr)}var LM=d(()=>{oe();B();Ts();s(hM,"generateRules");s(yM,"generateCommands");s(_M,"generateAgents");s(SM,"generateMcp");s(RM,"generateIgnore");s(kM,"generatePermissions");s(IM,"generateSkills");});var yg,_g,CM,_k=d(()=>{B();de();Ts();yg=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Gi}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"kiloNonRootRuleMapper"),_g=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ac}/${e}`,content:await Ce(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"kiloCommandMapper"),CM=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Za}/${e}`,content:await ve(n,o,i)}},"kiloAgentMapper");});async function EM(e){try{return await stat(e),!0}catch{return false}}async function c8(e,t,r){let n=join(e,Xa);if(!await EM(n))return;let o=join(e,Gi),i=join(n,Rk),l=t.some(c=>c.toPath===Sk)?null:await k(i);if(l!==null){let c=join(e,Sk),m=r(l,i,c),{body:p}=x(m),u=await z(c,{root:true},p);await L(c,u),t.push({feature:"rules",fromTool:Dt,fromPath:`${Xa}/${Rk}`,toPath:Sk});}t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Dt,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await yg({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===Rk||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function m8(e,t,r){let n=join(e,wc);if(!await EM(n))return;let o=join(e,Ac);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Dt,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await _g({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function p8(e,t,r){let n=join(e,Lf),o=await k(n);if(o===null)return;let i;try{i=parse(o);}catch{return}if(!(!i||!Array.isArray(i.customModes)))for(let a of i.customModes){if(!a||typeof a!="object")continue;let l=a;if(typeof l.slug!="string"||l.slug.length===0)continue;let c=l.slug,m=join(e,Za,`${c}.md`),p=typeof l.description=="string"?l.description:"",u=typeof l.roleDefinition=="string"?l.roleDefinition.trim():"",f=typeof l.whenToUse=="string"?l.whenToUse.trim():"",g=f?`${u}
137
+ `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Xc,feature:"ignore"});}}}var pk=d(()=>{b();ot();lk();eF();s(tF,"importGeminiIgnore");});function TZ(e){return e.replace(/\\(.)/g,"$1")}function PZ(e){switch(e){case "read_file":return "Read";case "grep_search":return "Grep";case "list_directory":return "LS";case "web_fetch":return "WebFetch";case "run_shell_command":return "Bash";default:return null}}function DZ(e){return `Bash(${e}:*)`}function NZ(e){return `Read(${TZ(e)})`}async function rF(e){let t=[],r=join(e,cg),n;try{n=await U(r);}catch{return t}let o=n.filter(u=>u.endsWith(".toml"));if(o.length===0)return t;let i=[],a=[],l=new Set,c=new Set;for(let u of o){let f=await k(u);if(!f)continue;let g;try{g=parse$1(f);}catch{continue}let h=g&&typeof g=="object"&&"rule"in g?g.rule:void 0;if(Array.isArray(h))for(let _ of h){if(!_||typeof _!="object")continue;let S=_,R=typeof S.toolName=="string"?S.toolName:null,I=typeof S.decision=="string"?S.decision:null;if(!R||!I)continue;let w=PZ(R);if(!w)continue;let D=null;w==="Bash"?typeof S.commandPrefix=="string"&&S.commandPrefix.trim()&&(D=DZ(S.commandPrefix.trim())):w==="Read"?typeof S.argsPattern=="string"&&S.argsPattern.trim()?D=NZ(S.argsPattern.trim()):D="Read":D=w,D&&(I==="allow"?l.has(D)||(l.add(D),i.push(D)):I==="deny"&&(c.has(D)||(c.add(D),a.push(D))));}}if(i.length===0&&a.length===0)return t;await O(join(e,".agentsmesh"));let m=join(e,ZR),p=stringify({allow:i,deny:a});return await L(m,p.trimEnd()+`
138
+ `),t.push({fromTool:ta,fromPath:join(e,cg),toPath:ZR,feature:"permissions"}),t}var nF=d(()=>{b();ot();s(TZ,"unescapeRegexLiteral");s(PZ,"toolNameToPermissionBase");s(DZ,"commandPrefixToBashExpr");s(NZ,"argsPatternToReadExpr");s(rF,"importGeminiPolicies");});function uk(e,t){let r=new Set([t,t.replace(/\\/g,"/"),t.replace(/\//g,"\\")]);try{r.add(realpathSync(t)),r.add(realpathSync.native(t));}catch{}return Array.from(r).reduce((o,i)=>{let a=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return o.replace(new RegExp(`${a}[/\\\\]\\.agentsmesh[/\\\\]`,"g"),".agentsmesh/").replaceAll(`${i}/.agentsmesh`,".agentsmesh").replaceAll(`${i}\\.agentsmesh`,".agentsmesh")},e).replace(/(?:[A-Za-z]:)?[^\s"'`()<>]+[/\\]\.agentsmesh[/\\]/g,".agentsmesh/")}var sF=d(()=>{s(uk,"stripProjectRootCanonicalPrefix");});async function aF(e,t,r){let n=join(e,gu),i=(await U(n)).filter(l=>basename(l)==="SKILL.md");for(let l of i){let c=await k(l);if(!c)continue;let m=basename(l.slice(0,-9)),p=x(c),u=cc(p.frontmatter,m);if(u){let I=join(e,hu);await O(I);let w=join(I,`${u.name}.md`);await L(w,ki(u,r(p.body,l,w))),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${hu}/${u.name}.md`,feature:"agents"});continue}let f=join(e,yu,m,"SKILL.md"),g=r(c,l,f),h=join(e,yu,m);await O(h);let{frontmatter:_,body:S}=x(g);await L(f,await Xn(f,{..._,name:m},S)),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${yu}/${m}/SKILL.md`,feature:"skills"});let R=await U(dirname(l));for(let I of R){if(I===l)continue;let w=await k(I);if(w===null)continue;let D=relative(dirname(l),I).replace(/\\/g,"/"),P=join(h,D);await O(dirname(P)),await L(P,r(w,I,P)),t.push({fromTool:"gemini-cli",fromPath:I,toPath:`${yu}/${m}/${D}`,feature:"skills"});}}let a=join(e,ra);try{let c=(await U(a)).filter(m=>m.endsWith(".md"));for(let m of c){let p=await k(m);if(!p)continue;let{frontmatter:u,body:f}=x(p),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),_=join(e,hu);await O(_);let S=join(_,h),R=r(f,m,S);await L(S,await ve(S,{...u,name:typeof u.name=="string"?u.name:basename(h,".md"),maxTurns:u.maxTurns??u["max-turns"]??u.max_turns,permissionMode:u.permissionMode??u["permission-mode"]??u.permission_mode,disallowedTools:u.disallowedTools??u["disallowed-tools"]??u.disallowed_tools},R)),t.push({fromTool:"gemini-cli",fromPath:m,toPath:`${hu}/${h}`,feature:"agents"});}}catch{}}var lF=d(()=>{b();B();de();_e();ot();s(aF,"importGeminiSkillsAndAgents");});async function vZ(e,t,r){let n=await H("codex-cli",e),o=join(e,na),i=join(e,Bo),a=join(e,$v),l=[i,a,join(e,rn),join(e,jv)],c=null,m=l[l.length-1];for(let D of l){let P=await k(D);if(P!==null){c=P,m=D;break}}if(c===null)return;await O(o);let p=join(o,"_root.md"),u=m===i||m===a?n(c,m,p):c,f=await Mo({content:u,projectRoot:e,rulesDir:na,sourcePath:m,fromTool:ta,normalize:r});t.push(...f.results);let g=r(f.rootContent,m,p),h=uk(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),e),{frontmatter:_,body:S}=x(h),I=_.root===true?_:{..._,root:true},w=uk(await z(p,I,S),e);await L(p,w),t.push({fromTool:ta,fromPath:m,toPath:`${na}/_root.md`,feature:"rules"});}async function cF(e){let t=[],r=await H(ta,e);return await vZ(e,t,r),t.push(...await Q(hg,e,"project",{normalize:r})),await aF(e,t,r),await ck(e,t),await tF(e,t),t.push(...await rF(e)),t}var mF=d(()=>{ge();b();B();de();Wc();Ae();ot();gk();pk();nF();sF();lF();s(vZ,"importRootRule");s(cF,"importFromGemini");});function MZ(e){let t=e.replace(/^\/+|\/+$/g,"");return t===".gemini/commands"||t.startsWith(".gemini/commands/")}async function GZ(e,t){let r=join(e,...Ko.split("/")),n=join(e,...t.split("/")),o=await U(n),i=[];for(let a of o){if(!/\.(toml|md)$/i.test(a))continue;let l=relative(r,a).replace(/\\/g,"/");if(l.startsWith("..")||l==="")continue;let m=l.replace(/\.(toml|md)$/i,"").split("/").filter(Boolean).join(":");m&&i.push(m);}return [...new Set(i)].sort()}async function uF(e,t){if(!MZ(t))return {};let r=await GZ(e,t);return r.length?{commands:r}:{}}var dF=d(()=>{b();ot();s(MZ,"isUnderGeminiCommands");s(GZ,"inferGeminiCommandNamesFromFiles");s(uF,"inferGeminiPick");});async function gF(e,t,r){let n=e.replace(/\\/g,"/"),o=join(t,n),{frontmatter:i,body:a}=fg(r(o)),l=as(i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${na}/${n}`,feature:"rules",content:await z(o,c,a)}}async function hF(e,t,r){let n=e.replace(/\.(toml|md)$/i,".md").replace(/\\/g,"/"),o=join(t,n),i=r(o),{frontmatter:a,body:l}=e.endsWith(".toml")?jZ(i):fg(i),c=wr(a.allowedTools),m=wr(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${pg}/${n}`,feature:"commands",content:await Ce(o,{description:typeof a.description=="string"?a.description:"",hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:p,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"allowedTools")||Object.prototype.hasOwnProperty.call(a,"allowed-tools")},l)}}function jZ(e){try{let t=parse$1(e);return {frontmatter:t,body:typeof t.prompt=="string"?t.prompt:""}}catch{return {frontmatter:{},body:e.trim()}}}var yF=d(()=>{de();qt();pk();ot();s(gF,"mapGeminiRuleFile");s(hF,"mapGeminiCommandFile");s(jZ,"parseTomlCommand");});var _F,SF,RF=d(()=>{yF();_F=s(({relativePath:e,destDir:t,normalizeTo:r})=>gF(e,t,r),"geminiRuleMapper"),SF=s(({relativePath:e,destDir:t,normalizeTo:r})=>hF(e,t,r),"geminiCommandMapper");});function kF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ta}))}var IF=d(()=>{Ee();ot();s(kF,"lintRules");});function LF(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>F(t.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function CF(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Ci(n,"gemini-cli",t))}var EF=d(()=>{Re();s(LF,"lintCommands");s(CF,"lintHooks");});function OF(e,t,r){return t==="project"&&ni("gemini-cli",t)?.ignore.flavor!=="settings-embedded"?[]:ok(e,r)}var wF=d(()=>{xe();sk();s(OF,"emitScopedGeminiSettings");});var UZ,BZ,KZ,WZ,hg,gk=d(()=>{Xv();Ea();Zv();ot();mF();dF();RF();IF();Oe();sp();_e();EF();wF();dt();fu();UZ={name:"gemini-cli",primaryRootInstructionPath:rn,generateRules:ek,generateCommands:tk,generateAgents:rk,generateSkills:nk,generateIgnore:ik,generatePermissions:qv,importFrom:cF},BZ={rootInstructionPath:rn,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Bo]}],extraRuleOutputPaths(){return [Bo]},skillDir:".gemini/skills",managedOutputs:{dirs:[".gemini/agents",".gemini/commands",".gemini/skills",".agents/skills"],files:["AGENTS.md","GEMINI.md",".gemini/settings.json",".gemini/policies/permissions.toml",".geminiignore"]},mirrorGlobalPath(e,t){return fe(e,".gemini/skills",t)},paths:{rulePath(e,t){return rn},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Ko}/${r.join("/")}/${n}.toml`}return `${Ko}/${e}.toml`},agentPath(e,t){return os(t,"gemini-cli")?`.gemini/skills/${V(e)}/SKILL.md`:`${ra}/${e}.md`}}},KZ={rootInstructionPath:Qc,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[qc]}],extraRuleOutputPaths(){return [qc]},skillDir:Ll,managedOutputs:{dirs:[Zc,Ll,_u],files:[Qc,qc,ug]},rewriteGeneratedPath(e){return e===rn?Qc:e===Bo?qc:e===Il?ug:e.startsWith(`${Ko}/`)?e.replace(`${Ko}/`,`${Zc}/`):e.startsWith(".gemini/skills/")?e.replace(".gemini/skills/",`${Ll}/`):e.startsWith(`${ra}/`)?e.replace(`${ra}/`,`${_u}/`):e.startsWith(".gemini/policies/")||e===".geminiignore"?null:e},mirrorGlobalPath(e,t){return fe(e,Ll,t)},paths:{rulePath(e,t){return Qc},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Zc}/${r.join("/")}/${n}.toml`}return `${Zc}/${e}.toml`},agentPath(e,t){return os(t,"gemini-cli")?`${Ll}/${V(e)}/SKILL.md`:`${_u}/${e}.md`}}},WZ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},hg={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:UZ,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:un("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:kF,lint:{commands:LF,hooks:CF},emitScopedSettings:OF,mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Il?yN(o,r):null},project:BZ,globalSupport:{capabilities:WZ,detectionPaths:[Qc,qc,ug,Zc,Ll,_u],layout:KZ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Gv]},canonicalDir:na,extensions:[".md"],map:_F},commands:{feature:"commands",mode:"directory",source:{project:[Ko]},canonicalDir:pg,extensions:[".md",".toml"],map:SF}},buildImportPaths:_S,detectionPaths:["GEMINI.md",".gemini"],nativeInstall:{inferPick:uF},conversionDefaults:{agentsToSkills:false}};});function bF(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ho)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:lr,content:o}]:[]}function AF(e){return ie(e,Kt)}function xF(e){return e.commands.map(t=>({path:`${Kt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function TF(e){return e.agents.map(t=>({path:`${Kt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function PF(e){return e.ignore.length===0?[]:[{path:yo,content:e.ignore.join(`
139
+ `)}]}function zZ(e,t){let r={bundled:null,description:t.description??"",enabled:true,env_keys:[],envs:t.env??{},name:e,timeout:30,type:"command"in t?"stdio":"sse"};return "command"in t?{...r,args:t.args??[],cmd:t.command}:{...r,uri:t.url}}function DF(e,t){if(t?.scope!=="global")return [];if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let r=Object.fromEntries(Object.entries(e.mcp.mcpServers).map(([n,o])=>[n,zZ(n,o)]));return [{path:Ha,content:stringify({extensions:r})}]}var NF=d(()=>{oe();Be();_e();be();za();s(bF,"generateRules");s(AF,"generateSkills");s(xF,"generateCommands");s(TF,"generateAgents");s(PF,"generateIgnore");s(zZ,"mcpServerToExtension");s(DF,"generateMcp");});async function vF(e,t={}){let r=t.scope??"project",n=[],o=await H(ho,e,r);return n.push(...await Q(yg,e,r,{normalize:o})),await ne(e,r==="global"?Br:Kt,ho,n,o),n}var FF=d(()=>{ge();oe();Ae();za();hk();s(vF,"importFromGoose");});function QZ(e){let t=typeof e.description=="string"?e.description:"",r=Ut(e.envs);return e.type==="stdio"||typeof e.cmd=="string"?typeof e.cmd!="string"?null:{type:"stdio",command:e.cmd,args:Zn(e.args),env:r,...t!==""&&{description:t}}:typeof e.uri!="string"?null:{type:"sse",url:e.uri,headers:{},env:r,...t!==""&&{description:t}}}function qZ(e){let t;try{t=parse(e);}catch{return {}}if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t.extensions;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=QZ(i);a&&(n[o]=a);}return n}async function ZZ(e){let t=await k(e);if(t===null)return {};let r;try{r=JSON.parse(t);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let n=r.mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n))!a||typeof a!="object"||Array.isArray(a)||(o[i]=a);return o}async function MF(e){let t=qZ(e.content);if(Object.keys(t).length===0)return null;let r=join(e.destDir,"mcp.json"),o={...await ZZ(r),...t};return {destPath:r,toPath:posix.normalize(XZ),content:JSON.stringify({mcpServers:o},null,2)}}var XZ,GF=d(()=>{qt();b();XZ=".agentsmesh/mcp.json";s(QZ,"extensionToMcpServer");s(qZ,"parseExtensions");s(ZZ,"readExistingServers");s(MF,"gooseMcpMap");});var $F,jF=d(()=>{GF();za();$F={rules:{feature:"rules",mode:"singleFile",source:{project:[lr],global:[_o]},canonicalDir:mb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"singleFile",source:{global:[Ha]},canonicalDir:".agentsmesh",canonicalRootFilename:"mcp.json",map:MF},ignore:{feature:"ignore",mode:"flatFile",source:{project:[yo],global:[Ni]},canonicalDir:".agentsmesh",canonicalFilename:pb}};});function UF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ho}))}var BF=d(()=>{Ee();za();s(UF,"lintRules");});function KF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function WF(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function HF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var zF=d(()=>{Re();s(KF,"lintHooks");s(WF,"lintPermissions");s(HF,"lintMcp");});var e8,t8,r8,n8,o8,yg,hk=d(()=>{be();_e();NF();dt();FF();jF();BF();zF();Oe();za();e8={name:ho,primaryRootInstructionPath:lr,generateRules:bF,generateCommands:xF,generateAgents:TF,generateSkills:AF,generateIgnore:PF,generateMcp:DF,importFrom:vF},t8={rootInstructionPath:lr,skillDir:Kt,managedOutputs:{dirs:[Kt],files:[lr,yo]},paths:{rulePath(e){return lr},commandPath(e){return `${Kt}/${J(e)}/SKILL.md`},agentPath(e){return `${Kt}/${V(e)}/SKILL.md`}}},r8={rootInstructionPath:_o,skillDir:Br,managedOutputs:{dirs:[Br],files:[_o,Ni,Ha]},rewriteGeneratedPath(e){return e===lr?_o:e===yo?Ni:e},mirrorGlobalPath(e,t){return fe(e,Br,t)},paths:{rulePath(e){return _o},commandPath(e){return `${Br}/${J(e)}/SKILL.md`},agentPath(e){return `${Br}/${V(e)}/SKILL.md`}}},n8={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},o8={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},yg={id:ho,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:e8,capabilities:n8,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:UF,lint:{hooks:KF,permissions:WF,mcp:HF},supportsConversion:{commands:true,agents:true},project:t8,globalSupport:{capabilities:o8,detectionPaths:[_o,Ni,Br,Ha],layout:r8},importer:$F,sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:RS,detectionPaths:[lr,yo],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function VF(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ws)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Ln,content:o}]:[]}var JF=d(()=>{Be();Ec();s(VF,"generateRules");});async function YF(e,t={}){let r=t.scope??"project",n=await H(ws,e,r);return Q(_g,e,r,{normalize:n})}var XF=d(()=>{ge();Ae();Ec();yk();s(YF,"importFromJules");});function QF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ws}))}var qF=d(()=>{Ee();Ec();s(QF,"lintRules");});function ZF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function eM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","jules","Jules has no permissions system; canonical permissions are not projected.")]}function tM(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function rM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function nM(e){return e.commands.length===0?[]:[F(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var oM=d(()=>{Re();s(ZF,"lintHooks");s(eM,"lintPermissions");s(tM,"lintIgnore");s(rM,"lintMcp");s(nM,"lintCommands");});var s8,i8,a8,_g,yk=d(()=>{JF();XF();qF();oM();Oe();Ec();s8={name:ws,primaryRootInstructionPath:Ln,generateRules:VF,importFrom:YF},i8={rootInstructionPath:Ln,managedOutputs:{dirs:[],files:[Ln]},paths:{rulePath(e){return Ln},commandPath(){return null},agentPath(){return null}}},a8={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},_g={id:ws,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:s8,capabilities:a8,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:QF,lint:{hooks:ZF,permissions:eM,ignore:tM,mcp:rM,commands:nM},project:i8,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ln]},canonicalDir:db,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:kS,detectionPaths:[Ln]};});function sM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:So,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");t.push({path:`${Fp}/${o}.md`,content:n.body.trim()||""});}return t}function c8(e){let t={};return e.description&&(t.description=e.description),e.type!=="stdio"&&(t.type=e.type),$f(e)?(t.command=e.command,t.args=e.args):(t.url=e.url,Object.keys(e.headers).length>0&&(t.headers=e.headers)),Object.keys(e.env).length>0&&(t.env=e.env),t}function iM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).map(([r,n])=>[r,c8(n)]));return [{path:vp,content:JSON.stringify({mcpServers:t},null,2)}]}function aM(e){return e.commands.map(t=>{let r={description:t.description||void 0};return r.description===void 0&&delete r.description,{path:`${Oc}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function lM(e){return e.agents.map(t=>{let r={name:t.name,description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,skills:t.skills.length>0?t.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${wc}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function cM(e){return e.ignore.length===0?[]:[{path:Mp,content:e.ignore.join(`
140
+ `)}]}function mM(e){return ie(e,Ja)}function pM(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("junie"));return le(t?.body.trim()??"",r)}function uM(e,t){if(t?.scope!=="global")return [];if(!e.permissions)return [];let{allow:r,deny:n}=e.permissions,o=e.permissions.ask??[];return r.length===0&&n.length===0&&o.length===0?[]:[{path:Lf,content:JSON.stringify({allow:r,deny:n,ask:o},null,2)}]}var dM=d(()=>{jf();oe();Be();B();bc();s(sM,"generateRules");s(c8,"toJunieMcpServer");s(iM,"generateMcp");s(aM,"generateCommands");s(lM,"generateAgents");s(cM,"generateIgnore");s(mM,"generateSkills");s(pM,"renderJunieGlobalInstructions");s(uM,"generatePermissions");});async function m8(e,t,r){let n=[So,kf,gb,hb],o=join(e,IS);for(let i of n){let a=join(e,i),l=await k(a);if(l===null)continue;let c=await Mo({content:l,projectRoot:e,rulesDir:Cf,sourcePath:a,fromTool:Va,normalize:r});t.push(...c.results);let{frontmatter:m,body:p}=x(r(c.rootContent,a,o)),u=await z(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},p);await L(o,u),t.push({fromTool:Va,fromPath:a,toPath:IS,feature:"rules"});return}}async function gM(e){let t=[],r=await H(Va,e);return await m8(e,t,r),t.push(...await Q(Sg,e,"project",{normalize:r})),await ne(e,Ja,Va,t,r),t}var hM=d(()=>{ge();b();B();oe();Wc();de();Ae();bc();_k();s(m8,"importRootRule");s(gM,"importFromJunie");});function yM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Va}))}var _M=d(()=>{Ee();bc();s(yM,"lintRules");});function SM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))tP(n)&&t.push(F(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return t}var RM=d(()=>{jf();Re();s(SM,"lintMcp");});var p8,u8,d8,f8,Sg,_k=d(()=>{dM();bc();dt();hM();_M();RM();Oe();p8={name:"junie",primaryRootInstructionPath:So,generateRules:sM,generateCommands:aM,generateAgents:lM,generateSkills:mM,generateMcp:iM,generateIgnore:cM,generatePermissions:uM,importFrom:gM},u8={rootInstructionPath:So,skillDir:".junie/skills",managedOutputs:{dirs:[".junie/agents",".junie/commands",".junie/rules",".junie/skills"],files:[".aiignore",".junie/AGENTS.md",".junie/mcp/mcp.json"]},paths:{rulePath(e,t){return `${Fp}/${e}.md`},commandPath(e,t){return `${Oc}/${e}.md`},agentPath(e,t){return `${wc}/${e}.md`}}},d8={rootInstructionPath:Ya,renderPrimaryRootInstruction:pM,skillDir:$p,managedOutputs:{dirs:[$p,jp,Up,yb],files:[Ya,If,Lf]},rewriteGeneratedPath(e){return e===So?Ya:e.startsWith(`${Fp}/`)?Ya:e.startsWith(`${Ja}/`)?e.replace(`${Ja}/`,`${$p}/`):e.startsWith(`${Oc}/`)?e.replace(`${Oc}/`,`${Up}/`):e.startsWith(`${wc}/`)?e.replace(`${wc}/`,`${jp}/`):e===vp?If:e===Mp?null:e},mirrorGlobalPath(e,t){return fe(e,".junie/skills",t)},paths:{rulePath(e,t){return Ya},commandPath(e,t){return `${Up}/${e}.md`},agentPath(e,t){return `${jp}/${e}.md`}}},f8={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"native"},Sg={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:p8,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Junie config found (.junie/guidelines.md, .junie/AGENTS.md, .junie/skills, .junie/mcp/mcp.json, or .aiignore).",lintRules:yM,lint:{mcp:SM},project:u8,globalSupport:{capabilities:f8,detectionPaths:[Ya,$p,jp,Up,If],layout:d8},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Cf,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:_b,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:Sb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[vp]},canonicalDir:".agentsmesh",canonicalFilename:Rb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Mp]},canonicalDir:".agentsmesh",canonicalFilename:kb}},buildImportPaths:LS,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"],nativeInstall:{pickPaths:[{prefix:".junie/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/skills",feature:"skills",strategy:{kind:"skillDir"}}]}};});function IM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Cn,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Dt))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${Ro}/${o}.md`,content:a});}return t}function LM(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${ko}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function CM(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${Io}/${r}.md`,content:T(n,t.body.trim()||"")}})}function EM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:bs,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function OM(e){return e.ignore.length===0?[]:[{path:Qa,content:e.ignore.join(`
141
+ `)}]}function wM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};for(let i of t)o[i]="allow";for(let i of n)o[i]="ask";for(let i of r)o[i]="deny";return [{path:Xa,content:JSON.stringify({permission:o},null,2)}]}function bM(e){return ie(e,Kr)}var AM=d(()=>{oe();B();Ts();s(IM,"generateRules");s(LM,"generateCommands");s(CM,"generateAgents");s(EM,"generateMcp");s(OM,"generateIgnore");s(wM,"generatePermissions");s(bM,"generateSkills");});var Rg,kg,xM,Rk=d(()=>{B();de();Ts();Rg=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${$i}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"kiloNonRootRuleMapper"),kg=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Tc}/${e}`,content:await Ce(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"kiloCommandMapper"),xM=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${tl}/${e}`,content:await ve(n,o,i)}},"kiloAgentMapper");});async function TM(e){try{return await stat(e),!0}catch{return false}}async function y8(e,t,r){let n=join(e,qa);if(!await TM(n))return;let o=join(e,$i),i=join(n,Ik),l=t.some(c=>c.toPath===kk)?null:await k(i);if(l!==null){let c=join(e,kk),m=r(l,i,c),{body:p}=x(m),u=await z(c,{root:true},p);await L(c,u),t.push({feature:"rules",fromTool:Dt,fromPath:`${qa}/${Ik}`,toPath:kk});}t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Dt,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Rg({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===Ik||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function _8(e,t,r){let n=join(e,Ac);if(!await TM(n))return;let o=join(e,Tc);t.push(...await Se({srcDir:n,destDir:o,extensions:[".md"],fromTool:Dt,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await kg({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function S8(e,t,r){let n=join(e,Of),o=await k(n);if(o===null)return;let i;try{i=parse(o);}catch{return}if(!(!i||!Array.isArray(i.customModes)))for(let a of i.customModes){if(!a||typeof a!="object")continue;let l=a;if(typeof l.slug!="string"||l.slug.length===0)continue;let c=l.slug,m=join(e,tl,`${c}.md`),p=typeof l.description=="string"?l.description:"",u=typeof l.roleDefinition=="string"?l.roleDefinition.trim():"",f=typeof l.whenToUse=="string"?l.whenToUse.trim():"",g=f?`${u}
142
142
 
143
143
  ## When to use
144
144
 
145
- ${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let _=await ve(m,h,g),S=r(_,n,m);await L(m,S),t.push({feature:"agents",fromTool:Dt,fromPath:n,toPath:`${Za}/${c}.md`});}}async function OM(e,t={}){let r=t.scope??"project",n=[],o=await H(Dt,e,r);return n.push(...await Q(Sg,e,r,{normalize:o})),await ne(e,Kr,Dt,n,o),r==="project"&&(await c8(e,n,o),await m8(e,n,o),await p8(e,n,o),await ne(e,Qa,Dt,n,o)),n}var Sk,Rk,wM=d(()=>{ge();oe();qt();Ae();b();de();B();_k();Ts();kk();Sk=`${Gi}/_root.md`,Rk="00-root.md";s(EM,"pathExists");s(c8,"importLegacyRules");s(m8,"importLegacyWorkflows");s(p8,"importLegacyModes");s(OM,"importFromKiloCode");});function bM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Dt}))}var AM=d(()=>{Ee();Ts();s(bM,"lintRules");});function xM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}var TM=d(()=>{Re();s(xM,"lintHooks");});var PM,DM=d(()=>{Ts();PM=s((e,t,r,n)=>{if(n!==Ja&&n!==Up)return null;let o=t?.content??e;if(o===null)return r;let i;try{let c=JSON.parse(o);i=c!==null&&typeof c=="object"&&!Array.isArray(c)?c:{};}catch{i={};}let a=JSON.parse(r);if(a===null||typeof a!="object"||Array.isArray(a))return o;let l=a;return l.permission!==void 0&&(i.permission=l.permission),JSON.stringify(i,null,2)},"mergeKiloConfig");});var NM,vM,FM,MM,GM=d(()=>{Ts();dt();NM={rootInstructionPath:Cn,skillDir:Kr,managedOutputs:{dirs:[So,Ro,ko,Kr],files:[Cn,bs,Ya,Ja]},paths:{rulePath(e,t){return `${So}/${e}.md`},commandPath(e,t){return `${Ro}/${e}.md`},agentPath(e,t){return `${ko}/${e}.md`}}},vM={rootInstructionPath:As,skillDir:xs,managedOutputs:{dirs:[vi,Fi,Mi,xs,_b],files:[As,qa,Wp,Up]},rewriteGeneratedPath(e){return e===Cn?As:e===Ja?Up:e},mirrorGlobalPath(e,t){return fe(e,xs,t)},paths:{rulePath(e,t){return `${vi}/${e}.md`},commandPath(e,t){return `${Fi}/${e}.md`},agentPath(e,t){return `${Mi}/${e}.md`}}},FM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"native"},MM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"native"};});var u8,Sg,kk=d(()=>{LM();Ts();wM();_k();AM();TM();Oe();DM();GM();u8={name:Dt,primaryRootInstructionPath:Cn,generateRules:hM,generateCommands:yM,generateAgents:_M,generateSkills:IM,generateMcp:SM,generateIgnore:RM,generatePermissions:kM,importFrom:OM},Sg={id:Dt,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:u8,capabilities:FM,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:bM,lint:{hooks:xM},mergeGeneratedOutputContent:PM,project:NM,globalSupport:{capabilities:MM,detectionPaths:[As,vi,Fi,Mi,xs,qa,Wp],layout:vM},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Cn],global:[As]},canonicalDir:Gi,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[So],global:[vi]},canonicalDir:Gi,extensions:[".md"],map:yg}],commands:{feature:"commands",mode:"directory",source:{project:[Ro],global:[Fi]},canonicalDir:Ac,extensions:[".md"],map:_g},agents:{feature:"agents",mode:"directory",source:{project:[ko],global:[Mi]},canonicalDir:Za,extensions:[".md"],map:CM},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[bs,Kp],global:[qa]},canonicalDir:".agentsmesh",canonicalFilename:Sb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ya],global:[Wp]},canonicalDir:".agentsmesh",canonicalFilename:Rb}},buildImportPaths:IS,detectionPaths:[So,Ro,ko,Kr,bs,Xa,wc,Qa,Kp,Lf,Ya,"kilo.jsonc","kilo.json"]};});function $M(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function g8(e){return e.type==="prompt"?e.prompt:e.command}function h8(e,t){let r=jM[e];return e==="PreToolUse"||e==="PostToolUse"?{type:r,tools:[t||"*"]}:{type:r}}function UM(e){let t=[];for(let[r,n]of Object.entries(e)){let o=r;if(!(o in jM)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=g8(a);if(!l)continue;let c={name:`${$M(r)} ${i}`,version:"1",when:h8(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};t.push({name:`${$M(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return t}function y8(e){let t=f8.get(e.when.type);if(!t)return null;let r=e.when.tools?.[0]??e.when.patterns?.[0]??"*";return e.then.type==="askAgent"&&typeof e.then.prompt=="string"?{event:t,entry:{matcher:r,command:e.then.prompt,prompt:e.then.prompt,type:"prompt"}}:e.then.type==="shellCommand"&&typeof e.then.command=="string"?{event:t,entry:{matcher:r,command:e.then.command,type:"command"}}:null}function BM(e){let t;try{t=JSON.parse(e);}catch{return null}if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return !r.when||!r.then||typeof r.when.type!="string"?null:y8(r)}function KM(e){return stringify(e).trimEnd()}var jM,f8,Ik=d(()=>{jM={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},f8=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s($M,"toKebab");s(g8,"hookText");s(h8,"toWhen");s(UM,"generateKiroHooks");s(y8,"toCanonicalEntry");s(BM,"parseKiroHookFile");s(KM,"serializeCanonicalHooks");});function S8(e){let t={};return e.globs.length>0?(t.inclusion="fileMatch",t.fileMatchPattern=e.globs.length===1?e.globs[0]:e.globs):e.trigger==="manual"?t.inclusion="manual":e.trigger==="model_decision"?t.inclusion="auto":t.inclusion="always",e.description&&(t.description=e.description),t}function WM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:En,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(lr))continue;let o=basename(n.source,".md");t.push({path:`${On}/${o}.md`,content:T(S8(n),n.body.trim()||"")});}return t}function HM(e){return e.commands.map(t=>({path:`${Nt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function zM(e){return ie(e,Nt)}function VM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:xc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function JM(e){return !e.hooks||Object.keys(e.hooks).length===0?[]:UM(e.hooks).map(t=>({path:`${$i}/${t.name}`,content:t.content}))}function YM(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${wn}/${t.name}.md`,content:n}})}function XM(e){return e.ignore.length===0?[]:[{path:Tc,content:e.ignore.join(`
146
- `)}]}var QM=d(()=>{oe();be();B();Ik();Pc();s(S8,"steeringFrontmatter");s(WM,"generateRules");s(HM,"generateCommands");s(zM,"generateSkills");s(VM,"generateMcp");s(JM,"generateHooks");s(YM,"generateAgents");s(XM,"generateIgnore");});function k8(e){let t=typeof e.inclusion=="string"?e.inclusion:"",r={root:false,description:typeof e.description=="string"?e.description:void 0,globs:as(e.fileMatchPattern)};return t==="manual"&&(r.trigger="manual"),t==="auto"&&(r.trigger="model_decision"),t==="fileMatch"&&(r.trigger="glob"),r}async function I8(e,t,r,n){let o=n==="global"?[bn,En]:[En,bn];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,LS),{frontmatter:m,body:p}=x(r(l,a,c));await L(c,await z(c,{...m,root:true},p)),t.push({fromTool:lr,fromPath:a,toPath:LS,feature:"rules"});return}}async function L8(e,t,r){let n=join(e,CS);t.push(...await Se({srcDir:join(e,On),destDir:n,extensions:[".md"],fromTool:lr,normalize:r,mapEntry:s(async({relativePath:o,normalizeTo:i})=>{if(basename(o)==="AGENTS.md")return null;let a=join(n,o),{frontmatter:l,body:c}=x(i(a));return {destPath:a,toPath:`${CS}/${o}`,feature:"rules",content:await z(a,k8(l),c)}},"mapEntry")}));}async function C8(e,t){let r={};for(let o of await U(join(e,$i))){if(!o.endsWith(".kiro.hook"))continue;let i=BM(await k(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(e,ES);await O(join(e,".agentsmesh")),await L(n,KM(r)),t.push({fromTool:lr,fromPath:join(e,$i),toPath:ES,feature:"hooks"});}async function qM(e,t={}){let r=t.scope??"project",n=[],o=await H(lr,e,r);return await I8(e,n,o,r),await L8(e,n,o),n.push(...await Q(Rg,e,r,{normalize:o})),await ne(e,Nt,lr,n,o),r==="project"&&await C8(e,n),n}var ZM=d(()=>{ge();oe();qt();Ae();de();Qt();b();B();Ik();Pc();Lk();s(k8,"canonicalRuleMeta");s(I8,"importRoot");s(L8,"importNonRootRules");s(C8,"importHooks");s(qM,"importFromKiro");});function eG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:lr}))}var tG=d(()=>{Ee();Pc();s(eG,"lintRules");});function rG(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Li(n,"kiro",t,{unsupportedBy:"Kiro hooks"}))}var nG=d(()=>{Re();s(rG,"lintHooks");});var E8,O8,w8,b8,Rg,Lk=d(()=>{be();QM();dt();ZM();tG();nG();Oe();Pc();E8={name:lr,primaryRootInstructionPath:En,generateRules:WM,generateCommands:HM,generateAgents:YM,generateSkills:zM,generateMcp:VM,generateHooks:JM,generateIgnore:XM,importFrom:qM},O8={rootInstructionPath:En,skillDir:Nt,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(e,t){return `${On}/${e}.md`},commandPath(e){return `${Nt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${wn}/${e}.md`}}},w8={rootInstructionPath:bn,skillDir:ji,managedOutputs:{dirs:[el,ji,tl,Ib],files:[bn,zp,Vp]},rewriteGeneratedPath(e){return e===En?bn:e.startsWith(`${On}/`)?e.replace(`${On}/`,`${el}/`):e.startsWith(`${Nt}/`)?e.replace(`${Nt}/`,`${ji}/`):e.startsWith(`${wn}/`)?e.replace(`${wn}/`,`${tl}/`):e===xc?zp:e===Tc?Vp:e.startsWith(`${$i}/`)?null:e},mirrorGlobalPath(e,t){return fe(e,".kiro/skills",t)},paths:{rulePath(e,t){return `${el}/${e}.md`},commandPath(e){return `${Nt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${tl}/${e}.md`}}},b8={rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Rg={id:lr,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:E8,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Kiro config found (AGENTS.md, .kiro/steering, .kiro/skills, .kiro/agents, .kiro/hooks, .kiro/settings/mcp.json, or .kiroignore).",supportsConversion:{commands:true},lintRules:eG,lint:{hooks:rG},project:O8,globalSupport:{capabilities:b8,detectionPaths:[el,bn,ji,tl,zp,Vp],layout:w8},importer:{agents:{feature:"agents",mode:"directory",source:{project:[wn],global:[wn]},canonicalDir:Lb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[xc],global:[zp]},canonicalDir:".agentsmesh",canonicalFilename:Cb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Tc],global:[Vp]},canonicalDir:".agentsmesh",canonicalFilename:Eb}},buildImportPaths:OS,detectionPaths:[On,Nt,wn,$i,xc,Tc],conversionDefaults:{commandsToSkills:true}};});function sG(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:An,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Wr))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${Io}/${o}.md`,content:a});}return t}function iG(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Lo}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function aG(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${Co}/${r}.md`,content:T(n,t.body.trim()||"")}})}function A8(e){if("url"in e){let r={type:"remote",url:e.url};return Object.keys(e.headers).length>0&&(r.headers=e.headers),e.description&&(r.description=e.description),r}let t={type:"local",command:[e.command,...e.args]};return Object.keys(e.env).length>0&&(t.environment=e.env),e.description&&(t.description=e.description),t}function lG(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t={};for(let[r,n]of Object.entries(e.mcp.mcpServers))t[r]=A8(n);return [{path:Ct,content:JSON.stringify({mcp:t},null,2)}]}function cG(e){if(!e.permissions)return [];let t={};for(let r of e.permissions.allow)t[r]="allow";for(let r of e.permissions.ask??[])t[r]="ask";for(let r of e.permissions.deny)t[r]="deny";return Object.keys(t).length===0?[]:[{path:Ct,content:JSON.stringify({permission:t},null,2)}]}function mG(e){return ie(e,Hr)}var Ck=d(()=>{oe();B();Ns();s(sG,"generateRules");s(iG,"generateCommands");s(aG,"generateAgents");s(A8,"toOpenCodeMcpServer");s(lG,"generateMcp");s(cG,"generatePermissions");s(mG,"generateSkills");});function Ek(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))typeof n=="string"&&(t[r]=n);return t}function T8(e){let t;try{t=JSON.parse(e);}catch{return {}}if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t.mcp;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(typeof a.url=="string"){n[o]={type:"url",url:a.url,headers:Ek(a.headers),env:Ek(a.environment),...typeof a.description=="string"?{description:a.description}:{}};continue}if(Array.isArray(a.command)&&a.command.length>0){let l=a.command,c=l[0];if(c===void 0)continue;let m=l.slice(1);n[o]={type:"stdio",command:c,args:m,env:Ek(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function P8(e,t,r){let o=join(e,t==="global"?zr:Ct),i=await k(o);if(i===null)return;let a=T8(i);Object.keys(a).length!==0&&(await Xe(e,wS,a),r.push({feature:"mcp",fromTool:Wr,fromPath:o,toPath:wS}));}async function D8(e,t,r){let o=join(e,t==="global"?zr:Ct),i=await k(o);if(i===null)return;let a;try{a=JSON.parse(i);}catch{return}if(!a||typeof a!="object")return;let l=a.permission;if(!l||typeof l!="object"||Array.isArray(l))return;let c={allow:[],ask:[],deny:[]};for(let[p,u]of Object.entries(l))u==="allow"&&c.allow.push(p),u==="ask"&&c.ask.push(p),u==="deny"&&c.deny.push(p);if(c.allow.length+c.ask.length+c.deny.length===0)return;let m=join(e,bS);await O(join(e,".agentsmesh")),await L(m,stringify(c)),r.push({feature:"permissions",fromTool:Wr,fromPath:o,toPath:bS});}async function pG(e,t={}){let r=t.scope??"project",n=[],o=await H(Wr,e,r);return n.push(...await Q(Ig,e,r,{normalize:o})),await ne(e,Hr,Wr,n,o),await P8(e,r,n),await D8(e,r,n),n}var uG=d(()=>{ge();oe();Ae();hn();b();b();Ns();Ok();s(Ek,"toStringRecord");s(T8,"parseOpenCodeMcp");s(P8,"importMcp");s(D8,"importPermissions");s(pG,"importFromOpenCode");});var dG,fG,gG,hG=d(()=>{B();de();Ns();dG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Jp}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),fG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ef}/${e}`,content:await Ce(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),gG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Of}/${e}`,content:await ve(n,o,i)}},"opencodeAgentMapper");});function yG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Wr}))}var _G=d(()=>{Ee();Ns();s(yG,"lintRules");});function SG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function RG(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var kG=d(()=>{Re();s(SG,"lintHooks");s(RG,"lintIgnore");});function LG(e,t,r){let n={};if(r.has("mcp")&&e.mcp){let o=lG(e)[0];o&&Object.assign(n,JSON.parse(o.content));}if(r.has("permissions")&&e.permissions){let o=cG(e)[0];o&&Object.assign(n,JSON.parse(o.content));}return Object.keys(n).length===0?[]:[{path:Ct,content:JSON.stringify(n,null,2)}]}var IG,CG=d(()=>{du();Ns();Ck();IG=s((e,t,r,n)=>{if(n!==Ct&&n!==zr)return null;let o=t?.content??e;return o===null?r:Yf(o,r)},"mergeOpenCodeSettings");s(LG,"emitOpenCodeScopedSettings");});var EG,OG,bk,wG=d(()=>{dt();Ns();EG={rootInstructionPath:An,skillDir:Hr,managedOutputs:{dirs:[Io,Lo,Co,Hr],files:[An,Ct]},paths:{rulePath:s(e=>`${Io}/${e}.md`,"rulePath"),commandPath:s(e=>`${Lo}/${e}.md`,"commandPath"),agentPath:s(e=>`${Co}/${e}.md`,"agentPath")}},OG={rootInstructionPath:Ps,skillDir:Ds,managedOutputs:{dirs:[Ui,Bi,Ki,Ds,wb],files:[Ps,zr]},rewriteGeneratedPath(e){return e===An?Ps:e===Ct?zr:e},mirrorGlobalPath(e,t){return fe(e,Ds,t)},paths:{rulePath:s(e=>`${Ui}/${e}.md`,"rulePath"),commandPath:s(e=>`${Bi}/${e}.md`,"commandPath"),agentPath:s(e=>`${Ki}/${e}.md`,"agentPath")}},bk={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"native"};});var N8,Ig,Ok=d(()=>{Ck();Ns();uG();hG();_G();kG();Oe();CG();wG();N8={name:Wr,primaryRootInstructionPath:An,generateRules:sG,generateCommands:iG,generateAgents:aG,generateSkills:mG,importFrom:pG},Ig={id:Wr,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:N8,capabilities:bk,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:yG,lint:{hooks:SG,ignore:RG},project:EG,globalSupport:{capabilities:bk,detectionPaths:[Ps,Ui,Bi,Ki,Ds,zr],layout:OG},mergeGeneratedOutputContent:IG,emitScopedSettings:LG,importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[An],global:[Ps]},canonicalDir:Jp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Io],global:[Ui]},canonicalDir:Jp,extensions:[".md"],map:dG}],commands:{feature:"commands",mode:"directory",source:{project:[Lo],global:[Bi]},canonicalDir:Ef,extensions:[".md"],map:fG},agents:{feature:"agents",mode:"directory",source:{project:[Co],global:[Ki]},canonicalDir:Of,extensions:[".md"],map:gG}},buildImportPaths:AS,detectionPaths:[Io,Lo,Co,Hr,Ct,"opencode.jsonc"]};});function bG(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Eo)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Vr,content:o}]:[]}function AG(e){return ie(e,pt)}function xG(e){return e.commands.map(t=>({path:`${pt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function TG(e){return e.agents.map(t=>({path:`${pt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var PG=d(()=>{oe();Be();_e();be();Nc();s(bG,"generateRules");s(AG,"generateSkills");s(xG,"generateCommands");s(TG,"generateAgents");});async function DG(e,t={}){let r=t.scope??"project",n=[],o=await H(Eo,e,r);return n.push(...await Q(Lg,e,r,{normalize:o})),await ne(e,r==="global"?Jr:pt,Eo,n,o),n}var NG=d(()=>{ge();oe();Ae();Nc();Ak();s(DG,"importFromPiAgent");});function vG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Eo}))}var FG=d(()=>{Ee();Nc();s(vG,"lintRules");});function MG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function GG(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function $G(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function jG(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","pi-agent","Pi Coding Agent manages MCP servers via extensions, not a dedicated config file; canonical MCP servers are not projected.")]}var UG=d(()=>{Re();s(MG,"lintHooks");s(GG,"lintPermissions");s($G,"lintIgnore");s(jG,"lintMcp");});var v8,F8,M8,BG,Lg,Ak=d(()=>{be();_e();PG();dt();NG();FG();UG();TS();Nc();v8={name:Eo,primaryRootInstructionPath:Vr,generateRules:bG,generateCommands:xG,generateAgents:TG,generateSkills:AG,importFrom:DG},F8={rootInstructionPath:Vr,skillDir:pt,managedOutputs:{dirs:[pt],files:[Vr]},paths:{rulePath(e){return Vr},commandPath(e){return `${pt}/${J(e)}/SKILL.md`},agentPath(e){return `${pt}/${V(e)}/SKILL.md`}}},M8={rootInstructionPath:vs,skillDir:Jr,managedOutputs:{dirs:[Jr],files:[vs]},rewriteGeneratedPath(e){return e===Vr?vs:e.startsWith(`${pt}/`)?e.replace(`${pt}/`,`${Jr}/`):e},mirrorGlobalPath(e,t){return fe(e,Jr,t)},paths:{rulePath(e){return vs},commandPath(e){return `${Jr}/${J(e)}/SKILL.md`},agentPath(e){return `${Jr}/${V(e)}/SKILL.md`}}},BG={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Lg={id:Eo,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:v8,capabilities:BG,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:vG,lint:{hooks:MG,permissions:GG,ignore:$G,mcp:jG},supportsConversion:{commands:true,agents:true},project:F8,globalSupport:{capabilities:BG,detectionPaths:[vs],layout:M8},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Vr],global:[vs]},canonicalDir:xb,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:xS,detectionPaths:[Vr,pt]};});function KG(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:cr,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(xn)));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=T(a,o.body.trim()||"");t.push({path:`${Oo}/${i}.md`,content:l});}return t}function WG(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,t.body.trim()||"");return {path:`${Tn}/${t.name}.md`,content:n}})}function HG(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${Pn}/${t.name}.md`,content:n}})}function zG(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${mr}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${mr}/${r.name}/${a}`,content:i.content});}}return t}function VG(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Yr,content:t}]}function JG(e){return !e.ignore||e.ignore.length===0?[]:[{path:Fs,content:e.ignore.join(`
147
- `)}]}function YG(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:Yr,content:JSON.stringify({hooks:t},null,2)}]}function XG(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};return t.length>0&&(o.allow=t),r.length>0&&(o.deny=r),n.length>0&&(o.ask=n),[{path:Yr,content:JSON.stringify({permissions:o},null,2)}]}function QG(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes(xn));return le(t?.body.trim()??"",r)}var qG=d(()=>{B();Be();ml();rl();s(KG,"generateRules");s(WG,"generateCommands");s(HG,"generateAgents");s(zG,"generateSkills");s(VG,"generateMcp");s(JG,"generateIgnore");s(YG,"generateHooks");s(XG,"generatePermissions");s(QG,"renderQwenGlobalInstructions");});async function ZG(e,t={}){let r=t.scope??"project",n=[],o=await H(xn,e,r);return n.push(...await Q(Cg,e,r,{normalize:o})),await ne(e,r==="global"?bo:mr,xn,n,o),n}var e$=d(()=>{ge();Ae();oe();rl();xk();s(ZG,"importFromQwenCode");});function t$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:xn}))}var r$=d(()=>{Ee();rl();s(t$,"lintRules");});var n$,o$=d(()=>{rl();n$={rules:[{feature:"rules",mode:"singleFile",source:{project:[cr],global:[wo]},canonicalDir:PS,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Oo],global:[]},canonicalDir:PS,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[Tn],global:[Gs]},canonicalDir:Tb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[Pn],global:[$s]},canonicalDir:Pb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Yr],global:[Ms]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Fs],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}};});function W8(e){if(!e)return {};try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}var $8,j8,U8,B8,K8,H8,Cg,xk=d(()=>{qG();e$();r$();Oe();o$();rl();$8={name:xn,primaryRootInstructionPath:cr,generateRules:KG,generateCommands:WG,generateAgents:HG,generateSkills:zG,generateMcp:VG,generateIgnore:JG,generateHooks:YG,generatePermissions:XG,importFrom:ZG},j8={rootInstructionPath:cr,skillDir:mr,managedOutputs:{dirs:[Oo,Tn,Pn,mr],files:[cr,Yr,Fs]},paths:{rulePath(e,t){return t.root?cr:`${Oo}/${e}.md`},commandPath(e){return `${Tn}/${e}.md`},agentPath(e){return `${Pn}/${e}.md`}}},U8={rootInstructionPath:wo,renderPrimaryRootInstruction:QG,skillDir:bo,managedOutputs:{dirs:[Gs,$s,bo],files:[wo,Ms]},rewriteGeneratedPath(e){return e===cr?wo:e===Yr?Ms:e===Fs?null:e.startsWith(`${Tn}/`)?e.replace(`${Tn}/`,`${Gs}/`):e.startsWith(`${Pn}/`)?e.replace(`${Pn}/`,`${$s}/`):e.startsWith(`${mr}/`)?e.replace(`${mr}/`,`${bo}/`):e.startsWith(`${Oo}/`)?null:e},paths:{rulePath(e,t){return wo},commandPath(e){return `${Gs}/${e}.md`},agentPath(e){return `${$s}/${e}.md`}}},B8={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},K8={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"};s(W8,"parseJsonObject");H8=s((e,t,r,n)=>{if(n!==Yr&&n!==Ms)return null;let o=W8(t?.content??e);try{let i=JSON.parse(r);i.mcpServers!==void 0&&(o.mcpServers=i.mcpServers),i.hooks!==void 0&&(o.hooks=i.hooks),i.permissions!==void 0&&(o.permissions=i.permissions);}catch{return t?.content??e??r}return JSON.stringify(o,null,2)},"mergeQwenSettings"),Cg={id:xn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:$8,capabilities:B8,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:t$,project:j8,globalSupport:{capabilities:K8,detectionPaths:[wo,Ms,Gs,$s,bo],layout:U8},mergeGeneratedOutputContent:H8,importer:n$,buildImportPaths:DS,detectionPaths:[cr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function s$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Ao)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Dn,content:o}]:[]}function i$(e){return ie(e,Kt)}function a$(e){return e.commands.map(t=>({path:`${Kt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function l$(e){return e.agents.map(t=>({path:`${Kt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var c$=d(()=>{oe();Be();_e();be();vc();s(s$,"generateRules");s(i$,"generateSkills");s(a$,"generateCommands");s(l$,"generateAgents");});async function m$(e,t={}){let r=t.scope??"project",n=[],o=await H(Ao,e,r);return n.push(...await Q(Eg,e,r,{normalize:o})),await ne(e,Kt,Ao,n,o),n}var p$=d(()=>{ge();oe();Ae();vc();Tk();s(m$,"importFromReplitAgent");});function u$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ao}))}var d$=d(()=>{Ee();vc();s(u$,"lintRules");});function f$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function g$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function h$(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function y$(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","replit-agent","Replit Agent MCP servers are configured via the Integrations UI, not file-based; canonical MCP config is not projected.")]}var _$=d(()=>{Re();s(f$,"lintHooks");s(g$,"lintPermissions");s(h$,"lintIgnore");s(y$,"lintMcp");});var z8,V8,J8,Eg,Tk=d(()=>{be();_e();c$();p$();d$();_$();vS();vc();z8={name:Ao,primaryRootInstructionPath:Dn,generateRules:s$,generateCommands:a$,generateAgents:l$,generateSkills:i$,importFrom:m$},V8={rootInstructionPath:Dn,skillDir:Kt,managedOutputs:{dirs:[Kt],files:[Dn]},paths:{rulePath(e){return Dn},commandPath(e){return `${Kt}/${J(e)}/SKILL.md`},agentPath(e){return `${Kt}/${V(e)}/SKILL.md`}}},J8={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Eg={id:Ao,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:z8,capabilities:J8,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:u$,lint:{hooks:f$,permissions:g$,ignore:h$,mcp:y$},supportsConversion:{commands:true,agents:true},project:V8,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Dn]},canonicalDir:Nb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:NS,detectionPaths:[Dn]};});function R$(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Nn,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Wi))continue;let o=basename(n.source,".md");t.push({path:`${js}/${o}.md`,content:n.body.trim()||""});}return t}function k$(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Us}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function I$(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Xp,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function L$(e){return e.ignore.length===0?[]:[{path:Qp,content:e.ignore.join(`
148
- `)}]}function C$(e){return ie(e,xo)}function E$(e){if(e.agents.length===0)return [];let t=e.agents.map(r=>{let o={slug:basename(r.source,".md"),name:r.name};return r.description&&(o.description=r.description),r.body.trim()&&(o.roleDefinition=r.body.trim()),o});return [{path:Fc,content:stringify({customModes:t})}]}function O$(e){return []}var w$=d(()=>{oe();B();il();s(R$,"generateRules");s(k$,"generateCommands");s(I$,"generateMcp");s(L$,"generateIgnore");s(C$,"generateSkills");s(E$,"generateAgents");s(O$,"generatePermissions");});var Og,A$,Pk=d(()=>{B();de();il();Og=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(e==="00-root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${sl}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"rooNonRootRuleMapper"),A$=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${bf}/${e}`,content:await Ce(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function Q8(e,t,r){let n=join(e,nl),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let i=o.filter(l=>l.isDirectory()&&l.name.startsWith("rules-")).map(l=>l.name),a=join(e,sl);for(let l of i)t.push(...await Se({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:Wi,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Og({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function x$(e,t={}){let r=t.scope??"project",n=[],o=await H(Wi,e,r);return n.push(...await Q(wg,e,r,{normalize:o})),await Q8(e,n,o),await ne(e,xo,Wi,n,o),n}var T$=d(()=>{ge();oe();qt();Ae();Pk();il();Nk();s(Q8,"importPerModeRules");s(x$,"importFromRooCode");});function P$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Wi}))}var D$=d(()=>{Ee();il();s(P$,"lintRules");});function N$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","roo-code","Roo Code permissions (roo-cline.allowedCommands) live in VS Code settings.json; configure them via VS Code Settings UI.")]}var v$=d(()=>{Re();s(N$,"lintPermissions");});function n9(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var t9,r9,o9,s9,i9,wg,Nk=d(()=>{b();w$();il();dt();T$();Pk();D$();v$();Oe();t9={name:"roo-code",primaryRootInstructionPath:Nn,generateRules:R$,generateCommands:k$,generateSkills:C$,generateMcp:I$,generateIgnore:L$,generateAgents:E$,generatePermissions:O$,importFrom:x$},r9={rootInstructionPath:Nn,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Fc]},paths:{rulePath(e,t){return `${js}/${e}.md`},commandPath(e,t){return `${Us}/${e}.md`},agentPath(e,t){return null}}};s(n9,"computeStatus");o9=s(async(e,t,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||e.agents.length===0)return [];let o=e.agents.map(l=>{let m={slug:basename(l.source,".md"),name:l.name};return l.description&&(m.description=l.description),l.body.trim()&&(m.roleDefinition=l.body.trim()),m}),i=stringify({customModes:o}),a=await k(join(t,qp));return [{target:"roo-code",path:qp,content:i,currentContent:a??void 0,status:n9(a,i)}]},"generateRooGlobalExtras"),s9={rootInstructionPath:Vi,skillDir:Bs,managedOutputs:{dirs:[Hi,zi,Bs,vb],files:[Vi,ol,Zp,qp]},rewriteGeneratedPath(e){return e===Nn?Vi:e===Fc?null:e.startsWith(`${js}/`)?e.replace(`${js}/`,`${Hi}/`):e.startsWith(`${Us}/`)?e.replace(`${Us}/`,`${zi}/`):e.startsWith(`${xo}/`)?e.replace(`${xo}/`,`${Bs}/`):e===Xp?ol:e===Qp?Zp:e},mirrorGlobalPath(e,t){return fe(e,Bs,t)},paths:{rulePath(e,t){return `${Hi}/${e}.md`},commandPath(e,t){return `${zi}/${e}.md`},agentPath(e,t){return null}}},i9={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"partial"},wg={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:t9,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"partial"},emptyImportMessage:"No Roo Code config found (.roo/rules, .roo/commands, .roo/skills, .roo/mcp.json, .rooignore, or .roorules).",lintRules:P$,lint:{permissions:N$},project:r9,globalSupport:{capabilities:i9,detectionPaths:[Hi,zi,Bs,ol,Zp,Vi,qp],layout:s9,scopeExtras:o9},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Nn,Yp],global:[Vi,Nn,Yp]},canonicalDir:sl,canonicalRootFilename:"_root.md",markAsRoot:true,frontmatterRemap:s(({description:e,globs:t})=>({description:typeof e=="string"?e:void 0,globs:Array.isArray(t)?t:void 0}),"frontmatterRemap")},{feature:"rules",mode:"directory",source:{project:[js],global:[Hi]},canonicalDir:sl,extensions:[".md"],map:Og}],commands:{feature:"commands",mode:"directory",source:{project:[Us],global:[zi]},canonicalDir:bf,extensions:[".md"],map:A$},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Xp],global:[ol]},canonicalDir:".agentsmesh",canonicalFilename:Fb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Qp],global:[Zp]},canonicalDir:".agentsmesh",canonicalFilename:Mb}},buildImportPaths:FS,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Fc]};});function F$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(To)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Xr,content:o}]:[]}function M$(e){return ie(e,ut)}function G$(e){return e.commands.map(t=>({path:`${ut}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function $$(e){return e.agents.map(t=>({path:`${ut}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function j$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ks,content:t}]}var U$=d(()=>{oe();Be();_e();be();al();s(F$,"generateRules");s(M$,"generateSkills");s(G$,"generateCommands");s($$,"generateAgents");s(j$,"generateMcp");});async function B$(e,t={}){let r=t.scope??"project",n=[],o=await H(To,e,r);return n.push(...await Q(bg,e,r,{normalize:o})),await ne(e,r==="global"?pr:ut,To,n,o),n}var K$=d(()=>{ge();oe();Ae();al();vk();s(B$,"importFromRovodev");});function W$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:To}))}var H$=d(()=>{Ee();al();s(W$,"lintRules");});function z$(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var V$=d(()=>{Re();s(z$,"lintIgnore");});function X$(e,t){let r={};if(t.has("hooks")&&e.hooks&&Object.values(e.hooks).some(o=>Array.isArray(o)&&o.length>0)&&(r.eventHooks=e.hooks),t.has("permissions")&&e.permissions){let{allow:n,deny:o}=e.permissions,i=e.permissions.ask??[];(n.length>0||o.length>0||i.length>0)&&(r.toolPermissions={allow:n.length>0?n:void 0,deny:o.length>0?o:void 0,ask:i.length>0?i:void 0});}return Object.keys(r).length===0?[]:[{path:eu,content:stringify(r)}]}function Q$(e,t){if(e===null)return t;let r;try{let i=parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.eventHooks!==void 0&&(r.eventHooks=o.eventHooks),o.toolPermissions!==void 0&&(r.toolPermissions=o.toolPermissions),stringify(r)}var q$=d(()=>{al();s(X$,"buildRovodevConfig");s(Q$,"mergeRovodevConfig");});var a9,l9,c9,m9,p9,bg,vk=d(()=>{be();_e();U$();dt();K$();H$();V$();q$();Oe();al();a9={name:To,primaryRootInstructionPath:Xr,generateRules:F$,generateCommands:G$,generateAgents:$$,generateSkills:M$,generateMcp:j$,importFrom:B$},l9={rootInstructionPath:Xr,skillDir:ut,managedOutputs:{dirs:[ut],files:[Xr,Ks]},paths:{rulePath(e){return Xr},commandPath(e){return `${ut}/${J(e)}/SKILL.md`},agentPath(e){return `${ut}/${V(e)}/SKILL.md`}}},c9={rootInstructionPath:Ws,skillDir:pr,managedOutputs:{dirs:[pr],files:[Ws,Mc,eu]},rewriteGeneratedPath(e){return e===Xr?Ws:e.startsWith(`${ut}/`)?e.replace(`${ut}/`,`${pr}/`):e===Ks?Mc:e},mirrorGlobalPath(e,t){return fe(e,pr,t)},paths:{rulePath(e){return Ws},commandPath(e){return `${pr}/${J(e)}/SKILL.md`},agentPath(e){return `${pr}/${V(e)}/SKILL.md`}}},m9={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},p9={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"},bg={id:To,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:a9,capabilities:m9,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:W$,lint:{ignore:z$},supportsConversion:{commands:true,agents:true},project:l9,globalSupport:{capabilities:p9,detectionPaths:[jb,Ws,pr],layout:c9},emitScopedSettings(e,t,r){return t!=="global"?[]:X$(e,r)},mergeGeneratedOutputContent(e,t,r,n){return n!==eu?null:Q$(e,r)},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Xr],global:[Ws]},canonicalDir:Ub,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ks],global:[Mc]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:MS,detectionPaths:[Xr,ut,Ks]};});function Z$(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:dr,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Qr))continue;let o=basename(n.source,".md");t.push({path:`${ur}/${o}.md`,content:n.body.trim()});}return t}function ej(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Ji}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function tj(e){return ie(e,qr)}function rj(e){return e.mcp===null||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:ll,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function nj(e){return e.ignore.length===0?[]:[{path:Gc,content:e.ignore.join(`
149
- `)}]}var oj=d(()=>{oe();B();jc();s(Z$,"generateRules");s(ej,"generateCommands");s(tj,"generateSkills");s(rj,"generateMcp");s(nj,"generateIgnore");});async function f9(e,t,r,n){let o=n==="global"?[Zr,dr]:[dr,Zr];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,sj),{frontmatter:m,body:p}=x(r(l,a,c));await O(join(e,nu)),await L(c,await z(c,{...m,root:true},p)),t.push({fromTool:Qr,fromPath:a,toPath:sj,feature:"rules"});return}}async function g9(e,t,r,n){let o=join(e,n==="global"?Hs:ur),i=join(e,nu);t.push(...await Se({srcDir:o,destDir:i,extensions:[".md"],fromTool:Qr,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a);if(c==="project_rules.md"||c==="rules.md")return null;let m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${nu}/${a}`,feature:"rules",content:await z(m,{...p,root:false},u)}},"mapEntry")}));}async function ij(e,t={}){let r=t.scope??"project",n=[],o=await H(Qr,e,r);return await f9(e,n,o,r),await g9(e,n,o,r),n.push(...await Q(Ag,e,r,{normalize:o})),await ne(e,r==="global"?vn:qr,Qr,n,o),n}var sj,aj=d(()=>{ge();oe();qt();Ae();de();b();B();jc();Fk();sj=`${nu}/_root.md`;s(f9,"importRoot");s(g9,"importNonRootRules");s(ij,"importFromTrae");});function lj(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qr}))}var cj=d(()=>{Ee();jc();s(lj,"lintRules");});var h9,y9,_9,S9,Ag,Fk=d(()=>{oj();dt();aj();cj();Oe();jc();h9={name:Qr,primaryRootInstructionPath:dr,generateRules:Z$,generateCommands:ej,generateSkills:tj,generateMcp:rj,generateIgnore:nj,importFrom:ij},y9={rootInstructionPath:dr,skillDir:qr,managedOutputs:{dirs:[ur,Ji,qr],files:[ll,Gc]},paths:{rulePath(e,t){return `${ur}/${e}.md`},commandPath(e,t){return `${Ji}/${e}.md`},agentPath(e,t){return null}}},_9={rootInstructionPath:Zr,skillDir:vn,managedOutputs:{dirs:[Hs,$c,vn,Kb],files:[Zr,ru]},rewriteGeneratedPath(e){return e===dr?Zr:e.startsWith(`${ur}/`)?e.replace(`${ur}/`,`${Hs}/`):e.startsWith(`${qr}/`)?e.replace(`${qr}/`,`${vn}/`):e===ll?ru:e===Gc?null:e},mirrorGlobalPath(e,t){return fe(e,vn,t)},paths:{rulePath(e,t){return e==="_root"?Zr:`${Hs}/${e}.md`},commandPath(e,t){return `${$c}/${e}.md`},agentPath(e,t){return null}}},S9={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ag={id:Qr,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:h9,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Trae config found (.trae/rules/project_rules.md, .trae/rules/*.md, .trae/skills/, .trae/mcp.json, or .trae/.ignore).",lintRules:lj,project:y9,globalSupport:{capabilities:S9,detectionPaths:[Zr,Hs,vn,ru],layout:_9},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Ji],global:[$c]},canonicalDir:Wb,extensions:[".md"],preset:"command"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ll],global:[ru]},canonicalDir:".agentsmesh",canonicalFilename:Hb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Gc]},canonicalDir:".agentsmesh",canonicalFilename:zb}},buildImportPaths:GS,detectionPaths:[ur,ll,dr]};});function mj(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Po)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Fn,content:o}]:[]}function pj(e){return ie(e,Et)}function uj(e){return e.commands.map(t=>({path:`${Et}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function dj(e){return e.agents.map(t=>({path:`${Et}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function fj(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Yi,content:t}]}function gj(e){return []}var hj=d(()=>{oe();Be();_e();be();Uc();s(mj,"generateRules");s(pj,"generateSkills");s(uj,"generateCommands");s(dj,"generateAgents");s(fj,"generateMcp");s(gj,"generatePermissions");});async function yj(e,t={}){let r=t.scope??"project",n=[],o=await H(Po,e,r);return n.push(...await Q(xg,e,r,{normalize:o})),await ne(e,r==="global"?fr:Et,Po,n,o),n}var _j=d(()=>{ge();oe();Ae();Uc();Mk();s(yj,"importFromWarp");});function Sj(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Po}))}var Rj=d(()=>{Ee();Uc();s(Sj,"lintRules");});function kj(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","warp","Warp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Ij(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","warp","Warp permissions are managed via Agent Profiles in the Warp UI (Agent Profiles \u2192 Allowed/Blocked commands); canonical permissions are not projected as config files.")]}function Lj(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var Cj=d(()=>{Re();s(kj,"lintHooks");s(Ij,"lintPermissions");s(Lj,"lintIgnore");});var R9,k9,I9,L9,C9,xg,Mk=d(()=>{be();_e();hj();dt();_j();Rj();Cj();Oe();Uc();R9={name:Po,primaryRootInstructionPath:Fn,generateRules:mj,generateCommands:uj,generateAgents:dj,generateSkills:pj,generateMcp:fj,generatePermissions:gj,importFrom:yj},k9={rootInstructionPath:Fn,skillDir:Et,managedOutputs:{dirs:[Et],files:[Fn,Yi]},paths:{rulePath(e){return Fn},commandPath(e){return `${Et}/${J(e)}/SKILL.md`},agentPath(e){return `${Et}/${V(e)}/SKILL.md`}}},I9={rootInstructionPath:void 0,skillDir:fr,managedOutputs:{dirs:[fr],files:[]},rewriteGeneratedPath(e){return e.startsWith(`${Et}/`)?e.replace(`${Et}/`,`${fr}/`):e},mirrorGlobalPath(e,t){return fe(e,fr,t)},paths:{rulePath(){return null},commandPath(e){return `${fr}/${J(e)}/SKILL.md`},agentPath(e){return `${fr}/${V(e)}/SKILL.md`}}},L9={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"partial"},C9={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"partial"},xg={id:Po,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:R9,capabilities:L9,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:Sj,lint:{hooks:kj,permissions:Ij,ignore:Lj},supportsConversion:{commands:true,agents:true},project:k9,globalSupport:{capabilities:C9,detectionPaths:[fr],layout:I9},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[$S,Fn]},canonicalDir:Jb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Yi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:jS,detectionPaths:[Fn,$S,Yi],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var Ko,Gk,oa,Ej,em,Wo,tm,rm,Oj,sa,jn,nm,$k,wj,bj,jk,Uk,Bk,om,sm,_u,Tg,Pg,Dg,Aj,vt=d(()=>{Ko="windsurf",Gk=".windsurfrules",oa=".windsurf/rules",Ej=".windsurfignore",em=".codeiumignore",Wo="AGENTS.md",tm=".windsurf/hooks.json",rm=".windsurf/mcp_config.example.json",Oj=".windsurf/mcp_config.json",sa=".windsurf/workflows",jn=".windsurf/skills",nm=".agentsmesh/rules",$k=".agentsmesh/commands",wj=".agentsmesh/agents",bj=".agentsmesh/skills",jk=".agentsmesh/ignore",Uk=".agentsmesh/hooks.yaml",Bk=".agentsmesh/mcp.json",om=".codeium/windsurf/memories/global_rules.md",sm=".codeium/windsurf/skills",_u=".codeium/windsurf/global_workflows",Tg=".codeium/windsurf/hooks.json",Pg=".codeium/windsurf/mcp_config.json",Dg=".codeium/.codeiumignore",Aj=".agents/skills";});function O9(e){let t=basename(e,".md");return t==="_root"?"root":t}function w9(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}function Kk(e){let t=[],r=e.rules.find(n=>n.root);if(!r)return [];t.push({path:Wo,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=O9(n.source),i=n.trigger||(n.globs.length>0?"glob":void 0),a={description:n.description||void 0,trigger:i,glob:n.globs.length===1?n.globs[0]:void 0,globs:n.globs.length>1?n.globs:void 0};Object.keys(a).forEach(m=>{a[m]===void 0&&delete a[m];});let l=Object.keys(a).length>0?T(a,n.body.trim()||""):n.body.trim()||"";t.push({path:`${oa}/${o}.md`,content:l});let c=w9(n.globs);c&&(c!==o&&t.push({path:`${oa}/${c}.md`,content:l}),t.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return t}var xj=d(()=>{B();vt();s(O9,"ruleSlug");s(w9,"directoryScopedRuleDir");s(Kk,"generateRules");});function Wk(e){return !e.ignore||e.ignore.length===0?[]:[{path:em,content:e.ignore.join(`
150
- `)}]}var Tj=d(()=>{vt();s(Wk,"generateIgnore");});function Hk(e){return e.commands.map(t=>{let r={description:t.description.trim()||void 0,allowedTools:t.allowedTools.length>0?t.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?T(r,t.body.trim()||""):t.body.trim();return {path:`${sa}/${t.name}.md`,content:n}})}var Pj=d(()=>{B();vt();s(Hk,"generateCommands");});function zk(e){return e.agents.map(t=>({path:`${jn}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var Dj=d(()=>{_e();vt();s(zk,"generateAgents");});function Vk(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:rm,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var Nj=d(()=>{vt();s(Vk,"generateMcp");});function b9(e){let t={PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Notification:"notification",UserPromptSubmit:"user_prompt_submit",SubagentStart:"subagent_start",SubagentStop:"subagent_stop"};return t[e]?t[e]:e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function A9(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Jn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(t[b9(r)]=o);}return t}function Jk(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=A9(e.hooks);return Object.keys(t).length===0?[]:[{path:tm,content:JSON.stringify({hooks:t},null,2)}]}var vj=d(()=>{Ir();vt();s(b9,"windsurfEventName");s(A9,"toWindsurfHooks");s(Jk,"generateHooks");});function Yk(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=Object.keys(n).length>0?T(n,r.body.trim()||""):r.body.trim()||"";t.push({path:`${jn}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)t.push({path:`${jn}/${r.name}/${i.relativePath}`,content:i.content});}return t}var Fj=d(()=>{B();vt();s(Yk,"generateSkills");});var Mj=d(()=>{xj();Tj();Pj();Dj();Nj();vj();Fj();});var Gj=d(()=>{Mj();});function $j(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function jj(e,t,r){let n=join(e,sa),i=(await U(n)).filter(l=>l.endsWith(".md")),a=join(e,$k);for(let l of i){let c=await k(l);if(!c)continue;let m=relative(n,l).replace(/\\/g,"/");await O(a);let p=join(a,m),u=r(c,l,p),{frontmatter:f,body:g}=x(u),h=await Ce(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let _=$j(f.allowedTools);return _.length>0?_:$j(f["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(f,"allowedTools")||Object.prototype.hasOwnProperty.call(f,"allowed-tools")},g);await L(p,h),t.push({fromTool:Ko,fromPath:l,toPath:`${$k}/${m}`,feature:"commands"});}}var Uj=d(()=>{b();B();de();vt();s($j,"toStringArray");s(jj,"importWorkflows");});async function Bj(e,t,r,n=jn){await Kc([n],{projectRoot:e,destCanonicalSkillsDir:bj,targetName:"windsurf",normalize:r,results:t},[Wc({canonicalAgentsDir:wj})]);}var Kj=d(()=>{Hc();vt();s(Bj,"importSkills");});async function Hj(e,t){let r=join(e,tm),n=await k(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let i=D9(o.hooks);if(Object.keys(i).length===0)return;let a=join(e,Uk);await O(dirname(a)),await L(a,stringify(i)),t.push({fromTool:Ko,fromPath:r,toPath:Uk,feature:"hooks"});}catch{}}function P9(e){return {pre_tool_use:"PreToolUse",post_tool_use:"PostToolUse",notification:"Notification",user_prompt_submit:"UserPromptSubmit",subagent_start:"SubagentStart",subagent_stop:"SubagentStop"}[e]??e}function D9(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=P9(r),i=[];for(let a of n){if(!a||typeof a!="object")continue;let l=a;if(typeof l.command=="string"&&l.command.trim()){i.push({matcher:".*",type:"command",command:l.command});continue}let c=typeof l.matcher=="string"&&l.matcher.trim()?l.matcher:".*",m=Array.isArray(l.hooks)?l.hooks:[];for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.command=="string"?u.command:typeof u.prompt=="string"?u.prompt:"";if(!f.trim())continue;let g={matcher:c,type:u.type==="prompt"?"prompt":"command",command:f};typeof u.timeout=="number"&&(g.timeout=u.timeout),i.push(g);}}i.length>0&&(t[o]=i);}return t}async function zj(e,t){let r=[rm,Oj];for(let n of r){let o=join(e,n),i=await k(o);if(i)try{let a=JSON.parse(i);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(e,Bk);await O(dirname(l)),await L(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),t.push({fromTool:Ko,fromPath:o,toPath:Bk,feature:"mcp"});return}catch{}}}var Vj=d(()=>{b();vt();s(Hj,"importWindsurfHooks");s(P9,"canonicalHookEventName");s(D9,"windsurfHooksToCanonical");s(zj,"importWindsurfMcp");});async function Jj(e,t){let r=t?.scope??"project",n=[],o=await H(Ko,e),i=await H("codex-cli",e),a=join(e,nm),l=join(e,Gk),c=await k(l);if(c!==null){await O(a);let f=join(a,"_root.md"),g=o(c,l,f).trim(),h=await z(f,{root:true},g);await L(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${nm}/_root.md`,feature:"rules"});}if(c===null){let f=join(e,Wo),g=await k(f);if(g!==null){await O(a);let h=join(a,"_root.md"),_=o(i(g,f,h),f,h).trim(),S=await z(h,{root:true},_);await L(h,S),n.push({fromTool:"windsurf",fromPath:f,toPath:`${nm}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await Se({srcDir:e,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({srcPath:f,normalizeTo:g})=>{let h=relative(e,dirname(f)).replace(/\\/g,"/");if(!h||h==="."||basename(f)!=="AGENTS.md")return null;let _=h.replace(/\//g,"-");if(!Xd(h))return await Xn(join(a,`${_}.md`)),null;let S=join(a,`${_}.md`);return {destPath:S,toPath:`${nm}/${_}.md`,feature:"rules",content:await z(S,{root:false,globs:[`${h}/**`]},g(S))}},"mapEntry")}));let m=join(e,oa);n.push(...await Se({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({relativePath:f,normalizeTo:g})=>{if(f==="_root.md"&&c!==null)return null;let h=join(a,f),{frontmatter:_,body:S}=x(g(h)),R={..._};return typeof R.glob=="string"&&R.glob.trim()&&(R.globs=[R.glob],delete R.glob),{destPath:h,toPath:`${nm}/${f}`,feature:"rules",content:await z(h,{...R,root:false},S)}},"mapEntry")}));let p=join(e,Ej),u=await k(p);if((u===null||!u.trim())&&(p=join(e,em),u=await k(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let _=h.trim();_&&!_.startsWith("#")&&g.push(_);}if(g.length>0){await O(join(e,".agentsmesh"));let h=join(e,jk);await L(h,g.join(`
151
- `)),n.push({fromTool:"windsurf",fromPath:p,toPath:jk,feature:"ignore"});}}return await jj(e,n,o),await Bj(e,n,o),await Hj(e,n),await zj(e,n),n}var Yj=d(()=>{ge();b();B();de();qt();mp();vt();Uj();Kj();Vj();s(Jj,"importFromWindsurf");});function Xj(e,t,r){let n=[],{rules:o}=e;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(t,o[0].source),target:Ko,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:Ko,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var Qj=d(()=>{vt();s(Xj,"lintRules");});function qj(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Zj(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var e0=d(()=>{Re();s(qj,"lintCommands");s(Zj,"lintMcp");});function G9(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}var $9,j9,U9,B9,t0,r0=d(()=>{Gj();La();vt();dt();Yj();Qj();e0();Oe();op();_e();s(G9,"directoryScopedRuleDir");$9={name:"windsurf",primaryRootInstructionPath:Wo,generateRules:Kk,generateCommands:Hk,generateAgents:zk,generateSkills:Yk,generateMcp:Vk,generateHooks:Jk,generateIgnore:Wk,importFrom:Jj},j9={rootInstructionPath:Wo,extraRuleOutputPaths(e){if(e.root)return [Wo];let t=G9(e.globs);return t!==null?[`${t}/AGENTS.md`]:[]},skillDir:jn,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(e,t){return `${oa}/${e}.md`},commandPath(e,t){return `${sa}/${e}.md`},agentPath(e,t){return os(t,"windsurf")?`.windsurf/skills/${V(e)}/SKILL.md`:null}}},U9={rootInstructionPath:om,skillDir:sm,managedOutputs:{dirs:[sm,_u,Aj],files:[om,Tg,Pg,Dg]},rewriteGeneratedPath(e){return e===Wo?om:e.startsWith(`${oa}/`)||/\/AGENTS\.md$/.test(e)?null:e.startsWith(`${jn}/`)?e.replace(`${jn}/`,`${sm}/`):e.startsWith(`${sa}/`)?e.replace(`${sa}/`,`${_u}/`):e===tm?Tg:e===rm?Pg:e===em?Dg:e},mirrorGlobalPath(e,t){return fe(e,".codeium/windsurf/skills",t)},paths:{rulePath(e,t){return om},commandPath(e,t){return `${_u}/${e}.md`},agentPath(e,t){return os(t,"windsurf")?`${sm}/${V(e)}/SKILL.md`:null}}},B9={rules:"native",additionalRules:"partial",commands:un("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},t0={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:$9,capabilities:{rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Windsurf config found (.windsurfrules, .windsurf/rules, .windsurfignore, or .codeiumignore).",supportsConversion:{agents:true},lintRules:Xj,lint:{commands:qj,mcp:Zj},project:j9,globalSupport:{capabilities:B9,detectionPaths:[om,sm,_u,Tg,Pg,Dg],layout:U9},buildImportPaths:US,detectionPaths:[".windsurfrules",".windsurf"],nativeInstall:{pickPaths:[{prefix:".windsurf/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}}],dialectHints:[{frontmatterKey:"trigger"}]},conversionDefaults:{agentsToSkills:true}};});function n0(e){return ie(e,No)}function o0(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Mn,content:o}]:[]}var s0=d(()=>{oe();Be();cl();s(n0,"generateSkills");s(o0,"generateRules");});async function a0(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.context_servers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a)){if(!m||typeof m!="object"||Array.isArray(m))continue;let p={...m};delete p.source,l[c]=p;}Object.keys(l).length!==0&&(await Xe(e,i0,l),r.push({fromTool:"zed",fromPath:t,toPath:i0,feature:"mcp"}));}var i0,l0=d(()=>{b();hn();cl();i0=".agentsmesh/mcp.json";s(a0,"importZedMcp");});async function c0(e,t={}){let r=t.scope??"project",n=[],o=await H("zed",e,r);return n.push(...await Q(vg,e,r,{normalize:o})),r==="project"&&await ne(e,No,"zed",n,o),await a0(e,r==="global"?vo:Do,n),n}var m0=d(()=>{ge();oe();Ae();l0();cl();Qk();s(c0,"importFromZed");});function p0(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var u0=d(()=>{Ee();cl();s(p0,"lintRules");});function d0(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function f0(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function g0(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","zed","Zed has no dedicated ignore file and relies on file_scan_exclusions in settings.json; canonical ignore patterns are not projected.")]}var h0=d(()=>{Re();s(d0,"lintHooks");s(f0,"lintPermissions");s(g0,"lintIgnore");});function Y9(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var W9,H9,z9,V9,J9,vg,Qk=d(()=>{s0();m0();u0();h0();Oe();cl();W9={name:"zed",primaryRootInstructionPath:Mn,generateRules:o0,generateSkills:n0,importFrom:c0},H9={rootInstructionPath:Mn,skillDir:No,managedOutputs:{dirs:[No],files:[Mn,Do]},paths:{rulePath(e){return Mn},commandPath(){return null},agentPath(){return null}}},z9={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[vo]},rewriteGeneratedPath(e){return e===Do?vo:e},paths:{rulePath(){return vo},commandPath(){return null},agentPath(){return null}}},V9={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},J9={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(Y9,"mergeZedSettings");vg={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:W9,capabilities:V9,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:p0,lint:{hooks:d0,permissions:f0,ignore:g0},project:H9,globalSupport:{capabilities:J9,detectionPaths:[vo],layout:z9},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Mn],global:[]},canonicalDir:Qb,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){if(!r.has("mcp"))return [];if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let n={};for(let[o,i]of Object.entries(e.mcp.mcpServers))n[o]=i;return [{path:Do,content:JSON.stringify({context_servers:n},null,2)}]},mergeGeneratedOutputContent(e,t,r,n){return n===Do||n===vo?Y9(e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:BS,detectionPaths:[Mn,Do]};});var ww={};Dy(ww,{BUILTIN_TARGETS:()=>Pe,TARGET_IDS:()=>Ue,getBuiltinTargetDefinition:()=>nn,getEffectiveTargetSupportLevel:()=>Fg,getTargetCapabilities:()=>ni,getTargetDetectionPaths:()=>Zk,getTargetLayout:()=>We,getTargetManagedOutputs:()=>eI,getTargetPrimaryRootInstructionPath:()=>q9,getTargetSkillDir:()=>Su,isBuiltinTargetId:()=>Yt,resolveTargetFeatureGenerator:()=>im,rewriteGeneratedOutputPath:()=>tI});function Q9(){return qk||(lO(Pe),qk=new Map(Pe.map(e=>[e.id,e]))),qk}function nn(e){return Q9().get(e)}function ni(e,t="project"){let r=nn(e)??re(e);if(!r)return;if(t==="global"&&!r.globalSupport)return p_(X9);let n=t==="global"?r.globalSupport.capabilities:r.capabilities;return p_(n)}function Zk(e,t="project"){let r=nn(e)??re(e);return r?t==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function We(e,t="project"){let r=nn(e)??re(e);if(r)return t==="global"?r.globalSupport?.layout:r.project}function q9(e,t="project"){return We(e,t)?.rootInstructionPath}function Su(e,t="project"){return We(e,t)?.skillDir}function eI(e,t="project"){return We(e,t)?.managedOutputs}function tI(e,t,r="project"){let n=We(e,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(t):t:null}function y0(e,t,r,n){if(!e||!r)return false;let o=ni(e.id,n)?.[t]?.level??"none";return o==="native"||o==="partial"?false:t==="commands"&&e.supportsConversion?.commands?!oc(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?!os(r,e.id,true,n):false}function Z9(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?oc(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?os(r,e.id,true,n):false}function Fg(e,t,r,n="project"){let o=ni(e,n)?.[t]?.level??"none",i=nn(e)??re(e);return n==="global"&&i&&!i.globalSupport?"none":o==="none"&&Z9(i,t,r,n)?"embedded":o!=="embedded"?o:y0(i,t,r,n)?"none":o}function im(e,t,r,n="project"){let o=nn(e)??re(e);if(!o?.generators||y0(o,t,r,n))return;let i=e3[t];return i===null?void 0:i(o.generators)}var X9,Pe,qk,e3,xe=d(()=>{op();La();rt();u_();zn();T_();KS();WS();zS();Ix();YS();NT();bP();RR();wR();TR();zR();VR();JR();dk();fk();gk();hk();kk();Lk();Ok();Ak();xk();Tk();Nk();vk();Fk();Mk();r0();Qk();X9={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Pe=[ef,Af,xf,Tf,kx,Pf,DT,wP,$f,Hf,Jf,ng,og,sg,dg,fg,gg,hg,Sg,Rg,Ig,Lg,Cg,Eg,wg,bg,Ag,xg,t0,vg];s(Q9,"builtinTargetsMap");s(nn,"getBuiltinTargetDefinition");s(ni,"getTargetCapabilities");s(Zk,"getTargetDetectionPaths");s(We,"getTargetLayout");s(q9,"getTargetPrimaryRootInstructionPath");s(Su,"getTargetSkillDir");s(eI,"getTargetManagedOutputs");s(tI,"rewriteGeneratedOutputPath");s(y0,"isFeatureSuppressedByConversion");s(Z9,"isConversionUpgrading");s(Fg,"getEffectiveTargetSupportLevel");e3={rules:s(e=>e.generateRules,"rules"),additionalRules:null,commands:s(e=>e.generateCommands,"commands"),agents:s(e=>e.generateAgents,"agents"),skills:s(e=>e.generateSkills,"skills"),mcp:s(e=>e.generateMcp,"mcp"),permissions:s(e=>e.generatePermissions,"permissions"),hooks:s(e=>e.generateHooks,"hooks"),ignore:s(e=>e.generateIgnore,"ignore")};s(im,"resolveTargetFeatureGenerator");});function n3(e,t){return e.uniqueHits!==t.uniqueHits?t.uniqueHits-e.uniqueHits:e.sharedScore!==t.sharedScore?t.sharedScore-e.sharedScore:e.id.localeCompare(t.id)}async function Mg(e){let t=[];for(let n of Pe){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(e,a)))continue;let l=r3.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&t.push({id:n.id,uniqueHits:o,sharedScore:i});}if(t.length===0)return null;t.sort(n3);let r=t[0];return r.uniqueHits===0?null:r.id}var r3,_0,rI=d(()=>{b();xe();r3=(()=>{let e=new Map;for(let t of Pe)for(let r of t.detectionPaths)e.set(r,(e.get(r)??0)+1);return e})();s(n3,"compare");s(Mg,"detectNativeFormat");_0=Pe.map(e=>e.detectionPaths[0]).filter(e=>e!==void 0);});async function Ru(e,t){let r=re(t);if(!r)throw new Error(`No importer registered for native target: ${t}`);return r.generators.importFrom(e)}var nI=d(()=>{rt();s(Ru,"importNativeToCanonical");});async function Cl(e){if(!await j(e))return false;if(await j(join(e,sI)))return true;try{let t=await readdir(e,{withFileTypes:!0});for(let r of t)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(e,r.name,sI)))return !0}catch{return false}return false}async function ku(e,t={}){if(!await j(e))return [];if(await j(join(e,sI))){let r=await vd(e,t);return r?[r]:[]}return Si(e,t)}var sI,Gg=d(()=>{b();rc();sI="SKILL.md";s(Cl,"isSkillPackLayout");s(ku,"loadSkillsAtExtendPath");});async function $g(e,t={}){return (await _i(e,t)).filter(n=>!Vn(basename(n.source)))}async function jg(e,t={}){return (await yi(e,t)).filter(n=>!Vn(basename(n.source)))}async function Ug(e,t={}){return (await hi(e,t)).filter(n=>!Vn(basename(n.source)))}async function S0(e,t={}){return Si(e,t)}var Bg=d(()=>{rp();tp();ep();rc();ts();s($g,"importAgents");s(jg,"importCommands");s(Ug,"importRules");s(S0,"importSkills");});function aI(e,t){let r=e?.[t];if(!r)return [];let n=Array.isArray(r)?r:[r],o=[];for(let i of n)i.mode!=="directory"||!i.map||!i.extensions||o.push({extensions:i.extensions,map:i.map});return o}function lI(e){return e.toLowerCase().endsWith(".md")}function k0(e,t){for(let r of aI(re(e)?.importer,t))if(r.extensions.some(n=>!lI(n)))return true;return false}function p3(e,t){let r=new Set;for(let n of aI(re(e)?.importer,t))for(let o of n.extensions)lI(o)||r.add(o.toLowerCase());return r}function u3(e){return Kd().filter(t=>k0(t,e))}async function g3(e,t,r){return d3[e](t,r)}async function h3(e,t,r){return f3[e](t,r)}async function y3(e,t,r,n={}){let o=aI(re(t)?.importer,r),i=await U(e),a=new Set;for(let p of o)for(let u of p.extensions)lI(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!Vn(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${t}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await k(u);if(f===null)continue;let g=relative(e,u).replaceAll("\\","/"),h=null;for(let _ of o){if(!_.extensions.some(I=>u.toLowerCase().endsWith(I.toLowerCase())))continue;let R=await _.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(R){h=R;break}}h&&(await O(dirname(h.destPath)),await L(h.destPath,h.content));}return {entities:await g3(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function cI(e,t,r={}){let n=r.restrictToTarget,o=n?k0(n,t)?[n]:[]:u3(t),i=new Set;for(let f of o)for(let g of p3(f,t))i.add(g);let a=await h3(t,e,{...r.parseOpts,handledByOtherReader:i.size>0?i:void 0}),l=[],c=s(f=>basename(f.source).replace(/\.[^.]+$/,""),"slugOf"),m=new Map;for(let f of a)m.set(c(f),f);for(let f of o){let g=await y3(e,f,t,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let _=c(h);m.has(_)||m.set(_,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function Kg(e,t={}){let r=await cI(e,"commands",t);return {commands:[...r.entities],cleanup:r.cleanup}}async function Wg(e,t={}){let r=await cI(e,"rules",t);return {rules:[...r.entities],cleanup:r.cleanup}}async function Hg(e,t={}){let r=await cI(e,"agents",t);return {agents:[...r.entities],cleanup:r.cleanup}}var d3,f3,zg=d(()=>{rp();tp();ep();b();rt();ts();Bg();s(aI,"directorySpecsFor");s(lI,"isMarkdownExtension");s(k0,"hasNonMdEntityMapper");s(p3,"nonMdEntityExtensions");s(u3,"targetsWithNonMdEntityMapper");d3={rules:hi,commands:yi,agents:_i},f3={rules:Ug,commands:jg,agents:$g};s(g3,"parseEntityDir");s(h3,"importEntities");s(y3,"readToolNativeEntities");s(cI,"readEntityDirWithMappers");s(Kg,"readCommandsDirWithMappers");s(Wg,"readRulesDirWithMappers");s(Hg,"readAgentsDirWithMappers");});function R3(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function k3(e){return e.rules.length===0&&e.commands.length===0&&e.agents.length===0&&e.skills.length===0&&e.mcp===null&&e.permissions===null&&e.hooks===null&&e.ignore.length===0}async function Vg(e){if(!await j(e))throw new Error(`Path does not exist: ${e}`);let t=await stat(e);if(t.isDirectory())return {sliceRoot:e};if(!t.isFile()||!e.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${e}`);let r=dirname(e),n=basename(r),i=basename(e).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[i]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[i]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[i]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${e}`)}async function uI(e,t){if(basename(e)===t)return e;let r=join(e,t);return await j(r)?r:null}async function I3(e,t,r){let n=s(async()=>{},"noop"),o=await uI(e,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await Ug(o,t),cleanup:n};let i=await Wg(o,{parseOpts:t});return {rules:[...i.rules],cleanup:i.cleanup}}async function L3(e,t,r){let n=s(async()=>{},"noop"),o=await uI(e,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await jg(o,t),cleanup:n};let i=await Kg(o,{parseOpts:t});return {commands:[...i.commands],cleanup:i.cleanup}}async function C3(e,t,r){let n=s(async()=>{},"noop"),o=await uI(e,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await $g(o,t),cleanup:n};let i=await Hg(o,{parseOpts:t});return {agents:[...i.agents],cleanup:i.cleanup}}async function E3(e,t){if(await Cl(e))return ku(e,t);let r=join(e,"skills");return await Cl(r)?ku(r,t):[]}async function Jg(e,t={}){let r=s(async()=>{},"noop"),n=join(e,".agentsmesh");if(await j(n))return {canonical:await jt(e,t),cleanup:r};let o=t.enableTargetEntityMappers??false,i=R3(),a=await I3(e,t,o);i.rules=a.rules;let l=await L3(e,t,o);i.commands=l.commands;let c=await C3(e,t,o);i.agents=c.agents,i.skills=await E3(e,t);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(k3(i))throw await m(),new Error(`No installable resources at ${e}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md). Hint: pass --as commands|agents|rules|skills to force a kind for flat markdown directories.`);return {canonical:i,cleanup:m}}var dI=d(()=>{b();Bg();zg();Ia();Gg();s(R3,"emptyCanonical");s(k3,"isCanonicalSliceEmpty");s(Vg,"normalizeSlicePath");s(uI,"resolveEntityDir");s(I3,"parseRulesAt");s(L3,"parseCommandsAt");s(C3,"parseAgentsAt");s(E3,"loadSkillsForPartialSlice");s(Jg,"loadCanonicalSliceAtPath");});async function Yg(e){let t=await k(e);if(!t)return "";let r=ln(t,e);if(!r.ok)return "";let{frontmatter:n}=r.value;return typeof n.name!="string"?"":n.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function I0(e,t){await cp$1(e,t,{recursive:true,filter:s(r=>{let n=relative(e,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(JE(o)||!n.includes("/")&&(Dd(n)||YE(n)))},"filter")});}var fI=d(()=>{b();B();ts();s(Yg,"readSkillFrontmatterName");s(I0,"cpFilteredSkill");});function gI(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function b3(e){let t={...e},r=e.alwaysApply===true;if(t.root=r,delete t.alwaysApply,!r){let n=gI(e.globs),o=typeof e.description=="string"?e.description.trim():"";n.length>0?t.trigger="glob":o.length>0?t.trigger="model_decision":t.trigger="manual";}return t}function A3(e){let t={...e};return t.trigger==="always"&&(t.trigger="always_on"),typeof t.glob=="string"&&(t.globs=gI(t.globs).length>0?gI(t.globs):[t.glob],delete t.glob),t}function hI(e){let t=ln(e,"<mdc>");if(!t.ok)return t.bodyFallback;let{frontmatter:r,body:n}=t.value;if(Object.keys(r).length===0&&!e.startsWith("---"))return e;let o;return "alwaysApply"in r?o=b3(r):"trigger"in r||"glob"in r?o=A3(r):o=r,T(o,n.trim())}var L0=d(()=>{B();s(gI,"toStrArray");s(b3,"normalizeCursorKeys");s(A3,"normalizeWindsurfKeys");s(hI,"normalizeMdcToCanonical");});function yI(e){return e.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function _I(e){return e.toLowerCase().endsWith(".mdc")?basename(e).replace(/\.mdc$/i,".md"):basename(e)}function E0(e,t,r){let o=relative(e,t).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=yI(o[o.length-1]);return i?`${i}-${r}`:r}var O0=d(()=>{s(yI,"sanitizeNameSegment");s(_I,"computeDestName");s(E0,"namespacedName");});async function N3(){let e=await mkdtemp(join(tmpdir(),"am-install-manual-")),t=join(e,"repo");return await O(join(t,".agentsmesh")),{discoveryRoot:t,cleanup:s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup")}}function x0(e,t){let r=e.toLowerCase();return !!(r.endsWith(".md")||t&&r.endsWith(".mdc"))}async function v3(e,t,r){if(!x0(e,r))throw new Error(`Manual install only supports .md files for this collection: ${e}`);if(await O(t),e.toLowerCase().endsWith(".mdc")){let n=await k(e);if(!n)return;let o=basename(e).replace(/\.mdc$/i,".md");await writeFile(join(t,o),hI(n));}else await cp$1(e,join(t,basename(e)));}async function F3(e,t,r){if((await stat(e)).isFile())return v3(e,t,r);let o=(await U(e)).filter(l=>x0(l,r)&&!Vn(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${e} for manual install. Try a different --path to point at the directory holding *.md (or *.mdc) files, or omit --as so agentsmesh can auto-detect the layout.`);let i=new Map;for(let l of o){let c=_I(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(t);for(let l of o){let c=_I(l),p=(i.get(c)??0)>1?E0(e,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(e,l).replace(/\\/g,"/").split("/").map(yI).filter(Boolean),g=c.includes(".")?"."+c.split(".").pop():"";p=f.join("-").replace(/\.(md|mdc)$/i,"")+g||p;}if(a.has(p))throw new Error(`Manual install could not resolve duplicate name "${p}" under ${e} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await k(l);if(!f)continue;await writeFile(join(t,p),hI(f));}else await cp$1(l,join(t,p));}}async function w0(e,t,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await U(e)){if(!i.endsWith("/SKILL.md")&&!i.endsWith("\\SKILL.md"))continue;let a=dirname(i),l=basename(a);if(!n.has(l))continue;let c=o.get(l);if(c&&c!==a)throw new Error(`Manual skill replay found duplicate skill "${l}" under ${e} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await O(t);for(let i of r)await cp$1(o.get(i),join(t,i),{recursive:true});return true}async function M3(e,t,r={}){if((await stat(e)).isFile()){if(basename(e)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${e}`);let o=basename(dirname(e)),i=join(t,o);await O(i),await cp$1(dirname(e),i,{recursive:true});return}if(await Cl(e)){if((await stat(join(e,"SKILL.md")).catch(()=>null))?.isFile()){if(await w0(e,t,r.preferredSkillNames??[]))return;let l=await Yg(join(e,"SKILL.md"))||basename(e),c=join(t,l);await O(t),await I0(e,c);return}if(await w0(e,t,r.preferredSkillNames??[]))return;await O(t);let o=await U(e),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(e,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp$1(join(e,a),join(t,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${e}.`)}async function Qg(e,t,r={}){let n=await N3();try{let o=join(n.discoveryRoot,".agentsmesh",t);return t==="skills"?await M3(e,o,r):await F3(e,o,t==="rules"),n}catch(o){throw await n.cleanup(),o}}var RI=d(()=>{b();Gg();fI();ts();L0();O0();s(N3,"createStageRoot");s(x0,"isAcceptedFile");s(v3,"stageSingleFile");s(F3,"stageMarkdownCollection");s(w0,"stagePreferredSkills");s(M3,"stageSkills");s(Qg,"stageManualInstallScope");});function G3(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function T0(e){let t=e.resolvedPath;if(e.as!==void 0){let o=e.path?join(t,e.path):t;if(!await j(o))throw new Error(`Extend "${e.name}": path does not exist: ${o}`);let i=await Qg(o,e.as);try{return jt(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!e.path){let o=join(t,".agentsmesh");if(!await j(o)){if(await Cl(t)){let a=await ku(t);return {...G3(),skills:a}}let i=e.target??await Mg(t);if(!i)throw new Error(`Extend "${e.name}": No supported agent configuration found in ${t}.
152
- Expected one of: .agentsmesh/, ${_0.join(", ")}.`);y.info(`[agentsmesh] Extend "${e.name}": ${e.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await Ru(t,i);}return jt(t)}let r=join(t,e.path);if(!await j(r))throw new Error(`Extend "${e.name}": path does not exist: ${r}`);if(e.target){let o=join(t,".agentsmesh");return await j(o)||(y.info(`[agentsmesh] Extend "${e.name}": path "${e.path}" with target "${e.target}" \u2014 importing at extend root, then loading canonical.`),await Ru(t,e.target)),jt(t)}let{sliceRoot:n}=await Vg(r);try{let{canonical:o}=await Jg(n);return o}catch(o){let i=o instanceof Error?o.message:String(o),a=new Error(`Extend "${e.name}": ${i}`);throw o instanceof Error&&(a.cause=o),a}}var P0=d(()=>{rI();b();se();Ia();nI();Gg();dI();RI();s(G3,"emptyCanonical");s(T0,"loadCanonicalForExtend");});function qg(e,t,r,n){if(!r)return e;let o={...e};if(r.skills?.length&&t.includes("skills")){let i=new Set(r.skills),a=o.skills;o={...o,skills:a.filter(l=>i.has(l.name))};for(let l of r.skills)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in skills from extend "${n}".`);}if(r.commands?.length&&t.includes("commands")){let i=new Set(r.commands),a=o.commands;o={...o,commands:a.filter(l=>i.has(l.name))};for(let l of r.commands)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in commands from extend "${n}".`);}if(r.agents?.length&&t.includes("agents")){let i=new Set(r.agents),a=o.agents;o={...o,agents:a.filter(l=>i.has(l.name))};for(let l of r.agents)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in agents from extend "${n}".`);}if(r.rules?.length&&t.includes("rules")){let i=new Set(r.rules),a=o.rules,l=s(c=>basename(c).replace(/\.md$/i,""),"stem");o={...o,rules:a.filter(c=>i.has(l(c.source)))};for(let c of r.rules)a.some(m=>l(m.source)===c)||y.warn(`[agentsmesh] pick name "${c}" not found in rules from extend "${n}".`);}return o}var kI=d(()=>{se();s(qg,"applyExtendPick");});var U3,am,Zg=d(()=>{U3=["rules","commands","agents","skills"],am=z$1.enum(U3);});var B3,D0,N0=d(()=>{qo();Zg();B3=z$1.enum(["github","gitlab","git","local"]),D0=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:B3,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Xl).min(1),pick:Jm.optional(),target:kr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:am.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function v0(e){let t=Ra(e);return t?t.kind==="github"?`github:${t.org}/${t.repo}`:t.kind==="gitlab"?`gitlab:${t.namespace}/${t.project}`:`git+${t.url}`:e.trim()}function W3(e,t){return t?e.length===t.length&&[...e].sort().every((r,n)=>r===[...t].sort()[n]):true}async function ia(e){let t=join(e,"pack.yaml"),r=await k(t);if(r===null)return null;try{let n=parse(r);return D0.parse(n)}catch{return null}}async function M0(e,t,r){if(!await j(e))return null;let n=v0(t),o;try{o=await readdir(e,{withFileTypes:!0});}catch{return null}for(let i of o){if(!i.isDirectory())continue;let a=join(e,i.name),l=await ia(a);if(l&&v0(l.source)===n&&l.target===r.target&&l.as===r.as&&W3(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function eh(e){if(!await j(e))return [];let t;try{t=await readdir(e,{withFileTypes:!0});}catch{return []}let r=[];for(let n of t){if(!n.isDirectory())continue;let o=join(e,n.name),i=await ia(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var lm=d(()=>{b();N0();Qm();s(v0,"sourceIdentity");s(W3,"sameFeatures");s(ia,"readPackMetadata");s(M0,"findExistingPack");s(eh,"listPacks");});function G0(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function H3(e){let[t,r,n,o,i,a,l,c]=await Promise.all([hi(join(e,"rules")),yi(join(e,"commands")),_i(join(e,"agents")),Si(join(e,"skills")),cn(join(e,"mcp.json")),Fd(join(e,"permissions.yaml")),Md(join(e,"hooks.yaml")),Gd(join(e,"ignore"))]);return {...G0(),rules:t,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function $0(e){let t=join(e,"packs"),r=await eh(t),n=G0();for(let{meta:o,packDir:i}of r){let a=await H3(i),l=LI(a,o.features),c=qg(l,o.features,o.pick,o.name);n=nc(n,c);}return n}var j0=d(()=>{ep();tp();rp();rc();np();n_();s_();i_();l_();Ho();kI();lm();s(G0,"emptyCanonical");s(H3,"loadPackCanonical");s($0,"loadPacksCanonical");});function LI(e,t){if(t.length===0)return U0();let r=new Set(t.flatMap(n=>V3[n]??[]));return {rules:r.has("rules")?e.rules:[],commands:r.has("commands")?e.commands:[],agents:r.has("agents")?e.agents:[],skills:r.has("skills")?e.skills:[],mcp:r.has("mcp")?e.mcp:null,permissions:r.has("permissions")?e.permissions:null,hooks:r.has("hooks")?e.hooks:null,ignore:r.has("ignore")?e.ignore:[]}}function U0(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Mt(e,t,r={},n=join(t,".agentsmesh")){let o=await ec(e,t,{refreshCache:r.refreshRemoteCache===true}),i=U0();for(let c of o){let m=await T0(c),p=LI(m,c.features),u=qg(p,c.features,c.pick,c.name);i=nc(i,u);}let a=await $0(n);i=nc(i,a);let l=await jt(n);return i=nc(i,l),{canonical:i,resolvedExtends:o}}var V3,Ho=d(()=>{bd();Ia();l_();P0();kI();j0();V3={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(LI,"filterCanonicalByFeatures");s(U0,"emptyCanonical");s(Mt,"loadCanonicalWithExtends");});function W4(e,t){let r=join(t,"node_modules",e),n=join(r,"package.json");if(!existsSync(n))throw new Error(`Cannot find package '${e}' in ${join(t,"node_modules")}`);let o=JSON.parse(readFileSync(n,"utf-8")),i=(typeof o.exports=="string"?o.exports:null)??(typeof o.main=="string"?o.main:null)??"index.js",a=resolve(r,i);if(!existsSync(a))throw new Error(`Package '${e}' entry '${i}' does not exist at ${a}`);return a}function H4(e){return e.startsWith("file:")||e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^[A-Za-z]:[/\\]/.test(e)}function RU(e){try{return realpathSync(e)}catch{return e}}function kU(e,t){let r=RU(resolve(t)),n=RU(e);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function z4(e,t){let{source:r}=e,n;if(H4(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(t,i);kU(a,t),n=pathToFileURL(a).href;}else {let i=W4(r,t);kU(i,t),n=pathToFileURL(i).href;}return await import(n)}function V4(e){return "descriptor"in e?[e.descriptor]:"descriptors"in e&&Array.isArray(e.descriptors)?e.descriptors:"default"in e?[e.default]:[]}async function dh(e,t){let r;try{r=await z4(e,t);}catch(i){throw new Error(`Plugin '${e.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=V4(r),o=[];for(let i of n)try{let a=$d(i);Ud(a),o.push(a);}catch(a){throw new Error(`Plugin '${e.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:e,descriptors:o}}async function IU(e,t){let r=[],n=process.env.AGENTSMESH_STRICT_PLUGINS==="1"||process.env.AGENTSMESH_STRICT_PLUGINS==="true",i=(await Promise.all(e.map(async a=>{try{let l=await dh(a,t);return r.push(l),null}catch(l){let c=`Plugin '${a.source}' failed to load: ${l instanceof Error?l.message:String(l)}`;return a.strict===true||n?new Error(c):(y.warn(c),null)}}))).filter(a=>a!==null);if(i.length>0){let a=i.map(l=>` - ${l.message}`).join(`
145
+ ${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let _=await ve(m,h,g),S=r(_,n,m);await L(m,S),t.push({feature:"agents",fromTool:Dt,fromPath:n,toPath:`${tl}/${c}.md`});}}async function PM(e,t={}){let r=t.scope??"project",n=[],o=await H(Dt,e,r);return n.push(...await Q(Ig,e,r,{normalize:o})),await ne(e,Kr,Dt,n,o),r==="project"&&(await y8(e,n,o),await _8(e,n,o),await S8(e,n,o),await ne(e,Za,Dt,n,o)),n}var kk,Ik,DM=d(()=>{ge();oe();Zt();Ae();b();de();B();Rk();Ts();Lk();kk=`${$i}/_root.md`,Ik="00-root.md";s(TM,"pathExists");s(y8,"importLegacyRules");s(_8,"importLegacyWorkflows");s(S8,"importLegacyModes");s(PM,"importFromKiloCode");});function NM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Dt}))}var vM=d(()=>{Ee();Ts();s(NM,"lintRules");});function FM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}var MM=d(()=>{Re();s(FM,"lintHooks");});var GM,$M=d(()=>{Ts();GM=s((e,t,r,n)=>{if(n!==Xa&&n!==Bp)return null;let o=t?.content??e;if(o===null)return r;let i;try{let c=JSON.parse(o);i=c!==null&&typeof c=="object"&&!Array.isArray(c)?c:{};}catch{i={};}let a=JSON.parse(r);if(a===null||typeof a!="object"||Array.isArray(a))return o;let l=a;return l.permission!==void 0&&(i.permission=l.permission),JSON.stringify(i,null,2)},"mergeKiloConfig");});var jM,UM,BM,KM,WM=d(()=>{Ts();dt();jM={rootInstructionPath:Cn,skillDir:Kr,managedOutputs:{dirs:[Ro,ko,Io,Kr],files:[Cn,bs,Qa,Xa]},paths:{rulePath(e,t){return `${Ro}/${e}.md`},commandPath(e,t){return `${ko}/${e}.md`},agentPath(e,t){return `${Io}/${e}.md`}}},UM={rootInstructionPath:As,skillDir:xs,managedOutputs:{dirs:[Fi,Mi,Gi,xs,Lb],files:[As,el,Hp,Bp]},rewriteGeneratedPath(e){return e===Cn?As:e===Xa?Bp:e},mirrorGlobalPath(e,t){return fe(e,xs,t)},paths:{rulePath(e,t){return `${Fi}/${e}.md`},commandPath(e,t){return `${Mi}/${e}.md`},agentPath(e,t){return `${Gi}/${e}.md`}}},BM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"native"},KM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"native"};});var R8,Ig,Lk=d(()=>{AM();Ts();DM();Rk();vM();MM();Oe();$M();WM();R8={name:Dt,primaryRootInstructionPath:Cn,generateRules:IM,generateCommands:LM,generateAgents:CM,generateSkills:bM,generateMcp:EM,generateIgnore:OM,generatePermissions:wM,importFrom:PM},Ig={id:Dt,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:R8,capabilities:BM,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:NM,lint:{hooks:FM},mergeGeneratedOutputContent:GM,project:jM,globalSupport:{capabilities:KM,detectionPaths:[As,Fi,Mi,Gi,xs,el,Hp],layout:UM},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Cn],global:[As]},canonicalDir:$i,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Ro],global:[Fi]},canonicalDir:$i,extensions:[".md"],map:Rg}],commands:{feature:"commands",mode:"directory",source:{project:[ko],global:[Mi]},canonicalDir:Tc,extensions:[".md"],map:kg},agents:{feature:"agents",mode:"directory",source:{project:[Io],global:[Gi]},canonicalDir:tl,extensions:[".md"],map:xM},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[bs,Wp],global:[el]},canonicalDir:".agentsmesh",canonicalFilename:Cb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Qa],global:[Hp]},canonicalDir:".agentsmesh",canonicalFilename:Eb}},buildImportPaths:CS,detectionPaths:[Ro,ko,Io,Kr,bs,qa,Ac,Za,Wp,Of,Qa,"kilo.jsonc","kilo.json"]};});function HM(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function L8(e){return e.type==="prompt"?e.prompt:e.command}function C8(e,t){let r=zM[e];return e==="PreToolUse"||e==="PostToolUse"?{type:r,tools:[t||"*"]}:{type:r}}function VM(e){let t=[];for(let[r,n]of Object.entries(e)){let o=r;if(!(o in zM)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=L8(a);if(!l)continue;let c={name:`${HM(r)} ${i}`,version:"1",when:C8(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};t.push({name:`${HM(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return t}function E8(e){let t=I8.get(e.when.type);if(!t)return null;let r=e.when.tools?.[0]??e.when.patterns?.[0]??"*";return e.then.type==="askAgent"&&typeof e.then.prompt=="string"?{event:t,entry:{matcher:r,command:e.then.prompt,prompt:e.then.prompt,type:"prompt"}}:e.then.type==="shellCommand"&&typeof e.then.command=="string"?{event:t,entry:{matcher:r,command:e.then.command,type:"command"}}:null}function JM(e){let t;try{t=JSON.parse(e);}catch{return null}if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return !r.when||!r.then||typeof r.when.type!="string"?null:E8(r)}function YM(e){return stringify(e).trimEnd()}var zM,I8,Ck=d(()=>{zM={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},I8=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(HM,"toKebab");s(L8,"hookText");s(C8,"toWhen");s(VM,"generateKiroHooks");s(E8,"toCanonicalEntry");s(JM,"parseKiroHookFile");s(YM,"serializeCanonicalHooks");});function w8(e){let t={};return e.globs.length>0?(t.inclusion="fileMatch",t.fileMatchPattern=e.globs.length===1?e.globs[0]:e.globs):e.trigger==="manual"?t.inclusion="manual":e.trigger==="model_decision"?t.inclusion="auto":t.inclusion="always",e.description&&(t.description=e.description),t}function XM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:En,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(cr))continue;let o=basename(n.source,".md");t.push({path:`${On}/${o}.md`,content:T(w8(n),n.body.trim()||"")});}return t}function QM(e){return e.commands.map(t=>({path:`${Nt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function qM(e){return ie(e,Nt)}function ZM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Pc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function eG(e){return !e.hooks||Object.keys(e.hooks).length===0?[]:VM(e.hooks).map(t=>({path:`${ji}/${t.name}`,content:t.content}))}function tG(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${wn}/${t.name}.md`,content:n}})}function rG(e){return e.ignore.length===0?[]:[{path:Dc,content:e.ignore.join(`
146
+ `)}]}var nG=d(()=>{oe();be();B();Ck();Nc();s(w8,"steeringFrontmatter");s(XM,"generateRules");s(QM,"generateCommands");s(qM,"generateSkills");s(ZM,"generateMcp");s(eG,"generateHooks");s(tG,"generateAgents");s(rG,"generateIgnore");});function A8(e){let t=typeof e.inclusion=="string"?e.inclusion:"",r={root:false,description:typeof e.description=="string"?e.description:void 0,globs:as(e.fileMatchPattern)};return t==="manual"&&(r.trigger="manual"),t==="auto"&&(r.trigger="model_decision"),t==="fileMatch"&&(r.trigger="glob"),r}async function x8(e,t,r,n){let o=n==="global"?[bn,En]:[En,bn];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,ES),{frontmatter:m,body:p}=x(r(l,a,c));await L(c,await z(c,{...m,root:true},p)),t.push({fromTool:cr,fromPath:a,toPath:ES,feature:"rules"});return}}async function T8(e,t,r){let n=join(e,OS);t.push(...await Se({srcDir:join(e,On),destDir:n,extensions:[".md"],fromTool:cr,normalize:r,mapEntry:s(async({relativePath:o,normalizeTo:i})=>{if(basename(o)==="AGENTS.md")return null;let a=join(n,o),{frontmatter:l,body:c}=x(i(a));return {destPath:a,toPath:`${OS}/${o}`,feature:"rules",content:await z(a,A8(l),c)}},"mapEntry")}));}async function P8(e,t){let r={};for(let o of await U(join(e,ji))){if(!o.endsWith(".kiro.hook"))continue;let i=JM(await k(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(e,wS);await O(join(e,".agentsmesh")),await L(n,YM(r)),t.push({fromTool:cr,fromPath:join(e,ji),toPath:wS,feature:"hooks"});}async function oG(e,t={}){let r=t.scope??"project",n=[],o=await H(cr,e,r);return await x8(e,n,o,r),await T8(e,n,o),n.push(...await Q(Lg,e,r,{normalize:o})),await ne(e,Nt,cr,n,o),r==="project"&&await P8(e,n),n}var sG=d(()=>{ge();oe();Zt();Ae();de();qt();b();B();Ck();Nc();Ek();s(A8,"canonicalRuleMeta");s(x8,"importRoot");s(T8,"importNonRootRules");s(P8,"importHooks");s(oG,"importFromKiro");});function iG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:cr}))}var aG=d(()=>{Ee();Nc();s(iG,"lintRules");});function lG(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Ci(n,"kiro",t,{unsupportedBy:"Kiro hooks"}))}var cG=d(()=>{Re();s(lG,"lintHooks");});var D8,N8,v8,F8,Lg,Ek=d(()=>{be();nG();dt();sG();aG();cG();Oe();Nc();D8={name:cr,primaryRootInstructionPath:En,generateRules:XM,generateCommands:QM,generateAgents:tG,generateSkills:qM,generateMcp:ZM,generateHooks:eG,generateIgnore:rG,importFrom:oG},N8={rootInstructionPath:En,skillDir:Nt,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(e,t){return `${On}/${e}.md`},commandPath(e){return `${Nt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${wn}/${e}.md`}}},v8={rootInstructionPath:bn,skillDir:Ui,managedOutputs:{dirs:[rl,Ui,nl,wb],files:[bn,Vp,Jp]},rewriteGeneratedPath(e){return e===En?bn:e.startsWith(`${On}/`)?e.replace(`${On}/`,`${rl}/`):e.startsWith(`${Nt}/`)?e.replace(`${Nt}/`,`${Ui}/`):e.startsWith(`${wn}/`)?e.replace(`${wn}/`,`${nl}/`):e===Pc?Vp:e===Dc?Jp:e.startsWith(`${ji}/`)?null:e},mirrorGlobalPath(e,t){return fe(e,".kiro/skills",t)},paths:{rulePath(e,t){return `${rl}/${e}.md`},commandPath(e){return `${Nt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${nl}/${e}.md`}}},F8={rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Lg={id:cr,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:D8,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Kiro config found (AGENTS.md, .kiro/steering, .kiro/skills, .kiro/agents, .kiro/hooks, .kiro/settings/mcp.json, or .kiroignore).",supportsConversion:{commands:true},lintRules:iG,lint:{hooks:lG},project:N8,globalSupport:{capabilities:F8,detectionPaths:[rl,bn,Ui,nl,Vp,Jp],layout:v8},importer:{agents:{feature:"agents",mode:"directory",source:{project:[wn],global:[wn]},canonicalDir:bb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Pc],global:[Vp]},canonicalDir:".agentsmesh",canonicalFilename:Ab},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Dc],global:[Jp]},canonicalDir:".agentsmesh",canonicalFilename:xb}},buildImportPaths:bS,detectionPaths:[On,Nt,wn,ji,Pc,Dc],conversionDefaults:{commandsToSkills:true}};});function pG(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:An,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Wr))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${Lo}/${o}.md`,content:a});}return t}function uG(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Co}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function dG(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${Eo}/${r}.md`,content:T(n,t.body.trim()||"")}})}function M8(e){if("url"in e){let r={type:"remote",url:e.url};return Object.keys(e.headers).length>0&&(r.headers=e.headers),e.description&&(r.description=e.description),r}let t={type:"local",command:[e.command,...e.args]};return Object.keys(e.env).length>0&&(t.environment=e.env),e.description&&(t.description=e.description),t}function fG(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t={};for(let[r,n]of Object.entries(e.mcp.mcpServers))t[r]=M8(n);return [{path:Ct,content:JSON.stringify({mcp:t},null,2)}]}function gG(e){if(!e.permissions)return [];let t={};for(let r of e.permissions.allow)t[r]="allow";for(let r of e.permissions.ask??[])t[r]="ask";for(let r of e.permissions.deny)t[r]="deny";return Object.keys(t).length===0?[]:[{path:Ct,content:JSON.stringify({permission:t},null,2)}]}function hG(e){return ie(e,Hr)}var Ok=d(()=>{oe();B();Ns();s(pG,"generateRules");s(uG,"generateCommands");s(dG,"generateAgents");s(M8,"toOpenCodeMcpServer");s(fG,"generateMcp");s(gG,"generatePermissions");s(hG,"generateSkills");});function wk(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))typeof n=="string"&&(t[r]=n);return t}function $8(e){let t;try{t=JSON.parse(e);}catch{return {}}if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t.mcp;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(typeof a.url=="string"){n[o]={type:"url",url:a.url,headers:wk(a.headers),env:wk(a.environment),...typeof a.description=="string"?{description:a.description}:{}};continue}if(Array.isArray(a.command)&&a.command.length>0){let l=a.command,c=l[0];if(c===void 0)continue;let m=l.slice(1);n[o]={type:"stdio",command:c,args:m,env:wk(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function j8(e,t,r){let o=join(e,t==="global"?zr:Ct),i=await k(o);if(i===null)return;let a=$8(i);Object.keys(a).length!==0&&(await Xe(e,AS,a),r.push({feature:"mcp",fromTool:Wr,fromPath:o,toPath:AS}));}async function U8(e,t,r){let o=join(e,t==="global"?zr:Ct),i=await k(o);if(i===null)return;let a;try{a=JSON.parse(i);}catch{return}if(!a||typeof a!="object")return;let l=a.permission;if(!l||typeof l!="object"||Array.isArray(l))return;let c={allow:[],ask:[],deny:[]};for(let[p,u]of Object.entries(l))u==="allow"&&c.allow.push(p),u==="ask"&&c.ask.push(p),u==="deny"&&c.deny.push(p);if(c.allow.length+c.ask.length+c.deny.length===0)return;let m=join(e,xS);await O(join(e,".agentsmesh")),await L(m,stringify(c)),r.push({feature:"permissions",fromTool:Wr,fromPath:o,toPath:xS});}async function yG(e,t={}){let r=t.scope??"project",n=[],o=await H(Wr,e,r);return n.push(...await Q(Eg,e,r,{normalize:o})),await ne(e,Hr,Wr,n,o),await j8(e,r,n),await U8(e,r,n),n}var _G=d(()=>{ge();oe();Ae();hn();b();b();Ns();bk();s(wk,"toStringRecord");s($8,"parseOpenCodeMcp");s(j8,"importMcp");s(U8,"importPermissions");s(yG,"importFromOpenCode");});var SG,RG,kG,IG=d(()=>{B();de();Ns();SG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Yp}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),RG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${bf}/${e}`,content:await Ce(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),kG=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Af}/${e}`,content:await ve(n,o,i)}},"opencodeAgentMapper");});function LG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Wr}))}var CG=d(()=>{Ee();Ns();s(LG,"lintRules");});function EG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function OG(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var wG=d(()=>{Re();s(EG,"lintHooks");s(OG,"lintIgnore");});function AG(e,t,r){let n={};if(r.has("mcp")&&e.mcp){let o=fG(e)[0];o&&Object.assign(n,JSON.parse(o.content));}if(r.has("permissions")&&e.permissions){let o=gG(e)[0];o&&Object.assign(n,JSON.parse(o.content));}return Object.keys(n).length===0?[]:[{path:Ct,content:JSON.stringify(n,null,2)}]}var bG,xG=d(()=>{fu();Ns();Ok();bG=s((e,t,r,n)=>{if(n!==Ct&&n!==zr)return null;let o=t?.content??e;return o===null?r:qf(o,r)},"mergeOpenCodeSettings");s(AG,"emitOpenCodeScopedSettings");});var TG,PG,xk,DG=d(()=>{dt();Ns();TG={rootInstructionPath:An,skillDir:Hr,managedOutputs:{dirs:[Lo,Co,Eo,Hr],files:[An,Ct]},paths:{rulePath:s(e=>`${Lo}/${e}.md`,"rulePath"),commandPath:s(e=>`${Co}/${e}.md`,"commandPath"),agentPath:s(e=>`${Eo}/${e}.md`,"agentPath")}},PG={rootInstructionPath:Ps,skillDir:Ds,managedOutputs:{dirs:[Bi,Ki,Wi,Ds,Pb],files:[Ps,zr]},rewriteGeneratedPath(e){return e===An?Ps:e===Ct?zr:e},mirrorGlobalPath(e,t){return fe(e,Ds,t)},paths:{rulePath:s(e=>`${Bi}/${e}.md`,"rulePath"),commandPath:s(e=>`${Ki}/${e}.md`,"commandPath"),agentPath:s(e=>`${Wi}/${e}.md`,"agentPath")}},xk={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"native"};});var B8,Eg,bk=d(()=>{Ok();Ns();_G();IG();CG();wG();Oe();xG();DG();B8={name:Wr,primaryRootInstructionPath:An,generateRules:pG,generateCommands:uG,generateAgents:dG,generateSkills:hG,importFrom:yG},Eg={id:Wr,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:B8,capabilities:xk,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:LG,lint:{hooks:EG,ignore:OG},project:TG,globalSupport:{capabilities:xk,detectionPaths:[Ps,Bi,Ki,Wi,Ds,zr],layout:PG},mergeGeneratedOutputContent:bG,emitScopedSettings:AG,importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[An],global:[Ps]},canonicalDir:Yp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Lo],global:[Bi]},canonicalDir:Yp,extensions:[".md"],map:SG}],commands:{feature:"commands",mode:"directory",source:{project:[Co],global:[Ki]},canonicalDir:bf,extensions:[".md"],map:RG},agents:{feature:"agents",mode:"directory",source:{project:[Eo],global:[Wi]},canonicalDir:Af,extensions:[".md"],map:kG}},buildImportPaths:TS,detectionPaths:[Lo,Co,Eo,Hr,Ct,"opencode.jsonc"]};});function NG(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Oo)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Vr,content:o}]:[]}function vG(e){return ie(e,pt)}function FG(e){return e.commands.map(t=>({path:`${pt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function MG(e){return e.agents.map(t=>({path:`${pt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var GG=d(()=>{oe();Be();_e();be();Fc();s(NG,"generateRules");s(vG,"generateSkills");s(FG,"generateCommands");s(MG,"generateAgents");});async function $G(e,t={}){let r=t.scope??"project",n=[],o=await H(Oo,e,r);return n.push(...await Q(Og,e,r,{normalize:o})),await ne(e,r==="global"?Jr:pt,Oo,n,o),n}var jG=d(()=>{ge();oe();Ae();Fc();Tk();s($G,"importFromPiAgent");});function UG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Oo}))}var BG=d(()=>{Ee();Fc();s(UG,"lintRules");});function KG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function WG(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function HG(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function zG(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","pi-agent","Pi Coding Agent manages MCP servers via extensions, not a dedicated config file; canonical MCP servers are not projected.")]}var VG=d(()=>{Re();s(KG,"lintHooks");s(WG,"lintPermissions");s(HG,"lintIgnore");s(zG,"lintMcp");});var K8,W8,H8,JG,Og,Tk=d(()=>{be();_e();GG();dt();jG();BG();VG();DS();Fc();K8={name:Oo,primaryRootInstructionPath:Vr,generateRules:NG,generateCommands:FG,generateAgents:MG,generateSkills:vG,importFrom:$G},W8={rootInstructionPath:Vr,skillDir:pt,managedOutputs:{dirs:[pt],files:[Vr]},paths:{rulePath(e){return Vr},commandPath(e){return `${pt}/${J(e)}/SKILL.md`},agentPath(e){return `${pt}/${V(e)}/SKILL.md`}}},H8={rootInstructionPath:vs,skillDir:Jr,managedOutputs:{dirs:[Jr],files:[vs]},rewriteGeneratedPath(e){return e===Vr?vs:e.startsWith(`${pt}/`)?e.replace(`${pt}/`,`${Jr}/`):e},mirrorGlobalPath(e,t){return fe(e,Jr,t)},paths:{rulePath(e){return vs},commandPath(e){return `${Jr}/${J(e)}/SKILL.md`},agentPath(e){return `${Jr}/${V(e)}/SKILL.md`}}},JG={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Og={id:Oo,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:K8,capabilities:JG,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:UG,lint:{hooks:KG,permissions:WG,ignore:HG,mcp:zG},supportsConversion:{commands:true,agents:true},project:W8,globalSupport:{capabilities:JG,detectionPaths:[vs],layout:H8},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Vr],global:[vs]},canonicalDir:vb,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:PS,detectionPaths:[Vr,pt]};});function YG(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:mr,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(xn)));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=T(a,o.body.trim()||"");t.push({path:`${wo}/${i}.md`,content:l});}return t}function XG(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,t.body.trim()||"");return {path:`${Tn}/${t.name}.md`,content:n}})}function QG(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,t.body.trim()||"");return {path:`${Pn}/${t.name}.md`,content:n}})}function qG(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");t.push({path:`${pr}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${pr}/${r.name}/${a}`,content:i.content});}}return t}function ZG(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Yr,content:t}]}function e$(e){return !e.ignore||e.ignore.length===0?[]:[{path:Fs,content:e.ignore.join(`
147
+ `)}]}function t$(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=en(e);return Object.keys(t).length===0?[]:[{path:Yr,content:JSON.stringify({hooks:t},null,2)}]}function r$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};return t.length>0&&(o.allow=t),r.length>0&&(o.deny=r),n.length>0&&(o.ask=n),[{path:Yr,content:JSON.stringify({permissions:o},null,2)}]}function n$(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes(xn));return le(t?.body.trim()??"",r)}var o$=d(()=>{B();Be();ul();ol();s(YG,"generateRules");s(XG,"generateCommands");s(QG,"generateAgents");s(qG,"generateSkills");s(ZG,"generateMcp");s(e$,"generateIgnore");s(t$,"generateHooks");s(r$,"generatePermissions");s(n$,"renderQwenGlobalInstructions");});async function s$(e,t={}){let r=t.scope??"project",n=[],o=await H(xn,e,r);return n.push(...await Q(wg,e,r,{normalize:o})),await ne(e,r==="global"?Ao:pr,xn,n,o),n}var i$=d(()=>{ge();Ae();oe();ol();Pk();s(s$,"importFromQwenCode");});function a$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:xn}))}var l$=d(()=>{Ee();ol();s(a$,"lintRules");});var c$,m$=d(()=>{ol();c$={rules:[{feature:"rules",mode:"singleFile",source:{project:[mr],global:[bo]},canonicalDir:NS,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[wo],global:[]},canonicalDir:NS,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[Tn],global:[Gs]},canonicalDir:Fb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[Pn],global:[$s]},canonicalDir:Mb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Yr],global:[Ms]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Fs],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}};});function q8(e){if(!e)return {};try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}var V8,J8,Y8,X8,Q8,Z8,wg,Pk=d(()=>{o$();i$();l$();Oe();m$();ol();V8={name:xn,primaryRootInstructionPath:mr,generateRules:YG,generateCommands:XG,generateAgents:QG,generateSkills:qG,generateMcp:ZG,generateIgnore:e$,generateHooks:t$,generatePermissions:r$,importFrom:s$},J8={rootInstructionPath:mr,skillDir:pr,managedOutputs:{dirs:[wo,Tn,Pn,pr],files:[mr,Yr,Fs]},paths:{rulePath(e,t){return t.root?mr:`${wo}/${e}.md`},commandPath(e){return `${Tn}/${e}.md`},agentPath(e){return `${Pn}/${e}.md`}}},Y8={rootInstructionPath:bo,renderPrimaryRootInstruction:n$,skillDir:Ao,managedOutputs:{dirs:[Gs,$s,Ao],files:[bo,Ms]},rewriteGeneratedPath(e){return e===mr?bo:e===Yr?Ms:e===Fs?null:e.startsWith(`${Tn}/`)?e.replace(`${Tn}/`,`${Gs}/`):e.startsWith(`${Pn}/`)?e.replace(`${Pn}/`,`${$s}/`):e.startsWith(`${pr}/`)?e.replace(`${pr}/`,`${Ao}/`):e.startsWith(`${wo}/`)?null:e},paths:{rulePath(e,t){return bo},commandPath(e){return `${Gs}/${e}.md`},agentPath(e){return `${$s}/${e}.md`}}},X8={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},Q8={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"};s(q8,"parseJsonObject");Z8=s((e,t,r,n)=>{if(n!==Yr&&n!==Ms)return null;let o=q8(t?.content??e);try{let i=JSON.parse(r);i.mcpServers!==void 0&&(o.mcpServers=i.mcpServers),i.hooks!==void 0&&(o.hooks=i.hooks),i.permissions!==void 0&&(o.permissions=i.permissions);}catch{return t?.content??e??r}return JSON.stringify(o,null,2)},"mergeQwenSettings"),wg={id:xn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:V8,capabilities:X8,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:a$,project:J8,globalSupport:{capabilities:Q8,detectionPaths:[bo,Ms,Gs,$s,Ao],layout:Y8},mergeGeneratedOutputContent:Z8,importer:c$,buildImportPaths:vS,detectionPaths:[mr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function p$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(xo)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Dn,content:o}]:[]}function u$(e){return ie(e,Wt)}function d$(e){return e.commands.map(t=>({path:`${Wt}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function f$(e){return e.agents.map(t=>({path:`${Wt}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var g$=d(()=>{oe();Be();_e();be();Mc();s(p$,"generateRules");s(u$,"generateSkills");s(d$,"generateCommands");s(f$,"generateAgents");});async function h$(e,t={}){let r=t.scope??"project",n=[],o=await H(xo,e,r);return n.push(...await Q(bg,e,r,{normalize:o})),await ne(e,Wt,xo,n,o),n}var y$=d(()=>{ge();oe();Ae();Mc();Dk();s(h$,"importFromReplitAgent");});function _$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:xo}))}var S$=d(()=>{Ee();Mc();s(_$,"lintRules");});function R$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function k$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function I$(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function L$(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","replit-agent","Replit Agent MCP servers are configured via the Integrations UI, not file-based; canonical MCP config is not projected.")]}var C$=d(()=>{Re();s(R$,"lintHooks");s(k$,"lintPermissions");s(I$,"lintIgnore");s(L$,"lintMcp");});var e3,t3,r3,bg,Dk=d(()=>{be();_e();g$();y$();S$();C$();MS();Mc();e3={name:xo,primaryRootInstructionPath:Dn,generateRules:p$,generateCommands:d$,generateAgents:f$,generateSkills:u$,importFrom:h$},t3={rootInstructionPath:Dn,skillDir:Wt,managedOutputs:{dirs:[Wt],files:[Dn]},paths:{rulePath(e){return Dn},commandPath(e){return `${Wt}/${J(e)}/SKILL.md`},agentPath(e){return `${Wt}/${V(e)}/SKILL.md`}}},r3={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},bg={id:xo,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:e3,capabilities:r3,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:_$,lint:{hooks:R$,permissions:k$,ignore:I$,mcp:L$},supportsConversion:{commands:true,agents:true},project:t3,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Dn]},canonicalDir:$b,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:FS,detectionPaths:[Dn]};});function O$(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Nn,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Hi))continue;let o=basename(n.source,".md");t.push({path:`${js}/${o}.md`,content:n.body.trim()||""});}return t}function w$(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Us}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function b$(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Qp,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function A$(e){return e.ignore.length===0?[]:[{path:qp,content:e.ignore.join(`
148
+ `)}]}function x$(e){return ie(e,To)}function T$(e){if(e.agents.length===0)return [];let t=e.agents.map(r=>{let o={slug:basename(r.source,".md"),name:r.name};return r.description&&(o.description=r.description),r.body.trim()&&(o.roleDefinition=r.body.trim()),o});return [{path:Gc,content:stringify({customModes:t})}]}function P$(e){return []}var D$=d(()=>{oe();B();ll();s(O$,"generateRules");s(w$,"generateCommands");s(b$,"generateMcp");s(A$,"generateIgnore");s(x$,"generateSkills");s(T$,"generateAgents");s(P$,"generatePermissions");});var Ag,v$,Nk=d(()=>{B();de();ll();Ag=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(e==="00-root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${al}/${e}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"rooNonRootRuleMapper"),v$=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Tf}/${e}`,content:await Ce(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function s3(e,t,r){let n=join(e,sl),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let i=o.filter(l=>l.isDirectory()&&l.name.startsWith("rules-")).map(l=>l.name),a=join(e,al);for(let l of i)t.push(...await Se({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:Hi,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Ag({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function F$(e,t={}){let r=t.scope??"project",n=[],o=await H(Hi,e,r);return n.push(...await Q(xg,e,r,{normalize:o})),await s3(e,n,o),await ne(e,To,Hi,n,o),n}var M$=d(()=>{ge();oe();Zt();Ae();Nk();ll();Fk();s(s3,"importPerModeRules");s(F$,"importFromRooCode");});function G$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Hi}))}var $$=d(()=>{Ee();ll();s(G$,"lintRules");});function j$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","roo-code","Roo Code permissions (roo-cline.allowedCommands) live in VS Code settings.json; configure them via VS Code Settings UI.")]}var U$=d(()=>{Re();s(j$,"lintPermissions");});function p3(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var c3,m3,u3,d3,f3,xg,Fk=d(()=>{b();D$();ll();dt();M$();Nk();$$();U$();Oe();c3={name:"roo-code",primaryRootInstructionPath:Nn,generateRules:O$,generateCommands:w$,generateSkills:x$,generateMcp:b$,generateIgnore:A$,generateAgents:T$,generatePermissions:P$,importFrom:F$},m3={rootInstructionPath:Nn,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Gc]},paths:{rulePath(e,t){return `${js}/${e}.md`},commandPath(e,t){return `${Us}/${e}.md`},agentPath(e,t){return null}}};s(p3,"computeStatus");u3=s(async(e,t,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||e.agents.length===0)return [];let o=e.agents.map(l=>{let m={slug:basename(l.source,".md"),name:l.name};return l.description&&(m.description=l.description),l.body.trim()&&(m.roleDefinition=l.body.trim()),m}),i=stringify({customModes:o}),a=await k(join(t,Zp));return [{target:"roo-code",path:Zp,content:i,currentContent:a??void 0,status:p3(a,i)}]},"generateRooGlobalExtras"),d3={rootInstructionPath:Ji,skillDir:Bs,managedOutputs:{dirs:[zi,Vi,Bs,jb],files:[Ji,il,eu,Zp]},rewriteGeneratedPath(e){return e===Nn?Ji:e===Gc?null:e.startsWith(`${js}/`)?e.replace(`${js}/`,`${zi}/`):e.startsWith(`${Us}/`)?e.replace(`${Us}/`,`${Vi}/`):e.startsWith(`${To}/`)?e.replace(`${To}/`,`${Bs}/`):e===Qp?il:e===qp?eu:e},mirrorGlobalPath(e,t){return fe(e,Bs,t)},paths:{rulePath(e,t){return `${zi}/${e}.md`},commandPath(e,t){return `${Vi}/${e}.md`},agentPath(e,t){return null}}},f3={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"partial"},xg={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:c3,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"partial"},emptyImportMessage:"No Roo Code config found (.roo/rules, .roo/commands, .roo/skills, .roo/mcp.json, .rooignore, or .roorules).",lintRules:G$,lint:{permissions:j$},project:m3,globalSupport:{capabilities:f3,detectionPaths:[zi,Vi,Bs,il,eu,Ji,Zp],layout:d3,scopeExtras:u3},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Nn,Xp],global:[Ji,Nn,Xp]},canonicalDir:al,canonicalRootFilename:"_root.md",markAsRoot:true,frontmatterRemap:s(({description:e,globs:t})=>({description:typeof e=="string"?e:void 0,globs:Array.isArray(t)?t:void 0}),"frontmatterRemap")},{feature:"rules",mode:"directory",source:{project:[js],global:[zi]},canonicalDir:al,extensions:[".md"],map:Ag}],commands:{feature:"commands",mode:"directory",source:{project:[Us],global:[Vi]},canonicalDir:Tf,extensions:[".md"],map:v$},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Qp],global:[il]},canonicalDir:".agentsmesh",canonicalFilename:Ub},ignore:{feature:"ignore",mode:"flatFile",source:{project:[qp],global:[eu]},canonicalDir:".agentsmesh",canonicalFilename:Bb}},buildImportPaths:GS,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Gc]};});function B$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Po)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Xr,content:o}]:[]}function K$(e){return ie(e,ut)}function W$(e){return e.commands.map(t=>({path:`${ut}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function H$(e){return e.agents.map(t=>({path:`${ut}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function z$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ks,content:t}]}var V$=d(()=>{oe();Be();_e();be();cl();s(B$,"generateRules");s(K$,"generateSkills");s(W$,"generateCommands");s(H$,"generateAgents");s(z$,"generateMcp");});async function J$(e,t={}){let r=t.scope??"project",n=[],o=await H(Po,e,r);return n.push(...await Q(Tg,e,r,{normalize:o})),await ne(e,r==="global"?ur:ut,Po,n,o),n}var Y$=d(()=>{ge();oe();Ae();cl();Mk();s(J$,"importFromRovodev");});function X$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Po}))}var Q$=d(()=>{Ee();cl();s(X$,"lintRules");});function q$(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var Z$=d(()=>{Re();s(q$,"lintIgnore");});function rj(e,t){let r={};if(t.has("hooks")&&e.hooks&&Object.values(e.hooks).some(o=>Array.isArray(o)&&o.length>0)&&(r.eventHooks=e.hooks),t.has("permissions")&&e.permissions){let{allow:n,deny:o}=e.permissions,i=e.permissions.ask??[];(n.length>0||o.length>0||i.length>0)&&(r.toolPermissions={allow:n.length>0?n:void 0,deny:o.length>0?o:void 0,ask:i.length>0?i:void 0});}return Object.keys(r).length===0?[]:[{path:tu,content:stringify(r)}]}function nj(e,t){if(e===null)return t;let r;try{let i=parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.eventHooks!==void 0&&(r.eventHooks=o.eventHooks),o.toolPermissions!==void 0&&(r.toolPermissions=o.toolPermissions),stringify(r)}var oj=d(()=>{cl();s(rj,"buildRovodevConfig");s(nj,"mergeRovodevConfig");});var g3,h3,y3,_3,S3,Tg,Mk=d(()=>{be();_e();V$();dt();Y$();Q$();Z$();oj();Oe();cl();g3={name:Po,primaryRootInstructionPath:Xr,generateRules:B$,generateCommands:W$,generateAgents:H$,generateSkills:K$,generateMcp:z$,importFrom:J$},h3={rootInstructionPath:Xr,skillDir:ut,managedOutputs:{dirs:[ut],files:[Xr,Ks]},paths:{rulePath(e){return Xr},commandPath(e){return `${ut}/${J(e)}/SKILL.md`},agentPath(e){return `${ut}/${V(e)}/SKILL.md`}}},y3={rootInstructionPath:Ws,skillDir:ur,managedOutputs:{dirs:[ur],files:[Ws,$c,tu]},rewriteGeneratedPath(e){return e===Xr?Ws:e.startsWith(`${ut}/`)?e.replace(`${ut}/`,`${ur}/`):e===Ks?$c:e},mirrorGlobalPath(e,t){return fe(e,ur,t)},paths:{rulePath(e){return Ws},commandPath(e){return `${ur}/${J(e)}/SKILL.md`},agentPath(e){return `${ur}/${V(e)}/SKILL.md`}}},_3={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},S3={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"native"},Tg={id:Po,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:g3,capabilities:_3,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:X$,lint:{ignore:q$},supportsConversion:{commands:true,agents:true},project:h3,globalSupport:{capabilities:S3,detectionPaths:[Hb,Ws,ur],layout:y3},emitScopedSettings(e,t,r){return t!=="global"?[]:rj(e,r)},mergeGeneratedOutputContent(e,t,r,n){return n!==tu?null:nj(e,r)},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Xr],global:[Ws]},canonicalDir:zb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ks],global:[$c]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:$S,detectionPaths:[Xr,ut,Ks]};});function sj(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:fr,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Qr))continue;let o=basename(n.source,".md");t.push({path:`${dr}/${o}.md`,content:n.body.trim()});}return t}function ij(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${Yi}/${t.name}.md`,content:T(r,t.body.trim()||"")}})}function aj(e){return ie(e,qr)}function lj(e){return e.mcp===null||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:ml,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function cj(e){return e.ignore.length===0?[]:[{path:jc,content:e.ignore.join(`
149
+ `)}]}var mj=d(()=>{oe();B();Bc();s(sj,"generateRules");s(ij,"generateCommands");s(aj,"generateSkills");s(lj,"generateMcp");s(cj,"generateIgnore");});async function I3(e,t,r,n){let o=n==="global"?[Zr,fr]:[fr,Zr];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,pj),{frontmatter:m,body:p}=x(r(l,a,c));await O(join(e,ou)),await L(c,await z(c,{...m,root:true},p)),t.push({fromTool:Qr,fromPath:a,toPath:pj,feature:"rules"});return}}async function L3(e,t,r,n){let o=join(e,n==="global"?Hs:dr),i=join(e,ou);t.push(...await Se({srcDir:o,destDir:i,extensions:[".md"],fromTool:Qr,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a);if(c==="project_rules.md"||c==="rules.md")return null;let m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${ou}/${a}`,feature:"rules",content:await z(m,{...p,root:false},u)}},"mapEntry")}));}async function uj(e,t={}){let r=t.scope??"project",n=[],o=await H(Qr,e,r);return await I3(e,n,o,r),await L3(e,n,o,r),n.push(...await Q(Pg,e,r,{normalize:o})),await ne(e,r==="global"?vn:qr,Qr,n,o),n}var pj,dj=d(()=>{ge();oe();Zt();Ae();de();b();B();Bc();Gk();pj=`${ou}/_root.md`;s(I3,"importRoot");s(L3,"importNonRootRules");s(uj,"importFromTrae");});function fj(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qr}))}var gj=d(()=>{Ee();Bc();s(fj,"lintRules");});var C3,E3,O3,w3,Pg,Gk=d(()=>{mj();dt();dj();gj();Oe();Bc();C3={name:Qr,primaryRootInstructionPath:fr,generateRules:sj,generateCommands:ij,generateSkills:aj,generateMcp:lj,generateIgnore:cj,importFrom:uj},E3={rootInstructionPath:fr,skillDir:qr,managedOutputs:{dirs:[dr,Yi,qr],files:[ml,jc]},paths:{rulePath(e,t){return `${dr}/${e}.md`},commandPath(e,t){return `${Yi}/${e}.md`},agentPath(e,t){return null}}},O3={rootInstructionPath:Zr,skillDir:vn,managedOutputs:{dirs:[Hs,Uc,vn,Jb],files:[Zr,nu]},rewriteGeneratedPath(e){return e===fr?Zr:e.startsWith(`${dr}/`)?e.replace(`${dr}/`,`${Hs}/`):e.startsWith(`${qr}/`)?e.replace(`${qr}/`,`${vn}/`):e===ml?nu:e===jc?null:e},mirrorGlobalPath(e,t){return fe(e,vn,t)},paths:{rulePath(e,t){return e==="_root"?Zr:`${Hs}/${e}.md`},commandPath(e,t){return `${Uc}/${e}.md`},agentPath(e,t){return null}}},w3={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Pg={id:Qr,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:C3,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Trae config found (.trae/rules/project_rules.md, .trae/rules/*.md, .trae/skills/, .trae/mcp.json, or .trae/.ignore).",lintRules:fj,project:E3,globalSupport:{capabilities:w3,detectionPaths:[Zr,Hs,vn,nu],layout:O3},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Yi],global:[Uc]},canonicalDir:Yb,extensions:[".md"],preset:"command"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ml],global:[nu]},canonicalDir:".agentsmesh",canonicalFilename:Xb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[jc]},canonicalDir:".agentsmesh",canonicalFilename:Qb}},buildImportPaths:jS,detectionPaths:[dr,ml,fr]};});function hj(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Do)),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Fn,content:o}]:[]}function yj(e){return ie(e,Et)}function _j(e){return e.commands.map(t=>({path:`${Et}/${J(t.name)}/SKILL.md`,content:Ge(t)}))}function Sj(e){return e.agents.map(t=>({path:`${Et}/${V(t.name)}/SKILL.md`,content:$e(t)}))}function Rj(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Xi,content:t}]}function kj(e){return []}var Ij=d(()=>{oe();Be();_e();be();Kc();s(hj,"generateRules");s(yj,"generateSkills");s(_j,"generateCommands");s(Sj,"generateAgents");s(Rj,"generateMcp");s(kj,"generatePermissions");});async function Lj(e,t={}){let r=t.scope??"project",n=[],o=await H(Do,e,r);return n.push(...await Q(Dg,e,r,{normalize:o})),await ne(e,r==="global"?gr:Et,Do,n,o),n}var Cj=d(()=>{ge();oe();Ae();Kc();$k();s(Lj,"importFromWarp");});function Ej(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Do}))}var Oj=d(()=>{Ee();Kc();s(Ej,"lintRules");});function wj(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","warp","Warp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function bj(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","warp","Warp permissions are managed via Agent Profiles in the Warp UI (Agent Profiles \u2192 Allowed/Blocked commands); canonical permissions are not projected as config files.")]}function Aj(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var xj=d(()=>{Re();s(wj,"lintHooks");s(bj,"lintPermissions");s(Aj,"lintIgnore");});var b3,A3,x3,T3,P3,Dg,$k=d(()=>{be();_e();Ij();dt();Cj();Oj();xj();Oe();Kc();b3={name:Do,primaryRootInstructionPath:Fn,generateRules:hj,generateCommands:_j,generateAgents:Sj,generateSkills:yj,generateMcp:Rj,generatePermissions:kj,importFrom:Lj},A3={rootInstructionPath:Fn,skillDir:Et,managedOutputs:{dirs:[Et],files:[Fn,Xi]},paths:{rulePath(e){return Fn},commandPath(e){return `${Et}/${J(e)}/SKILL.md`},agentPath(e){return `${Et}/${V(e)}/SKILL.md`}}},x3={rootInstructionPath:void 0,skillDir:gr,managedOutputs:{dirs:[gr],files:[]},rewriteGeneratedPath(e){return e.startsWith(`${Et}/`)?e.replace(`${Et}/`,`${gr}/`):e},mirrorGlobalPath(e,t){return fe(e,gr,t)},paths:{rulePath(){return null},commandPath(e){return `${gr}/${J(e)}/SKILL.md`},agentPath(e){return `${gr}/${V(e)}/SKILL.md`}}},T3={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"partial"},P3={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"partial"},Dg={id:Do,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:b3,capabilities:T3,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:Ej,lint:{hooks:wj,permissions:bj,ignore:Aj},supportsConversion:{commands:true,agents:true},project:A3,globalSupport:{capabilities:P3,detectionPaths:[gr],layout:x3},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[US,Fn]},canonicalDir:Zb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Xi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:BS,detectionPaths:[Fn,US,Xi],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var Wo,jk,sa,Tj,rm,Ho,nm,om,Pj,ia,jn,sm,Uk,Dj,Nj,Bk,Kk,Wk,im,am,Su,Ng,vg,Fg,vj,vt=d(()=>{Wo="windsurf",jk=".windsurfrules",sa=".windsurf/rules",Tj=".windsurfignore",rm=".codeiumignore",Ho="AGENTS.md",nm=".windsurf/hooks.json",om=".windsurf/mcp_config.example.json",Pj=".windsurf/mcp_config.json",ia=".windsurf/workflows",jn=".windsurf/skills",sm=".agentsmesh/rules",Uk=".agentsmesh/commands",Dj=".agentsmesh/agents",Nj=".agentsmesh/skills",Bk=".agentsmesh/ignore",Kk=".agentsmesh/hooks.yaml",Wk=".agentsmesh/mcp.json",im=".codeium/windsurf/memories/global_rules.md",am=".codeium/windsurf/skills",Su=".codeium/windsurf/global_workflows",Ng=".codeium/windsurf/hooks.json",vg=".codeium/windsurf/mcp_config.json",Fg=".codeium/.codeiumignore",vj=".agents/skills";});function N3(e){let t=basename(e,".md");return t==="_root"?"root":t}function v3(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}function Hk(e){let t=[],r=e.rules.find(n=>n.root);if(!r)return [];t.push({path:Ho,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=N3(n.source),i=n.trigger||(n.globs.length>0?"glob":void 0),a={description:n.description||void 0,trigger:i,glob:n.globs.length===1?n.globs[0]:void 0,globs:n.globs.length>1?n.globs:void 0};Object.keys(a).forEach(m=>{a[m]===void 0&&delete a[m];});let l=Object.keys(a).length>0?T(a,n.body.trim()||""):n.body.trim()||"";t.push({path:`${sa}/${o}.md`,content:l});let c=v3(n.globs);c&&(c!==o&&t.push({path:`${sa}/${c}.md`,content:l}),t.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return t}var Fj=d(()=>{B();vt();s(N3,"ruleSlug");s(v3,"directoryScopedRuleDir");s(Hk,"generateRules");});function zk(e){return !e.ignore||e.ignore.length===0?[]:[{path:rm,content:e.ignore.join(`
150
+ `)}]}var Mj=d(()=>{vt();s(zk,"generateIgnore");});function Vk(e){return e.commands.map(t=>{let r={description:t.description.trim()||void 0,allowedTools:t.allowedTools.length>0?t.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?T(r,t.body.trim()||""):t.body.trim();return {path:`${ia}/${t.name}.md`,content:n}})}var Gj=d(()=>{B();vt();s(Vk,"generateCommands");});function Jk(e){return e.agents.map(t=>({path:`${jn}/${V(t.name)}/SKILL.md`,content:$e(t)}))}var $j=d(()=>{_e();vt();s(Jk,"generateAgents");});function Yk(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:om,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var jj=d(()=>{vt();s(Yk,"generateMcp");});function F3(e){let t={PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Notification:"notification",UserPromptSubmit:"user_prompt_submit",SubagentStart:"subagent_start",SubagentStop:"subagent_stop"};return t[e]?t[e]:e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function M3(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Yn(i))continue;let a=Je(i),l=xt(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(t[F3(r)]=o);}return t}function Xk(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=M3(e.hooks);return Object.keys(t).length===0?[]:[{path:nm,content:JSON.stringify({hooks:t},null,2)}]}var Uj=d(()=>{Lr();vt();s(F3,"windsurfEventName");s(M3,"toWindsurfHooks");s(Xk,"generateHooks");});function Qk(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=Object.keys(n).length>0?T(n,r.body.trim()||""):r.body.trim()||"";t.push({path:`${jn}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)t.push({path:`${jn}/${r.name}/${i.relativePath}`,content:i.content});}return t}var Bj=d(()=>{B();vt();s(Qk,"generateSkills");});var Kj=d(()=>{Fj();Mj();Gj();$j();jj();Uj();Bj();});var Wj=d(()=>{Kj();});function Hj(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function zj(e,t,r){let n=join(e,ia),i=(await U(n)).filter(l=>l.endsWith(".md")),a=join(e,Uk);for(let l of i){let c=await k(l);if(!c)continue;let m=relative(n,l).replace(/\\/g,"/");await O(a);let p=join(a,m),u=r(c,l,p),{frontmatter:f,body:g}=x(u),h=await Ce(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let _=Hj(f.allowedTools);return _.length>0?_:Hj(f["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(f,"allowedTools")||Object.prototype.hasOwnProperty.call(f,"allowed-tools")},g);await L(p,h),t.push({fromTool:Wo,fromPath:l,toPath:`${Uk}/${m}`,feature:"commands"});}}var Vj=d(()=>{b();B();de();vt();s(Hj,"toStringArray");s(zj,"importWorkflows");});async function Jj(e,t,r,n=jn){await Hc([n],{projectRoot:e,destCanonicalSkillsDir:Nj,targetName:"windsurf",normalize:r,results:t},[zc({canonicalAgentsDir:Dj})]);}var Yj=d(()=>{Vc();vt();s(Jj,"importSkills");});async function Qj(e,t){let r=join(e,nm),n=await k(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let i=U3(o.hooks);if(Object.keys(i).length===0)return;let a=join(e,Kk);await O(dirname(a)),await L(a,stringify(i)),t.push({fromTool:Wo,fromPath:r,toPath:Kk,feature:"hooks"});}catch{}}function j3(e){return {pre_tool_use:"PreToolUse",post_tool_use:"PostToolUse",notification:"Notification",user_prompt_submit:"UserPromptSubmit",subagent_start:"SubagentStart",subagent_stop:"SubagentStop"}[e]??e}function U3(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=j3(r),i=[];for(let a of n){if(!a||typeof a!="object")continue;let l=a;if(typeof l.command=="string"&&l.command.trim()){i.push({matcher:".*",type:"command",command:l.command});continue}let c=typeof l.matcher=="string"&&l.matcher.trim()?l.matcher:".*",m=Array.isArray(l.hooks)?l.hooks:[];for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.command=="string"?u.command:typeof u.prompt=="string"?u.prompt:"";if(!f.trim())continue;let g={matcher:c,type:u.type==="prompt"?"prompt":"command",command:f};typeof u.timeout=="number"&&(g.timeout=u.timeout),i.push(g);}}i.length>0&&(t[o]=i);}return t}async function qj(e,t){let r=[om,Pj];for(let n of r){let o=join(e,n),i=await k(o);if(i)try{let a=JSON.parse(i);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(e,Wk);await O(dirname(l)),await L(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),t.push({fromTool:Wo,fromPath:o,toPath:Wk,feature:"mcp"});return}catch{}}}var Zj=d(()=>{b();vt();s(Qj,"importWindsurfHooks");s(j3,"canonicalHookEventName");s(U3,"windsurfHooksToCanonical");s(qj,"importWindsurfMcp");});async function e0(e,t){let r=t?.scope??"project",n=[],o=await H(Wo,e),i=await H("codex-cli",e),a=join(e,sm),l=join(e,jk),c=await k(l);if(c!==null){await O(a);let f=join(a,"_root.md"),g=o(c,l,f).trim(),h=await z(f,{root:true},g);await L(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${sm}/_root.md`,feature:"rules"});}if(c===null){let f=join(e,Ho),g=await k(f);if(g!==null){await O(a);let h=join(a,"_root.md"),_=o(i(g,f,h),f,h).trim(),S=await z(h,{root:true},_);await L(h,S),n.push({fromTool:"windsurf",fromPath:f,toPath:`${sm}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await Se({srcDir:e,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({srcPath:f,normalizeTo:g})=>{let h=relative(e,dirname(f)).replace(/\\/g,"/");if(!h||h==="."||basename(f)!=="AGENTS.md")return null;let _=h.replace(/\//g,"-");if(!Zd(h))return await Qn(join(a,`${_}.md`)),null;let S=join(a,`${_}.md`);return {destPath:S,toPath:`${sm}/${_}.md`,feature:"rules",content:await z(S,{root:false,globs:[`${h}/**`]},g(S))}},"mapEntry")}));let m=join(e,sa);n.push(...await Se({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({relativePath:f,normalizeTo:g})=>{if(f==="_root.md"&&c!==null)return null;let h=join(a,f),{frontmatter:_,body:S}=x(g(h)),R={..._};return typeof R.glob=="string"&&R.glob.trim()&&(R.globs=[R.glob],delete R.glob),{destPath:h,toPath:`${sm}/${f}`,feature:"rules",content:await z(h,{...R,root:false},S)}},"mapEntry")}));let p=join(e,Tj),u=await k(p);if((u===null||!u.trim())&&(p=join(e,rm),u=await k(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let _=h.trim();_&&!_.startsWith("#")&&g.push(_);}if(g.length>0){await O(join(e,".agentsmesh"));let h=join(e,Bk);await L(h,g.join(`
151
+ `)),n.push({fromTool:"windsurf",fromPath:p,toPath:Bk,feature:"ignore"});}}return await zj(e,n,o),await Jj(e,n,o),await Qj(e,n),await qj(e,n),n}var t0=d(()=>{ge();b();B();de();Zt();pp();vt();Vj();Yj();Zj();s(e0,"importFromWindsurf");});function r0(e,t,r){let n=[],{rules:o}=e;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(t,o[0].source),target:Wo,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:Wo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var n0=d(()=>{vt();s(r0,"lintRules");});function o0(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>F(t.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function s0(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[F(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var i0=d(()=>{Re();s(o0,"lintCommands");s(s0,"lintMcp");});function z3(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}var V3,J3,Y3,X3,a0,l0=d(()=>{Wj();Ea();vt();dt();t0();n0();i0();Oe();sp();_e();s(z3,"directoryScopedRuleDir");V3={name:"windsurf",primaryRootInstructionPath:Ho,generateRules:Hk,generateCommands:Vk,generateAgents:Jk,generateSkills:Qk,generateMcp:Yk,generateHooks:Xk,generateIgnore:zk,importFrom:e0},J3={rootInstructionPath:Ho,extraRuleOutputPaths(e){if(e.root)return [Ho];let t=z3(e.globs);return t!==null?[`${t}/AGENTS.md`]:[]},skillDir:jn,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(e,t){return `${sa}/${e}.md`},commandPath(e,t){return `${ia}/${e}.md`},agentPath(e,t){return os(t,"windsurf")?`.windsurf/skills/${V(e)}/SKILL.md`:null}}},Y3={rootInstructionPath:im,skillDir:am,managedOutputs:{dirs:[am,Su,vj],files:[im,Ng,vg,Fg]},rewriteGeneratedPath(e){return e===Ho?im:e.startsWith(`${sa}/`)||/\/AGENTS\.md$/.test(e)?null:e.startsWith(`${jn}/`)?e.replace(`${jn}/`,`${am}/`):e.startsWith(`${ia}/`)?e.replace(`${ia}/`,`${Su}/`):e===nm?Ng:e===om?vg:e===rm?Fg:e},mirrorGlobalPath(e,t){return fe(e,".codeium/windsurf/skills",t)},paths:{rulePath(e,t){return im},commandPath(e,t){return `${Su}/${e}.md`},agentPath(e,t){return os(t,"windsurf")?`${am}/${V(e)}/SKILL.md`:null}}},X3={rules:"native",additionalRules:"partial",commands:un("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},a0={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:V3,capabilities:{rules:"native",additionalRules:"native",commands:un("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Windsurf config found (.windsurfrules, .windsurf/rules, .windsurfignore, or .codeiumignore).",supportsConversion:{agents:true},lintRules:r0,lint:{commands:o0,mcp:s0},project:J3,globalSupport:{capabilities:X3,detectionPaths:[im,am,Su,Ng,vg,Fg],layout:Y3},buildImportPaths:KS,detectionPaths:[".windsurfrules",".windsurf"],nativeInstall:{pickPaths:[{prefix:".windsurf/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}}],dialectHints:[{frontmatterKey:"trigger"}]},conversionDefaults:{agentsToSkills:true}};});function c0(e){return ie(e,vo)}function m0(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=t?.body.trim()??"",o=le(n,r);return o?[{path:Mn,content:o}]:[]}var p0=d(()=>{oe();Be();pl();s(c0,"generateSkills");s(m0,"generateRules");});async function d0(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.context_servers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a)){if(!m||typeof m!="object"||Array.isArray(m))continue;let p={...m};delete p.source,l[c]=p;}Object.keys(l).length!==0&&(await Xe(e,u0,l),r.push({fromTool:"zed",fromPath:t,toPath:u0,feature:"mcp"}));}var u0,f0=d(()=>{b();hn();pl();u0=".agentsmesh/mcp.json";s(d0,"importZedMcp");});async function g0(e,t={}){let r=t.scope??"project",n=[],o=await H("zed",e,r);return n.push(...await Q(Gg,e,r,{normalize:o})),r==="project"&&await ne(e,vo,"zed",n,o),await d0(e,r==="global"?Fo:No,n),n}var h0=d(()=>{ge();oe();Ae();f0();pl();Zk();s(g0,"importFromZed");});function y0(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var _0=d(()=>{Ee();pl();s(y0,"lintRules");});function S0(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[F(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function R0(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[F(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function k0(e){return e.ignore.length===0?[]:[F(".agentsmesh/ignore","zed","Zed has no dedicated ignore file and relies on file_scan_exclusions in settings.json; canonical ignore patterns are not projected.")]}var I0=d(()=>{Re();s(S0,"lintHooks");s(R0,"lintPermissions");s(k0,"lintIgnore");});function n9(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var q3,Z3,e9,t9,r9,Gg,Zk=d(()=>{p0();h0();_0();I0();Oe();pl();q3={name:"zed",primaryRootInstructionPath:Mn,generateRules:m0,generateSkills:c0,importFrom:g0},Z3={rootInstructionPath:Mn,skillDir:vo,managedOutputs:{dirs:[vo],files:[Mn,No]},paths:{rulePath(e){return Mn},commandPath(){return null},agentPath(){return null}}},e9={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[Fo]},rewriteGeneratedPath(e){return e===No?Fo:e},paths:{rulePath(){return Fo},commandPath(){return null},agentPath(){return null}}},t9={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},r9={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(n9,"mergeZedSettings");Gg={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:q3,capabilities:t9,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:y0,lint:{hooks:S0,permissions:R0,ignore:k0},project:Z3,globalSupport:{capabilities:r9,detectionPaths:[Fo],layout:e9},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Mn],global:[]},canonicalDir:rA,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){if(!r.has("mcp"))return [];if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let n={};for(let[o,i]of Object.entries(e.mcp.mcpServers))n[o]=i;return [{path:No,content:JSON.stringify({context_servers:n},null,2)}]},mergeGeneratedOutputContent(e,t,r,n){return n===No||n===Fo?n9(e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:WS,detectionPaths:[Mn,No]};});var Pw={};Fy(Pw,{BUILTIN_TARGETS:()=>Pe,TARGET_IDS:()=>Ue,getBuiltinTargetDefinition:()=>nn,getEffectiveTargetSupportLevel:()=>$g,getTargetCapabilities:()=>ni,getTargetDetectionPaths:()=>tI,getTargetLayout:()=>We,getTargetManagedOutputs:()=>rI,getTargetPrimaryRootInstructionPath:()=>i9,getTargetSkillDir:()=>Ru,isBuiltinTargetId:()=>Xt,resolveTargetFeatureGenerator:()=>lm,rewriteGeneratedOutputPath:()=>nI});function s9(){return eI||(dO(Pe),eI=new Map(Pe.map(e=>[e.id,e]))),eI}function nn(e){return s9().get(e)}function ni(e,t="project"){let r=nn(e)??re(e);if(!r)return;if(t==="global"&&!r.globalSupport)return d_(o9);let n=t==="global"?r.globalSupport.capabilities:r.capabilities;return d_(n)}function tI(e,t="project"){let r=nn(e)??re(e);return r?t==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function We(e,t="project"){let r=nn(e)??re(e);if(r)return t==="global"?r.globalSupport?.layout:r.project}function i9(e,t="project"){return We(e,t)?.rootInstructionPath}function Ru(e,t="project"){return We(e,t)?.skillDir}function rI(e,t="project"){return We(e,t)?.managedOutputs}function nI(e,t,r="project"){let n=We(e,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(t):t:null}function L0(e,t,r,n){if(!e||!r)return false;let o=ni(e.id,n)?.[t]?.level??"none";return o==="native"||o==="partial"?false:t==="commands"&&e.supportsConversion?.commands?!ic(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?!os(r,e.id,true,n):false}function a9(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?ic(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?os(r,e.id,true,n):false}function $g(e,t,r,n="project"){let o=ni(e,n)?.[t]?.level??"none",i=nn(e)??re(e);return n==="global"&&i&&!i.globalSupport?"none":o==="none"&&a9(i,t,r,n)?"embedded":o!=="embedded"?o:L0(i,t,r,n)?"none":o}function lm(e,t,r,n="project"){let o=nn(e)??re(e);if(!o?.generators||L0(o,t,r,n))return;let i=l9[t];return i===null?void 0:i(o.generators)}var o9,Pe,eI,l9,xe=d(()=>{sp();Ea();rt();f_();Vn();D_();HS();zS();JS();wx();QS();jT();NP();IR();AR();DR();JR();YR();XR();gk();hk();yk();_k();Lk();Ek();bk();Tk();Pk();Dk();Fk();Mk();Gk();$k();l0();Zk();o9={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Pe=[nf,Pf,Df,Nf,Ox,vf,$T,DP,Bf,Jf,Qf,ig,ag,lg,hg,yg,_g,Sg,Ig,Lg,Eg,Og,wg,bg,xg,Tg,Pg,Dg,a0,Gg];s(s9,"builtinTargetsMap");s(nn,"getBuiltinTargetDefinition");s(ni,"getTargetCapabilities");s(tI,"getTargetDetectionPaths");s(We,"getTargetLayout");s(i9,"getTargetPrimaryRootInstructionPath");s(Ru,"getTargetSkillDir");s(rI,"getTargetManagedOutputs");s(nI,"rewriteGeneratedOutputPath");s(L0,"isFeatureSuppressedByConversion");s(a9,"isConversionUpgrading");s($g,"getEffectiveTargetSupportLevel");l9={rules:s(e=>e.generateRules,"rules"),additionalRules:null,commands:s(e=>e.generateCommands,"commands"),agents:s(e=>e.generateAgents,"agents"),skills:s(e=>e.generateSkills,"skills"),mcp:s(e=>e.generateMcp,"mcp"),permissions:s(e=>e.generatePermissions,"permissions"),hooks:s(e=>e.generateHooks,"hooks"),ignore:s(e=>e.generateIgnore,"ignore")};s(lm,"resolveTargetFeatureGenerator");});function p9(e,t){return e.uniqueHits!==t.uniqueHits?t.uniqueHits-e.uniqueHits:e.sharedScore!==t.sharedScore?t.sharedScore-e.sharedScore:e.id.localeCompare(t.id)}async function jg(e){let t=[];for(let n of Pe){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(e,a)))continue;let l=m9.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&t.push({id:n.id,uniqueHits:o,sharedScore:i});}if(t.length===0)return null;t.sort(p9);let r=t[0];return r.uniqueHits===0?null:r.id}var m9,C0,oI=d(()=>{b();xe();m9=(()=>{let e=new Map;for(let t of Pe)for(let r of t.detectionPaths)e.set(r,(e.get(r)??0)+1);return e})();s(p9,"compare");s(jg,"detectNativeFormat");C0=Pe.map(e=>e.detectionPaths[0]).filter(e=>e!==void 0);});async function ku(e,t){let r=re(t);if(!r)throw new Error(`No importer registered for native target: ${t}`);return r.generators.importFrom(e)}var sI=d(()=>{rt();s(ku,"importNativeToCanonical");});async function Ol(e){if(!await j(e))return false;if(await j(join(e,aI)))return true;try{let t=await readdir(e,{withFileTypes:!0});for(let r of t)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(e,r.name,aI)))return !0}catch{return false}return false}async function Iu(e,t={}){if(!await j(e))return [];if(await j(join(e,aI))){let r=await Gd(e,t);return r?[r]:[]}return Ri(e,t)}var aI,Ug=d(()=>{b();oc();aI="SKILL.md";s(Ol,"isSkillPackLayout");s(Iu,"loadSkillsAtExtendPath");});async function Bg(e,t={}){return (await Si(e,t)).filter(n=>!Jn(basename(n.source)))}async function Kg(e,t={}){return (await _i(e,t)).filter(n=>!Jn(basename(n.source)))}async function Wg(e,t={}){return (await yi(e,t)).filter(n=>!Jn(basename(n.source)))}async function E0(e,t={}){return Ri(e,t)}var Hg=d(()=>{np();rp();tp();oc();ts();s(Bg,"importAgents");s(Kg,"importCommands");s(Wg,"importRules");s(E0,"importSkills");});function cI(e,t){let r=e?.[t];if(!r)return [];let n=Array.isArray(r)?r:[r],o=[];for(let i of n)i.mode!=="directory"||!i.map||!i.extensions||o.push({extensions:i.extensions,map:i.map});return o}function mI(e){return e.toLowerCase().endsWith(".md")}function w0(e,t){for(let r of cI(re(e)?.importer,t))if(r.extensions.some(n=>!mI(n)))return true;return false}function S9(e,t){let r=new Set;for(let n of cI(re(e)?.importer,t))for(let o of n.extensions)mI(o)||r.add(o.toLowerCase());return r}function R9(e){return zd().filter(t=>w0(t,e))}async function L9(e,t,r){return k9[e](t,r)}async function C9(e,t,r){return I9[e](t,r)}async function E9(e,t,r,n={}){let o=cI(re(t)?.importer,r),i=await U(e),a=new Set;for(let p of o)for(let u of p.extensions)mI(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!Jn(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${t}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await k(u);if(f===null)continue;let g=relative(e,u).replaceAll("\\","/"),h=null;for(let _ of o){if(!_.extensions.some(I=>u.toLowerCase().endsWith(I.toLowerCase())))continue;let R=await _.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(R){h=R;break}}h&&(await O(dirname(h.destPath)),await L(h.destPath,h.content));}return {entities:await L9(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function pI(e,t,r={}){let n=r.restrictToTarget,o=n?w0(n,t)?[n]:[]:R9(t),i=new Set;for(let f of o)for(let g of S9(f,t))i.add(g);let a=await C9(t,e,{...r.parseOpts,handledByOtherReader:i.size>0?i:void 0}),l=[],c=s(f=>basename(f.source).replace(/\.[^.]+$/,""),"slugOf"),m=new Map;for(let f of a)m.set(c(f),f);for(let f of o){let g=await E9(e,f,t,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let _=c(h);m.has(_)||m.set(_,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function zg(e,t={}){let r=await pI(e,"commands",t);return {commands:[...r.entities],cleanup:r.cleanup}}async function Vg(e,t={}){let r=await pI(e,"rules",t);return {rules:[...r.entities],cleanup:r.cleanup}}async function Jg(e,t={}){let r=await pI(e,"agents",t);return {agents:[...r.entities],cleanup:r.cleanup}}var k9,I9,Yg=d(()=>{np();rp();tp();b();rt();ts();Hg();s(cI,"directorySpecsFor");s(mI,"isMarkdownExtension");s(w0,"hasNonMdEntityMapper");s(S9,"nonMdEntityExtensions");s(R9,"targetsWithNonMdEntityMapper");k9={rules:yi,commands:_i,agents:Si},I9={rules:Wg,commands:Kg,agents:Bg};s(L9,"parseEntityDir");s(C9,"importEntities");s(E9,"readToolNativeEntities");s(pI,"readEntityDirWithMappers");s(zg,"readCommandsDirWithMappers");s(Vg,"readRulesDirWithMappers");s(Jg,"readAgentsDirWithMappers");});function b9(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function A9(e){return e.rules.length===0&&e.commands.length===0&&e.agents.length===0&&e.skills.length===0&&e.mcp===null&&e.permissions===null&&e.hooks===null&&e.ignore.length===0}async function Xg(e){if(!await j(e))throw new Error(`Path does not exist: ${e}`);let t=await stat(e);if(t.isDirectory())return {sliceRoot:e};if(!t.isFile()||!e.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${e}`);let r=dirname(e),n=basename(r),i=basename(e).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[i]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[i]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[i]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${e}`)}async function fI(e,t){if(basename(e)===t)return e;let r=join(e,t);return await j(r)?r:null}async function x9(e,t,r){let n=s(async()=>{},"noop"),o=await fI(e,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await Wg(o,t),cleanup:n};let i=await Vg(o,{parseOpts:t});return {rules:[...i.rules],cleanup:i.cleanup}}async function T9(e,t,r){let n=s(async()=>{},"noop"),o=await fI(e,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await Kg(o,t),cleanup:n};let i=await zg(o,{parseOpts:t});return {commands:[...i.commands],cleanup:i.cleanup}}async function P9(e,t,r){let n=s(async()=>{},"noop"),o=await fI(e,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await Bg(o,t),cleanup:n};let i=await Jg(o,{parseOpts:t});return {agents:[...i.agents],cleanup:i.cleanup}}async function D9(e,t){if(await Ol(e))return Iu(e,t);let r=join(e,"skills");return await Ol(r)?Iu(r,t):[]}async function Qg(e,t={}){let r=s(async()=>{},"noop"),n=join(e,".agentsmesh");if(await j(n))return {canonical:await jt(e,t),cleanup:r};let o=t.enableTargetEntityMappers??false,i=b9(),a=await x9(e,t,o);i.rules=a.rules;let l=await T9(e,t,o);i.commands=l.commands;let c=await P9(e,t,o);i.agents=c.agents,i.skills=await D9(e,t);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(A9(i))throw await m(),new Error(`No installable resources at ${e}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md). Hint: pass --as commands|agents|rules|skills to force a kind for flat markdown directories.`);return {canonical:i,cleanup:m}}var gI=d(()=>{b();Hg();Yg();Ca();Ug();s(b9,"emptyCanonical");s(A9,"isCanonicalSliceEmpty");s(Xg,"normalizeSlicePath");s(fI,"resolveEntityDir");s(x9,"parseRulesAt");s(T9,"parseCommandsAt");s(P9,"parseAgentsAt");s(D9,"loadSkillsForPartialSlice");s(Qg,"loadCanonicalSliceAtPath");});async function qg(e){let t=await k(e);if(!t)return "";let r=ln(t,e);if(!r.ok)return "";let{frontmatter:n}=r.value;return typeof n.name!="string"?"":n.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function b0(e,t){await cp$1(e,t,{recursive:true,filter:s(r=>{let n=relative(e,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(ZE(o)||!n.includes("/")&&(Fd(n)||eO(n)))},"filter")});}var hI=d(()=>{b();B();ts();s(qg,"readSkillFrontmatterName");s(b0,"cpFilteredSkill");});function yI(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function F9(e){let t={...e},r=e.alwaysApply===true;if(t.root=r,delete t.alwaysApply,!r){let n=yI(e.globs),o=typeof e.description=="string"?e.description.trim():"";n.length>0?t.trigger="glob":o.length>0?t.trigger="model_decision":t.trigger="manual";}return t}function M9(e){let t={...e};return t.trigger==="always"&&(t.trigger="always_on"),typeof t.glob=="string"&&(t.globs=yI(t.globs).length>0?yI(t.globs):[t.glob],delete t.glob),t}function _I(e){let t=ln(e,"<mdc>");if(!t.ok)return t.bodyFallback;let{frontmatter:r,body:n}=t.value;if(Object.keys(r).length===0&&!e.startsWith("---"))return e;let o;return "alwaysApply"in r?o=F9(r):"trigger"in r||"glob"in r?o=M9(r):o=r,T(o,n.trim())}var A0=d(()=>{B();s(yI,"toStrArray");s(F9,"normalizeCursorKeys");s(M9,"normalizeWindsurfKeys");s(_I,"normalizeMdcToCanonical");});function SI(e){return e.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function RI(e){return e.toLowerCase().endsWith(".mdc")?basename(e).replace(/\.mdc$/i,".md"):basename(e)}function T0(e,t,r){let o=relative(e,t).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=SI(o[o.length-1]);return i?`${i}-${r}`:r}var P0=d(()=>{s(SI,"sanitizeNameSegment");s(RI,"computeDestName");s(T0,"namespacedName");});async function B9(){let e=await mkdtemp(join(tmpdir(),"am-install-manual-")),t=join(e,"repo");return await O(join(t,".agentsmesh")),{discoveryRoot:t,cleanup:s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup")}}function F0(e,t){let r=e.toLowerCase();return !!(r.endsWith(".md")||t&&r.endsWith(".mdc"))}async function K9(e,t,r){if(!F0(e,r))throw new Error(`Manual install only supports .md files for this collection: ${e}`);if(await O(t),e.toLowerCase().endsWith(".mdc")){let n=await k(e);if(!n)return;let o=basename(e).replace(/\.mdc$/i,".md");await writeFile(join(t,o),_I(n));}else await cp$1(e,join(t,basename(e)));}async function W9(e,t,r){if((await stat(e)).isFile())return K9(e,t,r);let o=(await U(e)).filter(l=>F0(l,r)&&!Jn(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${e} for manual install. Try a different --path to point at the directory holding *.md (or *.mdc) files, or omit --as so agentsmesh can auto-detect the layout.`);let i=new Map;for(let l of o){let c=RI(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(t);for(let l of o){let c=RI(l),p=(i.get(c)??0)>1?T0(e,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(e,l).replace(/\\/g,"/").split("/").map(SI).filter(Boolean),g=c.includes(".")?"."+c.split(".").pop():"";p=f.join("-").replace(/\.(md|mdc)$/i,"")+g||p;}if(a.has(p))throw new Error(`Manual install could not resolve duplicate name "${p}" under ${e} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await k(l);if(!f)continue;await writeFile(join(t,p),_I(f));}else await cp$1(l,join(t,p));}}async function D0(e,t,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await U(e)){if(!i.endsWith("/SKILL.md")&&!i.endsWith("\\SKILL.md"))continue;let a=dirname(i),l=basename(a);if(!n.has(l))continue;let c=o.get(l);if(c&&c!==a)throw new Error(`Manual skill replay found duplicate skill "${l}" under ${e} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await O(t);for(let i of r)await cp$1(o.get(i),join(t,i),{recursive:true});return true}async function H9(e,t,r={}){if((await stat(e)).isFile()){if(basename(e)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${e}`);let o=basename(dirname(e)),i=join(t,o);await O(i),await cp$1(dirname(e),i,{recursive:true});return}if(await Ol(e)){if((await stat(join(e,"SKILL.md")).catch(()=>null))?.isFile()){if(await D0(e,t,r.preferredSkillNames??[]))return;let l=await qg(join(e,"SKILL.md"))||basename(e),c=join(t,l);await O(t),await b0(e,c);return}if(await D0(e,t,r.preferredSkillNames??[]))return;await O(t);let o=await U(e),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(e,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp$1(join(e,a),join(t,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${e}.`)}async function eh(e,t,r={}){let n=await B9();try{let o=join(n.discoveryRoot,".agentsmesh",t);return t==="skills"?await H9(e,o,r):await W9(e,o,t==="rules"),n}catch(o){throw await n.cleanup(),o}}var II=d(()=>{b();Ug();hI();ts();A0();P0();s(B9,"createStageRoot");s(F0,"isAcceptedFile");s(K9,"stageSingleFile");s(W9,"stageMarkdownCollection");s(D0,"stagePreferredSkills");s(H9,"stageSkills");s(eh,"stageManualInstallScope");});function z9(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function M0(e){let t=e.resolvedPath;if(e.as!==void 0){let o=e.path?join(t,e.path):t;if(!await j(o))throw new Error(`Extend "${e.name}": path does not exist: ${o}`);let i=await eh(o,e.as);try{return jt(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!e.path){let o=join(t,".agentsmesh");if(!await j(o)){if(await Ol(t)){let a=await Iu(t);return {...z9(),skills:a}}let i=e.target??await jg(t);if(!i)throw new Error(`Extend "${e.name}": No supported agent configuration found in ${t}.
152
+ Expected one of: .agentsmesh/, ${C0.join(", ")}.`);y.info(`[agentsmesh] Extend "${e.name}": ${e.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await ku(t,i);}return jt(t)}let r=join(t,e.path);if(!await j(r))throw new Error(`Extend "${e.name}": path does not exist: ${r}`);if(e.target){let o=join(t,".agentsmesh");return await j(o)||(y.info(`[agentsmesh] Extend "${e.name}": path "${e.path}" with target "${e.target}" \u2014 importing at extend root, then loading canonical.`),await ku(t,e.target)),jt(t)}let{sliceRoot:n}=await Xg(r);try{let{canonical:o}=await Qg(n);return o}catch(o){let i=o instanceof Error?o.message:String(o),a=new Error(`Extend "${e.name}": ${i}`);throw o instanceof Error&&(a.cause=o),a}}var G0=d(()=>{oI();b();se();Ca();sI();Ug();gI();II();s(z9,"emptyCanonical");s(M0,"loadCanonicalForExtend");});function th(e,t,r,n){if(!r)return e;let o={...e};if(r.skills?.length&&t.includes("skills")){let i=new Set(r.skills),a=o.skills;o={...o,skills:a.filter(l=>i.has(l.name))};for(let l of r.skills)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in skills from extend "${n}".`);}if(r.commands?.length&&t.includes("commands")){let i=new Set(r.commands),a=o.commands;o={...o,commands:a.filter(l=>i.has(l.name))};for(let l of r.commands)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in commands from extend "${n}".`);}if(r.agents?.length&&t.includes("agents")){let i=new Set(r.agents),a=o.agents;o={...o,agents:a.filter(l=>i.has(l.name))};for(let l of r.agents)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in agents from extend "${n}".`);}if(r.rules?.length&&t.includes("rules")){let i=new Set(r.rules),a=o.rules,l=s(c=>basename(c).replace(/\.md$/i,""),"stem");o={...o,rules:a.filter(c=>i.has(l(c.source)))};for(let c of r.rules)a.some(m=>l(m.source)===c)||y.warn(`[agentsmesh] pick name "${c}" not found in rules from extend "${n}".`);}return o}var LI=d(()=>{se();s(th,"applyExtendPick");});var Y9,cm,rh=d(()=>{Y9=["rules","commands","agents","skills"],cm=z$1.enum(Y9);});var X9,$0,j0=d(()=>{qo();rh();X9=z$1.enum(["github","gitlab","git","local"]),$0=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:X9,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(ql).min(1),pick:Ym.optional(),target:Ir.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:cm.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function U0(e){let t=ka(e);return t?t.kind==="github"?`github:${t.org}/${t.repo}`:t.kind==="gitlab"?`gitlab:${t.namespace}/${t.project}`:`git+${t.url}`:e.trim()}function q9(e,t){return t?e.length===t.length&&[...e].sort().every((r,n)=>r===[...t].sort()[n]):true}async function aa(e){let t=join(e,"pack.yaml"),r=await k(t);if(r===null)return null;try{let n=parse(r);return $0.parse(n)}catch{return null}}async function K0(e,t,r){if(!await j(e))return null;let n=U0(t),o;try{o=await readdir(e,{withFileTypes:!0});}catch{return null}for(let i of o){if(!i.isDirectory())continue;let a=join(e,i.name),l=await aa(a);if(l&&U0(l.source)===n&&l.target===r.target&&l.as===r.as&&q9(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function nh(e){if(!await j(e))return [];let t;try{t=await readdir(e,{withFileTypes:!0});}catch{return []}let r=[];for(let n of t){if(!n.isDirectory())continue;let o=join(e,n.name),i=await aa(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var mm=d(()=>{b();j0();Ia();s(U0,"sourceIdentity");s(q9,"sameFeatures");s(aa,"readPackMetadata");s(K0,"findExistingPack");s(nh,"listPacks");});function W0(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Z9(e){let[t,r,n,o,i,a,l,c]=await Promise.all([yi(join(e,"rules")),_i(join(e,"commands")),Si(join(e,"agents")),Ri(join(e,"skills")),cn(join(e,"mcp.json")),$d(join(e,"permissions.yaml")),jd(join(e,"hooks.yaml")),Ud(join(e,"ignore"))]);return {...W0(),rules:t,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function H0(e){let t=join(e,"packs"),r=await nh(t),n=W0();for(let{meta:o,packDir:i}of r){let a=await Z9(i),l=EI(a,o.features),c=th(l,o.features,o.pick,o.name);n=sc(n,c);}return n}var z0=d(()=>{tp();rp();np();oc();op();s_();a_();l_();m_();zo();LI();mm();s(W0,"emptyCanonical");s(Z9,"loadPackCanonical");s(H0,"loadPacksCanonical");});function EI(e,t){if(t.length===0)return V0();let r=new Set(t.flatMap(n=>t4[n]??[]));return {rules:r.has("rules")?e.rules:[],commands:r.has("commands")?e.commands:[],agents:r.has("agents")?e.agents:[],skills:r.has("skills")?e.skills:[],mcp:r.has("mcp")?e.mcp:null,permissions:r.has("permissions")?e.permissions:null,hooks:r.has("hooks")?e.hooks:null,ignore:r.has("ignore")?e.ignore:[]}}function V0(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Mt(e,t,r={},n=join(t,".agentsmesh")){let o=await tc(e,t,{refreshCache:r.refreshRemoteCache===true}),i=V0();for(let c of o){let m=await M0(c),p=EI(m,c.features),u=th(p,c.features,c.pick,c.name);i=sc(i,u);}let a=await H0(n);i=sc(i,a);let l=await jt(n);return i=sc(i,l),{canonical:i,resolvedExtends:o}}var t4,zo=d(()=>{Pd();Ca();m_();G0();LI();z0();t4={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(EI,"filterCanonicalByFeatures");s(V0,"emptyCanonical");s(Mt,"loadCanonicalWithExtends");});function Z4(e,t){let r=join(t,"node_modules",e),n=join(r,"package.json");if(!existsSync(n))throw new Error(`Cannot find package '${e}' in ${join(t,"node_modules")}`);let o=JSON.parse(readFileSync(n,"utf-8")),i=(typeof o.exports=="string"?o.exports:null)??(typeof o.main=="string"?o.main:null)??"index.js",a=resolve(r,i);if(!existsSync(a))throw new Error(`Package '${e}' entry '${i}' does not exist at ${a}`);return a}function e5(e){return e.startsWith("file:")||e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^[A-Za-z]:[/\\]/.test(e)}function OU(e){try{return realpathSync(e)}catch{return e}}function wU(e,t){let r=OU(resolve(t)),n=OU(e);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function t5(e,t){let{source:r}=e,n;if(e5(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(t,i);wU(a,t),n=pathToFileURL(a).href;}else {let i=Z4(r,t);wU(i,t),n=pathToFileURL(i).href;}return await import(n)}function r5(e){return "descriptor"in e?[e.descriptor]:"descriptors"in e&&Array.isArray(e.descriptors)?e.descriptors:"default"in e?[e.default]:[]}async function hh(e,t){let r;try{r=await t5(e,t);}catch(i){throw new Error(`Plugin '${e.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=r5(r),o=[];for(let i of n)try{let a=Bd(i);Wd(a),o.push(a);}catch(a){throw new Error(`Plugin '${e.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:e,descriptors:o}}async function bU(e,t){let r=[],n=process.env.AGENTSMESH_STRICT_PLUGINS==="1"||process.env.AGENTSMESH_STRICT_PLUGINS==="true",i=(await Promise.all(e.map(async a=>{try{let l=await hh(a,t);return r.push(l),null}catch(l){let c=`Plugin '${a.source}' failed to load: ${l instanceof Error?l.message:String(l)}`;return a.strict===true||n?new Error(c):(y.warn(c),null)}}))).filter(a=>a!==null);if(i.length>0){let a=i.map(l=>` - ${l.message}`).join(`
153
153
  `);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
154
- ${a}`)}return r}var vI=d(()=>{c_();rt();se();s(W4,"resolveNpmSpecifier");s(H4,"isLocalSource");s(RU,"canonicalize");s(kU,"assertSourceInsideProjectRoot");s(z4,"importPluginModule");s(V4,"extractDescriptors");s(dh,"loadPlugin");s(IU,"loadAllPlugins");});async function ze(e,t){e.plugins.length!==0&&await IU(e.plugins,t);}var sn=d(()=>{vI();s(ze,"bootstrapPlugins");});function GI(e,t,r="project"){let n=[],o=[...e.targets,...e.pluginTargets??[]];for(let i of e.features){let a,l;switch(i){case "rules":l=t.rules.length,a="rules";break;case "commands":l=t.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=t.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=t.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=t.mcp?Object.keys(t.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=h5(t.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=t.ignore.length>0?1:0,a="ignore";break;case "permissions":l=t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=Fg(m,i,e,r);if(n.push({feature:a,count:l,support:c}),i==="rules"){let m=t.rules.filter(p=>!p.root);if(m.length>0){let p={};for(let u of o)p[u]=Fg(u,"additionalRules",e,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function h5(e){if(!e)return 0;let t=0;for(let r of Object.values(e))Array.isArray(r)&&(t+=r.length);return t}var TU=d(()=>{xe();s(GI,"buildCompatibilityMatrix");s(h5,"countHooks");});function PU(e){return y5[e]??e}var y5,DU=d(()=>{y5={"claude-code":"Claude"};s(PU,"matrixColumnLabel");});function NU(e){return Object.fromEntries(_5.map(t=>[t,Object.fromEntries(Ue.map(r=>{let o=ni(r,e)?.[t];return [r,o??{level:"none"}]}))]))}function S5(e,t){return Bl()?`${e}${t}${Eu.reset}`:t}function FU(e){let t=$I[e];return S5(R5[e],t)}var _5,vU,$I,Eu,R5,jI=d(()=>{zn();xe();fd();_5=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(NU,"buildSupportMatrix");vU=NU("project"),NU("global"),$I={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},Eu={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",reset:"\x1B[0m"};s(S5,"colorize");R5={native:Eu.green,embedded:Eu.blue,partial:Eu.yellow,none:Eu.dim};s(FU,"coloredSymbol");});function UI(e,t){let r=Bl(),n={cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",dim:"\x1B[2m",green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",reset:"\x1B[0m"},o=s((G,Y)=>r?`${G}${Y}${n.reset}`:Y,"c"),i=s(G=>G.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s((G,Y)=>{let ee=i(G),M=Math.max(0,Y-ee);return G+" ".repeat(M)},"padWithColor"),l=Math.max(12,...t.map(G=>G.length)),c=t.map(G=>PU(G)),m=Math.max(8,l),p=Math.max(12,...e.map(G=>G.feature.length)),u=s(G=>o(n.dim,"\u250C"+G.map(Y=>"\u2500".repeat(Y)).join("\u252C")+"\u2510"),"border"),f=s(G=>o(n.dim,"\u251C"+G.map(Y=>"\u2500".repeat(Y)).join("\u253C")+"\u2524"),"sep"),g=s(G=>o(n.dim,"\u2514"+G.map(Y=>"\u2500".repeat(Y)).join("\u2534")+"\u2518"),"bottom"),h=[p,...t.map(()=>m)],_=u(h),S=[a(o(n.bold+n.cyan,"Feature"),p),...c.map(G=>a(o(n.bold+n.magenta,G),m))],R=o(n.dim,"\u2502")+S.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),I=f(h),w=e.map(G=>{let Y=[a(o(n.cyan,G.feature),p)];for(let ee of t){let M=G.support[ee]??"none",te=r?FU(M):$I[M];Y.push(a(` ${te} `,m));}return o(n.dim,"\u2502")+Y.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),D=g(h),P=[_,R,I,...w,D];P.push("");let K=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return P.push(o(n.bold,"Legend: ")+K.join(" ")),P.join(`
155
- `)}var MU=d(()=>{DU();jI();fd();s(UI,"formatMatrix");});function KI(e){let t=[];if(e.rules.length>0&&t.push(`rules: ${e.rules.map(r=>basename(r.source)).join(", ")}`),e.commands.length>0&&t.push(`commands: ${e.commands.map(r=>basename(r.source)).join(", ")}`),e.agents.length>0&&t.push(`agents: ${e.agents.map(r=>basename(r.source)).join(", ")}`),e.skills.length>0&&t.push(`skills: ${e.skills.map(r=>r.name).join(", ")}`),e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&t.push(`mcp: ${Object.keys(e.mcp.mcpServers).join(", ")}`),e.hooks){let r=Object.values(e.hooks).reduce((n,o)=>n+(Array.isArray(o)?o.length:0),0);r>0&&t.push(`hooks: ${r} entries in hooks.yaml`);}return e.ignore.length>0&&t.push("ignore: .agentsmesh/ignore"),e.permissions&&e.permissions.allow.length+e.permissions.deny.length>0&&t.push("permissions: .agentsmesh/permissions.yaml"),t.length===0?"":`
154
+ ${a}`)}return r}var MI=d(()=>{p_();rt();se();s(Z4,"resolveNpmSpecifier");s(e5,"isLocalSource");s(OU,"canonicalize");s(wU,"assertSourceInsideProjectRoot");s(t5,"importPluginModule");s(r5,"extractDescriptors");s(hh,"loadPlugin");s(bU,"loadAllPlugins");});async function ze(e,t){e.plugins.length!==0&&await bU(e.plugins,t);}var sn=d(()=>{MI();s(ze,"bootstrapPlugins");});function jI(e,t,r="project"){let n=[],o=[...e.targets,...e.pluginTargets??[]];for(let i of e.features){let a,l;switch(i){case "rules":l=t.rules.length,a="rules";break;case "commands":l=t.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=t.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=t.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=t.mcp?Object.keys(t.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=E5(t.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=t.ignore.length>0?1:0,a="ignore";break;case "permissions":l=t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=$g(m,i,e,r);if(n.push({feature:a,count:l,support:c}),i==="rules"){let m=t.rules.filter(p=>!p.root);if(m.length>0){let p={};for(let u of o)p[u]=$g(u,"additionalRules",e,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function E5(e){if(!e)return 0;let t=0;for(let r of Object.values(e))Array.isArray(r)&&(t+=r.length);return t}var MU=d(()=>{xe();s(jI,"buildCompatibilityMatrix");s(E5,"countHooks");});function GU(e){return O5[e]??e}var O5,$U=d(()=>{O5={"claude-code":"Claude"};s(GU,"matrixColumnLabel");});function jU(e){return Object.fromEntries(w5.map(t=>[t,Object.fromEntries(Ue.map(r=>{let o=ni(r,e)?.[t];return [r,o??{level:"none"}]}))]))}function b5(e,t){return Wl()?`${e}${t}${Ou.reset}`:t}function BU(e){let t=UI[e];return b5(A5[e],t)}var w5,UU,UI,Ou,A5,BI=d(()=>{Vn();xe();hd();w5=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(jU,"buildSupportMatrix");UU=jU("project"),jU("global"),UI={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},Ou={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",reset:"\x1B[0m"};s(b5,"colorize");A5={native:Ou.green,embedded:Ou.blue,partial:Ou.yellow,none:Ou.dim};s(BU,"coloredSymbol");});function KI(e,t){let r=Wl(),n={cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",dim:"\x1B[2m",green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",reset:"\x1B[0m"},o=s((G,Y)=>r?`${G}${Y}${n.reset}`:Y,"c"),i=s(G=>G.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s((G,Y)=>{let ee=i(G),M=Math.max(0,Y-ee);return G+" ".repeat(M)},"padWithColor"),l=Math.max(12,...t.map(G=>G.length)),c=t.map(G=>GU(G)),m=Math.max(8,l),p=Math.max(12,...e.map(G=>G.feature.length)),u=s(G=>o(n.dim,"\u250C"+G.map(Y=>"\u2500".repeat(Y)).join("\u252C")+"\u2510"),"border"),f=s(G=>o(n.dim,"\u251C"+G.map(Y=>"\u2500".repeat(Y)).join("\u253C")+"\u2524"),"sep"),g=s(G=>o(n.dim,"\u2514"+G.map(Y=>"\u2500".repeat(Y)).join("\u2534")+"\u2518"),"bottom"),h=[p,...t.map(()=>m)],_=u(h),S=[a(o(n.bold+n.cyan,"Feature"),p),...c.map(G=>a(o(n.bold+n.magenta,G),m))],R=o(n.dim,"\u2502")+S.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),I=f(h),w=e.map(G=>{let Y=[a(o(n.cyan,G.feature),p)];for(let ee of t){let M=G.support[ee]??"none",te=r?BU(M):UI[M];Y.push(a(` ${te} `,m));}return o(n.dim,"\u2502")+Y.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),D=g(h),P=[_,R,I,...w,D];P.push("");let K=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return P.push(o(n.bold,"Legend: ")+K.join(" ")),P.join(`
155
+ `)}var KU=d(()=>{$U();BI();hd();s(KI,"formatMatrix");});function HI(e){let t=[];if(e.rules.length>0&&t.push(`rules: ${e.rules.map(r=>basename(r.source)).join(", ")}`),e.commands.length>0&&t.push(`commands: ${e.commands.map(r=>basename(r.source)).join(", ")}`),e.agents.length>0&&t.push(`agents: ${e.agents.map(r=>basename(r.source)).join(", ")}`),e.skills.length>0&&t.push(`skills: ${e.skills.map(r=>r.name).join(", ")}`),e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&t.push(`mcp: ${Object.keys(e.mcp.mcpServers).join(", ")}`),e.hooks){let r=Object.values(e.hooks).reduce((n,o)=>n+(Array.isArray(o)?o.length:0),0);r>0&&t.push(`hooks: ${r} entries in hooks.yaml`);}return e.ignore.length>0&&t.push("ignore: .agentsmesh/ignore"),e.permissions&&e.permissions.allow.length+e.permissions.deny.length>0&&t.push("permissions: .agentsmesh/permissions.yaml"),t.length===0?"":`
156
156
  Per-file details:
157
157
  `+t.join(`
158
158
  `)+`
159
- `}var GU=d(()=>{s(KI,"formatVerboseDetails");});var WI=d(()=>{TU();MU();GU();});var HI={};Dy(HI,{runMatrix:()=>Ou});async function Ou(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(f=>f.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=GI(a,c,n),u=KI(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var wu=d(()=>{tt();Ho();WI();sn();s(Ou,"runMatrix");});var zI={};Dy(zI,{renderMatrix:()=>bu});function bu(e,t){if(e.data.features.length===0){y.info("No features enabled. Enable features in agentsmesh.yaml.");return}let r=e.data.features.map(o=>({feature:o.name,count:0,support:o.support})),n=UI(r,e.data.targets);process.stdout.write(n),process.stdout.write(`
159
+ `}var WU=d(()=>{s(HI,"formatVerboseDetails");});var zI=d(()=>{MU();KU();WU();});var VI={};Fy(VI,{runMatrix:()=>wu});async function wu(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(f=>f.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=jI(a,c,n),u=HI(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var bu=d(()=>{tt();zo();zI();sn();s(wu,"runMatrix");});var JI={};Fy(JI,{renderMatrix:()=>Au});function Au(e,t){if(e.data.features.length===0){y.info("No features enabled. Enable features in agentsmesh.yaml.");return}let r=e.data.features.map(o=>({feature:o.name,count:0,support:o.support})),n=KI(r,e.data.targets);process.stdout.write(n),process.stdout.write(`
160
160
  `),t?.verbose&&e.verboseDetails&&(process.stdout.write(e.verboseDetails),process.stdout.write(`
161
- `));}var Au=d(()=>{se();WI();s(bu,"renderMatrix");});function JC(e){let t=Object.keys(e);return {async route(r,n,o){let i=e[r];if(i){await i(n,o);return}throw new Error(`Unknown command "${r}". Available: ${t.join(", ")}`)},commands:s(()=>[...t],"commands")}}s(JC,"createRouter");se();var fi={query:{usage:"agentsmesh lessons query [--file <path>] [--cmd <command>] [--keyword <text>] [--format plain|md|json] [--top <n>] [--all] [--max-tokens <n>] [--session <id>] [--no-dedup] [--ids]",example:'agentsmesh lessons query --file src/app/page.tsx --cmd "git commit -m wip"'},add:{usage:'agentsmesh lessons add "<rule>" --topic <id> [--trigger-file <glob>]... [--trigger-cmd <regex>]... [--trigger-kw <text>]... [--evidence <ref>]... [--rationale <text>] [--new-topic --topic-summary "..."]',example:'agentsmesh lessons add "Run tsc --noEmit before committing type changes" --topic build --trigger-file "src/**/*.ts" --evidence commit:abc1234'},topics:{usage:"agentsmesh lessons topics"},show:{usage:"agentsmesh lessons show <topic|lesson-id>",example:"agentsmesh lessons show build",summary:"a topic, or one lesson by id with its triggers resolved"},deprecate:{usage:"agentsmesh lessons deprecate <id> [--superseded-by <id>]",example:"agentsmesh lessons deprecate build-old-rule --superseded-by build-new-rule"},merge:{usage:"agentsmesh lessons merge <loser-id> <keeper-id>",example:"agentsmesh lessons merge build-duplicate build-canonical"},untrigger:{usage:"agentsmesh lessons untrigger <lesson-id> <trigger-id>",example:"agentsmesh lessons untrigger build-old-rule t-kw-8bdcf7aa",summary:"detach a trigger; GCs it if now unused"},"strip-markers":{usage:"agentsmesh lessons strip-markers [--dry-run]",example:"agentsmesh lessons strip-markers --dry-run"},journal:{usage:"agentsmesh lessons journal"},validate:{usage:"agentsmesh lessons validate"},stats:{usage:"agentsmesh lessons stats [--json]",summary:"recall telemetry summary; needs AGENTSMESH_LESSONS_TELEMETRY=1"},prune:{usage:"agentsmesh lessons prune [--apply] [--cap <n>]",example:"agentsmesh lessons prune --apply",summary:"dry-run by default; trims over-cap lessons + dead triggers"},"import-md":{usage:"agentsmesh lessons import-md [--merge] [--force] [--migrated-at <ISO date>]",example:"agentsmesh lessons import-md --merge"}},qC=Object.keys(fi);function hd(){let e=fi.add;return `
161
+ `));}var xu=d(()=>{se();zI();s(Au,"renderMatrix");});function QC(e){let t=Object.keys(e);return {async route(r,n,o){let i=e[r];if(i){await i(n,o);return}throw new Error(`Unknown command "${r}". Available: ${t.join(", ")}`)},commands:s(()=>[...t],"commands")}}s(QC,"createRouter");se();var fi={query:{usage:"agentsmesh lessons query [--file <path>] [--cmd <command>] [--keyword <text>] [--format plain|md|json] [--top <n>] [--all] [--max-tokens <n>] [--session <id>] [--no-dedup] [--ids]",example:'agentsmesh lessons query --file src/app/page.tsx --cmd "git commit -m wip"'},add:{usage:'agentsmesh lessons add "<rule>" --topic <id> [--trigger-file <glob>]... [--trigger-cmd <regex>]... [--trigger-kw <text>]... [--evidence <ref>]... [--rationale <text>] [--new-topic --topic-summary "..."]',example:'agentsmesh lessons add "Run tsc --noEmit before committing type changes" --topic build --trigger-file "src/**/*.ts" --evidence commit:abc1234'},topics:{usage:"agentsmesh lessons topics"},show:{usage:"agentsmesh lessons show <topic|lesson-id>",example:"agentsmesh lessons show build",summary:"a topic, or one lesson by id with its triggers resolved"},deprecate:{usage:"agentsmesh lessons deprecate <id> [--superseded-by <id>]",example:"agentsmesh lessons deprecate build-old-rule --superseded-by build-new-rule"},merge:{usage:"agentsmesh lessons merge <loser-id> <keeper-id>",example:"agentsmesh lessons merge build-duplicate build-canonical"},untrigger:{usage:"agentsmesh lessons untrigger <lesson-id> <trigger-id>",example:"agentsmesh lessons untrigger build-old-rule t-kw-8bdcf7aa",summary:"detach a trigger; GCs it if now unused"},"strip-markers":{usage:"agentsmesh lessons strip-markers [--dry-run]",example:"agentsmesh lessons strip-markers --dry-run"},journal:{usage:"agentsmesh lessons journal"},validate:{usage:"agentsmesh lessons validate"},stats:{usage:"agentsmesh lessons stats [--json]",summary:"recall telemetry summary; needs AGENTSMESH_LESSONS_TELEMETRY=1"},prune:{usage:"agentsmesh lessons prune [--apply] [--cap <n>]",example:"agentsmesh lessons prune --apply",summary:"dry-run by default; trims over-cap lessons + dead triggers"},"import-md":{usage:"agentsmesh lessons import-md [--merge] [--force] [--migrated-at <ISO date>]",example:"agentsmesh lessons import-md --merge"}},tE=Object.keys(fi);function _d(){let e=fi.add;return `
162
162
  Usage: ${e.usage}
163
- Example: ${e.example}`}s(hd,"lessonsAddHint");var yd=[{name:"--help",description:"Show this help output and exit"},{name:"--version",description:"Print CLI version and exit"},{name:"--verbose",description:"Show full error details on failure"},{name:"--json",description:"Output machine-readable JSON (single envelope to stdout)"}],Ny=[{name:"init",usage:"agentsmesh init [flags]",description:"Create agentsmesh.yaml, agentsmesh.local.yaml, and canonical .agentsmesh scaffold",flags:[{name:"--global",description:"Initialize canonical home config under ~/.agentsmesh/ (global targets include claude-code, antigravity, codex-cli, cursor, gemini-cli, kilo-code)"},{name:"--yes",description:"Auto-import detected tool configs, then add example scaffold only under empty canonical paths"},{name:"--lessons",description:"Scaffold the lessons recall + capture subsystem under .agentsmesh/lessons/ and append the procedural rule to .agentsmesh/rules/_root.md. Project mode only. Safe to run on an already-initialized project to retroactively add the subsystem."}]},{name:"generate",usage:"agentsmesh generate [flags]",description:"Generate target files from canonical sources",flags:[{name:"--global",description:"Generate user-level config from ~/.agentsmesh/ (e.g. claude-code, antigravity, codex-cli, gemini-cli, kilo-code; Cursor writes ~/.cursor/rules, ~/.cursor/AGENTS.md, hooks, ignore, MCP, skills, agents, commands; legacy ~/.agentsmesh-exports/cursor/user-rules.md is import-only)"},{name:"--targets <csv>",description:"Limit generation to target IDs (comma-separated)"},{name:"--check",description:"Check drift only; exit non-zero when out of sync"},{name:"--dry-run",description:"Preview file changes without writing outputs"},{name:"--force",description:"Bypass lock-strategy blocked feature violations"},{name:"--refresh-cache",description:"Refresh remote extends cache before loading"},{name:"--no-cache",description:"Alias for --refresh-cache"}]},{name:"import",usage:"agentsmesh import --from <target> [flags]",description:"Import existing tool config into canonical .agentsmesh files",flags:[{name:"--from <target>",description:"Source tool ID to import from (required)"},{name:"--global",description:"Import from user-level paths into ~/.agentsmesh/ (claude-code, antigravity, codex-cli, gemini-cli, kilo-code; cursor reads ~/.cursor/{rules,AGENTS.md,mcp.json,hooks.json,cursorignore,skills,agents,commands} and legacy ~/.agentsmesh-exports/cursor/user-rules.md)"}]},{name:"convert",usage:"agentsmesh convert --from <target> --to <target> [flags]",description:"Convert configuration directly from one tool to another",flags:[{name:"--from <target>",description:"Source tool ID to convert from (required)"},{name:"--to <target>",description:"Destination tool ID to convert to (required)"},{name:"--global",description:"Convert user-level config (use home directory paths)"},{name:"--dry-run",description:"Preview conversion without writing files"}]},{name:"install",usage:"agentsmesh install <source> [flags]",description:"Install rules/commands/agents/skills from a local path or remote repo. Auto-classifies anthropic-skill-pack / canonical-agentsmesh / tool-native sources. When auto-detection is ambiguous or refuses a non-standard layout, override with: --path <dir> to narrow scope, --as <kind> to force a flat collection (rules|commands|agents|skills), --target <id> to lock the native importer, or --all to install every sub-pack of a marketplace.",flags:[{name:"<source>",description:"GitHub/GitLab/tree/blob URL, git+ URL, SSH, or local path"},{name:"--sync",description:"Reinstall missing packs recorded in .agentsmesh/installs.yaml"},{name:"--path <dir>",description:"Subdirectory inside source repo when not embedded in URL"},{name:"--target <id>",description:"Native format used for import-at-root discovery (same as extends.target)"},{name:"--as <kind>",description:"Manual collection mode: rules, commands, agents, or skills"},{name:"--name <id>",description:"Override generated install entry/pack name"},{name:"--extends",description:"Write install as extends entry instead of materialized pack"},{name:"--dry-run",description:"Preview only (no YAML write, no pack write, no generate)"},{name:"--global",description:"Install into ~/.agentsmesh/ and regenerate user-level config"},{name:"--all",description:"Install every sub-pack from a marketplace source"},{name:"--force",description:"Non-interactive mode; include invalid resources and skip selection prompts (implied by --json)"},{name:"--accept-hooks",description:"Trust hooks.yaml from a non-local source. Stripped by default \u2014 hook commands run as shell on tool events."},{name:"--accept-permissions",description:"Trust permissions.yaml from a non-local source. Stripped by default \u2014 grants allowlist tool capabilities."},{name:"--accept-mcp",description:"Trust mcp.json from a non-local source. Stripped by default \u2014 MCP launch specs spawn child processes."},{name:"--accept-elevated",description:"Convenience for --accept-hooks --accept-permissions --accept-mcp together."}]},{name:"installs",usage:"agentsmesh installs <subcommand> [flags]",description:"Read-only inventory of installed packs (subcommands: list)",flags:[{name:"list",description:"List installed packs (NAME, SOURCE, FEATURES, INSTALLED)"},{name:"--global",description:"Read from ~/.agentsmesh/installs.yaml"}]},{name:"uninstall",usage:"agentsmesh uninstall <name>[,<name>...] [flags]",description:"Remove an installed pack; cleans installs.yaml, extends, and generated outputs",flags:[{name:"<name>",description:"Install entry name from installs.yaml (comma-separated for batch)"},{name:"--all",description:"Remove every installed pack in this scope"},{name:"--keep-pack",description:"Keep .agentsmesh/packs/<name>/ on disk; only drop yaml/extends entries"},{name:"--keep-generated",description:"Skip the post-uninstall generate pass; warn about stale target files"},{name:"--global",description:"Uninstall from ~/.agentsmesh/"},{name:"--dry-run",description:"Preview removal plan; no writes"},{name:"--force",description:"Non-interactive mode; accept all prompts (delete-anyway on modifications). Implied by --json."}]},{name:"refresh",usage:"agentsmesh refresh [<name>...] [flags]",description:"Re-fetch and re-apply installed packs from their recorded sources",flags:[{name:"<name>",description:"Pack name(s) to refresh (defaults to all installed packs)"},{name:"--dry-run",description:"Preview what would be refreshed without writing"},{name:"--force",description:"Skip drift-consent prompts; refresh even modified packs"},{name:"--global",description:"Refresh packs installed in ~/.agentsmesh/"}]},{name:"diff",usage:"agentsmesh diff [flags]",description:"Show patch-style output for what generate would change",flags:[{name:"--global",description:"Diff against outputs generated from ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit diff to target IDs (comma-separated)"}]},{name:"lint",usage:"agentsmesh lint [flags]",description:"Validate canonical files against target constraints",flags:[{name:"--global",description:"Lint canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit linting to target IDs (comma-separated)"}]},{name:"watch",usage:"agentsmesh watch [flags]",description:"Watch canonical files and regenerate on change",flags:[{name:"--global",description:"Watch ~/.agentsmesh/ and regenerate user-level config"},{name:"--targets <csv>",description:"Limit watched generate/matrix output to target IDs"}]},{name:"check",usage:"agentsmesh check",description:"Verify canonical files still match .agentsmesh/.lock",flags:[{name:"--global",description:"Check ~/.agentsmesh/.lock"}]},{name:"merge",usage:"agentsmesh merge",description:"Resolve .agentsmesh/.lock merge conflicts from current canonical state",flags:[{name:"--global",description:"Resolve ~/.agentsmesh/.lock conflicts"}]},{name:"matrix",usage:"agentsmesh matrix [flags]",description:"Print compatibility matrix for enabled features and targets",flags:[{name:"--global",description:"Show matrix for canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit matrix columns to target IDs"},{name:"--verbose",description:"Include expanded feature details in matrix output"}]},{name:"target",usage:"agentsmesh target scaffold <id> [--name <displayName>] [--force]",description:"Generate a new target skeleton (files, tests, fixture) under src/targets/<id>/.",flags:[{name:"--name <displayName>",description:"Human-readable name (defaults to id)"},{name:"--force",description:"Overwrite existing files"}]},{name:"plugin",usage:"agentsmesh plugin <add|list|remove|info> [args] [flags]",description:"Manage plugin-provided targets (npm packages exporting a TargetDescriptor).",flags:[{name:"--version <v>",description:"Pin plugin version (add)"},{name:"--id <id>",description:"Override derived plugin id (add)"}]},{name:"mcp",usage:"agentsmesh mcp",description:"Start the agentsmesh MCP server (stdio)",flags:[]},{name:"lessons",usage:"agentsmesh lessons <subcommand> [args] [flags]",description:`Query and capture lessons from .agentsmesh/lessons/lessons.json. Subcommands: ${qC.join(", ")}.`,flags:[{name:"--file <path>",description:"query: project-relative path of the file about to be edited"},{name:"--cmd <command>",description:"query: shell command about to run"},{name:"--keyword <text>",description:"query: free-form task description"},{name:"--format plain|md|json",description:"query: output format (default plain)"},{name:"--top <n>",description:"query: keep the top n ranked matches (default 10)"},{name:"--all",description:"query: return every match (no cap)"},{name:"--max-tokens <n>",description:"query: cap results by cumulative rule-token cost"},{name:'--rule "<text>"',description:"add: imperative rule (required)"},{name:"--topic <id>",description:"add: topic id (required; use --new-topic for new)"},{name:"--trigger-file <glob>",description:"add: file_glob trigger (repeat the flag; value is opaque)"},{name:"--trigger-cmd <regex>",description:"add: command_pattern trigger, valid regex (repeat the flag)"},{name:"--trigger-kw <text>",description:"add: keyword trigger (repeat the flag; value is opaque)"},{name:"--evidence <ref>",description:"add: evidence reference (commit:SHA, lesson:id, \u2026)"},{name:"--rationale <text>",description:"add: optional why-this-matters note stored on the lesson"},{name:'--new-topic --topic-summary "..."',description:"add: create a new topic"},{name:"--superseded-by <id>",description:"deprecate: replacement lesson id"},{name:"--dry-run",description:"strip-markers: preview changes; report the count without writing"},{name:"--json",description:"stats: emit the recall-telemetry report as JSON instead of the text summary"},{name:"--apply",description:"prune: write the curation (dry-run by default)"},{name:"--cap <n>",description:"prune: override the per-lesson trigger cap"},{name:"--merge",description:"import-md: fold legacy lessons into an existing lessons.json (recover stranded)"},{name:"--force",description:"import-md: overwrite existing lessons.json"},{name:"--migrated-at <ISO date>",description:"import-md: stamp on imported lessons"}]}];function Hl(e,t=18){if(e.length===0)return " (no command-specific flags)";let r=Math.max(t,...e.map(n=>n.name.length+2));return e.map(n=>` ${n.name.padEnd(r)}${n.description}`).join(`
164
- `)}s(Hl,"formatFlags");function vy(){let e=Ny.map(t=>`- ${t.name.padEnd(8)} ${t.description}
163
+ Example: ${e.example}`}s(_d,"lessonsAddHint");var Sd=[{name:"--help",description:"Show this help output and exit"},{name:"--version",description:"Print CLI version and exit"},{name:"--verbose",description:"Show full error details on failure"},{name:"--json",description:"Output machine-readable JSON (single envelope to stdout)"}],My=[{name:"init",usage:"agentsmesh init [flags]",description:"Create agentsmesh.yaml, agentsmesh.local.yaml, and canonical .agentsmesh scaffold",flags:[{name:"--global",description:"Initialize canonical home config under ~/.agentsmesh/ (global targets include claude-code, antigravity, codex-cli, cursor, gemini-cli, kilo-code)"},{name:"--yes",description:"Auto-import detected tool configs, then add example scaffold only under empty canonical paths"},{name:"--lessons",description:"Scaffold the lessons recall + capture subsystem under .agentsmesh/lessons/ and append the procedural rule to .agentsmesh/rules/_root.md. Project mode only. Safe to run on an already-initialized project to retroactively add the subsystem."}]},{name:"generate",usage:"agentsmesh generate [flags]",description:"Generate target files from canonical sources",flags:[{name:"--global",description:"Generate user-level config from ~/.agentsmesh/ (e.g. claude-code, antigravity, codex-cli, gemini-cli, kilo-code; Cursor writes ~/.cursor/rules, ~/.cursor/AGENTS.md, hooks, ignore, MCP, skills, agents, commands; legacy ~/.agentsmesh-exports/cursor/user-rules.md is import-only)"},{name:"--targets <csv>",description:"Limit generation to target IDs (comma-separated)"},{name:"--check",description:"Check drift only; exit non-zero when out of sync"},{name:"--dry-run",description:"Preview file changes without writing outputs"},{name:"--force",description:"Bypass lock-strategy blocked feature violations"},{name:"--refresh-cache",description:"Refresh remote extends cache before loading"},{name:"--no-cache",description:"Alias for --refresh-cache"}]},{name:"import",usage:"agentsmesh import --from <target> [flags]",description:"Import existing tool config into canonical .agentsmesh files",flags:[{name:"--from <target>",description:"Source tool ID to import from (required)"},{name:"--global",description:"Import from user-level paths into ~/.agentsmesh/ (claude-code, antigravity, codex-cli, gemini-cli, kilo-code; cursor reads ~/.cursor/{rules,AGENTS.md,mcp.json,hooks.json,cursorignore,skills,agents,commands} and legacy ~/.agentsmesh-exports/cursor/user-rules.md)"}]},{name:"convert",usage:"agentsmesh convert --from <target> --to <target> [flags]",description:"Convert configuration directly from one tool to another",flags:[{name:"--from <target>",description:"Source tool ID to convert from (required)"},{name:"--to <target>",description:"Destination tool ID to convert to (required)"},{name:"--global",description:"Convert user-level config (use home directory paths)"},{name:"--dry-run",description:"Preview conversion without writing files"}]},{name:"install",usage:"agentsmesh install <source> [flags]",description:"Install rules/commands/agents/skills from a local path or remote repo. Auto-classifies anthropic-skill-pack / canonical-agentsmesh / tool-native sources. When auto-detection is ambiguous or refuses a non-standard layout, override with: --path <dir> to narrow scope, --as <kind> to force a flat collection (rules|commands|agents|skills), --target <id> to lock the native importer, or --all to install every sub-pack of a marketplace.",flags:[{name:"<source>",description:"GitHub/GitLab/tree/blob URL, git+ URL, SSH, or local path"},{name:"--sync",description:"Reinstall missing packs recorded in .agentsmesh/installs.yaml"},{name:"--path <dir>",description:"Subdirectory inside source repo when not embedded in URL"},{name:"--target <id>",description:"Native format used for import-at-root discovery (same as extends.target)"},{name:"--as <kind>",description:"Manual collection mode: rules, commands, agents, or skills"},{name:"--name <id>",description:"Override generated install entry/pack name"},{name:"--extends",description:"Write install as extends entry instead of materialized pack"},{name:"--dry-run",description:"Preview only (no YAML write, no pack write, no generate)"},{name:"--global",description:"Install into ~/.agentsmesh/ and regenerate user-level config"},{name:"--all",description:"Install every sub-pack from a marketplace source"},{name:"--force",description:"Non-interactive mode; include invalid resources and skip selection prompts (implied by --json)"},{name:"--accept-hooks",description:"Trust hooks.yaml from a non-local source. Stripped by default \u2014 hook commands run as shell on tool events."},{name:"--accept-permissions",description:"Trust permissions.yaml from a non-local source. Stripped by default \u2014 grants allowlist tool capabilities."},{name:"--accept-mcp",description:"Trust mcp.json from a non-local source. Stripped by default \u2014 MCP launch specs spawn child processes."},{name:"--accept-elevated",description:"Convenience for --accept-hooks --accept-permissions --accept-mcp together."}]},{name:"installs",usage:"agentsmesh installs <subcommand> [flags]",description:"Read-only inventory of installed packs (subcommands: list)",flags:[{name:"list",description:"List installed packs (NAME, SOURCE, FEATURES, INSTALLED)"},{name:"--global",description:"Read from ~/.agentsmesh/installs.yaml"}]},{name:"uninstall",usage:"agentsmesh uninstall <name>[,<name>...] [flags]",description:"Remove an installed pack; cleans installs.yaml, extends, and generated outputs",flags:[{name:"<name>",description:"Install entry name from installs.yaml (comma-separated for batch)"},{name:"--all",description:"Remove every installed pack in this scope"},{name:"--keep-pack",description:"Keep .agentsmesh/packs/<name>/ on disk; only drop yaml/extends entries"},{name:"--keep-generated",description:"Skip the post-uninstall generate pass; warn about stale target files"},{name:"--global",description:"Uninstall from ~/.agentsmesh/"},{name:"--dry-run",description:"Preview removal plan; no writes"},{name:"--force",description:"Non-interactive mode; accept all prompts (delete-anyway on modifications). Implied by --json."}]},{name:"refresh",usage:"agentsmesh refresh [<name>...] [flags]",description:"Re-fetch and re-apply installed packs from their recorded sources",flags:[{name:"<name>",description:"Pack name(s) to refresh (defaults to all installed packs)"},{name:"--dry-run",description:"Preview what would be refreshed without writing"},{name:"--force",description:"Skip drift-consent prompts; refresh even modified packs"},{name:"--global",description:"Refresh packs installed in ~/.agentsmesh/"}]},{name:"diff",usage:"agentsmesh diff [flags]",description:"Show patch-style output for what generate would change",flags:[{name:"--global",description:"Diff against outputs generated from ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit diff to target IDs (comma-separated)"}]},{name:"lint",usage:"agentsmesh lint [flags]",description:"Validate canonical files against target constraints",flags:[{name:"--global",description:"Lint canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit linting to target IDs (comma-separated)"}]},{name:"watch",usage:"agentsmesh watch [flags]",description:"Watch canonical files and regenerate on change",flags:[{name:"--global",description:"Watch ~/.agentsmesh/ and regenerate user-level config"},{name:"--targets <csv>",description:"Limit watched generate/matrix output to target IDs"}]},{name:"check",usage:"agentsmesh check",description:"Verify canonical files still match .agentsmesh/.lock",flags:[{name:"--global",description:"Check ~/.agentsmesh/.lock"}]},{name:"merge",usage:"agentsmesh merge",description:"Resolve .agentsmesh/.lock merge conflicts from current canonical state",flags:[{name:"--global",description:"Resolve ~/.agentsmesh/.lock conflicts"}]},{name:"matrix",usage:"agentsmesh matrix [flags]",description:"Print compatibility matrix for enabled features and targets",flags:[{name:"--global",description:"Show matrix for canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit matrix columns to target IDs"},{name:"--verbose",description:"Include expanded feature details in matrix output"}]},{name:"target",usage:"agentsmesh target scaffold <id> [--name <displayName>] [--force]",description:"Generate a new target skeleton (files, tests, fixture) under src/targets/<id>/.",flags:[{name:"--name <displayName>",description:"Human-readable name (defaults to id)"},{name:"--force",description:"Overwrite existing files"}]},{name:"plugin",usage:"agentsmesh plugin <add|list|remove|info> [args] [flags]",description:"Manage plugin-provided targets (npm packages exporting a TargetDescriptor).",flags:[{name:"--version <v>",description:"Pin plugin version (add)"},{name:"--id <id>",description:"Override derived plugin id (add)"}]},{name:"mcp",usage:"agentsmesh mcp",description:"Start the agentsmesh MCP server (stdio)",flags:[]},{name:"lessons",usage:"agentsmesh lessons <subcommand> [args] [flags]",description:`Query and capture lessons from .agentsmesh/lessons/lessons.json. Subcommands: ${tE.join(", ")}.`,flags:[{name:"--file <path>",description:"query: project-relative path of the file about to be edited"},{name:"--cmd <command>",description:"query: shell command about to run"},{name:"--keyword <text>",description:"query: free-form task description"},{name:"--format plain|md|json",description:"query: output format (default plain)"},{name:"--top <n>",description:"query: keep the top n ranked matches (default 10)"},{name:"--all",description:"query: return every match (no cap)"},{name:"--max-tokens <n>",description:"query: cap results by cumulative rule-token cost"},{name:'--rule "<text>"',description:"add: imperative rule (required)"},{name:"--topic <id>",description:"add: topic id (required; use --new-topic for new)"},{name:"--trigger-file <glob>",description:"add: file_glob trigger (repeat the flag; value is opaque)"},{name:"--trigger-cmd <regex>",description:"add: command_pattern trigger, valid regex (repeat the flag)"},{name:"--trigger-kw <text>",description:"add: keyword trigger (repeat the flag; value is opaque)"},{name:"--evidence <ref>",description:"add: evidence reference (commit:SHA, lesson:id, \u2026)"},{name:"--rationale <text>",description:"add: optional why-this-matters note stored on the lesson"},{name:'--new-topic --topic-summary "..."',description:"add: create a new topic"},{name:"--superseded-by <id>",description:"deprecate: replacement lesson id"},{name:"--dry-run",description:"strip-markers: preview changes; report the count without writing"},{name:"--json",description:"stats: emit the recall-telemetry report as JSON instead of the text summary"},{name:"--apply",description:"prune: write the curation (dry-run by default)"},{name:"--cap <n>",description:"prune: override the per-lesson trigger cap"},{name:"--merge",description:"import-md: fold legacy lessons into an existing lessons.json (recover stranded)"},{name:"--force",description:"import-md: overwrite existing lessons.json"},{name:"--migrated-at <ISO date>",description:"import-md: stamp on imported lessons"}]}];function Vl(e,t=18){if(e.length===0)return " (no command-specific flags)";let r=Math.max(t,...e.map(n=>n.name.length+2));return e.map(n=>` ${n.name.padEnd(r)}${n.description}`).join(`
164
+ `)}s(Vl,"formatFlags");function Gy(){let e=My.map(t=>`- ${t.name.padEnd(8)} ${t.description}
165
165
  Usage: ${t.usage}
166
- ${Hl(t.flags)}`).join(`
166
+ ${Vl(t.flags)}`).join(`
167
167
 
168
168
  `);y.info(`agentsmesh <command> [flags]
169
169
 
170
170
  Global flags:
171
- ${Hl(yd)}
171
+ ${Vl(Sd)}
172
172
 
173
173
  Commands:
174
174
  ${e}
175
175
 
176
- Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(vy,"printHelp");function _d(e,t=[]){let r=Ny.find(o=>o.name===e);if(!r){vy();return}let n=t[0];if(e==="lessons"&&n!==void 0&&n.length>0){pV(r,n);return}y.info(`${r.usage}
176
+ Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(Gy,"printHelp");function Rd(e,t=[]){let r=My.find(o=>o.name===e);if(!r){Gy();return}let n=t[0];if(e==="lessons"&&n!==void 0&&n.length>0){SV(r,n);return}y.info(`${r.usage}
177
177
 
178
178
  ${r.description}
179
179
 
180
180
  Command flags:
181
- ${Hl(r.flags)}
181
+ ${Vl(r.flags)}
182
182
 
183
183
  Global flags:
184
- ${Hl(yd)}`);}s(_d,"printCommandHelp");function pV(e,t){let r=e.flags.filter(i=>i.description.startsWith(`${t}:`)).map(i=>({name:i.name,description:i.description.slice(t.length+1).trim()})),n=fi[t],o=n?.example!==void 0?`
184
+ ${Vl(Sd)}`);}s(Rd,"printCommandHelp");function SV(e,t){let r=e.flags.filter(i=>i.description.startsWith(`${t}:`)).map(i=>({name:i.name,description:i.description.slice(t.length+1).trim()})),n=fi[t],o=n?.example!==void 0?`
185
185
 
186
186
  Example:
187
187
  ${n.example}`:"";y.info(`${n?.usage??`agentsmesh lessons ${t} [flags]`}
188
188
 
189
189
  Command flags:
190
- ${Hl(r)}
190
+ ${Vl(r)}
191
191
 
192
192
  Global flags:
193
- ${Hl(yd)}${o}`);}s(pV,"printLessonsSubcommandHelp");var Sd;function gV(){try{let e=createRequire(import.meta.url),t=dirname(fileURLToPath(import.meta.url)),r=t.endsWith("dist")?join(t,"..","package.json"):join(t,"..","..","package.json");return e(r).version}catch{return}}s(gV,"readPackageVersion");function hV(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let e=globalThis.__AGENTSMESH_VERSION__;return typeof e=="string"?e:"unknown"}s(hV,"getVersionFallback");function ya(){return Sd||(Sd=gV()??hV(),Sd)}s(ya,"getVersion");function eE(){process.stdout.write(`agentsmesh v${ya()}
194
- `);}s(eE,"printVersion");se();function zl(e,t){let r={success:t.success,command:e};t.success?r.data=t.data:(r.error=t.error,t.data!==void 0&&(r.data=t.data)),process.stdout.write(JSON.stringify(r)+`
195
- `);}s(zl,"emitJson");var Wn=class extends Error{static{s(this,"CliUsageError");}constructor(t){super(t),this.name="CliUsageError";}};function tE(e,t){let r=e instanceof Wn?2:1;if(t?.json)return zl(t.command??"unknown",{success:false,error:e.message}),process.exit(r);t?.verbose&&e.stack?process.stderr.write(e.stack+`
196
- `):y.error(e.message),process.exit(r);}s(tE,"handleError");se();function at(e,t,r,n){if(r.json===true){let o=t.exitCode===0,i=t.error!==void 0&&t.error.length>0?t.error:`Command '${e}' failed`;zl(e,o?{success:true,data:t.data}:{success:false,error:i,data:t.data}),process.exit(t.exitCode);return}n(),t.exitCode!==0&&process.exit(t.exitCode);}s(at,"handleResult");tt();Ho();b();Id();function rh(e){return createHash("sha256").update(e,"utf8").digest("hex")}s(rh,"hashContent");async function nh(e){try{let t=await readFile(e);return createHash("sha256").update(t).digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(nh,"hashFile");async function oh(e){try{if(!Rd(e)){let r=await readFile(e);return createHash("sha256").update(r).digest("hex")}let t=await readFile(e,"utf-8");return t.startsWith(Yl)&&(t=t.slice(Yl.length)),t=kd(t),createHash("sha256").update(t,"utf8").digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(oh,"hashFileForManifest");lm();var OI=".lock",Q3=[e=>e.startsWith("rules/")&&e.endsWith(".md"),e=>e.startsWith("commands/")&&e.endsWith(".md"),e=>e.startsWith("agents/")&&e.endsWith(".md"),e=>e.match(/^skills\/[^/]+\/.+$/)!==null,e=>e==="mcp.json",e=>e==="permissions.yaml",e=>e==="hooks.yaml",e=>e==="ignore"];function q3(e){return e.startsWith("packs/")?false:Q3.some(t=>t(e))}s(q3,"isCanonical");var Z3={rules:s(e=>e.startsWith("rules/"),"rules"),commands:s(e=>e.startsWith("commands/"),"commands"),agents:s(e=>e.startsWith("agents/"),"agents"),skills:s(e=>/^skills\/[^/]+\/.+$/.test(e),"skills"),mcp:s(e=>e==="mcp.json","mcp"),permissions:s(e=>e==="permissions.yaml","permissions"),hooks:s(e=>e==="hooks.yaml","hooks"),ignore:s(e=>e==="ignore","ignore")};async function sh(e){let t=join(e,OI),r=await k(t);if(r===null)return null;try{let n=parse(r);return !n||typeof n!="object"?null:{generatedAt:String(n.generated_at??""),generatedBy:String(n.generated_by??""),libVersion:String(n.lib_version??""),checksums:n.checksums&&typeof n.checksums=="object"?n.checksums:{},extends:n.extends&&typeof n.extends=="object"?n.extends:{},packs:n.packs&&typeof n.packs=="object"?n.packs:{}}}catch{return null}}s(sh,"readLock");async function ih(e,t){let r=join(e,OI),n={generated_at:t.generatedAt,generated_by:t.generatedBy,lib_version:t.libVersion,checksums:t.checksums,extends:t.extends,packs:t.packs},o=`# Auto-generated. DO NOT EDIT MANUALLY.
193
+ ${Vl(Sd)}${o}`);}s(SV,"printLessonsSubcommandHelp");var kd;function LV(){try{let e=createRequire(import.meta.url),t=dirname(fileURLToPath(import.meta.url)),r=t.endsWith("dist")?join(t,"..","package.json"):join(t,"..","..","package.json");return e(r).version}catch{return}}s(LV,"readPackageVersion");function CV(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let e=globalThis.__AGENTSMESH_VERSION__;return typeof e=="string"?e:"unknown"}s(CV,"getVersionFallback");function _a(){return kd||(kd=LV()??CV(),kd)}s(_a,"getVersion");function nE(){process.stdout.write(`agentsmesh v${_a()}
194
+ `);}s(nE,"printVersion");se();function Jl(e,t){let r={success:t.success,command:e};t.success?r.data=t.data:(r.error=t.error,t.data!==void 0&&(r.data=t.data)),process.stdout.write(JSON.stringify(r)+`
195
+ `);}s(Jl,"emitJson");var Hn=class extends Error{static{s(this,"CliUsageError");}constructor(t){super(t),this.name="CliUsageError";}};function oE(e,t){let r=e instanceof Hn?2:1;if(t?.json)return Jl(t.command??"unknown",{success:false,error:e.message}),process.exit(r);t?.verbose&&e.stack?process.stderr.write(e.stack+`
196
+ `):y.error(e.message),process.exit(r);}s(oE,"handleError");se();function at(e,t,r,n){if(r.json===true){let o=t.exitCode===0,i=t.error!==void 0&&t.error.length>0?t.error:`Command '${e}' failed`;Jl(e,o?{success:true,data:t.data}:{success:false,error:i,data:t.data}),process.exit(t.exitCode);return}n(),t.exitCode!==0&&process.exit(t.exitCode);}s(at,"handleResult");tt();zo();b();Cd();function sh(e){return createHash("sha256").update(e,"utf8").digest("hex")}s(sh,"hashContent");async function ih(e){try{let t=await readFile(e);return createHash("sha256").update(t).digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(ih,"hashFile");async function ah(e){try{if(!Id(e)){let r=await readFile(e);return createHash("sha256").update(r).digest("hex")}let t=await readFile(e,"utf-8");return t.startsWith(Ql)&&(t=t.slice(Ql.length)),t=Ld(t),createHash("sha256").update(t,"utf8").digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(ah,"hashFileForManifest");mm();var bI=".lock",s4=[e=>e.startsWith("rules/")&&e.endsWith(".md"),e=>e.startsWith("commands/")&&e.endsWith(".md"),e=>e.startsWith("agents/")&&e.endsWith(".md"),e=>e.match(/^skills\/[^/]+\/.+$/)!==null,e=>e==="mcp.json",e=>e==="permissions.yaml",e=>e==="hooks.yaml",e=>e==="ignore"];function i4(e){return e.startsWith("packs/")?false:s4.some(t=>t(e))}s(i4,"isCanonical");var a4={rules:s(e=>e.startsWith("rules/"),"rules"),commands:s(e=>e.startsWith("commands/"),"commands"),agents:s(e=>e.startsWith("agents/"),"agents"),skills:s(e=>/^skills\/[^/]+\/.+$/.test(e),"skills"),mcp:s(e=>e==="mcp.json","mcp"),permissions:s(e=>e==="permissions.yaml","permissions"),hooks:s(e=>e==="hooks.yaml","hooks"),ignore:s(e=>e==="ignore","ignore")};async function lh(e){let t=join(e,bI),r=await k(t);if(r===null)return null;try{let n=parse(r);return !n||typeof n!="object"?null:{generatedAt:String(n.generated_at??""),generatedBy:String(n.generated_by??""),libVersion:String(n.lib_version??""),checksums:n.checksums&&typeof n.checksums=="object"?n.checksums:{},extends:n.extends&&typeof n.extends=="object"?n.extends:{},packs:n.packs&&typeof n.packs=="object"?n.packs:{}}}catch{return null}}s(lh,"readLock");async function ch(e,t){let r=join(e,bI),n={generated_at:t.generatedAt,generated_by:t.generatedBy,lib_version:t.libVersion,checksums:t.checksums,extends:t.extends,packs:t.packs},o=`# Auto-generated. DO NOT EDIT MANUALLY.
197
197
  # Tracks the state of all config files for team conflict resolution.
198
198
 
199
- `+stringify(n);await L(r,o);}s(ih,"writeLock");async function ii(e){if(!await j(e))return {};let t=await U(e),r={};for(let n of t){let o=relative(e,n).replace(/\\/g,"/");if(o===OI||!q3(o))continue;let i=await nh(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(ii,"buildChecksums");function ah(e,t,r){if(r.length===0)return [];let n=r.map(a=>Z3[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(e),...Object.keys(t)]),i=[];for(let a of o)n.some(l=>l(a))&&e[a]!==t[a]&&i.push(a);return i}s(ah,"detectLockedFeatureViolations");async function lh(e){let t=await eh(e),r={};for(let{meta:n}of t)r[n.name]=n.content_hash;return r}s(lh,"buildPackChecksums");async function cm(e){let t={};for(let r of e){if(r.version!==void 0){t[r.name]=r.version;continue}let n=join(r.resolvedPath,".agentsmesh"),o=await ii(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
200
- `),a=rh(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;t[r.name]=`local:${l}`;}return t}s(cm,"buildExtendChecksums");xe();rt();function mm(e){return e?(e.outputFamilies??[]).filter(t=>t.kind==="additional").flatMap(t=>[...t.explicitPaths??[]]):[]}s(mm,"getAdditionalRootDecorationPaths");function B0(e,t){for(let r of e?.outputFamilies??[])if(r.pathPrefix!==void 0&&t.startsWith(r.pathPrefix)||r.explicitPaths?.includes(t))return r.id;return "default"}s(B0,"resolveRewriteFamilyId");Rt();w_();function e4(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(e4,"addDirectoryMapping");function K0(e,t,r){let n=posix.dirname(t),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)e4(e,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(K0,"addSkillDirectoryMappings");xe();function W0(e,t,r="project"){let n=We(e,r);if(!n)return null;if(t.root)return n.rootInstructionPath??null;if(t.targets.length>0&&!t.targets.includes(e))return null;let o=posix.basename(t.source.replace(/\\/g,"/"),".md");return n.paths.rulePath(o,t)}s(W0,"ruleTargetPath");function H0(e,t,r,n="project"){let o=We(e,n);return o?o.paths.commandPath(t,r):null}s(H0,"commandTargetPath");function z0(e,t,r,n="project"){let o=We(e,n);return o?o.paths.agentPath(t,r):null}s(z0,"agentTargetPath");nt();ot();vt();xe();function n4(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(n4,"addDirectoryMapping");function wI(e,t,r,n="project"){let o=new Map;for(let a of t.rules){let l=W0(e,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of t.commands){let l=H0(e,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of t.agents){let l=z0(e,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=Su(e,n);if(!i)return o;for(let a of t.skills){n4(o,`.agentsmesh/skills/${a.name}`,`${i}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${i}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,p=`${i}/${a.name}/${c}`;o.set(m,p),K0(o,m,p);}}return o}s(wI,"buildReferenceMap");Rt();Rt();xe();function J0(e,t,r,n){let o=n.normalize(t),i=n.normalize(r);e.set(o,i),e.set(`${o}/`,`${i}/`);}s(J0,"addPackAbsoluteDirMapping");function o4(e){let t=new Set;for(let{relativePath:r}of e){let n=r.replace(/\\/g,"/"),o=posix.dirname(n);for(;o!=="."&&o.length>0;){t.add(o);let i=posix.dirname(o);if(i===o)break;o=i;}}return [...t]}s(o4,"skillSupportingDirPrefixes");function Y0(e,t,r,n,o){let i=Su(t,o);if(!i)return;let a=ce(n),l=a.join(n,".agentsmesh","packs");for(let c of r.skills){let m=a.dirname(c.source);if(!m.startsWith(l))continue;let p=a.normalize(a.join(n,i,c.name));J0(e,m,p,a),e.set(a.normalize(c.source),a.normalize(a.join(p,"SKILL.md")));for(let u of c.supportingFiles){let f=a.normalize(a.join(p,u.relativePath));e.set(a.normalize(u.absolutePath),f);}for(let u of o4(c.supportingFiles))J0(e,a.join(m,u),a.join(p,u),a);}}s(Y0,"addPackSkillArtifactMappings");Rt();function s4(e){return `.agentsmesh/rules/${basename(e.source)}`}s(s4,"canonicalRulePath");function i4(e){return `.github/instructions/${basename(e.source,".md")}.instructions.md`}s(i4,"copilotInstructionsPath");function Q0(e,t,r,n,o){if(e!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=ce(r);for(let a of o.rules)a.root||a.globs.length===0||t.set(i.normalize(i.join(r,s4(a))),i.normalize(i.join(r,i4(a))));}s(Q0,"applyCopilotInstructionArtifactRefs");xe();function bI(e,t){t!==void 0&&t.length>0&&!e.includes(t)&&e.push(t);}s(bI,"pushUnique");function q0(e,t,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(t.source)}`);bI(o,i);let a=We(e,n);if(t.root)for(let l of mm(a))bI(o,l);for(let l of a?.extraRuleOutputPaths?.(t,{refs:r,scope:n})??[])bI(o,l);return o}s(q0,"extraRuleOutputPaths");xe();function Z0(e,t,r,n,o,i){let a=We(e,t);if(!a?.mirrorGlobalPath)return;let l=a.mirrorGlobalPath(r,i??[]),c=l===null?[]:Array.isArray(l)?l:[l];for(let m of c)m!==r&&o.set(m,n);}s(Z0,"addSkillMirrorSourceEntry");function l4(e){return `.agentsmesh/commands/${e.name}.md`}s(l4,"canonicalCommandPath");function c4(e){return `.agentsmesh/agents/${e.name}.md`}s(c4,"canonicalAgentPath");function m4(e){return `.agentsmesh/skills/${e.name}/SKILL.md`}s(m4,"canonicalSkillPath");function eU(e,t,r,n,o,i){let a=i?.scope??"project",l=ce(n),c=new Map([...wI(e,t,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return Q0(e,c,n,o,t),Y0(c,e,t,n,a),c}s(eU,"buildArtifactPathMap");function tU(e,t,r,n="project",o){let i=wI(e,t,r,n),a=new Map;for(let l of t.rules)for(let c of q0(e,l,i,n))a.set(c,l.source);for(let l of t.commands){let c=i.get(l4(l));c&&a.set(c,l.source);}for(let l of t.agents){let c=i.get(c4(l));c&&a.set(c,l.source);}for(let l of t.skills){let c=i.get(m4(l));c&&(a.set(c,l.source),Z0(e,n,c,l.source,a,o));for(let m of l.supportingFiles){let p=`.agentsmesh/skills/${l.name}/${m.relativePath.replace(/\\/g,"/")}`,u=i.get(p);u&&(a.set(u,m.absolutePath),Z0(e,n,u,m.absolutePath,a,o));}}return a}s(tU,"buildOutputSourceMap");xe();rt();u_();function d4(e,t){if(!t)return null;for(let r of t){let n=re(r);if(n?.sharedArtifacts){for(let[o,i]of Object.entries(n.sharedArtifacts))if(i==="owner"&&e.startsWith(o))return r}}return null}s(d4,"findSharedArtifactOwner");function rU(e,t,r){if(t==="global"){let n=d4(e.path,r);if(n)return n;let o=aO(e.path);if(o)return o}return e.target}s(rU,"artifactMapTargetForResult");function f4(e,t){return `${e}\0${(t??[]).join(",")}`}s(f4,"sourceMapCacheKey");function AI(e,t){let r=ce(e),n=new Set;for(let o of t){let i=r.join(e,o.path);n.add(i);let a=r.dirname(i);for(;a.startsWith(e)&&!n.has(a)&&(n.add(a),a!==e);)a=r.dirname(a);}return n}s(AI,"collectPlannedPaths");function g4(e,t,r){let n=We(e.target,t),o=B0(n,e.path);if(o!=="default")return `${e.target}:${o}`;let i=rU(e,t,r);return i===e.target?e.target:`${e.target}~via~${i}`}s(g4,"artifactCacheKey");function nU(e,t,r,n,o="project",i,a){let l=AI(n,e),c=new Map,m=new Map;return e.map(p=>{if(a?.has(p.path))return p;let u=f4(p.target,i),g=(m.get(u)??(()=>{let I=tU(p.target,t,r,o,i);return m.set(u,I),I})()).get(p.path);if(!g)return p;let h=rU(p,o,i),_=g4(p,o,i),S=c.get(_)??(()=>{let I=eU(h,t,r,n,p.path,{scope:o});return c.set(_,I),I})(),R=Zd({content:p.content,projectRoot:n,sourceFile:g,destinationFile:ce(n).join(n,p.path),translatePath:s(I=>S.get(I)??I,"translatePath"),pathExists:s(I=>l.has(I)||existsSync(I),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(I=>{try{return statSync(I).isDirectory()}catch{return false}},"pathIsDirectory")});return R.content===p.content?p:{...p,content:R.content}})}s(nU,"rewriteGeneratedReferences");Rt();ki();se();var y4=/!?\[[^\]]*\]\(([^)]+)\)/g,_4=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function S4(e){return e.endsWith(".md")||e.endsWith(".mdc")}s(S4,"isMarkdownLikeOutput");function R4(e,t){return t.some(([r,n])=>e>=r&&e<n)}s(R4,"isOffsetInRanges");function k4(e){let t=e.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(t);return r?.[1]!==void 0&&(t=r[1].trim()),t.startsWith("<")&&t.endsWith(">")&&(t=t.slice(1,-1).trim()),t}s(k4,"parseMarkdownLinkDestination");function I4(e,t){let r=e.trim();if(!r||r.startsWith("#")||/^https?:\/\//i.test(r)||/^mailto:/i.test(r)||/^data:/i.test(r)||/^javascript:/i.test(r)||/^ftp:/i.test(r))return true;if(/^[a-zA-Z]:[\\/]/.test(r))return false;if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(r))return true;if(r.startsWith("/")){let n=q(t,t),o=q(t,r);if(!o.startsWith(`${n}/`)&&o!==n)return true}return false}s(I4,"shouldSkipLocalValidation");function L4(e){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(e)}s(L4,"isSkillGeneratedOutput");var C4={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},E4={".clinerules":"rules"},O4=[".agent.md",".instructions.md",".prompt.md"];function oU(e){for(let t of O4)if(e.endsWith(t))return e.slice(0,-t.length);return e.endsWith(".mdc")?e.slice(0,-4):e.endsWith(".md")?e.slice(0,-3):e}s(oU,"stripMarkdownExt");function w4(e){let t=/^[^/]+\/([^/]+)\/([^/]+)/.exec(e);if(t){let n=C4[t[1]??""];if(n){let o=t[2]??"";return n!=="skills"&&(o=oU(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(e);if(r){let n=E4[r[1]??""];if(n)return `${n}/${oU(r[2]??"")}`}return null}s(w4,"canonicalKeyFromOutputPath");function b4(e,t){if(t.has(e))return true;try{let r=statSync(e);return r.isFile()||r.isDirectory()}catch{return false}}s(b4,"pathExistsForGenerate");function A4(e,t,r){let o=k4(e).split("#")[0]??"",{candidate:i}=mc(o),a=i,l=pc.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(I4(c,t))return [];let m=up(c,t,r);if(m.length===0){let u=ce(t),f=q(t,r);m=[q(t,u.join(u.dirname(f),c)),q(t,u.join(t,c))];}let p=[];for(let u of m)for(let f of dp(t,u)){let g=q(t,f);p.includes(g)||p.push(g);}return p}s(A4,"resolveMarkdownLinkTargets");function x4(e,t){let r=AI(t,e),n=[];for(let o of e){if(!S4(o.path))continue;let i=q(t,ce(t).join(t,o.path)),a=qd(o.content),l=s((c,m)=>{if(R4(m,a))return;let p=A4(c,t,i);p.length!==0&&(p.some(u=>b4(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(y4)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(_4)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(x4,"findBrokenMarkdownLinks");function sU(e,t,r={}){let n=x4(e,t);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=w4(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);L4(c.generatePath)||p?a.push(c):i.push(c);}if(a.length>0){let c=a.map(m=>` ${m.generatePath} (${m.target}): "${m.rawLink}" \u2192 not found`);y.warn(`Third-party content contains ${a.length} broken local link${a.length===1?"":"s"} (warning only; outputs from installed packs and skill subtrees are treated as advisory):
199
+ `+stringify(n);await L(r,o);}s(ch,"writeLock");async function ii(e){if(!await j(e))return {};let t=await gi(e),r={};for(let n of t){let o=relative(e,n).replace(/\\/g,"/");if(o===bI||!i4(o))continue;let i=await ih(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(ii,"buildChecksums");function mh(e,t,r){if(r.length===0)return [];let n=r.map(a=>a4[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(e),...Object.keys(t)]),i=[];for(let a of o)n.some(l=>l(a))&&e[a]!==t[a]&&i.push(a);return i}s(mh,"detectLockedFeatureViolations");async function ph(e){let t=await nh(e),r={};for(let{meta:n}of t)r[n.name]=n.content_hash;return r}s(ph,"buildPackChecksums");async function pm(e){let t={};for(let r of e){if(r.version!==void 0){t[r.name]=r.version;continue}let n=join(r.resolvedPath,".agentsmesh"),o=await ii(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
200
+ `),a=sh(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;t[r.name]=`local:${l}`;}return t}s(pm,"buildExtendChecksums");xe();rt();function um(e){return e?(e.outputFamilies??[]).filter(t=>t.kind==="additional").flatMap(t=>[...t.explicitPaths??[]]):[]}s(um,"getAdditionalRootDecorationPaths");function J0(e,t){for(let r of e?.outputFamilies??[])if(r.pathPrefix!==void 0&&t.startsWith(r.pathPrefix)||r.explicitPaths?.includes(t))return r.id;return "default"}s(J0,"resolveRewriteFamilyId");Rt();A_();function l4(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(l4,"addDirectoryMapping");function Y0(e,t,r){let n=posix.dirname(t),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)l4(e,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(Y0,"addSkillDirectoryMappings");xe();function X0(e,t,r="project"){let n=We(e,r);if(!n)return null;if(t.root)return n.rootInstructionPath??null;if(t.targets.length>0&&!t.targets.includes(e))return null;let o=posix.basename(t.source.replace(/\\/g,"/"),".md");return n.paths.rulePath(o,t)}s(X0,"ruleTargetPath");function Q0(e,t,r,n="project"){let o=We(e,n);return o?o.paths.commandPath(t,r):null}s(Q0,"commandTargetPath");function q0(e,t,r,n="project"){let o=We(e,n);return o?o.paths.agentPath(t,r):null}s(q0,"agentTargetPath");nt();ot();vt();xe();function p4(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(p4,"addDirectoryMapping");function AI(e,t,r,n="project"){let o=new Map;for(let a of t.rules){let l=X0(e,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of t.commands){let l=Q0(e,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of t.agents){let l=q0(e,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=Ru(e,n);if(!i)return o;for(let a of t.skills){p4(o,`.agentsmesh/skills/${a.name}`,`${i}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${i}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,p=`${i}/${a.name}/${c}`;o.set(m,p),Y0(o,m,p);}}return o}s(AI,"buildReferenceMap");Rt();Rt();xe();function eU(e,t,r,n){let o=n.normalize(t),i=n.normalize(r);e.set(o,i),e.set(`${o}/`,`${i}/`);}s(eU,"addPackAbsoluteDirMapping");function u4(e){let t=new Set;for(let{relativePath:r}of e){let n=r.replace(/\\/g,"/"),o=posix.dirname(n);for(;o!=="."&&o.length>0;){t.add(o);let i=posix.dirname(o);if(i===o)break;o=i;}}return [...t]}s(u4,"skillSupportingDirPrefixes");function tU(e,t,r,n,o){let i=Ru(t,o);if(!i)return;let a=ce(n),l=a.join(n,".agentsmesh","packs");for(let c of r.skills){let m=a.dirname(c.source);if(!m.startsWith(l))continue;let p=a.normalize(a.join(n,i,c.name));eU(e,m,p,a),e.set(a.normalize(c.source),a.normalize(a.join(p,"SKILL.md")));for(let u of c.supportingFiles){let f=a.normalize(a.join(p,u.relativePath));e.set(a.normalize(u.absolutePath),f);}for(let u of u4(c.supportingFiles))eU(e,a.join(m,u),a.join(p,u),a);}}s(tU,"addPackSkillArtifactMappings");Rt();function d4(e){return `.agentsmesh/rules/${basename(e.source)}`}s(d4,"canonicalRulePath");function f4(e){return `.github/instructions/${basename(e.source,".md")}.instructions.md`}s(f4,"copilotInstructionsPath");function nU(e,t,r,n,o){if(e!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=ce(r);for(let a of o.rules)a.root||a.globs.length===0||t.set(i.normalize(i.join(r,d4(a))),i.normalize(i.join(r,f4(a))));}s(nU,"applyCopilotInstructionArtifactRefs");xe();function xI(e,t){t!==void 0&&t.length>0&&!e.includes(t)&&e.push(t);}s(xI,"pushUnique");function oU(e,t,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(t.source)}`);xI(o,i);let a=We(e,n);if(t.root)for(let l of um(a))xI(o,l);for(let l of a?.extraRuleOutputPaths?.(t,{refs:r,scope:n})??[])xI(o,l);return o}s(oU,"extraRuleOutputPaths");xe();function sU(e,t,r,n,o,i){let a=We(e,t);if(!a?.mirrorGlobalPath)return;let l=a.mirrorGlobalPath(r,i??[]),c=l===null?[]:Array.isArray(l)?l:[l];for(let m of c)m!==r&&o.set(m,n);}s(sU,"addSkillMirrorSourceEntry");function h4(e){return `.agentsmesh/commands/${e.name}.md`}s(h4,"canonicalCommandPath");function y4(e){return `.agentsmesh/agents/${e.name}.md`}s(y4,"canonicalAgentPath");function _4(e){return `.agentsmesh/skills/${e.name}/SKILL.md`}s(_4,"canonicalSkillPath");function iU(e,t,r,n,o,i){let a=i?.scope??"project",l=ce(n),c=new Map([...AI(e,t,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return nU(e,c,n,o,t),tU(c,e,t,n,a),c}s(iU,"buildArtifactPathMap");function aU(e,t,r,n="project",o){let i=AI(e,t,r,n),a=new Map;for(let l of t.rules)for(let c of oU(e,l,i,n))a.set(c,l.source);for(let l of t.commands){let c=i.get(h4(l));c&&a.set(c,l.source);}for(let l of t.agents){let c=i.get(y4(l));c&&a.set(c,l.source);}for(let l of t.skills){let c=i.get(_4(l));c&&(a.set(c,l.source),sU(e,n,c,l.source,a,o));for(let m of l.supportingFiles){let p=`.agentsmesh/skills/${l.name}/${m.relativePath.replace(/\\/g,"/")}`,u=i.get(p);u&&(a.set(u,m.absolutePath),sU(e,n,u,m.absolutePath,a,o));}}return a}s(aU,"buildOutputSourceMap");xe();rt();f_();function k4(e,t){if(!t)return null;for(let r of t){let n=re(r);if(n?.sharedArtifacts){for(let[o,i]of Object.entries(n.sharedArtifacts))if(i==="owner"&&e.startsWith(o))return r}}return null}s(k4,"findSharedArtifactOwner");function lU(e,t,r){if(t==="global"){let n=k4(e.path,r);if(n)return n;let o=uO(e.path);if(o)return o}return e.target}s(lU,"artifactMapTargetForResult");function I4(e,t){return `${e}\0${(t??[]).join(",")}`}s(I4,"sourceMapCacheKey");function TI(e,t){let r=ce(e),n=new Set;for(let o of t){let i=r.join(e,o.path);n.add(i);let a=r.dirname(i);for(;a.startsWith(e)&&!n.has(a)&&(n.add(a),a!==e);)a=r.dirname(a);}return n}s(TI,"collectPlannedPaths");function L4(e,t,r){let n=We(e.target,t),o=J0(n,e.path);if(o!=="default")return `${e.target}:${o}`;let i=lU(e,t,r);return i===e.target?e.target:`${e.target}~via~${i}`}s(L4,"artifactCacheKey");function cU(e,t,r,n,o="project",i,a){let l=TI(n,e),c=new Map,m=new Map;return e.map(p=>{if(a?.has(p.path))return p;let u=I4(p.target,i),g=(m.get(u)??(()=>{let I=aU(p.target,t,r,o,i);return m.set(u,I),I})()).get(p.path);if(!g)return p;let h=lU(p,o,i),_=L4(p,o,i),S=c.get(_)??(()=>{let I=iU(h,t,r,n,p.path,{scope:o});return c.set(_,I),I})(),R=rf({content:p.content,projectRoot:n,sourceFile:g,destinationFile:ce(n).join(n,p.path),translatePath:s(I=>S.get(I)??I,"translatePath"),pathExists:s(I=>l.has(I)||existsSync(I),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(I=>{try{return statSync(I).isDirectory()}catch{return false}},"pathIsDirectory")});return R.content===p.content?p:{...p,content:R.content}})}s(cU,"rewriteGeneratedReferences");Rt();Ii();se();var E4=/!?\[[^\]]*\]\(([^)]+)\)/g,O4=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function w4(e){return e.endsWith(".md")||e.endsWith(".mdc")}s(w4,"isMarkdownLikeOutput");function b4(e,t){return t.some(([r,n])=>e>=r&&e<n)}s(b4,"isOffsetInRanges");function A4(e){let t=e.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(t);return r?.[1]!==void 0&&(t=r[1].trim()),t.startsWith("<")&&t.endsWith(">")&&(t=t.slice(1,-1).trim()),t}s(A4,"parseMarkdownLinkDestination");function x4(e,t){let r=e.trim();if(!r||r.startsWith("#")||/^https?:\/\//i.test(r)||/^mailto:/i.test(r)||/^data:/i.test(r)||/^javascript:/i.test(r)||/^ftp:/i.test(r))return true;if(/^[a-zA-Z]:[\\/]/.test(r))return false;if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(r))return true;if(r.startsWith("/")){let n=q(t,t),o=q(t,r);if(!o.startsWith(`${n}/`)&&o!==n)return true}return false}s(x4,"shouldSkipLocalValidation");function T4(e){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(e)}s(T4,"isSkillGeneratedOutput");var P4={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},D4={".clinerules":"rules"},N4=[".agent.md",".instructions.md",".prompt.md"];function mU(e){for(let t of N4)if(e.endsWith(t))return e.slice(0,-t.length);return e.endsWith(".mdc")?e.slice(0,-4):e.endsWith(".md")?e.slice(0,-3):e}s(mU,"stripMarkdownExt");function v4(e){let t=/^[^/]+\/([^/]+)\/([^/]+)/.exec(e);if(t){let n=P4[t[1]??""];if(n){let o=t[2]??"";return n!=="skills"&&(o=mU(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(e);if(r){let n=D4[r[1]??""];if(n)return `${n}/${mU(r[2]??"")}`}return null}s(v4,"canonicalKeyFromOutputPath");function F4(e,t){if(t.has(e))return true;try{let r=statSync(e);return r.isFile()||r.isDirectory()}catch{return false}}s(F4,"pathExistsForGenerate");function M4(e,t,r){let o=A4(e).split("#")[0]??"",{candidate:i}=uc(o),a=i,l=dc.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(x4(c,t))return [];let m=dp(c,t,r);if(m.length===0){let u=ce(t),f=q(t,r);m=[q(t,u.join(u.dirname(f),c)),q(t,u.join(t,c))];}let p=[];for(let u of m)for(let f of fp(t,u)){let g=q(t,f);p.includes(g)||p.push(g);}return p}s(M4,"resolveMarkdownLinkTargets");function G4(e,t){let r=TI(t,e),n=[];for(let o of e){if(!w4(o.path))continue;let i=q(t,ce(t).join(t,o.path)),a=tf(o.content),l=s((c,m)=>{if(b4(m,a))return;let p=M4(c,t,i);p.length!==0&&(p.some(u=>F4(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(E4)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(O4)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(G4,"findBrokenMarkdownLinks");function pU(e,t,r={}){let n=G4(e,t);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=v4(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);T4(c.generatePath)||p?a.push(c):i.push(c);}if(a.length>0){let c=a.map(m=>` ${m.generatePath} (${m.target}): "${m.rawLink}" \u2192 not found`);y.warn(`Third-party content contains ${a.length} broken local link${a.length===1?"":"s"} (warning only; outputs from installed packs and skill subtrees are treated as advisory):
201
201
  ${c.join(`
202
202
  `)}`);}if(i.length===0)return;let l=i.map(c=>` ${c.generatePath} (${c.target}): "${c.rawLink}" \u2192 not found (tried: ${c.checkedPaths.join(", ")})`);throw new Error(`Generated markdown contains broken local links:
203
203
  ${l.join(`
204
204
  `)}
205
- Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(sU,"validateGeneratedMarkdownLinks");var T4=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function mh(e){return T4.some(t=>e.includes(t))}s(mh,"isUnderPacks");function iU(e){let t=new Set;for(let r of e.rules)if(mh(r.source)){let n=r.root?"_root":P4(r.source);n&&t.add(`rules/${n}`);}for(let r of e.agents)mh(r.source)&&t.add(`agents/${r.name}`);for(let r of e.commands)mh(r.source)&&t.add(`commands/${r.name}`);for(let r of e.skills)mh(r.source)&&t.add(`skills/${r.name}`);return t}s(iU,"buildPackOriginatedKeys");function P4(e){let r=e.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s(P4,"ruleNameFromSource");zn();var mU="AGENTS.md";function aU(e){switch(e){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(aU,"statusRank");function D4(e,t){return aU(t.status)<=aU(e.status)?e:{...e,status:t.status,currentContent:t.currentContent??e.currentContent}}s(D4,"mergeDuplicateMetadata");function ph(e){return e.trim()}s(ph,"trimmedContent");var N4=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function lU(e){let t=e;for(let r of N4)t=t.replace(r,"");return t.trim().replace(/\n{2,}/g,`
205
+ Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(pU,"validateGeneratedMarkdownLinks");var $4=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function dh(e){return $4.some(t=>e.includes(t))}s(dh,"isUnderPacks");function uU(e){let t=new Set;for(let r of e.rules)if(dh(r.source)){let n=r.root?"_root":j4(r.source);n&&t.add(`rules/${n}`);}for(let r of e.agents)dh(r.source)&&t.add(`agents/${r.name}`);for(let r of e.commands)dh(r.source)&&t.add(`commands/${r.name}`);for(let r of e.skills)dh(r.source)&&t.add(`skills/${r.name}`);return t}s(uU,"buildPackOriginatedKeys");function j4(e){let r=e.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s(j4,"ruleNameFromSource");Vn();var hU="AGENTS.md";function dU(e){switch(e){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(dU,"statusRank");function U4(e,t){return dU(t.status)<=dU(e.status)?e:{...e,status:t.status,currentContent:t.currentContent??e.currentContent}}s(U4,"mergeDuplicateMetadata");function fh(e){return e.trim()}s(fh,"trimmedContent");var B4=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function fU(e){let t=e;for(let r of B4)t=t.replace(r,"");return t.trim().replace(/\n{2,}/g,`
206
206
 
207
- `)}s(lU,"normalizeAgentsContent");function cU(e){return /<!-- agentsmesh:embedded-rules:start -->/.test(e)}s(cU,"hasOptionalAgentsBlock");function v4(e,t){if(!e.path.endsWith(mU)||e.path!==t.path)return null;let r=ph(e.content),n=ph(t.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?e:t;if(lU(e.content)===lU(t.content)){let a=cU(e.content),l=cU(t.content);if(a!==l)return a?e:t}return null}s(v4,"richerAgentsResult");function F4(e,t){if(!e.path.endsWith(mU)||e.path!==t.path)return null;let r=e.target===Uy?e:t.target===Uy?t:null,n=r===e?t:e;if(!r)return null;let o=ph(r.content).length,i=ph(n.content).length;return o===i?null:o>i?r:n}s(F4,"richerCodexAgentsResult");function uh(e){let t=[];for(let r of e){let n=t.findIndex(i=>i.path===r.path);if(n===-1){t.push(r);continue}let o=t[n];if(o.content!==r.content){let i=v4(o,r);if(i){t[n]=i;continue}let a=F4(o,r);if(a){t[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}t[n]=D4(o,r);}return t}s(uh,"resolveOutputCollisions");function pU(e){let t=e.currentContent===void 0?"created":e.currentContent!==e.content?"updated":"unchanged";return e.status===t?e:{...e,status:t}}s(pU,"refreshResultStatus");b();xe();rt();function dU(e,t){return e===null?"created":e!==t?"updated":"unchanged"}s(dU,"computeStatus");function M4(e,t,r){let n=tI(e,t,r);if(n!==null)return n;let o=re(e);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(t):t,n):null}s(M4,"resolveGeneratedOutputPath");async function Cu(e,t,r,n,o,i){let a=M4(t,r.path,o);if(a===null)return null;let l=await k(join(n,a)),c=e.findIndex(u=>u.path===a&&u.target===t),m=c>=0?e[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&e.splice(c,1),e.push({target:t,path:a,content:p,currentContent:l??void 0,status:dU(l,p)}),a}s(Cu,"emitGeneratedOutput");function TI(e,t,r){return {capability:ni(e,r)?.[t]??{level:"none"},scope:r}}s(TI,"featureContext");async function Ol(e,t,r,n,o,i,a,l){if(o)for(let c of t){let m=l(c);if(!m)continue;let p=TI(c,a,i);for(let u of m(r,p)){let f=await Cu(e,c,u,n,i);if(f===null)continue;let g=We(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,t),_=h===null?[]:Array.isArray(h)?h:[h];for(let S of _){let R=await k(join(n,S));e.push({target:c,path:S,content:u.content,currentContent:R??void 0,status:dU(R,u.content)});}}}}}s(Ol,"generateFeature");__();xe();function G4(e){return e?.rootInstructionPath?[e.rootInstructionPath,...mm(e)]:[]}s(G4,"rootDecorationPaths");function fU(e,t,r="project"){return e.map(n=>{let o=We(n.target,r);if(!o)return n;let i=G4(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(t):n.content,c=hO(l);return c===n.content?n:{...n,content:c}})}s(fU,"decoratePrimaryRootInstructions");xe();rt();du();function PI(e,t,r,n,o){let a=(nn(e)??re(e))?.mergeGeneratedOutputContent?.(t,r,n,o);if(a!=null)return a;let l=r?.content??t;return l!==null&&mN.includes(o)?Yf(l,n):n}s(PI,"mergeOutputContent");async function gU(e,t,r,n,o){for(let i of t){let a=im(i,"permissions",void 0,o)??re(i)?.generators.generatePermissions;if(a)for(let l of a(r))await Cu(e,i,l,n,o,{mergeContent:s((c,m,p,u)=>PI(i,c,m,p,u),"mergeContent")});}}s(gU,"generatePermissionsFeature");async function hU(e,t,r,n,o,i){for(let a of t){let l=im(a,"hooks",i,o)??re(a)?.generators.generateHooks;if(!l)continue;let c=TI(a,"hooks",o),m=[...l(r,c)],u=(nn(a)??re(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await Cu(e,a,f,n,o,{mergeContent:s((g,h,_,S)=>PI(a,g,h,_,S),"mergeContent")});}}s(hU,"generateHooksFeature");async function yU(e,t,r,n,o,i){for(let a of t){let c=(nn(a)??re(a))?.emitScopedSettings;if(!c)continue;let m=c(r,o,i);if(m.length!==0)for(let p of m)await Cu(e,a,p,n,o,{mergeContent:s((u,f,g,h)=>PI(a,u,f,g,h),"mergeContent")});}}s(yU,"generateScopedSettingsFeature");async function on(e){let{config:t,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=e,a=[...t.targets,...t.pluginTargets??[]],l=i?a.filter(K=>i.includes(K)):a;function c(K,G){return im(K,G,t,o)}s(c,"resolveGen");let m=t.features.includes("rules"),p=t.features.includes("commands"),u=t.features.includes("agents"),f=t.features.includes("skills"),g=t.features.includes("mcp"),h=t.features.includes("permissions"),_=t.features.includes("hooks"),S=t.features.includes("ignore"),R=[];await Ol(R,l,r,n,m,o,"rules",K=>c(K,"rules")),await Ol(R,l,r,n,p,o,"commands",K=>c(K,"commands")),await Ol(R,l,r,n,u,o,"agents",K=>c(K,"agents")),await Ol(R,l,r,n,f,o,"skills",K=>c(K,"skills")),await Ol(R,l,r,n,g,o,"mcp",K=>c(K,"mcp")),h&&await gU(R,l,r,n,o),_&&await hU(R,l,r,n,o,t),await Ol(R,l,r,n,S,o,"ignore",K=>c(K,"ignore"));let I=new Set(t.features);for(let K of l){let Y=(nn(K)??re(K))?.globalSupport?.scopeExtras;if(Y){let ee=await Y(r,n,o,I);R.push(...ee);}}(g||S||_||u||h)&&await yU(R,l,r,n,o,I);let w=fU(R,r,o),D=$4(w,o),P=nU(w,r,t,n,o,l,D);return sU(P,n,{packOriginatedKeys:iU(r)}),uh(P.map(pU))}s(on,"generate");function $4(e,t){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=We(a,t),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of mm(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of e){if(!n(a.target).has(a.path))continue;let l=o.get(a.path)??new Set;l.add(a.target),o.set(a.path,l);}let i=new Set;for(let[a,l]of o)l.size>1&&i.add(a);return i}s($4,"computeSharedRootInstructionPaths");sn();se();b();Qo();var e5=6e4,t5=30,r5=200,n5=2e3;async function pm(e,t={}){let r=t.retries??t5,n=t.retryDelayMs??r5,o=t.staleMs??e5;await mkdir(dirname(e),{recursive:true});let i=0;for(;;){let a=await o5(e);if(a)return a;let l=await s5(e);if(l!=="young"&&i5(l,o)){await rm$1(e,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Jl(e,l5(c),{label:t.label})}i++,await m5(n);}}s(pm,"acquireProcessLock");async function o5(e){try{await mkdir(e,{recursive:!1});}catch(a){if(a.code==="EEXIST")return null;throw a}let t=join(e,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:OU()};await writeFile(t,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(e,{recursive:!0,force:!0});}catch{}}},"cleanup"),i=s(a=>{o(),process.kill(process.pid,a);},"signalHandler");return process.once("SIGINT",i),process.once("SIGTERM",i),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",i),process.off("SIGTERM",i),process.off("exit",o),await rm$1(e,{recursive:true,force:true}).catch(()=>{}));}}s(o5,"tryAcquire");async function s5(e){try{let t=await readFile(join(e,"holder.json"),"utf-8"),r=JSON.parse(t);return c5(r)?r:null}catch{try{let t=await stat(e);if(Date.now()-t.mtimeMs<n5)return "young"}catch{}return null}}s(s5,"inspectLock");function i5(e,t){return !e||Date.now()-e.started>t?true:e.hostname&&e.hostname!==OU()?false:!a5(e.pid)}s(i5,"isStale");function a5(e){if(!Number.isInteger(e)||e<=0)return false;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}s(a5,"isProcessAlive");function l5(e){return e?`${e.hostname?`${e.hostname}:`:""}pid ${e.pid} (running ${Date.now()-e.started}ms)`:"unknown (unreadable lock metadata)"}s(l5,"describeHolder");function c5(e){if(typeof e!="object"||e===null)return false;let t=e;return typeof t.pid=="number"&&typeof t.started=="number"}s(c5,"isLockMetadata");function OU(){return hostname()}s(OU,"getHostname");function m5(e){return new Promise(t=>setTimeout(t,e))}s(m5,"sleep");b();xe();async function wU(e,t=e){let r=await readdir(e,{withFileTypes:true}),n=[];for(let o of r){let i=join(e,o.name);if(o.isDirectory()){n.push(...await wU(i,t));continue}n.push(relative(t,i).replace(/\\/g,"/"));}return n}s(wU,"listFiles");async function f5(e,t,r){if(r.has(t))return;let n=join(e,t);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(f5,"removeIfStale");async function bU(e){let t=new Set(e.expectedPaths),r=new Set,n=e.scope??"project";for(let o of e.targets){let i=eI(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(e.projectRoot,a);if(await j(l))for(let c of await wU(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await f5(e.projectRoot,o,t);}s(bU,"cleanupStaleGeneratedOutputs");xe();function um(e,t,r){let n=resolve(e),o=resolve(e,t);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${t}`)}s(um,"ensurePathInsideRoot");qm();b();se();async function MI(e,t){let r=await ii(e.canonicalDir),n=t.length>0?await cm(t):{},o=await lh(join(e.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await ih(e.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:ya(),checksums:r,extends:n,packs:o});try{await My(Xt(),join(e.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(MI,"writeLockFile");function I5(e,t){return e!=="global"||t.length===0?void 0:t.every(n=>We(n,"global")===void 0)?"no-global-support":void 0}s(I5,"resolveEmptyReason");async function $U(e){let{mode:t,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c,activeTargets:m}=e,p=I5(r,m);if(t==="check")return {exitCode:0,data:{scope:r,mode:t,files:[],summary:fh([]),emptyReason:p}};if(n||await MI(o,i),c.printMatrix!==false){let{runMatrix:u}=await Promise.resolve().then(()=>(wu(),HI)),{renderMatrix:f}=await Promise.resolve().then(()=>(Au(),zI)),g=await u(a,l);f(g,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:t,files:[],summary:fh([]),emptyReason:p}}}s($U,"handleEmptyResults");function jU(e,t){let r=e.filter(a=>a.status!=="skipped"),n=r.filter(a=>a.status!=="unchanged"),o=r.map(a=>({path:a.path,target:a.target,status:a.status}));return {exitCode:n.length===0?0:1,data:{scope:t,mode:"check",files:o,summary:fh(r)}}}s(jU,"buildCheckResult");async function UU(e){let{results:t,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=e,u=r?null:await pm(join(i.canonicalDir,".generate.lock"),{label:"generate lock"});try{if(!r){for(let h of t)if(h.status==="created"||h.status==="updated"){let _=um(i.rootBase,h.path,h.target);await L(_,h.content);}await bU({projectRoot:i.rootBase,targets:a,expectedPaths:t.map(h=>h.path),scope:n}),await MI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(wu(),HI)),{renderMatrix:_}=await Promise.resolve().then(()=>(Au(),zI)),S=await h(c,m);_(S,{verbose:c.verbose===true});}let f=t.filter(h=>h.status!=="skipped"),g=f.map(h=>({path:h.path,target:h.target,status:h.status}));return {exitCode:0,data:{scope:n,mode:o,files:g,summary:fh(f)}}}s(UU,"handleGenerateOrDryRun");function fh(e){return {created:e.filter(t=>t.status==="created").length,updated:e.filter(t=>t.status==="updated").length,unchanged:e.filter(t=>t.status==="unchanged").length}}s(fh,"buildSummary");async function dm(e,t,r={}){if(e.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=t??process.cwd(),o=e.check===true,i=e["dry-run"]===true,a=e.force===true,l=e.global===true?"global":"project",c=e["refresh-cache"]===true||e["no-cache"]===true,m=e.targets,p=typeof m=="string"&&m?m.split(",").map(D=>D.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await ye(n,l);await ze(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let D=await sh(g.canonicalDir);if(D!==null){let P=await ii(g.canonicalDir),K=ah(D.checksums,P,h);if(K.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let G of K)y.error(` ${G}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:_,resolvedExtends:S}=await Mt(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),R=[...f.targets,...f.pluginTargets??[]];if(p){let D=p.filter(P=>!R.includes(P));if(D.length>0)throw new Error(`Unknown target(s) in --targets: ${D.join(", ")}. Available: ${R.join(", ")}`)}let I=p?R.filter(D=>p.includes(D)):R,w=await on({config:f,canonical:_,projectRoot:g.rootBase,scope:l,targetFilter:p});return w.length===0?$U({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:S,flags:e,root:n,options:r,activeTargets:I}):o?jU(w,l):UU({results:w,dryRun:i,scope:l,mode:u,context:g,activeTargets:I,resolvedExtends:S,flags:e,root:n,options:r})}s(dm,"runGenerate");se();function VI(e,t){return e==="global"?`~/${t}`:t}s(VI,"formatDisplayPath");function fm(e){let{data:t}=e,{scope:r,mode:n,files:o}=t;if(o.length===0){t.emptyReason==="no-global-support"?y.info("No files to generate (target has no global mode \u2014 try without --global)."):y.info("No files to generate (no root rule or rules feature disabled)."),n==="check"&&y.success("Generated files are in sync.");return}if(n==="check"){let c=o.filter(m=>m.status!=="unchanged");if(c.length===0){y.success("Generated files are in sync.");return}for(let m of c)y.error(`[check] ${m.status} ${VI(r,m.path)} (${m.target})`);y.error("Generated files are out of sync. Run 'agentsmesh generate' to update them.");return}if(n==="dry-run"){for(let c of o)y.info(`[dry-run] ${c.status} ${VI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${VI(r,c.path)}`);let{created:i,updated:a,unchanged:l}=t.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(fm,"renderGenerate");b();b();async function gh(e,t){let r=join(e,".gitignore"),n=await k(r)??"",o=new Set(n.split(`
208
- `).map(l=>l.trim()).filter(l=>l.length>0&&!l.startsWith("#"))),i=t.filter(l=>!C5(l,o));if(i.length===0)return false;let a=n.endsWith(`
207
+ `)}s(fU,"normalizeAgentsContent");function gU(e){return /<!-- agentsmesh:embedded-rules:start -->/.test(e)}s(gU,"hasOptionalAgentsBlock");function K4(e,t){if(!e.path.endsWith(hU)||e.path!==t.path)return null;let r=fh(e.content),n=fh(t.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?e:t;if(fU(e.content)===fU(t.content)){let a=gU(e.content),l=gU(t.content);if(a!==l)return a?e:t}return null}s(K4,"richerAgentsResult");function W4(e,t){if(!e.path.endsWith(hU)||e.path!==t.path)return null;let r=e.target===Wy?e:t.target===Wy?t:null,n=r===e?t:e;if(!r)return null;let o=fh(r.content).length,i=fh(n.content).length;return o===i?null:o>i?r:n}s(W4,"richerCodexAgentsResult");function gh(e){let t=[];for(let r of e){let n=t.findIndex(i=>i.path===r.path);if(n===-1){t.push(r);continue}let o=t[n];if(o.content!==r.content){let i=K4(o,r);if(i){t[n]=i;continue}let a=W4(o,r);if(a){t[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}t[n]=U4(o,r);}return H4(t),t}s(gh,"resolveOutputCollisions");function H4(e){let t=new Map;for(let r of e){let n=r.path.toLowerCase(),o=t.get(n);if(o!==void 0&&o.path!==r.path)throw new Error(`Case-only path collision: "${o.path}" (${o.target}) and "${r.path}" (${r.target}) resolve to the same file on case-insensitive filesystems (Windows/macOS). Rename one canonical source.`);t.set(n,r);}}s(H4,"assertNoCaseOnlyPathCollisions");function yU(e){let t=e.currentContent===void 0?"created":e.currentContent!==e.content?"updated":"unchanged";return e.status===t?e:{...e,status:t}}s(yU,"refreshResultStatus");b();xe();rt();function SU(e,t){return e===null?"created":e!==t?"updated":"unchanged"}s(SU,"computeStatus");function z4(e,t,r){let n=nI(e,t,r);if(n!==null)return n;let o=re(e);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(t):t,n):null}s(z4,"resolveGeneratedOutputPath");async function Eu(e,t,r,n,o,i){let a=z4(t,r.path,o);if(a===null)return null;let l=await k(join(n,a)),c=e.findIndex(u=>u.path===a&&u.target===t),m=c>=0?e[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&e.splice(c,1),e.push({target:t,path:a,content:p,currentContent:l??void 0,status:SU(l,p)}),a}s(Eu,"emitGeneratedOutput");function DI(e,t,r){return {capability:ni(e,r)?.[t]??{level:"none"},scope:r}}s(DI,"featureContext");async function bl(e,t,r,n,o,i,a,l){if(o)for(let c of t){let m=l(c);if(!m)continue;let p=DI(c,a,i);for(let u of m(r,p)){let f=await Eu(e,c,u,n,i);if(f===null)continue;let g=We(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,t),_=h===null?[]:Array.isArray(h)?h:[h];for(let S of _){let R=await k(join(n,S));e.push({target:c,path:S,content:u.content,currentContent:R??void 0,status:SU(R,u.content)});}}}}}s(bl,"generateFeature");R_();xe();function V4(e){return e?.rootInstructionPath?[e.rootInstructionPath,...um(e)]:[]}s(V4,"rootDecorationPaths");function RU(e,t,r="project"){return e.map(n=>{let o=We(n.target,r);if(!o)return n;let i=V4(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(t):n.content,c=kO(l);return c===n.content?n:{...n,content:c}})}s(RU,"decoratePrimaryRootInstructions");xe();rt();fu();function NI(e,t,r,n,o){let a=(nn(e)??re(e))?.mergeGeneratedOutputContent?.(t,r,n,o);if(a!=null)return a;let l=r?.content??t;return l!==null&&hN.includes(o)?qf(l,n):n}s(NI,"mergeOutputContent");async function kU(e,t,r,n,o){for(let i of t){let a=lm(i,"permissions",void 0,o)??re(i)?.generators.generatePermissions;if(a)for(let l of a(r))await Eu(e,i,l,n,o,{mergeContent:s((c,m,p,u)=>NI(i,c,m,p,u),"mergeContent")});}}s(kU,"generatePermissionsFeature");async function IU(e,t,r,n,o,i){for(let a of t){let l=lm(a,"hooks",i,o)??re(a)?.generators.generateHooks;if(!l)continue;let c=DI(a,"hooks",o),m=[...l(r,c)],u=(nn(a)??re(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await Eu(e,a,f,n,o,{mergeContent:s((g,h,_,S)=>NI(a,g,h,_,S),"mergeContent")});}}s(IU,"generateHooksFeature");async function LU(e,t,r,n,o,i){for(let a of t){let c=(nn(a)??re(a))?.emitScopedSettings;if(!c)continue;let m=c(r,o,i);if(m.length!==0)for(let p of m)await Eu(e,a,p,n,o,{mergeContent:s((u,f,g,h)=>NI(a,u,f,g,h),"mergeContent")});}}s(LU,"generateScopedSettingsFeature");async function on(e){let{config:t,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=e,a=[...t.targets,...t.pluginTargets??[]],l=i?a.filter(K=>i.includes(K)):a;function c(K,G){return lm(K,G,t,o)}s(c,"resolveGen");let m=t.features.includes("rules"),p=t.features.includes("commands"),u=t.features.includes("agents"),f=t.features.includes("skills"),g=t.features.includes("mcp"),h=t.features.includes("permissions"),_=t.features.includes("hooks"),S=t.features.includes("ignore"),R=[];await bl(R,l,r,n,m,o,"rules",K=>c(K,"rules")),await bl(R,l,r,n,p,o,"commands",K=>c(K,"commands")),await bl(R,l,r,n,u,o,"agents",K=>c(K,"agents")),await bl(R,l,r,n,f,o,"skills",K=>c(K,"skills")),await bl(R,l,r,n,g,o,"mcp",K=>c(K,"mcp")),h&&await kU(R,l,r,n,o),_&&await IU(R,l,r,n,o,t),await bl(R,l,r,n,S,o,"ignore",K=>c(K,"ignore"));let I=new Set(t.features);for(let K of l){let Y=(nn(K)??re(K))?.globalSupport?.scopeExtras;if(Y){let ee=await Y(r,n,o,I);R.push(...ee);}}(g||S||_||u||h)&&await LU(R,l,r,n,o,I);let w=RU(R,r,o),D=J4(w,o),P=cU(w,r,t,n,o,l,D);return pU(P,n,{packOriginatedKeys:uU(r)}),gh(P.map(yU))}s(on,"generate");function J4(e,t){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=We(a,t),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of um(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of e){if(!n(a.target).has(a.path))continue;let l=o.get(a.path)??new Set;l.add(a.target),o.set(a.path,l);}let i=new Set;for(let[a,l]of o)l.size>1&&i.add(a);return i}s(J4,"computeSharedRootInstructionPaths");sn();se();b();Qo();var c5=6e4,m5=30,p5=200,u5=2e3;async function dm(e,t={}){let r=t.retries??m5,n=t.retryDelayMs??p5,o=t.staleMs??c5;await mkdir(dirname(e),{recursive:true});let i=0;for(;;){let a=await d5(e);if(a)return a;let l=await f5(e);if(l!=="young"&&g5(l,o)){await rm$1(e,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Xl(e,y5(c),{label:t.label})}i++,await S5(n);}}s(dm,"acquireProcessLock");async function d5(e){try{await mkdir(e,{recursive:!1});}catch(a){if(a.code==="EEXIST")return null;throw a}let t=join(e,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:PU()};await writeFile(t,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(e,{recursive:!0,force:!0});}catch{}}},"cleanup"),i=s(a=>{o(),process.kill(process.pid,a);},"signalHandler");return process.once("SIGINT",i),process.once("SIGTERM",i),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",i),process.off("SIGTERM",i),process.off("exit",o),await rm$1(e,{recursive:true,force:true}).catch(()=>{}));}}s(d5,"tryAcquire");async function f5(e){try{let t=await readFile(join(e,"holder.json"),"utf-8"),r=JSON.parse(t);return _5(r)?r:null}catch{try{let t=await stat(e);if(Date.now()-t.mtimeMs<u5)return "young"}catch{}return null}}s(f5,"inspectLock");function g5(e,t){return !e||Date.now()-e.started>t?true:e.hostname&&e.hostname!==PU()?false:!h5(e.pid)}s(g5,"isStale");function h5(e){if(!Number.isInteger(e)||e<=0)return false;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}s(h5,"isProcessAlive");function y5(e){return e?`${e.hostname?`${e.hostname}:`:""}pid ${e.pid} (running ${Date.now()-e.started}ms)`:"unknown (unreadable lock metadata)"}s(y5,"describeHolder");function _5(e){if(typeof e!="object"||e===null)return false;let t=e;return typeof t.pid=="number"&&typeof t.started=="number"}s(_5,"isLockMetadata");function PU(){return hostname()}s(PU,"getHostname");function S5(e){return new Promise(t=>setTimeout(t,e))}s(S5,"sleep");b();xe();async function DU(e,t=e){let r=await readdir(e,{withFileTypes:true}),n=[];for(let o of r){let i=join(e,o.name);if(o.isDirectory()){n.push(...await DU(i,t));continue}n.push(relative(t,i).replace(/\\/g,"/"));}return n}s(DU,"listFiles");async function L5(e,t,r){if(r.has(t))return;let n=join(e,t);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(L5,"removeIfStale");async function NU(e){let t=new Set(e.expectedPaths),r=new Set,n=e.scope??"project";for(let o of e.targets){let i=rI(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(e.projectRoot,a);if(await j(l))for(let c of await DU(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await L5(e.projectRoot,o,t);}s(NU,"cleanupStaleGeneratedOutputs");xe();function fm(e,t,r){let n=resolve(e),o=resolve(e,t);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${t}`)}s(fm,"ensurePathInsideRoot");Zm();b();se();async function $I(e,t){let r=await ii(e.canonicalDir),n=t.length>0?await pm(t):{},o=await ph(join(e.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await ch(e.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:_a(),checksums:r,extends:n,packs:o});try{await jy(Qt(),join(e.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s($I,"writeLockFile");function T5(e,t){return e!=="global"||t.length===0?void 0:t.every(n=>We(n,"global")===void 0)?"no-global-support":void 0}s(T5,"resolveEmptyReason");async function HU(e){let{mode:t,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c,activeTargets:m}=e,p=T5(r,m);if(t==="check")return {exitCode:0,data:{scope:r,mode:t,files:[],summary:yh([]),emptyReason:p}};if(n||await $I(o,i),c.printMatrix!==false){let{runMatrix:u}=await Promise.resolve().then(()=>(bu(),VI)),{renderMatrix:f}=await Promise.resolve().then(()=>(xu(),JI)),g=await u(a,l);f(g,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:t,files:[],summary:yh([]),emptyReason:p}}}s(HU,"handleEmptyResults");function zU(e,t){let r=e.filter(a=>a.status!=="skipped"),n=r.filter(a=>a.status!=="unchanged"),o=r.map(a=>({path:a.path,target:a.target,status:a.status}));return {exitCode:n.length===0?0:1,data:{scope:t,mode:"check",files:o,summary:yh(r)}}}s(zU,"buildCheckResult");async function VU(e){let{results:t,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=e,u=r?null:await dm(join(i.canonicalDir,".generate.lock"),{label:"generate lock"});try{if(!r){for(let h of t)if(h.status==="created"||h.status==="updated"){let _=fm(i.rootBase,h.path,h.target);await L(_,h.content);}await NU({projectRoot:i.rootBase,targets:a,expectedPaths:t.map(h=>h.path),scope:n}),await $I(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(bu(),VI)),{renderMatrix:_}=await Promise.resolve().then(()=>(xu(),JI)),S=await h(c,m);_(S,{verbose:c.verbose===true});}let f=t.filter(h=>h.status!=="skipped"),g=f.map(h=>({path:h.path,target:h.target,status:h.status}));return {exitCode:0,data:{scope:n,mode:o,files:g,summary:yh(f)}}}s(VU,"handleGenerateOrDryRun");function yh(e){return {created:e.filter(t=>t.status==="created").length,updated:e.filter(t=>t.status==="updated").length,unchanged:e.filter(t=>t.status==="unchanged").length}}s(yh,"buildSummary");async function gm(e,t,r={}){if(e.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=t??process.cwd(),o=e.check===true,i=e["dry-run"]===true,a=e.force===true,l=e.global===true?"global":"project",c=e["refresh-cache"]===true||e["no-cache"]===true,m=e.targets,p=typeof m=="string"&&m?m.split(",").map(D=>D.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await ye(n,l);await ze(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let D=await lh(g.canonicalDir);if(D!==null){let P=await ii(g.canonicalDir),K=mh(D.checksums,P,h);if(K.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let G of K)y.error(` ${G}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:_,resolvedExtends:S}=await Mt(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),R=[...f.targets,...f.pluginTargets??[]];if(p){let D=p.filter(P=>!R.includes(P));if(D.length>0)throw new Error(`Unknown target(s) in --targets: ${D.join(", ")}. Available: ${R.join(", ")}`)}let I=p?R.filter(D=>p.includes(D)):R,w=await on({config:f,canonical:_,projectRoot:g.rootBase,scope:l,targetFilter:p});return w.length===0?HU({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:S,flags:e,root:n,options:r,activeTargets:I}):o?zU(w,l):VU({results:w,dryRun:i,scope:l,mode:u,context:g,activeTargets:I,resolvedExtends:S,flags:e,root:n,options:r})}s(gm,"runGenerate");se();function YI(e,t){return e==="global"?`~/${t}`:t}s(YI,"formatDisplayPath");function hm(e){let{data:t}=e,{scope:r,mode:n,files:o}=t;if(o.length===0){t.emptyReason==="no-global-support"?y.info("No files to generate (target has no global mode \u2014 try without --global)."):y.info("No files to generate (no root rule or rules feature disabled)."),n==="check"&&y.success("Generated files are in sync.");return}if(n==="check"){let c=o.filter(m=>m.status!=="unchanged");if(c.length===0){y.success("Generated files are in sync.");return}for(let m of c)y.error(`[check] ${m.status} ${YI(r,m.path)} (${m.target})`);y.error("Generated files are out of sync. Run 'agentsmesh generate' to update them.");return}if(n==="dry-run"){for(let c of o)y.info(`[dry-run] ${c.status} ${YI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${YI(r,c.path)}`);let{created:i,updated:a,unchanged:l}=t.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(hm,"renderGenerate");b();b();async function _h(e,t){let r=join(e,".gitignore"),n=await k(r)??"",o=new Set(n.split(`
208
+ `).map(l=>l.trim()).filter(l=>l.length>0&&!l.startsWith("#"))),i=t.filter(l=>!D5(l,o));if(i.length===0)return false;let a=n.endsWith(`
209
209
  `)||n===""?"":`
210
210
  `;return await L(r,n+a+i.join(`
211
211
  `)+`
212
- `),true}s(gh,"ensureGitignoreEntries");function C5(e,t){if(t.has(e))return true;let r=e.replace(/\/$/,"");for(;r.includes("/")&&(r=r.slice(0,r.lastIndexOf("/")),r!=="");)if(t.has(r)||t.has(`${r}/`)||t.has(`${r}/**`))return true;return false}s(C5,"isCoveredByExisting");xe();xe();zn();function BU(){return Pe.filter(e=>!e.excludeFromStarterInit).map(e=>e.id).filter(Yt)}s(BU,"starterInitTargetIds");var KU=/^# yaml-language-server: \$schema=[^\n]*\n?/;function E5(){let e=ya();return `https://unpkg.com/agentsmesh${e&&e!=="unknown"?`@${e}`:""}/schemas`}s(E5,"schemaBaseUrl");function WU(e){return `${E5()}/${e}.json`}s(WU,"schemaUrl");function gm(e){return `# yaml-language-server: $schema=${WU(e)}
213
- `}s(gm,"yamlSchemaDirective");function wl(e,t){let r=gm(t);return KU.test(e)?e.replace(KU,r):`${r}${e}`}s(wl,"prependYamlSchemaDirective");function HU(e,t){let{$schema:r,...n}=e;return {$schema:WU(t),...n}}s(HU,"stampJsonSchemaField");var O5=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],w5=BU();function hh(e,t=w5){let r=(e.length>0?e:t).map(o=>` - ${o}`).join(`
214
- `),n=O5.map(o=>` - ${o}`).join(`
215
- `);return `${gm("agentsmesh")}version: 1
212
+ `),true}s(_h,"ensureGitignoreEntries");function D5(e,t){if(t.has(e))return true;let r=e.replace(/\/$/,"");for(;r.includes("/")&&(r=r.slice(0,r.lastIndexOf("/")),r!=="");)if(t.has(r)||t.has(`${r}/`)||t.has(`${r}/**`))return true;return false}s(D5,"isCoveredByExisting");xe();xe();Vn();function JU(){return Pe.filter(e=>!e.excludeFromStarterInit).map(e=>e.id).filter(Xt)}s(JU,"starterInitTargetIds");var YU=/^# yaml-language-server: \$schema=[^\n]*\n?/;function N5(){let e=_a();return `https://unpkg.com/agentsmesh${e&&e!=="unknown"?`@${e}`:""}/schemas`}s(N5,"schemaBaseUrl");function XU(e){return `${N5()}/${e}.json`}s(XU,"schemaUrl");function ym(e){return `# yaml-language-server: $schema=${XU(e)}
213
+ `}s(ym,"yamlSchemaDirective");function Al(e,t){let r=ym(t);return YU.test(e)?e.replace(YU,r):`${r}${e}`}s(Al,"prependYamlSchemaDirective");function QU(e,t){let{$schema:r,...n}=e;return {$schema:XU(t),...n}}s(QU,"stampJsonSchemaField");var v5=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],F5=JU();function Sh(e,t=F5){let r=(e.length>0?e:t).map(o=>` - ${o}`).join(`
214
+ `),n=v5.map(o=>` - ${o}`).join(`
215
+ `);return `${ym("agentsmesh")}version: 1
216
216
  targets:
217
217
  ${r}
218
218
  features:
219
219
  ${n}
220
- `}s(hh,"buildConfig");var yh=`---
220
+ `}s(Sh,"buildConfig");var Rh=`---
221
221
  root: true
222
222
  description: "Project rules"
223
223
  ---
@@ -226,7 +226,7 @@ description: "Project rules"
226
226
 
227
227
  Add your project-wide instructions here.
228
228
  This file is always included in AI tool context and synced to all configured tools.
229
- `,JI=`---
229
+ `,XI=`---
230
230
  description: "Example contextual rule \u2014 rename and customize"
231
231
  # targets: [claude-code, cursor] # limit to specific tools (optional)
232
232
  # globs: ["src/**/*.ts"] # activate only for matching files (optional)
@@ -235,14 +235,14 @@ description: "Example contextual rule \u2014 rename and customize"
235
235
  # Example Rule
236
236
 
237
237
  Replace this with your coding standards, conventions, or domain-specific guidelines.
238
- `,YI=`---
238
+ `,QI=`---
239
239
  description: "Example command \u2014 rename and customize"
240
240
  # allowed-tools: [Read, Grep, Glob, Bash]
241
241
  ---
242
242
 
243
243
  Describe the task for this command here.
244
244
  Commands are invoked on-demand (e.g. /example) with a focused tool set.
245
- `,XI=`---
245
+ `,qI=`---
246
246
  name: example-agent
247
247
  description: "Example subagent \u2014 rename and customize"
248
248
  # tools: [Read, Grep, Glob]
@@ -253,7 +253,7 @@ description: "Example subagent \u2014 rename and customize"
253
253
 
254
254
  Describe this agent's role and instructions here.
255
255
  Agents are specialized subagents with restricted tools and a specific purpose.
256
- `,QI=`---
256
+ `,ZI=`---
257
257
  name: example-skill
258
258
  description: "Example skill \u2014 rename and customize"
259
259
  ---
@@ -262,7 +262,7 @@ description: "Example skill \u2014 rename and customize"
262
262
 
263
263
  Describe the skill procedure here.
264
264
  Skills are reusable multi-step procedures that commands and agents can reference.
265
- `,qI=`{
265
+ `,eL=`{
266
266
  "mcpServers": {
267
267
  // agentsmesh self-serve MCP server \u2014 exposes your canonical config to AI agents.
268
268
  // Lets agents introspect rules/commands/agents/skills and trigger generate.
@@ -289,7 +289,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
289
289
  // }
290
290
  }
291
291
  }
292
- `,ZI=`${gm("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
292
+ `,tL=`${ym("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
293
293
  # Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
294
294
  # Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
295
295
  #
@@ -302,7 +302,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
302
302
  # - matcher: Edit|Write
303
303
  # type: command
304
304
  # command: npm test --passWithNoTests
305
- `,eL=`${gm("permissions")}# Tool permission allow/deny lists
305
+ `,rL=`${ym("permissions")}# Tool permission allow/deny lists
306
306
  #
307
307
  # allow:
308
308
  # - Bash(npm run:*)
@@ -318,14 +318,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
318
318
  allow: []
319
319
  deny: []
320
320
  ask: []
321
- `,tL=`# Patterns ignored by all configured AI tools (gitignore syntax)
321
+ `,nL=`# Patterns ignored by all configured AI tools (gitignore syntax)
322
322
  #
323
323
  # node_modules/
324
324
  # dist/
325
325
  # .env*
326
326
  # *.log
327
327
  # coverage/
328
- `,zU=`${gm("agentsmesh")}# Personal overrides \u2014 NOT committed to git
328
+ `,qU=`${ym("agentsmesh")}# Personal overrides \u2014 NOT committed to git
329
329
  # Uncomment and customize for your local setup:
330
330
 
331
331
  # targets:
@@ -343,68 +343,115 @@ ask: []
343
343
  # overrides:
344
344
  # claude-code:
345
345
  # model: opus
346
- `;b();xe();function VU(e){let t=[];for(let r of Pe)for(let n of Zk(r.id,e))t.push({target:r.id,path:n});return t}s(VU,"collectDetectionPaths");function JU(e){let t=new Map;for(let{target:r,path:n}of VU(e)){let o=t.get(r)??[];o.push(n),t.set(r,o);}return [...t.entries()].map(([r,n])=>({id:r,paths:n}))}s(JU,"toolIndicators");JU("project");async function YU(e,t="project"){let r=[];for(let{id:n,paths:o}of JU(t))for(let i of o){let a=join(e,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(YU,"detectExistingConfigs");b();se();function gt(e,t){return join(e,t)}s(gt,"ab");async function rL(e){return await j(e)?(await readdir(e,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(rL,"countMdFiles");async function A5(e){let t=gt(e,"skills");if(!await j(t))return false;let r=await readdir(t,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await j(join(t,n.name,"SKILL.md")))return true;return false}s(A5,"hasAnyImportedSkill");async function nL(e){let t=gt(e,"rules");await O(t),await L(join(t,"_root.md"),yh),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),JI),y.success("Created .agentsmesh/rules/_example.md");let r=gt(e,"commands");await O(r),await L(join(r,"_example.md"),YI),y.success("Created .agentsmesh/commands/_example.md");let n=gt(e,"agents");await O(n),await L(join(n,"_example.md"),XI),y.success("Created .agentsmesh/agents/_example.md");let o=gt(e,join("skills","_example"));await O(o),await L(join(o,"SKILL.md"),QI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await L(gt(e,"mcp.json"),qI),y.success("Created .agentsmesh/mcp.json"),await L(gt(e,"hooks.yaml"),ZI),y.success("Created .agentsmesh/hooks.yaml"),await L(gt(e,"permissions.yaml"),eL),y.success("Created .agentsmesh/permissions.yaml"),await L(gt(e,"ignore"),tL),y.success("Created .agentsmesh/ignore");}s(nL,"writeScaffoldFull");async function QU(e){let t=gt(e,"rules"),r=await rL(t),n=join(t,"_root.md"),o=await j(n);await O(t),r===0?(await L(n,yh),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),JI),y.success("Created .agentsmesh/rules/_example.md")):o||(await L(n,yh),y.success("Created .agentsmesh/rules/_root.md"));let i=gt(e,"commands");await rL(i)===0&&(await O(i),await L(join(i,"_example.md"),YI),y.success("Created .agentsmesh/commands/_example.md"));let a=gt(e,"agents");if(await rL(a)===0&&(await O(a),await L(join(a,"_example.md"),XI),y.success("Created .agentsmesh/agents/_example.md")),!await A5(e)){let u=gt(e,join("skills","_example"));await O(u),await L(join(u,"SKILL.md"),QI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=gt(e,"mcp.json");await j(l)||(await L(l,qI),y.success("Created .agentsmesh/mcp.json"));let c=gt(e,"hooks.yaml");await j(c)||(await L(c,ZI),y.success("Created .agentsmesh/hooks.yaml"));let m=gt(e,"permissions.yaml");await j(m)||(await L(m,eL),y.success("Created .agentsmesh/permissions.yaml"));let p=gt(e,"ignore");await j(p)||(await L(p,tL),y.success("Created .agentsmesh/ignore"));}s(QU,"writeScaffoldGapFill");tt();var xu=1,ym=2e3,hm=z$1.string().regex(/^[a-z0-9-]+$/,"id must be kebab-case"),x5=z$1.string().regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z?)?$/,"createdAt must be ISO-8601 date or datetime"),T5=z$1.object({summary:z$1.string().min(1,"topic summary must not be empty")}).strict(),P5=z$1.enum(["file_glob","command_pattern","keyword"]),D5=z$1.object({kind:P5,pattern:z$1.string().min(1,"trigger pattern must not be empty")}).strict(),N5=z$1.enum(["active","deprecated","superseded"]),v5=z$1.object({rule:z$1.string().min(1,"lesson rule must not be empty"),rationale:z$1.string().min(1).optional(),topics:z$1.array(hm).min(1,"lesson must reference at least one topic"),triggers:z$1.array(hm),evidence:z$1.array(z$1.string().min(1)),status:N5,supersededBy:hm.optional(),createdAt:x5}).strict(),bl=z$1.object({version:z$1.literal(xu),lessons:z$1.record(hm,v5),topics:z$1.record(hm,T5),triggers:z$1.record(hm,D5)}).strict();function Tu(e){return bl.parse(e)}s(Tu,"parseGraph");var U5=".agentsmesh/lessons/lessons.json";function zo(e){return resolve(e,U5)}s(zo,"graphFilePath");function Pu(e){let t=readFileSync(zo(e),"utf8");return Tu(JSON.parse(t))}s(Pu,"loadLessonsGraph");function Ye(e){return existsSync(zo(e))?Pu(e):null}s(Ye,"tryLoadLessonsGraph");function Sh(e){let t=zo(e);if(!existsSync(t))return {status:"absent",graph:null};try{let r=JSON.parse(readFileSync(t,"utf8")),n=r?.version;return typeof n=="number"&&n>xu?{status:"newer-version",graph:null,version:n}:{status:"ok",graph:Tu(r)}}catch(r){return {status:"corrupt",graph:null,error:r instanceof Error?r:new Error(String(r))}}}s(Sh,"loadLessonsGraphResilient");function eB(e,t){let r=zo(e);mkdirSync(dirname(r),{recursive:true});let n=`${r}.${process.pid}.tmp`;writeFileSync(n,Du(t),"utf8"),renameSync(n,r);}s(eB,"saveLessonsGraph");function Du(e){return `${JSON.stringify(_h(e),null,2)}
347
- `}s(Du,"serializeGraph");function Rh(e){return JSON.stringify(_h(e))}s(Rh,"stableStringify");function _h(e){if(e===null)return null;if(Array.isArray(e))return e.map(_h);if(typeof e=="object"){let t=Object.entries(e).sort(([n],[o])=>n<o?-1:1),r={};for(let[n,o]of t)r[n]=_h(o);return r}return e}s(_h,"canonicalize");var z5=z$1.object({file_globs:z$1.array(z$1.string()),command_patterns:z$1.array(z$1.string()),keywords:z$1.array(z$1.string())}).refine(e=>e.file_globs.length+e.command_patterns.length+e.keywords.length>0,{message:"cluster must declare at least one trigger of any type"}),V5=z$1.object({topic:z$1.string().regex(/^[a-z0-9-]+$/),file:z$1.string().regex(/\.md$/),summary:z$1.string().min(1),triggers:z5}),rB=z$1.object({version:z$1.literal(1),clusters:z$1.array(V5)});function nB(e,t,r){let n=[...e.triggers.file_globs.map(i=>({kind:"file_glob",pattern:i})),...e.triggers.command_patterns.map(i=>({kind:"command_pattern",pattern:i})),...e.triggers.keywords.map(i=>({kind:"keyword",pattern:i}))],o=[];for(let i of n){let a=`${i.kind}|${i.pattern}`,l=r.get(a);l===void 0&&(l=Y5(i),r.set(a,l),t.set(l,{kind:i.kind,pattern:i.pattern})),o.includes(l)||o.push(l);}return o}s(nB,"collectClusterTriggerIds");var J5={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function Y5(e){let t=createHash("sha1").update(`${e.kind}|${e.pattern}`).digest("hex").slice(0,8);return `t-${J5[e.kind]}-${t}`}s(Y5,"makeTriggerId");var X5=/^##\s+Rules\b.*$/i,Q5=/^##\s+/,q5=/^(\d+)\.\s+(.+?)\s*$/,tB=/\s*\(Evidence:?\s+([^)]+)\)\s*$/,Z5=/L\d+/g;function oB(e){let t=e.split(/\r?\n/),r=false,n=[];for(let o of t){if(!r){X5.test(o)&&(r=true);continue}if(Q5.test(o))break;let i=q5.exec(o);if(i===null)continue;let a=Number(i[1]),l=i[2],c=[],m=tB.exec(l);for(;m!==null;){let u=m[1].match(Z5);u!==null&&c.unshift(...u),l=l.slice(0,m.index).trimEnd(),m=tB.exec(l);}n.push({index:a,body:l,evidence:c});}return n}s(oB,"parseRulesSection");var e6=["index.yaml","journal.md","journal.legacy.md","topics","distill-ledger.yaml","distill-proposal.md"];function kh(e){let t=[];for(let r of e6){let n=join(e,r);existsSync(n)&&(rmSync(n,{recursive:true,force:true}),t.push(n));}return t}s(kh,"deleteLegacyArtifacts");function sL(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(sL,"normalizeRule");function Nu(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(Nu,"union");function iB(e,t){let r=[...(t.files??[]).map(a=>({kind:"file_glob",pattern:a.replaceAll("\\","/")})),...(t.commands??[]).map(a=>({kind:"command_pattern",pattern:a})),...(t.keywords??[]).map(a=>({kind:"keyword",pattern:a}))],n=new Map;for(let[a,l]of Object.entries(e.triggers))n.set(oL(l),a);let o=[],i=[];for(let a of r){let l=oL(a),c=n.get(l);if(c!==void 0){o.includes(c)||o.push(c);continue}let m=r6(a);e.triggers[m]={kind:a.kind,pattern:a.pattern},n.set(l,m),o.push(m),i.push(m);}return {triggerIds:o,newTriggerIds:i}}s(iB,"mergeTriggers");function oL(e){return `${e.kind}|${e.pattern}`}s(oL,"triggerKey");var t6={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function r6(e){let t=createHash("sha1").update(oL(e)).digest("hex").slice(0,8);return `t-${t6[e.kind]}-${t}`}s(r6,"makeTriggerId");function aB(e,t,r){let n=n6(r),o=n.length>0?`${t}-${n}`:`${t}-${createHash("sha1").update(r).digest("hex").slice(0,8)}`,i=o,a=2;for(;e.lessons[i]!==void 0;)i=`${o}-${a}`,a+=1;return i}s(aB,"makeLessonId");function n6(e){return e.replace(/[^a-z0-9 ]+/g," ").split(/\s+/).filter(r=>r.length>0).slice(0,5).join("-").slice(0,40).replace(/-+$/,"")}s(n6,"ruleToSlug");function lB(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(lB,"todayIso");var Bn=class extends Error{constructor(r){super(`Unknown topic: ${r}. Pass allowNewTopic + topicSummary to create it.`);this.topic=r;this.name="UnknownTopicError";}static{s(this,"UnknownTopicError");}code="UNKNOWN_TOPIC"},ai=class extends Error{constructor(r,n){super(`Lesson rule is ${r} characters (max ${n}). A rule should be one imperative sentence \u2014 trim it to the essential instruction, or split it into separate lessons.`);this.length=r;this.max=n;this.name="RuleTooLongError";}static{s(this,"RuleTooLongError");}code="OVERSIZED_RULE"},li=class extends Error{static{s(this,"NoTriggerError");}code="NO_TRIGGER";constructor(){super("A lesson needs at least one trigger to be recallable. Pass --trigger-file <glob> (preferred), --trigger-cmd <regex>, or --trigger-kw <text>."),this.name="NoTriggerError";}},ci=class extends Error{constructor(r){super(`This capture would create a lesson with no effective trigger \u2014 every trigger is dead on the mandatory --file/--cmd recall path, so the lesson could never be recalled there:
346
+ `;b();xe();function ZU(e){let t=[];for(let r of Pe)for(let n of tI(r.id,e))t.push({target:r.id,path:n});return t}s(ZU,"collectDetectionPaths");function eB(e){let t=new Map;for(let{target:r,path:n}of ZU(e)){let o=t.get(r)??[];o.push(n),t.set(r,o);}return [...t.entries()].map(([r,n])=>({id:r,paths:n}))}s(eB,"toolIndicators");eB("project");async function tB(e,t="project"){let r=[];for(let{id:n,paths:o}of eB(t))for(let i of o){let a=join(e,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(tB,"detectExistingConfigs");b();se();function gt(e,t){return join(e,t)}s(gt,"ab");async function oL(e){return await j(e)?(await readdir(e,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(oL,"countMdFiles");async function G5(e){let t=gt(e,"skills");if(!await j(t))return false;let r=await readdir(t,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await j(join(t,n.name,"SKILL.md")))return true;return false}s(G5,"hasAnyImportedSkill");async function sL(e){let t=gt(e,"rules");await O(t),await L(join(t,"_root.md"),Rh),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),XI),y.success("Created .agentsmesh/rules/_example.md");let r=gt(e,"commands");await O(r),await L(join(r,"_example.md"),QI),y.success("Created .agentsmesh/commands/_example.md");let n=gt(e,"agents");await O(n),await L(join(n,"_example.md"),qI),y.success("Created .agentsmesh/agents/_example.md");let o=gt(e,join("skills","_example"));await O(o),await L(join(o,"SKILL.md"),ZI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await L(gt(e,"mcp.json"),eL),y.success("Created .agentsmesh/mcp.json"),await L(gt(e,"hooks.yaml"),tL),y.success("Created .agentsmesh/hooks.yaml"),await L(gt(e,"permissions.yaml"),rL),y.success("Created .agentsmesh/permissions.yaml"),await L(gt(e,"ignore"),nL),y.success("Created .agentsmesh/ignore");}s(sL,"writeScaffoldFull");async function nB(e){let t=gt(e,"rules"),r=await oL(t),n=join(t,"_root.md"),o=await j(n);await O(t),r===0?(await L(n,Rh),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),XI),y.success("Created .agentsmesh/rules/_example.md")):o||(await L(n,Rh),y.success("Created .agentsmesh/rules/_root.md"));let i=gt(e,"commands");await oL(i)===0&&(await O(i),await L(join(i,"_example.md"),QI),y.success("Created .agentsmesh/commands/_example.md"));let a=gt(e,"agents");if(await oL(a)===0&&(await O(a),await L(join(a,"_example.md"),qI),y.success("Created .agentsmesh/agents/_example.md")),!await G5(e)){let u=gt(e,join("skills","_example"));await O(u),await L(join(u,"SKILL.md"),ZI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=gt(e,"mcp.json");await j(l)||(await L(l,eL),y.success("Created .agentsmesh/mcp.json"));let c=gt(e,"hooks.yaml");await j(c)||(await L(c,tL),y.success("Created .agentsmesh/hooks.yaml"));let m=gt(e,"permissions.yaml");await j(m)||(await L(m,rL),y.success("Created .agentsmesh/permissions.yaml"));let p=gt(e,"ignore");await j(p)||(await L(p,nL),y.success("Created .agentsmesh/ignore"));}s(nB,"writeScaffoldGapFill");tt();var Tu=1,Sm=2e3,_m=z$1.string().regex(/^[a-z0-9-]+$/,"id must be kebab-case"),$5=z$1.string().regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z?)?$/,"createdAt must be ISO-8601 date or datetime"),j5=z$1.object({summary:z$1.string().min(1,"topic summary must not be empty")}).strict(),U5=z$1.enum(["file_glob","command_pattern","keyword"]),B5=z$1.object({kind:U5,pattern:z$1.string().min(1,"trigger pattern must not be empty")}).strict(),K5=z$1.enum(["active","deprecated","superseded"]),W5=z$1.object({rule:z$1.string().min(1,"lesson rule must not be empty"),rationale:z$1.string().min(1).optional(),topics:z$1.array(_m).min(1,"lesson must reference at least one topic"),triggers:z$1.array(_m),evidence:z$1.array(z$1.string().min(1)),status:K5,supersededBy:_m.optional(),createdAt:$5}).strict(),xl=z$1.object({version:z$1.literal(Tu),lessons:z$1.record(_m,W5),topics:z$1.record(_m,j5),triggers:z$1.record(_m,B5)}).strict();function Pu(e){return xl.parse(e)}s(Pu,"parseGraph");var X5=".agentsmesh/lessons/lessons.json";function Vo(e){return resolve(e,X5)}s(Vo,"graphFilePath");function Du(e){let t=readFileSync(Vo(e),"utf8");return Pu(JSON.parse(t))}s(Du,"loadLessonsGraph");function Ye(e){return existsSync(Vo(e))?Du(e):null}s(Ye,"tryLoadLessonsGraph");function Ih(e){let t=Vo(e);if(!existsSync(t))return {status:"absent",graph:null};try{let r=JSON.parse(readFileSync(t,"utf8")),n=r?.version;return typeof n=="number"&&n>Tu?{status:"newer-version",graph:null,version:n}:{status:"ok",graph:Pu(r)}}catch(r){return {status:"corrupt",graph:null,error:r instanceof Error?r:new Error(String(r))}}}s(Ih,"loadLessonsGraphResilient");function iB(e,t){let r=Vo(e);mkdirSync(dirname(r),{recursive:true});let n=`${r}.${process.pid}.tmp`;writeFileSync(n,Nu(t),"utf8"),renameSync(n,r);}s(iB,"saveLessonsGraph");function Nu(e){return `${JSON.stringify(kh(e),null,2)}
347
+ `}s(Nu,"serializeGraph");function Lh(e){return JSON.stringify(kh(e))}s(Lh,"stableStringify");function kh(e){if(e===null)return null;if(Array.isArray(e))return e.map(kh);if(typeof e=="object"){let t=Object.entries(e).sort(([n],[o])=>n<o?-1:1),r={};for(let[n,o]of t)r[n]=kh(o);return r}return e}s(kh,"canonicalize");var t6=z$1.object({file_globs:z$1.array(z$1.string()),command_patterns:z$1.array(z$1.string()),keywords:z$1.array(z$1.string())}).refine(e=>e.file_globs.length+e.command_patterns.length+e.keywords.length>0,{message:"cluster must declare at least one trigger of any type"}),r6=z$1.object({topic:z$1.string().regex(/^[a-z0-9-]+$/),file:z$1.string().regex(/\.md$/),summary:z$1.string().min(1),triggers:t6}),lB=z$1.object({version:z$1.literal(1),clusters:z$1.array(r6)});function cB(e,t,r){let n=[...e.triggers.file_globs.map(i=>({kind:"file_glob",pattern:i})),...e.triggers.command_patterns.map(i=>({kind:"command_pattern",pattern:i})),...e.triggers.keywords.map(i=>({kind:"keyword",pattern:i}))],o=[];for(let i of n){let a=`${i.kind}|${i.pattern}`,l=r.get(a);l===void 0&&(l=o6(i),r.set(a,l),t.set(l,{kind:i.kind,pattern:i.pattern})),o.includes(l)||o.push(l);}return o}s(cB,"collectClusterTriggerIds");var n6={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function o6(e){let t=createHash("sha1").update(`${e.kind}|${e.pattern}`).digest("hex").slice(0,8);return `t-${n6[e.kind]}-${t}`}s(o6,"makeTriggerId");var s6=/^##\s+Rules\b.*$/i,i6=/^##\s+/,a6=/^(\d+)\.\s+(.+?)\s*$/,aB=/\s*\(Evidence:?\s+([^)]+)\)\s*$/,l6=/L\d+/g;function mB(e){let t=e.split(/\r?\n/),r=false,n=[];for(let o of t){if(!r){s6.test(o)&&(r=true);continue}if(i6.test(o))break;let i=a6.exec(o);if(i===null)continue;let a=Number(i[1]),l=i[2],c=[],m=aB.exec(l);for(;m!==null;){let u=m[1].match(l6);u!==null&&c.unshift(...u),l=l.slice(0,m.index).trimEnd(),m=aB.exec(l);}n.push({index:a,body:l,evidence:c});}return n}s(mB,"parseRulesSection");var c6=["index.yaml","journal.md","journal.legacy.md","topics","distill-ledger.yaml","distill-proposal.md"];function Ch(e){let t=[];for(let r of c6){let n=join(e,r);existsSync(n)&&(rmSync(n,{recursive:true,force:true}),t.push(n));}return t}s(Ch,"deleteLegacyArtifacts");function aL(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(aL,"normalizeRule");function vu(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(vu,"union");function uB(e,t){let r=[...(t.files??[]).map(a=>({kind:"file_glob",pattern:a.replaceAll("\\","/")})),...(t.commands??[]).map(a=>({kind:"command_pattern",pattern:a})),...(t.keywords??[]).map(a=>({kind:"keyword",pattern:a}))],n=new Map;for(let[a,l]of Object.entries(e.triggers))n.set(iL(l),a);let o=[],i=[];for(let a of r){let l=iL(a),c=n.get(l);if(c!==void 0){o.includes(c)||o.push(c);continue}let m=p6(a);e.triggers[m]={kind:a.kind,pattern:a.pattern},n.set(l,m),o.push(m),i.push(m);}return {triggerIds:o,newTriggerIds:i}}s(uB,"mergeTriggers");function iL(e){return `${e.kind}|${e.pattern}`}s(iL,"triggerKey");var m6={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function p6(e){let t=createHash("sha1").update(iL(e)).digest("hex").slice(0,8);return `t-${m6[e.kind]}-${t}`}s(p6,"makeTriggerId");function dB(e,t,r){let n=u6(r),o=n.length>0?`${t}-${n}`:`${t}-${createHash("sha1").update(r).digest("hex").slice(0,8)}`,i=o,a=2;for(;e.lessons[i]!==void 0;)i=`${o}-${a}`,a+=1;return i}s(dB,"makeLessonId");function u6(e){return e.replace(/[^a-z0-9 ]+/g," ").split(/\s+/).filter(r=>r.length>0).slice(0,5).join("-").slice(0,40).replace(/-+$/,"")}s(u6,"ruleToSlug");function fB(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(fB,"todayIso");var Bn=class extends Error{constructor(r){super(`Unknown topic: ${r}. Pass allowNewTopic + topicSummary to create it.`);this.topic=r;this.name="UnknownTopicError";}static{s(this,"UnknownTopicError");}code="UNKNOWN_TOPIC"},ai=class extends Error{constructor(r,n){super(`Lesson rule is ${r} characters (max ${n}). A rule should be one imperative sentence \u2014 trim it to the essential instruction, or split it into separate lessons.`);this.length=r;this.max=n;this.name="RuleTooLongError";}static{s(this,"RuleTooLongError");}code="OVERSIZED_RULE"},li=class extends Error{static{s(this,"NoTriggerError");}code="NO_TRIGGER";constructor(){super("A lesson needs at least one trigger to be recallable. Pass --trigger-file <glob> (preferred), --trigger-cmd <regex>, or --trigger-kw <text>."),this.name="NoTriggerError";}},ci=class extends Error{constructor(r){super(`This capture would create a lesson with no effective trigger \u2014 every trigger is dead on the mandatory --file/--cmd recall path, so the lesson could never be recalled there:
348
348
  `+r.map(n=>` \u2022 ${n.kind} "${n.pattern}" \u2014 ${n.reason}`).join(`
349
349
  `)+`
350
- Fix: add a precise --trigger-file <glob> (preferred) or a valid --trigger-cmd <regex>; for a keyword, drop the stopwords (e.g. "state art" not "state of the art").`);this.deadTriggers=r;this.name="UnrecallableLessonError";}static{s(this,"UnrecallableLessonError");}code="UNRECALLABLE_LESSON"};var o6=new Set(["the","a","an","to","of","in","and","or","for","is","on","at","with","be","as","it","that","this","its","must"]);function Gt(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>=2&&!o6.has(t))}s(Gt,"tokenize");function cB(e){let t=[];return e.keyword!==void 0&&t.push(e.keyword),e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),Gt(t.join(" "))}s(cB,"queryTerms");function mB(e){let t=[],r=new Map,n=0,o=0;for(let l of Object.values(e.lessons)){if(l.status!=="active")continue;let c=Gt(l.rule);o+=1,n+=c.length,t.push(c.length);for(let m of new Set(c))r.set(m,(r.get(m)??0)+1);}let i=Math.max(o,1),a=new Map;for(let[l,c]of r)a.set(l,Math.log(1+(i-c+.5)/(c+.5)));return {idf:a,avgdl:n/i||1}}s(mB,"buildCorpus");function pB(e,t,r){let n=Gt(t),o=n.length||1,i=new Map;for(let l of n)i.set(l,(i.get(l)??0)+1);let a=0;for(let l of new Set(e)){let c=i.get(l)??0;if(c===0)continue;let m=r.idf.get(l);a+=m*(c*(1.5+1))/(c+1.5*(1-.75+.75*o/r.avgdl));}return a}s(pB,"bm25");var vu=5;function Ih(e){return Gt(e).length>vu}s(Ih,"isLowSignalKeyword");function s6(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(s6,"splitRawTokens");function _m(e){let t=s6(e);return t.length<2?false:Gt(e).length!==t.length}s(_m,"keywordNeedleLosesTokens");function uB(e){let t=new Set;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.add(n);return t}s(uB,"activeTriggerIds");function Fu(e,t){let r=uB(e),n=[...t],o=new Set;for(let[i,a]of Object.entries(e.triggers)){if(a.kind!=="file_glob"||!r.has(i))continue;let l=i6(a.pattern,{dot:true});n.some(c=>l(c))||o.add(i);}return o}s(Fu,"deadFileGlobIds");function dB(e,t,r){for(let n of Fu(e,r))t.push({level:"warning",code:"DEAD_FILE_GLOB",message:`file_glob trigger "${n}" (${e.triggers[n]?.pattern??""}) matches no file in the working tree \u2014 the lesson is unreachable via this trigger (a rename likely moved the path). Re-point it at the current path, or detach it with \`lessons untrigger\`, or run \`lessons prune --apply\`.`,triggerId:n});}s(dB,"collectDeadFileGlobs");var a6=/^\^(pnpm|npm|npx|yarn|bun)\b/;function fB(e,t){let r=uB(e);for(let[n,o]of Object.entries(e.triggers))o.kind==="command_pattern"&&r.has(n)&&a6.test(o.pattern)&&t.push({level:"warning",code:"RUNNER_ANCHORED_PATTERN",message:`command_pattern trigger "${n}" (${o.pattern}) is anchored to one runner \u2014 it won't fire for the same task via another runner (e.g. \`npx\` vs \`pnpm\`). Drop the \`^<runner>\` anchor and key on the task (e.g. \`\\bvitest\\b\`).`,triggerId:n});}s(fB,"collectRunnerAnchoredPatterns");var l6=.6,Lh=8;function c6(e){let t=e.trim();return t==="*"||t==="**"?true:t.includes("**")?t.slice(t.lastIndexOf("/")+1).startsWith("*"):false}s(c6,"isBroadGlob");function iL(e,t,r){let n=e.lessons[t];if(n===void 0)return [];let o=[];n.triggers.length>Lh&&o.push({code:"OVERSIZED_LESSON_TRIGGERS",message:`Lesson "${t}" has ${n.triggers.length} triggers (recommended \u2264 ${Lh}); broad trigger sets fire on too many edits and dilute recall \u2014 prefer a few specific triggers.`});let i=n.triggers.map(m=>e.triggers[m]).filter(m=>m!==void 0),a=i.filter(m=>m.kind==="file_glob"&&c6(m.pattern)).map(m=>m.pattern);a.length>0&&o.push({code:"BROAD_GLOB_TRIGGER",message:`Lesson "${t}" has broad file glob(s) (${a.join(", ")}) that match large swaths of the tree; prefer a path specific to the lesson.`}),i.length>0&&i.every(m=>m.kind==="keyword")&&o.push({code:"KEYWORD_ONLY_LESSON",message:`Lesson "${t}" has only keyword triggers; mandatory --file/--cmd recall surfaces these only when the keyword appears as a path/command token, so it fires less reliably \u2014 add a file_glob or command_pattern trigger for precise recall.`});let l=i.filter(m=>m.kind==="keyword"&&Ih(m.pattern)).map(m=>m.pattern);l.length>0&&o.push({code:"LOW_SIGNAL_KEYWORD",message:`Lesson "${t}" has long keyword trigger(s) (${l.join(", ")}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so a pattern past ${vu} tokens rarely fires \u2014 use a short distinctive phrase.`});let c=i.filter(m=>m.kind==="keyword"&&_m(m.pattern)).map(m=>m.pattern);if(c.length>0&&o.push({code:"STOPWORD_KEYWORD",message:`Lesson "${t}" has keyword trigger(s) containing stopwords/short words (${c.join(", ")}); recall filters them from the pattern but NOT from the file/command text, so the phrase can never match contiguously on the --file/--cmd path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art").`}),r!==void 0){let m=Fu(e,r),p=n.triggers.filter(u=>m.has(u)).map(u=>e.triggers[u]?.pattern).filter(u=>u!==void 0);p.length>0&&o.push({code:"DEAD_GLOB",message:`Lesson "${t}" has file_glob trigger(s) (${p.join(", ")}) that match no file in the working tree \u2014 likely a rename. Re-point them at the current path, or the lesson is unreachable via those globs.`});}return o}s(iL,"inspectCapturedLesson");function gB(e,t){let r=e.lessons[t];if(r===void 0)return null;let n=new Set(Gt(r.rule));if(n.size===0)return null;let o=null;for(let[i,a]of Object.entries(e.lessons)){if(i===t||a.status!=="active")continue;let l=new Set(Gt(a.rule));if(l.size===0)continue;let c=m6(n,l);c>=l6&&(o===null||c>o.score)&&(o={id:i,score:c});}return o===null?null:{code:"NEAR_DUPLICATE_LESSON",message:`Lesson "${t}" closely resembles active lesson "${o.id}" (~${Math.round(o.score*100)}% token overlap); consider updating "${o.id}" instead of adding a paraphrase (recall would surface both).`}}s(gB,"nearDuplicateWarning");function m6(e,t){let r=0;for(let n of e)t.has(n)&&(r+=1);return r/(e.size+t.size-r)}s(m6,"jaccard");var hB=".lessons.lock";function yB(e){return resolve(e,".agentsmesh/lessons",hB)}s(yB,"lessonsLockPath");async function Ch(e,t={}){let r=yB(e);return await mkdir(dirname(r),{recursive:true}),pm(r,{...t,label:"lessons lock"})}s(Ch,"acquireLessonsLock");function SB(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of n.topics)e.topics[o]===void 0&&t.push({level:"error",code:"DANGLING_TOPIC",message:`Lesson "${r}" references unknown topic "${o}".`,lessonId:r,topicId:o});for(let o of n.triggers)e.triggers[o]===void 0&&t.push({level:"error",code:"DANGLING_TRIGGER",message:`Lesson "${r}" references unknown trigger "${o}".`,lessonId:r,triggerId:o});n.supersededBy!==void 0&&e.lessons[n.supersededBy]===void 0&&t.push({level:"error",code:"DANGLING_SUPERSEDER",message:`Lesson "${r}" supersededBy unknown lesson "${n.supersededBy}".`,lessonId:r});}}s(SB,"collectDanglingRefs");function RB(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of _B(n.topics))t.push({level:"error",code:"DUPLICATE_TOPIC_REF",message:`Lesson "${r}" references topic "${o}" more than once.`,lessonId:r,topicId:o});for(let o of _B(n.triggers))t.push({level:"error",code:"DUPLICATE_TRIGGER_REF",message:`Lesson "${r}" references trigger "${o}" more than once.`,lessonId:r,triggerId:o});}}s(RB,"collectDuplicateRefs");function _B(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s(_B,"firstDuplicates");function kB(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="superseded"&&n.supersededBy===void 0&&t.push({level:"error",code:"SUPERSEDED_WITHOUT_TARGET",message:`Lesson "${r}" has status "superseded" but no supersededBy target.`,lessonId:r}),n.status==="active"&&n.supersededBy!==void 0&&t.push({level:"error",code:"ACTIVE_WITH_SUPERSEDER",message:`Lesson "${r}" has status "active" but declares supersededBy.`,lessonId:r});}s(kB,"collectStatusInvariants");function IB(e,t){for(let[r,n]of Object.entries(e.lessons)){if(n.supersededBy===void 0)continue;if(n.supersededBy===r){t.push({level:"error",code:"SELF_SUPERSEDED",message:`Lesson "${r}" is superseded by itself.`,lessonId:r});continue}let o=e.lessons[n.supersededBy];o!==void 0&&o.status!=="active"&&t.push({level:"error",code:"INACTIVE_SUPERSEDER",message:`Lesson "${r}" is superseded by "${n.supersededBy}", which is itself ${o.status} \u2014 the chain dead-ends with no live replacement.`,lessonId:r});}f6(e,t);}s(IB,"collectLifecycleInvariants");function f6(e,t){let r=new Set;for(let n of Object.keys(e.lessons)){let o=new Set,i=n;for(;i!==void 0;){if(o.has(i)){if(i!==n||r.has(i))break;r.add(i),t.push({level:"error",code:"SUPERSEDE_CYCLE",message:`Lesson "${n}" is part of a supersededBy cycle.`,lessonId:n});break}o.add(i);let a=e.lessons[i]?.supersededBy;if(a===i)break;i=a;}}}s(f6,"collectSupersedeCycles");function LB(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="active"&&n.triggers.length===0&&t.push({level:"warning",code:"UNREACHABLE_LESSON",message:`Active lesson "${r}" has no triggers and can never be recalled.`,lessonId:r});}s(LB,"collectReachability");function CB(e,t){let r=new Set,n=new Set;for(let o of Object.values(e.lessons)){for(let i of o.topics)r.add(i);for(let i of o.triggers)n.add(i);}for(let o of Object.keys(e.topics))r.has(o)||t.push({level:"warning",code:"ORPHAN_TOPIC",message:`Topic "${o}" is not referenced by any lesson.`,topicId:o});for(let o of Object.keys(e.triggers))n.has(o)||t.push({level:"warning",code:"ORPHAN_TRIGGER",message:`Trigger "${o}" is not referenced by any lesson.`,triggerId:o});}s(CB,"collectOrphans");var aL=class{static{s(this,"Builder");}states=[];alloc(){if(this.states.length>=2e3)throw new Error("NFA state limit exceeded (2000); pattern expands too large");return this.states.push({eps:[],asserts:[],chars:[]}),this.states.length-1}};function g6(e){return e!==`
351
- `&&e!=="\r"&&e!=="\u2028"&&e!=="\u2029"}s(g6,"isNonLineTerminator");function Al(e,t){switch(t.k){case "empty":case "assert":{let r=e.alloc(),n=e.alloc();return t.k==="assert"?e.states[r].asserts.push({kind:t.kind,target:n}):e.states[r].eps.push(n),{start:r,end:n}}case "char":case "any":case "class":{let r=e.alloc(),n=e.alloc(),o=t.k==="char"?i=>i===t.ch:t.k==="any"?g6:t.test;return e.states[r].chars.push({test:o,target:n}),{start:r,end:n}}case "concat":{if(t.items.length===0)return Al(e,{k:"empty"});let r=null,n=-1;for(let o of t.items){let i=Al(e,o);r===null?r=i:e.states[n].eps.push(i.start),n=i.end;}return {start:r.start,end:n}}case "alt":{let r=e.alloc(),n=e.alloc();for(let o of t.opts){let i=Al(e,o);e.states[r].eps.push(i.start),e.states[i.end].eps.push(n);}return {start:r,end:n}}case "opt":{let r=e.alloc(),n=e.alloc(),o=Al(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(n),{start:r,end:n}}case "star":{let r=e.alloc(),n=e.alloc(),o=Al(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(o.start,n),{start:r,end:n}}case "plus":{let r=e.alloc(),n=Al(e,t.node);return e.states[n.end].eps.push(n.start,r),{start:n.start,end:r}}}}s(Al,"compileNode");function EB(e){let t=new aL,{start:r,end:n}=Al(t,e);return {states:t.states,start:r,accept:n}}s(EB,"compileNfa");function OB(e,t){let r=t>0&&/[A-Za-z0-9_]/.test(e[t-1]),n=t<e.length&&/[A-Za-z0-9_]/.test(e[t]);return r!==n}s(OB,"wordBoundary");function h6(e,t,r){switch(e){case "start":return r===0;case "end":return r===t.length;case "wordB":return OB(t,r);case "nonWordB":return !OB(t,r)}}s(h6,"assertHolds");function wB(e){let{states:t,start:r,accept:n}=EB(e),o=s((i,a,l,c,m)=>{let p=[a];for(;p.length>0;){if(m.remaining<=0)return;let u=p.pop();if(!i.has(u)){i.add(u),m.remaining-=1;for(let f of t[u].eps)i.has(f)||p.push(f);for(let f of t[u].asserts)h6(f.kind,l,c)&&!i.has(f.target)&&p.push(f.target);}}},"closure");return {test(i,a){let l=a??{remaining:Number.POSITIVE_INFINITY};if(l.remaining<=0)return false;let c=new Set;for(let m=0;m<=i.length;m+=1){if(o(c,r,i,m,l),c.has(n))return true;if(l.remaining<=0)return false;if(m===i.length)break;let p=i[m],u=new Set;for(let f of c){l.remaining-=1;for(let g of t[f].chars)g.test(p)&&o(u,g.target,i,m+1,l);}c=u;}return c.has(n)}}}s(wB,"buildMatcher");var yr=class extends Error{static{s(this,"UnsupportedRegexError");}constructor(t){super(t),this.name="UnsupportedRegexError";}};var Eh=1e3,bB=s(e=>/[A-Za-z0-9_]/.test(e),"isWord");function AB(e,t,r){let n=[];for(let o=0;o<t;o+=1)n.push(e);if(r===1/0)n.push({k:"star",node:e});else for(let o=t;o<r;o+=1)n.push({k:"opt",node:e});return n.length===0?{k:"empty"}:n.length===1?n[0]:{k:"concat",items:n}}s(AB,"expandRepeat");function lL(e){switch(e){case "d":return t=>t>="0"&&t<="9";case "D":return t=>!(t>="0"&&t<="9");case "w":return bB;case "W":return t=>!bB(t);case "s":return t=>/\s/.test(t);case "S":return t=>!/\s/.test(t);default:return null}}s(lL,"escapeClass");var y6=/^[0-9a-fA-F]{2}$/,_6=/^[0-9a-fA-F]{4}$/;function cL(e,t,r){if(r==="x"){let o=e.slice(t,t+2);return y6.test(o)?{ch:String.fromCharCode(parseInt(o,16)),len:2}:{ch:"x",len:0}}let n=e.slice(t,t+4);return _6.test(n)?{ch:String.fromCharCode(parseInt(n,16)),len:4}:{ch:"u",len:0}}s(cL,"readUnicodeEscape");function mL(e,t){let r=e[t];if(r===void 0||!/[A-Za-z]/.test(r))throw new yr("\\c must be followed by a letter");return {ch:String.fromCharCode(r.charCodeAt(0)&31),len:1}}s(mL,"readControlEscape");function pL(e,t,r){return r==="b"?{ch:"\b",len:0}:r==="c"?mL(e,t):r==="x"||r==="u"?cL(e,t,r):{ch:uL(r),len:0}}s(pL,"classEscapeChar");function uL(e){switch(e){case "t":return " ";case "n":return `
352
- `;case "r":return "\r";case "f":return "\f";case "v":return "\v";case "0":return "\0";default:return e}}s(uL,"escapeLiteral");function xB(e){let t=0,r=s(()=>e[t],"peek"),n=s(()=>e[t++],"eat");function o(){let h=[i()];for(;r()==="|";)t+=1,h.push(i());return h.length===1?h[0]:{k:"alt",opts:h}}s(o,"parseAlt");function i(){let h=[];for(;t<e.length&&r()!=="|"&&r()!==")";)h.push(a());return h.length===0?{k:"empty"}:h.length===1?h[0]:{k:"concat",items:h}}s(i,"parseConcat");function a(){let h=c(),_=r();if(_==="*"||_==="+"||_==="?")return t+=1,r()==="?"&&(t+=1),_==="*"?{k:"star",node:h}:_==="+"?{k:"plus",node:h}:{k:"opt",node:h};if(_==="{"){let S=l();if(S!==null)return AB(h,S.min,S.max)}return h}s(a,"parseQuantified");function l(){let h=/^\{(\d+)(,(\d*)?)?\}/.exec(e.slice(t));if(h===null)return null;t+=h[0].length,r()==="?"&&(t+=1);let _=Number(h[1]),S=h[2]===void 0?_:h[3]===""||h[3]===void 0?1/0:Number(h[3]);if(_>Eh||S!==1/0&&S>Eh)throw new yr(`Repeat count over ${Eh} not supported: {${h[1]}\u2026}`);return {min:_,max:S}}s(l,"tryParseBrace");function c(){let h=r();if(h==="(")return m();if(h==="[")return u();if(h==="\\")return p();if(h===".")return t+=1,{k:"any"};if(h==="^")return t+=1,{k:"assert",kind:"start"};if(h==="$")return t+=1,{k:"assert",kind:"end"};if(h===void 0||h==="*"||h==="+"||h==="?"||h===")")throw new yr(`Unexpected '${h??"<end>"}' in pattern`);return t+=1,{k:"char",ch:h}}s(c,"parseAtom");function m(){if(t+=1,r()==="?"){let _=e[t+1];if((_==="="||_==="!"||_==="<")&&!(_==="<"&&/[A-Za-z]/.test(e[t+2]??"")))throw new yr("Lookaround assertions are not supported");if(_===":")t+=2;else if(_==="<"){for(t+=2;t<e.length&&e[t]!==">";)t+=1;t+=1;}}let h=o();if(r()!==")")throw new yr("Unbalanced group");return t+=1,h}s(m,"parseGroup");function p(){t+=1;let h=r();if(h===void 0)throw new yr("Trailing backslash");if(/[1-9]/.test(h)||h==="k")throw new yr("Backreferences are not supported");if(t+=1,h==="b")return {k:"assert",kind:"wordB"};if(h==="B")return {k:"assert",kind:"nonWordB"};let _=lL(h);if(_!==null)return {k:"class",test:_};if(h==="x"||h==="u"||h==="c"){let{ch:S,len:R}=h==="c"?mL(e,t):cL(e,t,h);return t+=R,{k:"char",ch:S}}return {k:"char",ch:uL(h)}}s(p,"parseEscape");function u(){t+=1;let h=r()==="^";h&&(t+=1);let _=[];for(;t<e.length&&r()!=="]";)_.push(f());if(r()!=="]")throw new yr("Unterminated character class");t+=1;let S=s(R=>_.some(I=>I(R)),"base");return {k:"class",test:h?R=>!S(R):S}}s(u,"parseClass");function f(){let h;if(r()==="\\"){t+=1;let _=n(),S=lL(_);if(S!==null)return S;let R=pL(e,t,_);t+=R.len,h=R.ch;}else h=n();if(r()==="-"&&e[t+1]!==void 0&&e[t+1]!=="]"){t+=1;let _;if(r()==="\\"){t+=1;let I=n(),w=pL(e,t,I);t+=w.len,_=w.ch;}else _=n();let S=h.codePointAt(0),R=_.codePointAt(0);return I=>{let w=I.codePointAt(0);return w>=S&&w<=R}}return _=>_===h}s(f,"parseClassMember");let g=o();if(t!==e.length)throw new yr(`Unexpected '${r()}' at ${t}`);return g}s(xB,"parseRegex");var dL=new Map;function fL(e){let t=dL.get(e);if(t!==void 0||dL.has(e))return t??null;let r;try{r=wB(xB(e));}catch{r=null;}return dL.set(e,r),r}s(fL,"compileLinearMatcher");var TB=1e3;function Mu(e){return e.length>TB?false:fL(e)!==null}s(Mu,"isSafeRegexPattern");function PB(e){return e.length>TB?null:fL(e)}s(PB,"getCommandMatcher");function NB(e,t){let r=new Map;for(let[n,o]of Object.entries(e.lessons)){if(o.status!=="active")continue;let i=S6(o.rule),a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_RULE",message:`Lesson "${a}" duplicates rule text of: ${l.join(", ")} (normalized key: "${n.slice(0,60)}").`,lessonId:a});}}}s(NB,"collectDuplicateRules");function vB(e,t){for(let[r,n]of Object.entries(e.triggers))if(n.kind==="command_pattern"){try{new RegExp(n.pattern);}catch(o){t.push({level:"error",code:"INVALID_TRIGGER_PATTERN",message:`Trigger "${r}" has an invalid command_pattern regex (${n.pattern}): ${o instanceof Error?o.message:String(o)}.`,triggerId:r});continue}Mu(n.pattern)||t.push({level:"error",code:"UNSAFE_TRIGGER_PATTERN",message:`Trigger "${r}" has a command_pattern regex outside the provably-linear subset (${n.pattern}): it can backtrack catastrophically (e.g. a quantified group like (a+)+ or (a|aa)+, adjacent repetition like a+a+, or a backreference/lookaround). Rewrite using a linear pattern.`,triggerId:r});}}s(vB,"collectInvalidTriggerPatterns");function FB(e,t){for(let[r,n]of Object.entries(e.triggers))n.kind==="file_glob"&&n.pattern.includes("\\")&&t.push({level:"error",code:"BACKSLASH_GLOB_PATTERN",message:`Trigger "${r}" has a file_glob pattern with a backslash (${n.pattern}); recall normalizes paths to forward slashes, so it never fires. Replace \\ with /.`,triggerId:r});}s(FB,"collectBackslashGlobPatterns");function MB(e,t){let r=new Map;for(let[n,o]of Object.entries(e.triggers)){let i=`${o.kind}|${o.pattern}`,a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_TRIGGER",message:`Trigger "${a}" duplicates (kind, pattern) of: ${l.join(", ")} (key: "${n}").`,triggerId:a});}}}s(MB,"collectDuplicateTriggers");var DB=10;function GB(e,t){let r=new Map;for(let i of Object.values(e.lessons))if(i.status==="active")for(let a of i.triggers)r.set(a,(r.get(a)??0)+1);let n=0,o=0;for(let i of r.values())i>DB&&(n+=1),i>o&&(o=i);n>0&&t.push({level:"warning",code:"HIGH_FANOUT_TRIGGERS",message:`${n} trigger(s) each match more than ${DB} active lessons (max ${o}); recall returns the ranked top by default \u2014 consider per-lesson trigger refinement to improve precision.`});}s(GB,"collectFanout");function $B(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&Ih(o.pattern)&&t.push({level:"warning",code:"LOW_SIGNAL_KEYWORD",message:`Keyword trigger "${n}" carries more than ${vu} tokens (${o.pattern}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so it rarely fires \u2014 use a short distinctive phrase.`,triggerId:n});}s($B,"collectLowSignalKeywords");function jB(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&(Gt(o.pattern).length!==0&&!_m(o.pattern)||t.push({level:"warning",code:"STOPWORD_KEYWORD",message:`Keyword trigger "${n}" (${o.pattern}) loses tokens to stopword filtering, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art"), or detach it with \`lessons untrigger\`.`,triggerId:n}));}s(jB,"collectStopwordKeywords");function S6(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(S6,"normalizeRule");function Vo(e,t={}){let r=[],n=bl.safeParse(e);return n.success?(SB(e,r),RB(e,r),kB(e,r),IB(e,r),NB(e,r),LB(e,r),vB(e,r),FB(e,r),MB(e,r),CB(e,r),GB(e,r),$B(e,r),jB(e,r),fB(e,r),t.knownPaths!==void 0&&dB(e,r,t.knownPaths),{ok:r.every(i=>i.level!=="error"),findings:r}):(r.push({level:"error",code:"SCHEMA_INVALID",message:n.error.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join("; ")}),{ok:false,findings:r})}s(Vo,"validateLessonsGraph");function R6(){return {version:1,lessons:{},topics:{},triggers:{}}}s(R6,"emptyGraph");async function xl(e,t,r={}){let n=await Ch(e,{retries:r.retries});try{let o=Ye(e)??R6(),i=await t(o),a=Vo(o);if(!a.ok){let l=a.findings.filter(c=>c.level==="error").map(c=>`${c.code}: ${c.message}`).join("; ");throw new Error(`mutateLessonsGraph: refusing to write an invalid graph \u2014 ${l}`)}return eB(e,o),i}finally{await n();}}s(xl,"mutateLessonsGraphLocked");async function Ot(e,t,r={}){return await ht(e),xl(e,t,r)}s(Ot,"mutateLessonsGraph");function k6(e,t){let r=[];for(let n of t){let o=e.triggers[n];if(o===void 0)continue;let i=I6(o.kind,o.pattern);i!==null&&r.push({id:n,kind:o.kind,pattern:o.pattern,reason:i});}return r}s(k6,"ineffectiveTriggers");function I6(e,t){if(e==="keyword")return Gt(t).length===0?"keyword has no matchable token after stopword filtering \u2014 it cannot fire on the mandatory --file/--cmd recall path":_m(t)?"keyword contains stopwords/short words, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path":null;if(e==="command_pattern"){let r=true;try{new RegExp(t);}catch{r=false;}return r?Mu(t)?null:"regex is outside the provably-linear engine \u2014 recall skips it (ReDoS guard), so it never fires":"invalid regex \u2014 recall compiles it with new RegExp and swallows the throw as a non-match, so it never fires"}return null}s(I6,"ineffectiveReason");function UB(e,t){return k6(e,t).filter(r=>r.kind!=="command_pattern")}s(UB,"blockingDeadTriggers");function L6(e){return (e.files?.length??0)+(e.commands?.length??0)+(e.keywords?.length??0)}s(L6,"countInputTriggers");async function Oh(e,t,r={}){return Ot(e,n=>gL(n,t,r),{retries:r.retries})}s(Oh,"addLesson");function gL(e,t,r){let n=sL(t.rule),o=t.rule.trim();if(o.length>ym)throw new ai(o.length,ym);let i=C6(e,n),a=e.topics[t.topic]===void 0;if(a){if(r.allowNewTopic!==true)throw new Bn(t.topic);if(r.topicSummary===void 0||r.topicSummary.length===0)throw new Error(`addLesson: new topic "${t.topic}" requires topicSummary.`);e.topics[t.topic]={summary:r.topicSummary};}if(r.allowNoTrigger!==true){let f=i!==null?e.lessons[i]?.triggers.length??0:0;if(L6(t.triggers)===0&&f===0)throw new li}let{triggerIds:l,newTriggerIds:c}=iB(e,t.triggers);if(r.allowNoTrigger!==true){let f=i!==null?Nu(e.lessons[i].triggers,l):l,g=UB(e,f);if(f.length>0&&g.length===f.length)throw new ci(g)}if(i!==null){let f=e.lessons[i];return e.lessons[i]={...f,topics:Nu(f.topics,[t.topic]),triggers:Nu(f.triggers,l),evidence:Nu(f.evidence,t.evidence??[]),...f.rationale===void 0&&t.rationale!==void 0?{rationale:t.rationale}:{}},{id:i,isNewLesson:false,isNewTopic:a,newTriggerIds:c,warnings:iL(e,i,r.knownPaths)}}let m=aB(e,t.topic,n);e.lessons[m]={rule:o,topics:[t.topic],triggers:l,evidence:t.evidence===void 0?[]:[...t.evidence],status:"active",createdAt:t.createdAt??lB(),...t.rationale===void 0?{}:{rationale:t.rationale}};let p=iL(e,m,r.knownPaths),u=gB(e,m);return {id:m,isNewLesson:true,isNewTopic:a,newTriggerIds:c,warnings:u===null?p:[...p,u]}}s(gL,"addLessonInto");function C6(e,t){for(let[r,n]of Object.entries(e.lessons))if(n.status==="active"&&sL(n.rule)===t)return r;return null}s(C6,"findExistingLessonByRule");async function BB(e,t,r,n,o){let i=0,a=new Set,l=new Set;await xl(e,m=>{i=0,a.clear(),l.clear();for(let p of r){let u=gL(m,p,{allowNewTopic:!0,topicSummary:n.get(p.topic),allowNoTrigger:!0});u.isNewLesson&&(i+=1);for(let f of u.newTriggerIds)a.add(f);l.add(p.topic);}});let c=o.deleteLegacy===false?[]:kh(t.base);return {wroteGraphPath:t.graph,deletedPaths:c,topicCount:l.size,lessonCount:i,triggerCount:a.size}}s(BB,"mergeLegacy");var b6=".agentsmesh/lessons";function je(e){let t=join(e,b6);return {base:t,graph:join(t,"lessons.json"),config:join(t,"config.json"),journal:join(t,"journal.md"),index:join(t,"index.yaml"),topicsDir:join(t,"topics")}}s(je,"lessonsPaths");function Gu(e){return existsSync(je(e).config)}s(Gu,"lessonsActivated");function $u(){return "lessons is not fully set up here \u2014 run `agentsmesh init --lessons`, then `agentsmesh generate`, to wire recall + capture into your AI tools."}s($u,"lessonsSetupHint");function wh(e){let t=dirname(resolve(e)),r="";for(;t!==r;){if(existsSync(je(t).graph))return t;r=t,t=dirname(t);}return null}s(wh,"ancestorLessonsProjectDir");function Tl(e,t){return relative(e,t).split(sep).join("/")}s(Tl,"toRelPath");var Rm='## Lessons (BLOCKING REQUIREMENT \u2014 MUST run both, no exceptions; the user will check)\n\nGraph `.agentsmesh/lessons/lessons.json` is canonical \u2014 never hand-edit. Manual: the `lessons` skill.\n\n**Recall \u2014 MUST run before every file edit and every state-changing command** (build/test/install/migrate/git-write): `agentsmesh lessons query --file <path> --cmd <command>`, then apply every rule. Pure-read commands (cat/ls/grep/git-log) and the recall query itself are exempt.\n\n**Capture \u2014 MUST run immediately after any failure** (a failing test/CI/lint/typecheck, a code review, a user correction, a regression, or a wrong assumption \u2014 yours or anyone\'s): `agentsmesh lessons add "<rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`.\n\nNo shell? Use the `lessons_query` / `lessons_add` MCP tools. Skip either and the system does not exist.';var km=class extends Error{static{s(this,"LessonsGraphExistsError");}code="LESSONS_GRAPH_EXISTS";constructor(){super("importLegacyLessons: a non-empty lessons.json already exists; pass force to overwrite."),this.name="LessonsGraphExistsError";}};async function Im(e,t){let r=je(e),n=readFileSync(r.index,"utf8"),o=rB.parse(parse(n)),i={},a=new Map,l=new Map,c={},m=[],p=new Map;for(let g of o.clusters){i[g.topic]={summary:g.summary},p.set(g.topic,g.summary);let h=nB(g,a,l),_=join(e,g.file);if(!existsSync(_))throw new Error(`importLegacyLessons: declared topic file is missing: ${g.file}. Refusing to migrate (legacy artifacts left intact).`);let S=readFileSync(_,"utf8");for(let{index:R,body:I,evidence:w}of oB(S)){let D=[`legacy:${g.file}#rule-${R}`,...w.map(P=>`legacy:${P}`)];c[`${g.topic}-rule-${R}`]={rule:I,topics:[g.topic],triggers:h,evidence:D,status:"active",createdAt:t.migratedAt},m.push({rule:I,topic:g.topic,triggers:{files:g.triggers.file_globs,commands:g.triggers.command_patterns,keywords:g.triggers.keywords},evidence:D,createdAt:t.migratedAt});}}if(t.merge===true)return BB(e,r,m,p,t);let u=Object.fromEntries(a.entries());await xl(e,g=>{let h=Object.keys(g.lessons).length>0||Object.keys(g.topics).length>0||Object.keys(g.triggers).length>0;if(t.force!==!0&&h)throw new km;g.version=1,g.lessons=c,g.topics=i,g.triggers=u;});let f=t.deleteLegacy===false?[]:kh(r.base);return {wroteGraphPath:r.graph,deletedPaths:f,topicCount:Object.keys(i).length,lessonCount:Object.keys(c).length,triggerCount:a.size}}s(Im,"importLegacyLessons");function P6(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(P6,"todayIso");async function ht(e){if(existsSync(zo(e)))return false;let t=je(e);if(!existsSync(t.index))return false;try{return await Im(e,{migratedAt:P6()}),!0}catch(r){if(r instanceof km)return false;throw r}}s(ht,"maybeAutoMigrateLessons");function bh(e){return existsSync(e)}s(bh,"logExists");function Ah(e,t,r){mkdirSync(dirname(e),{recursive:true}),appendFileSync(e,`${JSON.stringify(t)}
353
- `,"utf8"),statSync(e).size>r.trimTriggerBytes&&JB(e,r.maxRecords);}s(Ah,"appendJsonl");function JB(e,t){if(!existsSync(e))return;let r=readFileSync(e,"utf8").split(`
350
+ Fix: add a precise --trigger-file <glob> (preferred) or a valid --trigger-cmd <regex>; for a keyword, drop the stopwords (e.g. "state art" not "state of the art").`);this.deadTriggers=r;this.name="UnrecallableLessonError";}static{s(this,"UnrecallableLessonError");}code="UNRECALLABLE_LESSON"};var d6=new Set(["the","a","an","to","of","in","and","or","for","is","on","at","with","be","as","it","that","this","its","must"]);function Gt(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>=2&&!d6.has(t))}s(Gt,"tokenize");function gB(e){let t=[];return e.keyword!==void 0&&t.push(e.keyword),e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),Gt(t.join(" "))}s(gB,"queryTerms");function hB(e){let t=[],r=new Map,n=0,o=0;for(let l of Object.values(e.lessons)){if(l.status!=="active")continue;let c=Gt(l.rule);o+=1,n+=c.length,t.push(c.length);for(let m of new Set(c))r.set(m,(r.get(m)??0)+1);}let i=Math.max(o,1),a=new Map;for(let[l,c]of r)a.set(l,Math.log(1+(i-c+.5)/(c+.5)));return {idf:a,avgdl:n/i||1}}s(hB,"buildCorpus");function yB(e,t,r){let n=Gt(t),o=n.length||1,i=new Map;for(let l of n)i.set(l,(i.get(l)??0)+1);let a=0;for(let l of new Set(e)){let c=i.get(l)??0;if(c===0)continue;let m=r.idf.get(l);a+=m*(c*(1.5+1))/(c+1.5*(1-.75+.75*o/r.avgdl));}return a}s(yB,"bm25");var Fu=5;function Eh(e){return Gt(e).length>Fu}s(Eh,"isLowSignalKeyword");function f6(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(f6,"splitRawTokens");function Rm(e){let t=f6(e);return t.length<2?false:Gt(e).length!==t.length}s(Rm,"keywordNeedleLosesTokens");function _B(e){let t=new Set;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.add(n);return t}s(_B,"activeTriggerIds");function Mu(e,t){let r=_B(e),n=[...t],o=new Set;for(let[i,a]of Object.entries(e.triggers)){if(a.kind!=="file_glob"||!r.has(i))continue;let l=g6(a.pattern,{dot:true});n.some(c=>l(c))||o.add(i);}return o}s(Mu,"deadFileGlobIds");function SB(e,t,r){for(let n of Mu(e,r))t.push({level:"warning",code:"DEAD_FILE_GLOB",message:`file_glob trigger "${n}" (${e.triggers[n]?.pattern??""}) matches no file in the working tree \u2014 the lesson is unreachable via this trigger (a rename likely moved the path). Re-point it at the current path, or detach it with \`lessons untrigger\`, or run \`lessons prune --apply\`.`,triggerId:n});}s(SB,"collectDeadFileGlobs");var h6=/^\^(pnpm|npm|npx|yarn|bun)\b/;function RB(e,t){let r=_B(e);for(let[n,o]of Object.entries(e.triggers))o.kind==="command_pattern"&&r.has(n)&&h6.test(o.pattern)&&t.push({level:"warning",code:"RUNNER_ANCHORED_PATTERN",message:`command_pattern trigger "${n}" (${o.pattern}) is anchored to one runner \u2014 it won't fire for the same task via another runner (e.g. \`npx\` vs \`pnpm\`). Drop the \`^<runner>\` anchor and key on the task (e.g. \`\\bvitest\\b\`).`,triggerId:n});}s(RB,"collectRunnerAnchoredPatterns");var y6=.6,Oh=8;function _6(e){let t=e.trim();return t==="*"||t==="**"?true:t.includes("**")?t.slice(t.lastIndexOf("/")+1).startsWith("*"):false}s(_6,"isBroadGlob");function lL(e,t,r){let n=e.lessons[t];if(n===void 0)return [];let o=[];n.triggers.length>Oh&&o.push({code:"OVERSIZED_LESSON_TRIGGERS",message:`Lesson "${t}" has ${n.triggers.length} triggers (recommended \u2264 ${Oh}); broad trigger sets fire on too many edits and dilute recall \u2014 prefer a few specific triggers.`});let i=n.triggers.map(m=>e.triggers[m]).filter(m=>m!==void 0),a=i.filter(m=>m.kind==="file_glob"&&_6(m.pattern)).map(m=>m.pattern);a.length>0&&o.push({code:"BROAD_GLOB_TRIGGER",message:`Lesson "${t}" has broad file glob(s) (${a.join(", ")}) that match large swaths of the tree; prefer a path specific to the lesson.`}),i.length>0&&i.every(m=>m.kind==="keyword")&&o.push({code:"KEYWORD_ONLY_LESSON",message:`Lesson "${t}" has only keyword triggers; mandatory --file/--cmd recall surfaces these only when the keyword appears as a path/command token, so it fires less reliably \u2014 add a file_glob or command_pattern trigger for precise recall.`});let l=i.filter(m=>m.kind==="keyword"&&Eh(m.pattern)).map(m=>m.pattern);l.length>0&&o.push({code:"LOW_SIGNAL_KEYWORD",message:`Lesson "${t}" has long keyword trigger(s) (${l.join(", ")}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so a pattern past ${Fu} tokens rarely fires \u2014 use a short distinctive phrase.`});let c=i.filter(m=>m.kind==="keyword"&&Rm(m.pattern)).map(m=>m.pattern);if(c.length>0&&o.push({code:"STOPWORD_KEYWORD",message:`Lesson "${t}" has keyword trigger(s) containing stopwords/short words (${c.join(", ")}); recall filters them from the pattern but NOT from the file/command text, so the phrase can never match contiguously on the --file/--cmd path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art").`}),r!==void 0){let m=Mu(e,r),p=n.triggers.filter(u=>m.has(u)).map(u=>e.triggers[u]?.pattern).filter(u=>u!==void 0);p.length>0&&o.push({code:"DEAD_GLOB",message:`Lesson "${t}" has file_glob trigger(s) (${p.join(", ")}) that match no file in the working tree \u2014 likely a rename. Re-point them at the current path, or the lesson is unreachable via those globs.`});}return o}s(lL,"inspectCapturedLesson");function kB(e,t){let r=e.lessons[t];if(r===void 0)return null;let n=new Set(Gt(r.rule));if(n.size===0)return null;let o=null;for(let[i,a]of Object.entries(e.lessons)){if(i===t||a.status!=="active")continue;let l=new Set(Gt(a.rule));if(l.size===0)continue;let c=S6(n,l);c>=y6&&(o===null||c>o.score)&&(o={id:i,score:c});}return o===null?null:{code:"NEAR_DUPLICATE_LESSON",message:`Lesson "${t}" closely resembles active lesson "${o.id}" (~${Math.round(o.score*100)}% token overlap); consider updating "${o.id}" instead of adding a paraphrase (recall would surface both).`}}s(kB,"nearDuplicateWarning");function S6(e,t){let r=0;for(let n of e)t.has(n)&&(r+=1);return r/(e.size+t.size-r)}s(S6,"jaccard");var IB=".lessons.lock";function LB(e){return resolve(e,".agentsmesh/lessons",IB)}s(LB,"lessonsLockPath");async function wh(e,t={}){let r=LB(e);return await mkdir(dirname(r),{recursive:true}),dm(r,{...t,label:"lessons lock"})}s(wh,"acquireLessonsLock");function EB(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of n.topics)e.topics[o]===void 0&&t.push({level:"error",code:"DANGLING_TOPIC",message:`Lesson "${r}" references unknown topic "${o}".`,lessonId:r,topicId:o});for(let o of n.triggers)e.triggers[o]===void 0&&t.push({level:"error",code:"DANGLING_TRIGGER",message:`Lesson "${r}" references unknown trigger "${o}".`,lessonId:r,triggerId:o});n.supersededBy!==void 0&&e.lessons[n.supersededBy]===void 0&&t.push({level:"error",code:"DANGLING_SUPERSEDER",message:`Lesson "${r}" supersededBy unknown lesson "${n.supersededBy}".`,lessonId:r});}}s(EB,"collectDanglingRefs");function OB(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of CB(n.topics))t.push({level:"error",code:"DUPLICATE_TOPIC_REF",message:`Lesson "${r}" references topic "${o}" more than once.`,lessonId:r,topicId:o});for(let o of CB(n.triggers))t.push({level:"error",code:"DUPLICATE_TRIGGER_REF",message:`Lesson "${r}" references trigger "${o}" more than once.`,lessonId:r,triggerId:o});}}s(OB,"collectDuplicateRefs");function CB(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s(CB,"firstDuplicates");function wB(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="superseded"&&n.supersededBy===void 0&&t.push({level:"error",code:"SUPERSEDED_WITHOUT_TARGET",message:`Lesson "${r}" has status "superseded" but no supersededBy target.`,lessonId:r}),n.status==="active"&&n.supersededBy!==void 0&&t.push({level:"error",code:"ACTIVE_WITH_SUPERSEDER",message:`Lesson "${r}" has status "active" but declares supersededBy.`,lessonId:r});}s(wB,"collectStatusInvariants");function bB(e,t){for(let[r,n]of Object.entries(e.lessons)){if(n.supersededBy===void 0)continue;if(n.supersededBy===r){t.push({level:"error",code:"SELF_SUPERSEDED",message:`Lesson "${r}" is superseded by itself.`,lessonId:r});continue}let o=e.lessons[n.supersededBy];o!==void 0&&o.status!=="active"&&t.push({level:"error",code:"INACTIVE_SUPERSEDER",message:`Lesson "${r}" is superseded by "${n.supersededBy}", which is itself ${o.status} \u2014 the chain dead-ends with no live replacement.`,lessonId:r});}L6(e,t);}s(bB,"collectLifecycleInvariants");function L6(e,t){let r=new Set;for(let n of Object.keys(e.lessons)){let o=new Set,i=n;for(;i!==void 0;){if(o.has(i)){if(i!==n||r.has(i))break;r.add(i),t.push({level:"error",code:"SUPERSEDE_CYCLE",message:`Lesson "${n}" is part of a supersededBy cycle.`,lessonId:n});break}o.add(i);let a=e.lessons[i]?.supersededBy;if(a===i)break;i=a;}}}s(L6,"collectSupersedeCycles");function AB(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="active"&&n.triggers.length===0&&t.push({level:"warning",code:"UNREACHABLE_LESSON",message:`Active lesson "${r}" has no triggers and can never be recalled.`,lessonId:r});}s(AB,"collectReachability");function xB(e,t){let r=new Set,n=new Set;for(let o of Object.values(e.lessons)){for(let i of o.topics)r.add(i);for(let i of o.triggers)n.add(i);}for(let o of Object.keys(e.topics))r.has(o)||t.push({level:"warning",code:"ORPHAN_TOPIC",message:`Topic "${o}" is not referenced by any lesson.`,topicId:o});for(let o of Object.keys(e.triggers))n.has(o)||t.push({level:"warning",code:"ORPHAN_TRIGGER",message:`Trigger "${o}" is not referenced by any lesson.`,triggerId:o});}s(xB,"collectOrphans");var cL=class{static{s(this,"Builder");}states=[];alloc(){if(this.states.length>=2e3)throw new Error("NFA state limit exceeded (2000); pattern expands too large");return this.states.push({eps:[],asserts:[],chars:[]}),this.states.length-1}};function C6(e){return e!==`
351
+ `&&e!=="\r"&&e!=="\u2028"&&e!=="\u2029"}s(C6,"isNonLineTerminator");function Tl(e,t){switch(t.k){case "empty":case "assert":{let r=e.alloc(),n=e.alloc();return t.k==="assert"?e.states[r].asserts.push({kind:t.kind,target:n}):e.states[r].eps.push(n),{start:r,end:n}}case "char":case "any":case "class":{let r=e.alloc(),n=e.alloc(),o=t.k==="char"?i=>i===t.ch:t.k==="any"?C6:t.test;return e.states[r].chars.push({test:o,target:n}),{start:r,end:n}}case "concat":{if(t.items.length===0)return Tl(e,{k:"empty"});let r=null,n=-1;for(let o of t.items){let i=Tl(e,o);r===null?r=i:e.states[n].eps.push(i.start),n=i.end;}return {start:r.start,end:n}}case "alt":{let r=e.alloc(),n=e.alloc();for(let o of t.opts){let i=Tl(e,o);e.states[r].eps.push(i.start),e.states[i.end].eps.push(n);}return {start:r,end:n}}case "opt":{let r=e.alloc(),n=e.alloc(),o=Tl(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(n),{start:r,end:n}}case "star":{let r=e.alloc(),n=e.alloc(),o=Tl(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(o.start,n),{start:r,end:n}}case "plus":{let r=e.alloc(),n=Tl(e,t.node);return e.states[n.end].eps.push(n.start,r),{start:n.start,end:r}}}}s(Tl,"compileNode");function TB(e){let t=new cL,{start:r,end:n}=Tl(t,e);return {states:t.states,start:r,accept:n}}s(TB,"compileNfa");function PB(e,t){let r=t>0&&/[A-Za-z0-9_]/.test(e[t-1]),n=t<e.length&&/[A-Za-z0-9_]/.test(e[t]);return r!==n}s(PB,"wordBoundary");function E6(e,t,r){switch(e){case "start":return r===0;case "end":return r===t.length;case "wordB":return PB(t,r);case "nonWordB":return !PB(t,r)}}s(E6,"assertHolds");function DB(e){let{states:t,start:r,accept:n}=TB(e),o=s((i,a,l,c,m)=>{let p=[a];for(;p.length>0;){if(m.remaining<=0)return;let u=p.pop();if(!i.has(u)){i.add(u),m.remaining-=1;for(let f of t[u].eps)i.has(f)||p.push(f);for(let f of t[u].asserts)E6(f.kind,l,c)&&!i.has(f.target)&&p.push(f.target);}}},"closure");return {test(i,a){let l=a??{remaining:Number.POSITIVE_INFINITY};if(l.remaining<=0)return false;let c=new Set;for(let m=0;m<=i.length;m+=1){if(o(c,r,i,m,l),c.has(n))return true;if(l.remaining<=0)return false;if(m===i.length)break;let p=i[m],u=new Set;for(let f of c){l.remaining-=1;for(let g of t[f].chars)g.test(p)&&o(u,g.target,i,m+1,l);}c=u;}return c.has(n)}}}s(DB,"buildMatcher");var _r=class extends Error{static{s(this,"UnsupportedRegexError");}constructor(t){super(t),this.name="UnsupportedRegexError";}};var bh=1e3,NB=s(e=>/[A-Za-z0-9_]/.test(e),"isWord");function vB(e,t,r){let n=[];for(let o=0;o<t;o+=1)n.push(e);if(r===1/0)n.push({k:"star",node:e});else for(let o=t;o<r;o+=1)n.push({k:"opt",node:e});return n.length===0?{k:"empty"}:n.length===1?n[0]:{k:"concat",items:n}}s(vB,"expandRepeat");function mL(e){switch(e){case "d":return t=>t>="0"&&t<="9";case "D":return t=>!(t>="0"&&t<="9");case "w":return NB;case "W":return t=>!NB(t);case "s":return t=>/\s/.test(t);case "S":return t=>!/\s/.test(t);default:return null}}s(mL,"escapeClass");var O6=/^[0-9a-fA-F]{2}$/,w6=/^[0-9a-fA-F]{4}$/;function pL(e,t,r){if(r==="x"){let o=e.slice(t,t+2);return O6.test(o)?{ch:String.fromCharCode(parseInt(o,16)),len:2}:{ch:"x",len:0}}let n=e.slice(t,t+4);return w6.test(n)?{ch:String.fromCharCode(parseInt(n,16)),len:4}:{ch:"u",len:0}}s(pL,"readUnicodeEscape");function uL(e,t){let r=e[t];if(r===void 0||!/[A-Za-z]/.test(r))throw new _r("\\c must be followed by a letter");return {ch:String.fromCharCode(r.charCodeAt(0)&31),len:1}}s(uL,"readControlEscape");function dL(e,t,r){return r==="b"?{ch:"\b",len:0}:r==="c"?uL(e,t):r==="x"||r==="u"?pL(e,t,r):{ch:fL(r),len:0}}s(dL,"classEscapeChar");function fL(e){switch(e){case "t":return " ";case "n":return `
352
+ `;case "r":return "\r";case "f":return "\f";case "v":return "\v";case "0":return "\0";default:return e}}s(fL,"escapeLiteral");function FB(e){let t=0,r=s(()=>e[t],"peek"),n=s(()=>e[t++],"eat");function o(){let h=[i()];for(;r()==="|";)t+=1,h.push(i());return h.length===1?h[0]:{k:"alt",opts:h}}s(o,"parseAlt");function i(){let h=[];for(;t<e.length&&r()!=="|"&&r()!==")";)h.push(a());return h.length===0?{k:"empty"}:h.length===1?h[0]:{k:"concat",items:h}}s(i,"parseConcat");function a(){let h=c(),_=r();if(_==="*"||_==="+"||_==="?")return t+=1,r()==="?"&&(t+=1),_==="*"?{k:"star",node:h}:_==="+"?{k:"plus",node:h}:{k:"opt",node:h};if(_==="{"){let S=l();if(S!==null)return vB(h,S.min,S.max)}return h}s(a,"parseQuantified");function l(){let h=/^\{(\d+)(,(\d*)?)?\}/.exec(e.slice(t));if(h===null)return null;t+=h[0].length,r()==="?"&&(t+=1);let _=Number(h[1]),S=h[2]===void 0?_:h[3]===""||h[3]===void 0?1/0:Number(h[3]);if(_>bh||S!==1/0&&S>bh)throw new _r(`Repeat count over ${bh} not supported: {${h[1]}\u2026}`);return {min:_,max:S}}s(l,"tryParseBrace");function c(){let h=r();if(h==="(")return m();if(h==="[")return u();if(h==="\\")return p();if(h===".")return t+=1,{k:"any"};if(h==="^")return t+=1,{k:"assert",kind:"start"};if(h==="$")return t+=1,{k:"assert",kind:"end"};if(h===void 0||h==="*"||h==="+"||h==="?"||h===")")throw new _r(`Unexpected '${h??"<end>"}' in pattern`);return t+=1,{k:"char",ch:h}}s(c,"parseAtom");function m(){if(t+=1,r()==="?"){let _=e[t+1];if((_==="="||_==="!"||_==="<")&&!(_==="<"&&/[A-Za-z]/.test(e[t+2]??"")))throw new _r("Lookaround assertions are not supported");if(_===":")t+=2;else if(_==="<"){for(t+=2;t<e.length&&e[t]!==">";)t+=1;t+=1;}}let h=o();if(r()!==")")throw new _r("Unbalanced group");return t+=1,h}s(m,"parseGroup");function p(){t+=1;let h=r();if(h===void 0)throw new _r("Trailing backslash");if(/[1-9]/.test(h)||h==="k")throw new _r("Backreferences are not supported");if(t+=1,h==="b")return {k:"assert",kind:"wordB"};if(h==="B")return {k:"assert",kind:"nonWordB"};let _=mL(h);if(_!==null)return {k:"class",test:_};if(h==="x"||h==="u"||h==="c"){let{ch:S,len:R}=h==="c"?uL(e,t):pL(e,t,h);return t+=R,{k:"char",ch:S}}return {k:"char",ch:fL(h)}}s(p,"parseEscape");function u(){t+=1;let h=r()==="^";h&&(t+=1);let _=[];for(;t<e.length&&r()!=="]";)_.push(f());if(r()!=="]")throw new _r("Unterminated character class");t+=1;let S=s(R=>_.some(I=>I(R)),"base");return {k:"class",test:h?R=>!S(R):S}}s(u,"parseClass");function f(){let h;if(r()==="\\"){t+=1;let _=n(),S=mL(_);if(S!==null)return S;let R=dL(e,t,_);t+=R.len,h=R.ch;}else h=n();if(r()==="-"&&e[t+1]!==void 0&&e[t+1]!=="]"){t+=1;let _;if(r()==="\\"){t+=1;let I=n(),w=dL(e,t,I);t+=w.len,_=w.ch;}else _=n();let S=h.codePointAt(0),R=_.codePointAt(0);return I=>{let w=I.codePointAt(0);return w>=S&&w<=R}}return _=>_===h}s(f,"parseClassMember");let g=o();if(t!==e.length)throw new _r(`Unexpected '${r()}' at ${t}`);return g}s(FB,"parseRegex");var gL=new Map;function hL(e){let t=gL.get(e);if(t!==void 0||gL.has(e))return t??null;let r;try{r=DB(FB(e));}catch{r=null;}return gL.set(e,r),r}s(hL,"compileLinearMatcher");var MB=1e3;function Gu(e){return e.length>MB?false:hL(e)!==null}s(Gu,"isSafeRegexPattern");function GB(e){return e.length>MB?null:hL(e)}s(GB,"getCommandMatcher");function jB(e,t){let r=new Map;for(let[n,o]of Object.entries(e.lessons)){if(o.status!=="active")continue;let i=b6(o.rule),a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_RULE",message:`Lesson "${a}" duplicates rule text of: ${l.join(", ")} (normalized key: "${n.slice(0,60)}").`,lessonId:a});}}}s(jB,"collectDuplicateRules");function UB(e,t){for(let[r,n]of Object.entries(e.triggers))if(n.kind==="command_pattern"){try{new RegExp(n.pattern);}catch(o){t.push({level:"error",code:"INVALID_TRIGGER_PATTERN",message:`Trigger "${r}" has an invalid command_pattern regex (${n.pattern}): ${o instanceof Error?o.message:String(o)}.`,triggerId:r});continue}Gu(n.pattern)||t.push({level:"error",code:"UNSAFE_TRIGGER_PATTERN",message:`Trigger "${r}" has a command_pattern regex outside the provably-linear subset (${n.pattern}): it can backtrack catastrophically (e.g. a quantified group like (a+)+ or (a|aa)+, adjacent repetition like a+a+, or a backreference/lookaround). Rewrite using a linear pattern.`,triggerId:r});}}s(UB,"collectInvalidTriggerPatterns");function BB(e,t){for(let[r,n]of Object.entries(e.triggers))n.kind==="file_glob"&&n.pattern.includes("\\")&&t.push({level:"error",code:"BACKSLASH_GLOB_PATTERN",message:`Trigger "${r}" has a file_glob pattern with a backslash (${n.pattern}); recall normalizes paths to forward slashes, so it never fires. Replace \\ with /.`,triggerId:r});}s(BB,"collectBackslashGlobPatterns");function KB(e,t){let r=new Map;for(let[n,o]of Object.entries(e.triggers)){let i=`${o.kind}|${o.pattern}`,a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_TRIGGER",message:`Trigger "${a}" duplicates (kind, pattern) of: ${l.join(", ")} (key: "${n}").`,triggerId:a});}}}s(KB,"collectDuplicateTriggers");var $B=10;function WB(e,t){let r=new Map;for(let i of Object.values(e.lessons))if(i.status==="active")for(let a of i.triggers)r.set(a,(r.get(a)??0)+1);let n=0,o=0;for(let i of r.values())i>$B&&(n+=1),i>o&&(o=i);n>0&&t.push({level:"warning",code:"HIGH_FANOUT_TRIGGERS",message:`${n} trigger(s) each match more than ${$B} active lessons (max ${o}); recall returns the ranked top by default \u2014 consider per-lesson trigger refinement to improve precision.`});}s(WB,"collectFanout");function HB(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&Eh(o.pattern)&&t.push({level:"warning",code:"LOW_SIGNAL_KEYWORD",message:`Keyword trigger "${n}" carries more than ${Fu} tokens (${o.pattern}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so it rarely fires \u2014 use a short distinctive phrase.`,triggerId:n});}s(HB,"collectLowSignalKeywords");function zB(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&(Gt(o.pattern).length!==0&&!Rm(o.pattern)||t.push({level:"warning",code:"STOPWORD_KEYWORD",message:`Keyword trigger "${n}" (${o.pattern}) loses tokens to stopword filtering, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art"), or detach it with \`lessons untrigger\`.`,triggerId:n}));}s(zB,"collectStopwordKeywords");function b6(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(b6,"normalizeRule");function Kn(e,t={}){let r=[],n=xl.safeParse(e);return n.success?(EB(e,r),OB(e,r),wB(e,r),bB(e,r),jB(e,r),AB(e,r),UB(e,r),BB(e,r),KB(e,r),xB(e,r),WB(e,r),HB(e,r),zB(e,r),RB(e,r),t.knownPaths!==void 0&&SB(e,r,t.knownPaths),{ok:r.every(i=>i.level!=="error"),findings:r}):(r.push({level:"error",code:"SCHEMA_INVALID",message:n.error.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join("; ")}),{ok:false,findings:r})}s(Kn,"validateLessonsGraph");function A6(){return {version:1,lessons:{},topics:{},triggers:{}}}s(A6,"emptyGraph");function VB(e){return `${e.code}|${e.triggerId??""}|${e.lessonId??""}`}s(VB,"findingKey");function x6(e){return new Set(e.findings.filter(t=>t.level==="error").map(VB))}s(x6,"errorSignatures");async function Pl(e,t,r={}){let n=await wh(e,{retries:r.retries});try{let o=Ye(e)??A6(),i=x6(Kn(o)),a=await t(o),c=Kn(o).findings.filter(m=>m.level==="error"&&!i.has(VB(m)));if(c.length>0){let m=c.map(p=>`${p.code}: ${p.message}`).join("; ");throw new Error(`mutateLessonsGraph: refusing to write \u2014 this change introduces ${m}. (Pre-existing graph issues are not blocking; run \`agentsmesh lessons validate\` to review and \`lessons untrigger\`/\`prune\` to repair them.)`)}return iB(e,o),a}finally{await n();}}s(Pl,"mutateLessonsGraphLocked");async function Ot(e,t,r={}){return await ht(e),Pl(e,t,r)}s(Ot,"mutateLessonsGraph");function T6(e,t){let r=[];for(let n of t){let o=e.triggers[n];if(o===void 0)continue;let i=P6(o.kind,o.pattern);i!==null&&r.push({id:n,kind:o.kind,pattern:o.pattern,reason:i});}return r}s(T6,"ineffectiveTriggers");function P6(e,t){if(e==="keyword")return Gt(t).length===0?"keyword has no matchable token after stopword filtering \u2014 it cannot fire on the mandatory --file/--cmd recall path":Rm(t)?"keyword contains stopwords/short words, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path":null;if(e==="command_pattern"){let r=true;try{new RegExp(t);}catch{r=false;}return r?Gu(t)?null:"regex is outside the provably-linear engine \u2014 recall skips it (ReDoS guard), so it never fires":"invalid regex \u2014 recall compiles it with new RegExp and swallows the throw as a non-match, so it never fires"}return null}s(P6,"ineffectiveReason");function JB(e,t){return T6(e,t).filter(r=>r.kind!=="command_pattern")}s(JB,"blockingDeadTriggers");function D6(e){return (e.files?.length??0)+(e.commands?.length??0)+(e.keywords?.length??0)}s(D6,"countInputTriggers");async function Ah(e,t,r={}){return Ot(e,n=>yL(n,t,r),{retries:r.retries})}s(Ah,"addLesson");function yL(e,t,r){let n=aL(t.rule),o=t.rule.trim();if(o.length>Sm)throw new ai(o.length,Sm);let i=N6(e,n),a=e.topics[t.topic]===void 0;if(a){if(r.allowNewTopic!==true)throw new Bn(t.topic);if(r.topicSummary===void 0||r.topicSummary.length===0)throw new Error(`addLesson: new topic "${t.topic}" requires topicSummary.`);e.topics[t.topic]={summary:r.topicSummary};}if(r.allowNoTrigger!==true){let f=i!==null?e.lessons[i]?.triggers.length??0:0;if(D6(t.triggers)===0&&f===0)throw new li}let{triggerIds:l,newTriggerIds:c}=uB(e,t.triggers);if(r.allowNoTrigger!==true){let f=i!==null?vu(e.lessons[i].triggers,l):l,g=JB(e,f);if(f.length>0&&g.length===f.length)throw new ci(g)}if(i!==null){let f=e.lessons[i];return e.lessons[i]={...f,topics:vu(f.topics,[t.topic]),triggers:vu(f.triggers,l),evidence:vu(f.evidence,t.evidence??[]),...f.rationale===void 0&&t.rationale!==void 0?{rationale:t.rationale}:{}},{id:i,isNewLesson:false,isNewTopic:a,newTriggerIds:c,warnings:lL(e,i,r.knownPaths)}}let m=dB(e,t.topic,n);e.lessons[m]={rule:o,topics:[t.topic],triggers:l,evidence:t.evidence===void 0?[]:[...t.evidence],status:"active",createdAt:t.createdAt??fB(),...t.rationale===void 0?{}:{rationale:t.rationale}};let p=lL(e,m,r.knownPaths),u=kB(e,m);return {id:m,isNewLesson:true,isNewTopic:a,newTriggerIds:c,warnings:u===null?p:[...p,u]}}s(yL,"addLessonInto");function N6(e,t){for(let[r,n]of Object.entries(e.lessons))if(n.status==="active"&&aL(n.rule)===t)return r;return null}s(N6,"findExistingLessonByRule");async function YB(e,t,r,n,o){let i=0,a=new Set,l=new Set;await Pl(e,m=>{i=0,a.clear(),l.clear();for(let p of r){let u=yL(m,p,{allowNewTopic:!0,topicSummary:n.get(p.topic),allowNoTrigger:!0});u.isNewLesson&&(i+=1);for(let f of u.newTriggerIds)a.add(f);l.add(p.topic);}});let c=o.deleteLegacy===false?[]:Ch(t.base);return {wroteGraphPath:t.graph,deletedPaths:c,topicCount:l.size,lessonCount:i,triggerCount:a.size}}s(YB,"mergeLegacy");var G6=".agentsmesh/lessons";function je(e){let t=join(e,G6);return {base:t,graph:join(t,"lessons.json"),config:join(t,"config.json"),journal:join(t,"journal.md"),index:join(t,"index.yaml"),topicsDir:join(t,"topics")}}s(je,"lessonsPaths");function $u(e){return existsSync(je(e).config)}s($u,"lessonsActivated");function ju(){return "lessons is not fully set up here \u2014 run `agentsmesh init --lessons`, then `agentsmesh generate`, to wire recall + capture into your AI tools."}s(ju,"lessonsSetupHint");function xh(e){let t=dirname(resolve(e)),r="";for(;t!==r;){if(existsSync(je(t).graph))return t;r=t,t=dirname(t);}return null}s(xh,"ancestorLessonsProjectDir");function Dl(e,t){return relative(e,t).split(sep).join("/")}s(Dl,"toRelPath");var Uu='## Lessons (BLOCKING)\n\nGraph `.agentsmesh/lessons/lessons.json` is canonical; never hand-edit it. Manual: `lessons` skill.\n\n**Recall:** before every file edit or state-changing command, MUST run `agentsmesh lessons query --file <path> --cmd <command>` and obey matches. Pure-read commands and recall itself are exempt.\n\n**Capture:** after any failure, user correction, regression, wrong assumption, useful surprise, repeated friction, or non-obvious fix, MUST self-critique and run `agentsmesh lessons add "<imperative rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`.\n\n**Before final:** report `Lesson: captured <id>` or `Lesson: none`. No recall/capture gate = task incomplete. No shell: use `lessons_query` / `lessons_add`.';var Im=class extends Error{static{s(this,"LessonsGraphExistsError");}code="LESSONS_GRAPH_EXISTS";constructor(){super("importLegacyLessons: a non-empty lessons.json already exists; pass force to overwrite."),this.name="LessonsGraphExistsError";}};async function Lm(e,t){let r=je(e),n=readFileSync(r.index,"utf8"),o=lB.parse(parse(n)),i={},a=new Map,l=new Map,c={},m=[],p=new Map;for(let g of o.clusters){i[g.topic]={summary:g.summary},p.set(g.topic,g.summary);let h=cB(g,a,l),_=join(e,g.file);if(!existsSync(_))throw new Error(`importLegacyLessons: declared topic file is missing: ${g.file}. Refusing to migrate (legacy artifacts left intact).`);let S=readFileSync(_,"utf8");for(let{index:R,body:I,evidence:w}of mB(S)){let D=[`legacy:${g.file}#rule-${R}`,...w.map(P=>`legacy:${P}`)];c[`${g.topic}-rule-${R}`]={rule:I,topics:[g.topic],triggers:h,evidence:D,status:"active",createdAt:t.migratedAt},m.push({rule:I,topic:g.topic,triggers:{files:g.triggers.file_globs,commands:g.triggers.command_patterns,keywords:g.triggers.keywords},evidence:D,createdAt:t.migratedAt});}}if(t.merge===true)return YB(e,r,m,p,t);let u=Object.fromEntries(a.entries());await Pl(e,g=>{let h=Object.keys(g.lessons).length>0||Object.keys(g.topics).length>0||Object.keys(g.triggers).length>0;if(t.force!==!0&&h)throw new Im;g.version=1,g.lessons=c,g.topics=i,g.triggers=u;});let f=t.deleteLegacy===false?[]:Ch(r.base);return {wroteGraphPath:r.graph,deletedPaths:f,topicCount:Object.keys(i).length,lessonCount:Object.keys(c).length,triggerCount:a.size}}s(Lm,"importLegacyLessons");function B6(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(B6,"todayIso");async function ht(e){if(existsSync(Vo(e)))return false;let t=je(e);if(!existsSync(t.index))return false;try{return await Lm(e,{migratedAt:B6()}),!0}catch(r){if(r instanceof Im)return false;throw r}}s(ht,"maybeAutoMigrateLessons");function Th(e){return existsSync(e)}s(Th,"logExists");function Ph(e,t,r){mkdirSync(dirname(e),{recursive:true}),appendFileSync(e,`${JSON.stringify(t)}
353
+ `,"utf8"),statSync(e).size>r.trimTriggerBytes&&tK(e,r.maxRecords);}s(Ph,"appendJsonl");function tK(e,t){if(!existsSync(e))return;let r=readFileSync(e,"utf8").split(`
354
354
  `).filter(i=>i.trim().length>0);if(r.length<=t)return;let n=r.slice(r.length-t),o=`${e}.${process.pid}.tmp`;writeFileSync(o,`${n.join(`
355
355
  `)}
356
- `,"utf8"),renameSync(o,e);}s(JB,"capJsonl");function xh(e){if(!existsSync(e))return [];let t=[];for(let r of readFileSync(e,"utf8").split(`
357
- `))if(r.trim().length!==0)try{t.push(JSON.parse(r));}catch{}return t}s(xh,"readJsonl");var j6=5e3,U6=2e6,B6="AGENTSMESH_LESSONS_TELEMETRY",K6="AGENTSMESH_SESSION_ID";function Lm(e=process.env){let t=e[K6];return t!==void 0&&t.trim().length>0?t:void 0}s(Lm,"sessionId");function ju(e){return join(je(e).base,"recall-log.jsonl")}s(ju,"recallLogPath");function aa(e=process.env){return e[B6]==="1"}s(aa,"isTelemetryEnabled");function YB(e,t,r=process.env){aa(r)&&Ah(ju(e),t,{maxRecords:j6,trimTriggerBytes:U6});}s(YB,"appendRecallRecord");function XB(e){return bh(ju(e))}s(XB,"recallLogExists");function QB(e){return xh(ju(e))}s(QB,"readRecallLog");var H6=5e3,z6=2e6;function Uu(e){return join(je(e).base,"capture-log.jsonl")}s(Uu,"captureLogPath");function V6(e,t,r=process.env){aa(r)&&Ah(Uu(e),t,{maxRecords:H6,trimTriggerBytes:z6});}s(V6,"appendCaptureRecord");function qB(e){return bh(Uu(e))}s(qB,"captureLogExists");function ZB(e){return xh(Uu(e))}s(ZB,"readCaptureLog");function yL(e,t,r,n=process.env){if(!aa(n))return;let o=Lm(n);V6(e,{ts:new Date().toISOString(),isNewLesson:r?.isNewLesson??false,isNewTopic:r?.isNewTopic??false,newTriggerCount:r?.newTriggerIds.length??0,triggerKinds:t,blocked:r===null,warningCodes:r?.warnings.map(i=>i.code)??[],...o!==void 0?{session:o}:{},...r!==null?{lessonId:r.id}:{}},n);}s(yL,"recordCapture");function J6(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(J6,"splitTokens");function Y6(e){let t=[];return e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),t.length===0?[]:J6(t.join(" "))}s(Y6,"deriveHaystackTokens");function X6(e,t){if(e.length===0)return false;for(let r=0;r+e.length<=t.length;r+=1){let n=true;for(let o=0;o<e.length;o+=1)if(t[r+o]!==e[o]){n=false;break}if(n)return true}return false}s(X6,"containsRun");function eK(e,t){return t.keyword!==void 0&&t.keyword.toLowerCase().includes(e.toLowerCase())?true:X6(Gt(e),Y6(t))}s(eK,"keywordMatches");var q6=5e6;function Cm(e,t){if(t.file===void 0&&t.command===void 0&&t.keyword===void 0)return [];let r=SL(e,t),n=[];for(let[o,i]of Object.entries(e.lessons))i.status==="active"&&i.triggers.some(a=>r.has(a))&&n.push({id:o,lesson:i});return n.sort((o,i)=>o.id<i.id?-1:1),n}s(Cm,"queryLessons");function _L(e,t){let r={file_glob:new Set,command_pattern:new Set,keyword:new Set},n={remaining:q6};for(let[o,i]of Object.entries(e.triggers))Z6(i,t,n)&&r[i.kind].add(o);return r}s(_L,"collectMatchedTriggersByKind");function SL(e,t){let{file_glob:r,command_pattern:n,keyword:o}=_L(e,t);return new Set([...r,...n,...o])}s(SL,"collectMatchedTriggerIds");function Z6(e,t,r){switch(e.kind){case "file_glob":return t.file===void 0?false:i6(e.pattern,{dot:true})(t.file);case "command_pattern":{if(t.command===void 0)return false;let n=PB(e.pattern);return n!==null&&n.test(t.command,r)}case "keyword":return eK(e.pattern,t)}}s(Z6,"triggerMatches");function Th(e){let t=new Map;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.set(n,(t.get(n)??0)+1);return t}s(Th,"buildFanout");function tK(e){let t=new Map;for(let{lesson:n}of e)for(let o of n.topics)t.set(o,(t.get(o)??0)+1);let r=new Map;for(let{id:n,lesson:o}of e){let i=0;for(let a of o.topics)i=Math.max(i,t.get(a));r.set(n,i);}return r}s(tK,"buildTopicCoherence");var Bu=10,Ph=400,RL=60,e7=3,t7=2,r7=1;function kL(e){let t=[...e].sort((i,a)=>a.value!==i.value?a.value-i.value:i.id<a.id?-1:1),r=new Map,n=null,o=0;return t.forEach((i,a)=>{let l=n!==null&&i.value===n?o:a+1;r.set(i.id,l),n=i.value,o=l;}),r}s(kL,"rankMap");function Pl(e){return Math.ceil(e.length/4)}s(Pl,"estTokens");function Em(e,t,r,n={}){if(r.length===0)return [];let o=cB(t),i=mB(e),a=Th(e),l=tK(r),c=SL(e,t),m=r.map(({id:h,lesson:_})=>{let S=_.triggers.filter(I=>c.has(I)),R=0;for(let I of S)R=Math.max(R,1/a.get(I));return {id:h,lesson:_,bm25:pB(o,_.rule,i),specificity:R,topicCoherence:l.get(h),matchedTriggers:S}}),p=kL(m.map(h=>({id:h.id,value:h.bm25}))),u=kL(m.map(h=>({id:h.id,value:h.specificity}))),f=kL(m.map(h=>({id:h.id,value:h.topicCoherence}))),g=m.map(h=>({id:h.id,lesson:h.lesson,score:e7/(RL+u.get(h.id))+t7/(RL+f.get(h.id))+r7/(RL+p.get(h.id)),reason:{matchedTriggers:h.matchedTriggers,bm25:h.bm25,specificity:h.specificity,topicCoherence:h.topicCoherence}})).sort((h,_)=>{if(_.score!==h.score)return _.score-h.score;let S=h.lesson.createdAt,R=_.lesson.createdAt;return S!==R?S<R?1:-1:h.id<_.id?-1:1});return n7(g,n)}s(Em,"rankLessons");function n7(e,t){let r=e;if(t.limit!==void 0&&t.limit>=0&&(r=r.slice(0,t.limit)),t.maxTokens!==void 0&&r.length>0){let n=[r[0]],o=Pl(r[0].lesson.rule);for(let i of r.slice(1)){let a=Pl(i.lesson.rule);if(o+a>t.maxTokens)break;o+=a,n.push(i);}r=n;}return r}s(n7,"applyCaps");function oK(){return {recallLimit:Bu,recallMaxTokens:Ph,autoPrune:false}}s(oK,"defaultLessonsConfig");function Dh(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}s(Dh,"positiveInt");function sK(e){let t=je(e).config;if(!existsSync(t))return null;let r;try{r=JSON.parse(readFileSync(t,"utf8"));}catch{return "lessons config.json is not valid JSON \u2014 using built-in recall defaults. Fix or delete .agentsmesh/lessons/config.json."}if(typeof r!="object"||r===null)return "lessons config.json is not a JSON object \u2014 using built-in recall defaults.";let n=r,o=[];return "recallLimit"in n&&Dh(n.recallLimit)===null&&o.push("recallLimit"),"recallMaxTokens"in n&&Dh(n.recallMaxTokens)===null&&o.push("recallMaxTokens"),o.length>0?`lessons config.json has invalid ${o.join(" and ")} (expected a positive integer) \u2014 using the default for ${o.length===1?"it":"them"}.`:null}s(sK,"lessonsConfigWarning");function Nh(e){let t={limit:Bu,maxTokens:Ph},r=je(e).config;if(!existsSync(r))return t;try{let n=JSON.parse(readFileSync(r,"utf8"));if(typeof n!="object"||n===null)return t;let o=n;return {limit:Dh(o.recallLimit)??t.limit,maxTokens:Dh(o.recallMaxTokens)??t.maxTokens}}catch{return t}}s(Nh,"loadRecallConfig");var aK="agentsmesh lessons hook",m7="Edit|Write|Bash";function lK(e){let t=join(e,".agentsmesh","hooks.yaml");if(!existsSync(t))return false;let r=parseDocument(readFileSync(t,"utf8")),n=r.get("PostToolUse"),o=n instanceof YAMLSeq?n:new YAMLSeq;return o.items.some(a=>a instanceof YAMLMap&&a.get("command")===aK)?false:(o.add(r.createNode({matcher:m7,type:"command",command:aK})),r.set("PostToolUse",o),writeFileSync(t,String(r),"utf8"),true)}s(lK,"injectRecallHook");Be();var IL=`${lp}
358
- ${Rm}
359
- ${g_}`;function cK(e){let t=p7(e);return Yd(t,IL)}s(cK,"appendLessonsParagraph");function p7(e){let t=cp(e,lp,g_);return u7(t).trim()}s(p7,"stripLessonsParagraph");function u7(e){return e.replace(`
360
-
361
- ${Rm}`,"").replace(Rm,"")}s(u7,"stripRawProceduralRule");B();var LL="lessons",d7="Full operating manual for the agentsmesh lessons system (recall + capture). Consult when running any `agentsmesh lessons` subcommand (query, add, topics, show, deprecate, merge, untrigger, strip-markers, journal, validate, stats, prune, import-md), choosing a topic or trigger flags, using the lessons MCP tools, or when unsure how to phrase or capture a lesson.",f7='# Lessons \u2014 operating manual\n\nTwo commands: **Recall** before you act, **Capture** after any failure. The graph\n`.agentsmesh/lessons/lessons.json` is canonical \u2014 never hand-edit.\n\n## Recall \u2014 before each file edit and each state-changing command\n\n`agentsmesh lessons query --file <path> --cmd <command>` (add `--keyword <text>` to\nmatch by task), then apply every rule returned. Scope is MUTATING actions: file edits\nand state-changing commands (build/test/install/migrate/git-write). Pure-read commands\n(cat/ls/grep/git-log; read-only) and the recall query itself are **exempt** \u2014 no\ninfinite regress. A predicate-less query is rejected; **keyword-only recall is the\nanti-pattern** \u2014 most lessons are keyed to a `file_glob`/`command_pattern` and won\'t\nsurface (the CLI warns). Excuses ("small edit", "I already know this", "later") all\nmean: query first \u2014 skipping recall on a mutating action is a process violation, and\nthe user will check.\n\n## Capture \u2014 immediately after any failure\n\nAny failure counts, not just red tests: a failing test/CI/lint/typecheck, a code\nreview, a user correction, a regression, or a wrong assumption \u2014 yours or anyone\'s.\n\n`agentsmesh lessons add "<imperative rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`\n\n- **At least one _effective_ trigger is required.** A capture is rejected\n (`UNRECALLABLE_LESSON`) when EVERY trigger is dead on the mandatory `--file`/`--cmd`\n recall path \u2014 a stopword-only keyword ("state of the art"), or an invalid/ReDoS\n command regex \u2014 because the lesson could never be recalled there. Prefer\n `--trigger-file`: the most reliable trigger, it fires on `--file` recall. A keyword\n alone is discouraged (`KEYWORD_ONLY_LESSON`); paraphrasing an existing rule warns\n (`NEAR_DUPLICATE_LESSON` \u2014 update that lesson instead).\n- **One imperative sentence.** A rule over 2000 chars is rejected (`OVERSIZED_RULE`) \u2014\n trim it or split into separate lessons; don\'t paste a log/diff.\n- Widen with `--trigger-cmd <regex>` / `--trigger-kw <text>`. New area:\n `--new-topic --topic-summary "<line>"` (list ids with `agentsmesh lessons topics`).\n\n## No shell? \u2014 MCP tools\n\n`lessons_query`, `lessons_add`, `lessons_topics`, `lessons_show` (inspect a topic),\n`lessons_deprecate` (retire). validate / prune / merge / import-md are CLI-only.\n\n## Other subcommands\n\n`agentsmesh lessons <cmd>`: `show` \xB7 `deprecate` (`--superseded-by`) \xB7 `merge` \xB7\n`untrigger` \xB7 `strip-markers` \xB7 `prune` (`--apply`; trims over-cap triggers, GCs\norphan triggers/topics) \xB7 `journal` \xB7 `validate` \xB7 `stats` \xB7 `import-md`. Full\nhelp: `agentsmesh lessons --help`.\n\n## Config (`.agentsmesh/lessons/config.json`)\n\n`recallLimit` / `recallMaxTokens` (canonical recall caps; per-call overrides\n`--top` / `--max-tokens`). `recallMaxTokens` is approximate \u2014 `rule.length / 4`,\nnot a real tokenizer. `autoPrune: true` (default off) auto-GCs structural cruft\nafter each capture \u2014 orphan triggers/topics + non-stranding dead globs, the safe\nhalf of `prune`; never trims/strands an active lesson, git-reversible.\n\n## Dedup (opt-in)\n\nSet `--session <id>` (or `AGENTSMESH_SESSION_ID`) and lessons already delivered this\nsession are suppressed, so each recall carries only what is new (`--no-dedup` opts\nout). With no session id, recall is fully stateless \u2014 unchanged.',mK=T({name:LL,description:d7},f7);async function Dl(e){let t=je(e),r=[],n=[],o=[];mkdirSync(t.base,{recursive:true}),await ht(e),existsSync(t.graph)?o.push(t.graph):(await xl(e,()=>{}),r.push(t.graph)),h7(e,r,o),g7(e,r,n,o);let i=y7(e),a=lK(e),l=await gh(e,[Tl(e,ju(e)),Tl(e,Uu(e))]);return {created:r,updated:n,skipped:o,rootRuleUpdated:i,gitignoreUpdated:l,recallHookInjected:a}}s(Dl,"scaffoldLessons");function g7(e,t,r,n){let o=join(e,".agentsmesh/skills",LL,"SKILL.md"),i=`${mK}
362
- `;if(!existsSync(o)){mkdirSync(dirname(o),{recursive:true}),writeFileSync(o,i,"utf8"),t.push(o);return}if(readFileSync(o,"utf8")===i){n.push(o);return}writeFileSync(o,i,"utf8"),r.push(o);}s(g7,"seedLessonsSkill");function h7(e,t,r){let n=je(e).config;if(existsSync(n)){r.push(n);return}mkdirSync(dirname(n),{recursive:true}),writeFileSync(n,`${JSON.stringify(oK(),null,2)}
363
- `,"utf8"),t.push(n);}s(h7,"seedLessonsConfig");function y7(e){let t=join(e,".agentsmesh/rules/_root.md");if(!existsSync(t)){mkdirSync(dirname(t),{recursive:true});let o=`---
356
+ `,"utf8"),renameSync(o,e);}s(tK,"capJsonl");function Dh(e){if(!existsSync(e))return [];let t=[];for(let r of readFileSync(e,"utf8").split(`
357
+ `))if(r.trim().length!==0)try{t.push(JSON.parse(r));}catch{}return t}s(Dh,"readJsonl");var X6=5e3,Q6=2e6,q6="AGENTSMESH_LESSONS_TELEMETRY",Z6="AGENTSMESH_SESSION_ID";function Cm(e=process.env){let t=e[Z6];return t!==void 0&&t.trim().length>0?t:void 0}s(Cm,"sessionId");function Bu(e){return join(je(e).base,"recall-log.jsonl")}s(Bu,"recallLogPath");function la(e=process.env){return e[q6]==="1"}s(la,"isTelemetryEnabled");function rK(e,t,r=process.env){la(r)&&Ph(Bu(e),t,{maxRecords:X6,trimTriggerBytes:Q6});}s(rK,"appendRecallRecord");function nK(e){return Th(Bu(e))}s(nK,"recallLogExists");function oK(e){return Dh(Bu(e))}s(oK,"readRecallLog");var t7=5e3,r7=2e6;function Ku(e){return join(je(e).base,"capture-log.jsonl")}s(Ku,"captureLogPath");function n7(e,t,r=process.env){la(r)&&Ph(Ku(e),t,{maxRecords:t7,trimTriggerBytes:r7});}s(n7,"appendCaptureRecord");function sK(e){return Th(Ku(e))}s(sK,"captureLogExists");function iK(e){return Dh(Ku(e))}s(iK,"readCaptureLog");function SL(e,t,r,n=process.env){if(!la(n))return;let o=Cm(n);n7(e,{ts:new Date().toISOString(),isNewLesson:r?.isNewLesson??false,isNewTopic:r?.isNewTopic??false,newTriggerCount:r?.newTriggerIds.length??0,triggerKinds:t,blocked:r===null,warningCodes:r?.warnings.map(i=>i.code)??[],...o!==void 0?{session:o}:{},...r!==null?{lessonId:r.id}:{}},n);}s(SL,"recordCapture");function o7(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(o7,"splitTokens");function s7(e){let t=[];return e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),t.length===0?[]:o7(t.join(" "))}s(s7,"deriveHaystackTokens");function i7(e,t){if(e.length===0)return false;for(let r=0;r+e.length<=t.length;r+=1){let n=true;for(let o=0;o<e.length;o+=1)if(t[r+o]!==e[o]){n=false;break}if(n)return true}return false}s(i7,"containsRun");function aK(e,t){return t.keyword!==void 0&&t.keyword.toLowerCase().includes(e.toLowerCase())?true:i7(Gt(e),s7(t))}s(aK,"keywordMatches");var l7=5e6;function Em(e,t){if(t.file===void 0&&t.command===void 0&&t.keyword===void 0)return [];let r=kL(e,t),n=[];for(let[o,i]of Object.entries(e.lessons))i.status==="active"&&i.triggers.some(a=>r.has(a))&&n.push({id:o,lesson:i});return n.sort((o,i)=>o.id<i.id?-1:1),n}s(Em,"queryLessons");function RL(e,t){let r={file_glob:new Set,command_pattern:new Set,keyword:new Set},n={remaining:l7};for(let[o,i]of Object.entries(e.triggers))c7(i,t,n)&&r[i.kind].add(o);return r}s(RL,"collectMatchedTriggersByKind");function kL(e,t){let{file_glob:r,command_pattern:n,keyword:o}=RL(e,t);return new Set([...r,...n,...o])}s(kL,"collectMatchedTriggerIds");function c7(e,t,r){switch(e.kind){case "file_glob":return t.file===void 0?false:g6(e.pattern,{dot:true})(t.file);case "command_pattern":{if(t.command===void 0)return false;let n=GB(e.pattern);return n!==null&&n.test(t.command,r)}case "keyword":return aK(e.pattern,t)}}s(c7,"triggerMatches");function Nh(e){let t=new Map;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.set(n,(t.get(n)??0)+1);return t}s(Nh,"buildFanout");function lK(e){let t=new Map;for(let{lesson:n}of e)for(let o of n.topics)t.set(o,(t.get(o)??0)+1);let r=new Map;for(let{id:n,lesson:o}of e){let i=0;for(let a of o.topics)i=Math.max(i,t.get(a));r.set(n,i);}return r}s(lK,"buildTopicCoherence");var Wu=10,vh=400,IL=60,m7=3,p7=2,u7=1;function LL(e){let t=[...e].sort((i,a)=>a.value!==i.value?a.value-i.value:i.id<a.id?-1:1),r=new Map,n=null,o=0;return t.forEach((i,a)=>{let l=n!==null&&i.value===n?o:a+1;r.set(i.id,l),n=i.value,o=l;}),r}s(LL,"rankMap");function Nl(e){return Math.ceil(e.length/4)}s(Nl,"estTokens");function Om(e,t,r,n={}){if(r.length===0)return [];let o=gB(t),i=hB(e),a=Nh(e),l=lK(r),c=kL(e,t),m=r.map(({id:h,lesson:_})=>{let S=_.triggers.filter(I=>c.has(I)),R=0;for(let I of S)R=Math.max(R,1/a.get(I));return {id:h,lesson:_,bm25:yB(o,_.rule,i),specificity:R,topicCoherence:l.get(h),matchedTriggers:S}}),p=LL(m.map(h=>({id:h.id,value:h.bm25}))),u=LL(m.map(h=>({id:h.id,value:h.specificity}))),f=LL(m.map(h=>({id:h.id,value:h.topicCoherence}))),g=m.map(h=>({id:h.id,lesson:h.lesson,score:m7/(IL+u.get(h.id))+p7/(IL+f.get(h.id))+u7/(IL+p.get(h.id)),reason:{matchedTriggers:h.matchedTriggers,bm25:h.bm25,specificity:h.specificity,topicCoherence:h.topicCoherence}})).sort((h,_)=>{if(_.score!==h.score)return _.score-h.score;let S=h.lesson.createdAt,R=_.lesson.createdAt;return S!==R?S<R?1:-1:h.id<_.id?-1:1});return d7(g,n)}s(Om,"rankLessons");function d7(e,t){let r=e;if(t.limit!==void 0&&t.limit>=0&&(r=r.slice(0,t.limit)),t.maxTokens!==void 0&&r.length>0){let n=[r[0]],o=Nl(r[0].lesson.rule);for(let i of r.slice(1)){let a=Nl(i.lesson.rule);if(o+a>t.maxTokens)break;o+=a,n.push(i);}r=n;}return r}s(d7,"applyCaps");function pK(){return {recallLimit:Wu,recallMaxTokens:vh,autoPrune:false}}s(pK,"defaultLessonsConfig");function Fh(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}s(Fh,"positiveInt");function uK(e){let t=je(e).config;if(!existsSync(t))return null;let r;try{r=JSON.parse(readFileSync(t,"utf8"));}catch{return "lessons config.json is not valid JSON \u2014 using built-in recall defaults. Fix or delete .agentsmesh/lessons/config.json."}if(typeof r!="object"||r===null)return "lessons config.json is not a JSON object \u2014 using built-in recall defaults.";let n=r,o=[];return "recallLimit"in n&&Fh(n.recallLimit)===null&&o.push("recallLimit"),"recallMaxTokens"in n&&Fh(n.recallMaxTokens)===null&&o.push("recallMaxTokens"),o.length>0?`lessons config.json has invalid ${o.join(" and ")} (expected a positive integer) \u2014 using the default for ${o.length===1?"it":"them"}.`:null}s(uK,"lessonsConfigWarning");function Mh(e){let t={limit:Wu,maxTokens:vh},r=je(e).config;if(!existsSync(r))return t;try{let n=JSON.parse(readFileSync(r,"utf8"));if(typeof n!="object"||n===null)return t;let o=n;return {limit:Fh(o.recallLimit)??t.limit,maxTokens:Fh(o.recallMaxTokens)??t.maxTokens}}catch{return t}}s(Mh,"loadRecallConfig");var fK="agentsmesh lessons hook",R7="Edit|Write|Bash";function gK(e){let t=join(e,".agentsmesh","hooks.yaml");if(!existsSync(t))return false;let r=parseDocument(readFileSync(t,"utf8")),n=r.get("PostToolUse"),o=n instanceof YAMLSeq?n:new YAMLSeq;return o.items.some(a=>a instanceof YAMLMap&&a.get("command")===fK)?false:(o.add(r.createNode({matcher:R7,type:"command",command:fK})),r.set("PostToolUse",o),writeFileSync(t,String(r),"utf8"),true)}s(gK,"injectRecallHook");Be();var k7=['## Lessons (BLOCKING REQUIREMENT \u2014 MUST run both, no exceptions; the user will check)\n\nGraph `.agentsmesh/lessons/lessons.json` is canonical \u2014 never hand-edit. Manual: the `lessons` skill.\n\n**Recall \u2014 MUST run before every file edit and every state-changing command** (build/test/install/migrate/git-write): `agentsmesh lessons query --file <path> --cmd <command>`, then apply every rule. Pure-read commands (cat/ls/grep/git-log) and the recall query itself are exempt.\n\n**Capture \u2014 MUST run immediately after any failure** (a failing test/CI/lint/typecheck, a code review, a user correction, a regression, or a wrong assumption \u2014 yours or anyone\'s): `agentsmesh lessons add "<rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`.\n\nNo shell? Use the `lessons_query` / `lessons_add` MCP tools. Skip either and the system does not exist.'],CL=`${cp}
358
+ ${Uu}
359
+ ${y_}`;function hK(e){let t=I7(e);return qd(t,CL)}s(hK,"appendLessonsParagraph");function I7(e){let t=mp(e,cp,y_);return L7(t).trim()}s(I7,"stripLessonsParagraph");function L7(e){return [Uu,...k7].reduce((t,r)=>t.replace(`
360
+
361
+ ${r}`,"").replace(r,""),e)}s(L7,"stripRawProceduralRule");B();var EL="lessons",C7="Use when about to edit a file or run a state-changing command, or after any failure, correction, or surprising result.",E7=`# Lessons \u2014 operating manual (Iron Law)
362
+
363
+ ## The Iron Law
364
+
365
+ **NO MUTATION WITHOUT RECALL. NO COMPLETION WITHOUT A CAPTURE DECISION.**
366
+
367
+ Violating the letter is violating the spirit. Edited a file or ran a state-changing
368
+ command without recall? Process violation. Did the turn hit a failure / correction /
369
+ regression / wrong assumption / surprise and you have not captured (nor stated
370
+ \`Lesson: none\`)? The task is INCOMPLETE \u2014 and the user will check. The graph
371
+ \`.agentsmesh/lessons/lessons.json\` is canonical \u2014 never hand-edit.
372
+
373
+ ## Recall \u2014 before each file edit and each state-changing command
374
+
375
+ \`agentsmesh lessons query --file <path> --cmd <command>\`, then apply every rule.
376
+ Pure-read commands (read-only) and the query itself are exempt. **keyword-only recall
377
+ is the anti-pattern** \u2014 lessons are keyed to a \`file_glob\`/\`command_pattern\`.
378
+
379
+ ## Capture \u2014 Gate Function (before any completion claim)
380
+
381
+ 1. **SELF-CRITIQUE**: any failure, correction, regression, wrong assumption,
382
+ useful surprise, repeated friction, or non-obvious fix? Failing
383
+ tests/lint/typecheck and user/review corrections \u2014 yours or anyone's \u2014 all count.
384
+ 2. **CAPTURE** a reusable imperative rule with an effective trigger (else say so):
385
+ \`agentsmesh lessons add "<rule>" --topic <id> --trigger-file <glob>\`
386
+ 3. **RECEIPT**: emit \`Lesson: captured <id>\` or \`Lesson: none\`.
387
+
388
+ At least one _effective_ trigger is required or the capture is rejected
389
+ (\`UNRECALLABLE_LESSON\`); prefer \`--trigger-file\`. No shell \u2192 MCP \`lessons_query\`,
390
+ \`lessons_add\`, \`lessons_topics\`, \`lessons_show\`, \`lessons_deprecate\`. Run
391
+ \`agentsmesh lessons --help\` for every subcommand and flag: query, add, topics, show,
392
+ deprecate, merge, untrigger, strip-markers, prune, journal, validate, stats, import-md.
393
+
394
+ ### Rationalization Prevention \u2014 these excuses mean STOP
395
+
396
+ | Excuse | Reality |
397
+ | --- | --- |
398
+ | "Small edit / I already know this / later" | Query first \u2014 skipping recall is a process violation |
399
+ | "Nothing reusable here" | You hit a failure/surprise \u2014 name it or capture it |
400
+ | "My own TDD red, not a real failure" | A red you did not predict IS a lesson |
401
+ | "I fixed one site; the twin is obvious" | Capture it \u2014 the unfixed twin is what gets missed |
402
+ | "Different words, so the rule doesn't apply" | Spirit over letter |
403
+
404
+ ## Lesson gate \u2014 before final response
405
+
406
+ The final response MUST carry the receipt: \`Lesson: captured <id>\` or \`Lesson: none\`.
407
+ No receipt = task incomplete. Do not capture one-off facts, task summaries, or project
408
+ context \u2014 only reusable imperative rules with an effective trigger.`,yK=T({name:EL,description:C7},E7);async function vl(e){let t=je(e),r=[],n=[],o=[];mkdirSync(t.base,{recursive:true}),await ht(e),existsSync(t.graph)?o.push(t.graph):(await Pl(e,()=>{}),r.push(t.graph)),w7(e,r,o),O7(e,r,n,o);let i=b7(e),a=gK(e),l=await _h(e,[Dl(e,Bu(e)),Dl(e,Ku(e))]);return {created:r,updated:n,skipped:o,rootRuleUpdated:i,gitignoreUpdated:l,recallHookInjected:a}}s(vl,"scaffoldLessons");function O7(e,t,r,n){let o=join(e,".agentsmesh/skills",EL,"SKILL.md"),i=`${yK}
409
+ `;if(!existsSync(o)){mkdirSync(dirname(o),{recursive:true}),writeFileSync(o,i,"utf8"),t.push(o);return}if(readFileSync(o,"utf8")===i){n.push(o);return}writeFileSync(o,i,"utf8"),r.push(o);}s(O7,"seedLessonsSkill");function w7(e,t,r){let n=je(e).config;if(existsSync(n)){r.push(n);return}mkdirSync(dirname(n),{recursive:true}),writeFileSync(n,`${JSON.stringify(pK(),null,2)}
410
+ `,"utf8"),t.push(n);}s(w7,"seedLessonsConfig");function b7(e){let t=join(e,".agentsmesh/rules/_root.md");if(!existsSync(t)){mkdirSync(dirname(t),{recursive:true});let o=`---
364
411
  root: true
365
412
  description: ""
366
413
  ---
367
414
 
368
- ${IL}
415
+ ${CL}
369
416
 
370
417
  # Operational Guidelines
371
- `;return writeFileSync(t,o,"utf8"),true}let r=readFileSync(t,"utf8"),n=`${cK(r)}
372
- `;return n===r?false:(writeFileSync(t,n,"utf8"),true)}s(y7,"injectProceduralBlock");var Mh="agentsmesh.yaml",EL="agentsmesh.local.yaml",S7=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],R7=Object.fromEntries(Pe.map(e=>[e.id,(t,r)=>e.generators.importFrom(t,{scope:r})])),fK=Pe.filter(e=>e.globalSupport!==void 0).map(e=>e.id);async function gK(e,t={}){let r=t.global===true?"global":"project",n=t.lessons===true;if(n&&r==="global")throw new Error("--lessons is project-mode only. Lessons live in the project tree.");let o=Sa(e,r),i=join(o.configDir,Mh),a=await j(i);if(a&&n){let S=await Dl(e);return {exitCode:0,data:{scope:r,configFile:Mh,localConfigFile:EL,detectedConfigs:[],imported:[],importedToolCount:0,scaffoldType:"none",gitignoreUpdated:false,lessons:S,lessonsOnly:true}}}if(a)throw new Error(`Already initialized. ${Mh} exists. Remove it first to re-init.`);let l=await YU(o.rootBase,r),c=r==="global"?l.filter(S=>fK.includes(S)):l,m=r==="global"?fK:void 0,p=[],u,f=0;if(c.length>0)if(t.yes){for(let S of c){let R=R7[S];if(!R)continue;let I=await R(o.rootBase,r);for(let w of I)p.push({from:relative(o.rootBase,w.fromPath).replaceAll("\\","/"),to:w.toPath.replaceAll("\\","/")});}f=c.length,await QU(o.canonicalDir),u="gap-fill",await L(i,hh(c,m));}else await nL(o.canonicalDir),u="full",await L(i,hh([],m));else await nL(o.canonicalDir),u="full",await L(i,hh([],m));let g=join(o.configDir,EL);await L(g,zU);let h=false;r==="project"&&(h=await gh(e,S7));let _=n?await Dl(e):void 0;return {exitCode:0,data:{scope:r,configFile:Mh,localConfigFile:EL,detectedConfigs:c,imported:p,importedToolCount:f,scaffoldType:u,gitignoreUpdated:h,lessons:_}}}s(gK,"runInit");se();function yK(e){let{data:t}=e;if(t.lessonsOnly===true&&t.lessons!==void 0){hK(t.lessons),y.info("Run 'agentsmesh generate' to project the new lessons rule to every target.");return}if(t.detectedConfigs.length>0&&y.info(`Found existing configurations: ${t.detectedConfigs.join(", ")}`),t.detectedConfigs.length>0&&t.imported.length===0&&y.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),t.imported.length>0){y.info("Auto-importing existing configurations (--yes)...");for(let n of t.imported)y.success(` ${n.from} \u2192 ${n.to}`);y.info(`Imported ${t.imported.length} file(s) from ${t.importedToolCount} tool(s).`);}let r=t.imported.length>0&&t.detectedConfigs.length>0?` (targets: ${t.detectedConfigs.join(", ")})`:"";y.success(`Created ${t.configFile}${r}`),y.success(`Created ${t.localConfigFile}`),t.gitignoreUpdated&&y.success("Updated .gitignore"),t.lessons!==void 0&&hK(t.lessons);}s(yK,"renderInit");function hK(e){let t=process.cwd(),r=s(o=>relative(t,o).replaceAll("\\","/"),"rel");for(let o of e.created)y.success(` Created ${r(o)}`);for(let o of e.updated)y.success(` Refreshed ${r(o)} (managed \u2014 synced to the current manual)`);for(let o of e.skipped)y.info(` Kept ${r(o)} (already current)`);e.rootRuleUpdated?y.success(" Injected the Lessons ritual block into .agentsmesh/rules/_root.md"):y.info(" .agentsmesh/rules/_root.md already carries the current Lessons block"),e.gitignoreUpdated&&y.success(" Added .agentsmesh/lessons/recall-log.jsonl to .gitignore (opt-in telemetry stays out of git)"),e.recallHookInjected&&y.success(" Wired the PostToolUse recall hook into .agentsmesh/hooks.yaml (deterministic recall on hook-capable targets)"),y.success("Lessons subsystem ready (.agentsmesh/lessons/)."),y.info(" Run 'agentsmesh generate' to sync the ritual into every target."),y.info("");let n=e.created.some(o=>o.replaceAll("\\","/").endsWith("lessons.json"));y.info(n?" The graph starts empty and grows as agents capture failures. Try the loop:":" Recall + capture loop:"),y.info(' capture: agentsmesh lessons add "<rule>" --topic <id> --new-topic --topic-summary "<line>" --trigger-file "<glob>"'),y.info(" recall: agentsmesh lessons query --file <path> --cmd <command>"),y.info(" inspect: agentsmesh lessons journal | lessons show <id> | lessons validate"),y.info(" Optional: export AGENTSMESH_LESSONS_TELEMETRY=1 to measure recall cost via `lessons stats`.");}s(hK,"renderLessons");tt();xe();var I7=Object.fromEntries(Pe.map(e=>[e.id,{importFrom:e.generators.importFrom,emptyImportMessage:e.emptyImportMessage,lintRules:e.lintRules,lint:e.lint,capabilities:e.capabilities}]));function Gh(e){return I7[e]}s(Gh,"getTargetCatalogEntry");rt();sn();np();var b7={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function A7(e){return e.mcpServers.agentsmesh!==void 0?false:(e.mcpServers.agentsmesh=b7,true)}s(A7,"injectAgentsmeshEntry");async function OL(e){let t=resolve(e,".agentsmesh/mcp.json");try{let r;try{r=await cn(t)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!A7(r))return !1;let n=JSON.stringify(r,null,2)+`
418
+ `;return writeFileSync(t,o,"utf8"),true}let r=readFileSync(t,"utf8"),n=`${hK(r)}
419
+ `;return n===r?false:(writeFileSync(t,n,"utf8"),true)}s(b7,"injectProceduralBlock");var jh="agentsmesh.yaml",wL="agentsmesh.local.yaml",x7=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],T7=Object.fromEntries(Pe.map(e=>[e.id,(t,r)=>e.generators.importFrom(t,{scope:r})])),kK=Pe.filter(e=>e.globalSupport!==void 0).map(e=>e.id);async function IK(e,t={}){let r=t.global===true?"global":"project",n=t.lessons===true;if(n&&r==="global")throw new Error("--lessons is project-mode only. Lessons live in the project tree.");let o=Ra(e,r),i=join(o.configDir,jh),a=await j(i);if(a&&n){let S=await vl(e);return {exitCode:0,data:{scope:r,configFile:jh,localConfigFile:wL,detectedConfigs:[],imported:[],importedToolCount:0,scaffoldType:"none",gitignoreUpdated:false,lessons:S,lessonsOnly:true}}}if(a)throw new Error(`Already initialized. ${jh} exists. Remove it first to re-init.`);let l=await tB(o.rootBase,r),c=r==="global"?l.filter(S=>kK.includes(S)):l,m=r==="global"?kK:void 0,p=[],u,f=0;if(c.length>0)if(t.yes){for(let S of c){let R=T7[S];if(!R)continue;let I=await R(o.rootBase,r);for(let w of I)p.push({from:relative(o.rootBase,w.fromPath).replaceAll("\\","/"),to:w.toPath.replaceAll("\\","/")});}f=c.length,await nB(o.canonicalDir),u="gap-fill",await L(i,Sh(c,m));}else await sL(o.canonicalDir),u="full",await L(i,Sh([],m));else await sL(o.canonicalDir),u="full",await L(i,Sh([],m));let g=join(o.configDir,wL);await L(g,qU);let h=false;r==="project"&&(h=await _h(e,x7));let _=n?await vl(e):void 0;return {exitCode:0,data:{scope:r,configFile:jh,localConfigFile:wL,detectedConfigs:c,imported:p,importedToolCount:f,scaffoldType:u,gitignoreUpdated:h,lessons:_}}}s(IK,"runInit");se();function CK(e){let{data:t}=e;if(t.lessonsOnly===true&&t.lessons!==void 0){LK(t.lessons),y.info("Run 'agentsmesh generate' to project the new lessons rule to every target.");return}if(t.detectedConfigs.length>0&&y.info(`Found existing configurations: ${t.detectedConfigs.join(", ")}`),t.detectedConfigs.length>0&&t.imported.length===0&&y.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),t.imported.length>0){y.info("Auto-importing existing configurations (--yes)...");for(let n of t.imported)y.success(` ${n.from} \u2192 ${n.to}`);y.info(`Imported ${t.imported.length} file(s) from ${t.importedToolCount} tool(s).`);}let r=t.imported.length>0&&t.detectedConfigs.length>0?` (targets: ${t.detectedConfigs.join(", ")})`:"";y.success(`Created ${t.configFile}${r}`),y.success(`Created ${t.localConfigFile}`),t.gitignoreUpdated&&y.success("Updated .gitignore"),t.lessons!==void 0&&LK(t.lessons);}s(CK,"renderInit");function LK(e){let t=process.cwd(),r=s(o=>relative(t,o).replaceAll("\\","/"),"rel");for(let o of e.created)y.success(` Created ${r(o)}`);for(let o of e.updated)y.success(` Refreshed ${r(o)} (managed \u2014 synced to the current manual)`);for(let o of e.skipped)y.info(` Kept ${r(o)} (already current)`);e.rootRuleUpdated?y.success(" Injected the Lessons ritual block into .agentsmesh/rules/_root.md"):y.info(" .agentsmesh/rules/_root.md already carries the current Lessons block"),e.gitignoreUpdated&&y.success(" Added .agentsmesh/lessons/recall-log.jsonl to .gitignore (opt-in telemetry stays out of git)"),e.recallHookInjected&&y.success(" Wired the PostToolUse recall hook into .agentsmesh/hooks.yaml (deterministic recall on hook-capable targets)"),y.success("Lessons subsystem ready (.agentsmesh/lessons/)."),y.info(" Run 'agentsmesh generate' to sync the ritual into every target."),y.info("");let n=e.created.some(o=>o.replaceAll("\\","/").endsWith("lessons.json"));y.info(n?" The graph starts empty and grows as agents capture failures. Try the loop:":" Recall + capture loop:"),y.info(' capture: agentsmesh lessons add "<rule>" --topic <id> --new-topic --topic-summary "<line>" --trigger-file "<glob>"'),y.info(" recall: agentsmesh lessons query --file <path> --cmd <command>"),y.info(" inspect: agentsmesh lessons journal | lessons show <id> | lessons validate"),y.info(" Optional: export AGENTSMESH_LESSONS_TELEMETRY=1 to measure recall cost via `lessons stats`.");}s(LK,"renderLessons");tt();xe();var D7=Object.fromEntries(Pe.map(e=>[e.id,{importFrom:e.generators.importFrom,emptyImportMessage:e.emptyImportMessage,lintRules:e.lintRules,lint:e.lint,capabilities:e.capabilities}]));function Uh(e){return D7[e]}s(Uh,"getTargetCatalogEntry");rt();sn();op();var $7={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function j7(e){return e.mcpServers.agentsmesh!==void 0?false:(e.mcpServers.agentsmesh=$7,true)}s(j7,"injectAgentsmeshEntry");async function bL(e){let t=resolve(e,".agentsmesh/mcp.json");try{let r;try{r=await cn(t)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!j7(r))return !1;let n=JSON.stringify(r,null,2)+`
373
420
  `;await mkdir(dirname(t),{recursive:!0});let o=`${t}.tmp.${process.pid}.${Date.now()}`;return await writeFile(o,n,"utf8"),await rename(o,t),!0}catch(r){return process.stderr.write(`[agentsmesh] warning: could not seed agentsmesh MCP server entry into mcp.json: ${r instanceof Error?r.message:String(r)}
374
- `),false}}s(OL,"seedAgentsmeshMcpEntry");Be();function _K(e,t){return e.map(r=>({from:relative(t,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(_K,"mapResults");async function SK(e,t){if(t!=="project")return;let r=join(e,".agentsmesh/rules/_root.md");if(!existsSync(r))return;let n=readFileSync(r,"utf8");(n.includes(lp)||/^## Lessons \(/m.test(n))&&await Dl(e);}s(SK,"ensureImportedLessonsSubsystem");async function RK(e,t){let r=t??process.cwd(),n=e.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=e.global===true?"global":"project";if(Yt(o)){let p=Sa(r,i),f=await Gh(o).importFrom(p.rootBase,{scope:i});return f.length>0&&(await OL(p.rootBase),await SK(p.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:_K(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await ye(r,i));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${Ue.join(", ")}.`)}await ze(a,r);let c=re(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...Ue,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&(await OL(l.rootBase),await SK(l.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:_K(m,l.rootBase)}}}s(RK,"runImport");tt();Ho();function $h(e){let t=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of e){if(n.status==="unchanged"){r.unchanged++;continue}if(n.status==="created"){r.new++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,"",n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}if(n.status==="updated"&&n.currentContent!==void 0){r.updated++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,n.currentContent,n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}}return {diffs:t,summary:r}}s($h,"computeDiff");function jh(e){return `${e.new} files would be created, ${e.updated} updated, ${e.unchanged} unchanged, ${e.deleted} deleted`}s(jh,"formatDiffSummary");sn();async function IK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),m=await on({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:i});if(m.length===0)return {exitCode:0,data:{files:[],patches:[],summary:{created:0,updated:0,unchanged:0,deleted:0}}};let{diffs:p,summary:u}=$h(m);return {exitCode:0,data:{files:m.filter(g=>g.status!=="unchanged"&&g.status!=="skipped").map(g=>({path:g.path,target:g.target,status:g.status})),patches:p.map(g=>({path:g.path,patch:g.patch})),summary:{created:u.new,updated:u.updated,unchanged:u.unchanged,deleted:u.deleted}}}}s(IK,"runDiff");tt();Ho();b();rt();La();Re();var N7=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(e=>{let t=e.permissions;if(!t)return false;let r=t.ask?.length??0;return t.allow.length+t.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(e=>{let t=e.hooks;return t?Object.values(t).some(r=>Array.isArray(r)&&r.length>0):false},"hasContent")},{canonicalKey:"mcp",capabilityKey:"mcp",featureFlag:"mcp",file:".agentsmesh/mcp.json",label:"MCP servers",hasContent:s(e=>{let t=e.mcp;return t?Object.keys(t.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(e=>e.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(e=>e.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(e=>e.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(e=>e.ignore.length>0,"hasContent")}];function LK(e){let t=new Set(e.enabledFeatures),r=[];for(let n of N7)!t.has(n.featureFlag)||!n.hasContent(e.canonical)||pn(e.capabilities[n.capabilityKey]).level!=="none"||r.push(F(n.file,e.target,`${e.target} does not support ${n.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}s(LK,"lintSilentFeatureDrops");Re();var v7=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function F7(e){let r=e.match(v7)?.groups?.path;return typeof r=="string"?r:null}s(F7,"extractScriptToken");function CK(e){if(e.hasScriptProjection)return [];let t=e.canonical.hooks;if(!t)return [];let r=[];for(let n of Object.values(t))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=F7(o.command);i&&r.push(F(".agentsmesh/hooks.yaml",e.target,`${e.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${e.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(CK,"lintHookScriptReferences");Re();function EK(e){if(e.preservesManualActivation)return [];let t=[];for(let r of e.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(e.target)||t.push(F(r.source,e.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${e.target} loads every rule unconditionally. The rule will become always-on for ${e.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return t}s(EK,"lintRuleScopeInversion");var G7=new Set([".git","node_modules"]),$7=2e5;function la(e){let t=new Set;try{let r=[e];for(;r.length>0;){let n=r.pop();for(let o of readdirSync(n,{withFileTypes:!0}))if(o.isDirectory())G7.has(o.name)||r.push(join(n,o.name));else if(o.isFile()&&(t.add(Tl(e,join(n,o.name))),t.size>$7))return t}}catch{return null}return t}s(la,"listProjectFiles");var B7="lessons",bK=".agentsmesh/lessons/lessons.json",AK=".agentsmesh/rules/_root.md",K7=/^## Lessons \(/m;function xK(e,t){if(t==="global")return [];let r=je(e);if(!existsSync(r.graph))return [];let n=[],o;try{o=Pu(e);}catch(m){return [wL("error",bK,`lessons.json failed to load: ${m instanceof Error?m.message:String(m)}`)]}let i=la(e)??void 0,a=Vo(o,{knownPaths:i});for(let m of a.findings)n.push(wL(m.level,bK,`[${m.code}] ${m.message}`));let l=join(e,AK),c=existsSync(l)?readFileSync(l,"utf8"):"";return K7.test(c)||n.push(wL("warning",AK,'lessons procedural rule ("## Lessons (...)") is missing from _root.md \u2014 recall/capture enforcement will not fire.')),n}s(xK,"lintLessonsSubsystem");function wL(e,t,r){return {level:e,file:t,target:B7,message:r}}s(wL,"diag");var W7=["node_modules",".git","dist","coverage",".agentsmesh"];async function H7(e){return (await U(e)).filter(n=>{let o=relative(e,n);return !W7.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(e,n))}s(H7,"getProjectFiles");async function Uh(e,t,r,n,o={}){let i=o.scope??"project",a=[...e.targets,...e.pluginTargets??[]],l=n?a.filter(S=>n.includes(S)):a,c=e.features.includes("rules"),m=e.features.includes("commands"),p=e.features.includes("mcp"),u=e.features.includes("permissions"),f=e.features.includes("hooks"),g=[...xK(r,i)],h=i==="global"?[]:await H7(r);for(let S of l){let R=re(S),I=Yt(S)?Gh(S):R;I?.capabilities&&g.push(...LK({target:S,capabilities:I.capabilities,canonical:t,enabledFeatures:e.features})),f&&g.push(...CK({target:S,canonical:t,hasScriptProjection:R?.postProcessHookOutputs!==void 0})),c&&g.push(...EK({target:S,canonical:t,preservesManualActivation:R?.preservesManualActivation===true})),c&&I?.lintRules&&g.push(...I.lintRules(t,r,h,{scope:i})),R?.generators.lint&&g.push(...R.generators.lint(t));let w={scope:i};m&&I?.lint?.commands&&g.push(...I.lint.commands(t,w)),p&&I?.lint?.mcp&&g.push(...I.lint.mcp(t,w)),u&&I?.lint?.permissions&&g.push(...I.lint.permissions(t,w)),f&&I?.lint?.hooks&&g.push(...I.lint.hooks(t,w));}let _=g.some(S=>S.level==="error");return {diagnostics:g,hasErrors:_}}s(Uh,"runLint");sn();async function PK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Uh(a,c,l.configDir,i,{scope:n});return {exitCode:p?1:0,data:{diagnostics:m.map(u=>({level:u.level,file:u.file,target:u.target,message:u.message})),summary:{errors:m.filter(u=>u.level==="error").length,warnings:m.filter(u=>u.level==="warning").length}}}}s(PK,"runLintCmd");se();function DK(e){let{data:t}=e;if(t.diagnostics.length===0){y.success("All checks passed.");return}let r=t.diagnostics.filter(a=>a.level==="error"),n=t.diagnostics.filter(a=>a.level==="warning");for(let a of r)y.error(`${a.file} (${a.target}): ${a.message}`);for(let a of n)y.warn(`${a.file} (${a.target}): ${a.message}`);let o=t.summary.errors,i=t.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(DK,"renderLint");se();function NK(e){let{data:t}=e;if(!t.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(t.inSync){y.success("Lock file is in sync.");return}let r=new Set(t.lockedViolations);y.error("Conflict detected:");for(let n of t.extendsModified)y.error(` extend "${n}" was modified`);for(let n of t.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of t.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of t.removed){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was removed${o}`);}y.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state.");}s(NK,"renderCheck");se();function vK(e){let{data:t}=e;if(t.files.length===0){y.info(`Nothing to import from ${t.target}.`);return}for(let n of t.files)y.success(`${n.from} \u2192 ${n.to}`);let r=t.scope==="global"?" --global":"";y.info(`Imported ${t.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(vK,"renderImport");se();function FK(e){let{summary:t}=e.data;if(t.created+t.updated+t.unchanged+t.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of e.data.patches)process.stdout.write(n.patch);y.info(jh({new:t.created,updated:t.updated,unchanged:t.unchanged,deleted:t.deleted}));}s(FK,"renderDiff");se();function MK(e){if(!e.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(MK,"renderMerge");wu();Au();tt();Ho();wu();Au();se();var J7=300;function Y7(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(Y7,"normalizeWatchPath");function X7(e,t){let r=Y7(relative(e,t));return r===""?true:r===".lock"||r===".lock.tmp"||r===".generate.lock"||r.endsWith("/.lock")||r.endsWith("/.lock.tmp")||r.endsWith("/.generate.lock")||r.includes("/.generate.lock/")||r.startsWith(".generate.lock/")}s(X7,"shouldIgnoreWatchPath");function Q7(e,t,r,n,o,i,a,l,c){return JSON.stringify({features:e,rulesCount:t,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(Q7,"featureFingerprint");async function $K(e,t,r={}){let n=t??process.cwd(),o=e.global===true?"global":"project",{context:i}=await ye(n,o),a=[i.canonicalDir,join(i.configDir,"agentsmesh.yaml"),join(i.configDir,"agentsmesh.local.yaml")],l=null,c=null,m=false,p=null,u=s(async()=>{if(m)return;l=null;let{config:S,context:R}=await ye(n,o),{canonical:I}=await Mt(S,R.configDir,{},R.canonicalDir),w=I.mcp?Object.keys(I.mcp.mcpServers).length:0,D=I.permissions?I.permissions.allow.length+I.permissions.deny.length:0,P=I.hooks?Object.values(I.hooks).reduce((M,te)=>M+(Array.isArray(te)?te.length:0),0):0,K=I.ignore.length,G=Q7(S.features,I.rules.length,I.commands.length,I.agents.length,I.skills.length,w,D,P,K),Y=c!==null&&c!==G;if(c=G,m)return;let ee=await dm(e,n,{printMatrix:false});if(fm(ee),!m){if(Y){let M=await Ou(e,n);bu(M,{verbose:e.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:Y});}},"run"),f=s(()=>{let S=u().catch(R=>{if(!m){let I=R instanceof Error?R.message:String(R);y.error(I);}}).finally(()=>{p===S&&(p=null);});p=S;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,J7));},"schedule"),h=r.usePolling??process.platform==="win32",_=V7.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return _.on("all",(S,R)=>{X7(i.canonicalDir,R)||g();}),await new Promise((S,R)=>{_.once("ready",S),_.once("error",R);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await _.close(),p&&await p;},"stop")}}s($K,"runWatch");tt();bd();async function Bh(e){let{config:t,configDir:r,canonicalDir:n}=e,o=await sh(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await ii(n),a=await ec(t,r),l=a.length>0?await cm(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let R of c){let I=i[R];I===void 0?f.push(R):I!==o.checksums[R]&&p.push(R);}for(let R of m)c.has(R)||u.push(R);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let R of g)l[R]!==o.extends[R]&&h.push(R);let _=ah(o.checksums,i,t.collaboration?.lock_features??[]);return {inSync:p.length===0&&u.length===0&&f.length===0&&h.length===0,hasLock:true,modified:p,added:u,removed:f,extendsModified:h,lockedViolations:_}}s(Bh,"checkLockSync");sn();async function jK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n);await ze(o,r);let a=await Bh({config:o,configDir:i.configDir,canonicalDir:i.canonicalDir});return a.hasLock?{exitCode:a.inSync?0:1,data:{hasLock:true,inSync:a.inSync,modified:[...a.modified],added:[...a.added],removed:[...a.removed],extendsModified:[...a.extendsModified],lockedViolations:[...a.lockedViolations]}}:{exitCode:1,data:{hasLock:false,inSync:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]}}}s(jK,"runCheck");tt();b();bd();var Z7=".lock",eee="<<<<<<<";async function bL(e){let t=join(e,Z7),r=await k(t);return r===null?false:r.includes(eee)}s(bL,"hasLockConflict");async function BK(e,t,r){if(!await bL(e))throw new Error("No conflict to resolve.");let o=await ii(e),i=dirname(e),a=r?await ec(r,i):[],l=a.length>0?await cm(a):{},c=await lh(join(e,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await ih(e,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:t,checksums:o,extends:l,packs:c});}s(BK,"resolveLockConflict");async function KK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n),a=i.canonicalDir;return await bL(a)?(await BK(a,ya(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(KK,"runMerge");tt();Zg();function WK(e){let t=typeof e.path=="string"?e.path.trim():void 0,r=typeof e.target=="string"?e.target.trim():void 0,n=typeof e.as=="string"?e.as.trim():void 0,o=e["accept-elevated"]===true;return {sync:e.sync===true,dryRun:e["dry-run"]===true,force:e.force===true,useExtends:e.extends===true,all:e.all===true,forceFreshMaterialize:e.forceFreshMaterialize===true,explicitPath:t||void 0,explicitTarget:r||void 0,explicitAs:n?am.parse(n):void 0,nameOverride:typeof e.name=="string"?e.name.trim():"",acceptHooks:o||e["accept-hooks"]===true,acceptPermissions:o||e["accept-permissions"]===true,acceptMcp:o||e["accept-mcp"]===true}}s(WK,"readInstallFlags");var nee=".install.lock";async function Om(e,t={}){return await mkdir(e,{recursive:true}),pm(join(e,nee),{...t,label:"install lock"})}s(Om,"acquireInstallLock");tt();b();qm();var iee=promisify(execFile);function Kh(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}s(Kh,"ensureNotFlag");async function AL(e){let{stdout:t}=await iee("git",e,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return t.trim()}s(AL,"runGit");async function HK(){try{return await AL(["--version"]),!0}catch{return false}}s(HK,"isGitAvailable");async function aee(e,t){Kh(e,"remote-url"),Kh(t,"ref");let r=[t,`refs/heads/${t}`,`refs/tags/${t}`],n;for(let o of r)try{let a=(await AL(["ls-remote",e,o])).split(`
375
- `).map(c=>c.trim()).find(c=>c.length>0);if(!a)continue;let l=a.split(/\s+/)[0];if(l&&/^[0-9a-f]{40}$/i.test(l))return l}catch(i){n=i;}throw new Error(`Could not resolve ref "${t}" for ${e}: ${n instanceof Error?n.message:String(n)}`)}s(aee,"gitLsRemoteResolve");async function Wh(e,t){Kh(t,"remote-url");let r=e===""?"HEAD":e;if(Kh(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await AL(["ls-remote",t,"HEAD"])).split(`
376
- `).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${t}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${t}`);return i.toLowerCase()}return aee(t,r)}s(Wh,"resolveRemoteRefForInstall");async function zK(e){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};let t=e.gitRemoteUrl;if(!t)throw new Error("Internal error: missing git remote URL");let r=await Wh(e.rawRef||"HEAD",t);if(e.kind==="github"){let l=`github:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Zl(l,"install",{cacheDir:Xt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(e.kind==="gitlab"){let l=`gitlab:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Zl(l,"install",{cacheDir:Xt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(e.gitPlusBase??t).split("#")[0]}#${n}`;return {resolvedPath:(await Zl(i,"install",{cacheDir:Xt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(zK,"fetchInstallSource");async function VK(e,t){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};try{let r=await zK(e);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let n=r instanceof Error?r.message:String(r),o=new Error(`Failed to fetch from ${t}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(VK,"resolveInstallResolvedPath");function Wu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("tree");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a?null:{org:o,repo:i,ref:a,path:l||""}}catch{return null}}s(Wu,"parseGithubTreeUrl");function Hu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("blob");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a||!l?null:{org:o,repo:i,ref:a,path:l}}catch{return null}}s(Hu,"parseGithubBlobUrl");function zu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="tree")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i?null:{namespace:m,project:c,ref:i,path:a||""}}catch{return null}}s(zu,"parseGitlabTreeUrl");function Vu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="blob")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i||!a?null:{namespace:m,project:c,ref:i,path:a}}catch{return null}}s(Vu,"parseGitlabBlobUrl");var lee=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Ju(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||lee.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Ju,"parseGithubRepoUrl");function Yu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.includes("-"))return null;let n=r[r.length-1],o=r.slice(0,-1).join("/");return !o||!n?null:{namespace:o,project:n}}catch{return null}}s(Yu,"parseGitlabRepoUrl");function Xu(e){let t=e.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return t?{org:t[1],repo:t[2].replace(/\.git$/i,"")}:null}s(Xu,"parseGitSshGithub");function Qu(e){let t=e.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!t)return null;let n=t[1].replace(/\.git$/i,"").split("/").filter(Boolean);if(n.length<2)return null;let o=n[n.length-1];return {namespace:n.slice(0,-1).join("/"),project:o}}s(Qu,"parseGitSshGitlab");b();var pee=/^[A-Za-z]:[\\/]/,uee=/^[A-Za-z]:\//;function JK(...e){return e.some(t=>t.includes("\\")||pee.test(t))?win32:posix}s(JK,"pathApiFor");function Zu(e){return e.replace(/\\/g,"/")}s(Zu,"toPosixPath");function qu(e){return Zu(e).replace(/^\/+|\/+$/g,"")}s(qu,"normalizeInstallPathField");function Hh(e){let t=Zu(e);return t===""||t==="."||t==="./."?".":t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||uee.test(t)?t:`./${t}`}s(Hh,"normalizeLocalSourceForYaml");function ca(e){return {...e,source:e.source_kind==="local"?Hh(e.source):e.source,...e.path!==void 0?{path:qu(e.path)}:{},...e.paths!==void 0?{paths:e.paths.map(t=>qu(t))}:{}}}s(ca,"normalizePersistedInstallPaths");function YK(e,t,r){let n=JK(e,t),o=n.normalize(e),i=n.normalize(t),a=qu(r),l=`${n.sep}.agentsmesh${n.sep}`,c=o.indexOf(l);if(c>=0){let p=o.slice(0,c),u=o.slice(c+l.length),f=qu(u),g=Zu(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Hh(g)}}let m=Zu(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Hh(m)}}s(YK,"localParsedFromAbsPath");async function xL(e,t,r){let n=e.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let p=n.lastIndexOf("#"),u=p<0?n:n.slice(0,p),f=p<0?"HEAD":n.slice(p+1),g=u.slice(4);return {kind:"git",rawRef:f,gitPlusBase:g,gitRemoteUrl:g,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let p=Wu(n)??Hu(n);if(p)return {kind:"github",rawRef:p.ref,org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o||p.path};let u=Ju(n);if(u)return {kind:"github",rawRef:"HEAD",org:u.org,repo:u.repo,gitRemoteUrl:`https://github.com/${u.org}/${u.repo}.git`,pathInRepo:o};let f=zu(n)??Vu(n);if(f)return {kind:"gitlab",rawRef:f.ref,org:f.namespace,repo:f.project,gitRemoteUrl:`https://gitlab.com/${f.namespace}/${f.project}.git`,pathInRepo:o||f.path};let g=Yu(n);if(g)return {kind:"gitlab",rawRef:"HEAD",org:g.namespace,repo:g.project,gitRemoteUrl:`https://gitlab.com/${g.namespace}/${g.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let p=Xu(n);if(!p)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let p=Qu(n);if(!p)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let p=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!p)throw new Error(`Invalid SSH git URL: ${n}`);let u=p[1],f=p[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${u}/${f}.git`,pathInRepo:o}}let i=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(i){let p=i[1],u=i[2];return {kind:"github",rawRef:i[3],org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let a=n.match(/^github:([^/]+)\/([^/@]+)$/);if(a){let p=a[1],u=a[2];return {kind:"github",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let l=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(l){let p=l[1],u=l[2];return {kind:"gitlab",rawRef:l[3],org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let c=n.match(/^gitlab:(.+)\/([^/@]+)$/);if(c){let p=c[1],u=c[2];return {kind:"gitlab",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let m=resolve(t,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return YK(m,t,o)}s(xL,"parseInstallSource");function ed(e){let t=e.trim();if(t.startsWith("local:"))return {kind:"local"};if(t.startsWith("git+")){let a=t.lastIndexOf("#"),l=a<0?t:t.slice(0,a),c=a<0?"HEAD":t.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=t.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(r!==null){let a=r[1],l=r[2],c=r[3];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:c}}let n=t.match(/^github:([^/]+)\/([^/@]+)$/);if(n!==null){let a=n[1],l=n[2];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:"HEAD"}}let o=t.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(o!==null){let a=o[1],l=o[2],c=o[3];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:c}}let i=t.match(/^gitlab:(.+)\/([^/@]+)$/);if(i!==null){let a=i[1],l=i[2];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:"HEAD"}}if(t.startsWith("https://")||t.startsWith("http://")){let a=Wu(t)??Hu(t);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Ju(t);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=zu(t)??Vu(t);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Yu(t);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:t,ref:"HEAD"}}if(t.startsWith("git@github.com:")){let a=Xu(t);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(t.startsWith("git@gitlab.com:")){let a=Qu(t);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(t.startsWith("git@")){let a=t.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(a===null)return null;let l=a[1],c=a[2].replace(/\.git$/i,"");return {kind:"git",remoteUrl:`ssh://git@${l}/${c}.git`,ref:"HEAD"}}return null}s(ed,"parseSourceUrl");dI();function Kn(e){let t=[];return e.skills.length&&t.push("skills"),e.rules.length&&t.push("rules"),e.commands.length&&t.push("commands"),e.agents.length&&t.push("agents"),e.mcp!==null&&t.push("mcp"),e.permissions!==null&&t.push("permissions"),e.hooks!==null&&t.push("hooks"),e.ignore.length&&t.push("ignore"),t}s(Kn,"featuresFromCanonical");async function zh(e,t={}){let{sliceRoot:r,implicitPick:n}=await Vg(e),{canonical:o,cleanup:i}=await Jg(r,{...t,enableTargetEntityMappers:true});return {canonical:o,features:Kn(o),implicitPick:n,cleanup:i}}s(zh,"discoverFromContentRoot");function XK(e){return e.description.trim()?{skill:e,ok:true}:{skill:e,ok:false,reason:"missing description in frontmatter"}}s(XK,"validateSkill");function QK(e){return e.description.trim()?{rule:e,ok:true}:{rule:e,ok:false,reason:"missing description in frontmatter"}}s(QK,"validateRule");function qK(e){return e.description.trim()?{command:e,ok:true}:{command:e,ok:false,reason:"missing description in frontmatter"}}s(qK,"validateCommand");function ZK(e){return e.description.trim()?{agent:e,ok:true}:{agent:e,ok:false,reason:"missing description in frontmatter"}}s(ZK,"validateAgent");function yt(e){return basename(e.source).replace(/\.md$/i,"")}s(yt,"ruleSlug");function gee(e){if(!e)return;let t=[];return e.skills!==void 0&&t.push("skills"),e.rules!==void 0&&t.push("rules"),e.commands!==void 0&&t.push("commands"),e.agents!==void 0&&t.push("agents"),t.length>0?t:void 0}s(gee,"featuresFromImplicitPick");function bm(e,t){let{implicitPick:r}=t,n=t.scopedFeatures??gee(r);if(!r&&!n)return e;let o=new Set(n??[]),i={...e,mcp:!n||o.has("mcp")?e.mcp:null,permissions:!n||o.has("permissions")?e.permissions:null,hooks:!n||o.has("hooks")?e.hooks:null,ignore:!n||o.has("ignore")?e.ignore:[]};if(r?.skills!==void 0){let a=new Set(r.skills);i={...i,skills:r.skills.length===0?[]:i.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(i={...i,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);i={...i,rules:r.rules.length===0?[]:i.rules.filter(l=>a.has(yt(l)))};}else n&&!o.has("rules")&&(i={...i,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);i={...i,commands:r.commands.length===0?[]:i.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(i={...i,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);i={...i,agents:r.agents.length===0?[]:i.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(i={...i,agents:[]});return i}s(bm,"narrowDiscoveredForInstallScope");RI();async function eW(e,t,r,n,o={}){let i=await Qg(e,t,{preferredSkillNames:t==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await zh(i.discoveryRoot,o),c=bm(a,{scopedFeatures:[t]});return {prep:{yamlTarget:r,scopedFeatures:[t],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:Kn(c)}}s(eW,"resolveManualDiscoveredForInstall");qo();rI();b();xe();var hee=(()=>{let e=new Map;for(let r of Pe){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=e.get(a)??new Set;l.add(r.id),e.set(a,l);}}let t=[];for(let[r,n]of e){if(n.size!==1)continue;let[o]=[...n];t.push({prefix:r,target:o});}return t.sort((r,n)=>n.prefix.length-r.prefix.length)})();function yee(e){return e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(yee,"norm");function Vh(e){let t=yee(e);if(t){for(let{prefix:r,target:n}of hee)if(t===r||t.startsWith(`${r}/`))return n}}s(Vh,"targetHintFromNativePath");function TL(e,t){return Vh(e)===t}s(TL,"pathSupportsNativePick");function tW(e,t){if(!e||!t)return;let r=Vh(t);if(r&&r!==e)throw new Error(`--target "${e}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(tW,"validateTargetMatchesPath");function rW(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)>0}s(rW,"extendPickHasArrays");rt();b();AR();async function Ree(e,t,r,n){if(n.kind==="skillDir")return zf(e);if(n.kind==="firstSegment"){let c=t.slice(r.prefix.length).split("/").filter(Boolean)[0];return c?[c]:[]}let o=await U(e),i=n.suffix,a=i.toLowerCase();return [...new Set(o.filter(l=>l.toLowerCase().endsWith(a)).map(l=>basename(l,i)))].sort()}s(Ree,"namesForStrategy");async function nW(e,t,r){let n=re(r)?.nativeInstall;if(!n)return {};let o=t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(n.inferPick)return n.inferPick(e,o);for(let i of n.pickPaths??[]){if(o!==i.prefix&&!o.startsWith(i.prefix))continue;let a=join(e,...o.split("/")),l=await Ree(a,o,i,i.strategy);return l.length?{[i.feature]:l}:{}}return {}}s(nW,"inferImplicitPickFromNativePath");function oW(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)===0}s(oW,"isImplicitPickEmpty");nI();function td(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(td,"normalizePath");function Eee(e,t){let r=td(e),n=td(t);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(Eee,"overlapsPath");function Jh(e,t){let r=e??[];return r.includes(t)||r.push(t),r}s(Jh,"addUnique");async function Oee(e){let t=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(t,"repo"),n=s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup");try{return await cp$1(e,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(Oee,"makeStageRoot");function wee(e,t){let r;for(let o of e){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Jh(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=td(relative(join(t,".agentsmesh","commands"),join(t,o.toPath)));r={...r,commands:Jh(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Jh(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=td(relative(join(t,".agentsmesh","skills"),join(t,o.toPath))).split("/")[0];a&&(r={...r,skills:Jh(r?.skills,a)});}}return r&&(r.rules?.length??0)+(r.commands?.length??0)+(r.agents?.length??0)+(r.skills?.length??0)>0?r:void 0}s(wee,"buildPickFromResults");function bee(e,t,r,n){let o=join(t,...td(e).split("/")),i=r.filter(a=>Eee(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${e}" for target "${n}". Try --path "${e}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);return {features:[...new Set(i.map(a=>a.feature))],pick:wee(i,t)}}s(bee,"scopeImportedResults");async function PL(e,t){let{stageRoot:r,cleanup:n}=await Oee(e);try{let o=await Ru(r,t);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(PL,"stageImportedNativeRepo");async function DL(e,t,r){let n=await PL(e,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...bee(t,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(DL,"stageNativeInstallScope");async function lW(e,t,r,n){let o=n.explicitTarget?.trim();o&&kr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");tW(o,i);let a=join(e,".agentsmesh"),l=await j(a),c=i?Vh(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await Mg(e)??void 0:void 0;if(!o&&c&&p&&c!==p)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${p}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??p,f=!!i&&!!u&&!i.startsWith(".agentsmesh");if(!l&&u){if(f){let w=await DL(e,i,u);return {discoveryRoot:w.stageRoot,implicitPick:w.pick,scopedFeatures:w.features,yamlTarget:u,importHappened:true,cleanup:w.cleanup}}let I=await PL(e,u);return {discoveryRoot:i?join(I.stageRoot,i):I.stageRoot,yamlTarget:u,importHappened:true,cleanup:I.cleanup}}let g;l?i?u&&TL(i,u)?g=e:g=t:g=e:g=t;let h,_,S;if(f&&u){let I=await DL(e,i,u);g=I.stageRoot,h=I.pick,_=I.features,S=I.cleanup;}else if(g===e&&i&&u&&TL(i,u)&&(h=await nW(e,i,u),oW(h)))throw new Error(`No installable native resources found under "${i}" for target "${u}". Try --path "${i}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);let R;return o?R=o:u&&(h&&rW(h)||(_?.length??0)>0)&&(R=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:_,yamlTarget:R,importHappened:S!==void 0,cleanup:S}}s(lW,"prepareInstallDiscovery");async function NL(e,t,r,n,o={}){let i=await lW(e,t,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await zh(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=bm(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=Kn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(NL,"resolveDiscoveredForInstall");var Tee=[".claude-plugin","marketplace.json"];async function Pee(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(Pee,"dirExists");function Dee(e){if(typeof e!="string"||e.length===0||e.startsWith("/"))return null;let t=e.replace(/^\.\/+/,"").replace(/\/+$/,"");return t.split("/").some(r=>r==="..")?null:t}s(Dee,"normalizeSource");async function mW(e,t,r){let n=join(e,...Tee),o;try{o=await readFile(n,"utf-8");}catch{return null}let i;try{i=JSON.parse(o);}catch{return null}if(typeof i!="object"||i===null||!Array.isArray(i.plugins))return null;let a=i.plugins,l=[];for(let c of a){if(typeof c!="object"||c===null)continue;let m=Dee(c.source);if(!m)continue;let p=join(e,m);if(!await Pee(p))continue;let u=await t(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(mW,"detectMarketplaceSubPacks");async function rd(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(rd,"dirExists");async function ma(e){try{return (await readdir(e,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(ma,"listDirEntries");function pW(e){return e.endsWith(".instructions.md")?"copilot-instructions":e.endsWith(".md")?"md":e.endsWith(".mdc")?"mdc":e.endsWith(".toml")?"toml":null}s(pW,"classifyFileShape");var Fee=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],Mee=[".cursorrules",".windsurfrules"];async function dW(e){let t=join(e,".agentsmesh");if(!await rd(t))return null;let r=await ma(t),n=new Set(r.map(o=>o.name));for(let o of Fee)if(n.has(o))return {path:".agentsmesh"};return null}s(dW,"detectCanonical");async function fW(e){for(let t of Mee)try{if((await stat(join(e,t))).isFile())return {path:t}}catch{}return null}s(fW,"detectRootRule");async function gW(e){try{if((await stat(join(e,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(gW,"detectRootSkill");ts();var $ee={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},jee=[".claude-plugin",".codex-plugin",".cursor-plugin"],Uee=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function hW(e){let t=join(e,"skills"),r=await ma(t);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!Uee.test(n.name))&&await rd(join(t,n.name)))try{if((await stat(join(t,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(hW,"detectSkillPack");async function yW(e){let t=[];for(let[r,n]of Object.entries($ee)){let o=join(e,r),i=await ma(o),a=new Set;for(let l of i){if(!l.isFile||Vn(l.name))continue;let c=pW(l.name);c&&a.add(c);}for(let l of a)t.push({path:r,suggestedAs:n,fileShape:l});}return t}s(yW,"detectFlatCollections");async function _W(e){let t=[];for(let r of jee)await rd(join(e,r))&&t.push({path:r});return t}s(_W,"detectToolNativeManifests");async function ML(e,t){let r=await dW(e);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await hW(e),o=n?null:await gW(e),i=await yW(e),a=n||o||i.length>0?null:await fW(e),l=await _W(e);return {canonical:r,skillPack:n?{path:t?`${t}/skills`:"skills"}:null,rootSkill:o?{path:t?`${t}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:t?`${t}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:t?`${t}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:t?`${t}/${c.path}`:c.path}))}}s(ML,"detectFlatLayout");function FL(e){return e.canonical!==null||e.skillPack!==null||e.rootSkill!==null||e.rootRule!==null||e.flatCollections.length>0}s(FL,"hasContent");async function SW(e,t){let r=await ma(e),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(e,o.name),a=t?`${t}/${o.name}`:o.name,l=await ML(i,a);FL(l)&&n.push({path:a,layout:l});}return n}s(SW,"collectSubPackCandidates");async function Bee(e,t){if(FL(t))return [];let r=await mW(e,ML,FL);if(r&&r.length>0)return r;let n=await SW(e,"");if(n.length>=2)return n;let o=await ma(e);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await SW(join(e,i.name),i.name);if(a.length>=2)return a}return []}s(Bee,"detectSubPacks");async function kW(e){let t=await ML(e,"");if(t.canonical)return {...t,subPacks:[]};let r=await Bee(e,t);return {...t,subPacks:r}}s(kW,"detectLayout");rt();b();B();function Wee(e){let t=[];for(let r of Kd()){let n=re(r)?.nativeInstall?.dialectHints;n?.length&&n.some(o=>o.frontmatterKey in e)&&t.push(r);}return t}s(Wee,"targetsMatchingFrontmatter");async function LW(e){let t;try{t=await readdir(e);}catch{return null}let r=t.sort().find(a=>a.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await k(join(e,r));if(!n)return null;let o=ln(n,join(e,r));if(!o.ok)return null;let i=Wee(o.value.frontmatter);return i.length===1?i[0]??null:null}s(LW,"inferMdcTarget");Bg();zg();function Yee(e){let t=e.indexOf("#");return t<0?{path:e,anchor:""}:{path:e.slice(0,t),anchor:e.slice(t)}}s(Yee,"splitAnchor");function Xee(e){return e.split(sep).join("/")}s(Xee,"toForwardSlash");async function Qee(e){try{return await stat(e),!0}catch{return false}}s(Qee,"pathExists");async function wW(e){let{link:t,fromFile:r,contentRoot:n,includedPaths:o}=e,{path:i,anchor:a}=Yee(t.path);if(i===""||isAbsolute(i))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let l=join(n,r,".."),c=normalize(resolve(l,i)),m=normalize(resolve(n)),p=relative(m,c);if(p.startsWith("..")||isAbsolute(p))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=Xee(p);return await Qee(c)?o.has(u)?{link:t,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:t,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:t,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(wW,"resolveLink");var qee=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,Zee=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,ete=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function tte(e){let t=[];for(let r of e.matchAll(qee)){let n=r.index??0;t.push([n,n+r[0].length]);}return t}s(tte,"getFencedCodeRanges");function bW(e,t){for(let[r,n]of t)if(e>=r&&e<n)return true;return false}s(bW,"isInRanges");function AW(e){let t=e.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(t);return r?.[1]!==void 0&&(t=r[1].trim()),t.startsWith("<")&&t.endsWith(">")&&(t=t.slice(1,-1).trim()),t}s(AW,"normalizeDestination");function Yh(e){let t=tte(e),r=[];for(let n of e.matchAll(Zee)){let o=n.index??0;if(bW(o,t))continue;let i=n[1]==="!",a=n[2];if(a===void 0)continue;let l=e.indexOf("(",o);if(l<0)continue;let c=l+1;r.push({kind:i?"image":"inline",destination:AW(a),destinationOffset:c,destinationLength:a.length});}for(let n of e.matchAll(ete)){let o=n.index??0;if(bW(o,t))continue;let i=(n[1]??"").trim(),a=n[2]??"";if(i===""||a.trim()==="")continue;let l=o,c=e.indexOf("]:",l);if(c<0)continue;let m=c+2;for(;m<e.length&&(e[m]===" "||e[m]===" ");)m+=1;r.push({kind:"reference-def",destination:AW(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(Yh,"scanMarkdownLinks");function xW(e,t){if(t.length===0)return e;let r=[...t].sort((o,i)=>i.offset-o.offset),n=e;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(xW,"applyRangeRewrites");function rte(e){return !(e.length===0||e.startsWith("#")||e.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))}s(rte,"isCandidateRelativePath");function nte(e){let t=e.replaceAll("\\","/");return t==="{baseDir}"?".":t.startsWith("{baseDir}/")?t.slice(10):t}s(nte,"stripPath");function ote(e){let t=e.destination;return rte(t)?{raw:t,path:nte(t),kind:e.kind,...e.label!==void 0?{label:e.label}:{}}:null}s(ote,"toScannedLink");function TW(e){let t=[];for(let r of Yh(e)){let n=ote(r);n!==null&&t.push(n);}return t}s(TW,"scanRelativeLinks");function Am(e,t){let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(Am,"toForwardSlashRelative");function PW(e,t,r,n,o){let i=new Set;for(let a of t){i.add(Am(e,a.source));for(let l of a.supportingFiles)i.add(Am(e,l.absolutePath));}for(let a of r)i.add(Am(e,a.source));for(let a of n)i.add(Am(e,a.source));for(let a of o)i.add(Am(e,a.source));return i}s(PW,"buildIncludedPaths");function ite(e,t,r,n){let o=[];for(let i of e)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of t)o.push({kind:"agent",name:i.name,body:i.body,sourcePath:i.source});for(let i of r)o.push({kind:"command",name:i.name,body:i.body,sourcePath:i.source});for(let i of n)o.push({kind:"rule",name:basename(i.source,".md"),body:i.body,sourcePath:i.source});return o}s(ite,"listScannables");async function DW(e,t,r,n,o,i){let a=ite(t,r,n,o),l=[];for(let c of a){let m=TW(c.body);if(m.length===0)continue;let p=Am(e,c.sourcePath),u=[];for(let f of m){let g=await wW({link:f,fromFile:p,contentRoot:e,includedPaths:i});g.classification!=="in-tree-included"&&u.push(g);}u.length>0&&l.push({entityKind:c.kind,entityName:c.name,resolved:u});}return l}s(DW,"detectBrokenLinks");zg();async function NW(e,t,r={}){let n=new Map,o=new Map,i=[],a=[...t].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await Kg(join(e,p.dir),{restrictToTarget:p.target,parseOpts:r});i.push(f);for(let g of u){if(n.get(g.name)===void 0){n.set(g.name,{command:g,precedence:p.precedence});continue}let _=o.get(g.name)??[];_.push({path:g.source,precedence:p.precedence}),o.set(g.name,_);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(NW,"mergeCommands");async function vW(e,t,r={}){let[n,o,i,a]=await Promise.all([S0(`${e}/skills`,r),Hg(`${e}/agents`,{parseOpts:r}),Wg(`${e}/rules`,{parseOpts:r}),NW(e,t.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=PW(e,n,l,a.commands,c),p=await DW(e,n,l,a.commands,c,m),u=s(async()=>{await Promise.allSettled([i.cleanup(),o.cleanup(),a.cleanup()]);},"cleanup");return {skills:n,agents:l,commands:a.commands,rules:c,dedups:a.dedups,brokenLinks:p,cleanup:u}}s(vW,"aggregateAnthropicSkillPack");var FW={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};rc();function cte(e){return {rules:[...e.rules],commands:[...e.commands],agents:[...e.agents],skills:[...e.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(cte,"aggregateToCanonical");function Xh(){return {}}s(Xh,"emptyPrep");async function mte(e,t){let r=[];for(let n of t)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await LW(join(e,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(mte,"enrichMdcTargets");function GW(e){return e.canonical?"canonical-agentsmesh":e.skillPack||e.rootSkill?"anthropic-skill-pack":e.rootRule||e.toolNativeManifests.length>0?"tool-native":"unknown"}s(GW,"deriveSourceType");async function pte(e,t){let r=await vd(e,t);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(pte,"rootSkillToCanonical");async function ute(e,t){let r=join(e,t),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${t}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(ute,"rootRuleToCanonical");async function $W(e){let t=e.parseOpts??{};if(e.explicitAs)return {implicitPick:void 0,...await eW(e.contentRoot,e.explicitAs,e.explicitTarget,e.replayPick,t)};if(e.explicitTarget)return NL(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t);let r=await kW(e.contentRoot),n=await mte(e.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await vW(e.contentRoot,FW,t),l=cte(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:Kn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await pte(e.contentRoot,t);return {prep:Xh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Kn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await ute(e.contentRoot,o.rootRule.path);return {prep:Xh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Kn(a),layout:o}}return o.subPacks.length>0?{prep:Xh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Xh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await NL(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t),layout:o}}s($W,"resolveInstallDiscovery");function UW(e){let t=new Set;e.skillPack&&t.add("skills"),e.rootSkill&&t.add("skills");for(let r of e.flatCollections)t.add(r.suggestedAs);return [...t]}s(UW,"featuresFromLayout");function dte(e){return e.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(dte,"subPackSlug");function jW(e,t,r){let n=UW(e.layout),o=!e.layout.skillPack&&!e.layout.rootSkill&&n.length>0;return {name:`${t}-${dte(e.path)}`,source:r,path:e.path,...o?{as:n[0]}:{},features:n}}s(jW,"targetFromSubPack");function BW(e,t,r){return {name:t,source:r,path:e.path,as:e.suggestedAs,target:e.inferredTarget,features:[e.suggestedAs]}}s(BW,"targetFromCollection");function KW(e){let{layout:t,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=e;if(o||i||a)return {targets:[],isMarketplace:false};if(t.canonical||t.skillPack)return {targets:[],isMarketplace:false};if(t.subPacks.length>=1)return fte(e);if(t.flatCollections.length===1){let l=t.flatCollections[0];return {targets:[BW(l,r,n)],isMarketplace:false}}return t.flatCollections.length>1?gte(e):{targets:[],isMarketplace:false}}s(KW,"selectInstallCandidates");function fte(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.all)return {targets:t.subPacks.map(a=>jW(a,r,n)),isMarketplace:true};if(e.force||!e.tty){let a=t.subPacks.map(l=>({path:l.path,features:UW(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
421
+ `),false}}s(bL,"seedAgentsmeshMcpEntry");Be();function EK(e,t){return e.map(r=>({from:relative(t,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(EK,"mapResults");async function OK(e,t){if(t!=="project")return;let r=join(e,".agentsmesh/rules/_root.md");if(!existsSync(r))return;let n=readFileSync(r,"utf8");(n.includes(cp)||/^## Lessons \(/m.test(n))&&await vl(e);}s(OK,"ensureImportedLessonsSubsystem");async function wK(e,t){let r=t??process.cwd(),n=e.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=e.global===true?"global":"project";if(Xt(o)){let p=Ra(r,i),f=await Uh(o).importFrom(p.rootBase,{scope:i});return f.length>0&&(await bL(p.rootBase),await OK(p.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:EK(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await ye(r,i));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${Ue.join(", ")}.`)}await ze(a,r);let c=re(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...Ue,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&(await bL(l.rootBase),await OK(l.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:EK(m,l.rootBase)}}}s(wK,"runImport");tt();zo();function Bh(e){let t=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of e){if(n.status==="unchanged"){r.unchanged++;continue}if(n.status==="created"){r.new++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,"",n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}if(n.status==="updated"&&n.currentContent!==void 0){r.updated++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,n.currentContent,n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}}return {diffs:t,summary:r}}s(Bh,"computeDiff");function Kh(e){return `${e.new} files would be created, ${e.updated} updated, ${e.unchanged} unchanged, ${e.deleted} deleted`}s(Kh,"formatDiffSummary");sn();async function AK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),m=await on({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:i});if(m.length===0)return {exitCode:0,data:{files:[],patches:[],summary:{created:0,updated:0,unchanged:0,deleted:0}}};let{diffs:p,summary:u}=Bh(m);return {exitCode:0,data:{files:m.filter(g=>g.status!=="unchanged"&&g.status!=="skipped").map(g=>({path:g.path,target:g.target,status:g.status})),patches:p.map(g=>({path:g.path,patch:g.patch})),summary:{created:u.new,updated:u.updated,unchanged:u.unchanged,deleted:u.deleted}}}}s(AK,"runDiff");tt();zo();b();rt();Ea();Re();var H7=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(e=>{let t=e.permissions;if(!t)return false;let r=t.ask?.length??0;return t.allow.length+t.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(e=>{let t=e.hooks;return t?Object.values(t).some(r=>Array.isArray(r)&&r.length>0):false},"hasContent")},{canonicalKey:"mcp",capabilityKey:"mcp",featureFlag:"mcp",file:".agentsmesh/mcp.json",label:"MCP servers",hasContent:s(e=>{let t=e.mcp;return t?Object.keys(t.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(e=>e.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(e=>e.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(e=>e.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(e=>e.ignore.length>0,"hasContent")}];function xK(e){let t=new Set(e.enabledFeatures),r=[];for(let n of H7)!t.has(n.featureFlag)||!n.hasContent(e.canonical)||pn(e.capabilities[n.capabilityKey]).level!=="none"||r.push(F(n.file,e.target,`${e.target} does not support ${n.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}s(xK,"lintSilentFeatureDrops");Re();var z7=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function V7(e){let r=e.match(z7)?.groups?.path;return typeof r=="string"?r:null}s(V7,"extractScriptToken");function TK(e){if(e.hasScriptProjection)return [];let t=e.canonical.hooks;if(!t)return [];let r=[];for(let n of Object.values(t))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=V7(o.command);i&&r.push(F(".agentsmesh/hooks.yaml",e.target,`${e.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${e.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(TK,"lintHookScriptReferences");Re();function PK(e){if(e.preservesManualActivation)return [];let t=[];for(let r of e.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(e.target)||t.push(F(r.source,e.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${e.target} loads every rule unconditionally. The rule will become always-on for ${e.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return t}s(PK,"lintRuleScopeInversion");var Y7=new Set([".git","node_modules"]),X7=2e5;function ca(e){let t=new Set;try{let r=[e];for(;r.length>0;){let n=r.pop();for(let o of readdirSync(n,{withFileTypes:!0}))if(o.isDirectory())Y7.has(o.name)||r.push(join(n,o.name));else if(o.isFile()&&(t.add(Dl(e,join(n,o.name))),t.size>X7))return t}}catch{return null}return t}s(ca,"listProjectFiles");var Z7="lessons",vK=".agentsmesh/lessons/lessons.json",FK=".agentsmesh/rules/_root.md",eee=/^## Lessons \(/m;function MK(e,t){if(t==="global")return [];let r=je(e);if(!existsSync(r.graph))return [];let n=[],o;try{o=Du(e);}catch(m){return [AL("error",vK,`lessons.json failed to load: ${m instanceof Error?m.message:String(m)}`)]}let i=ca(e)??void 0,a=Kn(o,{knownPaths:i});for(let m of a.findings)n.push(AL(m.level,vK,`[${m.code}] ${m.message}`));let l=join(e,FK),c=existsSync(l)?readFileSync(l,"utf8"):"";return eee.test(c)||n.push(AL("warning",FK,'lessons procedural rule ("## Lessons (...)") is missing from _root.md \u2014 recall/capture enforcement will not fire.')),n}s(MK,"lintLessonsSubsystem");function AL(e,t,r){return {level:e,file:t,target:Z7,message:r}}s(AL,"diag");var tee=["node_modules",".git","dist","coverage",".agentsmesh"];async function ree(e){return (await gi(e)).filter(n=>{let o=relative(e,n);return !tee.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(e,n))}s(ree,"getProjectFiles");async function Wh(e,t,r,n,o={}){let i=o.scope??"project",a=[...e.targets,...e.pluginTargets??[]],l=n?a.filter(S=>n.includes(S)):a,c=e.features.includes("rules"),m=e.features.includes("commands"),p=e.features.includes("mcp"),u=e.features.includes("permissions"),f=e.features.includes("hooks"),g=[...MK(r,i)],h=i==="global"?[]:await ree(r);for(let S of l){let R=re(S),I=Xt(S)?Uh(S):R;I?.capabilities&&g.push(...xK({target:S,capabilities:I.capabilities,canonical:t,enabledFeatures:e.features})),f&&g.push(...TK({target:S,canonical:t,hasScriptProjection:R?.postProcessHookOutputs!==void 0})),c&&g.push(...PK({target:S,canonical:t,preservesManualActivation:R?.preservesManualActivation===true})),c&&I?.lintRules&&g.push(...I.lintRules(t,r,h,{scope:i})),R?.generators.lint&&g.push(...R.generators.lint(t));let w={scope:i};m&&I?.lint?.commands&&g.push(...I.lint.commands(t,w)),p&&I?.lint?.mcp&&g.push(...I.lint.mcp(t,w)),u&&I?.lint?.permissions&&g.push(...I.lint.permissions(t,w)),f&&I?.lint?.hooks&&g.push(...I.lint.hooks(t,w));}let _=g.some(S=>S.level==="error");return {diagnostics:g,hasErrors:_}}s(Wh,"runLint");sn();async function $K(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await ze(a,r);let{canonical:c}=await Mt(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Wh(a,c,l.configDir,i,{scope:n});return {exitCode:p?1:0,data:{diagnostics:m.map(u=>({level:u.level,file:u.file,target:u.target,message:u.message})),summary:{errors:m.filter(u=>u.level==="error").length,warnings:m.filter(u=>u.level==="warning").length}}}}s($K,"runLintCmd");se();function jK(e){let{data:t}=e;if(t.diagnostics.length===0){y.success("All checks passed.");return}let r=t.diagnostics.filter(a=>a.level==="error"),n=t.diagnostics.filter(a=>a.level==="warning");for(let a of r)y.error(`${a.file} (${a.target}): ${a.message}`);for(let a of n)y.warn(`${a.file} (${a.target}): ${a.message}`);let o=t.summary.errors,i=t.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(jK,"renderLint");se();function UK(e){let{data:t}=e;if(!t.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(t.inSync){y.success("Lock file is in sync.");return}let r=new Set(t.lockedViolations);y.error("Conflict detected:");for(let n of t.extendsModified)y.error(` extend "${n}" was modified`);for(let n of t.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of t.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of t.removed){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was removed${o}`);}y.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state.");}s(UK,"renderCheck");se();function BK(e){let{data:t}=e;if(t.files.length===0){y.info(`Nothing to import from ${t.target}.`);return}for(let n of t.files)y.success(`${n.from} \u2192 ${n.to}`);let r=t.scope==="global"?" --global":"";y.info(`Imported ${t.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(BK,"renderImport");se();function KK(e){let{summary:t}=e.data;if(t.created+t.updated+t.unchanged+t.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of e.data.patches)process.stdout.write(n.patch);y.info(Kh({new:t.created,updated:t.updated,unchanged:t.unchanged,deleted:t.deleted}));}s(KK,"renderDiff");se();function WK(e){if(!e.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(WK,"renderMerge");bu();xu();tt();zo();bu();xu();se();var see=300;function iee(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(iee,"normalizeWatchPath");function aee(e,t){let r=iee(relative(e,t));return r===""?true:r===".lock"||r===".lock.tmp"||r===".generate.lock"||r.endsWith("/.lock")||r.endsWith("/.lock.tmp")||r.endsWith("/.generate.lock")||r.includes("/.generate.lock/")||r.startsWith(".generate.lock/")}s(aee,"shouldIgnoreWatchPath");function lee(e,t,r,n,o,i,a,l,c){return JSON.stringify({features:e,rulesCount:t,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(lee,"featureFingerprint");async function zK(e,t,r={}){let n=t??process.cwd(),o=e.global===true?"global":"project",{context:i}=await ye(n,o),a=[i.canonicalDir,join(i.configDir,"agentsmesh.yaml"),join(i.configDir,"agentsmesh.local.yaml")],l=null,c=null,m=false,p=null,u=s(async()=>{if(m)return;l=null;let{config:S,context:R}=await ye(n,o),{canonical:I}=await Mt(S,R.configDir,{},R.canonicalDir),w=I.mcp?Object.keys(I.mcp.mcpServers).length:0,D=I.permissions?I.permissions.allow.length+I.permissions.deny.length:0,P=I.hooks?Object.values(I.hooks).reduce((M,te)=>M+(Array.isArray(te)?te.length:0),0):0,K=I.ignore.length,G=lee(S.features,I.rules.length,I.commands.length,I.agents.length,I.skills.length,w,D,P,K),Y=c!==null&&c!==G;if(c=G,m)return;let ee=await gm(e,n,{printMatrix:false});if(hm(ee),!m){if(Y){let M=await wu(e,n);Au(M,{verbose:e.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:Y});}},"run"),f=s(()=>{let S=u().catch(R=>{if(!m){let I=R instanceof Error?R.message:String(R);y.error(I);}}).finally(()=>{p===S&&(p=null);});p=S;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,see));},"schedule"),h=r.usePolling??process.platform==="win32",_=oee.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return _.on("all",(S,R)=>{aee(i.canonicalDir,R)||g();}),await new Promise((S,R)=>{_.once("ready",S),_.once("error",R);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await _.close(),p&&await p;},"stop")}}s(zK,"runWatch");tt();Pd();async function Hh(e){let{config:t,configDir:r,canonicalDir:n}=e,o=await lh(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await ii(n),a=await tc(t,r),l=a.length>0?await pm(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let R of c){let I=i[R];I===void 0?f.push(R):I!==o.checksums[R]&&p.push(R);}for(let R of m)c.has(R)||u.push(R);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let R of g)l[R]!==o.extends[R]&&h.push(R);let _=mh(o.checksums,i,t.collaboration?.lock_features??[]);return {inSync:p.length===0&&u.length===0&&f.length===0&&h.length===0,hasLock:true,modified:p,added:u,removed:f,extendsModified:h,lockedViolations:_}}s(Hh,"checkLockSync");sn();async function VK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n);await ze(o,r);let a=await Hh({config:o,configDir:i.configDir,canonicalDir:i.canonicalDir});return a.hasLock?{exitCode:a.inSync?0:1,data:{hasLock:true,inSync:a.inSync,modified:[...a.modified],added:[...a.added],removed:[...a.removed],extendsModified:[...a.extendsModified],lockedViolations:[...a.lockedViolations]}}:{exitCode:1,data:{hasLock:false,inSync:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]}}}s(VK,"runCheck");tt();b();Pd();var mee=".lock",pee="<<<<<<<";async function xL(e){let t=join(e,mee),r=await k(t);return r===null?false:r.includes(pee)}s(xL,"hasLockConflict");async function YK(e,t,r){if(!await xL(e))throw new Error("No conflict to resolve.");let o=await ii(e),i=dirname(e),a=r?await tc(r,i):[],l=a.length>0?await pm(a):{},c=await ph(join(e,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await ch(e,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:t,checksums:o,extends:l,packs:c});}s(YK,"resolveLockConflict");async function XK(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n),a=i.canonicalDir;return await xL(a)?(await YK(a,_a(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(XK,"runMerge");tt();rh();function QK(e){let t=typeof e.path=="string"?e.path.trim():void 0,r=typeof e.target=="string"?e.target.trim():void 0,n=typeof e.as=="string"?e.as.trim():void 0,o=e["accept-elevated"]===true;return {sync:e.sync===true,dryRun:e["dry-run"]===true,force:e.force===true,useExtends:e.extends===true,all:e.all===true,forceFreshMaterialize:e.forceFreshMaterialize===true,explicitPath:t||void 0,explicitTarget:r||void 0,explicitAs:n?cm.parse(n):void 0,nameOverride:typeof e.name=="string"?e.name.trim():"",acceptHooks:o||e["accept-hooks"]===true,acceptPermissions:o||e["accept-permissions"]===true,acceptMcp:o||e["accept-mcp"]===true}}s(QK,"readInstallFlags");var fee=".install.lock";async function wm(e,t={}){return await mkdir(e,{recursive:true}),dm(join(e,fee),{...t,label:"install lock"})}s(wm,"acquireInstallLock");tt();b();Zm();Ia();var yee=promisify(execFile);function zh(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}s(zh,"ensureNotFlag");async function TL(e){let{stdout:t}=await yee("git",e,{env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ALLOW_PROTOCOL:xd()}});return t.trim()}s(TL,"runGit");async function qK(){try{return await TL(["--version"]),!0}catch{return false}}s(qK,"isGitAvailable");async function _ee(e,t){zh(e,"remote-url"),zh(t,"ref"),Xm(e);let r=[t,`refs/heads/${t}`,`refs/tags/${t}`],n;for(let o of r)try{let a=(await TL(["ls-remote",e,o])).split(`
422
+ `).map(c=>c.trim()).find(c=>c.length>0);if(!a)continue;let l=a.split(/\s+/)[0];if(l&&/^[0-9a-f]{40}$/i.test(l))return l}catch(i){n=i;}throw new Error(`Could not resolve ref "${t}" for ${e}: ${n instanceof Error?n.message:String(n)}`)}s(_ee,"gitLsRemoteResolve");async function Vh(e,t){zh(t,"remote-url");let r=e===""?"HEAD":e;if(zh(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(Xm(t),r==="HEAD"){let o=(await TL(["ls-remote",t,"HEAD"])).split(`
423
+ `).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${t}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${t}`);return i.toLowerCase()}return _ee(t,r)}s(Vh,"resolveRemoteRefForInstall");async function ZK(e){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};let t=e.gitRemoteUrl;if(!t)throw new Error("Internal error: missing git remote URL");let r=await Vh(e.rawRef||"HEAD",t);if(e.kind==="github"){let l=`github:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await ec(l,"install",{cacheDir:Qt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(e.kind==="gitlab"){let l=`gitlab:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await ec(l,"install",{cacheDir:Qt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(e.gitPlusBase??t).split("#")[0]}#${n}`;return {resolvedPath:(await ec(i,"install",{cacheDir:Qt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(ZK,"fetchInstallSource");async function eW(e,t){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};try{let r=await ZK(e);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let n=r instanceof Error?r.message:String(r),o=new Error(`Failed to fetch from ${t}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(eW,"resolveInstallResolvedPath");function zu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("tree");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a?null:{org:o,repo:i,ref:a,path:l||""}}catch{return null}}s(zu,"parseGithubTreeUrl");function Vu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("blob");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a||!l?null:{org:o,repo:i,ref:a,path:l}}catch{return null}}s(Vu,"parseGithubBlobUrl");function Ju(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="tree")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i?null:{namespace:m,project:c,ref:i,path:a||""}}catch{return null}}s(Ju,"parseGitlabTreeUrl");function Yu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="blob")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i||!a?null:{namespace:m,project:c,ref:i,path:a}}catch{return null}}s(Yu,"parseGitlabBlobUrl");var See=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Xu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||See.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Xu,"parseGithubRepoUrl");function Qu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.includes("-"))return null;let n=r[r.length-1],o=r.slice(0,-1).join("/");return !o||!n?null:{namespace:o,project:n}}catch{return null}}s(Qu,"parseGitlabRepoUrl");function qu(e){let t=e.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return t?{org:t[1],repo:t[2].replace(/\.git$/i,"")}:null}s(qu,"parseGitSshGithub");function Zu(e){let t=e.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!t)return null;let n=t[1].replace(/\.git$/i,"").split("/").filter(Boolean);if(n.length<2)return null;let o=n[n.length-1];return {namespace:n.slice(0,-1).join("/"),project:o}}s(Zu,"parseGitSshGitlab");b();var Iee=/^[A-Za-z]:[\\/]/,Lee=/^[A-Za-z]:\//;function tW(...e){return e.some(t=>t.includes("\\")||Iee.test(t))?win32:posix}s(tW,"pathApiFor");function td(e){return e.replace(/\\/g,"/")}s(td,"toPosixPath");function ed(e){return td(e).replace(/^\/+|\/+$/g,"")}s(ed,"normalizeInstallPathField");function Jh(e){let t=td(e);return t===""||t==="."||t==="./."?".":t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||Lee.test(t)?t:`./${t}`}s(Jh,"normalizeLocalSourceForYaml");function ma(e){return {...e,source:e.source_kind==="local"?Jh(e.source):e.source,...e.path!==void 0?{path:ed(e.path)}:{},...e.paths!==void 0?{paths:e.paths.map(t=>ed(t))}:{}}}s(ma,"normalizePersistedInstallPaths");function rW(e,t,r){let n=tW(e,t),o=n.normalize(e),i=n.normalize(t),a=ed(r),l=`${n.sep}.agentsmesh${n.sep}`,c=o.indexOf(l);if(c>=0){let p=o.slice(0,c),u=o.slice(c+l.length),f=ed(u),g=td(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Jh(g)}}let m=td(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Jh(m)}}s(rW,"localParsedFromAbsPath");async function PL(e,t,r){let n=e.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let p=n.lastIndexOf("#"),u=p<0?n:n.slice(0,p),f=p<0?"HEAD":n.slice(p+1),g=u.slice(4);return {kind:"git",rawRef:f,gitPlusBase:g,gitRemoteUrl:g,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let p=zu(n)??Vu(n);if(p)return {kind:"github",rawRef:p.ref,org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o||p.path};let u=Xu(n);if(u)return {kind:"github",rawRef:"HEAD",org:u.org,repo:u.repo,gitRemoteUrl:`https://github.com/${u.org}/${u.repo}.git`,pathInRepo:o};let f=Ju(n)??Yu(n);if(f)return {kind:"gitlab",rawRef:f.ref,org:f.namespace,repo:f.project,gitRemoteUrl:`https://gitlab.com/${f.namespace}/${f.project}.git`,pathInRepo:o||f.path};let g=Qu(n);if(g)return {kind:"gitlab",rawRef:"HEAD",org:g.namespace,repo:g.project,gitRemoteUrl:`https://gitlab.com/${g.namespace}/${g.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let p=qu(n);if(!p)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let p=Zu(n);if(!p)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let p=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!p)throw new Error(`Invalid SSH git URL: ${n}`);let u=p[1],f=p[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${u}/${f}.git`,pathInRepo:o}}let i=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(i){let p=i[1],u=i[2];return {kind:"github",rawRef:i[3],org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let a=n.match(/^github:([^/]+)\/([^/@]+)$/);if(a){let p=a[1],u=a[2];return {kind:"github",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let l=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(l){let p=l[1],u=l[2];return {kind:"gitlab",rawRef:l[3],org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let c=n.match(/^gitlab:(.+)\/([^/@]+)$/);if(c){let p=c[1],u=c[2];return {kind:"gitlab",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let m=resolve(t,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return rW(m,t,o)}s(PL,"parseInstallSource");function rd(e){let t=e.trim();if(t.startsWith("local:"))return {kind:"local"};if(t.startsWith("git+")){let a=t.lastIndexOf("#"),l=a<0?t:t.slice(0,a),c=a<0?"HEAD":t.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=t.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(r!==null){let a=r[1],l=r[2],c=r[3];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:c}}let n=t.match(/^github:([^/]+)\/([^/@]+)$/);if(n!==null){let a=n[1],l=n[2];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:"HEAD"}}let o=t.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(o!==null){let a=o[1],l=o[2],c=o[3];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:c}}let i=t.match(/^gitlab:(.+)\/([^/@]+)$/);if(i!==null){let a=i[1],l=i[2];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:"HEAD"}}if(t.startsWith("https://")||t.startsWith("http://")){let a=zu(t)??Vu(t);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Xu(t);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=Ju(t)??Yu(t);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Qu(t);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:t,ref:"HEAD"}}if(t.startsWith("git@github.com:")){let a=qu(t);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(t.startsWith("git@gitlab.com:")){let a=Zu(t);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(t.startsWith("git@")){let a=t.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(a===null)return null;let l=a[1],c=a[2].replace(/\.git$/i,"");return {kind:"git",remoteUrl:`ssh://git@${l}/${c}.git`,ref:"HEAD"}}return null}s(rd,"parseSourceUrl");gI();function Wn(e){let t=[];return e.skills.length&&t.push("skills"),e.rules.length&&t.push("rules"),e.commands.length&&t.push("commands"),e.agents.length&&t.push("agents"),e.mcp!==null&&t.push("mcp"),e.permissions!==null&&t.push("permissions"),e.hooks!==null&&t.push("hooks"),e.ignore.length&&t.push("ignore"),t}s(Wn,"featuresFromCanonical");async function Yh(e,t={}){let{sliceRoot:r,implicitPick:n}=await Xg(e),{canonical:o,cleanup:i}=await Qg(r,{...t,enableTargetEntityMappers:true});return {canonical:o,features:Wn(o),implicitPick:n,cleanup:i}}s(Yh,"discoverFromContentRoot");function nW(e){return e.description.trim()?{skill:e,ok:true}:{skill:e,ok:false,reason:"missing description in frontmatter"}}s(nW,"validateSkill");function oW(e){return e.description.trim()?{rule:e,ok:true}:{rule:e,ok:false,reason:"missing description in frontmatter"}}s(oW,"validateRule");function sW(e){return e.description.trim()?{command:e,ok:true}:{command:e,ok:false,reason:"missing description in frontmatter"}}s(sW,"validateCommand");function iW(e){return e.description.trim()?{agent:e,ok:true}:{agent:e,ok:false,reason:"missing description in frontmatter"}}s(iW,"validateAgent");function yt(e){return basename(e.source).replace(/\.md$/i,"")}s(yt,"ruleSlug");function Oee(e){if(!e)return;let t=[];return e.skills!==void 0&&t.push("skills"),e.rules!==void 0&&t.push("rules"),e.commands!==void 0&&t.push("commands"),e.agents!==void 0&&t.push("agents"),t.length>0?t:void 0}s(Oee,"featuresFromImplicitPick");function Am(e,t){let{implicitPick:r}=t,n=t.scopedFeatures??Oee(r);if(!r&&!n)return e;let o=new Set(n??[]),i={...e,mcp:!n||o.has("mcp")?e.mcp:null,permissions:!n||o.has("permissions")?e.permissions:null,hooks:!n||o.has("hooks")?e.hooks:null,ignore:!n||o.has("ignore")?e.ignore:[]};if(r?.skills!==void 0){let a=new Set(r.skills);i={...i,skills:r.skills.length===0?[]:i.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(i={...i,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);i={...i,rules:r.rules.length===0?[]:i.rules.filter(l=>a.has(yt(l)))};}else n&&!o.has("rules")&&(i={...i,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);i={...i,commands:r.commands.length===0?[]:i.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(i={...i,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);i={...i,agents:r.agents.length===0?[]:i.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(i={...i,agents:[]});return i}s(Am,"narrowDiscoveredForInstallScope");II();async function aW(e,t,r,n,o={}){let i=await eh(e,t,{preferredSkillNames:t==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Yh(i.discoveryRoot,o),c=Am(a,{scopedFeatures:[t]});return {prep:{yamlTarget:r,scopedFeatures:[t],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:Wn(c)}}s(aW,"resolveManualDiscoveredForInstall");qo();oI();b();xe();var wee=(()=>{let e=new Map;for(let r of Pe){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=e.get(a)??new Set;l.add(r.id),e.set(a,l);}}let t=[];for(let[r,n]of e){if(n.size!==1)continue;let[o]=[...n];t.push({prefix:r,target:o});}return t.sort((r,n)=>n.prefix.length-r.prefix.length)})();function bee(e){return e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(bee,"norm");function Xh(e){let t=bee(e);if(t){for(let{prefix:r,target:n}of wee)if(t===r||t.startsWith(`${r}/`))return n}}s(Xh,"targetHintFromNativePath");function DL(e,t){return Xh(e)===t}s(DL,"pathSupportsNativePick");function lW(e,t){if(!e||!t)return;let r=Xh(t);if(r&&r!==e)throw new Error(`--target "${e}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(lW,"validateTargetMatchesPath");function cW(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)>0}s(cW,"extendPickHasArrays");rt();b();TR();async function Tee(e,t,r,n){if(n.kind==="skillDir")return Yf(e);if(n.kind==="firstSegment"){let c=t.slice(r.prefix.length).split("/").filter(Boolean)[0];return c?[c]:[]}let o=await U(e),i=n.suffix,a=i.toLowerCase();return [...new Set(o.filter(l=>l.toLowerCase().endsWith(a)).map(l=>basename(l,i)))].sort()}s(Tee,"namesForStrategy");async function mW(e,t,r){let n=re(r)?.nativeInstall;if(!n)return {};let o=t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(n.inferPick)return n.inferPick(e,o);for(let i of n.pickPaths??[]){if(o!==i.prefix&&!o.startsWith(i.prefix))continue;let a=join(e,...o.split("/")),l=await Tee(a,o,i,i.strategy);return l.length?{[i.feature]:l}:{}}return {}}s(mW,"inferImplicitPickFromNativePath");function pW(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)===0}s(pW,"isImplicitPickEmpty");sI();function nd(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(nd,"normalizePath");function Fee(e,t){let r=nd(e),n=nd(t);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(Fee,"overlapsPath");function Qh(e,t){let r=e??[];return r.includes(t)||r.push(t),r}s(Qh,"addUnique");async function Mee(e){let t=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(t,"repo"),n=s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup");try{return await cp$1(e,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(Mee,"makeStageRoot");function Gee(e,t){let r;for(let o of e){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Qh(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=nd(relative(join(t,".agentsmesh","commands"),join(t,o.toPath)));r={...r,commands:Qh(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Qh(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=nd(relative(join(t,".agentsmesh","skills"),join(t,o.toPath))).split("/")[0];a&&(r={...r,skills:Qh(r?.skills,a)});}}return r&&(r.rules?.length??0)+(r.commands?.length??0)+(r.agents?.length??0)+(r.skills?.length??0)>0?r:void 0}s(Gee,"buildPickFromResults");function $ee(e,t,r,n){let o=join(t,...nd(e).split("/")),i=r.filter(a=>Fee(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${e}" for target "${n}". Try --path "${e}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);return {features:[...new Set(i.map(a=>a.feature))],pick:Gee(i,t)}}s($ee,"scopeImportedResults");async function NL(e,t){let{stageRoot:r,cleanup:n}=await Mee(e);try{let o=await ku(r,t);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(NL,"stageImportedNativeRepo");async function vL(e,t,r){let n=await NL(e,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...$ee(t,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(vL,"stageNativeInstallScope");async function gW(e,t,r,n){let o=n.explicitTarget?.trim();o&&Ir.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");lW(o,i);let a=join(e,".agentsmesh"),l=await j(a),c=i?Xh(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await jg(e)??void 0:void 0;if(!o&&c&&p&&c!==p)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${p}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??p,f=!!i&&!!u&&!i.startsWith(".agentsmesh");if(!l&&u){if(f){let w=await vL(e,i,u);return {discoveryRoot:w.stageRoot,implicitPick:w.pick,scopedFeatures:w.features,yamlTarget:u,importHappened:true,cleanup:w.cleanup}}let I=await NL(e,u);return {discoveryRoot:i?join(I.stageRoot,i):I.stageRoot,yamlTarget:u,importHappened:true,cleanup:I.cleanup}}let g;l?i?u&&DL(i,u)?g=e:g=t:g=e:g=t;let h,_,S;if(f&&u){let I=await vL(e,i,u);g=I.stageRoot,h=I.pick,_=I.features,S=I.cleanup;}else if(g===e&&i&&u&&DL(i,u)&&(h=await mW(e,i,u),pW(h)))throw new Error(`No installable native resources found under "${i}" for target "${u}". Try --path "${i}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);let R;return o?R=o:u&&(h&&cW(h)||(_?.length??0)>0)&&(R=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:_,yamlTarget:R,importHappened:S!==void 0,cleanup:S}}s(gW,"prepareInstallDiscovery");async function FL(e,t,r,n,o={}){let i=await gW(e,t,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Yh(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Am(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=Wn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(FL,"resolveDiscoveredForInstall");var Bee=[".claude-plugin","marketplace.json"];async function Kee(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(Kee,"dirExists");function Wee(e){if(typeof e!="string"||e.length===0||e.startsWith("/"))return null;let t=e.replace(/^\.\/+/,"").replace(/\/+$/,"");return t.split("/").some(r=>r==="..")?null:t}s(Wee,"normalizeSource");async function yW(e,t,r){let n=join(e,...Bee),o;try{o=await readFile(n,"utf-8");}catch{return null}let i;try{i=JSON.parse(o);}catch{return null}if(typeof i!="object"||i===null||!Array.isArray(i.plugins))return null;let a=i.plugins,l=[];for(let c of a){if(typeof c!="object"||c===null)continue;let m=Wee(c.source);if(!m)continue;let p=join(e,m);if(!await Kee(p))continue;let u=await t(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(yW,"detectMarketplaceSubPacks");async function od(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(od,"dirExists");async function pa(e){try{return (await readdir(e,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(pa,"listDirEntries");function _W(e){return e.endsWith(".instructions.md")?"copilot-instructions":e.endsWith(".md")?"md":e.endsWith(".mdc")?"mdc":e.endsWith(".toml")?"toml":null}s(_W,"classifyFileShape");var Vee=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],Jee=[".cursorrules",".windsurfrules"];async function RW(e){let t=join(e,".agentsmesh");if(!await od(t))return null;let r=await pa(t),n=new Set(r.map(o=>o.name));for(let o of Vee)if(n.has(o))return {path:".agentsmesh"};return null}s(RW,"detectCanonical");async function kW(e){for(let t of Jee)try{if((await stat(join(e,t))).isFile())return {path:t}}catch{}return null}s(kW,"detectRootRule");async function IW(e){try{if((await stat(join(e,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(IW,"detectRootSkill");ts();var Xee={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},Qee=[".claude-plugin",".codex-plugin",".cursor-plugin"],qee=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function LW(e){let t=join(e,"skills"),r=await pa(t);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!qee.test(n.name))&&await od(join(t,n.name)))try{if((await stat(join(t,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(LW,"detectSkillPack");async function CW(e){let t=[];for(let[r,n]of Object.entries(Xee)){let o=join(e,r),i=await pa(o),a=new Set;for(let l of i){if(!l.isFile||Jn(l.name))continue;let c=_W(l.name);c&&a.add(c);}for(let l of a)t.push({path:r,suggestedAs:n,fileShape:l});}return t}s(CW,"detectFlatCollections");async function EW(e){let t=[];for(let r of Qee)await od(join(e,r))&&t.push({path:r});return t}s(EW,"detectToolNativeManifests");async function $L(e,t){let r=await RW(e);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await LW(e),o=n?null:await IW(e),i=await CW(e),a=n||o||i.length>0?null:await kW(e),l=await EW(e);return {canonical:r,skillPack:n?{path:t?`${t}/skills`:"skills"}:null,rootSkill:o?{path:t?`${t}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:t?`${t}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:t?`${t}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:t?`${t}/${c.path}`:c.path}))}}s($L,"detectFlatLayout");function GL(e){return e.canonical!==null||e.skillPack!==null||e.rootSkill!==null||e.rootRule!==null||e.flatCollections.length>0}s(GL,"hasContent");async function OW(e,t){let r=await pa(e),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(e,o.name),a=t?`${t}/${o.name}`:o.name,l=await $L(i,a);GL(l)&&n.push({path:a,layout:l});}return n}s(OW,"collectSubPackCandidates");async function Zee(e,t){if(GL(t))return [];let r=await yW(e,$L,GL);if(r&&r.length>0)return r;let n=await OW(e,"");if(n.length>=2)return n;let o=await pa(e);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await OW(join(e,i.name),i.name);if(a.length>=2)return a}return []}s(Zee,"detectSubPacks");async function bW(e){let t=await $L(e,"");if(t.canonical)return {...t,subPacks:[]};let r=await Zee(e,t);return {...t,subPacks:r}}s(bW,"detectLayout");rt();b();B();function tte(e){let t=[];for(let r of zd()){let n=re(r)?.nativeInstall?.dialectHints;n?.length&&n.some(o=>o.frontmatterKey in e)&&t.push(r);}return t}s(tte,"targetsMatchingFrontmatter");async function xW(e){let t;try{t=await readdir(e);}catch{return null}let r=t.sort().find(a=>a.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await k(join(e,r));if(!n)return null;let o=ln(n,join(e,r));if(!o.ok)return null;let i=tte(o.value.frontmatter);return i.length===1?i[0]??null:null}s(xW,"inferMdcTarget");Hg();Yg();function ite(e){let t=e.indexOf("#");return t<0?{path:e,anchor:""}:{path:e.slice(0,t),anchor:e.slice(t)}}s(ite,"splitAnchor");function ate(e){return e.split(sep).join("/")}s(ate,"toForwardSlash");async function lte(e){try{return await stat(e),!0}catch{return false}}s(lte,"pathExists");async function NW(e){let{link:t,fromFile:r,contentRoot:n,includedPaths:o}=e,{path:i,anchor:a}=ite(t.path);if(i===""||isAbsolute(i))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let l=join(n,r,".."),c=normalize(resolve(l,i)),m=normalize(resolve(n)),p=relative(m,c);if(p.startsWith("..")||isAbsolute(p))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=ate(p);return await lte(c)?o.has(u)?{link:t,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:t,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:t,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(NW,"resolveLink");var cte=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,mte=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/dg,pte=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/dgm;function ute(e){let t=[];for(let r of e.matchAll(cte)){let n=r.index??0;t.push([n,n+r[0].length]);}return t}s(ute,"getFencedCodeRanges");function vW(e,t){for(let[r,n]of t)if(e>=r&&e<n)return true;return false}s(vW,"isInRanges");function jL(e){let t=e.length-e.trimStart().length,r=e.trim(),n=r.length,o=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(r);o?.[1]!==void 0&&(n=o[1].trimEnd().length);let i=t,a=r.slice(0,n);return a.length>=2&&a.startsWith("<")&&a.endsWith(">")&&(i+=1,n-=2),{start:i,length:n}}s(jL,"destPathSpan");function FW(e){let{start:t,length:r}=jL(e);return e.slice(t,t+r)}s(FW,"normalizeDestination");function qh(e){let t=ute(e),r=[];for(let n of e.matchAll(mte)){let o=n.index??0;if(vW(o,t))continue;let i=n[1]==="!",a=n[2],l=n.indices?.[2];if(a===void 0||l===void 0)continue;let c=jL(a);r.push({kind:i?"image":"inline",destination:FW(a),destinationOffset:l[0]+c.start,destinationLength:c.length});}for(let n of e.matchAll(pte)){let o=n.index??0;if(vW(o,t))continue;let i=(n[1]??"").trim(),a=n[2]??"",l=n.indices?.[2];if(i===""||a.trim()===""||l===void 0)continue;let c=jL(a);r.push({kind:"reference-def",destination:FW(a),label:i,destinationOffset:l[0]+c.start,destinationLength:c.length});}return r}s(qh,"scanMarkdownLinks");function MW(e,t){if(t.length===0)return e;let r=[...t].sort((o,i)=>i.offset-o.offset),n=e;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(MW,"applyRangeRewrites");function dte(e){return !(e.length===0||e.startsWith("#")||e.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))}s(dte,"isCandidateRelativePath");function fte(e){let t=e.replaceAll("\\","/");return t==="{baseDir}"?".":t.startsWith("{baseDir}/")?t.slice(10):t}s(fte,"stripPath");function gte(e){let t=e.destination;return dte(t)?{raw:t,path:fte(t),kind:e.kind,...e.label!==void 0?{label:e.label}:{}}:null}s(gte,"toScannedLink");function GW(e){let t=[];for(let r of qh(e)){let n=gte(r);n!==null&&t.push(n);}return t}s(GW,"scanRelativeLinks");function xm(e,t){let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(xm,"toForwardSlashRelative");function $W(e,t,r,n,o){let i=new Set;for(let a of t){i.add(xm(e,a.source));for(let l of a.supportingFiles)i.add(xm(e,l.absolutePath));}for(let a of r)i.add(xm(e,a.source));for(let a of n)i.add(xm(e,a.source));for(let a of o)i.add(xm(e,a.source));return i}s($W,"buildIncludedPaths");function yte(e,t,r,n){let o=[];for(let i of e)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of t)o.push({kind:"agent",name:i.name,body:i.body,sourcePath:i.source});for(let i of r)o.push({kind:"command",name:i.name,body:i.body,sourcePath:i.source});for(let i of n)o.push({kind:"rule",name:basename(i.source,".md"),body:i.body,sourcePath:i.source});return o}s(yte,"listScannables");async function jW(e,t,r,n,o,i){let a=yte(t,r,n,o),l=[];for(let c of a){let m=GW(c.body);if(m.length===0)continue;let p=xm(e,c.sourcePath),u=[];for(let f of m){let g=await NW({link:f,fromFile:p,contentRoot:e,includedPaths:i});g.classification!=="in-tree-included"&&u.push(g);}u.length>0&&l.push({entityKind:c.kind,entityName:c.name,resolved:u});}return l}s(jW,"detectBrokenLinks");Yg();async function UW(e,t,r={}){let n=new Map,o=new Map,i=[],a=[...t].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await zg(join(e,p.dir),{restrictToTarget:p.target,parseOpts:r});i.push(f);for(let g of u){if(n.get(g.name)===void 0){n.set(g.name,{command:g,precedence:p.precedence});continue}let _=o.get(g.name)??[];_.push({path:g.source,precedence:p.precedence}),o.set(g.name,_);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(UW,"mergeCommands");async function BW(e,t,r={}){let[n,o,i,a]=await Promise.all([E0(`${e}/skills`,r),Jg(`${e}/agents`,{parseOpts:r}),Vg(`${e}/rules`,{parseOpts:r}),UW(e,t.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=$W(e,n,l,a.commands,c),p=await jW(e,n,l,a.commands,c,m),u=s(async()=>{await Promise.allSettled([i.cleanup(),o.cleanup(),a.cleanup()]);},"cleanup");return {skills:n,agents:l,commands:a.commands,rules:c,dedups:a.dedups,brokenLinks:p,cleanup:u}}s(BW,"aggregateAnthropicSkillPack");var KW={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};oc();function Rte(e){return {rules:[...e.rules],commands:[...e.commands],agents:[...e.agents],skills:[...e.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(Rte,"aggregateToCanonical");function Zh(){return {}}s(Zh,"emptyPrep");async function kte(e,t){let r=[];for(let n of t)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await xW(join(e,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(kte,"enrichMdcTargets");function HW(e){return e.canonical?"canonical-agentsmesh":e.skillPack||e.rootSkill?"anthropic-skill-pack":e.rootRule||e.toolNativeManifests.length>0?"tool-native":"unknown"}s(HW,"deriveSourceType");async function Ite(e,t){let r=await Gd(e,t);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(Ite,"rootSkillToCanonical");async function Lte(e,t){let r=join(e,t),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${t}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(Lte,"rootRuleToCanonical");async function zW(e){let t=e.parseOpts??{};if(e.explicitAs)return {implicitPick:void 0,...await aW(e.contentRoot,e.explicitAs,e.explicitTarget,e.replayPick,t)};if(e.explicitTarget)return FL(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t);let r=await bW(e.contentRoot),n=await kte(e.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await BW(e.contentRoot,KW,t),l=Rte(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:Wn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await Ite(e.contentRoot,t);return {prep:Zh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Wn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await Lte(e.contentRoot,o.rootRule.path);return {prep:Zh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Wn(a),layout:o}}return o.subPacks.length>0?{prep:Zh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Zh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await FL(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t),layout:o}}s(zW,"resolveInstallDiscovery");function JW(e){let t=new Set;e.skillPack&&t.add("skills"),e.rootSkill&&t.add("skills");for(let r of e.flatCollections)t.add(r.suggestedAs);return [...t]}s(JW,"featuresFromLayout");function Cte(e){return e.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(Cte,"subPackSlug");function VW(e,t,r){let n=JW(e.layout),o=!e.layout.skillPack&&!e.layout.rootSkill&&n.length>0;return {name:`${t}-${Cte(e.path)}`,source:r,path:e.path,...o?{as:n[0]}:{},features:n}}s(VW,"targetFromSubPack");function YW(e,t,r){return {name:t,source:r,path:e.path,as:e.suggestedAs,target:e.inferredTarget,features:[e.suggestedAs]}}s(YW,"targetFromCollection");function XW(e){let{layout:t,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=e;if(o||i||a)return {targets:[],isMarketplace:false};if(t.canonical||t.skillPack)return {targets:[],isMarketplace:false};if(t.subPacks.length>=1)return Ete(e);if(t.flatCollections.length===1){let l=t.flatCollections[0];return {targets:[YW(l,r,n)],isMarketplace:false}}return t.flatCollections.length>1?Ote(e):{targets:[],isMarketplace:false}}s(XW,"selectInstallCandidates");function Ete(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.all)return {targets:t.subPacks.map(a=>VW(a,r,n)),isMarketplace:true};if(e.force||!e.tty){let a=t.subPacks.map(l=>({path:l.path,features:JW(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
377
424
  `);throw new Error(`Marketplace source with ${t.subPacks.length} sub-packs. Pass --all to install all, or use --path <subpath>:
378
- ${a}`)}return {targets:t.subPacks.map(i=>jW(i,r,n)),isMarketplace:true}}s(fte,"selectMarketplace");function gte(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.force||!e.tty){let i=t.flatCollections.map(a=>` - ${a.path} (${a.suggestedAs}, .${a.fileShape})`).join(`
425
+ ${a}`)}return {targets:t.subPacks.map(i=>VW(i,r,n)),isMarketplace:true}}s(Ete,"selectMarketplace");function Ote(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.force||!e.tty){let i=t.flatCollections.map(a=>` - ${a.path} (${a.suggestedAs}, .${a.fileShape})`).join(`
379
426
  `);throw new Error(`Ambiguous source with ${t.flatCollections.length} resource collections. Pass --as <kind> to select, or --path <subpath>:
380
- ${i}`)}return {targets:t.flatCollections.map(i=>BW(i,r,n)),isMarketplace:false}}s(gte,"selectMultipleCollections");sn();fI();function xm(e){return e==="."||e===""?void 0:e}s(xm,"trimDot");function yte(e,t){let r=basename(t).replace(/\.md$/i,"");return e==="agents"?{agents:[r]}:e==="commands"?{commands:[r]}:{rules:[r]}}s(yte,"markdownPick");async function HW(e){if(!e.as)return {pathInRepo:xm(e.pathInRepo)};let t=e.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(e.contentRoot);if(e.as!=="skills"&&r.isFile()&&e.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:xm(dirname(t)),pick:yte(e.as,t||e.contentRoot)};if(e.as==="skills"){if(r.isFile()&&basename(e.contentRoot)==="SKILL.md"){let n=t?dirname(t):dirname(e.contentRoot);return {pathInRepo:xm(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=t||basename(e.contentRoot),o=join(e.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await Yg(o);return {pathInRepo:xm(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:xm(t)}}}}return {pathInRepo:xm(t)}}s(HW,"resolveManualInstallPersistence");Ho();se();se();async function Tm(e,t,r){let n=e==="install"?"Pack is installed":e==="refresh"?"Refresh is committed":"Uninstall is committed",o=t==="global"?" --global":"";try{let i=await dm(t==="global"?{global:!0}:{},r,{printMatrix:!1});fm(i),i.exitCode!==0&&y.warn(`Generate failed after ${e}. ${n}; run agentsmesh generate${o}.`);}catch(i){let a=i instanceof Error?i.message:String(i);y.warn(`Generate failed after ${e}: ${a}`),y.warn(`${n}; run agentsmesh generate${o} after resolving the issue.`);}}s(Tm,"runPostOperationGenerate");async function Jo(e){return process.stdin.isTTY?new Promise(t=>{let r=zW.createInterface({input:process.stdin,output:process.stdout});r.question(`${e} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();t(o==="y"||o==="yes");});}):false}s(Jo,"confirm");function _te(e){return !!(e.skills.length||e.rules.length||e.commands.length||e.agents.length)}s(_te,"hasArrayResources");function VW(e){return _te(e)||e.mcp!==null||e.permissions!==null||e.hooks!==null||e.ignore.length>0}s(VW,"hasInstallableResources");async function JW(e,t,r,n){let o=e.skills.map(l=>XK(l)),i=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.skill);else t&&(i=o.map(l=>l.skill));return r&&(i=o.filter(l=>l.ok).map(l=>l.skill)),i}s(JW,"resolveSkillPool");async function YW(e,t,r,n){let o=e.rules.map(l=>QK(l)),i=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid rule "${yt(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.rule);else t&&(i=o.map(l=>l.rule));return r&&(i=o.filter(l=>l.ok).map(l=>l.rule)),i}s(YW,"resolveRulePool");async function XW(e,t,r,n){let o=e.commands.map(l=>qK(l)),i=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.command);else t&&(i=o.map(l=>l.command));return r&&(i=o.filter(l=>l.ok).map(l=>l.command)),i}s(XW,"resolveCommandPool");async function QW(e,t,r,n){let o=e.agents.map(l=>ZK(l)),i=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.agent);else t&&(i=o.map(l=>l.agent));return r&&(i=o.filter(l=>l.ok).map(l=>l.agent)),i}s(QW,"resolveAgentPool");async function qW(e,t){let r=t.skills.map(a=>a.name),n=t.rules.map(a=>yt(a)),o=t.commands.map(a=>a.name),i=t.agents.map(a=>a.name);for(let a of t.skills)e.skills.some(l=>l.name===a.name)&&(await Jo(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of t.rules){let l=yt(a);e.rules.some(c=>yt(c)===l)&&(await Jo(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of t.commands)e.commands.some(l=>l.name===a.name)&&(await Jo(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of t.agents)e.agents.some(l=>l.name===a.name)&&(await Jo(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(i=i.filter(c=>c!==a.name)));return {skillNames:r,ruleSlugs:n,commandNames:o,agentNames:i}}s(qW,"resolveInstallConflicts");function ZW(e,t){if(!e)return;let r={},n=e.skills?.filter(l=>t.skillNames.includes(l)),o=e.rules?.filter(l=>t.ruleSlugs.includes(l)),i=e.commands?.filter(l=>t.commandNames.includes(l)),a=e.agents?.filter(l=>t.agentNames.includes(l));return n&&n.length>0&&(r.skills=n),o&&o.length>0&&(r.rules=o),i&&i.length>0&&(r.commands=i),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}s(ZW,"pickForSelectedResources");function Ste(e,t){let r=e.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===t}s(Ste,"pathEndsWithName");function Qh(e,t,r){return r!==1||t.length!==1?false:Ste(e,t[0])}s(Qh,"inferSingleNamePick");function eH(e){let{pathInRepo:t,implicitPick:r,preConflictCounts:n,selected:o}=e,i={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||Qh(t,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Qh(t,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Qh(t,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Qh(t,o.agentNames,n.agents));return a&&(i.skills=[...o.skillNames]),l&&(i.rules=[...o.ruleSlugs]),c&&(i.commands=[...o.commandNames]),m&&(i.agents=[...o.agentNames]),Object.keys(i).length?i:void 0}s(eH,"buildInstallPick");function tH(e,t){let r=new Set(e);return t.skillNames.length===0&&r.delete("skills"),t.ruleSlugs.length===0&&r.delete("rules"),t.commandNames.length===0&&r.delete("commands"),t.agentNames.length===0&&r.delete("agents"),[...r]}s(tH,"deriveInstallFeatures");function Rte(e){return e.skillNames.length===0&&e.ruleSlugs.length===0&&e.commandNames.length===0&&e.agentNames.length===0}s(Rte,"isEmptyInstallSelection");function rH(e){let{selected:t,discoveredFeatures:r,preConflict:n}=e,o=s(l=>r.includes(l),"had"),i=o("skills")&&t.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&t.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&t.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&t.agentNames.length===0&&n.agents>0&&"agents";if(i)throw new Error(`No ${i} selected to install.`);let a=r.some(l=>["mcp","permissions","hooks","ignore"].includes(l));if(Rte(t)&&!a)throw new Error("No resources selected to install.")}s(rH,"ensureInstallSelection");qo();function nH(e,t){if(e.find(n=>n.name===t.name&&n.source!==t.source))throw new Error(`Extends entry "${t.name}" already exists with a different source. Use --name to provide a different name.`)}s(nH,"assertExtendNameAvailable");function kte(e,t,r){if(r===void 0){if(!e)return;let o={...e};for(let i of ["skills","commands","rules","agents"])t.includes(i)&&delete o[i];return Object.keys(o).length?o:void 0}let n={...e};for(let o of ["skills","commands","rules","agents"]){if(!(o in r))continue;let i=r[o];if(i===void 0||i.length===0){delete n[o];continue}n[o]=[...new Set([...e?.[o]??[],...i])];}return Object.keys(n).length?n:void 0}s(kte,"mergePick");function oH(e,t){let r=e.findIndex(a=>a.source===t.source);if(r<0)return [...e,{name:t.name,source:t.source,version:t.version,features:t.features,path:t.path,pick:t.pick,target:t.target,as:t.as}];let n=e[r],o=[...new Set([...n.features,...t.features])],i=kte(n.pick,t.features,t.pick);return e.map((a,l)=>l===r?{name:t.name,source:t.source,version:t.version??n.version,features:o,path:t.path!==void 0?t.path:n.path,pick:i,target:t.target??n.target,as:t.as??n.as}:a)}s(oH,"mergeExtendList");b();async function sH(e,t,r){let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=oH(t.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await L(e,a.endsWith(`
427
+ ${i}`)}return {targets:t.flatCollections.map(i=>YW(i,r,n)),isMarketplace:false}}s(Ote,"selectMultipleCollections");sn();hI();function Tm(e){return e==="."||e===""?void 0:e}s(Tm,"trimDot");function bte(e,t){let r=basename(t).replace(/\.md$/i,"");return e==="agents"?{agents:[r]}:e==="commands"?{commands:[r]}:{rules:[r]}}s(bte,"markdownPick");async function qW(e){if(!e.as)return {pathInRepo:Tm(e.pathInRepo)};let t=e.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(e.contentRoot);if(e.as!=="skills"&&r.isFile()&&e.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:Tm(dirname(t)),pick:bte(e.as,t||e.contentRoot)};if(e.as==="skills"){if(r.isFile()&&basename(e.contentRoot)==="SKILL.md"){let n=t?dirname(t):dirname(e.contentRoot);return {pathInRepo:Tm(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=t||basename(e.contentRoot),o=join(e.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await qg(o);return {pathInRepo:Tm(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Tm(t)}}}}return {pathInRepo:Tm(t)}}s(qW,"resolveManualInstallPersistence");zo();se();se();async function Pm(e,t,r){let n=e==="install"?"Pack is installed":e==="refresh"?"Refresh is committed":"Uninstall is committed",o=t==="global"?" --global":"";try{let i=await gm(t==="global"?{global:!0}:{},r,{printMatrix:!1});hm(i),i.exitCode!==0&&y.warn(`Generate failed after ${e}. ${n}; run agentsmesh generate${o}.`);}catch(i){let a=i instanceof Error?i.message:String(i);y.warn(`Generate failed after ${e}: ${a}`),y.warn(`${n}; run agentsmesh generate${o} after resolving the issue.`);}}s(Pm,"runPostOperationGenerate");async function Jo(e){return process.stdin.isTTY?new Promise(t=>{let r=ZW.createInterface({input:process.stdin,output:process.stdout});r.question(`${e} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();t(o==="y"||o==="yes");});}):false}s(Jo,"confirm");function Ate(e){return !!(e.skills.length||e.rules.length||e.commands.length||e.agents.length)}s(Ate,"hasArrayResources");function eH(e){return Ate(e)||e.mcp!==null||e.permissions!==null||e.hooks!==null||e.ignore.length>0}s(eH,"hasInstallableResources");async function tH(e,t,r,n){let o=e.skills.map(l=>nW(l)),i=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.skill);else t&&(i=o.map(l=>l.skill));return r&&(i=o.filter(l=>l.ok).map(l=>l.skill)),i}s(tH,"resolveSkillPool");async function rH(e,t,r,n){let o=e.rules.map(l=>oW(l)),i=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid rule "${yt(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.rule);else t&&(i=o.map(l=>l.rule));return r&&(i=o.filter(l=>l.ok).map(l=>l.rule)),i}s(rH,"resolveRulePool");async function nH(e,t,r,n){let o=e.commands.map(l=>sW(l)),i=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.command);else t&&(i=o.map(l=>l.command));return r&&(i=o.filter(l=>l.ok).map(l=>l.command)),i}s(nH,"resolveCommandPool");async function oH(e,t,r,n){let o=e.agents.map(l=>iW(l)),i=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await Jo(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.agent);else t&&(i=o.map(l=>l.agent));return r&&(i=o.filter(l=>l.ok).map(l=>l.agent)),i}s(oH,"resolveAgentPool");async function sH(e,t){let r=t.skills.map(a=>a.name),n=t.rules.map(a=>yt(a)),o=t.commands.map(a=>a.name),i=t.agents.map(a=>a.name);for(let a of t.skills)e.skills.some(l=>l.name===a.name)&&(await Jo(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of t.rules){let l=yt(a);e.rules.some(c=>yt(c)===l)&&(await Jo(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of t.commands)e.commands.some(l=>l.name===a.name)&&(await Jo(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of t.agents)e.agents.some(l=>l.name===a.name)&&(await Jo(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(i=i.filter(c=>c!==a.name)));return {skillNames:r,ruleSlugs:n,commandNames:o,agentNames:i}}s(sH,"resolveInstallConflicts");function iH(e,t){if(!e)return;let r={},n=e.skills?.filter(l=>t.skillNames.includes(l)),o=e.rules?.filter(l=>t.ruleSlugs.includes(l)),i=e.commands?.filter(l=>t.commandNames.includes(l)),a=e.agents?.filter(l=>t.agentNames.includes(l));return n&&n.length>0&&(r.skills=n),o&&o.length>0&&(r.rules=o),i&&i.length>0&&(r.commands=i),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}s(iH,"pickForSelectedResources");function xte(e,t){let r=e.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===t}s(xte,"pathEndsWithName");function ey(e,t,r){return r!==1||t.length!==1?false:xte(e,t[0])}s(ey,"inferSingleNamePick");function aH(e){let{pathInRepo:t,implicitPick:r,preConflictCounts:n,selected:o}=e,i={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||ey(t,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||ey(t,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||ey(t,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||ey(t,o.agentNames,n.agents));return a&&(i.skills=[...o.skillNames]),l&&(i.rules=[...o.ruleSlugs]),c&&(i.commands=[...o.commandNames]),m&&(i.agents=[...o.agentNames]),Object.keys(i).length?i:void 0}s(aH,"buildInstallPick");function lH(e,t){let r=new Set(e);return t.skillNames.length===0&&r.delete("skills"),t.ruleSlugs.length===0&&r.delete("rules"),t.commandNames.length===0&&r.delete("commands"),t.agentNames.length===0&&r.delete("agents"),[...r]}s(lH,"deriveInstallFeatures");function Tte(e){return e.skillNames.length===0&&e.ruleSlugs.length===0&&e.commandNames.length===0&&e.agentNames.length===0}s(Tte,"isEmptyInstallSelection");function cH(e){let{selected:t,discoveredFeatures:r,preConflict:n}=e,o=s(l=>r.includes(l),"had"),i=o("skills")&&t.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&t.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&t.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&t.agentNames.length===0&&n.agents>0&&"agents";if(i)throw new Error(`No ${i} selected to install.`);let a=r.some(l=>["mcp","permissions","hooks","ignore"].includes(l));if(Tte(t)&&!a)throw new Error("No resources selected to install.")}s(cH,"ensureInstallSelection");qo();function mH(e,t){if(e.find(n=>n.name===t.name&&n.source!==t.source))throw new Error(`Extends entry "${t.name}" already exists with a different source. Use --name to provide a different name.`)}s(mH,"assertExtendNameAvailable");function Pte(e,t,r){if(r===void 0){if(!e)return;let o={...e};for(let i of ["skills","commands","rules","agents"])t.includes(i)&&delete o[i];return Object.keys(o).length?o:void 0}let n={...e};for(let o of ["skills","commands","rules","agents"]){if(!(o in r))continue;let i=r[o];if(i===void 0||i.length===0){delete n[o];continue}n[o]=[...new Set([...e?.[o]??[],...i])];}return Object.keys(n).length?n:void 0}s(Pte,"mergePick");function pH(e,t){let r=e.findIndex(a=>a.source===t.source);if(r<0)return [...e,{name:t.name,source:t.source,version:t.version,features:t.features,path:t.path,pick:t.pick,target:t.target,as:t.as}];let n=e[r],o=[...new Set([...n.features,...t.features])],i=Pte(n.pick,t.features,t.pick);return e.map((a,l)=>l===r?{name:t.name,source:t.source,version:t.version??n.version,features:o,path:t.path!==void 0?t.path:n.path,pick:i,target:t.target??n.target,as:t.as??n.as}:a)}s(pH,"mergeExtendList");b();async function uH(e,t,r){let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=pH(t.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await L(e,a.endsWith(`
381
428
  `)?a:`${a}
382
- `);}s(sH,"writeAgentsmeshWithNewExtend");se();async function iH(e){let{configDir:t,config:r,entryArgs:n,dryRun:o}=e,i=Ete(n);if(nH(r.extends,i),o){y.info(`[dry-run] Would add extend:
383
- ${JSON.stringify(i,null,2)}`);return}let a=join(t,"agentsmesh.yaml");await sH(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(iH,"writeInstallAsExtend");function Ete(e){return {name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.yamlTarget!==void 0?kr.parse(e.yamlTarget):void 0,as:e.as}}s(Ete,"toNewExtendEntry");b();se();b();var wte="pack.yaml";async function qh(e){let t=await U(e),r=[];for(let i of t.sort()){let a=relative(e,i).replace(/\\/g,"/");if(a===wte)continue;let l=await nh(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
384
- `);return `sha256:${rh(n)}`}s(qh,"hashPackContent");b();var _r=".agentsmesh-install-manifest.json",Ate=["pack.yaml",_r];z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),installed_at:z$1.string().min(1),extends_id:z$1.string().nullable(),source_type:z$1.enum(["anthropic-skill-pack","canonical-agentsmesh","tool-native","unknown"]).nullable(),files:z$1.record(z$1.string().min(1),z$1.string().regex(/^sha256:[0-9a-f]{64}$/))});function xte(e,t){return relative(e,t).replaceAll("\\","/")}s(xte,"toForwardSlashRelative");async function Zh(e){let t=await gi(e),r=[];for(let n of t){let o=xte(e,n);if(Ate.includes(o))continue;let i=await oh(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(Zh,"hashPackFiles");b();var Tte=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,Pte=[{id:"BSD-3-Clause",pattern:/redistribution and use in source and binary forms[\s\S]+?neither the name of[\s\S]+?contributors/i},{id:"BSD-2-Clause",pattern:/redistribution and use in source and binary forms/i},{id:"AGPL-3.0",pattern:/gnu affero general public license[\s\S]+?version 3/i},{id:"LGPL-3.0",pattern:/gnu lesser general public license[\s\S]+?version 3/i},{id:"LGPL-2.1",pattern:/gnu lesser general public license[\s\S]+?version 2\.1/i},{id:"GPL-3.0",pattern:/gnu general public license[\s\S]+?version 3/i},{id:"GPL-2.0",pattern:/gnu general public license[\s\S]+?version 2/i},{id:"MPL-2.0",pattern:/mozilla public license[\s\S]+?version 2\.0/i},{id:"Apache-2.0",pattern:/apache license[\s\S]+?version 2\.0/i},{id:"MIT",pattern:/permission is hereby granted, free of charge, to any person obtaining a copy/i},{id:"ISC",pattern:/permission to use, copy, modify,? and\/or distribute this software/i},{id:"Unlicense",pattern:/this is free and unencumbered software released into the public domain/i},{id:"CC0-1.0",pattern:/cc0 1\.0 universal/i}];function aH(e){if(e.trim().length===0)return null;let t=Tte.exec(e);if(t)return t[1]??null;for(let{id:r,pattern:n}of Pte)if(n.test(e))return r;return null}s(aH,"detectSpdxLicense");var Nte=["LICENSE","COPYING","NOTICE","COPYRIGHT"],vte=["",".md",".txt",".rst"];async function lH(e){for(let t of Nte)for(let r of vte){let n=await k(join(e,`${t}${r}`));if(n===null)continue;let o=aH(n);if(o!==null)return o}return null}s(lH,"detectLicenseInPackDir");async function Gte(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await O(r);for(let n of e.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(Gte,"writeRules");async function $te(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await O(r);for(let n of e.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s($te,"writeCommands");async function jte(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await O(r);for(let n of e.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(jte,"writeAgents");async function Ute(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await O(r);for(let n of e.skills){let o=join(r,n.name);await O(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await O(dirname(a)),await copyFile(i.absolutePath,a);}}}s(Ute,"writeSkills");async function Bte(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(Bte,"writePreservedRootFiles");async function Kte(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
429
+ `);}s(uH,"writeAgentsmeshWithNewExtend");se();async function dH(e){let{configDir:t,config:r,entryArgs:n,dryRun:o}=e,i=Fte(n);if(mH(r.extends,i),o){y.info(`[dry-run] Would add extend:
430
+ ${JSON.stringify(i,null,2)}`);return}let a=join(t,"agentsmesh.yaml");await uH(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(dH,"writeInstallAsExtend");function Fte(e){return {name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.yamlTarget!==void 0?Ir.parse(e.yamlTarget):void 0,as:e.as}}s(Fte,"toNewExtendEntry");b();se();b();var Gte="pack.yaml";async function ty(e){let t=await U(e),r=[];for(let i of t.sort()){let a=relative(e,i).replace(/\\/g,"/");if(a===Gte)continue;let l=await ih(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
431
+ `);return `sha256:${sh(n)}`}s(ty,"hashPackContent");b();var Sr=".agentsmesh-install-manifest.json",jte=["pack.yaml",Sr];z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),installed_at:z$1.string().min(1),extends_id:z$1.string().nullable(),source_type:z$1.enum(["anthropic-skill-pack","canonical-agentsmesh","tool-native","unknown"]).nullable(),files:z$1.record(z$1.string().min(1),z$1.string().regex(/^sha256:[0-9a-f]{64}$/))});function Ute(e,t){return relative(e,t).replaceAll("\\","/")}s(Ute,"toForwardSlashRelative");async function ry(e){let t=await U(e),r=[];for(let n of t){let o=Ute(e,n);if(jte.includes(o))continue;let i=await ah(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(ry,"hashPackFiles");b();var Bte=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,Kte=[{id:"BSD-3-Clause",pattern:/redistribution and use in source and binary forms[\s\S]+?neither the name of[\s\S]+?contributors/i},{id:"BSD-2-Clause",pattern:/redistribution and use in source and binary forms/i},{id:"AGPL-3.0",pattern:/gnu affero general public license[\s\S]+?version 3/i},{id:"LGPL-3.0",pattern:/gnu lesser general public license[\s\S]+?version 3/i},{id:"LGPL-2.1",pattern:/gnu lesser general public license[\s\S]+?version 2\.1/i},{id:"GPL-3.0",pattern:/gnu general public license[\s\S]+?version 3/i},{id:"GPL-2.0",pattern:/gnu general public license[\s\S]+?version 2/i},{id:"MPL-2.0",pattern:/mozilla public license[\s\S]+?version 2\.0/i},{id:"Apache-2.0",pattern:/apache license[\s\S]+?version 2\.0/i},{id:"MIT",pattern:/permission is hereby granted, free of charge, to any person obtaining a copy/i},{id:"ISC",pattern:/permission to use, copy, modify,? and\/or distribute this software/i},{id:"Unlicense",pattern:/this is free and unencumbered software released into the public domain/i},{id:"CC0-1.0",pattern:/cc0 1\.0 universal/i}];function fH(e){if(e.trim().length===0)return null;let t=Bte.exec(e);if(t)return t[1]??null;for(let{id:r,pattern:n}of Kte)if(n.test(e))return r;return null}s(fH,"detectSpdxLicense");var Hte=["LICENSE","COPYING","NOTICE","COPYRIGHT"],zte=["",".md",".txt",".rst"];async function gH(e){for(let t of Hte)for(let r of zte){let n=await k(join(e,`${t}${r}`));if(n===null)continue;let o=fH(n);if(o!==null)return o}return null}s(gH,"detectLicenseInPackDir");async function Yte(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await O(r);for(let n of e.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(Yte,"writeRules");async function Xte(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await O(r);for(let n of e.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(Xte,"writeCommands");async function Qte(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await O(r);for(let n of e.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(Qte,"writeAgents");async function qte(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await O(r);for(let n of e.skills){let o=join(r,n.name);await O(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await O(dirname(a)),await copyFile(i.absolutePath,a);}}}s(qte,"writeSkills");async function Zte(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(Zte,"writePreservedRootFiles");async function ere(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
385
432
  `),e.permissions!==null&&await L(join(t,"permissions.yaml"),stringify(e.permissions)),e.hooks!==null&&await L(join(t,"hooks.yaml"),stringify(e.hooks)),e.ignore.length>0&&await L(join(t,"ignore"),`${e.ignore.join(`
386
433
  `)}
387
- `);}s(Kte,"writeSettings");function Wte(e){if(e.includes("/")||e.includes("\\")||e===".."||e==="."||e.includes("\0"))throw new Error(`Invalid pack name "${e}". Pack names must be a single directory segment without path separators.`)}s(Wte,"validatePackName");async function Hte(e,t,r){let n=await Zh(e),o=HU({name:t.name,source:t.source,installed_at:t.installed_at,extends_id:r.extends_id??null,source_type:r.source_type??null,files:n},"install-manifest");await L(join(e,_r),`${JSON.stringify(o,null,2)}
388
- `);}s(Hte,"writeInstallManifest");async function cH(e,t,r,n,o={},i=[]){Wte(t);let a=join(e,`${t}.tmp`),l=join(e,`${t}.old`),c=join(e,t);await j(a)&&await rm$1(a,{recursive:true,force:true}),await j(l)&&await rm$1(l,{recursive:true,force:true});let m,p=false;try{await O(a),await Gte(r,a),await $te(r,a),await jte(r,a),await Ute(r,a),await Kte(r,a),await Bte(i,a);let u=await qh(a),f=await lH(a);m=ca({...n,content_hash:u,license:f}),await L(join(a,"pack.yaml"),wl(stringify(m),"pack")),await Hte(a,m,o),await mkdir(e,{recursive:!0}),await j(c)&&(await rename(c,l),p=!0);try{await rename(a,c);}catch(g){throw p&&(await rename(l,c).catch(h=>{let _=h instanceof Error?h.message:String(h);y.warn(`Failed to restore the previous pack after a failed atomic swap; the prior contents remain at "${l}". Recover them manually. (${_})`);}),p=!1),g}}catch(u){throw await rm$1(a,{recursive:true,force:true}).catch(()=>{}),u}return p&&await rm$1(l,{recursive:true,force:true}).catch(()=>{}),m}s(cH,"materializePack");lm();b();function KL(e,t){return [...new Set([...e,...t])]}s(KL,"union");function Vte(e,t){if(e.path===void 0&&e.paths===void 0||t===void 0)return {path:void 0,paths:void 0};let n=KL(e.paths??(e.path?[e.path]:[]),[t]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(Vte,"mergePathScope");function Jte(e,t,r){let n={...e};for(let i of t)r&&r[i]!==void 0?n[i]=KL(n[i]??[],r[i]):delete n[i];return (n.skills?.length??0)>0||(n.rules?.length??0)>0||(n.commands?.length??0)>0||(n.agents?.length??0)>0?n:void 0}s(Jte,"mergePick");async function Yte(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await O(r);for(let n of e.rules)await copyFile(n.source,join(r,basename(n.source)));}s(Yte,"mergeRules");async function Xte(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await O(r);for(let n of e.commands)await copyFile(n.source,join(r,basename(n.source)));}s(Xte,"mergeCommands");async function Qte(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await O(r);for(let n of e.agents)await copyFile(n.source,join(r,basename(n.source)));}s(Qte,"mergeAgents");async function qte(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await O(r);for(let n of e.skills){let o=join(r,n.name);await O(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await O(dirname(a)),await copyFile(i.absolutePath,a);}}}s(qte,"mergeSkills");async function Zte(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(Zte,"mergePreservedRootFiles");async function ere(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
434
+ `);}s(ere,"writeSettings");function tre(e){if(e.includes("/")||e.includes("\\")||e===".."||e==="."||e.includes("\0"))throw new Error(`Invalid pack name "${e}". Pack names must be a single directory segment without path separators.`)}s(tre,"validatePackName");async function rre(e,t,r){let n=await ry(e),o=QU({name:t.name,source:t.source,installed_at:t.installed_at,extends_id:r.extends_id??null,source_type:r.source_type??null,files:n},"install-manifest");await L(join(e,Sr),`${JSON.stringify(o,null,2)}
435
+ `);}s(rre,"writeInstallManifest");async function hH(e,t,r,n,o={},i=[]){tre(t);let a=join(e,`${t}.tmp`),l=join(e,`${t}.old`),c=join(e,t);await j(a)&&await rm$1(a,{recursive:true,force:true}),await j(l)&&await rm$1(l,{recursive:true,force:true});let m,p=false;try{await O(a),await Yte(r,a),await Xte(r,a),await Qte(r,a),await qte(r,a),await ere(r,a),await Zte(i,a);let u=await ty(a),f=await gH(a);m=ma({...n,content_hash:u,license:f}),await L(join(a,"pack.yaml"),Al(stringify(m),"pack")),await rre(a,m,o),await mkdir(e,{recursive:!0}),await j(c)&&(await rename(c,l),p=!0);try{await rename(a,c);}catch(g){throw p&&(await rename(l,c).catch(h=>{let _=h instanceof Error?h.message:String(h);y.warn(`Failed to restore the previous pack after a failed atomic swap; the prior contents remain at "${l}". Recover them manually. (${_})`);}),p=!1),g}}catch(u){throw await rm$1(a,{recursive:true,force:true}).catch(()=>{}),u}return p&&await rm$1(l,{recursive:true,force:true}).catch(()=>{}),m}s(hH,"materializePack");mm();b();function zL(e,t){return [...new Set([...e,...t])]}s(zL,"union");function ore(e,t){if(e.path===void 0&&e.paths===void 0||t===void 0)return {path:void 0,paths:void 0};let n=zL(e.paths??(e.path?[e.path]:[]),[t]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(ore,"mergePathScope");function sre(e,t,r){let n={...e};for(let i of t)r&&r[i]!==void 0?n[i]=zL(n[i]??[],r[i]):delete n[i];return (n.skills?.length??0)>0||(n.rules?.length??0)>0||(n.commands?.length??0)>0||(n.agents?.length??0)>0?n:void 0}s(sre,"mergePick");async function ire(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await O(r);for(let n of e.rules)await copyFile(n.source,join(r,basename(n.source)));}s(ire,"mergeRules");async function are(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await O(r);for(let n of e.commands)await copyFile(n.source,join(r,basename(n.source)));}s(are,"mergeCommands");async function lre(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await O(r);for(let n of e.agents)await copyFile(n.source,join(r,basename(n.source)));}s(lre,"mergeAgents");async function cre(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await O(r);for(let n of e.skills){let o=join(r,n.name);await O(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await O(dirname(a)),await copyFile(i.absolutePath,a);}}}s(cre,"mergeSkills");async function mre(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(mre,"mergePreservedRootFiles");async function pre(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
389
436
  `),e.permissions!==null&&await L(join(t,"permissions.yaml"),stringify(e.permissions)),e.hooks!==null&&await L(join(t,"hooks.yaml"),stringify(e.hooks)),e.ignore.length>0&&await L(join(t,"ignore"),`${e.ignore.join(`
390
437
  `)}
391
- `);}s(ere,"mergeSettings");async function mH(e,t,r,n,o,i,a=[]){await Yte(r,e),await Xte(r,e),await Qte(r,e),await qte(r,e),await ere(r,e),await Zte(a,e);let l=KL(t.features,n),c=Jte(t.pick,n,o),m=Vte(t,i?.path),p=await qh(e),u=new Date().toISOString(),f=ca({...t,source:i?.source??t.source,...i?.version!==void 0?{version:i.version}:t.version!==void 0?{version:t.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:t.target!==void 0?{target:t.target}:{},...m,...i?.as!==void 0?{as:i.as}:t.as!==void 0?{as:t.as}:{},updated_at:u,content_hash:p});return await L(join(e,"pack.yaml"),wl(stringify(f),"pack")),f}s(mH,"mergeIntoPack");Zy();ts();async function pH(e){let t=[];try{let r=await readdir(e,{withFileTypes:!0});for(let n of r)n.isFile()&&Pd(n.name)&&t.push({relativePath:n.name,absolutePath:join(e,n.name)});}catch{return []}return t.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),t}s(pH,"collectPreservedRootFiles");qo();se();qo();b();Zg();function ore(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(ore,"sanitize");function sre(e){try{let r=new URL(e.replace(/^git\+/,"https://").replace(/^ssh:\/\/git@/,"https://")).pathname.split("/").filter(Boolean);if(r.length===0)return "repo";let n=r[r.length-1].replace(/\.git$/i,"");return r.length>=2?`${r[r.length-2].replace(/\.git$/i,"")}-${n}`:n}catch{return "repo"}}s(sre,"gitUrlLastSegments");function uH(e,t,r){let n;if(e.kind==="local"){let l=(e.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else e.kind==="github"&&e.org&&e.repo?n=`${e.org}-${e.repo}`:e.kind==="gitlab"&&e.org&&e.repo?n=`${e.org.replace(/\//g,"-")}-${e.repo}`:e.gitRemoteUrl?n=sre(e.gitRemoteUrl):n="extend";t.featureHint?n=`${n}-${t.featureHint}`:n=`${n}-pack`;let o=ore(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(uH,"suggestExtendName");function dH(e){let{config:t,parsed:r,entryFeatures:n,nameOverride:o}=e,i=new Set(t.extends.map(a=>a.name));return o||uH(r,{featureHint:n.length===1?n[0]:void 0},i)}s(dH,"selectInstallEntryName");function fH(e){let t=e.trim();for(;t.startsWith("git+");){let c=t.lastIndexOf("#");t=(c<0?t.slice(4):t.slice(4,c)).trim();}let r=t.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=t.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=t.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=t.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=t.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(fH,"canonicalRemoteIdentity");function ire(e){return e.kind==="github"&&e.org&&e.repo?`github:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.kind==="gitlab"&&e.org&&e.repo?`gitlab:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.gitRemoteUrl?fH(e.gitRemoteUrl):null}s(ire,"parsedSourceIdentity");function gH(e,t){let r=ire(t);if(r===null)return null;for(let n of e){let o=fH(n.source);if(o!==null&&o===r)return n.name}return null}s(gH,"findExistingInstallName");function WL(e,t){if(e.length!==t.length)return false;let r=[...e].sort(),n=[...t].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(WL,"sameFeatureSet");function hH(e){let{manifest:t,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=e,a=gH(t,r);if(a===null)return null;let l=t.find(c=>c.name===a);return l.target!==o||l.as!==i||!WL(l.features,n)?null:l.name}s(hH,"pickReuseEntryName");var cre=s(e=>!e.includes("/")&&!e.includes("\\")&&!e.includes("\0")&&e!=="."&&e!=="..","isSafeInstallName"),_H=z$1.object({name:z$1.string().min(1).refine(cre,{message:'install name must not contain path separators, NUL, or "."/".." segments'}),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(Xl).min(1),pick:Jm.optional(),target:kr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:am.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional(),accepted_elevated:z$1.array(z$1.enum(["hooks","permissions","mcp"])).min(1).optional()}),mre=z$1.object({version:z$1.literal(1),installs:z$1.array(_H).default([])});function pre(e,t){return e.source===t.source&&e.target===t.target&&e.as===t.as&&WL(e.features,t.features)}s(pre,"sameInstallIdentity");function HL(e){return join(e,"installs.yaml")}s(HL,"manifestPath");async function Vt(e){let t=await k(HL(e));if(t===null)return [];try{return mre.parse(parse(t)).installs.map(r=>ca(r))}catch{return []}}s(Vt,"readInstallManifest");async function ty(e,t){let r=ca(t),o=(await Vt(e)).filter(i=>i.name!==r.name&&!pre(i,r));o.push(r),await L(HL(e),wl(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(ty,"upsertInstallManifestEntry");async function SH(e,t){let r=await Vt(e),n=r.filter(o=>o.name!==t);return n.length===r.length?false:(await L(HL(e),wl(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(SH,"removeInstallManifestEntry");function RH(e){return ca(_H.parse({name:e.name,source:e.source,version:e.version,source_kind:e.sourceKind,features:e.features,pick:e.pick,target:e.target,path:e.path,paths:e.paths,as:e.as,refreshed_at:e.refreshed_at,original_ref:e.originalRef,accepted_elevated:e.acceptedElevated}))}s(RH,"buildInstallManifestEntry");b();function dre(e){return e?{path:e,paths:void 0}:{path:void 0,paths:void 0}}s(dre,"pathScope");function fre(e,t){let r=new Set(t.skillNames),n=new Set(t.ruleSlugs),o=new Set(t.commandNames),i=new Set(t.agentNames);return {...e,skills:e.skills.filter(a=>r.has(a.name)),rules:e.rules.filter(a=>n.has(yt(a))),commands:e.commands.filter(a=>o.has(a.name)),agents:e.agents.filter(a=>i.has(a.name))}}s(fre,"applySelection");async function kH(e){let{canonicalDir:t,packName:r,narrowed:n,selected:o,sourceForYaml:i,version:a,sourceKind:l,entryFeatures:c,pick:m,yamlTarget:p,pathInRepo:u,manualAs:f,renameExistingPack:g,sourceType:h,contentRoot:_,forceFreshMaterialize:S,originalRef:R,acceptedElevated:I}=e,w=join(t,"packs"),D=fre(n,o),P=_?await pH(_):[],K=new Date().toISOString(),G=p!==void 0?kr.parse(p):void 0,Y=S?null:await M0(w,i,{target:G,as:f,features:c}),ee=r,M=c,te=m,Te=u,At;if(Y){let we=Y.packDir,et=Y.meta;if(g&&Y.name!==r){let _t=join(w,r);if(await j(_t))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(Y.packDir,_t),we=_t,et={...Y.meta,name:r};}let it=await mH(we,et,D,c,m,{source:i,...a!==void 0?{version:a}:{},...G!==void 0?{target:G}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},P);ee=it.name,M=it.features,te=it.pick,Te=it.path,At=it.paths,y.success(`Updated pack "${it.name}" in .agentsmesh/packs/.`);}else {if(!S&&await ia(join(w,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await cH(w,r,D,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:K,updated_at:K,features:c,...m!==void 0&&{pick:m},...G!==void 0&&{target:G},...dre(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},P),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await ty(t,RH({name:ee,source:i,version:a,sourceKind:l,features:M,pick:te,target:G,path:Te,paths:At,as:f,originalRef:R,acceptedElevated:I})),l!=="local"&&await DE(i);}s(kH,"installAsPack");function IH(e,t,r){if(!r?.features&&!r?.pick)return {narrowed:e,discoveredFeatures:t};let n=bm(e,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:Kn(n)}}s(IH,"applyReplayInstallScope");function LH(e,t){let r=[];for(let n of e.skillNames)r.push({kind:"skill",name:n,path:t});for(let n of e.ruleSlugs)r.push({kind:"rule",name:n,path:t});for(let n of e.commandNames)r.push({kind:"command",name:n,path:t});for(let n of e.agentNames)r.push({kind:"agent",name:n,path:t});return r}s(LH,"buildInstalledList");function CH(e,t,r,n,o){let i=[];for(let a of e)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of t){let l=yt(a);o.ruleSlugs.includes(l)||i.push({kind:"rule",name:l,reason:"conflict"});}for(let a of r)o.commandNames.includes(a.name)||i.push({kind:"command",name:a.name,reason:"conflict"});for(let a of n)o.agentNames.includes(a.name)||i.push({kind:"agent",name:a.name,reason:"conflict"});return i}s(CH,"buildSkippedList");function EH(e,t){if(t.sourceKind==="local")return {canonical:e,stripped:[]};let r=[],n=e.hooks,o=e.permissions,i=e.mcp;return n!==null&&!t.acceptHooks&&(n=null,r.push("hooks")),o!==null&&!t.acceptPermissions&&(o=null,r.push("permissions")),i!==null&&!t.acceptMcp&&(i=null,r.push("mcp")),r.length===0?{canonical:e,stripped:[]}:{canonical:{...e,hooks:n,permissions:o,mcp:i},stripped:r}}s(EH,"stripUntrustedElevatedArtifacts");var gre=["hooks","permissions","mcp"];function OH(e,t){let r=new Set(t?.acceptedElevated??[]);return {acceptHooks:e.acceptHooks||r.has("hooks"),acceptPermissions:e.acceptPermissions||r.has("permissions"),acceptMcp:e.acceptMcp||r.has("mcp")}}s(OH,"resolveElevatedConsent");function wH(e,t){let r={hooks:t.acceptHooks,permissions:t.acceptPermissions,mcp:t.acceptMcp},n=gre.filter(o=>e[o]!==null&&r[o]);return n.length>0?n:void 0}s(wH,"consentedArtifactsForManifest");function bH(e,t){return t?.originalRef!==void 0&&t.originalRef!==""?t.originalRef:e.rawRef!==""?e.rawRef:void 0}s(bH,"resolveOriginalRef");function AH(e,t){if(t.length===0)return e;let r=new Set(t);return e.filter(n=>!r.has(n))}s(AH,"featuresAfterStrip");async function xH(e){let{scope:t,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=e,{config:m,context:p,parsed:u,sourceForYaml:f,version:g,pathInRepo:h,contentRoot:_,persisted:S}=e,{replay:R,prep:I,implicitPick:w,narrowed:D,discoveredFeatures:P,sourceType:K}=e,G=OH({acceptHooks:e.acceptHooks,acceptPermissions:e.acceptPermissions,acceptMcp:e.acceptMcp},R),Y=EH(D,{sourceKind:u.kind,...G});Y.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${Y.stripped.join(", ")} from untrusted ${u.kind} source.
438
+ `);}s(pre,"mergeSettings");async function yH(e,t,r,n,o,i,a=[]){await ire(r,e),await are(r,e),await lre(r,e),await cre(r,e),await pre(r,e),await mre(a,e);let l=zL(t.features,n),c=sre(t.pick,n,o),m=ore(t,i?.path),p=await ty(e),u=new Date().toISOString(),f=ma({...t,source:i?.source??t.source,...i?.version!==void 0?{version:i.version}:t.version!==void 0?{version:t.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:t.target!==void 0?{target:t.target}:{},...m,...i?.as!==void 0?{as:i.as}:t.as!==void 0?{as:t.as}:{},updated_at:u,content_hash:p});return await L(join(e,"pack.yaml"),Al(stringify(f),"pack")),f}s(yH,"mergeIntoPack");t_();ts();async function _H(e){let t=[];try{let r=await readdir(e,{withFileTypes:!0});for(let n of r)n.isFile()&&vd(n.name)&&t.push({relativePath:n.name,absolutePath:join(e,n.name)});}catch{return []}return t.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),t}s(_H,"collectPreservedRootFiles");qo();se();qo();b();rh();function gre(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(gre,"sanitize");function hre(e){try{let r=new URL(e.replace(/^git\+/,"https://").replace(/^ssh:\/\/git@/,"https://")).pathname.split("/").filter(Boolean);if(r.length===0)return "repo";let n=r[r.length-1].replace(/\.git$/i,"");return r.length>=2?`${r[r.length-2].replace(/\.git$/i,"")}-${n}`:n}catch{return "repo"}}s(hre,"gitUrlLastSegments");function SH(e,t,r){let n;if(e.kind==="local"){let l=(e.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else e.kind==="github"&&e.org&&e.repo?n=`${e.org}-${e.repo}`:e.kind==="gitlab"&&e.org&&e.repo?n=`${e.org.replace(/\//g,"-")}-${e.repo}`:e.gitRemoteUrl?n=hre(e.gitRemoteUrl):n="extend";t.featureHint?n=`${n}-${t.featureHint}`:n=`${n}-pack`;let o=gre(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(SH,"suggestExtendName");function RH(e){let{config:t,parsed:r,entryFeatures:n,nameOverride:o}=e,i=new Set(t.extends.map(a=>a.name));return o||SH(r,{featureHint:n.length===1?n[0]:void 0},i)}s(RH,"selectInstallEntryName");function kH(e){let t=e.trim();for(;t.startsWith("git+");){let c=t.lastIndexOf("#");t=(c<0?t.slice(4):t.slice(4,c)).trim();}let r=t.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=t.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=t.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=t.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=t.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(kH,"canonicalRemoteIdentity");function yre(e){return e.kind==="github"&&e.org&&e.repo?`github:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.kind==="gitlab"&&e.org&&e.repo?`gitlab:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.gitRemoteUrl?kH(e.gitRemoteUrl):null}s(yre,"parsedSourceIdentity");function IH(e,t){let r=yre(t);if(r===null)return null;for(let n of e){let o=kH(n.source);if(o!==null&&o===r)return n.name}return null}s(IH,"findExistingInstallName");function VL(e,t){if(e.length!==t.length)return false;let r=[...e].sort(),n=[...t].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(VL,"sameFeatureSet");function LH(e){let{manifest:t,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=e,a=IH(t,r);if(a===null)return null;let l=t.find(c=>c.name===a);return l.target!==o||l.as!==i||!VL(l.features,n)?null:l.name}s(LH,"pickReuseEntryName");var Rre=s(e=>!e.includes("/")&&!e.includes("\\")&&!e.includes("\0")&&e!=="."&&e!=="..","isSafeInstallName"),EH=z$1.object({name:z$1.string().min(1).refine(Rre,{message:'install name must not contain path separators, NUL, or "."/".." segments'}),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(ql).min(1),pick:Ym.optional(),target:Ir.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:cm.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional(),accepted_elevated:z$1.array(z$1.enum(["hooks","permissions","mcp"])).min(1).optional()}),kre=z$1.object({version:z$1.literal(1),installs:z$1.array(EH).default([])});function Ire(e,t){return e.source===t.source&&e.target===t.target&&e.as===t.as&&VL(e.features,t.features)}s(Ire,"sameInstallIdentity");function JL(e){return join(e,"installs.yaml")}s(JL,"manifestPath");async function Jt(e){let t=await k(JL(e));if(t===null)return [];try{return kre.parse(parse(t)).installs.map(r=>ma(r))}catch{return []}}s(Jt,"readInstallManifest");async function oy(e,t){let r=ma(t),o=(await Jt(e)).filter(i=>i.name!==r.name&&!Ire(i,r));o.push(r),await L(JL(e),Al(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(oy,"upsertInstallManifestEntry");async function OH(e,t){let r=await Jt(e),n=r.filter(o=>o.name!==t);return n.length===r.length?false:(await L(JL(e),Al(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(OH,"removeInstallManifestEntry");function wH(e){return ma(EH.parse({name:e.name,source:e.source,version:e.version,source_kind:e.sourceKind,features:e.features,pick:e.pick,target:e.target,path:e.path,paths:e.paths,as:e.as,refreshed_at:e.refreshed_at,original_ref:e.originalRef,accepted_elevated:e.acceptedElevated}))}s(wH,"buildInstallManifestEntry");b();function Cre(e){return e?{path:e,paths:void 0}:{path:void 0,paths:void 0}}s(Cre,"pathScope");function Ere(e,t){let r=new Set(t.skillNames),n=new Set(t.ruleSlugs),o=new Set(t.commandNames),i=new Set(t.agentNames);return {...e,skills:e.skills.filter(a=>r.has(a.name)),rules:e.rules.filter(a=>n.has(yt(a))),commands:e.commands.filter(a=>o.has(a.name)),agents:e.agents.filter(a=>i.has(a.name))}}s(Ere,"applySelection");async function bH(e){let{canonicalDir:t,packName:r,narrowed:n,selected:o,sourceForYaml:i,version:a,sourceKind:l,entryFeatures:c,pick:m,yamlTarget:p,pathInRepo:u,manualAs:f,renameExistingPack:g,sourceType:h,contentRoot:_,forceFreshMaterialize:S,originalRef:R,acceptedElevated:I}=e,w=join(t,"packs"),D=Ere(n,o),P=_?await _H(_):[],K=new Date().toISOString(),G=p!==void 0?Ir.parse(p):void 0,Y=S?null:await K0(w,i,{target:G,as:f,features:c}),ee=r,M=c,te=m,Te=u,At;if(Y){let we=Y.packDir,et=Y.meta;if(g&&Y.name!==r){let _t=join(w,r);if(await j(_t))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(Y.packDir,_t),we=_t,et={...Y.meta,name:r};}let it=await yH(we,et,D,c,m,{source:i,...a!==void 0?{version:a}:{},...G!==void 0?{target:G}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},P);ee=it.name,M=it.features,te=it.pick,Te=it.path,At=it.paths,y.success(`Updated pack "${it.name}" in .agentsmesh/packs/.`);}else {if(!S&&await aa(join(w,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await hH(w,r,D,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:K,updated_at:K,features:c,...m!==void 0&&{pick:m},...G!==void 0&&{target:G},...Cre(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},P),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await oy(t,wH({name:ee,source:i,version:a,sourceKind:l,features:M,pick:te,target:G,path:Te,paths:At,as:f,originalRef:R,acceptedElevated:I})),l!=="local"&&await GE(i);}s(bH,"installAsPack");function AH(e,t,r){if(!r?.features&&!r?.pick)return {narrowed:e,discoveredFeatures:t};let n=Am(e,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:Wn(n)}}s(AH,"applyReplayInstallScope");function xH(e,t){let r=[];for(let n of e.skillNames)r.push({kind:"skill",name:n,path:t});for(let n of e.ruleSlugs)r.push({kind:"rule",name:n,path:t});for(let n of e.commandNames)r.push({kind:"command",name:n,path:t});for(let n of e.agentNames)r.push({kind:"agent",name:n,path:t});return r}s(xH,"buildInstalledList");function TH(e,t,r,n,o){let i=[];for(let a of e)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of t){let l=yt(a);o.ruleSlugs.includes(l)||i.push({kind:"rule",name:l,reason:"conflict"});}for(let a of r)o.commandNames.includes(a.name)||i.push({kind:"command",name:a.name,reason:"conflict"});for(let a of n)o.agentNames.includes(a.name)||i.push({kind:"agent",name:a.name,reason:"conflict"});return i}s(TH,"buildSkippedList");function PH(e,t){if(t.sourceKind==="local")return {canonical:e,stripped:[]};let r=[],n=e.hooks,o=e.permissions,i=e.mcp;return n!==null&&!t.acceptHooks&&(n=null,r.push("hooks")),o!==null&&!t.acceptPermissions&&(o=null,r.push("permissions")),i!==null&&!t.acceptMcp&&(i=null,r.push("mcp")),r.length===0?{canonical:e,stripped:[]}:{canonical:{...e,hooks:n,permissions:o,mcp:i},stripped:r}}s(PH,"stripUntrustedElevatedArtifacts");var Ore=["hooks","permissions","mcp"];function DH(e,t){let r=new Set(t?.acceptedElevated??[]);return {acceptHooks:e.acceptHooks||r.has("hooks"),acceptPermissions:e.acceptPermissions||r.has("permissions"),acceptMcp:e.acceptMcp||r.has("mcp")}}s(DH,"resolveElevatedConsent");function NH(e,t){let r={hooks:t.acceptHooks,permissions:t.acceptPermissions,mcp:t.acceptMcp},n=Ore.filter(o=>e[o]!==null&&r[o]);return n.length>0?n:void 0}s(NH,"consentedArtifactsForManifest");function vH(e,t){return t?.originalRef!==void 0&&t.originalRef!==""?t.originalRef:e.rawRef!==""?e.rawRef:void 0}s(vH,"resolveOriginalRef");function FH(e,t){if(t.length===0)return e;let r=new Set(t);return e.filter(n=>!r.has(n))}s(FH,"featuresAfterStrip");async function MH(e){let{scope:t,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=e,{config:m,context:p,parsed:u,sourceForYaml:f,version:g,pathInRepo:h,contentRoot:_,persisted:S}=e,{replay:R,prep:I,implicitPick:w,narrowed:D,discoveredFeatures:P,sourceType:K}=e,G=DH({acceptHooks:e.acceptHooks,acceptPermissions:e.acceptPermissions,acceptMcp:e.acceptMcp},R),Y=PH(D,{sourceKind:u.kind,...G});Y.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${Y.stripped.join(", ")} from untrusted ${u.kind} source.
392
439
  These artifacts control your tool settings (shell hooks, granted permissions, MCP launch specs).
393
- To accept them explicitly, re-run with: ${Y.stripped.map(Yo=>`--accept-${Yo}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:ee,discoveredFeatures:M}=IH(Y.canonical,AH(P,Y.stripped),R);if(!VW(ee))throw new Error(w||I.scopedFeatures?"No resources match the install path or implicit selection (check pick names exist at that path).":"No supported resources found to install (skills, rules, commands, agents).");let te=await JW(ee,r,n,o),Te=await YW(ee,r,n,o),At=await XW(ee,r,n,o),we=await QW(ee,r,n,o),et={skills:te.length,rules:Te.length,commands:At.length,agents:we.length},{canonical:it}=await Mt(m,p.configDir,{},p.canonicalDir),_t=!r&&!n&&o?await qW(it,{skills:te,rules:Te,commands:At,agents:we}):{skillNames:te.map(Yo=>Yo.name),ruleSlugs:Te.map(Yo=>yt(Yo)),commandNames:At.map(Yo=>Yo.name),agentNames:we.map(Yo=>Yo.name)};rH({selected:_t,discoveredFeatures:M,preConflict:et});let di=R?.features??tH(M,_t);if(di.length===0)throw new Error("No features left to install after selection.");let Ty=ZW(R?.pick,_t)??S.pick??eH({pathInRepo:S.pathInRepo??h,implicitPick:w,preConflictCounts:et,selected:_t}),zC=await Vt(p.canonicalDir),Km=hH({manifest:zC,parsed:u,entryFeatures:di,yamlTarget:I.yamlTarget,explicitAs:c}),Wm=dH({config:m,parsed:u,entryFeatures:di,nameOverride:l||Km||""}),Hm=LH(_t,Wm),Py=CH(te,Te,At,we,_t),iV=bH(u,R),aV=wH(ee,G);if(i){if(await iH({configDir:p.configDir,config:m,entryArgs:{name:Wm,source:f,version:g,features:di,path:S.pathInRepo,pick:Ty,yamlTarget:I.yamlTarget,as:c},dryRun:n}),n)return {installed:Hm,skipped:Py}}else {if(n)return y.info(`[dry-run] Would install pack "${Wm}" to ${t==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:Hm,skipped:Py};await kH({canonicalDir:p.canonicalDir,packName:Wm,narrowed:ee,selected:_t,sourceForYaml:f,version:g,sourceKind:u.kind,entryFeatures:di,pick:Ty,yamlTarget:I.yamlTarget,pathInRepo:S.pathInRepo,manualAs:c,renameExistingPack:l===""&&Km===null,sourceType:K,contentRoot:_,forceFreshMaterialize:a,originalRef:iV,acceptedElevated:aV});}return await Tm("install",t,p.rootBase),{installed:Hm,skipped:Py}}s(xH,"executeRunInstallPoolsAndWrite");function Nm(e,t){let r=t?.input??process.stdin,n=t?.output??process.stdout;return new Promise(o=>{let i=zW.createInterface({input:r,output:n,terminal:false}),a=false;i.on("close",()=>{a||o("");}),i.question(e,l=>{a=true,i.close(),o(l);});})}s(Nm,"readLine");function PH(e,t){let r=t.resolved.length,n=r===1?"link":"links",o=[`Entity "${t.entityName}" (${t.entityKind}) has ${r} broken ${n}:`];for(let i of t.resolved)o.push(` - ${i.link.path} (${i.classification})`);o.push(""),e.write(`${o.join(`
440
+ To accept them explicitly, re-run with: ${Y.stripped.map(Yo=>`--accept-${Yo}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:ee,discoveredFeatures:M}=AH(Y.canonical,FH(P,Y.stripped),R);if(!eH(ee))throw new Error(w||I.scopedFeatures?"No resources match the install path or implicit selection (check pick names exist at that path).":"No supported resources found to install (skills, rules, commands, agents).");let te=await tH(ee,r,n,o),Te=await rH(ee,r,n,o),At=await nH(ee,r,n,o),we=await oH(ee,r,n,o),et={skills:te.length,rules:Te.length,commands:At.length,agents:we.length},{canonical:it}=await Mt(m,p.configDir,{},p.canonicalDir),_t=!r&&!n&&o?await sH(it,{skills:te,rules:Te,commands:At,agents:we}):{skillNames:te.map(Yo=>Yo.name),ruleSlugs:Te.map(Yo=>yt(Yo)),commandNames:At.map(Yo=>Yo.name),agentNames:we.map(Yo=>Yo.name)};cH({selected:_t,discoveredFeatures:M,preConflict:et});let di=R?.features??lH(M,_t);if(di.length===0)throw new Error("No features left to install after selection.");let Ny=iH(R?.pick,_t)??S.pick??aH({pathInRepo:S.pathInRepo??h,implicitPick:w,preConflictCounts:et,selected:_t}),YC=await Jt(p.canonicalDir),Wm=LH({manifest:YC,parsed:u,entryFeatures:di,yamlTarget:I.yamlTarget,explicitAs:c}),Hm=RH({config:m,parsed:u,entryFeatures:di,nameOverride:l||Wm||""}),zm=xH(_t,Hm),vy=TH(te,Te,At,we,_t),fV=vH(u,R),gV=NH(ee,G);if(i){if(await dH({configDir:p.configDir,config:m,entryArgs:{name:Hm,source:f,version:g,features:di,path:S.pathInRepo,pick:Ny,yamlTarget:I.yamlTarget,as:c},dryRun:n}),n)return {installed:zm,skipped:vy}}else {if(n)return y.info(`[dry-run] Would install pack "${Hm}" to ${t==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:zm,skipped:vy};await bH({canonicalDir:p.canonicalDir,packName:Hm,narrowed:ee,selected:_t,sourceForYaml:f,version:g,sourceKind:u.kind,entryFeatures:di,pick:Ny,yamlTarget:I.yamlTarget,pathInRepo:S.pathInRepo,manualAs:c,renameExistingPack:l===""&&Wm===null,sourceType:K,contentRoot:_,forceFreshMaterialize:a,originalRef:fV,acceptedElevated:gV});}return await Pm("install",t,p.rootBase),{installed:zm,skipped:vy}}s(MH,"executeRunInstallPoolsAndWrite");function vm(e,t){let r=t?.input??process.stdin,n=t?.output??process.stdout;return new Promise(o=>{let i=ZW.createInterface({input:r,output:n,terminal:false}),a=false;i.on("close",()=>{a||o("");}),i.question(e,l=>{a=true,i.close(),o(l);});})}s(vm,"readLine");function $H(e,t){let r=t.resolved.length,n=r===1?"link":"links",o=[`Entity "${t.entityName}" (${t.entityKind}) has ${r} broken ${n}:`];for(let i of t.resolved)o.push(` - ${i.link.path} (${i.classification})`);o.push(""),e.write(`${o.join(`
394
441
  `)}
395
- `);}s(PH,"writeBanner");async function DH(e,t,r){let n=[];for(let o of e){if(o.resolved.length===0)continue;if(t.bypass){PH(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}PH(r,o);let i=(await r.ask("Action: [i]nclude resolvable as supporting files / [l]eave with warnings / [a]bort install ")).trim().toLowerCase();if(i==="i"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"include-resolvable"});continue}if(i==="l"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}return {decisions:[],aborted:true}}return {decisions:n,aborted:false}}s(DH,"runBrokenLinkPrompt");var VL=["skills","agents","commands","rules"],JL={skills:"skill",agents:"agent",commands:"command",rules:"rule"},FH={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function vl(e){return {skills:[],agents:[],commands:[],rules:[],aborted:e}}s(vl,"emptySelection");function NH(e){return {skills:[...e.skills],agents:[...e.agents],commands:[...e.commands],rules:[...e.rules],aborted:false}}s(NH,"selectAll");function vH(e,t,r){let n=[`Found in ${t}:`];for(let o of VL){let i=r[o];if(i.length===0)continue;let a=i.length===1?JL[o]:FH[o];n.push(` - ${i.length} ${a}`);}n.push(""),e.write(`${n.join(`
442
+ `);}s($H,"writeBanner");async function jH(e,t,r){let n=[];for(let o of e){if(o.resolved.length===0)continue;if(t.bypass){$H(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}$H(r,o);let i=(await r.ask("Action: [i]nclude resolvable as supporting files / [l]eave with warnings / [a]bort install ")).trim().toLowerCase();if(i==="i"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"include-resolvable"});continue}if(i==="l"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}return {decisions:[],aborted:true}}return {decisions:n,aborted:false}}s(jH,"runBrokenLinkPrompt");var XL=["skills","agents","commands","rules"],QL={skills:"skill",agents:"agent",commands:"command",rules:"rule"},KH={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function Ml(e){return {skills:[],agents:[],commands:[],rules:[],aborted:e}}s(Ml,"emptySelection");function UH(e){return {skills:[...e.skills],agents:[...e.agents],commands:[...e.commands],rules:[...e.rules],aborted:false}}s(UH,"selectAll");function BH(e,t,r){let n=[`Found in ${t}:`];for(let o of XL){let i=r[o];if(i.length===0)continue;let a=i.length===1?QL[o]:KH[o];n.push(` - ${i.length} ${a}`);}n.push(""),e.write(`${n.join(`
396
443
  `)}
397
- `);}s(vH,"writeBanner");async function hre(e,t,r){if(r.length===0)return {selected:[],aborted:false};let n=FH[t],o=(await e.ask(`Install all ${r.length} ${n}? [y/n/c] `)).trim().toLowerCase();if(o==="y")return {selected:[...r],aborted:false};if(o==="n")return {selected:[],aborted:false};if(o!=="c")return {selected:[],aborted:true};let i=JL[t],a=[];for(let l=0;l<r.length;l++){let c=r[l],m=(await e.ask(`Install ${i} "${c}"? [y/N/a/q] `)).trim().toLowerCase();if(m==="y"){a.push(c);continue}if(!(m===""||m==="n")){if(m==="a"){for(let p=l;p<r.length;p++)a.push(r[p]);return {selected:a,aborted:false}}return m==="q"?{selected:a,aborted:false}:{selected:[],aborted:true}}}return {selected:a,aborted:false}}s(hre,"walkType");function yre(e){let t=null;for(let r of VL)for(let n of e[r]){if(t!==null)return null;t={kind:r,id:n};}return t}s(yre,"findSingleEntity");async function _re(e,t){let r=JL[t.kind],n=(await e.ask(`Install ${r} "${t.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...vl(false),[t.kind]:[t.id]}:vl(!(n===""||n==="n"))}s(_re,"runSingleEntityPrompt");async function MH(e,t,r){if(t.bypass)return NH(e);let n=e.skills.length+e.agents.length+e.commands.length+e.rules.length;if(n===0)return vl(false);if(n===1){let a=yre(e);if(a!==null)return vH(r,t.packName,e),_re(r,a)}vH(r,t.packName,e);let o=(await r.ask("Install [a]ll, [n]one, or [s]elect per type? [a/n/s] ")).trim().toLowerCase();if(o==="a")return NH(e);if(o==="n")return vl(false);if(o!=="s")return vl(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of VL){let{selected:l,aborted:c}=await hre(r,a,e[a]);if(c)return vl(true);i[a]=l;}return {...i,aborted:false}}s(MH,"runBulkPrompt");se();function Ire(e,t,r){let n=[];for(let o of Yh(e))o.destination===t&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(Ire,"buildLinkRewrites");function $H(e,t,r){e.warn(`Broken link in ${t.entityKind} "${t.entityName}": ${r.link.path} (${r.classification})`);}s($H,"warnLink");function Lre(e){let t=new Map;for(let n of e){let o=basename(n.resolvedRelative),i=t.get(o)??new Set;i.add(n.resolvedRelative),t.set(o,i);}let r=new Map;for(let[n,o]of t){if(o.size===1){let i=[...o][0];r.set(i,`references/${n}`);continue}for(let i of o){let a=i.replaceAll("/","-");r.set(i,`references/${a}`);}}return r}s(Lre,"allocateSupportingFileNames");function GH(e,t,r){return e.find(n=>n.entityKind===t&&n.entityName===r)}s(GH,"findEntity");async function Cre(e,t,r,n){let o=[...t],i=new Set(o.map(l=>l.relativePath)),a=new Set;for(let l of r){if(a.has(l.resolvedRelative))continue;a.add(l.resolvedRelative);let c=n.get(l.resolvedRelative);if(c===void 0||i.has(c))continue;i.add(c);let m=posix.join(e.replaceAll("\\","/"),l.resolvedRelative);o.push({relativePath:c,absolutePath:m,content:await readFile(m,"utf-8")});}return o}s(Cre,"buildSupportingFiles");async function Ere(e,t,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=Lre(o),a=await Cre(e,t.supportingFiles,o,i),l=[],c=new Set;for(let p of r.resolved)if(p.classification==="resolvable-outside"){if(c.has(p.link.raw))continue;let u=i.get(p.resolvedRelative);if(u===void 0)continue;c.add(p.link.raw);let f=`./${u}${p.anchor}`;l.push(...Ire(t.body,p.link.raw,f));}else $H(n,r,p);let m=xW(t.body,l);return {...t,body:m,supportingFiles:a}}s(Ere,"applySkillDecision");async function jH(e){let{contentRoot:t,aggregate:r,decisions:n,logger:o}=e;if(n.length===0)return r;let i=new Set;for(let l of n)l.entityKind==="skill"&&l.action==="include-resolvable"&&i.add(l.entityName);let a=[];for(let l of r.skills){let c=i.has(l.name)?GH(r.brokenLinks,"skill",l.name):void 0;a.push(c?await Ere(t,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=GH(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)$H(o,c,m);}return {...r,skills:a}}s(jH,"applyBrokenLinkDecisions");var vm=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(t){super(t),this.name="InstallAbortError";}};function wre(){return {ask:s(e=>Nm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(wre,"defaultAdapter");function bre(e){return {skills:e.skills.map(t=>t.name),agents:e.agents.map(t=>t.name),commands:e.commands.map(t=>t.name),rules:e.rules.map(t=>yt(t))}}s(bre,"bulkCandidatesFrom");function UH(e,t){let r=new Set(t.skills),n=new Set(t.agents),o=new Set(t.commands),i=new Set(t.rules);return {skills:e.skills.filter(a=>r.has(a.name)),agents:e.agents.filter(a=>n.has(a.name)),commands:e.commands.filter(a=>o.has(a.name)),rules:e.rules.filter(a=>i.has(yt(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(UH,"filterCanonical");function Are(e){let t=[];return e.skills.length>0&&t.push("skills"),e.rules.length>0&&t.push("rules"),e.commands.length>0&&t.push("commands"),e.agents.length>0&&t.push("agents"),t}s(Are,"discoveredFeaturesOf");async function xre(e){let t=e.adapter??wre(),r=await DH(e.aggregate.brokenLinks,{bypass:e.bypass},t);if(r.aborted)throw new vm("User aborted at broken-link prompt.");let n=[...r.decisions],o=await jH({contentRoot:e.contentRoot,aggregate:e.aggregate,decisions:n,logger:y}),i=bre(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:UH(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await MH(i,{packName:e.displayName,bypass:e.bypass},t);if(l.aborted)throw new vm("User aborted at bulk-select prompt.");let c=UH(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:Are(c)}}s(xre,"runSkillPackPromptFlow");function Tre(e){return basename(e)||"install source"}s(Tre,"displayNameForContentRoot");async function BH(e){if(!e.discovery.aggregate)return {aborted:false};try{let t=await xre({contentRoot:e.contentRoot,aggregate:e.discovery.aggregate,narrowed:e.discovery.narrowed,bypass:e.bypass,displayName:Tre(e.contentRoot)});return {aborted:!1,narrowed:t.narrowed,discoveredFeatures:t.discoveredFeatures}}catch(t){if(t instanceof vm)return y.warn(t.message),{aborted:true};throw t}}s(BH,"runPromptFlowWithAbort");async function KH(e){let{discovery:t,installReport:r,persisted:n,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,config:m,context:p,dryRun:u,force:f,useExtends:g,forceFreshMaterialize:h,explicitAs:_,nameOverride:S,acceptHooks:R,acceptPermissions:I,acceptMcp:w,scope:D,sourceArg:P,replay:K}=e,G=process.stdin.isTTY,{prep:Y,implicitPick:ee}=t,{narrowed:M,discoveredFeatures:te}=t;try{let Te=await BH({discovery:t,contentRoot:c,bypass:f||u||!G});if(Te.aborted)return {exitCode:130,data:{source:P,mode:"install",installed:[],skipped:[],dryRun:u}};if(M=Te.narrowed??M,te=Te.discoveredFeatures??te,te.length===0&&r.brokenResources.length>0){let we=r.brokenResources.map(et=>` - ${et.path}: ${et.reason}`).join(`
444
+ `);}s(BH,"writeBanner");async function wre(e,t,r){if(r.length===0)return {selected:[],aborted:false};let n=KH[t],o=(await e.ask(`Install all ${r.length} ${n}? [y/n/c] `)).trim().toLowerCase();if(o==="y")return {selected:[...r],aborted:false};if(o==="n")return {selected:[],aborted:false};if(o!=="c")return {selected:[],aborted:true};let i=QL[t],a=[];for(let l=0;l<r.length;l++){let c=r[l],m=(await e.ask(`Install ${i} "${c}"? [y/N/a/q] `)).trim().toLowerCase();if(m==="y"){a.push(c);continue}if(!(m===""||m==="n")){if(m==="a"){for(let p=l;p<r.length;p++)a.push(r[p]);return {selected:a,aborted:false}}return m==="q"?{selected:a,aborted:false}:{selected:[],aborted:true}}}return {selected:a,aborted:false}}s(wre,"walkType");function bre(e){let t=null;for(let r of XL)for(let n of e[r]){if(t!==null)return null;t={kind:r,id:n};}return t}s(bre,"findSingleEntity");async function Are(e,t){let r=QL[t.kind],n=(await e.ask(`Install ${r} "${t.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...Ml(false),[t.kind]:[t.id]}:Ml(!(n===""||n==="n"))}s(Are,"runSingleEntityPrompt");async function WH(e,t,r){if(t.bypass)return UH(e);let n=e.skills.length+e.agents.length+e.commands.length+e.rules.length;if(n===0)return Ml(false);if(n===1){let a=bre(e);if(a!==null)return BH(r,t.packName,e),Are(r,a)}BH(r,t.packName,e);let o=(await r.ask("Install [a]ll, [n]one, or [s]elect per type? [a/n/s] ")).trim().toLowerCase();if(o==="a")return UH(e);if(o==="n")return Ml(false);if(o!=="s")return Ml(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of XL){let{selected:l,aborted:c}=await wre(r,a,e[a]);if(c)return Ml(true);i[a]=l;}return {...i,aborted:false}}s(WH,"runBulkPrompt");se();function Dre(e,t,r){let n=[];for(let o of qh(e))o.destination===t&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(Dre,"buildLinkRewrites");function zH(e,t,r){e.warn(`Broken link in ${t.entityKind} "${t.entityName}": ${r.link.path} (${r.classification})`);}s(zH,"warnLink");function Nre(e){let t=new Map;for(let n of e){let o=basename(n.resolvedRelative),i=t.get(o)??new Set;i.add(n.resolvedRelative),t.set(o,i);}let r=new Map;for(let[n,o]of t){if(o.size===1){let i=[...o][0];r.set(i,`references/${n}`);continue}for(let i of o){let a=i.replaceAll("/","-");r.set(i,`references/${a}`);}}return r}s(Nre,"allocateSupportingFileNames");function HH(e,t,r){return e.find(n=>n.entityKind===t&&n.entityName===r)}s(HH,"findEntity");async function vre(e,t,r,n){let o=[...t],i=new Set(o.map(l=>l.relativePath)),a=new Set;for(let l of r){if(a.has(l.resolvedRelative))continue;a.add(l.resolvedRelative);let c=n.get(l.resolvedRelative);if(c===void 0||i.has(c))continue;i.add(c);let m=posix.join(e.replaceAll("\\","/"),l.resolvedRelative);o.push({relativePath:c,absolutePath:m,content:await readFile(m,"utf-8")});}return o}s(vre,"buildSupportingFiles");async function Fre(e,t,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=Nre(o),a=await vre(e,t.supportingFiles,o,i),l=[],c=new Set;for(let p of r.resolved)if(p.classification==="resolvable-outside"){if(c.has(p.link.raw))continue;let u=i.get(p.resolvedRelative);if(u===void 0)continue;c.add(p.link.raw);let f=`./${u}${p.anchor}`;l.push(...Dre(t.body,p.link.raw,f));}else zH(n,r,p);let m=MW(t.body,l);return {...t,body:m,supportingFiles:a}}s(Fre,"applySkillDecision");async function VH(e){let{contentRoot:t,aggregate:r,decisions:n,logger:o}=e;if(n.length===0)return r;let i=new Set;for(let l of n)l.entityKind==="skill"&&l.action==="include-resolvable"&&i.add(l.entityName);let a=[];for(let l of r.skills){let c=i.has(l.name)?HH(r.brokenLinks,"skill",l.name):void 0;a.push(c?await Fre(t,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=HH(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)zH(o,c,m);}return {...r,skills:a}}s(VH,"applyBrokenLinkDecisions");var Fm=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(t){super(t),this.name="InstallAbortError";}};function Gre(){return {ask:s(e=>vm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(Gre,"defaultAdapter");function $re(e){return {skills:e.skills.map(t=>t.name),agents:e.agents.map(t=>t.name),commands:e.commands.map(t=>t.name),rules:e.rules.map(t=>yt(t))}}s($re,"bulkCandidatesFrom");function JH(e,t){let r=new Set(t.skills),n=new Set(t.agents),o=new Set(t.commands),i=new Set(t.rules);return {skills:e.skills.filter(a=>r.has(a.name)),agents:e.agents.filter(a=>n.has(a.name)),commands:e.commands.filter(a=>o.has(a.name)),rules:e.rules.filter(a=>i.has(yt(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(JH,"filterCanonical");function jre(e){let t=[];return e.skills.length>0&&t.push("skills"),e.rules.length>0&&t.push("rules"),e.commands.length>0&&t.push("commands"),e.agents.length>0&&t.push("agents"),t}s(jre,"discoveredFeaturesOf");async function Ure(e){let t=e.adapter??Gre(),r=await jH(e.aggregate.brokenLinks,{bypass:e.bypass},t);if(r.aborted)throw new Fm("User aborted at broken-link prompt.");let n=[...r.decisions],o=await VH({contentRoot:e.contentRoot,aggregate:e.aggregate,decisions:n,logger:y}),i=$re(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:JH(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await WH(i,{packName:e.displayName,bypass:e.bypass},t);if(l.aborted)throw new Fm("User aborted at bulk-select prompt.");let c=JH(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:jre(c)}}s(Ure,"runSkillPackPromptFlow");function Bre(e){return basename(e)||"install source"}s(Bre,"displayNameForContentRoot");async function YH(e){if(!e.discovery.aggregate)return {aborted:false};try{let t=await Ure({contentRoot:e.contentRoot,aggregate:e.discovery.aggregate,narrowed:e.discovery.narrowed,bypass:e.bypass,displayName:Bre(e.contentRoot)});return {aborted:!1,narrowed:t.narrowed,discoveredFeatures:t.discoveredFeatures}}catch(t){if(t instanceof Fm)return y.warn(t.message),{aborted:true};throw t}}s(YH,"runPromptFlowWithAbort");async function XH(e){let{discovery:t,installReport:r,persisted:n,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,config:m,context:p,dryRun:u,force:f,useExtends:g,forceFreshMaterialize:h,explicitAs:_,nameOverride:S,acceptHooks:R,acceptPermissions:I,acceptMcp:w,scope:D,sourceArg:P,replay:K}=e,G=process.stdin.isTTY,{prep:Y,implicitPick:ee}=t,{narrowed:M,discoveredFeatures:te}=t;try{let Te=await YH({discovery:t,contentRoot:c,bypass:f||u||!G});if(Te.aborted)return {exitCode:130,data:{source:P,mode:"install",installed:[],skipped:[],dryRun:u}};if(M=Te.narrowed??M,te=Te.discoveredFeatures??te,te.length===0&&r.brokenResources.length>0){let we=r.brokenResources.map(et=>` - ${et.path}: ${et.reason}`).join(`
398
445
  `);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
399
446
  ${we}
400
- Fix the frontmatter in the source files (most often: unquoted scalars containing colons or square brackets), or narrow --path to a subdirectory that excludes them.`)}let At=await xH({scope:D,force:f,dryRun:u,tty:G,useExtends:g,forceFreshMaterialize:h,nameOverride:S,explicitAs:_,acceptHooks:R,acceptPermissions:I,acceptMcp:w,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:K,prep:Y,implicitPick:ee,narrowed:M,discoveredFeatures:te,sourceType:t.layout?GW(t.layout):void 0});return {exitCode:0,data:{source:P,mode:"install",installed:At.installed,skipped:At.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{Y.cleanup&&await Y.cleanup();}}s(KH,"runSinglePackInstall");async function WH(e,t,r){let n=[],o=[],i=0;for(let a of e)try{let l=await t(a);n.push(...l.installed),o.push(...l.skipped),i+=1;}catch(l){let c=l instanceof Error?l.message:String(l);r.subPackFailures.push({name:a.name,path:a.path??".",error:c});}return {exitCode:i>0?0:1,installed:n,skipped:o}}s(WH,"runInstallMarketplace");async function HH(e){let{pickerResult:t,installReport:r,sourceArg:n,projectRoot:o,dryRun:i,force:a,useExtends:l,nameOverride:c,replay:m,recurseInstall:p}=e;if(t.isMarketplace&&t.targets.length>0){let u=await WH(t.targets,async f=>(await p({force:!0,"dry-run":i,path:f.path??"",as:f.as??"",target:f.target??"",name:f.name,extends:l},[n],o,{})).data,r);return {exitCode:u.exitCode,data:{source:n,mode:"install",installed:u.installed,skipped:u.skipped,dryRun:i,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{},...r.subPackFailures.length>0?{subPackFailures:r.subPackFailures}:{}}}}if(!t.isMarketplace&&t.targets.length===1){let u=t.targets[0];return p({force:a,"dry-run":i,path:u.path??"",as:u.as??"",target:u.target??"",name:c,extends:l},[n],o,m??{})}return null}s(HH,"routePickerResult");tt();b();se();async function Dre(e){let t=await Vt(e.canonicalDir);if(t.length===0){y.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of t){let o=join(e.canonicalDir,"packs",n.name);await j(o)||r.push(n);}if(r.length===0){y.info("All recorded packs are already installed.");return}for(let n of r)await e.reinstall(n);y.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}s(Dre,"syncInstalledPacks");async function zH(e){return e.sync?(await Dre({canonicalDir:e.canonicalDir,reinstall:e.reinstall}),true):false}s(zH,"maybeRunInstallSync");async function VH(e){let{projectRoot:t,sync:r,dryRun:n,force:o,scope:i,recurseInstall:a}=e;if(!r)return;let{context:l}=await ye(t,i),c=[],m=[];if(await zH({sync:r,canonicalDir:l.canonicalDir,reinstall:s(async u=>{let f=u.paths&&u.paths.length>0?u.paths:[u.path];for(let g of f){let h=await a({...o?{force:true}:{},...n?{"dry-run":true}:{},...i==="global"?{global:true}:{},name:u.name,...u.target?{target:u.target}:{},...g?{path:g}:{},...u.as?{as:u.as}:{}},[u.source],t,{features:u.features,pick:u.pick,...u.original_ref!==void 0?{originalRef:u.original_ref}:{},...u.accepted_elevated!==void 0?{acceptedElevated:u.accepted_elevated}:{}});c.push(...h.data.installed),m.push(...h.data.skipped);}},"reinstall")}))return {exitCode:0,data:{source:"",mode:"sync",installed:c,skipped:m,dryRun:n}}}s(VH,"handleSync");function JH(){return {brokenResources:[],subPackFailures:[]}}s(JH,"createInstallReport");function Fre(e,t){if(!e)return;let r=normalize(e).replace(/\\/g,"/");if(r===".."||r.startsWith("../"))throw new Error(`Install --path "${t}" escapes the source root. Path must stay within the source.`)}s(Fre,"assertPathStaysInRepo");async function YH(e){let t=await VH(e);if(t)return t;let{projectRoot:r,replay:n,dryRun:o,force:i,useExtends:a,all:l,forceFreshMaterialize:c,explicitPath:m,explicitTarget:p,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:_,scope:S,sourceArg:R}=e;if(!R)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let I=process.stdin.isTTY;if(!I&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:w,context:D}=await ye(r,S);await ze(w,r);let P=await xL(R,D.configDir,m);if(P.kind!=="local"&&!await HK())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:K,sourceForYaml:G,version:Y}=await VK(P,R),ee=P.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");Fre(ee,P.pathInRepo);let M=ee?join(K,ee):K;if(!await j(M))throw new Error(`Install path does not exist: ${M}`);let te=await HW({as:u,contentRoot:M,pathInRepo:ee}),Te=JH(),At={onParseError:s((et,it)=>{Te.brokenResources.push({path:it,kind:"frontmatter",reason:et.message});},"onParseError")},we=await $W({resolvedPath:K,contentRoot:M,pathInRepo:ee,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:At});if(we.layout&&!u&&!p&&!m){let et=KW({layout:we.layout,sourceName:f||(P.org&&P.repo?`${P.org}-${P.repo}`:"source"),sourceForYaml:G,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:I}),it=await HH({pickerResult:et,installReport:Te,sourceArg:R,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:e.recurseInstall});if(it!==null)return it}return KH({discovery:we,installReport:Te,persisted:te,parsed:P,sourceForYaml:G,version:Y,pathInRepo:ee,contentRoot:M,config:w,context:D,dryRun:o,force:i,useExtends:a,forceFreshMaterialize:c,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:_,scope:S,sourceArg:R,replay:n})}s(YH,"runInstallLocked");async function Fl(e,t,r,n){let{sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:_,acceptMcp:S}=WK(e),R=e.global===true?"global":"project",I=t[0]?.trim(),w;if(n===void 0){let{context:D}=await ye(r,R);w=await Om(D.canonicalDir);}try{return await YH({args:t,projectRoot:r,replay:n,sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:_,acceptMcp:S,scope:R,sourceArg:I,recurseInstall:Fl})}finally{await w?.();}}s(Fl,"runInstall");async function XH(e,t,r){return Fl(e,t,r)}s(XH,"runInstall");se();function QH(e){let{data:t}=e;if(!(t.mode==="sync"&&t.installed.length===0&&t.skipped.length===0)){if(t.installed.length>0&&!t.dryRun){let n=[...new Set(t.installed.map(o=>o.kind))].map(o=>{let i=t.installed.filter(a=>a.kind===o).length;return `${i} ${o}${i>1?"s":""}`}).join(", ");y.success(`Installed ${n}.`);}if(t.skipped.length>0)for(let r of t.skipped)y.warn(`Skipped ${r.kind} "${r.name}": ${r.reason}`);if(t.brokenResources&&t.brokenResources.length>0){let r=t.brokenResources.length;y.warn(`Skipped ${r} file${r>1?"s":""} with invalid frontmatter; see --json for details.`);}if(t.subPackFailures&&t.subPackFailures.length>0)for(let r of t.subPackFailures)y.warn(`Sub-pack "${r.name}" (${r.path}) failed: ${r.error}`);}}s(QH,"renderInstall");tt();sn();se();function qH(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s(qH,"detectDuplicates");function ry(e,t,r,n){let o=[];r.keepGenerated&&o.push(`--keep-generated: target trees will not be re-rendered; generated files derived from "${e}" may remain stale until the next generate.`);let i=r.keepPack||t===null?null:join(r.packsDir,e);return {name:e,packDir:i,manifestEntry:t,extendsEntry:n.get(e)??null,removeGenerated:!r.keepGenerated,warnings:o}}s(ry,"buildPlan");function ZH(e){if(!e.all&&e.names.length===0)throw new Error("uninstall: must provide at least one name or pass --all.");let t=new Map;for(let a of e.extends)t.has(a.name)||t.set(a.name,a);let r=new Map;for(let a of e.installs)r.set(a.name,a);if(e.all){let a=e.installs.map(m=>m.name),l=qH(a);if(l.length>0)throw new Error(`uninstall --all: installs.yaml has duplicate names: ${l.join(", ")}. Manifest is corrupt; remove the duplicates before retrying.`);let c=e.installs.map(m=>ry(m.name,m,e,t));for(let m of e.extends)r.has(m.name)||c.push(ry(m.name,null,e,t));return {removals:c,skipped:[]}}let n=qH(e.names);if(n.length>0)throw new Error(`uninstall: duplicate names requested: ${n.join(", ")}.`);let o=[],i=[];for(let a of e.names){let l=r.get(a);if(l!==void 0){o.push(ry(a,l,e,t));continue}if(t.has(a)){o.push(ry(a,null,e,t));continue}i.push(a);}return {removals:o,skipped:i}}s(ZH,"planUninstall");b();b();lm();async function ez(e,t){let r=join(e,_r);if(await j(r))return null;let n=await ia(e);if(n===null)throw new Error(`Cannot migrate legacy pack at ${e}: pack.yaml is missing or invalid; cannot recover install provenance.`);let o=await Zh(e),i={name:n.name,source:n.source,installed_at:n.installed_at,extends_id:null,source_type:null,files:o};return t.dryRun!==true&&await L(r,`${JSON.stringify(i,null,2)}
401
- `),t.warn(`Legacy pack "${n.name}" detected; generated baseline install manifest from current contents. Local modifications since install cannot be detected.`),{manifest:i,manifestPath:r}}s(ez,"migrateLegacyManifest");b();var jre=["pack.yaml",_r];function Ure(e,t){return relative(e,t).replaceAll("\\","/")}s(Ure,"toForwardSlashRelative");async function ny(e,t){let r=await gi(e),n=new Map;for(let i of r){let a=Ure(e,i);jre.includes(a)||n.set(a,i);}let o=[];for(let[i,a]of Object.entries(t)){let l=n.get(i);if(l===void 0){o.push({relativePath:i,status:"deleted"});continue}let c=await oh(l);if(c===null){o.push({relativePath:i,status:"deleted"});continue}`sha256:${c}`!==a&&o.push({relativePath:i,status:"modified"});}for(let i of n.keys())i in t||o.push({relativePath:i,status:"added"});return o.sort((i,a)=>i.relativePath<a.relativePath?-1:i.relativePath>a.relativePath?1:0),o}s(ny,"detectModifiedFiles");function tz(e,t){let r=t.modifications.length,n=r===1?"file":"files",o=[`Pack "${t.packName}" has ${r} locally modified ${n}:`];for(let i of t.modifications)o.push(` - ${i.relativePath} (${i.status})`);o.push(""),e.write(`${o.join(`
447
+ Fix the frontmatter in the source files (most often: unquoted scalars containing colons or square brackets), or narrow --path to a subdirectory that excludes them.`)}let At=await MH({scope:D,force:f,dryRun:u,tty:G,useExtends:g,forceFreshMaterialize:h,nameOverride:S,explicitAs:_,acceptHooks:R,acceptPermissions:I,acceptMcp:w,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:K,prep:Y,implicitPick:ee,narrowed:M,discoveredFeatures:te,sourceType:t.layout?HW(t.layout):void 0});return {exitCode:0,data:{source:P,mode:"install",installed:At.installed,skipped:At.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{Y.cleanup&&await Y.cleanup();}}s(XH,"runSinglePackInstall");async function QH(e,t,r){let n=[],o=[],i=0;for(let a of e)try{let l=await t(a);n.push(...l.installed),o.push(...l.skipped),i+=1;}catch(l){let c=l instanceof Error?l.message:String(l);r.subPackFailures.push({name:a.name,path:a.path??".",error:c});}return {exitCode:i>0?0:1,installed:n,skipped:o}}s(QH,"runInstallMarketplace");async function qH(e){let{pickerResult:t,installReport:r,sourceArg:n,projectRoot:o,dryRun:i,force:a,useExtends:l,nameOverride:c,replay:m,recurseInstall:p}=e;if(t.isMarketplace&&t.targets.length>0){let u=await QH(t.targets,async f=>(await p({force:!0,"dry-run":i,path:f.path??"",as:f.as??"",target:f.target??"",name:f.name,extends:l},[n],o,{})).data,r);return {exitCode:u.exitCode,data:{source:n,mode:"install",installed:u.installed,skipped:u.skipped,dryRun:i,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{},...r.subPackFailures.length>0?{subPackFailures:r.subPackFailures}:{}}}}if(!t.isMarketplace&&t.targets.length===1){let u=t.targets[0];return p({force:a,"dry-run":i,path:u.path??"",as:u.as??"",target:u.target??"",name:c,extends:l},[n],o,m??{})}return null}s(qH,"routePickerResult");tt();b();se();async function Wre(e){let t=await Jt(e.canonicalDir);if(t.length===0){y.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of t){let o=join(e.canonicalDir,"packs",n.name);await j(o)||r.push(n);}if(r.length===0){y.info("All recorded packs are already installed.");return}for(let n of r)await e.reinstall(n);y.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}s(Wre,"syncInstalledPacks");async function ZH(e){return e.sync?(await Wre({canonicalDir:e.canonicalDir,reinstall:e.reinstall}),true):false}s(ZH,"maybeRunInstallSync");async function ez(e){let{projectRoot:t,sync:r,dryRun:n,force:o,scope:i,recurseInstall:a}=e;if(!r)return;let{context:l}=await ye(t,i),c=[],m=[];if(await ZH({sync:r,canonicalDir:l.canonicalDir,reinstall:s(async u=>{let f=u.paths&&u.paths.length>0?u.paths:[u.path];for(let g of f){let h=await a({...o?{force:true}:{},...n?{"dry-run":true}:{},...i==="global"?{global:true}:{},name:u.name,...u.target?{target:u.target}:{},...g?{path:g}:{},...u.as?{as:u.as}:{}},[u.source],t,{features:u.features,pick:u.pick,...u.original_ref!==void 0?{originalRef:u.original_ref}:{},...u.accepted_elevated!==void 0?{acceptedElevated:u.accepted_elevated}:{}});c.push(...h.data.installed),m.push(...h.data.skipped);}},"reinstall")}))return {exitCode:0,data:{source:"",mode:"sync",installed:c,skipped:m,dryRun:n}}}s(ez,"handleSync");function tz(){return {brokenResources:[],subPackFailures:[]}}s(tz,"createInstallReport");function Vre(e,t){if(!e)return;let r=normalize(e).replace(/\\/g,"/");if(r===".."||r.startsWith("../"))throw new Error(`Install --path "${t}" escapes the source root. Path must stay within the source.`)}s(Vre,"assertPathStaysInRepo");async function rz(e){let t=await ez(e);if(t)return t;let{projectRoot:r,replay:n,dryRun:o,force:i,useExtends:a,all:l,forceFreshMaterialize:c,explicitPath:m,explicitTarget:p,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:_,scope:S,sourceArg:R}=e;if(!R)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let I=process.stdin.isTTY;if(!I&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:w,context:D}=await ye(r,S);await ze(w,r);let P=await PL(R,D.configDir,m);if(P.kind!=="local"&&!await qK())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:K,sourceForYaml:G,version:Y}=await eW(P,R),ee=P.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");Vre(ee,P.pathInRepo);let M=ee?join(K,ee):K;if(!await j(M))throw new Error(`Install path does not exist: ${M}`);let te=await qW({as:u,contentRoot:M,pathInRepo:ee}),Te=tz(),At={onParseError:s((et,it)=>{Te.brokenResources.push({path:it,kind:"frontmatter",reason:et.message});},"onParseError")},we=await zW({resolvedPath:K,contentRoot:M,pathInRepo:ee,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:At});if(we.layout&&!u&&!p&&!m){let et=XW({layout:we.layout,sourceName:f||(P.org&&P.repo?`${P.org}-${P.repo}`:"source"),sourceForYaml:G,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:I}),it=await qH({pickerResult:et,installReport:Te,sourceArg:R,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:e.recurseInstall});if(it!==null)return it}return XH({discovery:we,installReport:Te,persisted:te,parsed:P,sourceForYaml:G,version:Y,pathInRepo:ee,contentRoot:M,config:w,context:D,dryRun:o,force:i,useExtends:a,forceFreshMaterialize:c,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:_,scope:S,sourceArg:R,replay:n})}s(rz,"runInstallLocked");async function Gl(e,t,r,n){let{sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:_,acceptMcp:S}=QK(e),R=e.global===true?"global":"project",I=t[0]?.trim(),w;if(n===void 0){let{context:D}=await ye(r,R);w=await wm(D.canonicalDir);}try{return await rz({args:t,projectRoot:r,replay:n,sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:_,acceptMcp:S,scope:R,sourceArg:I,recurseInstall:Gl})}finally{await w?.();}}s(Gl,"runInstall");async function nz(e,t,r){return Gl(e,t,r)}s(nz,"runInstall");se();function oz(e){let{data:t}=e;if(!(t.mode==="sync"&&t.installed.length===0&&t.skipped.length===0)){if(t.installed.length>0&&!t.dryRun){let n=[...new Set(t.installed.map(o=>o.kind))].map(o=>{let i=t.installed.filter(a=>a.kind===o).length;return `${i} ${o}${i>1?"s":""}`}).join(", ");y.success(`Installed ${n}.`);}if(t.skipped.length>0)for(let r of t.skipped)y.warn(`Skipped ${r.kind} "${r.name}": ${r.reason}`);if(t.brokenResources&&t.brokenResources.length>0){let r=t.brokenResources.length;y.warn(`Skipped ${r} file${r>1?"s":""} with invalid frontmatter; see --json for details.`);}if(t.subPackFailures&&t.subPackFailures.length>0)for(let r of t.subPackFailures)y.warn(`Sub-pack "${r.name}" (${r.path}) failed: ${r.error}`);}}s(oz,"renderInstall");tt();sn();se();function sz(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s(sz,"detectDuplicates");function sy(e,t,r,n){let o=[];r.keepGenerated&&o.push(`--keep-generated: target trees will not be re-rendered; generated files derived from "${e}" may remain stale until the next generate.`);let i=r.keepPack||t===null?null:join(r.packsDir,e);return {name:e,packDir:i,manifestEntry:t,extendsEntry:n.get(e)??null,removeGenerated:!r.keepGenerated,warnings:o}}s(sy,"buildPlan");function iz(e){if(!e.all&&e.names.length===0)throw new Error("uninstall: must provide at least one name or pass --all.");let t=new Map;for(let a of e.extends)t.has(a.name)||t.set(a.name,a);let r=new Map;for(let a of e.installs)r.set(a.name,a);if(e.all){let a=e.installs.map(m=>m.name),l=sz(a);if(l.length>0)throw new Error(`uninstall --all: installs.yaml has duplicate names: ${l.join(", ")}. Manifest is corrupt; remove the duplicates before retrying.`);let c=e.installs.map(m=>sy(m.name,m,e,t));for(let m of e.extends)r.has(m.name)||c.push(sy(m.name,null,e,t));return {removals:c,skipped:[]}}let n=sz(e.names);if(n.length>0)throw new Error(`uninstall: duplicate names requested: ${n.join(", ")}.`);let o=[],i=[];for(let a of e.names){let l=r.get(a);if(l!==void 0){o.push(sy(a,l,e,t));continue}if(t.has(a)){o.push(sy(a,null,e,t));continue}i.push(a);}return {removals:o,skipped:i}}s(iz,"planUninstall");b();b();mm();async function az(e,t){let r=join(e,Sr);if(await j(r))return null;let n=await aa(e);if(n===null)throw new Error(`Cannot migrate legacy pack at ${e}: pack.yaml is missing or invalid; cannot recover install provenance.`);let o=await ry(e),i={name:n.name,source:n.source,installed_at:n.installed_at,extends_id:null,source_type:null,files:o};return t.dryRun!==true&&await L(r,`${JSON.stringify(i,null,2)}
448
+ `),t.warn(`Legacy pack "${n.name}" detected; generated baseline install manifest from current contents. Local modifications since install cannot be detected.`),{manifest:i,manifestPath:r}}s(az,"migrateLegacyManifest");b();var Qre=["pack.yaml",Sr];function qre(e,t){return relative(e,t).replaceAll("\\","/")}s(qre,"toForwardSlashRelative");async function iy(e,t){let r=await U(e),n=new Map;for(let i of r){let a=qre(e,i);Qre.includes(a)||n.set(a,i);}let o=[];for(let[i,a]of Object.entries(t)){let l=n.get(i);if(l===void 0){o.push({relativePath:i,status:"deleted"});continue}let c=await ah(l);if(c===null){o.push({relativePath:i,status:"deleted"});continue}`sha256:${c}`!==a&&o.push({relativePath:i,status:"modified"});}for(let i of n.keys())i in t||o.push({relativePath:i,status:"added"});return o.sort((i,a)=>i.relativePath<a.relativePath?-1:i.relativePath>a.relativePath?1:0),o}s(iy,"detectModifiedFiles");function lz(e,t){let r=t.modifications.length,n=r===1?"file":"files",o=[`Pack "${t.packName}" has ${r} locally modified ${n}:`];for(let i of t.modifications)o.push(` - ${i.relativePath} (${i.status})`);o.push(""),e.write(`${o.join(`
402
449
  `)}
403
- `);}s(tz,"writeBanner");async function rz(e,t,r){if(e.modifications.length===0)return {action:"proceed"};if(t.bypass)return tz(r,e),{action:"delete-anyway"};tz(r,e);let n=(await r.ask("Action: [d]elete anyway / [k]eep modified files (uninstall the rest) / [a]bort ")).trim().toLowerCase();return n==="d"?{action:"delete-anyway"}:n==="k"?{action:"keep-modified"}:{action:"abort"}}s(rz,"runModifiedFilesPrompt");async function Bre(e){let t=await k(join(e,_r));if(t===null)return null;try{return JSON.parse(t).files??{}}catch{return null}}s(Bre,"readManifestFiles");async function Kre(e,t,r){if(e.manifestEntry===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:false};let n=join(t,e.name);if(!await j(n))return r.warn(`Pack "${e.name}" directory missing at ${n}; only manifest entries will be removed.`),{plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:true};let o=await ez(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await Bre(n);if(a===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await ny(n,a);if(r.keepPack||l.length===0)return {plan:e,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await rz({packName:e.name,modifications:l},{bypass:r.bypassPrompts},r.adapter);return c.action==="abort"?"abort":{plan:e,modifications:l,action:c.action,legacyMigrated:i,packDirMissing:false}}s(Kre,"decideOne");async function oz(e,t,r){let n=[];for(let o of e){let i=await Kre(o,t,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(oz,"gatherUninstallDecisions");b();b();async function sz(e,t,r){if(!t.extends.some(c=>c.name===r))return false;let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=Array.isArray(o.extends)?o.extends:[],a=i.filter(c=>typeof c!="object"||c===null?true:c.name!==r);if(a.length===i.length)return false;o.extends=a;let l=stringify(o,{indent:2,lineWidth:0});return await L(e,l.endsWith(`
450
+ `);}s(lz,"writeBanner");async function cz(e,t,r){if(e.modifications.length===0)return {action:"proceed"};if(t.bypass)return lz(r,e),{action:"delete-anyway"};lz(r,e);let n=(await r.ask("Action: [d]elete anyway / [k]eep modified files (uninstall the rest) / [a]bort ")).trim().toLowerCase();return n==="d"?{action:"delete-anyway"}:n==="k"?{action:"keep-modified"}:{action:"abort"}}s(cz,"runModifiedFilesPrompt");async function Zre(e){let t=await k(join(e,Sr));if(t===null)return null;try{return JSON.parse(t).files??{}}catch{return null}}s(Zre,"readManifestFiles");async function ene(e,t,r){if(e.manifestEntry===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:false};let n=join(t,e.name);if(!await j(n))return r.warn(`Pack "${e.name}" directory missing at ${n}; only manifest entries will be removed.`),{plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:true};let o=await az(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await Zre(n);if(a===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await iy(n,a);if(r.keepPack||l.length===0)return {plan:e,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await cz({packName:e.name,modifications:l},{bypass:r.bypassPrompts},r.adapter);return c.action==="abort"?"abort":{plan:e,modifications:l,action:c.action,legacyMigrated:i,packDirMissing:false}}s(ene,"decideOne");async function pz(e,t,r){let n=[];for(let o of e){let i=await ene(o,t,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(pz,"gatherUninstallDecisions");b();b();async function uz(e,t,r){if(!t.extends.some(c=>c.name===r))return false;let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=Array.isArray(o.extends)?o.extends:[],a=i.filter(c=>typeof c!="object"||c===null?true:c.name!==r);if(a.length===i.length)return false;o.extends=a;let l=stringify(o,{indent:2,lineWidth:0});return await L(e,l.endsWith(`
404
451
  `)?l:`${l}
405
- `),true}s(sz,"removeAgentsmeshExtendByName");async function iz(e){let{plan:t,canonicalDir:r,configPath:n,config:o}=e,i=false;t.packDir!==null&&await j(t.packDir)&&(await rm$1(t.packDir,{recursive:true}),i=true);let a=await SH(r,t.name),l=false;t.extendsEntry!==null&&(l=await sz(n,o,t.name));let c=t.packDir!==null,m=t.manifestEntry!==null,p=t.extendsEntry!==null,u=c&&!i||m&&!a||p&&!l;return {name:t.name,packDirRemoved:i,manifestEntryRemoved:a,extendsEntryRemoved:l,partial:u}}s(iz,"applyUninstall");function Yre(e,t){return relative(e,t).replaceAll("\\","/")}s(Yre,"toForwardSlashRel");function YL(e){return e.map(t=>({name:t,reason:"not found in installs.yaml"}))}s(YL,"buildSkipped");function az(e,t,r){return e.plan.manifestEntry===null?null:Yre(t,join(r,e.plan.name))}s(az,"packPathFor");function lz(e,t,r){return e.map(n=>({name:n.plan.name,pack_path:az(n,t,r),manifest_entry_removed:false,extends_entry_removed:false,generated_files_removed:0,modified_files_kept:n.modifications.map(o=>({relativePath:o.relativePath,status:o.status})),legacy_migrated:n.legacyMigrated,partial:n.action==="keep-modified"||n.plan.packDir===null}))}s(lz,"previewEntries");function cz(e,t,r,n){let o=e.action==="keep-modified"||!t.packDirRemoved;return {name:t.name,pack_path:az(e,r,n),manifest_entry_removed:t.manifestEntryRemoved,extends_entry_removed:t.extendsEntryRemoved,generated_files_removed:0,modified_files_kept:o?e.modifications.map(i=>({relativePath:i.relativePath,status:i.status})):[],legacy_migrated:e.legacyMigrated,partial:t.partial}}s(cz,"appliedEntry");function Xre(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(Xre,"parseNames");function Qre(){return {ask:s(e=>Nm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(Qre,"defaultAdapter");async function oy(e,t,r,n={}){let o=e.global===true?"global":"project",i=e.all===true,a=e.force===true,l=e["dry-run"]===true,c=e["keep-pack"]===true,m=e["keep-generated"]===true,p=n.assumeTty===true||process.stdin.isTTY,u=Xre(t),f=e.json===true;function g(R){return f||y.error(R),{exitCode:1,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}}}if(s(g,"validationFailure"),!i&&u.length===0)return g("Missing install name. Usage: agentsmesh uninstall <name>[,<name>...] [--all]");if(!p&&!a&&!l)return g("Non-interactive terminal: use --force or --dry-run for agentsmesh uninstall.");let{config:h,context:_}=await ye(r,o);await ze(h,r);let S=await Om(_.canonicalDir);try{let R=await Vt(_.canonicalDir),I=join(_.canonicalDir,"packs"),w=ZH({names:u,all:i,keepPack:c,keepGenerated:m,installs:R,extends:h.extends,packsDir:I}),{decisions:D,aborted:P}=await oz(w.removals,I,{adapter:n.promptAdapter??Qre(),warn:s(ee=>y.warn(ee),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(P)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let ee of w.removals)for(let M of ee.warnings)y.warn(M);if(l){for(let ee of D)y.info(`[dry-run] Would uninstall pack "${ee.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:lz(D,_.rootBase,I),skipped:YL(w.skipped),failed:[],dryRun:!0}}}let K=join(_.configDir,"agentsmesh.yaml"),G=[],Y=[];for(let ee of D){let M=ee.action==="keep-modified"?{...ee.plan,packDir:null}:ee.plan;try{let te=await iz({plan:M,canonicalDir:_.canonicalDir,configPath:K,config:h});G.push(cz(ee,te,_.rootBase,I));}catch(te){let Te=te instanceof Error?te.message:String(te);Y.push({name:ee.plan.name,reason:Te}),f||y.error(`Failed to uninstall "${ee.plan.name}": ${Te}`);}}return !m&&G.length>0?await Tm("uninstall",o,_.rootBase):m&&G.length>0&&y.warn("--keep-generated: target files derived from the removed pack(s) may be stale until the next generate."),{exitCode:Y.length>0?1:0,data:{scope:o,mode:"uninstall",removed:G,skipped:YL(w.skipped),failed:Y,dryRun:!1}}}finally{await S();}}s(oy,"runUninstall");async function pz(e,t,r){return oy(e,t,r)}s(pz,"runUninstall");se();function uz(e){let{data:t}=e;if(t.dryRun){if(t.removed.length===0){y.info("[dry-run] No installs matched.");return}y.info(`[dry-run] Would uninstall ${t.removed.length} pack(s):`);for(let r of t.removed){let n=r.pack_path===null?"extends-only":r.pack_path;y.info(` - ${r.name} (${n})`);}return}if(t.removed.length>0){let r=t.removed.map(n=>`"${n.name}"`).join(", ");y.success(`Uninstalled ${t.removed.length} pack(s): ${r}.`);}for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}": ${r.reason}`);}s(uz,"renderUninstall");tt();sn();se();function dz(e){let t=e.json===true;return {dryRun:e["dry-run"]===true,force:e.force===true||t,global:e.global===true,json:t,verbose:e.verbose===true}}s(dz,"readRefreshFlags");function fz(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(fz,"parseRefreshNames");b();function qre(e){return e.modifications.length>0?"needs-consent":e.oldSha===e.newSha?"unchanged":"clean-update"}s(qre,"classifyRefreshPlan");async function hz(e,t,r){let n=join(t,e.name),o=e.version??null,i=join(n,_r),a=await k(i);if(a===null)return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest missing at ${i}`}};let l;try{l=JSON.parse(a).files??{};}catch{return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest is corrupt at ${i}`}}}let c=[];await j(n)&&(c=await ny(n,l));let m;try{m=await r.resolveRef(e);}catch(p){let u=p instanceof Error?p.message:String(p);return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:c,classification:"error",error:{phase:"plan",message:u}}}return {name:e.name,entry:e,oldSha:o,newSha:m,modifications:c,classification:qre({modifications:c,oldSha:o,newSha:m})}}s(hz,"planSinglePack");function yz(){return async e=>{if(e.source_kind==="local")return e.version??"local";let t=ed(e.source);if(t===null||t.remoteUrl===void 0)throw new Error(`Cannot parse source for refresh: ${e.source}`);let r=e.original_ref!==void 0&&e.original_ref!==""?e.original_ref:t.ref??"HEAD";return Wh(r,t.remoteUrl)}}s(yz,"createDefaultResolveRef");async function _z(e,t,r){try{await r.runInstallForRefresh(e.entry,e.newSha);}catch(n){return {success:false,phase:"apply",error:n instanceof Error?n.message:String(n)}}try{let n=(r.now??(()=>new Date().toISOString()))(),i=(await Vt(t)).find(a=>a.name===e.entry.name);if(i===void 0)return {success:!1,phase:"manifest-update",error:`Entry "${e.entry.name}" not found after install`};await ty(t,{...i,refreshed_at:n});}catch(n){return {success:false,phase:"manifest-update",error:n instanceof Error?n.message:String(n)}}return {success:true}}s(_z,"applySinglePack");async function Zre(e,t,r={}){let n=r.readLine??Nm,o,i=new Promise(a=>{o=setTimeout(()=>a("timeout"),t),o.unref?.();});try{let a=await Promise.race([n(e),i]);return a==="timeout"?"timeout":ene(a)}finally{o&&clearTimeout(o);}}s(Zre,"promptWithTimeout");function ene(e){let t=e.trim().toLowerCase();return t==="y"||t==="yes"?"y":t==="per-pack"?"per-pack":"n"}s(ene,"normalize");async function XL(e,t){let n=[`The following ${e.length} pack(s) have local edits that refresh will overwrite:`,...e.map(i=>` - ${i.name}: ${i.modifiedCount} modified file(s)`),"Continue? [y/N/per-pack] (5 min timeout, default N) "].join(`
406
- `);switch(await Zre(n,t.timeoutMs,t)){case "y":return {proceed:true,perPack:false,declined:[]};case "per-pack":return {proceed:true,perPack:true,declined:[]};case "n":case "timeout":return {proceed:false,perPack:false,declined:e.map(i=>i.name)}}}s(XL,"runConsentPrompt");function tne(e,t){let r=ed(e.source);if(r===null||r.remoteUrl===void 0)return e.source;if(e.source_kind==="github"&&e.source.startsWith("github:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source_kind==="gitlab"&&e.source.startsWith("gitlab:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source.startsWith("git+")){let n=e.source.lastIndexOf("#");return `${n<0?e.source:e.source.slice(0,n)}#${t}`}return e.source}s(tne,"buildSourceForRefresh");function Sz(e){return async(t,r)=>{let n={force:true,forceFreshMaterialize:true};e.scope==="global"&&(n.global=true),t.target!==void 0&&(n.target=t.target),t.as!==void 0&&(n.as=t.as),t.path!==void 0&&(n.path=t.path),t.paths!==void 0&&t.paths.length>0&&(n.all=true),n.name=t.name;let o={features:t.features,pick:t.pick,...t.original_ref!==void 0?{originalRef:t.original_ref}:{},...t.accepted_elevated!==void 0?{acceptedElevated:t.accepted_elevated}:{}},i=tne(t,r),a=await Fl(n,[i],e.projectRoot,o);if(a.exitCode!==0)throw new Error(`Install for refresh "${t.name}" failed with exit code ${a.exitCode}`)}}s(Sz,"createRunInstallForRefresh");var Rz=300*1e3;async function sy(e,t,r){let{dryRun:n,force:o,global:i,json:a}=dz(e),l=i?"global":"project",c=fz(t),m=s(()=>({scope:l,mode:"refresh",refreshed:[],unchanged:[],skipped:[],failed:[],dryRun:n}),"emptyData"),{config:p,context:u}=await ye(r,l);await ze(p,r);let f=await Om(u.canonicalDir);try{let g=await Vt(u.canonicalDir);if(c.length>0){let M=new Set(g.map(Te=>Te.name)),te=c.filter(Te=>!M.has(Te));if(te.length>0)return a||y.error(`Unknown pack(s): ${te.join(", ")}`),{exitCode:2,data:m()}}let h=c.length>0?g.filter(M=>c.includes(M.name)):g;if(h.length===0)return a||y.info("No packs to refresh."),{exitCode:0,data:m()};let _=join(u.canonicalDir,"packs"),S=yz(),R=[];for(let M of h)R.push(await hz(M,_,{resolveRef:S}));let I=R.filter(M=>M.classification==="error"),w=R.filter(M=>M.classification==="unchanged"),D=R.filter(M=>M.classification==="clean-update"),P=R.filter(M=>M.classification==="needs-consent"),K=m();if(K.unchanged=w.map(M=>({name:M.name,ref:M.newSha})),K.failed=I.map(M=>({name:M.name,phase:"plan",error:M.error?.message??"unknown plan error"})),n){for(let M of D)K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});for(let M of P)K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});return {exitCode:I.length>0?1:0,data:K}}let G=new Set(D.map(M=>M.name));if(P.length>0)if(o)for(let M of P)G.add(M.name);else {let M=await XL(P.map(te=>({name:te.name,modifiedCount:te.modifications.length})),{timeoutMs:Rz});if(M.proceed&&!M.perPack)for(let te of P)G.add(te.name);else if(M.proceed&&M.perPack)for(let te of P)(await XL([{name:te.name,modifiedCount:te.modifications.length}],{timeoutMs:Rz})).proceed?G.add(te.name):K.skipped.push({name:te.name,reason:"user-declined"});else for(let te of M.declined)K.skipped.push({name:te,reason:"user-declined"});}let Y=Sz({projectRoot:r,scope:l});for(let M of [...D,...P]){if(!G.has(M.name))continue;let te=await _z(M,u.canonicalDir,{runInstallForRefresh:Y});te.success?K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}}):K.failed.push({name:M.name,phase:te.phase??"apply",error:te.error??"unknown"});}return K.refreshed.length>0&&await Tm("refresh",l,u.rootBase),{exitCode:K.failed.length>0?1:0,data:K}}finally{await f();}}s(sy,"runRefresh");async function kz(e,t,r){return sy(e,t,r)}s(kz,"runRefresh");se();function Iz(e){let{data:t}=e;if(t.dryRun){if(t.refreshed.length===0&&t.unchanged.length===0){y.info("[dry-run] No packs to refresh.");return}y.info(`[dry-run] Would refresh ${t.refreshed.length} pack(s); ${t.unchanged.length} unchanged.`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);for(let r of t.unchanged)y.info(` - ${r.name}: unchanged at ${r.ref}`);return}if(t.refreshed.length>0){y.success(`Refreshed ${t.refreshed.length} pack(s):`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);}for(let r of t.unchanged)y.info(`Pack "${r.name}" unchanged at ${r.ref}.`);for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}" (${r.phase}): ${r.error}`);}s(Iz,"renderRefresh");tt();b();lm();async function one(e){let t=await k(join(e,_r));if(t===null)return {installed_at:null,source_type:null};try{let r=JSON.parse(t);return {installed_at:typeof r.installed_at=="string"?r.installed_at:null,source_type:typeof r.source_type=="string"?r.source_type:null}}catch{return {installed_at:null,source_type:null}}}s(one,"readPackManifestMeta");function sne(e,t){return relative(e,t).replaceAll("\\","/")}s(sne,"toForwardSlashRel");async function iy(e,t){let r=e.global===true?"global":"project",n=Sa(t,r),o=await Vt(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await one(c),p=await ia(c);a.push({name:l.name,source:l.source,source_kind:l.source_kind,source_type:m.source_type,version:l.version??null,features:[...l.features],target:l.target??null,installed_at:m.installed_at,refreshed_at:l.refreshed_at??null,pack_path:sne(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(iy,"runInstallsList");var ine=["list"];function Lz(e){return {scope:e,subcommand:"list",installs:[]}}s(Lz,"emptyData");async function Cz(e,t,r){let n=e.global===true?"global":"project",o=t[0];return o===void 0||o===""?{exitCode:0,data:Lz(n),showHelp:true}:o==="list"?iy(e,r):{exitCode:2,data:Lz(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${ine.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(Cz,"runInstalls");se();var ay=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function ane(e){let t=e.refreshed_at??e.installed_at??null;return {name:e.name,source:e.source,features:e.features.join(", "),license:e.license??"-",installed:t?t.slice(0,10):"-"}}s(ane,"toRow");function lne(e){let t={name:0,source:0,features:0,license:0,installed:0};for(let n of ay)t[n.key]=n.label.length;for(let n of e)for(let o of ay)t[o.key]=Math.max(t[o.key],n[o.key].length);let r=ay.map(n=>n.label.padEnd(t[n.key])).join(" ");y.info(r);for(let n of e)y.info(ay.map(o=>n[o.key].padEnd(t[o.key])).join(" "));}s(lne,"renderTable");function Ez(e){if(e.error&&y.error(e.error),e.showHelp){_d("installs");return}let{data:t}=e;if(t.installs.length===0){y.info("No installed packs.");return}lne(t.installs.map(ane));}s(Ez,"renderInstalls");vI();b();var eC="agentsmesh.yaml";async function tC(e){let t=join(e,eC),r=await k(t);return r===null?{}:parse(r)??{}}s(tC,"readScopedConfigRaw");async function wz(e,t){let r=join(e,eC),n=await k(r)??`version: 1
407
- `,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===t.id))return;let i={id:t.id,source:t.source};t.version!==void 0&&(i.version=t.version),o.plugins.push(i),await L(r,stringify(o));}s(wz,"writePluginEntry");async function bz(e,t){let r=join(e,eC),n=await k(r);if(n===null)return false;let o=parse(n)??{},i=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==t),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==t));let a=o.plugins.length<i;return a&&await L(r,stringify(o)),a}s(bz,"removePluginEntry");async function Az(e,t,r){let n=t[0];if(n===void 0||n==="")return {exitCode:0,data:{subcommand:"list",plugins:[]},showHelp:true};switch(n){case "add":return cne(e,t.slice(1),r);case "list":return mne(r);case "remove":return pne(t.slice(1),r);case "info":return une(t.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(Az,"runPlugin");async function cne(e,t,r){let n=t[0];if(!n)throw new Wn("Usage: agentsmesh plugin add <source> [--version <v>] [--id <id>]");let o=typeof e.version=="string"?e.version:"latest",a=(typeof e.id=="string"?e.id:void 0)??dne(n);return await wz(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(cne,"runPluginAdd");async function mne(e){let r=(await tC(e)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await dh(o,e);i=l.descriptors.length>0?"\u2713":"\u2713 (0 descriptors)",a=l.descriptors.map(c=>c.id).join(", ");}catch{}n.push({id:o.id,package:o.source,version:o.version,status:i,targets:a});}return {exitCode:0,data:{subcommand:"list",plugins:n}}}s(mne,"runPluginList");async function pne(e,t){let r=e[0];if(!r)throw new Wn("Usage: agentsmesh plugin remove <id>");let n=await bz(t,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(pne,"runPluginRemove");async function une(e,t){let r=e[0];if(!r)throw new Wn("Usage: agentsmesh plugin info <id>");let o=((await tC(t)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await dh(o,t);}catch{return {exitCode:1,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:[]}}}let a=i.descriptors.map(l=>({id:l.id,description:l.emptyImportMessage}));return {exitCode:0,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:a}}}s(une,"runPluginInfo");function dne(e){let t=e;if(t.startsWith("@")){let n=t.indexOf("/");n!==-1&&(t=t.slice(n+1));}t.startsWith("agentsmesh-target-")&&(t=t.slice(18)),t.startsWith("file:")&&(t=t.slice(5));let r=t.replace(/\\/g,"/").split("/");return t=r[r.length-1]??t,t=t.replace(/\.(js|ts)$/,""),t=t.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),t||"plugin"}s(dne,"derivePluginId");se();function xz(e){if(e.error&&y.error(e.error),e.showHelp){_ne();return}let{data:t}=e;switch(t.subcommand){case "add":fne(t.id,t.package,t.version);break;case "list":gne(t.plugins);break;case "remove":hne(t.id,t.found);break;case "info":yne(t,e.exitCode);break}}s(xz,"renderPlugin");function fne(e,t,r){y.success(`Plugin '${e}' added to agentsmesh.yaml`),y.warn("Plugins load as trusted Node.js modules and run with full process privileges. Only install plugins from sources you trust.");let n=r!=="latest"?`@${r}`:"@latest";y.info(`Next: npm install ${t}${n}`),y.info(`Then add '${e}' to pluginTargets in agentsmesh.yaml to enable it.`);}s(fne,"renderAdd");function gne(e){if(e.length===0){y.info("No plugins configured. Use: agentsmesh plugin add <source>");return}y.info("Configured plugins:");for(let t of e){let r=t.version!==void 0?`@${t.version}`:"",n=t.status??"",o=t.targets??"";y.info(` ${t.id} | ${t.package}${r} | ${n} | ${o}`);}}s(gne,"renderList");function hne(e,t){t?y.success(`Plugin '${e}' removed from agentsmesh.yaml`):y.warn(`Plugin '${e}' was not found in agentsmesh.yaml`);}s(hne,"renderRemove");function yne(e,t){if(t!==0&&e.package===""){y.error(`Plugin '${e.id}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`);return}if(t!==0){y.error(`Failed to load plugin '${e.id}'`);return}y.info(`Plugin: ${e.id}`),y.info(`Source: ${e.package}${e.version!==void 0?`@${e.version}`:""}`),y.info(`Descriptors: ${e.descriptors.length}`);for(let r of e.descriptors)y.info(` - ${r.id}: ${r.description}`);}s(yne,"renderInfo");function _ne(){y.info("Usage: agentsmesh plugin <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" add <source> Register a plugin package in agentsmesh.yaml"),y.info(" list Show all configured plugins and load status"),y.info(" remove <id> Remove a plugin from agentsmesh.yaml"),y.info(" info <id> Show descriptor details for a configured plugin"),y.info(""),y.info("Flags (add):"),y.info(" --version <v> Pin plugin version"),y.info(" --id <id> Override derived plugin id"),y.info(""),y.info("Note: plugins load as trusted Node.js modules and run with full process privileges."),y.info(" Only install plugins from sources you trust.");}s(_ne,"printPluginHelp");b();zn();function pa(e){return e.toUpperCase().replace(/-/g,"_")}s(pa,"toPrefix");function pi(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}s(pi,"toPascal");function rC(e){let t=pa(e.id),r=pi(e.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
452
+ `),true}s(uz,"removeAgentsmeshExtendByName");async function dz(e){let{plan:t,canonicalDir:r,configPath:n,config:o}=e,i=false;t.packDir!==null&&await j(t.packDir)&&(await rm$1(t.packDir,{recursive:true}),i=true);let a=await OH(r,t.name),l=false;t.extendsEntry!==null&&(l=await uz(n,o,t.name));let c=t.packDir!==null,m=t.manifestEntry!==null,p=t.extendsEntry!==null,u=c&&!i||m&&!a||p&&!l;return {name:t.name,packDirRemoved:i,manifestEntryRemoved:a,extendsEntryRemoved:l,partial:u}}s(dz,"applyUninstall");function ine(e,t){return relative(e,t).replaceAll("\\","/")}s(ine,"toForwardSlashRel");function qL(e){return e.map(t=>({name:t,reason:"not found in installs.yaml"}))}s(qL,"buildSkipped");function fz(e,t,r){return e.plan.manifestEntry===null?null:ine(t,join(r,e.plan.name))}s(fz,"packPathFor");function gz(e,t,r){return e.map(n=>({name:n.plan.name,pack_path:fz(n,t,r),manifest_entry_removed:false,extends_entry_removed:false,generated_files_removed:0,modified_files_kept:n.modifications.map(o=>({relativePath:o.relativePath,status:o.status})),legacy_migrated:n.legacyMigrated,partial:n.action==="keep-modified"||n.plan.packDir===null}))}s(gz,"previewEntries");function hz(e,t,r,n){let o=e.action==="keep-modified"||!t.packDirRemoved;return {name:t.name,pack_path:fz(e,r,n),manifest_entry_removed:t.manifestEntryRemoved,extends_entry_removed:t.extendsEntryRemoved,generated_files_removed:0,modified_files_kept:o?e.modifications.map(i=>({relativePath:i.relativePath,status:i.status})):[],legacy_migrated:e.legacyMigrated,partial:t.partial}}s(hz,"appliedEntry");function ane(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(ane,"parseNames");function lne(){return {ask:s(e=>vm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(lne,"defaultAdapter");async function ay(e,t,r,n={}){let o=e.global===true?"global":"project",i=e.all===true,a=e.force===true,l=e["dry-run"]===true,c=e["keep-pack"]===true,m=e["keep-generated"]===true,p=n.assumeTty===true||process.stdin.isTTY,u=ane(t),f=e.json===true;function g(R){return f||y.error(R),{exitCode:1,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}}}if(s(g,"validationFailure"),!i&&u.length===0)return g("Missing install name. Usage: agentsmesh uninstall <name>[,<name>...] [--all]");if(!p&&!a&&!l)return g("Non-interactive terminal: use --force or --dry-run for agentsmesh uninstall.");let{config:h,context:_}=await ye(r,o);await ze(h,r);let S=await wm(_.canonicalDir);try{let R=await Jt(_.canonicalDir),I=join(_.canonicalDir,"packs"),w=iz({names:u,all:i,keepPack:c,keepGenerated:m,installs:R,extends:h.extends,packsDir:I}),{decisions:D,aborted:P}=await pz(w.removals,I,{adapter:n.promptAdapter??lne(),warn:s(ee=>y.warn(ee),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(P)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let ee of w.removals)for(let M of ee.warnings)y.warn(M);if(l){for(let ee of D)y.info(`[dry-run] Would uninstall pack "${ee.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:gz(D,_.rootBase,I),skipped:qL(w.skipped),failed:[],dryRun:!0}}}let K=join(_.configDir,"agentsmesh.yaml"),G=[],Y=[];for(let ee of D){let M=ee.action==="keep-modified"?{...ee.plan,packDir:null}:ee.plan;try{let te=await dz({plan:M,canonicalDir:_.canonicalDir,configPath:K,config:h});G.push(hz(ee,te,_.rootBase,I));}catch(te){let Te=te instanceof Error?te.message:String(te);Y.push({name:ee.plan.name,reason:Te}),f||y.error(`Failed to uninstall "${ee.plan.name}": ${Te}`);}}return !m&&G.length>0?await Pm("uninstall",o,_.rootBase):m&&G.length>0&&y.warn("--keep-generated: target files derived from the removed pack(s) may be stale until the next generate."),{exitCode:Y.length>0?1:0,data:{scope:o,mode:"uninstall",removed:G,skipped:qL(w.skipped),failed:Y,dryRun:!1}}}finally{await S();}}s(ay,"runUninstall");async function _z(e,t,r){return ay(e,t,r)}s(_z,"runUninstall");se();function Sz(e){let{data:t}=e;if(t.dryRun){if(t.removed.length===0){y.info("[dry-run] No installs matched.");return}y.info(`[dry-run] Would uninstall ${t.removed.length} pack(s):`);for(let r of t.removed){let n=r.pack_path===null?"extends-only":r.pack_path;y.info(` - ${r.name} (${n})`);}return}if(t.removed.length>0){let r=t.removed.map(n=>`"${n.name}"`).join(", ");y.success(`Uninstalled ${t.removed.length} pack(s): ${r}.`);}for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}": ${r.reason}`);}s(Sz,"renderUninstall");tt();sn();se();function Rz(e){let t=e.json===true;return {dryRun:e["dry-run"]===true,force:e.force===true||t,global:e.global===true,json:t,verbose:e.verbose===true}}s(Rz,"readRefreshFlags");function kz(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(kz,"parseRefreshNames");b();function cne(e){return e.modifications.length>0?"needs-consent":e.oldSha===e.newSha?"unchanged":"clean-update"}s(cne,"classifyRefreshPlan");async function Lz(e,t,r){let n=join(t,e.name),o=e.version??null,i=join(n,Sr),a=await k(i);if(a===null)return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest missing at ${i}`}};let l;try{l=JSON.parse(a).files??{};}catch{return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest is corrupt at ${i}`}}}let c=[];await j(n)&&(c=await iy(n,l));let m;try{m=await r.resolveRef(e);}catch(p){let u=p instanceof Error?p.message:String(p);return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:c,classification:"error",error:{phase:"plan",message:u}}}return {name:e.name,entry:e,oldSha:o,newSha:m,modifications:c,classification:cne({modifications:c,oldSha:o,newSha:m})}}s(Lz,"planSinglePack");function Cz(){return async e=>{if(e.source_kind==="local")return e.version??"local";let t=rd(e.source);if(t===null||t.remoteUrl===void 0)throw new Error(`Cannot parse source for refresh: ${e.source}`);let r=e.original_ref!==void 0&&e.original_ref!==""?e.original_ref:t.ref??"HEAD";return Vh(r,t.remoteUrl)}}s(Cz,"createDefaultResolveRef");async function Ez(e,t,r){try{await r.runInstallForRefresh(e.entry,e.newSha);}catch(n){return {success:false,phase:"apply",error:n instanceof Error?n.message:String(n)}}try{let n=(r.now??(()=>new Date().toISOString()))(),i=(await Jt(t)).find(a=>a.name===e.entry.name);if(i===void 0)return {success:!1,phase:"manifest-update",error:`Entry "${e.entry.name}" not found after install`};await oy(t,{...i,refreshed_at:n});}catch(n){return {success:false,phase:"manifest-update",error:n instanceof Error?n.message:String(n)}}return {success:true}}s(Ez,"applySinglePack");async function mne(e,t,r={}){let n=r.readLine??vm,o,i=new Promise(a=>{o=setTimeout(()=>a("timeout"),t),o.unref?.();});try{let a=await Promise.race([n(e),i]);return a==="timeout"?"timeout":pne(a)}finally{o&&clearTimeout(o);}}s(mne,"promptWithTimeout");function pne(e){let t=e.trim().toLowerCase();return t==="y"||t==="yes"?"y":t==="per-pack"?"per-pack":"n"}s(pne,"normalize");async function ZL(e,t){let n=[`The following ${e.length} pack(s) have local edits that refresh will overwrite:`,...e.map(i=>` - ${i.name}: ${i.modifiedCount} modified file(s)`),"Continue? [y/N/per-pack] (5 min timeout, default N) "].join(`
453
+ `);switch(await mne(n,t.timeoutMs,t)){case "y":return {proceed:true,perPack:false,declined:[]};case "per-pack":return {proceed:true,perPack:true,declined:[]};case "n":case "timeout":return {proceed:false,perPack:false,declined:e.map(i=>i.name)}}}s(ZL,"runConsentPrompt");function une(e,t){let r=rd(e.source);if(r===null||r.remoteUrl===void 0)return e.source;if(e.source_kind==="github"&&e.source.startsWith("github:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source_kind==="gitlab"&&e.source.startsWith("gitlab:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source.startsWith("git+")){let n=e.source.lastIndexOf("#");return `${n<0?e.source:e.source.slice(0,n)}#${t}`}return e.source}s(une,"buildSourceForRefresh");function Oz(e){return async(t,r)=>{let n={force:true,forceFreshMaterialize:true};e.scope==="global"&&(n.global=true),t.target!==void 0&&(n.target=t.target),t.as!==void 0&&(n.as=t.as),t.path!==void 0&&(n.path=t.path),t.paths!==void 0&&t.paths.length>0&&(n.all=true),n.name=t.name;let o={features:t.features,pick:t.pick,...t.original_ref!==void 0?{originalRef:t.original_ref}:{},...t.accepted_elevated!==void 0?{acceptedElevated:t.accepted_elevated}:{}},i=une(t,r),a=await Gl(n,[i],e.projectRoot,o);if(a.exitCode!==0)throw new Error(`Install for refresh "${t.name}" failed with exit code ${a.exitCode}`)}}s(Oz,"createRunInstallForRefresh");var wz=300*1e3;async function ly(e,t,r){let{dryRun:n,force:o,global:i,json:a}=Rz(e),l=i?"global":"project",c=kz(t),m=s(()=>({scope:l,mode:"refresh",refreshed:[],unchanged:[],skipped:[],failed:[],dryRun:n}),"emptyData"),{config:p,context:u}=await ye(r,l);await ze(p,r);let f=await wm(u.canonicalDir);try{let g=await Jt(u.canonicalDir);if(c.length>0){let M=new Set(g.map(Te=>Te.name)),te=c.filter(Te=>!M.has(Te));if(te.length>0)return a||y.error(`Unknown pack(s): ${te.join(", ")}`),{exitCode:2,data:m()}}let h=c.length>0?g.filter(M=>c.includes(M.name)):g;if(h.length===0)return a||y.info("No packs to refresh."),{exitCode:0,data:m()};let _=join(u.canonicalDir,"packs"),S=Cz(),R=[];for(let M of h)R.push(await Lz(M,_,{resolveRef:S}));let I=R.filter(M=>M.classification==="error"),w=R.filter(M=>M.classification==="unchanged"),D=R.filter(M=>M.classification==="clean-update"),P=R.filter(M=>M.classification==="needs-consent"),K=m();if(K.unchanged=w.map(M=>({name:M.name,ref:M.newSha})),K.failed=I.map(M=>({name:M.name,phase:"plan",error:M.error?.message??"unknown plan error"})),n){for(let M of D)K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});for(let M of P)K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});return {exitCode:I.length>0?1:0,data:K}}let G=new Set(D.map(M=>M.name));if(P.length>0)if(o)for(let M of P)G.add(M.name);else {let M=await ZL(P.map(te=>({name:te.name,modifiedCount:te.modifications.length})),{timeoutMs:wz});if(M.proceed&&!M.perPack)for(let te of P)G.add(te.name);else if(M.proceed&&M.perPack)for(let te of P)(await ZL([{name:te.name,modifiedCount:te.modifications.length}],{timeoutMs:wz})).proceed?G.add(te.name):K.skipped.push({name:te.name,reason:"user-declined"});else for(let te of M.declined)K.skipped.push({name:te,reason:"user-declined"});}let Y=Oz({projectRoot:r,scope:l});for(let M of [...D,...P]){if(!G.has(M.name))continue;let te=await Ez(M,u.canonicalDir,{runInstallForRefresh:Y});te.success?K.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}}):K.failed.push({name:M.name,phase:te.phase??"apply",error:te.error??"unknown"});}return K.refreshed.length>0&&await Pm("refresh",l,u.rootBase),{exitCode:K.failed.length>0?1:0,data:K}}finally{await f();}}s(ly,"runRefresh");async function bz(e,t,r){return ly(e,t,r)}s(bz,"runRefresh");se();function Az(e){let{data:t}=e;if(t.dryRun){if(t.refreshed.length===0&&t.unchanged.length===0){y.info("[dry-run] No packs to refresh.");return}y.info(`[dry-run] Would refresh ${t.refreshed.length} pack(s); ${t.unchanged.length} unchanged.`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);for(let r of t.unchanged)y.info(` - ${r.name}: unchanged at ${r.ref}`);return}if(t.refreshed.length>0){y.success(`Refreshed ${t.refreshed.length} pack(s):`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);}for(let r of t.unchanged)y.info(`Pack "${r.name}" unchanged at ${r.ref}.`);for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}" (${r.phase}): ${r.error}`);}s(Az,"renderRefresh");tt();b();mm();async function gne(e){let t=await k(join(e,Sr));if(t===null)return {installed_at:null,source_type:null};try{let r=JSON.parse(t);return {installed_at:typeof r.installed_at=="string"?r.installed_at:null,source_type:typeof r.source_type=="string"?r.source_type:null}}catch{return {installed_at:null,source_type:null}}}s(gne,"readPackManifestMeta");function hne(e,t){return relative(e,t).replaceAll("\\","/")}s(hne,"toForwardSlashRel");async function cy(e,t){let r=e.global===true?"global":"project",n=Ra(t,r),o=await Jt(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await gne(c),p=await aa(c);a.push({name:l.name,source:l.source,source_kind:l.source_kind,source_type:m.source_type,version:l.version??null,features:[...l.features],target:l.target??null,installed_at:m.installed_at,refreshed_at:l.refreshed_at??null,pack_path:hne(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(cy,"runInstallsList");var yne=["list"];function xz(e){return {scope:e,subcommand:"list",installs:[]}}s(xz,"emptyData");async function Tz(e,t,r){let n=e.global===true?"global":"project",o=t[0];return o===void 0||o===""?{exitCode:0,data:xz(n),showHelp:true}:o==="list"?cy(e,r):{exitCode:2,data:xz(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${yne.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(Tz,"runInstalls");se();var my=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function _ne(e){let t=e.refreshed_at??e.installed_at??null;return {name:e.name,source:e.source,features:e.features.join(", "),license:e.license??"-",installed:t?t.slice(0,10):"-"}}s(_ne,"toRow");function Sne(e){let t={name:0,source:0,features:0,license:0,installed:0};for(let n of my)t[n.key]=n.label.length;for(let n of e)for(let o of my)t[o.key]=Math.max(t[o.key],n[o.key].length);let r=my.map(n=>n.label.padEnd(t[n.key])).join(" ");y.info(r);for(let n of e)y.info(my.map(o=>n[o.key].padEnd(t[o.key])).join(" "));}s(Sne,"renderTable");function Pz(e){if(e.error&&y.error(e.error),e.showHelp){Rd("installs");return}let{data:t}=e;if(t.installs.length===0){y.info("No installed packs.");return}Sne(t.installs.map(_ne));}s(Pz,"renderInstalls");MI();b();var nC="agentsmesh.yaml";async function oC(e){let t=join(e,nC),r=await k(t);return r===null?{}:parse(r)??{}}s(oC,"readScopedConfigRaw");async function Nz(e,t){let r=join(e,nC),n=await k(r)??`version: 1
454
+ `,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===t.id))return;let i={id:t.id,source:t.source};t.version!==void 0&&(i.version=t.version),o.plugins.push(i),await L(r,stringify(o));}s(Nz,"writePluginEntry");async function vz(e,t){let r=join(e,nC),n=await k(r);if(n===null)return false;let o=parse(n)??{},i=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==t),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==t));let a=o.plugins.length<i;return a&&await L(r,stringify(o)),a}s(vz,"removePluginEntry");async function Fz(e,t,r){let n=t[0];if(n===void 0||n==="")return {exitCode:0,data:{subcommand:"list",plugins:[]},showHelp:true};switch(n){case "add":return Rne(e,t.slice(1),r);case "list":return kne(r);case "remove":return Ine(t.slice(1),r);case "info":return Lne(t.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(Fz,"runPlugin");async function Rne(e,t,r){let n=t[0];if(!n)throw new Hn("Usage: agentsmesh plugin add <source> [--version <v>] [--id <id>]");let o=typeof e.version=="string"?e.version:"latest",a=(typeof e.id=="string"?e.id:void 0)??Cne(n);return await Nz(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(Rne,"runPluginAdd");async function kne(e){let r=(await oC(e)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await hh(o,e);i=l.descriptors.length>0?"\u2713":"\u2713 (0 descriptors)",a=l.descriptors.map(c=>c.id).join(", ");}catch{}n.push({id:o.id,package:o.source,version:o.version,status:i,targets:a});}return {exitCode:0,data:{subcommand:"list",plugins:n}}}s(kne,"runPluginList");async function Ine(e,t){let r=e[0];if(!r)throw new Hn("Usage: agentsmesh plugin remove <id>");let n=await vz(t,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(Ine,"runPluginRemove");async function Lne(e,t){let r=e[0];if(!r)throw new Hn("Usage: agentsmesh plugin info <id>");let o=((await oC(t)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await hh(o,t);}catch{return {exitCode:1,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:[]}}}let a=i.descriptors.map(l=>({id:l.id,description:l.emptyImportMessage}));return {exitCode:0,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:a}}}s(Lne,"runPluginInfo");function Cne(e){let t=e;if(t.startsWith("@")){let n=t.indexOf("/");n!==-1&&(t=t.slice(n+1));}t.startsWith("agentsmesh-target-")&&(t=t.slice(18)),t.startsWith("file:")&&(t=t.slice(5));let r=t.replace(/\\/g,"/").split("/");return t=r[r.length-1]??t,t=t.replace(/\.(js|ts)$/,""),t=t.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),t||"plugin"}s(Cne,"derivePluginId");se();function Mz(e){if(e.error&&y.error(e.error),e.showHelp){Ane();return}let{data:t}=e;switch(t.subcommand){case "add":Ene(t.id,t.package,t.version);break;case "list":One(t.plugins);break;case "remove":wne(t.id,t.found);break;case "info":bne(t,e.exitCode);break}}s(Mz,"renderPlugin");function Ene(e,t,r){y.success(`Plugin '${e}' added to agentsmesh.yaml`),y.warn("Plugins load as trusted Node.js modules and run with full process privileges. Only install plugins from sources you trust.");let n=r!=="latest"?`@${r}`:"@latest";y.info(`Next: npm install ${t}${n}`),y.info(`Then add '${e}' to pluginTargets in agentsmesh.yaml to enable it.`);}s(Ene,"renderAdd");function One(e){if(e.length===0){y.info("No plugins configured. Use: agentsmesh plugin add <source>");return}y.info("Configured plugins:");for(let t of e){let r=t.version!==void 0?`@${t.version}`:"",n=t.status??"",o=t.targets??"";y.info(` ${t.id} | ${t.package}${r} | ${n} | ${o}`);}}s(One,"renderList");function wne(e,t){t?y.success(`Plugin '${e}' removed from agentsmesh.yaml`):y.warn(`Plugin '${e}' was not found in agentsmesh.yaml`);}s(wne,"renderRemove");function bne(e,t){if(t!==0&&e.package===""){y.error(`Plugin '${e.id}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`);return}if(t!==0){y.error(`Failed to load plugin '${e.id}'`);return}y.info(`Plugin: ${e.id}`),y.info(`Source: ${e.package}${e.version!==void 0?`@${e.version}`:""}`),y.info(`Descriptors: ${e.descriptors.length}`);for(let r of e.descriptors)y.info(` - ${r.id}: ${r.description}`);}s(bne,"renderInfo");function Ane(){y.info("Usage: agentsmesh plugin <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" add <source> Register a plugin package in agentsmesh.yaml"),y.info(" list Show all configured plugins and load status"),y.info(" remove <id> Remove a plugin from agentsmesh.yaml"),y.info(" info <id> Show descriptor details for a configured plugin"),y.info(""),y.info("Flags (add):"),y.info(" --version <v> Pin plugin version"),y.info(" --id <id> Override derived plugin id"),y.info(""),y.info("Note: plugins load as trusted Node.js modules and run with full process privileges."),y.info(" Only install plugins from sources you trust.");}s(Ane,"printPluginHelp");b();Vn();function ua(e){return e.toUpperCase().replace(/-/g,"_")}s(ua,"toPrefix");function pi(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}s(pi,"toPascal");function sC(e){let t=ua(e.id),r=pi(e.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
408
455
  import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
409
456
  import { generateRules } from './generator.js';
410
457
  import { importFrom${r} } from './importer.js';
@@ -507,7 +554,7 @@ export const descriptor = {
507
554
  buildImportPaths: build${r}ImportPaths,
508
555
  detectionPaths: [${t}_DIR],
509
556
  } satisfies TargetDescriptor;
510
- `}s(rC,"TEMPLATE_INDEX");function nC(e){return `import { describe, it, expect } from 'vitest';
557
+ `}s(sC,"TEMPLATE_INDEX");function iC(e){return `import { describe, it, expect } from 'vitest';
511
558
  import type { CanonicalFiles } from '../../../../src/core/types.js';
512
559
  import { generateRules } from '../../../../src/targets/${e.id}/generator.js';
513
560
 
@@ -536,7 +583,7 @@ describe('generateRules (${e.id})', () => {
536
583
  expect(result).toHaveLength(0);
537
584
  });
538
585
  });
539
- `}s(nC,"TEMPLATE_GENERATOR_TEST");function oC(e){let t=pi(e.id);return `import { describe, it, expect } from 'vitest';
586
+ `}s(iC,"TEMPLATE_GENERATOR_TEST");function aC(e){let t=pi(e.id);return `import { describe, it, expect } from 'vitest';
540
587
  import { importFrom${t} } from '../../../../src/targets/${e.id}/importer.js';
541
588
 
542
589
  describe('importFrom${t} (${e.id})', () => {
@@ -550,10 +597,10 @@ describe('importFrom${t} (${e.id})', () => {
550
597
  expect(result).toHaveLength(0);
551
598
  });
552
599
  });
553
- `}s(oC,"TEMPLATE_IMPORTER_TEST");function sC(e){return `# ${e.displayName} Workspace
600
+ `}s(aC,"TEMPLATE_IMPORTER_TEST");function lC(e){return `# ${e.displayName} Workspace
554
601
 
555
602
  Follow the ${e.displayName} configuration files and keep changes small.
556
- `}s(sC,"TEMPLATE_FIXTURE_ROOT_MD");function Tz(e){let t=pa(e.id);return `export const ${t}_TARGET = '${e.id}';
603
+ `}s(lC,"TEMPLATE_FIXTURE_ROOT_MD");function Gz(e){let t=ua(e.id);return `export const ${t}_TARGET = '${e.id}';
557
604
 
558
605
  // Project-level paths
559
606
  export const ${t}_DIR = '.${e.id}';
@@ -566,7 +613,7 @@ export const ${t}_GLOBAL_RULES_DIR = '~/.${e.id}/rules';
566
613
  // Canonical paths
567
614
  export const ${t}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
568
615
  export const ${t}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
569
- `}s(Tz,"TEMPLATE_CONSTANTS");function Pz(e){let t=pa(e.id);return `import type { CanonicalFiles } from '../../core/types.js';
616
+ `}s(Gz,"TEMPLATE_CONSTANTS");function $z(e){let t=ua(e.id);return `import type { CanonicalFiles } from '../../core/types.js';
570
617
  import { ${t}_TARGET, ${t}_DIR } from './constants.js';
571
618
 
572
619
  export interface ${pi(e.id)}Output {
@@ -580,7 +627,7 @@ export function generateRules(_canonical: CanonicalFiles): ${pi(e.id)}Output[] {
580
627
  void ${t}_DIR;
581
628
  return [];
582
629
  }
583
- `}s(Pz,"TEMPLATE_GENERATOR");function Dz(e){let t=pi(e.id),r=pa(e.id);return `import type { ImportResult } from '../../core/types.js';
630
+ `}s($z,"TEMPLATE_GENERATOR");function jz(e){let t=pi(e.id),r=ua(e.id);return `import type { ImportResult } from '../../core/types.js';
584
631
  import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
585
632
  import { ${r}_TARGET } from './constants.js';
586
633
 
@@ -592,7 +639,7 @@ export async function importFrom${t}(
592
639
  void ${r}_TARGET;
593
640
  return [];
594
641
  }
595
- `}s(Dz,"TEMPLATE_IMPORTER");function Nz(e){let t=pa(e.id);return `/** Lint rules for the ${e.id} target. */
642
+ `}s(jz,"TEMPLATE_IMPORTER");function Uz(e){let t=ua(e.id);return `/** Lint rules for the ${e.id} target. */
596
643
  import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
597
644
  import { validateRules } from '../../core/lint/validate-rules.js';
598
645
  import { ${t}_TARGET } from './constants.js';
@@ -610,7 +657,7 @@ export function lintRules(
610
657
  target: ${t}_TARGET,
611
658
  }));
612
659
  }
613
- `}s(Nz,"TEMPLATE_LINTER");function vz(e){return `/**
660
+ `}s(Uz,"TEMPLATE_LINTER");function Bz(e){return `/**
614
661
  * ${e.displayName}-specific lint hooks.
615
662
  */
616
663
 
@@ -620,7 +667,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
620
667
  // TODO(agentsmesh-scaffold): implement target-specific hook validation for ${e.displayName}
621
668
  return [];
622
669
  }
623
- `}s(vz,"TEMPLATE_LINT_HOOKS");function Fz(e){let t=pi(e.id),r=pa(e.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
670
+ `}s(Bz,"TEMPLATE_LINT_HOOKS");function Kz(e){let t=pi(e.id),r=ua(e.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
624
671
  import { ${r}_DIR } from '../../../targets/${e.id}/constants.js';
625
672
 
626
673
  export async function build${t}ImportPaths(
@@ -632,26 +679,26 @@ export async function build${t}ImportPaths(
632
679
  // Reference: src/core/reference/import-maps/kiro.ts for a full example
633
680
  void ${r}_DIR;
634
681
  }
635
- `}s(Fz,"TEMPLATE_IMPORT_MAP");var Rne=/^[a-z][a-z0-9-]*$/;async function Mz(e){let{id:t,projectRoot:r,force:n=false}=e,o=e.displayName??t,i={id:t,displayName:o};if(!Rne.test(t))throw new Error(`Invalid target id "${t}". Must match /^[a-z][a-z0-9-]*$/ (lowercase letters, digits, hyphens; start with a letter).`);if(Ue.includes(t))throw new Error(`Target "${t}" already exists as a built-in target. Choose a different id.`);let a=[{rel:`src/targets/${t}/constants.ts`,content:Tz(i)},{rel:`src/targets/${t}/index.ts`,content:rC(i)},{rel:`src/targets/${t}/generator.ts`,content:Pz(i)},{rel:`src/targets/${t}/importer.ts`,content:Dz(i)},{rel:`src/targets/${t}/linter.ts`,content:Nz(i)},{rel:`src/targets/${t}/lint.ts`,content:vz(i)},{rel:`src/core/reference/import-maps/${t}.ts`,content:Fz(i)},{rel:`tests/unit/targets/${t}/generator.test.ts`,content:nC(i)},{rel:`tests/unit/targets/${t}/importer.test.ts`,content:oC(i)},{rel:`tests/e2e/fixtures/${t}-project/AGENTS.md`,content:sC(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await j(u)){c.push(u);continue}await L(u,p.content),l.push(u);}let m=["1. Run: pnpm catalog:generate (auto-discovers the new target \u2014 updates IDs, descriptors, and import-map barrel)",`2. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${t}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${t}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}s(Mz,"writeTargetScaffold");async function $z(e,t,r){let n=t[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?kne(e,t.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s($z,"runTarget");async function kne(e,t,r){let n=t[0];if(!n)throw new Wn("Usage: agentsmesh target scaffold <id> [--name <displayName>] [--force]");let o=typeof e.name=="string"?e.name:void 0,i=e.force===true,a;try{a=await Mz({id:n,displayName:o,projectRoot:r,force:i});}catch(l){return {exitCode:1,data:{id:n,written:[],skipped:[],postSteps:[]},error:l instanceof Error?l.message:String(l)}}return {exitCode:0,data:{id:n,written:a.written.map(l=>Gz(l,r)),skipped:a.skipped.map(l=>Gz(l,r)),postSteps:a.postSteps}}}s(kne,"runScaffold");function Gz(e,t){return (e.startsWith(t)?e.slice(t.length+1):e).replaceAll("\\","/")}s(Gz,"relativize");se();function jz(e){if(e.error&&y.error(e.error),e.showHelp){Ine();return}let{data:t}=e;for(let r of t.written)y.success(`created ${r}`);for(let r of t.skipped)y.warn(`skipped ${r} (already exists \u2014 use --force to overwrite)`);if(t.written.length>0){y.info(""),y.info("Next steps:");for(let r of t.postSteps)y.info(` ${r}`);}}s(jz,"renderTarget");function Ine(){y.info("Usage: agentsmesh target <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" scaffold <id> Generate a new target skeleton (files, tests, fixture)"),y.info(""),y.info("Flags (scaffold):"),y.info(" --name <displayName> Human-readable name (defaults to id)"),y.info(" --force Overwrite existing files");}s(Ine,"printTargetHelp");rt();Ia();b();tt();sn();qo();function xne(e,t){return e===".agentsmesh"?false:!!(e.startsWith(".")||!t)}s(xne,"shouldSymlink");function Tne(e){let t=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(e,{withFileTypes:true});for(let n of r){if(!xne(n.name,n.isDirectory()))continue;let o=join(e,n.name),i=join(t,n.name);symlinkSync(o,i,n.isDirectory()?"dir":"file");}return mkdirSync(join(t,".agentsmesh"),{recursive:true}),t}s(Tne,"createTempProjectRoot");async function cy(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=n==="global"?homedir():r,i=e.from,a=e.to;if(typeof i!="string"||!i)throw new Error("--from is required. Example: agentsmesh convert --from cursor --to claude-code");if(typeof a!="string"||!a)throw new Error("--to is required. Example: agentsmesh convert --from cursor --to claude-code");let l=i.toLowerCase().trim(),c=a.toLowerCase().trim();if(l===c)throw new Error("--from and --to must be different targets.");let m=Yt(l),p=Yt(c);if(!m||!p)try{let{config:S}=await ye(r,"project");await ze(S,r);}catch{let S=[];throw m||S.push(`--from "${i}"`),p||S.push(`--to "${a}"`),new Error(`Unknown ${S.join(" and ")}. Supported: ${Ue.join(", ")}.`)}let u=re(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${Ue.join(", ")}.`);if(!re(c))throw new Error(`Unknown --to "${a}". Supported: ${Ue.join(", ")}.`);let g=e["dry-run"]===true,h=g?"dry-run":"convert",_=Tne(o);try{await u.generators.importFrom(_,{scope:n});let S=await jt(_),R=_a.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),I=await on({config:R,canonical:S,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let P of I)if(P.status==="created"||P.status==="updated"){let K=um(o,P.path,P.target);await L(K,P.content);}}let w=I.filter(P=>P.status!=="skipped"),D=w.map(P=>({path:P.path,target:P.target,status:P.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:D,summary:{created:w.filter(P=>P.status==="created").length,updated:w.filter(P=>P.status==="updated").length,unchanged:w.filter(P=>P.status==="unchanged").length}}}}finally{rmSync(_,{recursive:true,force:true});}}s(cy,"runConvert");se();function Uz(e){let{data:t}=e;if(t.files.length===0){y.info(`No files found to convert from ${t.from}.`);return}if(t.mode==="dry-run"){for(let i of t.files)y.info(`[dry-run] ${i.status} ${i.path} (${i.target})`);return}for(let i of t.files)(i.status==="created"||i.status==="updated")&&y.success(`${i.status} ${i.path}`);let{created:r,updated:n,unchanged:o}=t.summary;r>0||n>0?y.info(`Converted from ${t.from} \u2192 ${t.to}: ${r} created, ${n} updated, ${o} unchanged`):y.info(`Nothing changed. (${o} unchanged)`);}s(Uz,"renderConvert");var Pne=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,v=class extends Error{static{s(this,"McpError");}code;details;constructor(t,r,n){if(Pne.test(r))throw new Error(`McpError refuses absolute fs path in message: ${r}`);super(r),this.code=t,this.details=n;}toEnvelope(){return this.details===void 0?{code:this.code,message:this.message}:{code:this.code,message:this.message,details:this.details}}};function Fm(e){return e.replace(/(['"`])\/[^'"`\s]+\1/gu,"$1<redacted>$1").replace(/(['"`])[A-Z]:[\\/][^'"`\s]+\1/gu,"$1<redacted>$1").replace(/\/[A-Za-z][^\s'"`<>()]*/gu,"<redacted>").replace(/[A-Z]:[\\/][^\s'"`<>()]*/gu,"<redacted>")}s(Fm,"redactAbsolutePaths");async function iC(e){let t=resolve(e.projectRoot,".agentsmesh",e.feature),r=resolve(t,e.relativePath);if(!r.startsWith(t+sep)&&r!==t)throw new v("PATH_TRAVERSAL",`path escapes ${e.feature} directory`);if(Buffer.byteLength(e.content,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file body exceeds 1 MiB cap",{limit:1048576,actual:Buffer.byteLength(e.content,"utf8")});await mkdir(dirname(r),{recursive:true});let n=`${r}.tmp.${process.pid}.${Date.now()}`;return await writeFile(n,e.content,"utf8"),await rename(n,r),r}s(iC,"safeWrite");var jne=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function da(e){let t=jne.exec(e);if(!t)return {frontmatter:{},body:e};let[,r,n]=t;return {frontmatter:parse(r)??{},body:n}}s(da,"parseMd");function Mm(e,t){return Object.keys(e).length===0?t:`---
682
+ `}s(Kz,"TEMPLATE_IMPORT_MAP");var Tne=/^[a-z][a-z0-9-]*$/;async function Wz(e){let{id:t,projectRoot:r,force:n=false}=e,o=e.displayName??t,i={id:t,displayName:o};if(!Tne.test(t))throw new Error(`Invalid target id "${t}". Must match /^[a-z][a-z0-9-]*$/ (lowercase letters, digits, hyphens; start with a letter).`);if(Ue.includes(t))throw new Error(`Target "${t}" already exists as a built-in target. Choose a different id.`);let a=[{rel:`src/targets/${t}/constants.ts`,content:Gz(i)},{rel:`src/targets/${t}/index.ts`,content:sC(i)},{rel:`src/targets/${t}/generator.ts`,content:$z(i)},{rel:`src/targets/${t}/importer.ts`,content:jz(i)},{rel:`src/targets/${t}/linter.ts`,content:Uz(i)},{rel:`src/targets/${t}/lint.ts`,content:Bz(i)},{rel:`src/core/reference/import-maps/${t}.ts`,content:Kz(i)},{rel:`tests/unit/targets/${t}/generator.test.ts`,content:iC(i)},{rel:`tests/unit/targets/${t}/importer.test.ts`,content:aC(i)},{rel:`tests/e2e/fixtures/${t}-project/AGENTS.md`,content:lC(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await j(u)){c.push(u);continue}await L(u,p.content),l.push(u);}let m=["1. Run: pnpm catalog:generate (auto-discovers the new target \u2014 updates IDs, descriptors, and import-map barrel)",`2. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${t}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${t}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}s(Wz,"writeTargetScaffold");async function zz(e,t,r){let n=t[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?Pne(e,t.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(zz,"runTarget");async function Pne(e,t,r){let n=t[0];if(!n)throw new Hn("Usage: agentsmesh target scaffold <id> [--name <displayName>] [--force]");let o=typeof e.name=="string"?e.name:void 0,i=e.force===true,a;try{a=await Wz({id:n,displayName:o,projectRoot:r,force:i});}catch(l){return {exitCode:1,data:{id:n,written:[],skipped:[],postSteps:[]},error:l instanceof Error?l.message:String(l)}}return {exitCode:0,data:{id:n,written:a.written.map(l=>Hz(l,r)),skipped:a.skipped.map(l=>Hz(l,r)),postSteps:a.postSteps}}}s(Pne,"runScaffold");function Hz(e,t){return (e.startsWith(t)?e.slice(t.length+1):e).replaceAll("\\","/")}s(Hz,"relativize");se();function Vz(e){if(e.error&&y.error(e.error),e.showHelp){Dne();return}let{data:t}=e;for(let r of t.written)y.success(`created ${r}`);for(let r of t.skipped)y.warn(`skipped ${r} (already exists \u2014 use --force to overwrite)`);if(t.written.length>0){y.info(""),y.info("Next steps:");for(let r of t.postSteps)y.info(` ${r}`);}}s(Vz,"renderTarget");function Dne(){y.info("Usage: agentsmesh target <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" scaffold <id> Generate a new target skeleton (files, tests, fixture)"),y.info(""),y.info("Flags (scaffold):"),y.info(" --name <displayName> Human-readable name (defaults to id)"),y.info(" --force Overwrite existing files");}s(Dne,"printTargetHelp");rt();Ca();b();tt();sn();qo();function Une(e,t){return e===".agentsmesh"?false:!!(e.startsWith(".")||!t)}s(Une,"shouldSymlink");function Bne(e){let t=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(e,{withFileTypes:true});for(let n of r){if(!Une(n.name,n.isDirectory()))continue;let o=join(e,n.name),i=join(t,n.name);symlinkSync(o,i,n.isDirectory()?"dir":"file");}return mkdirSync(join(t,".agentsmesh"),{recursive:true}),t}s(Bne,"createTempProjectRoot");async function uy(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=n==="global"?homedir():r,i=e.from,a=e.to;if(typeof i!="string"||!i)throw new Error("--from is required. Example: agentsmesh convert --from cursor --to claude-code");if(typeof a!="string"||!a)throw new Error("--to is required. Example: agentsmesh convert --from cursor --to claude-code");let l=i.toLowerCase().trim(),c=a.toLowerCase().trim();if(l===c)throw new Error("--from and --to must be different targets.");let m=Xt(l),p=Xt(c);if(!m||!p)try{let{config:S}=await ye(r,"project");await ze(S,r);}catch{let S=[];throw m||S.push(`--from "${i}"`),p||S.push(`--to "${a}"`),new Error(`Unknown ${S.join(" and ")}. Supported: ${Ue.join(", ")}.`)}let u=re(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${Ue.join(", ")}.`);if(!re(c))throw new Error(`Unknown --to "${a}". Supported: ${Ue.join(", ")}.`);let g=e["dry-run"]===true,h=g?"dry-run":"convert",_=Bne(o);try{await u.generators.importFrom(_,{scope:n});let S=await jt(_),R=Sa.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),I=await on({config:R,canonical:S,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let P of I)if(P.status==="created"||P.status==="updated"){let K=fm(o,P.path,P.target);await L(K,P.content);}}let w=I.filter(P=>P.status!=="skipped"),D=w.map(P=>({path:P.path,target:P.target,status:P.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:D,summary:{created:w.filter(P=>P.status==="created").length,updated:w.filter(P=>P.status==="updated").length,unchanged:w.filter(P=>P.status==="unchanged").length}}}}finally{rmSync(_,{recursive:true,force:true});}}s(uy,"runConvert");se();function Jz(e){let{data:t}=e;if(t.files.length===0){y.info(`No files found to convert from ${t.from}.`);return}if(t.mode==="dry-run"){for(let i of t.files)y.info(`[dry-run] ${i.status} ${i.path} (${i.target})`);return}for(let i of t.files)(i.status==="created"||i.status==="updated")&&y.success(`${i.status} ${i.path}`);let{created:r,updated:n,unchanged:o}=t.summary;r>0||n>0?y.info(`Converted from ${t.from} \u2192 ${t.to}: ${r} created, ${n} updated, ${o} unchanged`):y.info(`Nothing changed. (${o} unchanged)`);}s(Jz,"renderConvert");var Kne=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,v=class extends Error{static{s(this,"McpError");}code;details;constructor(t,r,n){if(Kne.test(r))throw new Error(`McpError refuses absolute fs path in message: ${r}`);super(r),this.code=t,this.details=n;}toEnvelope(){return this.details===void 0?{code:this.code,message:this.message}:{code:this.code,message:this.message,details:this.details}}};function Mm(e){return e.replace(/(['"`])\/[^'"`\s]+\1/gu,"$1<redacted>$1").replace(/(['"`])[A-Z]:[\\/][^'"`\s]+\1/gu,"$1<redacted>$1").replace(/\/[A-Za-z][^\s'"`<>()]*/gu,"<redacted>").replace(/[A-Z]:[\\/][^\s'"`<>()]*/gu,"<redacted>")}s(Mm,"redactAbsolutePaths");async function cC(e){let t=resolve(e.projectRoot,".agentsmesh",e.feature),r=resolve(t,e.relativePath);if(!r.startsWith(t+sep)&&r!==t)throw new v("PATH_TRAVERSAL",`path escapes ${e.feature} directory`);if(Buffer.byteLength(e.content,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file body exceeds 1 MiB cap",{limit:1048576,actual:Buffer.byteLength(e.content,"utf8")});await mkdir(dirname(r),{recursive:true});let n=`${r}.tmp.${process.pid}.${Date.now()}`;return await writeFile(n,e.content,"utf8"),await rename(n,r),r}s(cC,"safeWrite");var Qne=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function fa(e){let t=Qne.exec(e);if(!t)return {frontmatter:{},body:e};let[,r,n]=t;return {frontmatter:parse(r)??{},body:n}}s(fa,"parseMd");function Gm(e,t){return Object.keys(e).length===0?t:`---
636
683
  ${stringify(e).trimEnd()}
637
684
  ---
638
685
 
639
- ${t}`}s(Mm,"serializeMd");var Hne=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,zne={rules:"_root"};function my(e){if(!Hne.test(e)||e.includes(".."))throw new v("INVALID_NAME",`invalid name: ${e}`)}s(my,"checkName");function py(e,t,r){return resolve(e,".agentsmesh",t,`${r}.md`)}s(py,"pathFor");function Gm(e){let{feature:t,frontmatterSchema:r,toSummary:n}=e,o=s(l=>resolve(l,".agentsmesh",t),"featureDir");async function i(l){try{return (await readdir(o(l),{withFileTypes:!0})).filter(m=>m.isFile()&&m.name.endsWith(".md")).map(m=>m.name)}catch{return []}}s(i,"listFiles");async function a(l){try{return await stat(l),!0}catch{return false}}return s(a,"exists"),{async list(l){let c=await i(l.projectRoot),m=[];for(let p of c){let u=p.replace(/\.md$/,""),f=await readFile(join(o(l.projectRoot),p),"utf8"),{frontmatter:g}=da(f);m.push(n(u,g));}return m},async get(l,{name:c}){my(c);let m=py(l.projectRoot,t,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=da(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new v("NOT_FOUND",`${t} "${c}" not found`):new v("IO_ERROR",`failed to read ${t}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){my(c);let f=r.safeParse(m);if(!f.success)throw new v("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=py(l.projectRoot,t,c);if(await a(g))throw new v("ALREADY_EXISTS",`${t} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new v("LIMIT_EXCEEDED",`${t} dir at ${1e3} entries`);let _=Mm(m,p);return u===true?{path:g,written:false}:(await iC({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:_}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){my(c);let g=py(l.projectRoot,t,c),h;try{let w=await readFile(g,"utf8");h=da(w);}catch(w){let D=w.code;throw D==="ENOENT"?new v("NOT_FOUND",`${t} "${c}" not found`):new v("IO_ERROR",`failed to read ${t}`,{errno:D})}let _=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,S=r.safeParse(_);if(!S.success)throw new v("VALIDATION_FAILED","invalid frontmatter",S.error.issues);let R=p!==void 0?p:h.body,I=Mm(_,R);return f===true?{path:g,written:false}:(await iC({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:I}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(my(c),zne[t]===c&&m!==true)throw new v("PROTECTED_FILE",`${t} "${c}" requires force: true`);let u=py(l.projectRoot,t,c);if(!await a(u))throw new v("NOT_FOUND",`${t} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(Gm,"createCanonicalHandlers");var Vne=z$1.object({description:z$1.string().optional(),root:z$1.boolean().optional(),globs:z$1.array(z$1.string()).nullable().optional(),targets:z$1.array(z$1.string()).nullable().optional()}).passthrough(),Wz=Gm({feature:"rules",frontmatterSchema:Vne,toSummary:s((e,t)=>({name:e,description:t.description??null,root:!!t.root,globs:t.globs??null,targets:t.targets??null}),"toSummary")});var Jne=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),Hz=Gm({feature:"commands",frontmatterSchema:Jne,toSummary:s((e,t)=>({name:e,description:t.description??null,allowedTools:t["allowed-tools"]??null}),"toSummary")});var Yne=z$1.object({name:z$1.string().optional(),description:z$1.string().optional(),tools:z$1.array(z$1.string()).optional(),model:z$1.string().optional()}).passthrough(),zz=Gm({feature:"agents",frontmatterSchema:Yne,toSummary:s((e,t)=>({name:e,description:t.description??null,tools:t.tools??null,model:t.model??null}),"toSummary")});var Xne=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),Qne=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")'),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter fields (e.g. { description, globs, targets })"),body:z$1.string().describe("Markdown body content"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),qne=z$1.object({}).strict();function lC(e,t){let r=e==="rule"?"rules":e==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:qne,handler:s(n=>t.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${e}`,description:`Get a single ${e} by name`,inputSchema:Xne,handler:s((n,o)=>t.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${e}`,description:`Create a new ${e}`,inputSchema:Qne,handler:s((n,o)=>t.create(n,o),"handler")},{name:`update_${e}`,description:`Update a ${e}. Default: replace frontmatter entirely. Set merge=true to shallow-merge. Omitting body preserves the existing body.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to update"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter fields (replaces by default; set merge=true to shallow-merge)"),body:z$1.string().optional().describe("New markdown body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("If true, shallow-merge frontmatter instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),handler:s((n,o)=>t.update(n,o),"handler")},{name:`delete_${e}`,description:`Delete a ${e}. For rules: deleting _root requires force=true.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to delete"),force:z$1.boolean().optional().describe("Required to delete protected files like _root"),dry_run:z$1.boolean().optional().describe("Preview without deleting")}),handler:s((n,o)=>t.delete(n,o),"handler")}]}s(lC,"canonicalTools");var Vz=[...lC("rule",Wz),...lC("command",Hz),...lC("agent",zz)];async function Yz(e){let t=resolve(e.projectRoot,".agentsmesh/skills",e.skillName),r=resolve(t,e.filePath);if(!r.startsWith(t+sep)&&r!==t)throw new v("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new v("NOT_FOUND",`skill file not found: ${e.filePath}`):new v("IO_ERROR","failed to read skill file")}}s(Yz,"safeRead");var soe=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,ioe=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,Zz=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function id(e){if(!soe.test(e))throw new v("INVALID_NAME",`invalid skill name: ${e}`)}s(id,"checkName");function pC(e){if(!ioe.test(e)||e.includes("..")||e.includes("//"))throw new v("PATH_TRAVERSAL",`invalid supporting-file path: ${e}`)}s(pC,"checkSupportPath");async function fy(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(e),{recursive:true});let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(fy,"atomicWrite");var e1=s(e=>resolve(e,".agentsmesh/skills"),"skillsDir"),ad=s((e,t)=>resolve(e1(e),t),"skillDir"),Gl={async list(e){let t;try{t=(await readdir(e1(e.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of t)try{let o=await readFile(resolve(ad(e.projectRoot,n),"SKILL.md"),"utf8"),i=da(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(e,{name:t}){id(t);let r=ad(e.projectRoot,t);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=da(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:t,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new v("NOT_FOUND",`skill "${t}" not found`):new v("IO_ERROR","failed to read skill")}},async getFile(e,{name:t,path:r}){return id(t),pC(r),{content:await Yz({projectRoot:e.projectRoot,skillName:t,filePath:r}),encoding:"utf-8"}},async create(e,t){id(t.name);let r=Zz.safeParse(t.frontmatter);if(!r.success)throw new v("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=ad(e.projectRoot,t.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new v("ALREADY_EXISTS",`skill "${t.name}" exists`);let i=t.supportingFiles??{},a=Object.keys(i);if(a.forEach(pC),a.length+1>1e3)throw new v("LIMIT_EXCEEDED","supporting files exceed cap");if(t.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await fy(l,Mm(t.frontmatter,t.body));for(let[c,m]of Object.entries(i))await fy(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(e,t){id(t.name);let r=ad(e.projectRoot,t.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=da(p);}catch(p){throw p.code==="ENOENT"?new v("NOT_FOUND",`skill "${t.name}" not found`):new v("IO_ERROR","failed to read skill")}let o=t.frontmatter===void 0?n.frontmatter:t.merge===true?{...n.frontmatter,...t.frontmatter}:t.frontmatter,i=Zz.safeParse(o);if(!i.success)throw new v("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=t.body!==void 0?t.body:n.body,l=t.supportingFiles??{};Object.keys(l).forEach(pC);let c=[],m=[];if(t.dry_run===true)return Object.entries(l).forEach(([p,u])=>(u===null?m:c).push(p)),{path:r,written:false,supportingFilesAffected:{written:c,deleted:m}};await fy(resolve(r,"SKILL.md"),Mm(o,a));for(let[p,u]of Object.entries(l)){let f=resolve(r,p);if(u===null)try{await rm$1(f),m.push(p);}catch{}else await fy(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(e,{name:t,dry_run:r}){id(t);let n=ad(e.projectRoot,t);try{await stat(n);}catch{throw new v("NOT_FOUND",`skill "${t}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var aoe=z$1.object({}).strict(),loe=z$1.object({name:z$1.string().describe("Item name")}),t1=[{name:"list_skills",description:"List skills",inputSchema:aoe,handler:s(e=>Gl.list(e),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:loe,handler:s((e,t)=>Gl.get(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}"},{name:"get_skill_file",description:"Read a skill supporting file by name and relative path",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),path:z$1.string().describe('Relative path within the skill directory (e.g. "helper.md")')}),handler:s((e,t)=>Gl.getFile(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}/files/{path}"},{name:"create_skill",description:"Create a skill directory with SKILL.md and optional supporting files",inputSchema:z$1.object({name:z$1.string().describe("Skill name (becomes directory name)"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter for SKILL.md"),body:z$1.string().describe("Markdown body for SKILL.md"),supportingFiles:z$1.record(z$1.string(),z$1.string()).optional().describe("Map of relative-path \u2192 content for supporting files"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Gl.create(e,t),"handler")},{name:"update_skill",description:"Update a skill. supportingFiles: string value writes/replaces, null deletes, unlisted files are untouched.",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter (replaces by default; merge=true to shallow-merge)"),body:z$1.string().optional().describe("New body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("Shallow-merge frontmatter instead of replacing"),supportingFiles:z$1.record(z$1.string(),z$1.union([z$1.string(),z$1.null()])).optional().describe("Map of path \u2192 content (string=write, null=delete, absent=keep)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Gl.update(e,t),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>Gl.delete(e,t),"handler")}];async function r1(e){if(e.filename!==void 0&&e.filename!=="agentsmesh.yaml")throw new v("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(e.content,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let t=resolve(e.projectRoot,"agentsmesh.yaml"),r=`${t}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,e.content,"utf8"),await rename(r,t),t}s(r1,"safeConfigWrite");qo();np();async function ld(e){try{return parse(await readFile(e,"utf8"))}catch(t){if(t.code==="ENOENT")return null;throw new v("IO_ERROR","failed to read yaml")}}s(ld,"readYaml");async function jm(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(jm,"atomicWrite");var Rr={async getConfig(e){let t=await ld(resolve(e.projectRoot,"agentsmesh.yaml"));if(t===null)throw new v("NO_PROJECT","agentsmesh.yaml missing");return t},async listMcpServers(e){let t=resolve(e.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await cn(t))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(e){return await ld(resolve(e.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(e){return await ld(resolve(e.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(e){try{return {patterns:(await readFile(resolve(e.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(e,t){let r=await ld(resolve(e.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=t.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",t.targets),o("features",t.features),t.conversions!==void 0&&(n.conversions=t.merge===true&&r.conversions!==void 0?{...r.conversions,...t.conversions}:t.conversions);let i=_a.safeParse(n);if(!i.success)throw new v("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return t.dry_run===true?{path:resolve(e.projectRoot,"agentsmesh.yaml"),written:false}:{path:await r1({projectRoot:e.projectRoot,content:a,filename:t.filename}),written:true}},async addMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[t.name]!==void 0)throw new v("ALREADY_EXISTS",`server "${t.name}" exists`);return n.mcpServers[t.name]=t.server,t.dry_run===true?{path:r,written:false}:(await jm(r,JSON.stringify(n,null,2)+`
640
- `),{path:r,written:true})},async updateMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new v("NOT_FOUND",`server "${t.name}" not found`);return n.mcpServers[t.name]=t.merge===true?{...n.mcpServers[t.name],...t.server}:t.server,t.dry_run===true?{path:r,written:false}:(await jm(r,JSON.stringify(n,null,2)+`
641
- `),{path:r,written:true})},async removeMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new v("NOT_FOUND",`server "${t.name}" not found`);return delete n.mcpServers[t.name],t.dry_run===true?{path:r,removed:false}:(await jm(r,JSON.stringify(n,null,2)+`
642
- `),{path:r,removed:true})},async updatePermissions(e,t){let r=resolve(e.projectRoot,".agentsmesh/permissions.yaml"),n=await ld(r)??{allow:[],deny:[],ask:[]},o={...n},i=s((a,l)=>{l!==void 0&&(o[a]=t.mode==="append"?Array.from(new Set([...n[a]??[],...l])):l);},"apply");return i("allow",t.allow),i("deny",t.deny),i("ask",t.ask),t.dry_run===true?{path:r,written:false}:(await jm(r,stringify(o)),{path:r,written:true})},async updateHooks(e,t){let r=resolve(e.projectRoot,".agentsmesh/hooks.yaml");return t.dry_run===true?{path:r,written:false}:(await jm(r,stringify(t.hooks)),{path:r,written:true})},async updateIgnore(e,t){let r=resolve(e.projectRoot,".agentsmesh/ignore"),n;if(t.mode==="append"){let o=(await readFile(r,"utf8").catch(()=>"")).split(/\r?\n/).filter(Boolean);n=Array.from(new Set([...o,...t.patterns]));}else n=t.patterns;return t.dry_run===true?{path:r,written:false}:(await jm(r,n.join(`
686
+ ${t}`}s(Gm,"serializeMd");var roe=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,noe={rules:"_root"};function dy(e){if(!roe.test(e)||e.includes(".."))throw new v("INVALID_NAME",`invalid name: ${e}`)}s(dy,"checkName");function fy(e,t,r){return resolve(e,".agentsmesh",t,`${r}.md`)}s(fy,"pathFor");function $m(e){let{feature:t,frontmatterSchema:r,toSummary:n}=e,o=s(l=>resolve(l,".agentsmesh",t),"featureDir");async function i(l){try{return (await readdir(o(l),{withFileTypes:!0})).filter(m=>m.isFile()&&m.name.endsWith(".md")).map(m=>m.name)}catch{return []}}s(i,"listFiles");async function a(l){try{return await stat(l),!0}catch{return false}}return s(a,"exists"),{async list(l){let c=await i(l.projectRoot),m=[];for(let p of c){let u=p.replace(/\.md$/,""),f=await readFile(join(o(l.projectRoot),p),"utf8"),{frontmatter:g}=fa(f);m.push(n(u,g));}return m},async get(l,{name:c}){dy(c);let m=fy(l.projectRoot,t,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=fa(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new v("NOT_FOUND",`${t} "${c}" not found`):new v("IO_ERROR",`failed to read ${t}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){dy(c);let f=r.safeParse(m);if(!f.success)throw new v("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=fy(l.projectRoot,t,c);if(await a(g))throw new v("ALREADY_EXISTS",`${t} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new v("LIMIT_EXCEEDED",`${t} dir at ${1e3} entries`);let _=Gm(m,p);return u===true?{path:g,written:false}:(await cC({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:_}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){dy(c);let g=fy(l.projectRoot,t,c),h;try{let w=await readFile(g,"utf8");h=fa(w);}catch(w){let D=w.code;throw D==="ENOENT"?new v("NOT_FOUND",`${t} "${c}" not found`):new v("IO_ERROR",`failed to read ${t}`,{errno:D})}let _=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,S=r.safeParse(_);if(!S.success)throw new v("VALIDATION_FAILED","invalid frontmatter",S.error.issues);let R=p!==void 0?p:h.body,I=Gm(_,R);return f===true?{path:g,written:false}:(await cC({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:I}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(dy(c),noe[t]===c&&m!==true)throw new v("PROTECTED_FILE",`${t} "${c}" requires force: true`);let u=fy(l.projectRoot,t,c);if(!await a(u))throw new v("NOT_FOUND",`${t} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s($m,"createCanonicalHandlers");var ooe=z$1.object({description:z$1.string().optional(),root:z$1.boolean().optional(),globs:z$1.array(z$1.string()).nullable().optional(),targets:z$1.array(z$1.string()).nullable().optional()}).passthrough(),Qz=$m({feature:"rules",frontmatterSchema:ooe,toSummary:s((e,t)=>({name:e,description:t.description??null,root:!!t.root,globs:t.globs??null,targets:t.targets??null}),"toSummary")});var soe=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),qz=$m({feature:"commands",frontmatterSchema:soe,toSummary:s((e,t)=>({name:e,description:t.description??null,allowedTools:t["allowed-tools"]??null}),"toSummary")});var ioe=z$1.object({name:z$1.string().optional(),description:z$1.string().optional(),tools:z$1.array(z$1.string()).optional(),model:z$1.string().optional()}).passthrough(),Zz=$m({feature:"agents",frontmatterSchema:ioe,toSummary:s((e,t)=>({name:e,description:t.description??null,tools:t.tools??null,model:t.model??null}),"toSummary")});var aoe=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),loe=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")'),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter fields (e.g. { description, globs, targets })"),body:z$1.string().describe("Markdown body content"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),coe=z$1.object({}).strict();function pC(e,t){let r=e==="rule"?"rules":e==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:coe,handler:s(n=>t.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${e}`,description:`Get a single ${e} by name`,inputSchema:aoe,handler:s((n,o)=>t.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${e}`,description:`Create a new ${e}`,inputSchema:loe,handler:s((n,o)=>t.create(n,o),"handler")},{name:`update_${e}`,description:`Update a ${e}. Default: replace frontmatter entirely. Set merge=true to shallow-merge. Omitting body preserves the existing body.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to update"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter fields (replaces by default; set merge=true to shallow-merge)"),body:z$1.string().optional().describe("New markdown body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("If true, shallow-merge frontmatter instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),handler:s((n,o)=>t.update(n,o),"handler")},{name:`delete_${e}`,description:`Delete a ${e}. For rules: deleting _root requires force=true.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to delete"),force:z$1.boolean().optional().describe("Required to delete protected files like _root"),dry_run:z$1.boolean().optional().describe("Preview without deleting")}),handler:s((n,o)=>t.delete(n,o),"handler")}]}s(pC,"canonicalTools");var e1=[...pC("rule",Qz),...pC("command",qz),...pC("agent",Zz)];async function r1(e){let t=resolve(e.projectRoot,".agentsmesh/skills",e.skillName),r=resolve(t,e.filePath);if(!r.startsWith(t+sep)&&r!==t)throw new v("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new v("NOT_FOUND",`skill file not found: ${e.filePath}`):new v("IO_ERROR","failed to read skill file")}}s(r1,"safeRead");var hoe=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,yoe=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,i1=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function ld(e){if(!hoe.test(e))throw new v("INVALID_NAME",`invalid skill name: ${e}`)}s(ld,"checkName");function fC(e){if(!yoe.test(e)||e.includes("..")||e.includes("//"))throw new v("PATH_TRAVERSAL",`invalid supporting-file path: ${e}`)}s(fC,"checkSupportPath");async function yy(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(e),{recursive:true});let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(yy,"atomicWrite");var a1=s(e=>resolve(e,".agentsmesh/skills"),"skillsDir"),cd=s((e,t)=>resolve(a1(e),t),"skillDir"),jl={async list(e){let t;try{t=(await readdir(a1(e.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of t)try{let o=await readFile(resolve(cd(e.projectRoot,n),"SKILL.md"),"utf8"),i=fa(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(e,{name:t}){ld(t);let r=cd(e.projectRoot,t);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=fa(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:t,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new v("NOT_FOUND",`skill "${t}" not found`):new v("IO_ERROR","failed to read skill")}},async getFile(e,{name:t,path:r}){return ld(t),fC(r),{content:await r1({projectRoot:e.projectRoot,skillName:t,filePath:r}),encoding:"utf-8"}},async create(e,t){ld(t.name);let r=i1.safeParse(t.frontmatter);if(!r.success)throw new v("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=cd(e.projectRoot,t.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new v("ALREADY_EXISTS",`skill "${t.name}" exists`);let i=t.supportingFiles??{},a=Object.keys(i);if(a.forEach(fC),a.length+1>1e3)throw new v("LIMIT_EXCEEDED","supporting files exceed cap");if(t.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await yy(l,Gm(t.frontmatter,t.body));for(let[c,m]of Object.entries(i))await yy(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(e,t){ld(t.name);let r=cd(e.projectRoot,t.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=fa(p);}catch(p){throw p.code==="ENOENT"?new v("NOT_FOUND",`skill "${t.name}" not found`):new v("IO_ERROR","failed to read skill")}let o=t.frontmatter===void 0?n.frontmatter:t.merge===true?{...n.frontmatter,...t.frontmatter}:t.frontmatter,i=i1.safeParse(o);if(!i.success)throw new v("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=t.body!==void 0?t.body:n.body,l=t.supportingFiles??{};Object.keys(l).forEach(fC);let c=[],m=[];if(t.dry_run===true)return Object.entries(l).forEach(([p,u])=>(u===null?m:c).push(p)),{path:r,written:false,supportingFilesAffected:{written:c,deleted:m}};await yy(resolve(r,"SKILL.md"),Gm(o,a));for(let[p,u]of Object.entries(l)){let f=resolve(r,p);if(u===null)try{await rm$1(f),m.push(p);}catch{}else await yy(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(e,{name:t,dry_run:r}){ld(t);let n=cd(e.projectRoot,t);try{await stat(n);}catch{throw new v("NOT_FOUND",`skill "${t}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var _oe=z$1.object({}).strict(),Soe=z$1.object({name:z$1.string().describe("Item name")}),l1=[{name:"list_skills",description:"List skills",inputSchema:_oe,handler:s(e=>jl.list(e),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:Soe,handler:s((e,t)=>jl.get(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}"},{name:"get_skill_file",description:"Read a skill supporting file by name and relative path",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),path:z$1.string().describe('Relative path within the skill directory (e.g. "helper.md")')}),handler:s((e,t)=>jl.getFile(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}/files/{path}"},{name:"create_skill",description:"Create a skill directory with SKILL.md and optional supporting files",inputSchema:z$1.object({name:z$1.string().describe("Skill name (becomes directory name)"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter for SKILL.md"),body:z$1.string().describe("Markdown body for SKILL.md"),supportingFiles:z$1.record(z$1.string(),z$1.string()).optional().describe("Map of relative-path \u2192 content for supporting files"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>jl.create(e,t),"handler")},{name:"update_skill",description:"Update a skill. supportingFiles: string value writes/replaces, null deletes, unlisted files are untouched.",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter (replaces by default; merge=true to shallow-merge)"),body:z$1.string().optional().describe("New body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("Shallow-merge frontmatter instead of replacing"),supportingFiles:z$1.record(z$1.string(),z$1.union([z$1.string(),z$1.null()])).optional().describe("Map of path \u2192 content (string=write, null=delete, absent=keep)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>jl.update(e,t),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>jl.delete(e,t),"handler")}];async function c1(e){if(e.filename!==void 0&&e.filename!=="agentsmesh.yaml")throw new v("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(e.content,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let t=resolve(e.projectRoot,"agentsmesh.yaml"),r=`${t}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,e.content,"utf8"),await rename(r,t),t}s(c1,"safeConfigWrite");function Loe(e){if(!e||typeof e!="object")return [e];let t=e,r=t.hooks;return Array.isArray(r)?r.map(n=>{let o=n&&typeof n=="object"?n:{};return {matcher:t.matcher,...o.type!==void 0&&{type:o.type},...o.command!==void 0&&{command:o.command},...o.prompt!==void 0&&{prompt:o.prompt},...o.timeout!==void 0&&{timeout:o.timeout}}}):[t]}s(Loe,"flattenEntry");function m1(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Array.isArray(n)?n.flatMap(Loe):n;return t}s(m1,"normalizeHooksRecord");qo();op();async function md(e){try{return parse(await readFile(e,"utf8"))}catch(t){if(t.code==="ENOENT")return null;throw new v("IO_ERROR","failed to read yaml")}}s(md,"readYaml");async function Um(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(Um,"atomicWrite");var kr={async getConfig(e){let t=await md(resolve(e.projectRoot,"agentsmesh.yaml"));if(t===null)throw new v("NO_PROJECT","agentsmesh.yaml missing");return t},async listMcpServers(e){let t=resolve(e.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await cn(t))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(e){return await md(resolve(e.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(e){return await md(resolve(e.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(e){try{return {patterns:(await readFile(resolve(e.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(e,t){let r=await md(resolve(e.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=t.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",t.targets),o("features",t.features),t.conversions!==void 0&&(n.conversions=t.merge===true&&r.conversions!==void 0?{...r.conversions,...t.conversions}:t.conversions);let i=Sa.safeParse(n);if(!i.success)throw new v("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return t.dry_run===true?{path:resolve(e.projectRoot,"agentsmesh.yaml"),written:false}:{path:await c1({projectRoot:e.projectRoot,content:a,filename:t.filename}),written:true}},async addMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[t.name]!==void 0)throw new v("ALREADY_EXISTS",`server "${t.name}" exists`);return n.mcpServers[t.name]=t.server,t.dry_run===true?{path:r,written:false}:(await Um(r,JSON.stringify(n,null,2)+`
687
+ `),{path:r,written:true})},async updateMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new v("NOT_FOUND",`server "${t.name}" not found`);return n.mcpServers[t.name]=t.merge===true?{...n.mcpServers[t.name],...t.server}:t.server,t.dry_run===true?{path:r,written:false}:(await Um(r,JSON.stringify(n,null,2)+`
688
+ `),{path:r,written:true})},async removeMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await cn(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new v("NOT_FOUND",`server "${t.name}" not found`);return delete n.mcpServers[t.name],t.dry_run===true?{path:r,removed:false}:(await Um(r,JSON.stringify(n,null,2)+`
689
+ `),{path:r,removed:true})},async updatePermissions(e,t){let r=resolve(e.projectRoot,".agentsmesh/permissions.yaml"),n=await md(r)??{allow:[],deny:[],ask:[]},o={...n},i=s((a,l)=>{l!==void 0&&(o[a]=t.mode==="append"?Array.from(new Set([...n[a]??[],...l])):l);},"apply");return i("allow",t.allow),i("deny",t.deny),i("ask",t.ask),t.dry_run===true?{path:r,written:false}:(await Um(r,stringify(o)),{path:r,written:true})},async updateHooks(e,t){let r=resolve(e.projectRoot,".agentsmesh/hooks.yaml");return t.dry_run===true?{path:r,written:false}:(await Um(r,stringify(m1(t.hooks))),{path:r,written:true})},async updateIgnore(e,t){let r=resolve(e.projectRoot,".agentsmesh/ignore"),n;if(t.mode==="append"){let o=(await readFile(r,"utf8").catch(()=>"")).split(/\r?\n/).filter(Boolean);n=Array.from(new Set([...o,...t.patterns]));}else n=t.patterns;return t.dry_run===true?{path:r,written:false}:(await Um(r,n.join(`
643
690
  `)+`
644
- `),{path:r,written:true})}};var Coe=/[;&|`$<>!\\\r\n]/u,Eoe=/^[A-Za-z_][A-Za-z0-9_]*$/u,Ooe=/^[A-Za-z][A-Za-z0-9_-]*$/u,woe=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,s1=/[\r\n]/u,i1=/[\0\r\n]/u;function boe(e){return i1.test(e)?false:!e.split(/[/\\]/u).includes("..")}s(boe,"isSafeMcpCwd");function Aoe(e){return z$1.string().min(1).max(512).refine(t=>!Coe.test(t),{message:`${e} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(Aoe,"noShellMeta");var fC=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(e=>!i1.test(e),{message:"description must not contain NUL or newline characters"}).optional(),command:Aoe("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(Eoe,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(e=>/^https?:\/\//u.test(e),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(Ooe,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(boe,{message:'cwd must not contain "..", NUL, or newline characters'}).optional(),disabled:z$1.boolean().optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict(),xoe=z$1.object({type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),a1=z$1.string().max(256).refine(e=>!s1.test(e),{message:"hook matcher must not contain newlines"}),Toe=z$1.object({matcher:a1,type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),Poe=z$1.object({matcher:a1,hooks:z$1.array(xoe).min(1).max(50)}).strict(),Doe=z$1.union([Toe,Poe]),l1=z$1.record(z$1.string().min(1).max(64),z$1.array(Doe).max(100)),Noe=z$1.string().min(1).max(256).refine(e=>!s1.test(e),{message:"permission pattern must not contain newlines"}).refine(e=>woe.test(e),{message:"permission pattern must match Tool or Tool(matcher) form"}),hy=z$1.array(Noe).max(500);var cd=z$1.object({}).strict(),voe=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:cd,handler:s(e=>Rr.getConfig(e),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:cd,handler:s(e=>Rr.listMcpServers(e),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:cd,handler:s(e=>Rr.getPermissions(e),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:cd,handler:s(e=>Rr.getHooks(e),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:cd,handler:s(e=>Rr.getIgnore(e),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],Foe=[{name:"update_config",description:"Update agentsmesh.yaml. Default: replace listed fields. Set merge=true to union arrays and shallow-merge objects. Only writes agentsmesh.yaml, never agentsmesh.local.yaml.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe('Target tool IDs (e.g. ["claude-code", "cursor"])'),features:z$1.array(z$1.string()).optional().describe('Feature names (e.g. ["rules", "commands", "mcp"])'),conversions:z$1.record(z$1.string(),z$1.unknown()).optional().describe("Conversion overrides"),merge:z$1.boolean().optional().describe("If true, union arrays and shallow-merge objects instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Rr.updateConfig(e,t),"handler")},{name:"add_mcp_server",description:"Add an MCP server entry to .agentsmesh/mcp.json. Fails if name already exists.",inputSchema:z$1.object({name:z$1.string().describe('Server name (e.g. "github", "filesystem")'),server:fC.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Rr.addMcpServer(e,t),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:fC,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>Rr.updateMcpServer(e,t),"handler")},{name:"remove_mcp_server",description:"Remove an MCP server entry",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>Rr.removeMcpServer(e,t),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:hy.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:hy.optional().describe("Denied tool patterns"),ask:hy.optional().describe("Tools requiring confirmation"),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=union+dedup (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Rr.updatePermissions(e,t),"handler")},{name:"update_hooks",description:"Replace hooks.yaml content entirely. Read current hooks with get_hooks, modify, then write back.",inputSchema:z$1.object({hooks:l1.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Rr.updateHooks(e,t),"handler")},{name:"update_ignore",description:"Update .agentsmesh/ignore patterns. mode=replace (default) overwrites; mode=append adds new patterns.",inputSchema:z$1.object({patterns:z$1.array(z$1.string()).describe('Gitignore-syntax patterns (e.g. ["node_modules/", "dist/", ".env*"])'),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=add (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>Rr.updateIgnore(e,t),"handler")}],c1=[...voe,...Foe];jI();zn();function Moe(){return Object.fromEntries(Ue.map(e=>[e,Object.fromEntries(Object.entries(vU).map(([t,r])=>[t,r[e]]))]))}s(Moe,"buildTargetIndex");var m1=Moe(),gC={async list(){return m1},async get(e){let t=m1[e.targetId];if(t===void 0)throw new v("NOT_FOUND",`unknown target: ${e.targetId}`);return {targetId:e.targetId,capabilities:t}}};Qo();Qo();Od();tt();Ho();sn();rt();zn();async function hC(e,t){let r=re(e);if(!r)throw new Hn(e,{supported:[...Ue,...Bd().map(n=>n.id)]});return r.generators.importFrom(t.root,{scope:t.scope??"project"})}s(hC,"importFrom");async function Um(e,t={}){let r=t.scope??"project",{config:n,context:o}=await ye(e,r);await ze(n,e);let{canonical:i}=await Mt(n,o.configDir,{refreshRemoteCache:t.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Um,"loadProjectContext");async function yC(e){let t=e.targetFilter?[...e.targetFilter]:void 0;return Uh(e.config,e.canonical,e.projectRoot,t,{scope:e.scope})}s(yC,"lint");async function _C(e){let t=await on(e);return {...$h(t),results:t}}s(_C,"diff");async function SC(e){return Bh(e)}s(SC,"check");Qo();Ho();Ia();Od();xe();rt();Ae();function $l(e,t={}){let r=Math.max(1,t.cap??Lh),n=Th(e),o=[],i=new Map;for(let[f,g]of Object.entries(e.lessons)){if(g.status!=="active")continue;if(t.trimOverCap===false||g.triggers.length<=r){i.set(f,g.triggers);continue}let h=[...g.triggers].sort((R,I)=>{let w=n.get(R),D=n.get(I);return w!==D?w-D:R<I?-1:1}),_=new Set(h.slice(r)),S=g.triggers.filter(R=>!_.has(R));i.set(f,S),o.push({id:f,removedTriggers:[..._],keptCount:S.length});}let a=[],l=[];if(t.knownPaths!==void 0){let f=Fu(e,t.knownPaths);if(f.size>0){for(let[g,h]of i){let _=h.filter(R=>f.has(R));if(_.length===0)continue;let S=h.filter(R=>!f.has(R));S.length>=1?(i.set(g,S),a.push({id:g,removedTriggers:_,keptCount:S.length})):l.push(g);}l.sort();}}let c=new Set;for(let f of i.values())for(let g of f)c.add(g);let m=Object.keys(e.triggers).filter(f=>!c.has(f)).sort(),p=new Set;for(let f of Object.values(e.lessons))for(let g of f.topics)p.add(g);let u=Object.keys(e.topics).filter(f=>!p.has(f)).sort();return {removedTriggerIds:m,removedTopicIds:u,trimmedLessons:o,removedDeadGlobs:a,unreachableLessons:l,cap:r}}s($l,"planPrune");function yy(e,t){for(let n of [...t.trimmedLessons,...t.removedDeadGlobs??[]]){let o=e.lessons[n.id];if(o===void 0)continue;let i=new Set(n.removedTriggers);e.lessons[n.id]={...o,triggers:o.triggers.filter(a=>!i.has(a))};}for(let n of t.removedTopicIds)delete e.topics[n];let r=new Set(t.removedTriggerIds);if(r.size!==0){for(let[n,o]of Object.entries(e.lessons))o.triggers.some(i=>r.has(i))&&(e.lessons[n]={...o,triggers:o.triggers.filter(i=>!r.has(i))});for(let n of r)delete e.triggers[n];}}s(yy,"applyPruneToGraph");function md(e){return e.removedTriggerIds.length===0&&e.removedTopicIds.length===0&&e.trimmedLessons.length===0&&e.removedDeadGlobs.length===0}s(md,"isEmptyPrunePlan");function Koe(e){let t=je(e).config;if(!existsSync(t))return false;try{let r=JSON.parse(readFileSync(t,"utf8"));return typeof r!="object"||r===null?!1:r.autoPrune===!0}catch{return false}}s(Koe,"isAutoPruneEnabled");async function p1(e,t){if(!Koe(e))return null;let r=Ye(e);if(r===null||md($l(r,{trimOverCap:false,knownPaths:t})))return null;let n={removedTriggers:0,removedTopics:0,detachedDeadGlobs:0};return await Ot(e,i=>{let a=$l(i,{trimOverCap:false,knownPaths:t});md(a)||(yy(i,a),n={removedTriggers:a.removedTriggerIds.length,removedTopics:a.removedTopicIds.length,detachedDeadGlobs:a.removedDeadGlobs.reduce((l,c)=>l+c.removedTriggers.length,0)});}),n.removedTriggers+n.removedTopics+n.detachedDeadGlobs>0?n:null}s(p1,"maybeAutoPrune");function _y(e,t){let r=e.replaceAll("\\","/"),n=u1(t,r);if(!n.startsWith("../"))return n;let o=u1(RC(t),RC(resolve(t,r)));return o.startsWith("../")?n:o}s(_y,"normalizeRecallFile");function u1(e,t){let r=relative(e,resolve(e,t)).replaceAll("\\","/");return r===""?t.replaceAll("\\","/"):r}s(u1,"relativize");function RC(e){try{return realpathSync(e)}catch{let t=dirname(e);return t===e?e:resolve(RC(t),basename(e))}}s(RC,"safeRealpath");var rse="agentsmesh-lessons-seen";function Sy(e={}){if(e.disabled===true)return null;let t=e.explicit!==void 0&&e.explicit.trim().length>0?e.explicit.trim():Lm(e.env);if(t===void 0)return null;let r=nse(t);return {sessionId:t,seen:ose(r),path:r}}s(Sy,"openSessionDedup");function nse(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,200);return join(tmpdir(),rse,`${t}.json`)}s(nse,"seenPath");function ose(e){if(!existsSync(e))return new Set;try{let t=JSON.parse(readFileSync(e,"utf8"));return Array.isArray(t)?new Set(t.filter(r=>typeof r=="string")):new Set}catch{return new Set}}s(ose,"loadSeen");function Ry(e,t){return t.filter(r=>!e.seen.has(r.id))}s(Ry,"filterUnseen");function ky(e,t){if(t.length===0)return;let r=new Set(e.seen);for(let n of t)r.add(n);if(r.size!==e.seen.size)try{mkdirSync(dirname(e.path),{recursive:!0});let n=`${e.path}.${process.pid}.tmp`;writeFileSync(n,JSON.stringify([...r]),"utf8"),renameSync(n,e.path);}catch{}}s(ky,"commitSeen");async function pd(e,t,r={}){try{await ht(e);}catch{}let n=Sh(e);if(n.status==="corrupt")return {lessons:[],totalMatches:0,suppressed:0,corrupt:true};if(n.status==="newer-version")return {lessons:[],totalMatches:0,suppressed:0,newerVersion:n.version};if(n.status==="absent")return {lessons:[],totalMatches:0,suppressed:0};let o=n.graph,i=t.file===void 0?t:{...t,file:_y(t.file,e)},a=Cm(o,i),l=Sy({explicit:r.sessionId,disabled:r.noDedup}),c=l===null?a:Ry(l,a),m=Nh(e),p=Em(o,i,c,{limit:r.limit??m.limit,maxTokens:r.maxTokens===null?void 0:r.maxTokens??m.maxTokens});return l!==null&&ky(l,p.map(u=>u.id)),IC(e,o,i,a,p,{bypassed:false}),{lessons:p,totalMatches:a.length,suppressed:a.length-c.length}}s(pd,"recallLessons");function IC(e,t,r,n,o,i={}){if(!aa())return;let a=_L(t,r),l=s(m=>n.filter(({lesson:p})=>p.triggers.some(u=>m.has(u))).length,"countVia"),c=Lm();YB(e,{ts:new Date().toISOString(),hasFile:r.file!==void 0,hasCommand:r.command!==void 0,hasKeyword:r.keyword!==void 0,totalMatches:n.length,returnedCount:o.length,returnedTokens:o.reduce((m,p)=>m+Pl(p.lesson.rule),0),truncated:n.length>o.length,matchedByKind:{file:l(a.file_glob),command:l(a.command_pattern),keyword:l(a.keyword)},lessonIds:o.map(m=>m.id),bypassed:i.bypassed===true,...c!==void 0?{session:c}:{}});}s(IC,"recordRecallTelemetry");async function ud(e,t,r={}){await ht(e);let n={file:t.triggers.files?.length??0,command:t.triggers.commands?.length??0,keyword:t.triggers.keywords?.length??0},o=r.knownPaths??la(e)??void 0;try{let i=await Oh(e,t,{...r,knownPaths:o});yL(e,n,i);let a=await p1(e,o);return a===null?i:{...i,autoPruned:a}}catch(i){throw yL(e,n,null),i}}s(ud,"captureLesson");async function Iy(e,t,r,n={}){return Ot(e,o=>sse(o,t,r),{retries:n.retries})}s(Iy,"mergeLessons");function sse(e,t,r){if(t===r)throw new Error(`mergeLessons: cannot merge lesson "${t}" into itself.`);let n=e.lessons[t];if(n===void 0)throw new Error(`mergeLessons: unknown lesson "${t}".`);let o=e.lessons[r];if(o===void 0)throw new Error(`mergeLessons: unknown lesson "${r}".`);if(o.status!=="active")throw new Error(`mergeLessons: keeper "${r}" is not active (status: ${o.status}).`);if(n.status!=="active")throw new Error(`mergeLessons: loser "${t}" is already ${n.status}; nothing to merge.`);return e.lessons[r]={...o,triggers:LC(o.triggers,n.triggers),topics:LC(o.topics,n.topics),evidence:LC(o.evidence,n.evidence)},e.lessons[t]={...n,status:"superseded",supersededBy:r},{loserId:t,keeperId:r}}s(sse,"mergeInto");function LC(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(LC,"union");var CC=String.raw`L\d+(?:\s*,\s*L\d+)*`,ise=[new RegExp(String.raw`\s*\bSee\s+${CC}\.?`,"g"),new RegExp(String.raw`\s*\((?:${CC})\)\.?`,"g"),new RegExp(String.raw`\s*\[(?:${CC})\]\.?`,"g")],ase=/\s*\(also relevant[^)]*\)\s*/g;function EC(e){let t=e;for(let r of ise)t=t.replace(r,"");return t=t.replace(ase," "),t.trim()}s(EC,"stripLegacyMarkers");function d1(e){let t=[];for(let[r,n]of Object.entries(e.lessons)){let o=EC(n.rule);o===n.rule||o.length===0||(t.push(r),e.lessons[r]={...n,rule:o});}return t.sort()}s(d1,"applyStrip");async function Ly(e,t={}){await ht(e);let r=Ye(e);if(r===null)return {changedIds:[],changedCount:0};if(t.dryRun===true){let o=d1(r);return {changedIds:o,changedCount:o.length}}let n=[];return await Ot(e,o=>{n=d1(o);}),{changedIds:n,changedCount:n.length}}s(Ly,"stripMarkersInGraph");b();function fa(e){if(e instanceof v)throw e;if(e instanceof Hn)throw new v("VALIDATION_FAILED",e.message);let t=e instanceof Error?e.message:String(e);throw /unknown.*--from|unknown.*--to|unknown target/i.test(t)?new v("VALIDATION_FAILED",t):/lock/i.test(t)?new v("LOCK_HELD","generate lock is held"):new v("IO_ERROR","engine failure",{reason:t})}s(fa,"wrapEngineError");async function f1(e,t){if(t.dry_run===true)throw new v("VALIDATION_FAILED","dry_run is not supported for import \u2014 the engine writes files directly. Use diff to preview changes instead.");try{let r=await hC(t.from,{root:e.projectRoot,scope:"project"});return {imported:r.length,files:r.map(n=>({fromPath:n.fromPath,toPath:n.toPath,feature:n.feature})),warnings:[],errors:[]}}catch(r){if(r instanceof Hn)throw new v("VALIDATION_FAILED",`unknown target "${t.from}"`);let n=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(n))throw new v("VALIDATION_FAILED",n);fa(r);}}s(f1,"importFromTarget");async function g1(e,t){try{let r={from:t.from,to:t.to,"dry-run":t.dry_run===!0},n=await cy(r,e.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:t.dry_run===!0,warnings:[],errors:[]}}catch(r){let n=r instanceof Error?r.message:String(r);if(/unknown.*--from|unknown.*--to|unknown target/i.test(n))throw new v("VALIDATION_FAILED",n);fa(r);}}s(g1,"convert");async function lse(e,t){try{let r=await Um(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,i=(await on({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n})).filter(m=>m.status!=="skipped"),a=i.filter(m=>m.status==="created"||m.status==="updated");if(!t.dry_run)for(let m of a){let p=um(r.projectRoot,m.path,m.target);await L(p,m.content);}let l={};for(let m of a){let p=l[m.target]??{filesWritten:0};l[m.target]={filesWritten:p.filesWritten+1};}let c={filesWritten:a.length,byTarget:l,lockfileUpdated:!t.dry_run&&a.length>=0,errors:[],warnings:[]};return t.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){fa(r);}}s(lse,"generate");async function cse(e,t){try{let r=await Um(e.projectRoot),n=await yC({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(t.severity?n.diagnostics.filter(i=>i.level===t.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){fa(r);}}s(cse,"lint");async function mse(e){try{let t=await Um(e.projectRoot),r=await SC({config:t.config,configDir:t.configDir,canonicalDir:t.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(t){fa(t);}}s(mse,"check");async function pse(e,t){try{let r=await Um(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,o=await _C({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n});return {willCreate:o.summary.new,willModify:o.summary.updated,willDelete:o.summary.deleted}}catch(r){fa(r);}}s(pse,"diff");var jl={generate:lse,lint:cse,check:mse,diff:pse,import:f1,convert:g1};var h1=z$1.object({}).strict(),y1=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:h1,handler:s(()=>gC.list(),"handler"),resourceUri:"agentsmesh://capabilities"},{name:"get_target_capabilities",description:"Get feature support levels for a specific target (e.g. which features are native, mapped, or unsupported)",inputSchema:z$1.object({targetId:z$1.string().describe('Target tool ID (e.g. "claude-code", "cursor")')}),handler:s((e,t)=>gC.get(t),"handler"),resourceUri:"agentsmesh://capabilities/{targetId}"},{name:"generate",description:"Generate target-native config files from canonical .agentsmesh/ content. Propagates rules, commands, agents, skills, MCP, hooks, ignore, and permissions to all configured targets.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets (default: all from agentsmesh.yaml)"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features"),verbose:z$1.boolean().optional().describe("Include full file list in response"),dry_run:z$1.boolean().optional().describe("Preview without writing files")}),handler:s((e,t)=>jl.generate(e,t),"handler")},{name:"lint",description:"Lint canonical .agentsmesh/ files for schema errors, missing frontmatter, and other issues",inputSchema:z$1.object({severity:z$1.enum(["error","warning","info"]).optional().describe("Filter results by minimum severity")}),handler:s((e,t)=>jl.lint(e,t),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:h1,handler:s(e=>jl.check(e),"handler")},{name:"diff",description:"Preview what generate would create, modify, or delete without writing",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features")}),handler:s((e,t)=>jl.diff(e,t),"handler")},{name:"import",description:"Import another tool's native config into canonical .agentsmesh/. Note: dry_run is not supported (the engine writes directly).",inputSchema:z$1.object({from:z$1.string().describe('Source target ID to import from (e.g. "cursor", "claude-code")'),features:z$1.array(z$1.string()).optional().describe("Restrict import to specific features"),dry_run:z$1.boolean().optional().describe("NOT SUPPORTED \u2014 will throw VALIDATION_FAILED. Use diff instead.")}),handler:s((e,t)=>jl.import(e,t),"handler")},{name:"convert",description:"Convert config directly from one tool to another (e.g. Cursor \u2192 Claude Code) without creating canonical .agentsmesh/ files",inputSchema:z$1.object({from:z$1.string().describe('Source target ID (e.g. "cursor")'),to:z$1.string().describe('Destination target ID (e.g. "claude-code")'),dry_run:z$1.boolean().optional().describe("Preview conversion without writing files")}),handler:s((e,t)=>jl.convert(e,t),"handler")}];function OC(e){if(e instanceof v)throw e;let t=e instanceof Error?e.message:String(e),r=Fm(t);throw /lock|LockAcquisitionError/i.test(r)?new v("LOCK_HELD",".install.lock is held by another process"):/missing source|usage:|non-interactive|invalid|unknown|not found|escapes the source root/i.test(r)?new v("VALIDATION_FAILED",r):new v("IO_ERROR","install pipeline failure",{reason:r})}s(OC,"wrapInstallError");function use(e){let t={force:true};return e.path!==void 0&&(t.path=e.path),e.target!==void 0&&(t.target=e.target),e.as!==void 0&&(t.as=e.as),e.name!==void 0&&(t.name=e.name),e.extends===true&&(t.extends=true),e.all===true&&(t.all=true),e.sync===true&&(t.sync=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(use,"toInstallFlags");function dse(e){let t={force:true};return e.all===true&&(t.all=true),e.keep_pack===true&&(t["keep-pack"]=true),e.keep_generated===true&&(t["keep-generated"]=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(dse,"toUninstallFlags");async function fse(e,t){if(typeof t.source!="string"||t.source.trim().length===0)throw new v("VALIDATION_FAILED","install: `source` is required");try{let r=await Fl(use(t),[t.source],e.projectRoot);if(r.exitCode!==0)throw new v("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){OC(r);}}s(fse,"install");async function gse(e,t){if(t.all!==true&&(!Array.isArray(t.names)||t.names.length===0))throw new v("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await oy(dse(t),t.names??[],e.projectRoot)).data}catch(r){OC(r);}}s(gse,"uninstall");async function hse(e,t={}){try{let r={};return t.global===!0&&(r.global=!0),(await iy(r,e.projectRoot)).data}catch(r){OC(r);}}s(hse,"installsList");var Cy={install:fse,uninstall:gse,installsList:hse};function yse(e){let t={force:true};return e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(yse,"toRefreshFlags");function _se(e){if(e instanceof v)throw e;let t=e instanceof Error?e.message:String(e),r=Fm(t);throw /lock|LockAcquisitionError/i.test(r)?new v("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new v("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new v("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new v("REFRESH_APPLY_FAILED",r):new v("IO_ERROR","refresh pipeline failure",{reason:r})}s(_se,"wrapRefreshError");async function Sse(e,t={}){try{let r=await sy(yse(t),[...t.names??[]],e.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=t.names??[],i=n?.error??(o.length>0?`unknown pack(s): ${o.join(", ")}`:"refresh validation failed");throw new v("VALIDATION_FAILED",i)}return r.data}catch(r){_se(r);}}s(Sse,"refresh");var _1={refresh:Sse};var Rse=z$1.object({source:z$1.string().min(1).describe("Pack source \u2014 GitHub/GitLab shorthand (`github:org/repo[@ref]`), git URL, SSH URL, or local path (`local:./relative/dir`)."),path:z$1.string().optional().describe("Subdirectory within the source repo to install from. Combined with `as` for manual single-category installs."),target:z$1.string().optional().describe("Target tool ID hint for native-format auto-discovery (e.g. `claude-code`, `cursor`). Bypasses the multi-signal classifier."),as:z$1.enum(["rules","commands","agents","skills"]).optional().describe("Manual install kind. When set, the source is treated as a flat collection of that category (skips the auto-classifier)."),name:z$1.string().optional().describe("Override the generated install entry name (default: derived from `org-repo` shorthand or the source path)."),extends:z$1.boolean().optional().describe("Record as an `extends:` entry in `agentsmesh.yaml` instead of materializing a pack in `.agentsmesh/packs/`. Always-on-latest semantics; resolved every `generate`."),all:z$1.boolean().optional().describe("Install every sub-pack from a marketplace source (`.claude-plugin/marketplace.json`) or every flat collection in a multi-collection layout."),sync:z$1.boolean().optional().describe("Reinstall missing packs from `.agentsmesh/installs.yaml` instead of from `source`."),dry_run:z$1.boolean().optional().describe("Preview what would be installed without writing."),global:z$1.boolean().optional().describe("Install into the global scope (`~/.agentsmesh/`) instead of the project scope. Regenerates user-level outputs.")}),kse=z$1.object({names:z$1.array(z$1.string().min(1)).default([]).describe("Install names to remove (from `installs.yaml`). Required unless `all: true`. Each name removes the pack directory under `.agentsmesh/packs/`, the matching `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row when present."),all:z$1.boolean().optional().describe("Remove every install in the current scope. `names` is ignored when `all: true`."),keep_pack:z$1.boolean().optional().describe("Leave `.agentsmesh/packs/<name>/` on disk; only drop yaml entries. Useful when the user has locally-modified files."),keep_generated:z$1.boolean().optional().describe("Skip the post-uninstall `generate` pass. Target trees keep now-stale files until the next manual `generate`; a warning lists what will be cleaned then."),dry_run:z$1.boolean().optional().describe("Preview the removal plan; no writes. Legacy-manifest migration runs in memory only."),global:z$1.boolean().optional().describe("Uninstall from the global scope (`~/.agentsmesh/`) instead of the project scope.")}),Ise=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),Lse=z$1.object({names:z$1.array(z$1.string().min(1)).optional().describe("Pack names to refresh. Omit or pass empty array to refresh every installed pack in the current scope."),dry_run:z$1.boolean().optional().describe("Preview the refresh plan (resolved refs, drift detection) without writing."),global:z$1.boolean().optional().describe("Refresh packs in the global scope (`~/.agentsmesh/`) instead of the project scope.")}),S1=[{name:"install",description:"Install a community pack from a URL or local path. Auto-classifies the source layout (anthropic-skill-pack, canonical-agentsmesh, tool-native, or unknown) and dispatches accordingly; `--target` / `--as` override the classifier. Always runs non-interactively (every prompt accepts its documented `--force` default).",inputSchema:Rse,handler:s((e,t)=>Cy.install(e,t),"handler")},{name:"uninstall",description:"Remove one or more installed packs. Drops the pack directory, the `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row (when present), then runs `generate` so stale target files are cleaned. Mid-batch failures are isolated; survivors still apply and the response surfaces failures in `data.failed[]`.",inputSchema:kse,handler:s((e,t)=>Cy.uninstall(e,t),"handler")},{name:"installs_list",description:"List installed packs in the current scope. Read-only. Hydrates `installed_at` and `source_type` from each pack manifest where available; both are `null` for legacy packs without `.agentsmesh-install-manifest.json`.",inputSchema:Ise,handler:s((e,t)=>Cy.installsList(e,t),"handler"),resourceUri:"agentsmesh://installs"},{name:"refresh",description:"Re-fetch and re-apply installed packs against their originally-recorded source/ref. Branch pins re-resolve to the current tip; tag pins re-resolve in case the tag moved; SHA pins stay put. Per-pack atomic via `materializePack` \u2014 a failure leaves the affected pack at its prior state. Always runs non-interactively (force: true) over MCP.",inputSchema:Lse,handler:s((e,t)=>_1.refresh(e,t),"handler")}];async function Ey(e,t,r){return Ot(e,n=>{let o=n.lessons[t];if(o===void 0)throw new Error(`Unknown lesson: ${t}`);if(r!==null&&n.lessons[r]===void 0)throw new Error(`Unknown superseder: ${r}`);let i=r===null?"deprecated":"superseded";return n.lessons[t]={...o,status:i,...r===null?{}:{supersededBy:r}},{id:t,status:i,supersededBy:r}})}s(Ey,"deprecateLesson");async function R1(e,t){await ht(e.projectRoot);let r=Ye(e.projectRoot),n=r?.topics[t.topic];if(r===null||n===void 0)throw new v("NOT_FOUND",`lessons_show: unknown topic "${t.topic}".`);let o=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(t.topic)).sort(([i],[a])=>i<a?-1:1).map(([i,a])=>({id:i,rule:a.rule,status:a.status,topics:[...a.topics],triggers:[...a.triggers],evidence:[...a.evidence]}));return {topic:t.topic,summary:n.summary,lessons:o}}s(R1,"lessonsShow");async function k1(e,t){try{return await Ey(e.projectRoot,t.id,t.superseded_by??null)}catch(r){let n=r instanceof Error?r.message:String(r);throw /^Unknown lesson:|^Unknown superseder:/.test(n)?new v("NOT_FOUND",`lessons_deprecate: ${n}`):r}}s(k1,"lessonsDeprecate");function wC(e){return e===void 0?[]:typeof e=="string"?e.length>0?[e]:[]:e.filter(t=>t.length>0)}s(wC,"toTriggerList");function Cse(e){return e===void 0?[]:typeof e=="string"?e.split(",").map(t=>t.trim()).filter(t=>t.length>0):e.filter(t=>t.length>0)}s(Cse,"toEvidenceList");var Bm={async query(e,t){let r={file:t.file,command:t.command??t.cmd,keyword:t.keyword};if(r.file===void 0&&r.command===void 0&&r.keyword===void 0)throw new v("VALIDATION_FAILED","lessons_query: provide at least one of file, command, or keyword to recall against.");r.file===void 0&&r.command===void 0&&process.stderr.write(`agentsmesh: keyword-only recall misses file_glob/command_pattern lessons \u2014 pass file and/or command for complete recall.
645
- `);let{lessons:n,totalMatches:o,suppressed:i,corrupt:a,newerVersion:l}=await pd(e.projectRoot,r,{limit:t.limit,maxTokens:t.max_tokens??t["max-tokens"]});a===true?process.stderr.write("agentsmesh: lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run `agentsmesh lessons validate`.\n"):l!==void 0&&process.stderr.write(`agentsmesh: lessons.json is version ${l}, newer than this build supports \u2014 recall returned no lessons. Upgrade agentsmesh to read it.
646
- `);let c=t.verbose===true;return {lessons:n.map(({id:m,lesson:p,score:u})=>c?{id:m,rule:p.rule,topics:[...p.topics],triggers:[...p.triggers],evidence:[...p.evidence],score:u}:{id:m,rule:p.rule}),totalMatches:o,...i>0?{suppressed:i}:{}}},async topics(e){await ht(e.projectRoot);let t=Ye(e.projectRoot);return t===null?{topics:[]}:{topics:Object.entries(t.topics).map(([r,n])=>({id:r,summary:n.summary})).sort((r,n)=>r.id<n.id?-1:1)}},show:R1,deprecate:k1,async add(e,t){try{return await ud(e.projectRoot,{rule:t.rule,topic:t.topic,triggers:{files:wC(t.trigger_files??t.trigger_file),commands:wC(t.trigger_commands??t.trigger_cmd),keywords:wC(t.trigger_keywords??t.trigger_kw)},evidence:Cse(t.evidence),rationale:t.rationale},{allowNewTopic:t.new_topic===!0,topicSummary:t.topic_summary})}catch(r){throw r instanceof Bn?new v("NOT_FOUND",`lessons_add: unknown topic "${r.topic}". Pass new_topic=true + topic_summary to create it.`,{code:r.code}):r instanceof li||r instanceof ci||r instanceof ai?new v("VALIDATION_FAILED",`lessons_add: ${r.message}`,{code:r.code}):r}}};var Ese=z$1.object({file:z$1.string().optional().describe("Project-relative path of the file about to be edited."),command:z$1.string().optional().describe("Shell command about to be executed (CLI flag: --cmd)."),cmd:z$1.string().optional().describe("Alias of `command` (matches the CLI `--cmd` flag). Use `command` if unsure."),keyword:z$1.string().optional().describe("Free-form description of the active task."),limit:z$1.number().int().positive().optional().describe("Max ranked lessons to return (default 10). Results are relevance-ranked."),max_tokens:z$1.number().int().positive().optional().describe("Cap results by cumulative estimated rule-token cost (CLI flag: --max-tokens)."),"max-tokens":z$1.number().int().positive().optional().describe("Alias of `max_tokens` (matches the CLI `--max-tokens` flag)."),verbose:z$1.boolean().optional().describe("Include topics/triggers/evidence/score. Default false (compact: id + rule only).")}).strict(),Ul=z$1.union([z$1.string(),z$1.array(z$1.string())]),Ose=z$1.object({rule:z$1.string().min(1).describe("Imperative rule that prevents recurrence."),topic:z$1.string().min(1).describe("Topic id. Use new_topic + topic_summary to create one."),trigger_files:Ul.optional().describe('file_glob triggers (e.g. ["src/cli/**/*.ts"] or a single "src/**").'),trigger_file:Ul.optional().describe("Alias of `trigger_files` (matches the CLI `--trigger-file` flag)."),trigger_commands:Ul.optional().describe("command_pattern triggers \u2014 regexes matched against shell commands."),trigger_cmd:Ul.optional().describe("Alias of `trigger_commands` (matches the CLI `--trigger-cmd` flag)."),trigger_keywords:Ul.optional().describe("keyword triggers \u2014 case-insensitive substrings of task descriptions."),trigger_kw:Ul.optional().describe("Alias of `trigger_keywords` (matches the CLI `--trigger-kw` flag)."),evidence:Ul.optional().describe("Evidence references (commit:SHA, lesson:id, \u2026). A scalar may be comma-separated."),rationale:z$1.string().optional().describe('Optional one-line "why" behind the rule.'),new_topic:z$1.boolean().optional().describe("Allow creating a new topic if missing."),topic_summary:z$1.string().optional().describe("Required when new_topic creates a topic. One-line summary.")}).strict(),I1=[{name:"lessons_query",description:"Recall primitive \u2014 return active lessons whose triggers match the supplied (file, command, keyword) predicates, relevance-ranked (trigger specificity + per-query topic coherence + BM25 over rule text) and capped to `limit` (default 10). Pass at least one predicate (a predicate-less call is rejected); always include `file` for an edit and `command` for a shell command \u2014 keyword-only recall misses file/command-scoped lessons. Returns compact `{id, rule}` by default; pass `verbose:true` for topics/triggers/evidence/score. Excludes deprecated and superseded lessons.",inputSchema:Ese,handler:s((e,t)=>Bm.query(e,t),"handler")},{name:"lessons_add",description:"Capture primitive \u2014 atomically add a new lesson. At least one EFFECTIVE trigger is REQUIRED \u2014 the add is rejected (UNRECALLABLE_LESSON, exit 2) when every trigger is dead on the mandatory file/command recall path (a stopword-only keyword whose needle loses all tokens to stopword filtering, or an invalid/ReDoS command regex). A lesson with a mix of live and dead triggers is NOT rejected. Prefer a precise `trigger_files` glob, the most reliable trigger. Deduplicates triggers against the graph. Idempotent on repeat (same rule + topic \u2192 same id, no duplicate triggers). Returns non-blocking `warnings` (trigger-hygiene nudges: oversized trigger set, broad globs, keyword-only, dead glob matching no file in the working tree [DEAD_GLOB], or rule closely paraphrasing an existing active lesson [NEAR_DUPLICATE_LESSON]) \u2014 heed them by preferring a few specific triggers.",inputSchema:Ose,handler:s((e,t)=>Bm.add(e,t),"handler")},{name:"lessons_topics",description:"List every topic id and summary \u2014 call before lessons_add to choose a valid --topic instead of guessing (which would create an unintended new topic).",inputSchema:z$1.object({}).strict(),handler:s(e=>Bm.topics(e),"handler")},{name:"lessons_show",description:"Inspect a topic \u2014 return its summary and every lesson under it (id, rule, status, triggers, evidence), including deprecated/superseded ones. Use to find the id of a stale lesson before lessons_deprecate.",inputSchema:z$1.object({topic:z$1.string().min(1).describe("Topic id to inspect (see lessons_topics).")}).strict(),handler:s((e,t)=>Bm.show(e,t),"handler")},{name:"lessons_deprecate",description:"Curation primitive \u2014 retire a lesson so recall stops returning it. With `superseded_by` the lesson is marked superseded by that replacement; without it the lesson is plainly deprecated. Throws on an unknown lesson or superseder.",inputSchema:z$1.object({id:z$1.string().min(1).describe("Lesson id to retire (see lessons_show)."),superseded_by:z$1.string().min(1).optional().describe("Replacement lesson id; omit for a plain deprecation.")}).strict(),handler:s((e,t)=>Bm.deprecate(e,t),"handler")}];function L1(e){let t=toJSONSchema(e,{target:"draft-07"});return delete t.$schema,t}s(L1,"zodToMcpSchema");var Oy=[...Vz,...t1,...c1,...y1,...S1,...I1],bC=Oy.filter(e=>e.resourceUri!==void 0).map(e=>({uri:e.resourceUri,name:e.name,description:e.description,read:s((t,r)=>e.handler(t,r),"read")}));Ia();async function xse(e){let t=resolve(e);for(;;){try{return await stat(resolve(t,"agentsmesh.yaml")),t}catch{}let r=dirname(t);if(r===t)throw new v("NO_PROJECT","agentsmesh.yaml not found");t=r;}}s(xse,"findProjectRoot");async function AC(e){let t=await xse(e.cwd);return {projectRoot:t,loadCanonical:s(()=>jt(t),"loadCanonical")}}s(AC,"resolveContext");function E1(e,t){let r=Tse(e);return t.map(n=>{let o=n.path.map(i=>typeof i=="symbol"?i.toString():i);if(n.code==="unrecognized_keys"&&r.length>0&&n.path.length===0){let i=n.keys?.[0],a=i===void 0?void 0:Pse(i,r),l=a===void 0?"":` Did you mean "${a}"?`;return {code:n.code,path:o,message:`${n.message}. Expected one of: ${r.join(", ")}.${l}`,expected:r,...a===void 0?{}:{suggestion:a}}}return {code:n.code,path:o,message:n.message}})}s(E1,"enrichValidationIssues");function Tse(e){let t=e.shape;return t!==void 0&&typeof t=="object"?Object.keys(t):[]}s(Tse,"objectShapeKeys");function Pse(e,t){let r=e.toLowerCase(),n=t.find(c=>c.toLowerCase()===r);if(n!==void 0)return n;let o,i=1/0,a=Math.max(2,Math.ceil(e.length/3));for(let c of t){let m=Dse(r,c.toLowerCase());m<i&&(i=m,o=c);}return o!==void 0&&i<=a?o:t.filter(c=>c.toLowerCase().includes(r)||r.includes(c.toLowerCase())).sort((c,m)=>c.length-m.length)[0]}s(Pse,"nearestKey");function Dse(e,t){let r=Array.from({length:t.length+1},(n,o)=>o);for(let n=1;n<=e.length;n+=1){let o=r[0];r[0]=n;for(let i=1;i<=t.length;i+=1){let a=r[i],l=e[n-1]===t[i-1]?0:1;r[i]=Math.min(r[i]+1,r[i-1]+1,o+l),o=a;}}return r[t.length]}s(Dse,"editDistance");async function Kse(){let e=dirname(fileURLToPath(import.meta.url));for(let t of [resolve(e,"../../package.json"),resolve(e,"../package.json"),resolve(e,"../../../package.json")])try{let r=JSON.parse(await readFile(t,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(Kse,"pkgVersion");function Wse(e,t){return new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(t)}s(Wse,"matchTemplate");function Hse(e,t){let r=[...e.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(t);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(Hse,"extractTemplateParams");async function O1(){let e=new Server({name:"agentsmesh-mcp",version:await Kse()},{capabilities:{tools:{},resources:{}}});e.setRequestHandler(ListToolsRequestSchema,async()=>({tools:Oy.map(t=>({name:t.name,description:t.description,inputSchema:L1(t.inputSchema)}))})),e.setRequestHandler(CallToolRequestSchema,async t=>{let r=Oy.find(n=>n.name===t.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${t.params.name}`})}]};try{let n=r.inputSchema.safeParse(t.params.arguments??{});if(!n.success){let a=E1(r.inputSchema,n.error.issues);throw new v("VALIDATION_FAILED","invalid input",a)}let o=await AC({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof v?n.toEnvelope():{code:"IO_ERROR",message:Fm(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),e.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:bC.map(t=>({uri:t.uri,name:t.name,description:t.description}))})),e.setRequestHandler(ReadResourceRequestSchema,async t=>{let r=bC.find(a=>a.uri===t.params.uri||Wse(a.uri,t.params.uri));if(!r)throw new v("NOT_FOUND",`resource not found: ${t.params.uri}`);let n=await AC({cwd:process.cwd()}),o=Hse(r.uri,t.params.uri),i=await r.read(n,o);return {contents:[{uri:t.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await e.connect(new StdioServerTransport);}s(O1,"startServer");se();async function w1(e,t){QC(),await O1();}s(w1,"runMcp");var TC={output:""},PC=s(e=>typeof e=="string"&&e.length>0?e:void 0,"str"),b1=" \u2026[truncated]";function zse(e){return e.length<=ym?e:e.slice(0,ym-b1.length)+b1}s(zse,"clampRule");async function A1(e,t){let r;try{r=JSON.parse(e);}catch{return TC}let n=PC(r.tool_input?.file_path),o=PC(r.tool_input?.command);if(n===void 0&&o===void 0)return TC;let i={...n!==void 0?{file:n}:{},...o!==void 0?{command:o}:{}},{lessons:a}=await pd(t,i,{sessionId:PC(r.session_id)});if(a.length===0)return TC;let l=n??o??"",c=a.map(p=>`- ${zse(p.lesson.rule)}`).join(`
691
+ `),{path:r,written:true})}};var Foe=/[;&|`$<>!\\\r\n]/u,Moe=/^[A-Za-z_][A-Za-z0-9_]*$/u,Goe=/^[A-Za-z][A-Za-z0-9_-]*$/u,$oe=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,d1=/[\r\n]/u,f1=/[\0\r\n]/u;function joe(e){return f1.test(e)?false:!e.split(/[/\\]/u).includes("..")}s(joe,"isSafeMcpCwd");function Uoe(e){return z$1.string().min(1).max(512).refine(t=>!Foe.test(t),{message:`${e} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(Uoe,"noShellMeta");var yC=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(e=>!f1.test(e),{message:"description must not contain NUL or newline characters"}).optional(),command:Uoe("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(Moe,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(e=>/^https?:\/\//u.test(e),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(Goe,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(joe,{message:'cwd must not contain "..", NUL, or newline characters'}).optional(),disabled:z$1.boolean().optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict(),Boe=z$1.object({type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),g1=z$1.string().max(256).refine(e=>!d1.test(e),{message:"hook matcher must not contain newlines"}),Koe=z$1.object({matcher:g1,type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),Woe=z$1.object({matcher:g1,hooks:z$1.array(Boe).min(1).max(50)}).strict(),Hoe=z$1.union([Koe,Woe]),h1=z$1.record(z$1.string().min(1).max(64),z$1.array(Hoe).max(100)),zoe=z$1.string().min(1).max(256).refine(e=>!d1.test(e),{message:"permission pattern must not contain newlines"}).refine(e=>$oe.test(e),{message:"permission pattern must match Tool or Tool(matcher) form"}),Sy=z$1.array(zoe).max(500);var pd=z$1.object({}).strict(),Voe=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:pd,handler:s(e=>kr.getConfig(e),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:pd,handler:s(e=>kr.listMcpServers(e),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:pd,handler:s(e=>kr.getPermissions(e),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:pd,handler:s(e=>kr.getHooks(e),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:pd,handler:s(e=>kr.getIgnore(e),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],Joe=[{name:"update_config",description:"Update agentsmesh.yaml. Default: replace listed fields. Set merge=true to union arrays and shallow-merge objects. Only writes agentsmesh.yaml, never agentsmesh.local.yaml.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe('Target tool IDs (e.g. ["claude-code", "cursor"])'),features:z$1.array(z$1.string()).optional().describe('Feature names (e.g. ["rules", "commands", "mcp"])'),conversions:z$1.record(z$1.string(),z$1.unknown()).optional().describe("Conversion overrides"),merge:z$1.boolean().optional().describe("If true, union arrays and shallow-merge objects instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>kr.updateConfig(e,t),"handler")},{name:"add_mcp_server",description:"Add an MCP server entry to .agentsmesh/mcp.json. Fails if name already exists.",inputSchema:z$1.object({name:z$1.string().describe('Server name (e.g. "github", "filesystem")'),server:yC.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>kr.addMcpServer(e,t),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:yC,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>kr.updateMcpServer(e,t),"handler")},{name:"remove_mcp_server",description:"Remove an MCP server entry",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>kr.removeMcpServer(e,t),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:Sy.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:Sy.optional().describe("Denied tool patterns"),ask:Sy.optional().describe("Tools requiring confirmation"),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=union+dedup (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>kr.updatePermissions(e,t),"handler")},{name:"update_hooks",description:"Replace hooks.yaml content entirely. Read current hooks with get_hooks, modify, then write back.",inputSchema:z$1.object({hooks:h1.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>kr.updateHooks(e,t),"handler")},{name:"update_ignore",description:"Update .agentsmesh/ignore patterns. mode=replace (default) overwrites; mode=append adds new patterns.",inputSchema:z$1.object({patterns:z$1.array(z$1.string()).describe('Gitignore-syntax patterns (e.g. ["node_modules/", "dist/", ".env*"])'),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=add (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>kr.updateIgnore(e,t),"handler")}],y1=[...Voe,...Joe];BI();Vn();function Yoe(){return Object.fromEntries(Ue.map(e=>[e,Object.fromEntries(Object.entries(UU).map(([t,r])=>[t,r[e]]))]))}s(Yoe,"buildTargetIndex");var _1=Yoe(),_C={async list(){return _1},async get(e){let t=_1[e.targetId];if(t===void 0)throw new v("NOT_FOUND",`unknown target: ${e.targetId}`);return {targetId:e.targetId,capabilities:t}}};Qo();Qo();bd();tt();zo();sn();rt();Vn();async function SC(e,t){let r=re(e);if(!r)throw new zn(e,{supported:[...Ue,...Hd().map(n=>n.id)]});return r.generators.importFrom(t.root,{scope:t.scope??"project"})}s(SC,"importFrom");async function Bm(e,t={}){let r=t.scope??"project",{config:n,context:o}=await ye(e,r);await ze(n,e);let{canonical:i}=await Mt(n,o.configDir,{refreshRemoteCache:t.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Bm,"loadProjectContext");async function RC(e){let t=e.targetFilter?[...e.targetFilter]:void 0;return Wh(e.config,e.canonical,e.projectRoot,t,{scope:e.scope})}s(RC,"lint");async function kC(e){let t=await on(e);return {...Bh(t),results:t}}s(kC,"diff");async function IC(e){return Hh(e)}s(IC,"check");Qo();zo();Ca();bd();xe();rt();Ae();function Ul(e,t={}){let r=Math.max(1,t.cap??Oh),n=Nh(e),o=[],i=new Map;for(let[f,g]of Object.entries(e.lessons)){if(g.status!=="active")continue;if(t.trimOverCap===false||g.triggers.length<=r){i.set(f,g.triggers);continue}let h=[...g.triggers].sort((R,I)=>{let w=n.get(R),D=n.get(I);return w!==D?w-D:R<I?-1:1}),_=new Set(h.slice(r)),S=g.triggers.filter(R=>!_.has(R));i.set(f,S),o.push({id:f,removedTriggers:[..._],keptCount:S.length});}let a=[],l=[];if(t.knownPaths!==void 0){let f=Mu(e,t.knownPaths);if(f.size>0){for(let[g,h]of i){let _=h.filter(R=>f.has(R));if(_.length===0)continue;let S=h.filter(R=>!f.has(R));S.length>=1?(i.set(g,S),a.push({id:g,removedTriggers:_,keptCount:S.length})):l.push(g);}l.sort();}}let c=new Set;for(let f of i.values())for(let g of f)c.add(g);let m=Object.keys(e.triggers).filter(f=>!c.has(f)).sort(),p=new Set;for(let f of Object.values(e.lessons))for(let g of f.topics)p.add(g);let u=Object.keys(e.topics).filter(f=>!p.has(f)).sort();return {removedTriggerIds:m,removedTopicIds:u,trimmedLessons:o,removedDeadGlobs:a,unreachableLessons:l,cap:r}}s(Ul,"planPrune");function Ry(e,t){for(let n of [...t.trimmedLessons,...t.removedDeadGlobs??[]]){let o=e.lessons[n.id];if(o===void 0)continue;let i=new Set(n.removedTriggers);e.lessons[n.id]={...o,triggers:o.triggers.filter(a=>!i.has(a))};}for(let n of t.removedTopicIds)delete e.topics[n];let r=new Set(t.removedTriggerIds);if(r.size!==0){for(let[n,o]of Object.entries(e.lessons))o.triggers.some(i=>r.has(i))&&(e.lessons[n]={...o,triggers:o.triggers.filter(i=>!r.has(i))});for(let n of r)delete e.triggers[n];}}s(Ry,"applyPruneToGraph");function ud(e){return e.removedTriggerIds.length===0&&e.removedTopicIds.length===0&&e.trimmedLessons.length===0&&e.removedDeadGlobs.length===0}s(ud,"isEmptyPrunePlan");function tse(e){let t=je(e).config;if(!existsSync(t))return false;try{let r=JSON.parse(readFileSync(t,"utf8"));return typeof r!="object"||r===null?!1:r.autoPrune===!0}catch{return false}}s(tse,"isAutoPruneEnabled");async function S1(e,t){if(!tse(e))return null;let r=Ye(e);if(r===null||ud(Ul(r,{trimOverCap:false,knownPaths:t})))return null;let n={removedTriggers:0,removedTopics:0,detachedDeadGlobs:0};return await Ot(e,i=>{let a=Ul(i,{trimOverCap:false,knownPaths:t});ud(a)||(Ry(i,a),n={removedTriggers:a.removedTriggerIds.length,removedTopics:a.removedTopicIds.length,detachedDeadGlobs:a.removedDeadGlobs.reduce((l,c)=>l+c.removedTriggers.length,0)});}),n.removedTriggers+n.removedTopics+n.detachedDeadGlobs>0?n:null}s(S1,"maybeAutoPrune");function ky(e,t){let r=e.replaceAll("\\","/"),n=R1(t,r);if(!n.startsWith("../"))return n;let o=R1(LC(t),LC(resolve(t,r)));return o.startsWith("../")?n:o}s(ky,"normalizeRecallFile");function R1(e,t){let r=relative(e,resolve(e,t)).replaceAll("\\","/");return r===""?t.replaceAll("\\","/"):r}s(R1,"relativize");function LC(e){try{return realpathSync(e)}catch{let t=dirname(e);return t===e?e:resolve(LC(t),basename(e))}}s(LC,"safeRealpath");var fse="agentsmesh-lessons-seen";function Iy(e={}){if(e.disabled===true)return null;let t=e.explicit!==void 0&&e.explicit.trim().length>0?e.explicit.trim():Cm(e.env);if(t===void 0)return null;let r=gse(t);return {sessionId:t,seen:hse(r),path:r}}s(Iy,"openSessionDedup");function gse(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,200);return join(tmpdir(),fse,`${t}.json`)}s(gse,"seenPath");function hse(e){if(!existsSync(e))return new Set;try{let t=JSON.parse(readFileSync(e,"utf8"));return Array.isArray(t)?new Set(t.filter(r=>typeof r=="string")):new Set}catch{return new Set}}s(hse,"loadSeen");function Ly(e,t){return t.filter(r=>!e.seen.has(r.id))}s(Ly,"filterUnseen");function Cy(e,t){if(t.length===0)return;let r=new Set(e.seen);for(let n of t)r.add(n);if(r.size!==e.seen.size)try{mkdirSync(dirname(e.path),{recursive:!0});let n=`${e.path}.${process.pid}.tmp`;writeFileSync(n,JSON.stringify([...r]),"utf8"),renameSync(n,e.path);}catch{}}s(Cy,"commitSeen");async function dd(e,t,r={}){try{await ht(e);}catch{}let n=Ih(e);if(n.status==="corrupt")return {lessons:[],totalMatches:0,suppressed:0,corrupt:true};if(n.status==="newer-version")return {lessons:[],totalMatches:0,suppressed:0,newerVersion:n.version};if(n.status==="absent")return {lessons:[],totalMatches:0,suppressed:0};let o=n.graph,i=t.file===void 0?t:{...t,file:ky(t.file,e)},a=Em(o,i),l=Iy({explicit:r.sessionId,disabled:r.noDedup}),c=l===null?a:Ly(l,a),m=Mh(e),p=Om(o,i,c,{limit:r.limit??m.limit,maxTokens:r.maxTokens===null?void 0:r.maxTokens??m.maxTokens});return l!==null&&Cy(l,p.map(u=>u.id)),EC(e,o,i,a,p,{bypassed:false}),{lessons:p,totalMatches:a.length,suppressed:a.length-c.length}}s(dd,"recallLessons");function EC(e,t,r,n,o,i={}){if(!la())return;let a=RL(t,r),l=s(m=>n.filter(({lesson:p})=>p.triggers.some(u=>m.has(u))).length,"countVia"),c=Cm();rK(e,{ts:new Date().toISOString(),hasFile:r.file!==void 0,hasCommand:r.command!==void 0,hasKeyword:r.keyword!==void 0,totalMatches:n.length,returnedCount:o.length,returnedTokens:o.reduce((m,p)=>m+Nl(p.lesson.rule),0),truncated:n.length>o.length,matchedByKind:{file:l(a.file_glob),command:l(a.command_pattern),keyword:l(a.keyword)},lessonIds:o.map(m=>m.id),bypassed:i.bypassed===true,...c!==void 0?{session:c}:{}});}s(EC,"recordRecallTelemetry");async function fd(e,t,r={}){await ht(e);let n={file:t.triggers.files?.length??0,command:t.triggers.commands?.length??0,keyword:t.triggers.keywords?.length??0},o=r.knownPaths??ca(e)??void 0;try{let i=await Ah(e,t,{...r,knownPaths:o});SL(e,n,i);let a=await S1(e,o);return a===null?i:{...i,autoPruned:a}}catch(i){throw SL(e,n,null),i}}s(fd,"captureLesson");async function Ey(e,t,r,n={}){return Ot(e,o=>yse(o,t,r),{retries:n.retries})}s(Ey,"mergeLessons");function yse(e,t,r){if(t===r)throw new Error(`mergeLessons: cannot merge lesson "${t}" into itself.`);let n=e.lessons[t];if(n===void 0)throw new Error(`mergeLessons: unknown lesson "${t}".`);let o=e.lessons[r];if(o===void 0)throw new Error(`mergeLessons: unknown lesson "${r}".`);if(o.status!=="active")throw new Error(`mergeLessons: keeper "${r}" is not active (status: ${o.status}).`);if(n.status!=="active")throw new Error(`mergeLessons: loser "${t}" is already ${n.status}; nothing to merge.`);return e.lessons[r]={...o,triggers:OC(o.triggers,n.triggers),topics:OC(o.topics,n.topics),evidence:OC(o.evidence,n.evidence)},e.lessons[t]={...n,status:"superseded",supersededBy:r},{loserId:t,keeperId:r}}s(yse,"mergeInto");function OC(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(OC,"union");var wC=String.raw`L\d+(?:\s*,\s*L\d+)*`,_se=[new RegExp(String.raw`\s*\bSee\s+${wC}\.?`,"g"),new RegExp(String.raw`\s*\((?:${wC})\)\.?`,"g"),new RegExp(String.raw`\s*\[(?:${wC})\]\.?`,"g")],Sse=/\s*\(also relevant[^)]*\)\s*/g;function bC(e){let t=e;for(let r of _se)t=t.replace(r,"");return t=t.replace(Sse," "),t.trim()}s(bC,"stripLegacyMarkers");function k1(e){let t=[];for(let[r,n]of Object.entries(e.lessons)){let o=bC(n.rule);o===n.rule||o.length===0||(t.push(r),e.lessons[r]={...n,rule:o});}return t.sort()}s(k1,"applyStrip");async function Oy(e,t={}){await ht(e);let r=Ye(e);if(r===null)return {changedIds:[],changedCount:0};if(t.dryRun===true){let o=k1(r);return {changedIds:o,changedCount:o.length}}let n=[];return await Ot(e,o=>{n=k1(o);}),{changedIds:n,changedCount:n.length}}s(Oy,"stripMarkersInGraph");b();function ga(e){if(e instanceof v)throw e;if(e instanceof zn)throw new v("VALIDATION_FAILED",e.message);let t=e instanceof Error?e.message:String(e);throw /unknown.*--from|unknown.*--to|unknown target/i.test(t)?new v("VALIDATION_FAILED",t):/lock/i.test(t)?new v("LOCK_HELD","generate lock is held"):new v("IO_ERROR","engine failure",{reason:t})}s(ga,"wrapEngineError");async function I1(e,t){if(t.dry_run===true)throw new v("VALIDATION_FAILED","dry_run is not supported for import \u2014 the engine writes files directly. Use diff to preview changes instead.");try{let r=await SC(t.from,{root:e.projectRoot,scope:"project"});return {imported:r.length,files:r.map(n=>({fromPath:n.fromPath,toPath:n.toPath,feature:n.feature})),warnings:[],errors:[]}}catch(r){if(r instanceof zn)throw new v("VALIDATION_FAILED",`unknown target "${t.from}"`);let n=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(n))throw new v("VALIDATION_FAILED",n);ga(r);}}s(I1,"importFromTarget");async function L1(e,t){try{let r={from:t.from,to:t.to,"dry-run":t.dry_run===!0},n=await uy(r,e.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:t.dry_run===!0,warnings:[],errors:[]}}catch(r){let n=r instanceof Error?r.message:String(r);if(/unknown.*--from|unknown.*--to|unknown target/i.test(n))throw new v("VALIDATION_FAILED",n);ga(r);}}s(L1,"convert");async function Rse(e,t){try{let r=await Bm(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,i=(await on({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n})).filter(m=>m.status!=="skipped"),a=i.filter(m=>m.status==="created"||m.status==="updated");if(!t.dry_run)for(let m of a){let p=fm(r.projectRoot,m.path,m.target);await L(p,m.content);}let l={};for(let m of a){let p=l[m.target]??{filesWritten:0};l[m.target]={filesWritten:p.filesWritten+1};}let c={filesWritten:a.length,byTarget:l,lockfileUpdated:!t.dry_run&&a.length>=0,errors:[],warnings:[]};return t.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){ga(r);}}s(Rse,"generate");async function kse(e,t){try{let r=await Bm(e.projectRoot),n=await RC({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(t.severity?n.diagnostics.filter(i=>i.level===t.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){ga(r);}}s(kse,"lint");async function Ise(e){try{let t=await Bm(e.projectRoot),r=await IC({config:t.config,configDir:t.configDir,canonicalDir:t.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(t){ga(t);}}s(Ise,"check");async function Lse(e,t){try{let r=await Bm(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,o=await kC({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n});return {willCreate:o.summary.new,willModify:o.summary.updated,willDelete:o.summary.deleted}}catch(r){ga(r);}}s(Lse,"diff");var Bl={generate:Rse,lint:kse,check:Ise,diff:Lse,import:I1,convert:L1};var C1=z$1.object({}).strict(),E1=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:C1,handler:s(()=>_C.list(),"handler"),resourceUri:"agentsmesh://capabilities"},{name:"get_target_capabilities",description:"Get feature support levels for a specific target (e.g. which features are native, mapped, or unsupported)",inputSchema:z$1.object({targetId:z$1.string().describe('Target tool ID (e.g. "claude-code", "cursor")')}),handler:s((e,t)=>_C.get(t),"handler"),resourceUri:"agentsmesh://capabilities/{targetId}"},{name:"generate",description:"Generate target-native config files from canonical .agentsmesh/ content. Propagates rules, commands, agents, skills, MCP, hooks, ignore, and permissions to all configured targets.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets (default: all from agentsmesh.yaml)"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features"),verbose:z$1.boolean().optional().describe("Include full file list in response"),dry_run:z$1.boolean().optional().describe("Preview without writing files")}),handler:s((e,t)=>Bl.generate(e,t),"handler")},{name:"lint",description:"Lint canonical .agentsmesh/ files for schema errors, missing frontmatter, and other issues",inputSchema:z$1.object({severity:z$1.enum(["error","warning","info"]).optional().describe("Filter results by minimum severity")}),handler:s((e,t)=>Bl.lint(e,t),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:C1,handler:s(e=>Bl.check(e),"handler")},{name:"diff",description:"Preview what generate would create, modify, or delete without writing",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features")}),handler:s((e,t)=>Bl.diff(e,t),"handler")},{name:"import",description:"Import another tool's native config into canonical .agentsmesh/. Note: dry_run is not supported (the engine writes directly).",inputSchema:z$1.object({from:z$1.string().describe('Source target ID to import from (e.g. "cursor", "claude-code")'),features:z$1.array(z$1.string()).optional().describe("Restrict import to specific features"),dry_run:z$1.boolean().optional().describe("NOT SUPPORTED \u2014 will throw VALIDATION_FAILED. Use diff instead.")}),handler:s((e,t)=>Bl.import(e,t),"handler")},{name:"convert",description:"Convert config directly from one tool to another (e.g. Cursor \u2192 Claude Code) without creating canonical .agentsmesh/ files",inputSchema:z$1.object({from:z$1.string().describe('Source target ID (e.g. "cursor")'),to:z$1.string().describe('Destination target ID (e.g. "claude-code")'),dry_run:z$1.boolean().optional().describe("Preview conversion without writing files")}),handler:s((e,t)=>Bl.convert(e,t),"handler")}];function AC(e){if(e instanceof v)throw e;let t=e instanceof Error?e.message:String(e),r=Mm(t);throw /lock|LockAcquisitionError/i.test(r)?new v("LOCK_HELD",".install.lock is held by another process"):/missing source|usage:|non-interactive|invalid|unknown|not found|escapes the source root/i.test(r)?new v("VALIDATION_FAILED",r):new v("IO_ERROR","install pipeline failure",{reason:r})}s(AC,"wrapInstallError");function Cse(e){let t={force:true};return e.path!==void 0&&(t.path=e.path),e.target!==void 0&&(t.target=e.target),e.as!==void 0&&(t.as=e.as),e.name!==void 0&&(t.name=e.name),e.extends===true&&(t.extends=true),e.all===true&&(t.all=true),e.sync===true&&(t.sync=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Cse,"toInstallFlags");function Ese(e){let t={force:true};return e.all===true&&(t.all=true),e.keep_pack===true&&(t["keep-pack"]=true),e.keep_generated===true&&(t["keep-generated"]=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Ese,"toUninstallFlags");async function Ose(e,t){if(typeof t.source!="string"||t.source.trim().length===0)throw new v("VALIDATION_FAILED","install: `source` is required");try{let r=await Gl(Cse(t),[t.source],e.projectRoot);if(r.exitCode!==0)throw new v("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){AC(r);}}s(Ose,"install");async function wse(e,t){if(t.all!==true&&(!Array.isArray(t.names)||t.names.length===0))throw new v("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await ay(Ese(t),t.names??[],e.projectRoot)).data}catch(r){AC(r);}}s(wse,"uninstall");async function bse(e,t={}){try{let r={};return t.global===!0&&(r.global=!0),(await cy(r,e.projectRoot)).data}catch(r){AC(r);}}s(bse,"installsList");var wy={install:Ose,uninstall:wse,installsList:bse};function Ase(e){let t={force:true};return e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Ase,"toRefreshFlags");function xse(e){if(e instanceof v)throw e;let t=e instanceof Error?e.message:String(e),r=Mm(t);throw /lock|LockAcquisitionError/i.test(r)?new v("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new v("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new v("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new v("REFRESH_APPLY_FAILED",r):new v("IO_ERROR","refresh pipeline failure",{reason:r})}s(xse,"wrapRefreshError");async function Tse(e,t={}){try{let r=await ly(Ase(t),[...t.names??[]],e.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=t.names??[],i=n?.error??(o.length>0?`unknown pack(s): ${o.join(", ")}`:"refresh validation failed");throw new v("VALIDATION_FAILED",i)}return r.data}catch(r){xse(r);}}s(Tse,"refresh");var O1={refresh:Tse};var Pse=z$1.object({source:z$1.string().min(1).describe("Pack source \u2014 GitHub/GitLab shorthand (`github:org/repo[@ref]`), git URL, SSH URL, or local path (`local:./relative/dir`)."),path:z$1.string().optional().describe("Subdirectory within the source repo to install from. Combined with `as` for manual single-category installs."),target:z$1.string().optional().describe("Target tool ID hint for native-format auto-discovery (e.g. `claude-code`, `cursor`). Bypasses the multi-signal classifier."),as:z$1.enum(["rules","commands","agents","skills"]).optional().describe("Manual install kind. When set, the source is treated as a flat collection of that category (skips the auto-classifier)."),name:z$1.string().optional().describe("Override the generated install entry name (default: derived from `org-repo` shorthand or the source path)."),extends:z$1.boolean().optional().describe("Record as an `extends:` entry in `agentsmesh.yaml` instead of materializing a pack in `.agentsmesh/packs/`. Always-on-latest semantics; resolved every `generate`."),all:z$1.boolean().optional().describe("Install every sub-pack from a marketplace source (`.claude-plugin/marketplace.json`) or every flat collection in a multi-collection layout."),sync:z$1.boolean().optional().describe("Reinstall missing packs from `.agentsmesh/installs.yaml` instead of from `source`."),dry_run:z$1.boolean().optional().describe("Preview what would be installed without writing."),global:z$1.boolean().optional().describe("Install into the global scope (`~/.agentsmesh/`) instead of the project scope. Regenerates user-level outputs.")}),Dse=z$1.object({names:z$1.array(z$1.string().min(1)).default([]).describe("Install names to remove (from `installs.yaml`). Required unless `all: true`. Each name removes the pack directory under `.agentsmesh/packs/`, the matching `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row when present."),all:z$1.boolean().optional().describe("Remove every install in the current scope. `names` is ignored when `all: true`."),keep_pack:z$1.boolean().optional().describe("Leave `.agentsmesh/packs/<name>/` on disk; only drop yaml entries. Useful when the user has locally-modified files."),keep_generated:z$1.boolean().optional().describe("Skip the post-uninstall `generate` pass. Target trees keep now-stale files until the next manual `generate`; a warning lists what will be cleaned then."),dry_run:z$1.boolean().optional().describe("Preview the removal plan; no writes. Legacy-manifest migration runs in memory only."),global:z$1.boolean().optional().describe("Uninstall from the global scope (`~/.agentsmesh/`) instead of the project scope.")}),Nse=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),vse=z$1.object({names:z$1.array(z$1.string().min(1)).optional().describe("Pack names to refresh. Omit or pass empty array to refresh every installed pack in the current scope."),dry_run:z$1.boolean().optional().describe("Preview the refresh plan (resolved refs, drift detection) without writing."),global:z$1.boolean().optional().describe("Refresh packs in the global scope (`~/.agentsmesh/`) instead of the project scope.")}),w1=[{name:"install",description:"Install a community pack from a URL or local path. Auto-classifies the source layout (anthropic-skill-pack, canonical-agentsmesh, tool-native, or unknown) and dispatches accordingly; `--target` / `--as` override the classifier. Always runs non-interactively (every prompt accepts its documented `--force` default).",inputSchema:Pse,handler:s((e,t)=>wy.install(e,t),"handler")},{name:"uninstall",description:"Remove one or more installed packs. Drops the pack directory, the `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row (when present), then runs `generate` so stale target files are cleaned. Mid-batch failures are isolated; survivors still apply and the response surfaces failures in `data.failed[]`.",inputSchema:Dse,handler:s((e,t)=>wy.uninstall(e,t),"handler")},{name:"installs_list",description:"List installed packs in the current scope. Read-only. Hydrates `installed_at` and `source_type` from each pack manifest where available; both are `null` for legacy packs without `.agentsmesh-install-manifest.json`.",inputSchema:Nse,handler:s((e,t)=>wy.installsList(e,t),"handler"),resourceUri:"agentsmesh://installs"},{name:"refresh",description:"Re-fetch and re-apply installed packs against their originally-recorded source/ref. Branch pins re-resolve to the current tip; tag pins re-resolve in case the tag moved; SHA pins stay put. Per-pack atomic via `materializePack` \u2014 a failure leaves the affected pack at its prior state. Always runs non-interactively (force: true) over MCP.",inputSchema:vse,handler:s((e,t)=>O1.refresh(e,t),"handler")}];async function by(e,t,r){return Ot(e,n=>{let o=n.lessons[t];if(o===void 0)throw new Error(`Unknown lesson: ${t}`);if(r!==null&&n.lessons[r]===void 0)throw new Error(`Unknown superseder: ${r}`);let i=r===null?"deprecated":"superseded";return n.lessons[t]={...o,status:i,...r===null?{}:{supersededBy:r}},{id:t,status:i,supersededBy:r}})}s(by,"deprecateLesson");async function b1(e,t){await ht(e.projectRoot);let r=Ye(e.projectRoot),n=r?.topics[t.topic];if(r===null||n===void 0)throw new v("NOT_FOUND",`lessons_show: unknown topic "${t.topic}".`);let o=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(t.topic)).sort(([i],[a])=>i<a?-1:1).map(([i,a])=>({id:i,rule:a.rule,status:a.status,topics:[...a.topics],triggers:[...a.triggers],evidence:[...a.evidence]}));return {topic:t.topic,summary:n.summary,lessons:o}}s(b1,"lessonsShow");async function A1(e,t){try{return await by(e.projectRoot,t.id,t.superseded_by??null)}catch(r){let n=r instanceof Error?r.message:String(r);throw /^Unknown lesson:|^Unknown superseder:/.test(n)?new v("NOT_FOUND",`lessons_deprecate: ${n}`):r}}s(A1,"lessonsDeprecate");function xC(e){return e===void 0?[]:typeof e=="string"?e.length>0?[e]:[]:e.filter(t=>t.length>0)}s(xC,"toTriggerList");function Fse(e){return e===void 0?[]:typeof e=="string"?e.split(",").map(t=>t.trim()).filter(t=>t.length>0):e.filter(t=>t.length>0)}s(Fse,"toEvidenceList");var Km={async query(e,t){let r={file:t.file,command:t.command??t.cmd,keyword:t.keyword};if(r.file===void 0&&r.command===void 0&&r.keyword===void 0)throw new v("VALIDATION_FAILED","lessons_query: provide at least one of file, command, or keyword to recall against.");r.file===void 0&&r.command===void 0&&process.stderr.write(`agentsmesh: keyword-only recall misses file_glob/command_pattern lessons \u2014 pass file and/or command for complete recall.
692
+ `);let{lessons:n,totalMatches:o,suppressed:i,corrupt:a,newerVersion:l}=await dd(e.projectRoot,r,{limit:t.limit,maxTokens:t.max_tokens??t["max-tokens"]});a===true?process.stderr.write("agentsmesh: lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run `agentsmesh lessons validate`.\n"):l!==void 0&&process.stderr.write(`agentsmesh: lessons.json is version ${l}, newer than this build supports \u2014 recall returned no lessons. Upgrade agentsmesh to read it.
693
+ `);let c=t.verbose===true;return {lessons:n.map(({id:m,lesson:p,score:u})=>c?{id:m,rule:p.rule,topics:[...p.topics],triggers:[...p.triggers],evidence:[...p.evidence],score:u}:{id:m,rule:p.rule}),totalMatches:o,...i>0?{suppressed:i}:{}}},async topics(e){await ht(e.projectRoot);let t=Ye(e.projectRoot);return t===null?{topics:[]}:{topics:Object.entries(t.topics).map(([r,n])=>({id:r,summary:n.summary})).sort((r,n)=>r.id<n.id?-1:1)}},show:b1,deprecate:A1,async add(e,t){try{return await fd(e.projectRoot,{rule:t.rule,topic:t.topic,triggers:{files:xC(t.trigger_files??t.trigger_file),commands:xC(t.trigger_commands??t.trigger_cmd),keywords:xC(t.trigger_keywords??t.trigger_kw)},evidence:Fse(t.evidence),rationale:t.rationale},{allowNewTopic:t.new_topic===!0,topicSummary:t.topic_summary})}catch(r){throw r instanceof Bn?new v("NOT_FOUND",`lessons_add: unknown topic "${r.topic}". Pass new_topic=true + topic_summary to create it.`,{code:r.code}):r instanceof li||r instanceof ci||r instanceof ai?new v("VALIDATION_FAILED",`lessons_add: ${r.message}`,{code:r.code}):r}}};var Mse=z$1.object({file:z$1.string().optional().describe("Project-relative path of the file about to be edited."),command:z$1.string().optional().describe("Shell command about to be executed (CLI flag: --cmd)."),cmd:z$1.string().optional().describe("Alias of `command` (matches the CLI `--cmd` flag). Use `command` if unsure."),keyword:z$1.string().optional().describe("Free-form description of the active task."),limit:z$1.number().int().positive().optional().describe("Max ranked lessons to return (default 10). Results are relevance-ranked."),max_tokens:z$1.number().int().positive().optional().describe("Cap results by cumulative estimated rule-token cost (CLI flag: --max-tokens)."),"max-tokens":z$1.number().int().positive().optional().describe("Alias of `max_tokens` (matches the CLI `--max-tokens` flag)."),verbose:z$1.boolean().optional().describe("Include topics/triggers/evidence/score. Default false (compact: id + rule only).")}).strict(),Kl=z$1.union([z$1.string(),z$1.array(z$1.string())]),Gse=z$1.object({rule:z$1.string().min(1).describe("Imperative rule that prevents recurrence."),topic:z$1.string().min(1).describe("Topic id. Use new_topic + topic_summary to create one."),trigger_files:Kl.optional().describe('file_glob triggers (e.g. ["src/cli/**/*.ts"] or a single "src/**").'),trigger_file:Kl.optional().describe("Alias of `trigger_files` (matches the CLI `--trigger-file` flag)."),trigger_commands:Kl.optional().describe("command_pattern triggers \u2014 regexes matched against shell commands."),trigger_cmd:Kl.optional().describe("Alias of `trigger_commands` (matches the CLI `--trigger-cmd` flag)."),trigger_keywords:Kl.optional().describe("keyword triggers \u2014 case-insensitive substrings of task descriptions."),trigger_kw:Kl.optional().describe("Alias of `trigger_keywords` (matches the CLI `--trigger-kw` flag)."),evidence:Kl.optional().describe("Evidence references (commit:SHA, lesson:id, \u2026). A scalar may be comma-separated."),rationale:z$1.string().optional().describe('Optional one-line "why" behind the rule.'),new_topic:z$1.boolean().optional().describe("Allow creating a new topic if missing."),topic_summary:z$1.string().optional().describe("Required when new_topic creates a topic. One-line summary.")}).strict(),x1=[{name:"lessons_query",description:"Recall primitive \u2014 return active lessons whose triggers match the supplied (file, command, keyword) predicates, relevance-ranked (trigger specificity + per-query topic coherence + BM25 over rule text) and capped to `limit` (default 10). Pass at least one predicate (a predicate-less call is rejected); always include `file` for an edit and `command` for a shell command \u2014 keyword-only recall misses file/command-scoped lessons. Returns compact `{id, rule}` by default; pass `verbose:true` for topics/triggers/evidence/score. Excludes deprecated and superseded lessons.",inputSchema:Mse,handler:s((e,t)=>Km.query(e,t),"handler")},{name:"lessons_add",description:"Capture primitive \u2014 atomically add a new lesson. At least one EFFECTIVE trigger is REQUIRED \u2014 the add is rejected (UNRECALLABLE_LESSON, exit 2) when every trigger is dead on the mandatory file/command recall path (a stopword-only keyword whose needle loses all tokens to stopword filtering, or an invalid/ReDoS command regex). A lesson with a mix of live and dead triggers is NOT rejected. Prefer a precise `trigger_files` glob, the most reliable trigger. Deduplicates triggers against the graph. Idempotent on repeat (same rule + topic \u2192 same id, no duplicate triggers). Returns non-blocking `warnings` (trigger-hygiene nudges: oversized trigger set, broad globs, keyword-only, dead glob matching no file in the working tree [DEAD_GLOB], or rule closely paraphrasing an existing active lesson [NEAR_DUPLICATE_LESSON]) \u2014 heed them by preferring a few specific triggers.",inputSchema:Gse,handler:s((e,t)=>Km.add(e,t),"handler")},{name:"lessons_topics",description:"List every topic id and summary \u2014 call before lessons_add to choose a valid --topic instead of guessing (which would create an unintended new topic).",inputSchema:z$1.object({}).strict(),handler:s(e=>Km.topics(e),"handler")},{name:"lessons_show",description:"Inspect a topic \u2014 return its summary and every lesson under it (id, rule, status, triggers, evidence), including deprecated/superseded ones. Use to find the id of a stale lesson before lessons_deprecate.",inputSchema:z$1.object({topic:z$1.string().min(1).describe("Topic id to inspect (see lessons_topics).")}).strict(),handler:s((e,t)=>Km.show(e,t),"handler")},{name:"lessons_deprecate",description:"Curation primitive \u2014 retire a lesson so recall stops returning it. With `superseded_by` the lesson is marked superseded by that replacement; without it the lesson is plainly deprecated. Throws on an unknown lesson or superseder.",inputSchema:z$1.object({id:z$1.string().min(1).describe("Lesson id to retire (see lessons_show)."),superseded_by:z$1.string().min(1).optional().describe("Replacement lesson id; omit for a plain deprecation.")}).strict(),handler:s((e,t)=>Km.deprecate(e,t),"handler")}];function T1(e){let t=toJSONSchema(e,{target:"draft-07"});return delete t.$schema,t}s(T1,"zodToMcpSchema");var Ay=[...e1,...l1,...y1,...E1,...w1,...x1],TC=Ay.filter(e=>e.resourceUri!==void 0).map(e=>({uri:e.resourceUri,name:e.name,description:e.description,read:s((t,r)=>e.handler(t,r),"read")}));Ca();async function Bse(e){let t=resolve(e);for(;;){try{return await stat(resolve(t,"agentsmesh.yaml")),t}catch{}let r=dirname(t);if(r===t)throw new v("NO_PROJECT","agentsmesh.yaml not found");t=r;}}s(Bse,"findProjectRoot");async function PC(e){let t=await Bse(e.cwd);return {projectRoot:t,loadCanonical:s(()=>jt(t),"loadCanonical")}}s(PC,"resolveContext");function D1(e,t){let r=Kse(e);return t.map(n=>{let o=n.path.map(i=>typeof i=="symbol"?i.toString():i);if(n.code==="unrecognized_keys"&&r.length>0&&n.path.length===0){let i=n.keys?.[0],a=i===void 0?void 0:Wse(i,r),l=a===void 0?"":` Did you mean "${a}"?`;return {code:n.code,path:o,message:`${n.message}. Expected one of: ${r.join(", ")}.${l}`,expected:r,...a===void 0?{}:{suggestion:a}}}return {code:n.code,path:o,message:n.message}})}s(D1,"enrichValidationIssues");function Kse(e){let t=e.shape;return t!==void 0&&typeof t=="object"?Object.keys(t):[]}s(Kse,"objectShapeKeys");function Wse(e,t){let r=e.toLowerCase(),n=t.find(c=>c.toLowerCase()===r);if(n!==void 0)return n;let o,i=1/0,a=Math.max(2,Math.ceil(e.length/3));for(let c of t){let m=Hse(r,c.toLowerCase());m<i&&(i=m,o=c);}return o!==void 0&&i<=a?o:t.filter(c=>c.toLowerCase().includes(r)||r.includes(c.toLowerCase())).sort((c,m)=>c.length-m.length)[0]}s(Wse,"nearestKey");function Hse(e,t){let r=Array.from({length:t.length+1},(n,o)=>o);for(let n=1;n<=e.length;n+=1){let o=r[0];r[0]=n;for(let i=1;i<=t.length;i+=1){let a=r[i],l=e[n-1]===t[i-1]?0:1;r[i]=Math.min(r[i]+1,r[i-1]+1,o+l),o=a;}}return r[t.length]}s(Hse,"editDistance");async function tie(){let e=dirname(fileURLToPath(import.meta.url));for(let t of [resolve(e,"../../package.json"),resolve(e,"../package.json"),resolve(e,"../../../package.json")])try{let r=JSON.parse(await readFile(t,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(tie,"pkgVersion");function rie(e,t){return new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(t)}s(rie,"matchTemplate");function nie(e,t){let r=[...e.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(t);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(nie,"extractTemplateParams");async function N1(){let e=new Server({name:"agentsmesh-mcp",version:await tie()},{capabilities:{tools:{},resources:{}}});e.setRequestHandler(ListToolsRequestSchema,async()=>({tools:Ay.map(t=>({name:t.name,description:t.description,inputSchema:T1(t.inputSchema)}))})),e.setRequestHandler(CallToolRequestSchema,async t=>{let r=Ay.find(n=>n.name===t.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${t.params.name}`})}]};try{let n=r.inputSchema.safeParse(t.params.arguments??{});if(!n.success){let a=D1(r.inputSchema,n.error.issues);throw new v("VALIDATION_FAILED","invalid input",a)}let o=await PC({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof v?n.toEnvelope():{code:"IO_ERROR",message:Mm(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),e.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:TC.map(t=>({uri:t.uri,name:t.name,description:t.description}))})),e.setRequestHandler(ReadResourceRequestSchema,async t=>{let r=TC.find(a=>a.uri===t.params.uri||rie(a.uri,t.params.uri));if(!r)throw new v("NOT_FOUND",`resource not found: ${t.params.uri}`);let n=await PC({cwd:process.cwd()}),o=nie(r.uri,t.params.uri),i=await r.read(n,o);return {contents:[{uri:t.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await e.connect(new StdioServerTransport);}s(N1,"startServer");se();async function v1(e,t){eE(),await N1();}s(v1,"runMcp");var NC={output:""},vC=s(e=>typeof e=="string"&&e.length>0?e:void 0,"str"),F1=" \u2026[truncated]";function oie(e){return e.length<=Sm?e:e.slice(0,Sm-F1.length)+F1}s(oie,"clampRule");async function M1(e,t){let r;try{r=JSON.parse(e);}catch{return NC}let n=vC(r.tool_input?.file_path),o=vC(r.tool_input?.command);if(n===void 0&&o===void 0)return NC;let i={...n!==void 0?{file:n}:{},...o!==void 0?{command:o}:{}},{lessons:a}=await dd(t,i,{sessionId:vC(r.session_id)});if(a.length===0)return NC;let l=n??o??"",c=a.map(p=>`- ${oie(p.lesson.rule)}`).join(`
647
694
  `),m=`Recalled agentsmesh lessons for ${l} \u2014 apply before your next action:
648
- ${c}`;return {output:JSON.stringify({hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:m}})}}s(A1,"buildRecallHookOutput");function x1(e){let t=e.filter(r=>!r.blocked);return {total:e.length,blocked:e.filter(r=>r.blocked).length,newLessons:t.filter(r=>r.isNewLesson).length,upserts:t.filter(r=>!r.isNewLesson).length,newTopics:t.filter(r=>r.isNewTopic).length,withWarnings:t.filter(r=>r.warningCodes.length>0).length,byTriggerKind:{file:e.reduce((r,n)=>r+n.triggerKinds.file,0),command:e.reduce((r,n)=>r+n.triggerKinds.command,0),keyword:e.reduce((r,n)=>r+n.triggerKinds.keyword,0)}}}s(x1,"summarizeCapture");var Vse=[{label:"0",test:s(e=>e===0,"test")},{label:"1",test:s(e=>e===1,"test")},{label:"2-3",test:s(e=>e>=2&&e<=3,"test")},{label:"4-9",test:s(e=>e>=4&&e<=9,"test")},{label:"10+",test:s(e=>e>=10,"test")}],Jse=1800*1e3;function T1(e,t){if(e.length===0)return 0;let r=[...e].sort((o,i)=>o-i),n=Math.min(r.length-1,Math.floor(t/100*r.length));return r[n]}s(T1,"percentile");function Yse(e,t){return t.length>0&&t.every(r=>e.triggers[r]?.kind==="keyword")}s(Yse,"isKeywordOnly");function Xse(e){let t=[],r=0;for(let n=0;n<e.length;n++){if(n===0){t.push(0);continue}let o=e[n],i=e[n-1];(o.session!==void 0||i.session!==void 0?o.session!==i.session:Date.parse(o.ts)-Date.parse(i.ts)>Jse)&&r++,t.push(r);}return t}s(Xse,"sessionIndices");function Qse(e,t,r){let n=e.filter(l=>l.lessonIds!==void 0).length,o=new Map,i=0,a=0;for(let l=0;l<e.length;l++){let c=e[l].lessonIds;if(c===void 0)continue;let m=t[l],p=o.get(m);p===void 0&&(p=new Set,o.set(m,p));for(let u of c){let f=Pl(r.lessons[u]?.rule??"");a+=f,p.has(u)?i+=f:p.add(u);}}return {rate:a===0?0:i/a,coverage:e.length===0?0:n/e.length}}s(Qse,"intraSessionRedundancy");function P1(e,t){let r=e.length,n=e.filter(S=>S.totalMatches===0).length,o=e.map(S=>S.returnedTokens),i=o.reduce((S,R)=>S+R,0),a=Object.values(t.lessons).filter(S=>S.status==="active"),l=a.reduce((S,R)=>S+Pl(R.rule),0),c=Xse(e),m=r===0?0:c[c.length-1]+1,p=e.filter(S=>S.bypassed===true).length,u=e.filter(S=>S.bypassed!==true).reduce((S,R)=>S+R.returnedTokens,0),f=l*m,g=e.filter(S=>S.totalMatches>0),h=g.filter(S=>S.matchedByKind.keyword>0&&S.matchedByKind.file===0&&S.matchedByKind.command===0).length,_=a.filter(S=>Yse(t,S.triggers)).length;return {totalRecalls:r,noMatchRate:r===0?0:n/r,matchCountHistogram:Vse.map(S=>({bucket:S.label,count:e.filter(R=>S.test(R.totalMatches)).length})),returnedTokens:{p50:T1(o,50),p90:T1(o,90),max:o.length===0?0:Math.max(...o)},cumulativeRecallTokens:i,wholeActiveSetTokens:l,bypassedRecalls:p,preloadBreakEven:{sessions:m,preloadTokens:f,mandatoryRecallTokens:u,recallCheaper:u<f,ratio:u===0?0:f/u},redundancy:Qse(e,c,t),reachability:{keywordOnlyRecallRate:g.length===0?0:h/g.length,keywordOnlyUnreachableLessons:_}}}s(P1,"summarizeRecall");function $t(e,t){let r=e[t];return typeof r=="string"&&r.length>0?r:null}s($t,"stringFlag");function D1(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}s(D1,"listFlag");function wy(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.length>0?[r]:[]}s(wy,"repeatedFlag");function dd(e,t){let r=e[t];if(typeof r=="string"&&r.trim().length>0){let n=Number(r);return Number.isFinite(n)?n:null}return null}s(dd,"numberFlag");function N1(e){let t=$t(e,"format");return t==="md"||t==="json"||t==="plain"?t:"plain"}s(N1,"parseFormat");function v1(e){let t={},r=$t(e,"file"),n=$t(e,"cmd")??$t(e,"command"),o=$t(e,"keyword");return r!==null&&(t.file=r),n!==null&&(t.command=n),o!==null&&(t.keyword=o),t}s(v1,"queryFromFlags");function ga(){return {version:1,lessons:{},topics:{},triggers:{}}}s(ga,"emptyGraph");function F1(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(F1,"todayIso");function M1(e,t,r){let n=[`# ${e}`,"",t,"","## Lessons",""];for(let[o,i]of r)n.push(`- **${o}** \u2014 ${i.rule}`);return `${n.join(`
695
+ ${c}`;return {output:JSON.stringify({hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:m}})}}s(M1,"buildRecallHookOutput");function G1(e){let t=e.filter(r=>!r.blocked);return {total:e.length,blocked:e.filter(r=>r.blocked).length,newLessons:t.filter(r=>r.isNewLesson).length,upserts:t.filter(r=>!r.isNewLesson).length,newTopics:t.filter(r=>r.isNewTopic).length,withWarnings:t.filter(r=>r.warningCodes.length>0).length,byTriggerKind:{file:e.reduce((r,n)=>r+n.triggerKinds.file,0),command:e.reduce((r,n)=>r+n.triggerKinds.command,0),keyword:e.reduce((r,n)=>r+n.triggerKinds.keyword,0)}}}s(G1,"summarizeCapture");var sie=[{label:"0",test:s(e=>e===0,"test")},{label:"1",test:s(e=>e===1,"test")},{label:"2-3",test:s(e=>e>=2&&e<=3,"test")},{label:"4-9",test:s(e=>e>=4&&e<=9,"test")},{label:"10+",test:s(e=>e>=10,"test")}],iie=1800*1e3;function $1(e,t){if(e.length===0)return 0;let r=[...e].sort((o,i)=>o-i),n=Math.min(r.length-1,Math.floor(t/100*r.length));return r[n]}s($1,"percentile");function aie(e,t){return t.length>0&&t.every(r=>e.triggers[r]?.kind==="keyword")}s(aie,"isKeywordOnly");function lie(e){let t=[],r=0;for(let n=0;n<e.length;n++){if(n===0){t.push(0);continue}let o=e[n],i=e[n-1];(o.session!==void 0||i.session!==void 0?o.session!==i.session:Date.parse(o.ts)-Date.parse(i.ts)>iie)&&r++,t.push(r);}return t}s(lie,"sessionIndices");function cie(e,t,r){let n=e.filter(l=>l.lessonIds!==void 0).length,o=new Map,i=0,a=0;for(let l=0;l<e.length;l++){let c=e[l].lessonIds;if(c===void 0)continue;let m=t[l],p=o.get(m);p===void 0&&(p=new Set,o.set(m,p));for(let u of c){let f=Nl(r.lessons[u]?.rule??"");a+=f,p.has(u)?i+=f:p.add(u);}}return {rate:a===0?0:i/a,coverage:e.length===0?0:n/e.length}}s(cie,"intraSessionRedundancy");function j1(e,t){let r=e.length,n=e.filter(S=>S.totalMatches===0).length,o=e.map(S=>S.returnedTokens),i=o.reduce((S,R)=>S+R,0),a=Object.values(t.lessons).filter(S=>S.status==="active"),l=a.reduce((S,R)=>S+Nl(R.rule),0),c=lie(e),m=r===0?0:c[c.length-1]+1,p=e.filter(S=>S.bypassed===true).length,u=e.filter(S=>S.bypassed!==true).reduce((S,R)=>S+R.returnedTokens,0),f=l*m,g=e.filter(S=>S.totalMatches>0),h=g.filter(S=>S.matchedByKind.keyword>0&&S.matchedByKind.file===0&&S.matchedByKind.command===0).length,_=a.filter(S=>aie(t,S.triggers)).length;return {totalRecalls:r,noMatchRate:r===0?0:n/r,matchCountHistogram:sie.map(S=>({bucket:S.label,count:e.filter(R=>S.test(R.totalMatches)).length})),returnedTokens:{p50:$1(o,50),p90:$1(o,90),max:o.length===0?0:Math.max(...o)},cumulativeRecallTokens:i,wholeActiveSetTokens:l,bypassedRecalls:p,preloadBreakEven:{sessions:m,preloadTokens:f,mandatoryRecallTokens:u,recallCheaper:u<f,ratio:u===0?0:f/u},redundancy:cie(e,c,t),reachability:{keywordOnlyRecallRate:g.length===0?0:h/g.length,keywordOnlyUnreachableLessons:_}}}s(j1,"summarizeRecall");function $t(e,t){let r=e[t];return typeof r=="string"&&r.length>0?r:null}s($t,"stringFlag");function U1(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}s(U1,"listFlag");function xy(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.length>0?[r]:[]}s(xy,"repeatedFlag");function gd(e,t){let r=e[t];if(typeof r=="string"&&r.trim().length>0){let n=Number(r);return Number.isFinite(n)?n:null}return null}s(gd,"numberFlag");function B1(e){let t=$t(e,"format");return t==="md"||t==="json"||t==="plain"?t:"plain"}s(B1,"parseFormat");function K1(e){let t={},r=$t(e,"file"),n=$t(e,"cmd")??$t(e,"command"),o=$t(e,"keyword");return r!==null&&(t.file=r),n!==null&&(t.command=n),o!==null&&(t.keyword=o),t}s(K1,"queryFromFlags");function ha(){return {version:1,lessons:{},topics:{},triggers:{}}}s(ha,"emptyGraph");function W1(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(W1,"todayIso");function H1(e,t,r){let n=[`# ${e}`,"",t,"","## Lessons",""];for(let[o,i]of r)n.push(`- **${o}** \u2014 ${i.rule}`);return `${n.join(`
649
696
  `)}
650
- `}s(M1,"renderTopicMarkdown");function G1(e,t,r){let n=[`# ${e}`,"",`**status:** ${t.status} **created:** ${t.createdAt}`,"",t.rule,"",`**topics:** ${t.topics.length>0?t.topics.join(", "):"(none)"}`,"","**triggers:**"];t.triggers.length===0&&n.push("- (none)");for(let o of t.triggers){let i=r[o];n.push(i?`- ${o} [${i.kind}] ${i.pattern}`:`- ${o} [missing trigger node]`);}return n.push("",`**evidence:** ${t.evidence.length>0?t.evidence.join(", "):"(none)"}`),t.supersededBy!==void 0&&n.push("",`**superseded by:** ${t.supersededBy}`),`${n.join(`
697
+ `}s(H1,"renderTopicMarkdown");function z1(e,t,r){let n=[`# ${e}`,"",`**status:** ${t.status} **created:** ${t.createdAt}`,"",t.rule,"",`**topics:** ${t.topics.length>0?t.topics.join(", "):"(none)"}`,"","**triggers:**"];t.triggers.length===0&&n.push("- (none)");for(let o of t.triggers){let i=r[o];n.push(i?`- ${o} [${i.kind}] ${i.pattern}`:`- ${o} [missing trigger node]`);}return n.push("",`**evidence:** ${t.evidence.length>0?t.evidence.join(", "):"(none)"}`),t.supersededBy!==void 0&&n.push("",`**superseded by:** ${t.supersededBy}`),`${n.join(`
651
698
  `)}
652
- `}s(G1,"renderLessonMarkdown");function Me(e,t,r){switch(e){case "query":return {subcommand:e,exitCode:r,error:t,format:"plain",data:{lessons:[],query:{},autoMigrated:false,totalMatches:0}};case "add":return {subcommand:e,exitCode:r,error:t,data:{id:"",isNewLesson:false,isNewTopic:false,newTriggerIds:[],warnings:[]}};case "show":return {subcommand:e,exitCode:r,error:t,data:{subject:"",markdown:""}};case "deprecate":return {subcommand:e,exitCode:r,error:t,data:{id:"",supersededBy:null}};case "merge":return {subcommand:e,exitCode:r,error:t,data:{loserId:"",keeperId:""}};case "untrigger":return {subcommand:e,exitCode:r,error:t,data:{lessonId:"",triggerId:"",removedTriggerNode:false,remainingTriggerCount:0}};case "import-md":return {subcommand:e,exitCode:r,error:t,data:{topicCount:0,lessonCount:0,triggerCount:0,wroteGraphPath:"",deletedPaths:[]}};case "prune":return {subcommand:e,exitCode:r,error:t,data:{applied:false,cap:0,removedTriggerIds:[],removedTopicIds:[],trimmedLessons:[],removedDeadGlobs:[],unreachableLessons:[]}}}}s(Me,"errorResult");function $1(e,t){let r=e[t];if(r===void 0||r===false)return null;let n=typeof r=="string"?Number(r):NaN;return !Number.isInteger(n)||n<1?`Invalid --${t}: expected a positive integer.`:null}s($1,"validatePositiveIntFlag");function eie(e){let t=e.format;return t===void 0||t==="plain"||t==="md"||t==="json"?null:"Invalid --format: expected plain|md|json."}s(eie,"validateFormatFlag");function by(...e){let t=e.filter(r=>r!==void 0&&r.length>0);return t.length>0?t.join(`
653
- `):void 0}s(by,"mergeWarnings");function tie(e){if(existsSync(join(e,".agentsmesh")))return;let t=wh(e);if(t!==null)return `no lessons graph here \u2014 this directory has no .agentsmesh, but a lessons project exists at ${t.replaceAll("\\","/")}. Run lessons from there (cd into it) for recall to work.`}s(tie,"strayDirWarning");function DC(e,t,r){let n=$1(e,"top");if(n!==null)return Me("query",n,2);let o=$1(e,"max-tokens");if(o!==null)return Me("query",o,2);let i=eie(e);if(i!==null)return Me("query",i,2);let a=N1(e),l=v1(e);if(l.file===void 0&&l.command===void 0&&l.keyword===void 0)return Me("query","Recall needs a predicate: pass at least one of --file <path-about-to-edit>, --cmd <command-about-to-run>, or --keyword <text>.",2);let c=l.keyword!==void 0&&l.file===void 0&&l.command===void 0?"keyword-only recall misses file_glob and command_pattern lessons \u2014 pass --file <path-about-to-edit> and/or --cmd <command-about-to-run> for complete recall.":void 0,m=l.file===void 0?l:{...l,file:_y(l.file,t)},p=sK(t)??void 0,u=Sh(t);if(u.status==="corrupt"){let G={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:by(`lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run \`agentsmesh lessons validate\`. (${u.error.message})`,p)};return {subcommand:"query",exitCode:0,format:a,data:G}}if(u.status==="newer-version"){let G={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:by(`lessons.json is version ${u.version}, newer than this build supports (${xu}) \u2014 recall returned no lessons. Upgrade agentsmesh to read it.`,p)};return {subcommand:"query",exitCode:0,format:a,data:G}}if(u.status==="absent"){let G=tie(t),Y=by(G??$u(),c,p);return {subcommand:"query",exitCode:0,format:a,data:{lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Y}}}let f=u.graph,g=Cm(f,m),h=Sy({explicit:$t(e,"session")??void 0,disabled:e["no-dedup"]===true}),_=h===null?g:Ry(h,g),S=Nh(t),R=e.all===true?void 0:dd(e,"top")??S.limit,I=e.all===true?void 0:dd(e,"max-tokens")??S.maxTokens,w=Em(f,m,_,{limit:R,maxTokens:I});h!==null&&ky(h,w.map(({id:G})=>G)),IC(t,f,m,g,w,{bypassed:e.all===true});let D=w.map(({id:G,lesson:Y,score:ee})=>({id:G,rule:Y.rule,topics:[...Y.topics],triggers:[...Y.triggers],evidence:[...Y.evidence],score:ee})),P=g.length-_.length,K={lessons:D,query:m,autoMigrated:r,totalMatches:g.length,...P>0?{suppressed:P}:{},...e.ids===true?{showIds:true}:{},...(()=>{let G=by(c,p);return G?{warning:G}:{}})()};return {subcommand:"query",exitCode:0,format:a,data:K}}s(DC,"doQuery");function j1(e){return typeof e=="object"&&e!==null&&e.status==="deprecated"}s(j1,"isDeprecated");function rie(e,t,r){let n=Rh(t),o=Rh(r);if(n===o)return t;if(e!==void 0){let l=Rh(e);if(n===l)return r;if(o===l)return t}let i=j1(t),a=j1(r);return i!==a?i?t:r:n>o?t:r}s(rie,"pick");function NC(e,t,r){let n={};for(let o of new Set([...Object.keys(t),...Object.keys(r)])){let i=t[o],a=r[o];n[o]=i!==void 0&&a!==void 0?rie(e[o],i,a):i??a;}return n}s(NC,"mergeRecord");function U1(e,t,r){return {version:t.version,lessons:NC(e.lessons,t.lessons,r.lessons),topics:NC(e.topics,t.topics,r.topics),triggers:NC(e.triggers,t.triggers,r.triggers)}}s(U1,"mergeGraphs");function vC(e){try{let t=bl.safeParse(JSON.parse(readFileSync(e,"utf8")));return t.success?t.data:null}catch{return null}}s(vC,"readGraphFile");function FC(e){let[t,r,n]=e,o={subcommand:"merge-driver",exitCode:1,data:{merged:false},error:"lessons merge-driver: could not merge \u2014 git will fall back to conflict markers."};if(t===void 0||r===void 0||n===void 0)return o;let i=vC(t),a=vC(r),l=vC(n);if(i===null||a===null||l===null)return o;let c=U1(i,a,l);return Vo(c).ok?(writeFileSync(r,Du(c),"utf8"),{subcommand:"merge-driver",exitCode:0,data:{merged:true}}):o}s(FC,"doMergeDriver");function B1(e,t,r){let n=e.lessons[t];if(n===void 0)throw new Error(`Unknown lesson: ${t}`);if(!n.triggers.includes(r))throw new Error(`Lesson "${t}" does not reference trigger "${r}".`);if(n.status==="active"&&n.triggers.length<=1)throw new Error(`Refusing to remove the only trigger of active lesson "${t}" \u2014 it would become unreachable. Add a replacement trigger first (lessons add "<same rule>" --topic ...), then untrigger.`);let o=n.triggers.filter(l=>l!==r);e.lessons[t]={...n,triggers:o};let i=Object.values(e.lessons).some(l=>l.triggers.includes(r)),a=false;return i||(delete e.triggers[r],a=true),{lessonId:t,triggerId:r,removedTriggerNode:a,remainingTriggerCount:o.length}}s(B1,"untriggerLesson");function Ay(e){return (e instanceof Error?e.message:String(e)).replace(/^(mutateLessonsGraph|mergeLessons):\s*/,"")}s(Ay,"errMessage");async function MC(e,t,r){let n=t!==void 0&&t.length>0?t:null,o=$t(e,"rule")??n,i=$t(e,"topic");if(o===null)return Me("add",`Missing rule \u2014 pass it positionally (\`add "<rule>"\`) or via --rule.${hd()}`,2);if(i===null)return Me("add",`Missing --topic \u2014 every lesson needs a topic id (run \`agentsmesh lessons topics\` to list them, or pass --new-topic --topic-summary "..." for a new area).${hd()}`,2);let a=existsSync(join(r,".agentsmesh"))?null:wh(r),l=a!==null?`Capturing into a new .agentsmesh here \u2014 a lessons project already exists at ${a.replaceAll("\\","/")}. If that was unintended, cd into it and re-run.`:void 0,c=Gu(r)?void 0:"Captured \u2014 but recall is not wired into your AI tools yet (no `init --lessons`). Run `agentsmesh init --lessons`, then `agentsmesh generate`, so agents recall this automatically.";try{return {subcommand:"add",exitCode:0,data:{...await ud(r,{rule:o,topic:i,triggers:{files:wy(e,"trigger-file"),commands:wy(e,"trigger-cmd"),keywords:wy(e,"trigger-kw")},evidence:D1(e,"evidence"),rationale:$t(e,"rationale")??void 0},{allowNewTopic:e["new-topic"]===!0,topicSummary:$t(e,"topic-summary")??void 0}),...l?{locationNote:l}:{},...c?{activationNote:c}:{}}}}catch(m){return m instanceof Bn?Me("add",`Unknown topic: ${m.topic}. Pass --new-topic --topic-summary "..." to create it.`,1):m instanceof li||m instanceof ci||m instanceof ai?Me("add",`${m.message}${hd()}`,2):Me("add",Ay(m),1)}}s(MC,"doAdd");async function GC(e,t,r){if(t===void 0||t==="")return Me("deprecate","Usage: agentsmesh lessons deprecate <id> [--superseded-by <id>]",2);let n=$t(e,"superseded-by");try{let{id:o,supersededBy:i}=await Ey(r,t,n);return {subcommand:"deprecate",exitCode:0,data:{id:o,supersededBy:i}}}catch(o){let i=Ay(o),a=i.startsWith("Unknown lesson")?" Run `agentsmesh lessons journal` to list lesson ids (or `lessons query --ids` to see what recalled).":"";return Me("deprecate",`${i}${a}`,1)}}s(GC,"doDeprecate");async function $C(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("untrigger","Usage: agentsmesh lessons untrigger <lesson-id> <trigger-id>",2);try{return {subcommand:"untrigger",exitCode:0,data:await Ot(r,i=>B1(i,e,t))}}catch(n){return Me("untrigger",Ay(n),1)}}s($C,"doUntrigger");async function jC(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("merge","Usage: agentsmesh lessons merge <loser-id> <keeper-id>",2);try{return {subcommand:"merge",exitCode:0,data:await Iy(r,e,t)}}catch(n){return Me("merge",Ay(n),1)}}s(jC,"doMerge");async function UC(e,t){let r=e["dry-run"]===true,n=await Ly(t,{dryRun:r});return {subcommand:"strip-markers",exitCode:0,data:{changedIds:n.changedIds,changedCount:n.changedCount,dryRun:r}}}s(UC,"doStripMarkers");async function BC(e,t){let r=e.force===true,n=e.merge===true;if(!r&&!n&&existsSync(zo(t)))return Me("import-md","lessons.json already exists. Pass --merge to fold legacy lessons into it (recommended \u2014 recovers stranded lessons without data loss), or --force to overwrite.",1);if(!existsSync(je(t).index))return Me("import-md","No legacy lessons store found (.agentsmesh/lessons/index.yaml) \u2014 nothing to migrate.",1);let o=$t(e,"migrated-at")??F1(),i=await Im(t,{migratedAt:o,force:r,merge:n});return {subcommand:"import-md",exitCode:0,data:{topicCount:i.topicCount,lessonCount:i.lessonCount,triggerCount:i.triggerCount,wroteGraphPath:i.wroteGraphPath,deletedPaths:i.deletedPaths}}}s(BC,"doImportMd");function KC(e,t){return {applied:t,cap:e.cap,removedTriggerIds:e.removedTriggerIds,removedTopicIds:e.removedTopicIds,trimmedLessons:e.trimmedLessons.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),removedDeadGlobs:e.removedDeadGlobs.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),unreachableLessons:e.unreachableLessons}}s(KC,"toPruneData");async function WC(e,t){let r=dd(e,"cap");if(r!==null&&(!Number.isInteger(r)||r<1))return Me("prune","Invalid --cap: expected a positive integer.",2);let n=la(t)??void 0,o={...r!==null?{cap:r}:{},...n?{knownPaths:n}:{}};if(e.apply!==true){let c=Ye(t)??ga();return {subcommand:"prune",exitCode:0,data:KC($l(c,o),false)}}let i=Ye(t)??ga(),a=$l(i,o);return md(a)?{subcommand:"prune",exitCode:0,data:KC(a,true)}:{subcommand:"prune",exitCode:0,data:await Ot(t,c=>{let m=$l(c,o);return yy(c,m),KC(m,true)})}}s(WC,"doPrune");function W1(e){let t=Ye(e)??ga(),r=Object.entries(t.topics).map(([o,i])=>({id:o,summary:i.summary})).sort((o,i)=>o.id<i.id?-1:1),n=Gu(e)?void 0:$u();return {subcommand:"topics",exitCode:0,data:{topics:r,...n?{setupHint:n}:{}}}}s(W1,"doTopics");function H1(e,t){if(e===void 0||e==="")return Me("show","Usage: agentsmesh lessons show <topic|lesson-id>",2);let r=Ye(t);if(r!==null&&r.topics[e]!==void 0){let n=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(e)&&i.status==="active").sort(([i],[a])=>i<a?-1:1),o=M1(e,r.topics[e].summary,n);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:o}}}if(r!==null&&r.lessons[e]!==void 0){let n=G1(e,r.lessons[e],r.triggers);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:n}}}return Me("show",`Unknown topic or lesson id: ${e}. Run \`agentsmesh lessons topics\` to list topics, or \`agentsmesh lessons journal\` to list lesson ids.`,1)}s(H1,"doShow");function z1(e){let t=Ye(e)??ga(),r=Object.entries(t.lessons).map(([i,a])=>({id:i,rule:a.rule,createdAt:a.createdAt,topics:[...a.topics]})).sort((i,a)=>i.createdAt!==a.createdAt?i.createdAt<a.createdAt?-1:1:i.id<a.id?-1:1),n=Gu(e)?void 0:$u();return {subcommand:"journal",exitCode:0,data:{entries:r,...n?{setupHint:n}:{}}}}s(z1,"doJournal");function V1(e,t){let r=Ye(t)??ga(),n=P1(QB(t),r),o=x1(ZB(t));return {subcommand:"stats",exitCode:0,format:e.json===true?"json":"text",data:{report:n,captureReport:o,hasLog:XB(t),hasCaptureLog:qB(t),telemetryEnabled:aa()}}}s(V1,"doStats");function J1(e){let t;try{t=Ye(e)??ga();}catch(i){return {subcommand:"validate",exitCode:1,data:{ok:false,findings:[{level:"error",code:"CORRUPT_GRAPH",message:`lessons.json could not be parsed (${i instanceof Error?i.message:String(i)}). The graph is git-tracked \u2014 restore it (e.g. \`git checkout -- .agentsmesh/lessons/lessons.json\`) or repair the JSON; recall degrades to empty until then.`}]}}}let r=la(e)??void 0,n=Vo(t,{knownPaths:r}),o={ok:n.ok,findings:n.findings};return {subcommand:"validate",exitCode:n.ok?0:1,data:o}}s(J1,"doValidate");async function Y1(e){let t=await cie(),{output:r}=await A1(t,e);return {subcommand:"hook",exitCode:0,data:{output:r}}}s(Y1,"doHook");var aie=1e6;async function lie(e,t=aie){let r=[],n=0;for await(let o of e){let i=o;if(n+=i.length,n>t)return "";r.push(i);}return Buffer.concat(r).toString("utf8")}s(lie,"readBoundedStream");async function cie(){return process.stdin.isTTY===true?"":lie(process.stdin)}s(cie,"readStdin");var mie=["json","verbose","help"],pie={query:["file","cmd","command","keyword","format","top","all","max-tokens","session","no-dedup","ids"],add:["rule","topic","trigger-file","trigger-cmd","trigger-kw","evidence","rationale","new-topic","topic-summary"],topics:[],show:[],deprecate:["superseded-by"],merge:[],untrigger:[],"strip-markers":["dry-run"],journal:[],validate:[],stats:["json"],prune:["apply","cap"],"import-md":["merge","force","migrated-at"]};function X1(e,t){let r=pie[e];if(r===void 0)return null;let n=new Set([...r,...mie]);for(let o of Object.keys(t))if(!n.has(o))return `Unknown flag --${o} for \`lessons ${e}\`.
654
- Usage: ${fi[e].usage}`;return null}s(X1,"validateLessonsFlags");async function uie(e,t){if(e==="import-md")return false;if(e==="query"||e==="hook")try{return await ht(t)}catch{return false}return ht(t)}s(uie,"migrateForSubcommand");async function Q1(e,t,r){let n=t[0];if(n===void 0||n==="")return {subcommand:"help",exitCode:0,data:null};let o=X1(n,e);if(o!==null)return {subcommand:"help",exitCode:2,error:o,data:null};let i=await uie(n,r);switch(n){case "query":return DC(e,r,i);case "add":return MC(e,t[1],r);case "topics":return W1(r);case "show":return H1(t[1],r);case "deprecate":return GC(e,t[1],r);case "merge":return jC(t[1],t[2],r);case "untrigger":return $C(t[1],t[2],r);case "strip-markers":return UC(e,r);case "journal":return z1(r);case "validate":return J1(r);case "stats":return V1(e,r);case "prune":return WC(e,r);case "import-md":return BC(e,r);case "hook":return Y1(r);case "merge-driver":return FC(t.slice(1));default:return {subcommand:"help",exitCode:2,error:`Unknown lessons subcommand: ${n}`,data:null}}}s(Q1,"runLessons");se();se();function xy(e){return `${(e*100).toFixed(1)}%`}s(xy,"pct");function Z1(e,t){if(t==="json"){process.stdout.write(`${JSON.stringify({...e.report,capture:e.captureReport},null,2)}
655
- `);return}if(!e.hasLog&&!e.hasCaptureLog){die(e.telemetryEnabled);return}e.hasLog&&fie(e.report),e.hasCaptureLog&&gie(e);}s(Z1,"renderStats");function die(e){e?y.info("(telemetry is ON here, but nothing has been recorded yet \u2014 telemetry is written by `lessons query` recalls and `lessons add` captures, not by `stats`. Run some `agentsmesh lessons` calls, then re-run stats.)"):y.info("(no lessons telemetry yet \u2014 recording happens during `lessons query` recalls and `lessons add` captures, NOT during `stats`. Set AGENTSMESH_LESSONS_TELEMETRY=1 in the environment that runs them \u2014 your shell for CLI calls, and/or the MCP server process for agent calls \u2014 then re-run `stats`.)");}s(die,"renderEmptyStatsHint");function fie(e){let t=e.preloadBreakEven;y.info(`recalls: ${e.totalRecalls} no-match: ${xy(e.noMatchRate)} sessions: ${t.sessions} bypassed(--all): ${e.bypassedRecalls}`),y.info(`match counts: ${e.matchCountHistogram.map(r=>`${r.bucket}=${r.count}`).join(" ")}`),y.info(`returned tokens: p50=${e.returnedTokens.p50} p90=${e.returnedTokens.p90} max=${e.returnedTokens.max}`),y.info(`break-even (per session): preload ${t.sessions}\xD7${e.wholeActiveSetTokens}=${t.preloadTokens} vs mandatory recall=${t.mandatoryRecallTokens} \u2192 ${t.recallCheaper?"recall cheaper":"preload cheaper"} (ratio ${t.ratio.toFixed(2)})`),y.info(`redundancy: ${xy(e.redundancy.rate)} of delivered rule-tokens are intra-session repeats (coverage ${xy(e.redundancy.coverage)})`),y.info(`reachability: keyword-only recalls ${xy(e.reachability.keywordOnlyRecallRate)}, keyword-only-unreachable lessons ${e.reachability.keywordOnlyUnreachableLessons}`);}s(fie,"renderRecallStats");function gie(e){let t=e.captureReport,r=t.byTriggerKind,n=t.total===0?"\u2014":(e.report.totalRecalls/t.total).toFixed(2);y.info(`captures: ${t.total} blocked: ${t.blocked} new: ${t.newLessons} upsert: ${t.upserts} new-topics: ${t.newTopics} warned: ${t.withWarnings}`),y.info(`capture triggers by kind: file=${r.file} cmd=${r.command} kw=${r.keyword}`),y.info(`recall:capture ratio: ${n} recalls per capture`);}s(gie,"renderCaptureStats");function eV(e){let t=e.removedTriggerIds.length,r=e.removedTopicIds.length,n=e.trimmedLessons.length,o=e.removedDeadGlobs.length;if(t===0&&r===0&&n===0&&o===0){y.success(`Lessons graph already lean (cap ${e.cap}) \u2014 nothing to prune.`),q1(e.unreachableLessons);return}let i=e.applied?"Pruned":"Would prune";y.success(`${i}: ${o} dead glob${o===1?"":"s"} detached, ${t} dead trigger${t===1?"":"s"} removed, ${r} orphan topic${r===1?"":"s"} removed, ${n} over-cap lesson${n===1?"":"s"} trimmed (cap ${e.cap}).`);for(let a of e.trimmedLessons)y.info(` trim ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);for(let a of e.removedDeadGlobs)y.info(` dead-glob ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);q1(e.unreachableLessons),e.applied||y.warn("Dry run \u2014 pass --apply to write. lessons.json is git-tracked, so prune is reversible.");}s(eV,"renderPrune");function q1(e){e.length!==0&&y.warn(`${e.length} lesson${e.length===1?"":"s"} unreachable (every trigger is a dead glob) \u2014 left intact to avoid stranding; re-point a trigger or deprecate: ${e.join(", ")}`);}s(q1,"renderUnreachable");function tV(e){for(let t of e.findings){let r=`${t.level.toUpperCase()} ${t.code}: ${t.message}`;t.level==="error"?y.error(r):y.warn(r);}e.ok&&y.success("Lessons graph: ok.");}s(tV,"renderValidate");function nV(e){if(e.error!==void 0&&e.error.length>0){y.error(e.error);return}switch(e.subcommand){case "help":return Iie();case "hook":e.data.output.length>0&&process.stdout.write(`${e.data.output}
656
- `);return;case "merge-driver":return;case "query":return hie(e.data,e.format);case "add":return yie(e.data);case "topics":return _ie(e.data);case "show":return Sie(e.data);case "deprecate":y.success(e.data.supersededBy===null?`Deprecated ${e.data.id}.`:`Superseded ${e.data.id} \u2192 ${e.data.supersededBy}.`);return;case "merge":e.exitCode===0&&y.success(`Merged ${e.data.loserId} \u2192 ${e.data.keeperId}.`);return;case "untrigger":y.success(`Removed trigger ${e.data.triggerId} from ${e.data.lessonId} (${e.data.remainingTriggerCount} trigger${e.data.remainingTriggerCount===1?"":"s"} left)${e.data.removedTriggerNode?"; trigger node garbage-collected (no other lesson used it)":""}.`);return;case "strip-markers":y.success(`${e.data.dryRun?"Would strip":"Stripped"} legacy markers from ${e.data.changedCount} lesson${e.data.changedCount===1?"":"s"}.`);return;case "journal":return Rie(e.data);case "validate":return tV(e.data);case "prune":return eV(e.data);case "stats":return Z1(e.data,e.format);case "import-md":return kie(e.data)}}s(nV,"renderLessons");function hie(e,t){if(e.autoMigrated&&y.warn("lessons.json was auto-migrated from index.yaml on first invocation."),e.warning!==void 0&&e.warning.length>0&&y.warn(e.warning),t==="json"){process.stdout.write(`${JSON.stringify(e,null,2)}
657
- `);return}if(e.lessons.length===0){y.info("(no matches)");return}let r=s((n,o)=>e.showIds===true?`[${n}] ${o}`:o,"withId");if(t==="md")e.lessons.forEach((n,o)=>y.info(`${o+1}. ${r(n.id,n.rule)}`));else for(let n of e.lessons)y.info(r(n.id,n.rule));e.totalMatches!==void 0&&e.totalMatches>e.lessons.length&&y.warn(`(showing ${e.lessons.length} of ${e.totalMatches} matches \u2014 raise --top <n> with --max-tokens <m>, or pass --all)`),e.suppressed!==void 0&&e.suppressed>0&&y.warn(`(${e.suppressed} already shown this session \u2014 deduped; pass --no-dedup to include)`);}s(hie,"renderQuery");function yie(e){if(!e.isNewLesson){if(e.newTriggerIds.length>0){let t=e.newTriggerIds.length;y.success(`Updated lesson: ${e.id} (+${t} trigger${t===1?"":"s"})`);}else y.info(`Existing lesson: ${e.id} (no change)`);rV(e);return}y.success(`Added lesson: ${e.id}`),e.isNewTopic&&y.info(" created new topic"),e.newTriggerIds.length>0&&y.info(` new triggers: ${e.newTriggerIds.join(", ")}`),rV(e);}s(yie,"renderAdd");function rV(e){e.locationNote!==void 0&&y.warn(e.locationNote),e.activationNote!==void 0&&y.warn(e.activationNote);for(let r of e.warnings)y.warn(`${r.code}: ${r.message}`);let t=e.autoPruned;t!==void 0&&y.info(` auto-pruned: ${t.removedTriggers} orphan trigger${t.removedTriggers===1?"":"s"}, ${t.removedTopics} orphan topic${t.removedTopics===1?"":"s"}, ${t.detachedDeadGlobs} dead glob${t.detachedDeadGlobs===1?"":"s"} detached (git-reversible)`);}s(rV,"renderGuardrails");function _ie(e){if(e.topics.length===0)y.info("(no topics)");else for(let t of e.topics)y.info(`${t.id} ${t.summary}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(_ie,"renderTopics");function Sie(e){process.stdout.write(e.markdown);}s(Sie,"renderShow");function Rie(e){for(let t of e.entries)y.info(`${t.createdAt} ${t.id} ${t.rule}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(Rie,"renderJournal");function kie(e){y.success(`Imported lessons: topics=${e.topicCount} lessons=${e.lessonCount} triggers=${e.triggerCount}`),y.info(` graph: ${e.wroteGraphPath.replaceAll("\\","/")}`),e.deletedPaths.length>0&&y.info(` removed legacy: ${e.deletedPaths.length} path${e.deletedPaths.length===1?"":"s"}`);}s(kie,"renderImportMd");function Iie(){y.info("Usage: agentsmesh lessons <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:");for(let e of Object.values(fi)){let t=e.usage.replace(/^agentsmesh lessons /,""),r=e.summary!==void 0?` (${e.summary})`:"";y.info(` ${t}${r}`);}}s(Iie,"printHelp");function st(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Array.isArray(n)?n[n.length-1]:n;return t}s(st,"narrowFlags");var oV={generate:s(async(e,t)=>{let r=st(e),n=await dm(r,void 0,{printMatrix:r.json!==true});at("generate",n,r,()=>fm(n));},"generate"),init:s(async(e,t)=>{let r=await gK(process.cwd(),{yes:e.yes===true,global:e.global===true,lessons:e.lessons===true});at("init",r,st(e),()=>yK(r));},"init"),import:s(async(e,t)=>{let r=st(e),n=await RK(r);at("import",n,r,()=>vK(n));},"import"),diff:s(async(e,t)=>{let r=st(e),n=await IK(r);at("diff",n,r,()=>FK(n));},"diff"),lint:s(async(e,t)=>{let r=st(e),n=await PK(r);at("lint",n,r,()=>DK(n));},"lint"),check:s(async(e,t)=>{let r=st(e),n=await jK(r);at("check",n,r,()=>NK(n));},"check"),merge:s(async(e,t)=>{let r=st(e),n=await KK(r);at("merge",n,r,()=>MK(n));},"merge"),matrix:s(async(e,t)=>{let r=st(e),n=await Ou(r);at("matrix",n,r,()=>bu(n,{verbose:r.verbose===true}));},"matrix"),watch:s(async(e,t)=>{let r=st(e);if(r.json===true){zl("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let n=await $K(r),o=s(()=>{n.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",o),process.on("SIGTERM",o);},"watch"),install:s(async(e,t)=>{let r=st(e);r.json===true&&(r.force=true);let n=await XH(r,t,process.cwd());at("install",n,r,()=>QH(n));},"install"),uninstall:s(async(e,t)=>{let r=st(e);r.json===true&&(r.force=true);let n=await pz(r,t,process.cwd());at("uninstall",n,r,()=>uz(n));},"uninstall"),refresh:s(async(e,t)=>{let r=st(e),n=await kz(r,t,process.cwd());at("refresh",n,r,()=>Iz(n));},"refresh"),installs:s(async(e,t)=>{let r=st(e),n=await Cz(r,t,process.cwd());at("installs",n,r,()=>Ez(n));},"installs"),plugin:s(async(e,t)=>{let r=st(e),n=await Az(r,t,process.cwd());at("plugin",n,r,()=>xz(n));},"plugin"),target:s(async(e,t)=>{let r=st(e),n=await $z(r,t,process.cwd());at("target",n,r,()=>jz(n));},"target"),convert:s(async(e,t)=>{let r=st(e),n=await cy(r);at("convert",n,r,()=>Uz(n));},"convert"),mcp:s(async(e,t)=>{await w1(st(e));},"mcp"),lessons:s(async(e,t)=>{let r=await Q1(e,t,process.cwd());at("lessons",r,st(e),()=>nV(r)),r.exitCode!==0&&process.exit(r.exitCode);},"lessons")};var Eie=new Set(["json","verbose","help"]);function HC(e,t,r){let n=e[t];if(n===void 0||typeof r=="boolean"){e[t]=r;return}Array.isArray(n)?n.push(r):typeof n=="string"?e[t]=[n,r]:e[t]=r;}s(HC,"setFlag");function Oie(e){let t={},r=[],n="help";for(let o=0;o<e.length;o++){let i=e[o];if(n==="help"&&i==="--version")return {command:"version",flags:{},args:[]};if(n==="help"&&i==="--help")return {command:"help",flags:{},args:[]};if(i.startsWith("--")){let a=i.slice(2);if(Eie.has(a)){HC(t,a,true);continue}let l=e[o+1];l===void 0||l.startsWith("--")?HC(t,a,true):(HC(t,a,l),o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:t,args:r}}s(Oie,"parseArgs");var wie=JC(oV);async function bie(e){let{command:t,flags:r,args:n}=e;if(t==="help"){vy();return}if(t==="version"){eE();return}if(r.help===true){_d(t,n);return}r.json===true&&XC(),await wie.route(t,r,n);}s(bie,"main");function Aie(){let e=process.argv[1];if(!e)return false;let t=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),e);return r===t||realpathSync(r)===realpathSync(t)}catch{return e.endsWith("cli.js")||e.includes("agentsmesh")}}s(Aie,"isMainModule");if(Aie()){let e=Oie(process.argv.slice(2));bie(e).catch(t=>tE(t instanceof Error?t:new Error(String(t)),{verbose:e.flags.verbose===true,json:e.flags.json===true,command:e.command}));}export{Oie as parseArgs};
699
+ `}s(z1,"renderLessonMarkdown");function Me(e,t,r){switch(e){case "query":return {subcommand:e,exitCode:r,error:t,format:"plain",data:{lessons:[],query:{},autoMigrated:false,totalMatches:0}};case "add":return {subcommand:e,exitCode:r,error:t,data:{id:"",isNewLesson:false,isNewTopic:false,newTriggerIds:[],warnings:[]}};case "show":return {subcommand:e,exitCode:r,error:t,data:{subject:"",markdown:""}};case "deprecate":return {subcommand:e,exitCode:r,error:t,data:{id:"",supersededBy:null}};case "merge":return {subcommand:e,exitCode:r,error:t,data:{loserId:"",keeperId:""}};case "untrigger":return {subcommand:e,exitCode:r,error:t,data:{lessonId:"",triggerId:"",removedTriggerNode:false,remainingTriggerCount:0}};case "import-md":return {subcommand:e,exitCode:r,error:t,data:{topicCount:0,lessonCount:0,triggerCount:0,wroteGraphPath:"",deletedPaths:[]}};case "prune":return {subcommand:e,exitCode:r,error:t,data:{applied:false,cap:0,removedTriggerIds:[],removedTopicIds:[],trimmedLessons:[],removedDeadGlobs:[],unreachableLessons:[]}}}}s(Me,"errorResult");function V1(e,t){let r=e[t];if(r===void 0||r===false)return null;let n=typeof r=="string"?Number(r):NaN;return !Number.isInteger(n)||n<1?`Invalid --${t}: expected a positive integer.`:null}s(V1,"validatePositiveIntFlag");function uie(e){let t=e.format;return t===void 0||t==="plain"||t==="md"||t==="json"?null:"Invalid --format: expected plain|md|json."}s(uie,"validateFormatFlag");function Ty(...e){let t=e.filter(r=>r!==void 0&&r.length>0);return t.length>0?t.join(`
700
+ `):void 0}s(Ty,"mergeWarnings");function die(e){if(existsSync(join(e,".agentsmesh")))return;let t=xh(e);if(t!==null)return `no lessons graph here \u2014 this directory has no .agentsmesh, but a lessons project exists at ${t.replaceAll("\\","/")}. Run lessons from there (cd into it) for recall to work.`}s(die,"strayDirWarning");function FC(e,t,r){let n=V1(e,"top");if(n!==null)return Me("query",n,2);let o=V1(e,"max-tokens");if(o!==null)return Me("query",o,2);let i=uie(e);if(i!==null)return Me("query",i,2);let a=B1(e),l=K1(e);if(l.file===void 0&&l.command===void 0&&l.keyword===void 0)return Me("query","Recall needs a predicate: pass at least one of --file <path-about-to-edit>, --cmd <command-about-to-run>, or --keyword <text>.",2);let c=l.keyword!==void 0&&l.file===void 0&&l.command===void 0?"keyword-only recall misses file_glob and command_pattern lessons \u2014 pass --file <path-about-to-edit> and/or --cmd <command-about-to-run> for complete recall.":void 0,m=l.file===void 0?l:{...l,file:ky(l.file,t)},p=uK(t)??void 0,u=Ih(t);if(u.status==="corrupt"){let G={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Ty(`lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run \`agentsmesh lessons validate\`. (${u.error.message})`,p)};return {subcommand:"query",exitCode:0,format:a,data:G}}if(u.status==="newer-version"){let G={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Ty(`lessons.json is version ${u.version}, newer than this build supports (${Tu}) \u2014 recall returned no lessons. Upgrade agentsmesh to read it.`,p)};return {subcommand:"query",exitCode:0,format:a,data:G}}if(u.status==="absent"){let G=die(t),Y=Ty(G??ju(),c,p);return {subcommand:"query",exitCode:0,format:a,data:{lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Y}}}let f=u.graph,g=Em(f,m),h=Iy({explicit:$t(e,"session")??void 0,disabled:e["no-dedup"]===true}),_=h===null?g:Ly(h,g),S=Mh(t),R=e.all===true?void 0:gd(e,"top")??S.limit,I=e.all===true?void 0:gd(e,"max-tokens")??S.maxTokens,w=Om(f,m,_,{limit:R,maxTokens:I});h!==null&&Cy(h,w.map(({id:G})=>G)),EC(t,f,m,g,w,{bypassed:e.all===true});let D=w.map(({id:G,lesson:Y,score:ee})=>({id:G,rule:Y.rule,topics:[...Y.topics],triggers:[...Y.triggers],evidence:[...Y.evidence],score:ee})),P=g.length-_.length,K={lessons:D,query:m,autoMigrated:r,totalMatches:g.length,...P>0?{suppressed:P}:{},...e.ids===true?{showIds:true}:{},...(()=>{let G=Ty(c,p);return G?{warning:G}:{}})()};return {subcommand:"query",exitCode:0,format:a,data:K}}s(FC,"doQuery");function J1(e){return typeof e=="object"&&e!==null&&e.status==="deprecated"}s(J1,"isDeprecated");function fie(e,t,r){let n=Lh(t),o=Lh(r);if(n===o)return t;if(e!==void 0){let l=Lh(e);if(n===l)return r;if(o===l)return t}let i=J1(t),a=J1(r);return i!==a?i?t:r:n>o?t:r}s(fie,"pick");function MC(e,t,r){let n={};for(let o of new Set([...Object.keys(t),...Object.keys(r)])){let i=t[o],a=r[o];n[o]=i!==void 0&&a!==void 0?fie(e[o],i,a):i??a;}return n}s(MC,"mergeRecord");function Y1(e,t,r){return {version:t.version,lessons:MC(e.lessons,t.lessons,r.lessons),topics:MC(e.topics,t.topics,r.topics),triggers:MC(e.triggers,t.triggers,r.triggers)}}s(Y1,"mergeGraphs");function GC(e){try{let t=xl.safeParse(JSON.parse(readFileSync(e,"utf8")));return t.success?t.data:null}catch{return null}}s(GC,"readGraphFile");function $C(e){let[t,r,n]=e,o={subcommand:"merge-driver",exitCode:1,data:{merged:false},error:"lessons merge-driver: could not merge \u2014 git will fall back to conflict markers."};if(t===void 0||r===void 0||n===void 0)return o;let i=GC(t),a=GC(r),l=GC(n);if(i===null||a===null||l===null)return o;let c=Y1(i,a,l);return Kn(c).ok?(writeFileSync(r,Nu(c),"utf8"),{subcommand:"merge-driver",exitCode:0,data:{merged:true}}):o}s($C,"doMergeDriver");function X1(e,t,r){let n=e.lessons[t];if(n===void 0)throw new Error(`Unknown lesson: ${t}`);if(!n.triggers.includes(r))throw new Error(`Lesson "${t}" does not reference trigger "${r}".`);if(n.status==="active"&&n.triggers.length<=1)throw new Error(`Refusing to remove the only trigger of active lesson "${t}" \u2014 it would become unreachable. Add a replacement trigger first (lessons add "<same rule>" --topic ...), then untrigger.`);let o=n.triggers.filter(l=>l!==r);e.lessons[t]={...n,triggers:o};let i=Object.values(e.lessons).some(l=>l.triggers.includes(r)),a=false;return i||(delete e.triggers[r],a=true),{lessonId:t,triggerId:r,removedTriggerNode:a,remainingTriggerCount:o.length}}s(X1,"untriggerLesson");function Py(e){return (e instanceof Error?e.message:String(e)).replace(/^(mutateLessonsGraph|mergeLessons):\s*/,"")}s(Py,"errMessage");async function jC(e,t,r){let n=t!==void 0&&t.length>0?t:null,o=$t(e,"rule")??n,i=$t(e,"topic");if(o===null)return Me("add",`Missing rule \u2014 pass it positionally (\`add "<rule>"\`) or via --rule.${_d()}`,2);if(i===null)return Me("add",`Missing --topic \u2014 every lesson needs a topic id (run \`agentsmesh lessons topics\` to list them, or pass --new-topic --topic-summary "..." for a new area).${_d()}`,2);let a=existsSync(join(r,".agentsmesh"))?null:xh(r),l=a!==null?`Capturing into a new .agentsmesh here \u2014 a lessons project already exists at ${a.replaceAll("\\","/")}. If that was unintended, cd into it and re-run.`:void 0,c=$u(r)?void 0:"Captured \u2014 but recall is not wired into your AI tools yet (no `init --lessons`). Run `agentsmesh init --lessons`, then `agentsmesh generate`, so agents recall this automatically.";try{return {subcommand:"add",exitCode:0,data:{...await fd(r,{rule:o,topic:i,triggers:{files:xy(e,"trigger-file"),commands:xy(e,"trigger-cmd"),keywords:xy(e,"trigger-kw")},evidence:U1(e,"evidence"),rationale:$t(e,"rationale")??void 0},{allowNewTopic:e["new-topic"]===!0,topicSummary:$t(e,"topic-summary")??void 0}),...l?{locationNote:l}:{},...c?{activationNote:c}:{}}}}catch(m){return m instanceof Bn?Me("add",`Unknown topic: ${m.topic}. Pass --new-topic --topic-summary "..." to create it.`,1):m instanceof li||m instanceof ci||m instanceof ai?Me("add",`${m.message}${_d()}`,2):Me("add",Py(m),1)}}s(jC,"doAdd");async function UC(e,t,r){if(t===void 0||t==="")return Me("deprecate","Usage: agentsmesh lessons deprecate <id> [--superseded-by <id>]",2);let n=$t(e,"superseded-by");try{let{id:o,supersededBy:i}=await by(r,t,n);return {subcommand:"deprecate",exitCode:0,data:{id:o,supersededBy:i}}}catch(o){let i=Py(o),a=i.startsWith("Unknown lesson")?" Run `agentsmesh lessons journal` to list lesson ids (or `lessons query --ids` to see what recalled).":"";return Me("deprecate",`${i}${a}`,1)}}s(UC,"doDeprecate");async function BC(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("untrigger","Usage: agentsmesh lessons untrigger <lesson-id> <trigger-id>",2);try{return {subcommand:"untrigger",exitCode:0,data:await Ot(r,i=>X1(i,e,t))}}catch(n){return Me("untrigger",Py(n),1)}}s(BC,"doUntrigger");async function KC(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("merge","Usage: agentsmesh lessons merge <loser-id> <keeper-id>",2);try{return {subcommand:"merge",exitCode:0,data:await Ey(r,e,t)}}catch(n){return Me("merge",Py(n),1)}}s(KC,"doMerge");async function WC(e,t){let r=e["dry-run"]===true,n=await Oy(t,{dryRun:r});return {subcommand:"strip-markers",exitCode:0,data:{changedIds:n.changedIds,changedCount:n.changedCount,dryRun:r}}}s(WC,"doStripMarkers");async function HC(e,t){let r=e.force===true,n=e.merge===true;if(!r&&!n&&existsSync(Vo(t)))return Me("import-md","lessons.json already exists. Pass --merge to fold legacy lessons into it (recommended \u2014 recovers stranded lessons without data loss), or --force to overwrite.",1);if(!existsSync(je(t).index))return Me("import-md","No legacy lessons store found (.agentsmesh/lessons/index.yaml) \u2014 nothing to migrate.",1);let o=$t(e,"migrated-at")??W1(),i=await Lm(t,{migratedAt:o,force:r,merge:n});return {subcommand:"import-md",exitCode:0,data:{topicCount:i.topicCount,lessonCount:i.lessonCount,triggerCount:i.triggerCount,wroteGraphPath:i.wroteGraphPath,deletedPaths:i.deletedPaths}}}s(HC,"doImportMd");function zC(e,t){return {applied:t,cap:e.cap,removedTriggerIds:e.removedTriggerIds,removedTopicIds:e.removedTopicIds,trimmedLessons:e.trimmedLessons.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),removedDeadGlobs:e.removedDeadGlobs.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),unreachableLessons:e.unreachableLessons}}s(zC,"toPruneData");async function VC(e,t){let r=gd(e,"cap");if(r!==null&&(!Number.isInteger(r)||r<1))return Me("prune","Invalid --cap: expected a positive integer.",2);let n=ca(t)??void 0,o={...r!==null?{cap:r}:{},...n?{knownPaths:n}:{}};if(e.apply!==true){let c=Ye(t)??ha();return {subcommand:"prune",exitCode:0,data:zC(Ul(c,o),false)}}let i=Ye(t)??ha(),a=Ul(i,o);return ud(a)?{subcommand:"prune",exitCode:0,data:zC(a,true)}:{subcommand:"prune",exitCode:0,data:await Ot(t,c=>{let m=Ul(c,o);return Ry(c,m),zC(m,true)})}}s(VC,"doPrune");function q1(e){let t=Ye(e)??ha(),r=Object.entries(t.topics).map(([o,i])=>({id:o,summary:i.summary})).sort((o,i)=>o.id<i.id?-1:1),n=$u(e)?void 0:ju();return {subcommand:"topics",exitCode:0,data:{topics:r,...n?{setupHint:n}:{}}}}s(q1,"doTopics");function Z1(e,t){if(e===void 0||e==="")return Me("show","Usage: agentsmesh lessons show <topic|lesson-id>",2);let r=Ye(t);if(r!==null&&r.topics[e]!==void 0){let n=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(e)&&i.status==="active").sort(([i],[a])=>i<a?-1:1),o=H1(e,r.topics[e].summary,n);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:o}}}if(r!==null&&r.lessons[e]!==void 0){let n=z1(e,r.lessons[e],r.triggers);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:n}}}return Me("show",`Unknown topic or lesson id: ${e}. Run \`agentsmesh lessons topics\` to list topics, or \`agentsmesh lessons journal\` to list lesson ids.`,1)}s(Z1,"doShow");function eV(e){let t=Ye(e)??ha(),r=Object.entries(t.lessons).map(([i,a])=>({id:i,rule:a.rule,createdAt:a.createdAt,topics:[...a.topics]})).sort((i,a)=>i.createdAt!==a.createdAt?i.createdAt<a.createdAt?-1:1:i.id<a.id?-1:1),n=$u(e)?void 0:ju();return {subcommand:"journal",exitCode:0,data:{entries:r,...n?{setupHint:n}:{}}}}s(eV,"doJournal");function tV(e,t){let r=Ye(t)??ha(),n=j1(oK(t),r),o=G1(iK(t));return {subcommand:"stats",exitCode:0,format:e.json===true?"json":"text",data:{report:n,captureReport:o,hasLog:nK(t),hasCaptureLog:sK(t),telemetryEnabled:la()}}}s(tV,"doStats");function rV(e){let t;try{t=Ye(e)??ha();}catch(i){return {subcommand:"validate",exitCode:1,data:{ok:false,findings:[{level:"error",code:"CORRUPT_GRAPH",message:`lessons.json could not be parsed (${i instanceof Error?i.message:String(i)}). The graph is git-tracked \u2014 restore it (e.g. \`git checkout -- .agentsmesh/lessons/lessons.json\`) or repair the JSON; recall degrades to empty until then.`}]}}}let r=ca(e)??void 0,n=Kn(t,{knownPaths:r}),o={ok:n.ok,findings:n.findings};return {subcommand:"validate",exitCode:n.ok?0:1,data:o}}s(rV,"doValidate");async function nV(e){let t=await kie(),{output:r}=await M1(t,e);return {subcommand:"hook",exitCode:0,data:{output:r}}}s(nV,"doHook");var Sie=1e6;async function Rie(e,t=Sie){let r=[],n=0;for await(let o of e){let i=o;if(n+=i.length,n>t)return "";r.push(i);}return Buffer.concat(r).toString("utf8")}s(Rie,"readBoundedStream");async function kie(){return process.stdin.isTTY===true?"":Rie(process.stdin)}s(kie,"readStdin");var Iie=["json","verbose","help"],Lie={query:["file","cmd","command","keyword","format","top","all","max-tokens","session","no-dedup","ids"],add:["rule","topic","trigger-file","trigger-cmd","trigger-kw","evidence","rationale","new-topic","topic-summary"],topics:[],show:[],deprecate:["superseded-by"],merge:[],untrigger:[],"strip-markers":["dry-run"],journal:[],validate:[],stats:["json"],prune:["apply","cap"],"import-md":["merge","force","migrated-at"]};function oV(e,t){let r=Lie[e];if(r===void 0)return null;let n=new Set([...r,...Iie]);for(let o of Object.keys(t))if(!n.has(o))return `Unknown flag --${o} for \`lessons ${e}\`.
701
+ Usage: ${fi[e].usage}`;return null}s(oV,"validateLessonsFlags");async function Cie(e,t){if(e==="import-md")return false;if(e==="query"||e==="hook")try{return await ht(t)}catch{return false}return ht(t)}s(Cie,"migrateForSubcommand");async function sV(e,t,r){let n=t[0];if(n===void 0||n==="")return {subcommand:"help",exitCode:0,data:null};let o=oV(n,e);if(o!==null)return {subcommand:"help",exitCode:2,error:o,data:null};let i=await Cie(n,r);switch(n){case "query":return FC(e,r,i);case "add":return jC(e,t[1],r);case "topics":return q1(r);case "show":return Z1(t[1],r);case "deprecate":return UC(e,t[1],r);case "merge":return KC(t[1],t[2],r);case "untrigger":return BC(t[1],t[2],r);case "strip-markers":return WC(e,r);case "journal":return eV(r);case "validate":return rV(r);case "stats":return tV(e,r);case "prune":return VC(e,r);case "import-md":return HC(e,r);case "hook":return nV(r);case "merge-driver":return $C(t.slice(1));default:return {subcommand:"help",exitCode:2,error:`Unknown lessons subcommand: ${n}`,data:null}}}s(sV,"runLessons");se();se();function Dy(e){return `${(e*100).toFixed(1)}%`}s(Dy,"pct");function aV(e,t){if(t==="json"){process.stdout.write(`${JSON.stringify({...e.report,capture:e.captureReport},null,2)}
702
+ `);return}if(!e.hasLog&&!e.hasCaptureLog){Eie(e.telemetryEnabled);return}e.hasLog&&Oie(e.report),e.hasCaptureLog&&wie(e);}s(aV,"renderStats");function Eie(e){e?y.info("(telemetry is ON here, but nothing has been recorded yet \u2014 telemetry is written by `lessons query` recalls and `lessons add` captures, not by `stats`. Run some `agentsmesh lessons` calls, then re-run stats.)"):y.info("(no lessons telemetry yet \u2014 recording happens during `lessons query` recalls and `lessons add` captures, NOT during `stats`. Set AGENTSMESH_LESSONS_TELEMETRY=1 in the environment that runs them \u2014 your shell for CLI calls, and/or the MCP server process for agent calls \u2014 then re-run `stats`.)");}s(Eie,"renderEmptyStatsHint");function Oie(e){let t=e.preloadBreakEven;y.info(`recalls: ${e.totalRecalls} no-match: ${Dy(e.noMatchRate)} sessions: ${t.sessions} bypassed(--all): ${e.bypassedRecalls}`),y.info(`match counts: ${e.matchCountHistogram.map(r=>`${r.bucket}=${r.count}`).join(" ")}`),y.info(`returned tokens: p50=${e.returnedTokens.p50} p90=${e.returnedTokens.p90} max=${e.returnedTokens.max}`),y.info(`break-even (per session): preload ${t.sessions}\xD7${e.wholeActiveSetTokens}=${t.preloadTokens} vs mandatory recall=${t.mandatoryRecallTokens} \u2192 ${t.recallCheaper?"recall cheaper":"preload cheaper"} (ratio ${t.ratio.toFixed(2)})`),y.info(`redundancy: ${Dy(e.redundancy.rate)} of delivered rule-tokens are intra-session repeats (coverage ${Dy(e.redundancy.coverage)})`),y.info(`reachability: keyword-only recalls ${Dy(e.reachability.keywordOnlyRecallRate)}, keyword-only-unreachable lessons ${e.reachability.keywordOnlyUnreachableLessons}`);}s(Oie,"renderRecallStats");function wie(e){let t=e.captureReport,r=t.byTriggerKind,n=t.total===0?"\u2014":(e.report.totalRecalls/t.total).toFixed(2);y.info(`captures: ${t.total} blocked: ${t.blocked} new: ${t.newLessons} upsert: ${t.upserts} new-topics: ${t.newTopics} warned: ${t.withWarnings}`),y.info(`capture triggers by kind: file=${r.file} cmd=${r.command} kw=${r.keyword}`),y.info(`recall:capture ratio: ${n} recalls per capture`);}s(wie,"renderCaptureStats");function lV(e){let t=e.removedTriggerIds.length,r=e.removedTopicIds.length,n=e.trimmedLessons.length,o=e.removedDeadGlobs.length;if(t===0&&r===0&&n===0&&o===0){y.success(`Lessons graph already lean (cap ${e.cap}) \u2014 nothing to prune.`),iV(e.unreachableLessons);return}let i=e.applied?"Pruned":"Would prune";y.success(`${i}: ${o} dead glob${o===1?"":"s"} detached, ${t} dead trigger${t===1?"":"s"} removed, ${r} orphan topic${r===1?"":"s"} removed, ${n} over-cap lesson${n===1?"":"s"} trimmed (cap ${e.cap}).`);for(let a of e.trimmedLessons)y.info(` trim ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);for(let a of e.removedDeadGlobs)y.info(` dead-glob ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);iV(e.unreachableLessons),e.applied||y.warn("Dry run \u2014 pass --apply to write. lessons.json is git-tracked, so prune is reversible.");}s(lV,"renderPrune");function iV(e){e.length!==0&&y.warn(`${e.length} lesson${e.length===1?"":"s"} unreachable (every trigger is a dead glob) \u2014 left intact to avoid stranding; re-point a trigger or deprecate: ${e.join(", ")}`);}s(iV,"renderUnreachable");function cV(e){for(let t of e.findings){let r=`${t.level.toUpperCase()} ${t.code}: ${t.message}`;t.level==="error"?y.error(r):y.warn(r);}e.ok&&y.success("Lessons graph: ok.");}s(cV,"renderValidate");function pV(e){if(e.error!==void 0&&e.error.length>0){y.error(e.error);return}switch(e.subcommand){case "help":return Nie();case "hook":e.data.output.length>0&&process.stdout.write(`${e.data.output}
703
+ `);return;case "merge-driver":return;case "query":return bie(e.data,e.format);case "add":return Aie(e.data);case "topics":return xie(e.data);case "show":return Tie(e.data);case "deprecate":y.success(e.data.supersededBy===null?`Deprecated ${e.data.id}.`:`Superseded ${e.data.id} \u2192 ${e.data.supersededBy}.`);return;case "merge":e.exitCode===0&&y.success(`Merged ${e.data.loserId} \u2192 ${e.data.keeperId}.`);return;case "untrigger":y.success(`Removed trigger ${e.data.triggerId} from ${e.data.lessonId} (${e.data.remainingTriggerCount} trigger${e.data.remainingTriggerCount===1?"":"s"} left)${e.data.removedTriggerNode?"; trigger node garbage-collected (no other lesson used it)":""}.`);return;case "strip-markers":y.success(`${e.data.dryRun?"Would strip":"Stripped"} legacy markers from ${e.data.changedCount} lesson${e.data.changedCount===1?"":"s"}.`);return;case "journal":return Pie(e.data);case "validate":return cV(e.data);case "prune":return lV(e.data);case "stats":return aV(e.data,e.format);case "import-md":return Die(e.data)}}s(pV,"renderLessons");function bie(e,t){if(e.autoMigrated&&y.warn("lessons.json was auto-migrated from index.yaml on first invocation."),e.warning!==void 0&&e.warning.length>0&&y.warn(e.warning),t==="json"){process.stdout.write(`${JSON.stringify(e,null,2)}
704
+ `);return}if(e.lessons.length===0){y.info("(no matches)");return}let r=s((n,o)=>e.showIds===true?`[${n}] ${o}`:o,"withId");if(t==="md")e.lessons.forEach((n,o)=>y.info(`${o+1}. ${r(n.id,n.rule)}`));else for(let n of e.lessons)y.info(r(n.id,n.rule));e.totalMatches!==void 0&&e.totalMatches>e.lessons.length&&y.warn(`(showing ${e.lessons.length} of ${e.totalMatches} matches \u2014 raise --top <n> with --max-tokens <m>, or pass --all)`),e.suppressed!==void 0&&e.suppressed>0&&y.warn(`(${e.suppressed} already shown this session \u2014 deduped; pass --no-dedup to include)`);}s(bie,"renderQuery");function Aie(e){if(!e.isNewLesson){if(e.newTriggerIds.length>0){let t=e.newTriggerIds.length;y.success(`Updated lesson: ${e.id} (+${t} trigger${t===1?"":"s"})`);}else y.info(`Existing lesson: ${e.id} (no change)`);mV(e);return}y.success(`Added lesson: ${e.id}`),e.isNewTopic&&y.info(" created new topic"),e.newTriggerIds.length>0&&y.info(` new triggers: ${e.newTriggerIds.join(", ")}`),mV(e);}s(Aie,"renderAdd");function mV(e){e.locationNote!==void 0&&y.warn(e.locationNote),e.activationNote!==void 0&&y.warn(e.activationNote);for(let r of e.warnings)y.warn(`${r.code}: ${r.message}`);let t=e.autoPruned;t!==void 0&&y.info(` auto-pruned: ${t.removedTriggers} orphan trigger${t.removedTriggers===1?"":"s"}, ${t.removedTopics} orphan topic${t.removedTopics===1?"":"s"}, ${t.detachedDeadGlobs} dead glob${t.detachedDeadGlobs===1?"":"s"} detached (git-reversible)`);}s(mV,"renderGuardrails");function xie(e){if(e.topics.length===0)y.info("(no topics)");else for(let t of e.topics)y.info(`${t.id} ${t.summary}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(xie,"renderTopics");function Tie(e){process.stdout.write(e.markdown);}s(Tie,"renderShow");function Pie(e){for(let t of e.entries)y.info(`${t.createdAt} ${t.id} ${t.rule}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(Pie,"renderJournal");function Die(e){y.success(`Imported lessons: topics=${e.topicCount} lessons=${e.lessonCount} triggers=${e.triggerCount}`),y.info(` graph: ${e.wroteGraphPath.replaceAll("\\","/")}`),e.deletedPaths.length>0&&y.info(` removed legacy: ${e.deletedPaths.length} path${e.deletedPaths.length===1?"":"s"}`);}s(Die,"renderImportMd");function Nie(){y.info("Usage: agentsmesh lessons <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:");for(let e of Object.values(fi)){let t=e.usage.replace(/^agentsmesh lessons /,""),r=e.summary!==void 0?` (${e.summary})`:"";y.info(` ${t}${r}`);}}s(Nie,"printHelp");function st(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Array.isArray(n)?n[n.length-1]:n;return t}s(st,"narrowFlags");var uV={generate:s(async(e,t)=>{let r=st(e),n=await gm(r,void 0,{printMatrix:r.json!==true});at("generate",n,r,()=>hm(n));},"generate"),init:s(async(e,t)=>{let r=await IK(process.cwd(),{yes:e.yes===true,global:e.global===true,lessons:e.lessons===true});at("init",r,st(e),()=>CK(r));},"init"),import:s(async(e,t)=>{let r=st(e),n=await wK(r);at("import",n,r,()=>BK(n));},"import"),diff:s(async(e,t)=>{let r=st(e),n=await AK(r);at("diff",n,r,()=>KK(n));},"diff"),lint:s(async(e,t)=>{let r=st(e),n=await $K(r);at("lint",n,r,()=>jK(n));},"lint"),check:s(async(e,t)=>{let r=st(e),n=await VK(r);at("check",n,r,()=>UK(n));},"check"),merge:s(async(e,t)=>{let r=st(e),n=await XK(r);at("merge",n,r,()=>WK(n));},"merge"),matrix:s(async(e,t)=>{let r=st(e),n=await wu(r);at("matrix",n,r,()=>Au(n,{verbose:r.verbose===true}));},"matrix"),watch:s(async(e,t)=>{let r=st(e);if(r.json===true){Jl("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let n=await zK(r),o=s(()=>{n.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",o),process.on("SIGTERM",o);},"watch"),install:s(async(e,t)=>{let r=st(e);r.json===true&&(r.force=true);let n=await nz(r,t,process.cwd());at("install",n,r,()=>oz(n));},"install"),uninstall:s(async(e,t)=>{let r=st(e);r.json===true&&(r.force=true);let n=await _z(r,t,process.cwd());at("uninstall",n,r,()=>Sz(n));},"uninstall"),refresh:s(async(e,t)=>{let r=st(e),n=await bz(r,t,process.cwd());at("refresh",n,r,()=>Az(n));},"refresh"),installs:s(async(e,t)=>{let r=st(e),n=await Tz(r,t,process.cwd());at("installs",n,r,()=>Pz(n));},"installs"),plugin:s(async(e,t)=>{let r=st(e),n=await Fz(r,t,process.cwd());at("plugin",n,r,()=>Mz(n));},"plugin"),target:s(async(e,t)=>{let r=st(e),n=await zz(r,t,process.cwd());at("target",n,r,()=>Vz(n));},"target"),convert:s(async(e,t)=>{let r=st(e),n=await uy(r);at("convert",n,r,()=>Jz(n));},"convert"),mcp:s(async(e,t)=>{await v1(st(e));},"mcp"),lessons:s(async(e,t)=>{let r=await sV(e,t,process.cwd());at("lessons",r,st(e),()=>pV(r)),r.exitCode!==0&&process.exit(r.exitCode);},"lessons")};var Mie=new Set(["json","verbose","help"]);function JC(e,t,r){let n=e[t];if(n===void 0||typeof r=="boolean"){e[t]=r;return}Array.isArray(n)?n.push(r):typeof n=="string"?e[t]=[n,r]:e[t]=r;}s(JC,"setFlag");function Gie(e){let t={},r=[],n="help";for(let o=0;o<e.length;o++){let i=e[o];if(n==="help"&&i==="--version")return {command:"version",flags:{},args:[]};if(n==="help"&&i==="--help")return {command:"help",flags:{},args:[]};if(i.startsWith("--")){let a=i.slice(2);if(Mie.has(a)){JC(t,a,true);continue}let l=e[o+1];l===void 0||l.startsWith("--")?JC(t,a,true):(JC(t,a,l),o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:t,args:r}}s(Gie,"parseArgs");var $ie=QC(uV);async function jie(e){let{command:t,flags:r,args:n}=e;if(t==="help"){Gy();return}if(t==="version"){nE();return}if(r.help===true){Rd(t,n);return}r.json===true&&ZC(),await $ie.route(t,r,n);}s(jie,"main");function Uie(){let e=process.argv[1];if(!e)return false;let t=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),e);return r===t||realpathSync(r)===realpathSync(t)}catch{return e.endsWith("cli.js")||e.includes("agentsmesh")}}s(Uie,"isMainModule");if(Uie()){let e=Gie(process.argv.slice(2));jie(e).catch(t=>oE(t instanceof Error?t:new Error(String(t)),{verbose:e.flags.verbose===true,json:e.flags.json===true,command:e.command}));}export{Gie as parseArgs};