agentsmesh 0.23.0 → 0.24.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 BC 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 u4 from'picomatch';import {createTwoFilesPatch}from'diff';import Z5 from'chokidar';import*as uK 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 uC=Object.defineProperty;var s=(e,t)=>uC(e,"name",{value:t,configurable:true});var d=(e,t)=>()=>(e&&(t=e(e=0)),t);var my=(e,t)=>{for(var r in t)uC(e,r,{get:t[r],enumerable:true});};function Oz(){let e=process.env.NO_COLOR;return e!==void 0&&e!==""}function Az(){let e=process.env.FORCE_COLOR;if(e!==void 0)return e!=="0"&&e!=="false"}function Sl(e=process.stdout){let t=Az();return t!==void 0?t:Oz()?false:e.isTTY===true}var Wu=d(()=>{s(Oz,"noColorRequested");s(Az,"forceColorRequested");s(Sl,"colorEnabled");});function gC(){Vi=true;}function hC(){fC=true;}function Hu(){return fC?process.stderr:process.stdout}function kl(e){Hu().write(e);}function xm(e,t,r){return Sl(r)?`${e}${t}${Il.reset}`:t}function xz(e,t){let r=[...e].length;return e+" ".repeat(Math.max(0,t-r))}var Il,Vi,fC,y,ne=d(()=>{Wu();Il={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},Vi=false,fC=false;s(gC,"muteLogger");s(hC,"redirectLoggerToStderr");s(Hu,"outStream");s(kl,"out");s(xm,"c");s(xz,"pad");y={info(e){Vi||kl(xm(Il.cyan,e,Hu())+`
3
- `);},warn(e){Vi||process.stderr.write(xm(Il.yellow,"\u26A0 ",process.stderr)+e+`
4
- `);},error(e){Vi||process.stderr.write(xm(Il.red,"\u2717 ",process.stderr)+e+`
5
- `);},success(e){Vi||kl(xm(Il.green,"\u2713 ",Hu())+e+`
6
- `);},debug(e){Vi||process.env.AGENTSMESH_DEBUG==="1"&&kl(xm(Il.cyan,"[debug] ",Hu())+e+`
7
- `);},table(e){if(Vi||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)=>xz(l,r[c])).join(" | ")+" |";kl(a+`
9
- `);}kl(n+`
10
- `);}};});var Do,Jr,El,Dn,wl,zt,No=d(()=>{Do=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(t,r,n){super(r,n),this.name="AgentsMeshError",this.code=t;}},Jr=class extends Do{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;}},El=class extends Do{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;}},Dn=class extends Do{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;}},wl=class extends Do{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;}},zt=class extends Do{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 Xu(e){let t=extname(e).toLowerCase();if(t.length>0)return $z.has(t);let r=basename(e).toLowerCase();return Gz.has(r)}function qu(e){return e.replace(/\r\n?/g,`
11
- `)}function dy(e){return jz.has(extname(e).toLowerCase())?493:void 0}var bl,$z,Gz,jz,Qu=d(()=>{bl="\uFEFF",$z=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),Gz=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Xu,"shouldNormalizeLineEndings");s(qu,"normalizeLineEndings");jz=new Set([".sh",".bash",".zsh"]);s(dy,"executableModeFor");});function wC(e){if(e.length>Jz)return true;let t=new Map;for(let r of e){let n=(t.get(r)??0)+1;if(n>=Yz)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 zt(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(wC(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 zt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Ws(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(wC(l))continue;o.push(...await Ws(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 zt(e,`Failed to read directory ${e}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function fy(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 Jz,Yz,gy=d(()=>{No();Jz=32,Yz=3;s(wC,"shouldSkipRecursiveBranch");s(U,"readDirRecursive");s(Ws,"readDirRecursiveNoSymlinks");s(fy,"ensureCacheSymlink");});async function hy(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&&Qz.has(l))||i>=n-1)throw a;await setTimeout$1(o*2**i);}}var Qz,bC=d(()=>{Qz=new Set(["EPERM","EACCES","EBUSY","ENOTEMPTY","EEXIST"]);s(hy,"renameWithRetry");});async function k(e){try{let t=await readFile(e,"utf-8");return t.startsWith(bl)?t.slice(bl.length):t}catch(t){let r=t;if(r.code==="ENOENT")return null;throw new zt(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 zt(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 zt||l.code!=="ENOENT")throw l}let o=`${e}.tmp`,i=Xu(e)?qu(t):t,a=r?.mode??dy(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 zt(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 w(e){await mkdir(e,{recursive:true});}var A=d(()=>{No();Qu();gy();Qu();bC();s(k,"readFileSafe");s(L,"writeFileAtomic");s(j,"exists");s(w,"mkdirp");});function Vt(e){return yy.includes(e)}var yy,TC=d(()=>{yy=["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(Vt,"isBuiltinTargetId");});var je,Ry,Nn=d(()=>{TC();je=yy,Ry="codex-cli";});var PC,fr,Ol,a1,Pm,l1,c1,Tm,m1,p1,Yi,vo=d(()=>{Nn();PC=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],fr=z$1.enum(je),Ol=z$1.enum(PC),a1=z$1.enum(["rules","commands","agents","skills"]),Pm=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(),l1=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:fr.optional(),as:a1.optional(),features:z$1.array(Ol),path:z$1.string().optional(),pick:Pm.optional()}),c1=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Tm=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),m1=z$1.object({commands_to_skills:z$1.object({"codex-cli":Tm.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Tm.optional(),cline:Tm.optional(),"codex-cli":Tm.optional(),windsurf:Tm.optional()}).passthrough().optional()}).strict().optional(),p1=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(),Yi=z$1.object({version:z$1.literal(1),targets:z$1.array(fr).default([...je]),features:z$1.array(Ol).default([...PC]),extends:z$1.array(l1).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:c1.default({strategy:"merge",lock_features:[]}),conversions:m1,plugins:z$1.array(p1).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function f1(e){let t=resolve(e);for(;;){let r=join(t,Sy);if(await j(r))return r;let n=dirname(t);if(n===t)return null;t=n;}}async function g1(e){let t=await k(e);if(t===null)throw new Jr(e);let r=parse(t),n=Yi.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new El(e,o,{cause:n.error})}return n.data}function _y(e,t){let r={...e};for(let[n,o]of Object.entries(t)){if(o==null||h1.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]=_y(i,o):r[n]=o;}return r}function y1(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=_y(r.overrides??{},t.overrides)),typeof t.conversions=="object"&&t.conversions!==null&&!Array.isArray(t.conversions)&&(r.conversions=_y(r.conversions??{},t.conversions)),Array.isArray(t.extends)&&t.extends.length>0&&(r.extends=[...e.extends??[],...t.extends]),r}async function ed(e){let t=join(e,Sy),r=await g1(t),n=join(e,d1),o=await k(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=y1(r,i),l=Yi.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 td(e){let t=await f1(e);if(t===null)throw new Jr(join(e,Sy));return ed(dirname(t))}var Sy,d1,h1,rd=d(()=>{A();ne();No();vo();Sy="agentsmesh.yaml",d1="agentsmesh.local.yaml";s(f1,"findConfigPath");s(g1,"loadConfig");h1=new Set(["__proto__","constructor","prototype"]);s(_y,"deepMergeObjects");s(y1,"mergeLocalConfig");s(ed,"loadConfigFromExactDir");s(td,"loadConfigFromDir");});function Xi(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 td(e);return {config:n,context:{scope:t,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Xi(e,t);try{let{config:n}=await ed(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Jr?new Jr(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(()=>{rd();No();s(Xi,"resolveScopeContext");s(ye,"loadScopedConfig");});function Al(e){return e.replace(_1,(t,r,n,o)=>`${r}***@${o}`)}var _1,Iy=d(()=>{_1=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(Al,"redactUrlSecrets");});function MC(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}async function nd(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,vC),u=`${m}.tmp`,f=join(u,vC);if(!r.refresh&&await FC(p))return Ey(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await w1(E1(e),f),e.ref&&await b1(f,e.ref),await rm$1(m,{recursive:!0,force:!0}),await hy(u,m),Ey(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await FC(p)){let R=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${t}; using cached version. Error: ${Al(R)}`),Ey(p)}throw g instanceof Error?Object.assign(new Error(Al(g.message)),{cause:g.cause}):g}}async function Ey(e){return {resolvedPath:e,version:await O1(e)}}async function FC(e){return j(e)}function E1(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 w1(e,t){MC(e,"clone-url"),await wy(["clone",e,t]);}async function b1(e,t){MC(t,"ref"),await wy(["checkout",t],e);}async function O1(e){return wy(["rev-parse","HEAD"],e)}async function wy(e,t){let{stdout:r}=await C1("git",e,{cwd:t,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var C1,vC,by=d(()=>{A();Iy();C1=promisify(execFile),vC="repo";s(MC,"ensureNotFlag");s(nd,"fetchGitRemoteExtend");s(Ey,"readCachedRepo");s(FC,"hasCachedRepo");s(E1,"resolveCloneUrl");s(w1,"cloneRepo");s(b1,"checkoutRef");s(O1,"getHeadSha");s(wy,"runGit");});function P1(){let e=process.env.AGENTSMESH_MAX_TARBALL_MB;if(e===void 0||e==="")return Nm*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 ${Nm} MiB.`),Nm*1024*1024):t<GC||t>jC?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${t} is outside [${GC}, ${jC}]; using default ${Nm} MiB.`),Nm*1024*1024):t*1024*1024}async function N1(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 KC(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 WC(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 KC(e.org,e.repo,a);}catch(S){if(!i)throw S;return F1(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 S=await Oy(p);if(S)return {resolvedPath:join(p,S),version:c}}let u=`https://github.com/${e.org}/${e.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let S=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!S.ok)throw new Error(`HTTP ${S.status}: ${S.statusText}`);g=await N1(S,D1);}catch(S){if(r.allowOfflineFallback!==false&&await j(p)){let b=await Oy(p);if(b){let P=S instanceof Error?S.message:String(S);return console.warn(`[agentsmesh] Network failed for ${t}; using cached version. Error: ${Al(P)}`),{resolvedPath:join(p,b),version:c}}}throw S instanceof Error?Object.assign(new Error(Al(S.message)),{cause:S.cause}):S}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 BC.extract({file:h,cwd:p,strict:!0,filter:s((S,I)=>{if(v1(S))return !1;let b=I&&"type"in I?I.type:void 0;return b==="File"||b==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let R=await Oy(p);if(!R)throw new Error(`Extend "${t}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,R),version:c}}async function Oy(e){let r=(await readdir(e,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function UC(e,t,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${e}/${t}.git`:`https://github.com/${e}/${t}.git`}function v1(e){let t=e.replace(/\\/g,"/");return t.startsWith("/")||t.split("/").includes("..")}async function F1(e,t,r,n,o,i){let a=i?[UC(e.org,e.repo,i)]:[UC(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 nd(m,t,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Nm,GC,jC,D1,HC=d(()=>{A();Iy();by();Nm=500,GC=1,jC=4096;s(P1,"resolveMaxTarballBytes");D1=P1();s(N1,"readBoundedResponse");s(KC,"resolveLatestTag");s(WC,"fetchGithubRemoteExtend");s(Oy,"findExtractTopDir");s(UC,"buildGithubCloneUrl");s(v1,"isZipSlipPath");s(F1,"fetchGithubDefaultBranch");});function zC(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 VC(e){let t=zC(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 JC(e){let t=zC(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 YC(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 qi(e){let t=VC(e);if(t)return {kind:"github",...t};let r=JC(e);if(r)return {kind:"gitlab",...r};let n=YC(e);return n?{kind:"git",...n}:null}function Ay(e){return qi(e)!==null}var vm=d(()=>{s(zC,"splitSourceRef");s(VC,"parseGithubSource");s(JC,"parseGitlabSource");s(YC,"parseGitSource");s(qi,"parseRemoteSource");s(Ay,"isSupportedRemoteSource");});function j1(e){let t=qi(e);return t?t.kind==="github"?xl("github",`${t.org}/${t.repo}`,t.tag):t.kind==="gitlab"?xl("gitlab",`${t.namespace}/${t.project}`,t.ref??"HEAD"):xl("git",t.url,t.ref??"HEAD"):null}async function QC(e,t){let r=j1(e);if(!r)return;let n=t??Jt(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function ZC(e,t){let r=e??Jt(),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 xy=d(()=>{Fm();vm();s(j1,"cacheKeyFromSource");s(QC,"cleanInstallCache");s(ZC,"sweepStaleCache");});function xl(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>rE){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,rE-18)}--${i}`;}return o}function Jt(){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 Tl(e,t,r={}){let n=qi(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??Jt();return ZC(o).catch(()=>{}),n.kind==="github"?WC(n,t,r,o,xl,!e.includes("@")):nd(n,t,r,o,xl)}var rE,Fm=d(()=>{by();HC();vm();xy();rE=80;s(xl,"buildCacheKey");s(Jt,"getCacheDir");s(Tl,"fetchRemoteExtend");});function H1(e){return e.startsWith("http://")||e.startsWith("https://")}async function Pl(e,t,r={}){if(e.extends.length===0)return [];if(r.refreshCache===true&&e.extends.some(o=>Ay(o.source))){let o=Jt();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of e.extends){if(H1(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(Ay(o.source)){let a=await Tl(o.source,o.name,{cacheDir:Jt(),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 od=d(()=>{A();Fm();vm();s(H1,"isOtherRemoteSource");s(Pl,"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 J1(e){if(e.indexOf("---")!==0)return e.trim();let t=e.indexOf("---",3);return t===-1?e.trim():e.slice(t+3).trim()}function Yr(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:J1(e)}}}function Fo(e,t,r){let n=Yr(e,t);if(n.ok)return n.value;if(r)return r(n.error,t),null;throw n.error}function D(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 {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:`---
12
12
  ${stringify(e,{lineWidth:0}).trimEnd()}
13
13
  ---
14
14
 
15
- ${t}`}var B=d(()=>{s(x,"parseFrontmatter");s(J1,"extractBody");s(Yr,"tryParseFrontmatter");s(Fo,"parseOrSkipFrontmatter");s(D,"serializeFrontmatter");});function q1(e){let t=e.replace(/\.[^.]*$/,"").toUpperCase();return Y1.has(t)}function nE(e){let t=[],r=e.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(X1.test(n)){t.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){t.push({segment:n,reason:"trailing-dot-or-space"});continue}q1(n)&&t.push({segment:n,reason:"reserved-name"});}return t}var Y1,X1,oE=d(()=>{Y1=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),X1=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(q1,"segmentReservedName");s(nE,"findWindowsPathIssues");});function Mo(e,t){let r=nE(t);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new sd(e,t,`canonical ${e} name "${t}" is not portable to Windows: ${n}. Rename the file.`)}function id(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 sd(e,m,`canonical ${e} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var sd,Mm=d(()=>{oE();sd=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(t,r,n){super(n),this.feature=t,this.name=r;}};s(Mo,"assertCanonicalName");s(id,"assertNoBasenameCollisions");});function Dl(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();eV.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 eV,ad=d(()=>{ne();eV=new Set([".toml",".yaml",".yml",".json"]);s(Dl,"warnIfUnrecognizedResourceFormats");});function iE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}async function Hs(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("_")});Dl("rules",e,r,n,{handledByOtherReader:t.handledByOtherReader});let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&tV.includes(g)?g:void 0,R=c.codex_emit,_=R==="execution"?"execution":R==="advisory"?"advisory":void 0,I=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:iE(c.targets),description:typeof c.description=="string"?c.description:"",globs:iE(c.globs),body:m,...h!==void 0&&{trigger:h},..._!==void 0&&{codexEmit:_},...I!==void 0&&{codexInstructionVariant:I}});}return o}var tV,$m=d(()=>{A();B();Mm();ad();tV=["always_on","model_decision","glob","manual"];s(iE,"toStrArray");s(Hs,"parseRules");});function lE(e){return e===true||e==="true"||e===1||e==="1"}function cE(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 zs(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));Dl("commands",e,r,n,{handledByOtherReader:t.handledByOtherReader}),id("command",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("command",p);let u=cE(c.allowedTools),f=cE(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:lE(c.outputStyle)||lE(c["output-style"]),body:m});}return o}var Gm=d(()=>{A();B();Mm();ad();s(lE,"toBool");s(cE,"toToolsArray");s(zs,"parseCommands");});function Qi(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 pE(e){return e===true||e==="true"||e===1||e==="1"}function uE(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 rV(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}async function Vs(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));Dl("agents",e,r,n,{handledByOtherReader:t.handledByOtherReader}),id("agent",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("agent",p);let u=Qi(c.tools),f=Qi(c.tools),g=u.length>0?u:f,h=Qi(c.disallowedTools),R=Qi(c["disallowed-tools"]),_=h.length>0?h:R,S=Qi(c.mcpServers),I=Qi(c["mcp-servers"]),b=S.length>0?S:I,P=Qi(c.skills),T=uE(c.maxTurns),W=uE(c["max-turns"]),$=T>0?T:W>0?W:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:_,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:$,mcpServers:b,hooks:rV(c.hooks),skills:P,memory:typeof c.memory=="string"?c.memory:"",outputStyle:pE(c.outputStyle)||pE(c["output-style"]),body:m});}return o}var jm=d(()=>{A();B();Mm();ad();s(Qi,"toStrArray");s(pE,"toBool");s(uE,"toInt");s(rV,"toHooks");s(Vs,"parseAgents");});function Ty(e){let t=e.toLowerCase(),r=t.lastIndexOf("."),n=r>0?t.slice(0,r):t;return nV.get(n)}function vn(e){return Ty(e)!==void 0}function ld(e){return Ty(e)==="preserved"}function cd(e){return Ty(e)==="noise"}function dE(e){return oV.has(e)}function fE(e){return sV.has(e)}var nV,oV,sV,$o=d(()=>{nV=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"]]),oV=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),sV=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(Ty,"boilerplateKind");s(vn,"isBoilerplate");s(ld,"isPreservedBoilerplate");s(cd,"isNoiseBoilerplate");s(dE,"isRepoNonContentDir");s(fE,"isRepoNonContentFile");});async function lV(e){return await k(e)??""}function mV(e){let t=e.lastIndexOf(".");return t<0?true:cV.has(e.slice(t).toLowerCase())}function uV(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function gE(e){let t=await Ws(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(pV.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(mV(l)&&cd(l))continue;let c=await lV(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function pd(e,t={}){let r=join(e,md),n=await k(r);if(!n)return null;let o=Fo(n,r,t.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await gE(e),m=(typeof i.name=="string"?uV(i.name):"")||basename(e);return Mo("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Js(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;Mo("skill",o.name);let i=join(e,o.name),a=join(i,md),l=await k(a);if(!l)continue;let c=Fo(l,a,t.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await gE(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,cV,pV,Nl=d(()=>{A();gy();B();$o();Mm();s(lV,"readContent");md="SKILL.md",cV=new Set([".md",".mdx",".rst",".txt"]);s(mV,"isMarkdownLikeDoc");pV=[".git","node_modules"];s(uV,"sanitizeSkillName");s(gE,"listSupportingFiles");s(pd,"parseSkillDirectory");s(Js,"parseSkills");});function hE(e){return e===null||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}function dV(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.type=="string"?t.type:"stdio",n=hE(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:hE(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 fV(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 Xr(e){let t=await k(e);if(!t)return null;let r;try{r=JSON.parse(fV(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=dV(a);l&&(o[i]=l);}return {mcpServers:o}}var Um=d(()=>{A();s(hE,"parseStringMap");s(dV,"parseServer");s(fV,"stripJsonComments");s(Xr,"parseMcp");});function Dy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}async function ud(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=Dy(n.allow),i=Dy(n.deny),a=Dy(n.ask);return {allow:o,deny:i,ask:a}}var Ny=d(()=>{A();s(Dy,"ensureStringArray");s(ud,"parsePermissions");});function yE(e){return typeof e=="string"?e.trim():""}function Ze(e){return yE(e.command)}function At(e){return yE(e.prompt)}function vy(e){let t=Ze(e),r=At(e);return e.type==="prompt"?r||t:t||r}function Go(e){return Ze(e).length>0}function Fn(e){return vy(e).length>0}var qr=d(()=>{s(yE,"trimString");s(Ze,"getHookCommand");s(At,"getHookPrompt");s(vy,"getHookText");s(Go,"hasHookCommand");s(Fn,"hasHookText");});function RV(e){if(!e||typeof e!="object")return null;let t=e,r=t.matcher;if(typeof r!="string")return null;let n=vy(t);if(!n)return null;let o=typeof t.type=="string"&&yV.includes(t.type)?t.type:void 0,i=typeof t.timeout=="number"&&Number.isFinite(t.timeout)?t.timeout:void 0,a=At(t)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function dd(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=RV(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var yV,Fy=d(()=>{A();qr();yV=["command","prompt"];s(RV,"toHookEntry");s(dd,"parseHooks");});async function fd(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 My=d(()=>{A();s(fd,"parseIgnore");});async function Gt(e,t={}){let r=join(e,".agentsmesh"),n=await j(r)?r:e,[o,i,a,l,c,m,p,u]=await Promise.all([Hs(join(n,"rules"),t),zs(join(n,"commands"),t),Vs(join(n,"agents"),t),Js(join(n,"skills"),t),Xr(join(n,"mcp.json")),ud(join(n,"permissions.yaml")),dd(join(n,"hooks.yaml")),fd(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Zi=d(()=>{$m();Gm();jm();Nl();Um();Ny();Fy();My();A();s(Gt,"loadCanonicalFiles");});function RE(e){return basename(e.source,".md")}function vl(e,t){let r=new Map(e.rules.map(p=>[RE(p),p]));for(let p of t.rules)r.set(RE(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=SV(e.mcp,t.mcp),l=kV(e.permissions,t.permissions),c=IV(e.hooks,t.hooks),m=LV(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 SV(e,t){if(!e&&!t)return null;let r=e?.mcpServers??{},n=t?.mcpServers??{};return {mcpServers:{...r,...n}}}function kV(e,t){if(!e&&!t)return null;let r=$y(e?.allow??[],t?.allow??[]),n=$y(e?.deny??[],t?.deny??[]),o=$y(e?.ask??[],t?.ask??[]);return {allow:r,deny:n,ask:o}}function $y(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 IV(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 LV(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 Gy=d(()=>{s(RE,"ruleSlug");s(vl,"mergeCanonicalFiles");s(SV,"mergeMcp");s(kV,"mergePermissions");s($y,"mergeUniqueStrings");s(IV,"mergeHooks");s(LV,"mergeIgnore");});function xV(e){return typeof e=="string"?e:e.level}function _E(e){return AV.includes(e)}function SE(e,t,r,n){for(let o of OV){let i=xV(t[o.feature]);if(i==="none")continue;let a=typeof e.generators[o.generator]=="function",l=_E(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}`+(_E(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function gd(e){return FV.parse(e)}var Uo,kE,CV,EV,IE,wV,bV,OV,AV,TV,PV,DV,NV,vV,FV,jy=d(()=>{Uo=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()})]),kE=z$1.object({rules:Uo,additionalRules:Uo,commands:Uo,agents:Uo,skills:Uo,mcp:Uo,hooks:Uo,ignore:Uo,permissions:Uo}),CV=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(),EV=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),IE=z$1.object({paths:EV}).passthrough(),wV=z$1.object({capabilities:kE,detectionPaths:z$1.array(z$1.string()),layout:IE,scopeExtras:z$1.function().optional()}).passthrough(),bV=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],OV=[{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"}],AV=["mcp","hooks","ignore","permissions"];s(xV,"capabilityLevel");s(_E,"canUseScopedSettings");s(SE,"validateCapabilityImplementations");TV=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),PV=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(),DV=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")})]),NV=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:DV})).optional(),inferPick:z$1.function().optional(),dialectHints:z$1.array(z$1.object({frontmatterKey:z$1.string().min(1)})).optional()}).strict(),vV=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:PV,generators:CV,capabilities:kE,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:IE,globalSupport:wV.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),nativeInstall:NV.optional(),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:TV.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),FV=vV.superRefine((e,t)=>{for(let r of bV)r in e&&t.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});SE(e,e.capabilities,t,["capabilities"]),e.globalSupport!==void 0&&SE(e,e.globalSupport.capabilities,t,["globalSupport","capabilities"]);});s(gd,"validateDescriptor");});function LE(){if(Uy)return Uy;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&&(Uy=t),t}function yd(e){let t=gd(e);hd.set(t.id,t);}function re(e){return hd.get(e)??LE().get(e)}function Rd(){return [...hd.values()]}function _d(){return [...new Set([...LE().keys(),...hd.keys()])]}var hd,Uy,rt=d(()=>{xe();jy();hd=new Map;s(LE,"builtinDescriptors");s(yd,"registerTargetDescriptor");s(re,"getDescriptor");s(Rd,"getAllDescriptors");s(_d,"getAllRegisteredDescriptorIds");});function CE(e,t){return re(e)?.conversionDefaults?.[t]}function EE(e,t){if(e!==void 0)return typeof e=="boolean"?e:e[t]}function Fl(e,t,r,n="project"){let o=e.conversions?.commands_to_skills?.[t],i=EE(o,n);if(i!==void 0)return i;let a=CE(t,"commandsToSkills");return a!==void 0?a:r??false}function gr(e,t,r,n="project"){let o=e.conversions?.agents_to_skills?.[t],i=EE(o,n);if(i!==void 0)return i;let a=CE(t,"agentsToSkills");return a!==void 0?a:r??false}var Ml=d(()=>{rt();s(CE,"builtinDefault");s(EE,"resolveConversionValue");s(Fl,"shouldConvertCommandsToSkills");s(gr,"shouldConvertAgentsToSkills");});function Zr(e,t){return t!==void 0?{level:e,flavor:t}:{level:e}}function Qr(e){return typeof e=="string"?{level:e}:e}function By(e){return {rules:Qr(e.rules),additionalRules:Qr(e.additionalRules),commands:Qr(e.commands),agents:Qr(e.agents),skills:Qr(e.skills),mcp:Qr(e.mcp),hooks:Qr(e.hooks),ignore:Qr(e.ignore),permissions:Qr(e.permissions)}}var ea=d(()=>{s(Zr,"cap");s(Qr,"normalizeCapabilityValue");s(By,"normalizeTargetCapabilities");});function wE(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 MV(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 bE(e){let t=MV(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(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.
17
17
  `+r.join(`
18
18
  `)+`
19
- Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var Ky=d(()=>{xe();s(wE,"ownerTargetIdForSharedPath");s(MV,"findSharedArtifactOwnershipConflicts");s(bE,"assertSharedArtifactOwnersUnique");});function $V(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 `${$l}${e}`}function $e(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"],D(t,e.body.trim()||"")}function Sd(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($l)?t.slice($l.length):t.startsWith(Bm)?t.slice(Bm.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",allowedTools:$V(e["x-agentsmesh-allowed-tools"])}:null}function kd(e,t){return D({description:e.description,"allowed-tools":e.allowedTools},t.trim()||"")}var $l,Bm,we=d(()=>{B();$l="am-command-",Bm="ab-command-";s($V,"toStringArray");s(J,"commandSkillDirName");s($e,"serializeCommandSkill");s(Sd,"parseCommandSkillFrontmatter");s(kd,"serializeImportedCommand");});function Id(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 GV(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 K(e){return `${Gl}${e}`}function De(e){let t={name:K(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];}),D(t,e.body.trim()||"")}function jl(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(Gl)?t.slice(Gl.length):t.startsWith(Km)?t.slice(Km.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",tools:Id(e["x-agentsmesh-tools"]),disallowedTools:Id(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:Id(e["x-agentsmesh-mcp-servers"]),hooks:GV(e["x-agentsmesh-hooks"]),skills:Id(e["x-agentsmesh-skills"]),memory:typeof e["x-agentsmesh-memory"]=="string"?e["x-agentsmesh-memory"]:""}:null}function Ys(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];}),D(r,t.trim()||"")}var Gl,Km,ue=d(()=>{B();Gl="am-agent-",Km="ab-agent-";s(Id,"toStringArray");s(GV,"toHooks");s(K,"projectedAgentSkillDirName");s(De,"serializeProjectedAgentSkill");s(jl,"parseProjectedAgentSkillFrontmatter");s(Ys,"serializeImportedAgent");});function Wm(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function PE(e,t){return new RegExp(`${Wm(e)}[\\s\\S]*?${Wm(t)}`,"g")}function zm(e,t,r){return e.replace(PE(t,r),"").trim()}function BV(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 Ed(e,t){let{prefix:r,body:n}=BV(e),o=n?`${t}
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}
20
20
 
21
21
  ${n}`:t;return r?`${r}
22
22
 
23
- ${o}`:o}function KV(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 WV(e){return {source:KV(e.source),description:e.description,globs:e.globs,targets:e.targets}}function HV(e){return `${xE}${JSON.stringify(WV(e))}${TE}`}function zV(e){let t=[HV(e)];return e.description.trim()&&t.push(`## ${e.description.trim()}`,""),t.push(e.body.trim(),AE),t.filter(r=>r.length>0).join(`
24
- `)}function VV(e){return e.length===0?"":[Ld,...e.map(zV),Cd].join(`
25
- `)}function ae(e,t){let r=VV(t),n=zm(e,Ld,Cd);return r?n?`${n}
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}
26
26
 
27
- ${r}`:r:n}function OE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function JV(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:OE(r.globs),targets:OE(r.targets)}}catch{return null}}function YV(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 DE(e){let t=[],r=PE(Ld,Cd);return {rootContent:e.replace(r,o=>{let i=o.replace(Ld,"").replace(Cd,"").trim(),a=new RegExp(`${Wm(xE)}([\\s\\S]*?)${Wm(TE)}([\\s\\S]*?)${Wm(AE)}`,"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=JV(c);p&&t.push({...p,body:YV(m,p.description)});}return ""}).trim(),rules:t}}var Wy,Hy,Hm,zy,Ld,Cd,AE,xE,TE,Ue=d(()=>{Wy="<!-- agentsmesh:root-generation-contract:start -->",Hy="<!-- agentsmesh:root-generation-contract:end -->",Hm="<!-- agentsmesh:lessons-contract:start -->",zy="<!-- agentsmesh:lessons-contract:end -->",Ld="<!-- agentsmesh:embedded-rules:start -->",Cd="<!-- agentsmesh:embedded-rules:end -->",AE="<!-- agentsmesh:embedded-rule:end -->",xE="<!-- agentsmesh:embedded-rule:start ",TE=" -->";s(Wm,"escapeRegExp");s(PE,"managedBlockPattern");s(zm,"stripManagedBlock");s(BV,"splitFrontmatterPrefix");s(Ed,"insertAtBodyTop");s(KV,"ruleSource");s(WV,"markerForRule");s(HV,"embeddedRuleStart");s(zV,"renderRule");s(VV,"renderEmbeddedRulesBlock");s(ae,"appendEmbeddedRulesBlock");s(OE,"toStringArray");s(JV,"parseMarker");s(YV,"stripGeneratedHeading");s(DE,"extractEmbeddedRules");});function vE(e){let t=Jy(e);return Ed(t,NE)}function Jy(e){let t=zm(e,Wy,Hy);t=t.replace(`
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(`
28
28
 
29
- ${NE}`,"");for(let r of RJ)t=t.replace(`
29
+ ${gO}`,"");for(let r of qY)t=t.replace(`
30
30
 
31
- ${r}`,"");return t.trim()}var Vy,XV,qV,QV,ZV,eJ,tJ,rJ,nJ,oJ,sJ,iJ,aJ,lJ,cJ,mJ,pJ,uJ,dJ,fJ,gJ,hJ,yJ,NE,RJ,Yy=d(()=>{Ue();Vy="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.",XV="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.",qV="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.",QV="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.",ZV="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`.",eJ="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`.",tJ="`.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`.",rJ="`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.",nJ="`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.",oJ="**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.",sJ="**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.",iJ=Vy,aJ=`## Project-Specific Rules
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
32
32
 
33
- ${Vy}`,lJ=`## AgentsMesh Generation Contract
33
+ ${h_}`,BY=`## AgentsMesh Generation Contract
34
34
 
35
- ${Vy}`,cJ=`## AgentsMesh Generation Contract
35
+ ${h_}`,KY=`## AgentsMesh Generation Contract
36
36
 
37
- ${XV}`,mJ=`## AgentsMesh Generation Contract
37
+ ${xY}`,WY=`## AgentsMesh Generation Contract
38
38
 
39
- ${qV}`,pJ=`## AgentsMesh Generation Contract
39
+ ${TY}`,HY=`## AgentsMesh Generation Contract
40
40
 
41
- ${QV}`,uJ=`## AgentsMesh Generation Contract
41
+ ${PY}`,zY=`## AgentsMesh Generation Contract
42
42
 
43
- ${ZV}`,dJ=`## AgentsMesh Generation Contract
43
+ ${DY}`,VY=`## AgentsMesh Generation Contract
44
44
 
45
- ${eJ}`,fJ=`## AgentsMesh Generation Contract
45
+ ${NY}`,JY=`## AgentsMesh Generation Contract
46
46
 
47
- ${tJ}`,gJ=`## AgentsMesh Generation Contract
47
+ ${vY}`,YY=`## AgentsMesh Generation Contract
48
48
 
49
- ${rJ}`,hJ=`## AgentsMesh Generation Contract
49
+ ${FY}`,XY=`## AgentsMesh Generation Contract
50
50
 
51
- ${nJ}`,yJ=`## AgentsMesh Generation Contract
51
+ ${MY}`,QY=`## AgentsMesh Generation Contract
52
52
 
53
- ${oJ}`,NE=`${Wy}
53
+ ${GY}`,gO=`${d_}
54
54
  ## AgentsMesh Generation Contract
55
55
 
56
- ${sJ}
57
- ${Hy}`,RJ=[yJ,hJ,gJ,fJ,dJ,uJ,pJ,mJ,cJ,lJ,aJ,iJ];s(vE,"appendAgentsmeshRootInstructionParagraph");s(Jy,"stripAgentsmeshRootInstructionParagraph");});function xt(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 Ul(e){let t=await k(e);return t?x(t).frontmatter:{}}function at(e,t){return typeof e[t]=="string"?e[t]:void 0}function Xy(e){let t=e.hooks;return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}function _J(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function SJ(e,t){let r=basename(e,".md")==="_root",n={...t};return delete n.root,{root:r,...n}}async function V(e,t,r){let n=await Ul(e),o=basename(e,".md")==="_root"?Jy(r):r.trim(),i=SJ(e,_J({...n,...t})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=xt(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return D(a,o||"")}var qy=d(()=>{A();B();Yy();s(xt,"toStringArray");s(Ul,"readExistingFrontmatter");s(at,"readString");s(Xy,"readHooks");s(_J,"pruneUndefined");s(SJ,"serializeCanonicalRuleFrontmatter");s(V,"serializeImportedRuleWithFallback");});async function Se(e,t,r){let n=await Ul(e),o=(()=>{let l=xt(n.allowedTools);return l.length>0?l:xt(n["allowed-tools"])})(),i=t.hasDescription?t.description??"":typeof n.description=="string"?n.description:"",a=t.hasAllowedTools?t.allowedTools??[]:o;return D({description:i,"allowed-tools":a},r.trim()||"")}async function Mn(e,t,r){let n=await Ul(e),o=basename(dirname(e)),i=at(t,"name")??at(n,"name")??o,a=at(t,"description")??at(n,"description")??"";return D({name:i,description:a},r.trim()||"")}async function et(e,t,r){let n=await Ul(e),o=Object.prototype.hasOwnProperty.call(t,"tools")?xt(t.tools):(()=>{let R=xt(n.tools);return R.length>0?R:[]})(),i=Object.prototype.hasOwnProperty.call(t,"disallowedTools")?xt(t.disallowedTools):Object.prototype.hasOwnProperty.call(t,"disallowed-tools")?xt(t["disallowed-tools"]):xt(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(t,"mcpServers")?xt(t.mcpServers):Object.prototype.hasOwnProperty.call(t,"mcp-servers")?xt(t["mcp-servers"]):xt(n.mcpServers),l=Object.prototype.hasOwnProperty.call(t,"skills")?xt(t.skills):xt(n.skills),c=t.maxTurns??t["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=Xy(t)??Xy(n),u={name:at(t,"name")??at(n,"name")??basename(e,".md"),description:at(t,"description")??at(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=at(t,"model")??at(n,"model");f&&(u.model=f);let g=at(t,"permissionMode")??at(t,"permission-mode")??at(n,"permissionMode")??at(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=at(t,"memory")??at(n,"memory");return h&&(u.memory=h),D(u,r.trim()||"")}var $E=d(()=>{B();qy();s(Se,"serializeImportedCommandWithFallback");s(Mn,"serializeImportedSkillWithFallback");s(et,"serializeImportedAgentWithFallback");});var fe=d(()=>{qy();$E();});function wd(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 $n(e){await rm$1(e,{recursive:true,force:true});}var Vm=d(()=>{s(wd,"shouldImportScopedAgentsRule");s($n,"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:D(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 oe(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,Jm,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=x(o(m,c,u)),h=Sd(f,a.name);if(h){await $n(join(e,Jm,a.name));let I=join(e,GE);await w(I);let b=join(I,`${h.name}.md`);await L(b,kd(h,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${GE}/${h.name}.md`,feature:"commands"});continue}let R=jl(f,a.name);if(R){await $n(join(e,Jm,a.name));let I=join(e,jE);await w(I);let b=join(I,`${R.name}.md`);await L(b,Ys(R,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${jE}/${R.name}.md`,feature:"agents"});continue}let _=await Mn(u,{...f,name:a.name},g);await w(p),await L(u,_),n.push({fromTool:r,fromPath:c,toPath:`${Jm}/${a.name}/SKILL.md`,feature:"skills"});let S=await U(l);for(let I of S){if(I===c)continue;let b=relative(l,I).replace(/\\/g,"/"),P=await k(I);if(P===null)continue;let T=join(p,b);await w(dirname(T)),await L(T,o(P,I,T)),n.push({fromTool:r,fromPath:I,toPath:`${Jm}/${a.name}/${b}`,feature:"skills"});}}}var Jm,GE,jE,se=d(()=>{A();B();fe();ue();we();Vm();Jm=".agentsmesh/skills",GE=".agentsmesh/commands",jE=".agentsmesh/agents";s(ie,"generateEmbeddedSkills");s(oe,"importEmbeddedSkills");});var Gn,yr,ht,Bo,Ko,Rr,ta,UE,BE,Bl=d(()=>{Gn="aider",yr="CONVENTIONS.md",ht=".aider/skills",Bo=".aiderignore",Ko="CONVENTIONS.md",Rr=".aider/skills",ta=".aiderignore",UE=".agentsmesh/rules",BE=".agentsmesh/ignore";});function KE(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Gn)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:yr,content:o}]:[]}function WE(e){return ie(e,ht)}function HE(e){return e.commands.map(t=>({path:`${ht}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function zE(e){return e.agents.map(t=>({path:`${ht}/${K(t.name)}/SKILL.md`,content:De(t)}))}function VE(e){return e.ignore.length===0?[]:[{path:Bo,content:e.ignore.join(`
58
- `)}]}var JE=d(()=>{se();Ue();ue();we();Bl();s(KE,"generateRules");s(WE,"generateSkills");s(HE,"generateCommands");s(zE,"generateAgents");s(VE,"generateIgnore");});function le(e){return e.includes("\\")||en.test(e)?win32:posix}function Be(e){return e.replace(/\\/g,"/")}function Q(e,t){let r=le(e),n=r.normalize(r===win32?t.replace(/\//g,"\\"):Be(t));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function XE(e,t){return le(e).isAbsolute(t)||en.test(t)}function Kl(e){let t=e,r="";for(;bJ.test(t);)r=t.at(-1)+r,t=t.slice(0,-1);return {candidate:t,suffix:r}}function qE(e,t){let r=le(t),n=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==e?Q(t,r.join(t,n)):null}var en,bJ,yt=d(()=>{en=/^[A-Za-z]:[\\/]/,bJ=/[.!?:;]+$/;s(le,"pathApi");s(Be,"normalizeSeparators");s(Q,"normalizeForProject");s(XE,"isAbsoluteForProject");s(Kl,"stripTrailingPunctuation");s(qE,"rootFallbackPath");});async function QE(e,t,r="project"){let n=new Map,o=re(e);return o&&await o.buildImportPaths(n,t,r),n}var ZE=d(()=>{rt();s(QE,"buildImportReferenceMap");});function xJ(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 TJ(){let e=new Set([".agentsmesh/"]);for(let t of Pe)for(let r of xJ(t))e.add(r);return Array.from(e)}function PJ(){let e=new Set([...TJ(),...Qy.rootRelativePrefixes]),t=new Set([...AJ,...Qy.meshRootSegments]);return {protectedSchemes:[...OJ,...Qy.protectedSchemes],rootRelativePrefixes:Array.from(e),meshRootSegments:t}}function bd(){return Zy||(Zy=PJ()),Zy}var OJ,AJ,Qy,Zy,ew=d(()=>{xe();OJ=[/\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],AJ=new Set(["skills","rules","commands","agents","packs"]),Qy={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(xJ,"topLevelDotfilePrefixes");s(TJ,"buildDefaultRootRelativePrefixes");s(PJ,"rebuild");s(bd,"getLinkFormatRegistry");});function tn(e){let t=Be(e);return bd().rootRelativePrefixes.some(r=>t.startsWith(r))}function NJ(e){let t=Be(e).replace(/^\.\//,"");if(t.startsWith("../")||t.startsWith("/")||en.test(t)||/^[a-zA-Z]:/.test(t)||tn(t))return false;let r=t.split("/").filter(n=>n.length>0)[0];return r!==void 0&&bd().meshRootSegments.has(r)}function Ym(e,t,r){let n=le(t),o=Q(t,t),i=Q(t,r),a=Be(e);if(en.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=qE(a,o);return c&&c!==l?[l,c]:[l]}if(tn(a))return [Q(t,n.join(o,a))];if(a.includes("/")){let l=Q(t,n.join(o,".agentsmesh")),c=NJ(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 vJ.has(a)?[]:a.includes(".")?[Q(t,n.join(n.dirname(i),a))]:[]}function Xm(e,t){let r=[t];if(!XE(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 ow(e,t,r){let n=t>0?e.at(t-1):"",o=r<e.length?e.at(r):"";return n==="*"||o==="*"}function Od(e){let t=[];for(let r of bd().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(FJ))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(MJ))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll($J))t.push([r.index??0,(r.index??0)+r[0].length]);return t}var vJ,FJ,MJ,$J,nw,Wl,Xs=d(()=>{yt();ew();s(tn,"isRootRelativePathToken");s(NJ,"isMeshRootRelativePathToken");vJ=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),FJ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,MJ=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,$J=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,nw=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,Wl=/(?::(\d+)){1,2}$/;s(Ym,"resolveProjectPath");s(Xm,"expandResolvedPaths");s(ow,"isGlobAdjacent");s(Od,"protectedRanges");});function GJ(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 sw(e){return GJ(e.tokenContext)}function eR(e,t){let r=le(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 iw(e){let t=le(e);return Q(e,t.join(e,".agentsmesh"))}function rn(e,t){let r=le(e),n=iw(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 aw(e,t,r){let n=le(e),o=iw(e),i=Q(e,t);if(!rn(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 tR(e,t,r){let o=le(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 Hl(e,t,r){let n=tR(e,t,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function rR(e,t,r,n,o){let i=le(e),a=Q(e,e),l=Q(e,t),c=Q(e,r);if(!eR(e,c))return Hl(e,c,n)?.text??null;let m=Q(e,i.dirname(l));if(!eR(e,m)&&m!==a)return Hl(e,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||en.test(p))return tR(e,c,n);let u=Q(e,i.join(m,p));return eR(e,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):tR(e,c,n)}var nR=d(()=>{yt();s(GJ,"isReadingContext");s(sw,"isReadingContextOptions");s(eR,"isUnderProjectRoot");s(iw,"agentsMeshRoot");s(rn,"isUnderAgentsMesh");s(aw,"toAgentsMeshRootRelative");s(tR,"toProjectRootRelative");s(Hl,"toProjectRootReference");s(rR,"formatLinkPathForDestinationLegacy");});function lw(e,t,r,n,o={}){let i=o.scope??"project",a=Q(e,r);if(sw(o)&&rn(e,t)&&rn(e,a)){let m=le(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 rR(e,t,r,n,o);if(i==="global"&&!rn(e,t))return Hl(e,a,n)?.text??null;let l=(()=>{if(rn(e,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&rn(e,Q(e,m))?Q(e,m):null})();if(!l)return Hl(e,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=aw(e,l,n);return m!==null?m:Hl(e,l,n)?.text??null}return rR(e,t,r,n,o)}var cw=d(()=>{Xs();yt();nR();nR();s(lw,"formatLinkPathForDestination");});function mw(e,t,r,n){let o=le(t),i=Be(e);if(!tn(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 pw=d(()=>{yt();Xs();s(mw,"resolveByDestinationSuffixStrip");});function uw(e){let t=null,r=false,n=null,o=null,i=null;for(let c of Ym(e.candidate,e.projectRoot,e.sourceFile)){let m=null,p=null;for(let u of Xm(e.projectRoot,c)){let f=Q(e.projectRoot,u),g=Q(e.projectRoot,e.translatePath(f)),h=e.pathExists(f),R=e.pathExists(g);if(R&&g!==f){t=g,n=f,r=true;break}(h||R)&&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=mw(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=Be(e.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&t!==null&&Be(e.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:t,resolvedBeforeTranslate:n,matchedPath:r}}var dw=d(()=>{yt();Xs();pw();s(uw,"resolveLinkTarget");});function fw(e,t,r){return t>=2&&e[t-2]==="~"&&e[t-1]==="/"?true:t>=1&&e[t-1]==="~"&&r.startsWith("/")}function gw(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 hw(e){let t=Be(e);return t.startsWith("./")||t.startsWith("../")?true:t.startsWith("/")||en.test(t)||tn(t)?false:t.includes("/")}var yw=d(()=>{yt();Xs();s(fw,"isTildeHomeRelativePathToken");s(gw,"isMarkdownLinkDestinationToken");s(hw,"isRelativePathToken");});function jJ(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 Rw(e,t,r){let n=e.lastIndexOf(`
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(`
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 _w(e,t,r){let n=t>0?e[t-1]:"",o=r<e.length?e[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:Rw(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 Sw(e,t,r,n,o){if(t<0||r>e.length)return false;let{candidate:i}=Kl(n),a=i.replace(Wl,""),l=Be(a),c=t+a.length,m=e[t-1],p=e[r];return Rw(e,t,c)||m==="`"&&p==="`"?true:m==="'"&&p==="'"||m==='"'&&p==='"'?false:m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!tn(l)&&jJ(e,t,n)):m==="@"?true:m==="("&&e[t-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?tn(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var kw=d(()=>{yt();Xs();s(jJ,"markdownBracketLabelDuplicatesDestination");s(Rw,"isMarkdownReferenceDefinitionDestination");s(_w,"getTokenContext");s(Sw,"shouldRewritePathToken");});function Ad(e){let t=new Set,r=Od(e.content);return {content:e.content.replace(nw,(o,i,a)=>{if(r.some(([Ee,Qe])=>i>=Ee&&i<Qe)||!Sw(a,i,i+o.length,o,e.rewriteBarePathTokens===true)||fw(a,i,o)||ow(a,i,i+o.length))return o;let{candidate:l,suffix:c}=Kl(o);if(!l)return o;let m=Wl.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=_w(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&en.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:R}=uw({candidate:p,rawToken:l,projectRoot:e.projectRoot,sourceFile:e.sourceFile,destinationFile:e.destinationFile,translatePath:e.translatePath,pathExists:e.pathExists}),_=h;if(!R||!g)return g&&t.add(g),o;let S=Be(p),I=p.endsWith("/")||e.pathIsDirectory?.(g)===true;if(I&&!S.includes("/")&&!S.includes("\\"))return o;if(_===null){let Ee=Be(l);if(Ee.startsWith("agentsmesh/")&&(Ee=`.${Ee}`),Ee.startsWith(".agentsmesh/")||Ee.includes("/.agentsmesh/")){let Qe=le(e.projectRoot),st=Q(e.projectRoot,e.projectRoot),gt=Ee.replace(/^\.\//,"");_=Q(e.projectRoot,Qe.join(st,gt));}}let b=le(e.projectRoot);if(e.scope==="global"){let Ee=Be(l),Qe=Ee.startsWith(".agentsmesh/")||Ee.includes("/.agentsmesh/"),st=tn(Ee)||hw(Ee),gt=_!==null&&rn(e.projectRoot,_),Bs=rn(e.projectRoot,g);if(_===g&&!Bs&&!gt&&!Qe){let bm=Be(b.relative(e.projectRoot,Q(e.projectRoot,e.sourceFile))).split("/").filter(Boolean)[0]??"",Am=(_!==null?Be(b.relative(e.projectRoot,_)):"").split("/").filter(Boolean)[0]??"";if(bm.length>0&&bm===Am)return o}if(!st&&!Qe&&!gt&&!Bs)return o}let P=Q(e.projectRoot,e.destinationFile),T=Q(e.projectRoot,g),W=Be(b.relative(e.projectRoot,P)),$=Be(b.relative(e.projectRoot,T)),Y=W.split("/").filter(Boolean)[0]??"",ee=$.split("/").filter(Boolean)[0]??"",Te=!Be(p).startsWith(".agentsmesh/")&&!I&&Y.length>0&&Y===ee&&Y.startsWith(".")&&Y!==".agentsmesh"||f.role==="markdown-link-dest"||gw(a,i,p),Ot=lw(e.projectRoot,e.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:e.explicitCurrentDirLinks===true||Te,scope:e.scope??"project",pathIsDirectory:e.pathIsDirectory,logicalMeshSourceAbsolute:I?null:_,forceRelative:Te,tokenContext:f,originalToken:p});return Ot?`${Ot}${u}${c}`:o}),missing:[...t]}}var oR=d(()=>{yt();Xs();cw();dw();yw();kw();s(Ad,"rewriteFileLinks");});function Lw(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 z(e,t,r="project"){let n=le(t),o=new Map,i=Array.from(new Set([e,...je]));for(let c of i){let m=await QE(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 Lw(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 Lw(n,m))l.add(n.normalize(p));}return (c,m,p)=>Ad({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(()=>{yt();ZE();oR();Nn();s(Lw,"pathVariants");s(z,"createImportReferenceNormalizer");});async function Je(e,t,r){let n=join(e,t),i={...await WJ(n),...r};await w(dirname(n)),await L(n,JSON.stringify({mcpServers:i},null,2));}async function WJ(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 nn=d(()=>{A();s(Je,"writeMcpWithMerge");s(WJ,"readExistingServers");});function Wo(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function _r(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 qs(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function jn(e){return !e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}var Sr=d(()=>{s(Wo,"toGlobsArray");s(_r,"toToolsArray");s(qs,"toStringArray");s(jn,"toStringRecord");});function VJ(e,t){return t.some(r=>e.endsWith(r))}async function ke(e){let r=(await U(e.srcDir)).filter(o=>VJ(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 w(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 Yt=d(()=>{A();s(VJ,"matchesExtension");s(ke,"importFileDirectory");});function Ew(e){return typeof e=="string"?e:void 0}function JJ(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function iR(e,t){return t?t(e):e}function YJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap),a=JJ({root:false,description:Ew(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await V(r,a,o)}}}function XJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap),a=await Se(r,{hasDescription:true,description:Ew(i.description),hasAllowedTools:true,allowedTools:qs(i["allowed-tools"])},o);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:a}}}function qJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await et(r,i,o)}}}function ww(e){if(e.map)return e.map;switch(e.preset){case "rule":return YJ(e);case "command":return XJ(e);case "agent":return qJ(e);default:throw new Error(`ImportFeatureSpec for ${e.feature} (mode: ${e.mode}) needs a \`preset\` or \`map\``)}}var bw=d(()=>{B();fe();Sr();s(Ew,"pickString");s(JJ,"pruneUndefined");s(iR,"applyRemap");s(YJ,"ruleMapper");s(XJ,"commandMapper");s(qJ,"agentMapper");s(ww,"resolveMapper");});function aR(e,t){return e?e[t]??[]:[]}var Ow,Aw=d(()=>{Ow=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(aR,"resolveScopedSources");});async function tY(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 w(i);let m=join(i,e.canonicalRootFilename),p=s(S=>o(c,l,S),"normalizeTo");if(e.map){let S;try{S=await e.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(I){let b=I instanceof Error?I.message:String(I);process.stderr.write(`\u26A0 skipping ${l}: ${b}
62
- `);continue}if(!S)continue;return await L(S.destPath,S.content),[{fromTool:n,fromPath:l,toPath:S.toPath,feature:e.feature}]}let u=Yr(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,R=e.markAsRoot?{...h,root:true}:h,_=await V(m,R,g);return await L(m,_),[{fromTool:n,fromPath:l,toPath:`${e.canonicalDir}/${e.canonicalRootFilename}`,feature:e.feature}]}return []}async function rY(e,t,r,n,o){let i=ww(e),a=join(r,e.canonicalDir),l=[];for(let c of t){let m=join(r,c),p=await ke({srcDir:m,destDir:a,extensions:[...e.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(ld(basename(u)))return null;let R;try{R=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(_=>h(_),"normalizeTo")});}catch(_){let S=_ instanceof Error?_.message:String(_);return process.stderr.write(`\u26A0 skipping ${u}: ${S}
64
- `),null}return R?{destPath:R.destPath,toPath:R.toPath,feature:e.feature,content:R.content}:null},"mapEntry")});l.push(...p);}return l}function Tw(e){let t=e.canonicalFilename;return t.includes("/")||t.includes("\\")?t:posix.join(e.canonicalDir,t)}async function nY(e,t,r,n){if(!e.canonicalFilename)throw new Error(`flatFile spec for ${e.feature} must set canonicalFilename`);let o=Tw(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 w(dirname(c)),await L(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}]}return []}function oY(e){let t;try{t=JSON.parse(e);}catch{return {}}if(!t||typeof t!="object")return {};let r=t.mcpServers;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,l=typeof a.description=="string"?a.description:void 0;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:qs(a.args),env:jn(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:jn(a.headers),env:jn(a.env),description:l});}return n}async function sY(e,t,r,n){if(!e.canonicalFilename)throw new Error(`mcpJson spec for ${e.feature} must set canonicalFilename`);let o=Tw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=oY(l);return Object.keys(c).length===0?[]:(await Je(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}])}return []}function xw(e,t,r,n,o){switch(e.mode){case "singleFile":return tY(e,t,r,n,o);case "directory":return rY(e,t,r,n,o);case "flatFile":return nY(e,t,r,n);case "mcpJson":return sY(e,t,r,n)}}async function iY(e,t,r,n,o){let i=aR(e.source,t),a=aR(e.fallbacks,t);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await xw(e,i,r,n,o);if(l.length>0)return l}return a.length>0?xw(e,a,r,n,o):[]}function aY(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 z(e.id,t,r),a=[];for(let l of Ow)for(let c of aY(o,l))a.push(...await iY(c,r,t,e.id,i));return a}var be=d(()=>{ge();A();nn();B();Sr();fe();Yt();bw();$o();Aw();s(tY,"runSingleFile");s(rY,"runDirectory");s(Tw,"resolveCanonicalFilePath");s(nY,"runFlatFile");s(oY,"parseMcpJson");s(sY,"runMcpJson");s(xw,"dispatchSpec");s(iY,"runSpec");s(aY,"specsForFeature");s(q,"runDescriptorImport");});async function Pw(e,t={}){let r=t.scope??"project",n=[],o=await z(Gn,e,r);return n.push(...await q(xd,e,r,{normalize:o})),await oe(e,r==="global"?Rr:ht,Gn,n,o),n}var Dw=d(()=>{ge();se();be();Bl();lR();s(Pw,"importFromAider");});function lY(e,t){return vw(t).some(n=>cY(e,n))}function Nw(e,t){return e.filter(r=>lY(r,t))}function vw(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 vw(r+l+o))a.push(c);return a}function cY(e,t){return mY(t).test(e)}function mY(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 Fw=d(()=>{s(lY,"globMatch");s(Nw,"globFilter");s(vw,"expandBraces");s(cY,"matchOne");s(mY,"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(Nw(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 Ie=d(()=>{Fw();s(X,"validateRules");});function $w(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Gn}))}var Gw=d(()=>{Ie();Bl();s($w,"lintRules");});function v(e,t,r){return {level:"warning",file:e,target:t,message:r}}function pY(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 Zs(e,t,r,n){let o=n?.unsupportedBy??t,i=pY(r);return v(".agentsmesh/hooks.yaml",t,`${e} is not supported by ${o}; only ${i} are projected.`)}var Oe=d(()=>{s(v,"createWarning");s(pY,"formatOxfordComma");s(Zs,"createUnsupportedHookWarning");});function jw(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Uw(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?[]:[v(".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?[]:[v(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var Kw=d(()=>{Oe();s(jw,"lintHooks");s(Uw,"lintPermissions");s(Bw,"lintMcp");});function C(e,t){return le(e).relative(e,t).replace(/\\/g,"/")}async function E(e,t){return U(le(e).join(e,t)).catch(()=>[])}function Hw(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}function yY(e,t,r,n){let o=posix.dirname(t),i=posix.dirname(r);for(;o!==n&&o!==".";)Hw(e,o,i),o=posix.dirname(o),i=posix.dirname(i);}function F(e,t,r,n){e.set(t,`${r}/${basename(t,n)}.md`);}function G(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,`${Ww}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith($l)?$l:o.startsWith(Bm)?Bm:null;if(l&&a==="SKILL.md"){e.set(t,`${gY}/${o.slice(l.length)}.md`);return}let c=o.startsWith(Gl)?Gl:o.startsWith(Km)?Km:null;if(c&&a==="SKILL.md"){e.set(t,`${hY}/${o.slice(c.length)}.md`);return}let m=`${Ww}/${o}`;a==="SKILL.md"&&Hw(e,`${r}/${o}`,m);let p=`${m}/${a}`;e.set(t,p),a!=="SKILL.md"&&yY(e,t,p,`${r}/${o}`);}function RY(e){return e.split("/").filter(Boolean)[0]??""}async function _Y(){if(cR!==void 0)return cR;let{BUILTIN_TARGETS:e}=await Promise.resolve().then(()=>(xe(),zw)),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=RY(n);o.startsWith(".")&&t.add(o);}return cR=t,t}function pR(e){return e.split("/").some(t=>t.startsWith("."))}async function SY(e){let t=[],r=await _Y(),n=le(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)||pR(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)||pR(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 Td(e,t){let r=await SY(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(pR(l))continue;let c=l.replace(/\//g,"-");e.set(o,`${fY}/${c}.md`);}}var fY,gY,hY,Ww,cR,Le=d(()=>{yt();A();we();ue();fY=".agentsmesh/rules",gY=".agentsmesh/commands",hY=".agentsmesh/agents",Ww=".agentsmesh/skills";s(C,"rel");s(E,"listFiles");s(Hw,"addDirectoryMapping");s(yY,"addAncestorMappings");s(F,"addSimpleFileMapping");s(G,"addSkillLikeMapping");s(RY,"firstPathSegment");s(_Y,"targetRootSegments");s(pR,"hasHiddenSegment");s(SY,"listScopedAgentsFiles");s(Td,"addScopedAgentsMappings");});var O,ce,Ae,_e=d(()=>{O=".agentsmesh/rules",ce=".agentsmesh/commands",Ae=".agentsmesh/agents";});async function uR(e,t,r="project"){if(r==="global"){e.set(Ko,`${O}/_root.md`);for(let n of await E(t,Rr))G(e,C(t,n),Rr);e.set(ta,".agentsmesh/ignore");return}e.set(yr,`${O}/_root.md`);for(let n of await E(t,ht))G(e,C(t,n),ht);e.set(Bo,".agentsmesh/ignore");}var Vw=d(()=>{Le();Bl();_e();s(uR,"buildAiderImportPaths");});var ra,on,na,ei,Qm,Jw,Yw,Zm=d(()=>{ra="amazon-q",on=".amazonq/rules",na=".amazonq/mcp.json",ei=".aws/amazonq/rules",Qm=".aws/amazonq/mcp.json",Jw=".agentsmesh/rules",Yw=".agentsmesh/mcp.json";});async function dR(e,t,r="project"){let n=r==="global"?ei:on;for(let o of await E(t,n)){let i=C(t,o);F(e,i,O,".md");}}var Xw=d(()=>{Le();Zm();_e();s(dR,"buildAmazonQImportPaths");});var kr,Rt,Un,fR,Ho,Ir,zo,qw,oa=d(()=>{kr="AGENTS.md",Rt=".agents/skills",Un=".amp/settings.json",fR=".config/amp",Ho=`${fR}/AGENTS.md`,Ir=`${fR}/skills`,zo=`${fR}/settings.json`,qw=".agentsmesh/rules";});async function gR(e,t,r="project"){if(r==="global"){e.set(Ho,`${O}/_root.md`);for(let n of await E(t,Ir))G(e,C(t,n),Ir);e.set(zo,".agentsmesh/mcp.json");return}e.set(kr,`${O}/_root.md`);for(let n of await E(t,Rt))G(e,C(t,n),Rt);e.set(Un,".agentsmesh/mcp.json");}var Qw=d(()=>{Le();oa();_e();s(gR,"buildAmpImportPaths");});var sa,Pd,sn,Lr,ep,an,Bn,tp,Kn,Wn,rp,zl,hR,ia,Dd,Zw,aa=d(()=>{sa="antigravity",Pd=".agents",sn=`${Pd}/rules`,Lr=`${sn}/general.md`,ep=`${sn}/_root.md`,an=`${Pd}/skills`,Bn=`${Pd}/workflows`,tp=`${Pd}/antigravity/mcp_config.json`,Kn=".gemini/antigravity/GEMINI.md",Wn=".gemini/antigravity/skills",rp=".gemini/antigravity/workflows",zl=".gemini/antigravity/mcp_config.json",hR=".agentsmesh/rules/_root.md",ia=".agentsmesh/rules",Dd=".agentsmesh/commands",Zw=".agentsmesh/mcp.json";});async function yR(e,t,r="project"){if(r==="global"){e.set(Kn,`${O}/_root.md`);for(let n of await E(t,Wn))G(e,C(t,n),Wn);e.set(zl,".agentsmesh/mcp.json");return}e.set(Lr,`${O}/_root.md`),e.set(ep,`${O}/_root.md`);for(let n of await E(t,sn)){let o=C(t,n);o===Lr||o===ep||F(e,o,O,".md");}for(let n of await E(t,Bn))F(e,C(t,n),ce,".md");for(let n of await E(t,an))G(e,C(t,n),an);}var eb=d(()=>{Le();aa();_e();s(yR,"buildAntigravityImportPaths");});var _t,Nd,Xt,Cr,qt,Hn,zn,vd,Vo,Jo,Vn,Yo,RR,_R,SR,kR,la=d(()=>{_t="augment-code",Nd=".augment",Xt=`${Nd}/rules`,Cr=`${Nd}/commands`,qt=`${Nd}/skills`,Hn=`${Nd}/settings.json`,zn=".augmentignore",vd=".augment",Vo=`${vd}/rules`,Jo=`${vd}/commands`,Vn=`${vd}/skills`,Yo=`${vd}/settings.json`,RR=".agentsmesh/rules",_R=".agentsmesh/mcp.json",SR=".agentsmesh/hooks.yaml",kR=".agentsmesh/ignore";});async function IR(e,t,r="project"){if(r==="global"){for(let n of await E(t,Vo))F(e,C(t,n),O,".md");for(let n of await E(t,Jo))F(e,C(t,n),ce,".md");for(let n of await E(t,Vn))G(e,C(t,n),Vn);e.set(Yo,".agentsmesh/mcp.json");return}for(let n of await E(t,Xt))F(e,C(t,n),O,".md");for(let n of await E(t,Cr))F(e,C(t,n),ce,".md");for(let n of await E(t,qt))G(e,C(t,n),qt);e.set(Hn,".agentsmesh/mcp.json"),e.set(zn,".agentsmesh/ignore");}var tb=d(()=>{Le();la();_e();s(IR,"buildAugmentCodeImportPaths");});var rb,Xo,ti,np,op,sp,ip,ap,qo,LR,lp,Vl,cp,mp,Fd,Md,CR,pp,ER,ca,nb,Qo=d(()=>{rb="claude-code",Xo="CLAUDE.md",ti=".claude/CLAUDE.md",np=".claude/rules",op=".claude/commands",sp=".claude/agents",ip=".claude/skills",ap=".claude/settings.json",qo=".claude/hooks.json",LR=".claude/output-styles",lp=".claudeignore",Vl=".mcp.json",cp=".claude.json",mp=".agentsmesh/rules",Fd=".agentsmesh/commands",Md=".agentsmesh/agents",CR=".agentsmesh/skills",pp=".agentsmesh/mcp.json",ER=".agentsmesh/permissions.yaml",ca=".agentsmesh/hooks.yaml",nb=".agentsmesh/ignore";});async function wR(e,t,r="project"){if(e.set(".claude/CLAUDE.md",`${O}/_root.md`),e.set(qo,ca),r==="project"&&e.set("CLAUDE.md",`${O}/_root.md`),r==="global")for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");for(let n of await E(t,".claude/rules"))F(e,C(t,n),O,".md");for(let n of await E(t,".claude/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".claude/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".claude/skills"))G(e,C(t,n),".claude/skills");}var ob=d(()=>{Le();Qo();_e();s(wR,"buildClaudeCodeImportPaths");});var ri,Zo,ma,es,sb,St,ts,ni,pa,ua,da,fa,bR,oi,$d,OR,AR,ib,ab,ln=d(()=>{ri="cline",Zo=".clinerules",ma=".clineignore",es=".cline/cline_mcp_settings.json",sb=".cline/mcp_settings.json",St=".cline/skills",ts=".clinerules/workflows",ni="AGENTS.md",pa=".clinerules/hooks",ua="Documents/Cline/Rules",da="Documents/Cline/Workflows",fa="Documents/Cline/Hooks",bR=".agentsmesh/hooks.yaml",oi=".agentsmesh/rules",$d=".agentsmesh/commands",OR=".agentsmesh/ignore",AR=".agentsmesh/mcp.json",ib=".agentsmesh/agents",ab=".agentsmesh/skills";});async function xR(e,t,r="project"){if(r==="global"){for(let n of await E(t,ua))F(e,C(t,n),O,".md");for(let n of await E(t,da))F(e,C(t,n),ce,".md");for(let n of await E(t,St))G(e,C(t,n),St);e.set(es,".agentsmesh/mcp.json");return}e.set(".clinerules/_root.md",`${O}/_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"||F(e,o,O,".md");}for(let n of await E(t,".clinerules/workflows"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cline/skills"))G(e,C(t,n),".cline/skills");}var lb=d(()=>{Le();ln();_e();s(xR,"buildClineImportPaths");});async function TR(e,t,r="project"){if(r==="global"?(e.set(".codex/AGENTS.md",`${O}/_root.md`),e.set(".codex/AGENTS.override.md",`${O}/_root.md`)):(e.set("AGENTS.md",`${O}/_root.md`),e.set("codex.md",`${O}/_root.md`),await Td(e,t)),r==="project")for(let n of await E(t,".codex/instructions"))F(e,C(t,n),O,".md");for(let n of await E(t,".codex/rules")){let o=C(t,n);o.endsWith(".rules")?F(e,o,O,".rules"):o.endsWith(".md")&&F(e,o,O,".md");}for(let n of await E(t,".codex/agents"))F(e,C(t,n),Ae,".toml");for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");}var cb=d(()=>{Le();_e();s(TR,"buildCodexCliImportPaths");});var Jl,cn,Jn,PR,Gd,rs,DR,Qt,Yl,up,jd,Ud,NR,Yn=d(()=>{Jl="continue",cn=".continue/rules",Jn=".continue/prompts",PR=".continue/mcpServers",Gd=`${PR}/agentsmesh.json`,rs=`${cn}/general.md`,DR=`${cn}/_root.md`,Qt=".continue/skills",Yl=".continue/AGENTS.md",up=".continue/config.yaml",jd=".agentsmesh/rules",Ud=".agentsmesh/commands",NR=".agentsmesh/mcp.json";});async function vR(e,t,r="project"){e.set(rs,`${O}/_root.md`),e.set(DR,`${O}/_root.md`);for(let n of await E(t,".continue/rules")){let o=C(t,n);o===rs||o===DR||F(e,o,O,".md");}for(let n of await E(t,".continue/prompts"))e.set(C(t,n),`${ce}/${basename(n,".md")}.md`);for(let n of await E(t,".continue/skills"))G(e,C(t,n),".continue/skills");if(r==="global")for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");}var mb=d(()=>{Le();Yn();_e();s(vR,"buildContinueImportPaths");});function LY(e,t){if(t.endsWith(".instructions.md")){e.set(t,`${O}/${basename(t,".instructions.md")}.md`);return}F(e,t,O,".md");}async function FR(e,t){e.set(".github/copilot-instructions.md",`${O}/_root.md`);for(let r of await E(t,".github/copilot"))e.set(C(t,r),`${O}/${basename(r,".instructions.md")}.md`);for(let r of await E(t,".github/instructions"))LY(e,C(t,r));for(let r of await E(t,".github/prompts"))e.set(C(t,r),`${ce}/${basename(r,".prompt.md")}.md`);for(let r of await E(t,".github/agents"))e.set(C(t,r),`${Ae}/${basename(r,".agent.md")}.md`);for(let r of await E(t,".github/skills"))G(e,C(t,r),".github/skills");}var pb=d(()=>{Le();_e();s(LY,"addCopilotInstructionMapping");s(FR,"buildCopilotImportPaths");});var Er,wr,lt,Zt,ns,ub,Kd,er,ga,Wd,Hd,zd,Xl=d(()=>{Er="crush",wr="CRUSH.md",lt=".crush/skills",Zt="crush.json",ns=".crushignore",ub=".config/crush",Kd=`${ub}/crush.json`,er=".config/crush/skills",ga=`${ub}/CRUSH.md`,Wd=".agentsmesh/rules",Hd=".agentsmesh/ignore",zd=".agentsmesh/mcp.json";});async function MR(e,t,r="project"){if(r==="global"){for(let n of await E(t,er))G(e,C(t,n),er);return}e.set(wr,`${Wd}/_root.md`),e.set(Zt,zd),e.set(ns,Hd);for(let n of await E(t,lt))G(e,C(t,n),lt);}var db=d(()=>{Le();Xl();s(MR,"buildCrushImportPaths");});var fb,si,gb,br,os,Or,Ar,kt,tr,Xn,Vd,mn,$R,CY,ql,pn,qn,ii,ai,hb,Ql,GR,dp,jR,Ye=d(()=>{fb="cursor",si="AGENTS.md",gb=".cursorrules",br=".cursor/rules",os=`${br}/general.mdc`,Or=".cursor/commands",Ar=".cursor/agents",kt=".cursor/skills",tr=".cursor/mcp.json",Xn=".cursor/hooks.json",Vd=".cursor/settings.json",mn=".cursorignore",$R=".cursorindexingignore",CY=".agentsmesh-exports/cursor",ql=`${CY}/user-rules.md`,pn=".cursor/AGENTS.md",qn=".agentsmesh/rules",ii=".agentsmesh/commands",ai=".agentsmesh/agents",hb=".agentsmesh/skills",Ql=".agentsmesh/mcp.json",GR=".agentsmesh/permissions.yaml",dp=".agentsmesh/hooks.yaml",jR=".agentsmesh/ignore";});async function UR(e,t,r="project"){if(r==="global"){e.set(tr,".agentsmesh/mcp.json"),e.set(".cursor/AGENTS.md",`${O}/_root.md`);for(let n of await E(t,".cursor/rules"))F(e,C(t,n),O,".mdc");for(let n of await E(t,".cursor/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cursor/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".cursor/skills"))G(e,C(t,n),".cursor/skills");return}e.set("AGENTS.md",`${O}/_root.md`);for(let n of await E(t,".cursor/rules"))F(e,C(t,n),O,".mdc");for(let n of await E(t,".cursor/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cursor/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".cursor/skills"))G(e,C(t,n),".cursor/skills");}var yb=d(()=>{Le();Ye();_e();s(UR,"buildCursorImportPaths");});var Qn,xr,It,ss,is,un,ha,Rb,Zl=d(()=>{Qn="deepagents-cli",xr=".deepagents/AGENTS.md",It=".deepagents/skills",ss=".mcp.json",is=".deepagents/AGENTS.md",un=".deepagents/skills",ha=".deepagents/.mcp.json",Rb=".agentsmesh/rules";});async function BR(e,t,r="project"){if(r==="global"){e.set(is,`${O}/_root.md`);for(let n of await E(t,un))G(e,C(t,n),un);e.set(ha,".agentsmesh/mcp.json");return}e.set(xr,`${O}/_root.md`);for(let n of await E(t,It))G(e,C(t,n),It);e.set(ss,".agentsmesh/mcp.json");}var _b=d(()=>{Le();Zl();_e();s(BR,"buildDeepagentsCliImportPaths");});var Tr,Pr,jt,Zn,eo,as,to,ya,li,Sb,Ra=d(()=>{Tr="factory-droid",Pr="AGENTS.md",jt=".factory/skills",Zn=".factory/droids",eo=".factory/mcp.json",as=".factory/AGENTS.md",to=".factory/skills",ya=".factory/droids",li=".factory/mcp.json",Sb=".agentsmesh/rules";});async function KR(e,t,r="project"){if(r==="global"){e.set(as,`${O}/_root.md`);for(let n of await E(t,ya))F(e,C(t,n),Ae,".md");for(let n of await E(t,to))G(e,C(t,n),to);e.set(li,".agentsmesh/mcp.json");return}e.set(Pr,`${O}/_root.md`);for(let n of await E(t,Zn))F(e,C(t,n),Ae,".md");for(let n of await E(t,jt))G(e,C(t,n),jt);e.set(eo,".agentsmesh/mcp.json");}var kb=d(()=>{Le();Ra();_e();s(KR,"buildFactoryDroidImportPaths");});async function WR(e,t){for(let r of await E(t,".gemini/rules"))F(e,C(t,r),O,".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,`${ce}/${c}.md`);}for(let r of await E(t,".gemini/agents"))F(e,C(t,r),Ae,".md");for(let r of await E(t,".gemini/skills"))G(e,C(t,r),".gemini/skills");}var Ib=d(()=>{Le();_e();s(WR,"buildGeminiCliImportPaths");});var ro,Dr,Ut,ls,Lb,cs,_a,Nr,Cb,Eb,ec=d(()=>{ro="goose",Dr=".goosehints",Ut=".agents/skills",ls=".gooseignore",Lb=".config/goose",cs=`${Lb}/.goosehints`,_a=`${Lb}/.gooseignore`,Nr=".agents/skills",Cb=".agentsmesh/rules",Eb=".agentsmesh/ignore";});async function HR(e,t,r="project"){if(r==="global"){e.set(cs,`${O}/_root.md`);for(let n of await E(t,Nr))G(e,C(t,n),Nr);e.set(_a,".agentsmesh/ignore");return}e.set(Dr,`${O}/_root.md`);for(let n of await E(t,Ut))G(e,C(t,n),Ut);e.set(ls,".agentsmesh/ignore");}var wb=d(()=>{Le();ec();_e();s(HR,"buildGooseImportPaths");});var ms,dn,bb,tc=d(()=>{ms="jules",dn="AGENTS.md",bb=".agentsmesh/rules";});async function zR(e,t,r="project"){r!=="global"&&e.set(dn,`${O}/_root.md`);}var Ob=d(()=>{tc();_e();s(zR,"buildJulesImportPaths");});var Sa,ci,Jd,Ab,no,xb,EY,fp,ka,gp,rc,nc,hp,yp,Rp,_p,Sp,wY,Yd,Ia,Tb,VR,Xd,Pb,Db,Nb,vb,oc=d(()=>{Sa="junie",ci=".junie",Jd=`${ci}/guidelines.md`,Ab=`${ci}/ci-guidelines.md`,no=`${ci}/AGENTS.md`,xb="AGENTS.md",EY=`${ci}/mcp`,fp=`${EY}/mcp.json`,ka=`${ci}/skills`,gp=`${ci}/rules`,rc=`${ci}/commands`,nc=`${ci}/agents`,hp=".aiignore",yp=".junie",Rp=`${yp}/skills`,_p=`${yp}/agents`,Sp=`${yp}/commands`,wY=`${yp}/mcp`,Yd=`${wY}/mcp.json`,Ia=`${yp}/AGENTS.md`,Tb=".agents/skills",VR=".agentsmesh/rules/_root.md",Xd=".agentsmesh/rules",Pb=".agentsmesh/commands",Db=".agentsmesh/agents",Nb=".agentsmesh/mcp.json",vb=".agentsmesh/ignore";});async function JR(e,t){e.set(Jd,`${O}/_root.md`),e.set(no,`${O}/_root.md`),e.set("AGENTS.md",`${O}/_root.md`);for(let r of await E(t,".junie/rules"))F(e,C(t,r),O,".md");for(let r of await E(t,".junie/commands"))F(e,C(t,r),ce,".md");for(let r of await E(t,".junie/agents"))F(e,C(t,r),Ae,".md");for(let r of await E(t,".junie/skills"))G(e,C(t,r),".junie/skills");}var Fb=d(()=>{Le();oc();_e();s(JR,"buildJunieImportPaths");});var Tt,kp,oo,ps,us,ds,fn,mi,sc,qd,La,ic,Ca,Ip,Qd,ac,pi,Ea,wa,ba,ui,lc,Zd,Mb,di,cc,Oa,$b,Gb,Aa=d(()=>{Tt="kilo-code",kp=".kilo",oo="AGENTS.md",ps=`${kp}/rules`,us=`${kp}/commands`,ds=`${kp}/agents`,fn=`${kp}/skills`,mi=`${kp}/mcp.json`,sc=".kilocodeignore",qd=".kilocode",La=`${qd}/rules`,ic=`${qd}/workflows`,Ca=`${qd}/skills`,Ip=`${qd}/mcp.json`,Qd=".kilocodemodes",ac=".kilo",pi=`${ac}/AGENTS.md`,Ea=`${ac}/rules`,wa=`${ac}/commands`,ba=`${ac}/agents`,ui=`${ac}/skills`,lc=`${ac}/mcp.json`,Zd=".kilocodeignore",Mb=".agents/skills",di=".agentsmesh/rules",cc=".agentsmesh/commands",Oa=".agentsmesh/agents",$b=".agentsmesh/mcp.json",Gb=".agentsmesh/ignore";});async function YR(e,t,r="project"){if(r==="global"){e.set(pi,`${O}/_root.md`);for(let n of await E(t,Ea))F(e,C(t,n),O,".md");for(let n of await E(t,wa))F(e,C(t,n),ce,".md");for(let n of await E(t,ba))F(e,C(t,n),Ae,".md");for(let n of await E(t,ui))G(e,C(t,n),ui);e.set(lc,".agentsmesh/mcp.json");return}e.set(oo,`${O}/_root.md`);for(let n of await E(t,ps))F(e,C(t,n),O,".md");for(let n of await E(t,us))F(e,C(t,n),ce,".md");for(let n of await E(t,ds))F(e,C(t,n),Ae,".md");for(let n of await E(t,fn))G(e,C(t,n),fn);e.set(mi,".agentsmesh/mcp.json");for(let n of await E(t,La)){let o=C(t,n);if(basename(o)==="00-root.md"){e.set(o,`${O}/_root.md`);continue}F(e,o,O,".md");}for(let n of await E(t,ic))F(e,C(t,n),ce,".md");for(let n of await E(t,Ca))G(e,C(t,n),Ca);e.set(Ip,".agentsmesh/mcp.json");}var jb=d(()=>{Le();Aa();_e();s(YR,"buildKiloCodeImportPaths");});var rr,gn,Lp,hn,Pt,yn,fi,OY,mc,pc,xa,Rn,gi,Ta,Cp,Ep,Ub,XR,qR,Bb,Kb,QR,Wb,uc=d(()=>{rr="kiro",gn="AGENTS.md",Lp=".kiro",hn=`${Lp}/steering`,Pt=`${Lp}/skills`,yn=`${Lp}/agents`,fi=`${Lp}/hooks`,OY=`${Lp}/settings`,mc=`${OY}/mcp.json`,pc=".kiroignore",xa=".kiro/steering",Rn=".kiro/steering/AGENTS.md",gi=".kiro/skills",Ta=".kiro/agents",Cp=".kiro/settings/mcp.json",Ep=".kiro/settings/kiroignore",Ub=".agents/skills",XR=".agentsmesh/rules/_root.md",qR=".agentsmesh/rules",Bb=".agentsmesh/agents",Kb=".agentsmesh/mcp.json",QR=".agentsmesh/hooks.yaml",Wb=".agentsmesh/ignore";});async function ZR(e,t,r="project"){if(r==="global"){e.set(Rn,`${O}/_root.md`);for(let n of await E(t,xa)){let o=C(t,n);o!==Rn&&F(e,o,O,".md");}for(let n of await E(t,gi))G(e,C(t,n),gi);for(let n of await E(t,Ta))F(e,C(t,n),Ae,".md");return}e.set(gn,`${O}/_root.md`);for(let n of await E(t,hn))F(e,C(t,n),O,".md");for(let n of await E(t,Pt))G(e,C(t,n),Pt);for(let n of await E(t,yn))F(e,C(t,n),Ae,".md");}var Hb=d(()=>{Le();uc();_e();s(ZR,"buildKiroImportPaths");});var _n,ef,so,fs,gs,hs,Sn,io,dc,hi,Pa,Da,Na,yi,Ri,zb,wp,tf,rf,e_,va=d(()=>{_n="opencode",ef=".opencode",so="AGENTS.md",fs=`${ef}/rules`,gs=`${ef}/commands`,hs=`${ef}/agents`,Sn=`${ef}/skills`,io="opencode.json",dc=".config/opencode",hi=`${dc}/AGENTS.md`,Pa=`${dc}/rules`,Da=`${dc}/commands`,Na=`${dc}/agents`,yi=`${dc}/skills`,Ri=`${dc}/opencode.json`,zb=".agents/skills",wp=".agentsmesh/rules",tf=".agentsmesh/commands",rf=".agentsmesh/agents",e_=".agentsmesh/mcp.json";});async function t_(e,t,r="project"){if(r==="global"){e.set(hi,`${O}/_root.md`);for(let n of await E(t,Pa))F(e,C(t,n),O,".md");for(let n of await E(t,Da))F(e,C(t,n),ce,".md");for(let n of await E(t,Na))F(e,C(t,n),Ae,".md");for(let n of await E(t,yi))G(e,C(t,n),yi);e.set(Ri,".agentsmesh/mcp.json");return}e.set(so,`${O}/_root.md`);for(let n of await E(t,fs))F(e,C(t,n),O,".md");for(let n of await E(t,gs))F(e,C(t,n),ce,".md");for(let n of await E(t,hs))F(e,C(t,n),Ae,".md");for(let n of await E(t,Sn))G(e,C(t,n),Sn);e.set(io,".agentsmesh/mcp.json");}var Vb=d(()=>{Le();va();_e();s(t_,"buildOpencodeImportPaths");});var ao,vr,ct,Jb,ys,Fr,Yb,fc=d(()=>{ao="pi-agent",vr="AGENTS.md",ct=".pi/skills",Jb=".pi/agent",ys=`${Jb}/AGENTS.md`,Fr=`${Jb}/skills`,Yb=".agentsmesh/rules";});async function r_(e,t,r="project"){if(r==="global"){e.set(ys,`${O}/_root.md`);for(let n of await E(t,Fr))G(e,C(t,n),Fr);return}e.set(vr,`${O}/_root.md`);for(let n of await E(t,ct))G(e,C(t,n),ct);}var n_=d(()=>{Le();fc();_e();s(r_,"buildPiAgentImportPaths");});var kn,Mr,Rs,lo,co,nr,_i,Si,_s,Fa,ki,mo,Ii,o_,Xb,qb,gc=d(()=>{kn="qwen-code",Mr="QWEN.md",Rs=".qwen/rules",lo=".qwen/commands",co=".qwen/agents",nr=".qwen/skills",_i=".qwen/settings.json",Si=".qwenignore",_s=".qwen/QWEN.md",Fa=".qwen/settings.json",ki=".qwen/commands",mo=".qwen/skills",Ii=".qwen/agents",o_=".agentsmesh/rules",Xb=".agentsmesh/commands",qb=".agentsmesh/agents";});async function s_(e,t,r="project"){if(r==="global"){e.set(_s,`${O}/_root.md`),e.set(Fa,".agentsmesh/mcp.json");for(let n of await E(t,ki))F(e,C(t,n),ce,".md");for(let n of await E(t,Ii))F(e,C(t,n),Ae,".md");for(let n of await E(t,mo))G(e,C(t,n),mo);return}e.set(Mr,`${O}/_root.md`),e.set(_i,".agentsmesh/mcp.json"),e.set(Si,".agentsmesh/ignore");for(let n of await E(t,Rs))F(e,C(t,n),O,".md");for(let n of await E(t,lo))F(e,C(t,n),ce,".md");for(let n of await E(t,co))F(e,C(t,n),Ae,".md");for(let n of await E(t,nr))G(e,C(t,n),nr);}var Qb=d(()=>{Le();_e();gc();s(s_,"buildQwenCodeImportPaths");});var po,In,Bt,Zb,hc=d(()=>{po="replit-agent",In="replit.md",Bt=".agents/skills",Zb=".agentsmesh/rules";});async function i_(e,t,r="project"){if(r!=="global"){e.set(In,`${O}/_root.md`);for(let n of await E(t,Bt))G(e,C(t,n),Bt);}}var a_=d(()=>{Le();hc();_e();s(i_,"buildReplitAgentImportPaths");});var Li,Ma,Ln,bp,Ss,ks,uo,Op,Ap,yc,xp,nf,Ci,Ei,Is,$a,Tp,wi,eO,Ga,of,tO,rO,ja=d(()=>{Li="roo-code",Ma=".roo",Ln=`${Ma}/rules/00-root.md`,bp=".roorules",Ss=`${Ma}/rules`,ks=`${Ma}/commands`,uo=`${Ma}/skills`,Op=`${Ma}/mcp.json`,Ap=".rooignore",yc=".roomodes",xp="settings/custom_modes.yaml",nf=".roo",Ci=`${nf}/rules`,Ei=`${nf}/commands`,Is=`${nf}/skills`,$a="mcp_settings.json",Tp=".rooignore",wi=`${nf}/AGENTS.md`,eO=".agents/skills",Ga=".agentsmesh/rules",of=".agentsmesh/commands",tO=".agentsmesh/mcp.json",rO=".agentsmesh/ignore";});async function l_(e,t,r="project"){if(r==="global"){e.set(wi,`${O}/_root.md`);for(let n of await E(t,Ci))F(e,C(t,n),O,".md");for(let n of await E(t,Ei))F(e,C(t,n),ce,".md");for(let n of await E(t,Is))G(e,C(t,n),Is);e.set($a,".agentsmesh/mcp.json");return}e.set(Ln,`${O}/_root.md`),e.set(bp,`${O}/_root.md`);for(let n of await E(t,Ss)){let o=C(t,n);o!==Ln&&F(e,o,O,".md");}for(let n of await E(t,".roo")){let o=C(t,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&F(e,o,O,".md");}for(let n of await E(t,ks))F(e,C(t,n),ce,".md");for(let n of await E(t,uo))G(e,C(t,n),uo);}var nO=d(()=>{Le();ja();_e();s(l_,"buildRooCodeImportPaths");});var fo,$r,oO,mt,Ls,sO,Cs,or,Rc,iO,_c=d(()=>{fo="rovodev",$r="AGENTS.md",oO=".rovodev",mt=`${oO}/skills`,Ls=`${oO}/mcp.json`,sO=".rovodev",Cs=".rovodev/AGENTS.md",or=".rovodev/skills",Rc=".rovodev/mcp.json",iO=".agentsmesh/rules";});async function c_(e,t,r="project"){if(r==="global"){e.set(Cs,`${O}/_root.md`);for(let n of await E(t,or))G(e,C(t,n),or);e.set(Rc,".agentsmesh/mcp.json");return}e.set($r,`${O}/_root.md`);for(let n of await E(t,mt))G(e,C(t,n),mt);e.set(Ls,".agentsmesh/mcp.json");}var aO=d(()=>{Le();_c();_e();s(c_,"buildRovodevImportPaths");});var Gr,sf,sr,ir,jr,Ua,Sc,Es,Ur,Cn,Pp,lO,Dp,cO,mO,kc=d(()=>{Gr="trae",sf=".trae",sr=`${sf}/rules`,ir=`${sr}/project_rules.md`,jr=`${sf}/skills`,Ua=`${sf}/mcp.json`,Sc=`${sf}/.ignore`,Es=".trae/user_rules",Ur=".trae/user_rules/rules.md",Cn=".trae/skills",Pp=".trae/mcp.json",lO=".agents/skills",Dp=".agentsmesh/rules",cO=".agentsmesh/mcp.json",mO=".agentsmesh/ignore";});async function m_(e,t,r="project"){if(r==="global"){e.set(Ur,`${O}/_root.md`);for(let n of await E(t,Es)){let o=C(t,n);o!==Ur&&F(e,o,O,".md");}for(let n of await E(t,Cn))G(e,C(t,n),Cn);return}e.set(ir,`${O}/_root.md`);for(let n of await E(t,sr)){let o=C(t,n);o!==ir&&F(e,o,O,".md");}for(let n of await E(t,jr))G(e,C(t,n),jr);}var pO=d(()=>{Le();kc();_e();s(m_,"buildTraeImportPaths");});var go,En,p_,Lt,bi,ar,uO,Ic=d(()=>{go="warp",En="AGENTS.md",p_="WARP.md",Lt=".warp/skills",bi=".mcp.json",ar=".warp/skills",uO=".agentsmesh/rules";});async function u_(e,t,r="project"){if(r==="global"){for(let n of await E(t,ar))G(e,C(t,n),ar);return}e.set(En,`${O}/_root.md`);for(let n of await E(t,Lt))G(e,C(t,n),Lt);e.set(bi,".agentsmesh/mcp.json");}var dO=d(()=>{Le();Ic();_e();s(u_,"buildWarpImportPaths");});async function d_(e,t){e.set("AGENTS.md",`${O}/_root.md`),e.set(".windsurfrules",`${O}/_root.md`),await Td(e,t);for(let r of await E(t,".windsurf/rules"))F(e,C(t,r),O,".md");for(let r of await E(t,".windsurf/workflows"))F(e,C(t,r),ce,".md");for(let r of await E(t,".windsurf/skills"))G(e,C(t,r),".windsurf/skills");}var fO=d(()=>{Le();_e();s(d_,"buildWindsurfImportPaths");});var wn,ho,AY,yo,gO,Ba=d(()=>{wn=".rules",ho=".zed/settings.json",AY=".config/zed",yo=`${AY}/settings.json`,gO=".agentsmesh/rules";});async function f_(e,t,r="project"){if(r==="global"){e.set(yo,".agentsmesh/mcp.json");return}e.set(wn,`${O}/_root.md`),e.set(ho,".agentsmesh/mcp.json");}var hO=d(()=>{Ba();_e();s(f_,"buildZedImportPaths");});var yO=d(()=>{Vw();Xw();Qw();eb();tb();ob();lb();cb();mb();pb();db();yb();_b();kb();Ib();wb();Ob();Fb();jb();Hb();Vb();n_();Qb();a_();nO();aO();pO();dO();fO();hO();});var Ce=d(()=>{yO();});var xY,TY,PY,RO,xd,lR=d(()=>{we();ue();JE();Dw();Gw();Kw();Ce();Bl();xY={name:Gn,primaryRootInstructionPath:yr,generateRules:KE,generateCommands:HE,generateAgents:zE,generateSkills:WE,generateIgnore:VE,importFrom:Pw},TY={rootInstructionPath:yr,skillDir:ht,managedOutputs:{dirs:[ht],files:[yr,Bo]},paths:{rulePath(e){return yr},commandPath(e){return `${ht}/${J(e)}/SKILL.md`},agentPath(e){return `${ht}/${K(e)}/SKILL.md`}}},PY={rootInstructionPath:Ko,skillDir:Rr,managedOutputs:{dirs:[Rr],files:[Ko,ta]},rewriteGeneratedPath(e){return e===yr?Ko:e===Bo?ta:e.startsWith(`${ht}/`)?e.replace(`${ht}/`,`${Rr}/`):e},paths:{rulePath(e){return Ko},commandPath(e){return `${Rr}/${J(e)}/SKILL.md`},agentPath(e){return `${Rr}/${K(e)}/SKILL.md`}}},RO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},xd={id:Gn,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:xY,capabilities:RO,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:$w,lint:{hooks:jw,permissions:Uw,mcp:Bw},supportsConversion:{commands:true,agents:true},project:TY,globalSupport:{capabilities:RO,detectionPaths:[Ko,ta,Rr],layout:PY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[yr],global:[Ko]},canonicalDir:UE,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Bo],global:[ta]},canonicalDir:".agentsmesh",canonicalFilename:BE}},buildImportPaths:uR,detectionPaths:[yr,Bo]};});function _O(e){let t=[];for(let r of e.rules){if(r.targets.length>0&&!r.targets.includes(ra))continue;let n=r.root?"_root":basename(r.source,".md");t.push({path:`${on}/${n}.md`,content:r.body.trim()});}return t}function SO(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:na,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var kO=d(()=>{Zm();s(_O,"generateRules");s(SO,"generateMcp");});async function IO(e,t){let r=t?.scope??"project";return q(af,e,r)}var LO=d(()=>{be();g_();s(IO,"importFromAmazonQ");});function CO(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ra}))}var EO=d(()=>{Ie();Zm();s(CO,"lintRules");});var NY,vY,FY,MY,af,g_=d(()=>{kO();LO();EO();Ce();Zm();NY={name:ra,generateRules:_O,generateMcp:SO,importFrom:IO},vY={managedOutputs:{dirs:[on],files:[na]},paths:{rulePath(e,t){return `${on}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},FY={managedOutputs:{dirs:[ei],files:[Qm]},rewriteGeneratedPath(e){return e.startsWith(`${on}/`)?e.replace(`${on}/`,`${ei}/`):e===na?Qm:e},paths:{rulePath(e,t){return `${ei}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},MY={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},af={id:ra,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:NY,capabilities:{rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Amazon Q Developer config found (.amazonq/rules/ or .amazonq/mcp.json).",lintRules:CO,project:vY,globalSupport:{capabilities:MY,detectionPaths:[ei,Qm],layout:FY},importer:{rules:{feature:"rules",mode:"directory",source:{project:[on],global:[ei]},canonicalDir:Jw,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[na],global:[Qm]},canonicalDir:".agentsmesh",canonicalFilename:Yw}},buildImportPaths:dR,detectionPaths:[on,na]};});function wO(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=ae(n,r);return o?[{path:kr,content:o}]:[]}function bO(e){return ie(e,Rt)}function OO(e){return e.commands.map(t=>({path:`${Rt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function AO(e){return e.agents.map(t=>({path:`${Rt}/${K(t.name)}/SKILL.md`,content:De(t)}))}var xO=d(()=>{se();Ue();ue();we();oa();s(wO,"generateRules");s(bO,"generateSkills");s(OO,"generateCommands");s(AO,"generateAgents");});function de(e,t,r){let n=r.some(o=>$Y.includes(o));return e.startsWith(`${t}/`)&&!n?`.agents/skills/${e.slice(t.length+1)}`:null}var $Y,pt=d(()=>{$Y=["amp","antigravity","codex-cli","goose","replit-agent"];s(de,"mirrorSkillsToAgents");});async function PO(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 Je(e,TO,l),r.push({fromTool:"amp",fromPath:t,toPath:TO,feature:"mcp"}));}var TO,DO=d(()=>{A();nn();oa();TO=".agentsmesh/mcp.json";s(PO,"importAmpMcp");});async function NO(e,t={}){let r=t.scope??"project",n=[],o=await z("amp",e,r);return n.push(...await q(lf,e,r,{normalize:o})),await oe(e,r==="global"?Ir:Rt,"amp",n,o),await PO(e,r==="global"?zo:Un,n),n}var vO=d(()=>{ge();se();be();DO();oa();h_();s(NO,"importFromAmp");});function FO(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var MO=d(()=>{Ie();oa();s(FO,"lintRules");});function $O(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function GO(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?[]:[v(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function jO(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var UO=d(()=>{Oe();s($O,"lintHooks");s(GO,"lintPermissions");s(jO,"lintIgnore");});function KY(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"]),JSON.stringify(r,null,2)}var jY,UY,BY,BO,lf,h_=d(()=>{we();ue();xO();pt();vO();MO();UO();Ce();oa();jY={name:"amp",primaryRootInstructionPath:kr,generateRules:wO,generateCommands:OO,generateAgents:AO,generateSkills:bO,importFrom:NO},UY={rootInstructionPath:kr,skillDir:Rt,managedOutputs:{dirs:[Rt],files:[kr,Un]},paths:{rulePath(e){return kr},commandPath(e){return `${Rt}/${J(e)}/SKILL.md`},agentPath(e){return `${Rt}/${K(e)}/SKILL.md`}}},BY={rootInstructionPath:Ho,skillDir:Ir,managedOutputs:{dirs:[Ir],files:[Ho,zo]},rewriteGeneratedPath(e){return e===kr?Ho:e===Un?zo:e.startsWith(`${Rt}/`)?e.replace(`${Rt}/`,`${Ir}/`):e},mirrorGlobalPath(e,t){return de(e,Ir,t)},paths:{rulePath(e){return Ho},commandPath(e){return `${Ir}/${J(e)}/SKILL.md`},agentPath(e){return `${Ir}/${K(e)}/SKILL.md`}}},BO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(KY,"mergeAmpSettings");lf={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:jY,capabilities:BO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:FO,lint:{hooks:$O,permissions:GO,ignore:jO},supportsConversion:{commands:true,agents:true},project:UY,globalSupport:{capabilities:BO,detectionPaths:[Ho,zo],layout:BY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[kr],global:[Ho]},canonicalDir:qw,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){return r.has("mcp")?!e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Un,content:JSON.stringify({"amp.mcpServers":e.mcp.mcpServers},null,2)}]:[]},mergeGeneratedOutputContent(e,t,r,n){return n===Un||n===zo?KY(e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:gR,detectionPaths:[kr,Un],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function KO(e){let t=e.rules.find(n=>n.root);if(!t)return [];let r=[{path:Lr,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:`${sn}/${o}.md`,content:n.body.trim()||""});}return r}function WO(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
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}
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}
65
65
 
66
- ${n}`:n||r;return {path:`${Bn}/${t.name}.md`,content:o}})}function HO(e){return ie(e,an)}function zO(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:tp,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function VO(e){return e.agents.map(t=>({path:`${an}/${K(t.name)}/SKILL.md`,content:De(t)}))}function JO(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 ae(t?.body.trim()??"",r)}var YO=d(()=>{se();Ue();ue();aa();s(KO,"generateRules");s(WO,"generateCommands");s(HO,"generateSkills");s(zO,"generateMcp");s(VO,"generateAgents");s(JO,"renderAntigravityGlobalInstructions");});function HY(e){let t=e.replace(/\\/g,"/");return !t.startsWith("rules/")||t.endsWith("/")||!t.endsWith(".md")?null:t}async function Ro(e){let t=DE(e.content),r=[];if(t.rules.length===0)return {rootContent:t.rootContent,results:r};await w(join(e.projectRoot,e.rulesDir));for(let n of t.rules){let o=HY(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 V(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 Lc=d(()=>{A();B();Ue();fe();s(HY,"canonicalRulePath");s(Ro,"splitEmbeddedRulesToCanonical");});async function zY(e,t,r,n){let o=n==="global"?Kn:Lr,i=n==="project"?[o,ep]:[o];for(let a of i){let l=join(e,a),c=await k(l);if(c===null)continue;let m=join(e,hR),p=await Ro({content:c,projectRoot:e,rulesDir:ia,sourcePath:l,fromTool:sa,normalize:r});t.push(...p.results);let{body:u}=x(r(p.rootContent,l,m)),f=await V(m,{root:true},u);await w(join(e,ia)),await L(m,f),t.push({fromTool:sa,fromPath:l,toPath:hR,feature:"rules"});return}}async function qO(e,t={}){let r=t.scope??"project",n=[],o=await z(sa,e,r);return await zY(e,n,o,r),n.push(...await q(cf,e,r,{normalize:o})),await oe(e,r==="global"?Wn:an,sa,n,o),n}var QO=d(()=>{ge();A();B();se();be();fe();Lc();aa();R_();s(zY,"importRootRule");s(qO,"importFromAntigravity");});var tA,rA,nA=d(()=>{B();fe();aa();tA=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:`${ia}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"nonRootRuleMapper"),rA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Dd}/${e}`,content:await Se(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function oA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:sa}))}var sA=d(()=>{Ie();aa();s(oA,"lintRules");});var VY,JY,YY,XY,cf,R_=d(()=>{ea();ue();YO();aa();QO();nA();sA();Ce();VY={name:"antigravity",primaryRootInstructionPath:Lr,generateRules:KO,generateCommands:WO,generateAgents:VO,generateSkills:HO,generateMcp:zO,importFrom:qO},JY={rootInstructionPath:Lr,skillDir:".agents/skills",managedOutputs:{dirs:[sn,Bn,an],files:[Lr]},rewriteGeneratedPath(e){return e===tp?null:e},paths:{rulePath(e,t){return `${sn}/${e}.md`},commandPath(e,t){return `${Bn}/${e}.md`},agentPath(e){return `${an}/${K(e)}/SKILL.md`}}},YY={rootInstructionPath:Kn,renderPrimaryRootInstruction:JO,skillDir:Wn,managedOutputs:{dirs:[Wn,rp],files:[Kn,zl]},rewriteGeneratedPath(e){return e===Lr?Kn:e.startsWith(`${sn}/`)?null:e.startsWith(".agents/skills/")?e.replace(".agents/skills",Wn):e.startsWith(`${Bn}/`)?e.replace(Bn,rp):e===tp?zl:e},paths:{rulePath(e,t){return Kn},commandPath(e,t){return `${rp}/${e}.md`},agentPath(e){return `${Wn}/${K(e)}/SKILL.md`}}},XY={rules:"native",additionalRules:"embedded",commands:Zr("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},cf={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:VY,capabilities:{rules:"native",additionalRules:"native",commands:Zr("partial","workflows"),agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Antigravity config found (.agents/rules/, .agents/skills/, or .agents/workflows/).",supportsConversion:{agents:true},lintRules:oA,project:JY,globalSupport:{capabilities:XY,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:YY},importer:{rules:{feature:"rules",mode:"directory",source:{project:[sn]},canonicalDir:ia,extensions:[".md"],map:tA},commands:{feature:"commands",mode:"directory",source:{project:[Bn],global:[rp]},canonicalDir:Dd,extensions:[".md"],map:rA},mcp:{feature:"mcp",mode:"flatFile",source:{global:[zl]},canonicalDir:".agentsmesh",canonicalFilename:Zw}},buildImportPaths:yR,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function QY(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 ZY(e){let t={};return e.description&&(t.description=e.description),t}function iA(e){let t=[];for(let r of e.rules)if(!(r.targets.length>0&&!r.targets.includes(_t)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),t.push({path:`${Xt}/_root.md`,content:D(n,r.body.trim())});}else {let n=basename(r.source,".md");t.push({path:`${Xt}/${n}.md`,content:D(QY(r),r.body.trim())});}return t}function aA(e){return e.commands.map(t=>({path:`${Cr}/${t.name}.md`,content:D(ZY(t),t.body.trim())}))}function lA(e){return ie(e,qt)}function cA(e){return e.ignore.length===0?[]:[{path:zn,content:e.ignore.join(`
67
- `)}]}var mA=d(()=>{se();B();la();s(QY,"ruleFrontmatter");s(ZY,"commandFrontmatter");s(iA,"generateRules");s(aA,"generateCommands");s(lA,"generateSkills");s(cA,"generateIgnore");});function t2(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 uA(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 Je(e,_R,a),r.push({fromTool:_t,fromPath:join(e,t),toPath:_R,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=t2(i);if(Object.keys(a).length>0){let l=join(e,SR);await w(dirname(l)),await L(l,stringify(a)),r.push({fromTool:_t,fromPath:join(e,t),toPath:SR,feature:"hooks"});}}}async function dA(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,kR);await w(dirname(i)),await L(i,o.join(`
69
- `)),r.push({fromTool:_t,fromPath:join(e,t),toPath:kR,feature:"ignore"});}var fA=d(()=>{A();nn();la();s(t2,"augmentHooksToCanonical");s(uA,"importAugmentSettings");s(dA,"importAugmentIgnore");});function r2(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 n2(e,t,r,n){let o=n==="global"?Vo:Xt,i=join(e,RR);t.push(...await ke({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:_t,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:`${RR}/${a}`,feature:"rules",content:await V(m,r2(p,c),u)}},"mapEntry")}));}async function o2(e,t,r,n){let o=n==="global"?Jo:Cr,i=join(e,".agentsmesh/commands");t.push(...await ke({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:_t,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 Se(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function hA(e,t={}){let r=t.scope??"project",n=[],o=await z(_t,e,r);return await n2(e,n,o,r),await o2(e,n,o,r),await oe(e,r==="global"?Vn:qt,_t,n,o),await uA(e,r==="global"?Yo:Hn,n),r==="project"&&await dA(e,zn,n),n}var yA=d(()=>{ge();Yt();se();fe();B();fA();la();s(r2,"canonicalRuleMeta");s(n2,"importRules");s(o2,"importCommands");s(hA,"importFromAugmentCode");});function RA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:_t}))}var _A=d(()=>{Ie();la();s(RA,"lintRules");});function kA(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=new Set(SA);return Object.keys(e.hooks).filter(r=>!t.has(r)).map(r=>Zs(r,"augment-code",SA,{unsupportedBy:"AugmentCode hooks"}))}var SA,IA=d(()=>{Oe();SA=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(kA,"lintHooks");});function i2(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 a2(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 l2(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=i2(e.hooks)),Object.keys(r).length===0?null:JSON.stringify(r,null,2)}var s2,c2,m2,p2,u2,LA,CA=d(()=>{mA();yA();_A();IA();Ce();la();s2={name:_t,generateRules:iA,generateCommands:aA,generateSkills:lA,generateIgnore:cA,importFrom:hA};s(i2,"serializeHooksForSettings");s(a2,"mergeAugmentSettings");s(l2,"buildSettingsContent");c2={skillDir:qt,managedOutputs:{dirs:[Xt,Cr,qt],files:[Hn,zn]},paths:{rulePath(e){return `${Xt}/${e}.md`},commandPath(e){return `${Cr}/${e}.md`},agentPath(e){return null}}},m2={skillDir:Vn,managedOutputs:{dirs:[Vo,Jo,Vn],files:[Yo]},rewriteGeneratedPath(e){return e.startsWith(`${Xt}/`)?e.replace(`${Xt}/`,`${Vo}/`):e.startsWith(`${Cr}/`)?e.replace(`${Cr}/`,`${Jo}/`):e.startsWith(`${qt}/`)?e.replace(`${qt}/`,`${Vn}/`):e===Hn?Yo:e===zn?null:e},paths:{rulePath(e){return `${Vo}/${e}.md`},commandPath(e){return `${Jo}/${e}.md`},agentPath(e){return null}}},p2={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},u2={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},LA={id:_t,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:s2,capabilities:p2,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:RA,lint:{hooks:kA},project:c2,globalSupport:{capabilities:u2,detectionPaths:[Vo,Jo,Vn,Yo],layout:m2},emitScopedSettings(e,t,r){let n=l2(e,r);return n===null?[]:[{path:Hn,content:n}]},mergeGeneratedOutputContent(e,t,r,n){return n===Hn||n===Yo?a2(e,r):null},buildImportPaths:IR,detectionPaths:[Xt,Cr,qt,Hn,zn]};});function EA(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(!Fn(i))continue;let a=Ze(i),l=At(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 wA=d(()=>{qr();s(EA,"buildClaudeHooksObjectFromCanonical");});function bA(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:Xo,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=D(a,o.body.trim()||"");t.push({path:`${np}/${i}.md`,content:l});}return t}function OA(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=D(r,t.body.trim()||"");return {path:`${op}/${t.name}.md`,content:n}})}function AA(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:`${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
70
70
 
71
- ${n}`,i=D(r,o);return {path:`${sp}/${t.name}.md`,content:i}})}function xA(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Vl,content:t}]}function TA(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:`${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
72
72
 
73
- ${o}`,a=D(n,i);t.push({path:`${ip}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");t.push({path:`${ip}/${r.name}/${c}`,content:l.content});}}return t}function PA(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:ap,content:o}]}function DA(e,t){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let r=EA(e);if(Object.keys(r).length===0)return [];if(t?.scope==="global")return [{path:qo,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:ap,content:n}]}function NA(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
74
- `);return [{path:lp,content:t}]}var vA=d(()=>{B();Qo();wA();s(bA,"generateRules");s(OA,"generateCommands");s(AA,"generateAgents");s(xA,"generateMcp");s(TA,"generateSkills");s(PA,"generatePermissions");s(DA,"generateHooks");s(NA,"generateIgnore");});function g2(e){let t=e.description.trim();return t||(basename(e.source)||"rule").replace(/\.md$/i,"")||"Rule"}function FA(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:`${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
75
75
 
76
- ## ${t?g2(t):"Guidance"}
76
+ ## ${t?qX(t):"Guidance"}
77
77
 
78
78
  ${r}
79
- `:""}var MA=d(()=>{s(g2,"ruleSectionTitle");s(FA,"renderClaudeGlobalPrimaryInstructions");});function GA(e,t){return e===null?"created":e!==t?"updated":"unchanged"}async function jA(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=D(c,l.body.trim()),p=`${LR}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:GA(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=D(c,l.body.trim()),p=`${LR}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:GA(u,m)});}return a}var UA=d(()=>{A();B();Qo();s(GA,"computeStatus");s(jA,"generateClaudeGlobalExtras");});function BA(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(!Fn({...m,type:p}))continue;let u=p==="prompt"?At(m)||Ze(m):Ze(m)||At(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 KA(e,t){let r=join(e,qo),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=BA(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(e,ca);return await w(dirname(l)),await L(l,a),t.push({fromTool:"claude-code",fromPath:r,toPath:ca,feature:"hooks"}),true}async function WA(e,t){let r=t.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(qo)),n=join(e,ap),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 Je(e,pp,m),t.push({fromTool:"claude-code",fromPath:n,toPath:pp,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,ER);await w(dirname(h)),await L(h,g),t.push({fromTool:"claude-code",fromPath:n,toPath:ER,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=BA(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(e,ca);await w(dirname(u)),await L(u,p),t.push({fromTool:"claude-code",fromPath:n,toPath:ca,feature:"hooks"});}}}var HA=d(()=>{qr();A();nn();Qo();s(BA,"claudeHooksToCanonical");s(KA,"importClaudeHooksJson");s(WA,"importSettings");});async function VA(e,t,r){let n=join(e,ip),o=join(e,CR),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=Yr(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
80
- `);continue}let h=await U(c);for(let R of h){let _=await k(R);if(_===null)continue;let S=relative(c,R),I=join(p,S);await w(dirname(I));let b=r(_,R,I);await L(I,S==="SKILL.md"?await Mn(I,g.value.frontmatter,g.value.body):b);let P=`${CR}/${m}/${S}`;t.push({fromTool:"claude-code",fromPath:R,toPath:P,feature:"skills"});}}}var JA=d(()=>{A();B();fe();Qo();s(VA,"importClaudeSkills");});async function YA(e,t={}){let r=t.scope??"project",n=[],o=await z("claude-code",e,r);return n.push(...await q(mf,e,r,{normalize:o})),await VA(e,n,o),await KA(e,n),await WA(e,n),n}var XA=d(()=>{ge();be();HA();JA();k_();s(YA,"importFromClaudeCode");});var qA,QA,ZA,ex=d(()=>{B();fe();Sr();Qo();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:`${mp}/${e}`,content:await V(n,{...o,root:false},i)}},"claudeRuleMapper"),QA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${Fd}/${e}`,content:await Se(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"),ZA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Md}/${e}`,content:await et(n,o,i)}},"claudeAgentMapper");});function tx(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:rb}))}var rx=d(()=>{Ie();Qo();s(tx,"lintRules");});var R2,nx,_2,S2,mf,k_=d(()=>{vA();Qo();pt();MA();UA();XA();ex();rx();Ce();R2={name:"claude-code",primaryRootInstructionPath:Xo,generateRules:bA,generateCommands:OA,generateAgents:AA,generateSkills:TA,generateMcp:xA,generatePermissions:PA,generateHooks:DA,generateIgnore:NA,importFrom:YA},nx={rootInstructionPath:Xo,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[Xo,ti,".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`}}},_2={rootInstructionPath:ti,skillDir:".claude/skills",renderPrimaryRootInstruction:FA,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[ti,".claude/settings.json",cp,qo,".claudeignore"]},rewriteGeneratedPath(e){return e===Xo?ti:e===Vl?cp:e},mirrorGlobalPath(e,t){return de(e,".claude/skills",t)},paths:nx.paths},S2={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},mf={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:R2,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:tx,project:nx,globalSupport:{capabilities:S2,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:_2,scopeExtras:jA},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Xo,ti],global:[ti]},canonicalDir:mp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[np],global:[np]},canonicalDir:mp,extensions:[".md"],map:qA}],commands:{feature:"commands",mode:"directory",source:{project:[op],global:[op]},canonicalDir:Fd,extensions:[".md"],map:QA},agents:{feature:"agents",mode:"directory",source:{project:[sp],global:[sp]},canonicalDir:Md,extensions:[".md"],map:ZA},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Vl],global:[cp]},canonicalDir:".agentsmesh",canonicalFilename:pp},ignore:{feature:"ignore",mode:"flatFile",source:{project:[lp],global:[lp]},canonicalDir:".agentsmesh",canonicalFilename:nb}},buildImportPaths:wR,detectionPaths:[Xo,ti,".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 I2(e){let t=basename(e,".md");return t==="_root"?"root":t}function ox(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";t.push({path:ni,content:n});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=I2(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?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${Zo}/${o}.md`,content:a});}return t}function sx(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n?`${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}
81
81
 
82
- ${n}`:r||n;return {path:`${ts}/${t.name}.md`,content:o}})}function ix(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
83
- `);return [{path:ma,content:t}]}function ax(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:es,content:t}]}function lx(e){return e.agents.map(t=>({path:`${St}/${K(t.name)}/SKILL.md`,content:De(t)}))}function L2(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function L_(e){return e.replace(/[\r\n]+/g," ")}function C2(e,t,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${L_(e)}`,`# agentsmesh-matcher: ${L_(r)}`,`# agentsmesh-command: ${L_(t)}`,"set -eu",t,""].join(`
84
- `)}function cx(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)Go(i)&&(t.push({path:`${pa}/${L2(r)}-${o}.sh`,content:C2(r,i.command,i.matcher)}),o++);}return t}function mx(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=D(n,r.body.trim()||"");t.push({path:`${St}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${St}/${r.name}/${a}`,content:i.content});}}return t}var px=d(()=>{qr();B();ue();ln();s(I2,"ruleSlug");s(ox,"generateRules");s(sx,"generateCommands");s(ix,"generateIgnore");s(ax,"generateMcp");s(lx,"generateAgents");s(L2,"safeEventName");s(L_,"safeShellLine");s(C2,"buildHookScript");s(cx,"generateHooks");s(mx,"generateSkills");});async function dx(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=Wo(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:`${oi}/${n}`,feature:"rules",content:await V(o,c,a)}}async function fx(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 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(`
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:`${$d}/${e}`,feature:"commands",content:await Se(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var C_=d(()=>{B();fe();Sr();ln();s(dx,"mapClineRuleFile");s(fx,"mapClineWorkflowFile");});async function gx(e,t,r){let n=join(e,oi),o=join(e,Zo),i=join(e,Zo),a=false;try{a=(await stat(i)).isFile();}catch{}if(a){let p=await k(i);if(p!==null){await w(n);let u=join(n,"_root.md"),{frontmatter:f,body:g}=x(r(p,i,u)),R=f.root===true?f:{...f,root:true},_=await V(u,R,g);await L(u,_),t.push({fromTool:"cline",fromPath:i,toPath:`${oi}/_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,ni),u=await k(p);if(u!==null){l=p,await w(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=x(r(u,p,f)),_=g.root===true?g:{...g,root:true},S=await V(f,_,h);await L(f,S),t.push({fromTool:"cline",fromPath:p,toPath:`${oi}/_root.md`,feature:"rules"});}else {let h=(await U(o)).filter(R=>R.endsWith(".md")&&!R.includes("/workflows/")).sort()[0];if(h){let R=await k(h);if(R!==null){l=h,await w(n);let _=join(n,"_root.md"),{frontmatter:S,body:I}=x(r(R,h,_)),P=S.root===true?S:{...S,root:true},T=await V(_,P,I);await L(_,T),t.push({fromTool:"cline",fromPath:h,toPath:`${oi}/_root.md`,feature:"rules"});}}}}else {l=c,await w(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=x(r(m,c,p)),h=u.root===true?u:{...u,root:true},R=await V(p,h,f);await L(p,R),t.push({fromTool:"cline",fromPath:c,toPath:`${oi}/_root.md`,feature:"rules"});}return t.push(...await ke({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:dx(u,n,f),"mapEntry")})),a}var hx=d(()=>{A();B();fe();Yt();C_();ln();s(gx,"importClineRules");});function w2(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 yx(e,t){let r=[es,sb].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=w2(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await w(join(e,".agentsmesh")),await L(join(e,AR),JSON.stringify({mcpServers:c},null,2)),t.push({fromTool:ri,fromPath:i,toPath:AR,feature:"mcp"}));}}var Rx=d(()=>{A();ln();s(w2,"mapClineServerToCanonical");s(yx,"importClineMcp");});function _x(e){return b2.some(t=>t.test(e))}var b2,Sx=d(()=>{b2=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(_x,"isReservedArtifactName");});async function A2(e){let t=await U(e).catch(()=>[]),r=[];for(let n of t){let o=relative(e,n).replace(/\\/g,"/"),i=basename(o);if(_x(i))continue;let a=await k(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Fp(e,t,r){let n=await A2(t),o=join(r.projectRoot,r.destCanonicalSkillsDir,e);for(let i of n){let a=join(o,i.relativePath);await w(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 Mn(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 Ix(e,t,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,e);await w(o);let i=join(o,"SKILL.md"),a=n.normalize(r,t,i),{frontmatter:l,body:c}=x(a),m=await Mn(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 Mp(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 Ec(e,t,r=[]){for(let n of e){let o=join(t.projectRoot,n),i=await Mp(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 R of r)if(await R.recognize(g)){h=true;break}h||await Fp(l,c,t);}if(a)return}}function wc(e){return {async recognize(t){let r=jl(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await $n(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalAgentsDir);await w(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,Ys(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function Lx(e){return {async recognize(t){let r=Sd(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await $n(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalCommandsDir);await w(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,kd(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var bc=d(()=>{A();B();fe();Sx();ue();we();Vm();s(A2,"readNativeSkill");s(Fp,"importDirectorySkill");s(Ix,"importFlatSkill");s(Mp,"findDirectorySkills");s(Ec,"importSkillsDirectory");s(wc,"projectedAgentRecognizer");s(Lx,"commandSkillRecognizer");});async function Cx(e,t,r,n=St){await Ec([n],{projectRoot:e,destCanonicalSkillsDir:ab,targetName:"cline",normalize:r,results:t},[wc({canonicalAgentsDir:ib})]);}var Ex=d(()=>{bc();ln();s(Cx,"importClineSkills");});function b_(e,t){return e.match(new RegExp(`^# agentsmesh-${t}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function wx(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=b_(i,"event"),l=b_(i,"command");if(!a||!l)continue;let c=b_(i,"matcher")??"*";t[a]||(t[a]=[]),t[a].push({matcher:c,command:l});}}async function Ox(e,t){let r={};if(await wx(join(e,pa),r),await wx(join(e,fa),r),Object.keys(r).length===0)return;let n=join(e,bR);await w(dirname(n)),await L(n,stringify(r)),t.push({fromTool:ri,fromPath:join(e,fa),toPath:bR,feature:"hooks"});}var Ax=d(()=>{A();ln();s(b_,"extractMeta");s(wx,"loadHooksFromDir");s(Ox,"importClineHooks");});async function xx(e){let t=[],r=await z(ri,e),n=await gx(e,t,r),o=join(e,ma),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 w(join(e,".agentsmesh"));let m=join(e,OR);await L(m,c.join(`
88
- `)),t.push({fromTool:"cline",fromPath:o,toPath:OR,feature:"ignore"});}}await yx(e,t);let a=join(e,$d);return n||t.push(...await ke({srcDir:join(e,ts),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>fx(l,a,c),"mapEntry")})),await Cx(e,t,r),await Ox(e,t),t}var Tx=d(()=>{ge();A();Yt();C_();hx();ln();Rx();Ex();Ax();s(xx,"importFromCline");});function Px(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ri}))}var Dx=d(()=>{Ie();ln();s(Px,"lintRules");});function Nx(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function vx(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".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 Fx=d(()=>{Oe();s(Nx,"lintCommands");s(vx,"lintHooks");});var P2,D2,N2,v2,Mx,$x=d(()=>{px();ea();ln();Tx();Dx();Fx();Ce();Ml();ue();P2={name:"cline",primaryRootInstructionPath:ni,generateRules:ox,generateCommands:sx,generateAgents:lx,generateSkills:mx,generateMcp:ax,generateHooks:cx,generateIgnore:ix,importFrom:xx},D2={rootInstructionPath:ni,skillDir:".cline/skills",managedOutputs:{dirs:[".cline/skills",".clinerules",".clinerules/hooks",".clinerules/workflows"],files:["AGENTS.md",".cline/cline_mcp_settings.json",".clineignore",".clinerules/typescript.md"]},paths:{rulePath(e,t){return `${Zo}/${e}.md`},commandPath(e,t){return `${ts}/${e}.md`},agentPath(e,t){return gr(t,"cline")?`.cline/skills/${K(e)}/SKILL.md`:null}}},N2={skillDir:St,managedOutputs:{dirs:[ua,da,fa,St,".agents/skills"],files:[es,ma]},rewriteGeneratedPath(e){return e===ni?null:e.startsWith(`${pa}/`)?`${fa}/${e.slice(pa.length+1)}`:e.startsWith(`${ts}/`)?`${da}/${e.slice(ts.length+1)}`:e.startsWith(`${Zo}/`)?`${ua}/${e.slice(Zo.length+1)}`:e},mirrorGlobalPath(e,t){return e.startsWith(`${St}/`)?`.agents/skills/${e.slice(St.length+1)}`:null},paths:{rulePath(e,t){return `${ua}/${e}.md`},commandPath(e,t){return `${da}/${e}.md`},agentPath(e,t){return gr(t,"cline")?`.cline/skills/${K(e)}/SKILL.md`:null}}},v2={rules:"native",additionalRules:"native",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Mx={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:P2,capabilities:{rules:"native",additionalRules:"native",commands:Zr("native","workflows"),agents:"embedded",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:Px,lint:{commands:Nx,hooks:vx},project:D2,globalSupport:{capabilities:v2,detectionPaths:[ua,da,fa,St,es,ma],layout:N2},buildImportPaths:xR,detectionPaths:[".clinerules",".cline"],nativeInstall:{pickPaths:[{prefix:St,feature:"skills",strategy:{kind:"skillDir"}},{prefix:ts,feature:"commands",strategy:{kind:"basename",suffix:".md"}}]},conversionDefaults:{agentsToSkills:true}};});var Dt,Gx,bs,Wa,jx,_o,Ux,uf,Ha,So,za,Os,Bx,Gp,Kx,O_,Wx,A_,Hx,zx,x_,T_,P_,Ct=d(()=>{Dt="codex-cli",Gx="codex.md",bs="AGENTS.md",Wa=".codex/AGENTS.md",jx=".codex/AGENTS.override.md",_o=".agents/skills",Ux=".codex/skills",uf=".codex/config.toml",Ha=".codex/instructions",So=".codex/rules",za=".codex/agents",Os=".agentsmesh/rules",Bx=".agentsmesh/commands",Gp=".agentsmesh/agents",Kx=".agentsmesh/skills",O_=".agentsmesh/mcp.json",Wx="am-codex-rule:v1",A_="# am-json: ",Hx="# am-body-b64-begin",zx="# am-body-b64-end",x_="# am64:",T_="<!-- agentsmesh:codex-rule-index:start -->",P_="<!-- agentsmesh:codex-rule-index:end -->";});function D_(e){return basename(e,".md")}function jp(e){return `${Ha}/${D_(e.source)}.md`}function Vx(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];}),D(t,e.body.trim()||"")}function M2(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 \`${So}/${D_(e.source)}.rules\`.`),e.targets.length>0&&t.push(`Targeted to ${e.targets.map(r=>`\`${r}\``).join(", ")}.`),t.join(" ")}function Jx(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||D_(a.source)}](${jp(a)}): ${M2(a)}`),i=[T_,"## Additional Rule Files",...o,P_].join(`
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(`
89
89
  `);return r?`${r}
90
90
 
91
- ${i}`:i}function Yx(e){let t=T_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=P_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`\\n?${t}[\\s\\S]*?${r}\\n?`,"g"),`
92
- `).trim()}var df=d(()=>{B();Ct();s(D_,"ruleSlug");s(jp,"codexInstructionMirrorPath");s(Vx,"serializeCodexInstructionMirror");s(M2,"summarizeRule");s(Jx,"appendCodexRuleIndex");s(Yx,"stripCodexRuleIndex");});function G2(e){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(e)}function j2(e){return e.split(`
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(`
93
93
  `).map(t=>t.length>0?`# ${t}`:"#").join(`
94
- `)}function U2(e){let t=e.trim();return t?G2(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.","#",...j2(t).split(`
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(`
96
96
  `),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
97
97
  `)}
98
- `:""}function N_(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:bs,content:Jx(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:`${So}/${o}.rules`,content:U2(n.body)}),r.push({path:jp(n),content:Vx(n)}));}return r}function v_(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 ae(t?.body.trim()??"",r)}var Xx=d(()=>{Ue();Ct();df();s(G2,"looksLikeCodexRulesDsl");s(j2,"toCodexRulesComments");s(U2,"toSafeCodexRulesContent");s(N_,"generateRules");s(v_,"renderCodexGlobalInstructions");});function F_(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=D(n,r.body.trim()||"");t.push({path:`${_o}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${_o}/${r.name}/${a}`,content:i.content});}}return t}function B2(e){return {path:`${_o}/${J(e.name)}/SKILL.md`,content:$e(e)}}function M_(e){return e.commands.map(B2)}var qx=d(()=>{B();Ct();we();s(F_,"generateSkills");s(B2,"commandToSkillOutput");s(M_,"generateCommands");});function $_(e){return e.agents.map(t=>({path:`${za}/${t.name}.toml`,content:K2(t)}))}function K2(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 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 = """
99
99
  ${n}
100
100
  """`);}else t.push(`developer_instructions = '''
101
101
  ${r}
102
102
  '''`);return t.join(`
103
103
  `)+`
104
- `}var Qx=d(()=>{Ct();s($_,"generateAgents");s(K2,"serializeAgentToCodexToml");});function ff(e){return "command"in e}function Zx(e){return "url"in e}var gf=d(()=>{s(ff,"isStdioMcpServer");s(Zx,"isUrlMcpServer");});function G_(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=W2(t);return [{path:uf,content:r}]}function W2(e){let t=[];for(let[r,n]of Object.entries(e)){let o=eT(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])=>`${eT(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}t.push(i.join(`
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(`
105
105
  `));}return t.join(`
106
106
 
107
107
  `)+`
108
- `}function eT(e){return !/^[A-Za-z0-9_-]+$/.test(e)}var tT=d(()=>{gf();Ct();s(G_,"generateMcp");s(W2,"serializeMcpToToml");s(eT,"needsTomlQuoting");});var rT=d(()=>{Xx();qx();Qx();tT();});var nT=d(()=>{rT();});function V2(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 oT(e,t){let r=join(e,uf),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=V2(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Je(e,O_,a),t.push({fromTool:Dt,fromPath:r,toPath:O_,feature:"mcp"}));}var sT=d(()=>{A();nn();Ct();s(V2,"mapTomlServerToCanonical");s(oT,"importMcp");});async function iT(e,t,r){await Ec([_o,Ux],{projectRoot:e,destCanonicalSkillsDir:Kx,targetName:Dt,normalize:r,results:t},[Lx({canonicalCommandsDir:Bx}),wc({canonicalAgentsDir:Gp})]);}var aT=d(()=>{bc();Ct();s(iT,"importSkills");});async function lT(e,t,r){let n=join(e,za),o=join(e,Gp);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:"",R=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",_=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(T=>typeof T=="string"):[];await w(o);let S=join(o,`${p}.md`),I=r(f,l,S),P=Ys({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:R,maxTurns:0,mcpServers:_,hooks:{},skills:[],memory:""},I);await L(S,P),t.push({fromTool:Dt,fromPath:l,toPath:`${Gp}/${p}.md`,feature:"agents"});}}catch{}}var cT=d(()=>{A();ue();Ct();s(lT,"importCodexAgentsFromToml");});function mT(e){if(!e.includes(Wx))return null;let t=e.split(`
109
- `).find(c=>c.startsWith(A_));if(!t)return null;let r;try{r=JSON.parse(t.slice(A_.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===Hx){l=true;continue}if(m===zx){l=false;continue}l&&m.startsWith(x_)&&a.push(m.slice(x_.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 pT=d(()=>{Ct();s(mT,"tryParseEmbeddedCanonicalFromCodexRules");});async function dT(e,t,r){let n=[],o=join(e,So);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 w(t);let h=f.root===!0?f:{...f,root:!1},R=await V(u,h,g);await L(u,R),n.push({fromTool:Dt,fromPath:c,toPath:`${Os}/${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 w(t);let f=mT(m);if(f){let g=await V(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await L(u,g);}else {let g=await V(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await L(u,g);}n.push({fromTool:Dt,fromPath:c,toPath:`${Os}/${p}`,feature:"rules"});}}catch{}return n}var fT=d(()=>{A();B();fe();Ct();pT();s(dT,"importCodexNonRootRuleFiles");});async function hT(e,t,r,n,o){let i=join(e,Gx),a=join(e,bs),l=join(e,jx),c=join(e,Wa),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,Os),R=m??p??u??f;if(R!==null){await w(h);let _=join(h,"_root.md"),S=g===a||g===c||g===l?Yx(R):R,I=await Ro({content:S,projectRoot:e,rulesDir:Os,sourcePath:g,fromTool:"codex-cli",normalize:r});t.push(...I.results);let b=r(g===a||g===c||g===l?n(I.rootContent,g,_):I.rootContent,g,_),{frontmatter:P,body:T}=x(b),W=P.root===true?P:{...P,root:true},$=await V(_,W,T);await L(_,$),t.push({fromTool:"codex-cli",fromPath:g,toPath:`${Os}/_root.md`,feature:"rules"});}await Z2(e,h,t,r),t.push(...await dT(e,h,r)),o!=="global"&&t.push(...await ke({srcDir:e,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:_,normalizeTo:S})=>{let I=relative(e,dirname(_)).replace(/\\/g,"/"),b=basename(_),P=b==="AGENTS.override.md";if(!I||I==="."||!P&&b!=="AGENTS.md")return null;let T=I.replace(/\//g,"-");if(!wd(I))return await $n(join(h,`${T}.md`)),null;let W=join(h,`${T}.md`),{frontmatter:$,body:Y}=x(S(W));return {destPath:W,toPath:`${Os}/${T}.md`,feature:"rules",content:await V(W,{...$,root:false,globs:[`${I}/**`],...P?{codex_instruction:"override"}:{}},Y)}},"mapEntry")}));}async function Z2(e,t,r,n){try{let i=(await U(join(e,Ha))).filter(l=>l.endsWith(".md")),a=join(e,Ha);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 w(t);let g=u.root===!0?u:{...u,root:!1},h=await V(p,g,f);await L(p,h),r.push({fromTool:Dt,fromPath:l,toPath:`${Os}/${c}`,feature:"rules"});}}catch{}}var yT=d(()=>{A();B();fe();Lc();Yt();Vm();Ct();fT();df();s(hT,"importCodexRules");s(Z2,"importInstructionMirrors");});async function RT(e,t){let r=t?.scope??"project",n=[],o=await z(Dt,e,r),i=await z("windsurf",e,r);return await hT(e,n,o,i,r),await iT(e,n,o),await lT(e,n,o),await oT(e,n),n}var _T=d(()=>{ge();Ct();sT();aT();cT();yT();s(RT,"importFromCodex");});function ST(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:Dt,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var kT=d(()=>{Ct();s(ST,"lintRules");});function IT(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(v(".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(v(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return t}var LT=d(()=>{Oe();s(IT,"lintMcp");});function CT(e){return jp(e)}var ET=d(()=>{df();s(CT,"codexAdvisoryInstructionPath");});var tX,rX,nX,oX,bT,OT=d(()=>{nT();Ct();_T();kT();LT();Ce();Ml();ET();we();tX={name:"codex-cli",primaryRootInstructionPath:bs,generateRules:N_,generateCommands:M_,generateAgents:$_,generateSkills:F_,generateMcp:G_,importFrom:RT},rX={rootInstructionPath:bs,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${So}/${t}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(e,t){return CT(t)},commandPath(e,t){return Fl(t,"codex-cli")?`${_o}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${za}/${e}.toml`}}},nX={rootInstructionPath:Wa,renderPrimaryRootInstruction:v_,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${So}/${t}.rules`]},skillDir:_o,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Wa,".codex/config.toml"]},rewriteGeneratedPath(e){return e===bs?Wa:e.startsWith(`${Ha}/`)?null:e},paths:{rulePath(e,t){return t.codexEmit==="execution"?`${So}/${e}.rules`:Wa},commandPath(e,t){return Fl(t,"codex-cli")?`${_o}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${za}/${e}.toml`}}},oX={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},bT={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:tX,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Codex config found (codex.md or AGENTS.md).",supportsConversion:{commands:true},lintRules:ST,lint:{mcp:IT},project:rX,globalSupport:{capabilities:oX,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:nX},buildImportPaths:TR,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"],nativeInstall:{pickPaths:[{prefix:".codex",feature:"rules",strategy:{kind:"basename",suffix:".md"}}]},excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function iX(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 AT(e){return `${Jn}/${e}.md`}function xT(e){let t={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"],D(t,e.body.trim()||"")}function TT(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:iX(e["x-agentsmesh-allowed-tools"])}}function PT(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"],D(r,t.trim()||"")}var hf=d(()=>{B();Yn();s(iX,"toStringArray");s(AT,"continueCommandRulePath");s(xT,"serializeCommandRule");s(TT,"parseCommandRuleFrontmatter");s(PT,"serializeImportedCommand");});function DT(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),t.push({path:rs,content:D(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:`${cn}/${o}.md`,content:D(i,n.body.trim()||"")});}return t}function NT(e){return e.commands.map(t=>({path:`${Jn}/${t.name}.md`,content:xT(t)}))}function vT(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Gd,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function FT(e){return e.agents.map(t=>({path:`${Qt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function MT(e){return ie(e,Qt)}var $T=d(()=>{se();ue();B();hf();Yn();s(DT,"generateRules");s(NT,"generateCommands");s(vT,"generateMcp");s(FT,"generateAgents");s(MT,"generateSkills");});function mX(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:qs(l.args),env:jn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function pX(e,t){let r=(await U(join(e,PR))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await k(i);a&&(Object.assign(n,mX(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Je(e,NR,n);for(let i of o)t.push({fromTool:Jl,fromPath:i,toPath:NR,feature:"mcp"});}}async function jT(e){let t=[],r=await z(Jl,e);return t.push(...await q(yf,e,"project",{normalize:r})),await oe(e,Qt,Jl,t,r),await pX(e,t),t}var UT=d(()=>{ge();A();se();be();nn();Sr();Yn();B_();s(mX,"readMcpServers");s(pX,"importMcp");s(jT,"importFromContinue");});function uX(e){return e==="general.md"||e==="_root.md"}var BT,KT,WT=d(()=>{B();fe();hf();Yn();s(uX,"isContinueRootRulePath");BT=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=uX(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:`${jd}/${o}`,content:await V(i,c,l)}},"continueRuleMapper"),KT=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=join(n,t),{frontmatter:i,body:a}=x(r(o)),l=TT(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 Se(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},x(PT(l,a)).body);return {destPath:u,toPath:`${Ud}/${p}`,content:f}},"continueCommandMapper");});function HT(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Jl}))}var zT=d(()=>{Ie();Yn();s(HT,"lintRules");});function VT(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var JT=d(()=>{Oe();s(VT,"lintCommands");});function hX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var YT,XT=d(()=>{A();Yn();s(hX,"computeStatus");YT=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,up));return [{target:"continue",path:up,content:m,currentContent:p??void 0,status:hX(p,m)}]},"generateContinueGlobalConfig");});function RX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var qT,QT=d(()=>{A();Yn();XT();s(RX,"computeStatus");qT=s(async(e,t,r,n)=>{let o=await YT(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,Yl));return [...o,{target:"continue",path:Yl,content:a,currentContent:l??void 0,status:RX(l,a)}]},"generateContinueScopeExtras");});var _X,SX,kX,IX,yf,B_=d(()=>{ue();$T();Yn();UT();WT();zT();JT();hf();Ce();QT();_X={name:"continue",primaryRootInstructionPath:rs,generateRules:DT,generateCommands:NT,generateAgents:FT,generateSkills:MT,generateMcp:vT,importFrom:jT},SX={rootInstructionPath:rs,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(e,t){return `${cn}/${e}.md`},commandPath(e,t){return AT(e)},agentPath(e){return `${Qt}/${K(e)}/SKILL.md`}}},kX={rootInstructionPath:rs,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Yl]}],skillDir:Qt,managedOutputs:{dirs:[cn,Jn,Qt,".agents/skills"],files:[Gd,Yl,up]},mirrorGlobalPath(e,t){return e.startsWith(`${Qt}/`)?`.agents/skills/${e.slice(Qt.length+1)}`:null},paths:{rulePath(e,t){return `${cn}/${e}.md`},commandPath(e,t){return `${Jn}/${e}.md`},agentPath(e){return `${Qt}/${K(e)}/SKILL.md`}}},IX={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},yf={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:_X,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"none",skills:"embedded",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:HT,lint:{commands:VT},project:SX,globalSupport:{capabilities:IX,detectionPaths:[cn,Jn,".continue/mcpServers",Qt],layout:kX,scopeExtras:qT},importer:{rules:{feature:"rules",mode:"directory",source:{project:[cn],global:[cn]},canonicalDir:jd,extensions:[".md"],map:BT},commands:{feature:"commands",mode:"directory",source:{project:[Jn],global:[Jn]},canonicalDir:Ud,extensions:[".md"],map:KT}},buildImportPaths:vR,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 As,Va,ZT,Ja,Oi,ko,Io,Ya,Xa,Rf,_f,eP,W_,tP,Ai,Oc,xs,Ac,qa,H_,z_,Kr=d(()=>{As="copilot",Va=".github/copilot-instructions.md",ZT=".github/copilot",Ja=".github/instructions",Oi=".github/prompts",ko=".github/hooks",Io=".github/skills",Ya=".github/agents",Xa=".agentsmesh/rules",Rf=".agentsmesh/commands",_f=".agentsmesh/agents",eP=".agentsmesh/skills",W_=".agentsmesh/hooks.yaml",tP=".github/copilot-hooks",Ai=".copilot/copilot-instructions.md",Oc=".copilot/agents",xs=".copilot/skills",Ac=".copilot/prompts",qa=".copilot/AGENTS.md",H_=".claude/skills",z_=".agents/skills";});function rP(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 Sf(e){return `${Oi}/${e}.prompt.md`}function nP(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"],D(t,e.body.trim()||"")}function oP(e,t){let n=((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||basename(t,".prompt.md")).trim(),o=rP(e["x-agentsmesh-allowed-tools"]),i=o.length>0?o:rP(e.tools);return {name:n,description:typeof e.description=="string"?e.description:"",allowedTools:i}}var kf=d(()=>{B();Kr();s(rP,"toStringArray");s(Sf,"commandPromptPath");s(nP,"serializeCommandPrompt");s(oP,"parseCommandPromptFrontmatter");});function If(e){return Go(e)}var V_=d(()=>{qr();s(If,"hasHookCommand");});function EX(e){let t=basename(e,".md");return t==="_root"?"root":t}function wX(e){switch(e){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function sP(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 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}
111
111
 
112
112
  ${o}`):t.push(o);}return t.join(`
113
113
 
114
- `)}function iP(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:Va,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=EX(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=D(i,n.body.trim()||"");r.push({path:`${Ja}/${o}.instructions.md`,content:a});}return r}function aP(e){return e.commands.map(t=>({path:Sf(t.name),content:nP(t)}))}function lP(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=D(n,r.body.trim()||"");t.push({path:`${Io}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Io}/${r.name}/${a}`,content:i.content});}}return t}function cP(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=D(r,t.body.trim()||"");return {path:`${Ya}/${t.name}.agent.md`,content:n}})}function mP(e){if(!e.hooks)return [];let t=Object.fromEntries(Object.entries(e.hooks).flatMap(([r,n])=>{let o=wX(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&If(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:`${ko}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:t},null,2)}]}var pP=d(()=>{B();Kr();kf();V_();s(EX,"ruleSlug");s(wX,"mapHookEvent");s(sP,"renderCopilotGlobalInstructions");s(iP,"generateRules");s(aP,"generateCommands");s(lP,"generateSkills");s(cP,"generateAgents");s(mP,"generateHooks");});function OX(e){switch(e){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function AX(e){return typeof e!="string"?"*":e.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function fP(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 gP(e,t){let r=join(e,ko),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 R=OX(g);if(!(!R||!Array.isArray(h)))for(let _ of h){if(!_||typeof _!="object")continue;let S=_,I=typeof S.bash=="string"?S.bash:"";if(!I)continue;let b=join(r,I.replace(/^\.\//,"")),P=await k(b);if(!P)continue;let T=fP(P);T&&(i[R]||(i[R]=[]),i[R].push({matcher:AX(S.comment),command:T,type:"command"}));}}}let a=join(e,tP),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:fP(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(e,W_);await w(dirname(m)),await L(m,stringify(i)),t.push({fromTool:As,fromPath:join(e,ko),toPath:W_,feature:"hooks"});}var hP=d(()=>{A();Kr();s(OX,"mapCopilotHookEvent");s(AX,"extractMatcher");s(fP,"extractWrapperCommand");s(gP,"importHooks");});async function yP(e,t,r,n=Io){let o=join(e,n),i=await Mp(o),a={projectRoot:e,destCanonicalSkillsDir:eP,targetName:As,normalize:r,results:t};for(let[l,c]of i)await Fp(l,c,a);}var RP=d(()=>{bc();Kr();s(yP,"importSkills");});async function _P(e,t={}){let r=t.scope??"project",n=[],o=await z(As,e,r);return n.push(...await q(Lf,e,r,{normalize:o})),await yP(e,n,o,r==="global"?xs:Io),r==="project"&&await gP(e,n),n}var SP=d(()=>{ge();be();Kr();hP();RP();J_();s(_P,"importFromCopilot");});async function Cf(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 X_=d(()=>{A();s(Cf,"skillNamesFromNativeSkillDir");});async function kP(e,t){let r=join(e,...t.split("/"));if(t.startsWith(Oi)){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 Cf(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 IP=d(()=>{A();Kr();X_();s(kP,"inferCopilotPickFromPath");});function LP(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var CP,EP,wP,bP,OP=d(()=>{B();fe();Sr();kf();Kr();s(LP,"pruneUndefined");CP=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=Wo(i.globs),c=LP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Xa}/${n}`,content:await V(o,c,a)}},"copilotLegacyRuleMapper"),EP=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=Wo(i.applyTo!==void 0?i.applyTo:i.globs),c=LP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Xa}/${n}`,content:await V(o,c,a)}},"copilotNewRuleMapper"),wP=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=oP(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:`${Rf}/${u}`,content:await Se(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"),bP=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:`${_f}/${n}`,content:await et(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function AP(e,t,r,n){let i=X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:As})),a=e.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:As,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var xP=d(()=>{Ie();Kr();s(AP,"lintRules");});function TP(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function PP(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=>Zs(i,"copilot",t,{unsupportedBy:"Copilot hooks"}));return Object.values(e.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(v(".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 DP=d(()=>{Oe();s(TP,"lintCommands");s(PP,"lintHooks");});function MX(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function $X(e,t){let r=relative(e,t).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function GX(e,t){let r=e.match(vP);if(!r?.groups)return e;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${t}"${o}`}async function jX(e,t){let n=t.match(vP)?.groups?.path;if(!n)return null;let o=join(e,n),i=await k(o);if(i===null)return null;let a=$X(e,o);return a?{assetPath:`${ko}/scripts/${a}`,content:i,rewrittenCommand:GX(t,a)}:null}function UX(e,t){return `${ko}/scripts/${MX(e)}-${t}.sh`}function NP(e){return e.replace(/[\r\n]+/g," ")}function BX(e,t){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${NP(t)}`,`# agentsmesh-command: ${NP(e)}`,"set -eu",e,""].join(`
115
- `)}async function FP(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(!If(c))continue;let m=UX(i,l),p=c.command,u=await jX(e,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=BX(p,c.matcher).replace(`set -eu
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
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 vP,MP=d(()=>{A();Kr();V_();vP=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(MX,"safePhaseName");s($X,"toRepoRelative");s(GX,"rewriteWrapperCommand");s(jX,"buildAssetOutput");s(UX,"wrapperPath");s(NP,"safeShellLine");s(BX,"buildWrapper");s(FP,"addHookScriptAssets");});function WX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var $P,GP=d(()=>{A();Kr();s(WX,"computeStatus");$P=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,qa));return [{target:"copilot",path:qa,content:i,currentContent:a??void 0,status:WX(a,i)}]},"generateCopilotGlobalExtras");});var zX,VX,JX,YX,Lf,J_=d(()=>{pP();Kr();SP();IP();OP();xP();Ce();kf();DP();MP();GP();zX={name:"copilot",primaryRootInstructionPath:Va,generateRules:iP,generateCommands:aP,generateAgents:cP,generateSkills:lP,generateHooks:mP,importFrom:_P},VX={rootInstructionPath:Va,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 [`${Ja}/${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"]},paths:{rulePath(e,t){return `${Ja}/${e}.instructions.md`},commandPath(e,t){return Sf(e)},agentPath(e,t){return `${Ya}/${e}.agent.md`}}},JX={rootInstructionPath:Ai,renderPrimaryRootInstruction:sP,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[qa]}],skillDir:xs,managedOutputs:{dirs:[Oc,xs,Ac,z_,H_],files:[Ai,qa]},rewriteGeneratedPath(e){return e===Va?Ai:e.startsWith(`${Ja}/`)?Ai:e.startsWith(`${Oi}/`)?e.replace(`${Oi}/`,`${Ac}/`):e.startsWith(`${Ya}/`)?e.replace(`${Ya}/`,`${Oc}/`):e.startsWith(`${Io}/`)?e.replace(`${Io}/`,`${xs}/`):e.startsWith(`${ko}/`)?null:e},mirrorGlobalPath(e,t){if(e.startsWith(`${xs}/`)&&!t.includes("codex-cli")){let r=e.slice(xs.length+1);return [`.agents/skills/${r}`,`${H_}/${r}`]}return null},paths:{rulePath(e,t){return Ai},commandPath(e,t){return `${Ac}/${e}.prompt.md`},agentPath(e,t){return `${Oc}/${e}.agent.md`}}},YX={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Lf={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:zX,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"partial",ignore:"none",permissions:"none"},emptyImportMessage:"No Copilot config found (.github/copilot-instructions.md, .github/copilot or .github/instructions, .github/prompts, .github/skills, .github/agents, or .github/hooks).",lintRules:AP,lint:{commands:TP,hooks:PP},postProcessHookOutputs:s(async(e,t,r)=>FP(e,t,[...r]),"postProcessHookOutputs"),project:VX,globalSupport:{capabilities:YX,detectionPaths:[Ai,qa,Oc,xs,Ac,z_],layout:JX,scopeExtras:$P},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Va],global:[Ai]},canonicalDir:Xa,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ZT]},canonicalDir:Xa,extensions:[".instructions.md"],map:CP},{feature:"rules",mode:"directory",source:{project:[Ja]},canonicalDir:Xa,extensions:[".instructions.md",".md"],map:EP}],commands:{feature:"commands",mode:"directory",source:{project:[Oi],global:[Ac]},canonicalDir:Rf,extensions:[".prompt.md"],map:wP},agents:{feature:"agents",mode:"directory",source:{project:[Ya],global:[Oc]},canonicalDir:_f,extensions:[".agent.md"],map:bP}},buildImportPaths:FR,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"],nativeInstall:{inferPick:kP}};});function Ef(e){return {$schema:"https://charm.land/crush.json",...e}}var jP=d(()=>{s(Ef,"buildCrushConfigJson");});function UP(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Er)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:wr,content:o}]:[]}function BP(e){return ie(e,lt)}function KP(e){return e.commands.map(t=>({path:`${lt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function WP(e){return e.agents.map(t=>({path:`${lt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function HP(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Ef({mcp:e.mcp.mcpServers});return [{path:Zt,content:JSON.stringify(t,null,2)}]}function zP(e){if(!e.hooks)return [];let t=XX(e);if(Object.keys(t).length===0)return [];let r=Ef({hooks:t});return [{path:Zt,content:JSON.stringify(r,null,2)}]}function VP(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=Ef({permissions:o});return [{path:Zt,content:JSON.stringify(i,null,2)}]}function JP(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
119
- `);return [{path:ns,content:t}]}function XX(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 YP=d(()=>{se();Ue();ue();we();Xl();jP();s(UP,"generateRules");s(BP,"generateSkills");s(KP,"generateCommands");s(WP,"generateAgents");s(HP,"generateMcp");s(zP,"generateHooks");s(VP,"generatePermissions");s(JP,"generateIgnore");s(XX,"buildCrushHooksFromCanonical");});async function qP(e,t={}){let r=t.scope??"project",n=[],o=await z(Er,e,r);return n.push(...await q(wf,e,r,{normalize:o})),await oe(e,r==="global"?er:lt,Er,n,o),await qX(e,n),n}async function qX(e,t){let r=join(e,Zt),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=QX(i.mcp);if(Object.keys(a).length>0){let c=zd,m=join(e,c);await w(dirname(m)),await L(m,JSON.stringify({mcpServers:a},null,2)),t.push({fromTool:Er,fromPath:r,toPath:c,feature:"mcp"});}let l=ZX(i.hooks);if(l!==null&&Object.keys(l).length>0){let c=".agentsmesh/hooks.yaml",m=join(e,c);await w(dirname(m));let p=eq(l);await L(m,p),t.push({fromTool:Er,fromPath:r,toPath:c,feature:"hooks"});}}function QX(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:qs(o.args),env:jn(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:jn(o.headers),env:jn(o.env),...i!==void 0?{description:i}:{}});}return t}function ZX(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 eq(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 QP=d(()=>{ge();se();be();A();Sr();Q_();Xl();s(qP,"importFromCrush");s(qX,"importCrushConfigJson");s(QX,"parseCrushMcpServers");s(ZX,"parseCrushHooks");s(eq,"serializeHooksYaml");});function ZP(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Er}))}var eD=d(()=>{Ie();Xl();s(ZP,"lintRules");});function tD(e){return e.commands.length===0?[]:[v(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var rD=d(()=>{Oe();s(tD,"lintCommands");});function Z_(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}function oD(e,t){let r=Z_(e),n=rq.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 sD(e,t){let r=Z_(e),n=nq.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 iD(e,t){let r=Z_(e),n=tq.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 nD,tq,rq,nq,bf=d(()=>{nD=[".claude/settings.json",".gemini/settings.json"],tq=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(),rq=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(),nq=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(Z_,"parseJsonObject");s(oD,"mergeSettingsJson");s(sD,"mergeGeminiSettingsJson");s(iD,"mergeCrushConfigJson");});var oq,sq,iq,aq,lq,wf,Q_=d(()=>{we();ue();YP();pt();QP();eD();rD();Ce();bf();Xl();oq={name:Er,primaryRootInstructionPath:wr,generateRules:UP,generateCommands:KP,generateAgents:WP,generateSkills:BP,generateMcp:HP,generateHooks:zP,generatePermissions:VP,generateIgnore:JP,importFrom:qP},sq={rootInstructionPath:wr,skillDir:lt,managedOutputs:{dirs:[lt],files:[wr,Zt,ns]},paths:{rulePath(e){return wr},commandPath(e){return `${lt}/${J(e)}/SKILL.md`},agentPath(e){return `${lt}/${K(e)}/SKILL.md`}}},iq={rootInstructionPath:ga,skillDir:er,managedOutputs:{dirs:[er],files:[ga,Kd]},rewriteGeneratedPath(e){return e===wr?ga:e===Zt?Kd:e===ns?null:e.startsWith(`${lt}/`)?e.replace(`${lt}/`,`${er}/`):e},mirrorGlobalPath(e,t){return de(e,er,t)},paths:{rulePath(e){return ga},commandPath(e){return `${er}/${J(e)}/SKILL.md`},agentPath(e){return `${er}/${K(e)}/SKILL.md`}}},aq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},lq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},wf={id:Er,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:oq,capabilities:aq,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:ZP,lint:{commands:tD},supportsConversion:{commands:true,agents:true},project:sq,globalSupport:{capabilities:lq,detectionPaths:[ga,Kd,er],layout:iq},mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Zt?iD(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[wr],global:[ga]},canonicalDir:Wd,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ns]},canonicalDir:".agentsmesh",canonicalFilename:Hd}},buildImportPaths:MR,detectionPaths:[wr,Zt,lt,ns],sharedArtifacts:{".crush/skills/":"owner"}};});function eS(e){let t=[],r=e.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";t.push({path:si,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=D(a,i);t.push({path:os,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=D(c,i.body.trim()||"");t.push({path:`${br}/${a}.mdc`,content:m});}let o=aD(e);return o.trim()&&t.push({path:pn,content:o}),t}function aD(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(ae(t.body,r)):r.length>0&&n.push(ae("",r)),n.filter(Boolean).join(`
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(`
121
121
 
122
- `)}var lD=d(()=>{B();Ue();Ye();s(eS,"generateRules");s(aD,"renderCursorGlobalUserRules");});function tS(e){return e.commands.map(t=>({path:`${Or}/${t.name}.md`,content:t.body.trim()||""}))}var cD=d(()=>{Ye();s(tS,"generateCommands");});function rS(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:tr,content:t}]}var mD=d(()=>{Ye();s(rS,"generateMcp");});function nS(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=D(n,r.body.trim()||"");t.push({path:`${kt}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${kt}/${r.name}/${a}`,content:i.content});}}return t}var pD=d(()=>{B();Ye();s(nS,"generateSkills");});function oS(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=D(r,t.body.trim()||"");return {path:`${Ar}/${t.name}.md`,content:n}})}var uD=d(()=>{B();Ye();s(oS,"generateAgents");});function sS(e){return []}var dD=d(()=>{s(sS,"generatePermissions");});function mq(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Fn(i))continue;let a=Ze(i),l=At(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 iS(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=mq(e.hooks);if(Object.keys(t).length===0)return [];let r=JSON.stringify({version:1,hooks:t},null,2);return [{path:Xn,content:r}]}var fD=d(()=>{qr();Ye();s(mq,"toCursorHooks");s(iS,"generateHooks");});function aS(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
123
- `);return [{path:mn,content:t}]}var gD=d(()=>{Ye();s(aS,"generateIgnore");});var hD=d(()=>{lD();cD();mD();pD();uD();dD();fD();gD();});var yD=d(()=>{hD();});async function Af(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=pq(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${qn}/${l?"_root.md":o}`,feature:"rules",content:await V(c,u,p)}}function pq(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 RD(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${ii}/${e}`,feature:"commands",content:await Se(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 _D(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n));return {destPath:n,toPath:`${ai}/${e}`,feature:"agents",content:await et(n,o,i)}}var lS=d(()=>{B();fe();Sr();Ye();s(Af,"mapCursorRuleFile");s(pq,"deriveCursorTrigger");s(RD,"mapCursorCommandFile");s(_D,"mapCursorAgentFile");});async function xc(e){let t=join(e.projectRoot,qn);await w(t);let r=join(t,"_root.md"),n=await Ro({content:e.content,projectRoot:e.projectRoot,rulesDir:qn,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 V(r,l,a);return await L(r,c),e.results.push({fromTool:"cursor",fromPath:e.sourcePath,toPath:`${qn}/_root.md`,feature:"rules"}),true}var cS=d(()=>{A();B();Lc();fe();Ye();s(xc,"importCursorRootFile");});async function kD(e,t,r){let n=join(e,qn),o=false,i=join(e,br);if(t.push(...await ke({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 Af(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(e,si),l=await k(a);l!==null&&(o=await xc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(e,gb),l=await k(a);l!==null&&await xc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r});}}var ID=d(()=>{A();B();Yt();lS();cS();Ye();s(kD,"importCursorRules");});function LD(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(!Fn({...m,type:p}))continue;let u=p==="prompt"?At(m)||Ze(m):Ze(m)||At(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 Pf(e,t){let r=false,n=join(e,Xn),o=await k(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=LD(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(e,dp);await w(dirname(g)),await L(g,f),t.push({fromTool:"cursor",fromPath:n,toPath:dp,feature:"hooks"}),r=!0;}}}catch{}let i=join(e,Vd),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,GR);await w(dirname(h)),await L(h,g),t.push({fromTool:"cursor",fromPath:i,toPath:GR,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=LD(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(e,dp);await w(dirname(f)),await L(f,u),t.push({fromTool:"cursor",fromPath:i,toPath:dp,feature:"hooks"});}}}async function Df(e,t){let r=[{path:join(e,mn),label:mn},{path:join(e,$R),label:$R}],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,jR);await w(dirname(i)),await L(i,n.join(`
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(`
124
124
  `)+`
125
- `),t.push({fromTool:"cursor",fromPath:join(e,o[0]),toPath:jR,feature:"ignore"});}var pS=d(()=>{qr();A();Ye();s(LD,"cursorHooksToCanonical");s(Pf,"importSettings");s(Df,"importIgnore");});async function Nf(e,t,r,n=kt){let o=join(e,n),i=await Mp(o),a={projectRoot:e,destCanonicalSkillsDir:hb,targetName:"cursor",normalize:r,results:t};for(let[p,u]of i)await Fp(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 Ix(f,p,u,a);}}var uS=d(()=>{A();bc();Ye();s(Nf,"importSkills");});async function CD(e){if(await j(join(e,br)))return true;let t=[join(e,pn),join(e,ql),join(e,tr),join(e,Xn),join(e,mn),join(e,kt),join(e,Ar),join(e,Or)];for(let i of t){let a=await k(i);if(a!==null&&a.trim()!=="")return true}return !!((await U(join(e,kt))).some(i=>i.endsWith(".md"))||(await U(join(e,Ar))).some(i=>i.endsWith(".md"))||(await U(join(e,Or))).some(i=>i.endsWith(".md")))}async function ED(e,t,r){let n=join(e,qn),o=false,i=join(e,br),a=await ke({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:Tc,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 Af(c,n,m,()=>{o=true;})},"mapEntry")});return t.push(...a),o}async function wD(e,t,r){let n=join(e,ql),o=await k(n);return o===null||o.trim()===""?false:xc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function bD(e,t,r){let n=join(e,pn),o=await k(n);return o===null||o.trim()===""?false:xc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function OD(e,t){let r=join(e,tr),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,Ql);await w(dirname(i)),await L(i,n),t.push({fromTool:Tc,fromPath:r,toPath:Ql,feature:"mcp"});}async function AD(e,t,r){let n=join(e,Ar),o=join(e,ai);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>_D(i,o,a),"mapEntry")}));}async function xD(e,t,r){let n=join(e,Or),o=join(e,ii);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>RD(i,o,a),"mapEntry")}));}var Tc,TD=d(()=>{A();B();Yt();Ye();cS();lS();Tc="cursor";s(CD,"hasGlobalCursorArtifacts");s(ED,"importGlobalCursorRulesFromDir");s(wD,"importGlobalUserRules");s(bD,"importGlobalDotCursorAgents");s(OD,"importGlobalMcp");s(AD,"importGlobalAgents");s(xD,"importGlobalCommands");});async function PD(e){if(!await CD(e))return [];let t=[],r=await z(Tc,e,"global"),n=await ED(e,t,r);return n||(n=await wD(e,t,r)),n||await bD(e,t,r),await OD(e,t),await Nf(e,t,r,kt),await AD(e,t,r),await xD(e,t,r),await Pf(e,t),await Df(e,t),t}var DD=d(()=>{ge();Ye();uS();pS();TD();s(PD,"importFromCursorGlobalExports");});async function hq(e,t){let r=join(e,tr),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 Je(e,Ql,i),t.push({fromTool:"cursor",fromPath:r,toPath:Ql,feature:"mcp"});}async function ND(e,t={}){if(t.scope==="global")return PD(e);let r=[],n=await z("cursor",e);return await kD(e,r,n),r.push(...await q(vf,e,"project",{normalize:n})),await Nf(e,r,n),await hq(e,r),await Pf(e,r),await Df(e,r),r}var vD=d(()=>{ge();A();be();nn();ID();pS();uS();DD();Ye();dS();s(hq,"importMcp");s(ND,"importFromCursor");});var MD,$D,GD=d(()=>{B();fe();Sr();Ye();MD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${ii}/${e}`,content:await Se(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"),$D=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${ai}/${e}`,content:await et(n,o,i)}},"cursorAgentMapper");});function jD(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:fb}))}var UD=d(()=>{Ie();Ye();s(jD,"lintRules");});function BD(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function KD(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(v(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return t}function WD(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?[v(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var HD=d(()=>{Oe();s(BD,"lintCommands");s(KD,"lintMcp");s(WD,"lintPermissions");});var yq,Rq,_q,Sq,vf,dS=d(()=>{yD();Ye();pt();vD();GD();UD();Ce();HD();yq={name:"cursor",primaryRootInstructionPath:os,generateRules:eS,generateCommands:tS,generateAgents:oS,generateSkills:nS,generateMcp:rS,generatePermissions:sS,generateHooks:iS,generateIgnore:aS,importFrom:ND},Rq={rootInstructionPath:os,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[si,pn]}],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`}}},_q={rootInstructionPath:os,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[si,pn]}],skillDir:kt,managedOutputs:{dirs:[br,Or,Ar,kt],files:[os,pn,tr,Xn,mn,ql]},rewriteGeneratedPath(e){return e===si?null:e===pn||e===os||e.startsWith(`${br}/`)||e.startsWith(`${Or}/`)||e.startsWith(`${Ar}/`)||e.startsWith(`${kt}/`)||e===tr||e===Xn||e===mn?e:e===Vd?null:e},mirrorGlobalPath(e,t){return de(e,kt,t)},paths:{rulePath(e,t){return `${br}/${e}.mdc`},commandPath(e,t){return `${Or}/${e}.md`},agentPath(e,t){return `${Ar}/${e}.md`}}},Sq={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},vf={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:yq,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:jD,lint:{commands:BD,mcp:KD,permissions:WD},project:Rq,globalSupport:{capabilities:Sq,detectionPaths:[os,pn,tr,Xn,mn,kt,Ar,Or,ql],layout:_q},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Or]},canonicalDir:ii,extensions:[".md"],map:MD},agents:{feature:"agents",mode:"directory",source:{project:[Ar]},canonicalDir:ai,extensions:[".md"],map:$D}},buildImportPaths:UR,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 zD(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=ae(n,r);return o?[{path:xr,content:o}]:[]}function VD(e){return ie(e,It)}function JD(e){return e.commands.map(t=>({path:`${It}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function YD(e){return e.agents.map(t=>({path:`${It}/${K(t.name)}/SKILL.md`,content:De(t)}))}function XD(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}]}var qD=d(()=>{se();Ue();ue();we();Zl();s(zD,"generateRules");s(VD,"generateSkills");s(JD,"generateCommands");s(YD,"generateAgents");s(XD,"generateMcp");});async function QD(e,t={}){let r=t.scope??"project",n=[],o=await z(Qn,e,r);return n.push(...await q(Ff,e,r,{normalize:o})),await oe(e,r==="global"?un:It,Qn,n,o),n}var ZD=d(()=>{ge();se();be();Zl();fS();s(QD,"importFromDeepagentsCli");});function eN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qn}))}var tN=d(()=>{Ie();Zl();s(eN,"lintRules");});function rN(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","deepagents-cli","Deep Agents CLI hooks are global-only (~/.deepagents/hooks.json); project-level canonical hooks are not projected.")]:[]:[]}function nN(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?[]:[v(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function oN(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var sN=d(()=>{Oe();s(rN,"lintHooks");s(nN,"lintPermissions");s(oN,"lintIgnore");});var kq,Iq,Lq,Cq,Eq,Ff,fS=d(()=>{we();ue();qD();ZD();tN();sN();Ce();Zl();kq={name:Qn,primaryRootInstructionPath:xr,generateRules:zD,generateCommands:JD,generateAgents:YD,generateSkills:VD,generateMcp:XD,importFrom:QD},Iq={rootInstructionPath:xr,skillDir:It,managedOutputs:{dirs:[It],files:[xr,ss]},paths:{rulePath(e){return xr},commandPath(e){return `${It}/${J(e)}/SKILL.md`},agentPath(e){return `${It}/${K(e)}/SKILL.md`}}},Lq={rootInstructionPath:is,skillDir:un,managedOutputs:{dirs:[un],files:[is,ha]},rewriteGeneratedPath(e){return e===xr?is:e===ss?ha:e.startsWith(`${It}/`)?e.replace(`${It}/`,`${un}/`):e},paths:{rulePath(e){return is},commandPath(e){return `${un}/${J(e)}/SKILL.md`},agentPath(e){return `${un}/${K(e)}/SKILL.md`}}},Cq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Eq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ff={id:Qn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:kq,capabilities:Cq,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:eN,lint:{hooks:rN,permissions:nN,ignore:oN},supportsConversion:{commands:true,agents:true},project:Iq,globalSupport:{capabilities:Eq,detectionPaths:[is,ha],layout:Lq},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[xr],global:[is]},canonicalDir:Rb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ss],global:[ha]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:BR,detectionPaths:[xr,ss]};});function iN(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),D(t,e.body.trim()||"")}var aN=d(()=>{B();s(iN,"serializeDroid");});function lN(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Tr)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:Pr,content:o}]:[]}function cN(e){return ie(e,jt)}function mN(e){return e.commands.map(t=>({path:`${jt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function pN(e){return e.agents.map(t=>({path:`${Zn}/${t.name}.md`,content:iN(t)}))}function uN(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:eo,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var dN=d(()=>{se();Ue();we();aN();Ra();s(lN,"generateRules");s(cN,"generateSkills");s(mN,"generateCommands");s(pN,"generateAgents");s(uN,"generateMcp");});async function gN(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 Je(e,fN,l),r.push({fromTool:Tr,fromPath:t,toPath:fN,feature:"mcp"}));}var fN,hN=d(()=>{A();nn();Ra();fN=".agentsmesh/mcp.json";s(gN,"importFactoryDroidMcp");});async function yN(e,t={}){let r=t.scope??"project",n=[],o=await z(Tr,e,r);return n.push(...await q(Mf,e,r,{normalize:o})),await oe(e,r==="global"?to:jt,Tr,n,o),await gN(e,r==="global"?li:eo,n),n}var RN=d(()=>{ge();se();be();hN();Ra();gS();s(yN,"importFromFactoryDroid");});function _N(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Tr}))}var SN=d(()=>{Ie();Ra();s(_N,"lintRules");});function kN(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","factory-droid","Factory Droid hooks are configured via settings.json events (PreToolUse/PostToolUse), not standalone files; canonical hooks are not projected.")]:[]:[]}function IN(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?[]:[v(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function LN(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var CN=d(()=>{Oe();s(kN,"lintHooks");s(IN,"lintPermissions");s(LN,"lintIgnore");});var bq,Oq,Aq,EN,Mf,gS=d(()=>{dN();Ra();RN();SN();CN();Ce();we();bq={name:Tr,primaryRootInstructionPath:Pr,generateRules:lN,generateCommands:mN,generateAgents:pN,generateSkills:cN,generateMcp:uN,importFrom:yN},Oq={rootInstructionPath:Pr,skillDir:jt,managedOutputs:{dirs:[jt,Zn],files:[Pr,eo]},paths:{rulePath(e){return Pr},commandPath(e){return `${jt}/${J(e)}/SKILL.md`},agentPath(e){return `${Zn}/${e}.md`}}},Aq={rootInstructionPath:as,skillDir:to,managedOutputs:{dirs:[to,ya],files:[as,li]},rewriteGeneratedPath(e){return e===Pr?as:e===eo?li:e.startsWith(`${jt}/`)?e.replace(`${jt}/`,`${to}/`):e.startsWith(`${Zn}/`)?e.replace(`${Zn}/`,`${ya}/`):e},paths:{rulePath(e){return as},commandPath(e){return `${to}/${J(e)}/SKILL.md`},agentPath(e){return `${ya}/${e}.md`}}},EN={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Mf={id:Tr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:bq,capabilities:EN,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:_N,lint:{hooks:kN,permissions:IN,ignore:LN},supportsConversion:{commands:true},project:Oq,globalSupport:{capabilities:EN,detectionPaths:[as,li,ya],layout:Aq},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Pr],global:[as]},canonicalDir:Sb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:KR,detectionPaths:[Pr,eo,Zn]};});var xi,Wr,Lo,wN,bN,Co,$f,Qa,Gf,Wp,Ti,ON,AN,Pi,jf,Hp,zp,hS,yS,Pc,RS,Dc,Nc,Uf,vc,Za,Vp,nt=d(()=>{xi="gemini-cli",Wr="GEMINI.md",Lo="AGENTS.md",wN=".gemini/rules",bN=".gemini/GEMINI.md",Co=".gemini/commands",$f=".gemini/policies",Qa=".gemini/settings.json",Gf=".geminiignore",Wp=".gemini/skills",Ti=".gemini/agents",ON=".gemini/system.md",AN=`${$f}/permissions.toml`,Pi=".agentsmesh/rules",jf=".agentsmesh/commands",Hp=".agentsmesh/agents",zp=".agentsmesh/skills",hS=".agentsmesh/mcp.json",yS=".agentsmesh/hooks.yaml",Pc=".agentsmesh/ignore",RS=".agentsmesh/permissions.yaml",Dc=".gemini/GEMINI.md",Nc=".gemini/AGENTS.md",Uf=".gemini/settings.json",vc=".gemini/commands",Za=".gemini/skills",Vp=".gemini/agents";});function _S(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=ae(t?.body.trim()??"",r),o=[{path:Wr,content:n}];return t&&o.push({path:Lo,content:t.body.trim()}),o}var xN=d(()=>{Ue();nt();s(_S,"generateRules");});function TN(e,t){let r=e.split(":").filter(Boolean),n=r.length>0?r.pop():e;return [t,...r,`${n}.toml`].join("/")}var PN=d(()=>{s(TN,"canonicalCommandNameToGeminiTomlPath");});function xq(e){let t=e.replace(/\r\n/g,`
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,`
126
126
  `);return t.includes('"""')?JSON.stringify(t):`"""
127
127
  ${t}
128
- """`}function Tq(e){return [`description = ${JSON.stringify(e.description||e.name)}`,`prompt = ${xq(e.body.trim()||"")}`].join(`
128
+ """`}function gZ(e){return [`description = ${JSON.stringify(e.description||e.name)}`,`prompt = ${fZ(e.body.trim()||"")}`].join(`
129
129
  `)+`
130
- `}function SS(e){return e.commands.map(t=>({path:TN(t.name,Co),content:Tq(t)}))}var DN=d(()=>{nt();PN();s(xq,"serializeTomlMultilineLiteral");s(Tq,"serializeGeminiCommand");s(SS,"generateCommands");});function kS(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=D(r,t.body.trim()||"");return {path:`${Ti}/${t.name}.md`,content:n}})}var NN=d(()=>{B();nt();s(kS,"generateAgents");});function IS(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=D(n,r.body.trim()||"");t.push({path:`${Wp}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Wp}/${r.name}/${a}`,content:i.content});}}return t}var vN=d(()=>{B();nt();s(IS,"generateSkills");});function Pq(e){switch(e){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function LS(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=Pq(i);if(!l||!Array.isArray(a))return [];let c=a.filter(m=>typeof m=="object"&&m!==null&&Go(m)).map((m,p)=>({matcher:m.matcher,hooks:[{name:`${l}-${p+1}`,type:"command",command:Ze(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:[Wr,Lo]}),Object.keys(r).length===0?[]:[{path:Qa,content:JSON.stringify(r,null,2)}]}var CS=d(()=>{qr();nt();s(Pq,"mapHookEvent");s(LS,"generateGeminiSettingsFiles");});function ES(e){return !e.ignore||e.ignore.length===0?[]:[{path:Gf,content:e.ignore.join(`
131
- `)}]}var FN=d(()=>{nt();s(ES,"generateIgnore");});var MN=d(()=>{xN();DN();NN();vN();CS();FN();});var $N=d(()=>{MN();});function el(e){return JSON.stringify(e)}function Dq(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Nq(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 Bf(e,t,r){return ["[[rule]]",`decision = ${el(e)}`,`priority = ${t}`,...r,""].join(`
132
- `)}function GN(e,t,r){let n=Nq(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 Bf(t,r,[`toolName = ${el(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return Bf(t,r,[`toolName = ${el(o.Bash)}`,`commandPrefix = ${el(i)}`])}return n.kind==="read"?Bf(t,r,[`toolName = ${el(o.Read)}`,`argsPattern = ${el(Dq(n.path))}`]):Bf(t,r,[`toolName = ${el(n.raw)}`])}function jN(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=GN(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=GN(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:AN,content:o.join(`
133
- `)}]}var UN=d(()=>{nt();s(el,"escapeTomlBasicString");s(Dq,"escapeRegexLiteral");s(Nq,"parsePermissionExpr");s(Bf,"ruleForDecision");s(GN,"permissionExprToGeminiRule");s(jN,"generateGeminiPermissionsPolicies");});function wS(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 Kf(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 bS=d(()=>{B();s(wS,"mapGeminiHookEvent");s(Kf,"parseFlexibleFrontmatter");});async function OS(e,t){let r=join(e,Qa),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,hS);await w(join(e,".agentsmesh")),await L(c,JSON.stringify({mcpServers:i},null,2)),t.push({fromTool:"gemini-cli",fromPath:r,toPath:hS,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(e,Pc);await w(join(e,".agentsmesh")),await L(c,a.join(`
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(`
134
134
  `)+`
135
- `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Pc,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=wS(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"&&Go(h)).map(h=>({matcher:g.matcher,command:Ze(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"&&Go(h)).map(h=>({matcher:h.matcher,command:Ze(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,yS);await w(join(e,".agentsmesh")),await L(p,stringify(m,{lineWidth:0}).trimEnd()),t.push({fromTool:"gemini-cli",fromPath:r,toPath:yS,feature:"hooks"});}}}var BN=d(()=>{qr();A();nt();bS();s(OS,"importGeminiSettings");});async function KN(e,t){let r=join(e,Gf),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 w(join(e,".agentsmesh"));let i=join(e,Pc);await L(i,o.join(`
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(`
136
136
  `)+`
137
- `),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Pc,feature:"ignore"});}}}var xS=d(()=>{A();nt();bS();BN();s(KN,"importGeminiIgnore");});function Gq(e){return e.replace(/\\(.)/g,"$1")}function jq(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 Uq(e){return `Bash(${e}:*)`}function Bq(e){return `Read(${Gq(e)})`}async function WN(e){let t=[],r=join(e,$f),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 R of h){if(!R||typeof R!="object")continue;let _=R,S=typeof _.toolName=="string"?_.toolName:null,I=typeof _.decision=="string"?_.decision:null;if(!S||!I)continue;let b=jq(S);if(!b)continue;let P=null;b==="Bash"?typeof _.commandPrefix=="string"&&_.commandPrefix.trim()&&(P=Uq(_.commandPrefix.trim())):b==="Read"?typeof _.argsPattern=="string"&&_.argsPattern.trim()?P=Bq(_.argsPattern.trim()):P="Read":P=b,P&&(I==="allow"?l.has(P)||(l.add(P),i.push(P)):I==="deny"&&(c.has(P)||(c.add(P),a.push(P))));}}if(i.length===0&&a.length===0)return t;await w(join(e,".agentsmesh"));let m=join(e,RS),p=stringify({allow:i,deny:a});return await L(m,p.trimEnd()+`
138
- `),t.push({fromTool:xi,fromPath:join(e,$f),toPath:RS,feature:"permissions"}),t}var HN=d(()=>{A();nt();s(Gq,"unescapeRegexLiteral");s(jq,"toolNameToPermissionBase");s(Uq,"commandPrefixToBashExpr");s(Bq,"argsPatternToReadExpr");s(WN,"importGeminiPolicies");});function TS(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 VN=d(()=>{s(TS,"stripProjectRootCanonicalPrefix");});async function YN(e,t,r){let n=join(e,Wp),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=jl(p.frontmatter,m);if(u){let I=join(e,Hp);await w(I);let b=join(I,`${u.name}.md`);await L(b,Ys(u,r(p.body,l,b))),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Hp}/${u.name}.md`,feature:"agents"});continue}let f=join(e,zp,m,"SKILL.md"),g=r(c,l,f),h=join(e,zp,m);await w(h);let{frontmatter:R,body:_}=x(g);await L(f,await Mn(f,{...R,name:m},_)),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${zp}/${m}/SKILL.md`,feature:"skills"});let S=await U(dirname(l));for(let I of S){if(I===l)continue;let b=await k(I);if(b===null)continue;let P=relative(dirname(l),I).replace(/\\/g,"/"),T=join(h,P);await w(dirname(T)),await L(T,r(b,I,T)),t.push({fromTool:"gemini-cli",fromPath:I,toPath:`${zp}/${m}/${P}`,feature:"skills"});}}let a=join(e,Ti);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"),R=join(e,Hp);await w(R);let _=join(R,h),S=r(f,m,_);await L(_,await et(_,{...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},S)),t.push({fromTool:"gemini-cli",fromPath:m,toPath:`${Hp}/${h}`,feature:"agents"});}}catch{}}var XN=d(()=>{A();B();fe();ue();nt();s(YN,"importGeminiSkillsAndAgents");});async function Kq(e,t,r){let n=await z("codex-cli",e),o=join(e,Pi),i=join(e,Lo),a=join(e,bN),l=[i,a,join(e,Wr),join(e,ON)],c=null,m=l[l.length-1];for(let P of l){let T=await k(P);if(T!==null){c=T,m=P;break}}if(c===null)return;await w(o);let p=join(o,"_root.md"),u=m===i||m===a?n(c,m,p):c,f=await Ro({content:u,projectRoot:e,rulesDir:Pi,sourcePath:m,fromTool:xi,normalize:r});t.push(...f.results);let g=r(f.rootContent,m,p),h=TS(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),e),{frontmatter:R,body:_}=x(h),I=R.root===true?R:{...R,root:true},b=TS(await V(p,I,_),e);await L(p,b),t.push({fromTool:xi,fromPath:m,toPath:`${Pi}/_root.md`,feature:"rules"});}async function qN(e){let t=[],r=await z(xi,e);return await Kq(e,t,r),t.push(...await q(Hf,e,"project",{normalize:r})),await YN(e,t,r),await OS(e,t),await KN(e,t),t.push(...await WN(e)),t}var QN=d(()=>{ge();A();B();fe();Lc();be();nt();NS();xS();HN();VN();XN();s(Kq,"importRootRule");s(qN,"importFromGemini");});function Hq(e){let t=e.replace(/^\/+|\/+$/g,"");return t===".gemini/commands"||t.startsWith(".gemini/commands/")}async function zq(e,t){let r=join(e,...Co.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 ev(e,t){if(!Hq(t))return {};let r=await zq(e,t);return r.length?{commands:r}:{}}var tv=d(()=>{A();nt();s(Hq,"isUnderGeminiCommands");s(zq,"inferGeminiCommandNamesFromFiles");s(ev,"inferGeminiPick");});async function nv(e,t,r){let n=e.replace(/\\/g,"/"),o=join(t,n),{frontmatter:i,body:a}=Kf(r(o)),l=Wo(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:`${Pi}/${n}`,feature:"rules",content:await V(o,c,a)}}async function ov(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")?Jq(i):Kf(i),c=_r(a.allowedTools),m=_r(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${jf}/${n}`,feature:"commands",content:await Se(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 Jq(e){try{let t=parse$1(e);return {frontmatter:t,body:typeof t.prompt=="string"?t.prompt:""}}catch{return {frontmatter:{},body:e.trim()}}}var sv=d(()=>{fe();Sr();xS();nt();s(nv,"mapGeminiRuleFile");s(ov,"mapGeminiCommandFile");s(Jq,"parseTomlCommand");});var iv,av,lv=d(()=>{sv();iv=s(({relativePath:e,destDir:t,normalizeTo:r})=>nv(e,t,r),"geminiRuleMapper"),av=s(({relativePath:e,destDir:t,normalizeTo:r})=>ov(e,t,r),"geminiCommandMapper");});function cv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:xi}))}var mv=d(()=>{Ie();nt();s(cv,"lintRules");});function pv(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function uv(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=>Zs(n,"gemini-cli",t))}var dv=d(()=>{Oe();s(pv,"lintCommands");s(uv,"lintHooks");});function fv(e,t,r){return t==="project"&&Di("gemini-cli",t)?.ignore.flavor!=="settings-embedded"?[]:LS(e,r)}var gv=d(()=>{xe();CS();s(fv,"emitScopedGeminiSettings");});var Yq,Xq,qq,Qq,Hf,NS=d(()=>{$N();ea();UN();nt();QN();tv();lv();mv();Ce();Ml();ue();dv();gv();pt();bf();Yq={name:"gemini-cli",primaryRootInstructionPath:Wr,generateRules:_S,generateCommands:SS,generateAgents:kS,generateSkills:IS,generateIgnore:ES,generatePermissions:jN,importFrom:qN},Xq={rootInstructionPath:Wr,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Lo]}],extraRuleOutputPaths(){return [Lo]},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 de(e,".gemini/skills",t)},paths:{rulePath(e,t){return Wr},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Co}/${r.join("/")}/${n}.toml`}return `${Co}/${e}.toml`},agentPath(e,t){return gr(t,"gemini-cli")?`.gemini/skills/${K(e)}/SKILL.md`:`${Ti}/${e}.md`}}},qq={rootInstructionPath:Dc,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Nc]}],extraRuleOutputPaths(){return [Nc]},skillDir:Za,managedOutputs:{dirs:[vc,Za,Vp],files:[Dc,Nc,Uf]},rewriteGeneratedPath(e){return e===Wr?Dc:e===Lo?Nc:e===Qa?Uf:e.startsWith(`${Co}/`)?e.replace(`${Co}/`,`${vc}/`):e.startsWith(".gemini/skills/")?e.replace(".gemini/skills/",`${Za}/`):e.startsWith(`${Ti}/`)?e.replace(`${Ti}/`,`${Vp}/`):e.startsWith(".gemini/policies/")||e===".geminiignore"?null:e},mirrorGlobalPath(e,t){return de(e,Za,t)},paths:{rulePath(e,t){return Dc},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${vc}/${r.join("/")}/${n}.toml`}return `${vc}/${e}.toml`},agentPath(e,t){return gr(t,"gemini-cli")?`${Za}/${K(e)}/SKILL.md`:`${Vp}/${e}.md`}}},Qq={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},Hf={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:Yq,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Zr("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:cv,lint:{commands:pv,hooks:uv},emitScopedSettings:fv,mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Qa?sD(o,r):null},project:Xq,globalSupport:{capabilities:Qq,detectionPaths:[Dc,Nc,Uf,vc,Za,Vp],layout:qq},importer:{rules:{feature:"rules",mode:"directory",source:{project:[wN]},canonicalDir:Pi,extensions:[".md"],map:iv},commands:{feature:"commands",mode:"directory",source:{project:[Co]},canonicalDir:jf,extensions:[".md",".toml"],map:av}},buildImportPaths:WR,detectionPaths:["GEMINI.md",".gemini"],nativeInstall:{inferPick:ev},conversionDefaults:{agentsToSkills:false}};});function hv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ro)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:Dr,content:o}]:[]}function yv(e){return ie(e,Ut)}function Rv(e){return e.commands.map(t=>({path:`${Ut}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function _v(e){return e.agents.map(t=>({path:`${Ut}/${K(t.name)}/SKILL.md`,content:De(t)}))}function Sv(e){return e.ignore.length===0?[]:[{path:ls,content:e.ignore.join(`
139
- `)}]}var kv=d(()=>{se();Ue();ue();we();ec();s(hv,"generateRules");s(yv,"generateSkills");s(Rv,"generateCommands");s(_v,"generateAgents");s(Sv,"generateIgnore");});async function Iv(e,t={}){let r=t.scope??"project",n=[],o=await z(ro,e,r);return n.push(...await q(zf,e,r,{normalize:o})),await oe(e,r==="global"?Nr:Ut,ro,n,o),n}var Lv=d(()=>{ge();se();be();ec();vS();s(Iv,"importFromGoose");});function Cv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ro}))}var Ev=d(()=>{Ie();ec();s(Cv,"lintRules");});function wv(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}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?[]:[v(".agentsmesh/permissions.yaml","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function Ov(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var Av=d(()=>{Oe();s(wv,"lintHooks");s(bv,"lintPermissions");s(Ov,"lintMcp");});var Zq,eQ,tQ,xv,zf,vS=d(()=>{we();ue();kv();pt();Lv();Ev();Av();Ce();ec();Zq={name:ro,primaryRootInstructionPath:Dr,generateRules:hv,generateCommands:Rv,generateAgents:_v,generateSkills:yv,generateIgnore:Sv,importFrom:Iv},eQ={rootInstructionPath:Dr,skillDir:Ut,managedOutputs:{dirs:[Ut],files:[Dr,ls]},paths:{rulePath(e){return Dr},commandPath(e){return `${Ut}/${J(e)}/SKILL.md`},agentPath(e){return `${Ut}/${K(e)}/SKILL.md`}}},tQ={rootInstructionPath:cs,skillDir:Nr,managedOutputs:{dirs:[Nr],files:[cs,_a]},rewriteGeneratedPath(e){return e===Dr?cs:e===ls?_a:e},mirrorGlobalPath(e,t){return de(e,Nr,t)},paths:{rulePath(e){return cs},commandPath(e){return `${Nr}/${J(e)}/SKILL.md`},agentPath(e){return `${Nr}/${K(e)}/SKILL.md`}}},xv={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},zf={id:ro,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:Zq,capabilities:xv,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:Cv,lint:{hooks:wv,permissions:bv,mcp:Ov},supportsConversion:{commands:true,agents:true},project:eQ,globalSupport:{capabilities:xv,detectionPaths:[cs,_a,Nr],layout:tQ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Dr],global:[cs]},canonicalDir:Cb,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ls],global:[_a]},canonicalDir:".agentsmesh",canonicalFilename:Eb}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:HR,detectionPaths:[Dr,ls],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function Tv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ms)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:dn,content:o}]:[]}var Pv=d(()=>{Ue();tc();s(Tv,"generateRules");});async function Dv(e,t={}){let r=t.scope??"project",n=await z(ms,e,r);return q(Vf,e,r,{normalize:n})}var Nv=d(()=>{ge();be();tc();FS();s(Dv,"importFromJules");});function vv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ms}))}var Fv=d(()=>{Ie();tc();s(vv,"lintRules");});function Mv(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function $v(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?[]:[v(".agentsmesh/permissions.yaml","jules","Jules has no permissions system; canonical permissions are not projected.")]}function Gv(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function jv(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function Uv(e){return e.commands.length===0?[]:[v(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var Bv=d(()=>{Oe();s(Mv,"lintHooks");s($v,"lintPermissions");s(Gv,"lintIgnore");s(jv,"lintMcp");s(Uv,"lintCommands");});var rQ,nQ,oQ,Vf,FS=d(()=>{Pv();Nv();Fv();Bv();Ce();tc();rQ={name:ms,primaryRootInstructionPath:dn,generateRules:Tv,importFrom:Dv},nQ={rootInstructionPath:dn,managedOutputs:{dirs:[],files:[dn]},paths:{rulePath(e){return dn},commandPath(){return null},agentPath(){return null}}},oQ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Vf={id:ms,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:rQ,capabilities:oQ,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:vv,lint:{hooks:Mv,permissions:$v,ignore:Gv,mcp:jv,commands:Uv},project:nQ,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[dn]},canonicalDir:bb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:zR,detectionPaths:[dn]};});function Kv(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:no,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:`${gp}/${o}.md`,content:n.body.trim()||""});}return t}function iQ(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 Wv(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,iQ(n)]));return [{path:fp,content:JSON.stringify({mcpServers:t},null,2)}]}function Hv(e){return e.commands.map(t=>{let r={description:t.description||void 0};return r.description===void 0&&delete r.description,{path:`${rc}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function zv(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:`${nc}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function Vv(e){return e.ignore.length===0?[]:[{path:hp,content:e.ignore.join(`
140
- `)}]}function Jv(e){return ie(e,ka)}function Yv(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 ae(t?.body.trim()??"",r)}var Xv=d(()=>{gf();se();Ue();B();oc();s(Kv,"generateRules");s(iQ,"toJunieMcpServer");s(Wv,"generateMcp");s(Hv,"generateCommands");s(zv,"generateAgents");s(Vv,"generateIgnore");s(Jv,"generateSkills");s(Yv,"renderJunieGlobalInstructions");});async function aQ(e,t,r){let n=[no,Jd,Ab,xb],o=join(e,VR);for(let i of n){let a=join(e,i),l=await k(a);if(l===null)continue;let c=await Ro({content:l,projectRoot:e,rulesDir:Xd,sourcePath:a,fromTool:Sa,normalize:r});t.push(...c.results);let{frontmatter:m,body:p}=x(r(c.rootContent,a,o)),u=await V(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:Sa,fromPath:a,toPath:VR,feature:"rules"});return}}async function Qv(e){let t=[],r=await z(Sa,e);return await aQ(e,t,r),t.push(...await q(Jf,e,"project",{normalize:r})),await oe(e,ka,Sa,t,r),t}var Zv=d(()=>{ge();A();B();se();Lc();fe();be();oc();MS();s(aQ,"importRootRule");s(Qv,"importFromJunie");});function eF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sa}))}var tF=d(()=>{Ie();oc();s(eF,"lintRules");});function rF(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))Zx(n)&&t.push(v(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return t}var nF=d(()=>{gf();Oe();s(rF,"lintMcp");});var lQ,cQ,mQ,pQ,Jf,MS=d(()=>{Xv();oc();pt();Zv();tF();nF();Ce();lQ={name:"junie",primaryRootInstructionPath:no,generateRules:Kv,generateCommands:Hv,generateAgents:zv,generateSkills:Jv,generateMcp:Wv,generateIgnore:Vv,importFrom:Qv},cQ={rootInstructionPath:no,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 `${gp}/${e}.md`},commandPath(e,t){return `${rc}/${e}.md`},agentPath(e,t){return `${nc}/${e}.md`}}},mQ={rootInstructionPath:Ia,renderPrimaryRootInstruction:Yv,skillDir:Rp,managedOutputs:{dirs:[Rp,_p,Sp,Tb],files:[Ia,Yd]},rewriteGeneratedPath(e){return e===no?Ia:e.startsWith(`${gp}/`)?Ia:e.startsWith(`${ka}/`)?e.replace(`${ka}/`,`${Rp}/`):e.startsWith(`${rc}/`)?e.replace(`${rc}/`,`${Sp}/`):e.startsWith(`${nc}/`)?e.replace(`${nc}/`,`${_p}/`):e===fp?Yd:e===hp?null:e},mirrorGlobalPath(e,t){return de(e,".junie/skills",t)},paths:{rulePath(e,t){return Ia},commandPath(e,t){return `${Sp}/${e}.md`},agentPath(e,t){return `${_p}/${e}.md`}}},pQ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Jf={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:lQ,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:eF,lint:{mcp:rF},project:cQ,globalSupport:{capabilities:pQ,detectionPaths:[Ia,Rp,_p,Sp,Yd],layout:mQ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Xd,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:Pb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:Db,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[fp]},canonicalDir:".agentsmesh",canonicalFilename:Nb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[hp]},canonicalDir:".agentsmesh",canonicalFilename:vb}},buildImportPaths:JR,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 sF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:oo,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Tt))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?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${ps}/${o}.md`,content:a});}return t}function iF(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${us}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function aF(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:`${ds}/${r}.md`,content:D(n,t.body.trim()||"")}})}function lF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:mi,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function cF(e){return e.ignore.length===0?[]:[{path:sc,content:e.ignore.join(`
141
- `)}]}function mF(e){return ie(e,fn)}var pF=d(()=>{se();B();Aa();s(sF,"generateRules");s(iF,"generateCommands");s(aF,"generateAgents");s(lF,"generateMcp");s(cF,"generateIgnore");s(mF,"generateSkills");});var Yf,Xf,uF,GS=d(()=>{B();fe();Aa();Yf=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${di}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"kiloNonRootRuleMapper"),Xf=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${cc}/${e}`,content:await Se(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"kiloCommandMapper"),uF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Oa}/${e}`,content:await et(n,o,i)}},"kiloAgentMapper");});async function dF(e){try{return await stat(e),!0}catch{return false}}async function fQ(e,t,r){let n=join(e,La);if(!await dF(n))return;let o=join(e,di),i=join(n,US),l=t.some(c=>c.toPath===jS)?null:await k(i);if(l!==null){let c=join(e,jS),m=r(l,i,c),{body:p}=x(m),u=await V(c,{root:true},p);await L(c,u),t.push({feature:"rules",fromTool:Tt,fromPath:`${La}/${US}`,toPath:jS});}t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tt,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Yf({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===US||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function gQ(e,t,r){let n=join(e,ic);if(!await dF(n))return;let o=join(e,cc);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tt,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await Xf({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function hQ(e,t,r){let n=join(e,Qd),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,Oa,`${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: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}
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 R=await et(m,h,g),_=r(R,n,m);await L(m,_),t.push({feature:"agents",fromTool:Tt,fromPath:n,toPath:`${Oa}/${c}.md`});}}async function fF(e,t={}){let r=t.scope??"project",n=[],o=await z(Tt,e,r);return n.push(...await q(qf,e,r,{normalize:o})),await oe(e,fn,Tt,n,o),r==="project"&&(await fQ(e,n,o),await gQ(e,n,o),await hQ(e,n,o),await oe(e,Ca,Tt,n,o)),n}var jS,US,gF=d(()=>{ge();se();Yt();be();A();fe();B();GS();Aa();BS();jS=`${di}/_root.md`,US="00-root.md";s(dF,"pathExists");s(fQ,"importLegacyRules");s(gQ,"importLegacyWorkflows");s(hQ,"importLegacyModes");s(fF,"importFromKiloCode");});function hF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Tt}))}var yF=d(()=>{Ie();Aa();s(hF,"lintRules");});function RF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}function _F(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?[]:[v(".agentsmesh/permissions.yaml","kilo-code","kilo-code permissions live in kilo.jsonc, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}var SF=d(()=>{Oe();s(RF,"lintHooks");s(_F,"lintPermissions");});var yQ,RQ,_Q,kF,qf,BS=d(()=>{pF();Aa();pt();gF();GS();yF();SF();Ce();yQ={name:Tt,primaryRootInstructionPath:oo,generateRules:sF,generateCommands:iF,generateAgents:aF,generateSkills:mF,generateMcp:lF,generateIgnore:cF,importFrom:fF},RQ={rootInstructionPath:oo,skillDir:fn,managedOutputs:{dirs:[ps,us,ds,fn],files:[oo,mi,sc]},paths:{rulePath(e,t){return `${ps}/${e}.md`},commandPath(e,t){return `${us}/${e}.md`},agentPath(e,t){return `${ds}/${e}.md`}}},_Q={rootInstructionPath:pi,skillDir:ui,managedOutputs:{dirs:[Ea,wa,ba,ui,Mb],files:[pi,lc,Zd]},rewriteGeneratedPath(e){return e===oo?pi:e},mirrorGlobalPath(e,t){return de(e,ui,t)},paths:{rulePath(e,t){return `${Ea}/${e}.md`},commandPath(e,t){return `${wa}/${e}.md`},agentPath(e,t){return `${ba}/${e}.md`}}},kF={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},qf={id:Tt,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:yQ,capabilities:kF,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:hF,lint:{hooks:RF,permissions:_F},project:RQ,globalSupport:{capabilities:kF,detectionPaths:[pi,Ea,wa,ba,ui,lc,Zd],layout:_Q},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[oo],global:[pi]},canonicalDir:di,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ps],global:[Ea]},canonicalDir:di,extensions:[".md"],map:Yf}],commands:{feature:"commands",mode:"directory",source:{project:[us],global:[wa]},canonicalDir:cc,extensions:[".md"],map:Xf},agents:{feature:"agents",mode:"directory",source:{project:[ds],global:[ba]},canonicalDir:Oa,extensions:[".md"],map:uF},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[mi,Ip],global:[lc]},canonicalDir:".agentsmesh",canonicalFilename:$b},ignore:{feature:"ignore",mode:"flatFile",source:{project:[sc],global:[Zd]},canonicalDir:".agentsmesh",canonicalFilename:Gb}},buildImportPaths:YR,detectionPaths:[ps,us,ds,fn,mi,La,ic,Ca,Ip,Qd,sc,"kilo.jsonc","kilo.json"]};});function IF(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function IQ(e){return e.type==="prompt"?e.prompt:e.command}function LQ(e,t){let r=LF[e];return e==="PreToolUse"||e==="PostToolUse"?{type:r,tools:[t||"*"]}:{type:r}}function CF(e){let t=[];for(let[r,n]of Object.entries(e)){let o=r;if(!(o in LF)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=IQ(a);if(!l)continue;let c={name:`${IF(r)} ${i}`,version:"1",when:LQ(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};t.push({name:`${IF(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return t}function CQ(e){let t=kQ.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 EF(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:CQ(r)}function wF(e){return stringify(e).trimEnd()}var LF,kQ,KS=d(()=>{LF={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},kQ=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(IF,"toKebab");s(IQ,"hookText");s(LQ,"toWhen");s(CF,"generateKiroHooks");s(CQ,"toCanonicalEntry");s(EF,"parseKiroHookFile");s(wF,"serializeCanonicalHooks");});function wQ(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 bF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:gn,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(rr))continue;let o=basename(n.source,".md");t.push({path:`${hn}/${o}.md`,content:D(wQ(n),n.body.trim()||"")});}return t}function OF(e){return e.commands.map(t=>({path:`${Pt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function AF(e){return ie(e,Pt)}function xF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:mc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function TF(e){return !e.hooks||Object.keys(e.hooks).length===0?[]:CF(e.hooks).map(t=>({path:`${fi}/${t.name}`,content:t.content}))}function PF(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=D(r,t.body.trim()||"");return {path:`${yn}/${t.name}.md`,content:n}})}function DF(e){return e.ignore.length===0?[]:[{path:pc,content:e.ignore.join(`
146
- `)}]}var NF=d(()=>{se();we();B();KS();uc();s(wQ,"steeringFrontmatter");s(bF,"generateRules");s(OF,"generateCommands");s(AF,"generateSkills");s(xF,"generateMcp");s(TF,"generateHooks");s(PF,"generateAgents");s(DF,"generateIgnore");});function OQ(e){let t=typeof e.inclusion=="string"?e.inclusion:"",r={root:false,description:typeof e.description=="string"?e.description:void 0,globs:Wo(e.fileMatchPattern)};return t==="manual"&&(r.trigger="manual"),t==="auto"&&(r.trigger="model_decision"),t==="fileMatch"&&(r.trigger="glob"),r}async function AQ(e,t,r,n){let o=n==="global"?[Rn,gn]:[gn,Rn];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,XR),{frontmatter:m,body:p}=x(r(l,a,c));await L(c,await V(c,{...m,root:true},p)),t.push({fromTool:rr,fromPath:a,toPath:XR,feature:"rules"});return}}async function xQ(e,t,r){let n=join(e,qR);t.push(...await ke({srcDir:join(e,hn),destDir:n,extensions:[".md"],fromTool:rr,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:`${qR}/${o}`,feature:"rules",content:await V(a,OQ(l),c)}},"mapEntry")}));}async function TQ(e,t){let r={};for(let o of await U(join(e,fi))){if(!o.endsWith(".kiro.hook"))continue;let i=EF(await k(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(e,QR);await w(join(e,".agentsmesh")),await L(n,wF(r)),t.push({fromTool:rr,fromPath:join(e,fi),toPath:QR,feature:"hooks"});}async function vF(e,t={}){let r=t.scope??"project",n=[],o=await z(rr,e,r);return await AQ(e,n,o,r),await xQ(e,n,o),n.push(...await q(Qf,e,r,{normalize:o})),await oe(e,Pt,rr,n,o),r==="project"&&await TQ(e,n),n}var FF=d(()=>{ge();se();Yt();be();fe();Sr();A();B();KS();uc();WS();s(OQ,"canonicalRuleMeta");s(AQ,"importRoot");s(xQ,"importNonRootRules");s(TQ,"importHooks");s(vF,"importFromKiro");});function MF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:rr}))}var $F=d(()=>{Ie();uc();s(MF,"lintRules");});function GF(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=>Zs(n,"kiro",t,{unsupportedBy:"Kiro hooks"}))}var jF=d(()=>{Oe();s(GF,"lintHooks");});var PQ,DQ,NQ,vQ,Qf,WS=d(()=>{we();NF();pt();FF();$F();jF();Ce();uc();PQ={name:rr,primaryRootInstructionPath:gn,generateRules:bF,generateCommands:OF,generateAgents:PF,generateSkills:AF,generateMcp:xF,generateHooks:TF,generateIgnore:DF,importFrom:vF},DQ={rootInstructionPath:gn,skillDir:Pt,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(e,t){return `${hn}/${e}.md`},commandPath(e){return `${Pt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${yn}/${e}.md`}}},NQ={rootInstructionPath:Rn,skillDir:gi,managedOutputs:{dirs:[xa,gi,Ta,Ub],files:[Rn,Cp,Ep]},rewriteGeneratedPath(e){return e===gn?Rn:e.startsWith(`${hn}/`)?e.replace(`${hn}/`,`${xa}/`):e.startsWith(`${Pt}/`)?e.replace(`${Pt}/`,`${gi}/`):e.startsWith(`${yn}/`)?e.replace(`${yn}/`,`${Ta}/`):e===mc?Cp:e===pc?Ep:e.startsWith(`${fi}/`)?null:e},mirrorGlobalPath(e,t){return de(e,".kiro/skills",t)},paths:{rulePath(e,t){return `${xa}/${e}.md`},commandPath(e){return `${Pt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${Ta}/${e}.md`}}},vQ={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Qf={id:rr,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:PQ,capabilities:{rules:"native",additionalRules:"native",commands:"none",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:MF,lint:{hooks:GF},project:DQ,globalSupport:{capabilities:vQ,detectionPaths:[xa,Rn,gi,Ta,Cp,Ep],layout:NQ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[yn],global:[yn]},canonicalDir:Bb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[mc],global:[Cp]},canonicalDir:".agentsmesh",canonicalFilename:Kb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[pc],global:[Ep]},canonicalDir:".agentsmesh",canonicalFilename:Wb}},buildImportPaths:ZR,detectionPaths:[hn,Pt,yn,fi,mc,pc],conversionDefaults:{commandsToSkills:true}};});function BF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:so,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(_n))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?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${fs}/${o}.md`,content:a});}return t}function KF(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${gs}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function WF(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:`${hs}/${r}.md`,content:D(n,t.body.trim()||"")}})}function FQ(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 HF(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]=FQ(n);return [{path:io,content:JSON.stringify({mcp:t},null,2)}]}function zF(e){return ie(e,Sn)}var VF=d(()=>{se();B();va();s(BF,"generateRules");s(KF,"generateCommands");s(WF,"generateAgents");s(FQ,"toOpenCodeMcpServer");s(HF,"generateMcp");s(zF,"generateSkills");});function HS(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 $Q(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:HS(a.headers),env:HS(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:HS(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function GQ(e,t,r){let o=join(e,t==="global"?Ri:io),i=await k(o);if(i===null)return;let a=$Q(i);Object.keys(a).length!==0&&(await Je(e,e_,a),r.push({feature:"mcp",fromTool:_n,fromPath:o,toPath:e_}));}async function JF(e,t={}){let r=t.scope??"project",n=[],o=await z(_n,e,r);return n.push(...await q(Zf,e,r,{normalize:o})),await oe(e,Sn,_n,n,o),await GQ(e,r,n),n}var YF=d(()=>{ge();se();be();nn();A();va();zS();s(HS,"toStringRecord");s($Q,"parseOpenCodeMcp");s(GQ,"importMcp");s(JF,"importFromOpenCode");});var XF,qF,QF,ZF=d(()=>{B();fe();va();XF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${wp}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),qF=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 Se(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),QF=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 et(n,o,i)}},"opencodeAgentMapper");});function eM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:_n}))}var tM=d(()=>{Ie();va();s(eM,"lintRules");});function rM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function nM(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?[]:[v(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function oM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var sM=d(()=>{Oe();s(rM,"lintHooks");s(nM,"lintPermissions");s(oM,"lintIgnore");});var jQ,UQ,BQ,iM,Zf,zS=d(()=>{VF();va();pt();YF();ZF();tM();sM();Ce();jQ={name:_n,primaryRootInstructionPath:so,generateRules:BF,generateCommands:KF,generateAgents:WF,generateSkills:zF,generateMcp:HF,importFrom:JF},UQ={rootInstructionPath:so,skillDir:Sn,managedOutputs:{dirs:[fs,gs,hs,Sn],files:[so,io]},paths:{rulePath(e){return `${fs}/${e}.md`},commandPath(e){return `${gs}/${e}.md`},agentPath(e){return `${hs}/${e}.md`}}},BQ={rootInstructionPath:hi,skillDir:yi,managedOutputs:{dirs:[Pa,Da,Na,yi,zb],files:[hi,Ri]},rewriteGeneratedPath(e){return e===so?hi:e===io?Ri:e},mirrorGlobalPath(e,t){return de(e,yi,t)},paths:{rulePath(e){return `${Pa}/${e}.md`},commandPath(e){return `${Da}/${e}.md`},agentPath(e){return `${Na}/${e}.md`}}},iM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Zf={id:_n,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:jQ,capabilities:iM,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:eM,lint:{hooks:rM,permissions:nM,ignore:oM},project:UQ,globalSupport:{capabilities:iM,detectionPaths:[hi,Pa,Da,Na,yi,Ri],layout:BQ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[so],global:[hi]},canonicalDir:wp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[fs],global:[Pa]},canonicalDir:wp,extensions:[".md"],map:XF}],commands:{feature:"commands",mode:"directory",source:{project:[gs],global:[Da]},canonicalDir:tf,extensions:[".md"],map:qF},agents:{feature:"agents",mode:"directory",source:{project:[hs],global:[Na]},canonicalDir:rf,extensions:[".md"],map:QF}},buildImportPaths:t_,detectionPaths:[fs,gs,hs,Sn,io,"opencode.jsonc"]};});function aM(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=ae(n,r);return o?[{path:vr,content:o}]:[]}function lM(e){return ie(e,ct)}function cM(e){return e.commands.map(t=>({path:`${ct}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function mM(e){return e.agents.map(t=>({path:`${ct}/${K(t.name)}/SKILL.md`,content:De(t)}))}var pM=d(()=>{se();Ue();ue();we();fc();s(aM,"generateRules");s(lM,"generateSkills");s(cM,"generateCommands");s(mM,"generateAgents");});async function uM(e,t={}){let r=t.scope??"project",n=[],o=await z(ao,e,r);return n.push(...await q(eg,e,r,{normalize:o})),await oe(e,r==="global"?Fr:ct,ao,n,o),n}var dM=d(()=>{ge();se();be();fc();JS();s(uM,"importFromPiAgent");});function fM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ao}))}var gM=d(()=>{Ie();fc();s(fM,"lintRules");});function hM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function yM(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?[]:[v(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function RM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function _M(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".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 SM=d(()=>{Oe();s(hM,"lintHooks");s(yM,"lintPermissions");s(RM,"lintIgnore");s(_M,"lintMcp");});var KQ,WQ,HQ,kM,eg,JS=d(()=>{we();ue();pM();pt();dM();gM();SM();n_();fc();KQ={name:ao,primaryRootInstructionPath:vr,generateRules:aM,generateCommands:cM,generateAgents:mM,generateSkills:lM,importFrom:uM},WQ={rootInstructionPath:vr,skillDir:ct,managedOutputs:{dirs:[ct],files:[vr]},paths:{rulePath(e){return vr},commandPath(e){return `${ct}/${J(e)}/SKILL.md`},agentPath(e){return `${ct}/${K(e)}/SKILL.md`}}},HQ={rootInstructionPath:ys,skillDir:Fr,managedOutputs:{dirs:[Fr],files:[ys]},rewriteGeneratedPath(e){return e===vr?ys:e.startsWith(`${ct}/`)?e.replace(`${ct}/`,`${Fr}/`):e},mirrorGlobalPath(e,t){return de(e,Fr,t)},paths:{rulePath(e){return ys},commandPath(e){return `${Fr}/${J(e)}/SKILL.md`},agentPath(e){return `${Fr}/${K(e)}/SKILL.md`}}},kM={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},eg={id:ao,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:KQ,capabilities:kM,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:fM,lint:{hooks:hM,permissions:yM,ignore:RM,mcp:_M},supportsConversion:{commands:true,agents:true},project:WQ,globalSupport:{capabilities:kM,detectionPaths:[ys],layout:HQ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[vr],global:[ys]},canonicalDir:Yb,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:r_,detectionPaths:[vr,ct]};});function IM(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(kn)));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=D(a,o.body.trim()||"");t.push({path:`${Rs}/${i}.md`,content:l});}return t}function LM(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=D(r,t.body.trim()||"");return {path:`${lo}/${t.name}.md`,content:n}})}function CM(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=D(r,t.body.trim()||"");return {path:`${co}/${t.name}.md`,content:n}})}function EM(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=D(n,r.body.trim()||"");t.push({path:`${nr}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${nr}/${r.name}/${a}`,content:i.content});}}return t}function wM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:_i,content:t}]}function bM(e){return !e.ignore||e.ignore.length===0?[]:[{path:Si,content:e.ignore.join(`
147
- `)}]}function OM(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes(kn));return ae(t?.body.trim()??"",r)}var AM=d(()=>{B();Ue();gc();s(IM,"generateRules");s(LM,"generateCommands");s(CM,"generateAgents");s(EM,"generateSkills");s(wM,"generateMcp");s(bM,"generateIgnore");s(OM,"renderQwenGlobalInstructions");});async function xM(e,t={}){let r=t.scope??"project",n=[],o=await z(kn,e,r);return n.push(...await q(tg,e,r,{normalize:o})),await oe(e,r==="global"?mo:nr,kn,n,o),n}var TM=d(()=>{ge();be();se();gc();YS();s(xM,"importFromQwenCode");});function PM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:kn}))}var DM=d(()=>{Ie();gc();s(PM,"lintRules");});var VQ,JQ,YQ,XQ,qQ,tg,YS=d(()=>{AM();TM();DM();Ce();gc();VQ={name:kn,primaryRootInstructionPath:Mr,generateRules:IM,generateCommands:LM,generateAgents:CM,generateSkills:EM,generateMcp:wM,generateIgnore:bM,importFrom:xM},JQ={rootInstructionPath:Mr,skillDir:nr,managedOutputs:{dirs:[Rs,lo,co,nr],files:[Mr,_i,Si]},paths:{rulePath(e,t){return t.root?Mr:`${Rs}/${e}.md`},commandPath(e){return `${lo}/${e}.md`},agentPath(e){return `${co}/${e}.md`}}},YQ={rootInstructionPath:_s,renderPrimaryRootInstruction:OM,skillDir:mo,managedOutputs:{dirs:[ki,Ii,mo],files:[_s,Fa]},rewriteGeneratedPath(e){return e===Mr?_s:e===_i?Fa:e===Si?null:e.startsWith(`${lo}/`)?e.replace(`${lo}/`,`${ki}/`):e.startsWith(`${co}/`)?e.replace(`${co}/`,`${Ii}/`):e.startsWith(`${nr}/`)?e.replace(`${nr}/`,`${mo}/`):e.startsWith(`${Rs}/`)?null:e},paths:{rulePath(e,t){return _s},commandPath(e){return `${ki}/${e}.md`},agentPath(e){return `${Ii}/${e}.md`}}},XQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},qQ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},tg={id:kn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:VQ,capabilities:XQ,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:PM,project:JQ,globalSupport:{capabilities:qQ,detectionPaths:[_s,Fa,ki,Ii,mo],layout:YQ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Mr],global:[_s]},canonicalDir:o_,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Rs],global:[]},canonicalDir:o_,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[lo],global:[ki]},canonicalDir:Xb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[co],global:[Ii]},canonicalDir:qb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[_i],global:[Fa]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Si],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}},buildImportPaths:s_,detectionPaths:[Mr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function NM(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=ae(n,r);return o?[{path:In,content:o}]:[]}function vM(e){return ie(e,Bt)}function FM(e){return e.commands.map(t=>({path:`${Bt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function MM(e){return e.agents.map(t=>({path:`${Bt}/${K(t.name)}/SKILL.md`,content:De(t)}))}var $M=d(()=>{se();Ue();ue();we();hc();s(NM,"generateRules");s(vM,"generateSkills");s(FM,"generateCommands");s(MM,"generateAgents");});async function GM(e,t={}){let r=t.scope??"project",n=[],o=await z(po,e,r);return n.push(...await q(rg,e,r,{normalize:o})),await oe(e,Bt,po,n,o),n}var jM=d(()=>{ge();se();be();hc();XS();s(GM,"importFromReplitAgent");});function UM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:po}))}var BM=d(()=>{Ie();hc();s(UM,"lintRules");});function KM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function WM(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?[]:[v(".agentsmesh/permissions.yaml","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function HM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function zM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".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 VM=d(()=>{Oe();s(KM,"lintHooks");s(WM,"lintPermissions");s(HM,"lintIgnore");s(zM,"lintMcp");});var QQ,ZQ,eZ,rg,XS=d(()=>{we();ue();$M();jM();BM();VM();a_();hc();QQ={name:po,primaryRootInstructionPath:In,generateRules:NM,generateCommands:FM,generateAgents:MM,generateSkills:vM,importFrom:GM},ZQ={rootInstructionPath:In,skillDir:Bt,managedOutputs:{dirs:[Bt],files:[In]},paths:{rulePath(e){return In},commandPath(e){return `${Bt}/${J(e)}/SKILL.md`},agentPath(e){return `${Bt}/${K(e)}/SKILL.md`}}},eZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},rg={id:po,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:QQ,capabilities:eZ,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:UM,lint:{hooks:KM,permissions:WM,ignore:HM,mcp:zM},supportsConversion:{commands:true,agents:true},project:ZQ,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[In]},canonicalDir:Zb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:i_,detectionPaths:[In]};});function YM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Ln,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Li))continue;let o=basename(n.source,".md");t.push({path:`${Ss}/${o}.md`,content:n.body.trim()||""});}return t}function XM(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${ks}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function qM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Op,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function QM(e){return e.ignore.length===0?[]:[{path:Ap,content:e.ignore.join(`
148
- `)}]}function ZM(e){return ie(e,uo)}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:yc,content:stringify({customModes:t})}]}var t$=d(()=>{se();B();ja();s(YM,"generateRules");s(XM,"generateCommands");s(qM,"generateMcp");s(QM,"generateIgnore");s(ZM,"generateSkills");s(e$,"generateAgents");});var ng,n$,qS=d(()=>{B();fe();ja();ng=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:`${Ga}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"rooNonRootRuleMapper"),n$=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 Se(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function nZ(e,t,r){let n=join(e,Ma),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,Ga);for(let l of i)t.push(...await ke({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:Li,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await ng({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function o$(e,t={}){let r=t.scope??"project",n=[],o=await z(Li,e,r);return n.push(...await q(og,e,r,{normalize:o})),await nZ(e,n,o),await oe(e,uo,Li,n,o),n}var s$=d(()=>{ge();se();Yt();be();qS();ja();ZS();s(nZ,"importPerModeRules");s(o$,"importFromRooCode");});function i$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Li}))}var a$=d(()=>{Ie();ja();s(i$,"lintRules");});function cZ(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var aZ,lZ,mZ,pZ,uZ,og,ZS=d(()=>{A();t$();ja();pt();s$();qS();a$();Ce();aZ={name:"roo-code",primaryRootInstructionPath:Ln,generateRules:YM,generateCommands:XM,generateSkills:ZM,generateMcp:qM,generateIgnore:QM,generateAgents:e$,importFrom:o$},lZ={rootInstructionPath:Ln,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",yc]},paths:{rulePath(e,t){return `${Ss}/${e}.md`},commandPath(e,t){return `${ks}/${e}.md`},agentPath(e,t){return null}}};s(cZ,"computeStatus");mZ=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,xp));return [{target:"roo-code",path:xp,content:i,currentContent:a??void 0,status:cZ(a,i)}]},"generateRooGlobalExtras"),pZ={rootInstructionPath:wi,skillDir:Is,managedOutputs:{dirs:[Ci,Ei,Is,eO],files:[wi,$a,Tp,xp]},rewriteGeneratedPath(e){return e===Ln?wi:e===yc?null:e.startsWith(`${Ss}/`)?e.replace(`${Ss}/`,`${Ci}/`):e.startsWith(`${ks}/`)?e.replace(`${ks}/`,`${Ei}/`):e.startsWith(`${uo}/`)?e.replace(`${uo}/`,`${Is}/`):e===Op?$a:e===Ap?Tp:e},mirrorGlobalPath(e,t){return de(e,Is,t)},paths:{rulePath(e,t){return `${Ci}/${e}.md`},commandPath(e,t){return `${Ei}/${e}.md`},agentPath(e,t){return null}}},uZ={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},og={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:aZ,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Roo Code config found (.roo/rules, .roo/commands, .roo/skills, .roo/mcp.json, .rooignore, or .roorules).",lintRules:i$,project:lZ,globalSupport:{capabilities:uZ,detectionPaths:[Ci,Ei,Is,$a,Tp,wi,xp],layout:pZ,scopeExtras:mZ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Ln,bp],global:[wi,Ln,bp]},canonicalDir:Ga,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:[Ss],global:[Ci]},canonicalDir:Ga,extensions:[".md"],map:ng}],commands:{feature:"commands",mode:"directory",source:{project:[ks],global:[Ei]},canonicalDir:of,extensions:[".md"],map:n$},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Op],global:[$a]},canonicalDir:".agentsmesh",canonicalFilename:tO},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ap],global:[Tp]},canonicalDir:".agentsmesh",canonicalFilename:rO}},buildImportPaths:l_,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",yc]};});function l$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(fo)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:$r,content:o}]:[]}function c$(e){return ie(e,mt)}function m$(e){return e.commands.map(t=>({path:`${mt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function p$(e){return e.agents.map(t=>({path:`${mt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function u$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ls,content:t}]}var d$=d(()=>{se();Ue();ue();we();_c();s(l$,"generateRules");s(c$,"generateSkills");s(m$,"generateCommands");s(p$,"generateAgents");s(u$,"generateMcp");});async function f$(e,t={}){let r=t.scope??"project",n=[],o=await z(fo,e,r);return n.push(...await q(sg,e,r,{normalize:o})),await oe(e,r==="global"?or:mt,fo,n,o),n}var g$=d(()=>{ge();se();be();_c();ek();s(f$,"importFromRovodev");});function h$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:fo}))}var y$=d(()=>{Ie();_c();s(h$,"lintRules");});function R$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","rovodev","Rovo Dev has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function _$(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?[]:[v(".agentsmesh/permissions.yaml","rovodev","Rovo Dev permissions are managed in config.yaml; canonical permissions are not projected.")]}function S$(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var k$=d(()=>{Oe();s(R$,"lintHooks");s(_$,"lintPermissions");s(S$,"lintIgnore");});var dZ,fZ,gZ,hZ,yZ,sg,ek=d(()=>{we();ue();d$();pt();g$();y$();k$();Ce();_c();dZ={name:fo,primaryRootInstructionPath:$r,generateRules:l$,generateCommands:m$,generateAgents:p$,generateSkills:c$,generateMcp:u$,importFrom:f$},fZ={rootInstructionPath:$r,skillDir:mt,managedOutputs:{dirs:[mt],files:[$r,Ls]},paths:{rulePath(e){return $r},commandPath(e){return `${mt}/${J(e)}/SKILL.md`},agentPath(e){return `${mt}/${K(e)}/SKILL.md`}}},gZ={rootInstructionPath:Cs,skillDir:or,managedOutputs:{dirs:[or],files:[Cs,Rc]},rewriteGeneratedPath(e){return e===$r?Cs:e.startsWith(`${mt}/`)?e.replace(`${mt}/`,`${or}/`):e===Ls?Rc:e},mirrorGlobalPath(e,t){return de(e,or,t)},paths:{rulePath(e){return Cs},commandPath(e){return `${or}/${J(e)}/SKILL.md`},agentPath(e){return `${or}/${K(e)}/SKILL.md`}}},hZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},yZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},sg={id:fo,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:dZ,capabilities:hZ,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:h$,lint:{hooks:R$,permissions:_$,ignore:S$},supportsConversion:{commands:true,agents:true},project:fZ,globalSupport:{capabilities:yZ,detectionPaths:[sO,Cs,or],layout:gZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[$r],global:[Cs]},canonicalDir:iO,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ls],global:[Rc]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:c_,detectionPaths:[$r,mt,Ls]};});function I$(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:ir,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Gr))continue;let o=basename(n.source,".md");t.push({path:`${sr}/${o}.md`,content:n.body.trim()});}return t}function L$(e){return ie(e,jr)}function C$(e){return e.mcp===null||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Ua,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function E$(e){return e.ignore.length===0?[]:[{path:Sc,content:e.ignore.join(`
149
- `)}]}var w$=d(()=>{se();kc();s(I$,"generateRules");s(L$,"generateSkills");s(C$,"generateMcp");s(E$,"generateIgnore");});async function SZ(e,t,r,n){let o=n==="global"?[Ur,ir]:[ir,Ur];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,b$),{frontmatter:m,body:p}=x(r(l,a,c));await w(join(e,Dp)),await L(c,await V(c,{...m,root:true},p)),t.push({fromTool:Gr,fromPath:a,toPath:b$,feature:"rules"});return}}async function kZ(e,t,r,n){let o=join(e,n==="global"?Es:sr),i=join(e,Dp);t.push(...await ke({srcDir:o,destDir:i,extensions:[".md"],fromTool:Gr,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:`${Dp}/${a}`,feature:"rules",content:await V(m,{...p,root:false},u)}},"mapEntry")}));}async function O$(e,t={}){let r=t.scope??"project",n=[],o=await z(Gr,e,r);return await SZ(e,n,o,r),await kZ(e,n,o,r),n.push(...await q(ig,e,r,{normalize:o})),await oe(e,r==="global"?Cn:jr,Gr,n,o),n}var b$,A$=d(()=>{ge();se();Yt();be();fe();A();B();kc();tk();b$=`${Dp}/_root.md`;s(SZ,"importRoot");s(kZ,"importNonRootRules");s(O$,"importFromTrae");});function x$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Gr}))}var T$=d(()=>{Ie();kc();s(x$,"lintRules");});var IZ,LZ,CZ,EZ,ig,tk=d(()=>{w$();pt();A$();T$();Ce();kc();IZ={name:Gr,primaryRootInstructionPath:ir,generateRules:I$,generateSkills:L$,generateMcp:C$,generateIgnore:E$,importFrom:O$},LZ={rootInstructionPath:ir,skillDir:jr,managedOutputs:{dirs:[sr,jr],files:[Ua,Sc]},paths:{rulePath(e,t){return `${sr}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},CZ={rootInstructionPath:Ur,skillDir:Cn,managedOutputs:{dirs:[Es,Cn,lO],files:[Ur,Pp]},rewriteGeneratedPath(e){return e===ir?Ur:e.startsWith(`${sr}/`)?e.replace(`${sr}/`,`${Es}/`):e.startsWith(`${jr}/`)?e.replace(`${jr}/`,`${Cn}/`):e===Ua?Pp:e===Sc?null:e},mirrorGlobalPath(e,t){return de(e,Cn,t)},paths:{rulePath(e,t){return e==="_root"?Ur:`${Es}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},EZ={rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ig={id:Gr,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:IZ,capabilities:{rules:"native",additionalRules:"native",commands:"none",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:x$,project:LZ,globalSupport:{capabilities:EZ,detectionPaths:[Ur,Es,Cn,Pp],layout:CZ},importer:{mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ua],global:[Pp]},canonicalDir:".agentsmesh",canonicalFilename:cO},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Sc]},canonicalDir:".agentsmesh",canonicalFilename:mO}},buildImportPaths:m_,detectionPaths:[sr,Ua,ir]};});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(go)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:En,content:o}]:[]}function D$(e){return ie(e,Lt)}function N$(e){return e.commands.map(t=>({path:`${Lt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function v$(e){return e.agents.map(t=>({path:`${Lt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function F$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:bi,content:t}]}var M$=d(()=>{se();Ue();ue();we();Ic();s(P$,"generateRules");s(D$,"generateSkills");s(N$,"generateCommands");s(v$,"generateAgents");s(F$,"generateMcp");});async function $$(e,t={}){let r=t.scope??"project",n=[],o=await z(go,e,r);return n.push(...await q(ag,e,r,{normalize:o})),await oe(e,r==="global"?ar:Lt,go,n,o),n}var G$=d(()=>{ge();se();be();Ic();rk();s($$,"importFromWarp");});function j$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:go}))}var U$=d(()=>{Ie();Ic();s(j$,"lintRules");});function B$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","warp","Warp 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?[]:[v(".agentsmesh/permissions.yaml","warp","Warp permissions are UI-managed; canonical permissions are not projected.")]}function W$(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var H$=d(()=>{Oe();s(B$,"lintHooks");s(K$,"lintPermissions");s(W$,"lintIgnore");});var wZ,bZ,OZ,AZ,xZ,ag,rk=d(()=>{we();ue();M$();pt();G$();U$();H$();Ce();Ic();wZ={name:go,primaryRootInstructionPath:En,generateRules:P$,generateCommands:N$,generateAgents:v$,generateSkills:D$,generateMcp:F$,importFrom:$$},bZ={rootInstructionPath:En,skillDir:Lt,managedOutputs:{dirs:[Lt],files:[En,bi]},paths:{rulePath(e){return En},commandPath(e){return `${Lt}/${J(e)}/SKILL.md`},agentPath(e){return `${Lt}/${K(e)}/SKILL.md`}}},OZ={rootInstructionPath:void 0,skillDir:ar,managedOutputs:{dirs:[ar],files:[]},rewriteGeneratedPath(e){return e.startsWith(`${Lt}/`)?e.replace(`${Lt}/`,`${ar}/`):e},mirrorGlobalPath(e,t){return de(e,ar,t)},paths:{rulePath(){return null},commandPath(e){return `${ar}/${J(e)}/SKILL.md`},agentPath(e){return `${ar}/${K(e)}/SKILL.md`}}},AZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},xZ={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},ag={id:go,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:wZ,capabilities:AZ,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:j$,lint:{hooks:B$,permissions:K$,ignore:W$},supportsConversion:{commands:true,agents:true},project:bZ,globalSupport:{capabilities:xZ,detectionPaths:[ar],layout:OZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[p_,En]},canonicalDir:uO,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[bi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:u_,detectionPaths:[En,p_,bi],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var Eo,nk,vi,z$,$c,wo,Gc,jc,V$,Fi,An,Uc,ok,J$,Y$,sk,ik,ak,Bc,Kc,Jp,lg,cg,mg,X$,Nt=d(()=>{Eo="windsurf",nk=".windsurfrules",vi=".windsurf/rules",z$=".windsurfignore",$c=".codeiumignore",wo="AGENTS.md",Gc=".windsurf/hooks.json",jc=".windsurf/mcp_config.example.json",V$=".windsurf/mcp_config.json",Fi=".windsurf/workflows",An=".windsurf/skills",Uc=".agentsmesh/rules",ok=".agentsmesh/commands",J$=".agentsmesh/agents",Y$=".agentsmesh/skills",sk=".agentsmesh/ignore",ik=".agentsmesh/hooks.yaml",ak=".agentsmesh/mcp.json",Bc=".codeium/windsurf/memories/global_rules.md",Kc=".codeium/windsurf/skills",Jp=".codeium/windsurf/global_workflows",lg=".codeium/windsurf/hooks.json",cg=".codeium/windsurf/mcp_config.json",mg=".codeium/.codeiumignore",X$=".agents/skills";});function PZ(e){let t=basename(e,".md");return t==="_root"?"root":t}function DZ(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 lk(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=PZ(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?D(a,n.body.trim()||""):n.body.trim()||"";t.push({path:`${vi}/${o}.md`,content:l});let c=DZ(n.globs);c&&(c!==o&&t.push({path:`${vi}/${c}.md`,content:l}),t.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return t}var q$=d(()=>{B();Nt();s(PZ,"ruleSlug");s(DZ,"directoryScopedRuleDir");s(lk,"generateRules");});function ck(e){return !e.ignore||e.ignore.length===0?[]:[{path:$c,content:e.ignore.join(`
150
- `)}]}var Q$=d(()=>{Nt();s(ck,"generateIgnore");});function mk(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?D(r,t.body.trim()||""):t.body.trim();return {path:`${Fi}/${t.name}.md`,content:n}})}var Z$=d(()=>{B();Nt();s(mk,"generateCommands");});function pk(e){return e.agents.map(t=>({path:`${An}/${K(t.name)}/SKILL.md`,content:De(t)}))}var eG=d(()=>{ue();Nt();s(pk,"generateAgents");});function uk(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:jc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var tG=d(()=>{Nt();s(uk,"generateMcp");});function NZ(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 vZ(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Fn(i))continue;let a=Ze(i),l=At(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(t[NZ(r)]=o);}return t}function dk(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=vZ(e.hooks);return Object.keys(t).length===0?[]:[{path:Gc,content:JSON.stringify({hooks:t},null,2)}]}var rG=d(()=>{qr();Nt();s(NZ,"windsurfEventName");s(vZ,"toWindsurfHooks");s(dk,"generateHooks");});function fk(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?D(n,r.body.trim()||""):r.body.trim()||"";t.push({path:`${An}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)t.push({path:`${An}/${r.name}/${i.relativePath}`,content:i.content});}return t}var nG=d(()=>{B();Nt();s(fk,"generateSkills");});var oG=d(()=>{q$();Q$();Z$();eG();tG();rG();nG();});var sG=d(()=>{oG();});function iG(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 aG(e,t,r){let n=join(e,Fi),i=(await U(n)).filter(l=>l.endsWith(".md")),a=join(e,ok);for(let l of i){let c=await k(l);if(!c)continue;let m=relative(n,l).replace(/\\/g,"/");await w(a);let p=join(a,m),u=r(c,l,p),{frontmatter:f,body:g}=x(u),h=await Se(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let R=iG(f.allowedTools);return R.length>0?R:iG(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:Eo,fromPath:l,toPath:`${ok}/${m}`,feature:"commands"});}}var lG=d(()=>{A();B();fe();Nt();s(iG,"toStringArray");s(aG,"importWorkflows");});async function cG(e,t,r,n=An){await Ec([n],{projectRoot:e,destCanonicalSkillsDir:Y$,targetName:"windsurf",normalize:r,results:t},[wc({canonicalAgentsDir:J$})]);}var mG=d(()=>{bc();Nt();s(cG,"importSkills");});async function uG(e,t){let r=join(e,Gc),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=GZ(o.hooks);if(Object.keys(i).length===0)return;let a=join(e,ik);await w(dirname(a)),await L(a,stringify(i)),t.push({fromTool:Eo,fromPath:r,toPath:ik,feature:"hooks"});}catch{}}function $Z(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 GZ(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=$Z(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 dG(e,t){let r=[jc,V$];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,ak);await w(dirname(l)),await L(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),t.push({fromTool:Eo,fromPath:o,toPath:ak,feature:"mcp"});return}catch{}}}var fG=d(()=>{A();Nt();s(uG,"importWindsurfHooks");s($Z,"canonicalHookEventName");s(GZ,"windsurfHooksToCanonical");s(dG,"importWindsurfMcp");});async function gG(e,t){let r=t?.scope??"project",n=[],o=await z(Eo,e),i=await z("codex-cli",e),a=join(e,Uc),l=join(e,nk),c=await k(l);if(c!==null){await w(a);let f=join(a,"_root.md"),g=o(c,l,f).trim(),h=await V(f,{root:true},g);await L(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${Uc}/_root.md`,feature:"rules"});}if(c===null){let f=join(e,wo),g=await k(f);if(g!==null){await w(a);let h=join(a,"_root.md"),R=o(i(g,f,h),f,h).trim(),_=await V(h,{root:true},R);await L(h,_),n.push({fromTool:"windsurf",fromPath:f,toPath:`${Uc}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await ke({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 R=h.replace(/\//g,"-");if(!wd(h))return await $n(join(a,`${R}.md`)),null;let _=join(a,`${R}.md`);return {destPath:_,toPath:`${Uc}/${R}.md`,feature:"rules",content:await V(_,{root:false,globs:[`${h}/**`]},g(_))}},"mapEntry")}));let m=join(e,vi);n.push(...await ke({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:R,body:_}=x(g(h)),S={...R};return typeof S.glob=="string"&&S.glob.trim()&&(S.globs=[S.glob],delete S.glob),{destPath:h,toPath:`${Uc}/${f}`,feature:"rules",content:await V(h,{...S,root:false},_)}},"mapEntry")}));let p=join(e,z$),u=await k(p);if((u===null||!u.trim())&&(p=join(e,$c),u=await k(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let R=h.trim();R&&!R.startsWith("#")&&g.push(R);}if(g.length>0){await w(join(e,".agentsmesh"));let h=join(e,sk);await L(h,g.join(`
151
- `)),n.push({fromTool:"windsurf",fromPath:p,toPath:sk,feature:"ignore"});}}return await aG(e,n,o),await cG(e,n,o),await uG(e,n),await dG(e,n),n}var hG=d(()=>{ge();A();B();fe();Yt();Vm();Nt();lG();mG();fG();s(gG,"importFromWindsurf");});function yG(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:Eo,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:Eo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var RG=d(()=>{Nt();s(yG,"lintRules");});function _G(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function SG(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var kG=d(()=>{Oe();s(_G,"lintCommands");s(SG,"lintMcp");});function WZ(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 HZ,zZ,VZ,JZ,IG,LG=d(()=>{sG();ea();Nt();pt();hG();RG();kG();Ce();Ml();ue();s(WZ,"directoryScopedRuleDir");HZ={name:"windsurf",primaryRootInstructionPath:wo,generateRules:lk,generateCommands:mk,generateAgents:pk,generateSkills:fk,generateMcp:uk,generateHooks:dk,generateIgnore:ck,importFrom:gG},zZ={rootInstructionPath:wo,extraRuleOutputPaths(e){if(e.root)return [wo];let t=WZ(e.globs);return t!==null?[`${t}/AGENTS.md`]:[]},skillDir:An,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 `${vi}/${e}.md`},commandPath(e,t){return `${Fi}/${e}.md`},agentPath(e,t){return gr(t,"windsurf")?`.windsurf/skills/${K(e)}/SKILL.md`:null}}},VZ={rootInstructionPath:Bc,skillDir:Kc,managedOutputs:{dirs:[Kc,Jp,X$],files:[Bc,lg,cg,mg]},rewriteGeneratedPath(e){return e===wo?Bc:e.startsWith(`${vi}/`)||/\/AGENTS\.md$/.test(e)?null:e.startsWith(`${An}/`)?e.replace(`${An}/`,`${Kc}/`):e.startsWith(`${Fi}/`)?e.replace(`${Fi}/`,`${Jp}/`):e===Gc?lg:e===jc?cg:e===$c?mg:e},mirrorGlobalPath(e,t){return de(e,".codeium/windsurf/skills",t)},paths:{rulePath(e,t){return Bc},commandPath(e,t){return `${Jp}/${e}.md`},agentPath(e,t){return gr(t,"windsurf")?`${Kc}/${K(e)}/SKILL.md`:null}}},JZ={rules:"native",additionalRules:"partial",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},IG={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:HZ,capabilities:{rules:"native",additionalRules:"native",commands:Zr("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:yG,lint:{commands:_G,mcp:SG},project:zZ,globalSupport:{capabilities:JZ,detectionPaths:[Bc,Kc,Jp,lg,cg,mg],layout:VZ},buildImportPaths:d_,detectionPaths:[".windsurfrules",".windsurf"],nativeInstall:{pickPaths:[{prefix:".windsurf/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}}],dialectHints:[{frontmatterKey:"trigger"}]},conversionDefaults:{agentsToSkills:true}};});function CG(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=ae(n,r);return o?[{path:wn,content:o}]:[]}var EG=d(()=>{Ue();Ba();s(CG,"generateRules");});async function bG(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 Je(e,wG,l),r.push({fromTool:"zed",fromPath:t,toPath:wG,feature:"mcp"}));}var wG,OG=d(()=>{A();nn();Ba();wG=".agentsmesh/mcp.json";s(bG,"importZedMcp");});async function AG(e,t={}){let r=t.scope??"project",n=[],o=await z("zed",e,r);return n.push(...await q(ug,e,r,{normalize:o})),await bG(e,r==="global"?yo:ho,n),n}var xG=d(()=>{ge();be();OG();Ba();hk();s(AG,"importFromZed");});function TG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var PG=d(()=>{Ie();Ba();s(TG,"lintRules");});function DG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function NG(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?[]:[v(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function vG(e){return e.ignore.length===0?[]:[v(".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 FG=d(()=>{Oe();s(DG,"lintHooks");s(NG,"lintPermissions");s(vG,"lintIgnore");});function t8(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 XZ,qZ,QZ,ZZ,e8,ug,hk=d(()=>{EG();xG();PG();FG();Ce();Ba();XZ={name:"zed",primaryRootInstructionPath:wn,generateRules:CG,importFrom:AG},qZ={rootInstructionPath:wn,managedOutputs:{dirs:[],files:[wn,ho]},paths:{rulePath(e){return wn},commandPath(){return null},agentPath(){return null}}},QZ={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[yo]},rewriteGeneratedPath(e){return e===ho?yo:e},paths:{rulePath(){return yo},commandPath(){return null},agentPath(){return null}}},ZZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},e8={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(t8,"mergeZedSettings");ug={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:XZ,capabilities:ZZ,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:TG,lint:{hooks:DG,permissions:NG,ignore:vG},project:qZ,globalSupport:{capabilities:e8,detectionPaths:[yo],layout:QZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[wn],global:[]},canonicalDir:gO,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:ho,content:JSON.stringify({context_servers:n},null,2)}]},mergeGeneratedOutputContent(e,t,r,n){return n===ho||n===yo?t8(e,r):null},buildImportPaths:f_,detectionPaths:[wn,ho]};});var zw={};my(zw,{BUILTIN_TARGETS:()=>Pe,TARGET_IDS:()=>je,getBuiltinTargetDefinition:()=>Hr,getEffectiveTargetSupportLevel:()=>dg,getTargetCapabilities:()=>Di,getTargetDetectionPaths:()=>Rk,getTargetLayout:()=>Ke,getTargetManagedOutputs:()=>_k,getTargetPrimaryRootInstructionPath:()=>o8,getTargetSkillDir:()=>Yp,isBuiltinTargetId:()=>Vt,resolveTargetFeatureGenerator:()=>Wc,rewriteGeneratedOutputPath:()=>Sk});function n8(){return yk||(bE(Pe),yk=new Map(Pe.map(e=>[e.id,e]))),yk}function Hr(e){return n8().get(e)}function Di(e,t="project"){let r=Hr(e)??re(e);if(!r)return;if(t==="global"&&!r.globalSupport)return By(r8);let n=t==="global"?r.globalSupport.capabilities:r.capabilities;return By(n)}function Rk(e,t="project"){let r=Hr(e)??re(e);return r?t==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Ke(e,t="project"){let r=Hr(e)??re(e);if(r)return t==="global"?r.globalSupport?.layout:r.project}function o8(e,t="project"){return Ke(e,t)?.rootInstructionPath}function Yp(e,t="project"){return Ke(e,t)?.skillDir}function _k(e,t="project"){return Ke(e,t)?.managedOutputs}function Sk(e,t,r="project"){let n=Ke(e,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(t):t:null}function MG(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?!Fl(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?!gr(r,e.id,true,n):false}function s8(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?Fl(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?gr(r,e.id,true,n):false}function dg(e,t,r,n="project"){let o=Di(e,n)?.[t]?.level??"none",i=Hr(e)??re(e);return n==="global"&&i&&!i.globalSupport?"none":o==="none"&&s8(i,t,r,n)?"embedded":o!=="embedded"?o:MG(i,t,r,n)?"none":o}function Wc(e,t,r,n="project"){let o=Hr(e)??re(e);if(!o?.generators||MG(o,t,r,n))return;let i=i8[t];return i===null?void 0:i(o.generators)}var r8,Pe,yk,i8,xe=d(()=>{Ml();ea();rt();Ky();Nn();lR();g_();h_();R_();CA();k_();$x();OT();B_();J_();Q_();dS();fS();gS();NS();vS();FS();MS();BS();WS();zS();JS();YS();XS();ZS();ek();tk();rk();LG();hk();r8={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Pe=[xd,af,lf,cf,LA,mf,Mx,bT,yf,Lf,wf,vf,Ff,Mf,Hf,zf,Vf,Jf,qf,Qf,Zf,eg,tg,rg,og,sg,ig,ag,IG,ug];s(n8,"builtinTargetsMap");s(Hr,"getBuiltinTargetDefinition");s(Di,"getTargetCapabilities");s(Rk,"getTargetDetectionPaths");s(Ke,"getTargetLayout");s(o8,"getTargetPrimaryRootInstructionPath");s(Yp,"getTargetSkillDir");s(_k,"getTargetManagedOutputs");s(Sk,"rewriteGeneratedOutputPath");s(MG,"isFeatureSuppressedByConversion");s(s8,"isConversionUpgrading");s(dg,"getEffectiveTargetSupportLevel");i8={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(Wc,"resolveTargetFeatureGenerator");});function c8(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 fg(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=l8.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(c8);let r=t[0];return r.uniqueHits===0?null:r.id}var l8,$G,kk=d(()=>{A();xe();l8=(()=>{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(c8,"compare");s(fg,"detectNativeFormat");$G=Pe.map(e=>e.detectionPaths[0]).filter(e=>e!==void 0);});async function Xp(e,t){let r=re(t);if(!r)throw new Error(`No importer registered for native target: ${t}`);return r.generators.importFrom(e)}var Ik=d(()=>{rt();s(Xp,"importNativeToCanonical");});async function rl(e){if(!await j(e))return false;if(await j(join(e,Ck)))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,Ck)))return !0}catch{return false}return false}async function qp(e,t={}){if(!await j(e))return [];if(await j(join(e,Ck))){let r=await pd(e,t);return r?[r]:[]}return Js(e,t)}var Ck,gg=d(()=>{A();Nl();Ck="SKILL.md";s(rl,"isSkillPackLayout");s(qp,"loadSkillsAtExtendPath");});async function hg(e,t={}){return (await Vs(e,t)).filter(n=>!vn(basename(n.source)))}async function yg(e,t={}){return (await zs(e,t)).filter(n=>!vn(basename(n.source)))}async function Rg(e,t={}){return (await Hs(e,t)).filter(n=>!vn(basename(n.source)))}async function GG(e,t={}){return Js(e,t)}var _g=d(()=>{jm();Gm();$m();Nl();$o();s(hg,"importAgents");s(yg,"importCommands");s(Rg,"importRules");s(GG,"importSkills");});function wk(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 bk(e){return e.toLowerCase().endsWith(".md")}function UG(e,t){for(let r of wk(re(e)?.importer,t))if(r.extensions.some(n=>!bk(n)))return true;return false}function y8(e,t){let r=new Set;for(let n of wk(re(e)?.importer,t))for(let o of n.extensions)bk(o)||r.add(o.toLowerCase());return r}function R8(e){return _d().filter(t=>UG(t,e))}async function k8(e,t,r){return _8[e](t,r)}async function I8(e,t,r){return S8[e](t,r)}async function L8(e,t,r,n={}){let o=wk(re(t)?.importer,r),i=await U(e),a=new Set;for(let p of o)for(let u of p.extensions)bk(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 R of o){if(!R.extensions.some(I=>u.toLowerCase().endsWith(I.toLowerCase())))continue;let S=await R.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(S){h=S;break}}h&&(await w(dirname(h.destPath)),await L(h.destPath,h.content));}return {entities:await k8(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function Ok(e,t,r={}){let n=r.restrictToTarget,o=n?UG(n,t)?[n]:[]:R8(t),i=new Set;for(let f of o)for(let g of y8(f,t))i.add(g);let a=await I8(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 L8(e,f,t,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let R=c(h);m.has(R)||m.set(R,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 Sg(e,t={}){let r=await Ok(e,"commands",t);return {commands:[...r.entities],cleanup:r.cleanup}}async function kg(e,t={}){let r=await Ok(e,"rules",t);return {rules:[...r.entities],cleanup:r.cleanup}}async function Ig(e,t={}){let r=await Ok(e,"agents",t);return {agents:[...r.entities],cleanup:r.cleanup}}var _8,S8,Lg=d(()=>{jm();Gm();$m();A();rt();$o();_g();s(wk,"directorySpecsFor");s(bk,"isMarkdownExtension");s(UG,"hasNonMdEntityMapper");s(y8,"nonMdEntityExtensions");s(R8,"targetsWithNonMdEntityMapper");_8={rules:Hs,commands:zs,agents:Vs},S8={rules:Rg,commands:yg,agents:hg};s(k8,"parseEntityDir");s(I8,"importEntities");s(L8,"readToolNativeEntities");s(Ok,"readEntityDirWithMappers");s(Sg,"readCommandsDirWithMappers");s(kg,"readRulesDirWithMappers");s(Ig,"readAgentsDirWithMappers");});function w8(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function b8(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 Cg(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 Tk(e,t){if(basename(e)===t)return e;let r=join(e,t);return await j(r)?r:null}async function O8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await Rg(o,t),cleanup:n};let i=await kg(o,{parseOpts:t});return {rules:[...i.rules],cleanup:i.cleanup}}async function A8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await yg(o,t),cleanup:n};let i=await Sg(o,{parseOpts:t});return {commands:[...i.commands],cleanup:i.cleanup}}async function x8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await hg(o,t),cleanup:n};let i=await Ig(o,{parseOpts:t});return {agents:[...i.agents],cleanup:i.cleanup}}async function T8(e,t){if(await rl(e))return qp(e,t);let r=join(e,"skills");return await rl(r)?qp(r,t):[]}async function Eg(e,t={}){let r=s(async()=>{},"noop"),n=join(e,".agentsmesh");if(await j(n))return {canonical:await Gt(e,t),cleanup:r};let o=t.enableTargetEntityMappers??false,i=w8(),a=await O8(e,t,o);i.rules=a.rules;let l=await A8(e,t,o);i.commands=l.commands;let c=await x8(e,t,o);i.agents=c.agents,i.skills=await T8(e,t);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(b8(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 Pk=d(()=>{A();_g();Lg();Zi();gg();s(w8,"emptyCanonical");s(b8,"isCanonicalSliceEmpty");s(Cg,"normalizeSlicePath");s(Tk,"resolveEntityDir");s(O8,"parseRulesAt");s(A8,"parseCommandsAt");s(x8,"parseAgentsAt");s(T8,"loadSkillsForPartialSlice");s(Eg,"loadCanonicalSliceAtPath");});async function wg(e){let t=await k(e);if(!t)return "";let r=Yr(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 BG(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 !(dE(o)||!n.includes("/")&&(cd(n)||fE(n)))},"filter")});}var Dk=d(()=>{A();B();$o();s(wg,"readSkillFrontmatterName");s(BG,"cpFilteredSkill");});function Nk(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function N8(e){let t={...e},r=e.alwaysApply===true;if(t.root=r,delete t.alwaysApply,!r){let n=Nk(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 v8(e){let t={...e};return t.trigger==="always"&&(t.trigger="always_on"),typeof t.glob=="string"&&(t.globs=Nk(t.globs).length>0?Nk(t.globs):[t.glob],delete t.glob),t}function vk(e){let t=Yr(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=N8(r):"trigger"in r||"glob"in r?o=v8(r):o=r,D(o,n.trim())}var KG=d(()=>{B();s(Nk,"toStrArray");s(N8,"normalizeCursorKeys");s(v8,"normalizeWindsurfKeys");s(vk,"normalizeMdcToCanonical");});function Fk(e){return e.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function Mk(e){return e.toLowerCase().endsWith(".mdc")?basename(e).replace(/\.mdc$/i,".md"):basename(e)}function HG(e,t,r){let o=relative(e,t).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=Fk(o[o.length-1]);return i?`${i}-${r}`:r}var zG=d(()=>{s(Fk,"sanitizeNameSegment");s(Mk,"computeDestName");s(HG,"namespacedName");});async function j8(){let e=await mkdtemp(join(tmpdir(),"am-install-manual-")),t=join(e,"repo");return await w(join(t,".agentsmesh")),{discoveryRoot:t,cleanup:s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup")}}function XG(e,t){let r=e.toLowerCase();return !!(r.endsWith(".md")||t&&r.endsWith(".mdc"))}async function U8(e,t,r){if(!XG(e,r))throw new Error(`Manual install only supports .md files for this collection: ${e}`);if(await w(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),vk(n));}else await cp$1(e,join(t,basename(e)));}async function B8(e,t,r){if((await stat(e)).isFile())return U8(e,t,r);let o=(await U(e)).filter(l=>XG(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=Mk(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await w(t);for(let l of o){let c=Mk(l),p=(i.get(c)??0)>1?HG(e,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(e,l).replace(/\\/g,"/").split("/").map(Fk).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),vk(f));}else await cp$1(l,join(t,p));}}async function VG(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 w(t);for(let i of r)await cp$1(o.get(i),join(t,i),{recursive:true});return true}async function K8(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 w(i),await cp$1(dirname(e),i,{recursive:true});return}if(await rl(e)){if((await stat(join(e,"SKILL.md")).catch(()=>null))?.isFile()){if(await VG(e,t,r.preferredSkillNames??[]))return;let l=await wg(join(e,"SKILL.md"))||basename(e),c=join(t,l);await w(t),await BG(e,c);return}if(await VG(e,t,r.preferredSkillNames??[]))return;await w(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 Og(e,t,r={}){let n=await j8();try{let o=join(n.discoveryRoot,".agentsmesh",t);return t==="skills"?await K8(e,o,r):await B8(e,o,t==="rules"),n}catch(o){throw await n.cleanup(),o}}var Gk=d(()=>{A();gg();Dk();$o();KG();zG();s(j8,"createStageRoot");s(XG,"isAcceptedFile");s(U8,"stageSingleFile");s(B8,"stageMarkdownCollection");s(VG,"stagePreferredSkills");s(K8,"stageSkills");s(Og,"stageManualInstallScope");});function W8(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function qG(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 Og(o,e.as);try{return Gt(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!e.path){let o=join(t,".agentsmesh");if(!await j(o)){if(await rl(t)){let a=await qp(t);return {...W8(),skills:a}}let i=e.target??await fg(t);if(!i)throw new Error(`Extend "${e.name}": No supported agent configuration found in ${t}.
152
- Expected one of: .agentsmesh/, ${$G.join(", ")}.`);y.info(`[agentsmesh] Extend "${e.name}": ${e.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await Xp(t,i);}return Gt(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 Xp(t,e.target)),Gt(t)}let{sliceRoot:n}=await Cg(r);try{let{canonical:o}=await Eg(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 QG=d(()=>{kk();A();ne();Zi();Ik();gg();Pk();Gk();s(W8,"emptyCanonical");s(qG,"loadCanonicalForExtend");});function Ag(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 jk=d(()=>{ne();s(Ag,"applyExtendPick");});var V8,Hc,xg=d(()=>{V8=["rules","commands","agents","skills"],Hc=z$1.enum(V8);});var J8,ZG,ej=d(()=>{vo();xg();J8=z$1.enum(["github","gitlab","git","local"]),ZG=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:J8,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Ol).min(1),pick:Pm.optional(),target:fr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Hc.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function tj(e){let t=qi(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 X8(e,t){return t?e.length===t.length&&[...e].sort().every((r,n)=>r===[...t].sort()[n]):true}async function Mi(e){let t=join(e,"pack.yaml"),r=await k(t);if(r===null)return null;try{let n=parse(r);return ZG.parse(n)}catch{return null}}async function nj(e,t,r){if(!await j(e))return null;let n=tj(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 Mi(a);if(l&&tj(l.source)===n&&l.target===r.target&&l.as===r.as&&X8(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function Tg(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 Mi(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var zc=d(()=>{A();ej();vm();s(tj,"sourceIdentity");s(X8,"sameFeatures");s(Mi,"readPackMetadata");s(nj,"findExistingPack");s(Tg,"listPacks");});function oj(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function q8(e){let[t,r,n,o,i,a,l,c]=await Promise.all([Hs(join(e,"rules")),zs(join(e,"commands")),Vs(join(e,"agents")),Js(join(e,"skills")),Xr(join(e,"mcp.json")),ud(join(e,"permissions.yaml")),dd(join(e,"hooks.yaml")),fd(join(e,"ignore"))]);return {...oj(),rules:t,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function sj(e){let t=join(e,"packs"),r=await Tg(t),n=oj();for(let{meta:o,packDir:i}of r){let a=await q8(i),l=Bk(a,o.features),c=Ag(l,o.features,o.pick,o.name);n=vl(n,c);}return n}var ij=d(()=>{$m();Gm();jm();Nl();Um();Ny();Fy();My();Gy();Oo();jk();zc();s(oj,"emptyCanonical");s(q8,"loadPackCanonical");s(sj,"loadPacksCanonical");});function Bk(e,t){if(t.length===0)return aj();let r=new Set(t.flatMap(n=>Z8[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 aj(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Ft(e,t,r={},n=join(t,".agentsmesh")){let o=await Pl(e,t,{refreshCache:r.refreshRemoteCache===true}),i=aj();for(let c of o){let m=await qG(c),p=Bk(m,c.features),u=Ag(p,c.features,c.pick,c.name);i=vl(i,u);}let a=await sj(n);i=vl(i,a);let l=await Gt(n);return i=vl(i,l),{canonical:i,resolvedExtends:o}}var Z8,Oo=d(()=>{od();Zi();Gy();QG();jk();ij();Z8={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(Bk,"filterCanonicalByFeatures");s(aj,"emptyCanonical");s(Ft,"loadCanonicalWithExtends");});function X9(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 q9(e){return e.startsWith("file:")||e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^[A-Za-z]:[/\\]/.test(e)}function jj(e){try{return realpathSync(e)}catch{return e}}function Uj(e,t){let r=jj(resolve(t)),n=jj(e);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function Q9(e,t){let{source:r}=e,n;if(q9(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(t,i);Uj(a,t),n=pathToFileURL(a).href;}else {let i=X9(r,t);Uj(i,t),n=pathToFileURL(i).href;}return await import(n)}function Z9(e){return "descriptor"in e?[e.descriptor]:"descriptors"in e&&Array.isArray(e.descriptors)?e.descriptors:"default"in e?[e.default]:[]}async function Wg(e,t){let r;try{r=await Q9(e,t);}catch(i){throw new Error(`Plugin '${e.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=Z9(r),o=[];for(let i of n)try{let a=gd(i);yd(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 Bj(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 Wg(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:`${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(`
153
153
  `);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
154
- ${a}`)}return r}var eI=d(()=>{jy();rt();ne();s(X9,"resolveNpmSpecifier");s(q9,"isLocalSource");s(jj,"canonicalize");s(Uj,"assertSourceInsideProjectRoot");s(Q9,"importPluginModule");s(Z9,"extractDescriptors");s(Wg,"loadPlugin");s(Bj,"loadAllPlugins");});async function He(e,t){e.plugins.length!==0&&await Bj(e.plugins,t);}var Vr=d(()=>{eI();s(He,"bootstrapPlugins");});function nI(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=I3(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]=dg(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]=dg(u,"additionalRules",e,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function I3(e){if(!e)return 0;let t=0;for(let r of Object.values(e))Array.isArray(r)&&(t+=r.length);return t}var qj=d(()=>{xe();s(nI,"buildCompatibilityMatrix");s(I3,"countHooks");});function Qj(e){return L3[e]??e}var L3,Zj=d(()=>{L3={"claude-code":"Claude"};s(Qj,"matrixColumnLabel");});function e0(e){return Object.fromEntries(C3.map(t=>[t,Object.fromEntries(je.map(r=>{let o=Di(r,e)?.[t];return [r,o??{level:"none"}]}))]))}function E3(e,t){return Sl()?`${e}${t}${tu.reset}`:t}function r0(e){let t=oI[e];return E3(w3[e],t)}var C3,t0,oI,tu,w3,sI=d(()=>{Nn();xe();Wu();C3=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(e0,"buildSupportMatrix");t0=e0("project"),e0("global"),oI={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},tu={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(E3,"colorize");w3={native:tu.green,embedded:tu.blue,partial:tu.yellow,none:tu.dim};s(r0,"coloredSymbol");});function iI(e,t){let r=Sl(),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(($,Y)=>r?`${$}${Y}${n.reset}`:Y,"c"),i=s($=>$.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s(($,Y)=>{let ee=i($),M=Math.max(0,Y-ee);return $+" ".repeat(M)},"padWithColor"),l=Math.max(12,...t.map($=>$.length)),c=t.map($=>Qj($)),m=Math.max(8,l),p=Math.max(12,...e.map($=>$.feature.length)),u=s($=>o(n.dim,"\u250C"+$.map(Y=>"\u2500".repeat(Y)).join("\u252C")+"\u2510"),"border"),f=s($=>o(n.dim,"\u251C"+$.map(Y=>"\u2500".repeat(Y)).join("\u253C")+"\u2524"),"sep"),g=s($=>o(n.dim,"\u2514"+$.map(Y=>"\u2500".repeat(Y)).join("\u2534")+"\u2518"),"bottom"),h=[p,...t.map(()=>m)],R=u(h),_=[a(o(n.bold+n.cyan,"Feature"),p),...c.map($=>a(o(n.bold+n.magenta,$),m))],S=o(n.dim,"\u2502")+_.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),I=f(h),b=e.map($=>{let Y=[a(o(n.cyan,$.feature),p)];for(let ee of t){let M=$.support[ee]??"none",te=r?r0(M):oI[M];Y.push(a(` ${te} `,m));}return o(n.dim,"\u2502")+Y.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),P=g(h),T=[R,S,I,...b,P];T.push("");let W=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return T.push(o(n.bold,"Legend: ")+W.join(" ")),T.join(`
155
- `)}var n0=d(()=>{Zj();sI();Wu();s(iI,"formatMatrix");});function lI(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 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?"":`
156
156
  Per-file details:
157
157
  `+t.join(`
158
158
  `)+`
159
- `}var o0=d(()=>{s(lI,"formatVerboseDetails");});var cI=d(()=>{qj();n0();o0();});var mI={};my(mI,{runMatrix:()=>ru});async function ru(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 He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=nI(a,c,n),u=lI(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var nu=d(()=>{tt();Oo();cI();Vr();s(ru,"runMatrix");});var pI={};my(pI,{renderMatrix:()=>ou});function ou(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=iI(r,e.data.targets);process.stdout.write(n),process.stdout.write(`
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(`
160
160
  `),t?.verbose&&e.verboseDetails&&(process.stdout.write(e.verboseDetails),process.stdout.write(`
161
- `));}var su=d(()=>{ne();cI();s(ou,"renderMatrix");});function dC(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(dC,"createRouter");ne();var Ks={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"}},yC=Object.keys(Ks);function zu(){let e=Ks.add;return `
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 `
162
162
  Usage: ${e.usage}
163
- Example: ${e.example}`}s(zu,"lessonsAddHint");var Vu=[{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)"}],py=[{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: ${yC.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 Ll(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(Ll,"formatFlags");function uy(){let e=py.map(t=>`- ${t.name.padEnd(8)} ${t.description}
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}
165
165
  Usage: ${t.usage}
166
- ${Ll(t.flags)}`).join(`
166
+ ${Hl(t.flags)}`).join(`
167
167
 
168
168
  `);y.info(`agentsmesh <command> [flags]
169
169
 
170
170
  Global flags:
171
- ${Ll(Vu)}
171
+ ${Hl(yd)}
172
172
 
173
173
  Commands:
174
174
  ${e}
175
175
 
176
- Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(uy,"printHelp");function Ju(e,t=[]){let r=py.find(o=>o.name===e);if(!r){uy();return}let n=t[0];if(e==="lessons"&&n!==void 0&&n.length>0){Tz(r,n);return}y.info(`${r.usage}
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}
177
177
 
178
178
  ${r.description}
179
179
 
180
180
  Command flags:
181
- ${Ll(r.flags)}
181
+ ${Hl(r.flags)}
182
182
 
183
183
  Global flags:
184
- ${Ll(Vu)}`);}s(Ju,"printCommandHelp");function Tz(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=Ks[t],o=n?.example!==void 0?`
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?`
185
185
 
186
186
  Example:
187
187
  ${n.example}`:"";y.info(`${n?.usage??`agentsmesh lessons ${t} [flags]`}
188
188
 
189
189
  Command flags:
190
- ${Ll(r)}
190
+ ${Hl(r)}
191
191
 
192
192
  Global flags:
193
- ${Ll(Vu)}${o}`);}s(Tz,"printLessonsSubcommandHelp");var Yu;function vz(){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(vz,"readPackageVersion");function Fz(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let e=globalThis.__AGENTSMESH_VERSION__;return typeof e=="string"?e:"unknown"}s(Fz,"getVersionFallback");function Ji(){return Yu||(Yu=vz()??Fz(),Yu)}s(Ji,"getVersion");function _C(){process.stdout.write(`agentsmesh v${Ji()}
194
- `);}s(_C,"printVersion");ne();function Cl(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(Cl,"emitJson");var Pn=class extends Error{static{s(this,"CliUsageError");}constructor(t){super(t),this.name="CliUsageError";}};function SC(e,t){let r=e instanceof Pn?2:1;if(t?.json)return Cl(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(SC,"handleError");ne();function it(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`;Cl(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(it,"handleResult");tt();Oo();A();Qu();function Dg(e){return createHash("sha256").update(e,"utf8").digest("hex")}s(Dg,"hashContent");async function Ng(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(Ng,"hashFile");async function vg(e){try{if(!Xu(e)){let r=await readFile(e);return createHash("sha256").update(r).digest("hex")}let t=await readFile(e,"utf-8");return t.startsWith(bl)&&(t=t.slice(bl.length)),t=qu(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(vg,"hashFileForManifest");zc();var Hk=".lock",n9=[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 o9(e){return e.startsWith("packs/")?false:n9.some(t=>t(e))}s(o9,"isCanonical");var s9={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 Fg(e){let t=join(e,Hk),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(Fg,"readLock");async function Mg(e,t){let r=join(e,Hk),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
+ ${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.
197
197
  # Tracks the state of all config files for team conflict resolution.
198
198
 
199
- `+stringify(n);await L(r,o);}s(Mg,"writeLock");async function vs(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===Hk||!o9(o))continue;let i=await Ng(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(vs,"buildChecksums");function $g(e,t,r){if(r.length===0)return [];let n=r.map(a=>s9[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($g,"detectLockedFeatureViolations");async function Gg(e){let t=await Tg(e),r={};for(let{meta:n}of t)r[n.name]=n.content_hash;return r}s(Gg,"buildPackChecksums");async function Vc(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 vs(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
200
- `),a=Dg(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;t[r.name]=`local:${l}`;}return t}s(Vc,"buildExtendChecksums");xe();rt();function Jc(e){return e?(e.outputFamilies??[]).filter(t=>t.kind==="additional").flatMap(t=>[...t.explicitPaths??[]]):[]}s(Jc,"getAdditionalRootDecorationPaths");function lj(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(lj,"resolveRewriteFamilyId");yt();oR();function i9(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(i9,"addDirectoryMapping");function cj(e,t,r){let n=posix.dirname(t),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)i9(e,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(cj,"addSkillDirectoryMappings");xe();function mj(e,t,r="project"){let n=Ke(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(mj,"ruleTargetPath");function pj(e,t,r,n="project"){let o=Ke(e,n);return o?o.paths.commandPath(t,r):null}s(pj,"commandTargetPath");function uj(e,t,r,n="project"){let o=Ke(e,n);return o?o.paths.agentPath(t,r):null}s(uj,"agentTargetPath");Ct();nt();Nt();xe();function c9(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(c9,"addDirectoryMapping");function zk(e,t,r,n="project"){let o=new Map;for(let a of t.rules){let l=mj(e,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of t.commands){let l=pj(e,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of t.agents){let l=uj(e,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=Yp(e,n);if(!i)return o;for(let a of t.skills){c9(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),cj(o,m,p);}}return o}s(zk,"buildReferenceMap");yt();yt();xe();function fj(e,t,r,n){let o=n.normalize(t),i=n.normalize(r);e.set(o,i),e.set(`${o}/`,`${i}/`);}s(fj,"addPackAbsoluteDirMapping");function m9(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(m9,"skillSupportingDirPrefixes");function gj(e,t,r,n,o){let i=Yp(t,o);if(!i)return;let a=le(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));fj(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 m9(c.supportingFiles))fj(e,a.join(m,u),a.join(p,u),a);}}s(gj,"addPackSkillArtifactMappings");yt();function p9(e){return `.agentsmesh/rules/${basename(e.source)}`}s(p9,"canonicalRulePath");function u9(e){return `.github/instructions/${basename(e.source,".md")}.instructions.md`}s(u9,"copilotInstructionsPath");function yj(e,t,r,n,o){if(e!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=le(r);for(let a of o.rules)a.root||a.globs.length===0||t.set(i.normalize(i.join(r,p9(a))),i.normalize(i.join(r,u9(a))));}s(yj,"applyCopilotInstructionArtifactRefs");xe();function Vk(e,t){t!==void 0&&t.length>0&&!e.includes(t)&&e.push(t);}s(Vk,"pushUnique");function Rj(e,t,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(t.source)}`);Vk(o,i);let a=Ke(e,n);if(t.root)for(let l of Jc(a))Vk(o,l);for(let l of a?.extraRuleOutputPaths?.(t,{refs:r,scope:n})??[])Vk(o,l);return o}s(Rj,"extraRuleOutputPaths");xe();function _j(e,t,r,n,o,i){let a=Ke(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(_j,"addSkillMirrorSourceEntry");function f9(e){return `.agentsmesh/commands/${e.name}.md`}s(f9,"canonicalCommandPath");function g9(e){return `.agentsmesh/agents/${e.name}.md`}s(g9,"canonicalAgentPath");function h9(e){return `.agentsmesh/skills/${e.name}/SKILL.md`}s(h9,"canonicalSkillPath");function Sj(e,t,r,n,o,i){let a=i?.scope??"project",l=le(n),c=new Map([...zk(e,t,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return yj(e,c,n,o,t),gj(c,e,t,n,a),c}s(Sj,"buildArtifactPathMap");function kj(e,t,r,n="project",o){let i=zk(e,t,r,n),a=new Map;for(let l of t.rules)for(let c of Rj(e,l,i,n))a.set(c,l.source);for(let l of t.commands){let c=i.get(f9(l));c&&a.set(c,l.source);}for(let l of t.agents){let c=i.get(g9(l));c&&a.set(c,l.source);}for(let l of t.skills){let c=i.get(h9(l));c&&(a.set(c,l.source),_j(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),_j(e,n,u,m.absolutePath,a,o));}}return a}s(kj,"buildOutputSourceMap");xe();rt();Ky();function _9(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(_9,"findSharedArtifactOwner");function Ij(e,t,r){if(t==="global"){let n=_9(e.path,r);if(n)return n;let o=wE(e.path);if(o)return o}return e.target}s(Ij,"artifactMapTargetForResult");function S9(e,t){return `${e}\0${(t??[]).join(",")}`}s(S9,"sourceMapCacheKey");function Jk(e,t){let r=le(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(Jk,"collectPlannedPaths");function k9(e,t,r){let n=Ke(e.target,t),o=lj(n,e.path);if(o!=="default")return `${e.target}:${o}`;let i=Ij(e,t,r);return i===e.target?e.target:`${e.target}~via~${i}`}s(k9,"artifactCacheKey");function Lj(e,t,r,n,o="project",i,a){let l=Jk(n,e),c=new Map,m=new Map;return e.map(p=>{if(a?.has(p.path))return p;let u=S9(p.target,i),g=(m.get(u)??(()=>{let I=kj(p.target,t,r,o,i);return m.set(u,I),I})()).get(p.path);if(!g)return p;let h=Ij(p,o,i),R=k9(p,o,i),_=c.get(R)??(()=>{let I=Sj(h,t,r,n,p.path,{scope:o});return c.set(R,I),I})(),S=Ad({content:p.content,projectRoot:n,sourceFile:g,destinationFile:le(n).join(n,p.path),translatePath:s(I=>_.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 S.content===p.content?p:{...p,content:S.content}})}s(Lj,"rewriteGeneratedReferences");yt();Xs();ne();var L9=/!?\[[^\]]*\]\(([^)]+)\)/g,C9=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function E9(e){return e.endsWith(".md")||e.endsWith(".mdc")}s(E9,"isMarkdownLikeOutput");function w9(e,t){return t.some(([r,n])=>e>=r&&e<n)}s(w9,"isOffsetInRanges");function b9(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(b9,"parseMarkdownLinkDestination");function O9(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(O9,"shouldSkipLocalValidation");function A9(e){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(e)}s(A9,"isSkillGeneratedOutput");var x9={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},T9={".clinerules":"rules"},P9=[".agent.md",".instructions.md",".prompt.md"];function Cj(e){for(let t of P9)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(Cj,"stripMarkdownExt");function D9(e){let t=/^[^/]+\/([^/]+)\/([^/]+)/.exec(e);if(t){let n=x9[t[1]??""];if(n){let o=t[2]??"";return n!=="skills"&&(o=Cj(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(e);if(r){let n=T9[r[1]??""];if(n)return `${n}/${Cj(r[2]??"")}`}return null}s(D9,"canonicalKeyFromOutputPath");function N9(e,t){if(t.has(e))return true;try{let r=statSync(e);return r.isFile()||r.isDirectory()}catch{return false}}s(N9,"pathExistsForGenerate");function v9(e,t,r){let o=b9(e).split("#")[0]??"",{candidate:i}=Kl(o),a=i,l=Wl.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(O9(c,t))return [];let m=Ym(c,t,r);if(m.length===0){let u=le(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 Xm(t,u)){let g=Q(t,f);p.includes(g)||p.push(g);}return p}s(v9,"resolveMarkdownLinkTargets");function F9(e,t){let r=Jk(t,e),n=[];for(let o of e){if(!E9(o.path))continue;let i=Q(t,le(t).join(t,o.path)),a=Od(o.content),l=s((c,m)=>{if(w9(m,a))return;let p=v9(c,t,i);p.length!==0&&(p.some(u=>N9(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(L9)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(C9)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(F9,"findBrokenMarkdownLinks");function Ej(e,t,r={}){let n=F9(e,t);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=D9(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);A9(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(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):
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(Ej,"validateGeneratedMarkdownLinks");var M9=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function Ug(e){return M9.some(t=>e.includes(t))}s(Ug,"isUnderPacks");function wj(e){let t=new Set;for(let r of e.rules)if(Ug(r.source)){let n=r.root?"_root":$9(r.source);n&&t.add(`rules/${n}`);}for(let r of e.agents)Ug(r.source)&&t.add(`agents/${r.name}`);for(let r of e.commands)Ug(r.source)&&t.add(`commands/${r.name}`);for(let r of e.skills)Ug(r.source)&&t.add(`skills/${r.name}`);return t}s(wj,"buildPackOriginatedKeys");function $9(e){let r=e.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s($9,"ruleNameFromSource");Nn();var xj="AGENTS.md";function bj(e){switch(e){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(bj,"statusRank");function G9(e,t){return bj(t.status)<=bj(e.status)?e:{...e,status:t.status,currentContent:t.currentContent??e.currentContent}}s(G9,"mergeDuplicateMetadata");function Bg(e){return e.trim()}s(Bg,"trimmedContent");var j9=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function Oj(e){let t=e;for(let r of j9)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(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,`
206
206
 
207
- `)}s(Oj,"normalizeAgentsContent");function Aj(e){return /<!-- agentsmesh:embedded-rules:start -->/.test(e)}s(Aj,"hasOptionalAgentsBlock");function U9(e,t){if(!e.path.endsWith(xj)||e.path!==t.path)return null;let r=Bg(e.content),n=Bg(t.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?e:t;if(Oj(e.content)===Oj(t.content)){let a=Aj(e.content),l=Aj(t.content);if(a!==l)return a?e:t}return null}s(U9,"richerAgentsResult");function B9(e,t){if(!e.path.endsWith(xj)||e.path!==t.path)return null;let r=e.target===Ry?e:t.target===Ry?t:null,n=r===e?t:e;if(!r)return null;let o=Bg(r.content).length,i=Bg(n.content).length;return o===i?null:o>i?r:n}s(B9,"richerCodexAgentsResult");function Kg(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=U9(o,r);if(i){t[n]=i;continue}let a=B9(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]=G9(o,r);}return t}s(Kg,"resolveOutputCollisions");function Tj(e){let t=e.currentContent===void 0?"created":e.currentContent!==e.content?"updated":"unchanged";return e.status===t?e:{...e,status:t}}s(Tj,"refreshResultStatus");A();xe();rt();function Dj(e,t){return e===null?"created":e!==t?"updated":"unchanged"}s(Dj,"computeStatus");function K9(e,t,r){let n=Sk(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(K9,"resolveGeneratedOutputPath");async function eu(e,t,r,n,o,i){let a=K9(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:Dj(l,p)}),a}s(eu,"emitGeneratedOutput");function Xk(e,t,r){return {capability:Di(e,r)?.[t]??{level:"none"},scope:r}}s(Xk,"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=Xk(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=Ke(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,t),R=h===null?[]:Array.isArray(h)?h:[h];for(let _ of R){let S=await k(join(n,_));e.push({target:c,path:_,content:u.content,currentContent:S??void 0,status:Dj(S,u.content)});}}}}}s(ol,"generateFeature");Yy();xe();function W9(e){return e?.rootInstructionPath?[e.rootInstructionPath,...Jc(e)]:[]}s(W9,"rootDecorationPaths");function Nj(e,t,r="project"){return e.map(n=>{let o=Ke(n.target,r);if(!o)return n;let i=W9(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=vE(l);return c===n.content?n:{...n,content:c}})}s(Nj,"decoratePrimaryRootInstructions");xe();rt();bf();function qk(e,t,r,n,o){let a=(Hr(e)??re(e))?.mergeGeneratedOutputContent?.(t,r,n,o);if(a!=null)return a;let l=r?.content??t;return l!==null&&nD.includes(o)?oD(l,n):n}s(qk,"mergeOutputContent");async function vj(e,t,r,n,o){for(let i of t){let a=Wc(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)=>qk(i,c,m,p,u),"mergeContent")});}}s(vj,"generatePermissionsFeature");async function Fj(e,t,r,n,o,i){for(let a of t){let l=Wc(a,"hooks",i,o)??re(a)?.generators.generateHooks;if(!l)continue;let c=Xk(a,"hooks",o),m=[...l(r,c)],u=(Hr(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,R,_)=>qk(a,g,h,R,_),"mergeContent")});}}s(Fj,"generateHooksFeature");async function Mj(e,t,r,n,o,i){for(let a of t){let c=(Hr(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)=>qk(a,u,f,g,h),"mergeContent")});}}s(Mj,"generateScopedSettingsFeature");async function zr(e){let{config:t,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=e,a=[...t.targets,...t.pluginTargets??[]],l=i?a.filter(W=>i.includes(W)):a;function c(W,$){return Wc(W,$,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"),R=t.features.includes("hooks"),_=t.features.includes("ignore"),S=[];await ol(S,l,r,n,m,o,"rules",W=>c(W,"rules")),await ol(S,l,r,n,p,o,"commands",W=>c(W,"commands")),await ol(S,l,r,n,u,o,"agents",W=>c(W,"agents")),await ol(S,l,r,n,f,o,"skills",W=>c(W,"skills")),await ol(S,l,r,n,g,o,"mcp",W=>c(W,"mcp")),h&&await vj(S,l,r,n,o),R&&await Fj(S,l,r,n,o,t),await ol(S,l,r,n,_,o,"ignore",W=>c(W,"ignore"));let I=new Set(t.features);for(let W of l){let Y=(Hr(W)??re(W))?.globalSupport?.scopeExtras;if(Y){let ee=await Y(r,n,o,I);S.push(...ee);}}(g||_||R||u||h)&&await Mj(S,l,r,n,o,I);let b=Nj(S,r,o),P=H9(b,o),T=Lj(b,r,t,n,o,l,P);return Ej(T,n,{packOriginatedKeys:wj(r)}),Kg(T.map(Tj))}s(zr,"generate");function H9(e,t){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Ke(a,t),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of Jc(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(H9,"computeSharedRootInstructionPaths");Vr();ne();A();No();var i3=6e4,a3=30,l3=200,c3=2e3;async function Yc(e,t={}){let r=t.retries??a3,n=t.retryDelayMs??l3,o=t.staleMs??i3;await mkdir(dirname(e),{recursive:true});let i=0;for(;;){let a=await m3(e);if(a)return a;let l=await p3(e);if(l!=="young"&&u3(l,o)){await rm$1(e,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new wl(e,f3(c),{label:t.label})}i++,await h3(n);}}s(Yc,"acquireProcessLock");async function m3(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:zj()};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(m3,"tryAcquire");async function p3(e){try{let t=await readFile(join(e,"holder.json"),"utf-8"),r=JSON.parse(t);return g3(r)?r:null}catch{try{let t=await stat(e);if(Date.now()-t.mtimeMs<c3)return "young"}catch{}return null}}s(p3,"inspectLock");function u3(e,t){return !e||Date.now()-e.started>t?true:e.hostname&&e.hostname!==zj()?false:!d3(e.pid)}s(u3,"isStale");function d3(e){if(!Number.isInteger(e)||e<=0)return false;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}s(d3,"isProcessAlive");function f3(e){return e?`${e.hostname?`${e.hostname}:`:""}pid ${e.pid} (running ${Date.now()-e.started}ms)`:"unknown (unreadable lock metadata)"}s(f3,"describeHolder");function g3(e){if(typeof e!="object"||e===null)return false;let t=e;return typeof t.pid=="number"&&typeof t.started=="number"}s(g3,"isLockMetadata");function zj(){return hostname()}s(zj,"getHostname");function h3(e){return new Promise(t=>setTimeout(t,e))}s(h3,"sleep");A();xe();async function Vj(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 Vj(i,t));continue}n.push(relative(t,i).replace(/\\/g,"/"));}return n}s(Vj,"listFiles");async function S3(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(S3,"removeIfStale");async function Jj(e){let t=new Set(e.expectedPaths),r=new Set,n=e.scope??"project";for(let o of e.targets){let i=_k(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 Vj(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await S3(e.projectRoot,o,t);}s(Jj,"cleanupStaleGeneratedOutputs");xe();function Xc(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(Xc,"ensurePathInsideRoot");Fm();A();ne();async function rI(e,t){let r=await vs(e.canonicalDir),n=t.length>0?await Vc(t):{},o=await Gg(join(e.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await Mg(e.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Ji(),checksums:r,extends:n,packs:o});try{await fy(Jt(),join(e.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(rI,"writeLockFile");function O3(e,t){return e!=="global"||t.length===0?void 0:t.every(n=>Ke(n,"global")===void 0)?"no-global-support":void 0}s(O3,"resolveEmptyReason");async function s0(e){let{mode:t,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c,activeTargets:m}=e,p=O3(r,m);if(t==="check")return {exitCode:0,data:{scope:r,mode:t,files:[],summary:Hg([]),emptyReason:p}};if(n||await rI(o,i),c.printMatrix!==false){let{runMatrix:u}=await Promise.resolve().then(()=>(nu(),mI)),{renderMatrix:f}=await Promise.resolve().then(()=>(su(),pI)),g=await u(a,l);f(g,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:t,files:[],summary:Hg([]),emptyReason:p}}}s(s0,"handleEmptyResults");function i0(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:Hg(r)}}}s(i0,"buildCheckResult");async function a0(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 Yc(join(i.canonicalDir,".generate.lock"),{label:"generate lock"});try{if(!r){for(let h of t)if(h.status==="created"||h.status==="updated"){let R=Xc(i.rootBase,h.path,h.target);await L(R,h.content);}await Jj({projectRoot:i.rootBase,targets:a,expectedPaths:t.map(h=>h.path),scope:n}),await rI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(nu(),mI)),{renderMatrix:R}=await Promise.resolve().then(()=>(su(),pI)),_=await h(c,m);R(_,{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:Hg(f)}}}s(a0,"handleGenerateOrDryRun");function Hg(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(Hg,"buildSummary");async function qc(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(P=>P.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await ye(n,l);await He(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let P=await Fg(g.canonicalDir);if(P!==null){let T=await vs(g.canonicalDir),W=$g(P.checksums,T,h);if(W.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let $ of W)y.error(` ${$}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:R,resolvedExtends:_}=await Ft(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),S=[...f.targets,...f.pluginTargets??[]];if(p){let P=p.filter(T=>!S.includes(T));if(P.length>0)throw new Error(`Unknown target(s) in --targets: ${P.join(", ")}. Available: ${S.join(", ")}`)}let I=p?S.filter(P=>p.includes(P)):S,b=await zr({config:f,canonical:R,projectRoot:g.rootBase,scope:l,targetFilter:p});return b.length===0?s0({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:_,flags:e,root:n,options:r,activeTargets:I}):o?i0(b,l):a0({results:b,dryRun:i,scope:l,mode:u,context:g,activeTargets:I,resolvedExtends:_,flags:e,root:n,options:r})}s(qc,"runGenerate");ne();function uI(e,t){return e==="global"?`~/${t}`:t}s(uI,"formatDisplayPath");function Qc(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} ${uI(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} ${uI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${uI(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(Qc,"renderGenerate");A();A();async function zg(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=>!x3(l,o));if(i.length===0)return false;let a=n.endsWith(`
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(`
209
209
  `)||n===""?"":`
210
210
  `;return await L(r,n+a+i.join(`
211
211
  `)+`
212
- `),true}s(zg,"ensureGitignoreEntries");function x3(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(x3,"isCoveredByExisting");xe();xe();Nn();function l0(){return Pe.filter(e=>!e.excludeFromStarterInit).map(e=>e.id).filter(Vt)}s(l0,"starterInitTargetIds");var c0=/^# yaml-language-server: \$schema=[^\n]*\n?/;function T3(){let e=Ji();return `https://unpkg.com/agentsmesh${e&&e!=="unknown"?`@${e}`:""}/schemas`}s(T3,"schemaBaseUrl");function m0(e){return `${T3()}/${e}.json`}s(m0,"schemaUrl");function Zc(e){return `# yaml-language-server: $schema=${m0(e)}
213
- `}s(Zc,"yamlSchemaDirective");function sl(e,t){let r=Zc(t);return c0.test(e)?e.replace(c0,r):`${r}${e}`}s(sl,"prependYamlSchemaDirective");function p0(e,t){let{$schema:r,...n}=e;return {$schema:m0(t),...n}}s(p0,"stampJsonSchemaField");var P3=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],D3=l0();function Vg(e,t=D3){let r=(e.length>0?e:t).map(o=>` - ${o}`).join(`
214
- `),n=P3.map(o=>` - ${o}`).join(`
215
- `);return `${Zc("agentsmesh")}version: 1
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
216
216
  targets:
217
217
  ${r}
218
218
  features:
219
219
  ${n}
220
- `}s(Vg,"buildConfig");var Jg=`---
220
+ `}s(hh,"buildConfig");var yh=`---
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
- `,dI=`---
229
+ `,JI=`---
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
- `,fI=`---
238
+ `,YI=`---
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
- `,gI=`---
245
+ `,XI=`---
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
- `,hI=`---
256
+ `,QI=`---
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
- `,yI=`{
265
+ `,qI=`{
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
- `,RI=`${Zc("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
292
+ `,ZI=`${gm("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
- `,_I=`${Zc("permissions")}# Tool permission allow/deny lists
305
+ `,eL=`${gm("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
- `,SI=`# Patterns ignored by all configured AI tools (gitignore syntax)
321
+ `,tL=`# 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
- `,u0=`${Zc("agentsmesh")}# Personal overrides \u2014 NOT committed to git
328
+ `,zU=`${gm("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,68 @@ ask: []
343
343
  # overrides:
344
344
  # claude-code:
345
345
  # model: opus
346
- `;A();xe();function d0(e){let t=[];for(let r of Pe)for(let n of Rk(r.id,e))t.push({target:r.id,path:n});return t}s(d0,"collectDetectionPaths");function f0(e){let t=new Map;for(let{target:r,path:n}of d0(e)){let o=t.get(r)??[];o.push(n),t.set(r,o);}return [...t.entries()].map(([r,n])=>({id:r,paths:n}))}s(f0,"toolIndicators");f0("project");async function g0(e,t="project"){let r=[];for(let{id:n,paths:o}of f0(t))for(let i of o){let a=join(e,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(g0,"detectExistingConfigs");A();ne();function ut(e,t){return join(e,t)}s(ut,"ab");async function kI(e){return await j(e)?(await readdir(e,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(kI,"countMdFiles");async function v3(e){let t=ut(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(v3,"hasAnyImportedSkill");async function II(e){let t=ut(e,"rules");await w(t),await L(join(t,"_root.md"),Jg),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),dI),y.success("Created .agentsmesh/rules/_example.md");let r=ut(e,"commands");await w(r),await L(join(r,"_example.md"),fI),y.success("Created .agentsmesh/commands/_example.md");let n=ut(e,"agents");await w(n),await L(join(n,"_example.md"),gI),y.success("Created .agentsmesh/agents/_example.md");let o=ut(e,join("skills","_example"));await w(o),await L(join(o,"SKILL.md"),hI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await L(ut(e,"mcp.json"),yI),y.success("Created .agentsmesh/mcp.json"),await L(ut(e,"hooks.yaml"),RI),y.success("Created .agentsmesh/hooks.yaml"),await L(ut(e,"permissions.yaml"),_I),y.success("Created .agentsmesh/permissions.yaml"),await L(ut(e,"ignore"),SI),y.success("Created .agentsmesh/ignore");}s(II,"writeScaffoldFull");async function y0(e){let t=ut(e,"rules"),r=await kI(t),n=join(t,"_root.md"),o=await j(n);await w(t),r===0?(await L(n,Jg),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),dI),y.success("Created .agentsmesh/rules/_example.md")):o||(await L(n,Jg),y.success("Created .agentsmesh/rules/_root.md"));let i=ut(e,"commands");await kI(i)===0&&(await w(i),await L(join(i,"_example.md"),fI),y.success("Created .agentsmesh/commands/_example.md"));let a=ut(e,"agents");if(await kI(a)===0&&(await w(a),await L(join(a,"_example.md"),gI),y.success("Created .agentsmesh/agents/_example.md")),!await v3(e)){let u=ut(e,join("skills","_example"));await w(u),await L(join(u,"SKILL.md"),hI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=ut(e,"mcp.json");await j(l)||(await L(l,yI),y.success("Created .agentsmesh/mcp.json"));let c=ut(e,"hooks.yaml");await j(c)||(await L(c,RI),y.success("Created .agentsmesh/hooks.yaml"));let m=ut(e,"permissions.yaml");await j(m)||(await L(m,_I),y.success("Created .agentsmesh/permissions.yaml"));let p=ut(e,"ignore");await j(p)||(await L(p,SI),y.success("Created .agentsmesh/ignore"));}s(y0,"writeScaffoldGapFill");tt();var iu=1,tm=2e3,em=z$1.string().regex(/^[a-z0-9-]+$/,"id must be kebab-case"),F3=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"),M3=z$1.object({summary:z$1.string().min(1,"topic summary must not be empty")}).strict(),$3=z$1.enum(["file_glob","command_pattern","keyword"]),G3=z$1.object({kind:$3,pattern:z$1.string().min(1,"trigger pattern must not be empty")}).strict(),j3=z$1.enum(["active","deprecated","superseded"]),U3=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(em).min(1,"lesson must reference at least one topic"),triggers:z$1.array(em),evidence:z$1.array(z$1.string().min(1)),status:j3,supersededBy:em.optional(),createdAt:F3}).strict(),il=z$1.object({version:z$1.literal(iu),lessons:z$1.record(em,U3),topics:z$1.record(em,M3),triggers:z$1.record(em,G3)}).strict();function au(e){return il.parse(e)}s(au,"parseGraph");var V3=".agentsmesh/lessons/lessons.json";function Ao(e){return resolve(e,V3)}s(Ao,"graphFilePath");function lu(e){let t=readFileSync(Ao(e),"utf8");return au(JSON.parse(t))}s(lu,"loadLessonsGraph");function Ve(e){return existsSync(Ao(e))?lu(e):null}s(Ve,"tryLoadLessonsGraph");function Xg(e){let t=Ao(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>iu?{status:"newer-version",graph:null,version:n}:{status:"ok",graph:au(r)}}catch(r){return {status:"corrupt",graph:null,error:r instanceof Error?r:new Error(String(r))}}}s(Xg,"loadLessonsGraphResilient");function S0(e,t){let r=Ao(e);mkdirSync(dirname(r),{recursive:true});let n=`${r}.${process.pid}.tmp`;writeFileSync(n,cu(t),"utf8"),renameSync(n,r);}s(S0,"saveLessonsGraph");function cu(e){return `${JSON.stringify(Yg(e),null,2)}
347
- `}s(cu,"serializeGraph");function qg(e){return JSON.stringify(Yg(e))}s(qg,"stableStringify");function Yg(e){if(e===null)return null;if(Array.isArray(e))return e.map(Yg);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]=Yg(o);return r}return e}s(Yg,"canonicalize");var Q3=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"}),Z3=z$1.object({topic:z$1.string().regex(/^[a-z0-9-]+$/),file:z$1.string().regex(/\.md$/),summary:z$1.string().min(1),triggers:Q3}),I0=z$1.object({version:z$1.literal(1),clusters:z$1.array(Z3)});function L0(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=t4(i),r.set(a,l),t.set(l,{kind:i.kind,pattern:i.pattern})),o.includes(l)||o.push(l);}return o}s(L0,"collectClusterTriggerIds");var e4={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function t4(e){let t=createHash("sha1").update(`${e.kind}|${e.pattern}`).digest("hex").slice(0,8);return `t-${e4[e.kind]}-${t}`}s(t4,"makeTriggerId");var r4=/^##\s+Rules\b.*$/i,n4=/^##\s+/,o4=/^(\d+)\.\s+(.+?)\s*$/,k0=/\s*\(Evidence:?\s+([^)]+)\)\s*$/,s4=/L\d+/g;function C0(e){let t=e.split(/\r?\n/),r=false,n=[];for(let o of t){if(!r){r4.test(o)&&(r=true);continue}if(n4.test(o))break;let i=o4.exec(o);if(i===null)continue;let a=Number(i[1]),l=i[2],c=[],m=k0.exec(l);for(;m!==null;){let u=m[1].match(s4);u!==null&&c.unshift(...u),l=l.slice(0,m.index).trimEnd(),m=k0.exec(l);}n.push({index:a,body:l,evidence:c});}return n}s(C0,"parseRulesSection");var i4=["index.yaml","journal.md","journal.legacy.md","topics","distill-ledger.yaml","distill-proposal.md"];function Qg(e){let t=[];for(let r of i4){let n=join(e,r);existsSync(n)&&(rmSync(n,{recursive:true,force:true}),t.push(n));}return t}s(Qg,"deleteLegacyArtifacts");function CI(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(CI,"normalizeRule");function mu(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(mu,"union");function w0(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(LI(l),a);let o=[],i=[];for(let a of r){let l=LI(a),c=n.get(l);if(c!==void 0){o.includes(c)||o.push(c);continue}let m=l4(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(w0,"mergeTriggers");function LI(e){return `${e.kind}|${e.pattern}`}s(LI,"triggerKey");var a4={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function l4(e){let t=createHash("sha1").update(LI(e)).digest("hex").slice(0,8);return `t-${a4[e.kind]}-${t}`}s(l4,"makeTriggerId");function b0(e,t,r){let n=c4(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(b0,"makeLessonId");function c4(e){return e.replace(/[^a-z0-9 ]+/g," ").split(/\s+/).filter(r=>r.length>0).slice(0,5).join("-").slice(0,40).replace(/-+$/,"")}s(c4,"ruleToSlug");function O0(){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(O0,"todayIso");var xn=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"},Fs=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"},Ms=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";}},$s=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 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:
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 m4=new Set(["the","a","an","to","of","in","and","or","for","is","on","at","with","be","as","it","that","this","its","must"]);function Mt(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>=2&&!m4.has(t))}s(Mt,"tokenize");function A0(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),Mt(t.join(" "))}s(A0,"queryTerms");function x0(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=Mt(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(x0,"buildCorpus");function T0(e,t,r){let n=Mt(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(T0,"bm25");var pu=5;function Zg(e){return Mt(e).length>pu}s(Zg,"isLowSignalKeyword");function p4(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(p4,"splitRawTokens");function rm(e){let t=p4(e);return t.length<2?false:Mt(e).length!==t.length}s(rm,"keywordNeedleLosesTokens");function P0(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(P0,"activeTriggerIds");function uu(e,t){let r=P0(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=u4(a.pattern,{dot:true});n.some(c=>l(c))||o.add(i);}return o}s(uu,"deadFileGlobIds");function D0(e,t,r){for(let n of uu(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(D0,"collectDeadFileGlobs");var d4=/^\^(pnpm|npm|npx|yarn|bun)\b/;function N0(e,t){let r=P0(e);for(let[n,o]of Object.entries(e.triggers))o.kind==="command_pattern"&&r.has(n)&&d4.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(N0,"collectRunnerAnchoredPatterns");var f4=.6,eh=8;function g4(e){let t=e.trim();return t==="*"||t==="**"?true:t.includes("**")?t.slice(t.lastIndexOf("/")+1).startsWith("*"):false}s(g4,"isBroadGlob");function EI(e,t,r){let n=e.lessons[t];if(n===void 0)return [];let o=[];n.triggers.length>eh&&o.push({code:"OVERSIZED_LESSON_TRIGGERS",message:`Lesson "${t}" has ${n.triggers.length} triggers (recommended \u2264 ${eh}); 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"&&g4(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"&&Zg(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 ${pu} 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=uu(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(EI,"inspectCapturedLesson");function v0(e,t){let r=e.lessons[t];if(r===void 0)return null;let n=new Set(Mt(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(Mt(a.rule));if(l.size===0)continue;let c=h4(n,l);c>=f4&&(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(v0,"nearDuplicateWarning");function h4(e,t){let r=0;for(let n of e)t.has(n)&&(r+=1);return r/(e.size+t.size-r)}s(h4,"jaccard");var F0=".lessons.lock";function M0(e){return resolve(e,".agentsmesh/lessons",F0)}s(M0,"lessonsLockPath");async function th(e,t={}){let r=M0(e);return await mkdir(dirname(r),{recursive:true}),Yc(r,{...t,label:"lessons lock"})}s(th,"acquireLessonsLock");function G0(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(G0,"collectDanglingRefs");function j0(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of $0(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 $0(n.triggers))t.push({level:"error",code:"DUPLICATE_TRIGGER_REF",message:`Lesson "${r}" references trigger "${o}" more than once.`,lessonId:r,triggerId:o});}}s(j0,"collectDuplicateRefs");function $0(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($0,"firstDuplicates");function U0(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(U0,"collectStatusInvariants");function B0(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});}S4(e,t);}s(B0,"collectLifecycleInvariants");function S4(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(S4,"collectSupersedeCycles");function K0(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(K0,"collectReachability");function W0(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(W0,"collectOrphans");var wI=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 k4(e){return e!==`
351
- `&&e!=="\r"&&e!=="\u2028"&&e!=="\u2029"}s(k4,"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"?k4: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 H0(e){let t=new wI,{start:r,end:n}=al(t,e);return {states:t.states,start:r,accept:n}}s(H0,"compileNfa");function z0(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(z0,"wordBoundary");function I4(e,t,r){switch(e){case "start":return r===0;case "end":return r===t.length;case "wordB":return z0(t,r);case "nonWordB":return !z0(t,r)}}s(I4,"assertHolds");function V0(e){let{states:t,start:r,accept:n}=H0(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)I4(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(V0,"buildMatcher");var mr=class extends Error{static{s(this,"UnsupportedRegexError");}constructor(t){super(t),this.name="UnsupportedRegexError";}};var rh=1e3,J0=s(e=>/[A-Za-z0-9_]/.test(e),"isWord");function Y0(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(Y0,"expandRepeat");function bI(e){switch(e){case "d":return t=>t>="0"&&t<="9";case "D":return t=>!(t>="0"&&t<="9");case "w":return J0;case "W":return t=>!J0(t);case "s":return t=>/\s/.test(t);case "S":return t=>!/\s/.test(t);default:return null}}s(bI,"escapeClass");var L4=/^[0-9a-fA-F]{2}$/,C4=/^[0-9a-fA-F]{4}$/;function OI(e,t,r){if(r==="x"){let o=e.slice(t,t+2);return L4.test(o)?{ch:String.fromCharCode(parseInt(o,16)),len:2}:{ch:"x",len:0}}let n=e.slice(t,t+4);return C4.test(n)?{ch:String.fromCharCode(parseInt(n,16)),len:4}:{ch:"u",len:0}}s(OI,"readUnicodeEscape");function AI(e,t){let r=e[t];if(r===void 0||!/[A-Za-z]/.test(r))throw new mr("\\c must be followed by a letter");return {ch:String.fromCharCode(r.charCodeAt(0)&31),len:1}}s(AI,"readControlEscape");function xI(e,t,r){return r==="b"?{ch:"\b",len:0}:r==="c"?AI(e,t):r==="x"||r==="u"?OI(e,t,r):{ch:TI(r),len:0}}s(xI,"classEscapeChar");function TI(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(TI,"escapeLiteral");function X0(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=r();if(R==="*"||R==="+"||R==="?")return t+=1,r()==="?"&&(t+=1),R==="*"?{k:"star",node:h}:R==="+"?{k:"plus",node:h}:{k:"opt",node:h};if(R==="{"){let _=l();if(_!==null)return Y0(h,_.min,_.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 R=Number(h[1]),_=h[2]===void 0?R:h[3]===""||h[3]===void 0?1/0:Number(h[3]);if(R>rh||_!==1/0&&_>rh)throw new mr(`Repeat count over ${rh} not supported: {${h[1]}\u2026}`);return {min:R,max:_}}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 mr(`Unexpected '${h??"<end>"}' in pattern`);return t+=1,{k:"char",ch:h}}s(c,"parseAtom");function m(){if(t+=1,r()==="?"){let R=e[t+1];if((R==="="||R==="!"||R==="<")&&!(R==="<"&&/[A-Za-z]/.test(e[t+2]??"")))throw new mr("Lookaround assertions are not supported");if(R===":")t+=2;else if(R==="<"){for(t+=2;t<e.length&&e[t]!==">";)t+=1;t+=1;}}let h=o();if(r()!==")")throw new mr("Unbalanced group");return t+=1,h}s(m,"parseGroup");function p(){t+=1;let h=r();if(h===void 0)throw new mr("Trailing backslash");if(/[1-9]/.test(h)||h==="k")throw new mr("Backreferences are not supported");if(t+=1,h==="b")return {k:"assert",kind:"wordB"};if(h==="B")return {k:"assert",kind:"nonWordB"};let R=bI(h);if(R!==null)return {k:"class",test:R};if(h==="x"||h==="u"||h==="c"){let{ch:_,len:S}=h==="c"?AI(e,t):OI(e,t,h);return t+=S,{k:"char",ch:_}}return {k:"char",ch:TI(h)}}s(p,"parseEscape");function u(){t+=1;let h=r()==="^";h&&(t+=1);let R=[];for(;t<e.length&&r()!=="]";)R.push(f());if(r()!=="]")throw new mr("Unterminated character class");t+=1;let _=s(S=>R.some(I=>I(S)),"base");return {k:"class",test:h?S=>!_(S):_}}s(u,"parseClass");function f(){let h;if(r()==="\\"){t+=1;let R=n(),_=bI(R);if(_!==null)return _;let S=xI(e,t,R);t+=S.len,h=S.ch;}else h=n();if(r()==="-"&&e[t+1]!==void 0&&e[t+1]!=="]"){t+=1;let R;if(r()==="\\"){t+=1;let I=n(),b=xI(e,t,I);t+=b.len,R=b.ch;}else R=n();let _=h.codePointAt(0),S=R.codePointAt(0);return I=>{let b=I.codePointAt(0);return b>=_&&b<=S}}return R=>R===h}s(f,"parseClassMember");let g=o();if(t!==e.length)throw new mr(`Unexpected '${r()}' at ${t}`);return g}s(X0,"parseRegex");var PI=new Map;function DI(e){let t=PI.get(e);if(t!==void 0||PI.has(e))return t??null;let r;try{r=V0(X0(e));}catch{r=null;}return PI.set(e,r),r}s(DI,"compileLinearMatcher");var q0=1e3;function du(e){return e.length>q0?false:DI(e)!==null}s(du,"isSafeRegexPattern");function Q0(e){return e.length>q0?null:DI(e)}s(Q0,"getCommandMatcher");function eU(e,t){let r=new Map;for(let[n,o]of Object.entries(e.lessons)){if(o.status!=="active")continue;let i=E4(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(eU,"collectDuplicateRules");function tU(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}du(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(tU,"collectInvalidTriggerPatterns");function rU(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(rU,"collectBackslashGlobPatterns");function nU(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(nU,"collectDuplicateTriggers");var Z0=10;function oU(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>Z0&&(n+=1),i>o&&(o=i);n>0&&t.push({level:"warning",code:"HIGH_FANOUT_TRIGGERS",message:`${n} trigger(s) each match more than ${Z0} active lessons (max ${o}); recall returns the ranked top by default \u2014 consider per-lesson trigger refinement to improve precision.`});}s(oU,"collectFanout");function sU(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)&&Zg(o.pattern)&&t.push({level:"warning",code:"LOW_SIGNAL_KEYWORD",message:`Keyword trigger "${n}" carries more than ${pu} 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(sU,"collectLowSignalKeywords");function iU(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)&&(Mt(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(iU,"collectStopwordKeywords");function E4(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(E4,"normalizeRule");function xo(e,t={}){let r=[],n=il.safeParse(e);return n.success?(G0(e,r),j0(e,r),U0(e,r),B0(e,r),eU(e,r),K0(e,r),tU(e,r),rU(e,r),nU(e,r),W0(e,r),oU(e,r),sU(e,r),iU(e,r),N0(e,r),t.knownPaths!==void 0&&D0(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(xo,"validateLessonsGraph");function w4(){return {version:1,lessons:{},topics:{},triggers:{}}}s(w4,"emptyGraph");async function ll(e,t,r={}){let n=await th(e,{retries:r.retries});try{let o=Ve(e)??w4(),i=await t(o),a=xo(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 S0(e,o),i}finally{await n();}}s(ll,"mutateLessonsGraphLocked");async function Et(e,t,r={}){return await dt(e),ll(e,t,r)}s(Et,"mutateLessonsGraph");function b4(e,t){let r=[];for(let n of t){let o=e.triggers[n];if(o===void 0)continue;let i=O4(o.kind,o.pattern);i!==null&&r.push({id:n,kind:o.kind,pattern:o.pattern,reason:i});}return r}s(b4,"ineffectiveTriggers");function O4(e,t){if(e==="keyword")return Mt(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?du(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(O4,"ineffectiveReason");function aU(e,t){return b4(e,t).filter(r=>r.kind!=="command_pattern")}s(aU,"blockingDeadTriggers");function A4(e){return (e.files?.length??0)+(e.commands?.length??0)+(e.keywords?.length??0)}s(A4,"countInputTriggers");async function nh(e,t,r={}){return Et(e,n=>NI(n,t,r),{retries:r.retries})}s(nh,"addLesson");function NI(e,t,r){let n=CI(t.rule),o=t.rule.trim();if(o.length>tm)throw new Fs(o.length,tm);let i=x4(e,n),a=e.topics[t.topic]===void 0;if(a){if(r.allowNewTopic!==true)throw new xn(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(A4(t.triggers)===0&&f===0)throw new Ms}let{triggerIds:l,newTriggerIds:c}=w0(e,t.triggers);if(r.allowNoTrigger!==true){let f=i!==null?mu(e.lessons[i].triggers,l):l,g=aU(e,f);if(f.length>0&&g.length===f.length)throw new $s(g)}if(i!==null){let f=e.lessons[i];return e.lessons[i]={...f,topics:mu(f.topics,[t.topic]),triggers:mu(f.triggers,l),evidence:mu(f.evidence,t.evidence??[]),...f.rationale===void 0&&t.rationale!==void 0?{rationale:t.rationale}:{}},{id:i,isNewLesson:false,isNewTopic:a,newTriggerIds:c,warnings:EI(e,i,r.knownPaths)}}let m=b0(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??O0(),...t.rationale===void 0?{}:{rationale:t.rationale}};let p=EI(e,m,r.knownPaths),u=v0(e,m);return {id:m,isNewLesson:true,isNewTopic:a,newTriggerIds:c,warnings:u===null?p:[...p,u]}}s(NI,"addLessonInto");function x4(e,t){for(let[r,n]of Object.entries(e.lessons))if(n.status==="active"&&CI(n.rule)===t)return r;return null}s(x4,"findExistingLessonByRule");async function lU(e,t,r,n,o){let i=0,a=new Set,l=new Set;await ll(e,m=>{i=0,a.clear(),l.clear();for(let p of r){let u=NI(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?[]:Qg(t.base);return {wroteGraphPath:t.graph,deletedPaths:c,topicCount:l.size,lessonCount:i,triggerCount:a.size}}s(lU,"mergeLegacy");var N4=".agentsmesh/lessons";function Ge(e){let t=join(e,N4);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(Ge,"lessonsPaths");function fu(e){return existsSync(Ge(e).config)}s(fu,"lessonsActivated");function gu(){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(gu,"lessonsSetupHint");function oh(e){let t=dirname(resolve(e)),r="";for(;t!==r;){if(existsSync(Ge(t).graph))return t;r=t,t=dirname(t);}return null}s(oh,"ancestorLessonsProjectDir");function cl(e,t){return relative(e,t).split(sep).join("/")}s(cl,"toRelPath");var om='## 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 sm=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=Ge(e),n=readFileSync(r.index,"utf8"),o=I0.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=L0(g,a,l),R=join(e,g.file);if(!existsSync(R))throw new Error(`importLegacyLessons: declared topic file is missing: ${g.file}. Refusing to migrate (legacy artifacts left intact).`);let _=readFileSync(R,"utf8");for(let{index:S,body:I,evidence:b}of C0(_)){let P=[`legacy:${g.file}#rule-${S}`,...b.map(T=>`legacy:${T}`)];c[`${g.topic}-rule-${S}`]={rule:I,topics:[g.topic],triggers:h,evidence:P,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:P,createdAt:t.migratedAt});}}if(t.merge===true)return lU(e,r,m,p,t);let u=Object.fromEntries(a.entries());await ll(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 sm;g.version=1,g.lessons=c,g.topics=i,g.triggers=u;});let f=t.deleteLegacy===false?[]:Qg(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 $4(){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($4,"todayIso");async function dt(e){if(existsSync(Ao(e)))return false;let t=Ge(e);if(!existsSync(t.index))return false;try{return await im(e,{migratedAt:$4()}),!0}catch(r){if(r instanceof sm)return false;throw r}}s(dt,"maybeAutoMigrateLessons");function sh(e){return existsSync(e)}s(sh,"logExists");function ih(e,t,r){mkdirSync(dirname(e),{recursive:true}),appendFileSync(e,`${JSON.stringify(t)}
353
- `,"utf8"),statSync(e).size>r.trimTriggerBytes&&fU(e,r.maxRecords);}s(ih,"appendJsonl");function fU(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 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(`
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(fU,"capJsonl");function ah(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(ah,"readJsonl");var z4=5e3,V4=2e6,J4="AGENTSMESH_LESSONS_TELEMETRY",Y4="AGENTSMESH_SESSION_ID";function am(e=process.env){let t=e[Y4];return t!==void 0&&t.trim().length>0?t:void 0}s(am,"sessionId");function hu(e){return join(Ge(e).base,"recall-log.jsonl")}s(hu,"recallLogPath");function $i(e=process.env){return e[J4]==="1"}s($i,"isTelemetryEnabled");function gU(e,t,r=process.env){$i(r)&&ih(hu(e),t,{maxRecords:z4,trimTriggerBytes:V4});}s(gU,"appendRecallRecord");function hU(e){return sh(hu(e))}s(hU,"recallLogExists");function yU(e){return ah(hu(e))}s(yU,"readRecallLog");var q4=5e3,Q4=2e6;function yu(e){return join(Ge(e).base,"capture-log.jsonl")}s(yu,"captureLogPath");function Z4(e,t,r=process.env){$i(r)&&ih(yu(e),t,{maxRecords:q4,trimTriggerBytes:Q4});}s(Z4,"appendCaptureRecord");function RU(e){return sh(yu(e))}s(RU,"captureLogExists");function _U(e){return ah(yu(e))}s(_U,"readCaptureLog");function FI(e,t,r,n=process.env){if(!$i(n))return;let o=am(n);Z4(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(FI,"recordCapture");function e5(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(e5,"splitTokens");function t5(e){let t=[];return e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),t.length===0?[]:e5(t.join(" "))}s(t5,"deriveHaystackTokens");function r5(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(r5,"containsRun");function SU(e,t){return t.keyword!==void 0&&t.keyword.toLowerCase().includes(e.toLowerCase())?true:r5(Mt(e),t5(t))}s(SU,"keywordMatches");var o5=5e6;function lm(e,t){if(t.file===void 0&&t.command===void 0&&t.keyword===void 0)return [];let r=$I(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(lm,"queryLessons");function MI(e,t){let r={file_glob:new Set,command_pattern:new Set,keyword:new Set},n={remaining:o5};for(let[o,i]of Object.entries(e.triggers))s5(i,t,n)&&r[i.kind].add(o);return r}s(MI,"collectMatchedTriggersByKind");function $I(e,t){let{file_glob:r,command_pattern:n,keyword:o}=MI(e,t);return new Set([...r,...n,...o])}s($I,"collectMatchedTriggerIds");function s5(e,t,r){switch(e.kind){case "file_glob":return t.file===void 0?false:u4(e.pattern,{dot:true})(t.file);case "command_pattern":{if(t.command===void 0)return false;let n=Q0(e.pattern);return n!==null&&n.test(t.command,r)}case "keyword":return SU(e.pattern,t)}}s(s5,"triggerMatches");function lh(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(lh,"buildFanout");function kU(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(kU,"buildTopicCoherence");var Ru=10,ch=400,GI=60,i5=3,a5=2,l5=1;function jI(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(jI,"rankMap");function ml(e){return Math.ceil(e.length/4)}s(ml,"estTokens");function cm(e,t,r,n={}){if(r.length===0)return [];let o=A0(t),i=x0(e),a=lh(e),l=kU(r),c=$I(e,t),m=r.map(({id:h,lesson:R})=>{let _=R.triggers.filter(I=>c.has(I)),S=0;for(let I of _)S=Math.max(S,1/a.get(I));return {id:h,lesson:R,bm25:T0(o,R.rule,i),specificity:S,topicCoherence:l.get(h),matchedTriggers:_}}),p=jI(m.map(h=>({id:h.id,value:h.bm25}))),u=jI(m.map(h=>({id:h.id,value:h.specificity}))),f=jI(m.map(h=>({id:h.id,value:h.topicCoherence}))),g=m.map(h=>({id:h.id,lesson:h.lesson,score:i5/(GI+u.get(h.id))+a5/(GI+f.get(h.id))+l5/(GI+p.get(h.id)),reason:{matchedTriggers:h.matchedTriggers,bm25:h.bm25,specificity:h.specificity,topicCoherence:h.topicCoherence}})).sort((h,R)=>{if(R.score!==h.score)return R.score-h.score;let _=h.lesson.createdAt,S=R.lesson.createdAt;return _!==S?_<S?1:-1:h.id<R.id?-1:1});return c5(g,n)}s(cm,"rankLessons");function c5(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=ml(r[0].lesson.rule);for(let i of r.slice(1)){let a=ml(i.lesson.rule);if(o+a>t.maxTokens)break;o+=a,n.push(i);}r=n;}return r}s(c5,"applyCaps");function CU(){return {recallLimit:Ru,recallMaxTokens:ch,autoPrune:false}}s(CU,"defaultLessonsConfig");function mh(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}s(mh,"positiveInt");function EU(e){let t=Ge(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&&mh(n.recallLimit)===null&&o.push("recallLimit"),"recallMaxTokens"in n&&mh(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(EU,"lessonsConfigWarning");function ph(e){let t={limit:Ru,maxTokens:ch},r=Ge(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:mh(o.recallLimit)??t.limit,maxTokens:mh(o.recallMaxTokens)??t.maxTokens}}catch{return t}}s(ph,"loadRecallConfig");var bU="agentsmesh lessons hook",h5="Edit|Write|Bash";function OU(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")===bU)?false:(o.add(r.createNode({matcher:h5,type:"command",command:bU})),r.set("PostToolUse",o),writeFileSync(t,String(r),"utf8"),true)}s(OU,"injectRecallHook");Ue();var UI=`${Hm}
358
- ${om}
359
- ${zy}`;function AU(e){let t=y5(e);return Ed(t,UI)}s(AU,"appendLessonsParagraph");function y5(e){let t=zm(e,Hm,zy);return R5(t).trim()}s(y5,"stripLessonsParagraph");function R5(e){return e.replace(`
360
-
361
- ${om}`,"").replace(om,"")}s(R5,"stripRawProceduralRule");B();var BI="lessons",_5="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.",S5='# 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.',xU=D({name:BI,description:_5},S5);async function pl(e){let t=Ge(e),r=[],n=[],o=[];mkdirSync(t.base,{recursive:true}),await dt(e),existsSync(t.graph)?o.push(t.graph):(await ll(e,()=>{}),r.push(t.graph)),I5(e,r,o),k5(e,r,n,o);let i=L5(e),a=OU(e),l=await zg(e,[cl(e,hu(e)),cl(e,yu(e))]);return {created:r,updated:n,skipped:o,rootRuleUpdated:i,gitignoreUpdated:l,recallHookInjected:a}}s(pl,"scaffoldLessons");function k5(e,t,r,n){let o=join(e,".agentsmesh/skills",BI,"SKILL.md"),i=`${xU}
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(k5,"seedLessonsSkill");function I5(e,t,r){let n=Ge(e).config;if(existsSync(n)){r.push(n);return}mkdirSync(dirname(n),{recursive:true}),writeFileSync(n,`${JSON.stringify(CU(),null,2)}
363
- `,"utf8"),t.push(n);}s(I5,"seedLessonsConfig");function L5(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(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=`---
364
364
  root: true
365
365
  description: ""
366
366
  ---
367
367
 
368
- ${UI}
368
+ ${IL}
369
369
 
370
370
  # Operational Guidelines
371
- `;return writeFileSync(t,o,"utf8"),true}let r=readFileSync(t,"utf8"),n=`${AU(r)}
372
- `;return n===r?false:(writeFileSync(t,n,"utf8"),true)}s(L5,"injectProceduralBlock");var fh="agentsmesh.yaml",WI="agentsmesh.local.yaml",E5=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],w5=Object.fromEntries(Pe.map(e=>[e.id,(t,r)=>e.generators.importFrom(t,{scope:r})])),NU=Pe.filter(e=>e.globalSupport!==void 0).map(e=>e.id);async function vU(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=Xi(e,r),i=join(o.configDir,fh),a=await j(i);if(a&&n){let _=await pl(e);return {exitCode:0,data:{scope:r,configFile:fh,localConfigFile:WI,detectedConfigs:[],imported:[],importedToolCount:0,scaffoldType:"none",gitignoreUpdated:false,lessons:_,lessonsOnly:true}}}if(a)throw new Error(`Already initialized. ${fh} exists. Remove it first to re-init.`);let l=await g0(o.rootBase,r),c=r==="global"?l.filter(_=>NU.includes(_)):l,m=r==="global"?NU:void 0,p=[],u,f=0;if(c.length>0)if(t.yes){for(let _ of c){let S=w5[_];if(!S)continue;let I=await S(o.rootBase,r);for(let b of I)p.push({from:relative(o.rootBase,b.fromPath).replaceAll("\\","/"),to:b.toPath.replaceAll("\\","/")});}f=c.length,await y0(o.canonicalDir),u="gap-fill",await L(i,Vg(c,m));}else await II(o.canonicalDir),u="full",await L(i,Vg([],m));else await II(o.canonicalDir),u="full",await L(i,Vg([],m));let g=join(o.configDir,WI);await L(g,u0);let h=false;r==="project"&&(h=await zg(e,E5));let R=n?await pl(e):void 0;return {exitCode:0,data:{scope:r,configFile:fh,localConfigFile:WI,detectedConfigs:c,imported:p,importedToolCount:f,scaffoldType:u,gitignoreUpdated:h,lessons:R}}}s(vU,"runInit");ne();function MU(e){let{data:t}=e;if(t.lessonsOnly===true&&t.lessons!==void 0){FU(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&&FU(t.lessons);}s(MU,"renderInit");function FU(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(FU,"renderLessons");tt();xe();var O5=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 O5[e]}s(gh,"getTargetCatalogEntry");rt();Vr();Um();var N5={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function v5(e){return e.mcpServers.agentsmesh!==void 0?false:(e.mcpServers.agentsmesh=N5,true)}s(v5,"injectAgentsmeshEntry");async function HI(e){let t=resolve(e,".agentsmesh/mcp.json");try{let r;try{r=await Xr(t)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!v5(r))return !1;let n=JSON.stringify(r,null,2)+`
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)+`
373
373
  `;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(HI,"seedAgentsmeshMcpEntry");Ue();function $U(e,t){return e.map(r=>({from:relative(t,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s($U,"mapResults");async function GU(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(Hm)||/^## Lessons \(/m.test(n))&&await pl(e);}s(GU,"ensureImportedLessonsSubsystem");async function jU(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(Vt(o)){let p=Xi(r,i),f=await gh(o).importFrom(p.rootBase,{scope:i});return f.length>0&&(await HI(p.rootBase),await GU(p.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:$U(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: ${je.join(", ")}.`)}await He(a,r);let c=re(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...je,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&(await HI(l.rootBase),await GU(l.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:$U(m,l.rootBase)}}}s(jU,"runImport");tt();Oo();function hh(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(hh,"computeDiff");function yh(e){return `${e.new} files would be created, ${e.updated} updated, ${e.unchanged} unchanged, ${e.deleted} deleted`}s(yh,"formatDiffSummary");Vr();async function BU(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 He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),m=await zr({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}=hh(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(BU,"runDiff");tt();Oo();A();rt();ea();Oe();var j5=[{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 KU(e){let t=new Set(e.enabledFeatures),r=[];for(let n of j5)!t.has(n.featureFlag)||!n.hasContent(e.canonical)||Qr(e.capabilities[n.capabilityKey]).level!=="none"||r.push(v(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(KU,"lintSilentFeatureDrops");Oe();var U5=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function B5(e){let r=e.match(U5)?.groups?.path;return typeof r=="string"?r:null}s(B5,"extractScriptToken");function WU(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=B5(o.command);i&&r.push(v(".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(WU,"lintHookScriptReferences");Oe();function HU(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(v(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(HU,"lintRuleScopeInversion");var W5=new Set([".git","node_modules"]),H5=2e5;function Gi(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())W5.has(o.name)||r.push(join(n,o.name));else if(o.isFile()&&(t.add(cl(e,join(n,o.name))),t.size>H5))return t}}catch{return null}return t}s(Gi,"listProjectFiles");var J5="lessons",JU=".agentsmesh/lessons/lessons.json",YU=".agentsmesh/rules/_root.md",Y5=/^## Lessons \(/m;function XU(e,t){if(t==="global")return [];let r=Ge(e);if(!existsSync(r.graph))return [];let n=[],o;try{o=lu(e);}catch(m){return [zI("error",JU,`lessons.json failed to load: ${m instanceof Error?m.message:String(m)}`)]}let i=Gi(e)??void 0,a=xo(o,{knownPaths:i});for(let m of a.findings)n.push(zI(m.level,JU,`[${m.code}] ${m.message}`));let l=join(e,YU),c=existsSync(l)?readFileSync(l,"utf8"):"";return Y5.test(c)||n.push(zI("warning",YU,'lessons procedural rule ("## Lessons (...)") is missing from _root.md \u2014 recall/capture enforcement will not fire.')),n}s(XU,"lintLessonsSubsystem");function zI(e,t,r){return {level:e,file:t,target:J5,message:r}}s(zI,"diag");var X5=["node_modules",".git","dist","coverage",".agentsmesh"];async function q5(e){return (await U(e)).filter(n=>{let o=relative(e,n);return !X5.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(e,n))}s(q5,"getProjectFiles");async function Rh(e,t,r,n,o={}){let i=o.scope??"project",a=[...e.targets,...e.pluginTargets??[]],l=n?a.filter(_=>n.includes(_)):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=[...XU(r,i)],h=i==="global"?[]:await q5(r);for(let _ of l){let S=re(_),I=Vt(_)?gh(_):S;I?.capabilities&&g.push(...KU({target:_,capabilities:I.capabilities,canonical:t,enabledFeatures:e.features})),f&&g.push(...WU({target:_,canonical:t,hasScriptProjection:S?.postProcessHookOutputs!==void 0})),c&&g.push(...HU({target:_,canonical:t,preservesManualActivation:S?.preservesManualActivation===true})),c&&I?.lintRules&&g.push(...I.lintRules(t,r,h,{scope:i})),S?.generators.lint&&g.push(...S.generators.lint(t));let b={scope:i};m&&I?.lint?.commands&&g.push(...I.lint.commands(t,b)),p&&I?.lint?.mcp&&g.push(...I.lint.mcp(t,b)),u&&I?.lint?.permissions&&g.push(...I.lint.permissions(t,b)),f&&I?.lint?.hooks&&g.push(...I.lint.hooks(t,b));}let R=g.some(_=>_.level==="error");return {diagnostics:g,hasErrors:R}}s(Rh,"runLint");Vr();async function QU(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 He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Rh(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(QU,"runLintCmd");ne();function ZU(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(ZU,"renderLint");ne();function eB(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(eB,"renderCheck");ne();function tB(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(tB,"renderImport");ne();function rB(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(yh({new:t.created,updated:t.updated,unchanged:t.unchanged,deleted:t.deleted}));}s(rB,"renderDiff");ne();function nB(e){if(!e.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(nB,"renderMerge");nu();su();tt();Oo();nu();su();ne();var e6=300;function t6(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(t6,"normalizeWatchPath");function r6(e,t){let r=t6(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(r6,"shouldIgnoreWatchPath");function n6(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(n6,"featureFingerprint");async function sB(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:_,context:S}=await ye(n,o),{canonical:I}=await Ft(_,S.configDir,{},S.canonicalDir),b=I.mcp?Object.keys(I.mcp.mcpServers).length:0,P=I.permissions?I.permissions.allow.length+I.permissions.deny.length:0,T=I.hooks?Object.values(I.hooks).reduce((M,te)=>M+(Array.isArray(te)?te.length:0),0):0,W=I.ignore.length,$=n6(_.features,I.rules.length,I.commands.length,I.agents.length,I.skills.length,b,P,T,W),Y=c!==null&&c!==$;if(c=$,m)return;let ee=await qc(e,n,{printMatrix:false});if(Qc(ee),!m){if(Y){let M=await ru(e,n);ou(M,{verbose:e.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:Y});}},"run"),f=s(()=>{let _=u().catch(S=>{if(!m){let I=S instanceof Error?S.message:String(S);y.error(I);}}).finally(()=>{p===_&&(p=null);});p=_;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,e6));},"schedule"),h=r.usePolling??process.platform==="win32",R=Z5.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return R.on("all",(_,S)=>{r6(i.canonicalDir,S)||g();}),await new Promise((_,S)=>{R.once("ready",_),R.once("error",S);}),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 R.close(),p&&await p;},"stop")}}s(sB,"runWatch");tt();od();async function _h(e){let{config:t,configDir:r,canonicalDir:n}=e,o=await Fg(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await vs(n),a=await Pl(t,r),l=a.length>0?await Vc(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let S of c){let I=i[S];I===void 0?f.push(S):I!==o.checksums[S]&&p.push(S);}for(let S of m)c.has(S)||u.push(S);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let S of g)l[S]!==o.extends[S]&&h.push(S);let R=$g(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:R}}s(_h,"checkLockSync");Vr();async function iB(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n);await He(o,r);let a=await _h({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(iB,"runCheck");tt();A();od();var s6=".lock",i6="<<<<<<<";async function VI(e){let t=join(e,s6),r=await k(t);return r===null?false:r.includes(i6)}s(VI,"hasLockConflict");async function lB(e,t,r){if(!await VI(e))throw new Error("No conflict to resolve.");let o=await vs(e),i=dirname(e),a=r?await Pl(r,i):[],l=a.length>0?await Vc(a):{},c=await Gg(join(e,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Mg(e,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:t,checksums:o,extends:l,packs:c});}s(lB,"resolveLockConflict");async function cB(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 VI(a)?(await lB(a,Ji(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(cB,"runMerge");tt();xg();function mB(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?Hc.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(mB,"readInstallFlags");var c6=".install.lock";async function mm(e,t={}){return await mkdir(e,{recursive:true}),Yc(join(e,c6),{...t,label:"install lock"})}s(mm,"acquireInstallLock");tt();A();Fm();var u6=promisify(execFile);function Sh(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}s(Sh,"ensureNotFlag");async function JI(e){let{stdout:t}=await u6("git",e,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return t.trim()}s(JI,"runGit");async function pB(){try{return await JI(["--version"]),!0}catch{return false}}s(pB,"isGitAvailable");async function d6(e,t){Sh(e,"remote-url"),Sh(t,"ref");let r=[t,`refs/heads/${t}`,`refs/tags/${t}`],n;for(let o of r)try{let a=(await JI(["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(d6,"gitLsRemoteResolve");async function kh(e,t){Sh(t,"remote-url");let r=e===""?"HEAD":e;if(Sh(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await JI(["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 d6(t,r)}s(kh,"resolveRemoteRefForInstall");async function uB(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 kh(e.rawRef||"HEAD",t);if(e.kind==="github"){let l=`github:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Tl(l,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(e.kind==="gitlab"){let l=`gitlab:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Tl(l,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(e.gitPlusBase??t).split("#")[0]}#${n}`;return {resolvedPath:(await Tl(i,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(uB,"fetchInstallSource");async function dB(e,t){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};try{let r=await uB(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(dB,"resolveInstallResolvedPath");function Su(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(Su,"parseGithubTreeUrl");function ku(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(ku,"parseGithubBlobUrl");function Iu(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(Iu,"parseGitlabTreeUrl");function Lu(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(Lu,"parseGitlabBlobUrl");var f6=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Cu(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||f6.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Cu,"parseGithubRepoUrl");function Eu(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(Eu,"parseGitlabRepoUrl");function wu(e){let t=e.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return t?{org:t[1],repo:t[2].replace(/\.git$/i,"")}:null}s(wu,"parseGitSshGithub");function bu(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(bu,"parseGitSshGitlab");A();var y6=/^[A-Za-z]:[\\/]/,R6=/^[A-Za-z]:\//;function fB(...e){return e.some(t=>t.includes("\\")||y6.test(t))?win32:posix}s(fB,"pathApiFor");function Au(e){return e.replace(/\\/g,"/")}s(Au,"toPosixPath");function Ou(e){return Au(e).replace(/^\/+|\/+$/g,"")}s(Ou,"normalizeInstallPathField");function Ih(e){let t=Au(e);return t===""||t==="."||t==="./."?".":t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||R6.test(t)?t:`./${t}`}s(Ih,"normalizeLocalSourceForYaml");function ji(e){return {...e,source:e.source_kind==="local"?Ih(e.source):e.source,...e.path!==void 0?{path:Ou(e.path)}:{},...e.paths!==void 0?{paths:e.paths.map(t=>Ou(t))}:{}}}s(ji,"normalizePersistedInstallPaths");function gB(e,t,r){let n=fB(e,t),o=n.normalize(e),i=n.normalize(t),a=Ou(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=Ou(u),g=Au(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Ih(g)}}let m=Au(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Ih(m)}}s(gB,"localParsedFromAbsPath");async function YI(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=Su(n)??ku(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=Cu(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=Iu(n)??Lu(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=Eu(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=wu(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=bu(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 gB(m,t,o)}s(YI,"parseInstallSource");function xu(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=Su(t)??ku(t);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Cu(t);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=Iu(t)??Lu(t);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Eu(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=wu(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=bu(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(xu,"parseSourceUrl");Pk();function Tn(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(Tn,"featuresFromCanonical");async function Lh(e,t={}){let{sliceRoot:r,implicitPick:n}=await Cg(e),{canonical:o,cleanup:i}=await Eg(r,{...t,enableTargetEntityMappers:true});return {canonical:o,features:Tn(o),implicitPick:n,cleanup:i}}s(Lh,"discoverFromContentRoot");function hB(e){return e.description.trim()?{skill:e,ok:true}:{skill:e,ok:false,reason:"missing description in frontmatter"}}s(hB,"validateSkill");function yB(e){return e.description.trim()?{rule:e,ok:true}:{rule:e,ok:false,reason:"missing description in frontmatter"}}s(yB,"validateRule");function RB(e){return e.description.trim()?{command:e,ok:true}:{command:e,ok:false,reason:"missing description in frontmatter"}}s(RB,"validateCommand");function _B(e){return e.description.trim()?{agent:e,ok:true}:{agent:e,ok:false,reason:"missing description in frontmatter"}}s(_B,"validateAgent");function ft(e){return basename(e.source).replace(/\.md$/i,"")}s(ft,"ruleSlug");function k6(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(k6,"featuresFromImplicitPick");function um(e,t){let{implicitPick:r}=t,n=t.scopedFeatures??k6(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(ft(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(um,"narrowDiscoveredForInstallScope");Gk();async function SB(e,t,r,n,o={}){let i=await Og(e,t,{preferredSkillNames:t==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Lh(i.discoveryRoot,o),c=um(a,{scopedFeatures:[t]});return {prep:{yamlTarget:r,scopedFeatures:[t],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:Tn(c)}}s(SB,"resolveManualDiscoveredForInstall");vo();kk();A();xe();var I6=(()=>{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 L6(e){return e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(L6,"norm");function Ch(e){let t=L6(e);if(t){for(let{prefix:r,target:n}of I6)if(t===r||t.startsWith(`${r}/`))return n}}s(Ch,"targetHintFromNativePath");function XI(e,t){return Ch(e)===t}s(XI,"pathSupportsNativePick");function kB(e,t){if(!e||!t)return;let r=Ch(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(kB,"validateTargetMatchesPath");function IB(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)>0}s(IB,"extendPickHasArrays");rt();A();X_();async function w6(e,t,r,n){if(n.kind==="skillDir")return Cf(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(w6,"namesForStrategy");async function LB(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 w6(a,o,i,i.strategy);return l.length?{[i.feature]:l}:{}}return {}}s(LB,"inferImplicitPickFromNativePath");function CB(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)===0}s(CB,"isImplicitPickEmpty");Ik();function Tu(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(Tu,"normalizePath");function T6(e,t){let r=Tu(e),n=Tu(t);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(T6,"overlapsPath");function Eh(e,t){let r=e??[];return r.includes(t)||r.push(t),r}s(Eh,"addUnique");async function P6(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(P6,"makeStageRoot");function D6(e,t){let r;for(let o of e){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Eh(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Tu(relative(join(t,".agentsmesh","commands"),join(t,o.toPath)));r={...r,commands:Eh(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Eh(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Tu(relative(join(t,".agentsmesh","skills"),join(t,o.toPath))).split("/")[0];a&&(r={...r,skills:Eh(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(D6,"buildPickFromResults");function N6(e,t,r,n){let o=join(t,...Tu(e).split("/")),i=r.filter(a=>T6(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:D6(i,t)}}s(N6,"scopeImportedResults");async function qI(e,t){let{stageRoot:r,cleanup:n}=await P6(e);try{let o=await Xp(r,t);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(qI,"stageImportedNativeRepo");async function QI(e,t,r){let n=await qI(e,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...N6(t,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(QI,"stageNativeInstallScope");async function OB(e,t,r,n){let o=n.explicitTarget?.trim();o&&fr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");kB(o,i);let a=join(e,".agentsmesh"),l=await j(a),c=i?Ch(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await fg(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 b=await QI(e,i,u);return {discoveryRoot:b.stageRoot,implicitPick:b.pick,scopedFeatures:b.features,yamlTarget:u,importHappened:true,cleanup:b.cleanup}}let I=await qI(e,u);return {discoveryRoot:i?join(I.stageRoot,i):I.stageRoot,yamlTarget:u,importHappened:true,cleanup:I.cleanup}}let g;l?i?u&&XI(i,u)?g=e:g=t:g=e:g=t;let h,R,_;if(f&&u){let I=await QI(e,i,u);g=I.stageRoot,h=I.pick,R=I.features,_=I.cleanup;}else if(g===e&&i&&u&&XI(i,u)&&(h=await LB(e,i,u),CB(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 S;return o?S=o:u&&(h&&IB(h)||(R?.length??0)>0)&&(S=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:R,yamlTarget:S,importHappened:_!==void 0,cleanup:_}}s(OB,"prepareInstallDiscovery");async function ZI(e,t,r,n,o={}){let i=await OB(e,t,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Lh(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=um(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=Tn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(ZI,"resolveDiscoveredForInstall");var M6=[".claude-plugin","marketplace.json"];async function $6(e){try{return (await stat(e)).isDirectory()}catch{return false}}s($6,"dirExists");function G6(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(G6,"normalizeSource");async function xB(e,t,r){let n=join(e,...M6),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=G6(c.source);if(!m)continue;let p=join(e,m);if(!await $6(p))continue;let u=await t(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(xB,"detectMarketplaceSubPacks");async function Pu(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(Pu,"dirExists");async function Ui(e){try{return (await readdir(e,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(Ui,"listDirEntries");function TB(e){return e.endsWith(".instructions.md")?"copilot-instructions":e.endsWith(".md")?"md":e.endsWith(".mdc")?"mdc":e.endsWith(".toml")?"toml":null}s(TB,"classifyFileShape");var B6=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],K6=[".cursorrules",".windsurfrules"];async function DB(e){let t=join(e,".agentsmesh");if(!await Pu(t))return null;let r=await Ui(t),n=new Set(r.map(o=>o.name));for(let o of B6)if(n.has(o))return {path:".agentsmesh"};return null}s(DB,"detectCanonical");async function NB(e){for(let t of K6)try{if((await stat(join(e,t))).isFile())return {path:t}}catch{}return null}s(NB,"detectRootRule");async function vB(e){try{if((await stat(join(e,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(vB,"detectRootSkill");$o();var H6={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},z6=[".claude-plugin",".codex-plugin",".cursor-plugin"],V6=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function FB(e){let t=join(e,"skills"),r=await Ui(t);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!V6.test(n.name))&&await Pu(join(t,n.name)))try{if((await stat(join(t,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(FB,"detectSkillPack");async function MB(e){let t=[];for(let[r,n]of Object.entries(H6)){let o=join(e,r),i=await Ui(o),a=new Set;for(let l of i){if(!l.isFile||vn(l.name))continue;let c=TB(l.name);c&&a.add(c);}for(let l of a)t.push({path:r,suggestedAs:n,fileShape:l});}return t}s(MB,"detectFlatCollections");async function $B(e){let t=[];for(let r of z6)await Pu(join(e,r))&&t.push({path:r});return t}s($B,"detectToolNativeManifests");async function rL(e,t){let r=await DB(e);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await FB(e),o=n?null:await vB(e),i=await MB(e),a=n||o||i.length>0?null:await NB(e),l=await $B(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(rL,"detectFlatLayout");function tL(e){return e.canonical!==null||e.skillPack!==null||e.rootSkill!==null||e.rootRule!==null||e.flatCollections.length>0}s(tL,"hasContent");async function GB(e,t){let r=await Ui(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 rL(i,a);tL(l)&&n.push({path:a,layout:l});}return n}s(GB,"collectSubPackCandidates");async function J6(e,t){if(tL(t))return [];let r=await xB(e,rL,tL);if(r&&r.length>0)return r;let n=await GB(e,"");if(n.length>=2)return n;let o=await Ui(e);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await GB(join(e,i.name),i.name);if(a.length>=2)return a}return []}s(J6,"detectSubPacks");async function UB(e){let t=await rL(e,"");if(t.canonical)return {...t,subPacks:[]};let r=await J6(e,t);return {...t,subPacks:r}}s(UB,"detectLayout");rt();A();B();function X6(e){let t=[];for(let r of _d()){let n=re(r)?.nativeInstall?.dialectHints;n?.length&&n.some(o=>o.frontmatterKey in e)&&t.push(r);}return t}s(X6,"targetsMatchingFrontmatter");async function KB(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=Yr(n,join(e,r));if(!o.ok)return null;let i=X6(o.value.frontmatter);return i.length===1?i[0]??null:null}s(KB,"inferMdcTarget");_g();Lg();function t7(e){let t=e.indexOf("#");return t<0?{path:e,anchor:""}:{path:e.slice(0,t),anchor:e.slice(t)}}s(t7,"splitAnchor");function r7(e){return e.split(sep).join("/")}s(r7,"toForwardSlash");async function n7(e){try{return await stat(e),!0}catch{return false}}s(n7,"pathExists");async function VB(e){let{link:t,fromFile:r,contentRoot:n,includedPaths:o}=e,{path:i,anchor:a}=t7(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=r7(p);return await n7(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(VB,"resolveLink");var o7=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,s7=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,i7=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function a7(e){let t=[];for(let r of e.matchAll(o7)){let n=r.index??0;t.push([n,n+r[0].length]);}return t}s(a7,"getFencedCodeRanges");function JB(e,t){for(let[r,n]of t)if(e>=r&&e<n)return true;return false}s(JB,"isInRanges");function YB(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(YB,"normalizeDestination");function wh(e){let t=a7(e),r=[];for(let n of e.matchAll(s7)){let o=n.index??0;if(JB(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:YB(a),destinationOffset:c,destinationLength:a.length});}for(let n of e.matchAll(i7)){let o=n.index??0;if(JB(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:YB(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(wh,"scanMarkdownLinks");function XB(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(XB,"applyRangeRewrites");function l7(e){return !(e.length===0||e.startsWith("#")||e.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))}s(l7,"isCandidateRelativePath");function c7(e){let t=e.replaceAll("\\","/");return t==="{baseDir}"?".":t.startsWith("{baseDir}/")?t.slice(10):t}s(c7,"stripPath");function m7(e){let t=e.destination;return l7(t)?{raw:t,path:c7(t),kind:e.kind,...e.label!==void 0?{label:e.label}:{}}:null}s(m7,"toScannedLink");function qB(e){let t=[];for(let r of wh(e)){let n=m7(r);n!==null&&t.push(n);}return t}s(qB,"scanRelativeLinks");function dm(e,t){let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(dm,"toForwardSlashRelative");function QB(e,t,r,n,o){let i=new Set;for(let a of t){i.add(dm(e,a.source));for(let l of a.supportingFiles)i.add(dm(e,l.absolutePath));}for(let a of r)i.add(dm(e,a.source));for(let a of n)i.add(dm(e,a.source));for(let a of o)i.add(dm(e,a.source));return i}s(QB,"buildIncludedPaths");function u7(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(u7,"listScannables");async function ZB(e,t,r,n,o,i){let a=u7(t,r,n,o),l=[];for(let c of a){let m=qB(c.body);if(m.length===0)continue;let p=dm(e,c.sourcePath),u=[];for(let f of m){let g=await VB({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(ZB,"detectBrokenLinks");Lg();async function eK(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 Sg(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 R=o.get(g.name)??[];R.push({path:g.source,precedence:p.precedence}),o.set(g.name,R);}}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(eK,"mergeCommands");async function tK(e,t,r={}){let[n,o,i,a]=await Promise.all([GG(`${e}/skills`,r),Ig(`${e}/agents`,{parseOpts:r}),kg(`${e}/rules`,{parseOpts:r}),eK(e,t.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=QB(e,n,l,a.commands,c),p=await ZB(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(tK,"aggregateAnthropicSkillPack");var rK={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};Nl();function g7(e){return {rules:[...e.rules],commands:[...e.commands],agents:[...e.agents],skills:[...e.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(g7,"aggregateToCanonical");function bh(){return {}}s(bh,"emptyPrep");async function h7(e,t){let r=[];for(let n of t)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await KB(join(e,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(h7,"enrichMdcTargets");function oK(e){return e.canonical?"canonical-agentsmesh":e.skillPack||e.rootSkill?"anthropic-skill-pack":e.rootRule||e.toolNativeManifests.length>0?"tool-native":"unknown"}s(oK,"deriveSourceType");async function y7(e,t){let r=await pd(e,t);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(y7,"rootSkillToCanonical");async function R7(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(R7,"rootRuleToCanonical");async function sK(e){let t=e.parseOpts??{};if(e.explicitAs)return {implicitPick:void 0,...await SB(e.contentRoot,e.explicitAs,e.explicitTarget,e.replayPick,t)};if(e.explicitTarget)return ZI(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t);let r=await UB(e.contentRoot),n=await h7(e.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await tK(e.contentRoot,rK,t),l=g7(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:Tn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await y7(e.contentRoot,t);return {prep:bh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Tn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await R7(e.contentRoot,o.rootRule.path);return {prep:bh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Tn(a),layout:o}}return o.subPacks.length>0?{prep:bh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:bh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await ZI(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t),layout:o}}s(sK,"resolveInstallDiscovery");function aK(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(aK,"featuresFromLayout");function _7(e){return e.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(_7,"subPackSlug");function iK(e,t,r){let n=aK(e.layout),o=!e.layout.skillPack&&!e.layout.rootSkill&&n.length>0;return {name:`${t}-${_7(e.path)}`,source:r,path:e.path,...o?{as:n[0]}:{},features:n}}s(iK,"targetFromSubPack");function lK(e,t,r){return {name:t,source:r,path:e.path,as:e.suggestedAs,target:e.inferredTarget,features:[e.suggestedAs]}}s(lK,"targetFromCollection");function cK(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 S7(e);if(t.flatCollections.length===1){let l=t.flatCollections[0];return {targets:[lK(l,r,n)],isMarketplace:false}}return t.flatCollections.length>1?k7(e):{targets:[],isMarketplace:false}}s(cK,"selectInstallCandidates");function S7(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.all)return {targets:t.subPacks.map(a=>iK(a,r,n)),isMarketplace:true};if(e.force||!e.tty){let a=t.subPacks.map(l=>({path:l.path,features:aK(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
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(`
377
377
  `);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=>iK(i,r,n)),isMarketplace:true}}s(S7,"selectMarketplace");function k7(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(`
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(`
379
379
  `);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=>lK(i,r,n)),isMarketplace:false}}s(k7,"selectMultipleCollections");Vr();Dk();function fm(e){return e==="."||e===""?void 0:e}s(fm,"trimDot");function L7(e,t){let r=basename(t).replace(/\.md$/i,"");return e==="agents"?{agents:[r]}:e==="commands"?{commands:[r]}:{rules:[r]}}s(L7,"markdownPick");async function pK(e){if(!e.as)return {pathInRepo:fm(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:fm(dirname(t)),pick:L7(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:fm(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 wg(o);return {pathInRepo:fm(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:fm(t)}}}}return {pathInRepo:fm(t)}}s(pK,"resolveManualInstallPersistence");Oo();ne();ne();async function gm(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 qc(t==="global"?{global:!0}:{},r,{printMatrix:!1});Qc(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(gm,"runPostOperationGenerate");async function To(e){return process.stdin.isTTY?new Promise(t=>{let r=uK.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(To,"confirm");function C7(e){return !!(e.skills.length||e.rules.length||e.commands.length||e.agents.length)}s(C7,"hasArrayResources");function dK(e){return C7(e)||e.mcp!==null||e.permissions!==null||e.hooks!==null||e.ignore.length>0}s(dK,"hasInstallableResources");async function fK(e,t,r,n){let o=e.skills.map(l=>hB(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 To(`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(fK,"resolveSkillPool");async function gK(e,t,r,n){let o=e.rules.map(l=>yB(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 To(`Include invalid rule "${ft(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(gK,"resolveRulePool");async function hK(e,t,r,n){let o=e.commands.map(l=>RB(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 To(`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(hK,"resolveCommandPool");async function yK(e,t,r,n){let o=e.agents.map(l=>_B(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 To(`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(yK,"resolveAgentPool");async function RK(e,t){let r=t.skills.map(a=>a.name),n=t.rules.map(a=>ft(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 To(`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=ft(a);e.rules.some(c=>ft(c)===l)&&(await To(`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 To(`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 To(`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(RK,"resolveInstallConflicts");function _K(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(_K,"pickForSelectedResources");function E7(e,t){let r=e.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===t}s(E7,"pathEndsWithName");function Oh(e,t,r){return r!==1||t.length!==1?false:E7(e,t[0])}s(Oh,"inferSingleNamePick");function SK(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||Oh(t,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Oh(t,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Oh(t,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Oh(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(SK,"buildInstallPick");function kK(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(kK,"deriveInstallFeatures");function w7(e){return e.skillNames.length===0&&e.ruleSlugs.length===0&&e.commandNames.length===0&&e.agentNames.length===0}s(w7,"isEmptyInstallSelection");function IK(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(w7(t)&&!a)throw new Error("No resources selected to install.")}s(IK,"ensureInstallSelection");vo();function LK(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(LK,"assertExtendNameAvailable");function b7(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(b7,"mergePick");function CK(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=b7(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(CK,"mergeExtendList");A();async function EK(e,t,r){let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=CK(t.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await L(e,a.endsWith(`
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(`
381
381
  `)?a:`${a}
382
- `);}s(EK,"writeAgentsmeshWithNewExtend");ne();async function wK(e){let{configDir:t,config:r,entryArgs:n,dryRun:o}=e,i=T7(n);if(LK(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 EK(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(wK,"writeInstallAsExtend");function T7(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?fr.parse(e.yamlTarget):void 0,as:e.as}}s(T7,"toNewExtendEntry");A();ne();A();var D7="pack.yaml";async function Ah(e){let t=await U(e),r=[];for(let i of t.sort()){let a=relative(e,i).replace(/\\/g,"/");if(a===D7)continue;let l=await Ng(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
384
- `);return `sha256:${Dg(n)}`}s(Ah,"hashPackContent");A();var pr=".agentsmesh-install-manifest.json",v7=["pack.yaml",pr];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 F7(e,t){return relative(e,t).replaceAll("\\","/")}s(F7,"toForwardSlashRelative");async function xh(e){let t=await Ws(e),r=[];for(let n of t){let o=F7(e,n);if(v7.includes(o))continue;let i=await vg(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(xh,"hashPackFiles");A();var M7=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,$7=[{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 bK(e){if(e.trim().length===0)return null;let t=M7.exec(e);if(t)return t[1]??null;for(let{id:r,pattern:n}of $7)if(n.test(e))return r;return null}s(bK,"detectSpdxLicense");var j7=["LICENSE","COPYING","NOTICE","COPYRIGHT"],U7=["",".md",".txt",".rst"];async function OK(e){for(let t of j7)for(let r of U7){let n=await k(join(e,`${t}${r}`));if(n===null)continue;let o=bK(n);if(o!==null)return o}return null}s(OK,"detectLicenseInPackDir");async function W7(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await w(r);for(let n of e.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(W7,"writeRules");async function H7(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await w(r);for(let n of e.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(H7,"writeCommands");async function z7(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await w(r);for(let n of e.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(z7,"writeAgents");async function V7(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await w(r);for(let n of e.skills){let o=join(r,n.name);await w(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await w(dirname(a)),await copyFile(i.absolutePath,a);}}}s(V7,"writeSkills");async function J7(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(J7,"writePreservedRootFiles");async function Y7(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
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)}
385
385
  `),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
386
  `)}
387
- `);}s(Y7,"writeSettings");function X7(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(X7,"validatePackName");async function q7(e,t,r){let n=await xh(e),o=p0({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,pr),`${JSON.stringify(o,null,2)}
388
- `);}s(q7,"writeInstallManifest");async function AK(e,t,r,n,o={},i=[]){X7(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 w(a),await W7(r,a),await H7(r,a),await z7(r,a),await V7(r,a),await Y7(r,a),await J7(i,a);let u=await Ah(a),f=await OK(a);m=ji({...n,content_hash:u,license:f}),await L(join(a,"pack.yaml"),sl(stringify(m),"pack")),await q7(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 R=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. (${R})`);}),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(AK,"materializePack");zc();A();function lL(e,t){return [...new Set([...e,...t])]}s(lL,"union");function Z7(e,t){if(e.path===void 0&&e.paths===void 0||t===void 0)return {path:void 0,paths:void 0};let n=lL(e.paths??(e.path?[e.path]:[]),[t]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(Z7,"mergePathScope");function eee(e,t,r){let n={...e};for(let i of t)r&&r[i]!==void 0?n[i]=lL(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(eee,"mergePick");async function tee(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await w(r);for(let n of e.rules)await copyFile(n.source,join(r,basename(n.source)));}s(tee,"mergeRules");async function ree(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await w(r);for(let n of e.commands)await copyFile(n.source,join(r,basename(n.source)));}s(ree,"mergeCommands");async function nee(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await w(r);for(let n of e.agents)await copyFile(n.source,join(r,basename(n.source)));}s(nee,"mergeAgents");async function oee(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await w(r);for(let n of e.skills){let o=join(r,n.name);await w(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await w(dirname(a)),await copyFile(i.absolutePath,a);}}}s(oee,"mergeSkills");async function see(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(see,"mergePreservedRootFiles");async function iee(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
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)}
389
389
  `),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
390
  `)}
391
- `);}s(iee,"mergeSettings");async function xK(e,t,r,n,o,i,a=[]){await tee(r,e),await ree(r,e),await nee(r,e),await oee(r,e),await iee(r,e),await see(a,e);let l=lL(t.features,n),c=eee(t.pick,n,o),m=Z7(t,i?.path),p=await Ah(e),u=new Date().toISOString(),f=ji({...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"),sl(stringify(f),"pack")),f}s(xK,"mergeIntoPack");xy();$o();async function TK(e){let t=[];try{let r=await readdir(e,{withFileTypes:!0});for(let n of r)n.isFile()&&ld(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(TK,"collectPreservedRootFiles");vo();ne();vo();A();xg();function mee(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(mee,"sanitize");function pee(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(pee,"gitUrlLastSegments");function PK(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=pee(e.gitRemoteUrl):n="extend";t.featureHint?n=`${n}-${t.featureHint}`:n=`${n}-pack`;let o=mee(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(PK,"suggestExtendName");function DK(e){let{config:t,parsed:r,entryFeatures:n,nameOverride:o}=e,i=new Set(t.extends.map(a=>a.name));return o||PK(r,{featureHint:n.length===1?n[0]:void 0},i)}s(DK,"selectInstallEntryName");function NK(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(NK,"canonicalRemoteIdentity");function uee(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?NK(e.gitRemoteUrl):null}s(uee,"parsedSourceIdentity");function vK(e,t){let r=uee(t);if(r===null)return null;for(let n of e){let o=NK(n.source);if(o!==null&&o===r)return n.name}return null}s(vK,"findExistingInstallName");function cL(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(cL,"sameFeatureSet");function FK(e){let{manifest:t,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=e,a=vK(t,r);if(a===null)return null;let l=t.find(c=>c.name===a);return l.target!==o||l.as!==i||!cL(l.features,n)?null:l.name}s(FK,"pickReuseEntryName");var gee=s(e=>!e.includes("/")&&!e.includes("\\")&&!e.includes("\0")&&e!=="."&&e!=="..","isSafeInstallName"),$K=z$1.object({name:z$1.string().min(1).refine(gee,{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(Ol).min(1),pick:Pm.optional(),target:fr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Hc.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()}),hee=z$1.object({version:z$1.literal(1),installs:z$1.array($K).default([])});function yee(e,t){return e.source===t.source&&e.target===t.target&&e.as===t.as&&cL(e.features,t.features)}s(yee,"sameInstallIdentity");function mL(e){return join(e,"installs.yaml")}s(mL,"manifestPath");async function Ht(e){let t=await k(mL(e));if(t===null)return [];try{return hee.parse(parse(t)).installs.map(r=>ji(r))}catch{return []}}s(Ht,"readInstallManifest");async function Ph(e,t){let r=ji(t),o=(await Ht(e)).filter(i=>i.name!==r.name&&!yee(i,r));o.push(r),await L(mL(e),sl(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(Ph,"upsertInstallManifestEntry");async function GK(e,t){let r=await Ht(e),n=r.filter(o=>o.name!==t);return n.length===r.length?false:(await L(mL(e),sl(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(GK,"removeInstallManifestEntry");function jK(e){return ji($K.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(jK,"buildInstallManifestEntry");A();function _ee(e){return e?{path:e,paths:void 0}:{path:void 0,paths:void 0}}s(_ee,"pathScope");function See(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(ft(a))),commands:e.commands.filter(a=>o.has(a.name)),agents:e.agents.filter(a=>i.has(a.name))}}s(See,"applySelection");async function UK(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:R,forceFreshMaterialize:_,originalRef:S,acceptedElevated:I}=e,b=join(t,"packs"),P=See(n,o),T=R?await TK(R):[],W=new Date().toISOString(),$=p!==void 0?fr.parse(p):void 0,Y=_?null:await nj(b,i,{target:$,as:f,features:c}),ee=r,M=c,te=m,Te=u,Ot;if(Y){let Ee=Y.packDir,Qe=Y.meta;if(g&&Y.name!==r){let gt=join(b,r);if(await j(gt))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,gt),Ee=gt,Qe={...Y.meta,name:r};}let st=await xK(Ee,Qe,P,c,m,{source:i,...a!==void 0?{version:a}:{},...$!==void 0?{target:$}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},T);ee=st.name,M=st.features,te=st.pick,Te=st.path,Ot=st.paths,y.success(`Updated pack "${st.name}" in .agentsmesh/packs/.`);}else {if(!_&&await Mi(join(b,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await AK(b,r,P,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:W,updated_at:W,features:c,...m!==void 0&&{pick:m},...$!==void 0&&{target:$},..._ee(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},T),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await Ph(t,jK({name:ee,source:i,version:a,sourceKind:l,features:M,pick:te,target:$,path:Te,paths:Ot,as:f,originalRef:S,acceptedElevated:I})),l!=="local"&&await QC(i);}s(UK,"installAsPack");function BK(e,t,r){if(!r?.features&&!r?.pick)return {narrowed:e,discoveredFeatures:t};let n=um(e,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:Tn(n)}}s(BK,"applyReplayInstallScope");function KK(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(KK,"buildInstalledList");function WK(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=ft(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(WK,"buildSkippedList");function HK(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(HK,"stripUntrustedElevatedArtifacts");var kee=["hooks","permissions","mcp"];function zK(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(zK,"resolveElevatedConsent");function VK(e,t){let r={hooks:t.acceptHooks,permissions:t.acceptPermissions,mcp:t.acceptMcp},n=kee.filter(o=>e[o]!==null&&r[o]);return n.length>0?n:void 0}s(VK,"consentedArtifactsForManifest");function JK(e,t){return t?.originalRef!==void 0&&t.originalRef!==""?t.originalRef:e.rawRef!==""?e.rawRef:void 0}s(JK,"resolveOriginalRef");function YK(e,t){if(t.length===0)return e;let r=new Set(t);return e.filter(n=>!r.has(n))}s(YK,"featuresAfterStrip");async function XK(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:R,persisted:_}=e,{replay:S,prep:I,implicitPick:b,narrowed:P,discoveredFeatures:T,sourceType:W}=e,$=zK({acceptHooks:e.acceptHooks,acceptPermissions:e.acceptPermissions,acceptMcp:e.acceptMcp},S),Y=HK(P,{sourceKind:u.kind,...$});Y.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${Y.stripped.join(", ")} from untrusted ${u.kind} source.
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.
392
392
  These artifacts control your tool settings (shell hooks, granted permissions, MCP launch specs).
393
- To accept them explicitly, re-run with: ${Y.stripped.map(Po=>`--accept-${Po}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:ee,discoveredFeatures:M}=BK(Y.canonical,YK(T,Y.stripped),S);if(!dK(ee))throw new Error(b||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 fK(ee,r,n,o),Te=await gK(ee,r,n,o),Ot=await hK(ee,r,n,o),Ee=await yK(ee,r,n,o),Qe={skills:te.length,rules:Te.length,commands:Ot.length,agents:Ee.length},{canonical:st}=await Ft(m,p.configDir,{},p.canonicalDir),gt=!r&&!n&&o?await RK(st,{skills:te,rules:Te,commands:Ot,agents:Ee}):{skillNames:te.map(Po=>Po.name),ruleSlugs:Te.map(Po=>ft(Po)),commandNames:Ot.map(Po=>Po.name),agentNames:Ee.map(Po=>Po.name)};IK({selected:gt,discoveredFeatures:M,preConflict:Qe});let Bs=S?.features??kK(M,gt);if(Bs.length===0)throw new Error("No features left to install after selection.");let ly=_K(S?.pick,gt)??_.pick??SK({pathInRepo:_.pathInRepo??h,implicitPick:b,preConflictCounts:Qe,selected:gt}),pC=await Ht(p.canonicalDir),bm=FK({manifest:pC,parsed:u,entryFeatures:Bs,yamlTarget:I.yamlTarget,explicitAs:c}),Om=DK({config:m,parsed:u,entryFeatures:Bs,nameOverride:l||bm||""}),Am=KK(gt,Om),cy=WK(te,Te,Ot,Ee,gt),wz=JK(u,S),bz=VK(ee,$);if(i){if(await wK({configDir:p.configDir,config:m,entryArgs:{name:Om,source:f,version:g,features:Bs,path:_.pathInRepo,pick:ly,yamlTarget:I.yamlTarget,as:c},dryRun:n}),n)return {installed:Am,skipped:cy}}else {if(n)return y.info(`[dry-run] Would install pack "${Om}" to ${t==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:Am,skipped:cy};await UK({canonicalDir:p.canonicalDir,packName:Om,narrowed:ee,selected:gt,sourceForYaml:f,version:g,sourceKind:u.kind,entryFeatures:Bs,pick:ly,yamlTarget:I.yamlTarget,pathInRepo:_.pathInRepo,manualAs:c,renameExistingPack:l===""&&bm===null,sourceType:W,contentRoot:R,forceFreshMaterialize:a,originalRef:wz,acceptedElevated:bz});}return await gm("install",t,p.rootBase),{installed:Am,skipped:cy}}s(XK,"executeRunInstallPoolsAndWrite");function Rm(e,t){let r=t?.input??process.stdin,n=t?.output??process.stdout;return new Promise(o=>{let i=uK.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(Rm,"readLine");function QK(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(`
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(`
394
394
  `)}
395
- `);}s(QK,"writeBanner");async function ZK(e,t,r){let n=[];for(let o of e){if(o.resolved.length===0)continue;if(t.bypass){QK(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}QK(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(ZK,"runBrokenLinkPrompt");var uL=["skills","agents","commands","rules"],dL={skills:"skill",agents:"agent",commands:"command",rules:"rule"},rW={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function dl(e){return {skills:[],agents:[],commands:[],rules:[],aborted:e}}s(dl,"emptySelection");function eW(e){return {skills:[...e.skills],agents:[...e.agents],commands:[...e.commands],rules:[...e.rules],aborted:false}}s(eW,"selectAll");function tW(e,t,r){let n=[`Found in ${t}:`];for(let o of uL){let i=r[o];if(i.length===0)continue;let a=i.length===1?dL[o]:rW[o];n.push(` - ${i.length} ${a}`);}n.push(""),e.write(`${n.join(`
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(`
396
396
  `)}
397
- `);}s(tW,"writeBanner");async function Iee(e,t,r){if(r.length===0)return {selected:[],aborted:false};let n=rW[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=dL[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(Iee,"walkType");function Lee(e){let t=null;for(let r of uL)for(let n of e[r]){if(t!==null)return null;t={kind:r,id:n};}return t}s(Lee,"findSingleEntity");async function Cee(e,t){let r=dL[t.kind],n=(await e.ask(`Install ${r} "${t.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...dl(false),[t.kind]:[t.id]}:dl(!(n===""||n==="n"))}s(Cee,"runSingleEntityPrompt");async function nW(e,t,r){if(t.bypass)return eW(e);let n=e.skills.length+e.agents.length+e.commands.length+e.rules.length;if(n===0)return dl(false);if(n===1){let a=Lee(e);if(a!==null)return tW(r,t.packName,e),Cee(r,a)}tW(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 eW(e);if(o==="n")return dl(false);if(o!=="s")return dl(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of uL){let{selected:l,aborted:c}=await Iee(r,a,e[a]);if(c)return dl(true);i[a]=l;}return {...i,aborted:false}}s(nW,"runBulkPrompt");ne();function Oee(e,t,r){let n=[];for(let o of wh(e))o.destination===t&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(Oee,"buildLinkRewrites");function sW(e,t,r){e.warn(`Broken link in ${t.entityKind} "${t.entityName}": ${r.link.path} (${r.classification})`);}s(sW,"warnLink");function Aee(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(Aee,"allocateSupportingFileNames");function oW(e,t,r){return e.find(n=>n.entityKind===t&&n.entityName===r)}s(oW,"findEntity");async function xee(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(xee,"buildSupportingFiles");async function Tee(e,t,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=Aee(o),a=await xee(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(...Oee(t.body,p.link.raw,f));}else sW(n,r,p);let m=XB(t.body,l);return {...t,body:m,supportingFiles:a}}s(Tee,"applySkillDecision");async function iW(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)?oW(r.brokenLinks,"skill",l.name):void 0;a.push(c?await Tee(t,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=oW(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)sW(o,c,m);}return {...r,skills:a}}s(iW,"applyBrokenLinkDecisions");var _m=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(t){super(t),this.name="InstallAbortError";}};function Dee(){return {ask:s(e=>Rm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(Dee,"defaultAdapter");function Nee(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=>ft(t))}}s(Nee,"bulkCandidatesFrom");function aW(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(ft(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(aW,"filterCanonical");function vee(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(vee,"discoveredFeaturesOf");async function Fee(e){let t=e.adapter??Dee(),r=await ZK(e.aggregate.brokenLinks,{bypass:e.bypass},t);if(r.aborted)throw new _m("User aborted at broken-link prompt.");let n=[...r.decisions],o=await iW({contentRoot:e.contentRoot,aggregate:e.aggregate,decisions:n,logger:y}),i=Nee(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:aW(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await nW(i,{packName:e.displayName,bypass:e.bypass},t);if(l.aborted)throw new _m("User aborted at bulk-select prompt.");let c=aW(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:vee(c)}}s(Fee,"runSkillPackPromptFlow");function Mee(e){return basename(e)||"install source"}s(Mee,"displayNameForContentRoot");async function lW(e){if(!e.discovery.aggregate)return {aborted:false};try{let t=await Fee({contentRoot:e.contentRoot,aggregate:e.discovery.aggregate,narrowed:e.discovery.narrowed,bypass:e.bypass,displayName:Mee(e.contentRoot)});return {aborted:!1,narrowed:t.narrowed,discoveredFeatures:t.discoveredFeatures}}catch(t){if(t instanceof _m)return y.warn(t.message),{aborted:true};throw t}}s(lW,"runPromptFlowWithAbort");async function cW(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:R,nameOverride:_,acceptHooks:S,acceptPermissions:I,acceptMcp:b,scope:P,sourceArg:T,replay:W}=e,$=process.stdin.isTTY,{prep:Y,implicitPick:ee}=t,{narrowed:M,discoveredFeatures:te}=t;try{let Te=await lW({discovery:t,contentRoot:c,bypass:f||u||!$});if(Te.aborted)return {exitCode:130,data:{source:T,mode:"install",installed:[],skipped:[],dryRun:u}};if(M=Te.narrowed??M,te=Te.discoveredFeatures??te,te.length===0&&r.brokenResources.length>0){let Ee=r.brokenResources.map(Qe=>` - ${Qe.path}: ${Qe.reason}`).join(`
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(`
398
398
  `);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
399
- ${Ee}
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 Ot=await XK({scope:P,force:f,dryRun:u,tty:$,useExtends:g,forceFreshMaterialize:h,nameOverride:_,explicitAs:R,acceptHooks:S,acceptPermissions:I,acceptMcp:b,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:W,prep:Y,implicitPick:ee,narrowed:M,discoveredFeatures:te,sourceType:t.layout?oK(t.layout):void 0});return {exitCode:0,data:{source:T,mode:"install",installed:Ot.installed,skipped:Ot.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{Y.cleanup&&await Y.cleanup();}}s(cW,"runSinglePackInstall");async function mW(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(mW,"runInstallMarketplace");async function pW(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 mW(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(pW,"routePickerResult");tt();A();ne();async function Gee(e){let t=await Ht(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(Gee,"syncInstalledPacks");async function uW(e){return e.sync?(await Gee({canonicalDir:e.canonicalDir,reinstall:e.reinstall}),true):false}s(uW,"maybeRunInstallSync");async function dW(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 uW({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(dW,"handleSync");function fW(){return {brokenResources:[],subPackFailures:[]}}s(fW,"createInstallReport");function Bee(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(Bee,"assertPathStaysInRepo");async function gW(e){let t=await dW(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:R,scope:_,sourceArg:S}=e;if(!S)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:b,context:P}=await ye(r,_);await He(b,r);let T=await YI(S,P.configDir,m);if(T.kind!=="local"&&!await pB())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:W,sourceForYaml:$,version:Y}=await dB(T,S),ee=T.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");Bee(ee,T.pathInRepo);let M=ee?join(W,ee):W;if(!await j(M))throw new Error(`Install path does not exist: ${M}`);let te=await pK({as:u,contentRoot:M,pathInRepo:ee}),Te=fW(),Ot={onParseError:s((Qe,st)=>{Te.brokenResources.push({path:st,kind:"frontmatter",reason:Qe.message});},"onParseError")},Ee=await sK({resolvedPath:W,contentRoot:M,pathInRepo:ee,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:Ot});if(Ee.layout&&!u&&!p&&!m){let Qe=cK({layout:Ee.layout,sourceName:f||(T.org&&T.repo?`${T.org}-${T.repo}`:"source"),sourceForYaml:$,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:I}),st=await pW({pickerResult:Qe,installReport:Te,sourceArg:S,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:e.recurseInstall});if(st!==null)return st}return cW({discovery:Ee,installReport:Te,persisted:te,parsed:T,sourceForYaml:$,version:Y,pathInRepo:ee,contentRoot:M,config:b,context:P,dryRun:o,force:i,useExtends:a,forceFreshMaterialize:c,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:R,scope:_,sourceArg:S,replay:n})}s(gW,"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:R,acceptMcp:_}=mB(e),S=e.global===true?"global":"project",I=t[0]?.trim(),b;if(n===void 0){let{context:P}=await ye(r,S);b=await mm(P.canonicalDir);}try{return await gW({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:R,acceptMcp:_,scope:S,sourceArg:I,recurseInstall:fl})}finally{await b?.();}}s(fl,"runInstall");async function hW(e,t,r){return fl(e,t,r)}s(hW,"runInstall");ne();function yW(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(yW,"renderInstall");tt();Vr();ne();function RW(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(RW,"detectDuplicates");function Dh(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(Dh,"buildPlan");function _W(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=RW(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=>Dh(m.name,m,e,t));for(let m of e.extends)r.has(m.name)||c.push(Dh(m.name,null,e,t));return {removals:c,skipped:[]}}let n=RW(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(Dh(a,l,e,t));continue}if(t.has(a)){o.push(Dh(a,null,e,t));continue}i.push(a);}return {removals:o,skipped:i}}s(_W,"planUninstall");A();A();zc();async function SW(e,t){let r=join(e,pr);if(await j(r))return null;let n=await Mi(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 xh(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(SW,"migrateLegacyManifest");A();var zee=["pack.yaml",pr];function Vee(e,t){return relative(e,t).replaceAll("\\","/")}s(Vee,"toForwardSlashRelative");async function Nh(e,t){let r=await Ws(e),n=new Map;for(let i of r){let a=Vee(e,i);zee.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 vg(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(Nh,"detectModifiedFiles");function kW(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(`
399
+ ${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(`
402
402
  `)}
403
- `);}s(kW,"writeBanner");async function IW(e,t,r){if(e.modifications.length===0)return {action:"proceed"};if(t.bypass)return kW(r,e),{action:"delete-anyway"};kW(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(IW,"runModifiedFilesPrompt");async function Jee(e){let t=await k(join(e,pr));if(t===null)return null;try{return JSON.parse(t).files??{}}catch{return null}}s(Jee,"readManifestFiles");async function Yee(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 SW(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await Jee(n);if(a===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await Nh(n,a);if(r.keepPack||l.length===0)return {plan:e,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await IW({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(Yee,"decideOne");async function CW(e,t,r){let n=[];for(let o of e){let i=await Yee(o,t,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(CW,"gatherUninstallDecisions");A();A();async function EW(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(`
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(`
404
404
  `)?l:`${l}
405
- `),true}s(EW,"removeAgentsmeshExtendByName");async function wW(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 GK(r,t.name),l=false;t.extendsEntry!==null&&(l=await EW(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(wW,"applyUninstall");function tte(e,t){return relative(e,t).replaceAll("\\","/")}s(tte,"toForwardSlashRel");function fL(e){return e.map(t=>({name:t,reason:"not found in installs.yaml"}))}s(fL,"buildSkipped");function bW(e,t,r){return e.plan.manifestEntry===null?null:tte(t,join(r,e.plan.name))}s(bW,"packPathFor");function OW(e,t,r){return e.map(n=>({name:n.plan.name,pack_path:bW(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(OW,"previewEntries");function AW(e,t,r,n){let o=e.action==="keep-modified"||!t.packDirRemoved;return {name:t.name,pack_path:bW(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(AW,"appliedEntry");function rte(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(rte,"parseNames");function nte(){return {ask:s(e=>Rm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(nte,"defaultAdapter");async function vh(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=rte(t),f=e.json===true;function g(S){return f||y.error(S),{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:R}=await ye(r,o);await He(h,r);let _=await mm(R.canonicalDir);try{let S=await Ht(R.canonicalDir),I=join(R.canonicalDir,"packs"),b=_W({names:u,all:i,keepPack:c,keepGenerated:m,installs:S,extends:h.extends,packsDir:I}),{decisions:P,aborted:T}=await CW(b.removals,I,{adapter:n.promptAdapter??nte(),warn:s(ee=>y.warn(ee),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(T)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let ee of b.removals)for(let M of ee.warnings)y.warn(M);if(l){for(let ee of P)y.info(`[dry-run] Would uninstall pack "${ee.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:OW(P,R.rootBase,I),skipped:fL(b.skipped),failed:[],dryRun:!0}}}let W=join(R.configDir,"agentsmesh.yaml"),$=[],Y=[];for(let ee of P){let M=ee.action==="keep-modified"?{...ee.plan,packDir:null}:ee.plan;try{let te=await wW({plan:M,canonicalDir:R.canonicalDir,configPath:W,config:h});$.push(AW(ee,te,R.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&&$.length>0?await gm("uninstall",o,R.rootBase):m&&$.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:$,skipped:fL(b.skipped),failed:Y,dryRun:!1}}}finally{await _();}}s(vh,"runUninstall");async function TW(e,t,r){return vh(e,t,r)}s(TW,"runUninstall");ne();function PW(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(PW,"renderUninstall");tt();Vr();ne();function DW(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(DW,"readRefreshFlags");function NW(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(NW,"parseRefreshNames");A();function ote(e){return e.modifications.length>0?"needs-consent":e.oldSha===e.newSha?"unchanged":"clean-update"}s(ote,"classifyRefreshPlan");async function FW(e,t,r){let n=join(t,e.name),o=e.version??null,i=join(n,pr),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 Nh(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:ote({modifications:c,oldSha:o,newSha:m})}}s(FW,"planSinglePack");function MW(){return async e=>{if(e.source_kind==="local")return e.version??"local";let t=xu(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 kh(r,t.remoteUrl)}}s(MW,"createDefaultResolveRef");async function $W(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 Ht(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 Ph(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($W,"applySinglePack");async function ste(e,t,r={}){let n=r.readLine??Rm,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":ite(a)}finally{o&&clearTimeout(o);}}s(ste,"promptWithTimeout");function ite(e){let t=e.trim().toLowerCase();return t==="y"||t==="yes"?"y":t==="per-pack"?"per-pack":"n"}s(ite,"normalize");async function gL(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 ste(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(gL,"runConsentPrompt");function ate(e,t){let r=xu(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(ate,"buildSourceForRefresh");function GW(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=ate(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(GW,"createRunInstallForRefresh");var jW=300*1e3;async function Fh(e,t,r){let{dryRun:n,force:o,global:i,json:a}=DW(e),l=i?"global":"project",c=NW(t),m=s(()=>({scope:l,mode:"refresh",refreshed:[],unchanged:[],skipped:[],failed:[],dryRun:n}),"emptyData"),{config:p,context:u}=await ye(r,l);await He(p,r);let f=await mm(u.canonicalDir);try{let g=await Ht(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 R=join(u.canonicalDir,"packs"),_=MW(),S=[];for(let M of h)S.push(await FW(M,R,{resolveRef:_}));let I=S.filter(M=>M.classification==="error"),b=S.filter(M=>M.classification==="unchanged"),P=S.filter(M=>M.classification==="clean-update"),T=S.filter(M=>M.classification==="needs-consent"),W=m();if(W.unchanged=b.map(M=>({name:M.name,ref:M.newSha})),W.failed=I.map(M=>({name:M.name,phase:"plan",error:M.error?.message??"unknown plan error"})),n){for(let M of P)W.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 T)W.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:W}}let $=new Set(P.map(M=>M.name));if(T.length>0)if(o)for(let M of T)$.add(M.name);else {let M=await gL(T.map(te=>({name:te.name,modifiedCount:te.modifications.length})),{timeoutMs:jW});if(M.proceed&&!M.perPack)for(let te of T)$.add(te.name);else if(M.proceed&&M.perPack)for(let te of T)(await gL([{name:te.name,modifiedCount:te.modifications.length}],{timeoutMs:jW})).proceed?$.add(te.name):W.skipped.push({name:te.name,reason:"user-declined"});else for(let te of M.declined)W.skipped.push({name:te,reason:"user-declined"});}let Y=GW({projectRoot:r,scope:l});for(let M of [...P,...T]){if(!$.has(M.name))continue;let te=await $W(M,u.canonicalDir,{runInstallForRefresh:Y});te.success?W.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}}):W.failed.push({name:M.name,phase:te.phase??"apply",error:te.error??"unknown"});}return W.refreshed.length>0&&await gm("refresh",l,u.rootBase),{exitCode:W.failed.length>0?1:0,data:W}}finally{await f();}}s(Fh,"runRefresh");async function UW(e,t,r){return Fh(e,t,r)}s(UW,"runRefresh");ne();function BW(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(BW,"renderRefresh");tt();A();zc();async function mte(e){let t=await k(join(e,pr));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(mte,"readPackManifestMeta");function pte(e,t){return relative(e,t).replaceAll("\\","/")}s(pte,"toForwardSlashRel");async function Mh(e,t){let r=e.global===true?"global":"project",n=Xi(t,r),o=await Ht(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await mte(c),p=await Mi(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:pte(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(Mh,"runInstallsList");var ute=["list"];function KW(e){return {scope:e,subcommand:"list",installs:[]}}s(KW,"emptyData");async function WW(e,t,r){let n=e.global===true?"global":"project",o=t[0];return o===void 0||o===""?{exitCode:0,data:KW(n),showHelp:true}:o==="list"?Mh(e,r):{exitCode:2,data:KW(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${ute.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(WW,"runInstalls");ne();var $h=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function dte(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(dte,"toRow");function fte(e){let t={name:0,source:0,features:0,license:0,installed:0};for(let n of $h)t[n.key]=n.label.length;for(let n of e)for(let o of $h)t[o.key]=Math.max(t[o.key],n[o.key].length);let r=$h.map(n=>n.label.padEnd(t[n.key])).join(" ");y.info(r);for(let n of e)y.info($h.map(o=>n[o.key].padEnd(t[o.key])).join(" "));}s(fte,"renderTable");function HW(e){if(e.error&&y.error(e.error),e.showHelp){Ju("installs");return}let{data:t}=e;if(t.installs.length===0){y.info("No installed packs.");return}fte(t.installs.map(dte));}s(HW,"renderInstalls");eI();A();var _L="agentsmesh.yaml";async function SL(e){let t=join(e,_L),r=await k(t);return r===null?{}:parse(r)??{}}s(SL,"readScopedConfigRaw");async function VW(e,t){let r=join(e,_L),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(VW,"writePluginEntry");async function JW(e,t){let r=join(e,_L),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(JW,"removePluginEntry");async function YW(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 gte(e,t.slice(1),r);case "list":return hte(r);case "remove":return yte(t.slice(1),r);case "info":return Rte(t.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(YW,"runPlugin");async function gte(e,t,r){let n=t[0];if(!n)throw new Pn("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)??_te(n);return await VW(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(gte,"runPluginAdd");async function hte(e){let r=(await SL(e)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await Wg(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(hte,"runPluginList");async function yte(e,t){let r=e[0];if(!r)throw new Pn("Usage: agentsmesh plugin remove <id>");let n=await JW(t,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(yte,"runPluginRemove");async function Rte(e,t){let r=e[0];if(!r)throw new Pn("Usage: agentsmesh plugin info <id>");let o=((await SL(t)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await Wg(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(Rte,"runPluginInfo");function _te(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(_te,"derivePluginId");ne();function XW(e){if(e.error&&y.error(e.error),e.showHelp){Cte();return}let{data:t}=e;switch(t.subcommand){case "add":Ste(t.id,t.package,t.version);break;case "list":kte(t.plugins);break;case "remove":Ite(t.id,t.found);break;case "info":Lte(t,e.exitCode);break}}s(XW,"renderPlugin");function Ste(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(Ste,"renderAdd");function kte(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(kte,"renderList");function Ite(e,t){t?y.success(`Plugin '${e}' removed from agentsmesh.yaml`):y.warn(`Plugin '${e}' was not found in agentsmesh.yaml`);}s(Ite,"renderRemove");function Lte(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(Lte,"renderInfo");function Cte(){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(Cte,"printPluginHelp");A();Nn();function Bi(e){return e.toUpperCase().replace(/-/g,"_")}s(Bi,"toPrefix");function js(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}s(js,"toPascal");function kL(e){let t=Bi(e.id),r=js(e.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
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';
408
408
  import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
409
409
  import { generateRules } from './generator.js';
410
410
  import { importFrom${r} } from './importer.js';
@@ -507,7 +507,7 @@ export const descriptor = {
507
507
  buildImportPaths: build${r}ImportPaths,
508
508
  detectionPaths: [${t}_DIR],
509
509
  } satisfies TargetDescriptor;
510
- `}s(kL,"TEMPLATE_INDEX");function IL(e){return `import { describe, it, expect } from 'vitest';
510
+ `}s(rC,"TEMPLATE_INDEX");function nC(e){return `import { describe, it, expect } from 'vitest';
511
511
  import type { CanonicalFiles } from '../../../../src/core/types.js';
512
512
  import { generateRules } from '../../../../src/targets/${e.id}/generator.js';
513
513
 
@@ -536,7 +536,7 @@ describe('generateRules (${e.id})', () => {
536
536
  expect(result).toHaveLength(0);
537
537
  });
538
538
  });
539
- `}s(IL,"TEMPLATE_GENERATOR_TEST");function LL(e){let t=js(e.id);return `import { describe, it, expect } from 'vitest';
539
+ `}s(nC,"TEMPLATE_GENERATOR_TEST");function oC(e){let t=pi(e.id);return `import { describe, it, expect } from 'vitest';
540
540
  import { importFrom${t} } from '../../../../src/targets/${e.id}/importer.js';
541
541
 
542
542
  describe('importFrom${t} (${e.id})', () => {
@@ -550,10 +550,10 @@ describe('importFrom${t} (${e.id})', () => {
550
550
  expect(result).toHaveLength(0);
551
551
  });
552
552
  });
553
- `}s(LL,"TEMPLATE_IMPORTER_TEST");function CL(e){return `# ${e.displayName} Workspace
553
+ `}s(oC,"TEMPLATE_IMPORTER_TEST");function sC(e){return `# ${e.displayName} Workspace
554
554
 
555
555
  Follow the ${e.displayName} configuration files and keep changes small.
556
- `}s(CL,"TEMPLATE_FIXTURE_ROOT_MD");function qW(e){let t=Bi(e.id);return `export const ${t}_TARGET = '${e.id}';
556
+ `}s(sC,"TEMPLATE_FIXTURE_ROOT_MD");function Tz(e){let t=pa(e.id);return `export const ${t}_TARGET = '${e.id}';
557
557
 
558
558
  // Project-level paths
559
559
  export const ${t}_DIR = '.${e.id}';
@@ -566,21 +566,21 @@ export const ${t}_GLOBAL_RULES_DIR = '~/.${e.id}/rules';
566
566
  // Canonical paths
567
567
  export const ${t}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
568
568
  export const ${t}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
569
- `}s(qW,"TEMPLATE_CONSTANTS");function QW(e){let t=Bi(e.id);return `import type { CanonicalFiles } from '../../core/types.js';
569
+ `}s(Tz,"TEMPLATE_CONSTANTS");function Pz(e){let t=pa(e.id);return `import type { CanonicalFiles } from '../../core/types.js';
570
570
  import { ${t}_TARGET, ${t}_DIR } from './constants.js';
571
571
 
572
- export interface ${js(e.id)}Output {
572
+ export interface ${pi(e.id)}Output {
573
573
  path: string;
574
574
  content: string;
575
575
  }
576
576
 
577
- export function generateRules(_canonical: CanonicalFiles): ${js(e.id)}Output[] {
577
+ export function generateRules(_canonical: CanonicalFiles): ${pi(e.id)}Output[] {
578
578
  // TODO(agentsmesh-scaffold): implement generateRules for ${e.displayName}
579
579
  void ${t}_TARGET;
580
580
  void ${t}_DIR;
581
581
  return [];
582
582
  }
583
- `}s(QW,"TEMPLATE_GENERATOR");function ZW(e){let t=js(e.id),r=Bi(e.id);return `import type { ImportResult } from '../../core/types.js';
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';
584
584
  import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
585
585
  import { ${r}_TARGET } from './constants.js';
586
586
 
@@ -592,7 +592,7 @@ export async function importFrom${t}(
592
592
  void ${r}_TARGET;
593
593
  return [];
594
594
  }
595
- `}s(ZW,"TEMPLATE_IMPORTER");function eH(e){let t=Bi(e.id);return `/** Lint rules for the ${e.id} target. */
595
+ `}s(Dz,"TEMPLATE_IMPORTER");function Nz(e){let t=pa(e.id);return `/** Lint rules for the ${e.id} target. */
596
596
  import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
597
597
  import { validateRules } from '../../core/lint/validate-rules.js';
598
598
  import { ${t}_TARGET } from './constants.js';
@@ -610,7 +610,7 @@ export function lintRules(
610
610
  target: ${t}_TARGET,
611
611
  }));
612
612
  }
613
- `}s(eH,"TEMPLATE_LINTER");function tH(e){return `/**
613
+ `}s(Nz,"TEMPLATE_LINTER");function vz(e){return `/**
614
614
  * ${e.displayName}-specific lint hooks.
615
615
  */
616
616
 
@@ -620,7 +620,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
620
620
  // TODO(agentsmesh-scaffold): implement target-specific hook validation for ${e.displayName}
621
621
  return [];
622
622
  }
623
- `}s(tH,"TEMPLATE_LINT_HOOKS");function rH(e){let t=js(e.id),r=Bi(e.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
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';
624
624
  import { ${r}_DIR } from '../../../targets/${e.id}/constants.js';
625
625
 
626
626
  export async function build${t}ImportPaths(
@@ -632,26 +632,26 @@ export async function build${t}ImportPaths(
632
632
  // Reference: src/core/reference/import-maps/kiro.ts for a full example
633
633
  void ${r}_DIR;
634
634
  }
635
- `}s(rH,"TEMPLATE_IMPORT_MAP");var wte=/^[a-z][a-z0-9-]*$/;async function nH(e){let{id:t,projectRoot:r,force:n=false}=e,o=e.displayName??t,i={id:t,displayName:o};if(!wte.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(je.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:qW(i)},{rel:`src/targets/${t}/index.ts`,content:kL(i)},{rel:`src/targets/${t}/generator.ts`,content:QW(i)},{rel:`src/targets/${t}/importer.ts`,content:ZW(i)},{rel:`src/targets/${t}/linter.ts`,content:eH(i)},{rel:`src/targets/${t}/lint.ts`,content:tH(i)},{rel:`src/core/reference/import-maps/${t}.ts`,content:rH(i)},{rel:`tests/unit/targets/${t}/generator.test.ts`,content:IL(i)},{rel:`tests/unit/targets/${t}/importer.test.ts`,content:LL(i)},{rel:`tests/e2e/fixtures/${t}-project/AGENTS.md`,content:CL(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(nH,"writeTargetScaffold");async function sH(e,t,r){let n=t[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?bte(e,t.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(sH,"runTarget");async function bte(e,t,r){let n=t[0];if(!n)throw new Pn("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 nH({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=>oH(l,r)),skipped:a.skipped.map(l=>oH(l,r)),postSteps:a.postSteps}}}s(bte,"runScaffold");function oH(e,t){return (e.startsWith(t)?e.slice(t.length+1):e).replaceAll("\\","/")}s(oH,"relativize");ne();function iH(e){if(e.error&&y.error(e.error),e.showHelp){Ote();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(iH,"renderTarget");function Ote(){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(Ote,"printTargetHelp");rt();Zi();A();tt();Vr();vo();function Fte(e,t){return e===".agentsmesh"?false:!!(e.startsWith(".")||!t)}s(Fte,"shouldSymlink");function Mte(e){let t=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(e,{withFileTypes:true});for(let n of r){if(!Fte(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(Mte,"createTempProjectRoot");async function jh(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=Vt(l),p=Vt(c);if(!m||!p)try{let{config:_}=await ye(r,"project");await He(_,r);}catch{let _=[];throw m||_.push(`--from "${i}"`),p||_.push(`--to "${a}"`),new Error(`Unknown ${_.join(" and ")}. Supported: ${je.join(", ")}.`)}let u=re(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${je.join(", ")}.`);if(!re(c))throw new Error(`Unknown --to "${a}". Supported: ${je.join(", ")}.`);let g=e["dry-run"]===true,h=g?"dry-run":"convert",R=Mte(o);try{await u.generators.importFrom(R,{scope:n});let _=await Gt(R),S=Yi.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),I=await zr({config:S,canonical:_,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let T of I)if(T.status==="created"||T.status==="updated"){let W=Xc(o,T.path,T.target);await L(W,T.content);}}let b=I.filter(T=>T.status!=="skipped"),P=b.map(T=>({path:T.path,target:T.target,status:T.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:P,summary:{created:b.filter(T=>T.status==="created").length,updated:b.filter(T=>T.status==="updated").length,unchanged:b.filter(T=>T.status==="unchanged").length}}}}finally{rmSync(R,{recursive:true,force:true});}}s(jh,"runConvert");ne();function aH(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(aH,"renderConvert");var $te=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,N=class extends Error{static{s(this,"McpError");}code;details;constructor(t,r,n){if($te.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 Sm(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(Sm,"redactAbsolutePaths");async function EL(e){let t=resolve(e.projectRoot,".agentsmesh",e.feature),r=resolve(t,e.relativePath);if(!r.startsWith(t+sep)&&r!==t)throw new N("PATH_TRAVERSAL",`path escapes ${e.feature} directory`);if(Buffer.byteLength(e.content,"utf8")>1048576)throw new N("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(EL,"safeWrite");var zte=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function Wi(e){let t=zte.exec(e);if(!t)return {frontmatter:{},body:e};let[,r,n]=t;return {frontmatter:parse(r)??{},body:n}}s(Wi,"parseMd");function km(e,t){return Object.keys(e).length===0?t:`---
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:`---
636
636
  ${stringify(e).trimEnd()}
637
637
  ---
638
638
 
639
- ${t}`}s(km,"serializeMd");var qte=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,Qte={rules:"_root"};function Uh(e){if(!qte.test(e)||e.includes(".."))throw new N("INVALID_NAME",`invalid name: ${e}`)}s(Uh,"checkName");function Bh(e,t,r){return resolve(e,".agentsmesh",t,`${r}.md`)}s(Bh,"pathFor");function Im(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}=Wi(f);m.push(n(u,g));}return m},async get(l,{name:c}){Uh(c);let m=Bh(l.projectRoot,t,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Wi(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new N("NOT_FOUND",`${t} "${c}" not found`):new N("IO_ERROR",`failed to read ${t}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){Uh(c);let f=r.safeParse(m);if(!f.success)throw new N("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=Bh(l.projectRoot,t,c);if(await a(g))throw new N("ALREADY_EXISTS",`${t} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new N("LIMIT_EXCEEDED",`${t} dir at ${1e3} entries`);let R=km(m,p);return u===true?{path:g,written:false}:(await EL({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){Uh(c);let g=Bh(l.projectRoot,t,c),h;try{let b=await readFile(g,"utf8");h=Wi(b);}catch(b){let P=b.code;throw P==="ENOENT"?new N("NOT_FOUND",`${t} "${c}" not found`):new N("IO_ERROR",`failed to read ${t}`,{errno:P})}let R=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,_=r.safeParse(R);if(!_.success)throw new N("VALIDATION_FAILED","invalid frontmatter",_.error.issues);let S=p!==void 0?p:h.body,I=km(R,S);return f===true?{path:g,written:false}:(await EL({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(Uh(c),Qte[t]===c&&m!==true)throw new N("PROTECTED_FILE",`${t} "${c}" requires force: true`);let u=Bh(l.projectRoot,t,c);if(!await a(u))throw new N("NOT_FOUND",`${t} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(Im,"createCanonicalHandlers");var Zte=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(),mH=Im({feature:"rules",frontmatterSchema:Zte,toSummary:s((e,t)=>({name:e,description:t.description??null,root:!!t.root,globs:t.globs??null,targets:t.targets??null}),"toSummary")});var ere=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),pH=Im({feature:"commands",frontmatterSchema:ere,toSummary:s((e,t)=>({name:e,description:t.description??null,allowedTools:t["allowed-tools"]??null}),"toSummary")});var tre=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(),uH=Im({feature:"agents",frontmatterSchema:tre,toSummary:s((e,t)=>({name:e,description:t.description??null,tools:t.tools??null,model:t.model??null}),"toSummary")});var rre=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),nre=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")}),ore=z$1.object({}).strict();function bL(e,t){let r=e==="rule"?"rules":e==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:ore,handler:s(n=>t.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${e}`,description:`Get a single ${e} by name`,inputSchema:rre,handler:s((n,o)=>t.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${e}`,description:`Create a new ${e}`,inputSchema:nre,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(bL,"canonicalTools");var dH=[...bL("rule",mH),...bL("command",pH),...bL("agent",uH)];async function gH(e){let t=resolve(e.projectRoot,".agentsmesh/skills",e.skillName),r=resolve(t,e.filePath);if(!r.startsWith(t+sep)&&r!==t)throw new N("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new N("NOT_FOUND",`skill file not found: ${e.filePath}`):new N("IO_ERROR","failed to read skill file")}}s(gH,"safeRead");var pre=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,ure=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,_H=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Fu(e){if(!pre.test(e))throw new N("INVALID_NAME",`invalid skill name: ${e}`)}s(Fu,"checkName");function xL(e){if(!ure.test(e)||e.includes("..")||e.includes("//"))throw new N("PATH_TRAVERSAL",`invalid supporting-file path: ${e}`)}s(xL,"checkSupportPath");async function Hh(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new N("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(Hh,"atomicWrite");var SH=s(e=>resolve(e,".agentsmesh/skills"),"skillsDir"),Mu=s((e,t)=>resolve(SH(e),t),"skillDir"),hl={async list(e){let t;try{t=(await readdir(SH(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(Mu(e.projectRoot,n),"SKILL.md"),"utf8"),i=Wi(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(e,{name:t}){Fu(t);let r=Mu(e.projectRoot,t);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Wi(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 N("NOT_FOUND",`skill "${t}" not found`):new N("IO_ERROR","failed to read skill")}},async getFile(e,{name:t,path:r}){return Fu(t),xL(r),{content:await gH({projectRoot:e.projectRoot,skillName:t,filePath:r}),encoding:"utf-8"}},async create(e,t){Fu(t.name);let r=_H.safeParse(t.frontmatter);if(!r.success)throw new N("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=Mu(e.projectRoot,t.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new N("ALREADY_EXISTS",`skill "${t.name}" exists`);let i=t.supportingFiles??{},a=Object.keys(i);if(a.forEach(xL),a.length+1>1e3)throw new N("LIMIT_EXCEEDED","supporting files exceed cap");if(t.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await Hh(l,km(t.frontmatter,t.body));for(let[c,m]of Object.entries(i))await Hh(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(e,t){Fu(t.name);let r=Mu(e.projectRoot,t.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Wi(p);}catch(p){throw p.code==="ENOENT"?new N("NOT_FOUND",`skill "${t.name}" not found`):new N("IO_ERROR","failed to read skill")}let o=t.frontmatter===void 0?n.frontmatter:t.merge===true?{...n.frontmatter,...t.frontmatter}:t.frontmatter,i=_H.safeParse(o);if(!i.success)throw new N("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=t.body!==void 0?t.body:n.body,l=t.supportingFiles??{};Object.keys(l).forEach(xL);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 Hh(resolve(r,"SKILL.md"),km(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 Hh(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(e,{name:t,dry_run:r}){Fu(t);let n=Mu(e.projectRoot,t);try{await stat(n);}catch{throw new N("NOT_FOUND",`skill "${t}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var dre=z$1.object({}).strict(),fre=z$1.object({name:z$1.string().describe("Item name")}),kH=[{name:"list_skills",description:"List skills",inputSchema:dre,handler:s(e=>hl.list(e),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:fre,handler:s((e,t)=>hl.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)=>hl.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)=>hl.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)=>hl.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)=>hl.delete(e,t),"handler")}];async function IH(e){if(e.filename!==void 0&&e.filename!=="agentsmesh.yaml")throw new N("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(e.content,"utf8")>1048576)throw new N("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(IH,"safeConfigWrite");vo();Um();async function $u(e){try{return parse(await readFile(e,"utf8"))}catch(t){if(t.code==="ENOENT")return null;throw new N("IO_ERROR","failed to read yaml")}}s($u,"readYaml");async function Cm(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new N("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(Cm,"atomicWrite");var dr={async getConfig(e){let t=await $u(resolve(e.projectRoot,"agentsmesh.yaml"));if(t===null)throw new N("NO_PROJECT","agentsmesh.yaml missing");return t},async listMcpServers(e){let t=resolve(e.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await Xr(t))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(e){return await $u(resolve(e.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(e){return await $u(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 $u(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=Yi.safeParse(n);if(!i.success)throw new N("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 IH({projectRoot:e.projectRoot,content:a,filename:t.filename}),written:true}},async addMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await Xr(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[t.name]!==void 0)throw new N("ALREADY_EXISTS",`server "${t.name}" exists`);return n.mcpServers[t.name]=t.server,t.dry_run===true?{path:r,written:false}:(await Cm(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 Xr(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new N("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 Cm(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 Xr(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new N("NOT_FOUND",`server "${t.name}" not found`);return delete n.mcpServers[t.name],t.dry_run===true?{path:r,removed:false}:(await Cm(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 $u(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 Cm(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 Cm(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 Cm(r,n.join(`
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(`
643
643
  `)+`
644
- `),{path:r,written:true})}};var xre=/[;&|`$<>!\\\r\n]/u,Tre=/^[A-Za-z_][A-Za-z0-9_]*$/u,Pre=/^[A-Za-z][A-Za-z0-9_-]*$/u,Dre=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,EH=/[\r\n]/u,wH=/[\0\r\n]/u;function Nre(e){return wH.test(e)?false:!e.split(/[/\\]/u).includes("..")}s(Nre,"isSafeMcpCwd");function vre(e){return z$1.string().min(1).max(512).refine(t=>!xre.test(t),{message:`${e} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(vre,"noShellMeta");var DL=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(e=>!wH.test(e),{message:"description must not contain NUL or newline characters"}).optional(),command:vre("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(Tre,"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(Pre,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(Nre,{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(),Fre=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"}),bH=z$1.string().max(256).refine(e=>!EH.test(e),{message:"hook matcher must not contain newlines"}),Mre=z$1.object({matcher:bH,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"}),$re=z$1.object({matcher:bH,hooks:z$1.array(Fre).min(1).max(50)}).strict(),Gre=z$1.union([Mre,$re]),OH=z$1.record(z$1.string().min(1).max(64),z$1.array(Gre).max(100)),jre=z$1.string().min(1).max(256).refine(e=>!EH.test(e),{message:"permission pattern must not contain newlines"}).refine(e=>Dre.test(e),{message:"permission pattern must match Tool or Tool(matcher) form"}),Vh=z$1.array(jre).max(500);var Gu=z$1.object({}).strict(),Ure=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Gu,handler:s(e=>dr.getConfig(e),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Gu,handler:s(e=>dr.listMcpServers(e),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Gu,handler:s(e=>dr.getPermissions(e),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Gu,handler:s(e=>dr.getHooks(e),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Gu,handler:s(e=>dr.getIgnore(e),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],Bre=[{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)=>dr.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:DL.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)=>dr.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:DL,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>dr.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)=>dr.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:Vh.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:Vh.optional().describe("Denied tool patterns"),ask:Vh.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)=>dr.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:OH.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.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)=>dr.updateIgnore(e,t),"handler")}],AH=[...Ure,...Bre];sI();Nn();function Kre(){return Object.fromEntries(je.map(e=>[e,Object.fromEntries(Object.entries(t0).map(([t,r])=>[t,r[e]]))]))}s(Kre,"buildTargetIndex");var xH=Kre(),NL={async list(){return xH},async get(e){let t=xH[e.targetId];if(t===void 0)throw new N("NOT_FOUND",`unknown target: ${e.targetId}`);return {targetId:e.targetId,capabilities:t}}};No();No();rd();tt();Oo();Vr();rt();Nn();async function vL(e,t){let r=re(e);if(!r)throw new Dn(e,{supported:[...je,...Rd().map(n=>n.id)]});return r.generators.importFrom(t.root,{scope:t.scope??"project"})}s(vL,"importFrom");async function Em(e,t={}){let r=t.scope??"project",{config:n,context:o}=await ye(e,r);await He(n,e);let{canonical:i}=await Ft(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(Em,"loadProjectContext");async function FL(e){let t=e.targetFilter?[...e.targetFilter]:void 0;return Rh(e.config,e.canonical,e.projectRoot,t,{scope:e.scope})}s(FL,"lint");async function ML(e){let t=await zr(e);return {...hh(t),results:t}}s(ML,"diff");async function $L(e){return _h(e)}s($L,"check");No();Oo();Zi();rd();xe();rt();be();function yl(e,t={}){let r=Math.max(1,t.cap??eh),n=lh(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((S,I)=>{let b=n.get(S),P=n.get(I);return b!==P?b-P:S<I?-1:1}),R=new Set(h.slice(r)),_=g.triggers.filter(S=>!R.has(S));i.set(f,_),o.push({id:f,removedTriggers:[...R],keptCount:_.length});}let a=[],l=[];if(t.knownPaths!==void 0){let f=uu(e,t.knownPaths);if(f.size>0){for(let[g,h]of i){let R=h.filter(S=>f.has(S));if(R.length===0)continue;let _=h.filter(S=>!f.has(S));_.length>=1?(i.set(g,_),a.push({id:g,removedTriggers:R,keptCount:_.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(yl,"planPrune");function Jh(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(Jh,"applyPruneToGraph");function ju(e){return e.removedTriggerIds.length===0&&e.removedTopicIds.length===0&&e.trimmedLessons.length===0&&e.removedDeadGlobs.length===0}s(ju,"isEmptyPrunePlan");function Yre(e){let t=Ge(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(Yre,"isAutoPruneEnabled");async function TH(e,t){if(!Yre(e))return null;let r=Ve(e);if(r===null||ju(yl(r,{trimOverCap:false,knownPaths:t})))return null;let n={removedTriggers:0,removedTopics:0,detachedDeadGlobs:0};return await Et(e,i=>{let a=yl(i,{trimOverCap:false,knownPaths:t});ju(a)||(Jh(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(TH,"maybeAutoPrune");function Yh(e,t){let r=e.replaceAll("\\","/"),n=PH(t,r);if(!n.startsWith("../"))return n;let o=PH(GL(t),GL(resolve(t,r)));return o.startsWith("../")?n:o}s(Yh,"normalizeRecallFile");function PH(e,t){let r=relative(e,resolve(e,t)).replaceAll("\\","/");return r===""?t.replaceAll("\\","/"):r}s(PH,"relativize");function GL(e){try{return realpathSync(e)}catch{let t=dirname(e);return t===e?e:resolve(GL(t),basename(e))}}s(GL,"safeRealpath");var lne="agentsmesh-lessons-seen";function Xh(e={}){if(e.disabled===true)return null;let t=e.explicit!==void 0&&e.explicit.trim().length>0?e.explicit.trim():am(e.env);if(t===void 0)return null;let r=cne(t);return {sessionId:t,seen:mne(r),path:r}}s(Xh,"openSessionDedup");function cne(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,200);return join(tmpdir(),lne,`${t}.json`)}s(cne,"seenPath");function mne(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(mne,"loadSeen");function qh(e,t){return t.filter(r=>!e.seen.has(r.id))}s(qh,"filterUnseen");function Qh(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(Qh,"commitSeen");async function Uu(e,t,r={}){try{await dt(e);}catch{}let n=Xg(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:Yh(t.file,e)},a=lm(o,i),l=Xh({explicit:r.sessionId,disabled:r.noDedup}),c=l===null?a:qh(l,a),m=ph(e),p=cm(o,i,c,{limit:r.limit??m.limit,maxTokens:r.maxTokens===null?void 0:r.maxTokens??m.maxTokens});return l!==null&&Qh(l,p.map(u=>u.id)),UL(e,o,i,a,p,{bypassed:false}),{lessons:p,totalMatches:a.length,suppressed:a.length-c.length}}s(Uu,"recallLessons");function UL(e,t,r,n,o,i={}){if(!$i())return;let a=MI(t,r),l=s(m=>n.filter(({lesson:p})=>p.triggers.some(u=>m.has(u))).length,"countVia"),c=am();gU(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+ml(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(UL,"recordRecallTelemetry");async function Bu(e,t,r={}){await dt(e);let n={file:t.triggers.files?.length??0,command:t.triggers.commands?.length??0,keyword:t.triggers.keywords?.length??0},o=r.knownPaths??Gi(e)??void 0;try{let i=await nh(e,t,{...r,knownPaths:o});FI(e,n,i);let a=await TH(e,o);return a===null?i:{...i,autoPruned:a}}catch(i){throw FI(e,n,null),i}}s(Bu,"captureLesson");async function Zh(e,t,r,n={}){return Et(e,o=>pne(o,t,r),{retries:n.retries})}s(Zh,"mergeLessons");function pne(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:BL(o.triggers,n.triggers),topics:BL(o.topics,n.topics),evidence:BL(o.evidence,n.evidence)},e.lessons[t]={...n,status:"superseded",supersededBy:r},{loserId:t,keeperId:r}}s(pne,"mergeInto");function BL(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(BL,"union");var KL=String.raw`L\d+(?:\s*,\s*L\d+)*`,une=[new RegExp(String.raw`\s*\bSee\s+${KL}\.?`,"g"),new RegExp(String.raw`\s*\((?:${KL})\)\.?`,"g"),new RegExp(String.raw`\s*\[(?:${KL})\]\.?`,"g")],dne=/\s*\(also relevant[^)]*\)\s*/g;function WL(e){let t=e;for(let r of une)t=t.replace(r,"");return t=t.replace(dne," "),t.trim()}s(WL,"stripLegacyMarkers");function DH(e){let t=[];for(let[r,n]of Object.entries(e.lessons)){let o=WL(n.rule);o===n.rule||o.length===0||(t.push(r),e.lessons[r]={...n,rule:o});}return t.sort()}s(DH,"applyStrip");async function ey(e,t={}){await dt(e);let r=Ve(e);if(r===null)return {changedIds:[],changedCount:0};if(t.dryRun===true){let o=DH(r);return {changedIds:o,changedCount:o.length}}let n=[];return await Et(e,o=>{n=DH(o);}),{changedIds:n,changedCount:n.length}}s(ey,"stripMarkersInGraph");A();function Hi(e){if(e instanceof N)throw e;if(e instanceof Dn)throw new N("VALIDATION_FAILED",e.message);let t=e instanceof Error?e.message:String(e);throw /unknown.*--from|unknown.*--to|unknown target/i.test(t)?new N("VALIDATION_FAILED",t):/lock/i.test(t)?new N("LOCK_HELD","generate lock is held"):new N("IO_ERROR","engine failure",{reason:t})}s(Hi,"wrapEngineError");async function NH(e,t){if(t.dry_run===true)throw new N("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 vL(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 Dn)throw new N("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 N("VALIDATION_FAILED",n);Hi(r);}}s(NH,"importFromTarget");async function vH(e,t){try{let r={from:t.from,to:t.to,"dry-run":t.dry_run===!0},n=await jh(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 N("VALIDATION_FAILED",n);Hi(r);}}s(vH,"convert");async function fne(e,t){try{let r=await Em(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,i=(await zr({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=Xc(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){Hi(r);}}s(fne,"generate");async function gne(e,t){try{let r=await Em(e.projectRoot),n=await FL({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){Hi(r);}}s(gne,"lint");async function hne(e){try{let t=await Em(e.projectRoot),r=await $L({config:t.config,configDir:t.configDir,canonicalDir:t.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(t){Hi(t);}}s(hne,"check");async function yne(e,t){try{let r=await Em(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,o=await ML({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){Hi(r);}}s(yne,"diff");var Rl={generate:fne,lint:gne,check:hne,diff:yne,import:NH,convert:vH};var FH=z$1.object({}).strict(),MH=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:FH,handler:s(()=>NL.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)=>NL.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)=>Rl.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)=>Rl.lint(e,t),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:FH,handler:s(e=>Rl.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)=>Rl.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)=>Rl.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)=>Rl.convert(e,t),"handler")}];function HL(e){if(e instanceof N)throw e;let t=e instanceof Error?e.message:String(e),r=Sm(t);throw /lock|LockAcquisitionError/i.test(r)?new N("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 N("VALIDATION_FAILED",r):new N("IO_ERROR","install pipeline failure",{reason:r})}s(HL,"wrapInstallError");function Rne(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(Rne,"toInstallFlags");function _ne(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(_ne,"toUninstallFlags");async function Sne(e,t){if(typeof t.source!="string"||t.source.trim().length===0)throw new N("VALIDATION_FAILED","install: `source` is required");try{let r=await fl(Rne(t),[t.source],e.projectRoot);if(r.exitCode!==0)throw new N("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){HL(r);}}s(Sne,"install");async function kne(e,t){if(t.all!==true&&(!Array.isArray(t.names)||t.names.length===0))throw new N("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await vh(_ne(t),t.names??[],e.projectRoot)).data}catch(r){HL(r);}}s(kne,"uninstall");async function Ine(e,t={}){try{let r={};return t.global===!0&&(r.global=!0),(await Mh(r,e.projectRoot)).data}catch(r){HL(r);}}s(Ine,"installsList");var ty={install:Sne,uninstall:kne,installsList:Ine};function Lne(e){let t={force:true};return e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Lne,"toRefreshFlags");function Cne(e){if(e instanceof N)throw e;let t=e instanceof Error?e.message:String(e),r=Sm(t);throw /lock|LockAcquisitionError/i.test(r)?new N("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new N("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new N("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new N("REFRESH_APPLY_FAILED",r):new N("IO_ERROR","refresh pipeline failure",{reason:r})}s(Cne,"wrapRefreshError");async function Ene(e,t={}){try{let r=await Fh(Lne(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 N("VALIDATION_FAILED",i)}return r.data}catch(r){Cne(r);}}s(Ene,"refresh");var $H={refresh:Ene};var wne=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.")}),bne=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.")}),One=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),Ane=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.")}),GH=[{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:wne,handler:s((e,t)=>ty.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:bne,handler:s((e,t)=>ty.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:One,handler:s((e,t)=>ty.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:Ane,handler:s((e,t)=>$H.refresh(e,t),"handler")}];async function ry(e,t,r){return Et(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(ry,"deprecateLesson");async function jH(e,t){await dt(e.projectRoot);let r=Ve(e.projectRoot),n=r?.topics[t.topic];if(r===null||n===void 0)throw new N("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(jH,"lessonsShow");async function UH(e,t){try{return await ry(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 N("NOT_FOUND",`lessons_deprecate: ${n}`):r}}s(UH,"lessonsDeprecate");function zL(e){return e===void 0?[]:typeof e=="string"?e.length>0?[e]:[]:e.filter(t=>t.length>0)}s(zL,"toTriggerList");function xne(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(xne,"toEvidenceList");var wm={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 N("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 Uu(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 dt(e.projectRoot);let t=Ve(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:jH,deprecate:UH,async add(e,t){try{return await Bu(e.projectRoot,{rule:t.rule,topic:t.topic,triggers:{files:zL(t.trigger_files??t.trigger_file),commands:zL(t.trigger_commands??t.trigger_cmd),keywords:zL(t.trigger_keywords??t.trigger_kw)},evidence:xne(t.evidence),rationale:t.rationale},{allowNewTopic:t.new_topic===!0,topicSummary:t.topic_summary})}catch(r){throw r instanceof xn?new N("NOT_FOUND",`lessons_add: unknown topic "${r.topic}". Pass new_topic=true + topic_summary to create it.`,{code:r.code}):r instanceof Ms||r instanceof $s||r instanceof Fs?new N("VALIDATION_FAILED",`lessons_add: ${r.message}`,{code:r.code}):r}}};var Tne=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(),_l=z$1.union([z$1.string(),z$1.array(z$1.string())]),Pne=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:_l.optional().describe('file_glob triggers (e.g. ["src/cli/**/*.ts"] or a single "src/**").'),trigger_file:_l.optional().describe("Alias of `trigger_files` (matches the CLI `--trigger-file` flag)."),trigger_commands:_l.optional().describe("command_pattern triggers \u2014 regexes matched against shell commands."),trigger_cmd:_l.optional().describe("Alias of `trigger_commands` (matches the CLI `--trigger-cmd` flag)."),trigger_keywords:_l.optional().describe("keyword triggers \u2014 case-insensitive substrings of task descriptions."),trigger_kw:_l.optional().describe("Alias of `trigger_keywords` (matches the CLI `--trigger-kw` flag)."),evidence:_l.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(),BH=[{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:Tne,handler:s((e,t)=>wm.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:Pne,handler:s((e,t)=>wm.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=>wm.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)=>wm.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)=>wm.deprecate(e,t),"handler")}];function KH(e){let t=toJSONSchema(e,{target:"draft-07"});return delete t.$schema,t}s(KH,"zodToMcpSchema");var ny=[...dH,...kH,...AH,...MH,...GH,...BH],VL=ny.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")}));Zi();async function Fne(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 N("NO_PROJECT","agentsmesh.yaml not found");t=r;}}s(Fne,"findProjectRoot");async function JL(e){let t=await Fne(e.cwd);return {projectRoot:t,loadCanonical:s(()=>Gt(t),"loadCanonical")}}s(JL,"resolveContext");function HH(e,t){let r=Mne(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:$ne(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(HH,"enrichValidationIssues");function Mne(e){let t=e.shape;return t!==void 0&&typeof t=="object"?Object.keys(t):[]}s(Mne,"objectShapeKeys");function $ne(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=Gne(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($ne,"nearestKey");function Gne(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(Gne,"editDistance");async function Yne(){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(Yne,"pkgVersion");function Xne(e,t){return new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(t)}s(Xne,"matchTemplate");function qne(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(qne,"extractTemplateParams");async function zH(){let e=new Server({name:"agentsmesh-mcp",version:await Yne()},{capabilities:{tools:{},resources:{}}});e.setRequestHandler(ListToolsRequestSchema,async()=>({tools:ny.map(t=>({name:t.name,description:t.description,inputSchema:KH(t.inputSchema)}))})),e.setRequestHandler(CallToolRequestSchema,async t=>{let r=ny.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=HH(r.inputSchema,n.error.issues);throw new N("VALIDATION_FAILED","invalid input",a)}let o=await JL({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof N?n.toEnvelope():{code:"IO_ERROR",message:Sm(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),e.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:VL.map(t=>({uri:t.uri,name:t.name,description:t.description}))})),e.setRequestHandler(ReadResourceRequestSchema,async t=>{let r=VL.find(a=>a.uri===t.params.uri||Xne(a.uri,t.params.uri));if(!r)throw new N("NOT_FOUND",`resource not found: ${t.params.uri}`);let n=await JL({cwd:process.cwd()}),o=qne(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(zH,"startServer");ne();async function VH(e,t){hC(),await zH();}s(VH,"runMcp");var XL={output:""},qL=s(e=>typeof e=="string"&&e.length>0?e:void 0,"str"),JH=" \u2026[truncated]";function Qne(e){return e.length<=tm?e:e.slice(0,tm-JH.length)+JH}s(Qne,"clampRule");async function YH(e,t){let r;try{r=JSON.parse(e);}catch{return XL}let n=qL(r.tool_input?.file_path),o=qL(r.tool_input?.command);if(n===void 0&&o===void 0)return XL;let i={...n!==void 0?{file:n}:{},...o!==void 0?{command:o}:{}},{lessons:a}=await Uu(t,i,{sessionId:qL(r.session_id)});if(a.length===0)return XL;let l=n??o??"",c=a.map(p=>`- ${Qne(p.lesson.rule)}`).join(`
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(`
647
647
  `),m=`Recalled agentsmesh lessons for ${l} \u2014 apply before your next action:
648
- ${c}`;return {output:JSON.stringify({hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:m}})}}s(YH,"buildRecallHookOutput");function XH(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(XH,"summarizeCapture");var Zne=[{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")}],eoe=1800*1e3;function qH(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(qH,"percentile");function toe(e,t){return t.length>0&&t.every(r=>e.triggers[r]?.kind==="keyword")}s(toe,"isKeywordOnly");function roe(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)>eoe)&&r++,t.push(r);}return t}s(roe,"sessionIndices");function noe(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=ml(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(noe,"intraSessionRedundancy");function QH(e,t){let r=e.length,n=e.filter(_=>_.totalMatches===0).length,o=e.map(_=>_.returnedTokens),i=o.reduce((_,S)=>_+S,0),a=Object.values(t.lessons).filter(_=>_.status==="active"),l=a.reduce((_,S)=>_+ml(S.rule),0),c=roe(e),m=r===0?0:c[c.length-1]+1,p=e.filter(_=>_.bypassed===true).length,u=e.filter(_=>_.bypassed!==true).reduce((_,S)=>_+S.returnedTokens,0),f=l*m,g=e.filter(_=>_.totalMatches>0),h=g.filter(_=>_.matchedByKind.keyword>0&&_.matchedByKind.file===0&&_.matchedByKind.command===0).length,R=a.filter(_=>toe(t,_.triggers)).length;return {totalRecalls:r,noMatchRate:r===0?0:n/r,matchCountHistogram:Zne.map(_=>({bucket:_.label,count:e.filter(S=>_.test(S.totalMatches)).length})),returnedTokens:{p50:qH(o,50),p90:qH(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:noe(e,c,t),reachability:{keywordOnlyRecallRate:g.length===0?0:h/g.length,keywordOnlyUnreachableLessons:R}}}s(QH,"summarizeRecall");function $t(e,t){let r=e[t];return typeof r=="string"&&r.length>0?r:null}s($t,"stringFlag");function ZH(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(ZH,"listFlag");function oy(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(oy,"repeatedFlag");function Ku(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(Ku,"numberFlag");function ez(e){let t=$t(e,"format");return t==="md"||t==="json"||t==="plain"?t:"plain"}s(ez,"parseFormat");function tz(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(tz,"queryFromFlags");function zi(){return {version:1,lessons:{},topics:{},triggers:{}}}s(zi,"emptyGraph");function rz(){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(rz,"todayIso");function nz(e,t,r){let n=[`# ${e}`,"",t,"","## Lessons",""];for(let[o,i]of r)n.push(`- **${o}** \u2014 ${i.rule}`);return `${n.join(`
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(`
649
649
  `)}
650
- `}s(nz,"renderTopicMarkdown");function oz(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(`
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(`
651
651
  `)}
652
- `}s(oz,"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 sz(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(sz,"validatePositiveIntFlag");function ioe(e){let t=e.format;return t===void 0||t==="plain"||t==="md"||t==="json"?null:"Invalid --format: expected plain|md|json."}s(ioe,"validateFormatFlag");function sy(...e){let t=e.filter(r=>r!==void 0&&r.length>0);return t.length>0?t.join(`
653
- `):void 0}s(sy,"mergeWarnings");function aoe(e){if(existsSync(join(e,".agentsmesh")))return;let t=oh(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(aoe,"strayDirWarning");function QL(e,t,r){let n=sz(e,"top");if(n!==null)return Me("query",n,2);let o=sz(e,"max-tokens");if(o!==null)return Me("query",o,2);let i=ioe(e);if(i!==null)return Me("query",i,2);let a=ez(e),l=tz(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:Yh(l.file,t)},p=EU(t)??void 0,u=Xg(t);if(u.status==="corrupt"){let $={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:sy(`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:$}}if(u.status==="newer-version"){let $={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:sy(`lessons.json is version ${u.version}, newer than this build supports (${iu}) \u2014 recall returned no lessons. Upgrade agentsmesh to read it.`,p)};return {subcommand:"query",exitCode:0,format:a,data:$}}if(u.status==="absent"){let $=aoe(t),Y=sy($??gu(),c,p);return {subcommand:"query",exitCode:0,format:a,data:{lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Y}}}let f=u.graph,g=lm(f,m),h=Xh({explicit:$t(e,"session")??void 0,disabled:e["no-dedup"]===true}),R=h===null?g:qh(h,g),_=ph(t),S=e.all===true?void 0:Ku(e,"top")??_.limit,I=e.all===true?void 0:Ku(e,"max-tokens")??_.maxTokens,b=cm(f,m,R,{limit:S,maxTokens:I});h!==null&&Qh(h,b.map(({id:$})=>$)),UL(t,f,m,g,b,{bypassed:e.all===true});let P=b.map(({id:$,lesson:Y,score:ee})=>({id:$,rule:Y.rule,topics:[...Y.topics],triggers:[...Y.triggers],evidence:[...Y.evidence],score:ee})),T=g.length-R.length,W={lessons:P,query:m,autoMigrated:r,totalMatches:g.length,...T>0?{suppressed:T}:{},...e.ids===true?{showIds:true}:{},...(()=>{let $=sy(c,p);return $?{warning:$}:{}})()};return {subcommand:"query",exitCode:0,format:a,data:W}}s(QL,"doQuery");function iz(e){return typeof e=="object"&&e!==null&&e.status==="deprecated"}s(iz,"isDeprecated");function loe(e,t,r){let n=qg(t),o=qg(r);if(n===o)return t;if(e!==void 0){let l=qg(e);if(n===l)return r;if(o===l)return t}let i=iz(t),a=iz(r);return i!==a?i?t:r:n>o?t:r}s(loe,"pick");function ZL(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?loe(e[o],i,a):i??a;}return n}s(ZL,"mergeRecord");function az(e,t,r){return {version:t.version,lessons:ZL(e.lessons,t.lessons,r.lessons),topics:ZL(e.topics,t.topics,r.topics),triggers:ZL(e.triggers,t.triggers,r.triggers)}}s(az,"mergeGraphs");function eC(e){try{let t=il.safeParse(JSON.parse(readFileSync(e,"utf8")));return t.success?t.data:null}catch{return null}}s(eC,"readGraphFile");function tC(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=eC(t),a=eC(r),l=eC(n);if(i===null||a===null||l===null)return o;let c=az(i,a,l);return xo(c).ok?(writeFileSync(r,cu(c),"utf8"),{subcommand:"merge-driver",exitCode:0,data:{merged:true}}):o}s(tC,"doMergeDriver");function lz(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(lz,"untriggerLesson");function iy(e){return (e instanceof Error?e.message:String(e)).replace(/^(mutateLessonsGraph|mergeLessons):\s*/,"")}s(iy,"errMessage");async function rC(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.${zu()}`,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).${zu()}`,2);let a=existsSync(join(r,".agentsmesh"))?null:oh(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=fu(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 Bu(r,{rule:o,topic:i,triggers:{files:oy(e,"trigger-file"),commands:oy(e,"trigger-cmd"),keywords:oy(e,"trigger-kw")},evidence:ZH(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 xn?Me("add",`Unknown topic: ${m.topic}. Pass --new-topic --topic-summary "..." to create it.`,1):m instanceof Ms||m instanceof $s||m instanceof Fs?Me("add",`${m.message}${zu()}`,2):Me("add",iy(m),1)}}s(rC,"doAdd");async function nC(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 ry(r,t,n);return {subcommand:"deprecate",exitCode:0,data:{id:o,supersededBy:i}}}catch(o){let i=iy(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(nC,"doDeprecate");async function oC(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 Et(r,i=>lz(i,e,t))}}catch(n){return Me("untrigger",iy(n),1)}}s(oC,"doUntrigger");async function sC(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 Zh(r,e,t)}}catch(n){return Me("merge",iy(n),1)}}s(sC,"doMerge");async function iC(e,t){let r=e["dry-run"]===true,n=await ey(t,{dryRun:r});return {subcommand:"strip-markers",exitCode:0,data:{changedIds:n.changedIds,changedCount:n.changedCount,dryRun:r}}}s(iC,"doStripMarkers");async function aC(e,t){let r=e.force===true,n=e.merge===true;if(!r&&!n&&existsSync(Ao(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(Ge(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")??rz(),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(aC,"doImportMd");function lC(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(lC,"toPruneData");async function cC(e,t){let r=Ku(e,"cap");if(r!==null&&(!Number.isInteger(r)||r<1))return Me("prune","Invalid --cap: expected a positive integer.",2);let n=Gi(t)??void 0,o={...r!==null?{cap:r}:{},...n?{knownPaths:n}:{}};if(e.apply!==true){let c=Ve(t)??zi();return {subcommand:"prune",exitCode:0,data:lC(yl(c,o),false)}}let i=Ve(t)??zi(),a=yl(i,o);return ju(a)?{subcommand:"prune",exitCode:0,data:lC(a,true)}:{subcommand:"prune",exitCode:0,data:await Et(t,c=>{let m=yl(c,o);return Jh(c,m),lC(m,true)})}}s(cC,"doPrune");function mz(e){let t=Ve(e)??zi(),r=Object.entries(t.topics).map(([o,i])=>({id:o,summary:i.summary})).sort((o,i)=>o.id<i.id?-1:1),n=fu(e)?void 0:gu();return {subcommand:"topics",exitCode:0,data:{topics:r,...n?{setupHint:n}:{}}}}s(mz,"doTopics");function pz(e,t){if(e===void 0||e==="")return Me("show","Usage: agentsmesh lessons show <topic|lesson-id>",2);let r=Ve(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=nz(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=oz(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(pz,"doShow");function uz(e){let t=Ve(e)??zi(),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=fu(e)?void 0:gu();return {subcommand:"journal",exitCode:0,data:{entries:r,...n?{setupHint:n}:{}}}}s(uz,"doJournal");function dz(e,t){let r=Ve(t)??zi(),n=QH(yU(t),r),o=XH(_U(t));return {subcommand:"stats",exitCode:0,format:e.json===true?"json":"text",data:{report:n,captureReport:o,hasLog:hU(t),hasCaptureLog:RU(t),telemetryEnabled:$i()}}}s(dz,"doStats");function fz(e){let t;try{t=Ve(e)??zi();}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=Gi(e)??void 0,n=xo(t,{knownPaths:r}),o={ok:n.ok,findings:n.findings};return {subcommand:"validate",exitCode:n.ok?0:1,data:o}}s(fz,"doValidate");async function gz(e){let t=await goe(),{output:r}=await YH(t,e);return {subcommand:"hook",exitCode:0,data:{output:r}}}s(gz,"doHook");var doe=1e6;async function foe(e,t=doe){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(foe,"readBoundedStream");async function goe(){return process.stdin.isTTY===true?"":foe(process.stdin)}s(goe,"readStdin");var hoe=["json","verbose","help"],yoe={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 hz(e,t){let r=yoe[e];if(r===void 0)return null;let n=new Set([...r,...hoe]);for(let o of Object.keys(t))if(!n.has(o))return `Unknown flag --${o} for \`lessons ${e}\`.
654
- Usage: ${Ks[e].usage}`;return null}s(hz,"validateLessonsFlags");async function Roe(e,t){if(e==="import-md")return false;if(e==="query"||e==="hook")try{return await dt(t)}catch{return false}return dt(t)}s(Roe,"migrateForSubcommand");async function yz(e,t,r){let n=t[0];if(n===void 0||n==="")return {subcommand:"help",exitCode:0,data:null};let o=hz(n,e);if(o!==null)return {subcommand:"help",exitCode:2,error:o,data:null};let i=await Roe(n,r);switch(n){case "query":return QL(e,r,i);case "add":return rC(e,t[1],r);case "topics":return mz(r);case "show":return pz(t[1],r);case "deprecate":return nC(e,t[1],r);case "merge":return sC(t[1],t[2],r);case "untrigger":return oC(t[1],t[2],r);case "strip-markers":return iC(e,r);case "journal":return uz(r);case "validate":return fz(r);case "stats":return dz(e,r);case "prune":return cC(e,r);case "import-md":return aC(e,r);case "hook":return gz(r);case "merge-driver":return tC(t.slice(1));default:return {subcommand:"help",exitCode:2,error:`Unknown lessons subcommand: ${n}`,data:null}}}s(yz,"runLessons");ne();ne();function ay(e){return `${(e*100).toFixed(1)}%`}s(ay,"pct");function _z(e,t){if(t==="json"){process.stdout.write(`${JSON.stringify({...e.report,capture:e.captureReport},null,2)}
655
- `);return}if(!e.hasLog&&!e.hasCaptureLog){_oe(e.telemetryEnabled);return}e.hasLog&&Soe(e.report),e.hasCaptureLog&&koe(e);}s(_z,"renderStats");function _oe(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(_oe,"renderEmptyStatsHint");function Soe(e){let t=e.preloadBreakEven;y.info(`recalls: ${e.totalRecalls} no-match: ${ay(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: ${ay(e.redundancy.rate)} of delivered rule-tokens are intra-session repeats (coverage ${ay(e.redundancy.coverage)})`),y.info(`reachability: keyword-only recalls ${ay(e.reachability.keywordOnlyRecallRate)}, keyword-only-unreachable lessons ${e.reachability.keywordOnlyUnreachableLessons}`);}s(Soe,"renderRecallStats");function koe(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(koe,"renderCaptureStats");function Sz(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.`),Rz(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`);Rz(e.unreachableLessons),e.applied||y.warn("Dry run \u2014 pass --apply to write. lessons.json is git-tracked, so prune is reversible.");}s(Sz,"renderPrune");function Rz(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(Rz,"renderUnreachable");function kz(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(kz,"renderValidate");function Lz(e){if(e.error!==void 0&&e.error.length>0){y.error(e.error);return}switch(e.subcommand){case "help":return Ooe();case "hook":e.data.output.length>0&&process.stdout.write(`${e.data.output}
656
- `);return;case "merge-driver":return;case "query":return Ioe(e.data,e.format);case "add":return Loe(e.data);case "topics":return Coe(e.data);case "show":return Eoe(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 woe(e.data);case "validate":return kz(e.data);case "prune":return Sz(e.data);case "stats":return _z(e.data,e.format);case "import-md":return boe(e.data)}}s(Lz,"renderLessons");function Ioe(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(Ioe,"renderQuery");function Loe(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)`);Iz(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(", ")}`),Iz(e);}s(Loe,"renderAdd");function Iz(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(Iz,"renderGuardrails");function Coe(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(Coe,"renderTopics");function Eoe(e){process.stdout.write(e.markdown);}s(Eoe,"renderShow");function woe(e){for(let t of e.entries)y.info(`${t.createdAt} ${t.id} ${t.rule}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(woe,"renderJournal");function boe(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(boe,"renderImportMd");function Ooe(){y.info("Usage: agentsmesh lessons <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:");for(let e of Object.values(Ks)){let t=e.usage.replace(/^agentsmesh lessons /,""),r=e.summary!==void 0?` (${e.summary})`:"";y.info(` ${t}${r}`);}}s(Ooe,"printHelp");function ot(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Array.isArray(n)?n[n.length-1]:n;return t}s(ot,"narrowFlags");var Cz={generate:s(async(e,t)=>{let r=ot(e),n=await qc(r,void 0,{printMatrix:r.json!==true});it("generate",n,r,()=>Qc(n));},"generate"),init:s(async(e,t)=>{let r=await vU(process.cwd(),{yes:e.yes===true,global:e.global===true,lessons:e.lessons===true});it("init",r,ot(e),()=>MU(r));},"init"),import:s(async(e,t)=>{let r=ot(e),n=await jU(r);it("import",n,r,()=>tB(n));},"import"),diff:s(async(e,t)=>{let r=ot(e),n=await BU(r);it("diff",n,r,()=>rB(n));},"diff"),lint:s(async(e,t)=>{let r=ot(e),n=await QU(r);it("lint",n,r,()=>ZU(n));},"lint"),check:s(async(e,t)=>{let r=ot(e),n=await iB(r);it("check",n,r,()=>eB(n));},"check"),merge:s(async(e,t)=>{let r=ot(e),n=await cB(r);it("merge",n,r,()=>nB(n));},"merge"),matrix:s(async(e,t)=>{let r=ot(e),n=await ru(r);it("matrix",n,r,()=>ou(n,{verbose:r.verbose===true}));},"matrix"),watch:s(async(e,t)=>{let r=ot(e);if(r.json===true){Cl("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let n=await sB(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=ot(e);r.json===true&&(r.force=true);let n=await hW(r,t,process.cwd());it("install",n,r,()=>yW(n));},"install"),uninstall:s(async(e,t)=>{let r=ot(e);r.json===true&&(r.force=true);let n=await TW(r,t,process.cwd());it("uninstall",n,r,()=>PW(n));},"uninstall"),refresh:s(async(e,t)=>{let r=ot(e),n=await UW(r,t,process.cwd());it("refresh",n,r,()=>BW(n));},"refresh"),installs:s(async(e,t)=>{let r=ot(e),n=await WW(r,t,process.cwd());it("installs",n,r,()=>HW(n));},"installs"),plugin:s(async(e,t)=>{let r=ot(e),n=await YW(r,t,process.cwd());it("plugin",n,r,()=>XW(n));},"plugin"),target:s(async(e,t)=>{let r=ot(e),n=await sH(r,t,process.cwd());it("target",n,r,()=>iH(n));},"target"),convert:s(async(e,t)=>{let r=ot(e),n=await jh(r);it("convert",n,r,()=>aH(n));},"convert"),mcp:s(async(e,t)=>{await VH(ot(e));},"mcp"),lessons:s(async(e,t)=>{let r=await yz(e,t,process.cwd());it("lessons",r,ot(e),()=>Lz(r)),r.exitCode!==0&&process.exit(r.exitCode);},"lessons")};var Toe=new Set(["json","verbose","help"]);function mC(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(mC,"setFlag");function Poe(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(Toe.has(a)){mC(t,a,true);continue}let l=e[o+1];l===void 0||l.startsWith("--")?mC(t,a,true):(mC(t,a,l),o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:t,args:r}}s(Poe,"parseArgs");var Doe=dC(Cz);async function Noe(e){let{command:t,flags:r,args:n}=e;if(t==="help"){uy();return}if(t==="version"){_C();return}if(r.help===true){Ju(t,n);return}r.json===true&&gC(),await Doe.route(t,r,n);}s(Noe,"main");function voe(){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(voe,"isMainModule");if(voe()){let e=Poe(process.argv.slice(2));Noe(e).catch(t=>SC(t instanceof Error?t:new Error(String(t)),{verbose:e.flags.verbose===true,json:e.flags.json===true,command:e.command}));}export{Poe as parseArgs};
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};