agentsmesh 0.20.0 → 0.22.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/CHANGELOG.md +70 -0
- package/README.md +14 -1
- package/dist/canonical.js +81 -13
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +206 -162
- package/dist/engine.js +181 -15
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +651 -232
- package/dist/index.js.map +1 -1
- package/dist/lessons.d.ts +155 -0
- package/dist/lessons.js +305 -0
- package/dist/lessons.js.map +1 -0
- package/dist/targets.js +22 -2
- package/dist/targets.js.map +1 -1
- package/package.json +12 -3
package/dist/cli.js
CHANGED
|
@@ -1,203 +1,207 @@
|
|
|
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 {realpathSync,rmSync,statSync,existsSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,constants,readFileSync}from'fs';import {z as z$1}from'zod';import {parse,stringify}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
|
|
3
|
-
`);},warn(t){
|
|
4
|
-
`);},error(t){
|
|
5
|
-
`);},success(t){
|
|
6
|
-
`);},debug(t){
|
|
7
|
-
`);},table(t){if(
|
|
8
|
-
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>
|
|
9
|
-
`);}
|
|
10
|
-
`);}};});var
|
|
11
|
-
`)}function Cg(t){return j0.has(extname(t).toLowerCase())?493:void 0}var Ya,$0,G0,j0,Bp=d(()=>{Ya="\uFEFF",$0=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),G0=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(jp,"shouldNormalizeLineEndings");s(Up,"normalizeLineEndings");j0=new Set([".sh",".bash",".zsh"]);s(Cg,"executableModeFor");});function $S(t){if(t.length>J0)return true;let e=new Map;for(let r of t){let n=(e.get(r)??0)+1;if(n>=Y0)return true;e.set(r,n);}return false}async function $(t,e,r){let n=r??[basename(t)],o;try{o=await realpath(t);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new Ne(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=e??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(t,{withFileTypes:!0}),l=[];for(let c of a){let m=join(t,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if($S(u))continue;l.push(...await $(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 Ne(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Xa(t,e){let r=e??[basename(t)];try{let n=await readdir(t,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(t,i.name);if(i.isDirectory()){let l=[...r,i.name];if($S(l))continue;o.push(...await Xa(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 Ne(t,`Failed to read directory ${t}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function kg(t,e){let r=resolve(t);try{if(!(await lstat(e)).isSymbolicLink()||resolve(dirname(e),await readlink(e))===r)return;await unlink(e);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,e,"dir");}var J0,Y0,GS=d(()=>{Io();J0=32,Y0=3;s($S,"shouldSkipRecursiveBranch");s($,"readDirRecursive");s(Xa,"readDirRecursiveNoSymlinks");s(kg,"ensureCacheSymlink");});async function _(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Ya)?e.slice(Ya.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new Ne(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}async function S(t,e,r){let n=dirname(t);await mkdir(n,{recursive:true});try{let l=await lstat(t);if(l.isDirectory())throw new Ne(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(t).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof Ne||l.code!=="ENOENT")throw l}let o=`${t}.tmp`,i=jp(t)?Up(e):e,a=r?.mode??Cg(t);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,t),a!==void 0&&await chmod(t,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new Ne(t,`Failed to write ${t}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function O(t){await mkdir(t,{recursive:true});}var A=d(()=>{Io();Bp();GS();Bp();s(_,"readFileSafe");s(S,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function Fe(t){return Eg.includes(t)}var Eg,KS=d(()=>{Eg=["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(Fe,"isBuiltinTargetId");});var vt,Lg,Sn=d(()=>{KS();vt=Eg,Lg="codex-cli";});var WS,nr,Za,oB,Uc,sB,iB,jc,aB,lB,Li,So=d(()=>{Sn();WS=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],nr=z$1.enum(vt),Za=z$1.enum(WS),oB=z$1.enum(["rules","commands","agents","skills"]),Uc=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(),sB=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:nr.optional(),as:oB.optional(),features:z$1.array(Za),path:z$1.string().optional(),pick:Uc.optional()}),iB=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),jc=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),aB=z$1.object({commands_to_skills:z$1.object({"codex-cli":jc.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":jc.optional(),cline:jc.optional(),"codex-cli":jc.optional(),windsurf:jc.optional()}).passthrough().optional()}).strict().optional(),lB=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(),Li=z$1.object({version:z$1.literal(1),targets:z$1.array(nr).default([...vt]),features:z$1.array(Za).default([...WS]),extends:z$1.array(sB).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:iB.default({strategy:"merge",lock_features:[]}),conversions:aB,plugins:z$1.array(lB).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function pB(t){let e=resolve(t);for(;;){let r=join(e,wg);if(await j(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}async function uB(t){let e=await _(t);if(e===null)throw new $r(t);let r=parse(e),n=Li.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Va(t,o,{cause:n.error})}return n.data}function Og(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null||dB.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]=Og(i,o):r[n]=o;}return r}function fB(t,e){let r={...t};return Array.isArray(e.targets)&&e.targets.length>0&&(r.targets=e.targets),Array.isArray(e.features)&&e.features.length>0&&(r.features=e.features),typeof e.overrides=="object"&&e.overrides!==null&&!Array.isArray(e.overrides)&&(r.overrides=Og(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=Og(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}async function Wp(t){let e=join(t,wg),r=await uB(e),n=join(t,mB),o=await _(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=fB(r,i),l=Li.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:t}}async function Hp(t){let e=await pB(t);if(e===null)throw new $r(join(t,wg));return Wp(dirname(e))}var wg,mB,dB,zp=d(()=>{A();st();Io();So();wg="agentsmesh.yaml",mB="agentsmesh.local.yaml";s(pB,"findConfigPath");s(uB,"loadConfig");dB=new Set(["__proto__","constructor","prototype"]);s(Og,"deepMergeObjects");s(fB,"mergeLocalConfig");s(Wp,"loadConfigFromExactDir");s(Hp,"loadConfigFromDir");});function Oi(t,e="project"){if(e==="project")return {scope:e,rootBase:t,configDir:t,canonicalDir:join(t,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:e,rootBase:r,configDir:n,canonicalDir:n}}async function yt(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await Hp(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Oi(t,e);try{let{config:n}=await Wp(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof $r?new $r(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 Zt=d(()=>{zp();Io();s(Oi,"resolveScopeContext");s(yt,"loadScopedConfig");});function YS(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function Vp(t,e,r,n,o){let i="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,l=t.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,VS),u=`${m}.tmp`,f=join(u,VS);if(!r.refresh&&await JS(p))return Tg(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await kB(CB(t),f),t.ref&&await EB(f,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(u,m),Tg(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await JS(p))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${g instanceof Error?g.message:String(g)}`),Tg(p);throw g}}async function Tg(t){return {resolvedPath:t,version:await LB(t)}}async function JS(t){return j(t)}function CB(t){if("cloneUrl"in t){let e=process.env.AGENTSMESH_GITLAB_TOKEN;if(e){let r=new URL(t.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=e,r.toString()}return t.cloneUrl}return t.url}async function kB(t,e){YS(t,"clone-url"),await xg(["clone",t,e]);}async function EB(t,e){YS(e,"ref"),await xg(["checkout",e],t);}async function LB(t){return xg(["rev-parse","HEAD"],t)}async function xg(t,e){let{stdout:r}=await SB("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var SB,VS,Dg=d(()=>{A();SB=promisify(execFile),VS="repo";s(YS,"ensureNotFlag");s(Vp,"fetchGitRemoteExtend");s(Tg,"readCachedRepo");s(JS,"hasCachedRepo");s(CB,"resolveCloneUrl");s(kB,"cloneRepo");s(EB,"checkoutRef");s(LB,"getHeadSha");s(xg,"runGit");});function bB(){let t=process.env.AGENTSMESH_MAX_TARBALL_MB;if(t===void 0||t==="")return Kc*1024*1024;let e=Number(t);return !Number.isFinite(e)||!Number.isInteger(e)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${t}" is not an integer; using default ${Kc} MiB.`),Kc*1024*1024):e<ZS||e>QS?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${e} is outside [${ZS}, ${QS}]; using default ${Kc} MiB.`),Kc*1024*1024):e*1024*1024}async function TB(t,e){let r=typeof t.headers?.get=="function"?t.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>e)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${e}`)}let n=t.body;if(!n){let m=await t.arrayBuffer();if(m.byteLength>e)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${e}`);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>e)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${e} 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 eC(t,e,r){let n=`https://api.github.com/repos/${t}/${e}/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 ${t}/${e}: ${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 ${t}/${e}`);return a.tag_name}async function rC(t,e,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=t.tag;if(c==="latest")try{c=await eC(t.org,t.repo,a);}catch(C){if(!i)throw C;return DB(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),p=join(n,m);if(!l&&await j(p)){let C=await Ng(p);if(C)return {resolvedPath:join(p,C),version:c}}let u=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let C=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!C.ok)throw new Error(`HTTP ${C.status}: ${C.statusText}`);g=await TB(C,PB);}catch(C){if(r.allowOfflineFallback!==false&&await j(p)){let P=await Ng(p);if(P)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${C instanceof Error?C.message:String(C)}`),{resolvedPath:join(p,P),version:c}}throw C}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 tC.extract({file:h,cwd:p,strict:!0,filter:s((C,R)=>!(xB(C)||R&&"type"in R&&(R.type==="Link"||R.type==="SymbolicLink")),"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let I=await Ng(p);if(!I)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,I),version:c}}async function Ng(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function qS(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}function xB(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function DB(t,e,r,n,o,i){let a=i?[qS(t.org,t.repo,i)]:[qS(t.org,t.repo),`ssh://git@github.com/${t.org}/${t.repo}.git`],l;for(let c of a){let m={url:c};try{return await Vp(m,e,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Kc,ZS,QS,PB,nC=d(()=>{A();Dg();Kc=500,ZS=1,QS=4096;s(bB,"resolveMaxTarballBytes");PB=bB();s(TB,"readBoundedResponse");s(eC,"resolveLatestTag");s(rC,"fetchGithubRemoteExtend");s(Ng,"findExtractTopDir");s(qS,"buildGithubCloneUrl");s(xB,"isZipSlipPath");s(DB,"fetchGithubDefaultBranch");});function oC(t,e,r){if(!t.startsWith(e))return null;let n=t.slice(e.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 sC(t){let e=oC(t,"github:","latest");if(!e)return null;let[r,n]=e,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 iC(t){let e=oC(t,"gitlab:");if(!e)return null;let[r,n]=e,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 aC(t){if(!t.startsWith("git+"))return null;let e=t.slice(4).trim();if(!e)return null;let r=e.lastIndexOf("#"),n=(r<0?e:e.slice(0,r)).trim(),o=r<0?void 0:e.slice(r+1).trim();if(!n||r>=0&&!o)return null;let i;try{i=new URL(n);}catch{return null}return (process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="1"||process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="true"?["https:","http:","ssh:","file:"]:["https:","ssh:","file:"]).includes(i.protocol)?{url:n,ref:o}:null}function wi(t){let e=sC(t);if(e)return {kind:"github",...e};let r=iC(t);if(r)return {kind:"gitlab",...r};let n=aC(t);return n?{kind:"git",...n}:null}function Fg(t){return wi(t)!==null}var Wc=d(()=>{s(oC,"splitSourceRef");s(sC,"parseGithubSource");s(iC,"parseGitlabSource");s(aC,"parseGitSource");s(wi,"parseRemoteSource");s(Fg,"isSupportedRemoteSource");});function MB(t){let e=wi(t);return e?e.kind==="github"?Qa("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?Qa("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):Qa("git",e.url,e.ref??"HEAD"):null}async function mC(t,e){let r=MB(t);if(!r)return;let n=e??ve(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function pC(t,e){let r=t??ve(),n=e??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 vg=d(()=>{Hc();Wc();s(MB,"cacheKeyFromSource");s(mC,"cleanInstallCache");s(pC,"sweepStaleCache");});function Qa(t,e,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(t==="github"){let[i,a]=e.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(t)}__${n(e)}__${n(r)}`;}else o=`${n(t)}__${n(e)}__${n(r)}`;if(o.length>fC){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,fC-18)}--${i}`;}return o}function ve(){let t=process.env.AGENTSMESH_CACHE;if(t){let e=t.trim();if(!e)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(e))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${e}").`);if(e==="/"||/^[A-Za-z]:[\\/]?$/.test(e))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${e}").`);return e}return join(homedir(),".agentsmesh","cache")}async function qa(t,e,r={}){let n=wi(t);if(!n)throw t.startsWith("github:")?new Error(`Invalid github: source: "${t}" for extend "${e}"`):t.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${t}" for extend "${e}"`):t.startsWith("git+")?new Error(`Invalid git+ source: "${t}" for extend "${e}"`):new Error(`Invalid remote source: "${t}" for extend "${e}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??ve();return pC(o).catch(()=>{}),n.kind==="github"?rC(n,e,r,o,Qa,!t.includes("@")):Vp(n,e,r,o,Qa)}var fC,Hc=d(()=>{Dg();nC();Wc();vg();fC=80;s(Qa,"buildCacheKey");s(ve,"getCacheDir");s(qa,"fetchRemoteExtend");});function BB(t){return t.startsWith("http://")||t.startsWith("https://")}async function tl(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>Fg(o.source))){let o=ve();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(BB(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(Fg(o.source)){let a=await qa(o.source,o.name,{cacheDir:ve(),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(e,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 Jp=d(()=>{A();Hc();Wc();s(BB,"isOtherRemoteSource");s(tl,"resolveExtendPaths");});function b(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let n=t.slice(3,r).trim(),o=t.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function HB(t){if(t.indexOf("---")!==0)return t.trim();let e=t.indexOf("---",3);return e===-1?t.trim():t.slice(e+3).trim()}function Gr(t,e){try{return {ok:!0,value:b(t)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${e}: ${n}`,{cause:r}),bodyFallback:HB(t)}}}function Co(t,e,r){let n=Gr(t,e);if(n.ok)return n.value;if(r)return r(n.error,e),null;throw n.error}function T(t,e){return Object.keys(t).length===0?e:`---
|
|
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 {realpathSync,rmSync,statSync,existsSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,constants,readFileSync,writeFileSync}from'fs';import {z as z$1}from'zod';import {parse,stringify}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 IC 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 {createTwoFilesPatch}from'diff';import DQ from'chokidar';import*as Nj 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';import'picomatch';var VI=Object.defineProperty;var s=(t,e)=>VI(t,"name",{value:e,configurable:true});var d=(t,e)=>()=>(t&&(e=t(t=0)),e);var Dg=(t,e)=>{for(var r in e)VI(t,r,{get:e[r],enumerable:true});};function XI(){wi=true;}function ZI(){YI=true;}function Ya(t){YI?process.stderr.write(t):process.stdout.write(t);}function cB(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function Hc(t,e){return cB()?e:`${t}${e}${Xa.reset}`}function mB(t,e){let r=[...t].length;return t+" ".repeat(Math.max(0,e-r))}var Xa,wi,YI,y,ot=d(()=>{Xa={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},wi=false,YI=false;s(XI,"muteLogger");s(ZI,"redirectLoggerToStderr");s(Ya,"out");s(cB,"noColor");s(Hc,"c");s(mB,"pad");y={info(t){wi||Ya(Hc(Xa.cyan,t)+`
|
|
3
|
+
`);},warn(t){wi||process.stderr.write(Hc(Xa.yellow,"\u26A0 ")+t+`
|
|
4
|
+
`);},error(t){wi||process.stderr.write(Hc(Xa.red,"\u2717 ")+t+`
|
|
5
|
+
`);},success(t){wi||Ya(Hc(Xa.green,"\u2713 ")+t+`
|
|
6
|
+
`);},debug(t){wi||process.env.AGENTSMESH_DEBUG==="1"&&Ya(Hc(Xa.cyan,"[debug] ")+t+`
|
|
7
|
+
`);},table(t){if(wi||t.length===0)return;let e=t[0].length,r=[];for(let o=0;o<e;o++){let i=0;for(let a=0;a<t.length;a++){let l=[...t[a][o]].length;l>i&&(i=l);}r[o]=i;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";Ya(n+`
|
|
8
|
+
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>mB(l,r[c])).join(" | ")+" |";Ya(a+`
|
|
9
|
+
`);}Ya(n+`
|
|
10
|
+
`);}};});var So,Gr,Qa,Cn,qa,Fe,Io=d(()=>{So=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},Gr=class extends So{static{s(this,"ConfigNotFoundError");}path;constructor(e,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${e}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=e;}},Qa=class extends So{static{s(this,"ConfigValidationError");}issues;constructor(e,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${e}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}},Cn=class extends So{static{s(this,"TargetNotFoundError");}target;constructor(e,r){let n=r?.supported?` Supported: ${r.supported.join(", ")}.`:"";super("AM_TARGET_NOT_FOUND",`Unknown target "${e}".${n}`,r),this.name="TargetNotFoundError",this.target=e;}},qa=class extends So{static{s(this,"LockAcquisitionError");}lockPath;holder;constructor(e,r,n){super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire generate lock at ${e}: currently held by ${r}. Wait for the other process to finish, or remove ${e} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=e,this.holder=r;}},Fe=class extends So{static{s(this,"FileSystemError");}path;errnoCode;constructor(e,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=e,this.errnoCode=n?.errnoCode;}};});function Xp(t){let e=extname(t).toLowerCase();if(e.length>0)return yB.has(e);let r=basename(t).toLowerCase();return _B.has(r)}function Zp(t){return t.replace(/\r\n?/g,`
|
|
11
|
+
`)}function Mg(t){return RB.has(extname(t).toLowerCase())?493:void 0}var tl,yB,_B,RB,Qp=d(()=>{tl="\uFEFF",yB=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),_B=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Xp,"shouldNormalizeLineEndings");s(Zp,"normalizeLineEndings");RB=new Set([".sh",".bash",".zsh"]);s(Mg,"executableModeFor");});function iC(t){if(t.length>wB)return true;let e=new Map;for(let r of t){let n=(e.get(r)??0)+1;if(n>=AB)return true;e.set(r,n);}return false}async function G(t,e,r){let n=r??[basename(t)],o;try{o=await realpath(t);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new Fe(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=e??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(t,{withFileTypes:!0}),l=[];for(let c of a){let m=join(t,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if(iC(u))continue;l.push(...await G(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 Fe(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Os(t,e){let r=e??[basename(t)];try{let n=await readdir(t,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(t,i.name);if(i.isDirectory()){let l=[...r,i.name];if(iC(l))continue;o.push(...await Os(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 Fe(t,`Failed to read directory ${t}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function $g(t,e){let r=resolve(t);try{if(!(await lstat(e)).isSymbolicLink()||resolve(dirname(e),await readlink(e))===r)return;await unlink(e);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,e,"dir");}var wB,AB,Gg=d(()=>{Io();wB=32,AB=3;s(iC,"shouldSkipRecursiveBranch");s(G,"readDirRecursive");s(Os,"readDirRecursiveNoSymlinks");s($g,"ensureCacheSymlink");});async function _(t){try{let e=await readFile(t,"utf-8");return e.startsWith(tl)?e.slice(tl.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new Fe(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}async function I(t,e,r){let n=dirname(t);await mkdir(n,{recursive:true});try{let l=await lstat(t);if(l.isDirectory())throw new Fe(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(t).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof Fe||l.code!=="ENOENT")throw l}let o=`${t}.tmp`,i=Xp(t)?Zp(e):e,a=r?.mode??Mg(t);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,t),a!==void 0&&await chmod(t,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new Fe(t,`Failed to write ${t}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function O(t){await mkdir(t,{recursive:true});}var A=d(()=>{Io();Qp();Gg();Qp();s(_,"readFileSafe");s(I,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function ve(t){return jg.includes(t)}var jg,mC=d(()=>{jg=["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(ve,"isBuiltinTargetId");});var $t,Ug,kn=d(()=>{mC();$t=jg,Ug="codex-cli";});var pC,or,el,MB,Vc,$B,GB,zc,jB,UB,bi,Co=d(()=>{kn();pC=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],or=z$1.enum($t),el=z$1.enum(pC),MB=z$1.enum(["rules","commands","agents","skills"]),Vc=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(),$B=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:or.optional(),as:MB.optional(),features:z$1.array(el),path:z$1.string().optional(),pick:Vc.optional()}),GB=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),zc=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),jB=z$1.object({commands_to_skills:z$1.object({"codex-cli":zc.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":zc.optional(),cline:zc.optional(),"codex-cli":zc.optional(),windsurf:zc.optional()}).passthrough().optional()}).strict().optional(),UB=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(),bi=z$1.object({version:z$1.literal(1),targets:z$1.array(or).default([...$t]),features:z$1.array(el).default([...pC]),extends:z$1.array($B).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:GB.default({strategy:"merge",lock_features:[]}),conversions:jB,plugins:z$1.array(UB).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function WB(t){let e=resolve(t);for(;;){let r=join(e,Kg);if(await j(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}async function HB(t){let e=await _(t);if(e===null)throw new Gr(t);let r=parse(e),n=bi.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Qa(t,o,{cause:n.error})}return n.data}function Bg(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null||zB.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]=Bg(i,o):r[n]=o;}return r}function VB(t,e){let r={...t};return Array.isArray(e.targets)&&e.targets.length>0&&(r.targets=e.targets),Array.isArray(e.features)&&e.features.length>0&&(r.features=e.features),typeof e.overrides=="object"&&e.overrides!==null&&!Array.isArray(e.overrides)&&(r.overrides=Bg(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=Bg(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}async function tu(t){let e=join(t,Kg),r=await HB(e),n=join(t,KB),o=await _(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=VB(r,i),l=bi.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:t}}async function eu(t){let e=await WB(t);if(e===null)throw new Gr(join(t,Kg));return tu(dirname(e))}var Kg,KB,zB,ru=d(()=>{A();ot();Io();Co();Kg="agentsmesh.yaml",KB="agentsmesh.local.yaml";s(WB,"findConfigPath");s(HB,"loadConfig");zB=new Set(["__proto__","constructor","prototype"]);s(Bg,"deepMergeObjects");s(VB,"mergeLocalConfig");s(tu,"loadConfigFromExactDir");s(eu,"loadConfigFromDir");});function Pi(t,e="project"){if(e==="project")return {scope:e,rootBase:t,configDir:t,canonicalDir:join(t,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:e,rootBase:r,configDir:n,canonicalDir:n}}async function yt(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await eu(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Pi(t,e);try{let{config:n}=await tu(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Gr?new Gr(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 Zt=d(()=>{ru();Io();s(Pi,"resolveScopeContext");s(yt,"loadScopedConfig");});function rl(t){return t.replace(YB,(e,r,n,o)=>`${r}***@${o}`)}var YB,Hg=d(()=>{YB=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(rl,"redactUrlSecrets");});function hC(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function nu(t,e,r,n,o){let i="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,l=t.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,fC),u=`${m}.tmp`,f=join(u,fC);if(!r.refresh&&await gC(p))return Jg(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await nK(rK(t),f),t.ref&&await oK(f,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(u,m),Jg(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await gC(p)){let S=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${rl(S)}`),Jg(p)}throw g instanceof Error?Object.assign(new Error(rl(g.message)),{cause:g.cause}):g}}async function Jg(t){return {resolvedPath:t,version:await sK(t)}}async function gC(t){return j(t)}function rK(t){if("cloneUrl"in t){let e=process.env.AGENTSMESH_GITLAB_TOKEN;if(e){let r=new URL(t.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=e,r.toString()}return t.cloneUrl}return t.url}async function nK(t,e){hC(t,"clone-url"),await Yg(["clone",t,e]);}async function oK(t,e){hC(e,"ref"),await Yg(["checkout",e],t);}async function sK(t){return Yg(["rev-parse","HEAD"],t)}async function Yg(t,e){let{stdout:r}=await eK("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var eK,fC,Xg=d(()=>{A();Hg();eK=promisify(execFile),fC="repo";s(hC,"ensureNotFlag");s(nu,"fetchGitRemoteExtend");s(Jg,"readCachedRepo");s(gC,"hasCachedRepo");s(rK,"resolveCloneUrl");s(nK,"cloneRepo");s(oK,"checkoutRef");s(sK,"getHeadSha");s(Yg,"runGit");});function cK(){let t=process.env.AGENTSMESH_MAX_TARBALL_MB;if(t===void 0||t==="")return Yc*1024*1024;let e=Number(t);return !Number.isFinite(e)||!Number.isInteger(e)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${t}" is not an integer; using default ${Yc} MiB.`),Yc*1024*1024):e<_C||e>RC?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${e} is outside [${_C}, ${RC}]; using default ${Yc} MiB.`),Yc*1024*1024):e*1024*1024}async function pK(t,e){let r=typeof t.headers?.get=="function"?t.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>e)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${e}`)}let n=t.body;if(!n){let m=await t.arrayBuffer();if(m.byteLength>e)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${e}`);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>e)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${e} 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 CC(t,e,r){let n=`https://api.github.com/repos/${t}/${e}/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 ${t}/${e}: ${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 ${t}/${e}`);return a.tag_name}async function kC(t,e,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=t.tag;if(c==="latest")try{c=await CC(t.org,t.repo,a);}catch(R){if(!i)throw R;return dK(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),p=join(n,m);if(!l&&await j(p)){let R=await Zg(p);if(R)return {resolvedPath:join(p,R),version:c}}let u=`https://github.com/${t.org}/${t.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 pK(R,mK);}catch(R){if(r.allowOfflineFallback!==false&&await j(p)){let b=await Zg(p);if(b){let N=R instanceof Error?R.message:String(R);return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${rl(N)}`),{resolvedPath:join(p,b),version:c}}}throw R instanceof Error?Object.assign(new Error(rl(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 IC.extract({file:h,cwd:p,strict:!0,filter:s((R,k)=>{if(uK(R))return !1;let b=k&&"type"in k?k.type:void 0;return b==="File"||b==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let S=await Zg(p);if(!S)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,S),version:c}}async function Zg(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function SC(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}function uK(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function dK(t,e,r,n,o,i){let a=i?[SC(t.org,t.repo,i)]:[SC(t.org,t.repo),`ssh://git@github.com/${t.org}/${t.repo}.git`],l;for(let c of a){let m={url:c};try{return await nu(m,e,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Yc,_C,RC,mK,EC=d(()=>{A();Hg();Xg();Yc=500,_C=1,RC=4096;s(cK,"resolveMaxTarballBytes");mK=cK();s(pK,"readBoundedResponse");s(CC,"resolveLatestTag");s(kC,"fetchGithubRemoteExtend");s(Zg,"findExtractTopDir");s(SC,"buildGithubCloneUrl");s(uK,"isZipSlipPath");s(dK,"fetchGithubDefaultBranch");});function LC(t,e,r){if(!t.startsWith(e))return null;let n=t.slice(e.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 OC(t){let e=LC(t,"github:","latest");if(!e)return null;let[r,n]=e,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 wC(t){let e=LC(t,"gitlab:");if(!e)return null;let[r,n]=e,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 AC(t){if(!t.startsWith("git+"))return null;let e=t.slice(4).trim();if(!e)return null;let r=e.lastIndexOf("#"),n=(r<0?e:e.slice(0,r)).trim(),o=r<0?void 0:e.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 xi(t){let e=OC(t);if(e)return {kind:"github",...e};let r=wC(t);if(r)return {kind:"gitlab",...r};let n=AC(t);return n?{kind:"git",...n}:null}function Qg(t){return xi(t)!==null}var Xc=d(()=>{s(LC,"splitSourceRef");s(OC,"parseGithubSource");s(wC,"parseGitlabSource");s(AC,"parseGitSource");s(xi,"parseRemoteSource");s(Qg,"isSupportedRemoteSource");});function yK(t){let e=xi(t);return e?e.kind==="github"?nl("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?nl("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):nl("git",e.url,e.ref??"HEAD"):null}async function xC(t,e){let r=yK(t);if(!r)return;let n=e??Me(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function TC(t,e){let r=t??Me(),n=e??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 qg=d(()=>{Zc();Xc();s(yK,"cacheKeyFromSource");s(xC,"cleanInstallCache");s(TC,"sweepStaleCache");});function nl(t,e,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(t==="github"){let[i,a]=e.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(t)}__${n(e)}__${n(r)}`;}else o=`${n(t)}__${n(e)}__${n(r)}`;if(o.length>FC){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,FC-18)}--${i}`;}return o}function Me(){let t=process.env.AGENTSMESH_CACHE;if(t){let e=t.trim();if(!e)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(e))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${e}").`);if(e==="/"||/^[A-Za-z]:[\\/]?$/.test(e))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${e}").`);return e}return join(homedir(),".agentsmesh","cache")}async function ol(t,e,r={}){let n=xi(t);if(!n)throw t.startsWith("github:")?new Error(`Invalid github: source: "${t}" for extend "${e}"`):t.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${t}" for extend "${e}"`):t.startsWith("git+")?new Error(`Invalid git+ source: "${t}" for extend "${e}"`):new Error(`Invalid remote source: "${t}" for extend "${e}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??Me();return TC(o).catch(()=>{}),n.kind==="github"?kC(n,e,r,o,nl,!t.includes("@")):nu(n,e,r,o,nl)}var FC,Zc=d(()=>{Xg();EC();Xc();qg();FC=80;s(nl,"buildCacheKey");s(Me,"getCacheDir");s(ol,"fetchRemoteExtend");});function CK(t){return t.startsWith("http://")||t.startsWith("https://")}async function sl(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>Qg(o.source))){let o=Me();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(CK(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(Qg(o.source)){let a=await ol(o.source,o.name,{cacheDir:Me(),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(e,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 ou=d(()=>{A();Zc();Xc();s(CK,"isOtherRemoteSource");s(sl,"resolveExtendPaths");});function P(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let n=t.slice(3,r).trim(),o=t.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function LK(t){if(t.indexOf("---")!==0)return t.trim();let e=t.indexOf("---",3);return e===-1?t.trim():t.slice(e+3).trim()}function jr(t,e){try{return {ok:!0,value:P(t)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${e}: ${n}`,{cause:r}),bodyFallback:LK(t)}}}function ko(t,e,r){let n=jr(t,e);if(n.ok)return n.value;if(r)return r(n.error,e),null;throw n.error}function T(t,e){return Object.keys(t).length===0?e:`---
|
|
12
12
|
${stringify(t,{lineWidth:0}).trimEnd()}
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
${e}`}var
|
|
16
|
-
`;)r++;continue}e+=o,r++;}return e}async function
|
|
15
|
+
${e}`}var U=d(()=>{s(P,"parseFrontmatter");s(LK,"extractBody");s(jr,"tryParseFrontmatter");s(ko,"parseOrSkipFrontmatter");s(T,"serializeFrontmatter");});function AK(t){let e=t.replace(/\.[^.]*$/,"").toUpperCase();return OK.has(e)}function vC(t){let e=[],r=t.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(wK.test(n)){e.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){e.push({segment:n,reason:"trailing-dot-or-space"});continue}AK(n)&&e.push({segment:n,reason:"reserved-name"});}return e}var OK,wK,MC=d(()=>{OK=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),wK=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(AK,"segmentReservedName");s(vC,"findWindowsPathIssues");});function Eo(t,e){let r=vC(e);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new su(t,e,`canonical ${t} name "${e}" is not portable to Windows: ${n}. Rename the file.`)}function iu(t,e,r){let n=new Map;for(let o of e){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 su(t,m,`canonical ${t} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var su,Qc=d(()=>{MC();su=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(e,r,n){super(n),this.feature=e,this.name=r;}};s(Eo,"assertCanonicalName");s(iu,"assertNoBasenameCollisions");});function il(t,e,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();xK.has(u)&&(a?.has(u)||(l.add(u),c++));}if(c===0)return;let m=[...l].sort().join(", ");y.warn(`Skipped ${c} ${t} file(s) in ${e} (format${l.size===1?"":"s"}: ${m}). agentsmesh ${t} are parsed from .md files only.`);}var xK,au=d(()=>{ot();xK=new Set([".toml",".yaml",".yml",".json"]);s(il,"warnIfUnrecognizedResourceFormats");});function GC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}async function ws(t,e={}){let r=await G(t),n=r.filter(i=>{if(!i.endsWith(".md"))return false;let a=basename(i,".md");return a==="_root"||!a.startsWith("_")});il("rules",t,r,n,{handledByOtherReader:e.handledByOtherReader});let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=ko(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Eo("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&TK.includes(g)?g:void 0,S=c.codex_emit,C=S==="execution"?"execution":S==="advisory"?"advisory":void 0,k=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:GC(c.targets),description:typeof c.description=="string"?c.description:"",globs:GC(c.globs),body:m,...h!==void 0&&{trigger:h},...C!==void 0&&{codexEmit:C},...k!==void 0&&{codexInstructionVariant:k}});}return o}var TK,qc=d(()=>{A();U();Qc();au();TK=["always_on","model_decision","glob","manual"];s(GC,"toStrArray");s(ws,"parseRules");});function UC(t){return t===true||t==="true"||t===1||t==="1"}function BC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}async function As(t,e={}){let r=await G(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));il("commands",t,r,n,{handledByOtherReader:e.handledByOtherReader}),iu("command",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=ko(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Eo("command",p);let u=BC(c.allowedTools),f=BC(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:UC(c.outputStyle)||UC(c["output-style"]),body:m});}return o}var tm=d(()=>{A();U();Qc();au();s(UC,"toBool");s(BC,"toToolsArray");s(As,"parseCommands");});function Ti(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function WC(t){return t===true||t==="true"||t===1||t==="1"}function HC(t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0)return t;if(typeof t=="string"){let e=parseInt(t,10);return Number.isInteger(e)&&e>=0?e:0}return 0}function DK(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}async function bs(t,e={}){let r=await G(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));il("agents",t,r,n,{handledByOtherReader:e.handledByOtherReader}),iu("agent",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=ko(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Eo("agent",p);let u=Ti(c.tools),f=Ti(c.tools),g=u.length>0?u:f,h=Ti(c.disallowedTools),S=Ti(c["disallowed-tools"]),C=h.length>0?h:S,R=Ti(c.mcpServers),k=Ti(c["mcp-servers"]),b=R.length>0?R:k,N=Ti(c.skills),x=HC(c.maxTurns),B=HC(c["max-turns"]),H=x>0?x:B>0?B:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:C,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:H,mcpServers:b,hooks:DK(c.hooks),skills:N,memory:typeof c.memory=="string"?c.memory:"",outputStyle:WC(c.outputStyle)||WC(c["output-style"]),body:m});}return o}var em=d(()=>{A();U();Qc();au();s(Ti,"toStrArray");s(WC,"toBool");s(HC,"toInt");s(DK,"toHooks");s(bs,"parseAgents");});function th(t){let e=t.toLowerCase(),r=e.lastIndexOf("."),n=r>0?e.slice(0,r):e;return NK.get(n)}function En(t){return th(t)!==void 0}function lu(t){return th(t)==="preserved"}function cu(t){return th(t)==="noise"}function zC(t){return FK.has(t)}function VC(t){return vK.has(t)}var NK,FK,vK,Lo=d(()=>{NK=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"]]),FK=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),vK=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(th,"boilerplateKind");s(En,"isBoilerplate");s(lu,"isPreservedBoilerplate");s(cu,"isNoiseBoilerplate");s(zC,"isRepoNonContentDir");s(VC,"isRepoNonContentFile");});async function GK(t){return await _(t)??""}function UK(t){let e=t.lastIndexOf(".");return e<0?true:jK.has(t.slice(e).toLowerCase())}function KK(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function JC(t){let e=await Os(t),r=[];for(let n of e){let i=n.slice(t.length+1).replace(/\\/g,"/");if(i===mu||i.endsWith(`/${mu}`))continue;let a=i.split("/")[0];if(BK.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(UK(l)&&cu(l))continue;let c=await GK(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function pu(t,e={}){let r=join(t,mu),n=await _(r);if(!n)return null;let o=ko(n,r,e.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await JC(t),m=(typeof i.name=="string"?KK(i.name):"")||basename(t);return Eo("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Ps(t,e={}){let r;try{r=await readdir(t,{withFileTypes:!0});}catch{return []}let n=[];for(let o of r){if(!o.isDirectory()||o.name.startsWith("_"))continue;Eo("skill",o.name);let i=join(t,o.name),a=join(i,mu),l=await _(a);if(!l)continue;let c=ko(l,a,e.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await JC(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 mu,jK,BK,al=d(()=>{A();Gg();U();Lo();Qc();s(GK,"readContent");mu="SKILL.md",jK=new Set([".md",".mdx",".rst",".txt"]);s(UK,"isMarkdownLikeDoc");BK=[".git","node_modules"];s(KK,"sanitizeSkillName");s(JC,"listSupportingFiles");s(pu,"parseSkillDirectory");s(Ps,"parseSkills");});function YC(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}function WK(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=YC(e.env),o=typeof e.description=="string"?e.description:void 0,i=typeof e.url=="string"?e.url:"";if(i)return {...o!==void 0&&{description:o},type:r,url:i,headers:YC(e.headers),env:n};let a=typeof e.command=="string"?e.command:"";if(!a)return null;let l=Array.isArray(e.args)?e.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}function HK(t){let e="",r=0,n=t.length;for(;r<n;){let o=t[r];if(o==='"'){for(e+=o,r++;r<n;){let i=t[r];if(e+=i,i==="\\")r++,r<n&&(e+=t[r]);else if(i==='"')break;r++;}r++;continue}if(o==="/"&&t[r+1]==="*"){for(r+=2;r<n;){if(t[r]==="*"&&t[r+1]==="/"){r+=2;break}r++;}continue}if(o==="/"&&t[r+1]==="/"){for(r+=2;r<n&&t[r]!==`
|
|
16
|
+
`;)r++;continue}e+=o,r++;}return e}async function Ur(t){let e=await _(t);if(!e)return null;let r;try{r=JSON.parse(HK(e));}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=WK(a);l&&(o[i]=l);}return {mcpServers:o}}var rm=d(()=>{A();s(YC,"parseStringMap");s(WK,"parseServer");s(HK,"stripJsonComments");s(Ur,"parseMcp");});function rh(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}async function uu(t){let e=await _(t);if(e===null)return null;if(!e.trim())return {allow:[],deny:[],ask:[]};let r;try{r=parse(e);}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=rh(n.allow),i=rh(n.deny),a=rh(n.ask);return {allow:o,deny:i,ask:a}}var nh=d(()=>{A();s(rh,"ensureStringArray");s(uu,"parsePermissions");});function XC(t){return typeof t=="string"?t.trim():""}function Jt(t){return XC(t.command)}function Re(t){return XC(t.prompt)}function oh(t){let e=Jt(t),r=Re(t);return t.type==="prompt"?r||e:e||r}function Oo(t){return Jt(t).length>0}function Ln(t){return oh(t).length>0}var Br=d(()=>{s(XC,"trimString");s(Jt,"getHookCommand");s(Re,"getHookPrompt");s(oh,"getHookText");s(Oo,"hasHookCommand");s(Ln,"hasHookText");});function YK(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=oh(e);if(!n)return null;let o=typeof e.type=="string"&&JK.includes(e.type)?e.type:void 0,i=typeof e.timeout=="number"&&Number.isFinite(e.timeout)?e.timeout:void 0,a=Re(e)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function du(t){let e=await _(t);if(e===null)return null;if(!e.trim())return {};let r;try{r=parse(e);}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=YK(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var JK,sh=d(()=>{A();Br();JK=["command","prompt"];s(YK,"toHookEntry");s(du,"parseHooks");});async function fu(t){let e=await _(t);if(e===null||!e.trim())return [];let r=e.split(/\r?\n/),n=[];for(let o of r){let i=o.trim();i===""||i.startsWith("#")||n.push(i);}return n}var ih=d(()=>{A();s(fu,"parseIgnore");});async function we(t,e={}){let r=join(t,".agentsmesh"),n=await j(r)?r:t,[o,i,a,l,c,m,p,u]=await Promise.all([ws(join(n,"rules"),e),As(join(n,"commands"),e),bs(join(n,"agents"),e),Ps(join(n,"skills"),e),Ur(join(n,"mcp.json")),uu(join(n,"permissions.yaml")),du(join(n,"hooks.yaml")),fu(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Di=d(()=>{qc();tm();em();al();rm();nh();sh();ih();A();s(we,"loadCanonicalFiles");});function ZC(t){return basename(t.source,".md")}function ll(t,e){let r=new Map(t.rules.map(p=>[ZC(p),p]));for(let p of e.rules)r.set(ZC(p),p);let n=new Map(t.commands.map(p=>[p.name,p]));for(let p of e.commands)n.set(p.name,p);let o=new Map(t.agents.map(p=>[p.name,p]));for(let p of e.agents)o.set(p.name,p);let i=new Map(t.skills.map(p=>[p.name,p]));for(let p of e.skills)i.set(p.name,p);let a=ZK(t.mcp,e.mcp),l=QK(t.permissions,e.permissions),c=qK(t.hooks,e.hooks),m=tW(t.ignore,e.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 ZK(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}function QK(t,e){if(!t&&!e)return null;let r=ah(t?.allow??[],e?.allow??[]),n=ah(t?.deny??[],e?.deny??[]),o=ah(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}function ah(t,e){let r=new Set(t),n=[...t];for(let o of e)r.has(o)||(r.add(o),n.push(o));return n}function qK(t,e){if(!t&&!e)return null;let r={},n=new Set([...Object.keys(t??{}),...Object.keys(e??{})]);for(let o of n){let i=e?.[o],a=t?.[o];r[o]=i!==void 0&&i.length>0?i:a??[];}return r}function tW(t,e){let r=new Set(t),n=[...t];for(let o of e)r.has(o)||(r.add(o),n.push(o));return n}var lh=d(()=>{s(ZC,"ruleSlug");s(ll,"mergeCanonicalFiles");s(ZK,"mergeMcp");s(QK,"mergePermissions");s(ah,"mergeUniqueStrings");s(qK,"mergeHooks");s(tW,"mergeIgnore");});function aW(t){return typeof t=="string"?t:t.level}function QC(t){return iW.includes(t)}function qC(t,e,r,n){for(let o of sW){let i=aW(e[o.feature]);if(i==="none")continue;let a=typeof t.generators[o.generator]=="function",l=QC(o.feature)&&typeof t.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${i}" but generators.${o.generator}`+(QC(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function gu(t){return pW.parse(t)}var Ao,tk,eW,rW,ek,nW,oW,sW,iW,lW,cW,mW,pW,ch=d(()=>{Ao=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()})]),tk=z$1.object({rules:Ao,additionalRules:Ao,commands:Ao,agents:Ao,skills:Ao,mcp:Ao,hooks:Ao,ignore:Ao,permissions:Ao}),eW=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(),rW=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),ek=z$1.object({paths:rW}).passthrough(),nW=z$1.object({capabilities:tk,detectionPaths:z$1.array(z$1.string()),layout:ek,scopeExtras:z$1.function().optional()}).passthrough(),oW=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],sW=[{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"}],iW=["mcp","hooks","ignore","permissions"];s(aW,"capabilityLevel");s(QC,"canUseScopedSettings");s(qC,"validateCapabilityImplementations");lW=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),cW=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(),mW=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:cW,generators:eW,capabilities:tk,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:ek,globalSupport:nW.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:lW.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),pW=mW.superRefine((t,e)=>{for(let r of oW)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});qC(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&qC(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});s(gu,"validateDescriptor");});function rk(){if(mh)return mh;let t=Pt.filter(r=>r!==void 0&&typeof r.id=="string"),e=new Map(t.map(r=>[r.id,r]));return t.length===Pt.length&&(mh=e),e}function yu(t){let e=gu(t);hu.set(e.id,e);}function nt(t){return hu.get(t)??rk().get(t)}function _u(){return [...hu.values()]}function nk(){return [...new Set([...rk().keys(),...hu.keys()])]}var hu,mh,ce=d(()=>{xt();ch();hu=new Map;s(rk,"builtinDescriptors");s(yu,"registerTargetDescriptor");s(nt,"getDescriptor");s(_u,"getAllDescriptors");s(nk,"getAllRegisteredDescriptorIds");});function ok(t,e){return nt(t)?.conversionDefaults?.[e]}function sk(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function cl(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],i=sk(o,n);if(i!==void 0)return i;let a=ok(e,"commandsToSkills");return a!==void 0?a:r??false}function sr(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],i=sk(o,n);if(i!==void 0)return i;let a=ok(e,"agentsToSkills");return a!==void 0?a:r??false}var ml=d(()=>{ce();s(ok,"builtinDefault");s(sk,"resolveConversionValue");s(cl,"shouldConvertCommandsToSkills");s(sr,"shouldConvertAgentsToSkills");});function Wr(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function Kr(t){return typeof t=="string"?{level:t}:t}function ik(t){return {rules:Kr(t.rules),additionalRules:Kr(t.additionalRules),commands:Kr(t.commands),agents:Kr(t.agents),skills:Kr(t.skills),mcp:Kr(t.mcp),hooks:Kr(t.hooks),ignore:Kr(t.ignore),permissions:Kr(t.permissions)}}var Ni=d(()=>{s(Wr,"cap");s(Kr,"normalizeCapabilityValue");s(ik,"normalizeTargetCapabilities");});function ak(t){for(let e of Pt)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}function uW(t){let e=[];for(let n of t)if(n.sharedArtifacts)for(let[o,i]of Object.entries(n.sharedArtifacts))i==="owner"&&e.push({targetId:n.id,prefix:o});let r=[];for(let n=0;n<e.length;n++)for(let o=n+1;o<e.length;o++){let i=e[n],a=e[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 lk(t){let e=uW(t);if(e.length===0)return;let r=e.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
|
|
19
|
+
Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var ph=d(()=>{xt();s(ak,"ownerTargetIdForSharedPath");s(uW,"findSharedArtifactOwnershipConflicts");s(lk,"assertSharedArtifactOwnersUnique");});function dW(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function V(t){return `${pl}${t}`}function Mt(t){let e={name:V(t.name),description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function Ru(t,e){if(t["x-agentsmesh-kind"]!=="command")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(pl)?e.slice(pl.length):e.startsWith(nm)?e.slice(nm.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:dW(t["x-agentsmesh-allowed-tools"])}:null}function Su(t,e){return T({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}var pl,nm,Lt=d(()=>{U();pl="am-command-",nm="ab-command-";s(dW,"toStringArray");s(V,"commandSkillDirName");s(Mt,"serializeCommandSkill");s(Ru,"parseCommandSkillFrontmatter");s(Su,"serializeImportedCommand");});function Iu(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function fW(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))Array.isArray(n)&&(e[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return e}function K(t){return `${ul}${t}`}function Tt(t){let e={name:K(t.name),description:t.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":t.name,"x-agentsmesh-tools":t.tools.length>0?t.tools:void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-model":t.model||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};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),T(e,t.body.trim()||"")}function dl(t,e){if(t["x-agentsmesh-kind"]!=="agent")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(ul)?e.slice(ul.length):e.startsWith(om)?e.slice(om.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:Iu(t["x-agentsmesh-tools"]),disallowedTools:Iu(t["x-agentsmesh-disallowed-tools"]),model:typeof t["x-agentsmesh-model"]=="string"?t["x-agentsmesh-model"]:"",permissionMode:typeof t["x-agentsmesh-permission-mode"]=="string"?t["x-agentsmesh-permission-mode"]:"",maxTurns:typeof t["x-agentsmesh-max-turns"]=="number"?t["x-agentsmesh-max-turns"]:Number(t["x-agentsmesh-max-turns"]??0),mcpServers:Iu(t["x-agentsmesh-mcp-servers"]),hooks:fW(t["x-agentsmesh-hooks"]),skills:Iu(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}function xs(t,e){let r={name:t.name,description:t.description,tools:t.tools,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};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),T(r,e.trim()||"")}var ul,om,ut=d(()=>{U();ul="am-agent-",om="ab-agent-";s(Iu,"toStringArray");s(fW,"toHooks");s(K,"projectedAgentSkillDirName");s(Tt,"serializeProjectedAgentSkill");s(dl,"parseProjectedAgentSkillFrontmatter");s(xs,"serializeImportedAgent");});function sm(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function uh(t,e){return new RegExp(`${sm(t)}[\\s\\S]*?${sm(e)}`,"g")}function dk(t,e,r,n){let o=uh(e,r);if(o.test(t))return t.replace(o,n).trim();let i=t.trim();return i?`${i}
|
|
20
20
|
|
|
21
|
-
${n}`:n}function
|
|
22
|
-
`)}function
|
|
23
|
-
`)}function
|
|
21
|
+
${n}`:n}function dh(t,e,r){return t.replace(uh(e,r),"").trim()}function yW(t){let e=t.replace(/\\/g,"/"),r=e.lastIndexOf(".agentsmesh/");return r>=0?e.slice(r+12):e.startsWith("rules/")?e:join("rules",basename(e)).replace(/\\/g,"/")}function _W(t){return {source:yW(t.source),description:t.description,globs:t.globs,targets:t.targets}}function RW(t){return `${pk}${JSON.stringify(_W(t))}${uk}`}function SW(t){let e=[RW(t)];return t.description.trim()&&e.push(`## ${t.description.trim()}`,""),e.push(t.body.trim(),mk),e.filter(r=>r.length>0).join(`
|
|
22
|
+
`)}function IW(t){return t.length===0?"":[Cu,...t.map(SW),ku].join(`
|
|
23
|
+
`)}function at(t,e){let r=IW(e),n=dh(t,Cu,ku);return r?n?`${n}
|
|
24
24
|
|
|
25
|
-
${r}`:r:n}function
|
|
25
|
+
${r}`:r:n}function ck(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function CW(t){try{let e=JSON.parse(t);if(!e||typeof e!="object"||Array.isArray(e))return null;let r=e;return typeof r.source!="string"||!r.source.startsWith("rules/")?null:{source:r.source,description:typeof r.description=="string"?r.description:"",globs:ck(r.globs),targets:ck(r.targets)}}catch{return null}}function kW(t,e){let r=t.trim();if(!e.trim())return r;let n=`## ${e.trim()}`;return r.startsWith(n)?r.slice(n.length).trim():r}function fk(t){let e=[],r=uh(Cu,ku);return {rootContent:t.replace(r,o=>{let i=o.replace(Cu,"").replace(ku,"").trim(),a=new RegExp(`${sm(pk)}([\\s\\S]*?)${sm(uk)}([\\s\\S]*?)${sm(mk)}`,"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=CW(c);p&&e.push({...p,body:kW(m,p.description)});}return ""}).trim(),rules:e}}var im,am,Cu,ku,mk,pk,uk,Kt=d(()=>{im="<!-- agentsmesh:root-generation-contract:start -->",am="<!-- agentsmesh:root-generation-contract:end -->",Cu="<!-- agentsmesh:embedded-rules:start -->",ku="<!-- agentsmesh:embedded-rules:end -->",mk="<!-- agentsmesh:embedded-rule:end -->",pk="<!-- agentsmesh:embedded-rule:start ",uk=" -->";s(sm,"escapeRegExp");s(uh,"managedBlockPattern");s(dk,"replaceManagedBlock");s(dh,"stripManagedBlock");s(yW,"ruleSource");s(_W,"markerForRule");s(RW,"embeddedRuleStart");s(SW,"renderRule");s(IW,"renderEmbeddedRulesBlock");s(at,"appendEmbeddedRulesBlock");s(ck,"toStringArray");s(CW,"parseMarker");s(kW,"stripGeneratedHeading");s(fk,"extractEmbeddedRules");});function fh(t){return t.replace(/\s+/g," ").trim()}function hk(t){let e=t.trim();if(e.includes(im)&&e.includes(am))return dk(e,im,am,fl);let r=fh(e);if(r.includes(fh(fl)))return e;for(let n of gk)if(r.includes(fh(n)))return e.replace(n,fl);return e?`${e}
|
|
26
26
|
|
|
27
|
-
${
|
|
27
|
+
${fl}`:fl}function yk(t){let e=dh(t,im,am);e=e.replace(`
|
|
28
28
|
|
|
29
|
-
${
|
|
29
|
+
${fl}`,"");for(let r of gk)e=e.replace(`
|
|
30
30
|
|
|
31
|
-
${r}`,"");return e.trim()}var
|
|
31
|
+
${r}`,"");return e.trim()}var gh,EW,LW,OW,wW,AW,bW,PW,xW,TW,DW,NW,FW,vW,MW,$W,GW,jW,UW,BW,KW,WW,HW,fl,gk,hh=d(()=>{Kt();gh="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.",EW="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.",LW="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.",OW="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.",wW="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`.",AW="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`.",bW="`.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`.",PW="`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.",xW="`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.",TW="**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.",DW="**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.",NW=gh,FW=`## Project-Specific Rules
|
|
32
32
|
|
|
33
|
-
${
|
|
33
|
+
${gh}`,vW=`## AgentsMesh Generation Contract
|
|
34
34
|
|
|
35
|
-
${
|
|
35
|
+
${gh}`,MW=`## AgentsMesh Generation Contract
|
|
36
36
|
|
|
37
|
-
${
|
|
37
|
+
${EW}`,$W=`## AgentsMesh Generation Contract
|
|
38
38
|
|
|
39
|
-
${
|
|
39
|
+
${LW}`,GW=`## AgentsMesh Generation Contract
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${OW}`,jW=`## AgentsMesh Generation Contract
|
|
42
42
|
|
|
43
|
-
${
|
|
43
|
+
${wW}`,UW=`## AgentsMesh Generation Contract
|
|
44
44
|
|
|
45
|
-
${
|
|
45
|
+
${AW}`,BW=`## AgentsMesh Generation Contract
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${bW}`,KW=`## AgentsMesh Generation Contract
|
|
48
48
|
|
|
49
|
-
${
|
|
49
|
+
${PW}`,WW=`## AgentsMesh Generation Contract
|
|
50
|
+
|
|
51
|
+
${xW}`,HW=`## AgentsMesh Generation Contract
|
|
52
|
+
|
|
53
|
+
${TW}`,fl=`${im}
|
|
50
54
|
## AgentsMesh Generation Contract
|
|
51
55
|
|
|
52
|
-
${
|
|
53
|
-
${
|
|
54
|
-
`)}]}var
|
|
55
|
-
`)break;i+=a,o++;}return i===r}function
|
|
56
|
+
${DW}
|
|
57
|
+
${am}`;s(fh,"normalizeWhitespace");gk=[HW,WW,KW,BW,UW,jW,GW,$W,MW,vW,FW,NW];s(hk,"appendAgentsmeshRootInstructionParagraph");s(yk,"stripAgentsmeshRootInstructionParagraph");});function Se(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}async function gl(t){let e=await _(t);return e?P(e).frontmatter:{}}function qt(t,e){return typeof t[e]=="string"?t[e]:void 0}function yh(t){let e=t.hooks;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function zW(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function VW(t,e){let r=basename(t,".md")==="_root",n={...e};return delete n.root,{root:r,...n}}async function z(t,e,r){let n=await gl(t),o=basename(t,".md")==="_root"?yk(r):r.trim(),i=VW(t,zW({...n,...e})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=Se(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 _h=d(()=>{A();U();hh();s(Se,"toStringArray");s(gl,"readExistingFrontmatter");s(qt,"readString");s(yh,"readHooks");s(zW,"pruneUndefined");s(VW,"serializeCanonicalRuleFrontmatter");s(z,"serializeImportedRuleWithFallback");});async function St(t,e,r){let n=await gl(t),o=(()=>{let l=Se(n.allowedTools);return l.length>0?l:Se(n["allowed-tools"])})(),i=e.hasDescription?e.description??"":typeof n.description=="string"?n.description:"",a=e.hasAllowedTools?e.allowedTools??[]:o;return T({description:i,"allowed-tools":a},r.trim()||"")}async function On(t,e,r){let n=await gl(t),o=basename(dirname(t)),i=qt(e,"name")??qt(n,"name")??o,a=qt(e,"description")??qt(n,"description")??"";return T({name:i,description:a},r.trim()||"")}async function Yt(t,e,r){let n=await gl(t),o=Object.prototype.hasOwnProperty.call(e,"tools")?Se(e.tools):(()=>{let S=Se(n.tools);return S.length>0?S:[]})(),i=Object.prototype.hasOwnProperty.call(e,"disallowedTools")?Se(e.disallowedTools):Object.prototype.hasOwnProperty.call(e,"disallowed-tools")?Se(e["disallowed-tools"]):Se(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(e,"mcpServers")?Se(e.mcpServers):Object.prototype.hasOwnProperty.call(e,"mcp-servers")?Se(e["mcp-servers"]):Se(n.mcpServers),l=Object.prototype.hasOwnProperty.call(e,"skills")?Se(e.skills):Se(n.skills),c=e.maxTurns??e["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=yh(e)??yh(n),u={name:qt(e,"name")??qt(n,"name")??basename(t,".md"),description:qt(e,"description")??qt(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=qt(e,"model")??qt(n,"model");f&&(u.model=f);let g=qt(e,"permissionMode")??qt(e,"permission-mode")??qt(n,"permissionMode")??qt(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=qt(e,"memory")??qt(n,"memory");return h&&(u.memory=h),T(u,r.trim()||"")}var Sk=d(()=>{U();_h();s(St,"serializeImportedCommandWithFallback");s(On,"serializeImportedSkillWithFallback");s(Yt,"serializeImportedAgentWithFallback");});var ft=d(()=>{_h();Sk();});function Eu(t){let e=t.split("/").filter(Boolean);return e.length===0||e.some(n=>n.startsWith("."))?false:!e.join("/").startsWith("tests/e2e/fixtures/")}async function wn(t){await rm$1(t,{recursive:true,force:true});}var lm=d(()=>{s(Eu,"shouldImportScopedAgentsRule");s(wn,"removePathIfExists");});function st(t,e){let r=[];for(let n of t.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${e}/${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:`${e}/${n.name}/${a}`,content:i.content});}}return r}async function et(t,e,r,n,o){let i=await readdir(join(t,e),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(i!==null)for(let a of i){if(!a.isDirectory())continue;let l=join(t,e,a.name),c=join(l,"SKILL.md"),m=await _(c);if(m===null)continue;let p=join(t,cm,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=P(o(m,c,u)),h=Ru(f,a.name);if(h){await wn(join(t,cm,a.name));let k=join(t,Ik);await O(k);let b=join(k,`${h.name}.md`);await I(b,Su(h,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${Ik}/${h.name}.md`,feature:"commands"});continue}let S=dl(f,a.name);if(S){await wn(join(t,cm,a.name));let k=join(t,Ck);await O(k);let b=join(k,`${S.name}.md`);await I(b,xs(S,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${Ck}/${S.name}.md`,feature:"agents"});continue}let C=await On(u,{...f,name:a.name},g);await O(p),await I(u,C),n.push({fromTool:r,fromPath:c,toPath:`${cm}/${a.name}/SKILL.md`,feature:"skills"});let R=await G(l);for(let k of R){if(k===c)continue;let b=relative(l,k).replace(/\\/g,"/"),N=await _(k);if(N===null)continue;let x=join(p,b);await O(dirname(x)),await I(x,o(N,k,x)),n.push({fromTool:r,fromPath:k,toPath:`${cm}/${a.name}/${b}`,feature:"skills"});}}}var cm,Ik,Ck,rt=d(()=>{A();U();ft();ut();Lt();lm();cm=".agentsmesh/skills",Ik=".agentsmesh/commands",Ck=".agentsmesh/agents";s(st,"generateEmbeddedSkills");s(et,"importEmbeddedSkills");});var An,ar,me,bo,Po,lr,Fi,kk,Ek,hl=d(()=>{An="aider",ar="CONVENTIONS.md",me=".aider/skills",bo=".aiderignore",Po="CONVENTIONS.md",lr=".aider/skills",Fi=".aiderignore",kk=".agentsmesh/rules",Ek=".agentsmesh/ignore";});function Lk(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(An)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:ar,content:o}]:[]}function Ok(t){return st(t,me)}function wk(t){return t.commands.map(e=>({path:`${me}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function Ak(t){return t.agents.map(e=>({path:`${me}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function bk(t){return t.ignore.length===0?[]:[{path:bo,content:t.ignore.join(`
|
|
58
|
+
`)}]}var Pk=d(()=>{rt();Kt();ut();Lt();hl();s(Lk,"generateRules");s(Ok,"generateSkills");s(wk,"generateCommands");s(Ak,"generateAgents");s(bk,"generateIgnore");});function lt(t){return t.includes("\\")||Hr.test(t)?win32:posix}function Gt(t){return t.replace(/\\/g,"/")}function X(t,e){let r=lt(t),n=r.normalize(r===win32?e.replace(/\//g,"\\"):Gt(e));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function Tk(t,e){return lt(t).isAbsolute(e)||Hr.test(e)}function yl(t){let e=t,r="";for(;tH.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}function Dk(t,e){let r=lt(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?X(e,r.join(e,n)):null}var Hr,tH,pe=d(()=>{Hr=/^[A-Za-z]:[\\/]/,tH=/[.!?:;]+$/;s(lt,"pathApi");s(Gt,"normalizeSeparators");s(X,"normalizeForProject");s(Tk,"isAbsoluteForProject");s(yl,"stripTrailingPunctuation");s(Dk,"rootFallbackPath");});async function Nk(t,e,r="project"){let n=new Map,o=nt(t);return o&&await o.buildImportPaths(n,e,r),n}var Fk=d(()=>{ce();s(Nk,"buildImportReferenceMap");});function nH(t){let e=[t.project,t.globalSupport?.layout].filter(o=>o!==void 0),r=[...t.detectionPaths,...e.flatMap(o=>o.managedOutputs?.dirs??[]),...e.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 oH(){let t=new Set([".agentsmesh/"]);for(let e of Pt)for(let r of nH(e))t.add(r);return Array.from(t)}function sH(){let t=new Set([...oH(),...Rh.rootRelativePrefixes]),e=new Set([...rH,...Rh.meshRootSegments]);return {protectedSchemes:[...eH,...Rh.protectedSchemes],rootRelativePrefixes:Array.from(t),meshRootSegments:e}}function Lu(){return Sh||(Sh=sH()),Sh}var eH,rH,Rh,Sh,vk=d(()=>{xt();eH=[/\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],rH=new Set(["skills","rules","commands","agents","packs"]),Rh={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(nH,"topLevelDotfilePrefixes");s(oH,"buildDefaultRootRelativePrefixes");s(sH,"rebuild");s(Lu,"getLinkFormatRegistry");});function zr(t){let e=Gt(t);return Lu().rootRelativePrefixes.some(r=>e.startsWith(r))}function aH(t){let e=Gt(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||Hr.test(e)||/^[a-zA-Z]:/.test(e)||zr(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&Lu().meshRootSegments.has(r)}function mm(t,e,r){let n=lt(e),o=X(e,e),i=X(e,r),a=Gt(t);if(Hr.test(t)){let l=X(e,t);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(n.isAbsolute(t)){let l=X(e,t);return l.startsWith(o)||existsSync(t)?[l]:[X(e,n.join(e,t))]}if(a.startsWith("./")||a.startsWith("../")){let l=X(e,n.join(n.dirname(i),a)),c=Dk(a,o);return c&&c!==l?[l,c]:[l]}if(zr(a))return [X(e,n.join(o,a))];if(a.includes("/")){let l=X(e,n.join(o,".agentsmesh")),c=aH(a)?X(e,n.join(l,a)):null,m=X(e,n.join(o,a)),p=X(e,n.join(n.dirname(i),a));return c!==null?[c,m,p]:[m,p]}return lH.has(a)?[]:a.includes(".")?[X(e,n.join(n.dirname(i),a))]:[]}function pm(t,e){let r=[e];if(!Tk(t,e)||!existsSync(e))return r;try{let n=[realpathSync(e),realpathSync.native(e)];for(let o of n)o!==e&&!r.includes(o)&&r.push(o);}catch{}return r}function jk(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}function Ou(t){let e=[];for(let r of Lu().protectedSchemes){let n=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let o of t.matchAll(n))e.push([o.index??0,(o.index??0)+o[0].length]);}for(let r of t.matchAll(cH))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(mH))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(pH))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var lH,cH,mH,pH,Gk,_l,Ts=d(()=>{pe();vk();s(zr,"isRootRelativePathToken");s(aH,"isMeshRootRelativePathToken");lH=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),cH=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,mH=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,pH=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,Gk=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,_l=/(?::(\d+)){1,2}$/;s(mm,"resolveProjectPath");s(pm,"expandResolvedPaths");s(jk,"isGlobAdjacent");s(Ou,"protectedRanges");});function uH(t){return t===void 0||t.role==="inline-code"||t.role==="bracketed"||t.role==="quoted"||t.role==="at-prefix"||t.role==="bracket-label"||t.role==="bare-prose"}function Uk(t){return uH(t.tokenContext)}function Ih(t,e){let r=lt(t),n=X(t,t),o=X(t,e);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function Bk(t){let e=lt(t);return X(t,e.join(t,".agentsmesh"))}function Vr(t,e){let r=lt(t),n=Bk(t),o=X(t,e);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function Kk(t,e,r){let n=lt(t),o=Bk(t),i=X(t,e);if(!Vr(t,i))return null;let a=n.relative(o,i).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function Ch(t,e,r){let o=lt(t).relative(X(t,t),X(t,e)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let i=o.length>0?o:".";return r&&!i.endsWith("/")?`${i}/`:i}function Rl(t,e,r){let n=Ch(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function kh(t,e,r,n,o){let i=lt(t),a=X(t,t),l=X(t,e),c=X(t,r);if(!Ih(t,c))return Rl(t,c,n)?.text??null;let m=X(t,i.dirname(l));if(!Ih(t,m)&&m!==a)return Rl(t,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||Hr.test(p))return Ch(t,c,n);let u=X(t,i.join(m,p));return Ih(t,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):Ch(t,c,n)}var Eh=d(()=>{pe();s(uH,"isReadingContext");s(Uk,"isReadingContextOptions");s(Ih,"isUnderProjectRoot");s(Bk,"agentsMeshRoot");s(Vr,"isUnderAgentsMesh");s(Kk,"toAgentsMeshRootRelative");s(Ch,"toProjectRootRelative");s(Rl,"toProjectRootReference");s(kh,"formatLinkPathForDestinationLegacy");});function Wk(t,e,r,n,o={}){let i=o.scope??"project",a=X(t,r);if(Uk(o)&&Vr(t,e)&&Vr(t,a)){let m=lt(t),p=X(t,t),u=m.relative(p,a).replace(/\\/g,"/");if(!u.startsWith("..")&&u.length>0)return n&&!u.endsWith("/")?`${u}/`:u}if(o.forceRelative)return kh(t,e,r,n,o);if(i==="global"&&!Vr(t,e))return Rl(t,a,n)?.text??null;let l=(()=>{if(Vr(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&Vr(t,X(t,m))?X(t,m):null})();if(!l)return Rl(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=Kk(t,l,n);return m!==null?m:Rl(t,l,n)?.text??null}return kh(t,e,r,n,o)}var Hk=d(()=>{Ts();pe();Eh();Eh();s(Wk,"formatLinkPathForDestination");});function zk(t,e,r,n){let o=lt(e),i=Gt(t);if(!zr(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=X(e,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),u=X(e,o.join(c,p));if(u!==l&&n(u))return u}return null}var Vk=d(()=>{pe();Ts();s(zk,"resolveByDestinationSuffixStrip");});function Jk(t){let e=null,r=false,n=null,o=null,i=null;for(let c of mm(t.candidate,t.projectRoot,t.sourceFile)){let m=null,p=null;for(let u of pm(t.projectRoot,c)){let f=X(t.projectRoot,u),g=X(t.projectRoot,t.translatePath(f)),h=t.pathExists(f),S=t.pathExists(g);if(S&&g!==f){e=g,n=f,r=true;break}(h||S)&&m===null&&(m=g,p=f),e===null&&(e=g);}if(!r&&m!==null&&o===null&&(o=m,i=p),r)break}if(!r){let c=zk(t.candidate,t.projectRoot,t.destinationFile,t.pathExists);c!==null&&(e=c,r=true);}!r&&o!==null&&(e=o,i!==null&&(n=i),r=true);let a=Gt(t.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&e!==null&&Gt(t.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:e,resolvedBeforeTranslate:n,matchedPath:r}}var Yk=d(()=>{pe();Ts();Vk();s(Jk,"resolveLinkTarget");});function Xk(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function Zk(t,e,r){if(e<=0||t[e-1]!=="(")return false;let n=e+r.length,o=t[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:t[e-2]==="]"}function Qk(t){let e=Gt(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||Hr.test(e)||zr(e)?false:e.includes("/")}var qk=d(()=>{pe();Ts();s(Xk,"isTildeHomeRelativePathToken");s(Zk,"isMarkdownLinkDestinationToken");s(Qk,"isRelativePathToken");});function dH(t,e,r){let n=e+r.length;if(t[n]!=="]"||t[n+1]!=="(")return false;let o=n+2,i="";for(;o<t.length;){let a=t[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
|
|
59
|
+
`)break;i+=a,o++;}return i===r}function tE(t,e,r){let n=t.lastIndexOf(`
|
|
56
60
|
`,e-1)+1,o=t.slice(n,e);if(!/^\s*\[[^\]\n]+\]:\s*<?\s*$/.test(o))return false;let i=r<t.length?t[r]:"";return i===""||i===`
|
|
57
|
-
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function
|
|
58
|
-
`);continue}if(!
|
|
59
|
-
`);continue}let{frontmatter:f,body:g}=u.value,h=t.frontmatterRemap?t.frontmatterRemap(f):f,
|
|
60
|
-
`),null}return I?{destPath:I.destPath,toPath:I.toPath,feature:t.feature,content:I.content}:null},"mapEntry")});l.push(...p);}return l}function zk(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function zW(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let o=zk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=join(r,o);return await O(dirname(c)),await S(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}]}return []}function VW(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object")return {};let r=e.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:bs(a.args),env:wn(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:wn(a.headers),env:wn(a.env),description:l});}return n}async function JW(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let o=zk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=VW(l);return Object.keys(c).length===0?[]:(await Wt(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}])}return []}function Hk(t,e,r,n,o){switch(t.mode){case "singleFile":return WW(t,e,r,n,o);case "directory":return HW(t,e,r,n,o);case "flatFile":return zW(t,e,r,n);case "mcpJson":return JW(t,e,r,n)}}async function YW(t,e,r,n,o){let i=ph(t.source,e),a=ph(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await Hk(t,i,r,n,o);if(l.length>0)return l}return a.length>0?Hk(t,a,r,n,o):[]}function XW(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function Y(t,e,r,n){let o=t.importer;if(!o)return [];let i=n?.normalize??await H(t.id,e,r),a=[];for(let l of Kk)for(let c of XW(o,l))a.push(...await YW(c,r,e,t.id,i));return a}var Ot=d(()=>{gt();A();Vr();K();cr();ft();Me();Bk();Eo();Wk();s(WW,"runSingleFile");s(HW,"runDirectory");s(zk,"resolveCanonicalFilePath");s(zW,"runFlatFile");s(VW,"parseMcpJson");s(JW,"runMcpJson");s(Hk,"dispatchSpec");s(YW,"runSpec");s(XW,"specsForFeature");s(Y,"runDescriptorImport");});async function Vk(t,e={}){let r=e.scope??"project",n=[],o=await H(On,t,r);return n.push(...await Y(_u,t,r,{normalize:o})),await et(t,r==="global"?ar:le,On,n,o),n}var Jk=d(()=>{gt();rt();Ot();pl();uh();s(Vk,"importFromAider");});function ZW(t,e){return Xk(e).some(n=>QW(t,n))}function Yk(t,e){return t.filter(r=>ZW(r,e))}function Xk(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,n,o]=e;if(!n)return [t];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of Xk(r+l+o))a.push(c);return a}function QW(t,e){return qW(e).test(t)}function qW(t){let e=[],r=0;for(;r<t.length;){if(t.startsWith("**",r)){let i=t.slice(r+2);if(i.length===0&&e.length===0)e.push(".*");else if(e.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(t[r]==="*"){e.push("[^/]*"),r+=1;continue}if(t[r]==="?"){e.push("[^/]"),r+=1;continue}if(t[r]==="{"){e.push("(?:"),r+=1;continue}if(t[r]==="}"){e.push(")"),r+=1;continue}if(t[r]===","){e.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(t[r])?e.push("\\"+t[r]):e.push(t[r]),r+=1;}let n="^"+e.join("")+"$";return new RegExp(n)}var Zk=d(()=>{s(ZW,"globMatch");s(Yk,"globFilter");s(Xk,"expandBraces");s(QW,"matchOne");s(qW,"globToRegex");});function J(t,e,r,n={}){let o=[],{rules:i}=t;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(e,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(Yk(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(e,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ct=d(()=>{Zk();s(J,"validateRules");});function qk(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:On}))}var tE=d(()=>{Ct();pl();s(qk,"lintRules");});function x(t,e,r){return {level:"warning",file:t,target:e,message:r}}function tH(t){return t.length===0?"":t.length===1?t[0]:t.length===2?`${t[0]} and ${t[1]}`:`${t.slice(0,-1).join(", ")}, and ${t[t.length-1]}`}function Ts(t,e,r,n){let o=n?.unsupportedBy??e,i=tH(r);return x(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${i} are projected.`)}var wt=d(()=>{s(x,"createWarning");s(tH,"formatOxfordComma");s(Ts,"createUnsupportedHookWarning");});function eE(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function rE(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function nE(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var oE=d(()=>{wt();s(eE,"lintHooks");s(rE,"lintPermissions");s(nE,"lintMcp");});function E(t,e){return at(t).relative(t,e).replace(/\\/g,"/")}async function L(t,e){return $(at(t).join(t,e)).catch(()=>[])}function iE(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function iH(t,e,r,n){let o=posix.dirname(e),i=posix.dirname(r);for(;o!==n&&o!==".";)iE(t,o,i),o=posix.dirname(o),i=posix.dirname(i);}function D(t,e,r,n){t.set(e,`${r}/${basename(e,n)}.md`);}function G(t,e,r){if(!e.startsWith(`${r}/`))return;let n=e.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");t.set(e,`${sE}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(il)?il:o.startsWith(Zc)?Zc:null;if(l&&a==="SKILL.md"){t.set(e,`${oH}/${o.slice(l.length)}.md`);return}let c=o.startsWith(al)?al:o.startsWith(Qc)?Qc:null;if(c&&a==="SKILL.md"){t.set(e,`${sH}/${o.slice(c.length)}.md`);return}let m=`${sE}/${o}`;a==="SKILL.md"&&iE(t,`${r}/${o}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&iH(t,e,p,`${r}/${o}`);}function aH(t){return t.split("/").filter(Boolean)[0]??""}async function lH(){if(dh!==void 0)return dh;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(Pt(),aE)),e=new Set;for(let r of t)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=aH(n);o.startsWith(".")&&e.add(o);}return dh=e,e}function gh(t){return t.split("/").some(e=>e.startsWith("."))}async function cH(t){let e=[],r=await lH(),n=at(t);async function o(i){let a=n.join(t,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)||gh(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(t,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||gh(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&e.push(n.join(t,m));}}return s(o,"walk"),await o(""),e}async function Ru(t,e){let r=await cH(e);for(let n of r){let o=E(e,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(gh(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${nH}/${c}.md`);}}var nH,oH,sH,sE,dh,kt=d(()=>{ce();A();Lt();ut();nH=".agentsmesh/rules",oH=".agentsmesh/commands",sH=".agentsmesh/agents",sE=".agentsmesh/skills";s(E,"rel");s(L,"listFiles");s(iE,"addDirectoryMapping");s(iH,"addAncestorMappings");s(D,"addSimpleFileMapping");s(G,"addSkillLikeMapping");s(aH,"firstPathSegment");s(lH,"targetRootSegments");s(gh,"hasHiddenSegment");s(cH,"listScopedAgentsFiles");s(Ru,"addScopedAgentsMappings");});var w,lt,At,Rt=d(()=>{w=".agentsmesh/rules",lt=".agentsmesh/commands",At=".agentsmesh/agents";});async function hh(t,e,r="project"){if(r==="global"){t.set(bo,`${w}/_root.md`);for(let n of await L(e,ar))G(t,E(e,n),ar);t.set(Ti,".agentsmesh/ignore");return}t.set(ir,`${w}/_root.md`);for(let n of await L(e,le))G(t,E(e,n),le);t.set(Ao,".agentsmesh/ignore");}var lE=d(()=>{kt();pl();Rt();s(hh,"buildAiderImportPaths");});var xi,Jr,Di,xs,am,cE,mE,lm=d(()=>{xi="amazon-q",Jr=".amazonq/rules",Di=".amazonq/mcp.json",xs=".aws/amazonq/rules",am=".aws/amazonq/mcp.json",cE=".agentsmesh/rules",mE=".agentsmesh/mcp.json";});async function yh(t,e,r="project"){let n=r==="global"?xs:Jr;for(let o of await L(e,n)){let i=E(e,o);D(t,i,w,".md");}}var pE=d(()=>{kt();lm();Rt();s(yh,"buildAmazonQImportPaths");});var mr,me,An,_h,To,pr,xo,uE,Ni=d(()=>{mr="AGENTS.md",me=".agents/skills",An=".amp/settings.json",_h=".config/amp",To=`${_h}/AGENTS.md`,pr=`${_h}/skills`,xo=`${_h}/settings.json`,uE=".agentsmesh/rules";});async function Rh(t,e,r="project"){if(r==="global"){t.set(To,`${w}/_root.md`);for(let n of await L(e,pr))G(t,E(e,n),pr);t.set(xo,".agentsmesh/mcp.json");return}t.set(mr,`${w}/_root.md`);for(let n of await L(e,me))G(t,E(e,n),me);t.set(An,".agentsmesh/mcp.json");}var dE=d(()=>{kt();Ni();Rt();s(Rh,"buildAmpImportPaths");});var Fi,Iu,Yr,ur,cm,Xr,bn,mm,Pn,Tn,pm,gl,Ih,vi,Su,fE,Mi=d(()=>{Fi="antigravity",Iu=".agents",Yr=`${Iu}/rules`,ur=`${Yr}/general.md`,cm=`${Yr}/_root.md`,Xr=`${Iu}/skills`,bn=`${Iu}/workflows`,mm=`${Iu}/antigravity/mcp_config.json`,Pn=".gemini/antigravity/GEMINI.md",Tn=".gemini/antigravity/skills",pm=".gemini/antigravity/workflows",gl=".gemini/antigravity/mcp_config.json",Ih=".agentsmesh/rules/_root.md",vi=".agentsmesh/rules",Su=".agentsmesh/commands",fE=".agentsmesh/mcp.json";});async function Sh(t,e,r="project"){if(r==="global"){t.set(Pn,`${w}/_root.md`);for(let n of await L(e,Tn))G(t,E(e,n),Tn);t.set(gl,".agentsmesh/mcp.json");return}t.set(ur,`${w}/_root.md`),t.set(cm,`${w}/_root.md`);for(let n of await L(e,Yr)){let o=E(e,n);o===ur||o===cm||D(t,o,w,".md");}for(let n of await L(e,bn))D(t,E(e,n),lt,".md");for(let n of await L(e,Xr))G(t,E(e,n),Xr);}var gE=d(()=>{kt();Mi();Rt();s(Sh,"buildAntigravityImportPaths");});var pe,Cu,$e,dr,Ge,xn,Dn,ku,Do,No,Nn,Fo,Ch,kh,Eh,Lh,$i=d(()=>{pe="augment-code",Cu=".augment",$e=`${Cu}/rules`,dr=`${Cu}/commands`,Ge=`${Cu}/skills`,xn=`${Cu}/settings.json`,Dn=".augmentignore",ku=".augment",Do=`${ku}/rules`,No=`${ku}/commands`,Nn=`${ku}/skills`,Fo=`${ku}/settings.json`,Ch=".agentsmesh/rules",kh=".agentsmesh/mcp.json",Eh=".agentsmesh/hooks.yaml",Lh=".agentsmesh/ignore";});async function Oh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Do))D(t,E(e,n),w,".md");for(let n of await L(e,No))D(t,E(e,n),lt,".md");for(let n of await L(e,Nn))G(t,E(e,n),Nn);t.set(Fo,".agentsmesh/mcp.json");return}for(let n of await L(e,$e))D(t,E(e,n),w,".md");for(let n of await L(e,dr))D(t,E(e,n),lt,".md");for(let n of await L(e,Ge))G(t,E(e,n),Ge);t.set(xn,".agentsmesh/mcp.json"),t.set(Dn,".agentsmesh/ignore");}var hE=d(()=>{kt();$i();Rt();s(Oh,"buildAugmentCodeImportPaths");});var yE,Ds,_E,um,dm,fm,gm,hm,vo,wh,ym,hl,_m,Rm,Eu,Lu,Ah,Im,bh,Gi,RE,Mo=d(()=>{yE="claude-code",Ds=".claude/CLAUDE.md",_E="CLAUDE.md",um=".claude/rules",dm=".claude/commands",fm=".claude/agents",gm=".claude/skills",hm=".claude/settings.json",vo=".claude/hooks.json",wh=".claude/output-styles",ym=".claudeignore",hl=".mcp.json",_m=".claude.json",Rm=".agentsmesh/rules",Eu=".agentsmesh/commands",Lu=".agentsmesh/agents",Ah=".agentsmesh/skills",Im=".agentsmesh/mcp.json",bh=".agentsmesh/permissions.yaml",Gi=".agentsmesh/hooks.yaml",RE=".agentsmesh/ignore";});async function Ph(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${w}/_root.md`),t.set(vo,Gi),r==="project"&&t.set("CLAUDE.md",`${w}/_root.md`),r==="global")for(let n of await L(e,".agents/skills"))G(t,E(e,n),".agents/skills");for(let n of await L(e,".claude/rules"))D(t,E(e,n),w,".md");for(let n of await L(e,".claude/commands"))D(t,E(e,n),lt,".md");for(let n of await L(e,".claude/agents"))D(t,E(e,n),At,".md");for(let n of await L(e,".claude/skills"))G(t,E(e,n),".claude/skills");}var IE=d(()=>{kt();Mo();Rt();s(Ph,"buildClaudeCodeImportPaths");});var Ns,$o,ji,Go,SE,qt,Fn,Fs,Ui,Bi,Ki,Wi,Th,vs,Ou,xh,Dh,CE,kE,fr=d(()=>{Ns="cline",$o=".clinerules",ji=".clineignore",Go=".cline/cline_mcp_settings.json",SE=".cline/mcp_settings.json",qt=".cline/skills",Fn=".clinerules/workflows",Fs="AGENTS.md",Ui=".clinerules/hooks",Bi="Documents/Cline/Rules",Ki="Documents/Cline/Workflows",Wi="Documents/Cline/Hooks",Th=".agentsmesh/hooks.yaml",vs=".agentsmesh/rules",Ou=".agentsmesh/commands",xh=".agentsmesh/ignore",Dh=".agentsmesh/mcp.json",CE=".agentsmesh/agents",kE=".agentsmesh/skills";});async function Nh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Bi))D(t,E(e,n),w,".md");for(let n of await L(e,Ki))D(t,E(e,n),lt,".md");for(let n of await L(e,qt))G(t,E(e,n),qt);t.set(Go,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${w}/_root.md`);for(let n of await L(e,".clinerules")){let o=E(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||D(t,o,w,".md");}for(let n of await L(e,".clinerules/workflows"))D(t,E(e,n),lt,".md");for(let n of await L(e,".cline/skills"))G(t,E(e,n),".cline/skills");}var EE=d(()=>{kt();fr();Rt();s(Nh,"buildClineImportPaths");});async function Fh(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${w}/_root.md`),t.set(".codex/AGENTS.override.md",`${w}/_root.md`)):(t.set("AGENTS.md",`${w}/_root.md`),t.set("codex.md",`${w}/_root.md`),await Ru(t,e)),r==="project")for(let n of await L(e,".codex/instructions"))D(t,E(e,n),w,".md");for(let n of await L(e,".codex/rules")){let o=E(e,n);o.endsWith(".rules")?D(t,o,w,".rules"):o.endsWith(".md")&&D(t,o,w,".md");}for(let n of await L(e,".codex/agents"))D(t,E(e,n),At,".toml");for(let n of await L(e,".agents/skills"))G(t,E(e,n),".agents/skills");}var LE=d(()=>{kt();Rt();s(Fh,"buildCodexCliImportPaths");});var yl,Zr,vn,vh,wu,jo,Mh,je,_l,Sm,Au,bu,$h,Mn=d(()=>{yl="continue",Zr=".continue/rules",vn=".continue/prompts",vh=".continue/mcpServers",wu=`${vh}/agentsmesh.json`,jo=`${Zr}/general.md`,Mh=`${Zr}/_root.md`,je=".continue/skills",_l=".continue/AGENTS.md",Sm=".continue/config.yaml",Au=".agentsmesh/rules",bu=".agentsmesh/commands",$h=".agentsmesh/mcp.json";});async function Gh(t,e,r="project"){t.set(jo,`${w}/_root.md`),t.set(Mh,`${w}/_root.md`);for(let n of await L(e,".continue/rules")){let o=E(e,n);o===jo||o===Mh||D(t,o,w,".md");}for(let n of await L(e,".continue/prompts"))t.set(E(e,n),`${lt}/${basename(n,".md")}.md`);for(let n of await L(e,".continue/skills"))G(t,E(e,n),".continue/skills");if(r==="global")for(let n of await L(e,".agents/skills"))G(t,E(e,n),".agents/skills");}var OE=d(()=>{kt();Mn();Rt();s(Gh,"buildContinueImportPaths");});function uH(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${w}/${basename(e,".instructions.md")}.md`);return}D(t,e,w,".md");}async function jh(t,e){t.set(".github/copilot-instructions.md",`${w}/_root.md`);for(let r of await L(e,".github/copilot"))t.set(E(e,r),`${w}/${basename(r,".instructions.md")}.md`);for(let r of await L(e,".github/instructions"))uH(t,E(e,r));for(let r of await L(e,".github/prompts"))t.set(E(e,r),`${lt}/${basename(r,".prompt.md")}.md`);for(let r of await L(e,".github/agents"))t.set(E(e,r),`${At}/${basename(r,".agent.md")}.md`);for(let r of await L(e,".github/skills"))G(t,E(e,r),".github/skills");}var wE=d(()=>{kt();Rt();s(uH,"addCopilotInstructionMapping");s(jh,"buildCopilotImportPaths");});var gr,hr,te,Ue,Uo,AE,Tu,Be,Hi,xu,Du,Nu,Rl=d(()=>{gr="crush",hr="CRUSH.md",te=".crush/skills",Ue="crush.json",Uo=".crushignore",AE=".config/crush",Tu=`${AE}/crush.json`,Be=".config/crush/skills",Hi=`${AE}/CRUSH.md`,xu=".agentsmesh/rules",Du=".agentsmesh/ignore",Nu=".agentsmesh/mcp.json";});async function Uh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Be))G(t,E(e,n),Be);return}t.set(hr,`${xu}/_root.md`),t.set(Ue,Nu),t.set(Uo,Du);for(let n of await L(e,te))G(t,E(e,n),te);}var bE=d(()=>{kt();Rl();s(Uh,"buildCrushImportPaths");});var PE,Ms,TE,yr,Bo,_r,Rr,ue,Ke,$n,Fu,Qr,Bh,dH,Il,qr,Gn,$s,Gs,xE,Sl,Kh,Cm,Wh,Ht=d(()=>{PE="cursor",Ms="AGENTS.md",TE=".cursorrules",yr=".cursor/rules",Bo=`${yr}/general.mdc`,_r=".cursor/commands",Rr=".cursor/agents",ue=".cursor/skills",Ke=".cursor/mcp.json",$n=".cursor/hooks.json",Fu=".cursor/settings.json",Qr=".cursorignore",Bh=".cursorindexingignore",dH=".agentsmesh-exports/cursor",Il=`${dH}/user-rules.md`,qr=".cursor/AGENTS.md",Gn=".agentsmesh/rules",$s=".agentsmesh/commands",Gs=".agentsmesh/agents",xE=".agentsmesh/skills",Sl=".agentsmesh/mcp.json",Kh=".agentsmesh/permissions.yaml",Cm=".agentsmesh/hooks.yaml",Wh=".agentsmesh/ignore";});async function Hh(t,e,r="project"){if(r==="global"){t.set(Ke,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))D(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))D(t,E(e,n),lt,".md");for(let n of await L(e,".cursor/agents"))D(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))G(t,E(e,n),".cursor/skills");return}t.set("AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))D(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))D(t,E(e,n),lt,".md");for(let n of await L(e,".cursor/agents"))D(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))G(t,E(e,n),".cursor/skills");}var DE=d(()=>{kt();Ht();Rt();s(Hh,"buildCursorImportPaths");});var jn,Ir,de,Ko,Wo,tn,zi,NE,Cl=d(()=>{jn="deepagents-cli",Ir=".deepagents/AGENTS.md",de=".deepagents/skills",Ko=".mcp.json",Wo=".deepagents/AGENTS.md",tn=".deepagents/skills",zi=".deepagents/.mcp.json",NE=".agentsmesh/rules";});async function zh(t,e,r="project"){if(r==="global"){t.set(Wo,`${w}/_root.md`);for(let n of await L(e,tn))G(t,E(e,n),tn);t.set(zi,".agentsmesh/mcp.json");return}t.set(Ir,`${w}/_root.md`);for(let n of await L(e,de))G(t,E(e,n),de);t.set(Ko,".agentsmesh/mcp.json");}var FE=d(()=>{kt();Cl();Rt();s(zh,"buildDeepagentsCliImportPaths");});var Sr,Cr,we,Un,Bn,Ho,Kn,Vi,js,vE,Ji=d(()=>{Sr="factory-droid",Cr="AGENTS.md",we=".factory/skills",Un=".factory/droids",Bn=".factory/mcp.json",Ho=".factory/AGENTS.md",Kn=".factory/skills",Vi=".factory/droids",js=".factory/mcp.json",vE=".agentsmesh/rules";});async function Vh(t,e,r="project"){if(r==="global"){t.set(Ho,`${w}/_root.md`);for(let n of await L(e,Vi))D(t,E(e,n),At,".md");for(let n of await L(e,Kn))G(t,E(e,n),Kn);t.set(js,".agentsmesh/mcp.json");return}t.set(Cr,`${w}/_root.md`);for(let n of await L(e,Un))D(t,E(e,n),At,".md");for(let n of await L(e,we))G(t,E(e,n),we);t.set(Bn,".agentsmesh/mcp.json");}var ME=d(()=>{kt();Ji();Rt();s(Vh,"buildFactoryDroidImportPaths");});async function Jh(t,e){for(let r of await L(e,".gemini/rules"))D(t,E(e,r),w,".md");for(let r of await L(e,".gemini/commands")){let n=E(e,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(":");t.set(n,`${lt}/${c}.md`);}for(let r of await L(e,".gemini/agents"))D(t,E(e,r),At,".md");for(let r of await L(e,".gemini/skills"))G(t,E(e,r),".gemini/skills");}var $E=d(()=>{kt();Rt();s(Jh,"buildGeminiCliImportPaths");});var Wn,kr,Ae,zo,GE,Vo,Yi,Er,jE,UE,kl=d(()=>{Wn="goose",kr=".goosehints",Ae=".agents/skills",zo=".gooseignore",GE=".config/goose",Vo=`${GE}/.goosehints`,Yi=`${GE}/.gooseignore`,Er=".agents/skills",jE=".agentsmesh/rules",UE=".agentsmesh/ignore";});async function Yh(t,e,r="project"){if(r==="global"){t.set(Vo,`${w}/_root.md`);for(let n of await L(e,Er))G(t,E(e,n),Er);t.set(Yi,".agentsmesh/ignore");return}t.set(kr,`${w}/_root.md`);for(let n of await L(e,Ae))G(t,E(e,n),Ae);t.set(zo,".agentsmesh/ignore");}var BE=d(()=>{kt();kl();Rt();s(Yh,"buildGooseImportPaths");});var Jo,en,KE,El=d(()=>{Jo="jules",en="AGENTS.md",KE=".agentsmesh/rules";});async function Xh(t,e,r="project"){r!=="global"&&t.set(en,`${w}/_root.md`);}var WE=d(()=>{El();Rt();s(Xh,"buildJulesImportPaths");});var Xi,Us,vu,HE,Hn,zE,fH,km,Zi,Em,Ll,Ol,Lm,Om,wm,Am,bm,gH,Mu,Qi,VE,Zh,$u,JE,YE,XE,ZE,wl=d(()=>{Xi="junie",Us=".junie",vu=`${Us}/guidelines.md`,HE=`${Us}/ci-guidelines.md`,Hn=`${Us}/AGENTS.md`,zE="AGENTS.md",fH=`${Us}/mcp`,km=`${fH}/mcp.json`,Zi=`${Us}/skills`,Em=`${Us}/rules`,Ll=`${Us}/commands`,Ol=`${Us}/agents`,Lm=".aiignore",Om=".junie",wm=`${Om}/skills`,Am=`${Om}/agents`,bm=`${Om}/commands`,gH=`${Om}/mcp`,Mu=`${gH}/mcp.json`,Qi=`${Om}/AGENTS.md`,VE=".agents/skills",Zh=".agentsmesh/rules/_root.md",$u=".agentsmesh/rules",JE=".agentsmesh/commands",YE=".agentsmesh/agents",XE=".agentsmesh/mcp.json",ZE=".agentsmesh/ignore";});async function Qh(t,e){t.set(vu,`${w}/_root.md`),t.set(Hn,`${w}/_root.md`),t.set("AGENTS.md",`${w}/_root.md`);for(let r of await L(e,".junie/rules"))D(t,E(e,r),w,".md");for(let r of await L(e,".junie/commands"))D(t,E(e,r),lt,".md");for(let r of await L(e,".junie/agents"))D(t,E(e,r),At,".md");for(let r of await L(e,".junie/skills"))G(t,E(e,r),".junie/skills");}var QE=d(()=>{kt();wl();Rt();s(Qh,"buildJunieImportPaths");});var Re,Pm,zn,Yo,Xo,Zo,rn,Bs,Al,Gu,qi,bl,ta,Tm,ju,Pl,Ks,ea,ra,na,Ws,Tl,Uu,qE,Hs,xl,oa,tL,eL,sa=d(()=>{Re="kilo-code",Pm=".kilo",zn="AGENTS.md",Yo=`${Pm}/rules`,Xo=`${Pm}/commands`,Zo=`${Pm}/agents`,rn=`${Pm}/skills`,Bs=`${Pm}/mcp.json`,Al=".kilocodeignore",Gu=".kilocode",qi=`${Gu}/rules`,bl=`${Gu}/workflows`,ta=`${Gu}/skills`,Tm=`${Gu}/mcp.json`,ju=".kilocodemodes",Pl=".kilo",Ks=`${Pl}/AGENTS.md`,ea=`${Pl}/rules`,ra=`${Pl}/commands`,na=`${Pl}/agents`,Ws=`${Pl}/skills`,Tl=`${Pl}/mcp.json`,Uu=".kilocodeignore",qE=".agents/skills",Hs=".agentsmesh/rules",xl=".agentsmesh/commands",oa=".agentsmesh/agents",tL=".agentsmesh/mcp.json",eL=".agentsmesh/ignore";});async function qh(t,e,r="project"){if(r==="global"){t.set(Ks,`${w}/_root.md`);for(let n of await L(e,ea))D(t,E(e,n),w,".md");for(let n of await L(e,ra))D(t,E(e,n),lt,".md");for(let n of await L(e,na))D(t,E(e,n),At,".md");for(let n of await L(e,Ws))G(t,E(e,n),Ws);t.set(Tl,".agentsmesh/mcp.json");return}t.set(zn,`${w}/_root.md`);for(let n of await L(e,Yo))D(t,E(e,n),w,".md");for(let n of await L(e,Xo))D(t,E(e,n),lt,".md");for(let n of await L(e,Zo))D(t,E(e,n),At,".md");for(let n of await L(e,rn))G(t,E(e,n),rn);t.set(Bs,".agentsmesh/mcp.json");for(let n of await L(e,qi)){let o=E(e,n);if(basename(o)==="00-root.md"){t.set(o,`${w}/_root.md`);continue}D(t,o,w,".md");}for(let n of await L(e,bl))D(t,E(e,n),lt,".md");for(let n of await L(e,ta))G(t,E(e,n),ta);t.set(Tm,".agentsmesh/mcp.json");}var rL=d(()=>{kt();sa();Rt();s(qh,"buildKiloCodeImportPaths");});var We,nn,xm,on,Ie,sn,zs,yH,Dl,Nl,ia,an,Vs,aa,Dm,Nm,nL,ty,ey,oL,sL,ry,iL,Fl=d(()=>{We="kiro",nn="AGENTS.md",xm=".kiro",on=`${xm}/steering`,Ie=`${xm}/skills`,sn=`${xm}/agents`,zs=`${xm}/hooks`,yH=`${xm}/settings`,Dl=`${yH}/mcp.json`,Nl=".kiroignore",ia=".kiro/steering",an=".kiro/steering/AGENTS.md",Vs=".kiro/skills",aa=".kiro/agents",Dm=".kiro/settings/mcp.json",Nm=".kiro/settings/kiroignore",nL=".agents/skills",ty=".agentsmesh/rules/_root.md",ey=".agentsmesh/rules",oL=".agentsmesh/agents",sL=".agentsmesh/mcp.json",ry=".agentsmesh/hooks.yaml",iL=".agentsmesh/ignore";});async function ny(t,e,r="project"){if(r==="global"){t.set(an,`${w}/_root.md`);for(let n of await L(e,ia)){let o=E(e,n);o!==an&&D(t,o,w,".md");}for(let n of await L(e,Vs))G(t,E(e,n),Vs);for(let n of await L(e,aa))D(t,E(e,n),At,".md");return}t.set(nn,`${w}/_root.md`);for(let n of await L(e,on))D(t,E(e,n),w,".md");for(let n of await L(e,Ie))G(t,E(e,n),Ie);for(let n of await L(e,sn))D(t,E(e,n),At,".md");}var aL=d(()=>{kt();Fl();Rt();s(ny,"buildKiroImportPaths");});var ln,Bu,Vn,Qo,qo,ts,cn,Jn,vl,Js,la,ca,ma,Ys,Xs,lL,Fm,Ku,Wu,oy,pa=d(()=>{ln="opencode",Bu=".opencode",Vn="AGENTS.md",Qo=`${Bu}/rules`,qo=`${Bu}/commands`,ts=`${Bu}/agents`,cn=`${Bu}/skills`,Jn="opencode.json",vl=".config/opencode",Js=`${vl}/AGENTS.md`,la=`${vl}/rules`,ca=`${vl}/commands`,ma=`${vl}/agents`,Ys=`${vl}/skills`,Xs=`${vl}/opencode.json`,lL=".agents/skills",Fm=".agentsmesh/rules",Ku=".agentsmesh/commands",Wu=".agentsmesh/agents",oy=".agentsmesh/mcp.json";});async function sy(t,e,r="project"){if(r==="global"){t.set(Js,`${w}/_root.md`);for(let n of await L(e,la))D(t,E(e,n),w,".md");for(let n of await L(e,ca))D(t,E(e,n),lt,".md");for(let n of await L(e,ma))D(t,E(e,n),At,".md");for(let n of await L(e,Ys))G(t,E(e,n),Ys);t.set(Xs,".agentsmesh/mcp.json");return}t.set(Vn,`${w}/_root.md`);for(let n of await L(e,Qo))D(t,E(e,n),w,".md");for(let n of await L(e,qo))D(t,E(e,n),lt,".md");for(let n of await L(e,ts))D(t,E(e,n),At,".md");for(let n of await L(e,cn))G(t,E(e,n),cn);t.set(Jn,".agentsmesh/mcp.json");}var cL=d(()=>{kt();pa();Rt();s(sy,"buildOpencodeImportPaths");});var Yn,Lr,ee,mL,es,Or,pL,Ml=d(()=>{Yn="pi-agent",Lr="AGENTS.md",ee=".pi/skills",mL=".pi/agent",es=`${mL}/AGENTS.md`,Or=`${mL}/skills`,pL=".agentsmesh/rules";});async function iy(t,e,r="project"){if(r==="global"){t.set(es,`${w}/_root.md`);for(let n of await L(e,Or))G(t,E(e,n),Or);return}t.set(Lr,`${w}/_root.md`);for(let n of await L(e,ee))G(t,E(e,n),ee);}var ay=d(()=>{kt();Ml();Rt();s(iy,"buildPiAgentImportPaths");});var Xn,wr,rs,Zn,Qn,He,Zs,Qs,ns,ua,qs,qn,ti,ly,uL,dL,$l=d(()=>{Xn="qwen-code",wr="QWEN.md",rs=".qwen/rules",Zn=".qwen/commands",Qn=".qwen/agents",He=".qwen/skills",Zs=".qwen/settings.json",Qs=".qwenignore",ns=".qwen/QWEN.md",ua=".qwen/settings.json",qs=".qwen/commands",qn=".qwen/skills",ti=".qwen/agents",ly=".agentsmesh/rules",uL=".agentsmesh/commands",dL=".agentsmesh/agents";});async function cy(t,e,r="project"){if(r==="global"){t.set(ns,`${w}/_root.md`),t.set(ua,".agentsmesh/mcp.json");for(let n of await L(e,qs))D(t,E(e,n),lt,".md");for(let n of await L(e,ti))D(t,E(e,n),At,".md");for(let n of await L(e,qn))G(t,E(e,n),qn);return}t.set(wr,`${w}/_root.md`),t.set(Zs,".agentsmesh/mcp.json"),t.set(Qs,".agentsmesh/ignore");for(let n of await L(e,rs))D(t,E(e,n),w,".md");for(let n of await L(e,Zn))D(t,E(e,n),lt,".md");for(let n of await L(e,Qn))D(t,E(e,n),At,".md");for(let n of await L(e,He))G(t,E(e,n),He);}var fL=d(()=>{kt();Rt();$l();s(cy,"buildQwenCodeImportPaths");});var to,mn,be,gL,Gl=d(()=>{to="replit-agent",mn="replit.md",be=".agents/skills",gL=".agentsmesh/rules";});async function my(t,e,r="project"){if(r!=="global"){t.set(mn,`${w}/_root.md`);for(let n of await L(e,be))G(t,E(e,n),be);}}var py=d(()=>{kt();Gl();Rt();s(my,"buildReplitAgentImportPaths");});var ei,da,pn,vm,os,ss,eo,Mm,$m,jl,Gm,Hu,ri,ni,is,fa,jm,oi,hL,ga,zu,yL,_L,ha=d(()=>{ei="roo-code",da=".roo",pn=`${da}/rules/00-root.md`,vm=".roorules",os=`${da}/rules`,ss=`${da}/commands`,eo=`${da}/skills`,Mm=`${da}/mcp.json`,$m=".rooignore",jl=".roomodes",Gm="settings/custom_modes.yaml",Hu=".roo",ri=`${Hu}/rules`,ni=`${Hu}/commands`,is=`${Hu}/skills`,fa="mcp_settings.json",jm=".rooignore",oi=`${Hu}/AGENTS.md`,hL=".agents/skills",ga=".agentsmesh/rules",zu=".agentsmesh/commands",yL=".agentsmesh/mcp.json",_L=".agentsmesh/ignore";});async function uy(t,e,r="project"){if(r==="global"){t.set(oi,`${w}/_root.md`);for(let n of await L(e,ri))D(t,E(e,n),w,".md");for(let n of await L(e,ni))D(t,E(e,n),lt,".md");for(let n of await L(e,is))G(t,E(e,n),is);t.set(fa,".agentsmesh/mcp.json");return}t.set(pn,`${w}/_root.md`),t.set(vm,`${w}/_root.md`);for(let n of await L(e,os)){let o=E(e,n);o!==pn&&D(t,o,w,".md");}for(let n of await L(e,".roo")){let o=E(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&D(t,o,w,".md");}for(let n of await L(e,ss))D(t,E(e,n),lt,".md");for(let n of await L(e,eo))G(t,E(e,n),eo);}var RL=d(()=>{kt();ha();Rt();s(uy,"buildRooCodeImportPaths");});var ro,Ar,IL,re,as,SL,ls,ze,Ul,CL,Bl=d(()=>{ro="rovodev",Ar="AGENTS.md",IL=".rovodev",re=`${IL}/skills`,as=`${IL}/mcp.json`,SL=".rovodev",ls=".rovodev/AGENTS.md",ze=".rovodev/skills",Ul=".rovodev/mcp.json",CL=".agentsmesh/rules";});async function dy(t,e,r="project"){if(r==="global"){t.set(ls,`${w}/_root.md`);for(let n of await L(e,ze))G(t,E(e,n),ze);t.set(Ul,".agentsmesh/mcp.json");return}t.set(Ar,`${w}/_root.md`);for(let n of await L(e,re))G(t,E(e,n),re);t.set(as,".agentsmesh/mcp.json");}var kL=d(()=>{kt();Bl();Rt();s(dy,"buildRovodevImportPaths");});var br,Vu,Ve,Je,Pr,ya,Kl,cs,Tr,un,Um,EL,Bm,LL,OL,Wl=d(()=>{br="trae",Vu=".trae",Ve=`${Vu}/rules`,Je=`${Ve}/project_rules.md`,Pr=`${Vu}/skills`,ya=`${Vu}/mcp.json`,Kl=`${Vu}/.ignore`,cs=".trae/user_rules",Tr=".trae/user_rules/rules.md",un=".trae/skills",Um=".trae/mcp.json",EL=".agents/skills",Bm=".agentsmesh/rules",LL=".agentsmesh/mcp.json",OL=".agentsmesh/ignore";});async function fy(t,e,r="project"){if(r==="global"){t.set(Tr,`${w}/_root.md`);for(let n of await L(e,cs)){let o=E(e,n);o!==Tr&&D(t,o,w,".md");}for(let n of await L(e,un))G(t,E(e,n),un);return}t.set(Je,`${w}/_root.md`);for(let n of await L(e,Ve)){let o=E(e,n);o!==Je&&D(t,o,w,".md");}for(let n of await L(e,Pr))G(t,E(e,n),Pr);}var wL=d(()=>{kt();Wl();Rt();s(fy,"buildTraeImportPaths");});var no,dn,gy,fe,si,Ye,AL,Hl=d(()=>{no="warp",dn="AGENTS.md",gy="WARP.md",fe=".warp/skills",si=".mcp.json",Ye=".warp/skills",AL=".agentsmesh/rules";});async function hy(t,e,r="project"){if(r==="global"){for(let n of await L(e,Ye))G(t,E(e,n),Ye);return}t.set(dn,`${w}/_root.md`);for(let n of await L(e,fe))G(t,E(e,n),fe);t.set(si,".agentsmesh/mcp.json");}var bL=d(()=>{kt();Hl();Rt();s(hy,"buildWarpImportPaths");});async function yy(t,e){t.set("AGENTS.md",`${w}/_root.md`),t.set(".windsurfrules",`${w}/_root.md`),await Ru(t,e);for(let r of await L(e,".windsurf/rules"))D(t,E(e,r),w,".md");for(let r of await L(e,".windsurf/workflows"))D(t,E(e,r),lt,".md");for(let r of await L(e,".windsurf/skills"))G(t,E(e,r),".windsurf/skills");}var PL=d(()=>{kt();Rt();s(yy,"buildWindsurfImportPaths");});var fn,oo,_H,so,TL,_a=d(()=>{fn=".rules",oo=".zed/settings.json",_H=".config/zed",so=`${_H}/settings.json`,TL=".agentsmesh/rules";});async function _y(t,e,r="project"){if(r==="global"){t.set(so,".agentsmesh/mcp.json");return}t.set(fn,`${w}/_root.md`),t.set(oo,".agentsmesh/mcp.json");}var xL=d(()=>{_a();Rt();s(_y,"buildZedImportPaths");});var DL=d(()=>{lE();pE();dE();gE();hE();IE();EE();LE();OE();wE();bE();DE();FE();ME();$E();BE();WE();QE();rL();aL();cL();ay();fL();py();RL();kL();wL();bL();PL();xL();});var Et=d(()=>{DL();});var RH,IH,SH,NL,_u,uh=d(()=>{Lt();ut();ck();Jk();tE();oE();Et();pl();RH={name:On,primaryRootInstructionPath:ir,generateRules:ok,generateCommands:ik,generateAgents:ak,generateSkills:sk,generateIgnore:lk,importFrom:Vk},IH={rootInstructionPath:ir,skillDir:le,managedOutputs:{dirs:[le],files:[ir,Ao]},paths:{rulePath(t){return ir},commandPath(t){return `${le}/${V(t)}/SKILL.md`},agentPath(t){return `${le}/${W(t)}/SKILL.md`}}},SH={rootInstructionPath:bo,skillDir:ar,managedOutputs:{dirs:[ar],files:[bo,Ti]},rewriteGeneratedPath(t){return t===ir?bo:t===Ao?Ti:t.startsWith(`${le}/`)?t.replace(`${le}/`,`${ar}/`):t},paths:{rulePath(t){return bo},commandPath(t){return `${ar}/${V(t)}/SKILL.md`},agentPath(t){return `${ar}/${W(t)}/SKILL.md`}}},NL={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},_u={id:On,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:RH,capabilities:NL,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:qk,lint:{hooks:eE,permissions:rE,mcp:nE},supportsConversion:{commands:true,agents:true},project:IH,globalSupport:{capabilities:NL,detectionPaths:[bo,Ti,ar],layout:SH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ir],global:[bo]},canonicalDir:rk,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ao],global:[Ti]},canonicalDir:".agentsmesh",canonicalFilename:nk}},buildImportPaths:hh,detectionPaths:[ir,Ao]};});function FL(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(xi))continue;let n=r.root?"_root":basename(r.source,".md");e.push({path:`${Jr}/${n}.md`,content:r.body.trim()});}return e}function vL(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Di,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var ML=d(()=>{lm();s(FL,"generateRules");s(vL,"generateMcp");});async function $L(t,e){let r=e?.scope??"project";return Y(Ju,t,r)}var GL=d(()=>{Ot();Ry();s($L,"importFromAmazonQ");});function jL(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:xi}))}var UL=d(()=>{Ct();lm();s(jL,"lintRules");});var kH,EH,LH,OH,Ju,Ry=d(()=>{ML();GL();UL();Et();lm();kH={name:xi,generateRules:FL,generateMcp:vL,importFrom:$L},EH={managedOutputs:{dirs:[Jr],files:[Di]},paths:{rulePath(t,e){return `${Jr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},LH={managedOutputs:{dirs:[xs],files:[am]},rewriteGeneratedPath(t){return t.startsWith(`${Jr}/`)?t.replace(`${Jr}/`,`${xs}/`):t===Di?am:t},paths:{rulePath(t,e){return `${xs}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},OH={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ju={id:xi,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:kH,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:jL,project:EH,globalSupport:{capabilities:OH,detectionPaths:[xs,am],layout:LH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Jr],global:[xs]},canonicalDir:cE,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Di],global:[am]},canonicalDir:".agentsmesh",canonicalFilename:mE}},buildImportPaths:yh,detectionPaths:[Jr,Di]};});function BL(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:mr,content:o}]:[]}function KL(t){return it(t,me)}function WL(t){return t.commands.map(e=>({path:`${me}/${V(e.name)}/SKILL.md`,content:Ft(e)}))}function HL(t){return t.agents.map(e=>({path:`${me}/${W(e.name)}/SKILL.md`,content:Tt(e)}))}var zL=d(()=>{rt();Kt();ut();Lt();Ni();s(BL,"generateRules");s(KL,"generateSkills");s(WL,"generateCommands");s(HL,"generateAgents");});function dt(t,e,r){let n=r.some(o=>wH.includes(o));return t.startsWith(`${e}/`)&&!n?`.agents/skills/${t.slice(e.length+1)}`:null}var wH,ne=d(()=>{wH=["amp","antigravity","codex-cli","goose","replit-agent"];s(dt,"mirrorSkillsToAgents");});async function JL(t,e,r){let n=await _(join(t,e));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 Wt(t,VL,l),r.push({fromTool:"amp",fromPath:e,toPath:VL,feature:"mcp"}));}var VL,YL=d(()=>{A();Vr();Ni();VL=".agentsmesh/mcp.json";s(JL,"importAmpMcp");});async function XL(t,e={}){let r=e.scope??"project",n=[],o=await H("amp",t,r);return n.push(...await Y(Yu,t,r,{normalize:o})),await et(t,r==="global"?pr:me,"amp",n,o),await JL(t,r==="global"?xo:An,n),n}var ZL=d(()=>{gt();rt();Ot();YL();Ni();Iy();s(XL,"importFromAmp");});function QL(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var qL=d(()=>{Ct();Ni();s(QL,"lintRules");});function tO(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function eO(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function rO(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var nO=d(()=>{wt();s(tO,"lintHooks");s(eO,"lintPermissions");s(rO,"lintIgnore");});function xH(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),JSON.stringify(r,null,2)}var bH,PH,TH,oO,Yu,Iy=d(()=>{Lt();ut();zL();ne();ZL();qL();nO();Et();Ni();bH={name:"amp",primaryRootInstructionPath:mr,generateRules:BL,generateCommands:WL,generateAgents:HL,generateSkills:KL,importFrom:XL},PH={rootInstructionPath:mr,skillDir:me,managedOutputs:{dirs:[me],files:[mr,An]},paths:{rulePath(t){return mr},commandPath(t){return `${me}/${V(t)}/SKILL.md`},agentPath(t){return `${me}/${W(t)}/SKILL.md`}}},TH={rootInstructionPath:To,skillDir:pr,managedOutputs:{dirs:[pr],files:[To,xo]},rewriteGeneratedPath(t){return t===mr?To:t===An?xo:t.startsWith(`${me}/`)?t.replace(`${me}/`,`${pr}/`):t},mirrorGlobalPath(t,e){return dt(t,pr,e)},paths:{rulePath(t){return To},commandPath(t){return `${pr}/${V(t)}/SKILL.md`},agentPath(t){return `${pr}/${W(t)}/SKILL.md`}}},oO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(xH,"mergeAmpSettings");Yu={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:bH,capabilities:oO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:QL,lint:{hooks:tO,permissions:eO,ignore:rO},supportsConversion:{commands:true,agents:true},project:PH,globalSupport:{capabilities:oO,detectionPaths:[To,xo],layout:TH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[mr],global:[To]},canonicalDir:uE,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:An,content:JSON.stringify({"amp.mcpServers":t.mcp.mcpServers},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===An||n===xo?xH(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:Rh,detectionPaths:[mr,An],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function sO(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:ur,content:e.body.trim()||""}];for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${Yr}/${o}.md`,content:n.body.trim()||""});}return r}function iO(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
61
|
+
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function eE(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:tE(t,e,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&t[e-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function rE(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:i}=yl(n),a=i.replace(_l,""),l=Gt(a),c=e+a.length,m=t[e-1],p=t[r];return tE(t,e,c)||m==="'"&&p==="'"||m==='"'&&p==='"'||m==="`"&&p==="`"||m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!zr(l)&&dH(t,e,n)):m==="@"?true:m==="("&&t[e-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?zr(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var nE=d(()=>{pe();Ts();s(dH,"markdownBracketLabelDuplicatesDestination");s(tE,"isMarkdownReferenceDefinitionDestination");s(eE,"getTokenContext");s(rE,"shouldRewritePathToken");});function wu(t){let e=new Set,r=Ou(t.content);return {content:t.content.replace(Gk,(o,i,a)=>{if(r.some(([bt,Ft])=>i>=bt&&i<Ft)||!rE(a,i,i+o.length,o,t.rewriteBarePathTokens===true)||Xk(a,i,o)||jk(a,i,i+o.length))return o;let{candidate:l,suffix:c}=yl(o);if(!l)return o;let m=_l.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=eE(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&Hr.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:S}=Jk({candidate:p,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),C=h;if(!S||!g)return g&&e.add(g),o;let R=Gt(p),k=p.endsWith("/")||t.pathIsDirectory?.(g)===true;if(k&&!R.includes("/")&&!R.includes("\\"))return o;if(C===null){let bt=Gt(l);if(bt.startsWith("agentsmesh/")&&(bt=`.${bt}`),bt.startsWith(".agentsmesh/")||bt.includes("/.agentsmesh/")){let Ft=lt(t.projectRoot),Qt=X(t.projectRoot,t.projectRoot),Oi=bt.replace(/^\.\//,"");C=X(t.projectRoot,Ft.join(Qt,Oi));}}let b=lt(t.projectRoot);if(t.scope==="global"){let bt=Gt(l),Ft=bt.startsWith(".agentsmesh/")||bt.includes("/.agentsmesh/"),Qt=zr(bt)||Qk(bt),Oi=C!==null&&Vr(t.projectRoot,C),Wp=Vr(t.projectRoot,g);if(C===g&&!Wp&&!Oi&&!Ft){let Wc=Gt(b.relative(t.projectRoot,X(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",Hp=(C!==null?Gt(b.relative(t.projectRoot,C)):"").split("/").filter(Boolean)[0]??"";if(Wc.length>0&&Wc===Hp)return o}if(!Qt&&!Ft&&!Oi&&!Wp)return o}let N=X(t.projectRoot,t.destinationFile),x=X(t.projectRoot,g),B=Gt(b.relative(t.projectRoot,N)),H=Gt(b.relative(t.projectRoot,x)),tt=B.split("/").filter(Boolean)[0]??"",it=H.split("/").filter(Boolean)[0]??"",vt=!Gt(p).startsWith(".agentsmesh/")&&!k&&tt.length>0&&tt===it&&tt.startsWith(".")&&tt!==".agentsmesh"||f.role==="markdown-link-dest"||Zk(a,i,p),ae=Wk(t.projectRoot,t.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||vt,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:k?null:C,forceRelative:vt,tokenContext:f,originalToken:p});return ae?`${ae}${u}${c}`:o}),missing:[...e]}}var Lh=d(()=>{pe();Ts();Hk();Yk();qk();nE();s(wu,"rewriteFileLinks");});function sE(t,e){let r=[t.normalize(e)];if(!existsSync(e))return r;try{let n=[realpathSync(e),realpathSync.native(e)];for(let o of n){let i=t.normalize(o);r.includes(i)||r.push(i);}}catch{}return r}async function W(t,e,r="project"){let n=lt(e),o=new Map,i=Array.from(new Set([t,...$t]));for(let c of i){let m=await Nk(c,e,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(e,m));for(let u of sE(n,n.join(e,c)))a.set(u,p);}let l=new Set;for(let c of new Set(o.values())){let m=n.normalize(n.join(e,c));l.add(m);for(let p of sE(n,m))l.add(n.normalize(p));}return (c,m,p)=>wu({content:c,projectRoot:e,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 gt=d(()=>{pe();Fk();Lh();kn();s(sE,"pathVariants");s(W,"createImportReferenceNormalizer");});async function Ht(t,e,r){let n=join(t,e),i={...await yH(n),...r};await O(dirname(n)),await I(n,JSON.stringify({mcpServers:i},null,2));}async function yH(t){let e=await _(t);if(e===null)return {};let r;try{r=JSON.parse(e);}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 Jr=d(()=>{A();s(Ht,"writeMcpWithMerge");s(yH,"readExistingServers");});function xo(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function cr(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function Ds(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function bn(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var mr=d(()=>{s(xo,"toGlobsArray");s(cr,"toToolsArray");s(Ds,"toStringArray");s(bn,"toStringRecord");});function SH(t,e){return e.some(r=>t.endsWith(r))}async function It(t){let r=(await G(t.srcDir)).filter(o=>SH(o,t.extensions)),n=[];for(let o of r){let i=await _(o);if(!i)continue;let a=relative(t.srcDir,o).replace(/\\/g,"/"),l=await t.mapEntry({srcPath:o,relativePath:a,content:i,normalizeTo:s((c,m=i)=>t.normalize(m,o,c),"normalizeTo")});l&&(await O(dirname(l.destPath)),await I(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var $e=d(()=>{A();s(SH,"matchesExtension");s(It,"importFileDirectory");});function aE(t){return typeof t=="string"?t:void 0}function IH(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function wh(t,e){return e?e(t):t}function CH(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=wh(n,t.frontmatterRemap),a=IH({root:false,description:aE(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await z(r,a,o)}}}function kH(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=wh(n,t.frontmatterRemap),a=await St(r,{hasDescription:true,description:aE(i.description),hasAllowedTools:true,allowedTools:Ds(i["allowed-tools"])},o);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:a}}}function EH(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=wh(n,t.frontmatterRemap);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await Yt(r,i,o)}}}function lE(t){if(t.map)return t.map;switch(t.preset){case "rule":return CH(t);case "command":return kH(t);case "agent":return EH(t);default:throw new Error(`ImportFeatureSpec for ${t.feature} (mode: ${t.mode}) needs a \`preset\` or \`map\``)}}var cE=d(()=>{U();ft();mr();s(aE,"pickString");s(IH,"pruneUndefined");s(wh,"applyRemap");s(CH,"ruleMapper");s(kH,"commandMapper");s(EH,"agentMapper");s(lE,"resolveMapper");});function Ah(t,e){return t?t[e]??[]:[]}var mE,pE=d(()=>{mE=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(Ah,"resolveScopedSources");});async function AH(t,e,r,n,o){if(!t.canonicalRootFilename)throw new Error(`singleFile spec for ${t.feature} must set canonicalRootFilename`);let i=join(r,t.canonicalDir);for(let a of e){let l=join(r,a),c=await _(l);if(c===null)continue;await O(i);let m=join(i,t.canonicalRootFilename),p=s(R=>o(c,l,R),"normalizeTo");if(t.map){let R;try{R=await t.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(k){let b=k instanceof Error?k.message:String(k);process.stderr.write(`\u26A0 skipping ${l}: ${b}
|
|
62
|
+
`);continue}if(!R)continue;return await I(R.destPath,R.content),[{fromTool:n,fromPath:l,toPath:R.toPath,feature:t.feature}]}let u=jr(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=t.frontmatterRemap?t.frontmatterRemap(f):f,S=t.markAsRoot?{...h,root:true}:h,C=await z(m,S,g);return await I(m,C),[{fromTool:n,fromPath:l,toPath:`${t.canonicalDir}/${t.canonicalRootFilename}`,feature:t.feature}]}return []}async function bH(t,e,r,n,o){let i=lE(t),a=join(r,t.canonicalDir),l=[];for(let c of e){let m=join(r,c),p=await It({srcDir:m,destDir:a,extensions:[...t.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(lu(basename(u)))return null;let S;try{S=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(C=>h(C),"normalizeTo")});}catch(C){let R=C instanceof Error?C.message:String(C);return process.stderr.write(`\u26A0 skipping ${u}: ${R}
|
|
64
|
+
`),null}return S?{destPath:S.destPath,toPath:S.toPath,feature:t.feature,content:S.content}:null},"mapEntry")});l.push(...p);}return l}function dE(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function PH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let o=dE(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=join(r,o);return await O(dirname(c)),await I(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}]}return []}function xH(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object")return {};let r=e.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:Ds(a.args),env:bn(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:bn(a.headers),env:bn(a.env),description:l});}return n}async function TH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let o=dE(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=xH(l);return Object.keys(c).length===0?[]:(await Ht(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}])}return []}function uE(t,e,r,n,o){switch(t.mode){case "singleFile":return AH(t,e,r,n,o);case "directory":return bH(t,e,r,n,o);case "flatFile":return PH(t,e,r,n);case "mcpJson":return TH(t,e,r,n)}}async function DH(t,e,r,n,o){let i=Ah(t.source,e),a=Ah(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await uE(t,i,r,n,o);if(l.length>0)return l}return a.length>0?uE(t,a,r,n,o):[]}function NH(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function Y(t,e,r,n){let o=t.importer;if(!o)return [];let i=n?.normalize??await W(t.id,e,r),a=[];for(let l of mE)for(let c of NH(o,l))a.push(...await DH(c,r,e,t.id,i));return a}var Ot=d(()=>{gt();A();Jr();U();mr();ft();$e();cE();Lo();pE();s(AH,"runSingleFile");s(bH,"runDirectory");s(dE,"resolveCanonicalFilePath");s(PH,"runFlatFile");s(xH,"parseMcpJson");s(TH,"runMcpJson");s(uE,"dispatchSpec");s(DH,"runSpec");s(NH,"specsForFeature");s(Y,"runDescriptorImport");});async function fE(t,e={}){let r=e.scope??"project",n=[],o=await W(An,t,r);return n.push(...await Y(Au,t,r,{normalize:o})),await et(t,r==="global"?lr:me,An,n,o),n}var gE=d(()=>{gt();rt();Ot();hl();bh();s(fE,"importFromAider");});function FH(t,e){return yE(e).some(n=>vH(t,n))}function hE(t,e){return t.filter(r=>FH(r,e))}function yE(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,n,o]=e;if(!n)return [t];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of yE(r+l+o))a.push(c);return a}function vH(t,e){return MH(e).test(t)}function MH(t){let e=[],r=0;for(;r<t.length;){if(t.startsWith("**",r)){let i=t.slice(r+2);if(i.length===0&&e.length===0)e.push(".*");else if(e.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(t[r]==="*"){e.push("[^/]*"),r+=1;continue}if(t[r]==="?"){e.push("[^/]"),r+=1;continue}if(t[r]==="{"){e.push("(?:"),r+=1;continue}if(t[r]==="}"){e.push(")"),r+=1;continue}if(t[r]===","){e.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(t[r])?e.push("\\"+t[r]):e.push(t[r]),r+=1;}let n="^"+e.join("")+"$";return new RegExp(n)}var _E=d(()=>{s(FH,"globMatch");s(hE,"globFilter");s(yE,"expandBraces");s(vH,"matchOne");s(MH,"globToRegex");});function J(t,e,r,n={}){let o=[],{rules:i}=t;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(e,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(hE(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(e,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ct=d(()=>{_E();s(J,"validateRules");});function SE(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:An}))}var IE=d(()=>{Ct();hl();s(SE,"lintRules");});function D(t,e,r){return {level:"warning",file:t,target:e,message:r}}function $H(t){return t.length===0?"":t.length===1?t[0]:t.length===2?`${t[0]} and ${t[1]}`:`${t.slice(0,-1).join(", ")}, and ${t[t.length-1]}`}function Fs(t,e,r,n){let o=n?.unsupportedBy??e,i=$H(r);return D(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${i} are projected.`)}var wt=d(()=>{s(D,"createWarning");s($H,"formatOxfordComma");s(Fs,"createUnsupportedHookWarning");});function CE(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function kE(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function EE(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var LE=d(()=>{wt();s(CE,"lintHooks");s(kE,"lintPermissions");s(EE,"lintMcp");});function E(t,e){return lt(t).relative(t,e).replace(/\\/g,"/")}async function L(t,e){return G(lt(t).join(t,e)).catch(()=>[])}function wE(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function WH(t,e,r,n){let o=posix.dirname(e),i=posix.dirname(r);for(;o!==n&&o!==".";)wE(t,o,i),o=posix.dirname(o),i=posix.dirname(i);}function F(t,e,r,n){t.set(e,`${r}/${basename(e,n)}.md`);}function $(t,e,r){if(!e.startsWith(`${r}/`))return;let n=e.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");t.set(e,`${OE}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(pl)?pl:o.startsWith(nm)?nm:null;if(l&&a==="SKILL.md"){t.set(e,`${BH}/${o.slice(l.length)}.md`);return}let c=o.startsWith(ul)?ul:o.startsWith(om)?om:null;if(c&&a==="SKILL.md"){t.set(e,`${KH}/${o.slice(c.length)}.md`);return}let m=`${OE}/${o}`;a==="SKILL.md"&&wE(t,`${r}/${o}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&WH(t,e,p,`${r}/${o}`);}function HH(t){return t.split("/").filter(Boolean)[0]??""}async function zH(){if(Ph!==void 0)return Ph;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(xt(),AE)),e=new Set;for(let r of t)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=HH(n);o.startsWith(".")&&e.add(o);}return Ph=e,e}function Th(t){return t.split("/").some(e=>e.startsWith("."))}async function VH(t){let e=[],r=await zH(),n=lt(t);async function o(i){let a=n.join(t,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)||Th(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(t,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||Th(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&e.push(n.join(t,m));}}return s(o,"walk"),await o(""),e}async function bu(t,e){let r=await VH(e);for(let n of r){let o=E(e,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(Th(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${UH}/${c}.md`);}}var UH,BH,KH,OE,Ph,kt=d(()=>{pe();A();Lt();ut();UH=".agentsmesh/rules",BH=".agentsmesh/commands",KH=".agentsmesh/agents",OE=".agentsmesh/skills";s(E,"rel");s(L,"listFiles");s(wE,"addDirectoryMapping");s(WH,"addAncestorMappings");s(F,"addSimpleFileMapping");s($,"addSkillLikeMapping");s(HH,"firstPathSegment");s(zH,"targetRootSegments");s(Th,"hasHiddenSegment");s(VH,"listScopedAgentsFiles");s(bu,"addScopedAgentsMappings");});var w,ct,At,Rt=d(()=>{w=".agentsmesh/rules",ct=".agentsmesh/commands",At=".agentsmesh/agents";});async function Dh(t,e,r="project"){if(r==="global"){t.set(Po,`${w}/_root.md`);for(let n of await L(e,lr))$(t,E(e,n),lr);t.set(Fi,".agentsmesh/ignore");return}t.set(ar,`${w}/_root.md`);for(let n of await L(e,me))$(t,E(e,n),me);t.set(bo,".agentsmesh/ignore");}var bE=d(()=>{kt();hl();Rt();s(Dh,"buildAiderImportPaths");});var vi,Yr,Mi,vs,dm,PE,xE,fm=d(()=>{vi="amazon-q",Yr=".amazonq/rules",Mi=".amazonq/mcp.json",vs=".aws/amazonq/rules",dm=".aws/amazonq/mcp.json",PE=".agentsmesh/rules",xE=".agentsmesh/mcp.json";});async function Nh(t,e,r="project"){let n=r==="global"?vs:Yr;for(let o of await L(e,n)){let i=E(e,o);F(t,i,w,".md");}}var TE=d(()=>{kt();fm();Rt();s(Nh,"buildAmazonQImportPaths");});var pr,ue,Pn,Fh,To,ur,Do,DE,$i=d(()=>{pr="AGENTS.md",ue=".agents/skills",Pn=".amp/settings.json",Fh=".config/amp",To=`${Fh}/AGENTS.md`,ur=`${Fh}/skills`,Do=`${Fh}/settings.json`,DE=".agentsmesh/rules";});async function vh(t,e,r="project"){if(r==="global"){t.set(To,`${w}/_root.md`);for(let n of await L(e,ur))$(t,E(e,n),ur);t.set(Do,".agentsmesh/mcp.json");return}t.set(pr,`${w}/_root.md`);for(let n of await L(e,ue))$(t,E(e,n),ue);t.set(Pn,".agentsmesh/mcp.json");}var NE=d(()=>{kt();$i();Rt();s(vh,"buildAmpImportPaths");});var Gi,Pu,Xr,dr,gm,Zr,xn,hm,Tn,Dn,ym,Sl,Mh,ji,xu,FE,Ui=d(()=>{Gi="antigravity",Pu=".agents",Xr=`${Pu}/rules`,dr=`${Xr}/general.md`,gm=`${Xr}/_root.md`,Zr=`${Pu}/skills`,xn=`${Pu}/workflows`,hm=`${Pu}/antigravity/mcp_config.json`,Tn=".gemini/antigravity/GEMINI.md",Dn=".gemini/antigravity/skills",ym=".gemini/antigravity/workflows",Sl=".gemini/antigravity/mcp_config.json",Mh=".agentsmesh/rules/_root.md",ji=".agentsmesh/rules",xu=".agentsmesh/commands",FE=".agentsmesh/mcp.json";});async function $h(t,e,r="project"){if(r==="global"){t.set(Tn,`${w}/_root.md`);for(let n of await L(e,Dn))$(t,E(e,n),Dn);t.set(Sl,".agentsmesh/mcp.json");return}t.set(dr,`${w}/_root.md`),t.set(gm,`${w}/_root.md`);for(let n of await L(e,Xr)){let o=E(e,n);o===dr||o===gm||F(t,o,w,".md");}for(let n of await L(e,xn))F(t,E(e,n),ct,".md");for(let n of await L(e,Zr))$(t,E(e,n),Zr);}var vE=d(()=>{kt();Ui();Rt();s($h,"buildAntigravityImportPaths");});var de,Tu,Ge,fr,je,Nn,Fn,Du,No,Fo,vn,vo,Gh,jh,Uh,Bh,Bi=d(()=>{de="augment-code",Tu=".augment",Ge=`${Tu}/rules`,fr=`${Tu}/commands`,je=`${Tu}/skills`,Nn=`${Tu}/settings.json`,Fn=".augmentignore",Du=".augment",No=`${Du}/rules`,Fo=`${Du}/commands`,vn=`${Du}/skills`,vo=`${Du}/settings.json`,Gh=".agentsmesh/rules",jh=".agentsmesh/mcp.json",Uh=".agentsmesh/hooks.yaml",Bh=".agentsmesh/ignore";});async function Kh(t,e,r="project"){if(r==="global"){for(let n of await L(e,No))F(t,E(e,n),w,".md");for(let n of await L(e,Fo))F(t,E(e,n),ct,".md");for(let n of await L(e,vn))$(t,E(e,n),vn);t.set(vo,".agentsmesh/mcp.json");return}for(let n of await L(e,Ge))F(t,E(e,n),w,".md");for(let n of await L(e,fr))F(t,E(e,n),ct,".md");for(let n of await L(e,je))$(t,E(e,n),je);t.set(Nn,".agentsmesh/mcp.json"),t.set(Fn,".agentsmesh/ignore");}var ME=d(()=>{kt();Bi();Rt();s(Kh,"buildAugmentCodeImportPaths");});var $E,Ms,GE,_m,Rm,Sm,Im,Cm,Mo,Wh,km,Il,Em,Lm,Nu,Fu,Hh,Om,zh,Ki,jE,$o=d(()=>{$E="claude-code",Ms=".claude/CLAUDE.md",GE="CLAUDE.md",_m=".claude/rules",Rm=".claude/commands",Sm=".claude/agents",Im=".claude/skills",Cm=".claude/settings.json",Mo=".claude/hooks.json",Wh=".claude/output-styles",km=".claudeignore",Il=".mcp.json",Em=".claude.json",Lm=".agentsmesh/rules",Nu=".agentsmesh/commands",Fu=".agentsmesh/agents",Hh=".agentsmesh/skills",Om=".agentsmesh/mcp.json",zh=".agentsmesh/permissions.yaml",Ki=".agentsmesh/hooks.yaml",jE=".agentsmesh/ignore";});async function Vh(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${w}/_root.md`),t.set(Mo,Ki),r==="project"&&t.set("CLAUDE.md",`${w}/_root.md`),r==="global")for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");for(let n of await L(e,".claude/rules"))F(t,E(e,n),w,".md");for(let n of await L(e,".claude/commands"))F(t,E(e,n),ct,".md");for(let n of await L(e,".claude/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".claude/skills"))$(t,E(e,n),".claude/skills");}var UE=d(()=>{kt();$o();Rt();s(Vh,"buildClaudeCodeImportPaths");});var $s,Go,Wi,jo,BE,te,Mn,Gs,Hi,zi,Vi,Ji,Jh,js,vu,Yh,Xh,KE,WE,gr=d(()=>{$s="cline",Go=".clinerules",Wi=".clineignore",jo=".cline/cline_mcp_settings.json",BE=".cline/mcp_settings.json",te=".cline/skills",Mn=".clinerules/workflows",Gs="AGENTS.md",Hi=".clinerules/hooks",zi="Documents/Cline/Rules",Vi="Documents/Cline/Workflows",Ji="Documents/Cline/Hooks",Jh=".agentsmesh/hooks.yaml",js=".agentsmesh/rules",vu=".agentsmesh/commands",Yh=".agentsmesh/ignore",Xh=".agentsmesh/mcp.json",KE=".agentsmesh/agents",WE=".agentsmesh/skills";});async function Zh(t,e,r="project"){if(r==="global"){for(let n of await L(e,zi))F(t,E(e,n),w,".md");for(let n of await L(e,Vi))F(t,E(e,n),ct,".md");for(let n of await L(e,te))$(t,E(e,n),te);t.set(jo,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${w}/_root.md`);for(let n of await L(e,".clinerules")){let o=E(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||F(t,o,w,".md");}for(let n of await L(e,".clinerules/workflows"))F(t,E(e,n),ct,".md");for(let n of await L(e,".cline/skills"))$(t,E(e,n),".cline/skills");}var HE=d(()=>{kt();gr();Rt();s(Zh,"buildClineImportPaths");});async function Qh(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${w}/_root.md`),t.set(".codex/AGENTS.override.md",`${w}/_root.md`)):(t.set("AGENTS.md",`${w}/_root.md`),t.set("codex.md",`${w}/_root.md`),await bu(t,e)),r==="project")for(let n of await L(e,".codex/instructions"))F(t,E(e,n),w,".md");for(let n of await L(e,".codex/rules")){let o=E(e,n);o.endsWith(".rules")?F(t,o,w,".rules"):o.endsWith(".md")&&F(t,o,w,".md");}for(let n of await L(e,".codex/agents"))F(t,E(e,n),At,".toml");for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");}var zE=d(()=>{kt();Rt();s(Qh,"buildCodexCliImportPaths");});var Cl,Qr,$n,qh,Mu,Uo,ty,Ue,kl,wm,$u,Gu,ey,Gn=d(()=>{Cl="continue",Qr=".continue/rules",$n=".continue/prompts",qh=".continue/mcpServers",Mu=`${qh}/agentsmesh.json`,Uo=`${Qr}/general.md`,ty=`${Qr}/_root.md`,Ue=".continue/skills",kl=".continue/AGENTS.md",wm=".continue/config.yaml",$u=".agentsmesh/rules",Gu=".agentsmesh/commands",ey=".agentsmesh/mcp.json";});async function ry(t,e,r="project"){t.set(Uo,`${w}/_root.md`),t.set(ty,`${w}/_root.md`);for(let n of await L(e,".continue/rules")){let o=E(e,n);o===Uo||o===ty||F(t,o,w,".md");}for(let n of await L(e,".continue/prompts"))t.set(E(e,n),`${ct}/${basename(n,".md")}.md`);for(let n of await L(e,".continue/skills"))$(t,E(e,n),".continue/skills");if(r==="global")for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");}var VE=d(()=>{kt();Gn();Rt();s(ry,"buildContinueImportPaths");});function XH(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${w}/${basename(e,".instructions.md")}.md`);return}F(t,e,w,".md");}async function ny(t,e){t.set(".github/copilot-instructions.md",`${w}/_root.md`);for(let r of await L(e,".github/copilot"))t.set(E(e,r),`${w}/${basename(r,".instructions.md")}.md`);for(let r of await L(e,".github/instructions"))XH(t,E(e,r));for(let r of await L(e,".github/prompts"))t.set(E(e,r),`${ct}/${basename(r,".prompt.md")}.md`);for(let r of await L(e,".github/agents"))t.set(E(e,r),`${At}/${basename(r,".agent.md")}.md`);for(let r of await L(e,".github/skills"))$(t,E(e,r),".github/skills");}var JE=d(()=>{kt();Rt();s(XH,"addCopilotInstructionMapping");s(ny,"buildCopilotImportPaths");});var hr,yr,ee,Be,Bo,YE,Uu,Ke,Yi,Bu,Ku,Wu,El=d(()=>{hr="crush",yr="CRUSH.md",ee=".crush/skills",Be="crush.json",Bo=".crushignore",YE=".config/crush",Uu=`${YE}/crush.json`,Ke=".config/crush/skills",Yi=`${YE}/CRUSH.md`,Bu=".agentsmesh/rules",Ku=".agentsmesh/ignore",Wu=".agentsmesh/mcp.json";});async function oy(t,e,r="project"){if(r==="global"){for(let n of await L(e,Ke))$(t,E(e,n),Ke);return}t.set(yr,`${Bu}/_root.md`),t.set(Be,Wu),t.set(Bo,Ku);for(let n of await L(e,ee))$(t,E(e,n),ee);}var XE=d(()=>{kt();El();s(oy,"buildCrushImportPaths");});var ZE,Us,QE,_r,Ko,Rr,Sr,fe,We,jn,Hu,qr,sy,ZH,Ll,tn,Un,Bs,Ks,qE,Ol,iy,Am,ay,zt=d(()=>{ZE="cursor",Us="AGENTS.md",QE=".cursorrules",_r=".cursor/rules",Ko=`${_r}/general.mdc`,Rr=".cursor/commands",Sr=".cursor/agents",fe=".cursor/skills",We=".cursor/mcp.json",jn=".cursor/hooks.json",Hu=".cursor/settings.json",qr=".cursorignore",sy=".cursorindexingignore",ZH=".agentsmesh-exports/cursor",Ll=`${ZH}/user-rules.md`,tn=".cursor/AGENTS.md",Un=".agentsmesh/rules",Bs=".agentsmesh/commands",Ks=".agentsmesh/agents",qE=".agentsmesh/skills",Ol=".agentsmesh/mcp.json",iy=".agentsmesh/permissions.yaml",Am=".agentsmesh/hooks.yaml",ay=".agentsmesh/ignore";});async function ly(t,e,r="project"){if(r==="global"){t.set(We,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))F(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))F(t,E(e,n),ct,".md");for(let n of await L(e,".cursor/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))$(t,E(e,n),".cursor/skills");return}t.set("AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))F(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))F(t,E(e,n),ct,".md");for(let n of await L(e,".cursor/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))$(t,E(e,n),".cursor/skills");}var tL=d(()=>{kt();zt();Rt();s(ly,"buildCursorImportPaths");});var Bn,Ir,ge,Wo,Ho,en,Xi,eL,wl=d(()=>{Bn="deepagents-cli",Ir=".deepagents/AGENTS.md",ge=".deepagents/skills",Wo=".mcp.json",Ho=".deepagents/AGENTS.md",en=".deepagents/skills",Xi=".deepagents/.mcp.json",eL=".agentsmesh/rules";});async function cy(t,e,r="project"){if(r==="global"){t.set(Ho,`${w}/_root.md`);for(let n of await L(e,en))$(t,E(e,n),en);t.set(Xi,".agentsmesh/mcp.json");return}t.set(Ir,`${w}/_root.md`);for(let n of await L(e,ge))$(t,E(e,n),ge);t.set(Wo,".agentsmesh/mcp.json");}var rL=d(()=>{kt();wl();Rt();s(cy,"buildDeepagentsCliImportPaths");});var Cr,kr,Ae,Kn,Wn,zo,Hn,Zi,Ws,nL,Qi=d(()=>{Cr="factory-droid",kr="AGENTS.md",Ae=".factory/skills",Kn=".factory/droids",Wn=".factory/mcp.json",zo=".factory/AGENTS.md",Hn=".factory/skills",Zi=".factory/droids",Ws=".factory/mcp.json",nL=".agentsmesh/rules";});async function my(t,e,r="project"){if(r==="global"){t.set(zo,`${w}/_root.md`);for(let n of await L(e,Zi))F(t,E(e,n),At,".md");for(let n of await L(e,Hn))$(t,E(e,n),Hn);t.set(Ws,".agentsmesh/mcp.json");return}t.set(kr,`${w}/_root.md`);for(let n of await L(e,Kn))F(t,E(e,n),At,".md");for(let n of await L(e,Ae))$(t,E(e,n),Ae);t.set(Wn,".agentsmesh/mcp.json");}var oL=d(()=>{kt();Qi();Rt();s(my,"buildFactoryDroidImportPaths");});async function py(t,e){for(let r of await L(e,".gemini/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".gemini/commands")){let n=E(e,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(":");t.set(n,`${ct}/${c}.md`);}for(let r of await L(e,".gemini/agents"))F(t,E(e,r),At,".md");for(let r of await L(e,".gemini/skills"))$(t,E(e,r),".gemini/skills");}var sL=d(()=>{kt();Rt();s(py,"buildGeminiCliImportPaths");});var zn,Er,be,Vo,iL,Jo,qi,Lr,aL,lL,Al=d(()=>{zn="goose",Er=".goosehints",be=".agents/skills",Vo=".gooseignore",iL=".config/goose",Jo=`${iL}/.goosehints`,qi=`${iL}/.gooseignore`,Lr=".agents/skills",aL=".agentsmesh/rules",lL=".agentsmesh/ignore";});async function uy(t,e,r="project"){if(r==="global"){t.set(Jo,`${w}/_root.md`);for(let n of await L(e,Lr))$(t,E(e,n),Lr);t.set(qi,".agentsmesh/ignore");return}t.set(Er,`${w}/_root.md`);for(let n of await L(e,be))$(t,E(e,n),be);t.set(Vo,".agentsmesh/ignore");}var cL=d(()=>{kt();Al();Rt();s(uy,"buildGooseImportPaths");});var Yo,rn,mL,bl=d(()=>{Yo="jules",rn="AGENTS.md",mL=".agentsmesh/rules";});async function dy(t,e,r="project"){r!=="global"&&t.set(rn,`${w}/_root.md`);}var pL=d(()=>{bl();Rt();s(dy,"buildJulesImportPaths");});var ta,Hs,zu,uL,Vn,dL,QH,bm,ea,Pm,Pl,xl,xm,Tm,Dm,Nm,Fm,qH,Vu,ra,fL,fy,Ju,gL,hL,yL,_L,Tl=d(()=>{ta="junie",Hs=".junie",zu=`${Hs}/guidelines.md`,uL=`${Hs}/ci-guidelines.md`,Vn=`${Hs}/AGENTS.md`,dL="AGENTS.md",QH=`${Hs}/mcp`,bm=`${QH}/mcp.json`,ea=`${Hs}/skills`,Pm=`${Hs}/rules`,Pl=`${Hs}/commands`,xl=`${Hs}/agents`,xm=".aiignore",Tm=".junie",Dm=`${Tm}/skills`,Nm=`${Tm}/agents`,Fm=`${Tm}/commands`,qH=`${Tm}/mcp`,Vu=`${qH}/mcp.json`,ra=`${Tm}/AGENTS.md`,fL=".agents/skills",fy=".agentsmesh/rules/_root.md",Ju=".agentsmesh/rules",gL=".agentsmesh/commands",hL=".agentsmesh/agents",yL=".agentsmesh/mcp.json",_L=".agentsmesh/ignore";});async function gy(t,e){t.set(zu,`${w}/_root.md`),t.set(Vn,`${w}/_root.md`),t.set("AGENTS.md",`${w}/_root.md`);for(let r of await L(e,".junie/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".junie/commands"))F(t,E(e,r),ct,".md");for(let r of await L(e,".junie/agents"))F(t,E(e,r),At,".md");for(let r of await L(e,".junie/skills"))$(t,E(e,r),".junie/skills");}var RL=d(()=>{kt();Tl();Rt();s(gy,"buildJunieImportPaths");});var Ie,vm,Jn,Xo,Zo,Qo,nn,zs,Dl,Yu,na,Nl,oa,Mm,Xu,Fl,Vs,sa,ia,aa,Js,vl,Zu,SL,Ys,Ml,la,IL,CL,ca=d(()=>{Ie="kilo-code",vm=".kilo",Jn="AGENTS.md",Xo=`${vm}/rules`,Zo=`${vm}/commands`,Qo=`${vm}/agents`,nn=`${vm}/skills`,zs=`${vm}/mcp.json`,Dl=".kilocodeignore",Yu=".kilocode",na=`${Yu}/rules`,Nl=`${Yu}/workflows`,oa=`${Yu}/skills`,Mm=`${Yu}/mcp.json`,Xu=".kilocodemodes",Fl=".kilo",Vs=`${Fl}/AGENTS.md`,sa=`${Fl}/rules`,ia=`${Fl}/commands`,aa=`${Fl}/agents`,Js=`${Fl}/skills`,vl=`${Fl}/mcp.json`,Zu=".kilocodeignore",SL=".agents/skills",Ys=".agentsmesh/rules",Ml=".agentsmesh/commands",la=".agentsmesh/agents",IL=".agentsmesh/mcp.json",CL=".agentsmesh/ignore";});async function hy(t,e,r="project"){if(r==="global"){t.set(Vs,`${w}/_root.md`);for(let n of await L(e,sa))F(t,E(e,n),w,".md");for(let n of await L(e,ia))F(t,E(e,n),ct,".md");for(let n of await L(e,aa))F(t,E(e,n),At,".md");for(let n of await L(e,Js))$(t,E(e,n),Js);t.set(vl,".agentsmesh/mcp.json");return}t.set(Jn,`${w}/_root.md`);for(let n of await L(e,Xo))F(t,E(e,n),w,".md");for(let n of await L(e,Zo))F(t,E(e,n),ct,".md");for(let n of await L(e,Qo))F(t,E(e,n),At,".md");for(let n of await L(e,nn))$(t,E(e,n),nn);t.set(zs,".agentsmesh/mcp.json");for(let n of await L(e,na)){let o=E(e,n);if(basename(o)==="00-root.md"){t.set(o,`${w}/_root.md`);continue}F(t,o,w,".md");}for(let n of await L(e,Nl))F(t,E(e,n),ct,".md");for(let n of await L(e,oa))$(t,E(e,n),oa);t.set(Mm,".agentsmesh/mcp.json");}var kL=d(()=>{kt();ca();Rt();s(hy,"buildKiloCodeImportPaths");});var He,on,$m,sn,Ce,an,Xs,ez,$l,Gl,ma,ln,Zs,pa,Gm,jm,EL,yy,_y,LL,OL,Ry,wL,jl=d(()=>{He="kiro",on="AGENTS.md",$m=".kiro",sn=`${$m}/steering`,Ce=`${$m}/skills`,an=`${$m}/agents`,Xs=`${$m}/hooks`,ez=`${$m}/settings`,$l=`${ez}/mcp.json`,Gl=".kiroignore",ma=".kiro/steering",ln=".kiro/steering/AGENTS.md",Zs=".kiro/skills",pa=".kiro/agents",Gm=".kiro/settings/mcp.json",jm=".kiro/settings/kiroignore",EL=".agents/skills",yy=".agentsmesh/rules/_root.md",_y=".agentsmesh/rules",LL=".agentsmesh/agents",OL=".agentsmesh/mcp.json",Ry=".agentsmesh/hooks.yaml",wL=".agentsmesh/ignore";});async function Sy(t,e,r="project"){if(r==="global"){t.set(ln,`${w}/_root.md`);for(let n of await L(e,ma)){let o=E(e,n);o!==ln&&F(t,o,w,".md");}for(let n of await L(e,Zs))$(t,E(e,n),Zs);for(let n of await L(e,pa))F(t,E(e,n),At,".md");return}t.set(on,`${w}/_root.md`);for(let n of await L(e,sn))F(t,E(e,n),w,".md");for(let n of await L(e,Ce))$(t,E(e,n),Ce);for(let n of await L(e,an))F(t,E(e,n),At,".md");}var AL=d(()=>{kt();jl();Rt();s(Sy,"buildKiroImportPaths");});var cn,Qu,Yn,qo,ts,es,mn,Xn,Ul,Qs,ua,da,fa,qs,ti,bL,Um,qu,td,Iy,ga=d(()=>{cn="opencode",Qu=".opencode",Yn="AGENTS.md",qo=`${Qu}/rules`,ts=`${Qu}/commands`,es=`${Qu}/agents`,mn=`${Qu}/skills`,Xn="opencode.json",Ul=".config/opencode",Qs=`${Ul}/AGENTS.md`,ua=`${Ul}/rules`,da=`${Ul}/commands`,fa=`${Ul}/agents`,qs=`${Ul}/skills`,ti=`${Ul}/opencode.json`,bL=".agents/skills",Um=".agentsmesh/rules",qu=".agentsmesh/commands",td=".agentsmesh/agents",Iy=".agentsmesh/mcp.json";});async function Cy(t,e,r="project"){if(r==="global"){t.set(Qs,`${w}/_root.md`);for(let n of await L(e,ua))F(t,E(e,n),w,".md");for(let n of await L(e,da))F(t,E(e,n),ct,".md");for(let n of await L(e,fa))F(t,E(e,n),At,".md");for(let n of await L(e,qs))$(t,E(e,n),qs);t.set(ti,".agentsmesh/mcp.json");return}t.set(Yn,`${w}/_root.md`);for(let n of await L(e,qo))F(t,E(e,n),w,".md");for(let n of await L(e,ts))F(t,E(e,n),ct,".md");for(let n of await L(e,es))F(t,E(e,n),At,".md");for(let n of await L(e,mn))$(t,E(e,n),mn);t.set(Xn,".agentsmesh/mcp.json");}var PL=d(()=>{kt();ga();Rt();s(Cy,"buildOpencodeImportPaths");});var Zn,Or,re,xL,rs,wr,TL,Bl=d(()=>{Zn="pi-agent",Or="AGENTS.md",re=".pi/skills",xL=".pi/agent",rs=`${xL}/AGENTS.md`,wr=`${xL}/skills`,TL=".agentsmesh/rules";});async function ky(t,e,r="project"){if(r==="global"){t.set(rs,`${w}/_root.md`);for(let n of await L(e,wr))$(t,E(e,n),wr);return}t.set(Or,`${w}/_root.md`);for(let n of await L(e,re))$(t,E(e,n),re);}var Ey=d(()=>{kt();Bl();Rt();s(ky,"buildPiAgentImportPaths");});var pn,Ar,ns,Qn,qn,ze,ei,ri,os,ha,ni,to,oi,Ly,DL,NL,Kl=d(()=>{pn="qwen-code",Ar="QWEN.md",ns=".qwen/rules",Qn=".qwen/commands",qn=".qwen/agents",ze=".qwen/skills",ei=".qwen/settings.json",ri=".qwenignore",os=".qwen/QWEN.md",ha=".qwen/settings.json",ni=".qwen/commands",to=".qwen/skills",oi=".qwen/agents",Ly=".agentsmesh/rules",DL=".agentsmesh/commands",NL=".agentsmesh/agents";});async function Oy(t,e,r="project"){if(r==="global"){t.set(os,`${w}/_root.md`),t.set(ha,".agentsmesh/mcp.json");for(let n of await L(e,ni))F(t,E(e,n),ct,".md");for(let n of await L(e,oi))F(t,E(e,n),At,".md");for(let n of await L(e,to))$(t,E(e,n),to);return}t.set(Ar,`${w}/_root.md`),t.set(ei,".agentsmesh/mcp.json"),t.set(ri,".agentsmesh/ignore");for(let n of await L(e,ns))F(t,E(e,n),w,".md");for(let n of await L(e,Qn))F(t,E(e,n),ct,".md");for(let n of await L(e,qn))F(t,E(e,n),At,".md");for(let n of await L(e,ze))$(t,E(e,n),ze);}var FL=d(()=>{kt();Rt();Kl();s(Oy,"buildQwenCodeImportPaths");});var eo,un,Pe,vL,Wl=d(()=>{eo="replit-agent",un="replit.md",Pe=".agents/skills",vL=".agentsmesh/rules";});async function wy(t,e,r="project"){if(r!=="global"){t.set(un,`${w}/_root.md`);for(let n of await L(e,Pe))$(t,E(e,n),Pe);}}var Ay=d(()=>{kt();Wl();Rt();s(wy,"buildReplitAgentImportPaths");});var si,ya,dn,Bm,ss,is,ro,Km,Wm,Hl,Hm,ed,ii,ai,as,_a,zm,li,ML,Ra,rd,$L,GL,Sa=d(()=>{si="roo-code",ya=".roo",dn=`${ya}/rules/00-root.md`,Bm=".roorules",ss=`${ya}/rules`,is=`${ya}/commands`,ro=`${ya}/skills`,Km=`${ya}/mcp.json`,Wm=".rooignore",Hl=".roomodes",Hm="settings/custom_modes.yaml",ed=".roo",ii=`${ed}/rules`,ai=`${ed}/commands`,as=`${ed}/skills`,_a="mcp_settings.json",zm=".rooignore",li=`${ed}/AGENTS.md`,ML=".agents/skills",Ra=".agentsmesh/rules",rd=".agentsmesh/commands",$L=".agentsmesh/mcp.json",GL=".agentsmesh/ignore";});async function by(t,e,r="project"){if(r==="global"){t.set(li,`${w}/_root.md`);for(let n of await L(e,ii))F(t,E(e,n),w,".md");for(let n of await L(e,ai))F(t,E(e,n),ct,".md");for(let n of await L(e,as))$(t,E(e,n),as);t.set(_a,".agentsmesh/mcp.json");return}t.set(dn,`${w}/_root.md`),t.set(Bm,`${w}/_root.md`);for(let n of await L(e,ss)){let o=E(e,n);o!==dn&&F(t,o,w,".md");}for(let n of await L(e,".roo")){let o=E(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&F(t,o,w,".md");}for(let n of await L(e,is))F(t,E(e,n),ct,".md");for(let n of await L(e,ro))$(t,E(e,n),ro);}var jL=d(()=>{kt();Sa();Rt();s(by,"buildRooCodeImportPaths");});var no,br,UL,ne,ls,BL,cs,Ve,zl,KL,Vl=d(()=>{no="rovodev",br="AGENTS.md",UL=".rovodev",ne=`${UL}/skills`,ls=`${UL}/mcp.json`,BL=".rovodev",cs=".rovodev/AGENTS.md",Ve=".rovodev/skills",zl=".rovodev/mcp.json",KL=".agentsmesh/rules";});async function Py(t,e,r="project"){if(r==="global"){t.set(cs,`${w}/_root.md`);for(let n of await L(e,Ve))$(t,E(e,n),Ve);t.set(zl,".agentsmesh/mcp.json");return}t.set(br,`${w}/_root.md`);for(let n of await L(e,ne))$(t,E(e,n),ne);t.set(ls,".agentsmesh/mcp.json");}var WL=d(()=>{kt();Vl();Rt();s(Py,"buildRovodevImportPaths");});var Pr,nd,Je,Ye,xr,Ia,Jl,ms,Tr,fn,Vm,HL,Jm,zL,VL,Yl=d(()=>{Pr="trae",nd=".trae",Je=`${nd}/rules`,Ye=`${Je}/project_rules.md`,xr=`${nd}/skills`,Ia=`${nd}/mcp.json`,Jl=`${nd}/.ignore`,ms=".trae/user_rules",Tr=".trae/user_rules/rules.md",fn=".trae/skills",Vm=".trae/mcp.json",HL=".agents/skills",Jm=".agentsmesh/rules",zL=".agentsmesh/mcp.json",VL=".agentsmesh/ignore";});async function xy(t,e,r="project"){if(r==="global"){t.set(Tr,`${w}/_root.md`);for(let n of await L(e,ms)){let o=E(e,n);o!==Tr&&F(t,o,w,".md");}for(let n of await L(e,fn))$(t,E(e,n),fn);return}t.set(Ye,`${w}/_root.md`);for(let n of await L(e,Je)){let o=E(e,n);o!==Ye&&F(t,o,w,".md");}for(let n of await L(e,xr))$(t,E(e,n),xr);}var JL=d(()=>{kt();Yl();Rt();s(xy,"buildTraeImportPaths");});var oo,gn,Ty,he,ci,Xe,YL,Xl=d(()=>{oo="warp",gn="AGENTS.md",Ty="WARP.md",he=".warp/skills",ci=".mcp.json",Xe=".warp/skills",YL=".agentsmesh/rules";});async function Dy(t,e,r="project"){if(r==="global"){for(let n of await L(e,Xe))$(t,E(e,n),Xe);return}t.set(gn,`${w}/_root.md`);for(let n of await L(e,he))$(t,E(e,n),he);t.set(ci,".agentsmesh/mcp.json");}var XL=d(()=>{kt();Xl();Rt();s(Dy,"buildWarpImportPaths");});async function Ny(t,e){t.set("AGENTS.md",`${w}/_root.md`),t.set(".windsurfrules",`${w}/_root.md`),await bu(t,e);for(let r of await L(e,".windsurf/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".windsurf/workflows"))F(t,E(e,r),ct,".md");for(let r of await L(e,".windsurf/skills"))$(t,E(e,r),".windsurf/skills");}var ZL=d(()=>{kt();Rt();s(Ny,"buildWindsurfImportPaths");});var hn,so,rz,io,QL,Ca=d(()=>{hn=".rules",so=".zed/settings.json",rz=".config/zed",io=`${rz}/settings.json`,QL=".agentsmesh/rules";});async function Fy(t,e,r="project"){if(r==="global"){t.set(io,".agentsmesh/mcp.json");return}t.set(hn,`${w}/_root.md`),t.set(so,".agentsmesh/mcp.json");}var qL=d(()=>{Ca();Rt();s(Fy,"buildZedImportPaths");});var tO=d(()=>{bE();TE();NE();vE();ME();UE();HE();zE();VE();JE();XE();tL();rL();oL();sL();cL();pL();RL();kL();AL();PL();Ey();FL();Ay();jL();WL();JL();XL();ZL();qL();});var Et=d(()=>{tO();});var nz,oz,sz,eO,Au,bh=d(()=>{Lt();ut();Pk();gE();IE();LE();Et();hl();nz={name:An,primaryRootInstructionPath:ar,generateRules:Lk,generateCommands:wk,generateAgents:Ak,generateSkills:Ok,generateIgnore:bk,importFrom:fE},oz={rootInstructionPath:ar,skillDir:me,managedOutputs:{dirs:[me],files:[ar,bo]},paths:{rulePath(t){return ar},commandPath(t){return `${me}/${V(t)}/SKILL.md`},agentPath(t){return `${me}/${K(t)}/SKILL.md`}}},sz={rootInstructionPath:Po,skillDir:lr,managedOutputs:{dirs:[lr],files:[Po,Fi]},rewriteGeneratedPath(t){return t===ar?Po:t===bo?Fi:t.startsWith(`${me}/`)?t.replace(`${me}/`,`${lr}/`):t},paths:{rulePath(t){return Po},commandPath(t){return `${lr}/${V(t)}/SKILL.md`},agentPath(t){return `${lr}/${K(t)}/SKILL.md`}}},eO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Au={id:An,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:nz,capabilities:eO,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:SE,lint:{hooks:CE,permissions:kE,mcp:EE},supportsConversion:{commands:true,agents:true},project:oz,globalSupport:{capabilities:eO,detectionPaths:[Po,Fi,lr],layout:sz},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ar],global:[Po]},canonicalDir:kk,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[bo],global:[Fi]},canonicalDir:".agentsmesh",canonicalFilename:Ek}},buildImportPaths:Dh,detectionPaths:[ar,bo]};});function rO(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(vi))continue;let n=r.root?"_root":basename(r.source,".md");e.push({path:`${Yr}/${n}.md`,content:r.body.trim()});}return e}function nO(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Mi,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var oO=d(()=>{fm();s(rO,"generateRules");s(nO,"generateMcp");});async function sO(t,e){let r=e?.scope??"project";return Y(od,t,r)}var iO=d(()=>{Ot();vy();s(sO,"importFromAmazonQ");});function aO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:vi}))}var lO=d(()=>{Ct();fm();s(aO,"lintRules");});var az,lz,cz,mz,od,vy=d(()=>{oO();iO();lO();Et();fm();az={name:vi,generateRules:rO,generateMcp:nO,importFrom:sO},lz={managedOutputs:{dirs:[Yr],files:[Mi]},paths:{rulePath(t,e){return `${Yr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},cz={managedOutputs:{dirs:[vs],files:[dm]},rewriteGeneratedPath(t){return t.startsWith(`${Yr}/`)?t.replace(`${Yr}/`,`${vs}/`):t===Mi?dm:t},paths:{rulePath(t,e){return `${vs}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},mz={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},od={id:vi,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:az,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:aO,project:lz,globalSupport:{capabilities:mz,detectionPaths:[vs,dm],layout:cz},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Yr],global:[vs]},canonicalDir:PE,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Mi],global:[dm]},canonicalDir:".agentsmesh",canonicalFilename:xE}},buildImportPaths:Nh,detectionPaths:[Yr,Mi]};});function cO(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=e?.body.trim()??"",o=at(n,r);return o?[{path:pr,content:o}]:[]}function mO(t){return st(t,ue)}function pO(t){return t.commands.map(e=>({path:`${ue}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function uO(t){return t.agents.map(e=>({path:`${ue}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}var dO=d(()=>{rt();Kt();ut();Lt();$i();s(cO,"generateRules");s(mO,"generateSkills");s(pO,"generateCommands");s(uO,"generateAgents");});function dt(t,e,r){let n=r.some(o=>pz.includes(o));return t.startsWith(`${e}/`)&&!n?`.agents/skills/${t.slice(e.length+1)}`:null}var pz,oe=d(()=>{pz=["amp","antigravity","codex-cli","goose","replit-agent"];s(dt,"mirrorSkillsToAgents");});async function gO(t,e,r){let n=await _(join(t,e));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 Ht(t,fO,l),r.push({fromTool:"amp",fromPath:e,toPath:fO,feature:"mcp"}));}var fO,hO=d(()=>{A();Jr();$i();fO=".agentsmesh/mcp.json";s(gO,"importAmpMcp");});async function yO(t,e={}){let r=e.scope??"project",n=[],o=await W("amp",t,r);return n.push(...await Y(sd,t,r,{normalize:o})),await et(t,r==="global"?ur:ue,"amp",n,o),await gO(t,r==="global"?Do:Pn,n),n}var _O=d(()=>{gt();rt();Ot();hO();$i();My();s(yO,"importFromAmp");});function RO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var SO=d(()=>{Ct();$i();s(RO,"lintRules");});function IO(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function CO(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function kO(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var EO=d(()=>{wt();s(IO,"lintHooks");s(CO,"lintPermissions");s(kO,"lintIgnore");});function hz(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),JSON.stringify(r,null,2)}var dz,fz,gz,LO,sd,My=d(()=>{Lt();ut();dO();oe();_O();SO();EO();Et();$i();dz={name:"amp",primaryRootInstructionPath:pr,generateRules:cO,generateCommands:pO,generateAgents:uO,generateSkills:mO,importFrom:yO},fz={rootInstructionPath:pr,skillDir:ue,managedOutputs:{dirs:[ue],files:[pr,Pn]},paths:{rulePath(t){return pr},commandPath(t){return `${ue}/${V(t)}/SKILL.md`},agentPath(t){return `${ue}/${K(t)}/SKILL.md`}}},gz={rootInstructionPath:To,skillDir:ur,managedOutputs:{dirs:[ur],files:[To,Do]},rewriteGeneratedPath(t){return t===pr?To:t===Pn?Do:t.startsWith(`${ue}/`)?t.replace(`${ue}/`,`${ur}/`):t},mirrorGlobalPath(t,e){return dt(t,ur,e)},paths:{rulePath(t){return To},commandPath(t){return `${ur}/${V(t)}/SKILL.md`},agentPath(t){return `${ur}/${K(t)}/SKILL.md`}}},LO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(hz,"mergeAmpSettings");sd={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:dz,capabilities:LO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:RO,lint:{hooks:IO,permissions:CO,ignore:kO},supportsConversion:{commands:true,agents:true},project:fz,globalSupport:{capabilities:LO,detectionPaths:[To,Do],layout:gz},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[pr],global:[To]},canonicalDir:DE,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Pn,content:JSON.stringify({"amp.mcpServers":t.mcp.mcpServers},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===Pn||n===Do?hz(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:vh,detectionPaths:[pr,Pn],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function OO(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:dr,content:e.body.trim()||""}];for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${Xr}/${o}.md`,content:n.body.trim()||""});}return r}function wO(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
61
65
|
|
|
62
|
-
${n}`:n||r;return {path:`${
|
|
63
|
-
`)}]}var
|
|
64
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(t,
|
|
65
|
-
`)),r.push({fromTool:
|
|
66
|
+
${n}`:n||r;return {path:`${xn}/${e.name}.md`,content:o}})}function AO(t){return st(t,Zr)}function bO(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:hm,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function PO(t){return t.agents.map(e=>({path:`${Zr}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function xO(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("antigravity"));return at(e?.body.trim()??"",r)}var TO=d(()=>{rt();Kt();ut();Ui();s(OO,"generateRules");s(wO,"generateCommands");s(AO,"generateSkills");s(bO,"generateMcp");s(PO,"generateAgents");s(xO,"renderAntigravityGlobalInstructions");});function _z(t){let e=t.replace(/\\/g,"/");return !e.startsWith("rules/")||e.endsWith("/")||!e.endsWith(".md")?null:e}async function ao(t){let e=fk(t.content),r=[];if(e.rules.length===0)return {rootContent:e.rootContent,results:r};await O(join(t.projectRoot,t.rulesDir));for(let n of e.rules){let o=_z(n.source);if(o===null||o==="rules/_root.md")continue;let i=join(t.projectRoot,".agentsmesh",o),a=t.normalize(n.body,t.sourcePath,i),{frontmatter:l,body:c}=P(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 I(i,m),r.push({fromTool:t.fromTool,fromPath:t.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:e.rootContent,results:r}}var Zl=d(()=>{A();U();Kt();ft();s(_z,"canonicalRulePath");s(ao,"splitEmbeddedRulesToCanonical");});async function Rz(t,e,r,n){let o=n==="global"?Tn:dr,i=n==="project"?[o,gm]:[o];for(let a of i){let l=join(t,a),c=await _(l);if(c===null)continue;let m=join(t,Mh),p=await ao({content:c,projectRoot:t,rulesDir:ji,sourcePath:l,fromTool:Gi,normalize:r});e.push(...p.results);let{body:u}=P(r(p.rootContent,l,m)),f=await z(m,{root:true},u);await O(join(t,ji)),await I(m,f),e.push({fromTool:Gi,fromPath:l,toPath:Mh,feature:"rules"});return}}async function NO(t,e={}){let r=e.scope??"project",n=[],o=await W(Gi,t,r);return await Rz(t,n,o,r),n.push(...await Y(id,t,r,{normalize:o})),await et(t,r==="global"?Dn:Zr,Gi,n,o),n}var FO=d(()=>{gt();A();U();rt();Ot();ft();Zl();Ui();Gy();s(Rz,"importRootRule");s(NO,"importFromAntigravity");});var $O,GO,jO=d(()=>{U();ft();Ui();$O=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(basename(t)==="general.md"||basename(t)==="_root.md")return null;let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${ji}/${t}`,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"),GO=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${xu}/${t}`,content:await St(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function UO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Gi}))}var BO=d(()=>{Ct();Ui();s(UO,"lintRules");});var Sz,Iz,Cz,kz,id,Gy=d(()=>{Ni();ut();TO();Ui();FO();jO();BO();Et();Sz={name:"antigravity",primaryRootInstructionPath:dr,generateRules:OO,generateCommands:wO,generateAgents:PO,generateSkills:AO,generateMcp:bO,importFrom:NO},Iz={rootInstructionPath:dr,skillDir:".agents/skills",managedOutputs:{dirs:[Xr,xn,Zr],files:[dr]},rewriteGeneratedPath(t){return t===hm?null:t},paths:{rulePath(t,e){return `${Xr}/${t}.md`},commandPath(t,e){return `${xn}/${t}.md`},agentPath(t){return `${Zr}/${K(t)}/SKILL.md`}}},Cz={rootInstructionPath:Tn,renderPrimaryRootInstruction:xO,skillDir:Dn,managedOutputs:{dirs:[Dn,ym],files:[Tn,Sl]},rewriteGeneratedPath(t){return t===dr?Tn:t.startsWith(`${Xr}/`)?null:t.startsWith(".agents/skills/")?t.replace(".agents/skills",Dn):t.startsWith(`${xn}/`)?t.replace(xn,ym):t===hm?Sl:t},paths:{rulePath(t,e){return Tn},commandPath(t,e){return `${ym}/${t}.md`},agentPath(t){return `${Dn}/${K(t)}/SKILL.md`}}},kz={rules:"native",additionalRules:"embedded",commands:Wr("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},id={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:Sz,capabilities:{rules:"native",additionalRules:"native",commands:Wr("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:UO,project:Iz,globalSupport:{capabilities:kz,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:Cz},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Xr]},canonicalDir:ji,extensions:[".md"],map:$O},commands:{feature:"commands",mode:"directory",source:{project:[xn],global:[ym]},canonicalDir:xu,extensions:[".md"],map:GO},mcp:{feature:"mcp",mode:"flatFile",source:{global:[Sl]},canonicalDir:".agentsmesh",canonicalFilename:FE}},buildImportPaths:$h,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function Lz(t){let e={};return t.description&&(e.description=t.description),t.globs.length>0||t.trigger==="manual"||t.trigger==="model_decision"?(e.agent_requested=true,t.globs.length>0&&(e.globs=t.globs)):e.always_apply=true,e}function Oz(t){let e={};return t.description&&(e.description=t.description),e}function KO(t){let e=[];for(let r of t.rules)if(!(r.targets.length>0&&!r.targets.includes(de)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),e.push({path:`${Ge}/_root.md`,content:T(n,r.body.trim())});}else {let n=basename(r.source,".md");e.push({path:`${Ge}/${n}.md`,content:T(Lz(r),r.body.trim())});}return e}function WO(t){return t.commands.map(e=>({path:`${fr}/${e.name}.md`,content:T(Oz(e),e.body.trim())}))}function HO(t){return st(t,je)}function zO(t){return t.ignore.length===0?[]:[{path:Fn,content:t.ignore.join(`
|
|
67
|
+
`)}]}var VO=d(()=>{rt();U();Bi();s(Lz,"ruleFrontmatter");s(Oz,"commandFrontmatter");s(KO,"generateRules");s(WO,"generateCommands");s(HO,"generateSkills");s(zO,"generateIgnore");});function Az(t){let e={};for(let[r,n]of Object.entries(t)){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&&(e[r]=o);}return e}async function YO(t,e,r){let n=await _(join(t,e));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 Ht(t,jh,a),r.push({fromTool:de,fromPath:join(t,e),toPath:jh,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=Az(i);if(Object.keys(a).length>0){let l=join(t,Uh);await O(dirname(l)),await I(l,stringify(a)),r.push({fromTool:de,fromPath:join(t,e),toPath:Uh,feature:"hooks"});}}}async function XO(t,e,r){let n=await _(join(t,e));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(t,Bh);await O(dirname(i)),await I(i,o.join(`
|
|
69
|
+
`)),r.push({fromTool:de,fromPath:join(t,e),toPath:Bh,feature:"ignore"});}var ZO=d(()=>{A();Jr();Bi();s(Az,"augmentHooksToCanonical");s(YO,"importAugmentSettings");s(XO,"importAugmentIgnore");});function bz(t,e){let r={root:e,description:typeof t.description=="string"?t.description:void 0,globs:Array.isArray(t.globs)?t.globs:[]};return t.agent_requested===true&&(r.trigger="model_decision"),r}async function Pz(t,e,r,n){let o=n==="global"?No:Ge,i=join(t,Gh);e.push(...await It({srcDir:join(t,o),destDir:i,extensions:[".md"],fromTool:de,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}=P(l(m));return {destPath:m,toPath:`${Gh}/${a}`,feature:"rules",content:await z(m,bz(p,c),u)}},"mapEntry")}));}async function xz(t,e,r,n){let o=n==="global"?Fo:fr,i=join(t,".agentsmesh/commands");e.push(...await It({srcDir:join(t,o),destDir:i,extensions:[".md"],fromTool:de,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a,".md"),m=join(i,`${c}.md`),{frontmatter:p,body:u}=P(l(m)),f=typeof p.description=="string"?p.description:"";return {destPath:m,toPath:`.agentsmesh/commands/${c}.md`,feature:"commands",content:await St(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function qO(t,e={}){let r=e.scope??"project",n=[],o=await W(de,t,r);return await Pz(t,n,o,r),await xz(t,n,o,r),await et(t,r==="global"?vn:je,de,n,o),await YO(t,r==="global"?vo:Nn,n),r==="project"&&await XO(t,Fn,n),n}var tw=d(()=>{gt();$e();rt();ft();U();ZO();Bi();s(bz,"canonicalRuleMeta");s(Pz,"importRules");s(xz,"importCommands");s(qO,"importFromAugmentCode");});function ew(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:de}))}var rw=d(()=>{Ct();Bi();s(ew,"lintRules");});function ow(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=new Set(nw);return Object.keys(t.hooks).filter(r=>!e.has(r)).map(r=>Fs(r,"augment-code",nw,{unsupportedBy:"AugmentCode hooks"}))}var nw,sw=d(()=>{wt();nw=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(ow,"lintHooks");});function Dz(t){let e={};for(let[r,n]of Object.entries(t)){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}:{}}]}));e[r]=o;}return e}function Nz(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;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 Fz(t){let e={};return t.mcp&&Object.keys(t.mcp.mcpServers).length>0&&(e.mcpServers=t.mcp.mcpServers),t.hooks&&Object.keys(t.hooks).length>0&&(e.hooks=Dz(t.hooks)),Object.keys(e).length===0?null:JSON.stringify(e,null,2)}var Tz,vz,Mz,$z,Gz,iw,aw=d(()=>{VO();tw();rw();sw();Et();Bi();Tz={name:de,generateRules:KO,generateCommands:WO,generateSkills:HO,generateIgnore:zO,importFrom:qO};s(Dz,"serializeHooksForSettings");s(Nz,"mergeAugmentSettings");s(Fz,"buildSettingsContent");vz={skillDir:je,managedOutputs:{dirs:[Ge,fr,je],files:[Nn,Fn]},paths:{rulePath(t){return `${Ge}/${t}.md`},commandPath(t){return `${fr}/${t}.md`},agentPath(t){return null}}},Mz={skillDir:vn,managedOutputs:{dirs:[No,Fo,vn],files:[vo]},rewriteGeneratedPath(t){return t.startsWith(`${Ge}/`)?t.replace(`${Ge}/`,`${No}/`):t.startsWith(`${fr}/`)?t.replace(`${fr}/`,`${Fo}/`):t.startsWith(`${je}/`)?t.replace(`${je}/`,`${vn}/`):t===Nn?vo:t===Fn?null:t},paths:{rulePath(t){return `${No}/${t}.md`},commandPath(t){return `${Fo}/${t}.md`},agentPath(t){return null}}},$z={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Gz={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},iw={id:de,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:Tz,capabilities:$z,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:ew,lint:{hooks:ow},project:vz,globalSupport:{capabilities:Gz,detectionPaths:[No,Fo,vn,vo],layout:Mz},emitScopedSettings(t){let e=Fz(t);return e===null?[]:[{path:Nn,content:e}]},mergeGeneratedOutputContent(t,e,r,n){return n===Nn||n===vo?Nz(t,r):null},buildImportPaths:Kh,detectionPaths:[Ge,fr,je,Nn,Fn]};});function lw(t){if(!t.hooks||Object.keys(t.hooks).length===0)return {};let e={};for(let[r,n]of Object.entries(t.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Ln(i))continue;let a=Jt(i),l=Re(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&&(e[r]=o);}return e}var cw=d(()=>{Br();s(lw,"buildClaudeHooksObjectFromCanonical");});function mw(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Ms,content:r.body.trim()?r.body:""});let n=t.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()||"");e.push({path:`${_m}/${i}.md`,content:l});}return e}function pw(t){return t.commands.map(e=>{let r={description:e.description,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,e.body.trim()||"");return {path:`${Rm}/${e.name}.md`,content:n}})}function uw(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,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};Object.keys(r).forEach(a=>{r[a]===void 0&&delete r[a];});let n=e.body.trim()||"",o=/^##\s*Role\b/m.test(n)?n:`## Role
|
|
66
70
|
|
|
67
|
-
${n}`,i=T(r,o);return {path:`${
|
|
71
|
+
${n}`,i=T(r,o);return {path:`${Sm}/${e.name}.md`,content:i}})}function dw(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Il,content:e}]}function fw(t){let e=[];for(let r of t.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
|
|
68
72
|
|
|
69
|
-
${o}`,a=T(n,i);e.push({path:`${
|
|
70
|
-
`);return [{path:
|
|
73
|
+
${o}`,a=T(n,i);e.push({path:`${Im}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");e.push({path:`${Im}/${r.name}/${c}`,content:l.content});}}return e}function gw(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];if(e.length===0&&r.length===0&&n.length===0)return [];let o=JSON.stringify({permissions:{allow:e,deny:r,ask:n}},null,2);return [{path:Cm,content:o}]}function hw(t,e){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let r=lw(t);if(Object.keys(r).length===0)return [];if(e?.scope==="global")return [{path:Mo,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:Cm,content:n}]}function yw(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
74
|
+
`);return [{path:km,content:e}]}var _w=d(()=>{U();$o();cw();s(mw,"generateRules");s(pw,"generateCommands");s(uw,"generateAgents");s(dw,"generateMcp");s(fw,"generateSkills");s(gw,"generatePermissions");s(hw,"generateHooks");s(yw,"generateIgnore");});function Bz(t){let e=t.description.trim();return e||(basename(t.source)||"rule").replace(/\.md$/i,"")||"Rule"}function Rw(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
71
75
|
|
|
72
|
-
## ${e?
|
|
76
|
+
## ${e?Bz(e):"Guidance"}
|
|
73
77
|
|
|
74
78
|
${r}
|
|
75
|
-
`:""}var
|
|
76
|
-
`);continue}let h=await
|
|
79
|
+
`:""}var Sw=d(()=>{s(Bz,"ruleSectionTitle");s(Rw,"renderClaudeGlobalPrimaryInstructions");});function Cw(t,e){return t===null?"created":t!==e?"updated":"unchanged"}async function kw(t,e,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 t.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Wh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:Cw(u,m)});}if(i)for(let l of t.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${Wh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:Cw(u,m)});}return a}var Ew=d(()=>{A();U();$o();s(Cw,"computeStatus");s(kw,"generateClaudeGlobalExtras");});function Lw(t){let e={};for(let[r,n]of Object.entries(t)){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(!Ln({...m,type:p}))continue;let u=p==="prompt"?Re(m)||Jt(m):Jt(m)||Re(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(e[r]=o);}return e}async function Ow(t,e){let r=join(t,Mo),n=await _(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=Lw(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(t,Ki);return await O(dirname(l)),await I(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:Ki,feature:"hooks"}),true}async function ww(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(Mo)),n=join(t,Cm),o=await _(n);if(!o)return;let i;try{i=JSON.parse(o);}catch{return}if(!e.some(m=>m.feature==="mcp")&&i.mcpServers&&typeof i.mcpServers=="object"){let m=i.mcpServers;await Ht(t,Om,m),e.push({fromTool:"claude-code",fromPath:n,toPath:Om,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(t,zh);await O(dirname(h)),await I(h,g),e.push({fromTool:"claude-code",fromPath:n,toPath:zh,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=Lw(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(t,Ki);await O(dirname(u)),await I(u,p),e.push({fromTool:"claude-code",fromPath:n,toPath:Ki,feature:"hooks"});}}}var Aw=d(()=>{Br();A();Jr();$o();s(Lw,"claudeHooksToCanonical");s(Ow,"importClaudeHooksJson");s(ww,"importSettings");});async function Pw(t,e,r){let n=join(t,Im),o=join(t,Hh),a=(await G(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 _(l);if(u===null)continue;let f=r(u,l,join(p,"SKILL.md")),g=jr(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
|
|
80
|
+
`);continue}let h=await G(c);for(let S of h){let C=await _(S);if(C===null)continue;let R=relative(c,S),k=join(p,R);await O(dirname(k));let b=r(C,S,k);await I(k,R==="SKILL.md"?await On(k,g.value.frontmatter,g.value.body):b);let N=`${Hh}/${m}/${R}`;e.push({fromTool:"claude-code",fromPath:S,toPath:N,feature:"skills"});}}}var xw=d(()=>{A();U();ft();$o();s(Pw,"importClaudeSkills");});async function Tw(t,e={}){let r=e.scope??"project",n=[],o=await W("claude-code",t,r);return n.push(...await Y(ad,t,r,{normalize:o})),await Pw(t,n,o),await Ow(t,n),await ww(t,n),n}var Dw=d(()=>{gt();Ot();Aw();xw();By();s(Tw,"importFromClaudeCode");});var Nw,Fw,vw,Mw=d(()=>{U();ft();mr();$o();Nw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Lm}/${t}`,content:await z(n,{...o,root:false},i)}},"claudeRuleMapper"),Fw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n)),a=cr(o.allowedTools),l=a.length>0?a:cr(o["allowed-tools"]);return {destPath:n,toPath:`${Nu}/${t}`,content:await St(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"),vw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Fu}/${t}`,content:await Yt(n,o,i)}},"claudeAgentMapper");});function $w(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:$E}))}var Gw=d(()=>{Ct();$o();s($w,"lintRules");});var Hz,jw,zz,Vz,ad,By=d(()=>{_w();$o();oe();Sw();Ew();Dw();Mw();Gw();Et();Hz={name:"claude-code",primaryRootInstructionPath:Ms,generateRules:mw,generateCommands:pw,generateAgents:uw,generateSkills:fw,generateMcp:dw,generatePermissions:gw,generateHooks:hw,generateIgnore:yw,importFrom:Tw},jw={rootInstructionPath:Ms,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(t,e){return `.claude/rules/${t}.md`},commandPath(t,e){return `.claude/commands/${t}.md`},agentPath(t,e){return `.claude/agents/${t}.md`}}},zz={rootInstructionPath:Ms,skillDir:".claude/skills",renderPrimaryRootInstruction:Rw,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",Em,Mo,".claudeignore"]},rewriteGeneratedPath(t){return t===Il?Em:t},mirrorGlobalPath(t,e){return dt(t,".claude/skills",e)},paths:jw.paths},Vz={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},ad={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:Hz,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:$w,project:jw,globalSupport:{capabilities:Vz,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:zz,scopeExtras:kw},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Ms,GE],global:[Ms]},canonicalDir:Lm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[_m],global:[_m]},canonicalDir:Lm,extensions:[".md"],map:Nw}],commands:{feature:"commands",mode:"directory",source:{project:[Rm],global:[Rm]},canonicalDir:Nu,extensions:[".md"],map:Fw},agents:{feature:"agents",mode:"directory",source:{project:[Sm],global:[Sm]},canonicalDir:Fu,extensions:[".md"],map:vw},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Il],global:[Em]},canonicalDir:".agentsmesh",canonicalFilename:Om},ignore:{feature:"ignore",mode:"flatFile",source:{project:[km],global:[km]},canonicalDir:".agentsmesh",canonicalFilename:jE}},buildImportPaths:Vh,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};});function Yz(t){let e=basename(t,".md");return e==="_root"?"root":e}function Uw(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:Gs,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=Yz(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()||"";e.push({path:`${Go}/${o}.md`,content:a});}return e}function Bw(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
77
81
|
|
|
78
|
-
${n}`:r||n;return {path:`${
|
|
79
|
-
`);return [{path:
|
|
80
|
-
`)}function
|
|
82
|
+
${n}`:r||n;return {path:`${Mn}/${e.name}.md`,content:o}})}function Kw(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
83
|
+
`);return [{path:Wi,content:e}]}function Ww(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:jo,content:e}]}function Hw(t){return t.agents.map(e=>({path:`${te}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function Xz(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function Wy(t){return t.replace(/[\r\n]+/g," ")}function Zz(t,e,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${Wy(t)}`,`# agentsmesh-matcher: ${Wy(r)}`,`# agentsmesh-command: ${Wy(e)}`,"set -eu",e,""].join(`
|
|
84
|
+
`)}function zw(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.hooks)){if(!Array.isArray(n))continue;let o=0;for(let i of n)Oo(i)&&(e.push({path:`${Hi}/${Xz(r)}-${o}.sh`,content:Zz(r,i.command,i.matcher)}),o++);}return e}function Vw(t){let e=[];for(let r of t.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()||"");e.push({path:`${te}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${te}/${r.name}/${a}`,content:i.content});}}return e}var Jw=d(()=>{Br();U();ut();gr();s(Yz,"ruleSlug");s(Uw,"generateRules");s(Bw,"generateCommands");s(Kw,"generateIgnore");s(Ww,"generateMcp");s(Hw,"generateAgents");s(Xz,"safeEventName");s(Wy,"safeShellLine");s(Zz,"buildHookScript");s(zw,"generateHooks");s(Vw,"generateSkills");});async function Xw(t,e,r){if(t==="workflows"||t.startsWith("workflows/"))return null;let n=t.replace(/\\/g,"/");if(n==="_root.md")return null;let o=join(e,n),{frontmatter:i,body:a}=P(r(o)),l=xo(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:`${js}/${n}`,feature:"rules",content:await z(o,c,a)}}async function Zw(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=P(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(`
|
|
81
85
|
|
|
82
86
|
`);if(p>0){let u=i.slice(0,p).trim();u&&!u.includes(`
|
|
83
|
-
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${
|
|
84
|
-
`)),e.push({fromTool:"cline",fromPath:o,toPath:
|
|
87
|
+
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${vu}/${t}`,feature:"commands",content:await St(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var Hy=d(()=>{U();ft();mr();gr();s(Xw,"mapClineRuleFile");s(Zw,"mapClineWorkflowFile");});async function Qw(t,e,r){let n=join(t,js),o=join(t,Go),i=join(t,Go),a=false;try{a=(await stat(i)).isFile();}catch{}if(a){let p=await _(i);if(p!==null){await O(n);let u=join(n,"_root.md"),{frontmatter:f,body:g}=P(r(p,i,u)),S=f.root===true?f:{...f,root:true},C=await z(u,S,g);await I(u,C),e.push({fromTool:"cline",fromPath:i,toPath:`${js}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await _(c);if(m===null){let p=join(t,Gs),u=await _(p);if(u!==null){l=p,await O(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=P(r(u,p,f)),C=g.root===true?g:{...g,root:true},R=await z(f,C,h);await I(f,R),e.push({fromTool:"cline",fromPath:p,toPath:`${js}/_root.md`,feature:"rules"});}else {let h=(await G(o)).filter(S=>S.endsWith(".md")&&!S.includes("/workflows/")).sort()[0];if(h){let S=await _(h);if(S!==null){l=h,await O(n);let C=join(n,"_root.md"),{frontmatter:R,body:k}=P(r(S,h,C)),N=R.root===true?R:{...R,root:true},x=await z(C,N,k);await I(C,x),e.push({fromTool:"cline",fromPath:h,toPath:`${js}/_root.md`,feature:"rules"});}}}}else {l=c,await O(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=P(r(m,c,p)),h=u.root===true?u:{...u,root:true},S=await z(p,h,f);await I(p,S),e.push({fromTool:"cline",fromPath:c,toPath:`${js}/_root.md`,feature:"rules"});}return e.push(...await It({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:Xw(u,n,f),"mapEntry")})),a}var qw=d(()=>{A();U();ft();$e();Hy();gr();s(Qw,"importClineRules");});function qz(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.command=="string"?e.command:"";if(!r)return null;let n=typeof e.type=="string"?e.type:typeof e.transportType=="string"?e.transportType:"stdio",o=Array.isArray(e.args)?e.args.filter(c=>typeof c=="string"):[],i=e.env,a=i!==null&&typeof i=="object"&&!Array.isArray(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[1]=="string")):{},l=typeof e.description=="string"?e.description:void 0;return {...l!==void 0&&{description:l},type:n,command:r,args:o,env:a}}async function tA(t,e){let r=[jo,BE].map(c=>join(t,c)),n=null,o=null;for(let c of r){let m=await _(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=qz(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await O(join(t,".agentsmesh")),await I(join(t,Xh),JSON.stringify({mcpServers:c},null,2)),e.push({fromTool:$s,fromPath:i,toPath:Xh,feature:"mcp"}));}}var eA=d(()=>{A();gr();s(qz,"mapClineServerToCanonical");s(tA,"importClineMcp");});function rA(t){return tV.some(e=>e.test(t))}var tV,nA=d(()=>{tV=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(rA,"isReservedArtifactName");});async function rV(t){let e=await G(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),i=basename(o);if(rA(i))continue;let a=await _(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Zm(t,e,r){let n=await rV(e),o=join(r.projectRoot,r.destCanonicalSkillsDir,t);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}=P(l),p=await On(a,{...c,name:t},m);await I(a,p);}else await I(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${i.relativePath}`,feature:"skills"});}}async function sA(t,e,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,t);await O(o);let i=join(o,"SKILL.md"),a=n.normalize(r,e,i),{frontmatter:l,body:c}=P(a),m=await On(i,{...l,name:t},c);await I(i,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}async function Qm(t){let e=new Map;try{let n=(await G(t)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let i=dirname(o),a=basename(i);e.set(a,i);}}catch{}return e}async function ql(t,e,r=[]){for(let n of t){let o=join(e.projectRoot,n),i=await Qm(o);if(i.size===0)continue;let a=false;for(let[l,c]of i){let m=join(c,"SKILL.md"),p=await _(m);if(p===null)continue;a=true;let{frontmatter:u,body:f}=P(p),g={skillName:l,skillDir:c,skillMdPath:m,rawContent:p,frontmatter:u,rawBody:f,options:e},h=false;for(let S of r)if(await S.recognize(g)){h=true;break}h||await Zm(l,c,e);}if(a)return}}function tc(t){return {async recognize(e){let r=dl(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await wn(join(n.projectRoot,n.destCanonicalSkillsDir,e.skillName));let o=join(n.projectRoot,t.canonicalAgentsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(e.rawBody,e.skillMdPath,i);return await I(i,xs(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function iA(t){return {async recognize(e){let r=Ru(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await wn(join(n.projectRoot,n.destCanonicalSkillsDir,e.skillName));let o=join(n.projectRoot,t.canonicalCommandsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(e.rawBody,e.skillMdPath,i);return await I(i,Su(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var ec=d(()=>{A();U();ft();nA();ut();Lt();lm();s(rV,"readNativeSkill");s(Zm,"importDirectorySkill");s(sA,"importFlatSkill");s(Qm,"findDirectorySkills");s(ql,"importSkillsDirectory");s(tc,"projectedAgentRecognizer");s(iA,"commandSkillRecognizer");});async function aA(t,e,r,n=te){await ql([n],{projectRoot:t,destCanonicalSkillsDir:WE,targetName:"cline",normalize:r,results:e},[tc({canonicalAgentsDir:KE})]);}var lA=d(()=>{ec();gr();s(aA,"importClineSkills");});function Jy(t,e){return t.match(new RegExp(`^# agentsmesh-${e}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function cA(t,e){let n=(await G(t).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===t);for(let o of n){let i=await _(o);if(!i)continue;let a=Jy(i,"event"),l=Jy(i,"command");if(!a||!l)continue;let c=Jy(i,"matcher")??"*";e[a]||(e[a]=[]),e[a].push({matcher:c,command:l});}}async function pA(t,e){let r={};if(await cA(join(t,Hi),r),await cA(join(t,Ji),r),Object.keys(r).length===0)return;let n=join(t,Jh);await O(dirname(n)),await I(n,stringify(r)),e.push({fromTool:$s,fromPath:join(t,Ji),toPath:Jh,feature:"hooks"});}var uA=d(()=>{A();gr();s(Jy,"extractMeta");s(cA,"loadHooksFromDir");s(pA,"importClineHooks");});async function dA(t){let e=[],r=await W($s,t),n=await Qw(t,e,r),o=join(t,Wi),i=await _(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(t,".agentsmesh"));let m=join(t,Yh);await I(m,c.join(`
|
|
88
|
+
`)),e.push({fromTool:"cline",fromPath:o,toPath:Yh,feature:"ignore"});}}await tA(t,e);let a=join(t,vu);return n||e.push(...await It({srcDir:join(t,Mn),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>Zw(l,a,c),"mapEntry")})),await aA(t,e,r),await pA(t,e),e}var fA=d(()=>{gt();A();$e();Hy();qw();gr();eA();lA();uA();s(dA,"importFromCline");});function gA(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:$s}))}var hA=d(()=>{Ct();gr();s(gA,"lintRules");});function yA(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>D(e.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function _A(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".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 RA=d(()=>{wt();s(yA,"lintCommands");s(_A,"lintHooks");});var sV,iV,aV,lV,SA,IA=d(()=>{Jw();Ni();gr();fA();hA();RA();Et();ml();ut();sV={name:"cline",primaryRootInstructionPath:Gs,generateRules:Uw,generateCommands:Bw,generateAgents:Hw,generateSkills:Vw,generateMcp:Ww,generateHooks:zw,generateIgnore:Kw,importFrom:dA},iV={rootInstructionPath:Gs,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(t,e){return `${Go}/${t}.md`},commandPath(t,e){return `${Mn}/${t}.md`},agentPath(t,e){return sr(e,"cline")?`.cline/skills/${K(t)}/SKILL.md`:null}}},aV={skillDir:te,managedOutputs:{dirs:[zi,Vi,Ji,te,".agents/skills"],files:[jo,Wi]},rewriteGeneratedPath(t){return t===Gs?null:t.startsWith(`${Hi}/`)?`${Ji}/${t.slice(Hi.length+1)}`:t.startsWith(`${Mn}/`)?`${Vi}/${t.slice(Mn.length+1)}`:t.startsWith(`${Go}/`)?`${zi}/${t.slice(Go.length+1)}`:t},mirrorGlobalPath(t,e){return t.startsWith(`${te}/`)?`.agents/skills/${t.slice(te.length+1)}`:null},paths:{rulePath(t,e){return `${zi}/${t}.md`},commandPath(t,e){return `${Vi}/${t}.md`},agentPath(t,e){return sr(e,"cline")?`.cline/skills/${K(t)}/SKILL.md`:null}}},lV={rules:"native",additionalRules:"native",commands:Wr("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},SA={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:sV,capabilities:{rules:"native",additionalRules:"native",commands:Wr("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:gA,lint:{commands:yA,hooks:_A},project:iV,globalSupport:{capabilities:lV,detectionPaths:[zi,Vi,Ji,te,jo,Wi],layout:aV},buildImportPaths:Zh,detectionPaths:[".clinerules",".cline"],conversionDefaults:{agentsToSkills:true}};});var ke,CA,us,Ea,kA,lo,EA,cd,La,co,Oa,ds,LA,tp,OA,Yy,wA,Xy,AA,bA,Zy,Qy,qy,ye=d(()=>{ke="codex-cli",CA="codex.md",us="AGENTS.md",Ea=".codex/AGENTS.md",kA=".codex/AGENTS.override.md",lo=".agents/skills",EA=".codex/skills",cd=".codex/config.toml",La=".codex/instructions",co=".codex/rules",Oa=".codex/agents",ds=".agentsmesh/rules",LA=".agentsmesh/commands",tp=".agentsmesh/agents",OA=".agentsmesh/skills",Yy=".agentsmesh/mcp.json",wA="am-codex-rule:v1",Xy="# am-json: ",AA="# am-body-b64-begin",bA="# am-body-b64-end",Zy="# am64:",Qy="<!-- agentsmesh:codex-rule-index:start -->",qy="<!-- agentsmesh:codex-rule-index:end -->";});function t_(t){return basename(t,".md")}function ep(t){return `${La}/${t_(t.source)}.md`}function PA(t){let e={root:t.root,description:t.description||void 0,globs:t.globs.length>0?t.globs:void 0,targets:t.targets.length>0?t.targets:void 0,codex_emit:t.codexEmit||void 0,codex_instruction:t.codexInstructionVariant&&t.codexInstructionVariant!=="default"?t.codexInstructionVariant:void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),T(e,t.body.trim()||"")}function mV(t){let e=[];return t.root?e.push("Applies to the whole project."):t.globs.length>0?e.push(`Applies to ${t.globs.map(r=>`\`${r}\``).join(", ")}.`):e.push("General guidance with no file glob restriction."),t.codexInstructionVariant==="override"&&e.push("Override guidance when this rule conflicts with broader instructions."),t.codexEmit==="execution"&&e.push(`Enforced in \`${co}/${t_(t.source)}.rules\`.`),t.targets.length>0&&e.push(`Targeted to ${t.targets.map(r=>`\`${r}\``).join(", ")}.`),e.join(" ")}function xA(t,e){let r=t.trim(),n=e.filter(a=>!a.root);if(n.length===0)return r;let o=n.map(a=>`- [${a.description||t_(a.source)}](${ep(a)}): ${mV(a)}`),i=[Qy,"## Additional Rule Files",...o,qy].join(`
|
|
85
89
|
`);return r?`${r}
|
|
86
90
|
|
|
87
|
-
${i}`:i}function
|
|
88
|
-
`).trim()}var
|
|
91
|
+
${i}`:i}function TA(t){let e=Qy.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=qy.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`\\n?${e}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
92
|
+
`).trim()}var md=d(()=>{U();ye();s(t_,"ruleSlug");s(ep,"codexInstructionMirrorPath");s(PA,"serializeCodexInstructionMirror");s(mV,"summarizeRule");s(xA,"appendCodexRuleIndex");s(TA,"stripCodexRuleIndex");});function uV(t){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(t)}function dV(t){return t.split(`
|
|
89
93
|
`).map(e=>e.length>0?`# ${e}`:"#").join(`
|
|
90
|
-
`)}function
|
|
91
|
-
`:`${["# 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.","#",...
|
|
94
|
+
`)}function fV(t){let e=t.trim();return e?uV(e)?`${e}
|
|
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.","#",...dV(e).split(`
|
|
92
96
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
93
97
|
`)}
|
|
94
|
-
`:""}function
|
|
98
|
+
`:""}function e_(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:us,content:xA(e.body,t.rules)});for(let n of t.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:`${co}/${o}.rules`,content:fV(n.body)}),r.push({path:ep(n),content:PA(n)}));}return r}function r_(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root||n.codexEmit==="execution"?false:n.targets.length===0||n.targets.includes("codex-cli"));return at(e?.body.trim()??"",r)}var DA=d(()=>{Kt();ye();md();s(uV,"looksLikeCodexRulesDsl");s(dV,"toCodexRulesComments");s(fV,"toSafeCodexRulesContent");s(e_,"generateRules");s(r_,"renderCodexGlobalInstructions");});function n_(t){let e=[];for(let r of t.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()||"");e.push({path:`${lo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${lo}/${r.name}/${a}`,content:i.content});}}return e}function gV(t){return {path:`${lo}/${V(t.name)}/SKILL.md`,content:Mt(t)}}function o_(t){return t.commands.map(gV)}var NA=d(()=>{U();ye();Lt();s(n_,"generateSkills");s(gV,"commandToSkillOutput");s(o_,"generateCommands");});function s_(t){return t.agents.map(e=>({path:`${Oa}/${e.name}.toml`,content:hV(e)}))}function hV(t){let e=[];e.push(`name = ${JSON.stringify(t.name)}`),t.description&&e.push(`description = ${JSON.stringify(t.description)}`),t.model&&e.push(`model = ${JSON.stringify(t.model)}`),t.permissionMode==="read-only"||t.permissionMode==="deny"?e.push('sandbox_mode = "read-only"'):t.permissionMode==="allow"&&e.push('sandbox_mode = "workspace-write"');let r=t.body.trim()||"";if(r.includes("'''")){let n=r.replace(/\\/g,"\\\\").replace(/"/g,'\\"');e.push(`developer_instructions = """
|
|
95
99
|
${n}
|
|
96
100
|
"""`);}else e.push(`developer_instructions = '''
|
|
97
101
|
${r}
|
|
98
102
|
'''`);return e.join(`
|
|
99
103
|
`)+`
|
|
100
|
-
`}var
|
|
104
|
+
`}var FA=d(()=>{ye();s(s_,"generateAgents");s(hV,"serializeAgentToCodexToml");});function pd(t){return "command"in t}function vA(t){return "url"in t}var ud=d(()=>{s(pd,"isStdioMcpServer");s(vA,"isUrlMcpServer");});function i_(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).flatMap(([n,o])=>pd(o)?[[n,o]]:[]));if(Object.keys(e).length===0)return [];let r=yV(e);return [{path:cd,content:r}]}function yV(t){let e=[];for(let[r,n]of Object.entries(t)){let o=MA(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])=>`${MA(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}e.push(i.join(`
|
|
101
105
|
`));}return e.join(`
|
|
102
106
|
|
|
103
107
|
`)+`
|
|
104
|
-
`}function
|
|
105
|
-
`).find(c=>c.startsWith(
|
|
106
|
-
`)){let m=c.trimEnd();if(m===aA){l=true;continue}if(m===lA){l=false;continue}l&&m.startsWith(Ny)&&a.push(m.slice(Ny.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 wA=d(()=>{ge();s(OA,"tryParseEmbeddedCanonicalFromCodexRules");});async function bA(t,e,r){let n=[],o=join(t,lo);try{let i=await $(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(e,p),{frontmatter:f,body:g}=b(r(m,c,u));await O(e);let h=f.root===!0?f:{...f,root:!1},I=await z(u,h,g);await S(u,I),n.push({fromTool:Se,fromPath:c,toPath:`${us}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(e,p);await O(e);let f=OA(m);if(f){let g=await z(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await S(u,g);}else {let g=await z(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await S(u,g);}n.push({fromTool:Se,fromPath:c,toPath:`${us}/${p}`,feature:"rules"});}}catch{}return n}var PA=d(()=>{A();K();ft();ge();wA();s(bA,"importCodexNonRootRuleFiles");});async function xA(t,e,r,n,o){let i=join(t,eA),a=join(t,ps),l=join(t,rA),c=join(t,Ia),m=o==="global"?await _(l):null,p=o==="global"?await _(c):null,u=o==="project"?await _(a):null,f=o==="project"?await _(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(t,us),I=m??p??u??f;if(I!==null){await O(h);let k=join(h,"_root.md"),C=g===a||g===c||g===l?pA(I):I,R=await io({content:C,projectRoot:t,rulesDir:us,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...R.results);let P=r(g===a||g===c||g===l?n(R.rootContent,g,k):R.rootContent,g,k),{frontmatter:N,body:F}=b(P),B=N.root===true?N:{...N,root:true},U=await z(k,B,F);await S(k,U),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${us}/_root.md`,feature:"rules"});}await Bz(t,h,e,r),e.push(...await bA(t,h,r)),o!=="global"&&e.push(...await St({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:k,normalizeTo:C})=>{let R=relative(t,dirname(k)).replace(/\\/g,"/"),P=basename(k),N=P==="AGENTS.override.md";if(!R||R==="."||!N&&P!=="AGENTS.md")return null;let F=R.replace(/\//g,"-");if(!fu(R))return await Ln(join(h,`${F}.md`)),null;let B=join(h,`${F}.md`),{frontmatter:U,body:q}=b(C(B));return {destPath:B,toPath:`${us}/${F}.md`,feature:"rules",content:await z(B,{...U,root:false,globs:[`${R}/**`],...N?{codex_instruction:"override"}:{}},q)}},"mapEntry")}));}async function Bz(t,e,r,n){try{let i=(await $(join(t,Sa))).filter(l=>l.endsWith(".md")),a=join(t,Sa);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await _(l);if(!m)continue;let p=join(e,c),{frontmatter:u,body:f}=b(n(m,l,p));await O(e);let g=u.root===!0?u:{...u,root:!1},h=await z(p,g,f);await S(p,h),r.push({fromTool:Se,fromPath:l,toPath:`${us}/${c}`,feature:"rules"});}}catch{}}var DA=d(()=>{A();K();ft();zl();Me();rm();ge();PA();td();s(xA,"importCodexRules");s(Bz,"importInstructionMirrors");});async function NA(t,e){let r=e?.scope??"project",n=[],o=await H(Se,t,r),i=await H("windsurf",t,r);return await xA(t,n,o,i,r),await CA(t,n,o),await EA(t,n,o),await IA(t,n),n}var FA=d(()=>{gt();ge();SA();kA();LA();DA();s(NA,"importFromCodex");});function vA(t,e,r){let{rules:n}=t;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(e,n[0].source),target:Se,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var MA=d(()=>{ge();s(vA,"lintRules");});function $A(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&e.push(x(".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";e.push(x(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}var GA=d(()=>{wt();s($A,"lintMcp");});function jA(t){return Ym(t)}var UA=d(()=>{td();s(jA,"codexAdvisoryInstructionPath");});var Wz,Hz,zz,Vz,KA,WA=d(()=>{RA();ge();FA();MA();GA();Et();sl();UA();Lt();Wz={name:"codex-cli",primaryRootInstructionPath:ps,generateRules:$y,generateCommands:Uy,generateAgents:By,generateSkills:jy,generateMcp:Ky,importFrom:NA},Hz={rootInstructionPath:ps,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${lo}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return jA(e)},commandPath(t,e){return ol(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ca}/${t}.toml`}}},zz={rootInstructionPath:Ia,renderPrimaryRootInstruction:Gy,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${lo}/${e}.rules`]},skillDir:ao,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Ia,".codex/config.toml"]},rewriteGeneratedPath(t){return t===ps?Ia:t.startsWith(`${Sa}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${lo}/${t}.rules`:Ia},commandPath(t,e){return ol(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ca}/${t}.toml`}}},Vz={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},KA={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:Wz,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:vA,lint:{mcp:$A},project:Hz,globalSupport:{capabilities:Vz,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:zz},buildImportPaths:Fh,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"],excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function Yz(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function HA(t){return `${vn}/${t}.md`}function zA(t){let e={description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function VA(t,e){let r=basename(e,".md");return {name:((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||r).trim(),description:typeof t.description=="string"?t.description:"",allowedTools:Yz(t["x-agentsmesh-allowed-tools"])}}function JA(t,e){let r={description:t.description||void 0,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],T(r,e.trim()||"")}var nd=d(()=>{K();Mn();s(Yz,"toStringArray");s(HA,"continueCommandRulePath");s(zA,"serializeCommandRule");s(VA,"parseCommandRuleFrontmatter");s(JA,"serializeImportedCommand");});function YA(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:jo,content:T(n,r.body.trim()||"")});}for(let n of t.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),e.push({path:`${Zr}/${o}.md`,content:T(i,n.body.trim()||"")});}return e}function XA(t){return t.commands.map(e=>({path:`${vn}/${e.name}.md`,content:zA(e)}))}function ZA(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:wu,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function QA(t){return t.agents.map(e=>({path:`${je}/${W(e.name)}/SKILL.md`,content:Tt(e)}))}function qA(t){return it(t,je)}var tb=d(()=>{rt();ut();K();nd();Mn();s(YA,"generateRules");s(XA,"generateCommands");s(ZA,"generateMcp");s(QA,"generateAgents");s(qA,"generateSkills");});function qz(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).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:bs(l.args),env:wn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function tV(t,e){let r=(await $(join(t,vh))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await _(i);a&&(Object.assign(n,qz(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Wt(t,$h,n);for(let i of o)e.push({fromTool:yl,fromPath:i,toPath:$h,feature:"mcp"});}}async function rb(t){let e=[],r=await H(yl,t);return e.push(...await Y(od,t,"project",{normalize:r})),await et(t,je,yl,e,r),await tV(t,e),e}var nb=d(()=>{gt();A();rt();Ot();Vr();cr();Mn();zy();s(qz,"readMcpServers");s(tV,"importMcp");s(rb,"importFromContinue");});function eV(t){return t==="general.md"||t==="_root.md"}var ob,sb,ib=d(()=>{K();ft();nd();Mn();s(eV,"isContinueRootRulePath");ob=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=eV(t),o=n?"_root.md":t,i=join(r,o),{frontmatter:a,body:l}=b(e(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:`${Au}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),sb=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:i,body:a}=b(r(o)),l=VA(i,t),c=l.name||e.replace(/\.md$/,"").replace(/^.*\//,""),m=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await It(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},b(JA(l,a)).body);return {destPath:u,toPath:`${bu}/${p}`,content:f}},"continueCommandMapper");});function ab(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:yl}))}var lb=d(()=>{Ct();Mn();s(ab,"lintRules");});function cb(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>x(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var mb=d(()=>{wt();s(cb,"lintCommands");});function sV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var pb,ub=d(()=>{A();Mn();s(sV,"computeStatus");pb=s(async(t,e,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&t.rules.length>0||i&&t.commands.length>0||a&&t.mcp!==null&&Object.keys(t.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&t.rules.length>0&&(c.rules=t.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&t.commands.length>0&&(c.prompts=t.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&t.mcp!==null){let u=Object.entries(t.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await _(join(e,Sm));return [{target:"continue",path:Sm,content:m,currentContent:p??void 0,status:sV(p,m)}]},"generateContinueGlobalConfig");});function aV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var db,fb=d(()=>{A();Mn();ub();s(aV,"computeStatus");db=s(async(t,e,r,n)=>{let o=await pb(t,e,r,n);if(r!=="global"||!n.has("rules"))return o;let i=t.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await _(join(e,_l));return [...o,{target:"continue",path:_l,content:a,currentContent:l??void 0,status:aV(l,a)}]},"generateContinueScopeExtras");});var lV,cV,mV,pV,od,zy=d(()=>{ut();tb();Mn();nb();ib();lb();mb();nd();Et();fb();lV={name:"continue",primaryRootInstructionPath:jo,generateRules:YA,generateCommands:XA,generateAgents:QA,generateSkills:qA,generateMcp:ZA,importFrom:rb},cV={rootInstructionPath:jo,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Zr}/${t}.md`},commandPath(t,e){return HA(t)},agentPath(t){return `${je}/${W(t)}/SKILL.md`}}},mV={rootInstructionPath:jo,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[_l]}],skillDir:je,managedOutputs:{dirs:[Zr,vn,je,".agents/skills"],files:[wu,_l,Sm]},mirrorGlobalPath(t,e){return t.startsWith(`${je}/`)?`.agents/skills/${t.slice(je.length+1)}`:null},paths:{rulePath(t,e){return `${Zr}/${t}.md`},commandPath(t,e){return `${vn}/${t}.md`},agentPath(t){return `${je}/${W(t)}/SKILL.md`}}},pV={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},od={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:lV,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:ab,lint:{commands:cb},project:cV,globalSupport:{capabilities:pV,detectionPaths:[Zr,vn,".continue/mcpServers",je],layout:mV,scopeExtras:db},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Zr],global:[Zr]},canonicalDir:Au,extensions:[".md"],map:ob},commands:{feature:"commands",mode:"directory",source:{project:[vn],global:[vn]},canonicalDir:bu,extensions:[".md"],map:sb}},buildImportPaths:Gh,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],conversionDefaults:{agentsToSkills:true}};});var ds,ka,gb,Ea,ii,co,mo,La,Oa,sd,id,hb,Jy,yb,ai,Zl,fs,Ql,wa,Yy,Xy,Dr=d(()=>{ds="copilot",ka=".github/copilot-instructions.md",gb=".github/copilot",Ea=".github/instructions",ii=".github/prompts",co=".github/hooks",mo=".github/skills",La=".github/agents",Oa=".agentsmesh/rules",sd=".agentsmesh/commands",id=".agentsmesh/agents",hb=".agentsmesh/skills",Jy=".agentsmesh/hooks.yaml",yb=".github/copilot-hooks",ai=".copilot/copilot-instructions.md",Zl=".copilot/agents",fs=".copilot/skills",Ql=".copilot/prompts",wa=".copilot/AGENTS.md",Yy=".claude/skills",Xy=".agents/skills";});function _b(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function ad(t){return `${ii}/${t}.prompt.md`}function Rb(t){let e={agent:"agent",description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function Ib(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=_b(t["x-agentsmesh-allowed-tools"]),i=o.length>0?o:_b(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var ld=d(()=>{K();Dr();s(_b,"toStringArray");s(ad,"commandPromptPath");s(Rb,"serializeCommandPrompt");s(Ib,"parseCommandPromptFrontmatter");});function cd(t){return Lo(t)}var Zy=d(()=>{Ur();s(cd,"hasHookCommand");});function fV(t){let e=basename(t,".md");return e==="_root"?"root":e}function gV(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function Sb(t){let e=[],r=t.rules.find(n=>n.root);r?.body.trim()&&e.push(r.body.trim());for(let n of t.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?e.push(`${i}
|
|
108
|
+
`}function MA(t){return !/^[A-Za-z0-9_-]+$/.test(t)}var $A=d(()=>{ud();ye();s(i_,"generateMcp");s(yV,"serializeMcpToToml");s(MA,"needsTomlQuoting");});var GA=d(()=>{DA();NA();FA();$A();});var jA=d(()=>{GA();});function SV(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,r=typeof e.command=="string"?e.command:"";if(!r)return null;let n=Array.isArray(e.args)?e.args.filter(a=>typeof a=="string"):[],o=e.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 UA(t,e){let r=join(t,cd),n=await _(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=SV(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Ht(t,Yy,a),e.push({fromTool:ke,fromPath:r,toPath:Yy,feature:"mcp"}));}var BA=d(()=>{A();Jr();ye();s(SV,"mapTomlServerToCanonical");s(UA,"importMcp");});async function KA(t,e,r){await ql([lo,EA],{projectRoot:t,destCanonicalSkillsDir:OA,targetName:ke,normalize:r,results:e},[iA({canonicalCommandsDir:LA}),tc({canonicalAgentsDir:tp})]);}var WA=d(()=>{ec();ye();s(KA,"importSkills");});async function HA(t,e,r){let n=join(t,Oa),o=join(t,tp);try{let a=(await G(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await _(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:"",S=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",C=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(x=>typeof x=="string"):[];await O(o);let R=join(o,`${p}.md`),k=r(f,l,R),N=xs({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:S,maxTurns:0,mcpServers:C,hooks:{},skills:[],memory:""},k);await I(R,N),e.push({fromTool:ke,fromPath:l,toPath:`${tp}/${p}.md`,feature:"agents"});}}catch{}}var zA=d(()=>{A();ut();ye();s(HA,"importCodexAgentsFromToml");});function VA(t){if(!t.includes(wA))return null;let e=t.split(`
|
|
109
|
+
`).find(c=>c.startsWith(Xy));if(!e)return null;let r;try{r=JSON.parse(e.slice(Xy.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 t.split(`
|
|
110
|
+
`)){let m=c.trimEnd();if(m===AA){l=true;continue}if(m===bA){l=false;continue}l&&m.startsWith(Zy)&&a.push(m.slice(Zy.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 JA=d(()=>{ye();s(VA,"tryParseEmbeddedCanonicalFromCodexRules");});async function XA(t,e,r){let n=[],o=join(t,co);try{let i=await G(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(e,p),{frontmatter:f,body:g}=P(r(m,c,u));await O(e);let h=f.root===!0?f:{...f,root:!1},S=await z(u,h,g);await I(u,S),n.push({fromTool:ke,fromPath:c,toPath:`${ds}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(e,p);await O(e);let f=VA(m);if(f){let g=await z(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await I(u,g);}else {let g=await z(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await I(u,g);}n.push({fromTool:ke,fromPath:c,toPath:`${ds}/${p}`,feature:"rules"});}}catch{}return n}var ZA=d(()=>{A();U();ft();ye();JA();s(XA,"importCodexNonRootRuleFiles");});async function qA(t,e,r,n,o){let i=join(t,CA),a=join(t,us),l=join(t,kA),c=join(t,Ea),m=o==="global"?await _(l):null,p=o==="global"?await _(c):null,u=o==="project"?await _(a):null,f=o==="project"?await _(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(t,ds),S=m??p??u??f;if(S!==null){await O(h);let C=join(h,"_root.md"),R=g===a||g===c||g===l?TA(S):S,k=await ao({content:R,projectRoot:t,rulesDir:ds,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...k.results);let b=r(g===a||g===c||g===l?n(k.rootContent,g,C):k.rootContent,g,C),{frontmatter:N,body:x}=P(b),B=N.root===true?N:{...N,root:true},H=await z(C,B,x);await I(C,H),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${ds}/_root.md`,feature:"rules"});}await OV(t,h,e,r),e.push(...await XA(t,h,r)),o!=="global"&&e.push(...await It({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:C,normalizeTo:R})=>{let k=relative(t,dirname(C)).replace(/\\/g,"/"),b=basename(C),N=b==="AGENTS.override.md";if(!k||k==="."||!N&&b!=="AGENTS.md")return null;let x=k.replace(/\//g,"-");if(!Eu(k))return await wn(join(h,`${x}.md`)),null;let B=join(h,`${x}.md`),{frontmatter:H,body:tt}=P(R(B));return {destPath:B,toPath:`${ds}/${x}.md`,feature:"rules",content:await z(B,{...H,root:false,globs:[`${k}/**`],...N?{codex_instruction:"override"}:{}},tt)}},"mapEntry")}));}async function OV(t,e,r,n){try{let i=(await G(join(t,La))).filter(l=>l.endsWith(".md")),a=join(t,La);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await _(l);if(!m)continue;let p=join(e,c),{frontmatter:u,body:f}=P(n(m,l,p));await O(e);let g=u.root===!0?u:{...u,root:!1},h=await z(p,g,f);await I(p,h),r.push({fromTool:ke,fromPath:l,toPath:`${ds}/${c}`,feature:"rules"});}}catch{}}var tb=d(()=>{A();U();ft();Zl();$e();lm();ye();ZA();md();s(qA,"importCodexRules");s(OV,"importInstructionMirrors");});async function eb(t,e){let r=e?.scope??"project",n=[],o=await W(ke,t,r),i=await W("windsurf",t,r);return await qA(t,n,o,i,r),await KA(t,n,o),await HA(t,n,o),await UA(t,n),n}var rb=d(()=>{gt();ye();BA();WA();zA();tb();s(eb,"importFromCodex");});function nb(t,e,r){let{rules:n}=t;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(e,n[0].source),target:ke,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var ob=d(()=>{ye();s(nb,"lintRules");});function sb(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&e.push(D(".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";e.push(D(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}var ib=d(()=>{wt();s(sb,"lintMcp");});function ab(t){return ep(t)}var lb=d(()=>{md();s(ab,"codexAdvisoryInstructionPath");});var AV,bV,PV,xV,mb,pb=d(()=>{jA();ye();rb();ob();ib();Et();ml();lb();Lt();AV={name:"codex-cli",primaryRootInstructionPath:us,generateRules:e_,generateCommands:o_,generateAgents:s_,generateSkills:n_,generateMcp:i_,importFrom:eb},bV={rootInstructionPath:us,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${co}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return ab(e)},commandPath(t,e){return cl(e,"codex-cli")?`${lo}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Oa}/${t}.toml`}}},PV={rootInstructionPath:Ea,renderPrimaryRootInstruction:r_,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${co}/${e}.rules`]},skillDir:lo,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Ea,".codex/config.toml"]},rewriteGeneratedPath(t){return t===us?Ea:t.startsWith(`${La}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${co}/${t}.rules`:Ea},commandPath(t,e){return cl(e,"codex-cli")?`${lo}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Oa}/${t}.toml`}}},xV={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},mb={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:AV,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:nb,lint:{mcp:sb},project:bV,globalSupport:{capabilities:xV,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:PV},buildImportPaths:Qh,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"],excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function DV(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function ub(t){return `${$n}/${t}.md`}function db(t){let e={description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function fb(t,e){let r=basename(e,".md");return {name:((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||r).trim(),description:typeof t.description=="string"?t.description:"",allowedTools:DV(t["x-agentsmesh-allowed-tools"])}}function gb(t,e){let r={description:t.description||void 0,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],T(r,e.trim()||"")}var dd=d(()=>{U();Gn();s(DV,"toStringArray");s(ub,"continueCommandRulePath");s(db,"serializeCommandRule");s(fb,"parseCommandRuleFrontmatter");s(gb,"serializeImportedCommand");});function hb(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:Uo,content:T(n,r.body.trim()||"")});}for(let n of t.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),e.push({path:`${Qr}/${o}.md`,content:T(i,n.body.trim()||"")});}return e}function yb(t){return t.commands.map(e=>({path:`${$n}/${e.name}.md`,content:db(e)}))}function _b(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Mu,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function Rb(t){return t.agents.map(e=>({path:`${Ue}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function Sb(t){return st(t,Ue)}var Ib=d(()=>{rt();ut();U();dd();Gn();s(hb,"generateRules");s(yb,"generateCommands");s(_b,"generateMcp");s(Rb,"generateAgents");s(Sb,"generateSkills");});function MV(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).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:Ds(l.args),env:bn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function $V(t,e){let r=(await G(join(t,qh))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await _(i);a&&(Object.assign(n,MV(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Ht(t,ey,n);for(let i of o)e.push({fromTool:Cl,fromPath:i,toPath:ey,feature:"mcp"});}}async function kb(t){let e=[],r=await W(Cl,t);return e.push(...await Y(fd,t,"project",{normalize:r})),await et(t,Ue,Cl,e,r),await $V(t,e),e}var Eb=d(()=>{gt();A();rt();Ot();Jr();mr();Gn();c_();s(MV,"readMcpServers");s($V,"importMcp");s(kb,"importFromContinue");});function GV(t){return t==="general.md"||t==="_root.md"}var Lb,Ob,wb=d(()=>{U();ft();dd();Gn();s(GV,"isContinueRootRulePath");Lb=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=GV(t),o=n?"_root.md":t,i=join(r,o),{frontmatter:a,body:l}=P(e(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:`${$u}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),Ob=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:i,body:a}=P(r(o)),l=fb(i,t),c=l.name||e.replace(/\.md$/,"").replace(/^.*\//,""),m=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await St(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},P(gb(l,a)).body);return {destPath:u,toPath:`${Gu}/${p}`,content:f}},"continueCommandMapper");});function Ab(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Cl}))}var bb=d(()=>{Ct();Gn();s(Ab,"lintRules");});function Pb(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>D(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var xb=d(()=>{wt();s(Pb,"lintCommands");});function KV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Tb,Db=d(()=>{A();Gn();s(KV,"computeStatus");Tb=s(async(t,e,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&t.rules.length>0||i&&t.commands.length>0||a&&t.mcp!==null&&Object.keys(t.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&t.rules.length>0&&(c.rules=t.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&t.commands.length>0&&(c.prompts=t.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&t.mcp!==null){let u=Object.entries(t.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await _(join(e,wm));return [{target:"continue",path:wm,content:m,currentContent:p??void 0,status:KV(p,m)}]},"generateContinueGlobalConfig");});function HV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Nb,Fb=d(()=>{A();Gn();Db();s(HV,"computeStatus");Nb=s(async(t,e,r,n)=>{let o=await Tb(t,e,r,n);if(r!=="global"||!n.has("rules"))return o;let i=t.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await _(join(e,kl));return [...o,{target:"continue",path:kl,content:a,currentContent:l??void 0,status:HV(l,a)}]},"generateContinueScopeExtras");});var zV,VV,JV,YV,fd,c_=d(()=>{ut();Ib();Gn();Eb();wb();bb();xb();dd();Et();Fb();zV={name:"continue",primaryRootInstructionPath:Uo,generateRules:hb,generateCommands:yb,generateAgents:Rb,generateSkills:Sb,generateMcp:_b,importFrom:kb},VV={rootInstructionPath:Uo,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Qr}/${t}.md`},commandPath(t,e){return ub(t)},agentPath(t){return `${Ue}/${K(t)}/SKILL.md`}}},JV={rootInstructionPath:Uo,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[kl]}],skillDir:Ue,managedOutputs:{dirs:[Qr,$n,Ue,".agents/skills"],files:[Mu,kl,wm]},mirrorGlobalPath(t,e){return t.startsWith(`${Ue}/`)?`.agents/skills/${t.slice(Ue.length+1)}`:null},paths:{rulePath(t,e){return `${Qr}/${t}.md`},commandPath(t,e){return `${$n}/${t}.md`},agentPath(t){return `${Ue}/${K(t)}/SKILL.md`}}},YV={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},fd={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:zV,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:Ab,lint:{commands:Pb},project:VV,globalSupport:{capabilities:YV,detectionPaths:[Qr,$n,".continue/mcpServers",Ue],layout:JV,scopeExtras:Nb},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Qr],global:[Qr]},canonicalDir:$u,extensions:[".md"],map:Lb},commands:{feature:"commands",mode:"directory",source:{project:[$n],global:[$n]},canonicalDir:Gu,extensions:[".md"],map:Ob}},buildImportPaths:ry,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],conversionDefaults:{agentsToSkills:true}};});var fs,wa,vb,Aa,mi,mo,po,ba,Pa,gd,hd,Mb,p_,$b,pi,rc,gs,nc,xa,u_,d_,Nr=d(()=>{fs="copilot",wa=".github/copilot-instructions.md",vb=".github/copilot",Aa=".github/instructions",mi=".github/prompts",mo=".github/hooks",po=".github/skills",ba=".github/agents",Pa=".agentsmesh/rules",gd=".agentsmesh/commands",hd=".agentsmesh/agents",Mb=".agentsmesh/skills",p_=".agentsmesh/hooks.yaml",$b=".github/copilot-hooks",pi=".copilot/copilot-instructions.md",rc=".copilot/agents",gs=".copilot/skills",nc=".copilot/prompts",xa=".copilot/AGENTS.md",u_=".claude/skills",d_=".agents/skills";});function Gb(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function yd(t){return `${mi}/${t}.prompt.md`}function jb(t){let e={agent:"agent",description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function Ub(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=Gb(t["x-agentsmesh-allowed-tools"]),i=o.length>0?o:Gb(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var _d=d(()=>{U();Nr();s(Gb,"toStringArray");s(yd,"commandPromptPath");s(jb,"serializeCommandPrompt");s(Ub,"parseCommandPromptFrontmatter");});function Rd(t){return Oo(t)}var f_=d(()=>{Br();s(Rd,"hasHookCommand");});function QV(t){let e=basename(t,".md");return e==="_root"?"root":e}function qV(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function Bb(t){let e=[],r=t.rules.find(n=>n.root);r?.body.trim()&&e.push(r.body.trim());for(let n of t.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?e.push(`${i}
|
|
107
111
|
|
|
108
112
|
${o}`):e.push(o);}return e.join(`
|
|
109
113
|
|
|
110
|
-
`)}function
|
|
111
|
-
`)}async function
|
|
114
|
+
`)}function Kb(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:wa,content:e.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot")||n.globs.length===0)continue;let o=QV(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:`${Aa}/${o}.instructions.md`,content:a});}return r}function Wb(t){return t.commands.map(e=>({path:yd(e.name),content:jb(e)}))}function Hb(t){let e=[];for(let r of t.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()||"");e.push({path:`${po}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${po}/${r.name}/${a}`,content:i.content});}}return e}function zb(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,"mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,skills:e.skills.length>0?e.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${ba}/${e.name}.agent.md`,content:n}})}function Vb(t){if(!t.hooks)return [];let e=Object.fromEntries(Object.entries(t.hooks).flatMap(([r,n])=>{let o=qV(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&Rd(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(e).length===0?[]:[{path:`${mo}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:e},null,2)}]}var Jb=d(()=>{U();Nr();_d();f_();s(QV,"ruleSlug");s(qV,"mapHookEvent");s(Bb,"renderCopilotGlobalInstructions");s(Kb,"generateRules");s(Wb,"generateCommands");s(Hb,"generateSkills");s(zb,"generateAgents");s(Vb,"generateHooks");});function e1(t){switch(t){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function r1(t){return typeof t!="string"?"*":t.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function Zb(t){let e=t.match(/^# agentsmesh-command:\s*(.+)$/m);return e?.[1]?e[1].trim():t.replace(/^#!.*\n/,"").replace(/^#.*\n/gm,"").replace(/^HOOK_DIR=.*\n/gm,"").replace(/^set -e[u]?\n?/m,"").trim()}async function Qb(t,e){let r=join(t,mo),o=(await G(r).catch(()=>[])).filter(p=>p.endsWith(".json")),i={};for(let p of o){let u=await _(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 S=e1(g);if(!(!S||!Array.isArray(h)))for(let C of h){if(!C||typeof C!="object")continue;let R=C,k=typeof R.bash=="string"?R.bash:"";if(!k)continue;let b=join(r,k.replace(/^\.\//,"")),N=await _(b);if(!N)continue;let x=Zb(N);x&&(i[S]||(i[S]=[]),i[S].push({matcher:r1(R.comment),command:x,type:"command"}));}}}let a=join(t,$b),c=(await G(a).catch(()=>[])).filter(p=>dirname(p)===a&&/^[^-]+-\d+\.sh$/i.test(basename(p)));for(let p of c){let u=await _(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:Zb(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(t,p_);await O(dirname(m)),await I(m,stringify(i)),e.push({fromTool:fs,fromPath:join(t,mo),toPath:p_,feature:"hooks"});}var qb=d(()=>{A();Nr();s(e1,"mapCopilotHookEvent");s(r1,"extractMatcher");s(Zb,"extractWrapperCommand");s(Qb,"importHooks");});async function tP(t,e,r,n=po){let o=join(t,n),i=await Qm(o),a={projectRoot:t,destCanonicalSkillsDir:Mb,targetName:fs,normalize:r,results:e};for(let[l,c]of i)await Zm(l,c,a);}var eP=d(()=>{ec();Nr();s(tP,"importSkills");});async function rP(t,e={}){let r=e.scope??"project",n=[],o=await W(fs,t,r);return n.push(...await Y(Sd,t,r,{normalize:o})),await tP(t,n,o,r==="global"?gs:po),r==="project"&&await Qb(t,n),n}var nP=d(()=>{gt();Ot();Nr();qb();eP();g_();s(rP,"importFromCopilot");});function oP(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}var sP,iP,aP,lP,cP=d(()=>{U();ft();mr();_d();Nr();s(oP,"pruneUndefined");sP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=t.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:i,body:a}=P(e(o)),l=xo(i.globs),c=oP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Pa}/${n}`,content:await z(o,c,a)}},"copilotLegacyRuleMapper"),iP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=t.endsWith(".instructions.md")?t.replace(/\.instructions\.md$/i,".md"):t,o=join(r,n),{frontmatter:i,body:a}=P(e(o)),l=xo(i.applyTo!==void 0?i.applyTo:i.globs),c=oP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Pa}/${n}`,content:await z(o,c,a)}},"copilotNewRuleMapper"),aP=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=e.replace(/\.prompt\.md$/i,".md"),i=join(n,o),{frontmatter:a,body:l}=P(r(i)),c=Ub(a,t),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:`${gd}/${u}`,content:await St(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"),lP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(!t.endsWith(".agent.md"))return null;let n=t.replace(/\.agent\.md$/i,".md"),o=basename(n,".md"),i=join(r,n),{frontmatter:a,body:l}=P(e(i));return {destPath:i,toPath:`${hd}/${n}`,content:await Yt(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function mP(t,e,r,n){let i=J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:fs})),a=t.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:fs,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var pP=d(()=>{Ct();Nr();s(mP,"lintRules");});function uP(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>D(e.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function dP(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","Notification","UserPromptSubmit"],r=new Set(e),n=Object.keys(t.hooks).filter(i=>!r.has(i)).map(i=>Fs(i,"copilot",e,{unsupportedBy:"Copilot hooks"}));return Object.values(t.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(D(".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 fP=d(()=>{wt();s(uP,"lintCommands");s(dP,"lintHooks");});function a1(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function l1(t,e){let r=relative(t,e).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function c1(t,e){let r=t.match(hP);if(!r?.groups)return t;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${e}"${o}`}async function m1(t,e){let n=e.match(hP)?.groups?.path;if(!n)return null;let o=join(t,n),i=await _(o);if(i===null)return null;let a=l1(t,o);return a?{assetPath:`${mo}/scripts/${a}`,content:i,rewrittenCommand:c1(e,a)}:null}function p1(t,e){return `${mo}/scripts/${a1(t)}-${e}.sh`}function gP(t){return t.replace(/[\r\n]+/g," ")}function u1(t,e){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${gP(e)}`,`# agentsmesh-command: ${gP(t)}`,"set -eu",t,""].join(`
|
|
115
|
+
`)}async function yP(t,e,r){if(!e.hooks)return r;let n=[],o=new Map;for(let[i,a]of Object.entries(e.hooks)){if(!Array.isArray(a))continue;let l=0;for(let c of a){if(!Rd(c))continue;let m=p1(i,l),p=c.command,u=await m1(t,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=u1(p,c.matcher).replace(`set -eu
|
|
112
116
|
`,`set -eu
|
|
113
117
|
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
114
|
-
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var
|
|
115
|
-
`);return [{path:
|
|
116
|
-
`)}var
|
|
118
|
+
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var hP,_P=d(()=>{A();Nr();f_();hP=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(a1,"safePhaseName");s(l1,"toRepoRelative");s(c1,"rewriteWrapperCommand");s(m1,"buildAssetOutput");s(p1,"wrapperPath");s(gP,"safeShellLine");s(u1,"buildWrapper");s(yP,"addHookScriptAssets");});function f1(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var RP,SP=d(()=>{A();Nr();s(f1,"computeStatus");RP=s(async(t,e,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=t.rules.find(l=>l.root);if(!o)return [];let i=o.body.trim(),a=await _(join(e,xa));return [{target:"copilot",path:xa,content:i,currentContent:a??void 0,status:f1(a,i)}]},"generateCopilotGlobalExtras");});var h1,y1,_1,R1,Sd,g_=d(()=>{Jb();Nr();nP();cP();pP();Et();_d();fP();_P();SP();h1={name:"copilot",primaryRootInstructionPath:wa,generateRules:Kb,generateCommands:Wb,generateAgents:zb,generateSkills:Hb,generateHooks:Vb,importFrom:rP},y1={rootInstructionPath:wa,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],extraRuleOutputPaths(t){if(t.root||t.globs.length===0)return [];let e=basename(t.source,".md");return [`${Aa}/${e}.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(t,e){return `${Aa}/${t}.instructions.md`},commandPath(t,e){return yd(t)},agentPath(t,e){return `${ba}/${t}.agent.md`}}},_1={rootInstructionPath:pi,renderPrimaryRootInstruction:Bb,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[xa]}],skillDir:gs,managedOutputs:{dirs:[rc,gs,nc,d_,u_],files:[pi,xa]},rewriteGeneratedPath(t){return t===wa?pi:t.startsWith(`${Aa}/`)?pi:t.startsWith(`${mi}/`)?t.replace(`${mi}/`,`${nc}/`):t.startsWith(`${ba}/`)?t.replace(`${ba}/`,`${rc}/`):t.startsWith(`${po}/`)?t.replace(`${po}/`,`${gs}/`):t.startsWith(`${mo}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${gs}/`)&&!e.includes("codex-cli")){let r=t.slice(gs.length+1);return [`.agents/skills/${r}`,`${u_}/${r}`]}return null},paths:{rulePath(t,e){return pi},commandPath(t,e){return `${nc}/${t}.prompt.md`},agentPath(t,e){return `${rc}/${t}.agent.md`}}},R1={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Sd={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:h1,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:mP,lint:{commands:uP,hooks:dP},postProcessHookOutputs:s(async(t,e,r)=>yP(t,e,[...r]),"postProcessHookOutputs"),project:y1,globalSupport:{capabilities:R1,detectionPaths:[pi,xa,rc,gs,nc,d_],layout:_1,scopeExtras:RP},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[wa],global:[pi]},canonicalDir:Pa,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[vb]},canonicalDir:Pa,extensions:[".instructions.md"],map:sP},{feature:"rules",mode:"directory",source:{project:[Aa]},canonicalDir:Pa,extensions:[".instructions.md",".md"],map:iP}],commands:{feature:"commands",mode:"directory",source:{project:[mi],global:[nc]},canonicalDir:gd,extensions:[".prompt.md"],map:aP},agents:{feature:"agents",mode:"directory",source:{project:[ba],global:[rc]},canonicalDir:hd,extensions:[".agent.md"],map:lP}},buildImportPaths:ny,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};});function Id(t){return {$schema:"https://charm.land/crush.json",...t}}var IP=d(()=>{s(Id,"buildCrushConfigJson");});function CP(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(hr)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:yr,content:o}]:[]}function kP(t){return st(t,ee)}function EP(t){return t.commands.map(e=>({path:`${ee}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function LP(t){return t.agents.map(e=>({path:`${ee}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function OP(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Id({mcp:t.mcp.mcpServers});return [{path:Be,content:JSON.stringify(e,null,2)}]}function wP(t){if(!t.hooks)return [];let e=S1(t);if(Object.keys(e).length===0)return [];let r=Id({hooks:e});return [{path:Be,content:JSON.stringify(r,null,2)}]}function AP(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];if(e.length===0&&r.length===0&&n.length===0)return [];let o={};e.length>0&&(o.allowed_tools=e),r.length>0&&(o.denied_tools=r);let i=Id({permissions:o});return [{path:Be,content:JSON.stringify(i,null,2)}]}function bP(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
119
|
+
`);return [{path:Bo,content:e}]}function S1(t){if(!t.hooks)return {};let e={};for(let[r,n]of Object.entries(t.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&&(e[r]=o);}return e}var PP=d(()=>{rt();Kt();ut();Lt();El();IP();s(CP,"generateRules");s(kP,"generateSkills");s(EP,"generateCommands");s(LP,"generateAgents");s(OP,"generateMcp");s(wP,"generateHooks");s(AP,"generatePermissions");s(bP,"generateIgnore");s(S1,"buildCrushHooksFromCanonical");});async function TP(t,e={}){let r=e.scope??"project",n=[],o=await W(hr,t,r);return n.push(...await Y(Cd,t,r,{normalize:o})),await et(t,r==="global"?Ke:ee,hr,n,o),await I1(t,n),n}async function I1(t,e){let r=join(t,Be),n=await _(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=C1(i.mcp);if(Object.keys(a).length>0){let c=Wu,m=join(t,c);await O(dirname(m)),await I(m,JSON.stringify({mcpServers:a},null,2)),e.push({fromTool:hr,fromPath:r,toPath:c,feature:"mcp"});}let l=k1(i.hooks);if(l!==null&&Object.keys(l).length>0){let c=".agentsmesh/hooks.yaml",m=join(t,c);await O(dirname(m));let p=E1(l);await I(m,p),e.push({fromTool:hr,fromPath:r,toPath:c,feature:"hooks"});}}function C1(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t)){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"){e[r]={type:typeof o.type=="string"?o.type:"stdio",command:o.command,args:Ds(o.args),env:bn(o.env),...i!==void 0?{description:i}:{}};continue}typeof o.url=="string"&&(e[r]={type:typeof o.type=="string"?o.type:"http",url:o.url,headers:bn(o.headers),env:bn(o.env),...i!==void 0?{description:i}:{}});}return e}function k1(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e={};for(let[r,n]of Object.entries(t)){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&&(e[r]=o);}return Object.keys(e).length>0?e:null}function E1(t){let e=[];for(let[r,n]of Object.entries(t)){e.push(`${r}:`);for(let o of n)e.push(` - matcher: ${JSON.stringify(o.matcher)}`),e.push(` command: ${JSON.stringify(o.command)}`),o.timeout!==void 0&&e.push(` timeout: ${o.timeout}`);}return e.join(`
|
|
120
|
+
`)}var DP=d(()=>{gt();rt();Ot();A();mr();y_();El();s(TP,"importFromCrush");s(I1,"importCrushConfigJson");s(C1,"parseCrushMcpServers");s(k1,"parseCrushHooks");s(E1,"serializeHooksYaml");});function NP(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:hr}))}var FP=d(()=>{Ct();El();s(NP,"lintRules");});function vP(t){return t.commands.length===0?[]:[D(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var MP=d(()=>{wt();s(vP,"lintCommands");});function __(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}function GP(t,e){let r=__(t),n=O1.parse(JSON.parse(e)),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 jP(t,e){let r=__(t),n=w1.parse(JSON.parse(e)),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 UP(t,e){let r=__(t),n=L1.parse(JSON.parse(e)),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 $P,L1,O1,w1,kd=d(()=>{$P=[".claude/settings.json",".gemini/settings.json"],L1=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(),O1=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(),w1=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(__,"parseJsonObject");s(GP,"mergeSettingsJson");s(jP,"mergeGeminiSettingsJson");s(UP,"mergeCrushConfigJson");});var A1,b1,P1,x1,T1,Cd,y_=d(()=>{Lt();ut();PP();oe();DP();FP();MP();Et();kd();El();A1={name:hr,primaryRootInstructionPath:yr,generateRules:CP,generateCommands:EP,generateAgents:LP,generateSkills:kP,generateMcp:OP,generateHooks:wP,generatePermissions:AP,generateIgnore:bP,importFrom:TP},b1={rootInstructionPath:yr,skillDir:ee,managedOutputs:{dirs:[ee],files:[yr,Be,Bo]},paths:{rulePath(t){return yr},commandPath(t){return `${ee}/${V(t)}/SKILL.md`},agentPath(t){return `${ee}/${K(t)}/SKILL.md`}}},P1={rootInstructionPath:Yi,skillDir:Ke,managedOutputs:{dirs:[Ke],files:[Yi,Uu]},rewriteGeneratedPath(t){return t===yr?Yi:t===Be?Uu:t===Bo?null:t.startsWith(`${ee}/`)?t.replace(`${ee}/`,`${Ke}/`):t},mirrorGlobalPath(t,e){return dt(t,Ke,e)},paths:{rulePath(t){return Yi},commandPath(t){return `${Ke}/${V(t)}/SKILL.md`},agentPath(t){return `${Ke}/${K(t)}/SKILL.md`}}},x1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},T1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},Cd={id:hr,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:A1,capabilities:x1,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:NP,lint:{commands:vP},supportsConversion:{commands:true,agents:true},project:b1,globalSupport:{capabilities:T1,detectionPaths:[Yi,Uu,Ke],layout:P1},mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Be?UP(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[yr],global:[Yi]},canonicalDir:Bu,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Bo]},canonicalDir:".agentsmesh",canonicalFilename:Ku}},buildImportPaths:oy,detectionPaths:[yr,Be,ee,Bo],sharedArtifacts:{".crush/skills/":"owner"}};});function R_(t){let e=[],r=t.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";e.push({path:Us,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=T(a,i);e.push({path:Ko,content:l});}let n=t.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()||"");e.push({path:`${_r}/${a}.mdc`,content:m});}let o=BP(t);return o.trim()&&e.push({path:tn,content:o}),e}function BP(t){let e=t.rules.find(o=>o.root),r=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("cursor"))),n=[];return e?.body.trim()?n.push(at(e.body,r)):r.length>0&&n.push(at("",r)),n.filter(Boolean).join(`
|
|
117
121
|
|
|
118
|
-
`)}var
|
|
119
|
-
`);return [{path:
|
|
122
|
+
`)}var KP=d(()=>{U();Kt();zt();s(R_,"generateRules");s(BP,"renderCursorGlobalUserRules");});function S_(t){return t.commands.map(e=>({path:`${Rr}/${e.name}.md`,content:e.body.trim()||""}))}var WP=d(()=>{zt();s(S_,"generateCommands");});function I_(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:We,content:e}]}var HP=d(()=>{zt();s(I_,"generateMcp");});function C_(t){let e=[];for(let r of t.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()||"");e.push({path:`${fe}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${fe}/${r.name}/${a}`,content:i.content});}}return e}var zP=d(()=>{U();zt();s(C_,"generateSkills");});function k_(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,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};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${Sr}/${e.name}.md`,content:n}})}var VP=d(()=>{U();zt();s(k_,"generateAgents");});function E_(t){return []}var JP=d(()=>{s(E_,"generatePermissions");});function N1(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Ln(i))continue;let a=Jt(i),l=Re(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&&(e[r]=o);}return e}function L_(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=N1(t.hooks);if(Object.keys(e).length===0)return [];let r=JSON.stringify({version:1,hooks:e},null,2);return [{path:jn,content:r}]}var YP=d(()=>{Br();zt();s(N1,"toCursorHooks");s(L_,"generateHooks");});function O_(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
123
|
+
`);return [{path:qr,content:e}]}var XP=d(()=>{zt();s(O_,"generateIgnore");});var ZP=d(()=>{KP();WP();HP();zP();VP();JP();YP();XP();});var QP=d(()=>{ZP();});async function Ld(t,e,r,n){let o=t.replace(/\.mdc$/i,".md"),i=join(e,o),l=P(r(i)).frontmatter.alwaysApply===true,c=l?join(e,"_root.md"):i,{frontmatter:m,body:p}=P(r(c));l&&n();let u={...m,root:l};if(delete u.alwaysApply,!l){let f=F1(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${Un}/${l?"_root.md":o}`,feature:"rules",content:await z(c,u,p)}}function F1(t){return t.alwaysApply!==false?null:(Array.isArray(t.globs)?t.globs:[]).length>0?"glob":(typeof t.description=="string"?t.description:"").trim().length>0?"model_decision":"manual"}async function qP(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=P(r(n)),a=cr(o.allowedTools),l=a.length>0?a:cr(o["allowed-tools"]);return {destPath:n,toPath:`${Bs}/${t}`,feature:"commands",content:await St(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 tx(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=P(r(n));return {destPath:n,toPath:`${Ks}/${t}`,feature:"agents",content:await Yt(n,o,i)}}var w_=d(()=>{U();ft();mr();zt();s(Ld,"mapCursorRuleFile");s(F1,"deriveCursorTrigger");s(qP,"mapCursorCommandFile");s(tx,"mapCursorAgentFile");});async function oc(t){let e=join(t.projectRoot,Un);await O(e);let r=join(e,"_root.md"),n=await ao({content:t.content,projectRoot:t.projectRoot,rulesDir:Un,sourcePath:t.sourcePath,fromTool:"cursor",normalize:t.normalize});t.results.push(...n.results);let o=t.normalize(n.rootContent,t.sourcePath,r);if(!o.trim()&&n.results.length>0)return true;let{frontmatter:i,body:a}=P(o),l=i.root===true?i:{...i,root:true},c=await z(r,l,a);return await I(r,c),t.results.push({fromTool:"cursor",fromPath:t.sourcePath,toPath:`${Un}/_root.md`,feature:"rules"}),true}var A_=d(()=>{A();U();Zl();ft();zt();s(oc,"importCursorRootFile");});async function rx(t,e,r){let n=join(t,Un),o=false,i=join(t,_r);if(e.push(...await It({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:s(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await _(a);if(m!==null){let{frontmatter:p}=P(m);if(p.alwaysApply===true)return null}}return Ld(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(t,Us),l=await _(a);l!==null&&(o=await oc({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(t,QE),l=await _(a);l!==null&&await oc({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r});}}var nx=d(()=>{A();U();$e();w_();A_();zt();s(rx,"importCursorRules");});function ox(t){let e={};for(let[r,n]of Object.entries(t)){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(!Ln({...m,type:p}))continue;let u=p==="prompt"?Re(m)||Jt(m):Jt(m)||Re(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(e[r]=o);}return e}async function Ad(t,e){let r=false,n=join(t,jn),o=await _(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=ox(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(t,Am);await O(dirname(g)),await I(g,f),e.push({fromTool:"cursor",fromPath:n,toPath:Am,feature:"hooks"}),r=!0;}}}catch{}let i=join(t,Hu),a=await _(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(t,iy);await O(dirname(h)),await I(h,g),e.push({fromTool:"cursor",fromPath:i,toPath:iy,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=ox(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(t,Am);await O(dirname(f)),await I(f,u),e.push({fromTool:"cursor",fromPath:i,toPath:Am,feature:"hooks"});}}}async function bd(t,e){let r=[{path:join(t,qr),label:qr},{path:join(t,sy),label:sy}],n=[],o=[];for(let a of r){let l=await _(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(t,ay);await O(dirname(i)),await I(i,n.join(`
|
|
120
124
|
`)+`
|
|
121
|
-
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:Wh,feature:"ignore"});}var d_=d(()=>{Ur();A();Ht();s(MP,"cursorHooksToCanonical");s(_d,"importSettings");s(Rd,"importIgnore");});async function Id(t,e,r,n=ue){let o=join(t,n),i=await zm(o),a={projectRoot:t,destCanonicalSkillsDir:xE,targetName:"cursor",normalize:r,results:e};for(let[p,u]of i)await Hm(p,u,a);let l=await $(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 _(p);if(!u)continue;let f=basename(p,".md");await $w(f,p,u,a);}}var f_=d(()=>{A();Xl();Ht();s(Id,"importSkills");});async function $P(t){if(await j(join(t,yr)))return true;let e=[join(t,qr),join(t,Il),join(t,Ke),join(t,$n),join(t,Qr),join(t,ue),join(t,Rr),join(t,_r)];for(let i of e){let a=await _(i);if(a!==null&&a.trim()!=="")return true}return !!((await $(join(t,ue))).some(i=>i.endsWith(".md"))||(await $(join(t,Rr))).some(i=>i.endsWith(".md"))||(await $(join(t,_r))).some(i=>i.endsWith(".md")))}async function GP(t,e,r){let n=join(t,Gn),o=false,i=join(t,yr),a=await St({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:tc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await _(l);if(p!==null){let{frontmatter:u}=b(p);if(u.alwaysApply===true)return null}}return gd(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function jP(t,e,r){let n=join(t,Il),o=await _(n);return o===null||o.trim()===""?false:ql({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function UP(t,e,r){let n=join(t,qr),o=await _(n);return o===null||o.trim()===""?false:ql({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function BP(t,e){let r=join(t,Ke),n=await _(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(t,Sl);await O(dirname(i)),await S(i,n),e.push({fromTool:tc,fromPath:r,toPath:Sl,feature:"mcp"});}async function KP(t,e,r){let n=join(t,Rr),o=join(t,Gs);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>DP(i,o,a),"mapEntry")}));}async function WP(t,e,r){let n=join(t,_r),o=join(t,$s);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>xP(i,o,a),"mapEntry")}));}var tc,HP=d(()=>{A();K();Me();Ht();p_();m_();tc="cursor";s($P,"hasGlobalCursorArtifacts");s(GP,"importGlobalCursorRulesFromDir");s(jP,"importGlobalUserRules");s(UP,"importGlobalDotCursorAgents");s(BP,"importGlobalMcp");s(KP,"importGlobalAgents");s(WP,"importGlobalCommands");});async function zP(t){if(!await $P(t))return [];let e=[],r=await H(tc,t,"global"),n=await GP(t,e,r);return n||(n=await jP(t,e,r)),n||await UP(t,e,r),await BP(t,e),await Id(t,e,r,ue),await KP(t,e,r),await WP(t,e,r),await _d(t,e),await Rd(t,e),e}var VP=d(()=>{gt();Ht();f_();d_();HP();s(zP,"importFromCursorGlobalExports");});async function r1(t,e){let r=join(t,Ke),n=await _(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 Wt(t,Sl,i),e.push({fromTool:"cursor",fromPath:r,toPath:Sl,feature:"mcp"});}async function JP(t,e={}){if(e.scope==="global")return zP(t);let r=[],n=await H("cursor",t);return await FP(t,r,n),r.push(...await Y(Sd,t,"project",{normalize:n})),await Id(t,r,n),await r1(t,r),await _d(t,r),await Rd(t,r),r}var YP=d(()=>{gt();A();Ot();Vr();vP();d_();f_();VP();Ht();g_();s(r1,"importMcp");s(JP,"importFromCursor");});var ZP,QP,qP=d(()=>{K();ft();cr();Ht();ZP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n)),a=lr(o.allowedTools),l=a.length>0?a:lr(o["allowed-tools"]);return {destPath:n,toPath:`${$s}/${t}`,content:await It(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"),QP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Gs}/${t}`,content:await Jt(n,o,i)}},"cursorAgentMapper");});function tT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:PE}))}var eT=d(()=>{Ct();Ht();s(tT,"lintRules");});function rT(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>x(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function nT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&e.push(x(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function oT(t){if(!t.permissions)return [];let e=t.permissions.ask?.length??0;return t.permissions.allow.length>0||t.permissions.deny.length>0||e>0?[x(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var sT=d(()=>{wt();s(rT,"lintCommands");s(nT,"lintMcp");s(oT,"lintPermissions");});var n1,o1,s1,i1,Sd,g_=d(()=>{TP();Ht();ne();YP();qP();eT();Et();sT();n1={name:"cursor",primaryRootInstructionPath:Bo,generateRules:r_,generateCommands:n_,generateAgents:i_,generateSkills:s_,generateMcp:o_,generatePermissions:a_,generateHooks:l_,generateIgnore:c_,importFrom:JP},o1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Ms,qr]}],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(t,e){return `.cursor/rules/${t}.mdc`},commandPath(t,e){return `.cursor/commands/${t}.md`},agentPath(t,e){return `.cursor/agents/${t}.md`}}},s1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Ms,qr]}],skillDir:ue,managedOutputs:{dirs:[yr,_r,Rr,ue],files:[Bo,qr,Ke,$n,Qr,Il]},rewriteGeneratedPath(t){return t===Ms?null:t===qr||t===Bo||t.startsWith(`${yr}/`)||t.startsWith(`${_r}/`)||t.startsWith(`${Rr}/`)||t.startsWith(`${ue}/`)||t===Ke||t===$n||t===Qr?t:t===Fu?null:t},mirrorGlobalPath(t,e){return dt(t,ue,e)},paths:{rulePath(t,e){return `${yr}/${t}.mdc`},commandPath(t,e){return `${_r}/${t}.md`},agentPath(t,e){return `${Rr}/${t}.md`}}},i1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Sd={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:n1,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:tT,lint:{commands:rT,mcp:nT,permissions:oT},project:o1,globalSupport:{capabilities:i1,detectionPaths:[Bo,qr,Ke,$n,Qr,ue,Rr,_r,Il],layout:s1},importer:{commands:{feature:"commands",mode:"directory",source:{project:[_r]},canonicalDir:$s,extensions:[".md"],map:ZP},agents:{feature:"agents",mode:"directory",source:{project:[Rr]},canonicalDir:Gs,extensions:[".md"],map:QP}},buildImportPaths:Hh,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function iT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(jn)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Ir,content:o}]:[]}function aT(t){return it(t,de)}function lT(t){return t.commands.map(e=>({path:`${de}/${V(e.name)}/SKILL.md`,content:Ft(e)}))}function cT(t){return t.agents.map(e=>({path:`${de}/${W(e.name)}/SKILL.md`,content:Tt(e)}))}function mT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Ko,content:e}]}var pT=d(()=>{rt();Kt();ut();Lt();Cl();s(iT,"generateRules");s(aT,"generateSkills");s(lT,"generateCommands");s(cT,"generateAgents");s(mT,"generateMcp");});async function uT(t,e={}){let r=e.scope??"project",n=[],o=await H(jn,t,r);return n.push(...await Y(Cd,t,r,{normalize:o})),await et(t,r==="global"?tn:de,jn,n,o),n}var dT=d(()=>{gt();rt();Ot();Cl();h_();s(uT,"importFromDeepagentsCli");});function fT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jn}))}var gT=d(()=>{Ct();Cl();s(fT,"lintRules");});function hT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","deepagents-cli","Deep Agents CLI hooks are global-only (~/.deepagents/hooks.json); project-level canonical hooks are not projected.")]:[]:[]}function yT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function _T(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var RT=d(()=>{wt();s(hT,"lintHooks");s(yT,"lintPermissions");s(_T,"lintIgnore");});var a1,l1,c1,m1,p1,Cd,h_=d(()=>{Lt();ut();pT();dT();gT();RT();Et();Cl();a1={name:jn,primaryRootInstructionPath:Ir,generateRules:iT,generateCommands:lT,generateAgents:cT,generateSkills:aT,generateMcp:mT,importFrom:uT},l1={rootInstructionPath:Ir,skillDir:de,managedOutputs:{dirs:[de],files:[Ir,Ko]},paths:{rulePath(t){return Ir},commandPath(t){return `${de}/${V(t)}/SKILL.md`},agentPath(t){return `${de}/${W(t)}/SKILL.md`}}},c1={rootInstructionPath:Wo,skillDir:tn,managedOutputs:{dirs:[tn],files:[Wo,zi]},rewriteGeneratedPath(t){return t===Ir?Wo:t===Ko?zi:t.startsWith(`${de}/`)?t.replace(`${de}/`,`${tn}/`):t},paths:{rulePath(t){return Wo},commandPath(t){return `${tn}/${V(t)}/SKILL.md`},agentPath(t){return `${tn}/${W(t)}/SKILL.md`}}},m1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},p1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Cd={id:jn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:a1,capabilities:m1,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:fT,lint:{hooks:hT,permissions:yT,ignore:_T},supportsConversion:{commands:true,agents:true},project:l1,globalSupport:{capabilities:p1,detectionPaths:[Wo,zi],layout:c1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ir],global:[Wo]},canonicalDir:NE,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ko],global:[zi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:zh,detectionPaths:[Ir,Ko]};});function IT(t){let e={name:t.name};return t.description&&(e.description=t.description.slice(0,500)),t.model?e.model=t.model:e.model="inherit",t.tools.length>0&&(e.tools=t.tools),T(e,t.body.trim()||"")}var ST=d(()=>{K();s(IT,"serializeDroid");});function CT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Sr)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Cr,content:o}]:[]}function kT(t){return it(t,we)}function ET(t){return t.commands.map(e=>({path:`${we}/${V(e.name)}/SKILL.md`,content:Ft(e)}))}function LT(t){return t.agents.map(e=>({path:`${Un}/${e.name}.md`,content:IT(e)}))}function OT(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Bn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var wT=d(()=>{rt();Kt();Lt();ST();Ji();s(CT,"generateRules");s(kT,"generateSkills");s(ET,"generateCommands");s(LT,"generateAgents");s(OT,"generateMcp");});async function bT(t,e,r){let n=await _(join(t,e));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 Wt(t,AT,l),r.push({fromTool:Sr,fromPath:e,toPath:AT,feature:"mcp"}));}var AT,PT=d(()=>{A();Vr();Ji();AT=".agentsmesh/mcp.json";s(bT,"importFactoryDroidMcp");});async function TT(t,e={}){let r=e.scope??"project",n=[],o=await H(Sr,t,r);return n.push(...await Y(kd,t,r,{normalize:o})),await et(t,r==="global"?Kn:we,Sr,n,o),await bT(t,r==="global"?js:Bn,n),n}var xT=d(()=>{gt();rt();Ot();PT();Ji();y_();s(TT,"importFromFactoryDroid");});function DT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sr}))}var NT=d(()=>{Ct();Ji();s(DT,"lintRules");});function FT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".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 vT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function MT(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var $T=d(()=>{wt();s(FT,"lintHooks");s(vT,"lintPermissions");s(MT,"lintIgnore");});var d1,f1,g1,GT,kd,y_=d(()=>{wT();Ji();xT();NT();$T();Et();Lt();d1={name:Sr,primaryRootInstructionPath:Cr,generateRules:CT,generateCommands:ET,generateAgents:LT,generateSkills:kT,generateMcp:OT,importFrom:TT},f1={rootInstructionPath:Cr,skillDir:we,managedOutputs:{dirs:[we,Un],files:[Cr,Bn]},paths:{rulePath(t){return Cr},commandPath(t){return `${we}/${V(t)}/SKILL.md`},agentPath(t){return `${Un}/${t}.md`}}},g1={rootInstructionPath:Ho,skillDir:Kn,managedOutputs:{dirs:[Kn,Vi],files:[Ho,js]},rewriteGeneratedPath(t){return t===Cr?Ho:t===Bn?js:t.startsWith(`${we}/`)?t.replace(`${we}/`,`${Kn}/`):t.startsWith(`${Un}/`)?t.replace(`${Un}/`,`${Vi}/`):t},paths:{rulePath(t){return Ho},commandPath(t){return `${Kn}/${V(t)}/SKILL.md`},agentPath(t){return `${Vi}/${t}.md`}}},GT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},kd={id:Sr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:d1,capabilities:GT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:DT,lint:{hooks:FT,permissions:vT,ignore:MT},supportsConversion:{commands:true},project:f1,globalSupport:{capabilities:GT,detectionPaths:[Ho,js,Vi],layout:g1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Cr],global:[Ho]},canonicalDir:vE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:Vh,detectionPaths:[Cr,Bn,Un]};});var li,Nr,po,jT,UT,Xe,Ed,Aa,Ld,Qm,ci,BT,KT,mi,Od,qm,tp,__,R_,ec,I_,rc,nc,wd,oc,ba,ep,Yt=d(()=>{li="gemini-cli",Nr="GEMINI.md",po="AGENTS.md",jT=".gemini/rules",UT=".gemini/GEMINI.md",Xe=".gemini/commands",Ed=".gemini/policies",Aa=".gemini/settings.json",Ld=".geminiignore",Qm=".gemini/skills",ci=".gemini/agents",BT=".gemini/system.md",KT=`${Ed}/permissions.toml`,mi=".agentsmesh/rules",Od=".agentsmesh/commands",qm=".agentsmesh/agents",tp=".agentsmesh/skills",__=".agentsmesh/mcp.json",R_=".agentsmesh/hooks.yaml",ec=".agentsmesh/ignore",I_=".agentsmesh/permissions.yaml",rc=".gemini/GEMINI.md",nc=".gemini/AGENTS.md",wd=".gemini/settings.json",oc=".gemini/commands",ba=".gemini/skills",ep=".gemini/agents";});function S_(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!e&&r.length===0)return [];let n=mt(e?.body.trim()??"",r),o=[{path:Nr,content:n}];return e&&o.push({path:po,content:e.body.trim()}),o}var WT=d(()=>{Kt();Yt();s(S_,"generateRules");});function HT(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var zT=d(()=>{s(HT,"canonicalCommandNameToGeminiTomlPath");});function h1(t){let e=t.replace(/\r\n/g,`
|
|
125
|
+
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:ay,feature:"ignore"});}var P_=d(()=>{Br();A();zt();s(ox,"cursorHooksToCanonical");s(Ad,"importSettings");s(bd,"importIgnore");});async function Pd(t,e,r,n=fe){let o=join(t,n),i=await Qm(o),a={projectRoot:t,destCanonicalSkillsDir:qE,targetName:"cursor",normalize:r,results:e};for(let[p,u]of i)await Zm(p,u,a);let l=await G(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 _(p);if(!u)continue;let f=basename(p,".md");await sA(f,p,u,a);}}var x_=d(()=>{A();ec();zt();s(Pd,"importSkills");});async function sx(t){if(await j(join(t,_r)))return true;let e=[join(t,tn),join(t,Ll),join(t,We),join(t,jn),join(t,qr),join(t,fe),join(t,Sr),join(t,Rr)];for(let i of e){let a=await _(i);if(a!==null&&a.trim()!=="")return true}return !!((await G(join(t,fe))).some(i=>i.endsWith(".md"))||(await G(join(t,Sr))).some(i=>i.endsWith(".md"))||(await G(join(t,Rr))).some(i=>i.endsWith(".md")))}async function ix(t,e,r){let n=join(t,Un),o=false,i=join(t,_r),a=await It({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:sc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await _(l);if(p!==null){let{frontmatter:u}=P(p);if(u.alwaysApply===true)return null}}return Ld(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function ax(t,e,r){let n=join(t,Ll),o=await _(n);return o===null||o.trim()===""?false:oc({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function lx(t,e,r){let n=join(t,tn),o=await _(n);return o===null||o.trim()===""?false:oc({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function cx(t,e){let r=join(t,We),n=await _(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(t,Ol);await O(dirname(i)),await I(i,n),e.push({fromTool:sc,fromPath:r,toPath:Ol,feature:"mcp"});}async function mx(t,e,r){let n=join(t,Sr),o=join(t,Ks);e.push(...await It({srcDir:n,destDir:o,extensions:[".md"],fromTool:sc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>tx(i,o,a),"mapEntry")}));}async function px(t,e,r){let n=join(t,Rr),o=join(t,Bs);e.push(...await It({srcDir:n,destDir:o,extensions:[".md"],fromTool:sc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>qP(i,o,a),"mapEntry")}));}var sc,ux=d(()=>{A();U();$e();zt();A_();w_();sc="cursor";s(sx,"hasGlobalCursorArtifacts");s(ix,"importGlobalCursorRulesFromDir");s(ax,"importGlobalUserRules");s(lx,"importGlobalDotCursorAgents");s(cx,"importGlobalMcp");s(mx,"importGlobalAgents");s(px,"importGlobalCommands");});async function dx(t){if(!await sx(t))return [];let e=[],r=await W(sc,t,"global"),n=await ix(t,e,r);return n||(n=await ax(t,e,r)),n||await lx(t,e,r),await cx(t,e),await Pd(t,e,r,fe),await mx(t,e,r),await px(t,e,r),await Ad(t,e),await bd(t,e),e}var fx=d(()=>{gt();zt();x_();P_();ux();s(dx,"importFromCursorGlobalExports");});async function j1(t,e){let r=join(t,We),n=await _(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 Ht(t,Ol,i),e.push({fromTool:"cursor",fromPath:r,toPath:Ol,feature:"mcp"});}async function gx(t,e={}){if(e.scope==="global")return dx(t);let r=[],n=await W("cursor",t);return await rx(t,r,n),r.push(...await Y(xd,t,"project",{normalize:n})),await Pd(t,r,n),await j1(t,r),await Ad(t,r),await bd(t,r),r}var hx=d(()=>{gt();A();Ot();Jr();nx();P_();x_();fx();zt();T_();s(j1,"importMcp");s(gx,"importFromCursor");});var _x,Rx,Sx=d(()=>{U();ft();mr();zt();_x=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n)),a=cr(o.allowedTools),l=a.length>0?a:cr(o["allowed-tools"]);return {destPath:n,toPath:`${Bs}/${t}`,content:await St(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"),Rx=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Ks}/${t}`,content:await Yt(n,o,i)}},"cursorAgentMapper");});function Ix(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ZE}))}var Cx=d(()=>{Ct();zt();s(Ix,"lintRules");});function kx(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>D(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Ex(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&e.push(D(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function Lx(t){if(!t.permissions)return [];let e=t.permissions.ask?.length??0;return t.permissions.allow.length>0||t.permissions.deny.length>0||e>0?[D(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var Ox=d(()=>{wt();s(kx,"lintCommands");s(Ex,"lintMcp");s(Lx,"lintPermissions");});var U1,B1,K1,W1,xd,T_=d(()=>{QP();zt();oe();hx();Sx();Cx();Et();Ox();U1={name:"cursor",primaryRootInstructionPath:Ko,generateRules:R_,generateCommands:S_,generateAgents:k_,generateSkills:C_,generateMcp:I_,generatePermissions:E_,generateHooks:L_,generateIgnore:O_,importFrom:gx},B1={rootInstructionPath:Ko,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Us,tn]}],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(t,e){return `.cursor/rules/${t}.mdc`},commandPath(t,e){return `.cursor/commands/${t}.md`},agentPath(t,e){return `.cursor/agents/${t}.md`}}},K1={rootInstructionPath:Ko,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Us,tn]}],skillDir:fe,managedOutputs:{dirs:[_r,Rr,Sr,fe],files:[Ko,tn,We,jn,qr,Ll]},rewriteGeneratedPath(t){return t===Us?null:t===tn||t===Ko||t.startsWith(`${_r}/`)||t.startsWith(`${Rr}/`)||t.startsWith(`${Sr}/`)||t.startsWith(`${fe}/`)||t===We||t===jn||t===qr?t:t===Hu?null:t},mirrorGlobalPath(t,e){return dt(t,fe,e)},paths:{rulePath(t,e){return `${_r}/${t}.mdc`},commandPath(t,e){return `${Rr}/${t}.md`},agentPath(t,e){return `${Sr}/${t}.md`}}},W1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},xd={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:U1,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:Ix,lint:{commands:kx,mcp:Ex,permissions:Lx},project:B1,globalSupport:{capabilities:W1,detectionPaths:[Ko,tn,We,jn,qr,fe,Sr,Rr,Ll],layout:K1},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Rr]},canonicalDir:Bs,extensions:[".md"],map:_x},agents:{feature:"agents",mode:"directory",source:{project:[Sr]},canonicalDir:Ks,extensions:[".md"],map:Rx}},buildImportPaths:ly,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function wx(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Bn)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:Ir,content:o}]:[]}function Ax(t){return st(t,ge)}function bx(t){return t.commands.map(e=>({path:`${ge}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function Px(t){return t.agents.map(e=>({path:`${ge}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function xx(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Wo,content:e}]}var Tx=d(()=>{rt();Kt();ut();Lt();wl();s(wx,"generateRules");s(Ax,"generateSkills");s(bx,"generateCommands");s(Px,"generateAgents");s(xx,"generateMcp");});async function Dx(t,e={}){let r=e.scope??"project",n=[],o=await W(Bn,t,r);return n.push(...await Y(Td,t,r,{normalize:o})),await et(t,r==="global"?en:ge,Bn,n,o),n}var Nx=d(()=>{gt();rt();Ot();wl();D_();s(Dx,"importFromDeepagentsCli");});function Fx(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Bn}))}var vx=d(()=>{Ct();wl();s(Fx,"lintRules");});function Mx(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","deepagents-cli","Deep Agents CLI hooks are global-only (~/.deepagents/hooks.json); project-level canonical hooks are not projected.")]:[]:[]}function $x(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function Gx(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var jx=d(()=>{wt();s(Mx,"lintHooks");s($x,"lintPermissions");s(Gx,"lintIgnore");});var H1,z1,V1,J1,Y1,Td,D_=d(()=>{Lt();ut();Tx();Nx();vx();jx();Et();wl();H1={name:Bn,primaryRootInstructionPath:Ir,generateRules:wx,generateCommands:bx,generateAgents:Px,generateSkills:Ax,generateMcp:xx,importFrom:Dx},z1={rootInstructionPath:Ir,skillDir:ge,managedOutputs:{dirs:[ge],files:[Ir,Wo]},paths:{rulePath(t){return Ir},commandPath(t){return `${ge}/${V(t)}/SKILL.md`},agentPath(t){return `${ge}/${K(t)}/SKILL.md`}}},V1={rootInstructionPath:Ho,skillDir:en,managedOutputs:{dirs:[en],files:[Ho,Xi]},rewriteGeneratedPath(t){return t===Ir?Ho:t===Wo?Xi:t.startsWith(`${ge}/`)?t.replace(`${ge}/`,`${en}/`):t},paths:{rulePath(t){return Ho},commandPath(t){return `${en}/${V(t)}/SKILL.md`},agentPath(t){return `${en}/${K(t)}/SKILL.md`}}},J1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Y1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Td={id:Bn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:H1,capabilities:J1,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:Fx,lint:{hooks:Mx,permissions:$x,ignore:Gx},supportsConversion:{commands:true,agents:true},project:z1,globalSupport:{capabilities:Y1,detectionPaths:[Ho,Xi],layout:V1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ir],global:[Ho]},canonicalDir:eL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Wo],global:[Xi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:cy,detectionPaths:[Ir,Wo]};});function Ux(t){let e={name:t.name};return t.description&&(e.description=t.description.slice(0,500)),t.model?e.model=t.model:e.model="inherit",t.tools.length>0&&(e.tools=t.tools),T(e,t.body.trim()||"")}var Bx=d(()=>{U();s(Ux,"serializeDroid");});function Kx(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Cr)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:kr,content:o}]:[]}function Wx(t){return st(t,Ae)}function Hx(t){return t.commands.map(e=>({path:`${Ae}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function zx(t){return t.agents.map(e=>({path:`${Kn}/${e.name}.md`,content:Ux(e)}))}function Vx(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Wn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var Jx=d(()=>{rt();Kt();Lt();Bx();Qi();s(Kx,"generateRules");s(Wx,"generateSkills");s(Hx,"generateCommands");s(zx,"generateAgents");s(Vx,"generateMcp");});async function Xx(t,e,r){let n=await _(join(t,e));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 Ht(t,Yx,l),r.push({fromTool:Cr,fromPath:e,toPath:Yx,feature:"mcp"}));}var Yx,Zx=d(()=>{A();Jr();Qi();Yx=".agentsmesh/mcp.json";s(Xx,"importFactoryDroidMcp");});async function Qx(t,e={}){let r=e.scope??"project",n=[],o=await W(Cr,t,r);return n.push(...await Y(Dd,t,r,{normalize:o})),await et(t,r==="global"?Hn:Ae,Cr,n,o),await Xx(t,r==="global"?Ws:Wn,n),n}var qx=d(()=>{gt();rt();Ot();Zx();Qi();N_();s(Qx,"importFromFactoryDroid");});function tT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Cr}))}var eT=d(()=>{Ct();Qi();s(tT,"lintRules");});function rT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".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 nT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function oT(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var sT=d(()=>{wt();s(rT,"lintHooks");s(nT,"lintPermissions");s(oT,"lintIgnore");});var Z1,Q1,q1,iT,Dd,N_=d(()=>{Jx();Qi();qx();eT();sT();Et();Lt();Z1={name:Cr,primaryRootInstructionPath:kr,generateRules:Kx,generateCommands:Hx,generateAgents:zx,generateSkills:Wx,generateMcp:Vx,importFrom:Qx},Q1={rootInstructionPath:kr,skillDir:Ae,managedOutputs:{dirs:[Ae,Kn],files:[kr,Wn]},paths:{rulePath(t){return kr},commandPath(t){return `${Ae}/${V(t)}/SKILL.md`},agentPath(t){return `${Kn}/${t}.md`}}},q1={rootInstructionPath:zo,skillDir:Hn,managedOutputs:{dirs:[Hn,Zi],files:[zo,Ws]},rewriteGeneratedPath(t){return t===kr?zo:t===Wn?Ws:t.startsWith(`${Ae}/`)?t.replace(`${Ae}/`,`${Hn}/`):t.startsWith(`${Kn}/`)?t.replace(`${Kn}/`,`${Zi}/`):t},paths:{rulePath(t){return zo},commandPath(t){return `${Hn}/${V(t)}/SKILL.md`},agentPath(t){return `${Zi}/${t}.md`}}},iT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Dd={id:Cr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:Z1,capabilities:iT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:tT,lint:{hooks:rT,permissions:nT,ignore:oT},supportsConversion:{commands:true},project:Q1,globalSupport:{capabilities:iT,detectionPaths:[zo,Ws,Zi],layout:q1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[kr],global:[zo]},canonicalDir:nL,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:my,detectionPaths:[kr,Wn,Kn]};});var ui,Fr,uo,aT,lT,Ze,Nd,Ta,Fd,op,di,cT,mT,fi,vd,sp,ip,F_,v_,ic,M_,ac,lc,Md,cc,Da,ap,Xt=d(()=>{ui="gemini-cli",Fr="GEMINI.md",uo="AGENTS.md",aT=".gemini/rules",lT=".gemini/GEMINI.md",Ze=".gemini/commands",Nd=".gemini/policies",Ta=".gemini/settings.json",Fd=".geminiignore",op=".gemini/skills",di=".gemini/agents",cT=".gemini/system.md",mT=`${Nd}/permissions.toml`,fi=".agentsmesh/rules",vd=".agentsmesh/commands",sp=".agentsmesh/agents",ip=".agentsmesh/skills",F_=".agentsmesh/mcp.json",v_=".agentsmesh/hooks.yaml",ic=".agentsmesh/ignore",M_=".agentsmesh/permissions.yaml",ac=".gemini/GEMINI.md",lc=".gemini/AGENTS.md",Md=".gemini/settings.json",cc=".gemini/commands",Da=".gemini/skills",ap=".gemini/agents";});function $_(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!e&&r.length===0)return [];let n=at(e?.body.trim()??"",r),o=[{path:Fr,content:n}];return e&&o.push({path:uo,content:e.body.trim()}),o}var pT=d(()=>{Kt();Xt();s($_,"generateRules");});function uT(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var dT=d(()=>{s(uT,"canonicalCommandNameToGeminiTomlPath");});function tJ(t){let e=t.replace(/\r\n/g,`
|
|
122
126
|
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
123
127
|
${e}
|
|
124
|
-
"""`}function
|
|
128
|
+
"""`}function eJ(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${tJ(t.body.trim()||"")}`].join(`
|
|
125
129
|
`)+`
|
|
126
|
-
`}function
|
|
127
|
-
`)}]}var
|
|
128
|
-
`)}function
|
|
129
|
-
`)}]}var
|
|
130
|
+
`}function G_(t){return t.commands.map(e=>({path:uT(e.name,Ze),content:eJ(e)}))}var fT=d(()=>{Xt();dT();s(tJ,"serializeTomlMultilineLiteral");s(eJ,"serializeGeminiCommand");s(G_,"generateCommands");});function j_(t){return t.agents.map(e=>{let r={name:e.name,kind:"local",description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,permissionMode:e.permissionMode||void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${di}/${e.name}.md`,content:n}})}var gT=d(()=>{U();Xt();s(j_,"generateAgents");});function U_(t){let e=[];for(let r of t.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()||"");e.push({path:`${op}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${op}/${r.name}/${a}`,content:i.content});}}return e}var hT=d(()=>{U();Xt();s(U_,"generateSkills");});function rJ(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function B_(t){let e={},r=false;if(t.mcp&&Object.keys(t.mcp.mcpServers).length>0&&(e.mcpServers=t.mcp.mcpServers,r=true),t.agents.length>0&&(e.experimental={enableAgents:true},r=true),t.hooks){let n=Object.entries(t.hooks).flatMap(([o,i])=>{let a=rJ(o);if(!a||!Array.isArray(i))return [];let l=i.filter(c=>typeof c=="object"&&c!==null&&Oo(c)).map((c,m)=>({matcher:c.matcher,hooks:[{name:`${a}-${m+1}`,type:"command",command:Jt(c),timeout:c.timeout}]}));return l.length>0?[[a,l]]:[]});n.length>0&&(e.hooks=Object.fromEntries(n),r=true);}return r&&(e.context={fileName:[Fr,uo]}),Object.keys(e).length===0?[]:[{path:Ta,content:JSON.stringify(e,null,2)}]}var K_=d(()=>{Br();Xt();s(rJ,"mapHookEvent");s(B_,"generateGeminiSettingsFiles");});function W_(t){return !t.ignore||t.ignore.length===0?[]:[{path:Fd,content:t.ignore.join(`
|
|
131
|
+
`)}]}var yT=d(()=>{Xt();s(W_,"generateIgnore");});var _T=d(()=>{pT();fT();gT();hT();K_();yT();});var RT=d(()=>{_T();});function Na(t){return JSON.stringify(t)}function nJ(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function oJ(t){let e=t.match(/^Bash\((.*)\)$/);if(e&&typeof e[1]=="string")return {kind:"bash",prefix:e[1]};let r=t.match(/^Read\((.*)\)$/);return r&&typeof r[1]=="string"?{kind:"read",path:r[1]}:t==="Read"||t==="Grep"||t==="LS"||t==="WebFetch"?{kind:"tool",tool:t}:{kind:"unknown",raw:t}}function $d(t,e,r){return ["[[rule]]",`decision = ${Na(t)}`,`priority = ${e}`,...r,""].join(`
|
|
132
|
+
`)}function ST(t,e,r){let n=oJ(t),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 $d(e,r,[`toolName = ${Na(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return $d(e,r,[`toolName = ${Na(o.Bash)}`,`commandPrefix = ${Na(i)}`])}return n.kind==="read"?$d(e,r,[`toolName = ${Na(o.Read)}`,`argsPattern = ${Na(nJ(n.path))}`]):$d(e,r,[`toolName = ${Na(n.raw)}`])}function IT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions;if(e.length+r.length===0)return [];let o=[];return e.forEach((i,a)=>{let l=ST(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=ST(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:mT,content:o.join(`
|
|
133
|
+
`)}]}var CT=d(()=>{Xt();s(Na,"escapeTomlBasicString");s(nJ,"escapeRegexLiteral");s(oJ,"parsePermissionExpr");s($d,"ruleForDecision");s(ST,"permissionExprToGeminiRule");s(IT,"generateGeminiPermissionsPolicies");});function H_(t){switch(t){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}function Gd(t){let e=t.indexOf("---"),r=t.indexOf("+++");if(e===0&&(r===-1||e<=r))return P(t);if(r===0){let n=t.indexOf("+++",3);if(n!==-1)try{let o=t.slice(3,n).trim(),i=t.slice(n+3).trim();return {frontmatter:o===""?{}:parse$1(o)??{},body:i}}catch{return {frontmatter:{},body:t.trim()}}}return {frontmatter:{},body:t.trim()}}var z_=d(()=>{U();s(H_,"mapGeminiHookEvent");s(Gd,"parseFlexibleFrontmatter");});async function V_(t,e){let r=join(t,Ta),n=await _(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(t,F_);await O(join(t,".agentsmesh")),await I(c,JSON.stringify({mcpServers:i},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:F_,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,ic);await O(join(t,".agentsmesh")),await I(c,a.join(`
|
|
130
134
|
`)+`
|
|
131
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
135
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:ic,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=H_(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"&&Oo(h)).map(h=>({matcher:g.matcher,command:Jt(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"&&Oo(h)).map(h=>({matcher:h.matcher,command:Jt(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(t,v_);await O(join(t,".agentsmesh")),await I(p,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:v_,feature:"hooks"});}}}var kT=d(()=>{Br();A();Xt();z_();s(V_,"importGeminiSettings");});async function ET(t,e){let r=join(t,Fd),n=await _(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(t,".agentsmesh"));let i=join(t,ic);await I(i,o.join(`
|
|
132
136
|
`)+`
|
|
133
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
134
|
-
`),e.push({fromTool:
|
|
135
|
-
`)}]}var
|
|
136
|
-
`)}]}function
|
|
137
|
-
`)}]}function
|
|
137
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:ic,feature:"ignore"});}}}var Y_=d(()=>{A();Xt();z_();kT();s(ET,"importGeminiIgnore");});function cJ(t){return t.replace(/\\(.)/g,"$1")}function mJ(t){switch(t){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 pJ(t){return `Bash(${t}:*)`}function uJ(t){return `Read(${cJ(t)})`}async function LT(t){let e=[],r=join(t,Nd),n;try{n=await G(r);}catch{return e}let o=n.filter(u=>u.endsWith(".toml"));if(o.length===0)return e;let i=[],a=[],l=new Set,c=new Set;for(let u of o){let f=await _(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 S of h){if(!S||typeof S!="object")continue;let C=S,R=typeof C.toolName=="string"?C.toolName:null,k=typeof C.decision=="string"?C.decision:null;if(!R||!k)continue;let b=mJ(R);if(!b)continue;let N=null;b==="Bash"?typeof C.commandPrefix=="string"&&C.commandPrefix.trim()&&(N=pJ(C.commandPrefix.trim())):b==="Read"?typeof C.argsPattern=="string"&&C.argsPattern.trim()?N=uJ(C.argsPattern.trim()):N="Read":N=b,N&&(k==="allow"?l.has(N)||(l.add(N),i.push(N)):k==="deny"&&(c.has(N)||(c.add(N),a.push(N))));}}if(i.length===0&&a.length===0)return e;await O(join(t,".agentsmesh"));let m=join(t,M_),p=stringify({allow:i,deny:a});return await I(m,p.trimEnd()+`
|
|
138
|
+
`),e.push({fromTool:ui,fromPath:join(t,Nd),toPath:M_,feature:"permissions"}),e}var OT=d(()=>{A();Xt();s(cJ,"unescapeRegexLiteral");s(mJ,"toolNameToPermissionBase");s(pJ,"commandPrefixToBashExpr");s(uJ,"argsPatternToReadExpr");s(LT,"importGeminiPolicies");});function X_(t,e){let r=new Set([e,e.replace(/\\/g,"/"),e.replace(/\//g,"\\")]);try{r.add(realpathSync(e)),r.add(realpathSync.native(e));}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")},t).replace(/(?:[A-Za-z]:)?[^\s"'`()<>]+[/\\]\.agentsmesh[/\\]/g,".agentsmesh/")}var AT=d(()=>{s(X_,"stripProjectRootCanonicalPrefix");});async function PT(t,e,r){let n=join(t,op),i=(await G(n)).filter(l=>basename(l)==="SKILL.md");for(let l of i){let c=await _(l);if(!c)continue;let m=basename(l.slice(0,-9)),p=P(c),u=dl(p.frontmatter,m);if(u){let k=join(t,sp);await O(k);let b=join(k,`${u.name}.md`);await I(b,xs(u,r(p.body,l,b))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${sp}/${u.name}.md`,feature:"agents"});continue}let f=join(t,ip,m,"SKILL.md"),g=r(c,l,f),h=join(t,ip,m);await O(h);let{frontmatter:S,body:C}=P(g);await I(f,await On(f,{...S,name:m},C)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${ip}/${m}/SKILL.md`,feature:"skills"});let R=await G(dirname(l));for(let k of R){if(k===l)continue;let b=await _(k);if(b===null)continue;let N=relative(dirname(l),k).replace(/\\/g,"/"),x=join(h,N);await O(dirname(x)),await I(x,r(b,k,x)),e.push({fromTool:"gemini-cli",fromPath:k,toPath:`${ip}/${m}/${N}`,feature:"skills"});}}let a=join(t,di);try{let c=(await G(a)).filter(m=>m.endsWith(".md"));for(let m of c){let p=await _(m);if(!p)continue;let{frontmatter:u,body:f}=P(p),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),S=join(t,sp);await O(S);let C=join(S,h),R=r(f,m,C);await I(C,await Yt(C,{...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)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${sp}/${h}`,feature:"agents"});}}catch{}}var xT=d(()=>{A();U();ft();ut();Xt();s(PT,"importGeminiSkillsAndAgents");});async function dJ(t,e,r){let n=await W("codex-cli",t),o=join(t,fi),i=join(t,uo),a=join(t,lT),l=[i,a,join(t,Fr),join(t,cT)],c=null,m=l[l.length-1];for(let N of l){let x=await _(N);if(x!==null){c=x,m=N;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 ao({content:u,projectRoot:t,rulesDir:fi,sourcePath:m,fromTool:ui,normalize:r});e.push(...f.results);let g=r(f.rootContent,m,p),h=X_(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:S,body:C}=P(h),k=S.root===true?S:{...S,root:true},b=X_(await z(p,k,C),t);await I(p,b),e.push({fromTool:ui,fromPath:m,toPath:`${fi}/_root.md`,feature:"rules"});}async function TT(t){let e=[],r=await W(ui,t);return await dJ(t,e,r),e.push(...await Y(Ud,t,"project",{normalize:r})),await PT(t,e,r),await V_(t,e),await ET(t,e),e.push(...await LT(t)),e}var DT=d(()=>{gt();A();U();ft();Zl();Ot();Xt();q_();Y_();OT();AT();xT();s(dJ,"importRootRule");s(TT,"importFromGemini");});async function FT(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:i,body:a}=Gd(r(o)),l=xo(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:`${fi}/${n}`,feature:"rules",content:await z(o,c,a)}}async function vT(t,e,r){let n=t.replace(/\.(toml|md)$/i,".md").replace(/\\/g,"/"),o=join(e,n),i=r(o),{frontmatter:a,body:l}=t.endsWith(".toml")?gJ(i):Gd(i),c=cr(a.allowedTools),m=cr(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${vd}/${n}`,feature:"commands",content:await St(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 gJ(t){try{let e=parse$1(t);return {frontmatter:e,body:typeof e.prompt=="string"?e.prompt:""}}catch{return {frontmatter:{},body:t.trim()}}}var MT=d(()=>{ft();mr();Y_();Xt();s(FT,"mapGeminiRuleFile");s(vT,"mapGeminiCommandFile");s(gJ,"parseTomlCommand");});var $T,GT,jT=d(()=>{MT();$T=s(({relativePath:t,destDir:e,normalizeTo:r})=>FT(t,e,r),"geminiRuleMapper"),GT=s(({relativePath:t,destDir:e,normalizeTo:r})=>vT(t,e,r),"geminiCommandMapper");});function UT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ui}))}var BT=d(()=>{Ct();Xt();s(UT,"lintRules");});function KT(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>D(e.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function WT(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","Notification"],r=new Set(e);return Object.keys(t.hooks).filter(n=>!r.has(n)).map(n=>Fs(n,"gemini-cli",e))}var HT=d(()=>{wt();s(KT,"lintCommands");s(WT,"lintHooks");});function zT(t,e){return e==="project"&&gi("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:B_(t)}var VT=d(()=>{xt();K_();s(zT,"emitScopedGeminiSettings");});var hJ,yJ,_J,RJ,Ud,q_=d(()=>{RT();Ni();CT();Xt();DT();jT();BT();Et();ml();ut();HT();VT();oe();kd();hJ={name:"gemini-cli",primaryRootInstructionPath:Fr,generateRules:$_,generateCommands:G_,generateAgents:j_,generateSkills:U_,generateIgnore:W_,generatePermissions:IT,importFrom:TT},yJ={rootInstructionPath:Fr,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(t,e){return dt(t,".gemini/skills",e)},paths:{rulePath(t,e){return Fr},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${Ze}/${r.join("/")}/${n}.toml`}return `${Ze}/${t}.toml`},agentPath(t,e){return sr(e,"gemini-cli")?`.gemini/skills/${K(t)}/SKILL.md`:`${di}/${t}.md`}}},_J={rootInstructionPath:ac,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[lc]}],extraRuleOutputPaths(){return [lc]},skillDir:Da,managedOutputs:{dirs:[cc,Da,ap],files:[ac,lc,Md]},rewriteGeneratedPath(t){return t===Fr?ac:t===uo?lc:t===Ta?Md:t.startsWith(`${Ze}/`)?t.replace(`${Ze}/`,`${cc}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${Da}/`):t.startsWith(`${di}/`)?t.replace(`${di}/`,`${ap}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return dt(t,Da,e)},paths:{rulePath(t,e){return ac},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${cc}/${r.join("/")}/${n}.toml`}return `${cc}/${t}.toml`},agentPath(t,e){return sr(e,"gemini-cli")?`${Da}/${K(t)}/SKILL.md`:`${ap}/${t}.md`}}},RJ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},Ud={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:hJ,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Wr("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:UT,lint:{commands:KT,hooks:WT},emitScopedSettings:zT,mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Ta?jP(o,r):null},project:yJ,globalSupport:{capabilities:RJ,detectionPaths:[ac,lc,Md,cc,Da,ap],layout:_J},importer:{rules:{feature:"rules",mode:"directory",source:{project:[aT]},canonicalDir:fi,extensions:[".md"],map:$T},commands:{feature:"commands",mode:"directory",source:{project:[Ze]},canonicalDir:vd,extensions:[".md",".toml"],map:GT}},buildImportPaths:py,detectionPaths:["GEMINI.md",".gemini"],conversionDefaults:{agentsToSkills:false}};});function JT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(zn)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:Er,content:o}]:[]}function YT(t){return st(t,be)}function XT(t){return t.commands.map(e=>({path:`${be}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function ZT(t){return t.agents.map(e=>({path:`${be}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function QT(t){return t.ignore.length===0?[]:[{path:Vo,content:t.ignore.join(`
|
|
139
|
+
`)}]}var qT=d(()=>{rt();Kt();ut();Lt();Al();s(JT,"generateRules");s(YT,"generateSkills");s(XT,"generateCommands");s(ZT,"generateAgents");s(QT,"generateIgnore");});async function tD(t,e={}){let r=e.scope??"project",n=[],o=await W(zn,t,r);return n.push(...await Y(Bd,t,r,{normalize:o})),await et(t,r==="global"?Lr:be,zn,n,o),n}var eD=d(()=>{gt();rt();Ot();Al();tR();s(tD,"importFromGoose");});function rD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:zn}))}var nD=d(()=>{Ct();Al();s(rD,"lintRules");});function oD(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function sD(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function iD(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var aD=d(()=>{wt();s(oD,"lintHooks");s(sD,"lintPermissions");s(iD,"lintMcp");});var SJ,IJ,CJ,lD,Bd,tR=d(()=>{Lt();ut();qT();oe();eD();nD();aD();Et();Al();SJ={name:zn,primaryRootInstructionPath:Er,generateRules:JT,generateCommands:XT,generateAgents:ZT,generateSkills:YT,generateIgnore:QT,importFrom:tD},IJ={rootInstructionPath:Er,skillDir:be,managedOutputs:{dirs:[be],files:[Er,Vo]},paths:{rulePath(t){return Er},commandPath(t){return `${be}/${V(t)}/SKILL.md`},agentPath(t){return `${be}/${K(t)}/SKILL.md`}}},CJ={rootInstructionPath:Jo,skillDir:Lr,managedOutputs:{dirs:[Lr],files:[Jo,qi]},rewriteGeneratedPath(t){return t===Er?Jo:t===Vo?qi:t},mirrorGlobalPath(t,e){return dt(t,Lr,e)},paths:{rulePath(t){return Jo},commandPath(t){return `${Lr}/${V(t)}/SKILL.md`},agentPath(t){return `${Lr}/${K(t)}/SKILL.md`}}},lD={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Bd={id:zn,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:SJ,capabilities:lD,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:rD,lint:{hooks:oD,permissions:sD,mcp:iD},supportsConversion:{commands:true,agents:true},project:IJ,globalSupport:{capabilities:lD,detectionPaths:[Jo,qi,Lr],layout:CJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Er],global:[Jo]},canonicalDir:aL,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Vo],global:[qi]},canonicalDir:".agentsmesh",canonicalFilename:lL}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:uy,detectionPaths:[Er,Vo],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function cD(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Yo)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:rn,content:o}]:[]}var mD=d(()=>{Kt();bl();s(cD,"generateRules");});async function pD(t,e={}){let r=e.scope??"project",n=await W(Yo,t,r);return Y(Kd,t,r,{normalize:n})}var uD=d(()=>{gt();Ot();bl();eR();s(pD,"importFromJules");});function dD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Yo}))}var fD=d(()=>{Ct();bl();s(dD,"lintRules");});function gD(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function hD(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","jules","Jules has no permissions system; canonical permissions are not projected.")]}function yD(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function _D(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function RD(t){return t.commands.length===0?[]:[D(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var SD=d(()=>{wt();s(gD,"lintHooks");s(hD,"lintPermissions");s(yD,"lintIgnore");s(_D,"lintMcp");s(RD,"lintCommands");});var kJ,EJ,LJ,Kd,eR=d(()=>{mD();uD();fD();SD();Et();bl();kJ={name:Yo,primaryRootInstructionPath:rn,generateRules:cD,importFrom:pD},EJ={rootInstructionPath:rn,managedOutputs:{dirs:[],files:[rn]},paths:{rulePath(t){return rn},commandPath(){return null},agentPath(){return null}}},LJ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Kd={id:Yo,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:kJ,capabilities:LJ,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:dD,lint:{hooks:gD,permissions:hD,ignore:yD,mcp:_D,commands:RD},project:EJ,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[rn]},canonicalDir:mL,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:dy,detectionPaths:[rn]};});function ID(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Vn,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");e.push({path:`${Pm}/${o}.md`,content:n.body.trim()||""});}return e}function wJ(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),pd(t)?(e.command=t.command,e.args=t.args):(e.url=t.url,Object.keys(t.headers).length>0&&(e.headers=t.headers)),Object.keys(t.env).length>0&&(e.env=t.env),e}function CD(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).map(([r,n])=>[r,wJ(n)]));return [{path:bm,content:JSON.stringify({mcpServers:e},null,2)}]}function kD(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${Pl}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function ED(t){return t.agents.map(e=>{let r={name:e.name,description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,skills:e.skills.length>0?e.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${xl}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function LD(t){return t.ignore.length===0?[]:[{path:xm,content:t.ignore.join(`
|
|
140
|
+
`)}]}function OD(t){return st(t,ea)}function wD(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("junie"));return at(e?.body.trim()??"",r)}var AD=d(()=>{ud();rt();Kt();U();Tl();s(ID,"generateRules");s(wJ,"toJunieMcpServer");s(CD,"generateMcp");s(kD,"generateCommands");s(ED,"generateAgents");s(LD,"generateIgnore");s(OD,"generateSkills");s(wD,"renderJunieGlobalInstructions");});async function AJ(t,e,r){let n=[Vn,zu,uL,dL],o=join(t,fy);for(let i of n){let a=join(t,i),l=await _(a);if(l===null)continue;let c=await ao({content:l,projectRoot:t,rulesDir:Ju,sourcePath:a,fromTool:ta,normalize:r});e.push(...c.results);let{frontmatter:m,body:p}=P(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 I(o,u),e.push({fromTool:ta,fromPath:a,toPath:fy,feature:"rules"});return}}async function PD(t){let e=[],r=await W(ta,t);return await AJ(t,e,r),e.push(...await Y(Wd,t,"project",{normalize:r})),await et(t,ea,ta,e,r),e}var xD=d(()=>{gt();A();U();rt();Zl();ft();Ot();Tl();rR();s(AJ,"importRootRule");s(PD,"importFromJunie");});function TD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ta}))}var DD=d(()=>{Ct();Tl();s(TD,"lintRules");});function ND(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))vA(n)&&e.push(D(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return e}var FD=d(()=>{ud();wt();s(ND,"lintMcp");});var bJ,PJ,xJ,TJ,Wd,rR=d(()=>{AD();Tl();oe();xD();DD();FD();Et();bJ={name:"junie",primaryRootInstructionPath:Vn,generateRules:ID,generateCommands:kD,generateAgents:ED,generateSkills:OD,generateMcp:CD,generateIgnore:LD,importFrom:PD},PJ={rootInstructionPath:Vn,skillDir:".junie/skills",managedOutputs:{dirs:[".junie/agents",".junie/commands",".junie/rules",".junie/skills"],files:[".aiignore",".junie/AGENTS.md",".junie/mcp/mcp.json"]},paths:{rulePath(t,e){return `${Pm}/${t}.md`},commandPath(t,e){return `${Pl}/${t}.md`},agentPath(t,e){return `${xl}/${t}.md`}}},xJ={rootInstructionPath:ra,renderPrimaryRootInstruction:wD,skillDir:Dm,managedOutputs:{dirs:[Dm,Nm,Fm,fL],files:[ra,Vu]},rewriteGeneratedPath(t){return t===Vn?ra:t.startsWith(`${Pm}/`)?ra:t.startsWith(`${ea}/`)?t.replace(`${ea}/`,`${Dm}/`):t.startsWith(`${Pl}/`)?t.replace(`${Pl}/`,`${Fm}/`):t.startsWith(`${xl}/`)?t.replace(`${xl}/`,`${Nm}/`):t===bm?Vu:t===xm?null:t},mirrorGlobalPath(t,e){return dt(t,".junie/skills",e)},paths:{rulePath(t,e){return ra},commandPath(t,e){return `${Fm}/${t}.md`},agentPath(t,e){return `${Nm}/${t}.md`}}},TJ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Wd={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:bJ,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:TD,lint:{mcp:ND},project:PJ,globalSupport:{capabilities:TJ,detectionPaths:[ra,Dm,Nm,Fm,Vu],layout:xJ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Ju,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:gL,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:hL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[bm]},canonicalDir:".agentsmesh",canonicalFilename:yL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[xm]},canonicalDir:".agentsmesh",canonicalFilename:_L}},buildImportPaths:gy,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"]};});function MD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Jn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Ie))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()||"";e.push({path:`${Xo}/${o}.md`,content:a});}return e}function $D(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${Zo}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function GD(t){return t.agents.map(e=>{let r=basename(e.source,".md"),n={mode:"subagent"};return e.description&&(n.description=e.description),e.model&&(n.model=e.model),e.tools.length>0&&(n.tools=e.tools),e.disallowedTools.length>0&&(n.disallowedTools=e.disallowedTools),{path:`${Qo}/${r}.md`,content:T(n,e.body.trim()||"")}})}function jD(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:zs,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function UD(t){return t.ignore.length===0?[]:[{path:Dl,content:t.ignore.join(`
|
|
141
|
+
`)}]}function BD(t){return st(t,nn)}var KD=d(()=>{rt();U();ca();s(MD,"generateRules");s($D,"generateCommands");s(GD,"generateAgents");s(jD,"generateMcp");s(UD,"generateIgnore");s(BD,"generateSkills");});var Hd,zd,WD,oR=d(()=>{U();ft();ca();Hd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Ys}/${t}`,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"),zd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Ml}/${t}`,content:await St(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"kiloCommandMapper"),WD=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${la}/${t}`,content:await Yt(n,o,i)}},"kiloAgentMapper");});async function HD(t){try{return await stat(t),!0}catch{return false}}async function FJ(t,e,r){let n=join(t,na);if(!await HD(n))return;let o=join(t,Ys),i=join(n,iR),l=e.some(c=>c.toPath===sR)?null:await _(i);if(l!==null){let c=join(t,sR),m=r(l,i,c),{body:p}=P(m),u=await z(c,{root:true},p);await I(c,u),e.push({feature:"rules",fromTool:Ie,fromPath:`${na}/${iR}`,toPath:sR});}e.push(...await It({srcDir:n,destDir:o,extensions:[".md"],fromTool:Ie,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Hd({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===iR||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function vJ(t,e,r){let n=join(t,Nl);if(!await HD(n))return;let o=join(t,Ml);e.push(...await It({srcDir:n,destDir:o,extensions:[".md"],fromTool:Ie,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await zd({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function MJ(t,e,r){let n=join(t,Xu),o=await _(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(t,la,`${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}
|
|
138
142
|
|
|
139
143
|
## When to use
|
|
140
144
|
|
|
141
|
-
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let
|
|
142
|
-
`)}]}var HD=d(()=>{rt();Lt();K();H_();Fl();s(cJ,"steeringFrontmatter");s($D,"generateRules");s(GD,"generateCommands");s(jD,"generateSkills");s(UD,"generateMcp");s(BD,"generateHooks");s(KD,"generateAgents");s(WD,"generateIgnore");});function pJ(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:Po(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function uJ(t,e,r,n){let o=n==="global"?[an,nn]:[nn,an];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,ty),{frontmatter:m,body:p}=b(r(l,a,c));await S(c,await z(c,{...m,root:true},p)),e.push({fromTool:We,fromPath:a,toPath:ty,feature:"rules"});return}}async function dJ(t,e,r){let n=join(t,ey);e.push(...await St({srcDir:join(t,on),destDir:n,extensions:[".md"],fromTool:We,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}=b(i(a));return {destPath:a,toPath:`${ey}/${o}`,feature:"rules",content:await z(a,pJ(l),c)}},"mapEntry")}));}async function fJ(t,e){let r={};for(let o of await $(join(t,zs))){if(!o.endsWith(".kiro.hook"))continue;let i=vD(await _(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(t,ry);await O(join(t,".agentsmesh")),await S(n,MD(r)),e.push({fromTool:We,fromPath:join(t,zs),toPath:ry,feature:"hooks"});}async function zD(t,e={}){let r=e.scope??"project",n=[],o=await H(We,t,r);return await uJ(t,n,o,r),await dJ(t,n,o),n.push(...await Y($d,t,r,{normalize:o})),await et(t,Ie,We,n,o),r==="project"&&await fJ(t,n),n}var VD=d(()=>{gt();rt();Me();Ot();ft();cr();A();K();H_();Fl();z_();s(pJ,"canonicalRuleMeta");s(uJ,"importRoot");s(dJ,"importNonRootRules");s(fJ,"importHooks");s(zD,"importFromKiro");});function JD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:We}))}var YD=d(()=>{Ct();Fl();s(JD,"lintRules");});function XD(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(e);return Object.keys(t.hooks).filter(n=>!r.has(n)).map(n=>Ts(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var ZD=d(()=>{wt();s(XD,"lintHooks");});var gJ,hJ,yJ,_J,$d,z_=d(()=>{Lt();HD();ne();VD();YD();ZD();Et();Fl();gJ={name:We,primaryRootInstructionPath:nn,generateRules:$D,generateCommands:GD,generateAgents:KD,generateSkills:jD,generateMcp:UD,generateHooks:BD,generateIgnore:WD,importFrom:zD},hJ={rootInstructionPath:nn,skillDir:Ie,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${on}/${t}.md`},commandPath(t){return `${Ie}/${V(t)}/SKILL.md`},agentPath(t,e){return `${sn}/${t}.md`}}},yJ={rootInstructionPath:an,skillDir:Vs,managedOutputs:{dirs:[ia,Vs,aa,nL],files:[an,Dm,Nm]},rewriteGeneratedPath(t){return t===nn?an:t.startsWith(`${on}/`)?t.replace(`${on}/`,`${ia}/`):t.startsWith(`${Ie}/`)?t.replace(`${Ie}/`,`${Vs}/`):t.startsWith(`${sn}/`)?t.replace(`${sn}/`,`${aa}/`):t===Dl?Dm:t===Nl?Nm:t.startsWith(`${zs}/`)?null:t},mirrorGlobalPath(t,e){return dt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${ia}/${t}.md`},commandPath(t){return `${Ie}/${V(t)}/SKILL.md`},agentPath(t,e){return `${aa}/${t}.md`}}},_J={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},$d={id:We,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:gJ,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:JD,lint:{hooks:XD},project:hJ,globalSupport:{capabilities:_J,detectionPaths:[ia,an,Vs,aa,Dm,Nm],layout:yJ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[sn],global:[sn]},canonicalDir:oL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Dl],global:[Dm]},canonicalDir:".agentsmesh",canonicalFilename:sL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Nl],global:[Nm]},canonicalDir:".agentsmesh",canonicalFilename:iL}},buildImportPaths:ny,detectionPaths:[on,Ie,sn,zs,Dl,Nl],conversionDefaults:{commandsToSkills:true}};});function qD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Vn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(ln))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()||"";e.push({path:`${Qo}/${o}.md`,content:a});}return e}function tN(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${qo}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function eN(t){return t.agents.map(e=>{let r=basename(e.source,".md"),n={mode:"subagent"};return e.description&&(n.description=e.description),e.model&&(n.model=e.model),e.tools.length>0&&(n.tools=e.tools),e.disallowedTools.length>0&&(n.disallowedTools=e.disallowedTools),{path:`${ts}/${r}.md`,content:T(n,e.body.trim()||"")}})}function RJ(t){if("url"in t){let r={type:"remote",url:t.url};return Object.keys(t.headers).length>0&&(r.headers=t.headers),t.description&&(r.description=t.description),r}let e={type:"local",command:[t.command,...t.args]};return Object.keys(t.env).length>0&&(e.environment=t.env),t.description&&(e.description=t.description),e}function rN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e={};for(let[r,n]of Object.entries(t.mcp.mcpServers))e[r]=RJ(n);return [{path:Jn,content:JSON.stringify({mcp:e},null,2)}]}function nN(t){return it(t,cn)}var oN=d(()=>{rt();K();pa();s(qD,"generateRules");s(tN,"generateCommands");s(eN,"generateAgents");s(RJ,"toOpenCodeMcpServer");s(rN,"generateMcp");s(nN,"generateSkills");});function V_(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))typeof n=="string"&&(e[r]=n);return e}function SJ(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e.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:V_(a.headers),env:V_(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:V_(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function CJ(t,e,r){let o=join(t,e==="global"?Xs:Jn),i=await _(o);if(i===null)return;let a=SJ(i);Object.keys(a).length!==0&&(await Wt(t,oy,a),r.push({feature:"mcp",fromTool:ln,fromPath:o,toPath:oy}));}async function sN(t,e={}){let r=e.scope??"project",n=[],o=await H(ln,t,r);return n.push(...await Y(Gd,t,r,{normalize:o})),await et(t,cn,ln,n,o),await CJ(t,r,n),n}var iN=d(()=>{gt();rt();Ot();Vr();A();pa();J_();s(V_,"toStringRecord");s(SJ,"parseOpenCodeMcp");s(CJ,"importMcp");s(sN,"importFromOpenCode");});var aN,lN,cN,mN=d(()=>{K();ft();pa();aN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Fm}/${t}`,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"),lN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Ku}/${t}`,content:await It(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),cN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Wu}/${t}`,content:await Jt(n,o,i)}},"opencodeAgentMapper");});function pN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ln}))}var uN=d(()=>{Ct();pa();s(pN,"lintRules");});function dN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function fN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function gN(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var hN=d(()=>{wt();s(dN,"lintHooks");s(fN,"lintPermissions");s(gN,"lintIgnore");});var kJ,EJ,LJ,yN,Gd,J_=d(()=>{oN();pa();ne();iN();mN();uN();hN();Et();kJ={name:ln,primaryRootInstructionPath:Vn,generateRules:qD,generateCommands:tN,generateAgents:eN,generateSkills:nN,generateMcp:rN,importFrom:sN},EJ={rootInstructionPath:Vn,skillDir:cn,managedOutputs:{dirs:[Qo,qo,ts,cn],files:[Vn,Jn]},paths:{rulePath(t){return `${Qo}/${t}.md`},commandPath(t){return `${qo}/${t}.md`},agentPath(t){return `${ts}/${t}.md`}}},LJ={rootInstructionPath:Js,skillDir:Ys,managedOutputs:{dirs:[la,ca,ma,Ys,lL],files:[Js,Xs]},rewriteGeneratedPath(t){return t===Vn?Js:t===Jn?Xs:t},mirrorGlobalPath(t,e){return dt(t,Ys,e)},paths:{rulePath(t){return `${la}/${t}.md`},commandPath(t){return `${ca}/${t}.md`},agentPath(t){return `${ma}/${t}.md`}}},yN={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Gd={id:ln,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:kJ,capabilities:yN,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:pN,lint:{hooks:dN,permissions:fN,ignore:gN},project:EJ,globalSupport:{capabilities:yN,detectionPaths:[Js,la,ca,ma,Ys,Xs],layout:LJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Vn],global:[Js]},canonicalDir:Fm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Qo],global:[la]},canonicalDir:Fm,extensions:[".md"],map:aN}],commands:{feature:"commands",mode:"directory",source:{project:[qo],global:[ca]},canonicalDir:Ku,extensions:[".md"],map:lN},agents:{feature:"agents",mode:"directory",source:{project:[ts],global:[ma]},canonicalDir:Wu,extensions:[".md"],map:cN}},buildImportPaths:sy,detectionPaths:[Qo,qo,ts,cn,Jn,"opencode.jsonc"]};});function _N(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Yn)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Lr,content:o}]:[]}function RN(t){return it(t,ee)}function IN(t){return t.commands.map(e=>({path:`${ee}/${V(e.name)}/SKILL.md`,content:Ft(e)}))}function SN(t){return t.agents.map(e=>({path:`${ee}/${W(e.name)}/SKILL.md`,content:Tt(e)}))}var CN=d(()=>{rt();Kt();ut();Lt();Ml();s(_N,"generateRules");s(RN,"generateSkills");s(IN,"generateCommands");s(SN,"generateAgents");});async function kN(t,e={}){let r=e.scope??"project",n=[],o=await H(Yn,t,r);return n.push(...await Y(jd,t,r,{normalize:o})),await et(t,r==="global"?Or:ee,Yn,n,o),n}var EN=d(()=>{gt();rt();Ot();Ml();X_();s(kN,"importFromPiAgent");});function LN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Yn}))}var ON=d(()=>{Ct();Ml();s(LN,"lintRules");});function wN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function AN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function bN(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function PN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".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 TN=d(()=>{wt();s(wN,"lintHooks");s(AN,"lintPermissions");s(bN,"lintIgnore");s(PN,"lintMcp");});var OJ,wJ,AJ,xN,jd,X_=d(()=>{Lt();ut();CN();ne();EN();ON();TN();ay();Ml();OJ={name:Yn,primaryRootInstructionPath:Lr,generateRules:_N,generateCommands:IN,generateAgents:SN,generateSkills:RN,importFrom:kN},wJ={rootInstructionPath:Lr,skillDir:ee,managedOutputs:{dirs:[ee],files:[Lr]},paths:{rulePath(t){return Lr},commandPath(t){return `${ee}/${V(t)}/SKILL.md`},agentPath(t){return `${ee}/${W(t)}/SKILL.md`}}},AJ={rootInstructionPath:es,skillDir:Or,managedOutputs:{dirs:[Or],files:[es]},rewriteGeneratedPath(t){return t===Lr?es:t.startsWith(`${ee}/`)?t.replace(`${ee}/`,`${Or}/`):t},mirrorGlobalPath(t,e){return dt(t,Or,e)},paths:{rulePath(t){return es},commandPath(t){return `${Or}/${V(t)}/SKILL.md`},agentPath(t){return `${Or}/${W(t)}/SKILL.md`}}},xN={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},jd={id:Yn,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:OJ,capabilities:xN,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:LN,lint:{hooks:wN,permissions:AN,ignore:bN,mcp:PN},supportsConversion:{commands:true,agents:true},project:wJ,globalSupport:{capabilities:xN,detectionPaths:[es],layout:AJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Lr],global:[es]},canonicalDir:pL,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:iy,detectionPaths:[Lr,ee]};});function DN(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:wr,content:r.body.trim()?r.body:""});let n=t.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()||"");e.push({path:`${rs}/${i}.md`,content:l});}return e}function NN(t){return t.commands.map(e=>{let r={description:e.description,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,e.body.trim()||"");return {path:`${Zn}/${e.name}.md`,content:n}})}function FN(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${Qn}/${e.name}.md`,content:n}})}function vN(t){let e=[];for(let r of t.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()||"");e.push({path:`${He}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${He}/${r.name}/${a}`,content:i.content});}}return e}function MN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Zs,content:e}]}function $N(t){return !t.ignore||t.ignore.length===0?[]:[{path:Qs,content:t.ignore.join(`
|
|
143
|
-
`)}]}var
|
|
144
|
-
`)}]}function
|
|
145
|
-
`)}]}var
|
|
146
|
-
`)}]}var
|
|
147
|
-
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:aR,feature:"ignore"});}}return await yv(t,n,o),await Rv(t,n,o),await Cv(t,n),await kv(t,n),n}var Ov=d(()=>{gt();A();K();ft();Me();rm();Ce();_v();Iv();Ev();s(Lv,"importFromWindsurf");});function wv(t,e,r){let n=[],{rules:o}=t;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(e,o[0].source),target:uo,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:uo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var Av=d(()=>{Ce();s(wv,"lintRules");});function bv(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>x(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Pv(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var Tv=d(()=>{wt();s(bv,"lintCommands");s(Pv,"lintMcp");});function wY(t){if(t.length===0)return null;let e=t.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return e.length!==t.length?null:e.every(r=>r===e[0])?e[0]:null}var AY,bY,PY,TY,xv,Dv=d(()=>{gv();Pi();Ce();ne();Ov();Av();Tv();Et();sl();ut();s(wY,"directoryScopedRuleDir");AY={name:"windsurf",primaryRootInstructionPath:fo,generateRules:mR,generateCommands:uR,generateAgents:dR,generateSkills:hR,generateMcp:fR,generateHooks:gR,generateIgnore:pR,importFrom:Lv},bY={rootInstructionPath:fo,extraRuleOutputPaths(t){if(t.root)return [fo];let e=wY(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:yn,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(t,e){return `${di}/${t}.md`},commandPath(t,e){return `${fi}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`.windsurf/skills/${W(t)}/SKILL.md`:null}}},PY={rootInstructionPath:pc,skillDir:uc,managedOutputs:{dirs:[uc,rp,iv],files:[pc,Jd,Yd,Xd]},rewriteGeneratedPath(t){return t===fo?pc:t.startsWith(`${di}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${yn}/`)?t.replace(`${yn}/`,`${uc}/`):t.startsWith(`${fi}/`)?t.replace(`${fi}/`,`${rp}/`):t===lc?Jd:t===cc?Yd:t===ac?Xd:t},mirrorGlobalPath(t,e){return dt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return pc},commandPath(t,e){return `${rp}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`${uc}/${W(t)}/SKILL.md`:null}}},TY={rules:"native",additionalRules:"partial",commands:Kr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},xv={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:AY,capabilities:{rules:"native",additionalRules:"native",commands:Kr("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:wv,lint:{commands:bv,mcp:Pv},project:bY,globalSupport:{capabilities:TY,detectionPaths:[pc,uc,rp,Jd,Yd,Xd],layout:PY},buildImportPaths:yy,detectionPaths:[".windsurfrules",".windsurf"],conversionDefaults:{agentsToSkills:true}};});function Nv(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:fn,content:o}]:[]}var Fv=d(()=>{Kt();_a();s(Nv,"generateRules");});async function Mv(t,e,r){let n=await _(join(t,e));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 Wt(t,vv,l),r.push({fromTool:"zed",fromPath:e,toPath:vv,feature:"mcp"}));}var vv,$v=d(()=>{A();Vr();_a();vv=".agentsmesh/mcp.json";s(Mv,"importZedMcp");});async function Gv(t,e={}){let r=e.scope??"project",n=[],o=await H("zed",t,r);return n.push(...await Y(Qd,t,r,{normalize:o})),await Mv(t,r==="global"?so:oo,n),n}var jv=d(()=>{gt();Ot();$v();_a();_R();s(Gv,"importFromZed");});function Uv(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var Bv=d(()=>{Ct();_a();s(Uv,"lintRules");});function Kv(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Wv(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function Hv(t){return t.ignore.length===0?[]:[x(".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 zv=d(()=>{wt();s(Kv,"lintHooks");s(Wv,"lintPermissions");s(Hv,"lintIgnore");});function $Y(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var DY,NY,FY,vY,MY,Qd,_R=d(()=>{Fv();jv();Bv();zv();Et();_a();DY={name:"zed",primaryRootInstructionPath:fn,generateRules:Nv,importFrom:Gv},NY={rootInstructionPath:fn,managedOutputs:{dirs:[],files:[fn,oo]},paths:{rulePath(t){return fn},commandPath(){return null},agentPath(){return null}}},FY={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[so]},rewriteGeneratedPath(t){return t===oo?so:t},paths:{rulePath(){return so},commandPath(){return null},agentPath(){return null}}},vY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},MY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s($Y,"mergeZedSettings");Qd={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:DY,capabilities:vY,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:Uv,lint:{hooks:Kv,permissions:Wv,ignore:Hv},project:NY,globalSupport:{capabilities:MY,detectionPaths:[so],layout:FY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[fn],global:[]},canonicalDir:TL,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let r={};for(let[n,o]of Object.entries(t.mcp.mcpServers))r[n]=o;return [{path:oo,content:JSON.stringify({context_servers:r},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===oo||n===so?$Y(t,r):null},buildImportPaths:_y,detectionPaths:[fn,oo]};});var aE={};_g(aE,{BUILTIN_TARGETS:()=>bt,TARGET_IDS:()=>vt,getBuiltinTargetDefinition:()=>Fr,getEffectiveTargetSupportLevel:()=>qd,getTargetCapabilities:()=>pi,getTargetDetectionPaths:()=>IR,getTargetLayout:()=>Bt,getTargetManagedOutputs:()=>SR,getTargetPrimaryRootInstructionPath:()=>jY,getTargetSkillDir:()=>np,isBuiltinTargetId:()=>Fe,resolveTargetFeatureGenerator:()=>dc,rewriteGeneratedOutputPath:()=>CR});function GY(){return RR||(UC(bt),RR=new Map(bt.map(t=>[t.id,t]))),RR}function Fr(t){return GY().get(t)}function pi(t,e="project"){let r=Fr(t)??ot(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return GC(n)}function IR(t,e="project"){let r=Fr(t)??ot(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Bt(t,e="project"){let r=Fr(t)??ot(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function jY(t,e="project"){return Bt(t,e)?.rootInstructionPath}function np(t,e="project"){return Bt(t,e)?.skillDir}function SR(t,e="project"){return Bt(t,e)?.managedOutputs}function CR(t,e,r="project"){let n=Bt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function Vv(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!ol(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!or(r,t.id,true,n):false}function UY(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?ol(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?or(r,t.id,true,n):false}function qd(t,e,r,n="project"){let o=pi(t,n)?.[e]?.level??"none",i=Fr(t)??ot(t);return o==="none"&&UY(i,e,r,n)?"embedded":o!=="embedded"?o:Vv(i,e,r,n)?"none":o}function dc(t,e,r,n="project"){let o=Fr(t)??ot(t);if(!o?.generators||Vv(o,e,r,n))return;let i=BY[e];return i===null?void 0:i(o.generators)}var bt,RR,BY,Pt=d(()=>{sl();Pi();ae();Jg();Sn();uh();Ry();Iy();Cy();jO();Ly();tA();WA();zy();Qy();t_();g_();h_();y_();v_();M_();$_();G_();W_();z_();J_();X_();Z_();Q_();eR();rR();nR();oR();Dv();_R();bt=[_u,Ju,Yu,Xu,GO,Zu,qw,KA,od,md,ud,Sd,Cd,kd,Td,xd,Dd,Nd,Md,$d,Gd,jd,Ud,Bd,Wd,Hd,zd,Vd,xv,Qd];s(GY,"builtinTargetsMap");s(Fr,"getBuiltinTargetDefinition");s(pi,"getTargetCapabilities");s(IR,"getTargetDetectionPaths");s(Bt,"getTargetLayout");s(jY,"getTargetPrimaryRootInstructionPath");s(np,"getTargetSkillDir");s(SR,"getTargetManagedOutputs");s(CR,"rewriteGeneratedOutputPath");s(Vv,"isFeatureSuppressedByConversion");s(UY,"isConversionUpgrading");s(qd,"getEffectiveTargetSupportLevel");BY={rules:s(t=>t.generateRules,"rules"),additionalRules:null,commands:s(t=>t.generateCommands,"commands"),agents:s(t=>t.generateAgents,"agents"),skills:s(t=>t.generateSkills,"skills"),mcp:s(t=>t.generateMcp,"mcp"),permissions:s(t=>t.generatePermissions,"permissions"),hooks:s(t=>t.generateHooks,"hooks"),ignore:s(t=>t.generateIgnore,"ignore")};s(dc,"resolveTargetFeatureGenerator");});function HY(t,e){return t.uniqueHits!==e.uniqueHits?e.uniqueHits-t.uniqueHits:t.sharedScore!==e.sharedScore?e.sharedScore-t.sharedScore:t.id.localeCompare(e.id)}async function tf(t){let e=[];for(let n of bt){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(t,a)))continue;let l=WY.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&e.push({id:n.id,uniqueHits:o,sharedScore:i});}if(e.length===0)return null;e.sort(HY);let r=e[0];return r.uniqueHits===0?null:r.id}var WY,Jv,kR=d(()=>{A();Pt();WY=(()=>{let t=new Map;for(let e of bt)for(let r of e.detectionPaths)t.set(r,(t.get(r)??0)+1);return t})();s(HY,"compare");s(tf,"detectNativeFormat");Jv=bt.map(t=>t.detectionPaths[0]).filter(t=>t!==void 0);});async function op(t,e){let r=ot(e);if(!r)throw new Error(`No importer registered for native target: ${e}`);return r.generators.importFrom(t)}var ER=d(()=>{ae();s(op,"importNativeToCanonical");});async function xa(t){if(!await j(t))return false;if(await j(join(t,OR)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(t,r.name,OR)))return !0}catch{return false}return false}async function sp(t,e={}){if(!await j(t))return [];if(await j(join(t,OR))){let r=await eu(t,e);return r?[r]:[]}return Os(t,e)}var OR,ef=d(()=>{A();rl();OR="SKILL.md";s(xa,"isSkillPackLayout");s(sp,"loadSkillsAtExtendPath");});async function rf(t,e={}){return (await Ls(t,e)).filter(n=>!Cn(basename(n.source)))}async function nf(t,e={}){return (await Es(t,e)).filter(n=>!Cn(basename(n.source)))}async function of(t,e={}){return (await ks(t,e)).filter(n=>!Cn(basename(n.source)))}async function Yv(t,e={}){return Os(t,e)}var sf=d(()=>{Yc();Jc();Vc();rl();Eo();s(rf,"importAgents");s(nf,"importCommands");s(of,"importRules");s(Yv,"importSkills");});function AR(t,e){let r=t?.[e];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 bR(t){return t.toLowerCase().endsWith(".md")}function Zv(t,e){for(let r of AR(ot(t)?.importer,e))if(r.extensions.some(n=>!bR(n)))return true;return false}function qY(t,e){let r=new Set;for(let n of AR(ot(t)?.importer,e))for(let o of n.extensions)bR(o)||r.add(o.toLowerCase());return r}function t2(t){return vC().filter(e=>Zv(e,t))}async function n2(t,e,r){return e2[t](e,r)}async function o2(t,e,r){return r2[t](e,r)}async function s2(t,e,r,n={}){let o=AR(ot(e)?.importer,r),i=await $(t),a=new Set;for(let p of o)for(let u of p.extensions)bR(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!Cn(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${e}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await _(u);if(f===null)continue;let g=relative(t,u).replaceAll("\\","/"),h=null;for(let I of o){if(!I.extensions.some(R=>u.toLowerCase().endsWith(R.toLowerCase())))continue;let C=await I.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(C){h=C;break}}h&&(await O(dirname(h.destPath)),await S(h.destPath,h.content));}return {entities:await n2(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function PR(t,e,r={}){let n=r.restrictToTarget,o=n?Zv(n,e)?[n]:[]:t2(e),i=new Set;for(let f of o)for(let g of qY(f,e))i.add(g);let a=await o2(e,t,{...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 s2(t,f,e,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let I=c(h);m.has(I)||m.set(I,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 af(t,e={}){let r=await PR(t,"commands",e);return {commands:[...r.entities],cleanup:r.cleanup}}async function lf(t,e={}){let r=await PR(t,"rules",e);return {rules:[...r.entities],cleanup:r.cleanup}}async function cf(t,e={}){let r=await PR(t,"agents",e);return {agents:[...r.entities],cleanup:r.cleanup}}var e2,r2,mf=d(()=>{Yc();Jc();Vc();A();ae();Eo();sf();s(AR,"directorySpecsFor");s(bR,"isMarkdownExtension");s(Zv,"hasNonMdEntityMapper");s(qY,"nonMdEntityExtensions");s(t2,"targetsWithNonMdEntityMapper");e2={rules:ks,commands:Es,agents:Ls},r2={rules:of,commands:nf,agents:rf};s(n2,"parseEntityDir");s(o2,"importEntities");s(s2,"readToolNativeEntities");s(PR,"readEntityDirWithMappers");s(af,"readCommandsDirWithMappers");s(lf,"readRulesDirWithMappers");s(cf,"readAgentsDirWithMappers");});function l2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function c2(t){return t.rules.length===0&&t.commands.length===0&&t.agents.length===0&&t.skills.length===0&&t.mcp===null&&t.permissions===null&&t.hooks===null&&t.ignore.length===0}async function pf(t){if(!await j(t))throw new Error(`Path does not exist: ${t}`);let e=await stat(t);if(e.isDirectory())return {sliceRoot:t};if(!e.isFile()||!t.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${t}`);let r=dirname(t),n=basename(r),i=basename(t).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: ${t}`)}async function DR(t,e){if(basename(t)===e)return t;let r=join(t,e);return await j(r)?r:null}async function m2(t,e,r){let n=s(async()=>{},"noop"),o=await DR(t,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await of(o,e),cleanup:n};let i=await lf(o,{parseOpts:e});return {rules:[...i.rules],cleanup:i.cleanup}}async function p2(t,e,r){let n=s(async()=>{},"noop"),o=await DR(t,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await nf(o,e),cleanup:n};let i=await af(o,{parseOpts:e});return {commands:[...i.commands],cleanup:i.cleanup}}async function u2(t,e,r){let n=s(async()=>{},"noop"),o=await DR(t,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await rf(o,e),cleanup:n};let i=await cf(o,{parseOpts:e});return {agents:[...i.agents],cleanup:i.cleanup}}async function d2(t,e){if(await xa(t))return sp(t,e);let r=join(t,"skills");return await xa(r)?sp(r,e):[]}async function uf(t,e={}){let r=s(async()=>{},"noop"),n=join(t,".agentsmesh");if(await j(n))return {canonical:await Oe(t,e),cleanup:r};let o=e.enableTargetEntityMappers??false,i=l2(),a=await m2(t,e,o);i.rules=a.rules;let l=await p2(t,e,o);i.commands=l.commands;let c=await u2(t,e,o);i.agents=c.agents,i.skills=await d2(t,e);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(c2(i))throw await m(),new Error(`No installable resources at ${t}. 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 NR=d(()=>{A();sf();mf();bi();ef();s(l2,"emptyCanonical");s(c2,"isCanonicalSliceEmpty");s(pf,"normalizeSlicePath");s(DR,"resolveEntityDir");s(m2,"parseRulesAt");s(p2,"parseCommandsAt");s(u2,"parseAgentsAt");s(d2,"loadSkillsForPartialSlice");s(uf,"loadCanonicalSliceAtPath");});async function df(t){let e=await _(t);if(!e)return "";let r=Gr(e,t);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 Qv(t,e){await cp$1(t,e,{recursive:true,filter:s(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(LC(o)||!n.includes("/")&&(qp(n)||OC(n)))},"filter")});}var FR=d(()=>{A();K();Eo();s(df,"readSkillFrontmatterName");s(Qv,"cpFilteredSkill");});function vR(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function h2(t){let e={...t},r=t.alwaysApply===true;if(e.root=r,delete e.alwaysApply,!r){let n=vR(t.globs),o=typeof t.description=="string"?t.description.trim():"";n.length>0?e.trigger="glob":o.length>0?e.trigger="model_decision":e.trigger="manual";}return e}function y2(t){let e={...t};return e.trigger==="always"&&(e.trigger="always_on"),typeof e.glob=="string"&&(e.globs=vR(e.globs).length>0?vR(e.globs):[e.glob],delete e.glob),e}function MR(t){let e=Gr(t,"<mdc>");if(!e.ok)return e.bodyFallback;let{frontmatter:r,body:n}=e.value;if(Object.keys(r).length===0&&!t.startsWith("---"))return t;let o;return "alwaysApply"in r?o=h2(r):"trigger"in r||"glob"in r?o=y2(r):o=r,T(o,n.trim())}var qv=d(()=>{K();s(vR,"toStrArray");s(h2,"normalizeCursorKeys");s(y2,"normalizeWindsurfKeys");s(MR,"normalizeMdcToCanonical");});function $R(t){return t.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function GR(t){return t.toLowerCase().endsWith(".mdc")?basename(t).replace(/\.mdc$/i,".md"):basename(t)}function eM(t,e,r){let o=relative(t,e).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=$R(o[o.length-1]);return i?`${i}-${r}`:r}var rM=d(()=>{s($R,"sanitizeNameSegment");s(GR,"computeDestName");s(eM,"namespacedName");});async function C2(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await O(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup")}}function iM(t,e){let r=t.toLowerCase();return !!(r.endsWith(".md")||e&&r.endsWith(".mdc"))}async function k2(t,e,r){if(!iM(t,r))throw new Error(`Manual install only supports .md files for this collection: ${t}`);if(await O(e),t.toLowerCase().endsWith(".mdc")){let n=await _(t);if(!n)return;let o=basename(t).replace(/\.mdc$/i,".md");await writeFile(join(e,o),MR(n));}else await cp$1(t,join(e,basename(t)));}async function E2(t,e,r){if((await stat(t)).isFile())return k2(t,e,r);let o=(await $(t)).filter(l=>iM(l,r)&&!Cn(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${t} 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=GR(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(e);for(let l of o){let c=GR(l),p=(i.get(c)??0)>1?eM(t,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(t,l).replace(/\\/g,"/").split("/").map($R).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 ${t} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await _(l);if(!f)continue;await writeFile(join(e,p),MR(f));}else await cp$1(l,join(e,p));}}async function nM(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await $(t)){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 ${t} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await O(e);for(let i of r)await cp$1(o.get(i),join(e,i),{recursive:true});return true}async function L2(t,e,r={}){if((await stat(t)).isFile()){if(basename(t)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${t}`);let o=basename(dirname(t)),i=join(e,o);await O(i),await cp$1(dirname(t),i,{recursive:true});return}if(await xa(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await nM(t,e,r.preferredSkillNames??[]))return;let l=await df(join(t,"SKILL.md"))||basename(t),c=join(e,l);await O(e),await Qv(t,c);return}if(await nM(t,e,r.preferredSkillNames??[]))return;await O(e);let o=await $(t),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(t,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp$1(join(t,a),join(e,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${t}.`)}async function gf(t,e,r={}){let n=await C2();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await L2(t,o,r):await E2(t,o,e==="rules"),n}catch(o){throw await n.cleanup(),o}}var UR=d(()=>{A();ef();FR();Eo();qv();rM();s(C2,"createStageRoot");s(iM,"isAcceptedFile");s(k2,"stageSingleFile");s(E2,"stageMarkdownCollection");s(nM,"stagePreferredSkills");s(L2,"stageSkills");s(gf,"stageManualInstallScope");});function O2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function aM(t){let e=t.resolvedPath;if(t.as!==void 0){let o=t.path?join(e,t.path):e;if(!await j(o))throw new Error(`Extend "${t.name}": path does not exist: ${o}`);let i=await gf(o,t.as);try{return Oe(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!t.path){let o=join(e,".agentsmesh");if(!await j(o)){if(await xa(e)){let a=await sp(e);return {...O2(),skills:a}}let i=t.target??await tf(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
148
|
-
Expected one of: .agentsmesh/, ${
|
|
145
|
+
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let S=await Yt(m,h,g),C=r(S,n,m);await I(m,C),e.push({feature:"agents",fromTool:Ie,fromPath:n,toPath:`${la}/${c}.md`});}}async function zD(t,e={}){let r=e.scope??"project",n=[],o=await W(Ie,t,r);return n.push(...await Y(Vd,t,r,{normalize:o})),await et(t,nn,Ie,n,o),r==="project"&&(await FJ(t,n,o),await vJ(t,n,o),await MJ(t,n,o),await et(t,oa,Ie,n,o)),n}var sR,iR,VD=d(()=>{gt();rt();$e();Ot();A();ft();U();oR();ca();aR();sR=`${Ys}/_root.md`,iR="00-root.md";s(HD,"pathExists");s(FJ,"importLegacyRules");s(vJ,"importLegacyWorkflows");s(MJ,"importLegacyModes");s(zD,"importFromKiloCode");});function JD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ie}))}var YD=d(()=>{Ct();ca();s(JD,"lintRules");});function XD(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}function ZD(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".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 QD=d(()=>{wt();s(XD,"lintHooks");s(ZD,"lintPermissions");});var $J,GJ,jJ,qD,Vd,aR=d(()=>{KD();ca();oe();VD();oR();YD();QD();Et();$J={name:Ie,primaryRootInstructionPath:Jn,generateRules:MD,generateCommands:$D,generateAgents:GD,generateSkills:BD,generateMcp:jD,generateIgnore:UD,importFrom:zD},GJ={rootInstructionPath:Jn,skillDir:nn,managedOutputs:{dirs:[Xo,Zo,Qo,nn],files:[Jn,zs,Dl]},paths:{rulePath(t,e){return `${Xo}/${t}.md`},commandPath(t,e){return `${Zo}/${t}.md`},agentPath(t,e){return `${Qo}/${t}.md`}}},jJ={rootInstructionPath:Vs,skillDir:Js,managedOutputs:{dirs:[sa,ia,aa,Js,SL],files:[Vs,vl,Zu]},rewriteGeneratedPath(t){return t===Jn?Vs:t},mirrorGlobalPath(t,e){return dt(t,Js,e)},paths:{rulePath(t,e){return `${sa}/${t}.md`},commandPath(t,e){return `${ia}/${t}.md`},agentPath(t,e){return `${aa}/${t}.md`}}},qD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Vd={id:Ie,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:$J,capabilities:qD,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:JD,lint:{hooks:XD,permissions:ZD},project:GJ,globalSupport:{capabilities:qD,detectionPaths:[Vs,sa,ia,aa,Js,vl,Zu],layout:jJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Jn],global:[Vs]},canonicalDir:Ys,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Xo],global:[sa]},canonicalDir:Ys,extensions:[".md"],map:Hd}],commands:{feature:"commands",mode:"directory",source:{project:[Zo],global:[ia]},canonicalDir:Ml,extensions:[".md"],map:zd},agents:{feature:"agents",mode:"directory",source:{project:[Qo],global:[aa]},canonicalDir:la,extensions:[".md"],map:WD},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[zs,Mm],global:[vl]},canonicalDir:".agentsmesh",canonicalFilename:IL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Dl],global:[Zu]},canonicalDir:".agentsmesh",canonicalFilename:CL}},buildImportPaths:hy,detectionPaths:[Xo,Zo,Qo,nn,zs,na,Nl,oa,Mm,Xu,Dl,"kilo.jsonc","kilo.json"]};});function tN(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function KJ(t){return t.type==="prompt"?t.prompt:t.command}function WJ(t,e){let r=eN[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}function rN(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in eN)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=KJ(a);if(!l)continue;let c={name:`${tN(r)} ${i}`,version:"1",when:WJ(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${tN(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return e}function HJ(t){let e=BJ.get(t.when.type);if(!e)return null;let r=t.when.tools?.[0]??t.when.patterns?.[0]??"*";return t.then.type==="askAgent"&&typeof t.then.prompt=="string"?{event:e,entry:{matcher:r,command:t.then.prompt,prompt:t.then.prompt,type:"prompt"}}:t.then.type==="shellCommand"&&typeof t.then.command=="string"?{event:e,entry:{matcher:r,command:t.then.command,type:"command"}}:null}function nN(t){let e;try{e=JSON.parse(t);}catch{return null}if(!e||typeof e!="object"||Array.isArray(e))return null;let r=e;return !r.when||!r.then||typeof r.when.type!="string"?null:HJ(r)}function oN(t){return stringify(t).trimEnd()}var eN,BJ,lR=d(()=>{eN={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},BJ=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(tN,"toKebab");s(KJ,"hookText");s(WJ,"toWhen");s(rN,"generateKiroHooks");s(HJ,"toCanonicalEntry");s(nN,"parseKiroHookFile");s(oN,"serializeCanonicalHooks");});function VJ(t){let e={};return t.globs.length>0?(e.inclusion="fileMatch",e.fileMatchPattern=t.globs.length===1?t.globs[0]:t.globs):t.trigger==="manual"?e.inclusion="manual":t.trigger==="model_decision"?e.inclusion="auto":e.inclusion="always",t.description&&(e.description=t.description),e}function sN(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:on,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(He))continue;let o=basename(n.source,".md");e.push({path:`${sn}/${o}.md`,content:T(VJ(n),n.body.trim()||"")});}return e}function iN(t){return t.commands.map(e=>({path:`${Ce}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function aN(t){return st(t,Ce)}function lN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:$l,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function cN(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:rN(t.hooks).map(e=>({path:`${Xs}/${e.name}`,content:e.content}))}function mN(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${an}/${e.name}.md`,content:n}})}function pN(t){return t.ignore.length===0?[]:[{path:Gl,content:t.ignore.join(`
|
|
146
|
+
`)}]}var uN=d(()=>{rt();Lt();U();lR();jl();s(VJ,"steeringFrontmatter");s(sN,"generateRules");s(iN,"generateCommands");s(aN,"generateSkills");s(lN,"generateMcp");s(cN,"generateHooks");s(mN,"generateAgents");s(pN,"generateIgnore");});function YJ(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:xo(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function XJ(t,e,r,n){let o=n==="global"?[ln,on]:[on,ln];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,yy),{frontmatter:m,body:p}=P(r(l,a,c));await I(c,await z(c,{...m,root:true},p)),e.push({fromTool:He,fromPath:a,toPath:yy,feature:"rules"});return}}async function ZJ(t,e,r){let n=join(t,_y);e.push(...await It({srcDir:join(t,sn),destDir:n,extensions:[".md"],fromTool:He,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}=P(i(a));return {destPath:a,toPath:`${_y}/${o}`,feature:"rules",content:await z(a,YJ(l),c)}},"mapEntry")}));}async function QJ(t,e){let r={};for(let o of await G(join(t,Xs))){if(!o.endsWith(".kiro.hook"))continue;let i=nN(await _(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(t,Ry);await O(join(t,".agentsmesh")),await I(n,oN(r)),e.push({fromTool:He,fromPath:join(t,Xs),toPath:Ry,feature:"hooks"});}async function dN(t,e={}){let r=e.scope??"project",n=[],o=await W(He,t,r);return await XJ(t,n,o,r),await ZJ(t,n,o),n.push(...await Y(Jd,t,r,{normalize:o})),await et(t,Ce,He,n,o),r==="project"&&await QJ(t,n),n}var fN=d(()=>{gt();rt();$e();Ot();ft();mr();A();U();lR();jl();cR();s(YJ,"canonicalRuleMeta");s(XJ,"importRoot");s(ZJ,"importNonRootRules");s(QJ,"importHooks");s(dN,"importFromKiro");});function gN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:He}))}var hN=d(()=>{Ct();jl();s(gN,"lintRules");});function yN(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(e);return Object.keys(t.hooks).filter(n=>!r.has(n)).map(n=>Fs(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var _N=d(()=>{wt();s(yN,"lintHooks");});var qJ,tY,eY,rY,Jd,cR=d(()=>{Lt();uN();oe();fN();hN();_N();Et();jl();qJ={name:He,primaryRootInstructionPath:on,generateRules:sN,generateCommands:iN,generateAgents:mN,generateSkills:aN,generateMcp:lN,generateHooks:cN,generateIgnore:pN,importFrom:dN},tY={rootInstructionPath:on,skillDir:Ce,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${sn}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${an}/${t}.md`}}},eY={rootInstructionPath:ln,skillDir:Zs,managedOutputs:{dirs:[ma,Zs,pa,EL],files:[ln,Gm,jm]},rewriteGeneratedPath(t){return t===on?ln:t.startsWith(`${sn}/`)?t.replace(`${sn}/`,`${ma}/`):t.startsWith(`${Ce}/`)?t.replace(`${Ce}/`,`${Zs}/`):t.startsWith(`${an}/`)?t.replace(`${an}/`,`${pa}/`):t===$l?Gm:t===Gl?jm:t.startsWith(`${Xs}/`)?null:t},mirrorGlobalPath(t,e){return dt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${ma}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${pa}/${t}.md`}}},rY={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Jd={id:He,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:qJ,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:gN,lint:{hooks:yN},project:tY,globalSupport:{capabilities:rY,detectionPaths:[ma,ln,Zs,pa,Gm,jm],layout:eY},importer:{agents:{feature:"agents",mode:"directory",source:{project:[an],global:[an]},canonicalDir:LL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[$l],global:[Gm]},canonicalDir:".agentsmesh",canonicalFilename:OL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Gl],global:[jm]},canonicalDir:".agentsmesh",canonicalFilename:wL}},buildImportPaths:Sy,detectionPaths:[sn,Ce,an,Xs,$l,Gl],conversionDefaults:{commandsToSkills:true}};});function SN(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Yn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(cn))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()||"";e.push({path:`${qo}/${o}.md`,content:a});}return e}function IN(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${ts}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function CN(t){return t.agents.map(e=>{let r=basename(e.source,".md"),n={mode:"subagent"};return e.description&&(n.description=e.description),e.model&&(n.model=e.model),e.tools.length>0&&(n.tools=e.tools),e.disallowedTools.length>0&&(n.disallowedTools=e.disallowedTools),{path:`${es}/${r}.md`,content:T(n,e.body.trim()||"")}})}function nY(t){if("url"in t){let r={type:"remote",url:t.url};return Object.keys(t.headers).length>0&&(r.headers=t.headers),t.description&&(r.description=t.description),r}let e={type:"local",command:[t.command,...t.args]};return Object.keys(t.env).length>0&&(e.environment=t.env),t.description&&(e.description=t.description),e}function kN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e={};for(let[r,n]of Object.entries(t.mcp.mcpServers))e[r]=nY(n);return [{path:Xn,content:JSON.stringify({mcp:e},null,2)}]}function EN(t){return st(t,mn)}var LN=d(()=>{rt();U();ga();s(SN,"generateRules");s(IN,"generateCommands");s(CN,"generateAgents");s(nY,"toOpenCodeMcpServer");s(kN,"generateMcp");s(EN,"generateSkills");});function mR(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))typeof n=="string"&&(e[r]=n);return e}function sY(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e.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:mR(a.headers),env:mR(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:mR(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function iY(t,e,r){let o=join(t,e==="global"?ti:Xn),i=await _(o);if(i===null)return;let a=sY(i);Object.keys(a).length!==0&&(await Ht(t,Iy,a),r.push({feature:"mcp",fromTool:cn,fromPath:o,toPath:Iy}));}async function ON(t,e={}){let r=e.scope??"project",n=[],o=await W(cn,t,r);return n.push(...await Y(Yd,t,r,{normalize:o})),await et(t,mn,cn,n,o),await iY(t,r,n),n}var wN=d(()=>{gt();rt();Ot();Jr();A();ga();pR();s(mR,"toStringRecord");s(sY,"parseOpenCodeMcp");s(iY,"importMcp");s(ON,"importFromOpenCode");});var AN,bN,PN,xN=d(()=>{U();ft();ga();AN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Um}/${t}`,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"),bN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${qu}/${t}`,content:await St(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),PN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${td}/${t}`,content:await Yt(n,o,i)}},"opencodeAgentMapper");});function TN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:cn}))}var DN=d(()=>{Ct();ga();s(TN,"lintRules");});function NN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function FN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function vN(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var MN=d(()=>{wt();s(NN,"lintHooks");s(FN,"lintPermissions");s(vN,"lintIgnore");});var aY,lY,cY,$N,Yd,pR=d(()=>{LN();ga();oe();wN();xN();DN();MN();Et();aY={name:cn,primaryRootInstructionPath:Yn,generateRules:SN,generateCommands:IN,generateAgents:CN,generateSkills:EN,generateMcp:kN,importFrom:ON},lY={rootInstructionPath:Yn,skillDir:mn,managedOutputs:{dirs:[qo,ts,es,mn],files:[Yn,Xn]},paths:{rulePath(t){return `${qo}/${t}.md`},commandPath(t){return `${ts}/${t}.md`},agentPath(t){return `${es}/${t}.md`}}},cY={rootInstructionPath:Qs,skillDir:qs,managedOutputs:{dirs:[ua,da,fa,qs,bL],files:[Qs,ti]},rewriteGeneratedPath(t){return t===Yn?Qs:t===Xn?ti:t},mirrorGlobalPath(t,e){return dt(t,qs,e)},paths:{rulePath(t){return `${ua}/${t}.md`},commandPath(t){return `${da}/${t}.md`},agentPath(t){return `${fa}/${t}.md`}}},$N={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Yd={id:cn,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:aY,capabilities:$N,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:TN,lint:{hooks:NN,permissions:FN,ignore:vN},project:lY,globalSupport:{capabilities:$N,detectionPaths:[Qs,ua,da,fa,qs,ti],layout:cY},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Yn],global:[Qs]},canonicalDir:Um,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[qo],global:[ua]},canonicalDir:Um,extensions:[".md"],map:AN}],commands:{feature:"commands",mode:"directory",source:{project:[ts],global:[da]},canonicalDir:qu,extensions:[".md"],map:bN},agents:{feature:"agents",mode:"directory",source:{project:[es],global:[fa]},canonicalDir:td,extensions:[".md"],map:PN}},buildImportPaths:Cy,detectionPaths:[qo,ts,es,mn,Xn,"opencode.jsonc"]};});function GN(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Zn)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:Or,content:o}]:[]}function jN(t){return st(t,re)}function UN(t){return t.commands.map(e=>({path:`${re}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function BN(t){return t.agents.map(e=>({path:`${re}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}var KN=d(()=>{rt();Kt();ut();Lt();Bl();s(GN,"generateRules");s(jN,"generateSkills");s(UN,"generateCommands");s(BN,"generateAgents");});async function WN(t,e={}){let r=e.scope??"project",n=[],o=await W(Zn,t,r);return n.push(...await Y(Xd,t,r,{normalize:o})),await et(t,r==="global"?wr:re,Zn,n,o),n}var HN=d(()=>{gt();rt();Ot();Bl();dR();s(WN,"importFromPiAgent");});function zN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Zn}))}var VN=d(()=>{Ct();Bl();s(zN,"lintRules");});function JN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function YN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function XN(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function ZN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".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 QN=d(()=>{wt();s(JN,"lintHooks");s(YN,"lintPermissions");s(XN,"lintIgnore");s(ZN,"lintMcp");});var mY,pY,uY,qN,Xd,dR=d(()=>{Lt();ut();KN();oe();HN();VN();QN();Ey();Bl();mY={name:Zn,primaryRootInstructionPath:Or,generateRules:GN,generateCommands:UN,generateAgents:BN,generateSkills:jN,importFrom:WN},pY={rootInstructionPath:Or,skillDir:re,managedOutputs:{dirs:[re],files:[Or]},paths:{rulePath(t){return Or},commandPath(t){return `${re}/${V(t)}/SKILL.md`},agentPath(t){return `${re}/${K(t)}/SKILL.md`}}},uY={rootInstructionPath:rs,skillDir:wr,managedOutputs:{dirs:[wr],files:[rs]},rewriteGeneratedPath(t){return t===Or?rs:t.startsWith(`${re}/`)?t.replace(`${re}/`,`${wr}/`):t},mirrorGlobalPath(t,e){return dt(t,wr,e)},paths:{rulePath(t){return rs},commandPath(t){return `${wr}/${V(t)}/SKILL.md`},agentPath(t){return `${wr}/${K(t)}/SKILL.md`}}},qN={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Xd={id:Zn,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:mY,capabilities:qN,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:zN,lint:{hooks:JN,permissions:YN,ignore:XN,mcp:ZN},supportsConversion:{commands:true,agents:true},project:pY,globalSupport:{capabilities:qN,detectionPaths:[rs],layout:uY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Or],global:[rs]},canonicalDir:TL,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:ky,detectionPaths:[Or,re]};});function tF(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Ar,content:r.body.trim()?r.body:""});let n=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(pn)));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()||"");e.push({path:`${ns}/${i}.md`,content:l});}return e}function eF(t){return t.commands.map(e=>{let r={description:e.description,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=T(r,e.body.trim()||"");return {path:`${Qn}/${e.name}.md`,content:n}})}function rF(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${qn}/${e.name}.md`,content:n}})}function nF(t){let e=[];for(let r of t.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()||"");e.push({path:`${ze}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${ze}/${r.name}/${a}`,content:i.content});}}return e}function oF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ei,content:e}]}function sF(t){return !t.ignore||t.ignore.length===0?[]:[{path:ri,content:t.ignore.join(`
|
|
147
|
+
`)}]}function iF(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes(pn));return at(e?.body.trim()??"",r)}var aF=d(()=>{U();Kt();Kl();s(tF,"generateRules");s(eF,"generateCommands");s(rF,"generateAgents");s(nF,"generateSkills");s(oF,"generateMcp");s(sF,"generateIgnore");s(iF,"renderQwenGlobalInstructions");});async function lF(t,e={}){let r=e.scope??"project",n=[],o=await W(pn,t,r);return n.push(...await Y(Zd,t,r,{normalize:o})),await et(t,r==="global"?to:ze,pn,n,o),n}var cF=d(()=>{gt();Ot();rt();Kl();fR();s(lF,"importFromQwenCode");});function mF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:pn}))}var pF=d(()=>{Ct();Kl();s(mF,"lintRules");});var fY,gY,hY,yY,_Y,Zd,fR=d(()=>{aF();cF();pF();Et();Kl();fY={name:pn,primaryRootInstructionPath:Ar,generateRules:tF,generateCommands:eF,generateAgents:rF,generateSkills:nF,generateMcp:oF,generateIgnore:sF,importFrom:lF},gY={rootInstructionPath:Ar,skillDir:ze,managedOutputs:{dirs:[ns,Qn,qn,ze],files:[Ar,ei,ri]},paths:{rulePath(t,e){return e.root?Ar:`${ns}/${t}.md`},commandPath(t){return `${Qn}/${t}.md`},agentPath(t){return `${qn}/${t}.md`}}},hY={rootInstructionPath:os,renderPrimaryRootInstruction:iF,skillDir:to,managedOutputs:{dirs:[ni,oi,to],files:[os,ha]},rewriteGeneratedPath(t){return t===Ar?os:t===ei?ha:t===ri?null:t.startsWith(`${Qn}/`)?t.replace(`${Qn}/`,`${ni}/`):t.startsWith(`${qn}/`)?t.replace(`${qn}/`,`${oi}/`):t.startsWith(`${ze}/`)?t.replace(`${ze}/`,`${to}/`):t.startsWith(`${ns}/`)?null:t},paths:{rulePath(t,e){return os},commandPath(t){return `${ni}/${t}.md`},agentPath(t){return `${oi}/${t}.md`}}},yY={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},_Y={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Zd={id:pn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:fY,capabilities:yY,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:mF,project:gY,globalSupport:{capabilities:_Y,detectionPaths:[os,ha,ni,oi,to],layout:hY},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Ar],global:[os]},canonicalDir:Ly,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ns],global:[]},canonicalDir:Ly,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[Qn],global:[ni]},canonicalDir:DL,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[qn],global:[oi]},canonicalDir:NL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ei],global:[ha]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ri],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}},buildImportPaths:Oy,detectionPaths:[Ar,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function uF(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(eo)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:un,content:o}]:[]}function dF(t){return st(t,Pe)}function fF(t){return t.commands.map(e=>({path:`${Pe}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function gF(t){return t.agents.map(e=>({path:`${Pe}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}var hF=d(()=>{rt();Kt();ut();Lt();Wl();s(uF,"generateRules");s(dF,"generateSkills");s(fF,"generateCommands");s(gF,"generateAgents");});async function yF(t,e={}){let r=e.scope??"project",n=[],o=await W(eo,t,r);return n.push(...await Y(Qd,t,r,{normalize:o})),await et(t,Pe,eo,n,o),n}var _F=d(()=>{gt();rt();Ot();Wl();gR();s(yF,"importFromReplitAgent");});function RF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:eo}))}var SF=d(()=>{Ct();Wl();s(RF,"lintRules");});function IF(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function CF(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function kF(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function EF(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".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 LF=d(()=>{wt();s(IF,"lintHooks");s(CF,"lintPermissions");s(kF,"lintIgnore");s(EF,"lintMcp");});var RY,SY,IY,Qd,gR=d(()=>{Lt();ut();hF();_F();SF();LF();Ay();Wl();RY={name:eo,primaryRootInstructionPath:un,generateRules:uF,generateCommands:fF,generateAgents:gF,generateSkills:dF,importFrom:yF},SY={rootInstructionPath:un,skillDir:Pe,managedOutputs:{dirs:[Pe],files:[un]},paths:{rulePath(t){return un},commandPath(t){return `${Pe}/${V(t)}/SKILL.md`},agentPath(t){return `${Pe}/${K(t)}/SKILL.md`}}},IY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Qd={id:eo,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:RY,capabilities:IY,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:RF,lint:{hooks:IF,permissions:CF,ignore:kF,mcp:EF},supportsConversion:{commands:true,agents:true},project:SY,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[un]},canonicalDir:vL,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:wy,detectionPaths:[un]};});function wF(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:dn,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(si))continue;let o=basename(n.source,".md");e.push({path:`${ss}/${o}.md`,content:n.body.trim()||""});}return e}function AF(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${is}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function bF(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Km,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function PF(t){return t.ignore.length===0?[]:[{path:Wm,content:t.ignore.join(`
|
|
148
|
+
`)}]}function xF(t){return st(t,ro)}function TF(t){if(t.agents.length===0)return [];let e=t.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:Hl,content:stringify({customModes:e})}]}var DF=d(()=>{rt();U();Sa();s(wF,"generateRules");s(AF,"generateCommands");s(bF,"generateMcp");s(PF,"generateIgnore");s(xF,"generateSkills");s(TF,"generateAgents");});var qd,FF,hR=d(()=>{U();ft();Sa();qd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(t==="00-root.md")return null;let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Ra}/${t}`,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"),FF=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${rd}/${t}`,content:await St(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function EY(t,e,r){let n=join(t,ya),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(t,Ra);for(let l of i)e.push(...await It({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:si,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await qd({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function vF(t,e={}){let r=e.scope??"project",n=[],o=await W(si,t,r);return n.push(...await Y(tf,t,r,{normalize:o})),await EY(t,n,o),await et(t,ro,si,n,o),n}var MF=d(()=>{gt();rt();$e();Ot();hR();Sa();_R();s(EY,"importPerModeRules");s(vF,"importFromRooCode");});function $F(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:si}))}var GF=d(()=>{Ct();Sa();s($F,"lintRules");});function PY(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var AY,bY,xY,TY,DY,tf,_R=d(()=>{A();DF();Sa();oe();MF();hR();GF();Et();AY={name:"roo-code",primaryRootInstructionPath:dn,generateRules:wF,generateCommands:AF,generateSkills:xF,generateMcp:bF,generateIgnore:PF,generateAgents:TF,importFrom:vF},bY={rootInstructionPath:dn,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Hl]},paths:{rulePath(t,e){return `${ss}/${t}.md`},commandPath(t,e){return `${is}/${t}.md`},agentPath(t,e){return null}}};s(PY,"computeStatus");xY=s(async(t,e,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||t.agents.length===0)return [];let o=t.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 _(join(e,Hm));return [{target:"roo-code",path:Hm,content:i,currentContent:a??void 0,status:PY(a,i)}]},"generateRooGlobalExtras"),TY={rootInstructionPath:li,skillDir:as,managedOutputs:{dirs:[ii,ai,as,ML],files:[li,_a,zm,Hm]},rewriteGeneratedPath(t){return t===dn?li:t===Hl?null:t.startsWith(`${ss}/`)?t.replace(`${ss}/`,`${ii}/`):t.startsWith(`${is}/`)?t.replace(`${is}/`,`${ai}/`):t.startsWith(`${ro}/`)?t.replace(`${ro}/`,`${as}/`):t===Km?_a:t===Wm?zm:t},mirrorGlobalPath(t,e){return dt(t,as,e)},paths:{rulePath(t,e){return `${ii}/${t}.md`},commandPath(t,e){return `${ai}/${t}.md`},agentPath(t,e){return null}}},DY={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},tf={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:AY,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:$F,project:bY,globalSupport:{capabilities:DY,detectionPaths:[ii,ai,as,_a,zm,li,Hm],layout:TY,scopeExtras:xY},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[dn,Bm],global:[li,dn,Bm]},canonicalDir:Ra,canonicalRootFilename:"_root.md",markAsRoot:true,frontmatterRemap:s(({description:t,globs:e})=>({description:typeof t=="string"?t:void 0,globs:Array.isArray(e)?e:void 0}),"frontmatterRemap")},{feature:"rules",mode:"directory",source:{project:[ss],global:[ii]},canonicalDir:Ra,extensions:[".md"],map:qd}],commands:{feature:"commands",mode:"directory",source:{project:[is],global:[ai]},canonicalDir:rd,extensions:[".md"],map:FF},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Km],global:[_a]},canonicalDir:".agentsmesh",canonicalFilename:$L},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Wm],global:[zm]},canonicalDir:".agentsmesh",canonicalFilename:GL}},buildImportPaths:by,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Hl]};});function jF(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(no)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:br,content:o}]:[]}function UF(t){return st(t,ne)}function BF(t){return t.commands.map(e=>({path:`${ne}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function KF(t){return t.agents.map(e=>({path:`${ne}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function WF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ls,content:e}]}var HF=d(()=>{rt();Kt();ut();Lt();Vl();s(jF,"generateRules");s(UF,"generateSkills");s(BF,"generateCommands");s(KF,"generateAgents");s(WF,"generateMcp");});async function zF(t,e={}){let r=e.scope??"project",n=[],o=await W(no,t,r);return n.push(...await Y(ef,t,r,{normalize:o})),await et(t,r==="global"?Ve:ne,no,n,o),n}var VF=d(()=>{gt();rt();Ot();Vl();RR();s(zF,"importFromRovodev");});function JF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:no}))}var YF=d(()=>{Ct();Vl();s(JF,"lintRules");});function XF(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","rovodev","Rovo Dev has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function ZF(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","rovodev","Rovo Dev permissions are managed in config.yaml; canonical permissions are not projected.")]}function QF(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var qF=d(()=>{wt();s(XF,"lintHooks");s(ZF,"lintPermissions");s(QF,"lintIgnore");});var NY,FY,vY,MY,$Y,ef,RR=d(()=>{Lt();ut();HF();oe();VF();YF();qF();Et();Vl();NY={name:no,primaryRootInstructionPath:br,generateRules:jF,generateCommands:BF,generateAgents:KF,generateSkills:UF,generateMcp:WF,importFrom:zF},FY={rootInstructionPath:br,skillDir:ne,managedOutputs:{dirs:[ne],files:[br,ls]},paths:{rulePath(t){return br},commandPath(t){return `${ne}/${V(t)}/SKILL.md`},agentPath(t){return `${ne}/${K(t)}/SKILL.md`}}},vY={rootInstructionPath:cs,skillDir:Ve,managedOutputs:{dirs:[Ve],files:[cs,zl]},rewriteGeneratedPath(t){return t===br?cs:t.startsWith(`${ne}/`)?t.replace(`${ne}/`,`${Ve}/`):t===ls?zl:t},mirrorGlobalPath(t,e){return dt(t,Ve,e)},paths:{rulePath(t){return cs},commandPath(t){return `${Ve}/${V(t)}/SKILL.md`},agentPath(t){return `${Ve}/${K(t)}/SKILL.md`}}},MY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},$Y={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ef={id:no,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:NY,capabilities:MY,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:JF,lint:{hooks:XF,permissions:ZF,ignore:QF},supportsConversion:{commands:true,agents:true},project:FY,globalSupport:{capabilities:$Y,detectionPaths:[BL,cs,Ve],layout:vY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[br],global:[cs]},canonicalDir:KL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ls],global:[zl]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Py,detectionPaths:[br,ne,ls]};});function tv(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Ye,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Pr))continue;let o=basename(n.source,".md");e.push({path:`${Je}/${o}.md`,content:n.body.trim()});}return e}function ev(t){return st(t,xr)}function rv(t){return t.mcp===null||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ia,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function nv(t){return t.ignore.length===0?[]:[{path:Jl,content:t.ignore.join(`
|
|
149
|
+
`)}]}var ov=d(()=>{rt();Yl();s(tv,"generateRules");s(ev,"generateSkills");s(rv,"generateMcp");s(nv,"generateIgnore");});async function UY(t,e,r,n){let o=n==="global"?[Tr,Ye]:[Ye,Tr];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,sv),{frontmatter:m,body:p}=P(r(l,a,c));await O(join(t,Jm)),await I(c,await z(c,{...m,root:true},p)),e.push({fromTool:Pr,fromPath:a,toPath:sv,feature:"rules"});return}}async function BY(t,e,r,n){let o=join(t,n==="global"?ms:Je),i=join(t,Jm);e.push(...await It({srcDir:o,destDir:i,extensions:[".md"],fromTool:Pr,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}=P(l(m));return {destPath:m,toPath:`${Jm}/${a}`,feature:"rules",content:await z(m,{...p,root:false},u)}},"mapEntry")}));}async function iv(t,e={}){let r=e.scope??"project",n=[],o=await W(Pr,t,r);return await UY(t,n,o,r),await BY(t,n,o,r),n.push(...await Y(rf,t,r,{normalize:o})),await et(t,r==="global"?fn:xr,Pr,n,o),n}var sv,av=d(()=>{gt();rt();$e();Ot();ft();A();U();Yl();SR();sv=`${Jm}/_root.md`;s(UY,"importRoot");s(BY,"importNonRootRules");s(iv,"importFromTrae");});function lv(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Pr}))}var cv=d(()=>{Ct();Yl();s(lv,"lintRules");});var KY,WY,HY,zY,rf,SR=d(()=>{ov();oe();av();cv();Et();Yl();KY={name:Pr,primaryRootInstructionPath:Ye,generateRules:tv,generateSkills:ev,generateMcp:rv,generateIgnore:nv,importFrom:iv},WY={rootInstructionPath:Ye,skillDir:xr,managedOutputs:{dirs:[Je,xr],files:[Ia,Jl]},paths:{rulePath(t,e){return `${Je}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},HY={rootInstructionPath:Tr,skillDir:fn,managedOutputs:{dirs:[ms,fn,HL],files:[Tr,Vm]},rewriteGeneratedPath(t){return t===Ye?Tr:t.startsWith(`${Je}/`)?t.replace(`${Je}/`,`${ms}/`):t.startsWith(`${xr}/`)?t.replace(`${xr}/`,`${fn}/`):t===Ia?Vm:t===Jl?null:t},mirrorGlobalPath(t,e){return dt(t,fn,e)},paths:{rulePath(t,e){return t==="_root"?Tr:`${ms}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},zY={rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},rf={id:Pr,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:KY,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:lv,project:WY,globalSupport:{capabilities:zY,detectionPaths:[Tr,ms,fn,Vm],layout:HY},importer:{mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ia],global:[Vm]},canonicalDir:".agentsmesh",canonicalFilename:zL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Jl]},canonicalDir:".agentsmesh",canonicalFilename:VL}},buildImportPaths:xy,detectionPaths:[Je,Ia,Ye]};});function mv(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(oo)),n=e?.body.trim()??"",o=at(n,r);return o?[{path:gn,content:o}]:[]}function pv(t){return st(t,he)}function uv(t){return t.commands.map(e=>({path:`${he}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function dv(t){return t.agents.map(e=>({path:`${he}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}function fv(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ci,content:e}]}var gv=d(()=>{rt();Kt();ut();Lt();Xl();s(mv,"generateRules");s(pv,"generateSkills");s(uv,"generateCommands");s(dv,"generateAgents");s(fv,"generateMcp");});async function hv(t,e={}){let r=e.scope??"project",n=[],o=await W(oo,t,r);return n.push(...await Y(nf,t,r,{normalize:o})),await et(t,r==="global"?Xe:he,oo,n,o),n}var yv=d(()=>{gt();rt();Ot();Xl();IR();s(hv,"importFromWarp");});function _v(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:oo}))}var Rv=d(()=>{Ct();Xl();s(_v,"lintRules");});function Sv(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","warp","Warp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Iv(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","warp","Warp permissions are UI-managed; canonical permissions are not projected.")]}function Cv(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var kv=d(()=>{wt();s(Sv,"lintHooks");s(Iv,"lintPermissions");s(Cv,"lintIgnore");});var VY,JY,YY,XY,ZY,nf,IR=d(()=>{Lt();ut();gv();oe();yv();Rv();kv();Et();Xl();VY={name:oo,primaryRootInstructionPath:gn,generateRules:mv,generateCommands:uv,generateAgents:dv,generateSkills:pv,generateMcp:fv,importFrom:hv},JY={rootInstructionPath:gn,skillDir:he,managedOutputs:{dirs:[he],files:[gn,ci]},paths:{rulePath(t){return gn},commandPath(t){return `${he}/${V(t)}/SKILL.md`},agentPath(t){return `${he}/${K(t)}/SKILL.md`}}},YY={rootInstructionPath:void 0,skillDir:Xe,managedOutputs:{dirs:[Xe],files:[]},rewriteGeneratedPath(t){return t.startsWith(`${he}/`)?t.replace(`${he}/`,`${Xe}/`):t},mirrorGlobalPath(t,e){return dt(t,Xe,e)},paths:{rulePath(){return null},commandPath(t){return `${Xe}/${V(t)}/SKILL.md`},agentPath(t){return `${Xe}/${K(t)}/SKILL.md`}}},XY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ZY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},nf={id:oo,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:VY,capabilities:XY,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:_v,lint:{hooks:Sv,permissions:Iv,ignore:Cv},supportsConversion:{commands:true,agents:true},project:JY,globalSupport:{capabilities:ZY,detectionPaths:[Xe],layout:YY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ty,gn]},canonicalDir:YL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ci]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Dy,detectionPaths:[gn,Ty,ci],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var fo,CR,yi,Ev,uc,go,dc,fc,Lv,_i,Rn,gc,kR,Ov,wv,ER,LR,OR,hc,yc,lp,of,sf,af,Av,Ee=d(()=>{fo="windsurf",CR=".windsurfrules",yi=".windsurf/rules",Ev=".windsurfignore",uc=".codeiumignore",go="AGENTS.md",dc=".windsurf/hooks.json",fc=".windsurf/mcp_config.example.json",Lv=".windsurf/mcp_config.json",_i=".windsurf/workflows",Rn=".windsurf/skills",gc=".agentsmesh/rules",kR=".agentsmesh/commands",Ov=".agentsmesh/agents",wv=".agentsmesh/skills",ER=".agentsmesh/ignore",LR=".agentsmesh/hooks.yaml",OR=".agentsmesh/mcp.json",hc=".codeium/windsurf/memories/global_rules.md",yc=".codeium/windsurf/skills",lp=".codeium/windsurf/global_workflows",of=".codeium/windsurf/hooks.json",sf=".codeium/windsurf/mcp_config.json",af=".codeium/.codeiumignore",Av=".agents/skills";});function qY(t){let e=basename(t,".md");return e==="_root"?"root":e}function t2(t){if(t.length===0)return null;let e=t.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return e.length!==t.length?null:e.every(r=>r===e[0])?e[0]:null}function wR(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:go,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=qY(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()||"";e.push({path:`${yi}/${o}.md`,content:l});let c=t2(n.globs);c&&(c!==o&&e.push({path:`${yi}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}var bv=d(()=>{U();Ee();s(qY,"ruleSlug");s(t2,"directoryScopedRuleDir");s(wR,"generateRules");});function AR(t){return !t.ignore||t.ignore.length===0?[]:[{path:uc,content:t.ignore.join(`
|
|
150
|
+
`)}]}var Pv=d(()=>{Ee();s(AR,"generateIgnore");});function bR(t){return t.commands.map(e=>{let r={description:e.description.trim()||void 0,allowedTools:e.allowedTools.length>0?e.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?T(r,e.body.trim()||""):e.body.trim();return {path:`${_i}/${e.name}.md`,content:n}})}var xv=d(()=>{U();Ee();s(bR,"generateCommands");});function PR(t){return t.agents.map(e=>({path:`${Rn}/${K(e.name)}/SKILL.md`,content:Tt(e)}))}var Tv=d(()=>{ut();Ee();s(PR,"generateAgents");});function xR(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:fc,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var Dv=d(()=>{Ee();s(xR,"generateMcp");});function e2(t){let e={PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Notification:"notification",UserPromptSubmit:"user_prompt_submit",SubagentStart:"subagent_start",SubagentStop:"subagent_stop"};return e[t]?e[t]:t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function r2(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Ln(i))continue;let a=Jt(i),l=Re(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(e[e2(r)]=o);}return e}function TR(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=r2(t.hooks);return Object.keys(e).length===0?[]:[{path:dc,content:JSON.stringify({hooks:e},null,2)}]}var Nv=d(()=>{Br();Ee();s(e2,"windsurfEventName");s(r2,"toWindsurfHooks");s(TR,"generateHooks");});function DR(t){let e=[];for(let r of t.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()||"";e.push({path:`${Rn}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)e.push({path:`${Rn}/${r.name}/${i.relativePath}`,content:i.content});}return e}var Fv=d(()=>{U();Ee();s(DR,"generateSkills");});var vv=d(()=>{bv();Pv();xv();Tv();Dv();Nv();Fv();});var Mv=d(()=>{vv();});function $v(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}async function Gv(t,e,r){let n=join(t,_i),i=(await G(n)).filter(l=>l.endsWith(".md")),a=join(t,kR);for(let l of i){let c=await _(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}=P(u),h=await St(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let S=$v(f.allowedTools);return S.length>0?S:$v(f["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(f,"allowedTools")||Object.prototype.hasOwnProperty.call(f,"allowed-tools")},g);await I(p,h),e.push({fromTool:fo,fromPath:l,toPath:`${kR}/${m}`,feature:"commands"});}}var jv=d(()=>{A();U();ft();Ee();s($v,"toStringArray");s(Gv,"importWorkflows");});async function Uv(t,e,r,n=Rn){await ql([n],{projectRoot:t,destCanonicalSkillsDir:wv,targetName:"windsurf",normalize:r,results:e},[tc({canonicalAgentsDir:Ov})]);}var Bv=d(()=>{ec();Ee();s(Uv,"importSkills");});async function Wv(t,e){let r=join(t,dc),n=await _(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let i=i2(o.hooks);if(Object.keys(i).length===0)return;let a=join(t,LR);await O(dirname(a)),await I(a,stringify(i)),e.push({fromTool:fo,fromPath:r,toPath:LR,feature:"hooks"});}catch{}}function s2(t){return {pre_tool_use:"PreToolUse",post_tool_use:"PostToolUse",notification:"Notification",user_prompt_submit:"UserPromptSubmit",subagent_start:"SubagentStart",subagent_stop:"SubagentStop"}[t]??t}function i2(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=s2(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&&(e[o]=i);}return e}async function Hv(t,e){let r=[fc,Lv];for(let n of r){let o=join(t,n),i=await _(o);if(i)try{let a=JSON.parse(i);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(t,OR);await O(dirname(l)),await I(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),e.push({fromTool:fo,fromPath:o,toPath:OR,feature:"mcp"});return}catch{}}}var zv=d(()=>{A();Ee();s(Wv,"importWindsurfHooks");s(s2,"canonicalHookEventName");s(i2,"windsurfHooksToCanonical");s(Hv,"importWindsurfMcp");});async function Vv(t,e){let r=e?.scope??"project",n=[],o=await W(fo,t),i=await W("codex-cli",t),a=join(t,gc),l=join(t,CR),c=await _(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 I(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${gc}/_root.md`,feature:"rules"});}if(c===null){let f=join(t,go),g=await _(f);if(g!==null){await O(a);let h=join(a,"_root.md"),S=o(i(g,f,h),f,h).trim(),C=await z(h,{root:true},S);await I(h,C),n.push({fromTool:"windsurf",fromPath:f,toPath:`${gc}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await It({srcDir:t,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({srcPath:f,normalizeTo:g})=>{let h=relative(t,dirname(f)).replace(/\\/g,"/");if(!h||h==="."||basename(f)!=="AGENTS.md")return null;let S=h.replace(/\//g,"-");if(!Eu(h))return await wn(join(a,`${S}.md`)),null;let C=join(a,`${S}.md`);return {destPath:C,toPath:`${gc}/${S}.md`,feature:"rules",content:await z(C,{root:false,globs:[`${h}/**`]},g(C))}},"mapEntry")}));let m=join(t,yi);n.push(...await It({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:S,body:C}=P(g(h)),R={...S};return typeof R.glob=="string"&&R.glob.trim()&&(R.globs=[R.glob],delete R.glob),{destPath:h,toPath:`${gc}/${f}`,feature:"rules",content:await z(h,{...R,root:false},C)}},"mapEntry")}));let p=join(t,Ev),u=await _(p);if((u===null||!u.trim())&&(p=join(t,uc),u=await _(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let S=h.trim();S&&!S.startsWith("#")&&g.push(S);}if(g.length>0){await O(join(t,".agentsmesh"));let h=join(t,ER);await I(h,g.join(`
|
|
151
|
+
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:ER,feature:"ignore"});}}return await Gv(t,n,o),await Uv(t,n,o),await Wv(t,n),await Hv(t,n),n}var Jv=d(()=>{gt();A();U();ft();$e();lm();Ee();jv();Bv();zv();s(Vv,"importFromWindsurf");});function Yv(t,e,r){let n=[],{rules:o}=t;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(e,o[0].source),target:fo,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:fo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var Xv=d(()=>{Ee();s(Yv,"lintRules");});function Zv(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>D(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Qv(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var qv=d(()=>{wt();s(Zv,"lintCommands");s(Qv,"lintMcp");});function p2(t){if(t.length===0)return null;let e=t.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return e.length!==t.length?null:e.every(r=>r===e[0])?e[0]:null}var u2,d2,f2,g2,tM,eM=d(()=>{Mv();Ni();Ee();oe();Jv();Xv();qv();Et();ml();ut();s(p2,"directoryScopedRuleDir");u2={name:"windsurf",primaryRootInstructionPath:go,generateRules:wR,generateCommands:bR,generateAgents:PR,generateSkills:DR,generateMcp:xR,generateHooks:TR,generateIgnore:AR,importFrom:Vv},d2={rootInstructionPath:go,extraRuleOutputPaths(t){if(t.root)return [go];let e=p2(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:Rn,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(t,e){return `${yi}/${t}.md`},commandPath(t,e){return `${_i}/${t}.md`},agentPath(t,e){return sr(e,"windsurf")?`.windsurf/skills/${K(t)}/SKILL.md`:null}}},f2={rootInstructionPath:hc,skillDir:yc,managedOutputs:{dirs:[yc,lp,Av],files:[hc,of,sf,af]},rewriteGeneratedPath(t){return t===go?hc:t.startsWith(`${yi}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${Rn}/`)?t.replace(`${Rn}/`,`${yc}/`):t.startsWith(`${_i}/`)?t.replace(`${_i}/`,`${lp}/`):t===dc?of:t===fc?sf:t===uc?af:t},mirrorGlobalPath(t,e){return dt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return hc},commandPath(t,e){return `${lp}/${t}.md`},agentPath(t,e){return sr(e,"windsurf")?`${yc}/${K(t)}/SKILL.md`:null}}},g2={rules:"native",additionalRules:"partial",commands:Wr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},tM={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:u2,capabilities:{rules:"native",additionalRules:"native",commands:Wr("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:Yv,lint:{commands:Zv,mcp:Qv},project:d2,globalSupport:{capabilities:g2,detectionPaths:[hc,yc,lp,of,sf,af],layout:f2},buildImportPaths:Ny,detectionPaths:[".windsurfrules",".windsurf"],conversionDefaults:{agentsToSkills:true}};});function rM(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=e?.body.trim()??"",o=at(n,r);return o?[{path:hn,content:o}]:[]}var nM=d(()=>{Kt();Ca();s(rM,"generateRules");});async function sM(t,e,r){let n=await _(join(t,e));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 Ht(t,oM,l),r.push({fromTool:"zed",fromPath:e,toPath:oM,feature:"mcp"}));}var oM,iM=d(()=>{A();Jr();Ca();oM=".agentsmesh/mcp.json";s(sM,"importZedMcp");});async function aM(t,e={}){let r=e.scope??"project",n=[],o=await W("zed",t,r);return n.push(...await Y(cf,t,r,{normalize:o})),await sM(t,r==="global"?io:so,n),n}var lM=d(()=>{gt();Ot();iM();Ca();FR();s(aM,"importFromZed");});function cM(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var mM=d(()=>{Ct();Ca();s(cM,"lintRules");});function pM(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function uM(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function dM(t){return t.ignore.length===0?[]:[D(".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 fM=d(()=>{wt();s(pM,"lintHooks");s(uM,"lintPermissions");s(dM,"lintIgnore");});function C2(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var y2,_2,R2,S2,I2,cf,FR=d(()=>{nM();lM();mM();fM();Et();Ca();y2={name:"zed",primaryRootInstructionPath:hn,generateRules:rM,importFrom:aM},_2={rootInstructionPath:hn,managedOutputs:{dirs:[],files:[hn,so]},paths:{rulePath(t){return hn},commandPath(){return null},agentPath(){return null}}},R2={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[io]},rewriteGeneratedPath(t){return t===so?io:t},paths:{rulePath(){return io},commandPath(){return null},agentPath(){return null}}},S2={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},I2={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(C2,"mergeZedSettings");cf={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:y2,capabilities:S2,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:cM,lint:{hooks:pM,permissions:uM,ignore:dM},project:_2,globalSupport:{capabilities:I2,detectionPaths:[io],layout:R2},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[hn],global:[]},canonicalDir:QL,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let r={};for(let[n,o]of Object.entries(t.mcp.mcpServers))r[n]=o;return [{path:so,content:JSON.stringify({context_servers:r},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===so||n===io?C2(t,r):null},buildImportPaths:Fy,detectionPaths:[hn,so]};});var AE={};Dg(AE,{BUILTIN_TARGETS:()=>Pt,TARGET_IDS:()=>$t,getBuiltinTargetDefinition:()=>vr,getEffectiveTargetSupportLevel:()=>mf,getTargetCapabilities:()=>gi,getTargetDetectionPaths:()=>MR,getTargetLayout:()=>Wt,getTargetManagedOutputs:()=>$R,getTargetPrimaryRootInstructionPath:()=>E2,getTargetSkillDir:()=>cp,isBuiltinTargetId:()=>ve,resolveTargetFeatureGenerator:()=>_c,rewriteGeneratedOutputPath:()=>GR});function k2(){return vR||(lk(Pt),vR=new Map(Pt.map(t=>[t.id,t]))),vR}function vr(t){return k2().get(t)}function gi(t,e="project"){let r=vr(t)??nt(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return ik(n)}function MR(t,e="project"){let r=vr(t)??nt(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Wt(t,e="project"){let r=vr(t)??nt(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function E2(t,e="project"){return Wt(t,e)?.rootInstructionPath}function cp(t,e="project"){return Wt(t,e)?.skillDir}function $R(t,e="project"){return Wt(t,e)?.managedOutputs}function GR(t,e,r="project"){let n=Wt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function gM(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!cl(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!sr(r,t.id,true,n):false}function L2(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?cl(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?sr(r,t.id,true,n):false}function mf(t,e,r,n="project"){let o=gi(t,n)?.[e]?.level??"none",i=vr(t)??nt(t);return o==="none"&&L2(i,e,r,n)?"embedded":o!=="embedded"?o:gM(i,e,r,n)?"none":o}function _c(t,e,r,n="project"){let o=vr(t)??nt(t);if(!o?.generators||gM(o,e,r,n))return;let i=O2[e];return i===null?void 0:i(o.generators)}var Pt,vR,O2,xt=d(()=>{ml();Ni();ce();ph();kn();bh();vy();My();Gy();aw();By();IA();pb();c_();g_();y_();T_();D_();N_();q_();tR();eR();rR();aR();cR();pR();dR();fR();gR();_R();RR();SR();IR();eM();FR();Pt=[Au,od,sd,id,iw,ad,SA,mb,fd,Sd,Cd,xd,Td,Dd,Ud,Bd,Kd,Wd,Vd,Jd,Yd,Xd,Zd,Qd,tf,ef,rf,nf,tM,cf];s(k2,"builtinTargetsMap");s(vr,"getBuiltinTargetDefinition");s(gi,"getTargetCapabilities");s(MR,"getTargetDetectionPaths");s(Wt,"getTargetLayout");s(E2,"getTargetPrimaryRootInstructionPath");s(cp,"getTargetSkillDir");s($R,"getTargetManagedOutputs");s(GR,"rewriteGeneratedOutputPath");s(gM,"isFeatureSuppressedByConversion");s(L2,"isConversionUpgrading");s(mf,"getEffectiveTargetSupportLevel");O2={rules:s(t=>t.generateRules,"rules"),additionalRules:null,commands:s(t=>t.generateCommands,"commands"),agents:s(t=>t.generateAgents,"agents"),skills:s(t=>t.generateSkills,"skills"),mcp:s(t=>t.generateMcp,"mcp"),permissions:s(t=>t.generatePermissions,"permissions"),hooks:s(t=>t.generateHooks,"hooks"),ignore:s(t=>t.generateIgnore,"ignore")};s(_c,"resolveTargetFeatureGenerator");});function b2(t,e){return t.uniqueHits!==e.uniqueHits?e.uniqueHits-t.uniqueHits:t.sharedScore!==e.sharedScore?e.sharedScore-t.sharedScore:t.id.localeCompare(e.id)}async function pf(t){let e=[];for(let n of Pt){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(t,a)))continue;let l=A2.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&e.push({id:n.id,uniqueHits:o,sharedScore:i});}if(e.length===0)return null;e.sort(b2);let r=e[0];return r.uniqueHits===0?null:r.id}var A2,hM,jR=d(()=>{A();xt();A2=(()=>{let t=new Map;for(let e of Pt)for(let r of e.detectionPaths)t.set(r,(t.get(r)??0)+1);return t})();s(b2,"compare");s(pf,"detectNativeFormat");hM=Pt.map(t=>t.detectionPaths[0]).filter(t=>t!==void 0);});async function mp(t,e){let r=nt(e);if(!r)throw new Error(`No importer registered for native target: ${e}`);return r.generators.importFrom(t)}var UR=d(()=>{ce();s(mp,"importNativeToCanonical");});async function va(t){if(!await j(t))return false;if(await j(join(t,KR)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(t,r.name,KR)))return !0}catch{return false}return false}async function pp(t,e={}){if(!await j(t))return [];if(await j(join(t,KR))){let r=await pu(t,e);return r?[r]:[]}return Ps(t,e)}var KR,uf=d(()=>{A();al();KR="SKILL.md";s(va,"isSkillPackLayout");s(pp,"loadSkillsAtExtendPath");});async function df(t,e={}){return (await bs(t,e)).filter(n=>!En(basename(n.source)))}async function ff(t,e={}){return (await As(t,e)).filter(n=>!En(basename(n.source)))}async function gf(t,e={}){return (await ws(t,e)).filter(n=>!En(basename(n.source)))}async function yM(t,e={}){return Ps(t,e)}var hf=d(()=>{em();tm();qc();al();Lo();s(df,"importAgents");s(ff,"importCommands");s(gf,"importRules");s(yM,"importSkills");});function HR(t,e){let r=t?.[e];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 zR(t){return t.toLowerCase().endsWith(".md")}function RM(t,e){for(let r of HR(nt(t)?.importer,e))if(r.extensions.some(n=>!zR(n)))return true;return false}function M2(t,e){let r=new Set;for(let n of HR(nt(t)?.importer,e))for(let o of n.extensions)zR(o)||r.add(o.toLowerCase());return r}function $2(t){return nk().filter(e=>RM(e,t))}async function U2(t,e,r){return G2[t](e,r)}async function B2(t,e,r){return j2[t](e,r)}async function K2(t,e,r,n={}){let o=HR(nt(e)?.importer,r),i=await G(t),a=new Set;for(let p of o)for(let u of p.extensions)zR(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!En(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${e}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await _(u);if(f===null)continue;let g=relative(t,u).replaceAll("\\","/"),h=null;for(let S of o){if(!S.extensions.some(k=>u.toLowerCase().endsWith(k.toLowerCase())))continue;let R=await S.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 I(h.destPath,h.content));}return {entities:await U2(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function VR(t,e,r={}){let n=r.restrictToTarget,o=n?RM(n,e)?[n]:[]:$2(e),i=new Set;for(let f of o)for(let g of M2(f,e))i.add(g);let a=await B2(e,t,{...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 K2(t,f,e,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let S=c(h);m.has(S)||m.set(S,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 yf(t,e={}){let r=await VR(t,"commands",e);return {commands:[...r.entities],cleanup:r.cleanup}}async function _f(t,e={}){let r=await VR(t,"rules",e);return {rules:[...r.entities],cleanup:r.cleanup}}async function Rf(t,e={}){let r=await VR(t,"agents",e);return {agents:[...r.entities],cleanup:r.cleanup}}var G2,j2,Sf=d(()=>{em();tm();qc();A();ce();Lo();hf();s(HR,"directorySpecsFor");s(zR,"isMarkdownExtension");s(RM,"hasNonMdEntityMapper");s(M2,"nonMdEntityExtensions");s($2,"targetsWithNonMdEntityMapper");G2={rules:ws,commands:As,agents:bs},j2={rules:gf,commands:ff,agents:df};s(U2,"parseEntityDir");s(B2,"importEntities");s(K2,"readToolNativeEntities");s(VR,"readEntityDirWithMappers");s(yf,"readCommandsDirWithMappers");s(_f,"readRulesDirWithMappers");s(Rf,"readAgentsDirWithMappers");});function z2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function V2(t){return t.rules.length===0&&t.commands.length===0&&t.agents.length===0&&t.skills.length===0&&t.mcp===null&&t.permissions===null&&t.hooks===null&&t.ignore.length===0}async function If(t){if(!await j(t))throw new Error(`Path does not exist: ${t}`);let e=await stat(t);if(e.isDirectory())return {sliceRoot:t};if(!e.isFile()||!t.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${t}`);let r=dirname(t),n=basename(r),i=basename(t).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: ${t}`)}async function XR(t,e){if(basename(t)===e)return t;let r=join(t,e);return await j(r)?r:null}async function J2(t,e,r){let n=s(async()=>{},"noop"),o=await XR(t,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await gf(o,e),cleanup:n};let i=await _f(o,{parseOpts:e});return {rules:[...i.rules],cleanup:i.cleanup}}async function Y2(t,e,r){let n=s(async()=>{},"noop"),o=await XR(t,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await ff(o,e),cleanup:n};let i=await yf(o,{parseOpts:e});return {commands:[...i.commands],cleanup:i.cleanup}}async function X2(t,e,r){let n=s(async()=>{},"noop"),o=await XR(t,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await df(o,e),cleanup:n};let i=await Rf(o,{parseOpts:e});return {agents:[...i.agents],cleanup:i.cleanup}}async function Z2(t,e){if(await va(t))return pp(t,e);let r=join(t,"skills");return await va(r)?pp(r,e):[]}async function Cf(t,e={}){let r=s(async()=>{},"noop"),n=join(t,".agentsmesh");if(await j(n))return {canonical:await we(t,e),cleanup:r};let o=e.enableTargetEntityMappers??false,i=z2(),a=await J2(t,e,o);i.rules=a.rules;let l=await Y2(t,e,o);i.commands=l.commands;let c=await X2(t,e,o);i.agents=c.agents,i.skills=await Z2(t,e);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(V2(i))throw await m(),new Error(`No installable resources at ${t}. 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 ZR=d(()=>{A();hf();Sf();Di();uf();s(z2,"emptyCanonical");s(V2,"isCanonicalSliceEmpty");s(If,"normalizeSlicePath");s(XR,"resolveEntityDir");s(J2,"parseRulesAt");s(Y2,"parseCommandsAt");s(X2,"parseAgentsAt");s(Z2,"loadSkillsForPartialSlice");s(Cf,"loadCanonicalSliceAtPath");});async function kf(t){let e=await _(t);if(!e)return "";let r=jr(e,t);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 SM(t,e){await cp$1(t,e,{recursive:true,filter:s(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(zC(o)||!n.includes("/")&&(cu(n)||VC(n)))},"filter")});}var QR=d(()=>{A();U();Lo();s(kf,"readSkillFrontmatterName");s(SM,"cpFilteredSkill");});function qR(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function tX(t){let e={...t},r=t.alwaysApply===true;if(e.root=r,delete e.alwaysApply,!r){let n=qR(t.globs),o=typeof t.description=="string"?t.description.trim():"";n.length>0?e.trigger="glob":o.length>0?e.trigger="model_decision":e.trigger="manual";}return e}function eX(t){let e={...t};return e.trigger==="always"&&(e.trigger="always_on"),typeof e.glob=="string"&&(e.globs=qR(e.globs).length>0?qR(e.globs):[e.glob],delete e.glob),e}function tS(t){let e=jr(t,"<mdc>");if(!e.ok)return e.bodyFallback;let{frontmatter:r,body:n}=e.value;if(Object.keys(r).length===0&&!t.startsWith("---"))return t;let o;return "alwaysApply"in r?o=tX(r):"trigger"in r||"glob"in r?o=eX(r):o=r,T(o,n.trim())}var IM=d(()=>{U();s(qR,"toStrArray");s(tX,"normalizeCursorKeys");s(eX,"normalizeWindsurfKeys");s(tS,"normalizeMdcToCanonical");});function eS(t){return t.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function rS(t){return t.toLowerCase().endsWith(".mdc")?basename(t).replace(/\.mdc$/i,".md"):basename(t)}function kM(t,e,r){let o=relative(t,e).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=eS(o[o.length-1]);return i?`${i}-${r}`:r}var EM=d(()=>{s(eS,"sanitizeNameSegment");s(rS,"computeDestName");s(kM,"namespacedName");});async function iX(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await O(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup")}}function AM(t,e){let r=t.toLowerCase();return !!(r.endsWith(".md")||e&&r.endsWith(".mdc"))}async function aX(t,e,r){if(!AM(t,r))throw new Error(`Manual install only supports .md files for this collection: ${t}`);if(await O(e),t.toLowerCase().endsWith(".mdc")){let n=await _(t);if(!n)return;let o=basename(t).replace(/\.mdc$/i,".md");await writeFile(join(e,o),tS(n));}else await cp$1(t,join(e,basename(t)));}async function lX(t,e,r){if((await stat(t)).isFile())return aX(t,e,r);let o=(await G(t)).filter(l=>AM(l,r)&&!En(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${t} 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=rS(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(e);for(let l of o){let c=rS(l),p=(i.get(c)??0)>1?kM(t,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(t,l).replace(/\\/g,"/").split("/").map(eS).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 ${t} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await _(l);if(!f)continue;await writeFile(join(e,p),tS(f));}else await cp$1(l,join(e,p));}}async function LM(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await G(t)){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 ${t} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await O(e);for(let i of r)await cp$1(o.get(i),join(e,i),{recursive:true});return true}async function cX(t,e,r={}){if((await stat(t)).isFile()){if(basename(t)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${t}`);let o=basename(dirname(t)),i=join(e,o);await O(i),await cp$1(dirname(t),i,{recursive:true});return}if(await va(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await LM(t,e,r.preferredSkillNames??[]))return;let l=await kf(join(t,"SKILL.md"))||basename(t),c=join(e,l);await O(e),await SM(t,c);return}if(await LM(t,e,r.preferredSkillNames??[]))return;await O(e);let o=await G(t),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(t,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp$1(join(t,a),join(e,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${t}.`)}async function Lf(t,e,r={}){let n=await iX();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await cX(t,o,r):await lX(t,o,e==="rules"),n}catch(o){throw await n.cleanup(),o}}var oS=d(()=>{A();uf();QR();Lo();IM();EM();s(iX,"createStageRoot");s(AM,"isAcceptedFile");s(aX,"stageSingleFile");s(lX,"stageMarkdownCollection");s(LM,"stagePreferredSkills");s(cX,"stageSkills");s(Lf,"stageManualInstallScope");});function mX(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function bM(t){let e=t.resolvedPath;if(t.as!==void 0){let o=t.path?join(e,t.path):e;if(!await j(o))throw new Error(`Extend "${t.name}": path does not exist: ${o}`);let i=await Lf(o,t.as);try{return we(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!t.path){let o=join(e,".agentsmesh");if(!await j(o)){if(await va(e)){let a=await pp(e);return {...mX(),skills:a}}let i=t.target??await pf(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
152
|
+
Expected one of: .agentsmesh/, ${hM.join(", ")}.`);y.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await mp(e,i);}return we(e)}let r=join(e,t.path);if(!await j(r))throw new Error(`Extend "${t.name}": path does not exist: ${r}`);if(t.target){let o=join(e,".agentsmesh");return await j(o)||(y.info(`[agentsmesh] Extend "${t.name}": path "${t.path}" with target "${t.target}" \u2014 importing at extend root, then loading canonical.`),await mp(e,t.target)),we(e)}let{sliceRoot:n}=await If(r);try{let{canonical:o}=await Cf(n);return o}catch(o){let i=o instanceof Error?o.message:String(o),a=new Error(`Extend "${t.name}": ${i}`);throw o instanceof Error&&(a.cause=o),a}}var PM=d(()=>{jR();A();ot();Di();UR();uf();ZR();oS();s(mX,"emptyCanonical");s(bM,"loadCanonicalForExtend");});function Of(t,e,r,n){if(!r)return t;let o={...t};if(r.skills?.length&&e.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&&e.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&&e.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&&e.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 sS=d(()=>{ot();s(Of,"applyExtendPick");});var dX,Rc,wf=d(()=>{dX=["rules","commands","agents","skills"],Rc=z$1.enum(dX);});var fX,xM,TM=d(()=>{Co();wf();fX=z$1.enum(["github","gitlab","git","local"]),xM=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:fX,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(el).min(1),pick:Vc.optional(),target:or.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Rc.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function DM(t){let e=xi(t);return e?e.kind==="github"?`github:${e.org}/${e.repo}`:e.kind==="gitlab"?`gitlab:${e.namespace}/${e.project}`:`git+${e.url}`:t.trim()}function hX(t,e){return e?t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n]):true}async function Ri(t){let e=join(t,"pack.yaml"),r=await _(e);if(r===null)return null;try{let n=parse(r);return xM.parse(n)}catch{return null}}async function FM(t,e,r){if(!await j(t))return null;let n=DM(e),o;try{o=await readdir(t,{withFileTypes:!0});}catch{return null}for(let i of o){if(!i.isDirectory())continue;let a=join(t,i.name),l=await Ri(a);if(l&&DM(l.source)===n&&l.target===r.target&&l.as===r.as&&hX(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function Af(t){if(!await j(t))return [];let e;try{e=await readdir(t,{withFileTypes:!0});}catch{return []}let r=[];for(let n of e){if(!n.isDirectory())continue;let o=join(t,n.name),i=await Ri(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var Sc=d(()=>{A();TM();Xc();s(DM,"sourceIdentity");s(hX,"sameFeatures");s(Ri,"readPackMetadata");s(FM,"findExistingPack");s(Af,"listPacks");});function vM(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function yX(t){let[e,r,n,o,i,a,l,c]=await Promise.all([ws(join(t,"rules")),As(join(t,"commands")),bs(join(t,"agents")),Ps(join(t,"skills")),Ur(join(t,"mcp.json")),uu(join(t,"permissions.yaml")),du(join(t,"hooks.yaml")),fu(join(t,"ignore"))]);return {...vM(),rules:e,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function MM(t){let e=join(t,"packs"),r=await Af(e),n=vM();for(let{meta:o,packDir:i}of r){let a=await yX(i),l=aS(a,o.features),c=Of(l,o.features,o.pick,o.name);n=ll(n,c);}return n}var $M=d(()=>{qc();tm();em();al();rm();nh();sh();ih();lh();yo();sS();Sc();s(vM,"emptyCanonical");s(yX,"loadPackCanonical");s(MM,"loadPacksCanonical");});function aS(t,e){if(e.length===0)return GM();let r=new Set(e.flatMap(n=>RX[n]??[]));return {rules:r.has("rules")?t.rules:[],commands:r.has("commands")?t.commands:[],agents:r.has("agents")?t.agents:[],skills:r.has("skills")?t.skills:[],mcp:r.has("mcp")?t.mcp:null,permissions:r.has("permissions")?t.permissions:null,hooks:r.has("hooks")?t.hooks:null,ignore:r.has("ignore")?t.ignore:[]}}function GM(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Oe(t,e,r={},n=join(e,".agentsmesh")){let o=await sl(t,e,{refreshCache:r.refreshRemoteCache===true}),i=GM();for(let c of o){let m=await bM(c),p=aS(m,c.features),u=Of(p,c.features,c.pick,c.name);i=ll(i,u);}let a=await MM(n);i=ll(i,a);let l=await we(n);return i=ll(i,l),{canonical:i,resolvedExtends:o}}var RX,yo=d(()=>{ou();Di();lh();PM();sS();$M();RX={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(aS,"filterCanonicalByFeatures");s(GM,"emptyCanonical");s(Oe,"loadCanonicalWithExtends");});function hZ(t,e){let r=join(e,"node_modules",t),n=join(r,"package.json");if(!existsSync(n))throw new Error(`Cannot find package '${t}' in ${join(e,"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 '${t}' entry '${i}' does not exist at ${a}`);return a}function yZ(t){return t.startsWith("file:")||t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||/^[A-Za-z]:[/\\]/.test(t)}function _$(t){try{return realpathSync(t)}catch{return t}}function R$(t,e){let r=_$(resolve(e)),n=_$(t);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function _Z(t,e){let{source:r}=t,n;if(yZ(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(e,i);R$(a,e),n=pathToFileURL(a).href;}else {let i=hZ(r,e);R$(i,e),n=pathToFileURL(i).href;}return await import(n)}function RZ(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}async function Uf(t,e){let r;try{r=await _Z(t,e);}catch(i){throw new Error(`Plugin '${t.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=RZ(r),o=[];for(let i of n)try{let a=gu(i);yu(a),o.push(a);}catch(a){throw new Error(`Plugin '${t.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:t,descriptors:o}}async function S$(t,e){let r=[],n=process.env.AGENTSMESH_STRICT_PLUGINS==="1"||process.env.AGENTSMESH_STRICT_PLUGINS==="true",i=(await Promise.all(t.map(async a=>{try{let l=await Uf(a,e);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(`
|
|
149
153
|
`);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
|
|
150
|
-
${a}`)}return r}var
|
|
151
|
-
`)}var
|
|
154
|
+
${a}`)}return r}var RS=d(()=>{ch();ce();ot();s(hZ,"resolveNpmSpecifier");s(yZ,"isLocalSource");s(_$,"canonicalize");s(R$,"assertSourceInsideProjectRoot");s(_Z,"importPluginModule");s(RZ,"extractDescriptors");s(Uf,"loadPlugin");s(S$,"loadAllPlugins");});async function Ut(t,e){t.plugins.length!==0&&await S$(t.plugins,e);}var $r=d(()=>{RS();s(Ut,"bootstrapPlugins");});function CS(t,e,r="project"){let n=[],o=[...t.targets,...t.pluginTargets??[]];for(let i of t.features){let a,l;switch(i){case "rules":l=e.rules.length,a="rules";break;case "commands":l=e.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=e.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=e.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=e.mcp?Object.keys(e.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=BZ(e.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=e.ignore.length>0?1:0,a="ignore";break;case "permissions":l=e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=mf(m,i,t,r);if(n.push({feature:a,count:l,support:c}),i==="rules"){let m=e.rules.filter(p=>!p.root);if(m.length>0){let p={};for(let u of o)p[u]=mf(u,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function BZ(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}var b$=d(()=>{xt();s(CS,"buildCompatibilityMatrix");s(BZ,"countHooks");});function P$(t){return KZ[t]??t}var KZ,x$=d(()=>{KZ={"claude-code":"Claude"};s(P$,"matrixColumnLabel");});function T$(t){return Object.fromEntries(WZ.map(e=>[e,Object.fromEntries($t.map(r=>{let o=gi(r,t)?.[e];return [r,o??{level:"none"}]}))]))}function HZ(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function zZ(t,e){return HZ()?e:`${t}${e}${gp.reset}`}function N$(t){let e=kS[t];return zZ(VZ[t],e)}var WZ,D$,kS,gp,VZ,ES=d(()=>{kn();xt();WZ=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(T$,"buildSupportMatrix");D$=T$("project"),T$("global"),kS={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},gp={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(HZ,"noColor");s(zZ,"colorize");VZ={native:gp.green,embedded:gp.blue,partial:gp.yellow,none:gp.dim};s(N$,"coloredSymbol");});function LS(t,e){let r=process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!=="",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((H,tt)=>r?tt:`${H}${tt}${n.reset}`,"c"),i=s(H=>H.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s((H,tt)=>{let it=i(H),v=Math.max(0,tt-it);return H+" ".repeat(v)},"padWithColor"),l=Math.max(12,...e.map(H=>H.length)),c=e.map(H=>P$(H)),m=Math.max(8,l),p=Math.max(12,...t.map(H=>H.feature.length)),u=s(H=>o(n.dim,"\u250C"+H.map(tt=>"\u2500".repeat(tt)).join("\u252C")+"\u2510"),"border"),f=s(H=>o(n.dim,"\u251C"+H.map(tt=>"\u2500".repeat(tt)).join("\u253C")+"\u2524"),"sep"),g=s(H=>o(n.dim,"\u2514"+H.map(tt=>"\u2500".repeat(tt)).join("\u2534")+"\u2518"),"bottom"),h=[p,...e.map(()=>m)],S=u(h),C=[a(o(n.bold+n.cyan,"Feature"),p),...c.map(H=>a(o(n.bold+n.magenta,H),m))],R=o(n.dim,"\u2502")+C.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),k=f(h),b=t.map(H=>{let tt=[a(o(n.cyan,H.feature),p)];for(let it of e){let v=H.support[it]??"none",q=r?kS[v]:N$(v);tt.push(a(` ${q} `,m));}return o(n.dim,"\u2502")+tt.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),N=g(h),x=[S,R,k,...b,N];x.push("");let B=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return x.push(o(n.bold,"Legend: ")+B.join(" ")),x.join(`
|
|
155
|
+
`)}var F$=d(()=>{x$();ES();s(LS,"formatMatrix");});function wS(t){let e=[];if(t.rules.length>0&&e.push(`rules: ${t.rules.map(r=>basename(r.source)).join(", ")}`),t.commands.length>0&&e.push(`commands: ${t.commands.map(r=>basename(r.source)).join(", ")}`),t.agents.length>0&&e.push(`agents: ${t.agents.map(r=>basename(r.source)).join(", ")}`),t.skills.length>0&&e.push(`skills: ${t.skills.map(r=>r.name).join(", ")}`),t.mcp&&Object.keys(t.mcp.mcpServers).length>0&&e.push(`mcp: ${Object.keys(t.mcp.mcpServers).join(", ")}`),t.hooks){let r=Object.values(t.hooks).reduce((n,o)=>n+(Array.isArray(o)?o.length:0),0);r>0&&e.push(`hooks: ${r} entries in hooks.yaml`);}return t.ignore.length>0&&e.push("ignore: .agentsmesh/ignore"),t.permissions&&t.permissions.allow.length+t.permissions.deny.length>0&&e.push("permissions: .agentsmesh/permissions.yaml"),e.length===0?"":`
|
|
152
156
|
Per-file details:
|
|
153
157
|
`+e.join(`
|
|
154
158
|
`)+`
|
|
155
|
-
`}var
|
|
159
|
+
`}var v$=d(()=>{s(wS,"formatVerboseDetails");});var AS=d(()=>{b$();F$();v$();});var bS={};Dg(bS,{runMatrix:()=>hp});async function hp(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(f=>f.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Ut(a,r);let{canonical:c}=await Oe(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=CS(a,c,n),u=wS(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var yp=d(()=>{Zt();yo();AS();$r();s(hp,"runMatrix");});var PS={};Dg(PS,{renderMatrix:()=>_p});function _p(t,e){if(t.data.features.length===0){y.info("No features enabled. Enable features in agentsmesh.yaml.");return}let r=t.data.features.map(o=>({feature:o.name,count:0,support:o.support})),n=LS(r,t.data.targets);process.stdout.write(n),process.stdout.write(`
|
|
156
160
|
`),e?.verbose&&t.verboseDetails&&(process.stdout.write(t.verboseDetails),process.stdout.write(`
|
|
157
|
-
`));}var
|
|
158
|
-
`)}s(
|
|
161
|
+
`));}var Rp=d(()=>{ot();AS();s(_p,"renderMatrix");});function JI(t){let e=Object.keys(t);return {async route(r,n,o){let i=t[r];if(i){await i(n,o);return}throw new Error(`Unknown command "${r}". Available: ${e.join(", ")}`)},commands:s(()=>[...e],"commands")}}s(JI,"createRouter");ot();var Ng=[{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)"}],Fg=[{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:[]}];function Vp(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
162
|
+
`)}s(Vp,"formatFlags");function vg(){let t=Fg.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
159
163
|
Usage: ${e.usage}
|
|
160
|
-
${
|
|
164
|
+
${Vp(e.flags)}`).join(`
|
|
161
165
|
|
|
162
166
|
`);y.info(`agentsmesh <command> [flags]
|
|
163
167
|
|
|
164
168
|
Global flags:
|
|
165
|
-
${
|
|
169
|
+
${Vp(Ng)}
|
|
166
170
|
|
|
167
171
|
Commands:
|
|
168
172
|
${t}
|
|
169
173
|
|
|
170
|
-
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(
|
|
174
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(vg,"printHelp");function Jp(t){let e=Fg.find(r=>r.name===t);if(!e){vg();return}y.info(`${e.usage}
|
|
171
175
|
|
|
172
176
|
${e.description}
|
|
173
177
|
|
|
174
178
|
Command flags:
|
|
175
|
-
${
|
|
179
|
+
${Vp(e.flags)}
|
|
176
180
|
|
|
177
181
|
Global flags:
|
|
178
|
-
${
|
|
179
|
-
`);}s(
|
|
180
|
-
`);}s(
|
|
181
|
-
`):y.error(t.message),process.exit(r);}s(
|
|
182
|
+
${Vp(Ng)}`);}s(Jp,"printCommandHelp");var Yp;function fB(){try{let t=createRequire(import.meta.url),e=dirname(fileURLToPath(import.meta.url)),r=e.endsWith("dist")?join(e,"..","package.json"):join(e,"..","..","package.json");return t(r).version}catch{return}}s(fB,"readPackageVersion");function gB(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let t=globalThis.__AGENTSMESH_VERSION__;return typeof t=="string"?t:"unknown"}s(gB,"getVersionFallback");function Ai(){return Yp||(Yp=fB()??gB(),Yp)}s(Ai,"getVersion");function qI(){process.stdout.write(`agentsmesh v${Ai()}
|
|
183
|
+
`);}s(qI,"printVersion");ot();function Za(t,e){let r={success:e.success,command:t};e.success?r.data=e.data:(r.error=e.error,e.data!==void 0&&(r.data=e.data)),process.stdout.write(JSON.stringify(r)+`
|
|
184
|
+
`);}s(Za,"emitJson");var In=class extends Error{static{s(this,"CliUsageError");}constructor(e){super(e),this.name="CliUsageError";}};function tC(t,e){let r=t instanceof In?2:1;if(e?.json)return Za(e.command??"unknown",{success:false,error:t.message}),process.exit(r);e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
185
|
+
`):y.error(t.message),process.exit(r);}s(tC,"handleError");ot();function le(t,e,r,n){if(r.json===true){let o=e.exitCode===0;Za(t,o?{success:true,data:e.data}:{success:false,error:`Command '${t}' failed`,data:e.data}),process.exit(e.exitCode);return}n(),e.exitCode!==0&&process.exit(e.exitCode);}s(le,"handleResult");Zt();yo();A();Qp();function Pf(t){return createHash("sha256").update(t,"utf8").digest("hex")}s(Pf,"hashContent");async function xf(t){try{let e=await readFile(t);return createHash("sha256").update(e).digest("hex")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return null;throw e}}s(xf,"hashFile");async function Tf(t){try{if(!Xp(t)){let r=await readFile(t);return createHash("sha256").update(r).digest("hex")}let e=await readFile(t,"utf-8");return e.startsWith(tl)&&(e=e.slice(tl.length)),e=Zp(e),createHash("sha256").update(e,"utf8").digest("hex")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return null;throw e}}s(Tf,"hashFileForManifest");Sc();var mS=".lock",kX=[t=>t.startsWith("rules/")&&t.endsWith(".md"),t=>t.startsWith("commands/")&&t.endsWith(".md"),t=>t.startsWith("agents/")&&t.endsWith(".md"),t=>t.match(/^skills\/[^/]+\/.+$/)!==null,t=>t==="mcp.json",t=>t==="permissions.yaml",t=>t==="hooks.yaml",t=>t==="ignore"];function EX(t){return t.startsWith("packs/")?false:kX.some(e=>e(t))}s(EX,"isCanonical");var LX={rules:s(t=>t.startsWith("rules/"),"rules"),commands:s(t=>t.startsWith("commands/"),"commands"),agents:s(t=>t.startsWith("agents/"),"agents"),skills:s(t=>/^skills\/[^/]+\/.+$/.test(t),"skills"),mcp:s(t=>t==="mcp.json","mcp"),permissions:s(t=>t==="permissions.yaml","permissions"),hooks:s(t=>t==="hooks.yaml","hooks"),ignore:s(t=>t==="ignore","ignore")};async function Df(t){let e=join(t,mS),r=await _(e);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(Df,"readLock");async function Nf(t,e){let r=join(t,mS),n={generated_at:e.generatedAt,generated_by:e.generatedBy,lib_version:e.libVersion,checksums:e.checksums,extends:e.extends,packs:e.packs},o=`# Auto-generated. DO NOT EDIT MANUALLY.
|
|
182
186
|
# Tracks the state of all config files for team conflict resolution.
|
|
183
187
|
|
|
184
|
-
`+stringify(n);await
|
|
185
|
-
`),a=
|
|
188
|
+
`+stringify(n);await I(r,o);}s(Nf,"writeLock");async function Ss(t){if(!await j(t))return {};let e=await G(t),r={};for(let n of e){let o=relative(t,n).replace(/\\/g,"/");if(o===mS||!EX(o))continue;let i=await xf(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(Ss,"buildChecksums");function Ff(t,e,r){if(r.length===0)return [];let n=r.map(a=>LX[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(t),...Object.keys(e)]),i=[];for(let a of o)n.some(l=>l(a))&&t[a]!==e[a]&&i.push(a);return i}s(Ff,"detectLockedFeatureViolations");async function vf(t){let e=await Af(t),r={};for(let{meta:n}of e)r[n.name]=n.content_hash;return r}s(vf,"buildPackChecksums");async function Ic(t){let e={};for(let r of t){if(r.version!==void 0){e[r.name]=r.version;continue}let n=join(r.resolvedPath,".agentsmesh"),o=await Ss(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
189
|
+
`),a=Pf(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}s(Ic,"buildExtendChecksums");xt();ce();function Cc(t){return t?(t.outputFamilies??[]).filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[]}s(Cc,"getAdditionalRootDecorationPaths");function jM(t,e){for(let r of t?.outputFamilies??[])if(r.pathPrefix!==void 0&&e.startsWith(r.pathPrefix)||r.explicitPaths?.includes(e))return r.id;return "default"}s(jM,"resolveRewriteFamilyId");pe();Lh();function OX(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(OX,"addDirectoryMapping");function UM(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)OX(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(UM,"addSkillDirectoryMappings");xt();function BM(t,e,r="project"){let n=Wt(t,r);if(!n)return null;if(e.root)return n.rootInstructionPath??null;if(e.targets.length>0&&!e.targets.includes(t))return null;let o=posix.basename(e.source.replace(/\\/g,"/"),".md");return n.paths.rulePath(o,e)}s(BM,"ruleTargetPath");function KM(t,e,r,n="project"){let o=Wt(t,n);return o?o.paths.commandPath(e,r):null}s(KM,"commandTargetPath");function WM(t,e,r,n="project"){let o=Wt(t,n);return o?o.paths.agentPath(e,r):null}s(WM,"agentTargetPath");ye();Xt();Ee();xt();function bX(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(bX,"addDirectoryMapping");function pS(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=BM(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=KM(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=WM(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=cp(t,n);if(!i)return o;for(let a of e.skills){bX(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),UM(o,m,p);}}return o}s(pS,"buildReferenceMap");pe();pe();xt();function zM(t,e,r,n){let o=n.normalize(e),i=n.normalize(r);t.set(o,i),t.set(`${o}/`,`${i}/`);}s(zM,"addPackAbsoluteDirMapping");function PX(t){let e=new Set;for(let{relativePath:r}of t){let n=r.replace(/\\/g,"/"),o=posix.dirname(n);for(;o!=="."&&o.length>0;){e.add(o);let i=posix.dirname(o);if(i===o)break;o=i;}}return [...e]}s(PX,"skillSupportingDirPrefixes");function VM(t,e,r,n,o){let i=cp(e,o);if(!i)return;let a=lt(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));zM(t,m,p,a),t.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));t.set(a.normalize(u.absolutePath),f);}for(let u of PX(c.supportingFiles))zM(t,a.join(m,u),a.join(p,u),a);}}s(VM,"addPackSkillArtifactMappings");pe();function xX(t){return `.agentsmesh/rules/${basename(t.source)}`}s(xX,"canonicalRulePath");function TX(t){return `.github/instructions/${basename(t.source,".md")}.instructions.md`}s(TX,"copilotInstructionsPath");function YM(t,e,r,n,o){if(t!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=lt(r);for(let a of o.rules)a.root||a.globs.length===0||e.set(i.normalize(i.join(r,xX(a))),i.normalize(i.join(r,TX(a))));}s(YM,"applyCopilotInstructionArtifactRefs");xt();function uS(t,e){e!==void 0&&e.length>0&&!t.includes(e)&&t.push(e);}s(uS,"pushUnique");function XM(t,e,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(e.source)}`);uS(o,i);let a=Wt(t,n);if(e.root)for(let l of Cc(a))uS(o,l);for(let l of a?.extraRuleOutputPaths?.(e,{refs:r,scope:n})??[])uS(o,l);return o}s(XM,"extraRuleOutputPaths");xt();function ZM(t,e,r,n,o,i){let a=Wt(t,e);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(ZM,"addSkillMirrorSourceEntry");function NX(t){return `.agentsmesh/commands/${t.name}.md`}s(NX,"canonicalCommandPath");function FX(t){return `.agentsmesh/agents/${t.name}.md`}s(FX,"canonicalAgentPath");function vX(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}s(vX,"canonicalSkillPath");function QM(t,e,r,n,o,i){let a=i?.scope??"project",l=lt(n),c=new Map([...pS(t,e,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return YM(t,c,n,o,e),VM(c,t,e,n,a),c}s(QM,"buildArtifactPathMap");function qM(t,e,r,n="project",o){let i=pS(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of XM(t,l,i,n))a.set(c,l.source);for(let l of e.commands){let c=i.get(NX(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=i.get(FX(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=i.get(vX(l));c&&(a.set(c,l.source),ZM(t,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),ZM(t,n,u,m.absolutePath,a,o));}}return a}s(qM,"buildOutputSourceMap");xt();ce();ph();function GX(t,e){if(!e)return null;for(let r of e){let n=nt(r);if(n?.sharedArtifacts){for(let[o,i]of Object.entries(n.sharedArtifacts))if(i==="owner"&&t.startsWith(o))return r}}return null}s(GX,"findSharedArtifactOwner");function t$(t,e,r){if(e==="global"){let n=GX(t.path,r);if(n)return n;let o=ak(t.path);if(o)return o}return t.target}s(t$,"artifactMapTargetForResult");function jX(t,e){return `${t}\0${(e??[]).join(",")}`}s(jX,"sourceMapCacheKey");function dS(t,e){let r=lt(t),n=new Set;for(let o of e){let i=r.join(t,o.path);n.add(i);let a=r.dirname(i);for(;a.startsWith(t)&&!n.has(a)&&(n.add(a),a!==t);)a=r.dirname(a);}return n}s(dS,"collectPlannedPaths");function UX(t,e,r){let n=Wt(t.target,e),o=jM(n,t.path);if(o!=="default")return `${t.target}:${o}`;let i=t$(t,e,r);return i===t.target?t.target:`${t.target}~via~${i}`}s(UX,"artifactCacheKey");function e$(t,e,r,n,o="project",i,a){let l=dS(n,t),c=new Map,m=new Map;return t.map(p=>{if(a?.has(p.path))return p;let u=jX(p.target,i),g=(m.get(u)??(()=>{let k=qM(p.target,e,r,o,i);return m.set(u,k),k})()).get(p.path);if(!g)return p;let h=t$(p,o,i),S=UX(p,o,i),C=c.get(S)??(()=>{let k=QM(h,e,r,n,p.path,{scope:o});return c.set(S,k),k})(),R=wu({content:p.content,projectRoot:n,sourceFile:g,destinationFile:lt(n).join(n,p.path),translatePath:s(k=>C.get(k)??k,"translatePath"),pathExists:s(k=>l.has(k)||existsSync(k),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(k=>{try{return statSync(k).isDirectory()}catch{return false}},"pathIsDirectory")});return R.content===p.content?p:{...p,content:R.content}})}s(e$,"rewriteGeneratedReferences");pe();Ts();ot();var KX=/!?\[[^\]]*\]\(([^)]+)\)/g,WX=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function HX(t){return t.endsWith(".md")||t.endsWith(".mdc")}s(HX,"isMarkdownLikeOutput");function zX(t,e){return e.some(([r,n])=>t>=r&&t<n)}s(zX,"isOffsetInRanges");function VX(t){let e=t.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(e);return r?.[1]!==void 0&&(e=r[1].trim()),e.startsWith("<")&&e.endsWith(">")&&(e=e.slice(1,-1).trim()),e}s(VX,"parseMarkdownLinkDestination");function JX(t,e){let r=t.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=X(e,e),o=X(e,r);if(!o.startsWith(`${n}/`)&&o!==n)return true}return false}s(JX,"shouldSkipLocalValidation");function YX(t){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(t)}s(YX,"isSkillGeneratedOutput");var XX={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},ZX={".clinerules":"rules"},QX=[".agent.md",".instructions.md",".prompt.md"];function r$(t){for(let e of QX)if(t.endsWith(e))return t.slice(0,-e.length);return t.endsWith(".mdc")?t.slice(0,-4):t.endsWith(".md")?t.slice(0,-3):t}s(r$,"stripMarkdownExt");function qX(t){let e=/^[^/]+\/([^/]+)\/([^/]+)/.exec(t);if(e){let n=XX[e[1]??""];if(n){let o=e[2]??"";return n!=="skills"&&(o=r$(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(t);if(r){let n=ZX[r[1]??""];if(n)return `${n}/${r$(r[2]??"")}`}return null}s(qX,"canonicalKeyFromOutputPath");function tZ(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}s(tZ,"pathExistsForGenerate");function eZ(t,e,r){let o=VX(t).split("#")[0]??"",{candidate:i}=yl(o),a=i,l=_l.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(JX(c,e))return [];let m=mm(c,e,r);if(m.length===0){let u=lt(e),f=X(e,r);m=[X(e,u.join(u.dirname(f),c)),X(e,u.join(e,c))];}let p=[];for(let u of m)for(let f of pm(e,u)){let g=X(e,f);p.includes(g)||p.push(g);}return p}s(eZ,"resolveMarkdownLinkTargets");function rZ(t,e){let r=dS(e,t),n=[];for(let o of t){if(!HX(o.path))continue;let i=X(e,lt(e).join(e,o.path)),a=Ou(o.content),l=s((c,m)=>{if(zX(m,a))return;let p=eZ(c,e,i);p.length!==0&&(p.some(u=>tZ(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(KX)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(WX)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(rZ,"findBrokenMarkdownLinks");function n$(t,e,r={}){let n=rZ(t,e);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=qX(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);YX(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):
|
|
186
190
|
${c.join(`
|
|
187
191
|
`)}`);}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:
|
|
188
192
|
${l.join(`
|
|
189
193
|
`)}
|
|
190
|
-
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(
|
|
194
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(n$,"validateGeneratedMarkdownLinks");var nZ=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function $f(t){return nZ.some(e=>t.includes(e))}s($f,"isUnderPacks");function o$(t){let e=new Set;for(let r of t.rules)if($f(r.source)){let n=r.root?"_root":oZ(r.source);n&&e.add(`rules/${n}`);}for(let r of t.agents)$f(r.source)&&e.add(`agents/${r.name}`);for(let r of t.commands)$f(r.source)&&e.add(`commands/${r.name}`);for(let r of t.skills)$f(r.source)&&e.add(`skills/${r.name}`);return e}s(o$,"buildPackOriginatedKeys");function oZ(t){let r=t.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s(oZ,"ruleNameFromSource");kn();var l$="AGENTS.md";function s$(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(s$,"statusRank");function sZ(t,e){return s$(e.status)<=s$(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}s(sZ,"mergeDuplicateMetadata");function Gf(t){return t.trim()}s(Gf,"trimmedContent");var iZ=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function i$(t){let e=t;for(let r of iZ)e=e.replace(r,"");return e.trim().replace(/\n{2,}/g,`
|
|
191
195
|
|
|
192
|
-
`)}s($M,"normalizeAgentsContent");function GM(t){return /<!-- agentsmesh:embedded-rules:start -->/.test(t)}s(GM,"hasOptionalAgentsBlock");function kX(t,e){if(!t.path.endsWith(jM)||t.path!==e.path)return null;let r=bf(t.content),n=bf(e.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?t:e;if($M(t.content)===$M(e.content)){let a=GM(t.content),l=GM(e.content);if(a!==l)return a?t:e}return null}s(kX,"richerAgentsResult");function EX(t,e){if(!t.path.endsWith(jM)||t.path!==e.path)return null;let r=t.target===Lg?t:e.target===Lg?e:null,n=r===t?e:t;if(!r)return null;let o=bf(r.content).length,i=bf(n.content).length;return o===i?null:o>i?r:n}s(EX,"richerCodexAgentsResult");function Pf(t){let e=[];for(let r of t){let n=e.findIndex(i=>i.path===r.path);if(n===-1){e.push(r);continue}let o=e[n];if(o.content!==r.content){let i=kX(o,r);if(i){e[n]=i;continue}let a=EX(o,r);if(a){e[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}e[n]=SX(o,r);}return e}s(Pf,"resolveOutputCollisions");function UM(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(UM,"refreshResultStatus");A();Pt();ae();function KM(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(KM,"computeStatus");function LX(t,e,r){let n=CR(t,e,r);if(n!==null)return n;let o=ot(t);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(e):e,n):null}s(LX,"resolveGeneratedOutputPath");async function lp(t,e,r,n,o,i){let a=LX(e,r.path,o);if(a===null)return null;let l=await _(join(n,a)),c=t.findIndex(u=>u.path===a&&u.target===e),m=c>=0?t[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&t.splice(c,1),t.push({target:e,path:a,content:p,currentContent:l??void 0,status:KM(l,p)}),a}s(lp,"emitGeneratedOutput");function QR(t,e,r){return {capability:pi(t,r)?.[e]??{level:"none"},scope:r}}s(QR,"featureContext");async function Na(t,e,r,n,o,i,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let p=QR(c,a,i);for(let u of m(r,p)){let f=await lp(t,c,u,n,i);if(f===null)continue;let g=Bt(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,e),I=h===null?[]:Array.isArray(h)?h:[h];for(let k of I){let C=await _(join(n,k));t.push({target:c,path:k,content:u.content,currentContent:C??void 0,status:KM(C,u.content)});}}}}}s(Na,"generateFeature");qg();Pt();function OX(t){return t?.rootInstructionPath?[t.rootInstructionPath,...yc(t)]:[]}s(OX,"rootDecorationPaths");function WM(t,e,r="project"){return t.map(n=>{let o=Bt(n.target,r);if(!o)return n;let i=OX(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(e):n.content,c=YC(l);return c===n.content?n:{...n,content:c}})}s(WM,"decoratePrimaryRootInstructions");Pt();ae();dd();function qR(t,e,r,n,o){let a=(Fr(t)??ot(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&yP.includes(o)?_P(l,n):n}s(qR,"mergeOutputContent");async function HM(t,e,r,n,o){for(let i of e){let a=dc(i,"permissions",void 0,o)??ot(i)?.generators.generatePermissions;if(a)for(let l of a(r))await lp(t,i,l,n,o,{mergeContent:s((c,m,p,u)=>qR(i,c,m,p,u),"mergeContent")});}}s(HM,"generatePermissionsFeature");async function zM(t,e,r,n,o,i){for(let a of e){let l=dc(a,"hooks",i,o)??ot(a)?.generators.generateHooks;if(!l)continue;let c=QR(a,"hooks",o),m=[...l(r,c)],u=(Fr(a)??ot(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await lp(t,a,f,n,o,{mergeContent:s((g,h,I,k)=>qR(a,g,h,I,k),"mergeContent")});}}s(zM,"generateHooksFeature");async function VM(t,e,r,n,o){for(let i of e){let l=(Fr(i)??ot(i))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await lp(t,i,m,n,o,{mergeContent:s((p,u,f,g)=>qR(i,p,u,f,g),"mergeContent")});}}s(VM,"generateScopedSettingsFeature");async function vr(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=t,a=[...e.targets,...e.pluginTargets??[]],l=i?a.filter(B=>i.includes(B)):a;function c(B,U){return dc(B,U,e,o)}s(c,"resolveGen");let m=e.features.includes("rules"),p=e.features.includes("commands"),u=e.features.includes("agents"),f=e.features.includes("skills"),g=e.features.includes("mcp"),h=e.features.includes("permissions"),I=e.features.includes("hooks"),k=e.features.includes("ignore"),C=[];await Na(C,l,r,n,m,o,"rules",B=>c(B,"rules")),await Na(C,l,r,n,p,o,"commands",B=>c(B,"commands")),await Na(C,l,r,n,u,o,"agents",B=>c(B,"agents")),await Na(C,l,r,n,f,o,"skills",B=>c(B,"skills")),await Na(C,l,r,n,g,o,"mcp",B=>c(B,"mcp")),h&&await HM(C,l,r,n,o),I&&await zM(C,l,r,n,o,e),await Na(C,l,r,n,k,o,"ignore",B=>c(B,"ignore"));let R=new Set(e.features);for(let B of l){let q=(Fr(B)??ot(B))?.globalSupport?.scopeExtras;if(q){let nt=await q(r,n,o,R);C.push(...nt);}}(g||k||I||u||h)&&await VM(C,l,r,n,o);let P=WM(C,r,o),N=wX(P,o),F=DM(P,r,e,n,o,l,N);return FM(F,n,{packOriginatedKeys:vM(r)}),Pf(F.map(UM))}s(vr,"generate");function wX(t,e){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Bt(a,e),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of yc(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of t){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(wX,"computeSharedRootInstructionPaths");Mr();st();A();Io();var BX=6e4,KX=30,WX=200,HX=2e3;async function xf(t,e={}){let r=e.retries??KX,n=e.retryDelayMs??WX,o=e.staleMs??BX;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await zX(t);if(a)return a;let l=await VX(t);if(l!=="young"&&JX(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Ja(t,XX(c))}i++,await QX(n);}}s(xf,"acquireProcessLock");async function zX(t){try{await mkdir(t,{recursive:!1});}catch(i){if(i.code==="EEXIST")return null;throw i}let e=join(t,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:r$()};await writeFile(e,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(t,{recursive:!0,force:!0});}catch{}}},"signalHandler");return process.once("SIGINT",o),process.once("SIGTERM",o),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",o),process.off("SIGTERM",o),process.off("exit",o),await rm$1(t,{recursive:true,force:true}).catch(()=>{}));}}s(zX,"tryAcquire");async function VX(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return ZX(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<HX)return "young"}catch{}return null}}s(VX,"inspectLock");function JX(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==r$()?false:!YX(t.pid)}s(JX,"isStale");function YX(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(YX,"isProcessAlive");function XX(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(XX,"describeHolder");function ZX(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(ZX,"isLockMetadata");function r$(){return hostname()}s(r$,"getHostname");function QX(t){return new Promise(e=>setTimeout(e,t))}s(QX,"sleep");A();Pt();async function n$(t,e=t){let r=await readdir(t,{withFileTypes:true}),n=[];for(let o of r){let i=join(t,o.name);if(o.isDirectory()){n.push(...await n$(i,e));continue}n.push(relative(e,i).replace(/\\/g,"/"));}return n}s(n$,"listFiles");async function rZ(t,e,r){if(r.has(e))return;let n=join(t,e);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(rZ,"removeIfStale");async function o$(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let i=SR(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(t.projectRoot,a);if(await j(l))for(let c of await n$(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await rZ(t.projectRoot,o,e);}s(o$,"cleanupStaleGeneratedOutputs");function _c(t,e,r){let n=resolve(t),o=resolve(t,e);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${e}`)}s(_c,"ensurePathInsideRoot");Hc();A();st();async function oI(t,e){let r=await Rs(t.canonicalDir),n=e.length>0?await hc(e):{},o=await Of(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await Ef(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Ei(),checksums:r,extends:n,packs:o});try{await kg(ve(),join(t.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(oI,"writeLockFile");async function g$(t){let{mode:e,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c}=t;if(e==="check")return {exitCode:0,data:{scope:r,mode:e,files:[],summary:Df([])}};if(n||await oI(o,i),c.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(pp(),uI)),{renderMatrix:p}=await Promise.resolve().then(()=>(dp(),dI)),u=await m(a,l);p(u,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:Df([])}}}s(g$,"handleEmptyResults");function h$(t,e){let r=t.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:e,mode:"check",files:o,summary:Df(r)}}}s(h$,"buildCheckResult");async function y$(t){let{results:e,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=t,u=r?null:await xf(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let I=_c(i.rootBase,h.path,h.target);await S(I,h.content);}await o$({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:n}),await oI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(pp(),uI)),{renderMatrix:I}=await Promise.resolve().then(()=>(dp(),dI)),k=await h(c,m);I(k,{verbose:c.verbose===true});}let f=e.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:Df(f)}}}s(y$,"handleGenerateOrDryRun");function Df(t){return {created:t.filter(e=>e.status==="created").length,updated:t.filter(e=>e.status==="updated").length,unchanged:t.filter(e=>e.status==="unchanged").length}}s(Df,"buildSummary");async function Rc(t,e,r={}){if(t.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=e??process.cwd(),o=t.check===true,i=t["dry-run"]===true,a=t.force===true,l=t.global===true?"global":"project",c=t["refresh-cache"]===true||t["no-cache"]===true,m=t.targets,p=typeof m=="string"&&m?m.split(",").map(N=>N.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await yt(n,l);await Gt(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let N=await kf(g.canonicalDir);if(N!==null){let F=await Rs(g.canonicalDir),B=Lf(N.checksums,F,h);if(B.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let U of B)y.error(` ${U}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:I,resolvedExtends:k}=await Ee(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),C=[...f.targets,...f.pluginTargets??[]];if(p){let N=p.filter(F=>!C.includes(F));if(N.length>0)throw new Error(`Unknown target(s) in --targets: ${N.join(", ")}. Available: ${C.join(", ")}`)}let R=p?C.filter(N=>p.includes(N)):C,P=await vr({config:f,canonical:I,projectRoot:g.rootBase,scope:l,targetFilter:p});return P.length===0?g$({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:k,flags:t,root:n,options:r}):o?h$(P,l):y$({results:P,dryRun:i,scope:l,mode:u,context:g,activeTargets:R,resolvedExtends:k,flags:t,root:n,options:r})}s(Rc,"runGenerate");st();function fI(t,e){return t==="global"?`~/${e}`:e}s(fI,"formatDisplayPath");function Ic(t){let{data:e}=t,{scope:r,mode:n,files:o}=e;if(o.length===0){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} ${fI(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} ${fI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${fI(r,c.path)}`);let{created:i,updated:a,unchanged:l}=e.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(Ic,"renderGenerate");A();Pt();Pt();Sn();function _$(){return bt.filter(t=>!t.excludeFromStarterInit).map(t=>t.id).filter(Fe)}s(_$,"starterInitTargetIds");var R$=/^# yaml-language-server: \$schema=[^\n]*\n?/;function pZ(){let t=Ei();return `https://unpkg.com/agentsmesh${t&&t!=="unknown"?`@${t}`:""}/schemas`}s(pZ,"schemaBaseUrl");function I$(t){return `${pZ()}/${t}.json`}s(I$,"schemaUrl");function Sc(t){return `# yaml-language-server: $schema=${I$(t)}
|
|
193
|
-
`}s(
|
|
194
|
-
`),n=
|
|
195
|
-
`);return `${
|
|
196
|
+
`)}s(i$,"normalizeAgentsContent");function a$(t){return /<!-- agentsmesh:embedded-rules:start -->/.test(t)}s(a$,"hasOptionalAgentsBlock");function aZ(t,e){if(!t.path.endsWith(l$)||t.path!==e.path)return null;let r=Gf(t.content),n=Gf(e.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?t:e;if(i$(t.content)===i$(e.content)){let a=a$(t.content),l=a$(e.content);if(a!==l)return a?t:e}return null}s(aZ,"richerAgentsResult");function lZ(t,e){if(!t.path.endsWith(l$)||t.path!==e.path)return null;let r=t.target===Ug?t:e.target===Ug?e:null,n=r===t?e:t;if(!r)return null;let o=Gf(r.content).length,i=Gf(n.content).length;return o===i?null:o>i?r:n}s(lZ,"richerCodexAgentsResult");function jf(t){let e=[];for(let r of t){let n=e.findIndex(i=>i.path===r.path);if(n===-1){e.push(r);continue}let o=e[n];if(o.content!==r.content){let i=aZ(o,r);if(i){e[n]=i;continue}let a=lZ(o,r);if(a){e[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}e[n]=sZ(o,r);}return e}s(jf,"resolveOutputCollisions");function c$(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(c$,"refreshResultStatus");A();xt();ce();function p$(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(p$,"computeStatus");function cZ(t,e,r){let n=GR(t,e,r);if(n!==null)return n;let o=nt(t);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(e):e,n):null}s(cZ,"resolveGeneratedOutputPath");async function fp(t,e,r,n,o,i){let a=cZ(e,r.path,o);if(a===null)return null;let l=await _(join(n,a)),c=t.findIndex(u=>u.path===a&&u.target===e),m=c>=0?t[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&t.splice(c,1),t.push({target:e,path:a,content:p,currentContent:l??void 0,status:p$(l,p)}),a}s(fp,"emitGeneratedOutput");function gS(t,e,r){return {capability:gi(t,r)?.[e]??{level:"none"},scope:r}}s(gS,"featureContext");async function $a(t,e,r,n,o,i,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let p=gS(c,a,i);for(let u of m(r,p)){let f=await fp(t,c,u,n,i);if(f===null)continue;let g=Wt(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,e),S=h===null?[]:Array.isArray(h)?h:[h];for(let C of S){let R=await _(join(n,C));t.push({target:c,path:C,content:u.content,currentContent:R??void 0,status:p$(R,u.content)});}}}}}s($a,"generateFeature");hh();xt();function mZ(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Cc(t)]:[]}s(mZ,"rootDecorationPaths");function u$(t,e,r="project"){return t.map(n=>{let o=Wt(n.target,r);if(!o)return n;let i=mZ(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(e):n.content,c=hk(l);return c===n.content?n:{...n,content:c}})}s(u$,"decoratePrimaryRootInstructions");xt();ce();kd();function hS(t,e,r,n,o){let a=(vr(t)??nt(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&$P.includes(o)?GP(l,n):n}s(hS,"mergeOutputContent");async function d$(t,e,r,n,o){for(let i of e){let a=_c(i,"permissions",void 0,o)??nt(i)?.generators.generatePermissions;if(a)for(let l of a(r))await fp(t,i,l,n,o,{mergeContent:s((c,m,p,u)=>hS(i,c,m,p,u),"mergeContent")});}}s(d$,"generatePermissionsFeature");async function f$(t,e,r,n,o,i){for(let a of e){let l=_c(a,"hooks",i,o)??nt(a)?.generators.generateHooks;if(!l)continue;let c=gS(a,"hooks",o),m=[...l(r,c)],u=(vr(a)??nt(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await fp(t,a,f,n,o,{mergeContent:s((g,h,S,C)=>hS(a,g,h,S,C),"mergeContent")});}}s(f$,"generateHooksFeature");async function g$(t,e,r,n,o){for(let i of e){let l=(vr(i)??nt(i))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await fp(t,i,m,n,o,{mergeContent:s((p,u,f,g)=>hS(i,p,u,f,g),"mergeContent")});}}s(g$,"generateScopedSettingsFeature");async function Mr(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=t,a=[...e.targets,...e.pluginTargets??[]],l=i?a.filter(B=>i.includes(B)):a;function c(B,H){return _c(B,H,e,o)}s(c,"resolveGen");let m=e.features.includes("rules"),p=e.features.includes("commands"),u=e.features.includes("agents"),f=e.features.includes("skills"),g=e.features.includes("mcp"),h=e.features.includes("permissions"),S=e.features.includes("hooks"),C=e.features.includes("ignore"),R=[];await $a(R,l,r,n,m,o,"rules",B=>c(B,"rules")),await $a(R,l,r,n,p,o,"commands",B=>c(B,"commands")),await $a(R,l,r,n,u,o,"agents",B=>c(B,"agents")),await $a(R,l,r,n,f,o,"skills",B=>c(B,"skills")),await $a(R,l,r,n,g,o,"mcp",B=>c(B,"mcp")),h&&await d$(R,l,r,n,o),S&&await f$(R,l,r,n,o,e),await $a(R,l,r,n,C,o,"ignore",B=>c(B,"ignore"));let k=new Set(e.features);for(let B of l){let tt=(vr(B)??nt(B))?.globalSupport?.scopeExtras;if(tt){let it=await tt(r,n,o,k);R.push(...it);}}(g||C||S||u||h)&&await g$(R,l,r,n,o);let b=u$(R,r,o),N=pZ(b,o),x=e$(b,r,e,n,o,l,N);return n$(x,n,{packOriginatedKeys:o$(r)}),jf(x.map(c$))}s(Mr,"generate");function pZ(t,e){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Wt(a,e),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of Cc(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of t){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(pZ,"computeSharedRootInstructionPaths");$r();ot();A();Io();var OZ=6e4,wZ=30,AZ=200,bZ=2e3;async function Bf(t,e={}){let r=e.retries??wZ,n=e.retryDelayMs??AZ,o=e.staleMs??OZ;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await PZ(t);if(a)return a;let l=await xZ(t);if(l!=="young"&&TZ(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new qa(t,NZ(c))}i++,await vZ(n);}}s(Bf,"acquireProcessLock");async function PZ(t){try{await mkdir(t,{recursive:!1});}catch(i){if(i.code==="EEXIST")return null;throw i}let e=join(t,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:E$()};await writeFile(e,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(t,{recursive:!0,force:!0});}catch{}}},"signalHandler");return process.once("SIGINT",o),process.once("SIGTERM",o),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",o),process.off("SIGTERM",o),process.off("exit",o),await rm$1(t,{recursive:true,force:true}).catch(()=>{}));}}s(PZ,"tryAcquire");async function xZ(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return FZ(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<bZ)return "young"}catch{}return null}}s(xZ,"inspectLock");function TZ(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==E$()?false:!DZ(t.pid)}s(TZ,"isStale");function DZ(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(DZ,"isProcessAlive");function NZ(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(NZ,"describeHolder");function FZ(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(FZ,"isLockMetadata");function E$(){return hostname()}s(E$,"getHostname");function vZ(t){return new Promise(e=>setTimeout(e,t))}s(vZ,"sleep");A();xt();async function L$(t,e=t){let r=await readdir(t,{withFileTypes:true}),n=[];for(let o of r){let i=join(t,o.name);if(o.isDirectory()){n.push(...await L$(i,e));continue}n.push(relative(e,i).replace(/\\/g,"/"));}return n}s(L$,"listFiles");async function jZ(t,e,r){if(r.has(e))return;let n=join(t,e);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(jZ,"removeIfStale");async function O$(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let i=$R(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(t.projectRoot,a);if(await j(l))for(let c of await L$(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await jZ(t.projectRoot,o,e);}s(O$,"cleanupStaleGeneratedOutputs");function kc(t,e,r){let n=resolve(t),o=resolve(t,e);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${e}`)}s(kc,"ensurePathInsideRoot");Zc();A();ot();async function IS(t,e){let r=await Ss(t.canonicalDir),n=e.length>0?await Ic(e):{},o=await vf(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await Nf(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Ai(),checksums:r,extends:n,packs:o});try{await $g(Me(),join(t.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(IS,"writeLockFile");async function M$(t){let{mode:e,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c}=t;if(e==="check")return {exitCode:0,data:{scope:r,mode:e,files:[],summary:Kf([])}};if(n||await IS(o,i),c.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(yp(),bS)),{renderMatrix:p}=await Promise.resolve().then(()=>(Rp(),PS)),u=await m(a,l);p(u,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:Kf([])}}}s(M$,"handleEmptyResults");function $$(t,e){let r=t.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:e,mode:"check",files:o,summary:Kf(r)}}}s($$,"buildCheckResult");async function G$(t){let{results:e,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=t,u=r?null:await Bf(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let S=kc(i.rootBase,h.path,h.target);await I(S,h.content);}await O$({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:n}),await IS(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(yp(),bS)),{renderMatrix:S}=await Promise.resolve().then(()=>(Rp(),PS)),C=await h(c,m);S(C,{verbose:c.verbose===true});}let f=e.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:Kf(f)}}}s(G$,"handleGenerateOrDryRun");function Kf(t){return {created:t.filter(e=>e.status==="created").length,updated:t.filter(e=>e.status==="updated").length,unchanged:t.filter(e=>e.status==="unchanged").length}}s(Kf,"buildSummary");async function Ec(t,e,r={}){if(t.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=e??process.cwd(),o=t.check===true,i=t["dry-run"]===true,a=t.force===true,l=t.global===true?"global":"project",c=t["refresh-cache"]===true||t["no-cache"]===true,m=t.targets,p=typeof m=="string"&&m?m.split(",").map(N=>N.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await yt(n,l);await Ut(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let N=await Df(g.canonicalDir);if(N!==null){let x=await Ss(g.canonicalDir),B=Ff(N.checksums,x,h);if(B.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let H of B)y.error(` ${H}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:S,resolvedExtends:C}=await Oe(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),R=[...f.targets,...f.pluginTargets??[]];if(p){let N=p.filter(x=>!R.includes(x));if(N.length>0)throw new Error(`Unknown target(s) in --targets: ${N.join(", ")}. Available: ${R.join(", ")}`)}let k=p?R.filter(N=>p.includes(N)):R,b=await Mr({config:f,canonical:S,projectRoot:g.rootBase,scope:l,targetFilter:p});return b.length===0?M$({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:C,flags:t,root:n,options:r}):o?$$(b,l):G$({results:b,dryRun:i,scope:l,mode:u,context:g,activeTargets:k,resolvedExtends:C,flags:t,root:n,options:r})}s(Ec,"runGenerate");ot();function xS(t,e){return t==="global"?`~/${e}`:e}s(xS,"formatDisplayPath");function Lc(t){let{data:e}=t,{scope:r,mode:n,files:o}=e;if(o.length===0){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} ${xS(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} ${xS(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${xS(r,c.path)}`);let{created:i,updated:a,unchanged:l}=e.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(Lc,"renderGenerate");A();xt();xt();kn();function j$(){return Pt.filter(t=>!t.excludeFromStarterInit).map(t=>t.id).filter(ve)}s(j$,"starterInitTargetIds");var U$=/^# yaml-language-server: \$schema=[^\n]*\n?/;function YZ(){let t=Ai();return `https://unpkg.com/agentsmesh${t&&t!=="unknown"?`@${t}`:""}/schemas`}s(YZ,"schemaBaseUrl");function B$(t){return `${YZ()}/${t}.json`}s(B$,"schemaUrl");function Oc(t){return `# yaml-language-server: $schema=${B$(t)}
|
|
197
|
+
`}s(Oc,"yamlSchemaDirective");function Ga(t,e){let r=Oc(e);return U$.test(t)?t.replace(U$,r):`${r}${t}`}s(Ga,"prependYamlSchemaDirective");function K$(t,e){let{$schema:r,...n}=t;return {$schema:B$(e),...n}}s(K$,"stampJsonSchemaField");var XZ=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],ZZ=j$();function Wf(t,e=ZZ){let r=(t.length>0?t:e).map(o=>` - ${o}`).join(`
|
|
198
|
+
`),n=XZ.map(o=>` - ${o}`).join(`
|
|
199
|
+
`);return `${Oc("agentsmesh")}version: 1
|
|
196
200
|
targets:
|
|
197
201
|
${r}
|
|
198
202
|
features:
|
|
199
203
|
${n}
|
|
200
|
-
`}s(
|
|
204
|
+
`}s(Wf,"buildConfig");var Hf=`---
|
|
201
205
|
root: true
|
|
202
206
|
description: "Project rules"
|
|
203
207
|
---
|
|
@@ -206,7 +210,7 @@ description: "Project rules"
|
|
|
206
210
|
|
|
207
211
|
Add your project-wide instructions here.
|
|
208
212
|
This file is always included in AI tool context and synced to all configured tools.
|
|
209
|
-
`,
|
|
213
|
+
`,TS=`---
|
|
210
214
|
description: "Example contextual rule \u2014 rename and customize"
|
|
211
215
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
212
216
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -215,14 +219,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
215
219
|
# Example Rule
|
|
216
220
|
|
|
217
221
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
218
|
-
`,
|
|
222
|
+
`,DS=`---
|
|
219
223
|
description: "Example command \u2014 rename and customize"
|
|
220
224
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
221
225
|
---
|
|
222
226
|
|
|
223
227
|
Describe the task for this command here.
|
|
224
228
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
225
|
-
`,
|
|
229
|
+
`,NS=`---
|
|
226
230
|
name: example-agent
|
|
227
231
|
description: "Example subagent \u2014 rename and customize"
|
|
228
232
|
# tools: [Read, Grep, Glob]
|
|
@@ -233,7 +237,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
233
237
|
|
|
234
238
|
Describe this agent's role and instructions here.
|
|
235
239
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
236
|
-
`,
|
|
240
|
+
`,FS=`---
|
|
237
241
|
name: example-skill
|
|
238
242
|
description: "Example skill \u2014 rename and customize"
|
|
239
243
|
---
|
|
@@ -242,7 +246,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
242
246
|
|
|
243
247
|
Describe the skill procedure here.
|
|
244
248
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
245
|
-
`,
|
|
249
|
+
`,vS=`{
|
|
246
250
|
"mcpServers": {
|
|
247
251
|
// agentsmesh self-serve MCP server \u2014 exposes your canonical config to AI agents.
|
|
248
252
|
// Lets agents introspect rules/commands/agents/skills and trigger generate.
|
|
@@ -269,7 +273,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
269
273
|
// }
|
|
270
274
|
}
|
|
271
275
|
}
|
|
272
|
-
`,
|
|
276
|
+
`,MS=`${Oc("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
273
277
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
274
278
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
275
279
|
#
|
|
@@ -282,7 +286,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
282
286
|
# - matcher: Edit|Write
|
|
283
287
|
# type: command
|
|
284
288
|
# command: npm test --passWithNoTests
|
|
285
|
-
|
|
289
|
+
`,$S=`${Oc("permissions")}# Tool permission allow/deny lists
|
|
286
290
|
#
|
|
287
291
|
# allow:
|
|
288
292
|
# - Bash(npm run:*)
|
|
@@ -298,14 +302,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
298
302
|
allow: []
|
|
299
303
|
deny: []
|
|
300
304
|
ask: []
|
|
301
|
-
`,
|
|
305
|
+
`,GS=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
302
306
|
#
|
|
303
307
|
# node_modules/
|
|
304
308
|
# dist/
|
|
305
309
|
# .env*
|
|
306
310
|
# *.log
|
|
307
311
|
# coverage/
|
|
308
|
-
`,
|
|
312
|
+
`,W$=`${Oc("agentsmesh")}# Personal overrides \u2014 NOT committed to git
|
|
309
313
|
# Uncomment and customize for your local setup:
|
|
310
314
|
|
|
311
315
|
# targets:
|
|
@@ -323,45 +327,85 @@ ask: []
|
|
|
323
327
|
# overrides:
|
|
324
328
|
# claude-code:
|
|
325
329
|
# model: opus
|
|
326
|
-
`;A();
|
|
327
|
-
|
|
330
|
+
`;A();xt();function H$(t){let e=[];for(let r of Pt)for(let n of MR(r.id,t))e.push({target:r.id,path:n});return e}s(H$,"collectDetectionPaths");function z$(t){let e=new Map;for(let{target:r,path:n}of H$(t)){let o=e.get(r)??[];o.push(n),e.set(r,o);}return [...e.entries()].map(([r,n])=>({id:r,paths:n}))}s(z$,"toolIndicators");z$("project");async function V$(t,e="project"){let r=[];for(let{id:n,paths:o}of z$(e))for(let i of o){let a=join(t,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(V$,"detectExistingConfigs");A();ot();function se(t,e){return join(t,e)}s(se,"ab");async function jS(t){return await j(t)?(await readdir(t,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(jS,"countMdFiles");async function qZ(t){let e=se(t,"skills");if(!await j(e))return false;let r=await readdir(e,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await j(join(e,n.name,"SKILL.md")))return true;return false}s(qZ,"hasAnyImportedSkill");async function US(t){let e=se(t,"rules");await O(e),await I(join(e,"_root.md"),Hf),y.success("Created .agentsmesh/rules/_root.md"),await I(join(e,"_example.md"),TS),y.success("Created .agentsmesh/rules/_example.md");let r=se(t,"commands");await O(r),await I(join(r,"_example.md"),DS),y.success("Created .agentsmesh/commands/_example.md");let n=se(t,"agents");await O(n),await I(join(n,"_example.md"),NS),y.success("Created .agentsmesh/agents/_example.md");let o=se(t,join("skills","_example"));await O(o),await I(join(o,"SKILL.md"),FS),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await I(se(t,"mcp.json"),vS),y.success("Created .agentsmesh/mcp.json"),await I(se(t,"hooks.yaml"),MS),y.success("Created .agentsmesh/hooks.yaml"),await I(se(t,"permissions.yaml"),$S),y.success("Created .agentsmesh/permissions.yaml"),await I(se(t,"ignore"),GS),y.success("Created .agentsmesh/ignore");}s(US,"writeScaffoldFull");async function Y$(t){let e=se(t,"rules"),r=await jS(e),n=join(e,"_root.md"),o=await j(n);await O(e),r===0?(await I(n,Hf),y.success("Created .agentsmesh/rules/_root.md"),await I(join(e,"_example.md"),TS),y.success("Created .agentsmesh/rules/_example.md")):o||(await I(n,Hf),y.success("Created .agentsmesh/rules/_root.md"));let i=se(t,"commands");await jS(i)===0&&(await O(i),await I(join(i,"_example.md"),DS),y.success("Created .agentsmesh/commands/_example.md"));let a=se(t,"agents");if(await jS(a)===0&&(await O(a),await I(join(a,"_example.md"),NS),y.success("Created .agentsmesh/agents/_example.md")),!await qZ(t)){let u=se(t,join("skills","_example"));await O(u),await I(join(u,"SKILL.md"),FS),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=se(t,"mcp.json");await j(l)||(await I(l,vS),y.success("Created .agentsmesh/mcp.json"));let c=se(t,"hooks.yaml");await j(c)||(await I(c,MS),y.success("Created .agentsmesh/hooks.yaml"));let m=se(t,"permissions.yaml");await j(m)||(await I(m,$S),y.success("Created .agentsmesh/permissions.yaml"));let p=se(t,"ignore");await j(p)||(await I(p,GS),y.success("Created .agentsmesh/ignore"));}s(Y$,"writeScaffoldGapFill");Zt();var tQ=".agentsmesh/lessons";function Is(t){let e=join(t,tQ);return {base:e,journal:join(e,"journal.md"),index:join(e,"index.yaml"),ledger:join(e,"distill-ledger.yaml"),proposal:join(e,"distill-proposal.md"),topicsDir:join(e,"topics")}}s(Is,"lessonsPaths");var zf=`# Lessons Learned
|
|
331
|
+
|
|
332
|
+
`,Vf=`version: 1
|
|
333
|
+
clusters: []
|
|
334
|
+
`,Sp=`## Lessons (MUST do \u2014 non-negotiable)
|
|
335
|
+
|
|
336
|
+
Two rituals. Universal across every agent harness \u2014 described in tool-agnostic action verbs ("read a file", "edit a file", "run a shell command"); use whatever read / write-patch / shell-exec tool your harness exposes. Skipping either ritual is a process violation; the same paid-for failure recurs next session.
|
|
337
|
+
|
|
338
|
+
**Recall \u2014 BEFORE editing any file or running any shell command:**
|
|
339
|
+
|
|
340
|
+
1. Read \`.agentsmesh/lessons/index.yaml\`.
|
|
341
|
+
2. For every cluster whose triggers match \u2014 \`file_globs\` against the target file path, \`command_patterns\` (regex) against the shell command, or \`keywords\` (case-insensitive substring) against the active task description \u2014 read its \`file\` (e.g. \`.agentsmesh/lessons/topics/<topic>.md\`).
|
|
342
|
+
3. Apply the loaded rules to the action.
|
|
343
|
+
4. Then \u2014 and only then \u2014 perform the edit or run the command.
|
|
344
|
+
|
|
345
|
+
Rejected excuses: *"the edit is small"* \u2192 apply it. *"I read this earlier in the session"* \u2192 context may have compacted; re-read. *"no trigger fires"* \u2192 proceed; you've done your part.
|
|
346
|
+
|
|
347
|
+
**Capture \u2014 IMMEDIATELY after any failure** (test, CI, lint, code review, user correction, regression you spotted yourself, OR any mistake by anyone in the loop):
|
|
348
|
+
|
|
349
|
+
1. Append one bullet to \`.agentsmesh/lessons/journal.md\` in this exact shape:
|
|
350
|
+
\`- **<short heading>**: <what went wrong>. <root cause>. <imperative rule that prevents recurrence>.\`
|
|
351
|
+
2. Read \`.agentsmesh/lessons/index.yaml\` and identify which topic the lesson belongs to (use the \`summary:\` fields).
|
|
352
|
+
3. If the lesson teaches a NEW rule: edit that topic's \`## Rules\` section to add it, citing \`(Evidence: L<journal-line>)\`. If it only reinforces an existing rule, the journal entry alone suffices.
|
|
353
|
+
|
|
354
|
+
Rejected excuses: *"it wasn't really a failure"* \u2192 if you fixed something, it was. *"I'll capture it later"* \u2192 no; do it now while context is fresh. *"no topic fits"* \u2192 still record in journal; an unrouted bullet is recoverable, a forgotten one is not.
|
|
355
|
+
|
|
356
|
+
**These two rituals are load-bearing. Treat them with the same discipline as TDD.**`;function ja(t){let e=Is(t),r=[],n=[];mkdirSync(e.topicsDir,{recursive:true});for(let[i,a]of [[e.journal,zf],[e.index,Vf]])existsSync(i)?n.push(i):(mkdirSync(dirname(i),{recursive:true}),writeFileSync(i,a,"utf8"),r.push(i));let o=nQ(t);return {created:r,skipped:n,rootRuleUpdated:o}}s(ja,"scaffoldLessons");function nQ(t){let e=join(t,".agentsmesh/rules/_root.md");if(!existsSync(e)){mkdirSync(dirname(e),{recursive:true});let o=`---
|
|
357
|
+
root: true
|
|
358
|
+
description: ""
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
# Operational Guidelines
|
|
362
|
+
|
|
363
|
+
${Sp}
|
|
364
|
+
`;return writeFileSync(e,o,"utf8"),true}let r=readFileSync(e,"utf8");if(/^## Lessons \(/m.test(r))return false;let n=r.endsWith(`
|
|
365
|
+
`)?r:`${r}
|
|
366
|
+
`;return writeFileSync(e,`${n}
|
|
367
|
+
${Sp}
|
|
368
|
+
`,"utf8"),true}s(nQ,"appendProceduralRule");var Jf="agentsmesh.yaml",WS="agentsmesh.local.yaml",sQ=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],iQ=Object.fromEntries(Pt.map(t=>[t.id,(e,r)=>t.generators.importFrom(e,{scope:r})])),Q$=Pt.filter(t=>t.globalSupport!==void 0).map(t=>t.id);function aQ(t,e){if(e.has(t))return true;let r=t.replace(/\/$/,"");for(;r.includes("/")&&(r=r.slice(0,r.lastIndexOf("/")),r!=="");)if(e.has(r)||e.has(`${r}/`)||e.has(`${r}/**`))return true;return false}s(aQ,"isCoveredByExisting");async function lQ(t){let e=join(t,".gitignore"),r=await _(e)??"",n=new Set(r.split(`
|
|
369
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"))),o=sQ.filter(a=>!aQ(a,n));if(o.length===0)return false;let i=r.endsWith(`
|
|
328
370
|
`)||r===""?"":`
|
|
329
|
-
`;return await
|
|
371
|
+
`;return await I(e,r+i+o.join(`
|
|
330
372
|
`)+`
|
|
331
|
-
`),true}s(
|
|
373
|
+
`),true}s(lQ,"appendToGitignore");async function q$(t,e={}){let r=e.global===true?"global":"project",n=e.lessons===true;if(n&&r==="global")throw new Error("--lessons is project-mode only. Lessons live in the project tree.");let o=Pi(t,r),i=join(o.configDir,Jf),a=await j(i);if(a&&n){let C=ja(t);return {exitCode:0,data:{scope:r,configFile:Jf,localConfigFile:WS,detectedConfigs:[],imported:[],importedToolCount:0,scaffoldType:"none",gitignoreUpdated:false,lessons:C,lessonsOnly:true}}}if(a)throw new Error(`Already initialized. ${Jf} exists. Remove it first to re-init.`);let l=await V$(o.rootBase,r),c=r==="global"?l.filter(C=>Q$.includes(C)):l,m=r==="global"?Q$:void 0,p=[],u,f=0;if(c.length>0)if(e.yes){for(let C of c){let R=iQ[C];if(!R)continue;let k=await R(o.rootBase,r);for(let b of k)p.push({from:relative(o.rootBase,b.fromPath).replaceAll("\\","/"),to:b.toPath.replaceAll("\\","/")});}f=c.length,await Y$(o.canonicalDir),u="gap-fill",await I(i,Wf(c,m));}else await US(o.canonicalDir),u="full",await I(i,Wf([],m));else await US(o.canonicalDir),u="full",await I(i,Wf([],m));let g=join(o.configDir,WS);await I(g,W$);let h=false;r==="project"&&(h=await lQ(t));let S=n?ja(t):void 0;return {exitCode:0,data:{scope:r,configFile:Jf,localConfigFile:WS,detectedConfigs:c,imported:p,importedToolCount:f,scaffoldType:u,gitignoreUpdated:h,lessons:S}}}s(q$,"runInit");ot();function eG(t){let{data:e}=t;if(e.lessonsOnly===true&&e.lessons!==void 0){tG(e.lessons),y.info("Run 'agentsmesh generate' to project the new lessons rule to every target.");return}if(e.detectedConfigs.length>0&&y.info(`Found existing configurations: ${e.detectedConfigs.join(", ")}`),e.detectedConfigs.length>0&&e.imported.length===0&&y.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),e.imported.length>0){y.info("Auto-importing existing configurations (--yes)...");for(let n of e.imported)y.success(` ${n.from} \u2192 ${n.to}`);y.info(`Imported ${e.imported.length} file(s) from ${e.importedToolCount} tool(s).`);}let r=e.imported.length>0&&e.detectedConfigs.length>0?` (targets: ${e.detectedConfigs.join(", ")})`:"";y.success(`Created ${e.configFile}${r}`),y.success(`Created ${e.localConfigFile}`),e.gitignoreUpdated&&y.success("Updated .gitignore"),e.lessons!==void 0&&tG(e.lessons);}s(eG,"renderInit");function tG(t){let e=process.cwd(),r=s(n=>relative(e,n).replaceAll("\\","/"),"rel");for(let n of t.created)y.success(` Created ${r(n)}`);for(let n of t.skipped)y.info(` Kept ${r(n)} (already exists)`);t.rootRuleUpdated?y.success(" Appended Lessons recall paragraph to .agentsmesh/rules/_root.md"):y.info(" .agentsmesh/rules/_root.md already contains the Lessons paragraph"),y.success("Lessons subsystem ready (.agentsmesh/lessons/).");}s(tG,"renderLessons");Zt();xt();var mQ=Object.fromEntries(Pt.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function Yf(t){return mQ[t]}s(Yf,"getTargetCatalogEntry");ce();$r();rm();var hQ={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function yQ(t){return t.mcpServers.agentsmesh!==void 0?false:(t.mcpServers.agentsmesh=hQ,true)}s(yQ,"injectAgentsmeshEntry");async function zS(t){let e=resolve(t,".agentsmesh/mcp.json");try{let r;try{r=await Ur(e)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!yQ(r))return !1;let n=JSON.stringify(r,null,2)+`
|
|
332
374
|
`;await mkdir(dirname(e),{recursive:!0});let o=`${e}.tmp.${process.pid}.${Date.now()}`;return await writeFile(o,n,"utf8"),await rename(o,e),!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)}
|
|
333
|
-
`),false}}s(wI,"seedAgentsmeshMcpEntry");function x$(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(x$,"mapResults");async function D$(t,e){let r=e??process.cwd(),n=t.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=t.global===true?"global":"project";if(Fe(o)){let p=Oi(r,i),f=await vf(o).importFrom(p.rootBase,{scope:i});return f.length>0&&await wI(p.rootBase),{exitCode:0,data:{scope:i,target:o,files:x$(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await yt(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: ${vt.join(", ")}.`)}await Gt(a,r);let c=ot(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...vt,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&await wI(l.rootBase),{exitCode:0,data:{scope:i,target:o,files:x$(m,l.rootBase)}}}s(D$,"runImport");Zt();ho();function Mf(t){let e=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of t){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});e.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});e.push({path:n.path,patch:o});continue}}return {diffs:e,summary:r}}s(Mf,"computeDiff");function $f(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s($f,"formatDiffSummary");Mr();async function F$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Gt(a,r);let{canonical:c}=await Ee(a,l.configDir,{},l.canonicalDir),m=await vr({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}=Mf(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(F$,"runDiff");Zt();ho();A();ae();Pi();wt();var PZ=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(t=>{let e=t.permissions;if(!e)return false;let r=e.ask?.length??0;return e.allow.length+e.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(t=>{let e=t.hooks;return e?Object.values(e).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(t=>{let e=t.mcp;return e?Object.keys(e.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(t=>t.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(t=>t.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(t=>t.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(t=>t.ignore.length>0,"hasContent")}];function v$(t){let e=new Set(t.enabledFeatures),r=[];for(let n of PZ)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||Br(t.capabilities[n.capabilityKey]).level!=="none"||r.push(x(n.file,t.target,`${t.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(v$,"lintSilentFeatureDrops");wt();var TZ=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function xZ(t){let r=t.match(TZ)?.groups?.path;return typeof r=="string"?r:null}s(xZ,"extractScriptToken");function M$(t){if(t.hasScriptProjection)return [];let e=t.canonical.hooks;if(!e)return [];let r=[];for(let n of Object.values(e))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=xZ(o.command);i&&r.push(x(".agentsmesh/hooks.yaml",t.target,`${t.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${t.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(M$,"lintHookScriptReferences");wt();function $$(t){if(t.preservesManualActivation)return [];let e=[];for(let r of t.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(t.target)||e.push(x(r.source,t.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${t.target} loads every rule unconditionally. The rule will become always-on for ${t.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return e}s($$,"lintRuleScopeInversion");var DZ=["node_modules",".git","dist","coverage",".agentsmesh"];async function NZ(t){return (await $(t)).filter(n=>{let o=relative(t,n);return !DZ.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(t,n))}s(NZ,"getProjectFiles");async function Gf(t,e,r,n,o={}){let i=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(k=>n.includes(k)):a,c=t.features.includes("rules"),m=t.features.includes("commands"),p=t.features.includes("mcp"),u=t.features.includes("permissions"),f=t.features.includes("hooks"),g=[],h=i==="global"?[]:await NZ(r);for(let k of l){let C=ot(k),R=Fe(k)?vf(k):C;R?.capabilities&&g.push(...v$({target:k,capabilities:R.capabilities,canonical:e,enabledFeatures:t.features})),f&&g.push(...M$({target:k,canonical:e,hasScriptProjection:C?.postProcessHookOutputs!==void 0})),c&&g.push(...$$({target:k,canonical:e,preservesManualActivation:C?.preservesManualActivation===true})),c&&R?.lintRules&&g.push(...R.lintRules(e,r,h,{scope:i})),C?.generators.lint&&g.push(...C.generators.lint(e));let P={scope:i};m&&R?.lint?.commands&&g.push(...R.lint.commands(e,P)),p&&R?.lint?.mcp&&g.push(...R.lint.mcp(e,P)),u&&R?.lint?.permissions&&g.push(...R.lint.permissions(e,P)),f&&R?.lint?.hooks&&g.push(...R.lint.hooks(e,P));}let I=g.some(k=>k.level==="error");return {diagnostics:g,hasErrors:I}}s(Gf,"runLint");Mr();async function j$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Gt(a,r);let{canonical:c}=await Ee(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Gf(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(j$,"runLintCmd");st();function U$(t){let{data:e}=t;if(e.diagnostics.length===0){y.success("All checks passed.");return}let r=e.diagnostics.filter(a=>a.level==="error"),n=e.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=e.summary.errors,i=e.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(U$,"renderLint");st();function B$(t){let{data:e}=t;if(!e.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(e.inSync){y.success("Lock file is in sync.");return}let r=new Set(e.lockedViolations);y.error("Conflict detected:");for(let n of e.extendsModified)y.error(` extend "${n}" was modified`);for(let n of e.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of e.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of e.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(B$,"renderCheck");st();function K$(t){let{data:e}=t;if(e.files.length===0){y.info(`Nothing to import from ${e.target}.`);return}for(let n of e.files)y.success(`${n.from} \u2192 ${n.to}`);let r=e.scope==="global"?" --global":"";y.info(`Imported ${e.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(K$,"renderImport");st();function W$(t){let{summary:e}=t.data;if(e.created+e.updated+e.unchanged+e.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of t.data.patches)process.stdout.write(n.patch);y.info($f({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(W$,"renderDiff");st();function H$(t){if(!t.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(H$,"renderMerge");pp();dp();Zt();ho();pp();dp();st();var MZ=300;function $Z(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s($Z,"normalizeWatchPath");function GZ(t,e){let r=$Z(relative(t,e));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(GZ,"shouldIgnoreWatchPath");function jZ(t,e,r,n,o,i,a,l,c){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(jZ,"featureFingerprint");async function V$(t,e,r={}){let n=e??process.cwd(),o=t.global===true?"global":"project",{context:i}=await yt(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:k,context:C}=await yt(n,o),{canonical:R}=await Ee(k,C.configDir,{},C.canonicalDir),P=R.mcp?Object.keys(R.mcp.mcpServers).length:0,N=R.permissions?R.permissions.allow.length+R.permissions.deny.length:0,F=R.hooks?Object.values(R.hooks).reduce((M,tt)=>M+(Array.isArray(tt)?tt.length:0),0):0,B=R.ignore.length,U=jZ(k.features,R.rules.length,R.commands.length,R.agents.length,R.skills.length,P,N,F,B),q=c!==null&&c!==U;if(c=U,m)return;let nt=await Rc(t,n,{printMatrix:false});if(Ic(nt),!m){if(q){let M=await mp(t,n);up(M,{verbose:t.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:q});}},"run"),f=s(()=>{let k=u().catch(C=>{if(!m){let R=C instanceof Error?C.message:String(C);y.error(R);}}).finally(()=>{p===k&&(p=null);});p=k;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,MZ));},"schedule"),h=r.usePolling??process.platform==="win32",I=vZ.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return I.on("all",(k,C)=>{GZ(i.canonicalDir,C)||g();}),await new Promise((k,C)=>{I.once("ready",k),I.once("error",C);}),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 I.close(),p&&await p;},"stop")}}s(V$,"runWatch");Zt();Jp();async function jf(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await kf(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await Rs(n),a=await tl(e,r),l=a.length>0?await hc(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let C of c){let R=i[C];R===void 0?f.push(C):R!==o.checksums[C]&&p.push(C);}for(let C of m)c.has(C)||u.push(C);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let C of g)l[C]!==o.extends[C]&&h.push(C);let I=Lf(o.checksums,i,e.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:I}}s(jf,"checkLockSync");Mr();async function J$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n);await Gt(o,r);let a=await jf({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(J$,"runCheck");Zt();A();Jp();var BZ=".lock",KZ="<<<<<<<";async function AI(t){let e=join(t,BZ),r=await _(e);return r===null?false:r.includes(KZ)}s(AI,"hasLockConflict");async function X$(t,e,r){if(!await AI(t))throw new Error("No conflict to resolve.");let o=await Rs(t),i=dirname(t),a=r?await tl(r,i):[],l=a.length>0?await hc(a):{},c=await Of(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Ef(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}s(X$,"resolveLockConflict");async function Z$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n),a=i.canonicalDir;return await AI(a)?(await X$(a,Ei(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(Z$,"runMerge");Zt();yf();function Q$(t){let e=typeof t.path=="string"?t.path.trim():void 0,r=typeof t.target=="string"?t.target.trim():void 0,n=typeof t.as=="string"?t.as.trim():void 0;return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,all:t.all===true,forceFreshMaterialize:t.forceFreshMaterialize===true,explicitPath:e||void 0,explicitTarget:r||void 0,explicitAs:n?fc.parse(n):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}s(Q$,"readInstallFlags");var zZ=".install.lock";async function Cc(t,e={}){return await mkdir(t,{recursive:true}),xf(join(t,zZ),e)}s(Cc,"acquireInstallLock");Zt();A();Hc();var YZ=promisify(execFile);function Uf(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(Uf,"ensureNotFlag");async function bI(t){let{stdout:e}=await YZ("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(bI,"runGit");async function q$(){try{return await bI(["--version"]),!0}catch{return false}}s(q$,"isGitAvailable");async function XZ(t,e){Uf(t,"remote-url"),Uf(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await bI(["ls-remote",t,o])).split(`
|
|
334
|
-
`).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 "${e}" for ${t}: ${n instanceof Error?n.message:String(n)}`)}s(
|
|
335
|
-
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${e}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${e}`);return i.toLowerCase()}return XZ(e,r)}s(Bf,"resolveRemoteRefForInstall");async function tG(t){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};let e=t.gitRemoteUrl;if(!e)throw new Error("Internal error: missing git remote URL");let r=await Bf(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await qa(l,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await qa(l,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await qa(i,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(tG,"fetchInstallSource");async function eG(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await tG(t);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 ${e}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(eG,"resolveInstallResolvedPath");function fp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.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(fp,"parseGithubTreeUrl");function gp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.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(gp,"parseGithubBlobUrl");function hp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(hp,"parseGitlabTreeUrl");function yp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(yp,"parseGitlabBlobUrl");var ZZ=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function _p(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||ZZ.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(_p,"parseGithubRepoUrl");function Rp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(Rp,"parseGitlabRepoUrl");function Ip(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(Ip,"parseGitSshGithub");function Sp(t){let e=t.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!e)return null;let n=e[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(Sp,"parseGitSshGitlab");A();var tQ=/^[A-Za-z]:[\\/]/,eQ=/^[A-Za-z]:\//;function rG(...t){return t.some(e=>e.includes("\\")||tQ.test(e))?win32:posix}s(rG,"pathApiFor");function kp(t){return t.replace(/\\/g,"/")}s(kp,"toPosixPath");function Cp(t){return kp(t).replace(/^\/+|\/+$/g,"")}s(Cp,"normalizeInstallPathField");function Kf(t){let e=kp(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||eQ.test(e)?e:`./${e}`}s(Kf,"normalizeLocalSourceForYaml");function hi(t){return {...t,source:t.source_kind==="local"?Kf(t.source):t.source,...t.path!==void 0?{path:Cp(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>Cp(e))}:{}}}s(hi,"normalizePersistedInstallPaths");function nG(t,e,r){let n=rG(t,e),o=n.normalize(t),i=n.normalize(e),a=Cp(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=Cp(u),g=kp(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Kf(g)}}let m=kp(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Kf(m)}}s(nG,"localParsedFromAbsPath");async function PI(t,e,r){let n=t.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=fp(n)??gp(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=_p(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=hp(n)??yp(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=Rp(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=Ip(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=Sp(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(e,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return nG(m,e,o)}s(PI,"parseInstallSource");function Ep(t){let e=t.trim();if(e.startsWith("local:"))return {kind:"local"};if(e.startsWith("git+")){let a=e.lastIndexOf("#"),l=a<0?e:e.slice(0,a),c=a<0?"HEAD":e.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=e.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=e.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=e.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=e.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(e.startsWith("https://")||e.startsWith("http://")){let a=fp(e)??gp(e);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=_p(e);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=hp(e)??yp(e);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Rp(e);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:e,ref:"HEAD"}}if(e.startsWith("git@github.com:")){let a=Ip(e);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(e.startsWith("git@gitlab.com:")){let a=Sp(e);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(e.startsWith("git@")){let a=e.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(Ep,"parseSourceUrl");NR();function _n(t){let e=[];return t.skills.length&&e.push("skills"),t.rules.length&&e.push("rules"),t.commands.length&&e.push("commands"),t.agents.length&&e.push("agents"),t.mcp!==null&&e.push("mcp"),t.permissions!==null&&e.push("permissions"),t.hooks!==null&&e.push("hooks"),t.ignore.length&&e.push("ignore"),e}s(_n,"featuresFromCanonical");async function Wf(t,e={}){let{sliceRoot:r,implicitPick:n}=await pf(t),{canonical:o,cleanup:i}=await uf(r,{...e,enableTargetEntityMappers:true});return {canonical:o,features:_n(o),implicitPick:n,cleanup:i}}s(Wf,"discoverFromContentRoot");function oG(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(oG,"validateSkill");function sG(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(sG,"validateRule");function iG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(iG,"validateCommand");function aG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(aG,"validateAgent");function se(t){return basename(t.source).replace(/\.md$/i,"")}s(se,"ruleSlug");function oQ(t){if(!t)return;let e=[];return t.skills!==void 0&&e.push("skills"),t.rules!==void 0&&e.push("rules"),t.commands!==void 0&&e.push("commands"),t.agents!==void 0&&e.push("agents"),e.length>0?e:void 0}s(oQ,"featuresFromImplicitPick");function Ec(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??oQ(r);if(!r&&!n)return t;let o=new Set(n??[]),i={...t,mcp:!n||o.has("mcp")?t.mcp:null,permissions:!n||o.has("permissions")?t.permissions:null,hooks:!n||o.has("hooks")?t.hooks:null,ignore:!n||o.has("ignore")?t.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(se(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(Ec,"narrowDiscoveredForInstallScope");UR();async function lG(t,e,r,n,o={}){let i=await gf(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Wf(i.discoveryRoot,o),c=Ec(a,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:_n(c)}}s(lG,"resolveManualDiscoveredForInstall");So();kR();A();Pt();var sQ=(()=>{let t=new Map;for(let r of bt){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=t.get(a)??new Set;l.add(r.id),t.set(a,l);}}let e=[];for(let[r,n]of t){if(n.size!==1)continue;let[o]=[...n];e.push({prefix:r,target:o});}return e.sort((r,n)=>n.prefix.length-r.prefix.length)})();function iQ(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(iQ,"norm");function Hf(t){let e=iQ(t);if(e){for(let{prefix:r,target:n}of sQ)if(e===r||e.startsWith(`${r}/`))return n}}s(Hf,"targetHintFromNativePath");function TI(t,e){return Hf(t)===e}s(TI,"pathSupportsNativePick");function cG(t,e){if(!t||!e)return;let r=Hf(e);if(r&&r!==t)throw new Error(`--target "${t}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(cG,"validateTargetMatchesPath");function mG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(mG,"extendPickHasArrays");A();A();Yt();async function uG(t,e){let r=join(t,...Xe.split("/")),n=join(t,...e.split("/")),o=await $(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()}s(uG,"inferGeminiCommandNamesFromFiles");Yt();fr();A();async function va(t){let e=await $(t),r=new Set;for(let n of e){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(t,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}s(va,"skillNamesFromNativeSkillDir");A();Dr();async function dG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(ii)){let n=await $(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(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let n=await $(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(e.startsWith(".github/instructions")){let n=await $(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(e.startsWith(".github/skills")){let n=await va(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await $(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 {}}s(dG,"inferCopilotPickFromPath");async function qe(t,e){let r=await $(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}s(qe,"mdNames");async function gG(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===Xe||n.startsWith(`${Xe}/`)){let i=await uG(t,n);return i.length?{commands:i}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".claude/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".claude/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".claude/skills/")){let a=n.replace(/^\.claude\/skills\/?/,"").split("/").filter(Boolean)[0];return a?{skills:[a]}:{}}return {}}if(r==="cursor"){if(n.startsWith(".cursor/rules")){let i=await qe(o,".mdc");return i.length?{rules:i}:{}}if(n.startsWith(".cursor/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".cursor/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".cursor/skills")){let i=await va(o);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return dG(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(r==="cline"){if(n.startsWith(qt)){let i=await va(o);return i.length?{skills:i}:{}}if(n.startsWith(Fn)){let i=await qe(o,".md");return i.length?{commands:i}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".continue/prompts")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".continue/skills")){let i=await va(o);return i.length?{skills:i}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".junie/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".junie/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".junie/skills")){let i=await va(o);return i.length?{skills:i}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let i=await $(o),a=[...new Set(i.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}s(gG,"inferImplicitPickFromNativePath");function hG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(hG,"isImplicitPickEmpty");ER();function Op(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(Op,"normalizePath");function hQ(t,e){let r=Op(t),n=Op(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(hQ,"overlapsPath");function zf(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(zf,"addUnique");async function yQ(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup");try{return await cp$1(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(yQ,"makeStageRoot");function _Q(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:zf(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Op(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:zf(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:zf(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Op(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:zf(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(_Q,"buildPickFromResults");function RQ(t,e,r,n){let o=join(e,...Op(t).split("/")),i=r.filter(a=>hQ(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${t}" for target "${n}". Try --path "${t}" 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:_Q(i,e)}}s(RQ,"scopeImportedResults");async function DI(t,e){let{stageRoot:r,cleanup:n}=await yQ(t);try{let o=await op(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(DI,"stageImportedNativeRepo");async function NI(t,e,r){let n=await DI(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...RQ(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(NI,"stageNativeInstallScope");async function IG(t,e,r,n){let o=n.explicitTarget?.trim();o&&nr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");cG(o,i);let a=join(t,".agentsmesh"),l=await j(a),c=i?Hf(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await tf(t)??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 P=await NI(t,i,u);return {discoveryRoot:P.stageRoot,implicitPick:P.pick,scopedFeatures:P.features,yamlTarget:u,importHappened:true,cleanup:P.cleanup}}let R=await DI(t,u);return {discoveryRoot:i?join(R.stageRoot,i):R.stageRoot,yamlTarget:u,importHappened:true,cleanup:R.cleanup}}let g;l?i?u&&TI(i,u)?g=t:g=e:g=t:g=e;let h,I,k;if(f&&u){let R=await NI(t,i,u);g=R.stageRoot,h=R.pick,I=R.features,k=R.cleanup;}else if(g===t&&i&&u&&TI(i,u)&&(h=await gG(t,i,u),hG(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 C;return o?C=o:u&&(h&&mG(h)||(I?.length??0)>0)&&(C=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:I,yamlTarget:C,importHappened:k!==void 0,cleanup:k}}s(IG,"prepareInstallDiscovery");async function FI(t,e,r,n,o={}){let i=await IG(t,e,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Wf(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Ec(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=_n(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(FI,"resolveDiscoveredForInstall");var CQ=[".claude-plugin","marketplace.json"];async function kQ(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(kQ,"dirExists");function EQ(t){if(typeof t!="string"||t.length===0||t.startsWith("/"))return null;let e=t.replace(/^\.\/+/,"").replace(/\/+$/,"");return e.split("/").some(r=>r==="..")?null:e}s(EQ,"normalizeSource");async function CG(t,e,r){let n=join(t,...CQ),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=EQ(c.source);if(!m)continue;let p=join(t,m);if(!await kQ(p))continue;let u=await e(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(CG,"detectMarketplaceSubPacks");async function wp(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(wp,"dirExists");async function yi(t){try{return (await readdir(t,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(yi,"listDirEntries");function kG(t){return t.endsWith(".instructions.md")?"copilot-instructions":t.endsWith(".md")?"md":t.endsWith(".mdc")?"mdc":t.endsWith(".toml")?"toml":null}s(kG,"classifyFileShape");var wQ=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],AQ=[".cursorrules",".windsurfrules"];async function LG(t){let e=join(t,".agentsmesh");if(!await wp(e))return null;let r=await yi(e),n=new Set(r.map(o=>o.name));for(let o of wQ)if(n.has(o))return {path:".agentsmesh"};return null}s(LG,"detectCanonical");async function OG(t){for(let e of AQ)try{if((await stat(join(t,e))).isFile())return {path:e}}catch{}return null}s(OG,"detectRootRule");async function wG(t){try{if((await stat(join(t,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(wG,"detectRootSkill");Eo();var PQ={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},TQ=[".claude-plugin",".codex-plugin",".cursor-plugin"],xQ=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function AG(t){let e=join(t,"skills"),r=await yi(e);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!xQ.test(n.name))&&await wp(join(e,n.name)))try{if((await stat(join(e,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(AG,"detectSkillPack");async function bG(t){let e=[];for(let[r,n]of Object.entries(PQ)){let o=join(t,r),i=await yi(o),a=new Set;for(let l of i){if(!l.isFile||Cn(l.name))continue;let c=kG(l.name);c&&a.add(c);}for(let l of a)e.push({path:r,suggestedAs:n,fileShape:l});}return e}s(bG,"detectFlatCollections");async function PG(t){let e=[];for(let r of TQ)await wp(join(t,r))&&e.push({path:r});return e}s(PG,"detectToolNativeManifests");async function $I(t,e){let r=await LG(t);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await AG(t),o=n?null:await wG(t),i=await bG(t),a=n||o||i.length>0?null:await OG(t),l=await PG(t);return {canonical:r,skillPack:n?{path:e?`${e}/skills`:"skills"}:null,rootSkill:o?{path:e?`${e}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:e?`${e}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:e?`${e}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:e?`${e}/${c.path}`:c.path}))}}s($I,"detectFlatLayout");function MI(t){return t.canonical!==null||t.skillPack!==null||t.rootSkill!==null||t.rootRule!==null||t.flatCollections.length>0}s(MI,"hasContent");async function TG(t,e){let r=await yi(t),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(t,o.name),a=e?`${e}/${o.name}`:o.name,l=await $I(i,a);MI(l)&&n.push({path:a,layout:l});}return n}s(TG,"collectSubPackCandidates");async function DQ(t,e){if(MI(e))return [];let r=await CG(t,$I,MI);if(r&&r.length>0)return r;let n=await TG(t,"");if(n.length>=2)return n;let o=await yi(t);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await TG(join(t,i.name),i.name);if(a.length>=2)return a}return []}s(DQ,"detectSubPacks");async function DG(t){let e=await $I(t,"");if(e.canonical)return {...e,subPacks:[]};let r=await DQ(t,e);return {...e,subPacks:r}}s(DG,"detectLayout");A();K();async function FG(t){let e;try{e=await readdir(t);}catch{return null}let r=e.sort().find(c=>c.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await _(join(t,r));if(!n)return null;let o=Gr(n,join(t,r));if(!o.ok)return null;let{frontmatter:i}=o.value,a="alwaysApply"in i,l="trigger"in i;return a&&l?null:a?"cursor":l?"windsurf":null}s(FG,"inferMdcTarget");sf();mf();function GQ(t){let e=t.indexOf("#");return e<0?{path:t,anchor:""}:{path:t.slice(0,e),anchor:t.slice(e)}}s(GQ,"splitAnchor");function jQ(t){return t.split(sep).join("/")}s(jQ,"toForwardSlash");async function UQ(t){try{return await stat(t),!0}catch{return false}}s(UQ,"pathExists");async function GG(t){let{link:e,fromFile:r,contentRoot:n,includedPaths:o}=t,{path:i,anchor:a}=GQ(e.path);if(i===""||isAbsolute(i))return {link:e,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:e,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=jQ(p);return await UQ(c)?o.has(u)?{link:e,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:e,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:e,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(GG,"resolveLink");var BQ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,KQ=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,WQ=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function HQ(t){let e=[];for(let r of t.matchAll(BQ)){let n=r.index??0;e.push([n,n+r[0].length]);}return e}s(HQ,"getFencedCodeRanges");function jG(t,e){for(let[r,n]of e)if(t>=r&&t<n)return true;return false}s(jG,"isInRanges");function UG(t){let e=t.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(e);return r?.[1]!==void 0&&(e=r[1].trim()),e.startsWith("<")&&e.endsWith(">")&&(e=e.slice(1,-1).trim()),e}s(UG,"normalizeDestination");function Vf(t){let e=HQ(t),r=[];for(let n of t.matchAll(KQ)){let o=n.index??0;if(jG(o,e))continue;let i=n[1]==="!",a=n[2];if(a===void 0)continue;let l=t.indexOf("(",o);if(l<0)continue;let c=l+1;r.push({kind:i?"image":"inline",destination:UG(a),destinationOffset:c,destinationLength:a.length});}for(let n of t.matchAll(WQ)){let o=n.index??0;if(jG(o,e))continue;let i=(n[1]??"").trim(),a=n[2]??"";if(i===""||a.trim()==="")continue;let l=o,c=t.indexOf("]:",l);if(c<0)continue;let m=c+2;for(;m<t.length&&(t[m]===" "||t[m]===" ");)m+=1;r.push({kind:"reference-def",destination:UG(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(Vf,"scanMarkdownLinks");function BG(t,e){if(e.length===0)return t;let r=[...e].sort((o,i)=>i.offset-o.offset),n=t;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(BG,"applyRangeRewrites");function zQ(t){return !(t.length===0||t.startsWith("#")||t.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}s(zQ,"isCandidateRelativePath");function VQ(t){let e=t.replaceAll("\\","/");return e==="{baseDir}"?".":e.startsWith("{baseDir}/")?e.slice(10):e}s(VQ,"stripPath");function JQ(t){let e=t.destination;return zQ(e)?{raw:e,path:VQ(e),kind:t.kind,...t.label!==void 0?{label:t.label}:{}}:null}s(JQ,"toScannedLink");function KG(t){let e=[];for(let r of Vf(t)){let n=JQ(r);n!==null&&e.push(n);}return e}s(KG,"scanRelativeLinks");function Lc(t,e){let r=t.replaceAll("\\","/"),n=e.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(Lc,"toForwardSlashRelative");function WG(t,e,r,n,o){let i=new Set;for(let a of e){i.add(Lc(t,a.source));for(let l of a.supportingFiles)i.add(Lc(t,l.absolutePath));}for(let a of r)i.add(Lc(t,a.source));for(let a of n)i.add(Lc(t,a.source));for(let a of o)i.add(Lc(t,a.source));return i}s(WG,"buildIncludedPaths");function XQ(t,e,r,n){let o=[];for(let i of t)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of e)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(XQ,"listScannables");async function HG(t,e,r,n,o,i){let a=XQ(e,r,n,o),l=[];for(let c of a){let m=KG(c.body);if(m.length===0)continue;let p=Lc(t,c.sourcePath),u=[];for(let f of m){let g=await GG({link:f,fromFile:p,contentRoot:t,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(HG,"detectBrokenLinks");mf();async function zG(t,e,r={}){let n=new Map,o=new Map,i=[],a=[...e].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await af(join(t,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 I=o.get(g.name)??[];I.push({path:g.source,precedence:p.precedence}),o.set(g.name,I);}}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(zG,"mergeCommands");async function VG(t,e,r={}){let[n,o,i,a]=await Promise.all([Yv(`${t}/skills`,r),cf(`${t}/agents`,{parseOpts:r}),lf(`${t}/rules`,{parseOpts:r}),zG(t,e.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=WG(t,n,l,a.commands,c),p=await HG(t,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(VG,"aggregateAnthropicSkillPack");var JG={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};rl();function qQ(t){return {rules:[...t.rules],commands:[...t.commands],agents:[...t.agents],skills:[...t.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(qQ,"aggregateToCanonical");function Jf(){return {}}s(Jf,"emptyPrep");async function tq(t,e){let r=[];for(let n of e)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await FG(join(t,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(tq,"enrichMdcTargets");function XG(t){return t.canonical?"canonical-agentsmesh":t.skillPack||t.rootSkill?"anthropic-skill-pack":t.rootRule||t.toolNativeManifests.length>0?"tool-native":"unknown"}s(XG,"deriveSourceType");async function eq(t,e){let r=await eu(t,e);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(eq,"rootSkillToCanonical");async function rq(t,e){let r=join(t,e),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${e}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(rq,"rootRuleToCanonical");async function ZG(t){let e=t.parseOpts??{};if(t.explicitAs)return {implicitPick:void 0,...await lG(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick,e)};if(t.explicitTarget)return FI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e);let r=await DG(t.contentRoot),n=await tq(t.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await VG(t.contentRoot,JG,e),l=qQ(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:_n(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await eq(t.contentRoot,e);return {prep:Jf(),implicitPick:void 0,narrowed:a,discoveredFeatures:_n(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await rq(t.contentRoot,o.rootRule.path);return {prep:Jf(),implicitPick:void 0,narrowed:a,discoveredFeatures:_n(a),layout:o}}return o.subPacks.length>0?{prep:Jf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Jf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await FI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e),layout:o}}s(ZG,"resolveInstallDiscovery");function qG(t){let e=new Set;t.skillPack&&e.add("skills"),t.rootSkill&&e.add("skills");for(let r of t.flatCollections)e.add(r.suggestedAs);return [...e]}s(qG,"featuresFromLayout");function nq(t){return t.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(nq,"subPackSlug");function QG(t,e,r){let n=qG(t.layout),o=n[0];return {name:`${e}-${nq(t.path)}`,source:r,path:t.path,as:o,features:n}}s(QG,"targetFromSubPack");function tj(t,e,r){return {name:e,source:r,path:t.path,as:t.suggestedAs,target:t.inferredTarget,features:[t.suggestedAs]}}s(tj,"targetFromCollection");function ej(t){let{layout:e,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=t;if(o||i||a)return {targets:[],isMarketplace:false};if(e.canonical||e.skillPack)return {targets:[],isMarketplace:false};if(e.subPacks.length>=1)return oq(t);if(e.flatCollections.length===1){let l=e.flatCollections[0];return {targets:[tj(l,r,n)],isMarketplace:false}}return e.flatCollections.length>1?sq(t):{targets:[],isMarketplace:false}}s(ej,"selectInstallCandidates");function oq(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.all)return {targets:e.subPacks.map(a=>QG(a,r,n)),isMarketplace:true};if(t.force||!t.tty){let a=e.subPacks.map(l=>({path:l.path,features:qG(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
375
|
+
`),false}}s(zS,"seedAgentsmeshMcpEntry");function nG(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(nG,"mapResults");function oG(t,e){if(e!=="project"||existsSync(Is(t).index))return;let r=join(t,".agentsmesh/rules/_root.md");existsSync(r)&&/^## Lessons \(/m.test(readFileSync(r,"utf8"))&&ja(t);}s(oG,"ensureImportedLessonsSubsystem");async function sG(t,e){let r=e??process.cwd(),n=t.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=t.global===true?"global":"project";if(ve(o)){let p=Pi(r,i),f=await Yf(o).importFrom(p.rootBase,{scope:i});return f.length>0&&(await zS(p.rootBase),oG(p.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:nG(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await yt(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: ${$t.join(", ")}.`)}await Ut(a,r);let c=nt(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...$t,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&(await zS(l.rootBase),oG(l.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:nG(m,l.rootBase)}}}s(sG,"runImport");Zt();yo();function Xf(t){let e=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of t){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});e.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});e.push({path:n.path,patch:o});continue}}return {diffs:e,summary:r}}s(Xf,"computeDiff");function Zf(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s(Zf,"formatDiffSummary");$r();async function aG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Ut(a,r);let{canonical:c}=await Oe(a,l.configDir,{},l.canonicalDir),m=await Mr({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}=Xf(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(aG,"runDiff");Zt();yo();A();ce();Ni();wt();var IQ=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(t=>{let e=t.permissions;if(!e)return false;let r=e.ask?.length??0;return e.allow.length+e.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(t=>{let e=t.hooks;return e?Object.values(e).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(t=>{let e=t.mcp;return e?Object.keys(e.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(t=>t.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(t=>t.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(t=>t.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(t=>t.ignore.length>0,"hasContent")}];function lG(t){let e=new Set(t.enabledFeatures),r=[];for(let n of IQ)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||Kr(t.capabilities[n.capabilityKey]).level!=="none"||r.push(D(n.file,t.target,`${t.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(lG,"lintSilentFeatureDrops");wt();var CQ=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function kQ(t){let r=t.match(CQ)?.groups?.path;return typeof r=="string"?r:null}s(kQ,"extractScriptToken");function cG(t){if(t.hasScriptProjection)return [];let e=t.canonical.hooks;if(!e)return [];let r=[];for(let n of Object.values(e))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=kQ(o.command);i&&r.push(D(".agentsmesh/hooks.yaml",t.target,`${t.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${t.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(cG,"lintHookScriptReferences");wt();function mG(t){if(t.preservesManualActivation)return [];let e=[];for(let r of t.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(t.target)||e.push(D(r.source,t.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${t.target} loads every rule unconditionally. The rule will become always-on for ${t.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return e}s(mG,"lintRuleScopeInversion");var EQ=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(t=>t.file_globs.length+t.command_patterns.length+t.keywords.length>0,{message:"cluster must declare at least one trigger of any type"}),LQ=z$1.object({topic:z$1.string().regex(/^[a-z0-9-]+$/,"topic must be kebab-case"),file:z$1.string().regex(/\.md$/,"file must be a .md path"),summary:z$1.string().min(1),triggers:EQ}),Qf=z$1.object({version:z$1.literal(1),clusters:z$1.array(LQ)});var wQ="lessons",uG=".agentsmesh/lessons/index.yaml",dG=".agentsmesh/rules/_root.md",AQ=/^## Lessons \(/m,bQ=/^## Rules\b/m;function fG(t,e){if(e==="global")return [];let r=Is(t);if(!existsSync(r.index))return [];let n=[],o=Qf.safeParse(parse(readFileSync(r.index,"utf8")));if(!o.success)return [Ip("error",uG,`index.yaml is invalid: ${o.error.issues[0].message}`)];for(let l of o.data.clusters){let c=join(t,l.file);if(!existsSync(c)){n.push(Ip("error",l.file,`topic file for cluster "${l.topic}" does not exist.`));continue}bQ.test(readFileSync(c,"utf8"))||n.push(Ip("warning",l.file,`topic "${l.topic}" is missing a "## Rules" section.`));for(let m of l.triggers.command_patterns)try{new RegExp(m);}catch{n.push(Ip("warning",uG,`cluster "${l.topic}" command_patterns entry is not a valid regex: ${m}`));}}let i=join(t,dG),a=existsSync(i)?readFileSync(i,"utf8"):"";return AQ.test(a)||n.push(Ip("warning",dG,'lessons procedural rule ("## Lessons (...)") is missing from _root.md \u2014 recall/capture enforcement will not fire.')),n}s(fG,"lintLessonsSubsystem");function Ip(t,e,r){return {level:t,file:e,target:wQ,message:r}}s(Ip,"diag");var PQ=["node_modules",".git","dist","coverage",".agentsmesh"];async function xQ(t){return (await G(t)).filter(n=>{let o=relative(t,n);return !PQ.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(t,n))}s(xQ,"getProjectFiles");async function qf(t,e,r,n,o={}){let i=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(C=>n.includes(C)):a,c=t.features.includes("rules"),m=t.features.includes("commands"),p=t.features.includes("mcp"),u=t.features.includes("permissions"),f=t.features.includes("hooks"),g=[...fG(r,i)],h=i==="global"?[]:await xQ(r);for(let C of l){let R=nt(C),k=ve(C)?Yf(C):R;k?.capabilities&&g.push(...lG({target:C,capabilities:k.capabilities,canonical:e,enabledFeatures:t.features})),f&&g.push(...cG({target:C,canonical:e,hasScriptProjection:R?.postProcessHookOutputs!==void 0})),c&&g.push(...mG({target:C,canonical:e,preservesManualActivation:R?.preservesManualActivation===true})),c&&k?.lintRules&&g.push(...k.lintRules(e,r,h,{scope:i})),R?.generators.lint&&g.push(...R.generators.lint(e));let b={scope:i};m&&k?.lint?.commands&&g.push(...k.lint.commands(e,b)),p&&k?.lint?.mcp&&g.push(...k.lint.mcp(e,b)),u&&k?.lint?.permissions&&g.push(...k.lint.permissions(e,b)),f&&k?.lint?.hooks&&g.push(...k.lint.hooks(e,b));}let S=g.some(C=>C.level==="error");return {diagnostics:g,hasErrors:S}}s(qf,"runLint");$r();async function hG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Ut(a,r);let{canonical:c}=await Oe(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await qf(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(hG,"runLintCmd");ot();function yG(t){let{data:e}=t;if(e.diagnostics.length===0){y.success("All checks passed.");return}let r=e.diagnostics.filter(a=>a.level==="error"),n=e.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=e.summary.errors,i=e.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(yG,"renderLint");ot();function _G(t){let{data:e}=t;if(!e.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(e.inSync){y.success("Lock file is in sync.");return}let r=new Set(e.lockedViolations);y.error("Conflict detected:");for(let n of e.extendsModified)y.error(` extend "${n}" was modified`);for(let n of e.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of e.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of e.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(_G,"renderCheck");ot();function RG(t){let{data:e}=t;if(e.files.length===0){y.info(`Nothing to import from ${e.target}.`);return}for(let n of e.files)y.success(`${n.from} \u2192 ${n.to}`);let r=e.scope==="global"?" --global":"";y.info(`Imported ${e.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(RG,"renderImport");ot();function SG(t){let{summary:e}=t.data;if(e.created+e.updated+e.unchanged+e.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of t.data.patches)process.stdout.write(n.patch);y.info(Zf({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(SG,"renderDiff");ot();function IG(t){if(!t.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(IG,"renderMerge");yp();Rp();Zt();yo();yp();Rp();ot();var NQ=300;function FQ(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(FQ,"normalizeWatchPath");function vQ(t,e){let r=FQ(relative(t,e));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(vQ,"shouldIgnoreWatchPath");function MQ(t,e,r,n,o,i,a,l,c){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(MQ,"featureFingerprint");async function kG(t,e,r={}){let n=e??process.cwd(),o=t.global===true?"global":"project",{context:i}=await yt(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:C,context:R}=await yt(n,o),{canonical:k}=await Oe(C,R.configDir,{},R.canonicalDir),b=k.mcp?Object.keys(k.mcp.mcpServers).length:0,N=k.permissions?k.permissions.allow.length+k.permissions.deny.length:0,x=k.hooks?Object.values(k.hooks).reduce((v,q)=>v+(Array.isArray(q)?q.length:0),0):0,B=k.ignore.length,H=MQ(C.features,k.rules.length,k.commands.length,k.agents.length,k.skills.length,b,N,x,B),tt=c!==null&&c!==H;if(c=H,m)return;let it=await Ec(t,n,{printMatrix:false});if(Lc(it),!m){if(tt){let v=await hp(t,n);_p(v,{verbose:t.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:tt});}},"run"),f=s(()=>{let C=u().catch(R=>{if(!m){let k=R instanceof Error?R.message:String(R);y.error(k);}}).finally(()=>{p===C&&(p=null);});p=C;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,NQ));},"schedule"),h=r.usePolling??process.platform==="win32",S=DQ.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return S.on("all",(C,R)=>{vQ(i.canonicalDir,R)||g();}),await new Promise((C,R)=>{S.once("ready",C),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 S.close(),p&&await p;},"stop")}}s(kG,"runWatch");Zt();ou();async function tg(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await Df(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await Ss(n),a=await sl(e,r),l=a.length>0?await Ic(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let R of c){let k=i[R];k===void 0?f.push(R):k!==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 S=Ff(o.checksums,i,e.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}}s(tg,"checkLockSync");$r();async function EG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n);await Ut(o,r);let a=await tg({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(EG,"runCheck");Zt();A();ou();var GQ=".lock",jQ="<<<<<<<";async function YS(t){let e=join(t,GQ),r=await _(e);return r===null?false:r.includes(jQ)}s(YS,"hasLockConflict");async function OG(t,e,r){if(!await YS(t))throw new Error("No conflict to resolve.");let o=await Ss(t),i=dirname(t),a=r?await sl(r,i):[],l=a.length>0?await Ic(a):{},c=await vf(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Nf(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}s(OG,"resolveLockConflict");async function wG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n),a=i.canonicalDir;return await YS(a)?(await OG(a,Ai(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(wG,"runMerge");Zt();wf();function AG(t){let e=typeof t.path=="string"?t.path.trim():void 0,r=typeof t.target=="string"?t.target.trim():void 0,n=typeof t.as=="string"?t.as.trim():void 0,o=t["accept-elevated"]===true;return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,all:t.all===true,forceFreshMaterialize:t.forceFreshMaterialize===true,explicitPath:e||void 0,explicitTarget:r||void 0,explicitAs:n?Rc.parse(n):void 0,nameOverride:typeof t.name=="string"?t.name.trim():"",acceptHooks:o||t["accept-hooks"]===true,acceptPermissions:o||t["accept-permissions"]===true,acceptMcp:o||t["accept-mcp"]===true}}s(AG,"readInstallFlags");var KQ=".install.lock";async function Ac(t,e={}){return await mkdir(t,{recursive:true}),Bf(join(t,KQ),e)}s(Ac,"acquireInstallLock");Zt();A();Zc();var zQ=promisify(execFile);function eg(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(eg,"ensureNotFlag");async function XS(t){let{stdout:e}=await zQ("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(XS,"runGit");async function bG(){try{return await XS(["--version"]),!0}catch{return false}}s(bG,"isGitAvailable");async function VQ(t,e){eg(t,"remote-url"),eg(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await XS(["ls-remote",t,o])).split(`
|
|
376
|
+
`).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 "${e}" for ${t}: ${n instanceof Error?n.message:String(n)}`)}s(VQ,"gitLsRemoteResolve");async function rg(t,e){eg(e,"remote-url");let r=t===""?"HEAD":t;if(eg(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await XS(["ls-remote",e,"HEAD"])).split(`
|
|
377
|
+
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${e}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${e}`);return i.toLowerCase()}return VQ(e,r)}s(rg,"resolveRemoteRefForInstall");async function PG(t){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};let e=t.gitRemoteUrl;if(!e)throw new Error("Internal error: missing git remote URL");let r=await rg(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await ol(l,"install",{cacheDir:Me(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await ol(l,"install",{cacheDir:Me(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await ol(i,"install",{cacheDir:Me(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(PG,"fetchInstallSource");async function xG(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await PG(t);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 ${e}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(xG,"resolveInstallResolvedPath");function Cp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.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(Cp,"parseGithubTreeUrl");function kp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.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(kp,"parseGithubBlobUrl");function Ep(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(Ep,"parseGitlabTreeUrl");function Lp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(Lp,"parseGitlabBlobUrl");var JQ=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Op(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||JQ.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Op,"parseGithubRepoUrl");function wp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.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(wp,"parseGitlabRepoUrl");function Ap(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(Ap,"parseGitSshGithub");function bp(t){let e=t.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!e)return null;let n=e[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(bp,"parseGitSshGitlab");A();var ZQ=/^[A-Za-z]:[\\/]/,QQ=/^[A-Za-z]:\//;function TG(...t){return t.some(e=>e.includes("\\")||ZQ.test(e))?win32:posix}s(TG,"pathApiFor");function xp(t){return t.replace(/\\/g,"/")}s(xp,"toPosixPath");function Pp(t){return xp(t).replace(/^\/+|\/+$/g,"")}s(Pp,"normalizeInstallPathField");function ng(t){let e=xp(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||QQ.test(e)?e:`./${e}`}s(ng,"normalizeLocalSourceForYaml");function Si(t){return {...t,source:t.source_kind==="local"?ng(t.source):t.source,...t.path!==void 0?{path:Pp(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>Pp(e))}:{}}}s(Si,"normalizePersistedInstallPaths");function DG(t,e,r){let n=TG(t,e),o=n.normalize(t),i=n.normalize(e),a=Pp(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=Pp(u),g=xp(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:ng(g)}}let m=xp(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:ng(m)}}s(DG,"localParsedFromAbsPath");async function ZS(t,e,r){let n=t.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=Cp(n)??kp(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=Op(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=Ep(n)??Lp(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=wp(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=Ap(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=bp(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(e,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return DG(m,e,o)}s(ZS,"parseInstallSource");function Tp(t){let e=t.trim();if(e.startsWith("local:"))return {kind:"local"};if(e.startsWith("git+")){let a=e.lastIndexOf("#"),l=a<0?e:e.slice(0,a),c=a<0?"HEAD":e.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=e.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=e.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=e.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=e.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(e.startsWith("https://")||e.startsWith("http://")){let a=Cp(e)??kp(e);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Op(e);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=Ep(e)??Lp(e);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=wp(e);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:e,ref:"HEAD"}}if(e.startsWith("git@github.com:")){let a=Ap(e);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(e.startsWith("git@gitlab.com:")){let a=bp(e);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(e.startsWith("git@")){let a=e.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(Tp,"parseSourceUrl");ZR();function Sn(t){let e=[];return t.skills.length&&e.push("skills"),t.rules.length&&e.push("rules"),t.commands.length&&e.push("commands"),t.agents.length&&e.push("agents"),t.mcp!==null&&e.push("mcp"),t.permissions!==null&&e.push("permissions"),t.hooks!==null&&e.push("hooks"),t.ignore.length&&e.push("ignore"),e}s(Sn,"featuresFromCanonical");async function og(t,e={}){let{sliceRoot:r,implicitPick:n}=await If(t),{canonical:o,cleanup:i}=await Cf(r,{...e,enableTargetEntityMappers:true});return {canonical:o,features:Sn(o),implicitPick:n,cleanup:i}}s(og,"discoverFromContentRoot");function NG(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(NG,"validateSkill");function FG(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(FG,"validateRule");function vG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(vG,"validateCommand");function MG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(MG,"validateAgent");function ie(t){return basename(t.source).replace(/\.md$/i,"")}s(ie,"ruleSlug");function eq(t){if(!t)return;let e=[];return t.skills!==void 0&&e.push("skills"),t.rules!==void 0&&e.push("rules"),t.commands!==void 0&&e.push("commands"),t.agents!==void 0&&e.push("agents"),e.length>0?e:void 0}s(eq,"featuresFromImplicitPick");function Pc(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??eq(r);if(!r&&!n)return t;let o=new Set(n??[]),i={...t,mcp:!n||o.has("mcp")?t.mcp:null,permissions:!n||o.has("permissions")?t.permissions:null,hooks:!n||o.has("hooks")?t.hooks:null,ignore:!n||o.has("ignore")?t.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(ie(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(Pc,"narrowDiscoveredForInstallScope");oS();async function $G(t,e,r,n,o={}){let i=await Lf(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await og(i.discoveryRoot,o),c=Pc(a,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:Sn(c)}}s($G,"resolveManualDiscoveredForInstall");Co();jR();A();xt();var rq=(()=>{let t=new Map;for(let r of Pt){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=t.get(a)??new Set;l.add(r.id),t.set(a,l);}}let e=[];for(let[r,n]of t){if(n.size!==1)continue;let[o]=[...n];e.push({prefix:r,target:o});}return e.sort((r,n)=>n.prefix.length-r.prefix.length)})();function nq(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(nq,"norm");function sg(t){let e=nq(t);if(e){for(let{prefix:r,target:n}of rq)if(e===r||e.startsWith(`${r}/`))return n}}s(sg,"targetHintFromNativePath");function QS(t,e){return sg(t)===e}s(QS,"pathSupportsNativePick");function GG(t,e){if(!t||!e)return;let r=sg(e);if(r&&r!==t)throw new Error(`--target "${t}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(GG,"validateTargetMatchesPath");function jG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(jG,"extendPickHasArrays");A();A();Xt();async function BG(t,e){let r=join(t,...Ze.split("/")),n=join(t,...e.split("/")),o=await G(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()}s(BG,"inferGeminiCommandNamesFromFiles");Xt();gr();A();async function Ua(t){let e=await G(t),r=new Set;for(let n of e){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(t,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}s(Ua,"skillNamesFromNativeSkillDir");A();Nr();async function KG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(mi)){let n=await G(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(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let n=await G(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(e.startsWith(".github/instructions")){let n=await G(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(e.startsWith(".github/skills")){let n=await Ua(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await G(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 {}}s(KG,"inferCopilotPickFromPath");async function tr(t,e){let r=await G(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}s(tr,"mdNames");async function HG(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===Ze||n.startsWith(`${Ze}/`)){let i=await BG(t,n);return i.length?{commands:i}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let i=await tr(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".claude/rules")){let i=await tr(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".claude/agents")){let i=await tr(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".claude/skills/")){let a=n.replace(/^\.claude\/skills\/?/,"").split("/").filter(Boolean)[0];return a?{skills:[a]}:{}}return {}}if(r==="cursor"){if(n.startsWith(".cursor/rules")){let i=await tr(o,".mdc");return i.length?{rules:i}:{}}if(n.startsWith(".cursor/commands")){let i=await tr(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".cursor/agents")){let i=await tr(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".cursor/skills")){let i=await Ua(o);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return KG(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let i=await tr(o,".md");return i.length?{rules:i}:{}}if(r==="cline"){if(n.startsWith(te)){let i=await Ua(o);return i.length?{skills:i}:{}}if(n.startsWith(Mn)){let i=await tr(o,".md");return i.length?{commands:i}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let i=await tr(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".continue/prompts")){let i=await tr(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".continue/skills")){let i=await Ua(o);return i.length?{skills:i}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let i=await tr(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".junie/rules")){let i=await tr(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".junie/agents")){let i=await tr(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".junie/skills")){let i=await Ua(o);return i.length?{skills:i}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let i=await G(o),a=[...new Set(i.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}s(HG,"inferImplicitPickFromNativePath");function zG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(zG,"isImplicitPickEmpty");UR();function Np(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(Np,"normalizePath");function dq(t,e){let r=Np(t),n=Np(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(dq,"overlapsPath");function ig(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(ig,"addUnique");async function fq(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup");try{return await cp$1(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(fq,"makeStageRoot");function gq(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:ig(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Np(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:ig(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:ig(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Np(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:ig(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(gq,"buildPickFromResults");function hq(t,e,r,n){let o=join(e,...Np(t).split("/")),i=r.filter(a=>dq(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${t}" for target "${n}". Try --path "${t}" 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:gq(i,e)}}s(hq,"scopeImportedResults");async function tI(t,e){let{stageRoot:r,cleanup:n}=await fq(t);try{let o=await mp(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(tI,"stageImportedNativeRepo");async function eI(t,e,r){let n=await tI(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...hq(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(eI,"stageNativeInstallScope");async function XG(t,e,r,n){let o=n.explicitTarget?.trim();o&&or.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");GG(o,i);let a=join(t,".agentsmesh"),l=await j(a),c=i?sg(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await pf(t)??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 eI(t,i,u);return {discoveryRoot:b.stageRoot,implicitPick:b.pick,scopedFeatures:b.features,yamlTarget:u,importHappened:true,cleanup:b.cleanup}}let k=await tI(t,u);return {discoveryRoot:i?join(k.stageRoot,i):k.stageRoot,yamlTarget:u,importHappened:true,cleanup:k.cleanup}}let g;l?i?u&&QS(i,u)?g=t:g=e:g=t:g=e;let h,S,C;if(f&&u){let k=await eI(t,i,u);g=k.stageRoot,h=k.pick,S=k.features,C=k.cleanup;}else if(g===t&&i&&u&&QS(i,u)&&(h=await HG(t,i,u),zG(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&&jG(h)||(S?.length??0)>0)&&(R=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:S,yamlTarget:R,importHappened:C!==void 0,cleanup:C}}s(XG,"prepareInstallDiscovery");async function rI(t,e,r,n,o={}){let i=await XG(t,e,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await og(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Pc(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=Sn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(rI,"resolveDiscoveredForInstall");var Rq=[".claude-plugin","marketplace.json"];async function Sq(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(Sq,"dirExists");function Iq(t){if(typeof t!="string"||t.length===0||t.startsWith("/"))return null;let e=t.replace(/^\.\/+/,"").replace(/\/+$/,"");return e.split("/").some(r=>r==="..")?null:e}s(Iq,"normalizeSource");async function QG(t,e,r){let n=join(t,...Rq),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=Iq(c.source);if(!m)continue;let p=join(t,m);if(!await Sq(p))continue;let u=await e(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(QG,"detectMarketplaceSubPacks");async function Fp(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(Fp,"dirExists");async function Ii(t){try{return (await readdir(t,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(Ii,"listDirEntries");function qG(t){return t.endsWith(".instructions.md")?"copilot-instructions":t.endsWith(".md")?"md":t.endsWith(".mdc")?"mdc":t.endsWith(".toml")?"toml":null}s(qG,"classifyFileShape");var Eq=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],Lq=[".cursorrules",".windsurfrules"];async function ej(t){let e=join(t,".agentsmesh");if(!await Fp(e))return null;let r=await Ii(e),n=new Set(r.map(o=>o.name));for(let o of Eq)if(n.has(o))return {path:".agentsmesh"};return null}s(ej,"detectCanonical");async function rj(t){for(let e of Lq)try{if((await stat(join(t,e))).isFile())return {path:e}}catch{}return null}s(rj,"detectRootRule");async function nj(t){try{if((await stat(join(t,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(nj,"detectRootSkill");Lo();var wq={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},Aq=[".claude-plugin",".codex-plugin",".cursor-plugin"],bq=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function oj(t){let e=join(t,"skills"),r=await Ii(e);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!bq.test(n.name))&&await Fp(join(e,n.name)))try{if((await stat(join(e,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(oj,"detectSkillPack");async function sj(t){let e=[];for(let[r,n]of Object.entries(wq)){let o=join(t,r),i=await Ii(o),a=new Set;for(let l of i){if(!l.isFile||En(l.name))continue;let c=qG(l.name);c&&a.add(c);}for(let l of a)e.push({path:r,suggestedAs:n,fileShape:l});}return e}s(sj,"detectFlatCollections");async function ij(t){let e=[];for(let r of Aq)await Fp(join(t,r))&&e.push({path:r});return e}s(ij,"detectToolNativeManifests");async function sI(t,e){let r=await ej(t);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await oj(t),o=n?null:await nj(t),i=await sj(t),a=n||o||i.length>0?null:await rj(t),l=await ij(t);return {canonical:r,skillPack:n?{path:e?`${e}/skills`:"skills"}:null,rootSkill:o?{path:e?`${e}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:e?`${e}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:e?`${e}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:e?`${e}/${c.path}`:c.path}))}}s(sI,"detectFlatLayout");function oI(t){return t.canonical!==null||t.skillPack!==null||t.rootSkill!==null||t.rootRule!==null||t.flatCollections.length>0}s(oI,"hasContent");async function aj(t,e){let r=await Ii(t),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(t,o.name),a=e?`${e}/${o.name}`:o.name,l=await sI(i,a);oI(l)&&n.push({path:a,layout:l});}return n}s(aj,"collectSubPackCandidates");async function Pq(t,e){if(oI(e))return [];let r=await QG(t,sI,oI);if(r&&r.length>0)return r;let n=await aj(t,"");if(n.length>=2)return n;let o=await Ii(t);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await aj(join(t,i.name),i.name);if(a.length>=2)return a}return []}s(Pq,"detectSubPacks");async function cj(t){let e=await sI(t,"");if(e.canonical)return {...e,subPacks:[]};let r=await Pq(t,e);return {...e,subPacks:r}}s(cj,"detectLayout");A();U();async function pj(t){let e;try{e=await readdir(t);}catch{return null}let r=e.sort().find(c=>c.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await _(join(t,r));if(!n)return null;let o=jr(n,join(t,r));if(!o.ok)return null;let{frontmatter:i}=o.value,a="alwaysApply"in i,l="trigger"in i;return a&&l?null:a?"cursor":l?"windsurf":null}s(pj,"inferMdcTarget");hf();Sf();function vq(t){let e=t.indexOf("#");return e<0?{path:t,anchor:""}:{path:t.slice(0,e),anchor:t.slice(e)}}s(vq,"splitAnchor");function Mq(t){return t.split(sep).join("/")}s(Mq,"toForwardSlash");async function $q(t){try{return await stat(t),!0}catch{return false}}s($q,"pathExists");async function gj(t){let{link:e,fromFile:r,contentRoot:n,includedPaths:o}=t,{path:i,anchor:a}=vq(e.path);if(i===""||isAbsolute(i))return {link:e,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:e,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=Mq(p);return await $q(c)?o.has(u)?{link:e,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:e,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:e,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(gj,"resolveLink");var Gq=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,jq=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,Uq=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function Bq(t){let e=[];for(let r of t.matchAll(Gq)){let n=r.index??0;e.push([n,n+r[0].length]);}return e}s(Bq,"getFencedCodeRanges");function hj(t,e){for(let[r,n]of e)if(t>=r&&t<n)return true;return false}s(hj,"isInRanges");function yj(t){let e=t.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(e);return r?.[1]!==void 0&&(e=r[1].trim()),e.startsWith("<")&&e.endsWith(">")&&(e=e.slice(1,-1).trim()),e}s(yj,"normalizeDestination");function ag(t){let e=Bq(t),r=[];for(let n of t.matchAll(jq)){let o=n.index??0;if(hj(o,e))continue;let i=n[1]==="!",a=n[2];if(a===void 0)continue;let l=t.indexOf("(",o);if(l<0)continue;let c=l+1;r.push({kind:i?"image":"inline",destination:yj(a),destinationOffset:c,destinationLength:a.length});}for(let n of t.matchAll(Uq)){let o=n.index??0;if(hj(o,e))continue;let i=(n[1]??"").trim(),a=n[2]??"";if(i===""||a.trim()==="")continue;let l=o,c=t.indexOf("]:",l);if(c<0)continue;let m=c+2;for(;m<t.length&&(t[m]===" "||t[m]===" ");)m+=1;r.push({kind:"reference-def",destination:yj(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(ag,"scanMarkdownLinks");function _j(t,e){if(e.length===0)return t;let r=[...e].sort((o,i)=>i.offset-o.offset),n=t;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(_j,"applyRangeRewrites");function Kq(t){return !(t.length===0||t.startsWith("#")||t.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}s(Kq,"isCandidateRelativePath");function Wq(t){let e=t.replaceAll("\\","/");return e==="{baseDir}"?".":e.startsWith("{baseDir}/")?e.slice(10):e}s(Wq,"stripPath");function Hq(t){let e=t.destination;return Kq(e)?{raw:e,path:Wq(e),kind:t.kind,...t.label!==void 0?{label:t.label}:{}}:null}s(Hq,"toScannedLink");function Rj(t){let e=[];for(let r of ag(t)){let n=Hq(r);n!==null&&e.push(n);}return e}s(Rj,"scanRelativeLinks");function xc(t,e){let r=t.replaceAll("\\","/"),n=e.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(xc,"toForwardSlashRelative");function Sj(t,e,r,n,o){let i=new Set;for(let a of e){i.add(xc(t,a.source));for(let l of a.supportingFiles)i.add(xc(t,l.absolutePath));}for(let a of r)i.add(xc(t,a.source));for(let a of n)i.add(xc(t,a.source));for(let a of o)i.add(xc(t,a.source));return i}s(Sj,"buildIncludedPaths");function Vq(t,e,r,n){let o=[];for(let i of t)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of e)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(Vq,"listScannables");async function Ij(t,e,r,n,o,i){let a=Vq(e,r,n,o),l=[];for(let c of a){let m=Rj(c.body);if(m.length===0)continue;let p=xc(t,c.sourcePath),u=[];for(let f of m){let g=await gj({link:f,fromFile:p,contentRoot:t,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(Ij,"detectBrokenLinks");Sf();async function Cj(t,e,r={}){let n=new Map,o=new Map,i=[],a=[...e].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await yf(join(t,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 S=o.get(g.name)??[];S.push({path:g.source,precedence:p.precedence}),o.set(g.name,S);}}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(Cj,"mergeCommands");async function kj(t,e,r={}){let[n,o,i,a]=await Promise.all([yM(`${t}/skills`,r),Rf(`${t}/agents`,{parseOpts:r}),_f(`${t}/rules`,{parseOpts:r}),Cj(t,e.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=Sj(t,n,l,a.commands,c),p=await Ij(t,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(kj,"aggregateAnthropicSkillPack");var Ej={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};al();function Xq(t){return {rules:[...t.rules],commands:[...t.commands],agents:[...t.agents],skills:[...t.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(Xq,"aggregateToCanonical");function lg(){return {}}s(lg,"emptyPrep");async function Zq(t,e){let r=[];for(let n of e)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await pj(join(t,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(Zq,"enrichMdcTargets");function Oj(t){return t.canonical?"canonical-agentsmesh":t.skillPack||t.rootSkill?"anthropic-skill-pack":t.rootRule||t.toolNativeManifests.length>0?"tool-native":"unknown"}s(Oj,"deriveSourceType");async function Qq(t,e){let r=await pu(t,e);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(Qq,"rootSkillToCanonical");async function qq(t,e){let r=join(t,e),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${e}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(qq,"rootRuleToCanonical");async function wj(t){let e=t.parseOpts??{};if(t.explicitAs)return {implicitPick:void 0,...await $G(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick,e)};if(t.explicitTarget)return rI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e);let r=await cj(t.contentRoot),n=await Zq(t.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await kj(t.contentRoot,Ej,e),l=Xq(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:Sn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await Qq(t.contentRoot,e);return {prep:lg(),implicitPick:void 0,narrowed:a,discoveredFeatures:Sn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await qq(t.contentRoot,o.rootRule.path);return {prep:lg(),implicitPick:void 0,narrowed:a,discoveredFeatures:Sn(a),layout:o}}return o.subPacks.length>0?{prep:lg(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:lg(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await rI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e),layout:o}}s(wj,"resolveInstallDiscovery");function bj(t){let e=new Set;t.skillPack&&e.add("skills"),t.rootSkill&&e.add("skills");for(let r of t.flatCollections)e.add(r.suggestedAs);return [...e]}s(bj,"featuresFromLayout");function t8(t){return t.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(t8,"subPackSlug");function Aj(t,e,r){let n=bj(t.layout),o=!t.layout.skillPack&&!t.layout.rootSkill&&n.length>0;return {name:`${e}-${t8(t.path)}`,source:r,path:t.path,...o?{as:n[0]}:{},features:n}}s(Aj,"targetFromSubPack");function Pj(t,e,r){return {name:e,source:r,path:t.path,as:t.suggestedAs,target:t.inferredTarget,features:[t.suggestedAs]}}s(Pj,"targetFromCollection");function xj(t){let{layout:e,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=t;if(o||i||a)return {targets:[],isMarketplace:false};if(e.canonical||e.skillPack)return {targets:[],isMarketplace:false};if(e.subPacks.length>=1)return e8(t);if(e.flatCollections.length===1){let l=e.flatCollections[0];return {targets:[Pj(l,r,n)],isMarketplace:false}}return e.flatCollections.length>1?r8(t):{targets:[],isMarketplace:false}}s(xj,"selectInstallCandidates");function e8(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.all)return {targets:e.subPacks.map(a=>Aj(a,r,n)),isMarketplace:true};if(t.force||!t.tty){let a=e.subPacks.map(l=>({path:l.path,features:bj(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
336
378
|
`);throw new Error(`Marketplace source with ${e.subPacks.length} sub-packs. Pass --all to install all, or use --path <subpath>:
|
|
337
|
-
${a}`)}return {targets:e.subPacks.map(i=>
|
|
379
|
+
${a}`)}return {targets:e.subPacks.map(i=>Aj(i,r,n)),isMarketplace:true}}s(e8,"selectMarketplace");function r8(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.force||!t.tty){let i=e.flatCollections.map(a=>` - ${a.path} (${a.suggestedAs}, .${a.fileShape})`).join(`
|
|
338
380
|
`);throw new Error(`Ambiguous source with ${e.flatCollections.length} resource collections. Pass --as <kind> to select, or --path <subpath>:
|
|
339
|
-
${i}`)}return {targets:e.flatCollections.map(i=>
|
|
381
|
+
${i}`)}return {targets:e.flatCollections.map(i=>Pj(i,r,n)),isMarketplace:false}}s(r8,"selectMultipleCollections");$r();QR();function Tc(t){return t==="."||t===""?void 0:t}s(Tc,"trimDot");function o8(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}s(o8,"markdownPick");async function Dj(t){if(!t.as)return {pathInRepo:Tc(t.pathInRepo)};let e=t.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(t.contentRoot);if(t.as!=="skills"&&r.isFile()&&t.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:Tc(dirname(e)),pick:o8(t.as,e||t.contentRoot)};if(t.as==="skills"){if(r.isFile()&&basename(t.contentRoot)==="SKILL.md"){let n=e?dirname(e):dirname(t.contentRoot);return {pathInRepo:Tc(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=e||basename(t.contentRoot),o=join(t.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await kf(o);return {pathInRepo:Tc(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Tc(e)}}}}return {pathInRepo:Tc(e)}}s(Dj,"resolveManualInstallPersistence");yo();ot();ot();async function Dc(t,e,r){let n=t==="install"?"Pack is installed":t==="refresh"?"Refresh is committed":"Uninstall is committed",o=e==="global"?" --global":"";try{let i=await Ec(e==="global"?{global:!0}:{},r,{printMatrix:!1});Lc(i),i.exitCode!==0&&y.warn(`Generate failed after ${t}. ${n}; run agentsmesh generate${o}.`);}catch(i){let a=i instanceof Error?i.message:String(i);y.warn(`Generate failed after ${t}: ${a}`),y.warn(`${n}; run agentsmesh generate${o} after resolving the issue.`);}}s(Dc,"runPostOperationGenerate");async function _o(t){return process.stdin.isTTY?new Promise(e=>{let r=Nj.createInterface({input:process.stdin,output:process.stdout});r.question(`${t} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();e(o==="y"||o==="yes");});}):false}s(_o,"confirm");function s8(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}s(s8,"hasArrayResources");function Fj(t){return s8(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}s(Fj,"hasInstallableResources");async function vj(t,e,r,n){let o=t.skills.map(l=>NG(l)),i=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await _o(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.skill);else e&&(i=o.map(l=>l.skill));return r&&(i=o.filter(l=>l.ok).map(l=>l.skill)),i}s(vj,"resolveSkillPool");async function Mj(t,e,r,n){let o=t.rules.map(l=>FG(l)),i=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await _o(`Include invalid rule "${ie(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.rule);else e&&(i=o.map(l=>l.rule));return r&&(i=o.filter(l=>l.ok).map(l=>l.rule)),i}s(Mj,"resolveRulePool");async function $j(t,e,r,n){let o=t.commands.map(l=>vG(l)),i=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await _o(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.command);else e&&(i=o.map(l=>l.command));return r&&(i=o.filter(l=>l.ok).map(l=>l.command)),i}s($j,"resolveCommandPool");async function Gj(t,e,r,n){let o=t.agents.map(l=>MG(l)),i=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await _o(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.agent);else e&&(i=o.map(l=>l.agent));return r&&(i=o.filter(l=>l.ok).map(l=>l.agent)),i}s(Gj,"resolveAgentPool");async function jj(t,e){let r=e.skills.map(a=>a.name),n=e.rules.map(a=>ie(a)),o=e.commands.map(a=>a.name),i=e.agents.map(a=>a.name);for(let a of e.skills)t.skills.some(l=>l.name===a.name)&&(await _o(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of e.rules){let l=ie(a);t.rules.some(c=>ie(c)===l)&&(await _o(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of e.commands)t.commands.some(l=>l.name===a.name)&&(await _o(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of e.agents)t.agents.some(l=>l.name===a.name)&&(await _o(`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(jj,"resolveInstallConflicts");function Uj(t,e){if(!t)return;let r={},n=t.skills?.filter(l=>e.skillNames.includes(l)),o=t.rules?.filter(l=>e.ruleSlugs.includes(l)),i=t.commands?.filter(l=>e.commandNames.includes(l)),a=t.agents?.filter(l=>e.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(Uj,"pickForSelectedResources");function i8(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}s(i8,"pathEndsWithName");function cg(t,e,r){return r!==1||e.length!==1?false:i8(t,e[0])}s(cg,"inferSingleNamePick");function Bj(t){let{pathInRepo:e,implicitPick:r,preConflictCounts:n,selected:o}=t,i={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||cg(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||cg(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||cg(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||cg(e,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(Bj,"buildInstallPick");function Kj(t,e){let r=new Set(t);return e.skillNames.length===0&&r.delete("skills"),e.ruleSlugs.length===0&&r.delete("rules"),e.commandNames.length===0&&r.delete("commands"),e.agentNames.length===0&&r.delete("agents"),[...r]}s(Kj,"deriveInstallFeatures");function a8(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}s(a8,"isEmptyInstallSelection");function Wj(t){let{selected:e,discoveredFeatures:r,preConflict:n}=t,o=s(l=>r.includes(l),"had"),i=o("skills")&&e.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&e.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&e.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&e.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(a8(e)&&!a)throw new Error("No resources selected to install.")}s(Wj,"ensureInstallSelection");Co();function Hj(t,e){if(t.find(n=>n.name===e.name&&n.source!==e.source))throw new Error(`Extends entry "${e.name}" already exists with a different source. Use --name to provide a different name.`)}s(Hj,"assertExtendNameAvailable");function l8(t,e,r){if(r===void 0){if(!t)return;let o={...t};for(let i of ["skills","commands","rules","agents"])e.includes(i)&&delete o[i];return Object.keys(o).length?o:void 0}let n={...t};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([...t?.[o]??[],...i])];}return Object.keys(n).length?n:void 0}s(l8,"mergePick");function zj(t,e){let r=t.findIndex(a=>a.source===e.source);if(r<0)return [...t,{name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.target,as:e.as}];let n=t[r],o=[...new Set([...n.features,...e.features])],i=l8(n.pick,e.features,e.pick);return t.map((a,l)=>l===r?{name:e.name,source:e.source,version:e.version??n.version,features:o,path:e.path!==void 0?e.path:n.path,pick:i,target:e.target??n.target,as:e.as??n.as}:a)}s(zj,"mergeExtendList");A();async function Vj(t,e,r){let n=await _(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),i=zj(e.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await I(t,a.endsWith(`
|
|
340
382
|
`)?a:`${a}
|
|
341
|
-
`);}s(
|
|
342
|
-
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await
|
|
343
|
-
`);return `sha256:${
|
|
344
|
-
`),t.permissions!==null&&await
|
|
383
|
+
`);}s(Vj,"writeAgentsmeshWithNewExtend");ot();async function Jj(t){let{configDir:e,config:r,entryArgs:n,dryRun:o}=t,i=u8(n);if(Hj(r.extends,i),o){y.info(`[dry-run] Would add extend:
|
|
384
|
+
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await Vj(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(Jj,"writeInstallAsExtend");function u8(t){return {name:t.name,source:t.source,version:t.version,features:t.features,path:t.path,pick:t.pick,target:t.yamlTarget!==void 0?or.parse(t.yamlTarget):void 0,as:t.as}}s(u8,"toNewExtendEntry");A();A();var f8="pack.yaml";async function mg(t){let e=await G(t),r=[];for(let i of e.sort()){let a=relative(t,i).replace(/\\/g,"/");if(a===f8)continue;let l=await xf(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
385
|
+
`);return `sha256:${Pf(n)}`}s(mg,"hashPackContent");A();var er=".agentsmesh-install-manifest.json",h8=["pack.yaml",er];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 y8(t,e){return relative(t,e).replaceAll("\\","/")}s(y8,"toForwardSlashRelative");async function pg(t){let e=await Os(t),r=[];for(let n of e){let o=y8(t,n);if(h8.includes(o))continue;let i=await Tf(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(pg,"hashPackFiles");A();var _8=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,R8=[{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 Yj(t){if(t.trim().length===0)return null;let e=_8.exec(t);if(e)return e[1]??null;for(let{id:r,pattern:n}of R8)if(n.test(t))return r;return null}s(Yj,"detectSpdxLicense");var I8=["LICENSE","COPYING","NOTICE","COPYRIGHT"],C8=["",".md",".txt",".rst"];async function Xj(t){for(let e of I8)for(let r of C8){let n=await _(join(t,`${e}${r}`));if(n===null)continue;let o=Yj(n);if(o!==null)return o}return null}s(Xj,"detectLicenseInPackDir");async function L8(t,e){if(t.rules.length===0)return;let r=join(e,"rules");await O(r);for(let n of t.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(L8,"writeRules");async function O8(t,e){if(t.commands.length===0)return;let r=join(e,"commands");await O(r);for(let n of t.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(O8,"writeCommands");async function w8(t,e){if(t.agents.length===0)return;let r=join(e,"agents");await O(r);for(let n of t.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(w8,"writeAgents");async function A8(t,e){if(t.skills.length===0)return;let r=join(e,"skills");await O(r);for(let n of t.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(A8,"writeSkills");async function b8(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(b8,"writePreservedRootFiles");async function P8(t,e){t.mcp!==null&&await I(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
386
|
+
`),t.permissions!==null&&await I(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await I(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await I(join(e,"ignore"),`${t.ignore.join(`
|
|
345
387
|
`)}
|
|
346
|
-
`);}s(
|
|
347
|
-
`);}s(
|
|
348
|
-
`),t.permissions!==null&&await
|
|
388
|
+
`);}s(P8,"writeSettings");function x8(t){if(t.includes("/")||t.includes("\\")||t===".."||t==="."||t.includes("\0"))throw new Error(`Invalid pack name "${t}". Pack names must be a single directory segment without path separators.`)}s(x8,"validatePackName");async function T8(t,e,r){let n=await pg(t),o=K$({name:e.name,source:e.source,installed_at:e.installed_at,extends_id:r.extends_id??null,source_type:r.source_type??null,files:n},"install-manifest");await I(join(t,er),`${JSON.stringify(o,null,2)}
|
|
389
|
+
`);}s(T8,"writeInstallManifest");async function Zj(t,e,r,n,o={},i=[]){x8(e);let a=join(t,`${e}.tmp`),l=join(t,`${e}.old`),c=join(t,e);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 L8(r,a),await O8(r,a),await w8(r,a),await A8(r,a),await P8(r,a),await b8(i,a);let u=await mg(a),f=await Xj(a);m=Si({...n,content_hash:u,license:f}),await I(join(a,"pack.yaml"),Ga(stringify(m),"pack")),await T8(a,m,o),await mkdir(t,{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(()=>{}),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(Zj,"materializePack");Sc();A();function pI(t,e){return [...new Set([...t,...e])]}s(pI,"union");function N8(t,e){if(t.path===void 0&&t.paths===void 0||e===void 0)return {path:void 0,paths:void 0};let n=pI(t.paths??(t.path?[t.path]:[]),[e]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(N8,"mergePathScope");function F8(t,e,r){let n={...t};for(let i of e)r&&r[i]!==void 0?n[i]=pI(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(F8,"mergePick");async function v8(t,e){if(t.rules.length===0)return;let r=join(e,"rules");await O(r);for(let n of t.rules)await copyFile(n.source,join(r,basename(n.source)));}s(v8,"mergeRules");async function M8(t,e){if(t.commands.length===0)return;let r=join(e,"commands");await O(r);for(let n of t.commands)await copyFile(n.source,join(r,basename(n.source)));}s(M8,"mergeCommands");async function $8(t,e){if(t.agents.length===0)return;let r=join(e,"agents");await O(r);for(let n of t.agents)await copyFile(n.source,join(r,basename(n.source)));}s($8,"mergeAgents");async function G8(t,e){if(t.skills.length===0)return;let r=join(e,"skills");await O(r);for(let n of t.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(G8,"mergeSkills");async function j8(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(j8,"mergePreservedRootFiles");async function U8(t,e){t.mcp!==null&&await I(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
390
|
+
`),t.permissions!==null&&await I(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await I(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await I(join(e,"ignore"),`${t.ignore.join(`
|
|
349
391
|
`)}
|
|
350
|
-
`);}s(Wq,"mergeSettings");async function Cj(t,e,r,n,o,i,a=[]){await Gq(r,t),await jq(r,t),await Uq(r,t),await Bq(r,t),await Wq(r,t),await Kq(a,t);let l=WI(e.features,n),c=$q(e.pick,n,o),m=Mq(e,i?.path),p=await Xf(t),u=new Date().toISOString(),f=hi({...e,source:i?.source??e.source,...i?.version!==void 0?{version:i.version}:e.version!==void 0?{version:e.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:e.target!==void 0?{target:e.target}:{},...m,...i?.as!==void 0?{as:i.as}:e.as!==void 0?{as:e.as}:{},updated_at:u,content_hash:p});return await S(join(t,"pack.yaml"),Fa(stringify(f),"pack")),f}s(Cj,"mergeIntoPack");vg();Eo();async function kj(t){let e=[];try{let r=await readdir(t,{withFileTypes:!0});for(let n of r)n.isFile()&&Qp(n.name)&&e.push({relativePath:n.name,absolutePath:join(t,n.name)});}catch{return []}return e.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),e}s(kj,"collectPreservedRootFiles");So();st();So();A();yf();function Jq(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(Jq,"sanitize");function Yq(t){try{let r=new URL(t.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(Yq,"gitUrlLastSegments");function Ej(t,e,r){let n;if(t.kind==="local"){let l=(t.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else t.kind==="github"&&t.org&&t.repo?n=`${t.org}-${t.repo}`:t.kind==="gitlab"&&t.org&&t.repo?n=`${t.org.replace(/\//g,"-")}-${t.repo}`:t.gitRemoteUrl?n=Yq(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=Jq(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(Ej,"suggestExtendName");function Lj(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,i=new Set(e.extends.map(a=>a.name));return o||Ej(r,{featureHint:n.length===1?n[0]:void 0},i)}s(Lj,"selectInstallEntryName");function Oj(t){let e=t.trim();for(;e.startsWith("git+");){let c=e.lastIndexOf("#");e=(c<0?e.slice(4):e.slice(4,c)).trim();}let r=e.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=e.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=e.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=e.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=e.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=e.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(Oj,"canonicalRemoteIdentity");function Xq(t){return t.kind==="github"&&t.org&&t.repo?`github:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.kind==="gitlab"&&t.org&&t.repo?`gitlab:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.gitRemoteUrl?Oj(t.gitRemoteUrl):null}s(Xq,"parsedSourceIdentity");function wj(t,e){let r=Xq(e);if(r===null)return null;for(let n of t){let o=Oj(n.source);if(o!==null&&o===r)return n.name}return null}s(wj,"findExistingInstallName");function HI(t,e){if(t.length!==e.length)return false;let r=[...t].sort(),n=[...e].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(HI,"sameFeatureSet");function Aj(t){let{manifest:e,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=t,a=wj(e,r);if(a===null)return null;let l=e.find(c=>c.name===a);return l.target!==o||l.as!==i||!HI(l.features,n)?null:l.name}s(Aj,"pickReuseEntryName");var qq=s(t=>!t.includes("/")&&!t.includes("\\")&&!t.includes("\0")&&t!=="."&&t!=="..","isSafeInstallName"),Pj=z$1.object({name:z$1.string().min(1).refine(qq,{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(Za).min(1),pick:Uc.optional(),target:nr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:fc.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional()}),t3=z$1.object({version:z$1.literal(1),installs:z$1.array(Pj).default([])});function e3(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&HI(t.features,e.features)}s(e3,"sameInstallIdentity");function zI(t){return join(t,"installs.yaml")}s(zI,"manifestPath");async function xe(t){let e=await _(zI(t));if(e===null)return [];try{return t3.parse(parse(e)).installs.map(r=>hi(r))}catch{return []}}s(xe,"readInstallManifest");async function qf(t,e){let r=hi(e),o=(await xe(t)).filter(i=>i.name!==r.name&&!e3(i,r));o.push(r),await S(zI(t),Fa(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(qf,"upsertInstallManifestEntry");async function Tj(t,e){let r=await xe(t),n=r.filter(o=>o.name!==e);return n.length===r.length?false:(await S(zI(t),Fa(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(Tj,"removeInstallManifestEntry");function xj(t){return hi(Pj.parse({name:t.name,source:t.source,version:t.version,source_kind:t.sourceKind,features:t.features,pick:t.pick,target:t.target,path:t.path,paths:t.paths,as:t.as,refreshed_at:t.refreshed_at,original_ref:t.originalRef}))}s(xj,"buildInstallManifestEntry");A();function n3(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(n3,"pathScope");function o3(t,e){let r=new Set(e.skillNames),n=new Set(e.ruleSlugs),o=new Set(e.commandNames),i=new Set(e.agentNames);return {...t,skills:t.skills.filter(a=>r.has(a.name)),rules:t.rules.filter(a=>n.has(se(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>i.has(a.name))}}s(o3,"applySelection");async function Dj(t){let{canonicalDir:e,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:I,forceFreshMaterialize:k,originalRef:C}=t,R=join(e,"packs"),P=o3(n,o),N=I?await kj(I):[],F=new Date().toISOString(),B=p!==void 0?nr.parse(p):void 0,U=k?null:await dM(R,i,{target:B,as:f,features:c}),q=r,nt=c,M=m,tt=u,Nt;if(U){let Le=U.packDir,Xt=U.meta;if(g&&U.name!==r){let De=join(R,r);if(await j(De))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(U.packDir,De),Le=De,Xt={...U.meta,name:r};}let Ut=await Cj(Le,Xt,P,c,m,{source:i,...a!==void 0?{version:a}:{},...B!==void 0?{target:B}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},N);q=Ut.name,nt=Ut.features,M=Ut.pick,tt=Ut.path,Nt=Ut.paths,y.success(`Updated pack "${Ut.name}" in .agentsmesh/packs/.`);}else {if(!k&&await gi(join(R,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await Sj(R,r,P,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:F,updated_at:F,features:c,...m!==void 0&&{pick:m},...B!==void 0&&{target:B},...n3(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},N),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await qf(e,xj({name:q,source:i,version:a,sourceKind:l,features:nt,pick:M,target:B,path:tt,paths:Nt,as:f,originalRef:C})),l!=="local"&&await mC(i);}s(Dj,"installAsPack");function Nj(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Ec(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:_n(n)}}s(Nj,"applyReplayInstallScope");function Fj(t,e){let r=[];for(let n of t.skillNames)r.push({kind:"skill",name:n,path:e});for(let n of t.ruleSlugs)r.push({kind:"rule",name:n,path:e});for(let n of t.commandNames)r.push({kind:"command",name:n,path:e});for(let n of t.agentNames)r.push({kind:"agent",name:n,path:e});return r}s(Fj,"buildInstalledList");function vj(t,e,r,n,o){let i=[];for(let a of t)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of e){let l=se(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(vj,"buildSkippedList");async function Mj(t){let{scope:e,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=t,{config:m,context:p,parsed:u,sourceForYaml:f,version:g,pathInRepo:h,contentRoot:I,persisted:k}=t,{replay:C,prep:R,implicitPick:P,narrowed:N,discoveredFeatures:F,sourceType:B}=t,{narrowed:U,discoveredFeatures:q}=Nj(N,F,C);if(!sj(U))throw new Error(P||R.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 nt=await ij(U,r,n,o),M=await aj(U,r,n,o),tt=await lj(U,r,n,o),Nt=await cj(U,r,n,o),Le={skills:nt.length,rules:M.length,commands:tt.length,agents:Nt.length},{canonical:Xt}=await Ee(m,p.configDir,{},p.canonicalDir),Ut=!r&&!n&&o?await mj(Xt,{skills:nt,rules:M,commands:tt,agents:Nt}):{skillNames:nt.map(_o=>_o.name),ruleSlugs:M.map(_o=>se(_o)),commandNames:tt.map(_o=>_o.name),agentNames:Nt.map(_o=>_o.name)};fj({selected:Ut,discoveredFeatures:q,preConflict:Le});let De=C?.features??dj(q,Ut);if(De.length===0)throw new Error("No features left to install after selection.");let Ci=pj(C?.pick,Ut)??k.pick??uj({pathInRepo:k.pathInRepo??h,implicitPick:P,preConflictCounts:Le,selected:Ut}),Fp=await xe(p.canonicalDir),yg=Aj({manifest:Fp,parsed:u,entryFeatures:De,yamlTarget:R.yamlTarget,explicitAs:c}),$c=Lj({config:m,parsed:u,entryFeatures:De,nameOverride:l||yg||""}),Ka=Fj(Ut,$c),vp=vj(nt,M,tt,Nt,Ut);if(i){if(await _j({configDir:p.configDir,config:m,entryArgs:{name:$c,source:f,version:g,features:De,path:k.pathInRepo,pick:Ci,yamlTarget:R.yamlTarget,as:c},dryRun:n}),n)return {installed:Ka,skipped:vp}}else {if(n)return y.info(`[dry-run] Would install pack "${$c}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:Ka,skipped:vp};await Dj({canonicalDir:p.canonicalDir,packName:$c,narrowed:U,selected:Ut,sourceForYaml:f,version:g,sourceKind:u.kind,entryFeatures:De,pick:Ci,yamlTarget:R.yamlTarget,pathInRepo:k.pathInRepo,manualAs:c,renameExistingPack:l===""&&yg===null,sourceType:B,contentRoot:I,forceFreshMaterialize:a,originalRef:u.rawRef!==""?u.rawRef:void 0});}return await wc("install",e,p.rootBase),{installed:Ka,skipped:vp}}s(Mj,"executeRunInstallPoolsAndWrite");function Pc(t,e){let r=e?.input??process.stdin,n=e?.output??process.stdout;return new Promise(o=>{let i=oj.createInterface({input:r,output:n,terminal:false}),a=false;i.on("close",()=>{a||o("");}),i.question(t,l=>{a=true,i.close(),o(l);});})}s(Pc,"readLine");function Gj(t,e){let r=e.resolved.length,n=r===1?"link":"links",o=[`Entity "${e.entityName}" (${e.entityKind}) has ${r} broken ${n}:`];for(let i of e.resolved)o.push(` - ${i.link.path} (${i.classification})`);o.push(""),t.write(`${o.join(`
|
|
392
|
+
`);}s(U8,"mergeSettings");async function Qj(t,e,r,n,o,i,a=[]){await v8(r,t),await M8(r,t),await $8(r,t),await G8(r,t),await U8(r,t),await j8(a,t);let l=pI(e.features,n),c=F8(e.pick,n,o),m=N8(e,i?.path),p=await mg(t),u=new Date().toISOString(),f=Si({...e,source:i?.source??e.source,...i?.version!==void 0?{version:i.version}:e.version!==void 0?{version:e.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:e.target!==void 0?{target:e.target}:{},...m,...i?.as!==void 0?{as:i.as}:e.as!==void 0?{as:e.as}:{},updated_at:u,content_hash:p});return await I(join(t,"pack.yaml"),Ga(stringify(f),"pack")),f}s(Qj,"mergeIntoPack");qg();Lo();async function qj(t){let e=[];try{let r=await readdir(t,{withFileTypes:!0});for(let n of r)n.isFile()&&lu(n.name)&&e.push({relativePath:n.name,absolutePath:join(t,n.name)});}catch{return []}return e.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),e}s(qj,"collectPreservedRootFiles");Co();ot();Co();A();wf();function H8(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(H8,"sanitize");function z8(t){try{let r=new URL(t.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(z8,"gitUrlLastSegments");function tU(t,e,r){let n;if(t.kind==="local"){let l=(t.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else t.kind==="github"&&t.org&&t.repo?n=`${t.org}-${t.repo}`:t.kind==="gitlab"&&t.org&&t.repo?n=`${t.org.replace(/\//g,"-")}-${t.repo}`:t.gitRemoteUrl?n=z8(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=H8(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(tU,"suggestExtendName");function eU(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,i=new Set(e.extends.map(a=>a.name));return o||tU(r,{featureHint:n.length===1?n[0]:void 0},i)}s(eU,"selectInstallEntryName");function rU(t){let e=t.trim();for(;e.startsWith("git+");){let c=e.lastIndexOf("#");e=(c<0?e.slice(4):e.slice(4,c)).trim();}let r=e.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=e.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=e.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=e.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=e.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=e.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(rU,"canonicalRemoteIdentity");function V8(t){return t.kind==="github"&&t.org&&t.repo?`github:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.kind==="gitlab"&&t.org&&t.repo?`gitlab:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.gitRemoteUrl?rU(t.gitRemoteUrl):null}s(V8,"parsedSourceIdentity");function nU(t,e){let r=V8(e);if(r===null)return null;for(let n of t){let o=rU(n.source);if(o!==null&&o===r)return n.name}return null}s(nU,"findExistingInstallName");function uI(t,e){if(t.length!==e.length)return false;let r=[...t].sort(),n=[...e].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(uI,"sameFeatureSet");function oU(t){let{manifest:e,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=t,a=nU(e,r);if(a===null)return null;let l=e.find(c=>c.name===a);return l.target!==o||l.as!==i||!uI(l.features,n)?null:l.name}s(oU,"pickReuseEntryName");var X8=s(t=>!t.includes("/")&&!t.includes("\\")&&!t.includes("\0")&&t!=="."&&t!=="..","isSafeInstallName"),iU=z$1.object({name:z$1.string().min(1).refine(X8,{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(el).min(1),pick:Vc.optional(),target:or.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Rc.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional()}),Z8=z$1.object({version:z$1.literal(1),installs:z$1.array(iU).default([])});function Q8(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&uI(t.features,e.features)}s(Q8,"sameInstallIdentity");function dI(t){return join(t,"installs.yaml")}s(dI,"manifestPath");async function Ne(t){let e=await _(dI(t));if(e===null)return [];try{return Z8.parse(parse(e)).installs.map(r=>Si(r))}catch{return []}}s(Ne,"readInstallManifest");async function dg(t,e){let r=Si(e),o=(await Ne(t)).filter(i=>i.name!==r.name&&!Q8(i,r));o.push(r),await I(dI(t),Ga(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(dg,"upsertInstallManifestEntry");async function aU(t,e){let r=await Ne(t),n=r.filter(o=>o.name!==e);return n.length===r.length?false:(await I(dI(t),Ga(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(aU,"removeInstallManifestEntry");function lU(t){return Si(iU.parse({name:t.name,source:t.source,version:t.version,source_kind:t.sourceKind,features:t.features,pick:t.pick,target:t.target,path:t.path,paths:t.paths,as:t.as,refreshed_at:t.refreshed_at,original_ref:t.originalRef}))}s(lU,"buildInstallManifestEntry");A();function t3(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(t3,"pathScope");function e3(t,e){let r=new Set(e.skillNames),n=new Set(e.ruleSlugs),o=new Set(e.commandNames),i=new Set(e.agentNames);return {...t,skills:t.skills.filter(a=>r.has(a.name)),rules:t.rules.filter(a=>n.has(ie(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>i.has(a.name))}}s(e3,"applySelection");async function cU(t){let{canonicalDir:e,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:S,forceFreshMaterialize:C,originalRef:R}=t,k=join(e,"packs"),b=e3(n,o),N=S?await qj(S):[],x=new Date().toISOString(),B=p!==void 0?or.parse(p):void 0,H=C?null:await FM(k,i,{target:B,as:f,features:c}),tt=r,it=c,v=m,q=u,vt;if(H){let ae=H.packDir,bt=H.meta;if(g&&H.name!==r){let Qt=join(k,r);if(await j(Qt))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(H.packDir,Qt),ae=Qt,bt={...H.meta,name:r};}let Ft=await Qj(ae,bt,b,c,m,{source:i,...a!==void 0?{version:a}:{},...B!==void 0?{target:B}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},N);tt=Ft.name,it=Ft.features,v=Ft.pick,q=Ft.path,vt=Ft.paths,y.success(`Updated pack "${Ft.name}" in .agentsmesh/packs/.`);}else {if(!C&&await Ri(join(k,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await Zj(k,r,b,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:x,updated_at:x,features:c,...m!==void 0&&{pick:m},...B!==void 0&&{target:B},...t3(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},N),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await dg(e,lU({name:tt,source:i,version:a,sourceKind:l,features:it,pick:v,target:B,path:q,paths:vt,as:f,originalRef:R})),l!=="local"&&await xC(i);}s(cU,"installAsPack");function mU(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Pc(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:Sn(n)}}s(mU,"applyReplayInstallScope");function pU(t,e){let r=[];for(let n of t.skillNames)r.push({kind:"skill",name:n,path:e});for(let n of t.ruleSlugs)r.push({kind:"rule",name:n,path:e});for(let n of t.commandNames)r.push({kind:"command",name:n,path:e});for(let n of t.agentNames)r.push({kind:"agent",name:n,path:e});return r}s(pU,"buildInstalledList");function uU(t,e,r,n,o){let i=[];for(let a of t)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of e){let l=ie(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(uU,"buildSkippedList");function dU(t,e){if(e.sourceKind==="local")return {canonical:t,stripped:[]};let r=[],n=t.hooks,o=t.permissions,i=t.mcp;return n!==null&&!e.acceptHooks&&(n=null,r.push("hooks")),o!==null&&!e.acceptPermissions&&(o=null,r.push("permissions")),i!==null&&!e.acceptMcp&&(i=null,r.push("mcp")),r.length===0?{canonical:t,stripped:[]}:{canonical:{...t,hooks:n,permissions:o,mcp:i},stripped:r}}s(dU,"stripUntrustedElevatedArtifacts");async function fU(t){let{scope:e,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=t,{acceptHooks:m,acceptPermissions:p,acceptMcp:u}=t,{config:f,context:g,parsed:h,sourceForYaml:S,version:C,pathInRepo:R,contentRoot:k,persisted:b}=t,{replay:N,prep:x,implicitPick:B,narrowed:H,discoveredFeatures:tt,sourceType:it}=t,v=dU(H,{sourceKind:h.kind,acceptHooks:m,acceptPermissions:p,acceptMcp:u});v.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${v.stripped.join(", ")} from untrusted ${h.kind} source.
|
|
393
|
+
These artifacts control your tool settings (shell hooks, granted permissions, MCP launch specs).
|
|
394
|
+
To accept them explicitly, re-run with: ${v.stripped.map(Ro=>`--accept-${Ro}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:q,discoveredFeatures:vt}=mU(v.canonical,tt,N);if(!Fj(q))throw new Error(B||x.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 ae=await vj(q,r,n,o),bt=await Mj(q,r,n,o),Ft=await $j(q,r,n,o),Qt=await Gj(q,r,n,o),Oi={skills:ae.length,rules:bt.length,commands:Ft.length,agents:Qt.length},{canonical:Wp}=await Oe(f,g.configDir,{},g.canonicalDir),Ls=!r&&!n&&o?await jj(Wp,{skills:ae,rules:bt,commands:Ft,agents:Qt}):{skillNames:ae.map(Ro=>Ro.name),ruleSlugs:bt.map(Ro=>ie(Ro)),commandNames:Ft.map(Ro=>Ro.name),agentNames:Qt.map(Ro=>Ro.name)};Wj({selected:Ls,discoveredFeatures:vt,preConflict:Oi});let Ja=N?.features??Kj(vt,Ls);if(Ja.length===0)throw new Error("No features left to install after selection.");let Wc=Uj(N?.pick,Ls)??b.pick??Bj({pathInRepo:b.pathInRepo??R,implicitPick:B,preConflictCounts:Oi,selected:Ls}),zI=await Ne(g.canonicalDir),Hp=oU({manifest:zI,parsed:h,entryFeatures:Ja,yamlTarget:x.yamlTarget,explicitAs:c}),zp=eU({config:f,parsed:h,entryFeatures:Ja,nameOverride:l||Hp||""}),xg=pU(Ls,zp),Tg=uU(ae,bt,Ft,Qt,Ls);if(i){if(await Jj({configDir:g.configDir,config:f,entryArgs:{name:zp,source:S,version:C,features:Ja,path:b.pathInRepo,pick:Wc,yamlTarget:x.yamlTarget,as:c},dryRun:n}),n)return {installed:xg,skipped:Tg}}else {if(n)return y.info(`[dry-run] Would install pack "${zp}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:xg,skipped:Tg};await cU({canonicalDir:g.canonicalDir,packName:zp,narrowed:q,selected:Ls,sourceForYaml:S,version:C,sourceKind:h.kind,entryFeatures:Ja,pick:Wc,yamlTarget:x.yamlTarget,pathInRepo:b.pathInRepo,manualAs:c,renameExistingPack:l===""&&Hp===null,sourceType:it,contentRoot:k,forceFreshMaterialize:a,originalRef:h.rawRef!==""?h.rawRef:void 0});}return await Dc("install",e,g.rootBase),{installed:xg,skipped:Tg}}s(fU,"executeRunInstallPoolsAndWrite");function vc(t,e){let r=e?.input??process.stdin,n=e?.output??process.stdout;return new Promise(o=>{let i=Nj.createInterface({input:r,output:n,terminal:false}),a=false;i.on("close",()=>{a||o("");}),i.question(t,l=>{a=true,i.close(),o(l);});})}s(vc,"readLine");function hU(t,e){let r=e.resolved.length,n=r===1?"link":"links",o=[`Entity "${e.entityName}" (${e.entityKind}) has ${r} broken ${n}:`];for(let i of e.resolved)o.push(` - ${i.link.path} (${i.classification})`);o.push(""),t.write(`${o.join(`
|
|
351
395
|
`)}
|
|
352
|
-
`);}s(
|
|
396
|
+
`);}s(hU,"writeBanner");async function yU(t,e,r){let n=[];for(let o of t){if(o.resolved.length===0)continue;if(e.bypass){hU(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}hU(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(yU,"runBrokenLinkPrompt");var gI=["skills","agents","commands","rules"],hI={skills:"skill",agents:"agent",commands:"command",rules:"rule"},SU={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function Ka(t){return {skills:[],agents:[],commands:[],rules:[],aborted:t}}s(Ka,"emptySelection");function _U(t){return {skills:[...t.skills],agents:[...t.agents],commands:[...t.commands],rules:[...t.rules],aborted:false}}s(_U,"selectAll");function RU(t,e,r){let n=[`Found in ${e}:`];for(let o of gI){let i=r[o];if(i.length===0)continue;let a=i.length===1?hI[o]:SU[o];n.push(` - ${i.length} ${a}`);}n.push(""),t.write(`${n.join(`
|
|
353
397
|
`)}
|
|
354
|
-
`);}s(
|
|
398
|
+
`);}s(RU,"writeBanner");async function r3(t,e,r){if(r.length===0)return {selected:[],aborted:false};let n=SU[e],o=(await t.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=hI[e],a=[];for(let l=0;l<r.length;l++){let c=r[l],m=(await t.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(r3,"walkType");function n3(t){let e=null;for(let r of gI)for(let n of t[r]){if(e!==null)return null;e={kind:r,id:n};}return e}s(n3,"findSingleEntity");async function o3(t,e){let r=hI[e.kind],n=(await t.ask(`Install ${r} "${e.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...Ka(false),[e.kind]:[e.id]}:Ka(!(n===""||n==="n"))}s(o3,"runSingleEntityPrompt");async function IU(t,e,r){if(e.bypass)return _U(t);let n=t.skills.length+t.agents.length+t.commands.length+t.rules.length;if(n===0)return Ka(false);if(n===1){let a=n3(t);if(a!==null)return RU(r,e.packName,t),o3(r,a)}RU(r,e.packName,t);let o=(await r.ask("Install [a]ll, [n]one, or [s]elect per type? [a/n/s] ")).trim().toLowerCase();if(o==="a")return _U(t);if(o==="n")return Ka(false);if(o!=="s")return Ka(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of gI){let{selected:l,aborted:c}=await r3(r,a,t[a]);if(c)return Ka(true);i[a]=l;}return {...i,aborted:false}}s(IU,"runBulkPrompt");ot();function l3(t,e,r){let n=[];for(let o of ag(t))o.destination===e&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(l3,"buildLinkRewrites");function kU(t,e,r){t.warn(`Broken link in ${e.entityKind} "${e.entityName}": ${r.link.path} (${r.classification})`);}s(kU,"warnLink");function c3(t){let e=new Map;for(let n of t){let o=basename(n.resolvedRelative),i=e.get(o)??new Set;i.add(n.resolvedRelative),e.set(o,i);}let r=new Map;for(let[n,o]of e){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(c3,"allocateSupportingFileNames");function CU(t,e,r){return t.find(n=>n.entityKind===e&&n.entityName===r)}s(CU,"findEntity");async function m3(t,e,r,n){let o=[...e],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(t.replaceAll("\\","/"),l.resolvedRelative);o.push({relativePath:c,absolutePath:m,content:await readFile(m,"utf-8")});}return o}s(m3,"buildSupportingFiles");async function p3(t,e,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=c3(o),a=await m3(t,e.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(...l3(e.body,p.link.raw,f));}else kU(n,r,p);let m=_j(e.body,l);return {...e,body:m,supportingFiles:a}}s(p3,"applySkillDecision");async function EU(t){let{contentRoot:e,aggregate:r,decisions:n,logger:o}=t;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)?CU(r.brokenLinks,"skill",l.name):void 0;a.push(c?await p3(e,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=CU(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)kU(o,c,m);}return {...r,skills:a}}s(EU,"applyBrokenLinkDecisions");var Mc=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(e){super(e),this.name="InstallAbortError";}};function d3(){return {ask:s(t=>vc(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(d3,"defaultAdapter");function f3(t){return {skills:t.skills.map(e=>e.name),agents:t.agents.map(e=>e.name),commands:t.commands.map(e=>e.name),rules:t.rules.map(e=>ie(e))}}s(f3,"bulkCandidatesFrom");function LU(t,e){let r=new Set(e.skills),n=new Set(e.agents),o=new Set(e.commands),i=new Set(e.rules);return {skills:t.skills.filter(a=>r.has(a.name)),agents:t.agents.filter(a=>n.has(a.name)),commands:t.commands.filter(a=>o.has(a.name)),rules:t.rules.filter(a=>i.has(ie(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(LU,"filterCanonical");function g3(t){let e=[];return t.skills.length>0&&e.push("skills"),t.rules.length>0&&e.push("rules"),t.commands.length>0&&e.push("commands"),t.agents.length>0&&e.push("agents"),e}s(g3,"discoveredFeaturesOf");async function h3(t){let e=t.adapter??d3(),r=await yU(t.aggregate.brokenLinks,{bypass:t.bypass},e);if(r.aborted)throw new Mc("User aborted at broken-link prompt.");let n=[...r.decisions],o=await EU({contentRoot:t.contentRoot,aggregate:t.aggregate,decisions:n,logger:y}),i=f3(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:LU(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await IU(i,{packName:t.displayName,bypass:t.bypass},e);if(l.aborted)throw new Mc("User aborted at bulk-select prompt.");let c=LU(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:g3(c)}}s(h3,"runSkillPackPromptFlow");function y3(t){return basename(t)||"install source"}s(y3,"displayNameForContentRoot");async function OU(t){if(!t.discovery.aggregate)return {aborted:false};try{let e=await h3({contentRoot:t.contentRoot,aggregate:t.discovery.aggregate,narrowed:t.discovery.narrowed,bypass:t.bypass,displayName:y3(t.contentRoot)});return {aborted:!1,narrowed:e.narrowed,discoveredFeatures:e.discoveredFeatures}}catch(e){if(e instanceof Mc)return y.warn(e.message),{aborted:true};throw e}}s(OU,"runPromptFlowWithAbort");async function wU(t){let{discovery:e,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:S,nameOverride:C,acceptHooks:R,acceptPermissions:k,acceptMcp:b,scope:N,sourceArg:x,replay:B}=t,H=process.stdin.isTTY,{prep:tt,implicitPick:it}=e,{narrowed:v,discoveredFeatures:q}=e;try{let vt=await OU({discovery:e,contentRoot:c,bypass:f||u||!H});if(vt.aborted)return {exitCode:130,data:{source:x,mode:"install",installed:[],skipped:[],dryRun:u}};if(v=vt.narrowed??v,q=vt.discoveredFeatures??q,q.length===0&&r.brokenResources.length>0){let bt=r.brokenResources.map(Ft=>` - ${Ft.path}: ${Ft.reason}`).join(`
|
|
355
399
|
`);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
|
|
356
|
-
${
|
|
357
|
-
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
|
|
358
|
-
`),e.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(
|
|
400
|
+
${bt}
|
|
401
|
+
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 ae=await fU({scope:N,force:f,dryRun:u,tty:H,useExtends:g,forceFreshMaterialize:h,nameOverride:C,explicitAs:S,acceptHooks:R,acceptPermissions:k,acceptMcp:b,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:B,prep:tt,implicitPick:it,narrowed:v,discoveredFeatures:q,sourceType:e.layout?Oj(e.layout):void 0});return {exitCode:0,data:{source:x,mode:"install",installed:ae.installed,skipped:ae.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{tt.cleanup&&await tt.cleanup();}}s(wU,"runSinglePackInstall");async function AU(t,e,r){let n=[],o=[],i=0;for(let a of t)try{let l=await e(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(AU,"runInstallMarketplace");async function bU(t){let{pickerResult:e,installReport:r,sourceArg:n,projectRoot:o,dryRun:i,force:a,useExtends:l,nameOverride:c,replay:m,recurseInstall:p}=t;if(e.isMarketplace&&e.targets.length>0){let u=await AU(e.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(!e.isMarketplace&&e.targets.length===1){let u=e.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(bU,"routePickerResult");Zt();A();ot();async function R3(t){let e=await Ne(t.canonicalDir);if(e.length===0){y.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of e){let o=join(t.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 t.reinstall(n);y.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}s(R3,"syncInstalledPacks");async function PU(t){return t.sync?(await R3({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}s(PU,"maybeRunInstallSync");async function xU(t){let{projectRoot:e,sync:r,dryRun:n,force:o,scope:i,recurseInstall:a}=t;if(!r)return;let{context:l}=await yt(e,i),c=[],m=[];if(await PU({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],e,{features:u.features,pick:u.pick});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(xU,"handleSync");function TU(){return {brokenResources:[],subPackFailures:[]}}s(TU,"createInstallReport");function C3(t,e){if(!t)return;let r=normalize(t).replace(/\\/g,"/");if(r===".."||r.startsWith("../"))throw new Error(`Install --path "${e}" escapes the source root. Path must stay within the source.`)}s(C3,"assertPathStaysInRepo");async function DU(t){let e=await xU(t);if(e)return e;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:S,scope:C,sourceArg:R}=t;if(!R)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let k=process.stdin.isTTY;if(!k&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:b,context:N}=await yt(r,C);await Ut(b,r);let x=await ZS(R,N.configDir,m);if(x.kind!=="local"&&!await bG())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:B,sourceForYaml:H,version:tt}=await xG(x,R),it=x.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");C3(it,x.pathInRepo);let v=it?join(B,it):B;if(!await j(v))throw new Error(`Install path does not exist: ${v}`);let q=await Dj({as:u,contentRoot:v,pathInRepo:it}),vt=TU(),ae={onParseError:s((Ft,Qt)=>{vt.brokenResources.push({path:Qt,kind:"frontmatter",reason:Ft.message});},"onParseError")},bt=await wj({resolvedPath:B,contentRoot:v,pathInRepo:it,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:ae});if(bt.layout&&!u&&!p&&!m){let Ft=xj({layout:bt.layout,sourceName:f||(x.org&&x.repo?`${x.org}-${x.repo}`:"source"),sourceForYaml:H,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:k}),Qt=await bU({pickerResult:Ft,installReport:vt,sourceArg:R,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:t.recurseInstall});if(Qt!==null)return Qt}return wU({discovery:bt,installReport:vt,persisted:q,parsed:x,sourceForYaml:H,version:tt,pathInRepo:it,contentRoot:v,config:b,context:N,dryRun:o,force:i,useExtends:a,forceFreshMaterialize:c,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:S,scope:C,sourceArg:R,replay:n})}s(DU,"runInstallLocked");async function Wa(t,e,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:S,acceptMcp:C}=AG(t),R=t.global===true?"global":"project",k=e[0]?.trim(),b;if(n===void 0){let{context:N}=await yt(r,R);b=await Ac(N.canonicalDir);}try{return await DU({args:e,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:S,acceptMcp:C,scope:R,sourceArg:k,recurseInstall:Wa})}finally{await b?.();}}s(Wa,"runInstall");async function NU(t,e,r){return Wa(t,e,r)}s(NU,"runInstall");ot();function FU(t){let{data:e}=t;if(!(e.mode==="sync"&&e.installed.length===0&&e.skipped.length===0)){if(e.installed.length>0&&!e.dryRun){let n=[...new Set(e.installed.map(o=>o.kind))].map(o=>{let i=e.installed.filter(a=>a.kind===o).length;return `${i} ${o}${i>1?"s":""}`}).join(", ");y.success(`Installed ${n}.`);}if(e.skipped.length>0)for(let r of e.skipped)y.warn(`Skipped ${r.kind} "${r.name}": ${r.reason}`);if(e.brokenResources&&e.brokenResources.length>0){let r=e.brokenResources.length;y.warn(`Skipped ${r} file${r>1?"s":""} with invalid frontmatter; see --json for details.`);}if(e.subPackFailures&&e.subPackFailures.length>0)for(let r of e.subPackFailures)y.warn(`Sub-pack "${r.name}" (${r.path}) failed: ${r.error}`);}}s(FU,"renderInstall");Zt();$r();ot();function vU(t){let e=new Set,r=new Set;for(let n of t)e.has(n)?r.add(n):e.add(n);return [...r]}s(vU,"detectDuplicates");function fg(t,e,r,n){let o=[];r.keepGenerated&&o.push(`--keep-generated: target trees will not be re-rendered; generated files derived from "${t}" may remain stale until the next generate.`);let i=r.keepPack||e===null?null:join(r.packsDir,t);return {name:t,packDir:i,manifestEntry:e,extendsEntry:n.get(t)??null,removeGenerated:!r.keepGenerated,warnings:o}}s(fg,"buildPlan");function MU(t){if(!t.all&&t.names.length===0)throw new Error("uninstall: must provide at least one name or pass --all.");let e=new Map;for(let a of t.extends)e.has(a.name)||e.set(a.name,a);let r=new Map;for(let a of t.installs)r.set(a.name,a);if(t.all){let a=t.installs.map(m=>m.name),l=vU(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=t.installs.map(m=>fg(m.name,m,t,e));for(let m of t.extends)r.has(m.name)||c.push(fg(m.name,null,t,e));return {removals:c,skipped:[]}}let n=vU(t.names);if(n.length>0)throw new Error(`uninstall: duplicate names requested: ${n.join(", ")}.`);let o=[],i=[];for(let a of t.names){let l=r.get(a);if(l!==void 0){o.push(fg(a,l,t,e));continue}if(e.has(a)){o.push(fg(a,null,t,e));continue}i.push(a);}return {removals:o,skipped:i}}s(MU,"planUninstall");A();A();Sc();async function $U(t,e){let r=join(t,er);if(await j(r))return null;let n=await Ri(t);if(n===null)throw new Error(`Cannot migrate legacy pack at ${t}: pack.yaml is missing or invalid; cannot recover install provenance.`);let o=await pg(t),i={name:n.name,source:n.source,installed_at:n.installed_at,extends_id:null,source_type:null,files:o};return e.dryRun!==true&&await I(r,`${JSON.stringify(i,null,2)}
|
|
402
|
+
`),e.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($U,"migrateLegacyManifest");A();var O3=["pack.yaml",er];function w3(t,e){return relative(t,e).replaceAll("\\","/")}s(w3,"toForwardSlashRelative");async function gg(t,e){let r=await Os(t),n=new Map;for(let i of r){let a=w3(t,i);O3.includes(a)||n.set(a,i);}let o=[];for(let[i,a]of Object.entries(e)){let l=n.get(i);if(l===void 0){o.push({relativePath:i,status:"deleted"});continue}let c=await Tf(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 e||o.push({relativePath:i,status:"added"});return o.sort((i,a)=>i.relativePath<a.relativePath?-1:i.relativePath>a.relativePath?1:0),o}s(gg,"detectModifiedFiles");function GU(t,e){let r=e.modifications.length,n=r===1?"file":"files",o=[`Pack "${e.packName}" has ${r} locally modified ${n}:`];for(let i of e.modifications)o.push(` - ${i.relativePath} (${i.status})`);o.push(""),t.write(`${o.join(`
|
|
359
403
|
`)}
|
|
360
|
-
`);}s(
|
|
404
|
+
`);}s(GU,"writeBanner");async function jU(t,e,r){if(t.modifications.length===0)return {action:"proceed"};if(e.bypass)return GU(r,t),{action:"delete-anyway"};GU(r,t);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(jU,"runModifiedFilesPrompt");async function A3(t){let e=await _(join(t,er));if(e===null)return null;try{return JSON.parse(e).files??{}}catch{return null}}s(A3,"readManifestFiles");async function b3(t,e,r){if(t.manifestEntry===null)return {plan:t,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:false};let n=join(e,t.name);if(!await j(n))return r.warn(`Pack "${t.name}" directory missing at ${n}; only manifest entries will be removed.`),{plan:t,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:true};let o=await $U(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await A3(n);if(a===null)return {plan:t,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await gg(n,a);if(r.keepPack||l.length===0)return {plan:t,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await jU({packName:t.name,modifications:l},{bypass:r.bypassPrompts},r.adapter);return c.action==="abort"?"abort":{plan:t,modifications:l,action:c.action,legacyMigrated:i,packDirMissing:false}}s(b3,"decideOne");async function BU(t,e,r){let n=[];for(let o of t){let i=await b3(o,e,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(BU,"gatherUninstallDecisions");A();A();async function KU(t,e,r){if(!e.extends.some(c=>c.name===r))return false;let n=await _(t);if(n===null)throw new Error(`Missing config: ${t}`);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 I(t,l.endsWith(`
|
|
361
405
|
`)?l:`${l}
|
|
362
|
-
`),true}s(
|
|
363
|
-
`);switch(await
|
|
364
|
-
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===e.id))return;let i={id:e.id,source:e.source};e.version!==void 0&&(i.version=e.version),o.plugins.push(i),await
|
|
406
|
+
`),true}s(KU,"removeAgentsmeshExtendByName");async function WU(t){let{plan:e,canonicalDir:r,configPath:n,config:o}=t,i=false;e.packDir!==null&&await j(e.packDir)&&(await rm$1(e.packDir,{recursive:true}),i=true);let a=await aU(r,e.name),l=false;e.extendsEntry!==null&&(l=await KU(n,o,e.name));let c=e.packDir!==null,m=e.manifestEntry!==null,p=e.extendsEntry!==null,u=c&&!i||m&&!a||p&&!l;return {name:e.name,packDirRemoved:i,manifestEntryRemoved:a,extendsEntryRemoved:l,partial:u}}s(WU,"applyUninstall");function F3(t,e){return relative(t,e).replaceAll("\\","/")}s(F3,"toForwardSlashRel");function yI(t){return t.map(e=>({name:e,reason:"not found in installs.yaml"}))}s(yI,"buildSkipped");function HU(t,e,r){return t.plan.manifestEntry===null?null:F3(e,join(r,t.plan.name))}s(HU,"packPathFor");function zU(t,e,r){return t.map(n=>({name:n.plan.name,pack_path:HU(n,e,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(zU,"previewEntries");function VU(t,e,r,n){let o=t.action==="keep-modified"||!e.packDirRemoved;return {name:e.name,pack_path:HU(t,r,n),manifest_entry_removed:e.manifestEntryRemoved,extends_entry_removed:e.extendsEntryRemoved,generated_files_removed:0,modified_files_kept:o?t.modifications.map(i=>({relativePath:i.relativePath,status:i.status})):[],legacy_migrated:t.legacyMigrated,partial:e.partial}}s(VU,"appliedEntry");function v3(t){let e=[];for(let r of t)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))e.push(n);return e}s(v3,"parseNames");function M3(){return {ask:s(t=>vc(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(M3,"defaultAdapter");async function hg(t,e,r,n={}){let o=t.global===true?"global":"project",i=t.all===true,a=t.force===true,l=t["dry-run"]===true,c=t["keep-pack"]===true,m=t["keep-generated"]===true,p=n.assumeTty===true||process.stdin.isTTY,u=v3(e),f=t.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:S}=await yt(r,o);await Ut(h,r);let C=await Ac(S.canonicalDir);try{let R=await Ne(S.canonicalDir),k=join(S.canonicalDir,"packs"),b=MU({names:u,all:i,keepPack:c,keepGenerated:m,installs:R,extends:h.extends,packsDir:k}),{decisions:N,aborted:x}=await BU(b.removals,k,{adapter:n.promptAdapter??M3(),warn:s(it=>y.warn(it),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(x)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let it of b.removals)for(let v of it.warnings)y.warn(v);if(l){for(let it of N)y.info(`[dry-run] Would uninstall pack "${it.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:zU(N,S.rootBase,k),skipped:yI(b.skipped),failed:[],dryRun:!0}}}let B=join(S.configDir,"agentsmesh.yaml"),H=[],tt=[];for(let it of N){let v=it.action==="keep-modified"?{...it.plan,packDir:null}:it.plan;try{let q=await WU({plan:v,canonicalDir:S.canonicalDir,configPath:B,config:h});H.push(VU(it,q,S.rootBase,k));}catch(q){let vt=q instanceof Error?q.message:String(q);tt.push({name:it.plan.name,reason:vt}),f||y.error(`Failed to uninstall "${it.plan.name}": ${vt}`);}}return !m&&H.length>0?await Dc("uninstall",o,S.rootBase):m&&H.length>0&&y.warn("--keep-generated: target files derived from the removed pack(s) may be stale until the next generate."),{exitCode:tt.length>0?1:0,data:{scope:o,mode:"uninstall",removed:H,skipped:yI(b.skipped),failed:tt,dryRun:!1}}}finally{await C();}}s(hg,"runUninstall");async function YU(t,e,r){return hg(t,e,r)}s(YU,"runUninstall");ot();function XU(t){let{data:e}=t;if(e.dryRun){if(e.removed.length===0){y.info("[dry-run] No installs matched.");return}y.info(`[dry-run] Would uninstall ${e.removed.length} pack(s):`);for(let r of e.removed){let n=r.pack_path===null?"extends-only":r.pack_path;y.info(` - ${r.name} (${n})`);}return}if(e.removed.length>0){let r=e.removed.map(n=>`"${n.name}"`).join(", ");y.success(`Uninstalled ${e.removed.length} pack(s): ${r}.`);}for(let r of e.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of e.failed)y.error(`Failed "${r.name}": ${r.reason}`);}s(XU,"renderUninstall");Zt();$r();ot();function ZU(t){let e=t.json===true;return {dryRun:t["dry-run"]===true,force:t.force===true||e,global:t.global===true,json:e,verbose:t.verbose===true}}s(ZU,"readRefreshFlags");function QU(t){let e=[];for(let r of t)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))e.push(n);return e}s(QU,"parseRefreshNames");A();function $3(t){return t.modifications.length>0?"needs-consent":t.oldSha===t.newSha?"unchanged":"clean-update"}s($3,"classifyRefreshPlan");async function t0(t,e,r){let n=join(e,t.name),o=t.version??null,i=join(n,er),a=await _(i);if(a===null)return {name:t.name,entry:t,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:t.name,entry:t,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest is corrupt at ${i}`}}}let c=[];await j(n)&&(c=await gg(n,l));let m;try{m=await r.resolveRef(t);}catch(p){let u=p instanceof Error?p.message:String(p);return {name:t.name,entry:t,oldSha:o,newSha:o??"",modifications:c,classification:"error",error:{phase:"plan",message:u}}}return {name:t.name,entry:t,oldSha:o,newSha:m,modifications:c,classification:$3({modifications:c,oldSha:o,newSha:m})}}s(t0,"planSinglePack");function e0(){return async t=>{if(t.source_kind==="local")return t.version??"local";let e=Tp(t.source);if(e===null||e.remoteUrl===void 0)throw new Error(`Cannot parse source for refresh: ${t.source}`);let r=t.original_ref!==void 0&&t.original_ref!==""?t.original_ref:e.ref??"HEAD";return rg(r,e.remoteUrl)}}s(e0,"createDefaultResolveRef");async function r0(t,e,r){try{await r.runInstallForRefresh(t.entry,t.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 Ne(e)).find(a=>a.name===t.entry.name);if(i===void 0)return {success:!1,phase:"manifest-update",error:`Entry "${t.entry.name}" not found after install`};await dg(e,{...i,refreshed_at:n});}catch(n){return {success:false,phase:"manifest-update",error:n instanceof Error?n.message:String(n)}}return {success:true}}s(r0,"applySinglePack");async function G3(t,e,r={}){let n=r.readLine??vc,o,i=new Promise(a=>{o=setTimeout(()=>a("timeout"),e),o.unref?.();});try{let a=await Promise.race([n(t),i]);return a==="timeout"?"timeout":j3(a)}finally{o&&clearTimeout(o);}}s(G3,"promptWithTimeout");function j3(t){let e=t.trim().toLowerCase();return e==="y"||e==="yes"?"y":e==="per-pack"?"per-pack":"n"}s(j3,"normalize");async function _I(t,e){let n=[`The following ${t.length} pack(s) have local edits that refresh will overwrite:`,...t.map(i=>` - ${i.name}: ${i.modifiedCount} modified file(s)`),"Continue? [y/N/per-pack] (5 min timeout, default N) "].join(`
|
|
407
|
+
`);switch(await G3(n,e.timeoutMs,e)){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:t.map(i=>i.name)}}}s(_I,"runConsentPrompt");function U3(t,e){let r=Tp(t.source);if(r===null||r.remoteUrl===void 0)return t.source;if(t.source_kind==="github"&&t.source.startsWith("github:")){let n=t.source.indexOf(":"),o=t.source.lastIndexOf("@");return `${o>n?t.source.slice(0,o):t.source}@${e}`}if(t.source_kind==="gitlab"&&t.source.startsWith("gitlab:")){let n=t.source.indexOf(":"),o=t.source.lastIndexOf("@");return `${o>n?t.source.slice(0,o):t.source}@${e}`}if(t.source.startsWith("git+")){let n=t.source.lastIndexOf("#");return `${n<0?t.source:t.source.slice(0,n)}#${e}`}return t.source}s(U3,"buildSourceForRefresh");function n0(t){return async(e,r)=>{let n={force:true,forceFreshMaterialize:true};t.scope==="global"&&(n.global=true),e.target!==void 0&&(n.target=e.target),e.as!==void 0&&(n.as=e.as),e.path!==void 0&&(n.path=e.path),e.paths!==void 0&&e.paths.length>0&&(n.all=true),n.name=e.name;let o={features:e.features,pick:e.pick},i=U3(e,r),a=await Wa(n,[i],t.projectRoot,o);if(a.exitCode!==0)throw new Error(`Install for refresh "${e.name}" failed with exit code ${a.exitCode}`)}}s(n0,"createRunInstallForRefresh");var o0=300*1e3;async function yg(t,e,r){let{dryRun:n,force:o,global:i,json:a}=ZU(t),l=i?"global":"project",c=QU(e),m=s(()=>({scope:l,mode:"refresh",refreshed:[],unchanged:[],skipped:[],failed:[],dryRun:n}),"emptyData"),{config:p,context:u}=await yt(r,l);await Ut(p,r);let f=await Ac(u.canonicalDir);try{let g=await Ne(u.canonicalDir);if(c.length>0){let v=new Set(g.map(vt=>vt.name)),q=c.filter(vt=>!v.has(vt));if(q.length>0)return a||y.error(`Unknown pack(s): ${q.join(", ")}`),{exitCode:2,data:m()}}let h=c.length>0?g.filter(v=>c.includes(v.name)):g;if(h.length===0)return a||y.info("No packs to refresh."),{exitCode:0,data:m()};let S=join(u.canonicalDir,"packs"),C=e0(),R=[];for(let v of h)R.push(await t0(v,S,{resolveRef:C}));let k=R.filter(v=>v.classification==="error"),b=R.filter(v=>v.classification==="unchanged"),N=R.filter(v=>v.classification==="clean-update"),x=R.filter(v=>v.classification==="needs-consent"),B=m();if(B.unchanged=b.map(v=>({name:v.name,ref:v.newSha})),B.failed=k.map(v=>({name:v.name,phase:"plan",error:v.error?.message??"unknown plan error"})),n){for(let v of N)B.refreshed.push({name:v.name,oldRef:v.oldSha,newRef:v.newSha,oldSha:v.oldSha,newSha:v.newSha,changedFiles:{added:[],removed:[],modified:[]}});for(let v of x)B.refreshed.push({name:v.name,oldRef:v.oldSha,newRef:v.newSha,oldSha:v.oldSha,newSha:v.newSha,changedFiles:{added:[],removed:[],modified:[]}});return {exitCode:k.length>0?1:0,data:B}}let H=new Set(N.map(v=>v.name));if(x.length>0)if(o)for(let v of x)H.add(v.name);else {let v=await _I(x.map(q=>({name:q.name,modifiedCount:q.modifications.length})),{timeoutMs:o0});if(v.proceed&&!v.perPack)for(let q of x)H.add(q.name);else if(v.proceed&&v.perPack)for(let q of x)(await _I([{name:q.name,modifiedCount:q.modifications.length}],{timeoutMs:o0})).proceed?H.add(q.name):B.skipped.push({name:q.name,reason:"user-declined"});else for(let q of v.declined)B.skipped.push({name:q,reason:"user-declined"});}let tt=n0({projectRoot:r,scope:l});for(let v of [...N,...x]){if(!H.has(v.name))continue;let q=await r0(v,u.canonicalDir,{runInstallForRefresh:tt});q.success?B.refreshed.push({name:v.name,oldRef:v.oldSha,newRef:v.newSha,oldSha:v.oldSha,newSha:v.newSha,changedFiles:{added:[],removed:[],modified:[]}}):B.failed.push({name:v.name,phase:q.phase??"apply",error:q.error??"unknown"});}return B.refreshed.length>0&&await Dc("refresh",l,u.rootBase),{exitCode:B.failed.length>0?1:0,data:B}}finally{await f();}}s(yg,"runRefresh");async function s0(t,e,r){return yg(t,e,r)}s(s0,"runRefresh");ot();function i0(t){let{data:e}=t;if(e.dryRun){if(e.refreshed.length===0&&e.unchanged.length===0){y.info("[dry-run] No packs to refresh.");return}y.info(`[dry-run] Would refresh ${e.refreshed.length} pack(s); ${e.unchanged.length} unchanged.`);for(let r of e.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);for(let r of e.unchanged)y.info(` - ${r.name}: unchanged at ${r.ref}`);return}if(e.refreshed.length>0){y.success(`Refreshed ${e.refreshed.length} pack(s):`);for(let r of e.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);}for(let r of e.unchanged)y.info(`Pack "${r.name}" unchanged at ${r.ref}.`);for(let r of e.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of e.failed)y.error(`Failed "${r.name}" (${r.phase}): ${r.error}`);}s(i0,"renderRefresh");Zt();A();Sc();async function W3(t){let e=await _(join(t,er));if(e===null)return {installed_at:null,source_type:null};try{let r=JSON.parse(e);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(W3,"readPackManifestMeta");function H3(t,e){return relative(t,e).replaceAll("\\","/")}s(H3,"toForwardSlashRel");async function _g(t,e){let r=t.global===true?"global":"project",n=Pi(e,r),o=await Ne(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await W3(c),p=await Ri(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:H3(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(_g,"runInstallsList");var z3=["list"];function a0(t){return {scope:t,subcommand:"list",installs:[]}}s(a0,"emptyData");async function l0(t,e,r){let n=t.global===true?"global":"project",o=e[0];return o===void 0||o===""?{exitCode:0,data:a0(n),showHelp:true}:o==="list"?_g(t,r):{exitCode:2,data:a0(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${z3.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(l0,"runInstalls");ot();var Rg=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function V3(t){let e=t.refreshed_at??t.installed_at??null;return {name:t.name,source:t.source,features:t.features.join(", "),license:t.license??"-",installed:e?e.slice(0,10):"-"}}s(V3,"toRow");function J3(t){let e={name:0,source:0,features:0,license:0,installed:0};for(let n of Rg)e[n.key]=n.label.length;for(let n of t)for(let o of Rg)e[o.key]=Math.max(e[o.key],n[o.key].length);let r=Rg.map(n=>n.label.padEnd(e[n.key])).join(" ");y.info(r);for(let n of t)y.info(Rg.map(o=>n[o.key].padEnd(e[o.key])).join(" "));}s(J3,"renderTable");function c0(t){if(t.error&&y.error(t.error),t.showHelp){Jp("installs");return}let{data:e}=t;if(e.installs.length===0){y.info("No installed packs.");return}J3(e.installs.map(V3));}s(c0,"renderInstalls");RS();A();var CI="agentsmesh.yaml";async function kI(t){let e=join(t,CI),r=await _(e);return r===null?{}:parse(r)??{}}s(kI,"readScopedConfigRaw");async function p0(t,e){let r=join(t,CI),n=await _(r)??`version: 1
|
|
408
|
+
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===e.id))return;let i={id:e.id,source:e.source};e.version!==void 0&&(i.version=e.version),o.plugins.push(i),await I(r,stringify(o));}s(p0,"writePluginEntry");async function u0(t,e){let r=join(t,CI),n=await _(r);if(n===null)return false;let o=parse(n)??{},i=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==e),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==e));let a=o.plugins.length<i;return a&&await I(r,stringify(o)),a}s(u0,"removePluginEntry");async function d0(t,e,r){let n=e[0];if(n===void 0||n==="")return {exitCode:0,data:{subcommand:"list",plugins:[]},showHelp:true};switch(n){case "add":return Y3(t,e.slice(1),r);case "list":return X3(r);case "remove":return Z3(e.slice(1),r);case "info":return Q3(e.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(d0,"runPlugin");async function Y3(t,e,r){let n=e[0];if(!n)throw new In("Usage: agentsmesh plugin add <source> [--version <v>] [--id <id>]");let o=typeof t.version=="string"?t.version:"latest",a=(typeof t.id=="string"?t.id:void 0)??q3(n);return await p0(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(Y3,"runPluginAdd");async function X3(t){let r=(await kI(t)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await Uf(o,t);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(X3,"runPluginList");async function Z3(t,e){let r=t[0];if(!r)throw new In("Usage: agentsmesh plugin remove <id>");let n=await u0(e,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(Z3,"runPluginRemove");async function Q3(t,e){let r=t[0];if(!r)throw new In("Usage: agentsmesh plugin info <id>");let o=((await kI(e)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await Uf(o,e);}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(Q3,"runPluginInfo");function q3(t){let e=t;if(e.startsWith("@")){let n=e.indexOf("/");n!==-1&&(e=e.slice(n+1));}e.startsWith("agentsmesh-target-")&&(e=e.slice(18)),e.startsWith("file:")&&(e=e.slice(5));let r=e.replace(/\\/g,"/").split("/");return e=r[r.length-1]??e,e=e.replace(/\.(js|ts)$/,""),e=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),e||"plugin"}s(q3,"derivePluginId");ot();function f0(t){if(t.error&&y.error(t.error),t.showHelp){o9();return}let{data:e}=t;switch(e.subcommand){case "add":t9(e.id,e.package,e.version);break;case "list":e9(e.plugins);break;case "remove":r9(e.id,e.found);break;case "info":n9(e,t.exitCode);break}}s(f0,"renderPlugin");function t9(t,e,r){y.success(`Plugin '${t}' 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 ${e}${n}`),y.info(`Then add '${t}' to pluginTargets in agentsmesh.yaml to enable it.`);}s(t9,"renderAdd");function e9(t){if(t.length===0){y.info("No plugins configured. Use: agentsmesh plugin add <source>");return}y.info("Configured plugins:");for(let e of t){let r=e.version!==void 0?`@${e.version}`:"",n=e.status??"",o=e.targets??"";y.info(` ${e.id} | ${e.package}${r} | ${n} | ${o}`);}}s(e9,"renderList");function r9(t,e){e?y.success(`Plugin '${t}' removed from agentsmesh.yaml`):y.warn(`Plugin '${t}' was not found in agentsmesh.yaml`);}s(r9,"renderRemove");function n9(t,e){if(e!==0&&t.package===""){y.error(`Plugin '${t.id}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`);return}if(e!==0){y.error(`Failed to load plugin '${t.id}'`);return}y.info(`Plugin: ${t.id}`),y.info(`Source: ${t.package}${t.version!==void 0?`@${t.version}`:""}`),y.info(`Descriptors: ${t.descriptors.length}`);for(let r of t.descriptors)y.info(` - ${r.id}: ${r.description}`);}s(n9,"renderInfo");function o9(){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(o9,"printPluginHelp");A();kn();function Ci(t){return t.toUpperCase().replace(/-/g,"_")}s(Ci,"toPrefix");function ks(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}s(ks,"toPascal");function EI(t){let e=Ci(t.id),r=ks(t.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
365
409
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
366
410
|
import { generateRules } from './generator.js';
|
|
367
411
|
import { importFrom${r} } from './importer.js';
|
|
@@ -464,7 +508,7 @@ export const descriptor = {
|
|
|
464
508
|
buildImportPaths: build${r}ImportPaths,
|
|
465
509
|
detectionPaths: [${e}_DIR],
|
|
466
510
|
} satisfies TargetDescriptor;
|
|
467
|
-
`}s(
|
|
511
|
+
`}s(EI,"TEMPLATE_INDEX");function LI(t){return `import { describe, it, expect } from 'vitest';
|
|
468
512
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
469
513
|
import { generateRules } from '../../../../src/targets/${t.id}/generator.js';
|
|
470
514
|
|
|
@@ -493,7 +537,7 @@ describe('generateRules (${t.id})', () => {
|
|
|
493
537
|
expect(result).toHaveLength(0);
|
|
494
538
|
});
|
|
495
539
|
});
|
|
496
|
-
`}s(
|
|
540
|
+
`}s(LI,"TEMPLATE_GENERATOR_TEST");function OI(t){let e=ks(t.id);return `import { describe, it, expect } from 'vitest';
|
|
497
541
|
import { importFrom${e} } from '../../../../src/targets/${t.id}/importer.js';
|
|
498
542
|
|
|
499
543
|
describe('importFrom${e} (${t.id})', () => {
|
|
@@ -507,10 +551,10 @@ describe('importFrom${e} (${t.id})', () => {
|
|
|
507
551
|
expect(result).toHaveLength(0);
|
|
508
552
|
});
|
|
509
553
|
});
|
|
510
|
-
`}s(
|
|
554
|
+
`}s(OI,"TEMPLATE_IMPORTER_TEST");function wI(t){return `# ${t.displayName} Workspace
|
|
511
555
|
|
|
512
556
|
Follow the ${t.displayName} configuration files and keep changes small.
|
|
513
|
-
`}s(
|
|
557
|
+
`}s(wI,"TEMPLATE_FIXTURE_ROOT_MD");function g0(t){let e=Ci(t.id);return `export const ${e}_TARGET = '${t.id}';
|
|
514
558
|
|
|
515
559
|
// Project-level paths
|
|
516
560
|
export const ${e}_DIR = '.${t.id}';
|
|
@@ -523,21 +567,21 @@ export const ${e}_GLOBAL_RULES_DIR = '~/.${t.id}/rules';
|
|
|
523
567
|
// Canonical paths
|
|
524
568
|
export const ${e}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
525
569
|
export const ${e}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
526
|
-
`}s(
|
|
570
|
+
`}s(g0,"TEMPLATE_CONSTANTS");function h0(t){let e=Ci(t.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
527
571
|
import { ${e}_TARGET, ${e}_DIR } from './constants.js';
|
|
528
572
|
|
|
529
|
-
export interface ${
|
|
573
|
+
export interface ${ks(t.id)}Output {
|
|
530
574
|
path: string;
|
|
531
575
|
content: string;
|
|
532
576
|
}
|
|
533
577
|
|
|
534
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
578
|
+
export function generateRules(_canonical: CanonicalFiles): ${ks(t.id)}Output[] {
|
|
535
579
|
// TODO(agentsmesh-scaffold): implement generateRules for ${t.displayName}
|
|
536
580
|
void ${e}_TARGET;
|
|
537
581
|
void ${e}_DIR;
|
|
538
582
|
return [];
|
|
539
583
|
}
|
|
540
|
-
`}s(
|
|
584
|
+
`}s(h0,"TEMPLATE_GENERATOR");function y0(t){let e=ks(t.id),r=Ci(t.id);return `import type { ImportResult } from '../../core/types.js';
|
|
541
585
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
542
586
|
import { ${r}_TARGET } from './constants.js';
|
|
543
587
|
|
|
@@ -549,7 +593,7 @@ export async function importFrom${e}(
|
|
|
549
593
|
void ${r}_TARGET;
|
|
550
594
|
return [];
|
|
551
595
|
}
|
|
552
|
-
`}s(
|
|
596
|
+
`}s(y0,"TEMPLATE_IMPORTER");function _0(t){let e=Ci(t.id);return `/** Lint rules for the ${t.id} target. */
|
|
553
597
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
554
598
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
555
599
|
import { ${e}_TARGET } from './constants.js';
|
|
@@ -567,7 +611,7 @@ export function lintRules(
|
|
|
567
611
|
target: ${e}_TARGET,
|
|
568
612
|
}));
|
|
569
613
|
}
|
|
570
|
-
`}s(
|
|
614
|
+
`}s(_0,"TEMPLATE_LINTER");function R0(t){return `/**
|
|
571
615
|
* ${t.displayName}-specific lint hooks.
|
|
572
616
|
*/
|
|
573
617
|
|
|
@@ -577,7 +621,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
|
577
621
|
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${t.displayName}
|
|
578
622
|
return [];
|
|
579
623
|
}
|
|
580
|
-
`}s(
|
|
624
|
+
`}s(R0,"TEMPLATE_LINT_HOOKS");function S0(t){let e=ks(t.id),r=Ci(t.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
581
625
|
import { ${r}_DIR } from '../../../targets/${t.id}/constants.js';
|
|
582
626
|
|
|
583
627
|
export async function build${e}ImportPaths(
|
|
@@ -589,14 +633,14 @@ export async function build${e}ImportPaths(
|
|
|
589
633
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
590
634
|
void ${r}_DIR;
|
|
591
635
|
}
|
|
592
|
-
`}s(
|
|
636
|
+
`}s(S0,"TEMPLATE_IMPORT_MAP");var i9=/^[a-z][a-z0-9-]*$/;async function I0(t){let{id:e,projectRoot:r,force:n=false}=t,o=t.displayName??e,i={id:e,displayName:o};if(!i9.test(e))throw new Error(`Invalid target id "${e}". Must match /^[a-z][a-z0-9-]*$/ (lowercase letters, digits, hyphens; start with a letter).`);if($t.includes(e))throw new Error(`Target "${e}" already exists as a built-in target. Choose a different id.`);let a=[{rel:`src/targets/${e}/constants.ts`,content:g0(i)},{rel:`src/targets/${e}/index.ts`,content:EI(i)},{rel:`src/targets/${e}/generator.ts`,content:h0(i)},{rel:`src/targets/${e}/importer.ts`,content:y0(i)},{rel:`src/targets/${e}/linter.ts`,content:_0(i)},{rel:`src/targets/${e}/lint.ts`,content:R0(i)},{rel:`src/core/reference/import-maps/${e}.ts`,content:S0(i)},{rel:`tests/unit/targets/${e}/generator.test.ts`,content:LI(i)},{rel:`tests/unit/targets/${e}/importer.test.ts`,content:OI(i)},{rel:`tests/e2e/fixtures/${e}-project/AGENTS.md`,content:wI(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await j(u)){c.push(u);continue}await I(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/${e}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${e}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}s(I0,"writeTargetScaffold");async function k0(t,e,r){let n=e[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?a9(t,e.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(k0,"runTarget");async function a9(t,e,r){let n=e[0];if(!n)throw new In("Usage: agentsmesh target scaffold <id> [--name <displayName>] [--force]");let o=typeof t.name=="string"?t.name:void 0,i=t.force===true,a;try{a=await I0({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=>C0(l,r)),skipped:a.skipped.map(l=>C0(l,r)),postSteps:a.postSteps}}}s(a9,"runScaffold");function C0(t,e){return (t.startsWith(e)?t.slice(e.length+1):t).replaceAll("\\","/")}s(C0,"relativize");ot();function E0(t){if(t.error&&y.error(t.error),t.showHelp){l9();return}let{data:e}=t;for(let r of e.written)y.success(`created ${r}`);for(let r of e.skipped)y.warn(`skipped ${r} (already exists \u2014 use --force to overwrite)`);if(e.written.length>0){y.info(""),y.info("Next steps:");for(let r of e.postSteps)y.info(` ${r}`);}}s(E0,"renderTarget");function l9(){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(l9,"printTargetHelp");ce();Di();A();Zt();$r();Co();function h9(t,e){return t===".agentsmesh"?false:!!(t.startsWith(".")||!e)}s(h9,"shouldSymlink");function y9(t){let e=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(t,{withFileTypes:true});for(let n of r){if(!h9(n.name,n.isDirectory()))continue;let o=join(t,n.name),i=join(e,n.name);symlinkSync(o,i,n.isDirectory()?"dir":"file");}return mkdirSync(join(e,".agentsmesh"),{recursive:true}),e}s(y9,"createTempProjectRoot");async function Ig(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=n==="global"?homedir():r,i=t.from,a=t.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=ve(l),p=ve(c);if(!m||!p)try{let{config:C}=await yt(r,"project");await Ut(C,r);}catch{let C=[];throw m||C.push(`--from "${i}"`),p||C.push(`--to "${a}"`),new Error(`Unknown ${C.join(" and ")}. Supported: ${$t.join(", ")}.`)}let u=nt(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${$t.join(", ")}.`);if(!nt(c))throw new Error(`Unknown --to "${a}". Supported: ${$t.join(", ")}.`);let g=t["dry-run"]===true,h=g?"dry-run":"convert",S=y9(o);try{await u.generators.importFrom(S,{scope:n});let C=await we(S),R=bi.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),k=await Mr({config:R,canonical:C,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let x of k)if(x.status==="created"||x.status==="updated"){let B=kc(o,x.path,x.target);await I(B,x.content);}}let b=k.filter(x=>x.status!=="skipped"),N=b.map(x=>({path:x.path,target:x.target,status:x.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:N,summary:{created:b.filter(x=>x.status==="created").length,updated:b.filter(x=>x.status==="updated").length,unchanged:b.filter(x=>x.status==="unchanged").length}}}}finally{rmSync(S,{recursive:true,force:true});}}s(Ig,"runConvert");ot();function L0(t){let{data:e}=t;if(e.files.length===0){y.info(`No files found to convert from ${e.from}.`);return}if(e.mode==="dry-run"){for(let i of e.files)y.info(`[dry-run] ${i.status} ${i.path} (${i.target})`);return}for(let i of e.files)(i.status==="created"||i.status==="updated")&&y.success(`${i.status} ${i.path}`);let{created:r,updated:n,unchanged:o}=e.summary;r>0||n>0?y.info(`Converted from ${e.from} \u2192 ${e.to}: ${r} created, ${n} updated, ${o} unchanged`):y.info(`Nothing changed. (${o} unchanged)`);}s(L0,"renderConvert");var _9=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,M=class extends Error{static{s(this,"McpError");}code;details;constructor(e,r,n){if(_9.test(r))throw new Error(`McpError refuses absolute fs path in message: ${r}`);super(r),this.code=e,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 $c(t){return t.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($c,"redactAbsolutePaths");async function AI(t){let e=resolve(t.projectRoot,".agentsmesh",t.feature),r=resolve(e,t.relativePath);if(!r.startsWith(e+sep)&&r!==e)throw new M("PATH_TRAVERSAL",`path escapes ${t.feature} directory`);if(Buffer.byteLength(t.content,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","file body exceeds 1 MiB cap",{limit:1048576,actual:Buffer.byteLength(t.content,"utf8")});await mkdir(dirname(r),{recursive:true});let n=`${r}.tmp.${process.pid}.${Date.now()}`;return await writeFile(n,t.content,"utf8"),await rename(n,r),r}s(AI,"safeWrite");var O9=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function Ei(t){let e=O9.exec(t);if(!e)return {frontmatter:{},body:t};let[,r,n]=e;return {frontmatter:parse(r)??{},body:n}}s(Ei,"parseMd");function Gc(t,e){return Object.keys(t).length===0?e:`---
|
|
593
637
|
${stringify(t).trimEnd()}
|
|
594
638
|
---
|
|
595
639
|
|
|
596
|
-
${e}`}s(Dc,"serializeMd");var N8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,F8={rules:"_root"};function lg(t){if(!N8.test(t)||t.includes(".."))throw new v("INVALID_NAME",`invalid name: ${t}`)}s(lg,"checkName");function cg(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(cg,"pathFor");function Nc(t){let{feature:e,frontmatterSchema:r,toSummary:n}=t,o=s(l=>resolve(l,".agentsmesh",e),"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}=Ii(f);m.push(n(u,g));}return m},async get(l,{name:c}){lg(c);let m=cg(l.projectRoot,e,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Ii(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new v("NOT_FOUND",`${e} "${c}" not found`):new v("IO_ERROR",`failed to read ${e}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){lg(c);let f=r.safeParse(m);if(!f.success)throw new v("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=cg(l.projectRoot,e,c);if(await a(g))throw new v("ALREADY_EXISTS",`${e} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new v("LIMIT_EXCEEDED",`${e} dir at ${1e3} entries`);let I=Dc(m,p);return u===true?{path:g,written:false}:(await aS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:I}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){lg(c);let g=cg(l.projectRoot,e,c),h;try{let P=await readFile(g,"utf8");h=Ii(P);}catch(P){let N=P.code;throw N==="ENOENT"?new v("NOT_FOUND",`${e} "${c}" not found`):new v("IO_ERROR",`failed to read ${e}`,{errno:N})}let I=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,k=r.safeParse(I);if(!k.success)throw new v("VALIDATION_FAILED","invalid frontmatter",k.error.issues);let C=p!==void 0?p:h.body,R=Dc(I,C);return f===true?{path:g,written:false}:(await aS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(lg(c),F8[e]===c&&m!==true)throw new v("PROTECTED_FILE",`${e} "${c}" requires force: true`);let u=cg(l.projectRoot,e,c);if(!await a(u))throw new v("NOT_FOUND",`${e} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(Nc,"createCanonicalHandlers");var v8=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(),ZU=Nc({feature:"rules",frontmatterSchema:v8,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var M8=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),QU=Nc({feature:"commands",frontmatterSchema:M8,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var $8=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(),qU=Nc({feature:"agents",frontmatterSchema:$8,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var G8=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),j8=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")}),U8=z$1.object({}).strict();function cS(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:U8,handler:s(n=>e.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:G8,handler:s((n,o)=>e.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${t}`,description:`Create a new ${t}`,inputSchema:j8,handler:s((n,o)=>e.create(n,o),"handler")},{name:`update_${t}`,description:`Update a ${t}. 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)=>e.update(n,o),"handler")},{name:`delete_${t}`,description:`Delete a ${t}. 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)=>e.delete(n,o),"handler")}]}s(cS,"canonicalTools");var t0=[...cS("rule",ZU),...cS("command",QU),...cS("agent",qU)];async function r0(t){let e=resolve(t.projectRoot,".agentsmesh/skills",t.skillName),r=resolve(e,t.filePath);if(!r.startsWith(e+sep)&&r!==e)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: ${t.filePath}`):new v("IO_ERROR","failed to read skill file")}}s(r0,"safeRead");var J8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,Y8=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,i0=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Tp(t){if(!J8.test(t))throw new v("INVALID_NAME",`invalid skill name: ${t}`)}s(Tp,"checkName");function uS(t){if(!Y8.test(t)||t.includes("..")||t.includes("//"))throw new v("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(uS,"checkSupportPath");async function ug(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(t),{recursive:true});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s(ug,"atomicWrite");var a0=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),xp=s((t,e)=>resolve(a0(t),e),"skillDir"),Ua={async list(t){let e;try{e=(await readdir(a0(t.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of e)try{let o=await readFile(resolve(xp(t.projectRoot,n),"SKILL.md"),"utf8"),i=Ii(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(t,{name:e}){Tp(e);let r=xp(t.projectRoot,e);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Ii(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:e,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new v("NOT_FOUND",`skill "${e}" not found`):new v("IO_ERROR","failed to read skill")}},async getFile(t,{name:e,path:r}){return Tp(e),uS(r),{content:await r0({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Tp(e.name);let r=i0.safeParse(e.frontmatter);if(!r.success)throw new v("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=xp(t.projectRoot,e.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new v("ALREADY_EXISTS",`skill "${e.name}" exists`);let i=e.supportingFiles??{},a=Object.keys(i);if(a.forEach(uS),a.length+1>1e3)throw new v("LIMIT_EXCEEDED","supporting files exceed cap");if(e.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await ug(l,Dc(e.frontmatter,e.body));for(let[c,m]of Object.entries(i))await ug(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(t,e){Tp(e.name);let r=xp(t.projectRoot,e.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Ii(p);}catch(p){throw p.code==="ENOENT"?new v("NOT_FOUND",`skill "${e.name}" not found`):new v("IO_ERROR","failed to read skill")}let o=e.frontmatter===void 0?n.frontmatter:e.merge===true?{...n.frontmatter,...e.frontmatter}:e.frontmatter,i=i0.safeParse(o);if(!i.success)throw new v("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=e.body!==void 0?e.body:n.body,l=e.supportingFiles??{};Object.keys(l).forEach(uS);let c=[],m=[];if(e.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 ug(resolve(r,"SKILL.md"),Dc(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 ug(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(t,{name:e,dry_run:r}){Tp(e);let n=xp(t.projectRoot,e);try{await stat(n);}catch{throw new v("NOT_FOUND",`skill "${e}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var X8=z$1.object({}).strict(),Z8=z$1.object({name:z$1.string().describe("Item name")}),l0=[{name:"list_skills",description:"List skills",inputSchema:X8,handler:s(t=>Ua.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:Z8,handler:s((t,e)=>Ua.get(t,e),"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((t,e)=>Ua.getFile(t,e),"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((t,e)=>Ua.create(t,e),"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((t,e)=>Ua.update(t,e),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>Ua.delete(t,e),"handler")}];async function c0(t){if(t.filename!==void 0&&t.filename!=="agentsmesh.yaml")throw new v("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(t.content,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let e=resolve(t.projectRoot,"agentsmesh.yaml"),r=`${e}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,t.content,"utf8"),await rename(r,e),e}s(c0,"safeConfigWrite");So();Xc();async function Dp(t){try{return parse(await readFile(t,"utf8"))}catch(e){if(e.code==="ENOENT")return null;throw new v("IO_ERROR","failed to read yaml")}}s(Dp,"readYaml");async function vc(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new v("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s(vc,"atomicWrite");var rr={async getConfig(t){let e=await Dp(resolve(t.projectRoot,"agentsmesh.yaml"));if(e===null)throw new v("NO_PROJECT","agentsmesh.yaml missing");return e},async listMcpServers(t){let e=resolve(t.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await jr(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Dp(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Dp(resolve(t.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(t){try{return {patterns:(await readFile(resolve(t.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(t,e){let r=await Dp(resolve(t.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=e.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",e.targets),o("features",e.features),e.conversions!==void 0&&(n.conversions=e.merge===true&&r.conversions!==void 0?{...r.conversions,...e.conversions}:e.conversions);let i=Li.safeParse(n);if(!i.success)throw new v("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return e.dry_run===true?{path:resolve(t.projectRoot,"agentsmesh.yaml"),written:false}:{path:await c0({projectRoot:t.projectRoot,content:a,filename:e.filename}),written:true}},async addMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await jr(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[e.name]!==void 0)throw new v("ALREADY_EXISTS",`server "${e.name}" exists`);return n.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await vc(r,JSON.stringify(n,null,2)+`
|
|
597
|
-
`),{path:r,written:true})},async updateMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await
|
|
598
|
-
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await
|
|
599
|
-
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),n=await
|
|
640
|
+
${e}`}s(Gc,"serializeMd");var x9=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,T9={rules:"_root"};function Cg(t){if(!x9.test(t)||t.includes(".."))throw new M("INVALID_NAME",`invalid name: ${t}`)}s(Cg,"checkName");function kg(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(kg,"pathFor");function jc(t){let{feature:e,frontmatterSchema:r,toSummary:n}=t,o=s(l=>resolve(l,".agentsmesh",e),"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}=Ei(f);m.push(n(u,g));}return m},async get(l,{name:c}){Cg(c);let m=kg(l.projectRoot,e,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Ei(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new M("NOT_FOUND",`${e} "${c}" not found`):new M("IO_ERROR",`failed to read ${e}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){Cg(c);let f=r.safeParse(m);if(!f.success)throw new M("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=kg(l.projectRoot,e,c);if(await a(g))throw new M("ALREADY_EXISTS",`${e} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new M("LIMIT_EXCEEDED",`${e} dir at ${1e3} entries`);let S=Gc(m,p);return u===true?{path:g,written:false}:(await AI({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:S}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){Cg(c);let g=kg(l.projectRoot,e,c),h;try{let b=await readFile(g,"utf8");h=Ei(b);}catch(b){let N=b.code;throw N==="ENOENT"?new M("NOT_FOUND",`${e} "${c}" not found`):new M("IO_ERROR",`failed to read ${e}`,{errno:N})}let S=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,C=r.safeParse(S);if(!C.success)throw new M("VALIDATION_FAILED","invalid frontmatter",C.error.issues);let R=p!==void 0?p:h.body,k=Gc(S,R);return f===true?{path:g,written:false}:(await AI({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:k}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(Cg(c),T9[e]===c&&m!==true)throw new M("PROTECTED_FILE",`${e} "${c}" requires force: true`);let u=kg(l.projectRoot,e,c);if(!await a(u))throw new M("NOT_FOUND",`${e} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(jc,"createCanonicalHandlers");var D9=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(),A0=jc({feature:"rules",frontmatterSchema:D9,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var N9=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),b0=jc({feature:"commands",frontmatterSchema:N9,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var F9=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(),P0=jc({feature:"agents",frontmatterSchema:F9,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var v9=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),M9=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")}),$9=z$1.object({}).strict();function PI(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:$9,handler:s(n=>e.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:v9,handler:s((n,o)=>e.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${t}`,description:`Create a new ${t}`,inputSchema:M9,handler:s((n,o)=>e.create(n,o),"handler")},{name:`update_${t}`,description:`Update a ${t}. 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)=>e.update(n,o),"handler")},{name:`delete_${t}`,description:`Delete a ${t}. 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)=>e.delete(n,o),"handler")}]}s(PI,"canonicalTools");var x0=[...PI("rule",A0),...PI("command",b0),...PI("agent",P0)];async function D0(t){let e=resolve(t.projectRoot,".agentsmesh/skills",t.skillName),r=resolve(e,t.filePath);if(!r.startsWith(e+sep)&&r!==e)throw new M("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new M("NOT_FOUND",`skill file not found: ${t.filePath}`):new M("IO_ERROR","failed to read skill file")}}s(D0,"safeRead");var H9=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,z9=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,M0=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Gp(t){if(!H9.test(t))throw new M("INVALID_NAME",`invalid skill name: ${t}`)}s(Gp,"checkName");function DI(t){if(!z9.test(t)||t.includes("..")||t.includes("//"))throw new M("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(DI,"checkSupportPath");async function Og(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(t),{recursive:true});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s(Og,"atomicWrite");var $0=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),jp=s((t,e)=>resolve($0(t),e),"skillDir"),za={async list(t){let e;try{e=(await readdir($0(t.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of e)try{let o=await readFile(resolve(jp(t.projectRoot,n),"SKILL.md"),"utf8"),i=Ei(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(t,{name:e}){Gp(e);let r=jp(t.projectRoot,e);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Ei(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:e,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new M("NOT_FOUND",`skill "${e}" not found`):new M("IO_ERROR","failed to read skill")}},async getFile(t,{name:e,path:r}){return Gp(e),DI(r),{content:await D0({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Gp(e.name);let r=M0.safeParse(e.frontmatter);if(!r.success)throw new M("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=jp(t.projectRoot,e.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new M("ALREADY_EXISTS",`skill "${e.name}" exists`);let i=e.supportingFiles??{},a=Object.keys(i);if(a.forEach(DI),a.length+1>1e3)throw new M("LIMIT_EXCEEDED","supporting files exceed cap");if(e.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await Og(l,Gc(e.frontmatter,e.body));for(let[c,m]of Object.entries(i))await Og(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(t,e){Gp(e.name);let r=jp(t.projectRoot,e.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Ei(p);}catch(p){throw p.code==="ENOENT"?new M("NOT_FOUND",`skill "${e.name}" not found`):new M("IO_ERROR","failed to read skill")}let o=e.frontmatter===void 0?n.frontmatter:e.merge===true?{...n.frontmatter,...e.frontmatter}:e.frontmatter,i=M0.safeParse(o);if(!i.success)throw new M("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=e.body!==void 0?e.body:n.body,l=e.supportingFiles??{};Object.keys(l).forEach(DI);let c=[],m=[];if(e.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 Og(resolve(r,"SKILL.md"),Gc(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 Og(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(t,{name:e,dry_run:r}){Gp(e);let n=jp(t.projectRoot,e);try{await stat(n);}catch{throw new M("NOT_FOUND",`skill "${e}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var V9=z$1.object({}).strict(),J9=z$1.object({name:z$1.string().describe("Item name")}),G0=[{name:"list_skills",description:"List skills",inputSchema:V9,handler:s(t=>za.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:J9,handler:s((t,e)=>za.get(t,e),"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((t,e)=>za.getFile(t,e),"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((t,e)=>za.create(t,e),"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((t,e)=>za.update(t,e),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>za.delete(t,e),"handler")}];async function j0(t){if(t.filename!==void 0&&t.filename!=="agentsmesh.yaml")throw new M("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(t.content,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let e=resolve(t.projectRoot,"agentsmesh.yaml"),r=`${e}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,t.content,"utf8"),await rename(r,e),e}s(j0,"safeConfigWrite");Co();rm();async function Up(t){try{return parse(await readFile(t,"utf8"))}catch(e){if(e.code==="ENOENT")return null;throw new M("IO_ERROR","failed to read yaml")}}s(Up,"readYaml");async function Bc(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s(Bc,"atomicWrite");var nr={async getConfig(t){let e=await Up(resolve(t.projectRoot,"agentsmesh.yaml"));if(e===null)throw new M("NO_PROJECT","agentsmesh.yaml missing");return e},async listMcpServers(t){let e=resolve(t.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await Ur(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Up(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Up(resolve(t.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(t){try{return {patterns:(await readFile(resolve(t.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(t,e){let r=await Up(resolve(t.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=e.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",e.targets),o("features",e.features),e.conversions!==void 0&&(n.conversions=e.merge===true&&r.conversions!==void 0?{...r.conversions,...e.conversions}:e.conversions);let i=bi.safeParse(n);if(!i.success)throw new M("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return e.dry_run===true?{path:resolve(t.projectRoot,"agentsmesh.yaml"),written:false}:{path:await j0({projectRoot:t.projectRoot,content:a,filename:e.filename}),written:true}},async addMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await Ur(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[e.name]!==void 0)throw new M("ALREADY_EXISTS",`server "${e.name}" exists`);return n.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await Bc(r,JSON.stringify(n,null,2)+`
|
|
641
|
+
`),{path:r,written:true})},async updateMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await Ur(r).catch(()=>null);if(n===null||n.mcpServers[e.name]===void 0)throw new M("NOT_FOUND",`server "${e.name}" not found`);return n.mcpServers[e.name]=e.merge===true?{...n.mcpServers[e.name],...e.server}:e.server,e.dry_run===true?{path:r,written:false}:(await Bc(r,JSON.stringify(n,null,2)+`
|
|
642
|
+
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await Ur(r).catch(()=>null);if(n===null||n.mcpServers[e.name]===void 0)throw new M("NOT_FOUND",`server "${e.name}" not found`);return delete n.mcpServers[e.name],e.dry_run===true?{path:r,removed:false}:(await Bc(r,JSON.stringify(n,null,2)+`
|
|
643
|
+
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),n=await Up(r)??{allow:[],deny:[],ask:[]},o={...n},i=s((a,l)=>{l!==void 0&&(o[a]=e.mode==="append"?Array.from(new Set([...n[a]??[],...l])):l);},"apply");return i("allow",e.allow),i("deny",e.deny),i("ask",e.ask),e.dry_run===true?{path:r,written:false}:(await Bc(r,stringify(o)),{path:r,written:true})},async updateHooks(t,e){let r=resolve(t.projectRoot,".agentsmesh/hooks.yaml");return e.dry_run===true?{path:r,written:false}:(await Bc(r,stringify(e.hooks)),{path:r,written:true})},async updateIgnore(t,e){let r=resolve(t.projectRoot,".agentsmesh/ignore"),n;if(e.mode==="append"){let o=(await readFile(r,"utf8").catch(()=>"")).split(/\r?\n/).filter(Boolean);n=Array.from(new Set([...o,...e.patterns]));}else n=e.patterns;return e.dry_run===true?{path:r,written:false}:(await Bc(r,n.join(`
|
|
600
644
|
`)+`
|
|
601
|
-
`),{path:r,written:true})}};var d9=/[;&|`$<>!\\\r\n]/u,f9=/^[A-Za-z_][A-Za-z0-9_]*$/u,g9=/^[A-Za-z][A-Za-z0-9_-]*$/u,h9=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,u0=/[\r\n]/u,d0=/[\0\r\n]/u;function y9(t){return d0.test(t)?false:!t.split(/[/\\]/u).includes("..")}s(y9,"isSafeMcpCwd");function _9(t){return z$1.string().min(1).max(512).refine(e=>!d9.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(_9,"noShellMeta");var gS=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(t=>!d0.test(t),{message:"description must not contain NUL or newline characters"}).optional(),command:_9("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(f9,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(t=>/^https?:\/\//u.test(t),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(g9,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(y9,{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(),R9=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(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),f0=z$1.string().max(256).refine(t=>!u0.test(t),{message:"hook matcher must not contain newlines"}),I9=z$1.object({matcher:f0,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(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),S9=z$1.object({matcher:f0,hooks:z$1.array(R9).min(1).max(50)}).strict(),C9=z$1.union([I9,S9]),g0=z$1.record(z$1.string().min(1).max(64),z$1.array(C9).max(100)),k9=z$1.string().min(1).max(256).refine(t=>!u0.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>h9.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),fg=z$1.array(k9).max(500);var Np=z$1.object({}).strict(),E9=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Np,handler:s(t=>rr.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Np,handler:s(t=>rr.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Np,handler:s(t=>rr.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Np,handler:s(t=>rr.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Np,handler:s(t=>rr.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],L9=[{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((t,e)=>rr.updateConfig(t,e),"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:gS.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.addMcpServer(t,e),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:gS,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>rr.updateMcpServer(t,e),"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((t,e)=>rr.removeMcpServer(t,e),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:fg.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:fg.optional().describe("Denied tool patterns"),ask:fg.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((t,e)=>rr.updatePermissions(t,e),"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:g0.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.updateHooks(t,e),"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((t,e)=>rr.updateIgnore(t,e),"handler")}],h0=[...E9,...L9];aI();Sn();function O9(){return Object.fromEntries(vt.map(t=>[t,Object.fromEntries(Object.entries(p$).map(([e,r])=>[e,r[t]]))]))}s(O9,"buildTargetIndex");var y0=O9(),hS={async list(){return y0},async get(t){let e=y0[t.targetId];if(e===void 0)throw new v("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};Io();Io();zp();Zt();ho();Mr();ae();Sn();async function yS(t,e){let r=ot(t);if(!r)throw new In(t,{supported:[...vt,...lu().map(n=>n.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s(yS,"importFrom");async function Mc(t,e={}){let r=e.scope??"project",{config:n,context:o}=await yt(t,r);await Gt(n,t);let{canonical:i}=await Ee(n,o.configDir,{refreshRemoteCache:e.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Mc,"loadProjectContext");async function _S(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return Gf(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(_S,"lint");async function RS(t){let e=await vr(t);return {...Mf(e),results:e}}s(RS,"diff");async function IS(t){return jf(t)}s(IS,"check");Io();ho();bi();zp();Pt();ae();Ot();A();function Si(t){if(t instanceof v)throw t;if(t instanceof In)throw new v("VALIDATION_FAILED",t.message);let e=t instanceof Error?t.message:String(t);throw /unknown.*--from|unknown.*--to|unknown target/i.test(e)?new v("VALIDATION_FAILED",e):/lock/i.test(e)?new v("LOCK_HELD","generate lock is held"):new v("IO_ERROR","engine failure",{reason:e})}s(Si,"wrapEngineError");async function _0(t,e){if(e.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 yS(e.from,{root:t.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 In)throw new v("VALIDATION_FAILED",`unknown target "${e.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);Si(r);}}s(_0,"importFromTarget");async function R0(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},n=await ag(r,t.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:e.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);Si(r);}}s(R0,"convert");async function P9(t,e){try{let r=await Mc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,i=(await vr({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(!e.dry_run)for(let m of a){let p=_c(r.projectRoot,m.path,m.target);await S(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:!e.dry_run&&a.length>=0,errors:[],warnings:[]};return e.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){Si(r);}}s(P9,"generate");async function T9(t,e){try{let r=await Mc(t.projectRoot),n=await _S({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(e.severity?n.diagnostics.filter(i=>i.level===e.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){Si(r);}}s(T9,"lint");async function x9(t){try{let e=await Mc(t.projectRoot),r=await IS({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){Si(e);}}s(x9,"check");async function D9(t,e){try{let r=await Mc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,o=await RS({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){Si(r);}}s(D9,"diff");var Ba={generate:P9,lint:T9,check:x9,diff:D9,import:_0,convert:R0};var I0=z$1.object({}).strict(),S0=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:I0,handler:s(()=>hS.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((t,e)=>hS.get(e),"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((t,e)=>Ba.generate(t,e),"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((t,e)=>Ba.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:I0,handler:s(t=>Ba.check(t),"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((t,e)=>Ba.diff(t,e),"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((t,e)=>Ba.import(t,e),"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((t,e)=>Ba.convert(t,e),"handler")}];function SS(t){if(t instanceof v)throw t;let e=t instanceof Error?t.message:String(t),r=xc(e);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(SS,"wrapInstallError");function N9(t){let e={force:true};return t.path!==void 0&&(e.path=t.path),t.target!==void 0&&(e.target=t.target),t.as!==void 0&&(e.as=t.as),t.name!==void 0&&(e.name=t.name),t.extends===true&&(e.extends=true),t.all===true&&(e.all=true),t.sync===true&&(e.sync=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(N9,"toInstallFlags");function F9(t){let e={force:true};return t.all===true&&(e.all=true),t.keep_pack===true&&(e["keep-pack"]=true),t.keep_generated===true&&(e["keep-generated"]=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(F9,"toUninstallFlags");async function v9(t,e){if(typeof e.source!="string"||e.source.trim().length===0)throw new v("VALIDATION_FAILED","install: `source` is required");try{let r=await Ga(N9(e),[e.source],t.projectRoot);if(r.exitCode!==0)throw new v("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){SS(r);}}s(v9,"install");async function M9(t,e){if(e.all!==true&&(!Array.isArray(e.names)||e.names.length===0))throw new v("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await rg(F9(e),e.names??[],t.projectRoot)).data}catch(r){SS(r);}}s(M9,"uninstall");async function $9(t,e={}){try{let r={};return e.global===!0&&(r.global=!0),(await og(r,t.projectRoot)).data}catch(r){SS(r);}}s($9,"installsList");var gg={install:v9,uninstall:M9,installsList:$9};function G9(t){let e={force:true};return t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(G9,"toRefreshFlags");function j9(t){if(t instanceof v)throw t;let e=t instanceof Error?t.message:String(t),r=xc(e);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(j9,"wrapRefreshError");async function U9(t,e={}){try{let r=await ng(G9(e),[...e.names??[]],t.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=e.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){j9(r);}}s(U9,"refresh");var C0={refresh:U9};var B9=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.")}),K9=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.")}),W9=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),H9=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.")}),k0=[{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:B9,handler:s((t,e)=>gg.install(t,e),"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:K9,handler:s((t,e)=>gg.uninstall(t,e),"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:W9,handler:s((t,e)=>gg.installsList(t,e),"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:H9,handler:s((t,e)=>C0.refresh(t,e),"handler")}];function E0(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(E0,"zodToMcpSchema");var hg=[...t0,...l0,...h0,...S0,...k0],CS=hg.filter(t=>t.resourceUri!==void 0).map(t=>({uri:t.resourceUri,name:t.name,description:t.description,read:s((e,r)=>t.handler(e,r),"read")}));bi();async function Y9(t){let e=resolve(t);for(;;){try{return await stat(resolve(e,"agentsmesh.yaml")),e}catch{}let r=dirname(e);if(r===e)throw new v("NO_PROJECT","agentsmesh.yaml not found");e=r;}}s(Y9,"findProjectRoot");async function kS(t){let e=await Y9(t.cwd);return {projectRoot:e,loadCanonical:s(()=>Oe(e),"loadCanonical")}}s(kS,"resolveContext");async function s6(){let t=dirname(fileURLToPath(import.meta.url));for(let e of [resolve(t,"../../package.json"),resolve(t,"../package.json"),resolve(t,"../../../package.json")])try{let r=JSON.parse(await readFile(e,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(s6,"pkgVersion");function i6(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(i6,"matchTemplate");function a6(t,e){let r=[...t.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(e);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(a6,"extractTemplateParams");async function O0(){let t=new Server({name:"agentsmesh-mcp",version:await s6()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:hg.map(e=>({name:e.name,description:e.description,inputSchema:E0(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=hg.find(n=>n.name===e.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${e.params.name}`})}]};try{let n=r.inputSchema.safeParse(e.params.arguments??{});if(!n.success)throw new v("VALIDATION_FAILED","invalid input",n.error.issues);let o=await kS({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:xc(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:CS.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=CS.find(a=>a.uri===e.params.uri||i6(a.uri,e.params.uri));if(!r)throw new v("NOT_FOUND",`resource not found: ${e.params.uri}`);let n=await kS({cwd:process.cwd()}),o=a6(r.uri,e.params.uri),i=await r.read(n,o);return {contents:[{uri:e.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await t.connect(new StdioServerTransport);}s(O0,"startServer");st();async function w0(t,e){bS(),await O0();}s(w0,"runMcp");var A0={generate:s(async(t,e)=>{let r=await Rc(t,void 0,{printMatrix:t.json!==true});ie("generate",r,t,()=>Ic(r));},"generate"),init:s(async(t,e)=>{let r=await P$(process.cwd(),{yes:t.yes===true,global:t.global===true});ie("init",r,t,()=>T$(r));},"init"),import:s(async(t,e)=>{let r=await D$(t);ie("import",r,t,()=>K$(r));},"import"),diff:s(async(t,e)=>{let r=await F$(t);ie("diff",r,t,()=>W$(r));},"diff"),lint:s(async(t,e)=>{let r=await j$(t);ie("lint",r,t,()=>U$(r));},"lint"),check:s(async(t,e)=>{let r=await J$(t);ie("check",r,t,()=>B$(r));},"check"),merge:s(async(t,e)=>{let r=await Z$(t);ie("merge",r,t,()=>H$(r));},"merge"),matrix:s(async(t,e)=>{let r=await mp(t);ie("matrix",r,t,()=>up(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){za("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await V$(t),n=s(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",n),process.on("SIGTERM",n);},"watch"),install:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await nU(t,e,process.cwd());ie("install",r,t,()=>oU(r));},"install"),uninstall:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await _U(t,e,process.cwd());ie("uninstall",r,t,()=>RU(r));},"uninstall"),refresh:s(async(t,e)=>{let r=await AU(t,e,process.cwd());ie("refresh",r,t,()=>bU(r));},"refresh"),installs:s(async(t,e)=>{let r=await TU(t,e,process.cwd());ie("installs",r,t,()=>xU(r));},"installs"),plugin:s(async(t,e)=>{let r=await vU(t,e,process.cwd());ie("plugin",r,t,()=>MU(r));},"plugin"),target:s(async(t,e)=>{let r=await zU(t,e,process.cwd());ie("target",r,t,()=>VU(r));},"target"),convert:s(async(t,e)=>{let r=await ag(t);ie("convert",r,t,()=>JU(r));},"convert"),mcp:s(async(t,e)=>{await w0();},"mcp")};function m6(t){let e={},r=[],n="help";for(let o=0;o<t.length;o++){let i=t[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),l=t[o+1];l===void 0||l.startsWith("--")?e[a]=true:(e[a]=l,o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:e,args:r}}s(m6,"parseArgs");var p6=OS(A0);async function u6(t){let{command:e,flags:r,args:n}=t;if(e==="help"){Sg();return}if(e==="version"){TS();return}if(r.help===true){$p(e);return}r.json===true&&AS(),await p6.route(e,r,n);}s(u6,"main");function d6(){let t=process.argv[1];if(!t)return false;let e=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),t);return r===e||realpathSync(r)===realpathSync(e)}catch{return t.endsWith("cli.js")||t.includes("agentsmesh")}}s(d6,"isMainModule");if(d6()){let t=m6(process.argv.slice(2));u6(t).catch(e=>xS(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
602
|
-
export{
|
|
645
|
+
`),{path:r,written:true})}};var m6=/[;&|`$<>!\\\r\n]/u,p6=/^[A-Za-z_][A-Za-z0-9_]*$/u,u6=/^[A-Za-z][A-Za-z0-9_-]*$/u,d6=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,K0=/[\r\n]/u,W0=/[\0\r\n]/u;function f6(t){return W0.test(t)?false:!t.split(/[/\\]/u).includes("..")}s(f6,"isSafeMcpCwd");function g6(t){return z$1.string().min(1).max(512).refine(e=>!m6.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(g6,"noShellMeta");var vI=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(t=>!W0.test(t),{message:"description must not contain NUL or newline characters"}).optional(),command:g6("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(p6,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(t=>/^https?:\/\//u.test(t),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(u6,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(f6,{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(),h6=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(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),H0=z$1.string().max(256).refine(t=>!K0.test(t),{message:"hook matcher must not contain newlines"}),y6=z$1.object({matcher:H0,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(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),_6=z$1.object({matcher:H0,hooks:z$1.array(h6).min(1).max(50)}).strict(),R6=z$1.union([y6,_6]),z0=z$1.record(z$1.string().min(1).max(64),z$1.array(R6).max(100)),S6=z$1.string().min(1).max(256).refine(t=>!K0.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>d6.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),Ag=z$1.array(S6).max(500);var Bp=z$1.object({}).strict(),I6=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Bp,handler:s(t=>nr.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Bp,handler:s(t=>nr.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Bp,handler:s(t=>nr.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Bp,handler:s(t=>nr.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Bp,handler:s(t=>nr.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],C6=[{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((t,e)=>nr.updateConfig(t,e),"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:vI.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>nr.addMcpServer(t,e),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:vI,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>nr.updateMcpServer(t,e),"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((t,e)=>nr.removeMcpServer(t,e),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:Ag.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:Ag.optional().describe("Denied tool patterns"),ask:Ag.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((t,e)=>nr.updatePermissions(t,e),"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:z0.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>nr.updateHooks(t,e),"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((t,e)=>nr.updateIgnore(t,e),"handler")}],V0=[...I6,...C6];ES();kn();function k6(){return Object.fromEntries($t.map(t=>[t,Object.fromEntries(Object.entries(D$).map(([e,r])=>[e,r[t]]))]))}s(k6,"buildTargetIndex");var J0=k6(),MI={async list(){return J0},async get(t){let e=J0[t.targetId];if(e===void 0)throw new M("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};Io();Io();ru();Zt();yo();$r();ce();kn();async function $I(t,e){let r=nt(t);if(!r)throw new Cn(t,{supported:[...$t,..._u().map(n=>n.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s($I,"importFrom");async function Kc(t,e={}){let r=e.scope??"project",{config:n,context:o}=await yt(t,r);await Ut(n,t);let{canonical:i}=await Oe(n,o.configDir,{refreshRemoteCache:e.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Kc,"loadProjectContext");async function GI(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return qf(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(GI,"lint");async function jI(t){let e=await Mr(t);return {...Xf(e),results:e}}s(jI,"diff");async function UI(t){return tg(t)}s(UI,"check");Io();yo();Di();ru();xt();ce();Ot();z$1.object({version:z$1.literal(1),assignments:z$1.record(z$1.string(),z$1.string())});A();function Li(t){if(t instanceof M)throw t;if(t instanceof Cn)throw new M("VALIDATION_FAILED",t.message);let e=t instanceof Error?t.message:String(t);throw /unknown.*--from|unknown.*--to|unknown target/i.test(e)?new M("VALIDATION_FAILED",e):/lock/i.test(e)?new M("LOCK_HELD","generate lock is held"):new M("IO_ERROR","engine failure",{reason:e})}s(Li,"wrapEngineError");async function Z0(t,e){if(e.dry_run===true)throw new M("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 $I(e.from,{root:t.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 Cn)throw new M("VALIDATION_FAILED",`unknown target "${e.from}"`);let n=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(n))throw new M("VALIDATION_FAILED",n);Li(r);}}s(Z0,"importFromTarget");async function Q0(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},n=await Ig(r,t.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:e.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 M("VALIDATION_FAILED",n);Li(r);}}s(Q0,"convert");async function M6(t,e){try{let r=await Kc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,i=(await Mr({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(!e.dry_run)for(let m of a){let p=kc(r.projectRoot,m.path,m.target);await I(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:!e.dry_run&&a.length>=0,errors:[],warnings:[]};return e.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){Li(r);}}s(M6,"generate");async function $6(t,e){try{let r=await Kc(t.projectRoot),n=await GI({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(e.severity?n.diagnostics.filter(i=>i.level===e.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){Li(r);}}s($6,"lint");async function G6(t){try{let e=await Kc(t.projectRoot),r=await UI({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){Li(e);}}s(G6,"check");async function j6(t,e){try{let r=await Kc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,o=await jI({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){Li(r);}}s(j6,"diff");var Va={generate:M6,lint:$6,check:G6,diff:j6,import:Z0,convert:Q0};var q0=z$1.object({}).strict(),tB=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:q0,handler:s(()=>MI.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((t,e)=>MI.get(e),"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((t,e)=>Va.generate(t,e),"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((t,e)=>Va.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:q0,handler:s(t=>Va.check(t),"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((t,e)=>Va.diff(t,e),"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((t,e)=>Va.import(t,e),"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((t,e)=>Va.convert(t,e),"handler")}];function BI(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=$c(e);throw /lock|LockAcquisitionError/i.test(r)?new M("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 M("VALIDATION_FAILED",r):new M("IO_ERROR","install pipeline failure",{reason:r})}s(BI,"wrapInstallError");function U6(t){let e={force:true};return t.path!==void 0&&(e.path=t.path),t.target!==void 0&&(e.target=t.target),t.as!==void 0&&(e.as=t.as),t.name!==void 0&&(e.name=t.name),t.extends===true&&(e.extends=true),t.all===true&&(e.all=true),t.sync===true&&(e.sync=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(U6,"toInstallFlags");function B6(t){let e={force:true};return t.all===true&&(e.all=true),t.keep_pack===true&&(e["keep-pack"]=true),t.keep_generated===true&&(e["keep-generated"]=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(B6,"toUninstallFlags");async function K6(t,e){if(typeof e.source!="string"||e.source.trim().length===0)throw new M("VALIDATION_FAILED","install: `source` is required");try{let r=await Wa(U6(e),[e.source],t.projectRoot);if(r.exitCode!==0)throw new M("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){BI(r);}}s(K6,"install");async function W6(t,e){if(e.all!==true&&(!Array.isArray(e.names)||e.names.length===0))throw new M("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await hg(B6(e),e.names??[],t.projectRoot)).data}catch(r){BI(r);}}s(W6,"uninstall");async function H6(t,e={}){try{let r={};return e.global===!0&&(r.global=!0),(await _g(r,t.projectRoot)).data}catch(r){BI(r);}}s(H6,"installsList");var bg={install:K6,uninstall:W6,installsList:H6};function z6(t){let e={force:true};return t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(z6,"toRefreshFlags");function V6(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=$c(e);throw /lock|LockAcquisitionError/i.test(r)?new M("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new M("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new M("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new M("REFRESH_APPLY_FAILED",r):new M("IO_ERROR","refresh pipeline failure",{reason:r})}s(V6,"wrapRefreshError");async function J6(t,e={}){try{let r=await yg(z6(e),[...e.names??[]],t.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=e.names??[],i=n?.error??(o.length>0?`unknown pack(s): ${o.join(", ")}`:"refresh validation failed");throw new M("VALIDATION_FAILED",i)}return r.data}catch(r){V6(r);}}s(J6,"refresh");var eB={refresh:J6};var Y6=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.")}),X6=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.")}),Z6=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),Q6=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.")}),rB=[{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:Y6,handler:s((t,e)=>bg.install(t,e),"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:X6,handler:s((t,e)=>bg.uninstall(t,e),"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:Z6,handler:s((t,e)=>bg.installsList(t,e),"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:Q6,handler:s((t,e)=>eB.refresh(t,e),"handler")}];function nB(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(nB,"zodToMcpSchema");var Pg=[...x0,...G0,...V0,...tB,...rB],KI=Pg.filter(t=>t.resourceUri!==void 0).map(t=>({uri:t.resourceUri,name:t.name,description:t.description,read:s((e,r)=>t.handler(e,r),"read")}));Di();async function r4(t){let e=resolve(t);for(;;){try{return await stat(resolve(e,"agentsmesh.yaml")),e}catch{}let r=dirname(e);if(r===e)throw new M("NO_PROJECT","agentsmesh.yaml not found");e=r;}}s(r4,"findProjectRoot");async function WI(t){let e=await r4(t.cwd);return {projectRoot:e,loadCanonical:s(()=>we(e),"loadCanonical")}}s(WI,"resolveContext");async function u4(){let t=dirname(fileURLToPath(import.meta.url));for(let e of [resolve(t,"../../package.json"),resolve(t,"../package.json"),resolve(t,"../../../package.json")])try{let r=JSON.parse(await readFile(e,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(u4,"pkgVersion");function d4(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(d4,"matchTemplate");function f4(t,e){let r=[...t.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(e);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(f4,"extractTemplateParams");async function sB(){let t=new Server({name:"agentsmesh-mcp",version:await u4()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:Pg.map(e=>({name:e.name,description:e.description,inputSchema:nB(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=Pg.find(n=>n.name===e.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${e.params.name}`})}]};try{let n=r.inputSchema.safeParse(e.params.arguments??{});if(!n.success)throw new M("VALIDATION_FAILED","invalid input",n.error.issues);let o=await WI({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof M?n.toEnvelope():{code:"IO_ERROR",message:$c(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:KI.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=KI.find(a=>a.uri===e.params.uri||d4(a.uri,e.params.uri));if(!r)throw new M("NOT_FOUND",`resource not found: ${e.params.uri}`);let n=await WI({cwd:process.cwd()}),o=f4(r.uri,e.params.uri),i=await r.read(n,o);return {contents:[{uri:e.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await t.connect(new StdioServerTransport);}s(sB,"startServer");ot();async function iB(t,e){ZI(),await sB();}s(iB,"runMcp");var aB={generate:s(async(t,e)=>{let r=await Ec(t,void 0,{printMatrix:t.json!==true});le("generate",r,t,()=>Lc(r));},"generate"),init:s(async(t,e)=>{let r=await q$(process.cwd(),{yes:t.yes===true,global:t.global===true,lessons:t.lessons===true});le("init",r,t,()=>eG(r));},"init"),import:s(async(t,e)=>{let r=await sG(t);le("import",r,t,()=>RG(r));},"import"),diff:s(async(t,e)=>{let r=await aG(t);le("diff",r,t,()=>SG(r));},"diff"),lint:s(async(t,e)=>{let r=await hG(t);le("lint",r,t,()=>yG(r));},"lint"),check:s(async(t,e)=>{let r=await EG(t);le("check",r,t,()=>_G(r));},"check"),merge:s(async(t,e)=>{let r=await wG(t);le("merge",r,t,()=>IG(r));},"merge"),matrix:s(async(t,e)=>{let r=await hp(t);le("matrix",r,t,()=>_p(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){Za("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await kG(t),n=s(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",n),process.on("SIGTERM",n);},"watch"),install:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await NU(t,e,process.cwd());le("install",r,t,()=>FU(r));},"install"),uninstall:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await YU(t,e,process.cwd());le("uninstall",r,t,()=>XU(r));},"uninstall"),refresh:s(async(t,e)=>{let r=await s0(t,e,process.cwd());le("refresh",r,t,()=>i0(r));},"refresh"),installs:s(async(t,e)=>{let r=await l0(t,e,process.cwd());le("installs",r,t,()=>c0(r));},"installs"),plugin:s(async(t,e)=>{let r=await d0(t,e,process.cwd());le("plugin",r,t,()=>f0(r));},"plugin"),target:s(async(t,e)=>{let r=await k0(t,e,process.cwd());le("target",r,t,()=>E0(r));},"target"),convert:s(async(t,e)=>{let r=await Ig(t);le("convert",r,t,()=>L0(r));},"convert"),mcp:s(async(t,e)=>{await iB();},"mcp")};function y4(t){let e={},r=[],n="help";for(let o=0;o<t.length;o++){let i=t[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),l=t[o+1];l===void 0||l.startsWith("--")?e[a]=true:(e[a]=l,o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:e,args:r}}s(y4,"parseArgs");var _4=JI(aB);async function R4(t){let{command:e,flags:r,args:n}=t;if(e==="help"){vg();return}if(e==="version"){qI();return}if(r.help===true){Jp(e);return}r.json===true&&XI(),await _4.route(e,r,n);}s(R4,"main");function S4(){let t=process.argv[1];if(!t)return false;let e=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),t);return r===e||realpathSync(r)===realpathSync(e)}catch{return t.endsWith("cli.js")||t.includes("agentsmesh")}}s(S4,"isMainModule");if(S4()){let t=y4(process.argv.slice(2));R4(t).catch(e=>tC(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
646
|
+
export{y4 as parseArgs};
|