agentsmesh 0.19.1 → 0.21.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 +87 -0
- package/README.md +31 -1
- package/dist/canonical.js +66 -13
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +165 -160
- package/dist/engine.js +66 -13
- package/dist/engine.js.map +1 -1
- package/dist/index.js +66 -13
- package/dist/index.js.map +1 -1
- package/dist/targets.js +7 -2
- package/dist/targets.js.map +1 -1
- package/package.json +2 -2
- package/schemas/installs.json +7 -0
package/dist/cli.js
CHANGED
|
@@ -1,201 +1,203 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize,isAbsolute}from'path';import {rm,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp
|
|
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 lg(t){return O0.has(extname(t).toLowerCase())?493:void 0}var Ja,E0,L0,O0,bp=d(()=>{Ja="\uFEFF",E0=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),L0=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Ap,"shouldNormalizeLineEndings");s(wp,"normalizeLineEndings");O0=new Set([".sh",".bash",".zsh"]);s(lg,"executableModeFor");});function TS(t){if(t.length>N0)return true;let e=new Map;for(let r of t){let n=(e.get(r)??0)+1;if(n>=F0)return true;e.set(r,n);}return false}async function v(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 be(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(TS(u))continue;l.push(...await v(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 be(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Ya(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(TS(l))continue;o.push(...await Ya(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 be(t,`Failed to read directory ${t}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function cg(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 N0,F0,xS=d(()=>{_o();N0=32,F0=3;s(TS,"shouldSkipRecursiveBranch");s(v,"readDirRecursive");s(Ya,"readDirRecursiveNoSymlinks");s(cg,"ensureCacheSymlink");});async function _(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Ja)?e.slice(Ja.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new be(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 be(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 be||l.code!=="ENOENT")throw l}let o=`${t}.tmp`,i=Ap(t)?wp(e):e,a=r?.mode??lg(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(o,{force:true}).catch(()=>{});let c=l;throw new be(t,`Failed to write ${t}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function $(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function O(t){await mkdir(t,{recursive:true});}var w=d(()=>{_o();bp();xS();bp();s(_,"readFileSafe");s(I,"writeFileAtomic");s($,"exists");s(O,"mkdirp");});function Pe(t){return mg.includes(t)}var mg,vS=d(()=>{mg=["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(Pe,"isBuiltinTargetId");});var Ft,pg,Rn=d(()=>{vS();Ft=mg,pg="codex-cli";});var MS,Qe,Xa,W0,Mc,H0,z0,vc,V0,J0,ki,Ro=d(()=>{Rn();MS=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],Qe=z.enum(Ft),Xa=z.enum(MS),W0=z.enum(["rules","commands","agents","skills"]),Mc=z.object({skills:z.array(z.string()).optional(),commands:z.array(z.string()).optional(),rules:z.array(z.string()).optional(),agents:z.array(z.string()).optional()}).strict(),H0=z.object({name:z.string(),source:z.string(),version:z.string().optional(),target:Qe.optional(),as:W0.optional(),features:z.array(Xa),path:z.string().optional(),pick:Mc.optional()}),z0=z.object({strategy:z.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z.array(z.string()).default([])}),vc=z.union([z.boolean(),z.object({project:z.boolean().optional(),global:z.boolean().optional()}).strict()]),V0=z.object({commands_to_skills:z.object({"codex-cli":vc.optional()}).passthrough().optional(),agents_to_skills:z.object({"gemini-cli":vc.optional(),cline:vc.optional(),"codex-cli":vc.optional(),windsurf:vc.optional()}).passthrough().optional()}).strict().optional(),J0=z.object({id:z.string().regex(/^[a-z][a-z0-9-]*$/),source:z.string(),version:z.string().optional(),strict:z.boolean().optional()}).strict(),ki=z.object({version:z.literal(1),targets:z.array(Qe).default([...Ft]),features:z.array(Xa).default([...MS]),extends:z.array(H0).default([]),overrides:z.record(z.string(),z.record(z.string(),z.unknown())).default({}),collaboration:z0.default({strategy:"merge",lock_features:[]}),conversions:V0,plugins:z.array(J0).default([]),pluginTargets:z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function Z0(t){let e=resolve(t);for(;;){let r=join(e,dg);if(await $(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}async function Q0(t){let e=await _(t);if(e===null)throw new Nr(t);let r=parse(e),n=ki.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new za(t,o,{cause:n.error})}return n.data}function ug(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null||q0.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]=ug(i,o):r[n]=o;}return r}function tB(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=ug(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=ug(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}async function Tp(t){let e=join(t,dg),r=await Q0(e),n=join(t,X0),o=await _(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=tB(r,i),l=ki.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 xp(t){let e=await Z0(t);if(e===null)throw new Nr(join(t,dg));return Tp(dirname(e))}var dg,X0,q0,Dp=d(()=>{w();ot();_o();Ro();dg="agentsmesh.yaml",X0="agentsmesh.local.yaml";s(Z0,"findConfigPath");s(Q0,"loadConfig");q0=new Set(["__proto__","constructor","prototype"]);s(ug,"deepMergeObjects");s(tB,"mergeLocalConfig");s(Tp,"loadConfigFromExactDir");s(xp,"loadConfigFromDir");});function Ei(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 xp(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Ei(t,e);try{let{config:n}=await Tp(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Nr?new Nr(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 Yt=d(()=>{Dp();_o();s(Ei,"resolveScopeContext");s(yt,"loadScopedConfig");});function BS(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function Np(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,jS),u=`${m}.tmp`,f=join(u,jS);if(!r.refresh&&await US(p))return yg(p);try{return await rm(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await cB(lB(t),f),t.ref&&await mB(f,t.ref),await rm(m,{recursive:!0,force:!0}),await rename(u,m),yg(p)}catch(g){if(await rm(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await US(p))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${g instanceof Error?g.message:String(g)}`),yg(p);throw g}}async function yg(t){return {resolvedPath:t,version:await pB(t)}}async function US(t){return $(t)}function lB(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 cB(t,e){BS(t,"clone-url"),await _g(["clone",t,e]);}async function mB(t,e){BS(e,"ref"),await _g(["checkout",e],t);}async function pB(t){return _g(["rev-parse","HEAD"],t)}async function _g(t,e){let{stdout:r}=await aB("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var aB,jS,Rg=d(()=>{w();aB=promisify(execFile),jS="repo";s(BS,"ensureNotFlag");s(Np,"fetchGitRemoteExtend");s(yg,"readCachedRepo");s(US,"hasCachedRepo");s(lB,"resolveCloneUrl");s(cB,"cloneRepo");s(mB,"checkoutRef");s(pB,"getHeadSha");s(_g,"runGit");});function gB(){let t=process.env.AGENTSMESH_MAX_TARBALL_MB;if(t===void 0||t==="")return Gc*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 ${Gc} MiB.`),Gc*1024*1024):e<WS||e>HS?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${e} is outside [${WS}, ${HS}]; using default ${Gc} MiB.`),Gc*1024*1024):e*1024*1024}async function yB(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 JS(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 YS(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 JS(t.org,t.repo,a);}catch(S){if(!i)throw S;return RB(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),p=join(n,m);if(!l&&await $(p)){let S=await Ig(p);if(S)return {resolvedPath:join(p,S),version:c}}let u=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let S=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!S.ok)throw new Error(`HTTP ${S.status}: ${S.statusText}`);g=await yB(S,hB);}catch(S){if(r.allowOfflineFallback!==false&&await $(p)){let P=await Ig(p);if(P)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${S instanceof Error?S.message:String(S)}`),{resolvedPath:join(p,P),version:c}}throw S}await rm(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,g);try{await VS.extract({file:h,cwd:p,strict:!0,filter:s((S,k)=>!(_B(S)||k&&"type"in k&&(k.type==="Link"||k.type==="SymbolicLink")),"filter")});}finally{await rm(h,{force:true}).catch(()=>{});}let R=await Ig(p);if(!R)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,R),version:c}}async function Ig(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function zS(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}function _B(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function RB(t,e,r,n,o,i){let a=i?[zS(t.org,t.repo,i)]:[zS(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 Np(m,e,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Gc,WS,HS,hB,XS=d(()=>{w();Rg();Gc=500,WS=1,HS=4096;s(gB,"resolveMaxTarballBytes");hB=gB();s(yB,"readBoundedResponse");s(JS,"resolveLatestTag");s(YS,"fetchGithubRemoteExtend");s(Ig,"findExtractTopDir");s(zS,"buildGithubCloneUrl");s(_B,"isZipSlipPath");s(RB,"fetchGithubDefaultBranch");});function ZS(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 QS(t){let e=ZS(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 qS(t){let e=ZS(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 tC(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 Li(t){let e=QS(t);if(e)return {kind:"github",...e};let r=qS(t);if(r)return {kind:"gitlab",...r};let n=tC(t);return n?{kind:"git",...n}:null}function Sg(t){return Li(t)!==null}var jc=d(()=>{s(ZS,"splitSourceRef");s(QS,"parseGithubSource");s(qS,"parseGitlabSource");s(tC,"parseGitSource");s(Li,"parseRemoteSource");s(Sg,"isSupportedRemoteSource");});function kB(t){let e=Li(t);return e?e.kind==="github"?Za("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?Za("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):Za("git",e.url,e.ref??"HEAD"):null}async function nC(t,e){let r=kB(t);if(!r)return;let n=e??Te(),o=join(n,r);await rm(o,{recursive:true,force:true});}async function oC(t,e){let r=t??Te(),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(l,{recursive:!0,force:!0});}catch{}}));}var Cg=d(()=>{Uc();jc();s(kB,"cacheKeyFromSource");s(nC,"cleanInstallCache");s(oC,"sweepStaleCache");});function Za(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>aC){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,aC-18)}--${i}`;}return o}function Te(){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=Li(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??Te();return oC(o).catch(()=>{}),n.kind==="github"?YS(n,e,r,o,Za,!t.includes("@")):Np(n,e,r,o,Za)}var aC,Uc=d(()=>{Rg();XS();jc();Cg();aC=80;s(Za,"buildCacheKey");s(Te,"getCacheDir");s(Qa,"fetchRemoteExtend");});function wB(t){return t.startsWith("http://")||t.startsWith("https://")}async function qa(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>Sg(o.source))){let o=Te();await rm(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(wB(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(Sg(o.source)){let a=await Qa(o.source,o.name,{cacheDir:Te(),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 $(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 Fp=d(()=>{w();Uc();jc();s(wB,"isOtherRemoteSource");s(qa,"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 TB(t){if(t.indexOf("---")!==0)return t.trim();let e=t.indexOf("---",3);return e===-1?t.trim():t.slice(e+3).trim()}function Fr(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:TB(t)}}}function Io(t,e,r){let n=Fr(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,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 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 WZ from'chokidar';import*as mj from'readline';import {Server}from'@modelcontextprotocol/sdk/server/index.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import {ListToolsRequestSchema,CallToolRequestSchema,ListResourcesRequestSchema,ReadResourceRequestSchema}from'@modelcontextprotocol/sdk/types.js';import {toJSONSchema}from'zod/v4/core';var xS=Object.defineProperty;var s=(t,e)=>xS(t,"name",{value:e,configurable:true});var d=(t,e)=>()=>(t&&(e=t(t=0)),e);var Cg=(t,e)=>{for(var r in e)xS(t,r,{get:e[r],enumerable:true});};function FS(){Li=true;}function vS(){NS=true;}function za(t){NS?process.stderr.write(t):process.stdout.write(t);}function M0(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function Uc(t,e){return M0()?e:`${t}${e}${Va.reset}`}function $0(t,e){let r=[...t].length;return t+" ".repeat(Math.max(0,e-r))}var Va,Li,NS,y,ot=d(()=>{Va={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},Li=false,NS=false;s(FS,"muteLogger");s(vS,"redirectLoggerToStderr");s(za,"out");s(M0,"noColor");s(Uc,"c");s($0,"pad");y={info(t){Li||za(Uc(Va.cyan,t)+`
|
|
3
|
+
`);},warn(t){Li||process.stderr.write(Uc(Va.yellow,"\u26A0 ")+t+`
|
|
4
|
+
`);},error(t){Li||process.stderr.write(Uc(Va.red,"\u2717 ")+t+`
|
|
5
|
+
`);},success(t){Li||za(Uc(Va.green,"\u2713 ")+t+`
|
|
6
|
+
`);},debug(t){Li||process.env.AGENTSMESH_DEBUG==="1"&&za(Uc(Va.cyan,"[debug] ")+t+`
|
|
7
|
+
`);},table(t){if(Li||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("+")+"+";za(n+`
|
|
8
|
+
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>$0(l,r[c])).join(" | ")+" |";za(a+`
|
|
9
|
+
`);}za(n+`
|
|
10
|
+
`);}};});var Ro,$r,Ya,In,Xa,Ne,Io=d(()=>{Ro=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},$r=class extends Ro{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;}},Ya=class extends Ro{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;}},In=class extends Ro{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;}},Xa=class extends Ro{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;}},Ne=class extends Ro{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 Kp(t){let e=extname(t).toLowerCase();if(e.length>0)return H0.has(e);let r=basename(t).toLowerCase();return z0.has(r)}function Wp(t){return t.replace(/\r\n?/g,`
|
|
11
|
+
`)}function Og(t){return V0.has(extname(t).toLowerCase())?493:void 0}var Za,H0,z0,V0,Hp=d(()=>{Za="\uFEFF",H0=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),z0=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Kp,"shouldNormalizeLineEndings");s(Wp,"normalizeLineEndings");V0=new Set([".sh",".bash",".zsh"]);s(Og,"executableModeFor");});function HS(t){if(t.length>eB)return true;let e=new Map;for(let r of t){let n=(e.get(r)??0)+1;if(n>=rB)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 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(HS(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 Ne(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Es(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(HS(l))continue;o.push(...await Es(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 wg(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 eB,rB,Ag=d(()=>{Io();eB=32,rB=3;s(HS,"shouldSkipRecursiveBranch");s(G,"readDirRecursive");s(Es,"readDirRecursiveNoSymlinks");s(wg,"ensureCacheSymlink");});async function _(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Za)?e.slice(Za.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=Kp(t)?Wp(e):e,a=r?.mode??Og(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();Hp();Ag();Hp();s(_,"readFileSafe");s(S,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function Fe(t){return bg.includes(t)}var bg,YS=d(()=>{bg=["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 $t,Pg,Sn=d(()=>{YS();$t=bg,Pg="codex-cli";});var XS,nr,Qa,pB,Kc,uB,dB,Bc,fB,gB,wi,So=d(()=>{Sn();XS=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],nr=z$1.enum($t),Qa=z$1.enum(XS),pB=z$1.enum(["rules","commands","agents","skills"]),Kc=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(),uB=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:nr.optional(),as:pB.optional(),features:z$1.array(Qa),path:z$1.string().optional(),pick:Kc.optional()}),dB=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Bc=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),fB=z$1.object({commands_to_skills:z$1.object({"codex-cli":Bc.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Bc.optional(),cline:Bc.optional(),"codex-cli":Bc.optional(),windsurf:Bc.optional()}).passthrough().optional()}).strict().optional(),gB=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(),wi=z$1.object({version:z$1.literal(1),targets:z$1.array(nr).default([...$t]),features:z$1.array(Qa).default([...XS]),extends:z$1.array(uB).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:dB.default({strategy:"merge",lock_features:[]}),conversions:fB,plugins:z$1.array(gB).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function _B(t){let e=resolve(t);for(;;){let r=join(e,xg);if(await j(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}async function RB(t){let e=await _(t);if(e===null)throw new $r(t);let r=parse(e),n=wi.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Ya(t,o,{cause:n.error})}return n.data}function Tg(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null||IB.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]=Tg(i,o):r[n]=o;}return r}function SB(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=Tg(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=Tg(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}async function Vp(t){let e=join(t,xg),r=await RB(e),n=join(t,yB),o=await _(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=SB(r,i),l=wi.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 Jp(t){let e=await _B(t);if(e===null)throw new $r(join(t,xg));return Vp(dirname(e))}var xg,yB,IB,Yp=d(()=>{A();ot();Io();So();xg="agentsmesh.yaml",yB="agentsmesh.local.yaml";s(_B,"findConfigPath");s(RB,"loadConfig");IB=new Set(["__proto__","constructor","prototype"]);s(Tg,"deepMergeObjects");s(SB,"mergeLocalConfig");s(Vp,"loadConfigFromExactDir");s(Jp,"loadConfigFromDir");});function Ai(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 Jp(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Ai(t,e);try{let{config:n}=await Vp(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(()=>{Yp();Io();s(Ai,"resolveScopeContext");s(yt,"loadScopedConfig");});function qa(t){return t.replace(kB,(e,r,n,o)=>`${r}***@${o}`)}var kB,Ng=d(()=>{kB=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(qa,"redactUrlSecrets");});function eC(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function Xp(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,qS),u=`${m}.tmp`,f=join(u,qS);if(!r.refresh&&await tC(p))return Mg(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await TB(PB(t),f),t.ref&&await xB(f,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(u,m),Mg(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await tC(p)){let R=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${qa(R)}`),Mg(p)}throw g instanceof Error?Object.assign(new Error(qa(g.message)),{cause:g.cause}):g}}async function Mg(t){return {resolvedPath:t,version:await DB(t)}}async function tC(t){return j(t)}function PB(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 TB(t,e){eC(t,"clone-url"),await $g(["clone",t,e]);}async function xB(t,e){eC(e,"ref"),await $g(["checkout",e],t);}async function DB(t){return $g(["rev-parse","HEAD"],t)}async function $g(t,e){let{stdout:r}=await bB("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var bB,qS,Gg=d(()=>{A();Ng();bB=promisify(execFile),qS="repo";s(eC,"ensureNotFlag");s(Xp,"fetchGitRemoteExtend");s(Mg,"readCachedRepo");s(tC,"hasCachedRepo");s(PB,"resolveCloneUrl");s(TB,"cloneRepo");s(xB,"checkoutRef");s(DB,"getHeadSha");s($g,"runGit");});function MB(){let t=process.env.AGENTSMESH_MAX_TARBALL_MB;if(t===void 0||t==="")return Hc*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 ${Hc} MiB.`),Hc*1024*1024):e<nC||e>oC?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${e} is outside [${nC}, ${oC}]; using default ${Hc} MiB.`),Hc*1024*1024):e*1024*1024}async function GB(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 aC(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 lC(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 aC(t.org,t.repo,a);}catch(I){if(!i)throw I;return UB(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 I=await jg(p);if(I)return {resolvedPath:join(p,I),version:c}}let u=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let I=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!I.ok)throw new Error(`HTTP ${I.status}: ${I.statusText}`);g=await GB(I,$B);}catch(I){if(r.allowOfflineFallback!==false&&await j(p)){let b=await jg(p);if(b){let N=I instanceof Error?I.message:String(I);return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${qa(N)}`),{resolvedPath:join(p,b),version:c}}}throw I instanceof Error?Object.assign(new Error(qa(I.message)),{cause:I.cause}):I}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((I,C)=>{if(jB(I))return !1;let b=C&&"type"in C?C.type:void 0;return b==="File"||b==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let R=await jg(p);if(!R)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,R),version:c}}async function jg(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 jB(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function UB(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 Xp(m,e,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Hc,nC,oC,$B,cC=d(()=>{A();Ng();Gg();Hc=500,nC=1,oC=4096;s(MB,"resolveMaxTarballBytes");$B=MB();s(GB,"readBoundedResponse");s(aC,"resolveLatestTag");s(lC,"fetchGithubRemoteExtend");s(jg,"findExtractTopDir");s(sC,"buildGithubCloneUrl");s(jB,"isZipSlipPath");s(UB,"fetchGithubDefaultBranch");});function mC(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 pC(t){let e=mC(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 uC(t){let e=mC(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 dC(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 bi(t){let e=pC(t);if(e)return {kind:"github",...e};let r=uC(t);if(r)return {kind:"gitlab",...r};let n=dC(t);return n?{kind:"git",...n}:null}function Ug(t){return bi(t)!==null}var zc=d(()=>{s(mC,"splitSourceRef");s(pC,"parseGithubSource");s(uC,"parseGitlabSource");s(dC,"parseGitSource");s(bi,"parseRemoteSource");s(Ug,"isSupportedRemoteSource");});function HB(t){let e=bi(t);return e?e.kind==="github"?tl("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?tl("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):tl("git",e.url,e.ref??"HEAD"):null}async function hC(t,e){let r=HB(t);if(!r)return;let n=e??ve(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function yC(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 Bg=d(()=>{Vc();zc();s(HB,"cacheKeyFromSource");s(hC,"cleanInstallCache");s(yC,"sweepStaleCache");});function tl(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>IC){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,IC-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 el(t,e,r={}){let n=bi(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 yC(o).catch(()=>{}),n.kind==="github"?lC(n,e,r,o,tl,!t.includes("@")):Xp(n,e,r,o,tl)}var IC,Vc=d(()=>{Gg();cC();zc();Bg();IC=80;s(tl,"buildCacheKey");s(ve,"getCacheDir");s(el,"fetchRemoteExtend");});function XB(t){return t.startsWith("http://")||t.startsWith("https://")}async function rl(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>Ug(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(XB(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(Ug(o.source)){let a=await el(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 Zp=d(()=>{A();Vc();zc();s(XB,"isOtherRemoteSource");s(rl,"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 qB(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: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:qB(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 x(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(qB,"extractBody");s(Gr,"tryParseFrontmatter");s(Co,"parseOrSkipFrontmatter");s(x,"serializeFrontmatter");});function rK(t){let e=t.replace(/\.[^.]*$/,"").toUpperCase();return tK.has(e)}function SC(t){let e=[],r=t.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(eK.test(n)){e.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){e.push({segment:n,reason:"trailing-dot-or-space"});continue}rK(n)&&e.push({segment:n,reason:"reserved-name"});}return e}var tK,eK,CC=d(()=>{tK=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),eK=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(rK,"segmentReservedName");s(SC,"findWindowsPathIssues");});function ko(t,e){let r=SC(e);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new Qp(t,e,`canonical ${t} name "${e}" is not portable to Windows: ${n}. Rename the file.`)}function qp(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 Qp(t,m,`canonical ${t} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var Qp,Jc=d(()=>{CC();Qp=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(e,r,n){super(n),this.feature=e,this.name=r;}};s(ko,"assertCanonicalName");s(qp,"assertNoBasenameCollisions");});function nl(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();sK.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 sK,tu=d(()=>{ot();sK=new Set([".toml",".yaml",".yml",".json"]);s(nl,"warnIfUnrecognizedResourceFormats");});function EC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}async function Ls(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("_")});nl("rules",t,r,n,{handledByOtherReader:e.handledByOtherReader});let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Co(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");ko("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&iK.includes(g)?g:void 0,R=c.codex_emit,k=R==="execution"?"execution":R==="advisory"?"advisory":void 0,C=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:EC(c.targets),description:typeof c.description=="string"?c.description:"",globs:EC(c.globs),body:m,...h!==void 0&&{trigger:h},...k!==void 0&&{codexEmit:k},...C!==void 0&&{codexInstructionVariant:C}});}return o}var iK,Yc=d(()=>{A();U();Jc();tu();iK=["always_on","model_decision","glob","manual"];s(EC,"toStrArray");s(Ls,"parseRules");});function OC(t){return t===true||t==="true"||t===1||t==="1"}function wC(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 Os(t,e={}){let r=await G(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));nl("commands",t,r,n,{handledByOtherReader:e.handledByOtherReader}),qp("command",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Co(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");ko("command",p);let u=wC(c.allowedTools),f=wC(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:OC(c.outputStyle)||OC(c["output-style"]),body:m});}return o}var Xc=d(()=>{A();U();Jc();tu();s(OC,"toBool");s(wC,"toToolsArray");s(Os,"parseCommands");});function Pi(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 bC(t){return t===true||t==="true"||t===1||t==="1"}function PC(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 aK(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}async function ws(t,e={}){let r=await G(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));nl("agents",t,r,n,{handledByOtherReader:e.handledByOtherReader}),qp("agent",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Co(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");ko("agent",p);let u=Pi(c.tools),f=Pi(c.tools),g=u.length>0?u:f,h=Pi(c.disallowedTools),R=Pi(c["disallowed-tools"]),k=h.length>0?h:R,I=Pi(c.mcpServers),C=Pi(c["mcp-servers"]),b=I.length>0?I:C,N=Pi(c.skills),T=PC(c.maxTurns),B=PC(c["max-turns"]),H=T>0?T:B>0?B:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:k,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:aK(c.hooks),skills:N,memory:typeof c.memory=="string"?c.memory:"",outputStyle:bC(c.outputStyle)||bC(c["output-style"]),body:m});}return o}var Zc=d(()=>{A();U();Jc();tu();s(Pi,"toStrArray");s(bC,"toBool");s(PC,"toInt");s(aK,"toHooks");s(ws,"parseAgents");});function Kg(t){let e=t.toLowerCase(),r=e.lastIndexOf("."),n=r>0?e.slice(0,r):e;return lK.get(n)}function Cn(t){return Kg(t)!==void 0}function eu(t){return Kg(t)==="preserved"}function ru(t){return Kg(t)==="noise"}function TC(t){return cK.has(t)}function xC(t){return mK.has(t)}var lK,cK,mK,Eo=d(()=>{lK=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"]]),cK=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),mK=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(Kg,"boilerplateKind");s(Cn,"isBoilerplate");s(eu,"isPreservedBoilerplate");s(ru,"isNoiseBoilerplate");s(TC,"isRepoNonContentDir");s(xC,"isRepoNonContentFile");});async function dK(t){return await _(t)??""}function gK(t){let e=t.lastIndexOf(".");return e<0?true:fK.has(t.slice(e).toLowerCase())}function yK(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function DC(t){let e=await Es(t),r=[];for(let n of e){let i=n.slice(t.length+1).replace(/\\/g,"/");if(i===nu||i.endsWith(`/${nu}`))continue;let a=i.split("/")[0];if(hK.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(gK(l)&&ru(l))continue;let c=await dK(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function ou(t,e={}){let r=join(t,nu),n=await _(r);if(!n)return null;let o=Co(n,r,e.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await DC(t),m=(typeof i.name=="string"?yK(i.name):"")||basename(t);return ko("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function As(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;ko("skill",o.name);let i=join(t,o.name),a=join(i,nu),l=await _(a);if(!l)continue;let c=Co(l,a,e.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await DC(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 nu,fK,hK,ol=d(()=>{A();Ag();U();Eo();Jc();s(dK,"readContent");nu="SKILL.md",fK=new Set([".md",".mdx",".rst",".txt"]);s(gK,"isMarkdownLikeDoc");hK=[".git","node_modules"];s(yK,"sanitizeSkillName");s(DC,"listSupportingFiles");s(ou,"parseSkillDirectory");s(As,"parseSkills");});function NC(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}function _K(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=NC(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:NC(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 RK(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 jr(t){let e=await _(t);if(!e)return null;let r;try{r=JSON.parse(RK(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=_K(a);l&&(o[i]=l);}return {mcpServers:o}}var Qc=d(()=>{A();s(NC,"parseStringMap");s(_K,"parseServer");s(RK,"stripJsonComments");s(jr,"parseMcp");});function Hg(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}async function su(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=Hg(n.allow),i=Hg(n.deny),a=Hg(n.ask);return {allow:o,deny:i,ask:a}}var zg=d(()=>{A();s(Hg,"ensureStringArray");s(su,"parsePermissions");});function FC(t){return typeof t=="string"?t.trim():""}function Jt(t){return FC(t.command)}function Re(t){return FC(t.prompt)}function Vg(t){let e=Jt(t),r=Re(t);return t.type==="prompt"?r||e:e||r}function Lo(t){return Jt(t).length>0}function kn(t){return Vg(t).length>0}var Ur=d(()=>{s(FC,"trimString");s(Jt,"getHookCommand");s(Re,"getHookPrompt");s(Vg,"getHookText");s(Lo,"hasHookCommand");s(kn,"hasHookText");});function kK(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=Vg(e);if(!n)return null;let o=typeof e.type=="string"&&CK.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 iu(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=kK(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var CK,Jg=d(()=>{A();Ur();CK=["command","prompt"];s(kK,"toHookEntry");s(iu,"parseHooks");});async function au(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 Yg=d(()=>{A();s(au,"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([Ls(join(n,"rules"),e),Os(join(n,"commands"),e),ws(join(n,"agents"),e),As(join(n,"skills"),e),jr(join(n,"mcp.json")),su(join(n,"permissions.yaml")),iu(join(n,"hooks.yaml")),au(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Ti=d(()=>{Yc();Xc();Zc();ol();Qc();zg();Jg();Yg();A();s(we,"loadCanonicalFiles");});function vC(t){return basename(t.source,".md")}function sl(t,e){let r=new Map(t.rules.map(p=>[vC(p),p]));for(let p of e.rules)r.set(vC(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=LK(t.mcp,e.mcp),l=OK(t.permissions,e.permissions),c=wK(t.hooks,e.hooks),m=AK(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 LK(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}function OK(t,e){if(!t&&!e)return null;let r=Xg(t?.allow??[],e?.allow??[]),n=Xg(t?.deny??[],e?.deny??[]),o=Xg(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}function Xg(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 wK(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 AK(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 Zg=d(()=>{s(vC,"ruleSlug");s(sl,"mergeCanonicalFiles");s(LK,"mergeMcp");s(OK,"mergePermissions");s(Xg,"mergeUniqueStrings");s(wK,"mergeHooks");s(AK,"mergeIgnore");});function FK(t){return typeof t=="string"?t:t.level}function MC(t){return NK.includes(t)}function $C(t,e,r,n){for(let o of DK){let i=FK(e[o.feature]);if(i==="none")continue;let a=typeof t.generators[o.generator]=="function",l=MC(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}`+(MC(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function lu(t){return GK.parse(t)}var wo,GC,bK,PK,jC,TK,xK,DK,NK,vK,MK,$K,GK,Qg=d(()=>{wo=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()})]),GC=z$1.object({rules:wo,additionalRules:wo,commands:wo,agents:wo,skills:wo,mcp:wo,hooks:wo,ignore:wo,permissions:wo}),bK=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(),PK=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),jC=z$1.object({paths:PK}).passthrough(),TK=z$1.object({capabilities:GC,detectionPaths:z$1.array(z$1.string()),layout:jC,scopeExtras:z$1.function().optional()}).passthrough(),xK=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],DK=[{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"}],NK=["mcp","hooks","ignore","permissions"];s(FK,"capabilityLevel");s(MC,"canUseScopedSettings");s($C,"validateCapabilityImplementations");vK=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),MK=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(),$K=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:MK,generators:bK,capabilities:GC,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:jC,globalSupport:TK.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:vK.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),GK=$K.superRefine((t,e)=>{for(let r of xK)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});$C(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&$C(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});s(lu,"validateDescriptor");});function UC(){if(qg)return qg;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&&(qg=e),e}function mu(t){let e=lu(t);cu.set(e.id,e);}function nt(t){return cu.get(t)??UC().get(t)}function pu(){return [...cu.values()]}function BC(){return [...new Set([...UC().keys(),...cu.keys()])]}var cu,qg,ce=d(()=>{Tt();Qg();cu=new Map;s(UC,"builtinDescriptors");s(mu,"registerTargetDescriptor");s(nt,"getDescriptor");s(pu,"getAllDescriptors");s(BC,"getAllRegisteredDescriptorIds");});function KC(t,e){return nt(t)?.conversionDefaults?.[e]}function WC(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function il(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],i=WC(o,n);if(i!==void 0)return i;let a=KC(e,"commandsToSkills");return a!==void 0?a:r??false}function or(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],i=WC(o,n);if(i!==void 0)return i;let a=KC(e,"agentsToSkills");return a!==void 0?a:r??false}var al=d(()=>{ce();s(KC,"builtinDefault");s(WC,"resolveConversionValue");s(il,"shouldConvertCommandsToSkills");s(or,"shouldConvertAgentsToSkills");});function Kr(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function Br(t){return typeof t=="string"?{level:t}:t}function HC(t){return {rules:Br(t.rules),additionalRules:Br(t.additionalRules),commands:Br(t.commands),agents:Br(t.agents),skills:Br(t.skills),mcp:Br(t.mcp),hooks:Br(t.hooks),ignore:Br(t.ignore),permissions:Br(t.permissions)}}var xi=d(()=>{s(Kr,"cap");s(Br,"normalizeCapabilityValue");s(HC,"normalizeTargetCapabilities");});function zC(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 jK(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 VC(t){let e=jK(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 th=d(()=>{Tt();s(zC,"ownerTargetIdForSharedPath");s(jK,"findSharedArtifactOwnershipConflicts");s(VC,"assertSharedArtifactOwnersUnique");});function UK(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 `${ll}${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"],x(e,t.body.trim()||"")}function uu(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(ll)?e.slice(ll.length):e.startsWith(qc)?e.slice(qc.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:UK(t["x-agentsmesh-allowed-tools"])}:null}function du(t,e){return x({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}var ll,qc,Lt=d(()=>{U();ll="am-command-",qc="ab-command-";s(UK,"toStringArray");s(V,"commandSkillDirName");s(Mt,"serializeCommandSkill");s(uu,"parseCommandSkillFrontmatter");s(du,"serializeImportedCommand");});function fu(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 BK(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 `${cl}${t}`}function xt(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];}),x(e,t.body.trim()||"")}function ml(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(cl)?e.slice(cl.length):e.startsWith(tm)?e.slice(tm.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:fu(t["x-agentsmesh-tools"]),disallowedTools:fu(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:fu(t["x-agentsmesh-mcp-servers"]),hooks:BK(t["x-agentsmesh-hooks"]),skills:fu(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}function bs(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];}),x(r,e.trim()||"")}var cl,tm,ut=d(()=>{U();cl="am-agent-",tm="ab-agent-";s(fu,"toStringArray");s(BK,"toHooks");s(K,"projectedAgentSkillDirName");s(xt,"serializeProjectedAgentSkill");s(ml,"parseProjectedAgentSkillFrontmatter");s(bs,"serializeImportedAgent");});function em(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function eh(t,e){return new RegExp(`${em(t)}[\\s\\S]*?${em(e)}`,"g")}function QC(t,e,r,n){let o=eh(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 rh(t,e,r){return t.replace(eh(e,r),"").trim()}function HK(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 zK(t){return {source:HK(t.source),description:t.description,globs:t.globs,targets:t.targets}}function VK(t){return `${XC}${JSON.stringify(zK(t))}${ZC}`}function JK(t){let e=[VK(t)];return t.description.trim()&&e.push(`## ${t.description.trim()}`,""),e.push(t.body.trim(),YC),e.filter(r=>r.length>0).join(`
|
|
22
|
+
`)}function YK(t){return t.length===0?"":[gu,...t.map(JK),hu].join(`
|
|
23
|
+
`)}function mt(t,e){let r=YK(e),n=rh(t,gu,hu);return r?n?`${n}
|
|
24
24
|
|
|
25
|
-
${r}`:r:n}function
|
|
25
|
+
${r}`:r:n}function JC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function XK(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:JC(r.globs),targets:JC(r.targets)}}catch{return null}}function ZK(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 qC(t){let e=[],r=eh(gu,hu);return {rootContent:t.replace(r,o=>{let i=o.replace(gu,"").replace(hu,"").trim(),a=new RegExp(`${em(XC)}([\\s\\S]*?)${em(ZC)}([\\s\\S]*?)${em(YC)}`,"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=XK(c);p&&e.push({...p,body:ZK(m,p.description)});}return ""}).trim(),rules:e}}var rm,nm,gu,hu,YC,XC,ZC,Wt=d(()=>{rm="<!-- agentsmesh:root-generation-contract:start -->",nm="<!-- agentsmesh:root-generation-contract:end -->",gu="<!-- agentsmesh:embedded-rules:start -->",hu="<!-- agentsmesh:embedded-rules:end -->",YC="<!-- agentsmesh:embedded-rule:end -->",XC="<!-- agentsmesh:embedded-rule:start ",ZC=" -->";s(em,"escapeRegExp");s(eh,"managedBlockPattern");s(QC,"replaceManagedBlock");s(rh,"stripManagedBlock");s(HK,"ruleSource");s(zK,"markerForRule");s(VK,"embeddedRuleStart");s(JK,"renderRule");s(YK,"renderEmbeddedRulesBlock");s(mt,"appendEmbeddedRulesBlock");s(JC,"toStringArray");s(XK,"parseMarker");s(ZK,"stripGeneratedHeading");s(qC,"extractEmbeddedRules");});function nh(t){return t.replace(/\s+/g," ").trim()}function ek(t){let e=t.trim();if(e.includes(rm)&&e.includes(nm))return QC(e,rm,nm,pl);let r=nh(e);if(r.includes(nh(pl)))return e;for(let n of tk)if(r.includes(nh(n)))return e.replace(n,pl);return e?`${e}
|
|
26
26
|
|
|
27
|
-
${
|
|
27
|
+
${pl}`:pl}function rk(t){let e=rh(t,rm,nm);e=e.replace(`
|
|
28
28
|
|
|
29
|
-
${
|
|
29
|
+
${pl}`,"");for(let r of tk)e=e.replace(`
|
|
30
30
|
|
|
31
|
-
${r}`,"");return e.trim()}var
|
|
31
|
+
${r}`,"");return e.trim()}var oh,QK,qK,tW,eW,rW,nW,oW,sW,iW,aW,lW,cW,mW,pW,uW,dW,fW,gW,pl,tk,sh=d(()=>{Wt();oh="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.",QK="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.",qK="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.",tW="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.",eW="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`.",rW="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`.",nW="`.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`.",oW="`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.",sW="`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.",iW=oh,aW=`## Project-Specific Rules
|
|
32
32
|
|
|
33
|
-
${
|
|
33
|
+
${oh}`,lW=`## AgentsMesh Generation Contract
|
|
34
34
|
|
|
35
|
-
${
|
|
35
|
+
${oh}`,cW=`## AgentsMesh Generation Contract
|
|
36
36
|
|
|
37
|
-
${
|
|
37
|
+
${QK}`,mW=`## AgentsMesh Generation Contract
|
|
38
38
|
|
|
39
|
-
${
|
|
39
|
+
${qK}`,pW=`## AgentsMesh Generation Contract
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${tW}`,uW=`## AgentsMesh Generation Contract
|
|
42
42
|
|
|
43
|
-
${
|
|
43
|
+
${eW}`,dW=`## AgentsMesh Generation Contract
|
|
44
44
|
|
|
45
|
-
${
|
|
45
|
+
${rW}`,fW=`## AgentsMesh Generation Contract
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${nW}`,gW=`## AgentsMesh Generation Contract
|
|
48
|
+
|
|
49
|
+
${oW}`,pl=`${rm}
|
|
48
50
|
## AgentsMesh Generation Contract
|
|
49
51
|
|
|
50
|
-
${
|
|
51
|
-
${
|
|
52
|
-
`)}]}var
|
|
53
|
-
`)break;i+=a,o++;}return i===r}function
|
|
52
|
+
${sW}
|
|
53
|
+
${nm}`;s(nh,"normalizeWhitespace");tk=[gW,fW,dW,uW,pW,mW,cW,lW,aW,iW];s(ek,"appendAgentsmeshRootInstructionParagraph");s(rk,"stripAgentsmeshRootInstructionParagraph");});function Ie(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 ul(t){let e=await _(t);return e?P(e).frontmatter:{}}function qt(t,e){return typeof t[e]=="string"?t[e]:void 0}function ih(t){let e=t.hooks;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function hW(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function yW(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 ul(t),o=basename(t,".md")==="_root"?rk(r):r.trim(),i=yW(t,hW({...n,...e})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=Ie(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return x(a,o||"")}var ah=d(()=>{A();U();sh();s(Ie,"toStringArray");s(ul,"readExistingFrontmatter");s(qt,"readString");s(ih,"readHooks");s(hW,"pruneUndefined");s(yW,"serializeCanonicalRuleFrontmatter");s(z,"serializeImportedRuleWithFallback");});async function It(t,e,r){let n=await ul(t),o=(()=>{let l=Ie(n.allowedTools);return l.length>0?l:Ie(n["allowed-tools"])})(),i=e.hasDescription?e.description??"":typeof n.description=="string"?n.description:"",a=e.hasAllowedTools?e.allowedTools??[]:o;return x({description:i,"allowed-tools":a},r.trim()||"")}async function En(t,e,r){let n=await ul(t),o=basename(dirname(t)),i=qt(e,"name")??qt(n,"name")??o,a=qt(e,"description")??qt(n,"description")??"";return x({name:i,description:a},r.trim()||"")}async function Yt(t,e,r){let n=await ul(t),o=Object.prototype.hasOwnProperty.call(e,"tools")?Ie(e.tools):(()=>{let R=Ie(n.tools);return R.length>0?R:[]})(),i=Object.prototype.hasOwnProperty.call(e,"disallowedTools")?Ie(e.disallowedTools):Object.prototype.hasOwnProperty.call(e,"disallowed-tools")?Ie(e["disallowed-tools"]):Ie(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(e,"mcpServers")?Ie(e.mcpServers):Object.prototype.hasOwnProperty.call(e,"mcp-servers")?Ie(e["mcp-servers"]):Ie(n.mcpServers),l=Object.prototype.hasOwnProperty.call(e,"skills")?Ie(e.skills):Ie(n.skills),c=e.maxTurns??e["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=ih(e)??ih(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),x(u,r.trim()||"")}var sk=d(()=>{U();ah();s(It,"serializeImportedCommandWithFallback");s(En,"serializeImportedSkillWithFallback");s(Yt,"serializeImportedAgentWithFallback");});var ft=d(()=>{ah();sk();});function yu(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 Ln(t){await rm$1(t,{recursive:true,force:true});}var om=d(()=>{s(yu,"shouldImportScopedAgentsRule");s(Ln,"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:x(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,sm,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=P(o(m,c,u)),h=uu(f,a.name);if(h){await Ln(join(t,sm,a.name));let C=join(t,ik);await O(C);let b=join(C,`${h.name}.md`);await S(b,du(h,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${ik}/${h.name}.md`,feature:"commands"});continue}let R=ml(f,a.name);if(R){await Ln(join(t,sm,a.name));let C=join(t,ak);await O(C);let b=join(C,`${R.name}.md`);await S(b,bs(R,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${ak}/${R.name}.md`,feature:"agents"});continue}let k=await En(u,{...f,name:a.name},g);await O(p),await S(u,k),n.push({fromTool:r,fromPath:c,toPath:`${sm}/${a.name}/SKILL.md`,feature:"skills"});let I=await G(l);for(let C of I){if(C===c)continue;let b=relative(l,C).replace(/\\/g,"/"),N=await _(C);if(N===null)continue;let T=join(p,b);await O(dirname(T)),await S(T,o(N,C,T)),n.push({fromTool:r,fromPath:C,toPath:`${sm}/${a.name}/${b}`,feature:"skills"});}}}var sm,ik,ak,rt=d(()=>{A();U();ft();ut();Lt();om();sm=".agentsmesh/skills",ik=".agentsmesh/commands",ak=".agentsmesh/agents";s(st,"generateEmbeddedSkills");s(et,"importEmbeddedSkills");});var On,ir,me,Ao,bo,ar,Di,lk,ck,dl=d(()=>{On="aider",ir="CONVENTIONS.md",me=".aider/skills",Ao=".aiderignore",bo="CONVENTIONS.md",ar=".aider/skills",Di=".aiderignore",lk=".agentsmesh/rules",ck=".agentsmesh/ignore";});function mk(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(On)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:ir,content:o}]:[]}function pk(t){return st(t,me)}function uk(t){return t.commands.map(e=>({path:`${me}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function dk(t){return t.agents.map(e=>({path:`${me}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function fk(t){return t.ignore.length===0?[]:[{path:Ao,content:t.ignore.join(`
|
|
54
|
+
`)}]}var gk=d(()=>{rt();Wt();ut();Lt();dl();s(mk,"generateRules");s(pk,"generateSkills");s(uk,"generateCommands");s(dk,"generateAgents");s(fk,"generateIgnore");});function at(t){return t.includes("\\")||Wr.test(t)?win32:posix}function Gt(t){return t.replace(/\\/g,"/")}function X(t,e){let r=at(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 yk(t,e){return at(t).isAbsolute(e)||Wr.test(e)}function fl(t){let e=t,r="";for(;EW.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}function _k(t,e){let r=at(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?X(e,r.join(e,n)):null}var Wr,EW,pe=d(()=>{Wr=/^[A-Za-z]:[\\/]/,EW=/[.!?:;]+$/;s(at,"pathApi");s(Gt,"normalizeSeparators");s(X,"normalizeForProject");s(yk,"isAbsoluteForProject");s(fl,"stripTrailingPunctuation");s(_k,"rootFallbackPath");});async function Rk(t,e,r="project"){let n=new Map,o=nt(t);return o&&await o.buildImportPaths(n,e,r),n}var Ik=d(()=>{ce();s(Rk,"buildImportReferenceMap");});function wW(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 AW(){let t=new Set([".agentsmesh/"]);for(let e of Pt)for(let r of wW(e))t.add(r);return Array.from(t)}function bW(){let t=new Set([...AW(),...lh.rootRelativePrefixes]),e=new Set([...OW,...lh.meshRootSegments]);return {protectedSchemes:[...LW,...lh.protectedSchemes],rootRelativePrefixes:Array.from(t),meshRootSegments:e}}function _u(){return ch||(ch=bW()),ch}var LW,OW,lh,ch,Sk=d(()=>{Tt();LW=[/\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],OW=new Set(["skills","rules","commands","agents","packs"]),lh={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(wW,"topLevelDotfilePrefixes");s(AW,"buildDefaultRootRelativePrefixes");s(bW,"rebuild");s(_u,"getLinkFormatRegistry");});function Hr(t){let e=Gt(t);return _u().rootRelativePrefixes.some(r=>e.startsWith(r))}function TW(t){let e=Gt(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||Wr.test(e)||/^[a-zA-Z]:/.test(e)||Hr(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&_u().meshRootSegments.has(r)}function im(t,e,r){let n=at(e),o=X(e,e),i=X(e,r),a=Gt(t);if(Wr.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=_k(a,o);return c&&c!==l?[l,c]:[l]}if(Hr(a))return [X(e,n.join(o,a))];if(a.includes("/")){let l=X(e,n.join(o,".agentsmesh")),c=TW(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 xW.has(a)?[]:a.includes(".")?[X(e,n.join(n.dirname(i),a))]:[]}function am(t,e){let r=[e];if(!yk(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 Lk(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}function Ru(t){let e=[];for(let r of _u().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(DW))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(NW))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(FW))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var xW,DW,NW,FW,Ek,gl,Ps=d(()=>{pe();Sk();s(Hr,"isRootRelativePathToken");s(TW,"isMeshRootRelativePathToken");xW=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),DW=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,NW=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,FW=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,Ek=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,gl=/(?::(\d+)){1,2}$/;s(im,"resolveProjectPath");s(am,"expandResolvedPaths");s(Lk,"isGlobAdjacent");s(Ru,"protectedRanges");});function vW(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 Ok(t){return vW(t.tokenContext)}function mh(t,e){let r=at(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 wk(t){let e=at(t);return X(t,e.join(t,".agentsmesh"))}function zr(t,e){let r=at(t),n=wk(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 Ak(t,e,r){let n=at(t),o=wk(t),i=X(t,e);if(!zr(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 ph(t,e,r){let o=at(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 hl(t,e,r){let n=ph(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function uh(t,e,r,n,o){let i=at(t),a=X(t,t),l=X(t,e),c=X(t,r);if(!mh(t,c))return hl(t,c,n)?.text??null;let m=X(t,i.dirname(l));if(!mh(t,m)&&m!==a)return hl(t,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||Wr.test(p))return ph(t,c,n);let u=X(t,i.join(m,p));return mh(t,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):ph(t,c,n)}var dh=d(()=>{pe();s(vW,"isReadingContext");s(Ok,"isReadingContextOptions");s(mh,"isUnderProjectRoot");s(wk,"agentsMeshRoot");s(zr,"isUnderAgentsMesh");s(Ak,"toAgentsMeshRootRelative");s(ph,"toProjectRootRelative");s(hl,"toProjectRootReference");s(uh,"formatLinkPathForDestinationLegacy");});function bk(t,e,r,n,o={}){let i=o.scope??"project",a=X(t,r);if(Ok(o)&&zr(t,e)&&zr(t,a)){let m=at(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 uh(t,e,r,n,o);if(i==="global"&&!zr(t,e))return hl(t,a,n)?.text??null;let l=(()=>{if(zr(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&zr(t,X(t,m))?X(t,m):null})();if(!l)return hl(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=Ak(t,l,n);return m!==null?m:hl(t,l,n)?.text??null}return uh(t,e,r,n,o)}var Pk=d(()=>{Ps();pe();dh();dh();s(bk,"formatLinkPathForDestination");});function Tk(t,e,r,n){let o=at(e),i=Gt(t);if(!Hr(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 xk=d(()=>{pe();Ps();s(Tk,"resolveByDestinationSuffixStrip");});function Dk(t){let e=null,r=false,n=null,o=null,i=null;for(let c of im(t.candidate,t.projectRoot,t.sourceFile)){let m=null,p=null;for(let u of am(t.projectRoot,c)){let f=X(t.projectRoot,u),g=X(t.projectRoot,t.translatePath(f)),h=t.pathExists(f),R=t.pathExists(g);if(R&&g!==f){e=g,n=f,r=true;break}(h||R)&&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=Tk(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 Nk=d(()=>{pe();Ps();xk();s(Dk,"resolveLinkTarget");});function Fk(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function vk(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 Mk(t){let e=Gt(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||Wr.test(e)||Hr(e)?false:e.includes("/")}var $k=d(()=>{pe();Ps();s(Fk,"isTildeHomeRelativePathToken");s(vk,"isMarkdownLinkDestinationToken");s(Mk,"isRelativePathToken");});function MW(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===`
|
|
55
|
+
`)break;i+=a,o++;}return i===r}function Gk(t,e,r){let n=t.lastIndexOf(`
|
|
54
56
|
`,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===`
|
|
55
|
-
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function
|
|
56
|
-
`);continue}if(!
|
|
57
|
-
`);continue}let{frontmatter:f,body:g}=u.value,h=t.frontmatterRemap?t.frontmatterRemap(f):f,R=t.markAsRoot?{...h,root:true}:h,
|
|
58
|
-
`),null}return R?{destPath:R.destPath,toPath:R.toPath,feature:t.feature,content:R.content}:null},"mapEntry")});l.push(...p);}return l}function Gk(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function PW(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let o=Gk(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 TW(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:ws(a.args),env:Ln(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:Ln(a.headers),env:Ln(a.env),description:l});}return n}async function xW(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let o=Gk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=TW(l);return Object.keys(c).length===0?[]:(await Bt(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}])}return []}function $k(t,e,r,n,o){switch(t.mode){case "singleFile":return wW(t,e,r,n,o);case "directory":return bW(t,e,r,n,o);case "flatFile":return PW(t,e,r,n);case "mcpJson":return xW(t,e,r,n)}}async function DW(t,e,r,n,o){let i=Zg(t.source,e),a=Zg(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await $k(t,i,r,n,o);if(l.length>0)return l}return a.length>0?$k(t,a,r,n,o):[]}function NW(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function J(t,e,r,n){let o=t.importer;if(!o)return [];let i=n?.normalize??await B(t.id,e,r),a=[];for(let l of vk)for(let c of NW(o,l))a.push(...await DW(c,r,e,t.id,i));return a}var Et=d(()=>{dt();w();Kr();j();or();ut();xe();Fk();Co();Mk();s(wW,"runSingleFile");s(bW,"runDirectory");s(Gk,"resolveCanonicalFilePath");s(PW,"runFlatFile");s(TW,"parseMcpJson");s(xW,"runMcpJson");s($k,"dispatchSpec");s(DW,"runSpec");s(NW,"specsForFeature");s(J,"runDescriptorImport");});async function jk(t,e={}){let r=e.scope??"project",n=[],o=await B(En,t,r);return n.push(...await J(su,t,r,{normalize:o})),await q(t,r==="global"?rr:ie,En,n,o),n}var Uk=d(()=>{dt();tt();Et();ml();Qg();s(jk,"importFromAider");});function FW(t,e){return Kk(e).some(n=>vW(t,n))}function Bk(t,e){return t.filter(r=>FW(r,e))}function Kk(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 Kk(r+l+o))a.push(c);return a}function vW(t,e){return MW(e).test(t)}function MW(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 Wk=d(()=>{s(FW,"globMatch");s(Bk,"globFilter");s(Kk,"expandBraces");s(vW,"matchOne");s(MW,"globToRegex");});function V(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(Bk(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 It=d(()=>{Wk();s(V,"validateRules");});function zk(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:En}))}var Vk=d(()=>{It();ml();s(zk,"lintRules");});function x(t,e,r){return {level:"warning",file:t,target:e,message:r}}function $W(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 Ps(t,e,r,n){let o=n?.unsupportedBy??e,i=$W(r);return x(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${i} are projected.`)}var Lt=d(()=>{s(x,"createWarning");s($W,"formatOxfordComma");s(Ps,"createUnsupportedHookWarning");});function Jk(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 Yk(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 Xk(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 Zk=d(()=>{Lt();s(Jk,"lintHooks");s(Yk,"lintPermissions");s(Xk,"lintMcp");});function E(t,e){return nt(t).relative(t,e).replace(/\\/g,"/")}async function L(t,e){return v(nt(t).join(t,e)).catch(()=>[])}function qk(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function WW(t,e,r,n){let o=posix.dirname(e),i=posix.dirname(r);for(;o!==n&&o!==".";)qk(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 M(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,`${Qk}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(sl)?sl:o.startsWith(Vc)?Vc:null;if(l&&a==="SKILL.md"){t.set(e,`${BW}/${o.slice(l.length)}.md`);return}let c=o.startsWith(il)?il:o.startsWith(Jc)?Jc:null;if(c&&a==="SKILL.md"){t.set(e,`${KW}/${o.slice(c.length)}.md`);return}let m=`${Qk}/${o}`;a==="SKILL.md"&&qk(t,`${r}/${o}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&WW(t,e,p,`${r}/${o}`);}function HW(t){return t.split("/").filter(Boolean)[0]??""}async function zW(){if(qg!==void 0)return qg;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(Pt(),tE)),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=HW(n);o.startsWith(".")&&e.add(o);}return qg=e,e}function eh(t){return t.split("/").some(e=>e.startsWith("."))}async function VW(t){let e=[],r=await zW(),n=nt(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)||eh(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)||eh(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 iu(t,e){let r=await VW(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(eh(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${UW}/${c}.md`);}}var UW,BW,KW,Qk,qg,St=d(()=>{ae();w();kt();mt();UW=".agentsmesh/rules",BW=".agentsmesh/commands",KW=".agentsmesh/agents",Qk=".agentsmesh/skills";s(E,"rel");s(L,"listFiles");s(qk,"addDirectoryMapping");s(WW,"addAncestorMappings");s(D,"addSimpleFileMapping");s(M,"addSkillLikeMapping");s(HW,"firstPathSegment");s(zW,"targetRootSegments");s(eh,"hasHiddenSegment");s(VW,"listScopedAgentsFiles");s(iu,"addScopedAgentsMappings");});var A,st,Ot,ht=d(()=>{A=".agentsmesh/rules",st=".agentsmesh/commands",Ot=".agentsmesh/agents";});async function rh(t,e,r="project"){if(r==="global"){t.set(Ao,`${A}/_root.md`);for(let n of await L(e,rr))M(t,E(e,n),rr);t.set(bi,".agentsmesh/ignore");return}t.set(er,`${A}/_root.md`);for(let n of await L(e,ie))M(t,E(e,n),ie);t.set(Oo,".agentsmesh/ignore");}var eE=d(()=>{St();ml();ht();s(rh,"buildAiderImportPaths");});var Pi,Wr,Ti,Ts,nm,rE,nE,om=d(()=>{Pi="amazon-q",Wr=".amazonq/rules",Ti=".amazonq/mcp.json",Ts=".aws/amazonq/rules",nm=".aws/amazonq/mcp.json",rE=".agentsmesh/rules",nE=".agentsmesh/mcp.json";});async function nh(t,e,r="project"){let n=r==="global"?Ts:Wr;for(let o of await L(e,n)){let i=E(e,o);D(t,i,A,".md");}}var oE=d(()=>{St();om();ht();s(nh,"buildAmazonQImportPaths");});var sr,le,On,oh,bo,ir,Po,sE,xi=d(()=>{sr="AGENTS.md",le=".agents/skills",On=".amp/settings.json",oh=".config/amp",bo=`${oh}/AGENTS.md`,ir=`${oh}/skills`,Po=`${oh}/settings.json`,sE=".agentsmesh/rules";});async function sh(t,e,r="project"){if(r==="global"){t.set(bo,`${A}/_root.md`);for(let n of await L(e,ir))M(t,E(e,n),ir);t.set(Po,".agentsmesh/mcp.json");return}t.set(sr,`${A}/_root.md`);for(let n of await L(e,le))M(t,E(e,n),le);t.set(On,".agentsmesh/mcp.json");}var iE=d(()=>{St();xi();ht();s(sh,"buildAmpImportPaths");});var Di,au,Hr,ar,sm,zr,An,im,wn,bn,am,fl,ih,Ni,lu,aE,Fi=d(()=>{Di="antigravity",au=".agents",Hr=`${au}/rules`,ar=`${Hr}/general.md`,sm=`${Hr}/_root.md`,zr=`${au}/skills`,An=`${au}/workflows`,im=`${au}/antigravity/mcp_config.json`,wn=".gemini/antigravity/GEMINI.md",bn=".gemini/antigravity/skills",am=".gemini/antigravity/workflows",fl=".gemini/antigravity/mcp_config.json",ih=".agentsmesh/rules/_root.md",Ni=".agentsmesh/rules",lu=".agentsmesh/commands",aE=".agentsmesh/mcp.json";});async function ah(t,e,r="project"){if(r==="global"){t.set(wn,`${A}/_root.md`);for(let n of await L(e,bn))M(t,E(e,n),bn);t.set(fl,".agentsmesh/mcp.json");return}t.set(ar,`${A}/_root.md`),t.set(sm,`${A}/_root.md`);for(let n of await L(e,Hr)){let o=E(e,n);o===ar||o===sm||D(t,o,A,".md");}for(let n of await L(e,An))D(t,E(e,n),st,".md");for(let n of await L(e,zr))M(t,E(e,n),zr);}var lE=d(()=>{St();Fi();ht();s(ah,"buildAntigravityImportPaths");});var ce,cu,De,lr,Ne,Pn,Tn,mu,To,xo,xn,Do,lh,ch,mh,ph,vi=d(()=>{ce="augment-code",cu=".augment",De=`${cu}/rules`,lr=`${cu}/commands`,Ne=`${cu}/skills`,Pn=`${cu}/settings.json`,Tn=".augmentignore",mu=".augment",To=`${mu}/rules`,xo=`${mu}/commands`,xn=`${mu}/skills`,Do=`${mu}/settings.json`,lh=".agentsmesh/rules",ch=".agentsmesh/mcp.json",mh=".agentsmesh/hooks.yaml",ph=".agentsmesh/ignore";});async function uh(t,e,r="project"){if(r==="global"){for(let n of await L(e,To))D(t,E(e,n),A,".md");for(let n of await L(e,xo))D(t,E(e,n),st,".md");for(let n of await L(e,xn))M(t,E(e,n),xn);t.set(Do,".agentsmesh/mcp.json");return}for(let n of await L(e,De))D(t,E(e,n),A,".md");for(let n of await L(e,lr))D(t,E(e,n),st,".md");for(let n of await L(e,Ne))M(t,E(e,n),Ne);t.set(Pn,".agentsmesh/mcp.json"),t.set(Tn,".agentsmesh/ignore");}var cE=d(()=>{St();vi();ht();s(uh,"buildAugmentCodeImportPaths");});var mE,xs,pE,lm,cm,mm,pm,um,No,dh,dm,gl,fm,gm,pu,uu,fh,hm,gh,Mi,uE,Fo=d(()=>{mE="claude-code",xs=".claude/CLAUDE.md",pE="CLAUDE.md",lm=".claude/rules",cm=".claude/commands",mm=".claude/agents",pm=".claude/skills",um=".claude/settings.json",No=".claude/hooks.json",dh=".claude/output-styles",dm=".claudeignore",gl=".mcp.json",fm=".claude.json",gm=".agentsmesh/rules",pu=".agentsmesh/commands",uu=".agentsmesh/agents",fh=".agentsmesh/skills",hm=".agentsmesh/mcp.json",gh=".agentsmesh/permissions.yaml",Mi=".agentsmesh/hooks.yaml",uE=".agentsmesh/ignore";});async function hh(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${A}/_root.md`),t.set(No,Mi),r==="project"&&t.set("CLAUDE.md",`${A}/_root.md`),r==="global")for(let n of await L(e,".agents/skills"))M(t,E(e,n),".agents/skills");for(let n of await L(e,".claude/rules"))D(t,E(e,n),A,".md");for(let n of await L(e,".claude/commands"))D(t,E(e,n),st,".md");for(let n of await L(e,".claude/agents"))D(t,E(e,n),Ot,".md");for(let n of await L(e,".claude/skills"))M(t,E(e,n),".claude/skills");}var dE=d(()=>{St();Fo();ht();s(hh,"buildClaudeCodeImportPaths");});var Ds,vo,$i,Mo,fE,Zt,Dn,Ns,Gi,ji,Ui,Bi,yh,Fs,du,_h,Rh,gE,hE,cr=d(()=>{Ds="cline",vo=".clinerules",$i=".clineignore",Mo=".cline/cline_mcp_settings.json",fE=".cline/mcp_settings.json",Zt=".cline/skills",Dn=".clinerules/workflows",Ns="AGENTS.md",Gi=".clinerules/hooks",ji="Documents/Cline/Rules",Ui="Documents/Cline/Workflows",Bi="Documents/Cline/Hooks",yh=".agentsmesh/hooks.yaml",Fs=".agentsmesh/rules",du=".agentsmesh/commands",_h=".agentsmesh/ignore",Rh=".agentsmesh/mcp.json",gE=".agentsmesh/agents",hE=".agentsmesh/skills";});async function Ih(t,e,r="project"){if(r==="global"){for(let n of await L(e,ji))D(t,E(e,n),A,".md");for(let n of await L(e,Ui))D(t,E(e,n),st,".md");for(let n of await L(e,Zt))M(t,E(e,n),Zt);t.set(Mo,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${A}/_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,A,".md");}for(let n of await L(e,".clinerules/workflows"))D(t,E(e,n),st,".md");for(let n of await L(e,".cline/skills"))M(t,E(e,n),".cline/skills");}var yE=d(()=>{St();cr();ht();s(Ih,"buildClineImportPaths");});async function Sh(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${A}/_root.md`),t.set(".codex/AGENTS.override.md",`${A}/_root.md`)):(t.set("AGENTS.md",`${A}/_root.md`),t.set("codex.md",`${A}/_root.md`),await iu(t,e)),r==="project")for(let n of await L(e,".codex/instructions"))D(t,E(e,n),A,".md");for(let n of await L(e,".codex/rules")){let o=E(e,n);o.endsWith(".rules")?D(t,o,A,".rules"):o.endsWith(".md")&&D(t,o,A,".md");}for(let n of await L(e,".codex/agents"))D(t,E(e,n),Ot,".toml");for(let n of await L(e,".agents/skills"))M(t,E(e,n),".agents/skills");}var _E=d(()=>{St();ht();s(Sh,"buildCodexCliImportPaths");});var hl,Vr,Nn,Ch,fu,$o,kh,Fe,yl,ym,gu,hu,Eh,Fn=d(()=>{hl="continue",Vr=".continue/rules",Nn=".continue/prompts",Ch=".continue/mcpServers",fu=`${Ch}/agentsmesh.json`,$o=`${Vr}/general.md`,kh=`${Vr}/_root.md`,Fe=".continue/skills",yl=".continue/AGENTS.md",ym=".continue/config.yaml",gu=".agentsmesh/rules",hu=".agentsmesh/commands",Eh=".agentsmesh/mcp.json";});async function Lh(t,e,r="project"){t.set($o,`${A}/_root.md`),t.set(kh,`${A}/_root.md`);for(let n of await L(e,".continue/rules")){let o=E(e,n);o===$o||o===kh||D(t,o,A,".md");}for(let n of await L(e,".continue/prompts"))t.set(E(e,n),`${st}/${basename(n,".md")}.md`);for(let n of await L(e,".continue/skills"))M(t,E(e,n),".continue/skills");if(r==="global")for(let n of await L(e,".agents/skills"))M(t,E(e,n),".agents/skills");}var RE=d(()=>{St();Fn();ht();s(Lh,"buildContinueImportPaths");});function XW(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${A}/${basename(e,".instructions.md")}.md`);return}D(t,e,A,".md");}async function Oh(t,e){t.set(".github/copilot-instructions.md",`${A}/_root.md`);for(let r of await L(e,".github/copilot"))t.set(E(e,r),`${A}/${basename(r,".instructions.md")}.md`);for(let r of await L(e,".github/instructions"))XW(t,E(e,r));for(let r of await L(e,".github/prompts"))t.set(E(e,r),`${st}/${basename(r,".prompt.md")}.md`);for(let r of await L(e,".github/agents"))t.set(E(e,r),`${Ot}/${basename(r,".agent.md")}.md`);for(let r of await L(e,".github/skills"))M(t,E(e,r),".github/skills");}var IE=d(()=>{St();ht();s(XW,"addCopilotInstructionMapping");s(Oh,"buildCopilotImportPaths");});var mr,pr,Qt,ve,Go,SE,_u,Me,Ki,Ru,Iu,Su,_l=d(()=>{mr="crush",pr="CRUSH.md",Qt=".crush/skills",ve="crush.json",Go=".crushignore",SE=".config/crush",_u=`${SE}/crush.json`,Me=".config/crush/skills",Ki=`${SE}/CRUSH.md`,Ru=".agentsmesh/rules",Iu=".agentsmesh/ignore",Su=".agentsmesh/mcp.json";});async function Ah(t,e,r="project"){if(r==="global"){for(let n of await L(e,Me))M(t,E(e,n),Me);return}t.set(pr,`${Ru}/_root.md`),t.set(ve,Su),t.set(Go,Iu);for(let n of await L(e,Qt))M(t,E(e,n),Qt);}var CE=d(()=>{St();_l();s(Ah,"buildCrushImportPaths");});var kE,vs,EE,ur,jo,dr,fr,me,$e,vn,Cu,Jr,wh,ZW,Rl,Yr,Mn,Ms,$s,LE,Il,bh,_m,Ph,Kt=d(()=>{kE="cursor",vs="AGENTS.md",EE=".cursorrules",ur=".cursor/rules",jo=`${ur}/general.mdc`,dr=".cursor/commands",fr=".cursor/agents",me=".cursor/skills",$e=".cursor/mcp.json",vn=".cursor/hooks.json",Cu=".cursor/settings.json",Jr=".cursorignore",wh=".cursorindexingignore",ZW=".agentsmesh-exports/cursor",Rl=`${ZW}/user-rules.md`,Yr=".cursor/AGENTS.md",Mn=".agentsmesh/rules",Ms=".agentsmesh/commands",$s=".agentsmesh/agents",LE=".agentsmesh/skills",Il=".agentsmesh/mcp.json",bh=".agentsmesh/permissions.yaml",_m=".agentsmesh/hooks.yaml",Ph=".agentsmesh/ignore";});async function Th(t,e,r="project"){if(r==="global"){t.set($e,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${A}/_root.md`);for(let n of await L(e,".cursor/rules"))D(t,E(e,n),A,".mdc");for(let n of await L(e,".cursor/commands"))D(t,E(e,n),st,".md");for(let n of await L(e,".cursor/agents"))D(t,E(e,n),Ot,".md");for(let n of await L(e,".cursor/skills"))M(t,E(e,n),".cursor/skills");return}t.set("AGENTS.md",`${A}/_root.md`);for(let n of await L(e,".cursor/rules"))D(t,E(e,n),A,".mdc");for(let n of await L(e,".cursor/commands"))D(t,E(e,n),st,".md");for(let n of await L(e,".cursor/agents"))D(t,E(e,n),Ot,".md");for(let n of await L(e,".cursor/skills"))M(t,E(e,n),".cursor/skills");}var OE=d(()=>{St();Kt();ht();s(Th,"buildCursorImportPaths");});var $n,gr,pe,Uo,Bo,Xr,Wi,AE,Sl=d(()=>{$n="deepagents-cli",gr=".deepagents/AGENTS.md",pe=".deepagents/skills",Uo=".mcp.json",Bo=".deepagents/AGENTS.md",Xr=".deepagents/skills",Wi=".deepagents/.mcp.json",AE=".agentsmesh/rules";});async function xh(t,e,r="project"){if(r==="global"){t.set(Bo,`${A}/_root.md`);for(let n of await L(e,Xr))M(t,E(e,n),Xr);t.set(Wi,".agentsmesh/mcp.json");return}t.set(gr,`${A}/_root.md`);for(let n of await L(e,pe))M(t,E(e,n),pe);t.set(Uo,".agentsmesh/mcp.json");}var wE=d(()=>{St();Sl();ht();s(xh,"buildDeepagentsCliImportPaths");});var hr,yr,Le,Gn,jn,Ko,Un,Hi,Gs,bE,zi=d(()=>{hr="factory-droid",yr="AGENTS.md",Le=".factory/skills",Gn=".factory/droids",jn=".factory/mcp.json",Ko=".factory/AGENTS.md",Un=".factory/skills",Hi=".factory/droids",Gs=".factory/mcp.json",bE=".agentsmesh/rules";});async function Dh(t,e,r="project"){if(r==="global"){t.set(Ko,`${A}/_root.md`);for(let n of await L(e,Hi))D(t,E(e,n),Ot,".md");for(let n of await L(e,Un))M(t,E(e,n),Un);t.set(Gs,".agentsmesh/mcp.json");return}t.set(yr,`${A}/_root.md`);for(let n of await L(e,Gn))D(t,E(e,n),Ot,".md");for(let n of await L(e,Le))M(t,E(e,n),Le);t.set(jn,".agentsmesh/mcp.json");}var PE=d(()=>{St();zi();ht();s(Dh,"buildFactoryDroidImportPaths");});async function Nh(t,e){for(let r of await L(e,".gemini/rules"))D(t,E(e,r),A,".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,`${st}/${c}.md`);}for(let r of await L(e,".gemini/agents"))D(t,E(e,r),Ot,".md");for(let r of await L(e,".gemini/skills"))M(t,E(e,r),".gemini/skills");}var TE=d(()=>{St();ht();s(Nh,"buildGeminiCliImportPaths");});var Bn,_r,Oe,Wo,xE,Ho,Vi,Rr,DE,NE,Cl=d(()=>{Bn="goose",_r=".goosehints",Oe=".agents/skills",Wo=".gooseignore",xE=".config/goose",Ho=`${xE}/.goosehints`,Vi=`${xE}/.gooseignore`,Rr=".agents/skills",DE=".agentsmesh/rules",NE=".agentsmesh/ignore";});async function Fh(t,e,r="project"){if(r==="global"){t.set(Ho,`${A}/_root.md`);for(let n of await L(e,Rr))M(t,E(e,n),Rr);t.set(Vi,".agentsmesh/ignore");return}t.set(_r,`${A}/_root.md`);for(let n of await L(e,Oe))M(t,E(e,n),Oe);t.set(Wo,".agentsmesh/ignore");}var FE=d(()=>{St();Cl();ht();s(Fh,"buildGooseImportPaths");});var zo,Zr,vE,kl=d(()=>{zo="jules",Zr="AGENTS.md",vE=".agentsmesh/rules";});async function vh(t,e,r="project"){r!=="global"&&t.set(Zr,`${A}/_root.md`);}var ME=d(()=>{kl();ht();s(vh,"buildJulesImportPaths");});var Ji,js,ku,$E,Kn,GE,QW,Rm,Yi,Im,El,Ll,Sm,Cm,km,Em,Lm,qW,Eu,Xi,jE,Mh,Lu,UE,BE,KE,WE,Ol=d(()=>{Ji="junie",js=".junie",ku=`${js}/guidelines.md`,$E=`${js}/ci-guidelines.md`,Kn=`${js}/AGENTS.md`,GE="AGENTS.md",QW=`${js}/mcp`,Rm=`${QW}/mcp.json`,Yi=`${js}/skills`,Im=`${js}/rules`,El=`${js}/commands`,Ll=`${js}/agents`,Sm=".aiignore",Cm=".junie",km=`${Cm}/skills`,Em=`${Cm}/agents`,Lm=`${Cm}/commands`,qW=`${Cm}/mcp`,Eu=`${qW}/mcp.json`,Xi=`${Cm}/AGENTS.md`,jE=".agents/skills",Mh=".agentsmesh/rules/_root.md",Lu=".agentsmesh/rules",UE=".agentsmesh/commands",BE=".agentsmesh/agents",KE=".agentsmesh/mcp.json",WE=".agentsmesh/ignore";});async function $h(t,e){t.set(ku,`${A}/_root.md`),t.set(Kn,`${A}/_root.md`),t.set("AGENTS.md",`${A}/_root.md`);for(let r of await L(e,".junie/rules"))D(t,E(e,r),A,".md");for(let r of await L(e,".junie/commands"))D(t,E(e,r),st,".md");for(let r of await L(e,".junie/agents"))D(t,E(e,r),Ot,".md");for(let r of await L(e,".junie/skills"))M(t,E(e,r),".junie/skills");}var HE=d(()=>{St();Ol();ht();s($h,"buildJunieImportPaths");});var _e,Om,Wn,Vo,Jo,Yo,Qr,Us,Al,Ou,Zi,wl,Qi,Am,Au,bl,Bs,qi,ta,ea,Ks,Pl,wu,zE,Ws,Tl,ra,VE,JE,na=d(()=>{_e="kilo-code",Om=".kilo",Wn="AGENTS.md",Vo=`${Om}/rules`,Jo=`${Om}/commands`,Yo=`${Om}/agents`,Qr=`${Om}/skills`,Us=`${Om}/mcp.json`,Al=".kilocodeignore",Ou=".kilocode",Zi=`${Ou}/rules`,wl=`${Ou}/workflows`,Qi=`${Ou}/skills`,Am=`${Ou}/mcp.json`,Au=".kilocodemodes",bl=".kilo",Bs=`${bl}/AGENTS.md`,qi=`${bl}/rules`,ta=`${bl}/commands`,ea=`${bl}/agents`,Ks=`${bl}/skills`,Pl=`${bl}/mcp.json`,wu=".kilocodeignore",zE=".agents/skills",Ws=".agentsmesh/rules",Tl=".agentsmesh/commands",ra=".agentsmesh/agents",VE=".agentsmesh/mcp.json",JE=".agentsmesh/ignore";});async function Gh(t,e,r="project"){if(r==="global"){t.set(Bs,`${A}/_root.md`);for(let n of await L(e,qi))D(t,E(e,n),A,".md");for(let n of await L(e,ta))D(t,E(e,n),st,".md");for(let n of await L(e,ea))D(t,E(e,n),Ot,".md");for(let n of await L(e,Ks))M(t,E(e,n),Ks);t.set(Pl,".agentsmesh/mcp.json");return}t.set(Wn,`${A}/_root.md`);for(let n of await L(e,Vo))D(t,E(e,n),A,".md");for(let n of await L(e,Jo))D(t,E(e,n),st,".md");for(let n of await L(e,Yo))D(t,E(e,n),Ot,".md");for(let n of await L(e,Qr))M(t,E(e,n),Qr);t.set(Us,".agentsmesh/mcp.json");for(let n of await L(e,Zi)){let o=E(e,n);if(basename(o)==="00-root.md"){t.set(o,`${A}/_root.md`);continue}D(t,o,A,".md");}for(let n of await L(e,wl))D(t,E(e,n),st,".md");for(let n of await L(e,Qi))M(t,E(e,n),Qi);t.set(Am,".agentsmesh/mcp.json");}var YE=d(()=>{St();na();ht();s(Gh,"buildKiloCodeImportPaths");});var Ge,qr,wm,tn,Re,en,Hs,eH,xl,Dl,oa,rn,zs,sa,bm,Pm,XE,jh,Uh,ZE,QE,Bh,qE,Nl=d(()=>{Ge="kiro",qr="AGENTS.md",wm=".kiro",tn=`${wm}/steering`,Re=`${wm}/skills`,en=`${wm}/agents`,Hs=`${wm}/hooks`,eH=`${wm}/settings`,xl=`${eH}/mcp.json`,Dl=".kiroignore",oa=".kiro/steering",rn=".kiro/steering/AGENTS.md",zs=".kiro/skills",sa=".kiro/agents",bm=".kiro/settings/mcp.json",Pm=".kiro/settings/kiroignore",XE=".agents/skills",jh=".agentsmesh/rules/_root.md",Uh=".agentsmesh/rules",ZE=".agentsmesh/agents",QE=".agentsmesh/mcp.json",Bh=".agentsmesh/hooks.yaml",qE=".agentsmesh/ignore";});async function Kh(t,e,r="project"){if(r==="global"){t.set(rn,`${A}/_root.md`);for(let n of await L(e,oa)){let o=E(e,n);o!==rn&&D(t,o,A,".md");}for(let n of await L(e,zs))M(t,E(e,n),zs);for(let n of await L(e,sa))D(t,E(e,n),Ot,".md");return}t.set(qr,`${A}/_root.md`);for(let n of await L(e,tn))D(t,E(e,n),A,".md");for(let n of await L(e,Re))M(t,E(e,n),Re);for(let n of await L(e,en))D(t,E(e,n),Ot,".md");}var tL=d(()=>{St();Nl();ht();s(Kh,"buildKiroImportPaths");});var nn,bu,Hn,Xo,Zo,Qo,on,zn,Fl,Vs,ia,aa,la,Js,Ys,eL,Tm,Pu,Tu,Wh,ca=d(()=>{nn="opencode",bu=".opencode",Hn="AGENTS.md",Xo=`${bu}/rules`,Zo=`${bu}/commands`,Qo=`${bu}/agents`,on=`${bu}/skills`,zn="opencode.json",Fl=".config/opencode",Vs=`${Fl}/AGENTS.md`,ia=`${Fl}/rules`,aa=`${Fl}/commands`,la=`${Fl}/agents`,Js=`${Fl}/skills`,Ys=`${Fl}/opencode.json`,eL=".agents/skills",Tm=".agentsmesh/rules",Pu=".agentsmesh/commands",Tu=".agentsmesh/agents",Wh=".agentsmesh/mcp.json";});async function Hh(t,e,r="project"){if(r==="global"){t.set(Vs,`${A}/_root.md`);for(let n of await L(e,ia))D(t,E(e,n),A,".md");for(let n of await L(e,aa))D(t,E(e,n),st,".md");for(let n of await L(e,la))D(t,E(e,n),Ot,".md");for(let n of await L(e,Js))M(t,E(e,n),Js);t.set(Ys,".agentsmesh/mcp.json");return}t.set(Hn,`${A}/_root.md`);for(let n of await L(e,Xo))D(t,E(e,n),A,".md");for(let n of await L(e,Zo))D(t,E(e,n),st,".md");for(let n of await L(e,Qo))D(t,E(e,n),Ot,".md");for(let n of await L(e,on))M(t,E(e,n),on);t.set(zn,".agentsmesh/mcp.json");}var rL=d(()=>{St();ca();ht();s(Hh,"buildOpencodeImportPaths");});var Vn,Ir,qt,nL,qo,Sr,oL,vl=d(()=>{Vn="pi-agent",Ir="AGENTS.md",qt=".pi/skills",nL=".pi/agent",qo=`${nL}/AGENTS.md`,Sr=`${nL}/skills`,oL=".agentsmesh/rules";});async function zh(t,e,r="project"){if(r==="global"){t.set(qo,`${A}/_root.md`);for(let n of await L(e,Sr))M(t,E(e,n),Sr);return}t.set(Ir,`${A}/_root.md`);for(let n of await L(e,qt))M(t,E(e,n),qt);}var Vh=d(()=>{St();vl();ht();s(zh,"buildPiAgentImportPaths");});var Jn,Cr,ts,Yn,Xn,je,Xs,Zs,es,ma,Qs,Zn,qs,Jh,sL,iL,Ml=d(()=>{Jn="qwen-code",Cr="QWEN.md",ts=".qwen/rules",Yn=".qwen/commands",Xn=".qwen/agents",je=".qwen/skills",Xs=".qwen/settings.json",Zs=".qwenignore",es=".qwen/QWEN.md",ma=".qwen/settings.json",Qs=".qwen/commands",Zn=".qwen/skills",qs=".qwen/agents",Jh=".agentsmesh/rules",sL=".agentsmesh/commands",iL=".agentsmesh/agents";});async function Yh(t,e,r="project"){if(r==="global"){t.set(es,`${A}/_root.md`),t.set(ma,".agentsmesh/mcp.json");for(let n of await L(e,Qs))D(t,E(e,n),st,".md");for(let n of await L(e,qs))D(t,E(e,n),Ot,".md");for(let n of await L(e,Zn))M(t,E(e,n),Zn);return}t.set(Cr,`${A}/_root.md`),t.set(Xs,".agentsmesh/mcp.json"),t.set(Zs,".agentsmesh/ignore");for(let n of await L(e,ts))D(t,E(e,n),A,".md");for(let n of await L(e,Yn))D(t,E(e,n),st,".md");for(let n of await L(e,Xn))D(t,E(e,n),Ot,".md");for(let n of await L(e,je))M(t,E(e,n),je);}var aL=d(()=>{St();ht();Ml();s(Yh,"buildQwenCodeImportPaths");});var Qn,sn,Ae,lL,$l=d(()=>{Qn="replit-agent",sn="replit.md",Ae=".agents/skills",lL=".agentsmesh/rules";});async function Xh(t,e,r="project"){if(r!=="global"){t.set(sn,`${A}/_root.md`);for(let n of await L(e,Ae))M(t,E(e,n),Ae);}}var Zh=d(()=>{St();$l();ht();s(Xh,"buildReplitAgentImportPaths");});var ti,pa,an,xm,rs,ns,qn,Dm,Nm,Gl,Fm,xu,ei,ri,os,ua,vm,ni,cL,da,Du,mL,pL,fa=d(()=>{ti="roo-code",pa=".roo",an=`${pa}/rules/00-root.md`,xm=".roorules",rs=`${pa}/rules`,ns=`${pa}/commands`,qn=`${pa}/skills`,Dm=`${pa}/mcp.json`,Nm=".rooignore",Gl=".roomodes",Fm="settings/custom_modes.yaml",xu=".roo",ei=`${xu}/rules`,ri=`${xu}/commands`,os=`${xu}/skills`,ua="mcp_settings.json",vm=".rooignore",ni=`${xu}/AGENTS.md`,cL=".agents/skills",da=".agentsmesh/rules",Du=".agentsmesh/commands",mL=".agentsmesh/mcp.json",pL=".agentsmesh/ignore";});async function Qh(t,e,r="project"){if(r==="global"){t.set(ni,`${A}/_root.md`);for(let n of await L(e,ei))D(t,E(e,n),A,".md");for(let n of await L(e,ri))D(t,E(e,n),st,".md");for(let n of await L(e,os))M(t,E(e,n),os);t.set(ua,".agentsmesh/mcp.json");return}t.set(an,`${A}/_root.md`),t.set(xm,`${A}/_root.md`);for(let n of await L(e,rs)){let o=E(e,n);o!==an&&D(t,o,A,".md");}for(let n of await L(e,".roo")){let o=E(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&D(t,o,A,".md");}for(let n of await L(e,ns))D(t,E(e,n),st,".md");for(let n of await L(e,qn))M(t,E(e,n),qn);}var uL=d(()=>{St();fa();ht();s(Qh,"buildRooCodeImportPaths");});var to,kr,dL,te,ss,fL,is,Ue,jl,gL,Ul=d(()=>{to="rovodev",kr="AGENTS.md",dL=".rovodev",te=`${dL}/skills`,ss=`${dL}/mcp.json`,fL=".rovodev",is=".rovodev/AGENTS.md",Ue=".rovodev/skills",jl=".rovodev/mcp.json",gL=".agentsmesh/rules";});async function qh(t,e,r="project"){if(r==="global"){t.set(is,`${A}/_root.md`);for(let n of await L(e,Ue))M(t,E(e,n),Ue);t.set(jl,".agentsmesh/mcp.json");return}t.set(kr,`${A}/_root.md`);for(let n of await L(e,te))M(t,E(e,n),te);t.set(ss,".agentsmesh/mcp.json");}var hL=d(()=>{St();Ul();ht();s(qh,"buildRovodevImportPaths");});var Er,Nu,Be,Ke,Lr,ga,Bl,as,Or,ln,Mm,yL,$m,_L,RL,Kl=d(()=>{Er="trae",Nu=".trae",Be=`${Nu}/rules`,Ke=`${Be}/project_rules.md`,Lr=`${Nu}/skills`,ga=`${Nu}/mcp.json`,Bl=`${Nu}/.ignore`,as=".trae/user_rules",Or=".trae/user_rules/rules.md",ln=".trae/skills",Mm=".trae/mcp.json",yL=".agents/skills",$m=".agentsmesh/rules",_L=".agentsmesh/mcp.json",RL=".agentsmesh/ignore";});async function ty(t,e,r="project"){if(r==="global"){t.set(Or,`${A}/_root.md`);for(let n of await L(e,as)){let o=E(e,n);o!==Or&&D(t,o,A,".md");}for(let n of await L(e,ln))M(t,E(e,n),ln);return}t.set(Ke,`${A}/_root.md`);for(let n of await L(e,Be)){let o=E(e,n);o!==Ke&&D(t,o,A,".md");}for(let n of await L(e,Lr))M(t,E(e,n),Lr);}var IL=d(()=>{St();Kl();ht();s(ty,"buildTraeImportPaths");});var eo,cn,ey,ue,oi,We,SL,Wl=d(()=>{eo="warp",cn="AGENTS.md",ey="WARP.md",ue=".warp/skills",oi=".mcp.json",We=".warp/skills",SL=".agentsmesh/rules";});async function ry(t,e,r="project"){if(r==="global"){for(let n of await L(e,We))M(t,E(e,n),We);return}t.set(cn,`${A}/_root.md`);for(let n of await L(e,ue))M(t,E(e,n),ue);t.set(oi,".agentsmesh/mcp.json");}var CL=d(()=>{St();Wl();ht();s(ry,"buildWarpImportPaths");});async function ny(t,e){t.set("AGENTS.md",`${A}/_root.md`),t.set(".windsurfrules",`${A}/_root.md`),await iu(t,e);for(let r of await L(e,".windsurf/rules"))D(t,E(e,r),A,".md");for(let r of await L(e,".windsurf/workflows"))D(t,E(e,r),st,".md");for(let r of await L(e,".windsurf/skills"))M(t,E(e,r),".windsurf/skills");}var kL=d(()=>{St();ht();s(ny,"buildWindsurfImportPaths");});var mn,ro,rH,no,EL,ha=d(()=>{mn=".rules",ro=".zed/settings.json",rH=".config/zed",no=`${rH}/settings.json`,EL=".agentsmesh/rules";});async function oy(t,e,r="project"){if(r==="global"){t.set(no,".agentsmesh/mcp.json");return}t.set(mn,`${A}/_root.md`),t.set(ro,".agentsmesh/mcp.json");}var LL=d(()=>{ha();ht();s(oy,"buildZedImportPaths");});var OL=d(()=>{eE();oE();iE();lE();cE();dE();yE();_E();RE();IE();CE();OE();wE();PE();TE();FE();ME();HE();YE();tL();rL();Vh();aL();Zh();uL();hL();IL();CL();kL();LL();});var Ct=d(()=>{OL();});var nH,oH,sH,AL,su,Qg=d(()=>{kt();mt();rk();Uk();Vk();Zk();Ct();ml();nH={name:En,primaryRootInstructionPath:er,generateRules:ZC,generateCommands:qC,generateAgents:tk,generateSkills:QC,generateIgnore:ek,importFrom:jk},oH={rootInstructionPath:er,skillDir:ie,managedOutputs:{dirs:[ie],files:[er,Oo]},paths:{rulePath(t){return er},commandPath(t){return `${ie}/${H(t)}/SKILL.md`},agentPath(t){return `${ie}/${U(t)}/SKILL.md`}}},sH={rootInstructionPath:Ao,skillDir:rr,managedOutputs:{dirs:[rr],files:[Ao,bi]},rewriteGeneratedPath(t){return t===er?Ao:t===Oo?bi:t.startsWith(`${ie}/`)?t.replace(`${ie}/`,`${rr}/`):t},paths:{rulePath(t){return Ao},commandPath(t){return `${rr}/${H(t)}/SKILL.md`},agentPath(t){return `${rr}/${U(t)}/SKILL.md`}}},AL={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},su={id:En,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:nH,capabilities:AL,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:zk,lint:{hooks:Jk,permissions:Yk,mcp:Xk},supportsConversion:{commands:true,agents:true},project:oH,globalSupport:{capabilities:AL,detectionPaths:[Ao,bi,rr],layout:sH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[er],global:[Ao]},canonicalDir:YC,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Oo],global:[bi]},canonicalDir:".agentsmesh",canonicalFilename:XC}},buildImportPaths:rh,detectionPaths:[er,Oo]};});function wL(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(Pi))continue;let n=r.root?"_root":basename(r.source,".md");e.push({path:`${Wr}/${n}.md`,content:r.body.trim()});}return e}function bL(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ti,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var PL=d(()=>{om();s(wL,"generateRules");s(bL,"generateMcp");});async function TL(t,e){let r=e?.scope??"project";return J(Fu,t,r)}var xL=d(()=>{Et();sy();s(TL,"importFromAmazonQ");});function DL(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Pi}))}var NL=d(()=>{It();om();s(DL,"lintRules");});var aH,lH,cH,mH,Fu,sy=d(()=>{PL();xL();NL();Ct();om();aH={name:Pi,generateRules:wL,generateMcp:bL,importFrom:TL},lH={managedOutputs:{dirs:[Wr],files:[Ti]},paths:{rulePath(t,e){return `${Wr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},cH={managedOutputs:{dirs:[Ts],files:[nm]},rewriteGeneratedPath(t){return t.startsWith(`${Wr}/`)?t.replace(`${Wr}/`,`${Ts}/`):t===Ti?nm:t},paths:{rulePath(t,e){return `${Ts}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},mH={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Fu={id:Pi,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:aH,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:DL,project:lH,globalSupport:{capabilities:mH,detectionPaths:[Ts,nm],layout:cH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Wr],global:[Ts]},canonicalDir:rE,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ti],global:[nm]},canonicalDir:".agentsmesh",canonicalFilename:nE}},buildImportPaths:nh,detectionPaths:[Wr,Ti]};});function FL(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=lt(n,r);return o?[{path:sr,content:o}]:[]}function vL(t){return rt(t,le)}function ML(t){return t.commands.map(e=>({path:`${le}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function $L(t){return t.agents.map(e=>({path:`${le}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}var GL=d(()=>{tt();Ut();mt();kt();xi();s(FL,"generateRules");s(vL,"generateSkills");s(ML,"generateCommands");s($L,"generateAgents");});function pt(t,e,r){let n=r.some(o=>pH.includes(o));return t.startsWith(`${e}/`)&&!n?`.agents/skills/${t.slice(e.length+1)}`:null}var pH,ee=d(()=>{pH=["amp","antigravity","codex-cli","goose","replit-agent"];s(pt,"mirrorSkillsToAgents");});async function UL(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 Bt(t,jL,l),r.push({fromTool:"amp",fromPath:e,toPath:jL,feature:"mcp"}));}var jL,BL=d(()=>{w();Kr();xi();jL=".agentsmesh/mcp.json";s(UL,"importAmpMcp");});async function KL(t,e={}){let r=e.scope??"project",n=[],o=await B("amp",t,r);return n.push(...await J(vu,t,r,{normalize:o})),await q(t,r==="global"?ir:le,"amp",n,o),await UL(t,r==="global"?Po:On,n),n}var WL=d(()=>{dt();tt();Et();BL();xi();iy();s(KL,"importFromAmp");});function HL(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var zL=d(()=>{It();xi();s(HL,"lintRules");});function VL(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 JL(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 YL(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 XL=d(()=>{Lt();s(VL,"lintHooks");s(JL,"lintPermissions");s(YL,"lintIgnore");});function hH(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 dH,fH,gH,ZL,vu,iy=d(()=>{kt();mt();GL();ee();WL();zL();XL();Ct();xi();dH={name:"amp",primaryRootInstructionPath:sr,generateRules:FL,generateCommands:ML,generateAgents:$L,generateSkills:vL,importFrom:KL},fH={rootInstructionPath:sr,skillDir:le,managedOutputs:{dirs:[le],files:[sr,On]},paths:{rulePath(t){return sr},commandPath(t){return `${le}/${H(t)}/SKILL.md`},agentPath(t){return `${le}/${U(t)}/SKILL.md`}}},gH={rootInstructionPath:bo,skillDir:ir,managedOutputs:{dirs:[ir],files:[bo,Po]},rewriteGeneratedPath(t){return t===sr?bo:t===On?Po:t.startsWith(`${le}/`)?t.replace(`${le}/`,`${ir}/`):t},mirrorGlobalPath(t,e){return pt(t,ir,e)},paths:{rulePath(t){return bo},commandPath(t){return `${ir}/${H(t)}/SKILL.md`},agentPath(t){return `${ir}/${U(t)}/SKILL.md`}}},ZL={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(hH,"mergeAmpSettings");vu={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:dH,capabilities:ZL,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:HL,lint:{hooks:VL,permissions:JL,ignore:YL},supportsConversion:{commands:true,agents:true},project:fH,globalSupport:{capabilities:ZL,detectionPaths:[bo,Po],layout:gH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[sr],global:[bo]},canonicalDir:sE,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:On,content:JSON.stringify({"amp.mcpServers":t.mcp.mcpServers},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===On||n===Po?hH(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:sh,detectionPaths:[sr,On],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function QL(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:ar,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:`${Hr}/${o}.md`,content:n.body.trim()||""});}return r}function qL(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
57
|
+
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function jk(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:Gk(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 Uk(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:i}=fl(n),a=i.replace(gl,""),l=Gt(a),c=e+a.length,m=t[e-1],p=t[r];return Gk(t,e,c)||m==="'"&&p==="'"||m==='"'&&p==='"'||m==="`"&&p==="`"||m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!Hr(l)&&MW(t,e,n)):m==="@"?true:m==="("&&t[e-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?Hr(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var Bk=d(()=>{pe();Ps();s(MW,"markdownBracketLabelDuplicatesDestination");s(Gk,"isMarkdownReferenceDefinitionDestination");s(jk,"getTokenContext");s(Uk,"shouldRewritePathToken");});function Iu(t){let e=new Set,r=Ru(t.content);return {content:t.content.replace(Ek,(o,i,a)=>{if(r.some(([bt,Ft])=>i>=bt&&i<Ft)||!Uk(a,i,i+o.length,o,t.rewriteBarePathTokens===true)||Fk(a,i,o)||Lk(a,i,i+o.length))return o;let{candidate:l,suffix:c}=fl(o);if(!l)return o;let m=gl.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=jk(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&Wr.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:R}=Dk({candidate:p,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),k=h;if(!R||!g)return g&&e.add(g),o;let I=Gt(p),C=p.endsWith("/")||t.pathIsDirectory?.(g)===true;if(C&&!I.includes("/")&&!I.includes("\\"))return o;if(k===null){let bt=Gt(l);if(bt.startsWith("agentsmesh/")&&(bt=`.${bt}`),bt.startsWith(".agentsmesh/")||bt.includes("/.agentsmesh/")){let Ft=at(t.projectRoot),Qt=X(t.projectRoot,t.projectRoot),Ei=bt.replace(/^\.\//,"");k=X(t.projectRoot,Ft.join(Qt,Ei));}}let b=at(t.projectRoot);if(t.scope==="global"){let bt=Gt(l),Ft=bt.startsWith(".agentsmesh/")||bt.includes("/.agentsmesh/"),Qt=Hr(bt)||Mk(bt),Ei=k!==null&&zr(t.projectRoot,k),Mp=zr(t.projectRoot,g);if(k===g&&!Mp&&!Ei&&!Ft){let jc=Gt(b.relative(t.projectRoot,X(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",$p=(k!==null?Gt(b.relative(t.projectRoot,k)):"").split("/").filter(Boolean)[0]??"";if(jc.length>0&&jc===$p)return o}if(!Qt&&!Ft&&!Ei&&!Mp)return o}let N=X(t.projectRoot,t.destinationFile),T=X(t.projectRoot,g),B=Gt(b.relative(t.projectRoot,N)),H=Gt(b.relative(t.projectRoot,T)),tt=B.split("/").filter(Boolean)[0]??"",it=H.split("/").filter(Boolean)[0]??"",vt=!Gt(p).startsWith(".agentsmesh/")&&!C&&tt.length>0&&tt===it&&tt.startsWith(".")&&tt!==".agentsmesh"||f.role==="markdown-link-dest"||vk(a,i,p),ae=bk(t.projectRoot,t.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||vt,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:C?null:k,forceRelative:vt,tokenContext:f,originalToken:p});return ae?`${ae}${u}${c}`:o}),missing:[...e]}}var fh=d(()=>{pe();Ps();Pk();Nk();$k();Bk();s(Iu,"rewriteFileLinks");});function Wk(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=at(e),o=new Map,i=Array.from(new Set([t,...$t]));for(let c of i){let m=await Rk(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 Wk(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 Wk(n,m))l.add(n.normalize(p));}return (c,m,p)=>Iu({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();Ik();fh();Sn();s(Wk,"pathVariants");s(W,"createImportReferenceNormalizer");});async function Ht(t,e,r){let n=join(t,e),i={...await UW(n),...r};await O(dirname(n)),await S(n,JSON.stringify({mcpServers:i},null,2));}async function UW(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 Vr=d(()=>{A();s(Ht,"writeMcpWithMerge");s(UW,"readExistingServers");});function Po(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function lr(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 Ts(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function wn(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var cr=d(()=>{s(Po,"toGlobsArray");s(lr,"toToolsArray");s(Ts,"toStringArray");s(wn,"toStringRecord");});function WW(t,e){return e.some(r=>t.endsWith(r))}async function St(t){let r=(await G(t.srcDir)).filter(o=>WW(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 S(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var Me=d(()=>{A();s(WW,"matchesExtension");s(St,"importFileDirectory");});function zk(t){return typeof t=="string"?t:void 0}function HW(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function hh(t,e){return e?e(t):t}function zW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=hh(n,t.frontmatterRemap),a=HW({root:false,description:zk(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 VW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=hh(n,t.frontmatterRemap),a=await It(r,{hasDescription:true,description:zk(i.description),hasAllowedTools:true,allowedTools:Ts(i["allowed-tools"])},o);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:a}}}function JW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=P(e.normalizeTo(r)),i=hh(n,t.frontmatterRemap);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await Yt(r,i,o)}}}function Vk(t){if(t.map)return t.map;switch(t.preset){case "rule":return zW(t);case "command":return VW(t);case "agent":return JW(t);default:throw new Error(`ImportFeatureSpec for ${t.feature} (mode: ${t.mode}) needs a \`preset\` or \`map\``)}}var Jk=d(()=>{U();ft();cr();s(zk,"pickString");s(HW,"pruneUndefined");s(hh,"applyRemap");s(zW,"ruleMapper");s(VW,"commandMapper");s(JW,"agentMapper");s(Vk,"resolveMapper");});function yh(t,e){return t?t[e]??[]:[]}var Yk,Xk=d(()=>{Yk=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(yh,"resolveScopedSources");});async function QW(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(I=>o(c,l,I),"normalizeTo");if(t.map){let I;try{I=await t.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(C){let b=C instanceof Error?C.message:String(C);process.stderr.write(`\u26A0 skipping ${l}: ${b}
|
|
58
|
+
`);continue}if(!I)continue;return await S(I.destPath,I.content),[{fromTool:n,fromPath:l,toPath:I.toPath,feature:t.feature}]}let u=Gr(p(m),l);if(!u.ok){process.stderr.write(`\u26A0 skipping ${l}: ${u.error.message}
|
|
59
|
+
`);continue}let{frontmatter:f,body:g}=u.value,h=t.frontmatterRemap?t.frontmatterRemap(f):f,R=t.markAsRoot?{...h,root:true}:h,k=await z(m,R,g);return await S(m,k),[{fromTool:n,fromPath:l,toPath:`${t.canonicalDir}/${t.canonicalRootFilename}`,feature:t.feature}]}return []}async function qW(t,e,r,n,o){let i=Vk(t),a=join(r,t.canonicalDir),l=[];for(let c of e){let m=join(r,c),p=await St({srcDir:m,destDir:a,extensions:[...t.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(eu(basename(u)))return null;let R;try{R=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(k=>h(k),"normalizeTo")});}catch(k){let I=k instanceof Error?k.message:String(k);return process.stderr.write(`\u26A0 skipping ${u}: ${I}
|
|
60
|
+
`),null}return R?{destPath:R.destPath,toPath:R.toPath,feature:t.feature,content:R.content}:null},"mapEntry")});l.push(...p);}return l}function Qk(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function tH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let o=Qk(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 eH(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:Ts(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 rH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let o=Qk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=eH(l);return Object.keys(c).length===0?[]:(await Ht(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}])}return []}function Zk(t,e,r,n,o){switch(t.mode){case "singleFile":return QW(t,e,r,n,o);case "directory":return qW(t,e,r,n,o);case "flatFile":return tH(t,e,r,n);case "mcpJson":return rH(t,e,r,n)}}async function nH(t,e,r,n,o){let i=yh(t.source,e),a=yh(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await Zk(t,i,r,n,o);if(l.length>0)return l}return a.length>0?Zk(t,a,r,n,o):[]}function oH(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 Yk)for(let c of oH(o,l))a.push(...await nH(c,r,e,t.id,i));return a}var Ot=d(()=>{gt();A();Vr();U();cr();ft();Me();Jk();Eo();Xk();s(QW,"runSingleFile");s(qW,"runDirectory");s(Qk,"resolveCanonicalFilePath");s(tH,"runFlatFile");s(eH,"parseMcpJson");s(rH,"runMcpJson");s(Zk,"dispatchSpec");s(nH,"runSpec");s(oH,"specsForFeature");s(Y,"runDescriptorImport");});async function qk(t,e={}){let r=e.scope??"project",n=[],o=await W(On,t,r);return n.push(...await Y(Su,t,r,{normalize:o})),await et(t,r==="global"?ar:me,On,n,o),n}var tE=d(()=>{gt();rt();Ot();dl();_h();s(qk,"importFromAider");});function sH(t,e){return rE(e).some(n=>iH(t,n))}function eE(t,e){return t.filter(r=>sH(r,e))}function rE(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 rE(r+l+o))a.push(c);return a}function iH(t,e){return aH(e).test(t)}function aH(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 nE=d(()=>{s(sH,"globMatch");s(eE,"globFilter");s(rE,"expandBraces");s(iH,"matchOne");s(aH,"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(eE(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(()=>{nE();s(J,"validateRules");});function sE(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:On}))}var iE=d(()=>{Ct();dl();s(sE,"lintRules");});function D(t,e,r){return {level:"warning",file:t,target:e,message:r}}function lH(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 Ds(t,e,r,n){let o=n?.unsupportedBy??e,i=lH(r);return D(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${i} are projected.`)}var wt=d(()=>{s(D,"createWarning");s(lH,"formatOxfordComma");s(Ds,"createUnsupportedHookWarning");});function aE(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 lE(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 cE(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 mE=d(()=>{wt();s(aE,"lintHooks");s(lE,"lintPermissions");s(cE,"lintMcp");});function E(t,e){return at(t).relative(t,e).replace(/\\/g,"/")}async function L(t,e){return G(at(t).join(t,e)).catch(()=>[])}function uE(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function fH(t,e,r,n){let o=posix.dirname(e),i=posix.dirname(r);for(;o!==n&&o!==".";)uE(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,`${pE}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(ll)?ll:o.startsWith(qc)?qc:null;if(l&&a==="SKILL.md"){t.set(e,`${uH}/${o.slice(l.length)}.md`);return}let c=o.startsWith(cl)?cl:o.startsWith(tm)?tm:null;if(c&&a==="SKILL.md"){t.set(e,`${dH}/${o.slice(c.length)}.md`);return}let m=`${pE}/${o}`;a==="SKILL.md"&&uE(t,`${r}/${o}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&fH(t,e,p,`${r}/${o}`);}function gH(t){return t.split("/").filter(Boolean)[0]??""}async function hH(){if(Rh!==void 0)return Rh;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(Tt(),dE)),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=gH(n);o.startsWith(".")&&e.add(o);}return Rh=e,e}function Sh(t){return t.split("/").some(e=>e.startsWith("."))}async function yH(t){let e=[],r=await hH(),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)||Sh(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)||Sh(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 Cu(t,e){let r=await yH(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(Sh(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${pH}/${c}.md`);}}var pH,uH,dH,pE,Rh,kt=d(()=>{pe();A();Lt();ut();pH=".agentsmesh/rules",uH=".agentsmesh/commands",dH=".agentsmesh/agents",pE=".agentsmesh/skills";s(E,"rel");s(L,"listFiles");s(uE,"addDirectoryMapping");s(fH,"addAncestorMappings");s(F,"addSimpleFileMapping");s($,"addSkillLikeMapping");s(gH,"firstPathSegment");s(hH,"targetRootSegments");s(Sh,"hasHiddenSegment");s(yH,"listScopedAgentsFiles");s(Cu,"addScopedAgentsMappings");});var w,lt,At,Rt=d(()=>{w=".agentsmesh/rules",lt=".agentsmesh/commands",At=".agentsmesh/agents";});async function Ch(t,e,r="project"){if(r==="global"){t.set(bo,`${w}/_root.md`);for(let n of await L(e,ar))$(t,E(e,n),ar);t.set(Di,".agentsmesh/ignore");return}t.set(ir,`${w}/_root.md`);for(let n of await L(e,me))$(t,E(e,n),me);t.set(Ao,".agentsmesh/ignore");}var fE=d(()=>{kt();dl();Rt();s(Ch,"buildAiderImportPaths");});var Ni,Jr,Fi,Ns,cm,gE,hE,mm=d(()=>{Ni="amazon-q",Jr=".amazonq/rules",Fi=".amazonq/mcp.json",Ns=".aws/amazonq/rules",cm=".aws/amazonq/mcp.json",gE=".agentsmesh/rules",hE=".agentsmesh/mcp.json";});async function kh(t,e,r="project"){let n=r==="global"?Ns:Jr;for(let o of await L(e,n)){let i=E(e,o);F(t,i,w,".md");}}var yE=d(()=>{kt();mm();Rt();s(kh,"buildAmazonQImportPaths");});var mr,ue,An,Eh,To,pr,xo,_E,vi=d(()=>{mr="AGENTS.md",ue=".agents/skills",An=".amp/settings.json",Eh=".config/amp",To=`${Eh}/AGENTS.md`,pr=`${Eh}/skills`,xo=`${Eh}/settings.json`,_E=".agentsmesh/rules";});async function Lh(t,e,r="project"){if(r==="global"){t.set(To,`${w}/_root.md`);for(let n of await L(e,pr))$(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,ue))$(t,E(e,n),ue);t.set(An,".agentsmesh/mcp.json");}var RE=d(()=>{kt();vi();Rt();s(Lh,"buildAmpImportPaths");});var Mi,ku,Yr,ur,pm,Xr,bn,um,Pn,Tn,dm,yl,Oh,$i,Eu,IE,Gi=d(()=>{Mi="antigravity",ku=".agents",Yr=`${ku}/rules`,ur=`${Yr}/general.md`,pm=`${Yr}/_root.md`,Xr=`${ku}/skills`,bn=`${ku}/workflows`,um=`${ku}/antigravity/mcp_config.json`,Pn=".gemini/antigravity/GEMINI.md",Tn=".gemini/antigravity/skills",dm=".gemini/antigravity/workflows",yl=".gemini/antigravity/mcp_config.json",Oh=".agentsmesh/rules/_root.md",$i=".agentsmesh/rules",Eu=".agentsmesh/commands",IE=".agentsmesh/mcp.json";});async function wh(t,e,r="project"){if(r==="global"){t.set(Pn,`${w}/_root.md`);for(let n of await L(e,Tn))$(t,E(e,n),Tn);t.set(yl,".agentsmesh/mcp.json");return}t.set(ur,`${w}/_root.md`),t.set(pm,`${w}/_root.md`);for(let n of await L(e,Yr)){let o=E(e,n);o===ur||o===pm||F(t,o,w,".md");}for(let n of await L(e,bn))F(t,E(e,n),lt,".md");for(let n of await L(e,Xr))$(t,E(e,n),Xr);}var SE=d(()=>{kt();Gi();Rt();s(wh,"buildAntigravityImportPaths");});var de,Lu,$e,dr,Ge,xn,Dn,Ou,Do,No,Nn,Fo,Ah,bh,Ph,Th,ji=d(()=>{de="augment-code",Lu=".augment",$e=`${Lu}/rules`,dr=`${Lu}/commands`,Ge=`${Lu}/skills`,xn=`${Lu}/settings.json`,Dn=".augmentignore",Ou=".augment",Do=`${Ou}/rules`,No=`${Ou}/commands`,Nn=`${Ou}/skills`,Fo=`${Ou}/settings.json`,Ah=".agentsmesh/rules",bh=".agentsmesh/mcp.json",Ph=".agentsmesh/hooks.yaml",Th=".agentsmesh/ignore";});async function xh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Do))F(t,E(e,n),w,".md");for(let n of await L(e,No))F(t,E(e,n),lt,".md");for(let n of await L(e,Nn))$(t,E(e,n),Nn);t.set(Fo,".agentsmesh/mcp.json");return}for(let n of await L(e,$e))F(t,E(e,n),w,".md");for(let n of await L(e,dr))F(t,E(e,n),lt,".md");for(let n of await L(e,Ge))$(t,E(e,n),Ge);t.set(xn,".agentsmesh/mcp.json"),t.set(Dn,".agentsmesh/ignore");}var CE=d(()=>{kt();ji();Rt();s(xh,"buildAugmentCodeImportPaths");});var kE,Fs,EE,fm,gm,hm,ym,_m,vo,Dh,Rm,_l,Im,Sm,wu,Au,Nh,Cm,Fh,Ui,LE,Mo=d(()=>{kE="claude-code",Fs=".claude/CLAUDE.md",EE="CLAUDE.md",fm=".claude/rules",gm=".claude/commands",hm=".claude/agents",ym=".claude/skills",_m=".claude/settings.json",vo=".claude/hooks.json",Dh=".claude/output-styles",Rm=".claudeignore",_l=".mcp.json",Im=".claude.json",Sm=".agentsmesh/rules",wu=".agentsmesh/commands",Au=".agentsmesh/agents",Nh=".agentsmesh/skills",Cm=".agentsmesh/mcp.json",Fh=".agentsmesh/permissions.yaml",Ui=".agentsmesh/hooks.yaml",LE=".agentsmesh/ignore";});async function vh(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${w}/_root.md`),t.set(vo,Ui),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),lt,".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 OE=d(()=>{kt();Mo();Rt();s(vh,"buildClaudeCodeImportPaths");});var vs,$o,Bi,Go,wE,te,Fn,Ms,Ki,Wi,Hi,zi,Mh,$s,bu,$h,Gh,AE,bE,fr=d(()=>{vs="cline",$o=".clinerules",Bi=".clineignore",Go=".cline/cline_mcp_settings.json",wE=".cline/mcp_settings.json",te=".cline/skills",Fn=".clinerules/workflows",Ms="AGENTS.md",Ki=".clinerules/hooks",Wi="Documents/Cline/Rules",Hi="Documents/Cline/Workflows",zi="Documents/Cline/Hooks",Mh=".agentsmesh/hooks.yaml",$s=".agentsmesh/rules",bu=".agentsmesh/commands",$h=".agentsmesh/ignore",Gh=".agentsmesh/mcp.json",AE=".agentsmesh/agents",bE=".agentsmesh/skills";});async function jh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Wi))F(t,E(e,n),w,".md");for(let n of await L(e,Hi))F(t,E(e,n),lt,".md");for(let n of await L(e,te))$(t,E(e,n),te);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"||F(t,o,w,".md");}for(let n of await L(e,".clinerules/workflows"))F(t,E(e,n),lt,".md");for(let n of await L(e,".cline/skills"))$(t,E(e,n),".cline/skills");}var PE=d(()=>{kt();fr();Rt();s(jh,"buildClineImportPaths");});async function Uh(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 Cu(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 TE=d(()=>{kt();Rt();s(Uh,"buildCodexCliImportPaths");});var Rl,Zr,vn,Bh,Pu,jo,Kh,je,Il,km,Tu,xu,Wh,Mn=d(()=>{Rl="continue",Zr=".continue/rules",vn=".continue/prompts",Bh=".continue/mcpServers",Pu=`${Bh}/agentsmesh.json`,jo=`${Zr}/general.md`,Kh=`${Zr}/_root.md`,je=".continue/skills",Il=".continue/AGENTS.md",km=".continue/config.yaml",Tu=".agentsmesh/rules",xu=".agentsmesh/commands",Wh=".agentsmesh/mcp.json";});async function Hh(t,e,r="project"){t.set(jo,`${w}/_root.md`),t.set(Kh,`${w}/_root.md`);for(let n of await L(e,".continue/rules")){let o=E(e,n);o===jo||o===Kh||F(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"))$(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 xE=d(()=>{kt();Mn();Rt();s(Hh,"buildContinueImportPaths");});function IH(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${w}/${basename(e,".instructions.md")}.md`);return}F(t,e,w,".md");}async function zh(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"))IH(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"))$(t,E(e,r),".github/skills");}var DE=d(()=>{kt();Rt();s(IH,"addCopilotInstructionMapping");s(zh,"buildCopilotImportPaths");});var gr,hr,ee,Ue,Uo,NE,Nu,Be,Vi,Fu,vu,Mu,Sl=d(()=>{gr="crush",hr="CRUSH.md",ee=".crush/skills",Ue="crush.json",Uo=".crushignore",NE=".config/crush",Nu=`${NE}/crush.json`,Be=".config/crush/skills",Vi=`${NE}/CRUSH.md`,Fu=".agentsmesh/rules",vu=".agentsmesh/ignore",Mu=".agentsmesh/mcp.json";});async function Vh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Be))$(t,E(e,n),Be);return}t.set(hr,`${Fu}/_root.md`),t.set(Ue,Mu),t.set(Uo,vu);for(let n of await L(e,ee))$(t,E(e,n),ee);}var FE=d(()=>{kt();Sl();s(Vh,"buildCrushImportPaths");});var vE,Gs,ME,yr,Bo,_r,Rr,fe,Ke,$n,$u,Qr,Jh,SH,Cl,qr,Gn,js,Us,$E,kl,Yh,Em,Xh,zt=d(()=>{vE="cursor",Gs="AGENTS.md",ME=".cursorrules",yr=".cursor/rules",Bo=`${yr}/general.mdc`,_r=".cursor/commands",Rr=".cursor/agents",fe=".cursor/skills",Ke=".cursor/mcp.json",$n=".cursor/hooks.json",$u=".cursor/settings.json",Qr=".cursorignore",Jh=".cursorindexingignore",SH=".agentsmesh-exports/cursor",Cl=`${SH}/user-rules.md`,qr=".cursor/AGENTS.md",Gn=".agentsmesh/rules",js=".agentsmesh/commands",Us=".agentsmesh/agents",$E=".agentsmesh/skills",kl=".agentsmesh/mcp.json",Yh=".agentsmesh/permissions.yaml",Em=".agentsmesh/hooks.yaml",Xh=".agentsmesh/ignore";});async function Zh(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"))F(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))F(t,E(e,n),lt,".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),lt,".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 GE=d(()=>{kt();zt();Rt();s(Zh,"buildCursorImportPaths");});var jn,Ir,ge,Ko,Wo,tn,Ji,jE,El=d(()=>{jn="deepagents-cli",Ir=".deepagents/AGENTS.md",ge=".deepagents/skills",Ko=".mcp.json",Wo=".deepagents/AGENTS.md",tn=".deepagents/skills",Ji=".deepagents/.mcp.json",jE=".agentsmesh/rules";});async function Qh(t,e,r="project"){if(r==="global"){t.set(Wo,`${w}/_root.md`);for(let n of await L(e,tn))$(t,E(e,n),tn);t.set(Ji,".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(Ko,".agentsmesh/mcp.json");}var UE=d(()=>{kt();El();Rt();s(Qh,"buildDeepagentsCliImportPaths");});var Sr,Cr,Ae,Un,Bn,Ho,Kn,Yi,Bs,BE,Xi=d(()=>{Sr="factory-droid",Cr="AGENTS.md",Ae=".factory/skills",Un=".factory/droids",Bn=".factory/mcp.json",Ho=".factory/AGENTS.md",Kn=".factory/skills",Yi=".factory/droids",Bs=".factory/mcp.json",BE=".agentsmesh/rules";});async function qh(t,e,r="project"){if(r==="global"){t.set(Ho,`${w}/_root.md`);for(let n of await L(e,Yi))F(t,E(e,n),At,".md");for(let n of await L(e,Kn))$(t,E(e,n),Kn);t.set(Bs,".agentsmesh/mcp.json");return}t.set(Cr,`${w}/_root.md`);for(let n of await L(e,Un))F(t,E(e,n),At,".md");for(let n of await L(e,Ae))$(t,E(e,n),Ae);t.set(Bn,".agentsmesh/mcp.json");}var KE=d(()=>{kt();Xi();Rt();s(qh,"buildFactoryDroidImportPaths");});async function ty(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,`${lt}/${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 WE=d(()=>{kt();Rt();s(ty,"buildGeminiCliImportPaths");});var Wn,kr,be,zo,HE,Vo,Zi,Er,zE,VE,Ll=d(()=>{Wn="goose",kr=".goosehints",be=".agents/skills",zo=".gooseignore",HE=".config/goose",Vo=`${HE}/.goosehints`,Zi=`${HE}/.gooseignore`,Er=".agents/skills",zE=".agentsmesh/rules",VE=".agentsmesh/ignore";});async function ey(t,e,r="project"){if(r==="global"){t.set(Vo,`${w}/_root.md`);for(let n of await L(e,Er))$(t,E(e,n),Er);t.set(Zi,".agentsmesh/ignore");return}t.set(kr,`${w}/_root.md`);for(let n of await L(e,be))$(t,E(e,n),be);t.set(zo,".agentsmesh/ignore");}var JE=d(()=>{kt();Ll();Rt();s(ey,"buildGooseImportPaths");});var Jo,en,YE,Ol=d(()=>{Jo="jules",en="AGENTS.md",YE=".agentsmesh/rules";});async function ry(t,e,r="project"){r!=="global"&&t.set(en,`${w}/_root.md`);}var XE=d(()=>{Ol();Rt();s(ry,"buildJulesImportPaths");});var Qi,Ks,Gu,ZE,Hn,QE,CH,Lm,qi,Om,wl,Al,wm,Am,bm,Pm,Tm,kH,ju,ta,qE,ny,Uu,tL,eL,rL,nL,bl=d(()=>{Qi="junie",Ks=".junie",Gu=`${Ks}/guidelines.md`,ZE=`${Ks}/ci-guidelines.md`,Hn=`${Ks}/AGENTS.md`,QE="AGENTS.md",CH=`${Ks}/mcp`,Lm=`${CH}/mcp.json`,qi=`${Ks}/skills`,Om=`${Ks}/rules`,wl=`${Ks}/commands`,Al=`${Ks}/agents`,wm=".aiignore",Am=".junie",bm=`${Am}/skills`,Pm=`${Am}/agents`,Tm=`${Am}/commands`,kH=`${Am}/mcp`,ju=`${kH}/mcp.json`,ta=`${Am}/AGENTS.md`,qE=".agents/skills",ny=".agentsmesh/rules/_root.md",Uu=".agentsmesh/rules",tL=".agentsmesh/commands",eL=".agentsmesh/agents",rL=".agentsmesh/mcp.json",nL=".agentsmesh/ignore";});async function oy(t,e){t.set(Gu,`${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"))F(t,E(e,r),w,".md");for(let r of await L(e,".junie/commands"))F(t,E(e,r),lt,".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 oL=d(()=>{kt();bl();Rt();s(oy,"buildJunieImportPaths");});var Se,xm,zn,Yo,Xo,Zo,rn,Ws,Pl,Bu,ea,Tl,ra,Dm,Ku,xl,Hs,na,oa,sa,zs,Dl,Wu,sL,Vs,Nl,ia,iL,aL,aa=d(()=>{Se="kilo-code",xm=".kilo",zn="AGENTS.md",Yo=`${xm}/rules`,Xo=`${xm}/commands`,Zo=`${xm}/agents`,rn=`${xm}/skills`,Ws=`${xm}/mcp.json`,Pl=".kilocodeignore",Bu=".kilocode",ea=`${Bu}/rules`,Tl=`${Bu}/workflows`,ra=`${Bu}/skills`,Dm=`${Bu}/mcp.json`,Ku=".kilocodemodes",xl=".kilo",Hs=`${xl}/AGENTS.md`,na=`${xl}/rules`,oa=`${xl}/commands`,sa=`${xl}/agents`,zs=`${xl}/skills`,Dl=`${xl}/mcp.json`,Wu=".kilocodeignore",sL=".agents/skills",Vs=".agentsmesh/rules",Nl=".agentsmesh/commands",ia=".agentsmesh/agents",iL=".agentsmesh/mcp.json",aL=".agentsmesh/ignore";});async function sy(t,e,r="project"){if(r==="global"){t.set(Hs,`${w}/_root.md`);for(let n of await L(e,na))F(t,E(e,n),w,".md");for(let n of await L(e,oa))F(t,E(e,n),lt,".md");for(let n of await L(e,sa))F(t,E(e,n),At,".md");for(let n of await L(e,zs))$(t,E(e,n),zs);t.set(Dl,".agentsmesh/mcp.json");return}t.set(zn,`${w}/_root.md`);for(let n of await L(e,Yo))F(t,E(e,n),w,".md");for(let n of await L(e,Xo))F(t,E(e,n),lt,".md");for(let n of await L(e,Zo))F(t,E(e,n),At,".md");for(let n of await L(e,rn))$(t,E(e,n),rn);t.set(Ws,".agentsmesh/mcp.json");for(let n of await L(e,ea)){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,Tl))F(t,E(e,n),lt,".md");for(let n of await L(e,ra))$(t,E(e,n),ra);t.set(Dm,".agentsmesh/mcp.json");}var lL=d(()=>{kt();aa();Rt();s(sy,"buildKiloCodeImportPaths");});var We,nn,Nm,on,Ce,sn,Js,LH,Fl,vl,la,an,Ys,ca,Fm,vm,cL,iy,ay,mL,pL,ly,uL,Ml=d(()=>{We="kiro",nn="AGENTS.md",Nm=".kiro",on=`${Nm}/steering`,Ce=`${Nm}/skills`,sn=`${Nm}/agents`,Js=`${Nm}/hooks`,LH=`${Nm}/settings`,Fl=`${LH}/mcp.json`,vl=".kiroignore",la=".kiro/steering",an=".kiro/steering/AGENTS.md",Ys=".kiro/skills",ca=".kiro/agents",Fm=".kiro/settings/mcp.json",vm=".kiro/settings/kiroignore",cL=".agents/skills",iy=".agentsmesh/rules/_root.md",ay=".agentsmesh/rules",mL=".agentsmesh/agents",pL=".agentsmesh/mcp.json",ly=".agentsmesh/hooks.yaml",uL=".agentsmesh/ignore";});async function cy(t,e,r="project"){if(r==="global"){t.set(an,`${w}/_root.md`);for(let n of await L(e,la)){let o=E(e,n);o!==an&&F(t,o,w,".md");}for(let n of await L(e,Ys))$(t,E(e,n),Ys);for(let n of await L(e,ca))F(t,E(e,n),At,".md");return}t.set(nn,`${w}/_root.md`);for(let n of await L(e,on))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,sn))F(t,E(e,n),At,".md");}var dL=d(()=>{kt();Ml();Rt();s(cy,"buildKiroImportPaths");});var ln,Hu,Vn,Qo,qo,ts,cn,Jn,$l,Xs,ma,pa,ua,Zs,Qs,fL,Mm,zu,Vu,my,da=d(()=>{ln="opencode",Hu=".opencode",Vn="AGENTS.md",Qo=`${Hu}/rules`,qo=`${Hu}/commands`,ts=`${Hu}/agents`,cn=`${Hu}/skills`,Jn="opencode.json",$l=".config/opencode",Xs=`${$l}/AGENTS.md`,ma=`${$l}/rules`,pa=`${$l}/commands`,ua=`${$l}/agents`,Zs=`${$l}/skills`,Qs=`${$l}/opencode.json`,fL=".agents/skills",Mm=".agentsmesh/rules",zu=".agentsmesh/commands",Vu=".agentsmesh/agents",my=".agentsmesh/mcp.json";});async function py(t,e,r="project"){if(r==="global"){t.set(Xs,`${w}/_root.md`);for(let n of await L(e,ma))F(t,E(e,n),w,".md");for(let n of await L(e,pa))F(t,E(e,n),lt,".md");for(let n of await L(e,ua))F(t,E(e,n),At,".md");for(let n of await L(e,Zs))$(t,E(e,n),Zs);t.set(Qs,".agentsmesh/mcp.json");return}t.set(Vn,`${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,qo))F(t,E(e,n),lt,".md");for(let n of await L(e,ts))F(t,E(e,n),At,".md");for(let n of await L(e,cn))$(t,E(e,n),cn);t.set(Jn,".agentsmesh/mcp.json");}var gL=d(()=>{kt();da();Rt();s(py,"buildOpencodeImportPaths");});var Yn,Lr,re,hL,es,Or,yL,Gl=d(()=>{Yn="pi-agent",Lr="AGENTS.md",re=".pi/skills",hL=".pi/agent",es=`${hL}/AGENTS.md`,Or=`${hL}/skills`,yL=".agentsmesh/rules";});async function uy(t,e,r="project"){if(r==="global"){t.set(es,`${w}/_root.md`);for(let n of await L(e,Or))$(t,E(e,n),Or);return}t.set(Lr,`${w}/_root.md`);for(let n of await L(e,re))$(t,E(e,n),re);}var dy=d(()=>{kt();Gl();Rt();s(uy,"buildPiAgentImportPaths");});var Xn,wr,rs,Zn,Qn,He,qs,ti,ns,fa,ei,qn,ri,fy,_L,RL,jl=d(()=>{Xn="qwen-code",wr="QWEN.md",rs=".qwen/rules",Zn=".qwen/commands",Qn=".qwen/agents",He=".qwen/skills",qs=".qwen/settings.json",ti=".qwenignore",ns=".qwen/QWEN.md",fa=".qwen/settings.json",ei=".qwen/commands",qn=".qwen/skills",ri=".qwen/agents",fy=".agentsmesh/rules",_L=".agentsmesh/commands",RL=".agentsmesh/agents";});async function gy(t,e,r="project"){if(r==="global"){t.set(ns,`${w}/_root.md`),t.set(fa,".agentsmesh/mcp.json");for(let n of await L(e,ei))F(t,E(e,n),lt,".md");for(let n of await L(e,ri))F(t,E(e,n),At,".md");for(let n of await L(e,qn))$(t,E(e,n),qn);return}t.set(wr,`${w}/_root.md`),t.set(qs,".agentsmesh/mcp.json"),t.set(ti,".agentsmesh/ignore");for(let n of await L(e,rs))F(t,E(e,n),w,".md");for(let n of await L(e,Zn))F(t,E(e,n),lt,".md");for(let n of await L(e,Qn))F(t,E(e,n),At,".md");for(let n of await L(e,He))$(t,E(e,n),He);}var IL=d(()=>{kt();Rt();jl();s(gy,"buildQwenCodeImportPaths");});var to,mn,Pe,SL,Ul=d(()=>{to="replit-agent",mn="replit.md",Pe=".agents/skills",SL=".agentsmesh/rules";});async function hy(t,e,r="project"){if(r!=="global"){t.set(mn,`${w}/_root.md`);for(let n of await L(e,Pe))$(t,E(e,n),Pe);}}var yy=d(()=>{kt();Ul();Rt();s(hy,"buildReplitAgentImportPaths");});var ni,ga,pn,$m,os,ss,eo,Gm,jm,Bl,Um,Ju,oi,si,is,ha,Bm,ii,CL,ya,Yu,kL,EL,_a=d(()=>{ni="roo-code",ga=".roo",pn=`${ga}/rules/00-root.md`,$m=".roorules",os=`${ga}/rules`,ss=`${ga}/commands`,eo=`${ga}/skills`,Gm=`${ga}/mcp.json`,jm=".rooignore",Bl=".roomodes",Um="settings/custom_modes.yaml",Ju=".roo",oi=`${Ju}/rules`,si=`${Ju}/commands`,is=`${Ju}/skills`,ha="mcp_settings.json",Bm=".rooignore",ii=`${Ju}/AGENTS.md`,CL=".agents/skills",ya=".agentsmesh/rules",Yu=".agentsmesh/commands",kL=".agentsmesh/mcp.json",EL=".agentsmesh/ignore";});async function _y(t,e,r="project"){if(r==="global"){t.set(ii,`${w}/_root.md`);for(let n of await L(e,oi))F(t,E(e,n),w,".md");for(let n of await L(e,si))F(t,E(e,n),lt,".md");for(let n of await L(e,is))$(t,E(e,n),is);t.set(ha,".agentsmesh/mcp.json");return}t.set(pn,`${w}/_root.md`),t.set($m,`${w}/_root.md`);for(let n of await L(e,os)){let o=E(e,n);o!==pn&&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,ss))F(t,E(e,n),lt,".md");for(let n of await L(e,eo))$(t,E(e,n),eo);}var LL=d(()=>{kt();_a();Rt();s(_y,"buildRooCodeImportPaths");});var ro,Ar,OL,ne,as,wL,ls,ze,Kl,AL,Wl=d(()=>{ro="rovodev",Ar="AGENTS.md",OL=".rovodev",ne=`${OL}/skills`,as=`${OL}/mcp.json`,wL=".rovodev",ls=".rovodev/AGENTS.md",ze=".rovodev/skills",Kl=".rovodev/mcp.json",AL=".agentsmesh/rules";});async function Ry(t,e,r="project"){if(r==="global"){t.set(ls,`${w}/_root.md`);for(let n of await L(e,ze))$(t,E(e,n),ze);t.set(Kl,".agentsmesh/mcp.json");return}t.set(Ar,`${w}/_root.md`);for(let n of await L(e,ne))$(t,E(e,n),ne);t.set(as,".agentsmesh/mcp.json");}var bL=d(()=>{kt();Wl();Rt();s(Ry,"buildRovodevImportPaths");});var br,Xu,Ve,Je,Pr,Ra,Hl,cs,Tr,un,Km,PL,Wm,TL,xL,zl=d(()=>{br="trae",Xu=".trae",Ve=`${Xu}/rules`,Je=`${Ve}/project_rules.md`,Pr=`${Xu}/skills`,Ra=`${Xu}/mcp.json`,Hl=`${Xu}/.ignore`,cs=".trae/user_rules",Tr=".trae/user_rules/rules.md",un=".trae/skills",Km=".trae/mcp.json",PL=".agents/skills",Wm=".agentsmesh/rules",TL=".agentsmesh/mcp.json",xL=".agentsmesh/ignore";});async function Iy(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&&F(t,o,w,".md");}for(let n of await L(e,un))$(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&&F(t,o,w,".md");}for(let n of await L(e,Pr))$(t,E(e,n),Pr);}var DL=d(()=>{kt();zl();Rt();s(Iy,"buildTraeImportPaths");});var no,dn,Sy,he,ai,Ye,NL,Vl=d(()=>{no="warp",dn="AGENTS.md",Sy="WARP.md",he=".warp/skills",ai=".mcp.json",Ye=".warp/skills",NL=".agentsmesh/rules";});async function Cy(t,e,r="project"){if(r==="global"){for(let n of await L(e,Ye))$(t,E(e,n),Ye);return}t.set(dn,`${w}/_root.md`);for(let n of await L(e,he))$(t,E(e,n),he);t.set(ai,".agentsmesh/mcp.json");}var FL=d(()=>{kt();Vl();Rt();s(Cy,"buildWarpImportPaths");});async function ky(t,e){t.set("AGENTS.md",`${w}/_root.md`),t.set(".windsurfrules",`${w}/_root.md`),await Cu(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),lt,".md");for(let r of await L(e,".windsurf/skills"))$(t,E(e,r),".windsurf/skills");}var vL=d(()=>{kt();Rt();s(ky,"buildWindsurfImportPaths");});var fn,oo,OH,so,ML,Ia=d(()=>{fn=".rules",oo=".zed/settings.json",OH=".config/zed",so=`${OH}/settings.json`,ML=".agentsmesh/rules";});async function Ey(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 $L=d(()=>{Ia();Rt();s(Ey,"buildZedImportPaths");});var GL=d(()=>{fE();yE();RE();SE();CE();OE();PE();TE();xE();DE();FE();GE();UE();KE();WE();JE();XE();oL();lL();dL();gL();dy();IL();yy();LL();bL();DL();FL();vL();$L();});var Et=d(()=>{GL();});var wH,AH,bH,jL,Su,_h=d(()=>{Lt();ut();gk();tE();iE();mE();Et();dl();wH={name:On,primaryRootInstructionPath:ir,generateRules:mk,generateCommands:uk,generateAgents:dk,generateSkills:pk,generateIgnore:fk,importFrom:qk},AH={rootInstructionPath:ir,skillDir:me,managedOutputs:{dirs:[me],files:[ir,Ao]},paths:{rulePath(t){return ir},commandPath(t){return `${me}/${V(t)}/SKILL.md`},agentPath(t){return `${me}/${K(t)}/SKILL.md`}}},bH={rootInstructionPath:bo,skillDir:ar,managedOutputs:{dirs:[ar],files:[bo,Di]},rewriteGeneratedPath(t){return t===ir?bo:t===Ao?Di:t.startsWith(`${me}/`)?t.replace(`${me}/`,`${ar}/`):t},paths:{rulePath(t){return bo},commandPath(t){return `${ar}/${V(t)}/SKILL.md`},agentPath(t){return `${ar}/${K(t)}/SKILL.md`}}},jL={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Su={id:On,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:wH,capabilities:jL,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:sE,lint:{hooks:aE,permissions:lE,mcp:cE},supportsConversion:{commands:true,agents:true},project:AH,globalSupport:{capabilities:jL,detectionPaths:[bo,Di,ar],layout:bH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ir],global:[bo]},canonicalDir:lk,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ao],global:[Di]},canonicalDir:".agentsmesh",canonicalFilename:ck}},buildImportPaths:Ch,detectionPaths:[ir,Ao]};});function UL(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(Ni))continue;let n=r.root?"_root":basename(r.source,".md");e.push({path:`${Jr}/${n}.md`,content:r.body.trim()});}return e}function BL(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Fi,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var KL=d(()=>{mm();s(UL,"generateRules");s(BL,"generateMcp");});async function WL(t,e){let r=e?.scope??"project";return Y(Zu,t,r)}var HL=d(()=>{Ot();Ly();s(WL,"importFromAmazonQ");});function zL(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ni}))}var VL=d(()=>{Ct();mm();s(zL,"lintRules");});var TH,xH,DH,NH,Zu,Ly=d(()=>{KL();HL();VL();Et();mm();TH={name:Ni,generateRules:UL,generateMcp:BL,importFrom:WL},xH={managedOutputs:{dirs:[Jr],files:[Fi]},paths:{rulePath(t,e){return `${Jr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},DH={managedOutputs:{dirs:[Ns],files:[cm]},rewriteGeneratedPath(t){return t.startsWith(`${Jr}/`)?t.replace(`${Jr}/`,`${Ns}/`):t===Fi?cm:t},paths:{rulePath(t,e){return `${Ns}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},NH={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Zu={id:Ni,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:TH,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:zL,project:xH,globalSupport:{capabilities:NH,detectionPaths:[Ns,cm],layout:DH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Jr],global:[Ns]},canonicalDir:gE,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Fi],global:[cm]},canonicalDir:".agentsmesh",canonicalFilename:hE}},buildImportPaths:kh,detectionPaths:[Jr,Fi]};});function JL(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 YL(t){return st(t,ue)}function XL(t){return t.commands.map(e=>({path:`${ue}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function ZL(t){return t.agents.map(e=>({path:`${ue}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var QL=d(()=>{rt();Wt();ut();Lt();vi();s(JL,"generateRules");s(YL,"generateSkills");s(XL,"generateCommands");s(ZL,"generateAgents");});function dt(t,e,r){let n=r.some(o=>FH.includes(o));return t.startsWith(`${e}/`)&&!n?`.agents/skills/${t.slice(e.length+1)}`:null}var FH,oe=d(()=>{FH=["amp","antigravity","codex-cli","goose","replit-agent"];s(dt,"mirrorSkillsToAgents");});async function tO(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,qL,l),r.push({fromTool:"amp",fromPath:e,toPath:qL,feature:"mcp"}));}var qL,eO=d(()=>{A();Vr();vi();qL=".agentsmesh/mcp.json";s(tO,"importAmpMcp");});async function rO(t,e={}){let r=e.scope??"project",n=[],o=await W("amp",t,r);return n.push(...await Y(Qu,t,r,{normalize:o})),await et(t,r==="global"?pr:ue,"amp",n,o),await tO(t,r==="global"?xo:An,n),n}var nO=d(()=>{gt();rt();Ot();eO();vi();Oy();s(rO,"importFromAmp");});function oO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var sO=d(()=>{Ct();vi();s(oO,"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 aO(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 lO(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 cO=d(()=>{wt();s(iO,"lintHooks");s(aO,"lintPermissions");s(lO,"lintIgnore");});function jH(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 MH,$H,GH,mO,Qu,Oy=d(()=>{Lt();ut();QL();oe();nO();sO();cO();Et();vi();MH={name:"amp",primaryRootInstructionPath:mr,generateRules:JL,generateCommands:XL,generateAgents:ZL,generateSkills:YL,importFrom:rO},$H={rootInstructionPath:mr,skillDir:ue,managedOutputs:{dirs:[ue],files:[mr,An]},paths:{rulePath(t){return mr},commandPath(t){return `${ue}/${V(t)}/SKILL.md`},agentPath(t){return `${ue}/${K(t)}/SKILL.md`}}},GH={rootInstructionPath:To,skillDir:pr,managedOutputs:{dirs:[pr],files:[To,xo]},rewriteGeneratedPath(t){return t===mr?To:t===An?xo:t.startsWith(`${ue}/`)?t.replace(`${ue}/`,`${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}/${K(t)}/SKILL.md`}}},mO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(jH,"mergeAmpSettings");Qu={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:MH,capabilities:mO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:oO,lint:{hooks:iO,permissions:aO,ignore:lO},supportsConversion:{commands:true,agents:true},project:$H,globalSupport:{capabilities:mO,detectionPaths:[To,xo],layout:GH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[mr],global:[To]},canonicalDir:_E,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?jH(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:Lh,detectionPaths:[mr,An],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function pO(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 uO(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
59
61
|
|
|
60
|
-
${n}`:n||r;return {path:`${
|
|
61
|
-
`)}]}var
|
|
62
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(t,
|
|
63
|
-
`)),r.push({fromTool:
|
|
62
|
+
${n}`:n||r;return {path:`${bn}/${e.name}.md`,content:o}})}function dO(t){return st(t,Xr)}function fO(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:um,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function gO(t){return t.agents.map(e=>({path:`${Xr}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function hO(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 mt(e?.body.trim()??"",r)}var yO=d(()=>{rt();Wt();ut();Gi();s(pO,"generateRules");s(uO,"generateCommands");s(dO,"generateSkills");s(fO,"generateMcp");s(gO,"generateAgents");s(hO,"renderAntigravityGlobalInstructions");});function BH(t){let e=t.replace(/\\/g,"/");return !e.startsWith("rules/")||e.endsWith("/")||!e.endsWith(".md")?null:e}async function io(t){let e=qC(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=BH(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 S(i,m),r.push({fromTool:t.fromTool,fromPath:t.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:e.rootContent,results:r}}var Jl=d(()=>{A();U();Wt();ft();s(BH,"canonicalRulePath");s(io,"splitEmbeddedRulesToCanonical");});async function KH(t,e,r,n){let o=n==="global"?Pn:ur,i=n==="project"?[o,pm]:[o];for(let a of i){let l=join(t,a),c=await _(l);if(c===null)continue;let m=join(t,Oh),p=await io({content:c,projectRoot:t,rulesDir:$i,sourcePath:l,fromTool:Mi,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,$i)),await S(m,f),e.push({fromTool:Mi,fromPath:l,toPath:Oh,feature:"rules"});return}}async function RO(t,e={}){let r=e.scope??"project",n=[],o=await W(Mi,t,r);return await KH(t,n,o,r),n.push(...await Y(qu,t,r,{normalize:o})),await et(t,r==="global"?Tn:Xr,Mi,n,o),n}var IO=d(()=>{gt();A();U();rt();Ot();ft();Jl();Gi();Ay();s(KH,"importRootRule");s(RO,"importFromAntigravity");});var kO,EO,LO=d(()=>{U();ft();Gi();kO=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:`${$i}/${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"),EO=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Eu}/${t}`,content:await It(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function OO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Mi}))}var wO=d(()=>{Ct();Gi();s(OO,"lintRules");});var WH,HH,zH,VH,qu,Ay=d(()=>{xi();ut();yO();Gi();IO();LO();wO();Et();WH={name:"antigravity",primaryRootInstructionPath:ur,generateRules:pO,generateCommands:uO,generateAgents:gO,generateSkills:dO,generateMcp:fO,importFrom:RO},HH={rootInstructionPath:ur,skillDir:".agents/skills",managedOutputs:{dirs:[Yr,bn,Xr],files:[ur]},rewriteGeneratedPath(t){return t===um?null:t},paths:{rulePath(t,e){return `${Yr}/${t}.md`},commandPath(t,e){return `${bn}/${t}.md`},agentPath(t){return `${Xr}/${K(t)}/SKILL.md`}}},zH={rootInstructionPath:Pn,renderPrimaryRootInstruction:hO,skillDir:Tn,managedOutputs:{dirs:[Tn,dm],files:[Pn,yl]},rewriteGeneratedPath(t){return t===ur?Pn:t.startsWith(`${Yr}/`)?null:t.startsWith(".agents/skills/")?t.replace(".agents/skills",Tn):t.startsWith(`${bn}/`)?t.replace(bn,dm):t===um?yl:t},paths:{rulePath(t,e){return Pn},commandPath(t,e){return `${dm}/${t}.md`},agentPath(t){return `${Tn}/${K(t)}/SKILL.md`}}},VH={rules:"native",additionalRules:"embedded",commands:Kr("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},qu={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:WH,capabilities:{rules:"native",additionalRules:"native",commands:Kr("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:OO,project:HH,globalSupport:{capabilities:VH,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:zH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Yr]},canonicalDir:$i,extensions:[".md"],map:kO},commands:{feature:"commands",mode:"directory",source:{project:[bn],global:[dm]},canonicalDir:Eu,extensions:[".md"],map:EO},mcp:{feature:"mcp",mode:"flatFile",source:{global:[yl]},canonicalDir:".agentsmesh",canonicalFilename:IE}},buildImportPaths:wh,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function YH(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 XH(t){let e={};return t.description&&(e.description=t.description),e}function AO(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:`${$e}/_root.md`,content:x(n,r.body.trim())});}else {let n=basename(r.source,".md");e.push({path:`${$e}/${n}.md`,content:x(YH(r),r.body.trim())});}return e}function bO(t){return t.commands.map(e=>({path:`${dr}/${e.name}.md`,content:x(XH(e),e.body.trim())}))}function PO(t){return st(t,Ge)}function TO(t){return t.ignore.length===0?[]:[{path:Dn,content:t.ignore.join(`
|
|
63
|
+
`)}]}var xO=d(()=>{rt();U();ji();s(YH,"ruleFrontmatter");s(XH,"commandFrontmatter");s(AO,"generateRules");s(bO,"generateCommands");s(PO,"generateSkills");s(TO,"generateIgnore");});function QH(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 NO(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,bh,a),r.push({fromTool:de,fromPath:join(t,e),toPath:bh,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=QH(i);if(Object.keys(a).length>0){let l=join(t,Ph);await O(dirname(l)),await S(l,stringify(a)),r.push({fromTool:de,fromPath:join(t,e),toPath:Ph,feature:"hooks"});}}}async function FO(t,e,r){let n=await _(join(t,e));if(n===null)return;let o=n.split(`
|
|
64
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(t,Th);await O(dirname(i)),await S(i,o.join(`
|
|
65
|
+
`)),r.push({fromTool:de,fromPath:join(t,e),toPath:Th,feature:"ignore"});}var vO=d(()=>{A();Vr();ji();s(QH,"augmentHooksToCanonical");s(NO,"importAugmentSettings");s(FO,"importAugmentIgnore");});function qH(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 tz(t,e,r,n){let o=n==="global"?Do:$e,i=join(t,Ah);e.push(...await St({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:`${Ah}/${a}`,feature:"rules",content:await z(m,qH(p,c),u)}},"mapEntry")}));}async function ez(t,e,r,n){let o=n==="global"?No:dr,i=join(t,".agentsmesh/commands");e.push(...await St({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 It(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function $O(t,e={}){let r=e.scope??"project",n=[],o=await W(de,t,r);return await tz(t,n,o,r),await ez(t,n,o,r),await et(t,r==="global"?Nn:Ge,de,n,o),await NO(t,r==="global"?Fo:xn,n),r==="project"&&await FO(t,Dn,n),n}var GO=d(()=>{gt();Me();rt();ft();U();vO();ji();s(qH,"canonicalRuleMeta");s(tz,"importRules");s(ez,"importCommands");s($O,"importFromAugmentCode");});function jO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:de}))}var UO=d(()=>{Ct();ji();s(jO,"lintRules");});function KO(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=new Set(BO);return Object.keys(t.hooks).filter(r=>!e.has(r)).map(r=>Ds(r,"augment-code",BO,{unsupportedBy:"AugmentCode hooks"}))}var BO,WO=d(()=>{wt();BO=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(KO,"lintHooks");});function nz(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 oz(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 sz(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=nz(t.hooks)),Object.keys(e).length===0?null:JSON.stringify(e,null,2)}var rz,iz,az,lz,cz,HO,zO=d(()=>{xO();GO();UO();WO();Et();ji();rz={name:de,generateRules:AO,generateCommands:bO,generateSkills:PO,generateIgnore:TO,importFrom:$O};s(nz,"serializeHooksForSettings");s(oz,"mergeAugmentSettings");s(sz,"buildSettingsContent");iz={skillDir:Ge,managedOutputs:{dirs:[$e,dr,Ge],files:[xn,Dn]},paths:{rulePath(t){return `${$e}/${t}.md`},commandPath(t){return `${dr}/${t}.md`},agentPath(t){return null}}},az={skillDir:Nn,managedOutputs:{dirs:[Do,No,Nn],files:[Fo]},rewriteGeneratedPath(t){return t.startsWith(`${$e}/`)?t.replace(`${$e}/`,`${Do}/`):t.startsWith(`${dr}/`)?t.replace(`${dr}/`,`${No}/`):t.startsWith(`${Ge}/`)?t.replace(`${Ge}/`,`${Nn}/`):t===xn?Fo:t===Dn?null:t},paths:{rulePath(t){return `${Do}/${t}.md`},commandPath(t){return `${No}/${t}.md`},agentPath(t){return null}}},lz={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},cz={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},HO={id:de,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:rz,capabilities:lz,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:jO,lint:{hooks:KO},project:iz,globalSupport:{capabilities:cz,detectionPaths:[Do,No,Nn,Fo],layout:az},emitScopedSettings(t){let e=sz(t);return e===null?[]:[{path:xn,content:e}]},mergeGeneratedOutputContent(t,e,r,n){return n===xn||n===Fo?oz(t,r):null},buildImportPaths:xh,detectionPaths:[$e,dr,Ge,xn,Dn]};});function VO(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(!kn(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 JO=d(()=>{Ur();s(VO,"buildClaudeHooksObjectFromCanonical");});function YO(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Fs,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=x(a,o.body.trim()||"");e.push({path:`${fm}/${i}.md`,content:l});}return e}function XO(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=x(r,e.body.trim()||"");return {path:`${gm}/${e.name}.md`,content:n}})}function ZO(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
|
|
64
66
|
|
|
65
|
-
${n}`,i=
|
|
67
|
+
${n}`,i=x(r,o);return {path:`${hm}/${e.name}.md`,content:i}})}function QO(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:_l,content:e}]}function qO(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
|
|
66
68
|
|
|
67
|
-
${o}`,a=
|
|
68
|
-
`);return [{path:
|
|
69
|
+
${o}`,a=x(n,i);e.push({path:`${ym}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");e.push({path:`${ym}/${r.name}/${c}`,content:l.content});}}return e}function tw(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:_m,content:o}]}function ew(t,e){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let r=VO(t);if(Object.keys(r).length===0)return [];if(e?.scope==="global")return [{path:vo,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:_m,content:n}]}function rw(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
70
|
+
`);return [{path:Rm,content:e}]}var nw=d(()=>{U();Mo();JO();s(YO,"generateRules");s(XO,"generateCommands");s(ZO,"generateAgents");s(QO,"generateMcp");s(qO,"generateSkills");s(tw,"generatePermissions");s(ew,"generateHooks");s(rw,"generateIgnore");});function uz(t){let e=t.description.trim();return e||(basename(t.source)||"rule").replace(/\.md$/i,"")||"Rule"}function ow(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
69
71
|
|
|
70
|
-
## ${e?
|
|
72
|
+
## ${e?uz(e):"Guidance"}
|
|
71
73
|
|
|
72
74
|
${r}
|
|
73
|
-
`:""}var
|
|
74
|
-
`);continue}let h=await
|
|
75
|
+
`:""}var sw=d(()=>{s(uz,"ruleSectionTitle");s(ow,"renderClaudeGlobalPrimaryInstructions");});function aw(t,e){return t===null?"created":t!==e?"updated":"unchanged"}async function lw(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=x(c,l.body.trim()),p=`${Dh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:aw(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=x(c,l.body.trim()),p=`${Dh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:aw(u,m)});}return a}var cw=d(()=>{A();U();Mo();s(aw,"computeStatus");s(lw,"generateClaudeGlobalExtras");});function mw(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(!kn({...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 pw(t,e){let r=join(t,vo),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=mw(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(t,Ui);return await O(dirname(l)),await S(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:Ui,feature:"hooks"}),true}async function uw(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(vo)),n=join(t,_m),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,Cm,m),e.push({fromTool:"claude-code",fromPath:n,toPath:Cm,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,Fh);await O(dirname(h)),await S(h,g),e.push({fromTool:"claude-code",fromPath:n,toPath:Fh,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=mw(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(t,Ui);await O(dirname(u)),await S(u,p),e.push({fromTool:"claude-code",fromPath:n,toPath:Ui,feature:"hooks"});}}}var dw=d(()=>{Ur();A();Vr();Mo();s(mw,"claudeHooksToCanonical");s(pw,"importClaudeHooksJson");s(uw,"importSettings");});async function gw(t,e,r){let n=join(t,ym),o=join(t,Nh),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=Gr(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
|
|
76
|
+
`);continue}let h=await G(c);for(let R of h){let k=await _(R);if(k===null)continue;let I=relative(c,R),C=join(p,I);await O(dirname(C));let b=r(k,R,C);await S(C,I==="SKILL.md"?await En(C,g.value.frontmatter,g.value.body):b);let N=`${Nh}/${m}/${I}`;e.push({fromTool:"claude-code",fromPath:R,toPath:N,feature:"skills"});}}}var hw=d(()=>{A();U();ft();Mo();s(gw,"importClaudeSkills");});async function yw(t,e={}){let r=e.scope??"project",n=[],o=await W("claude-code",t,r);return n.push(...await Y(td,t,r,{normalize:o})),await gw(t,n,o),await pw(t,n),await uw(t,n),n}var _w=d(()=>{gt();Ot();dw();hw();Ty();s(yw,"importFromClaudeCode");});var Rw,Iw,Sw,Cw=d(()=>{U();ft();cr();Mo();Rw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Sm}/${t}`,content:await z(n,{...o,root:false},i)}},"claudeRuleMapper"),Iw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n)),a=lr(o.allowedTools),l=a.length>0?a:lr(o["allowed-tools"]);return {destPath:n,toPath:`${wu}/${t}`,content:await It(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"),Sw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Au}/${t}`,content:await Yt(n,o,i)}},"claudeAgentMapper");});function kw(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:kE}))}var Ew=d(()=>{Ct();Mo();s(kw,"lintRules");});var gz,Lw,hz,yz,td,Ty=d(()=>{nw();Mo();oe();sw();cw();_w();Cw();Ew();Et();gz={name:"claude-code",primaryRootInstructionPath:Fs,generateRules:YO,generateCommands:XO,generateAgents:ZO,generateSkills:qO,generateMcp:QO,generatePermissions:tw,generateHooks:ew,generateIgnore:rw,importFrom:yw},Lw={rootInstructionPath:Fs,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`}}},hz={rootInstructionPath:Fs,skillDir:".claude/skills",renderPrimaryRootInstruction:ow,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",Im,vo,".claudeignore"]},rewriteGeneratedPath(t){return t===_l?Im:t},mirrorGlobalPath(t,e){return dt(t,".claude/skills",e)},paths:Lw.paths},yz={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},td={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:gz,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:kw,project:Lw,globalSupport:{capabilities:yz,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:hz,scopeExtras:lw},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Fs,EE],global:[Fs]},canonicalDir:Sm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[fm],global:[fm]},canonicalDir:Sm,extensions:[".md"],map:Rw}],commands:{feature:"commands",mode:"directory",source:{project:[gm],global:[gm]},canonicalDir:wu,extensions:[".md"],map:Iw},agents:{feature:"agents",mode:"directory",source:{project:[hm],global:[hm]},canonicalDir:Au,extensions:[".md"],map:Sw},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[_l],global:[Im]},canonicalDir:".agentsmesh",canonicalFilename:Cm},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Rm],global:[Rm]},canonicalDir:".agentsmesh",canonicalFilename:LE}},buildImportPaths:vh,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};});function Rz(t){let e=basename(t,".md");return e==="_root"?"root":e}function Ow(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:Ms,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=Rz(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?x(i,n.body.trim()||""):n.body.trim()||"";e.push({path:`${$o}/${o}.md`,content:a});}return e}function ww(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
75
77
|
|
|
76
|
-
${n}`:r||n;return {path:`${
|
|
77
|
-
`);return [{path
|
|
78
|
-
`)}function
|
|
78
|
+
${n}`:r||n;return {path:`${Fn}/${e.name}.md`,content:o}})}function Aw(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
79
|
+
`);return [{path:Bi,content:e}]}function bw(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Go,content:e}]}function Pw(t){return t.agents.map(e=>({path:`${te}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function Iz(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function Dy(t){return t.replace(/[\r\n]+/g," ")}function Sz(t,e,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${Dy(t)}`,`# agentsmesh-matcher: ${Dy(r)}`,`# agentsmesh-command: ${Dy(e)}`,"set -eu",e,""].join(`
|
|
80
|
+
`)}function Tw(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)Lo(i)&&(e.push({path:`${Ki}/${Iz(r)}-${o}.sh`,content:Sz(r,i.command,i.matcher)}),o++);}return e}function xw(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=x(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 Dw=d(()=>{Ur();U();ut();fr();s(Rz,"ruleSlug");s(Ow,"generateRules");s(ww,"generateCommands");s(Aw,"generateIgnore");s(bw,"generateMcp");s(Pw,"generateAgents");s(Iz,"safeEventName");s(Dy,"safeShellLine");s(Sz,"buildHookScript");s(Tw,"generateHooks");s(xw,"generateSkills");});async function Fw(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=Po(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:`${$s}/${n}`,feature:"rules",content:await z(o,c,a)}}async function vw(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(`
|
|
79
81
|
|
|
80
82
|
`);if(p>0){let u=i.slice(0,p).trim();u&&!u.includes(`
|
|
81
|
-
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${
|
|
82
|
-
`)),e.push({fromTool:"cline",fromPath:o,toPath
|
|
83
|
+
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${bu}/${t}`,feature:"commands",content:await It(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var Ny=d(()=>{U();ft();cr();fr();s(Fw,"mapClineRuleFile");s(vw,"mapClineWorkflowFile");});async function Mw(t,e,r){let n=join(t,$s),o=join(t,$o),i=join(t,$o),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)),R=f.root===true?f:{...f,root:true},k=await z(u,R,g);await S(u,k),e.push({fromTool:"cline",fromPath:i,toPath:`${$s}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await _(c);if(m===null){let p=join(t,Ms),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)),k=g.root===true?g:{...g,root:true},I=await z(f,k,h);await S(f,I),e.push({fromTool:"cline",fromPath:p,toPath:`${$s}/_root.md`,feature:"rules"});}else {let h=(await G(o)).filter(R=>R.endsWith(".md")&&!R.includes("/workflows/")).sort()[0];if(h){let R=await _(h);if(R!==null){l=h,await O(n);let k=join(n,"_root.md"),{frontmatter:I,body:C}=P(r(R,h,k)),N=I.root===true?I:{...I,root:true},T=await z(k,N,C);await S(k,T),e.push({fromTool:"cline",fromPath:h,toPath:`${$s}/_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},R=await z(p,h,f);await S(p,R),e.push({fromTool:"cline",fromPath:c,toPath:`${$s}/_root.md`,feature:"rules"});}return e.push(...await St({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:Fw(u,n,f),"mapEntry")})),a}var $w=d(()=>{A();U();ft();Me();Ny();fr();s(Mw,"importClineRules");});function kz(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 Gw(t,e){let r=[Go,wE].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=kz(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await O(join(t,".agentsmesh")),await S(join(t,Gh),JSON.stringify({mcpServers:c},null,2)),e.push({fromTool:vs,fromPath:i,toPath:Gh,feature:"mcp"}));}}var jw=d(()=>{A();fr();s(kz,"mapClineServerToCanonical");s(Gw,"importClineMcp");});function Uw(t){return Ez.some(e=>e.test(t))}var Ez,Bw=d(()=>{Ez=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(Uw,"isReservedArtifactName");});async function Oz(t){let e=await G(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),i=basename(o);if(Uw(i))continue;let a=await _(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Vm(t,e,r){let n=await Oz(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 En(a,{...c,name:t},m);await S(a,p);}else await S(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${i.relativePath}`,feature:"skills"});}}async function Ww(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 En(i,{...l,name:t},c);await S(i,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}async function Jm(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 Xl(t,e,r=[]){for(let n of t){let o=join(e.projectRoot,n),i=await Jm(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 R of r)if(await R.recognize(g)){h=true;break}h||await Vm(l,c,e);}if(a)return}}function Zl(t){return {async recognize(e){let r=ml(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await Ln(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 S(i,bs(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function Hw(t){return {async recognize(e){let r=uu(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await Ln(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 S(i,du(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var Ql=d(()=>{A();U();ft();Bw();ut();Lt();om();s(Oz,"readNativeSkill");s(Vm,"importDirectorySkill");s(Ww,"importFlatSkill");s(Jm,"findDirectorySkills");s(Xl,"importSkillsDirectory");s(Zl,"projectedAgentRecognizer");s(Hw,"commandSkillRecognizer");});async function zw(t,e,r,n=te){await Xl([n],{projectRoot:t,destCanonicalSkillsDir:bE,targetName:"cline",normalize:r,results:e},[Zl({canonicalAgentsDir:AE})]);}var Vw=d(()=>{Ql();fr();s(zw,"importClineSkills");});function My(t,e){return t.match(new RegExp(`^# agentsmesh-${e}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function Jw(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=My(i,"event"),l=My(i,"command");if(!a||!l)continue;let c=My(i,"matcher")??"*";e[a]||(e[a]=[]),e[a].push({matcher:c,command:l});}}async function Xw(t,e){let r={};if(await Jw(join(t,Ki),r),await Jw(join(t,zi),r),Object.keys(r).length===0)return;let n=join(t,Mh);await O(dirname(n)),await S(n,stringify(r)),e.push({fromTool:vs,fromPath:join(t,zi),toPath:Mh,feature:"hooks"});}var Zw=d(()=>{A();fr();s(My,"extractMeta");s(Jw,"loadHooksFromDir");s(Xw,"importClineHooks");});async function Qw(t){let e=[],r=await W(vs,t),n=await Mw(t,e,r),o=join(t,Bi),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,$h);await S(m,c.join(`
|
|
84
|
+
`)),e.push({fromTool:"cline",fromPath:o,toPath:$h,feature:"ignore"});}}await Gw(t,e);let a=join(t,bu);return n||e.push(...await St({srcDir:join(t,Fn),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>vw(l,a,c),"mapEntry")})),await zw(t,e,r),await Xw(t,e),e}var qw=d(()=>{gt();A();Me();Ny();$w();fr();jw();Vw();Zw();s(Qw,"importFromCline");});function tA(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:vs}))}var eA=d(()=>{Ct();fr();s(tA,"lintRules");});function rA(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 nA(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 oA=d(()=>{wt();s(rA,"lintCommands");s(nA,"lintHooks");});var bz,Pz,Tz,xz,sA,iA=d(()=>{Dw();xi();fr();qw();eA();oA();Et();al();ut();bz={name:"cline",primaryRootInstructionPath:Ms,generateRules:Ow,generateCommands:ww,generateAgents:Pw,generateSkills:xw,generateMcp:bw,generateHooks:Tw,generateIgnore:Aw,importFrom:Qw},Pz={rootInstructionPath:Ms,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 `${$o}/${t}.md`},commandPath(t,e){return `${Fn}/${t}.md`},agentPath(t,e){return or(e,"cline")?`.cline/skills/${K(t)}/SKILL.md`:null}}},Tz={skillDir:te,managedOutputs:{dirs:[Wi,Hi,zi,te,".agents/skills"],files:[Go,Bi]},rewriteGeneratedPath(t){return t===Ms?null:t.startsWith(`${Ki}/`)?`${zi}/${t.slice(Ki.length+1)}`:t.startsWith(`${Fn}/`)?`${Hi}/${t.slice(Fn.length+1)}`:t.startsWith(`${$o}/`)?`${Wi}/${t.slice($o.length+1)}`:t},mirrorGlobalPath(t,e){return t.startsWith(`${te}/`)?`.agents/skills/${t.slice(te.length+1)}`:null},paths:{rulePath(t,e){return `${Wi}/${t}.md`},commandPath(t,e){return `${Hi}/${t}.md`},agentPath(t,e){return or(e,"cline")?`.cline/skills/${K(t)}/SKILL.md`:null}}},xz={rules:"native",additionalRules:"native",commands:Kr("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:bz,capabilities:{rules:"native",additionalRules:"native",commands:Kr("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:tA,lint:{commands:rA,hooks:nA},project:Pz,globalSupport:{capabilities:xz,detectionPaths:[Wi,Hi,zi,te,Go,Bi],layout:Tz},buildImportPaths:jh,detectionPaths:[".clinerules",".cline"],conversionDefaults:{agentsToSkills:true}};});var ke,aA,ps,Ca,lA,ao,cA,rd,ka,lo,Ea,us,mA,Xm,pA,$y,uA,Gy,dA,fA,jy,Uy,By,ye=d(()=>{ke="codex-cli",aA="codex.md",ps="AGENTS.md",Ca=".codex/AGENTS.md",lA=".codex/AGENTS.override.md",ao=".agents/skills",cA=".codex/skills",rd=".codex/config.toml",ka=".codex/instructions",lo=".codex/rules",Ea=".codex/agents",us=".agentsmesh/rules",mA=".agentsmesh/commands",Xm=".agentsmesh/agents",pA=".agentsmesh/skills",$y=".agentsmesh/mcp.json",uA="am-codex-rule:v1",Gy="# am-json: ",dA="# am-body-b64-begin",fA="# am-body-b64-end",jy="# am64:",Uy="<!-- agentsmesh:codex-rule-index:start -->",By="<!-- agentsmesh:codex-rule-index:end -->";});function Ky(t){return basename(t,".md")}function Zm(t){return `${ka}/${Ky(t.source)}.md`}function gA(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];}),x(e,t.body.trim()||"")}function Nz(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 \`${lo}/${Ky(t.source)}.rules\`.`),t.targets.length>0&&e.push(`Targeted to ${t.targets.map(r=>`\`${r}\``).join(", ")}.`),e.join(" ")}function hA(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||Ky(a.source)}](${Zm(a)}): ${Nz(a)}`),i=[Uy,"## Additional Rule Files",...o,By].join(`
|
|
83
85
|
`);return r?`${r}
|
|
84
86
|
|
|
85
|
-
${i}`:i}function
|
|
86
|
-
`).trim()}var
|
|
87
|
+
${i}`:i}function yA(t){let e=Uy.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=By.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`\\n?${e}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
88
|
+
`).trim()}var nd=d(()=>{U();ye();s(Ky,"ruleSlug");s(Zm,"codexInstructionMirrorPath");s(gA,"serializeCodexInstructionMirror");s(Nz,"summarizeRule");s(hA,"appendCodexRuleIndex");s(yA,"stripCodexRuleIndex");});function vz(t){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(t)}function Mz(t){return t.split(`
|
|
87
89
|
`).map(e=>e.length>0?`# ${e}`:"#").join(`
|
|
88
|
-
`)}function
|
|
89
|
-
`:`${["# 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.","#",...
|
|
90
|
+
`)}function $z(t){let e=t.trim();return e?vz(e)?`${e}
|
|
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.","#",...Mz(e).split(`
|
|
90
92
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
91
93
|
`)}
|
|
92
|
-
`:""}function
|
|
94
|
+
`:""}function Wy(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:ps,content:hA(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:`${lo}/${o}.rules`,content:$z(n.body)}),r.push({path:Zm(n),content:gA(n)}));}return r}function Hy(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 mt(e?.body.trim()??"",r)}var _A=d(()=>{Wt();ye();nd();s(vz,"looksLikeCodexRulesDsl");s(Mz,"toCodexRulesComments");s($z,"toSafeCodexRulesContent");s(Wy,"generateRules");s(Hy,"renderCodexGlobalInstructions");});function zy(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=x(n,r.body.trim()||"");e.push({path:`${ao}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${ao}/${r.name}/${a}`,content:i.content});}}return e}function Gz(t){return {path:`${ao}/${V(t.name)}/SKILL.md`,content:Mt(t)}}function Vy(t){return t.commands.map(Gz)}var RA=d(()=>{U();ye();Lt();s(zy,"generateSkills");s(Gz,"commandToSkillOutput");s(Vy,"generateCommands");});function Jy(t){return t.agents.map(e=>({path:`${Ea}/${e.name}.toml`,content:jz(e)}))}function jz(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 = """
|
|
93
95
|
${n}
|
|
94
96
|
"""`);}else e.push(`developer_instructions = '''
|
|
95
97
|
${r}
|
|
96
98
|
'''`);return e.join(`
|
|
97
99
|
`)+`
|
|
98
|
-
`}var
|
|
100
|
+
`}var IA=d(()=>{ye();s(Jy,"generateAgents");s(jz,"serializeAgentToCodexToml");});function od(t){return "command"in t}function SA(t){return "url"in t}var sd=d(()=>{s(od,"isStdioMcpServer");s(SA,"isUrlMcpServer");});function Yy(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).flatMap(([n,o])=>od(o)?[[n,o]]:[]));if(Object.keys(e).length===0)return [];let r=Uz(e);return [{path:rd,content:r}]}function Uz(t){let e=[];for(let[r,n]of Object.entries(t)){let o=CA(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])=>`${CA(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}e.push(i.join(`
|
|
99
101
|
`));}return e.join(`
|
|
100
102
|
|
|
101
103
|
`)+`
|
|
102
|
-
`}function
|
|
103
|
-
`).find(c=>c.startsWith(
|
|
104
|
-
`)){let m=c.trimEnd();if(m===tw){l=true;continue}if(m===ew){l=false;continue}l&&m.startsWith(Iy)&&a.push(m.slice(Iy.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 Iw=d(()=>{de();s(Rw,"tryParseEmbeddedCanonicalFromCodexRules");});async function Cw(t,e,r){let n=[],o=join(t,io);try{let i=await v(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},R=await K(u,h,g);await I(u,R),n.push({fromTool:Ie,fromPath:c,toPath:`${ms}/${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=Rw(m);if(f){let g=await K(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await I(u,g);}else {let g=await K(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await I(u,g);}n.push({fromTool:Ie,fromPath:c,toPath:`${ms}/${p}`,feature:"rules"});}}catch{}return n}var kw=d(()=>{w();j();ut();de();Iw();s(Cw,"importCodexNonRootRuleFiles");});async function Lw(t,e,r,n,o){let i=join(t,JA),a=join(t,cs),l=join(t,YA),c=join(t,_a),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,ms),R=m??p??u??f;if(R!==null){await O(h);let C=join(h,"_root.md"),S=g===a||g===c||g===l?ow(R):R,k=await oo({content:S,projectRoot:t,rulesDir:ms,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...k.results);let P=r(g===a||g===c||g===l?n(k.rootContent,g,C):k.rootContent,g,C),{frontmatter:N,body:F}=b(P),W=N.root===true?N:{...N,root:true},z=await K(C,W,F);await I(C,z),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${ms}/_root.md`,feature:"rules"});}await Oz(t,h,e,r),e.push(...await Cw(t,h,r)),o!=="global"&&e.push(...await Rt({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:C,normalizeTo:S})=>{let k=relative(t,dirname(C)).replace(/\\/g,"/"),P=basename(C),N=P==="AGENTS.override.md";if(!k||k==="."||!N&&P!=="AGENTS.md")return null;let F=k.replace(/\//g,"-");if(!eu(k))return await kn(join(h,`${F}.md`)),null;let W=join(h,`${F}.md`),{frontmatter:z,body:Q}=b(S(W));return {destPath:W,toPath:`${ms}/${F}.md`,feature:"rules",content:await K(W,{...z,root:false,globs:[`${k}/**`],...N?{codex_instruction:"override"}:{}},Q)}},"mapEntry")}));}async function Oz(t,e,r,n){try{let i=(await v(join(t,Ra))).filter(l=>l.endsWith(".md")),a=join(t,Ra);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 K(p,g,f);await I(p,h),r.push({fromTool:Ie,fromPath:l,toPath:`${ms}/${c}`,feature:"rules"});}}catch{}}var Ow=d(()=>{w();j();ut();Hl();xe();Qc();de();kw();Uu();s(Lw,"importCodexRules");s(Oz,"importInstructionMirrors");});async function Aw(t,e){let r=e?.scope??"project",n=[],o=await B(Ie,t,r),i=await B("windsurf",t,r);return await Lw(t,n,o,i,r),await gw(t,n,o),await yw(t,n,o),await dw(t,n),n}var ww=d(()=>{dt();de();fw();hw();_w();Ow();s(Aw,"importFromCodex");});function bw(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:Ie,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var Pw=d(()=>{de();s(bw,"lintRules");});function Tw(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 xw=d(()=>{Lt();s(Tw,"lintMcp");});function Dw(t){return Hm(t)}var Nw=d(()=>{Uu();s(Dw,"codexAdvisoryInstructionPath");});var wz,bz,Pz,Tz,vw,Mw=d(()=>{uw();de();ww();Pw();xw();Ct();ol();Nw();kt();wz={name:"codex-cli",primaryRootInstructionPath:cs,generateRules:Ey,generateCommands:Ay,generateAgents:wy,generateSkills:Oy,generateMcp:by,importFrom:Aw},bz={rootInstructionPath:cs,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${io}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return Dw(e)},commandPath(t,e){return nl(e,"codex-cli")?`${so}/${H(t)}/SKILL.md`:null},agentPath(t,e){return `${Ia}/${t}.toml`}}},Pz={rootInstructionPath:_a,renderPrimaryRootInstruction:Ly,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${io}/${e}.rules`]},skillDir:so,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[_a,".codex/config.toml"]},rewriteGeneratedPath(t){return t===cs?_a:t.startsWith(`${Ra}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${io}/${t}.rules`:_a},commandPath(t,e){return nl(e,"codex-cli")?`${so}/${H(t)}/SKILL.md`:null},agentPath(t,e){return `${Ia}/${t}.toml`}}},Tz={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},vw={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:bw,lint:{mcp:Tw},project:bz,globalSupport:{capabilities:Tz,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:Pz},buildImportPaths:Sh,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 Dz(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 $w(t){return `${Nn}/${t}.md`}function Gw(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 jw(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:Dz(t["x-agentsmesh-allowed-tools"])}}function Uw(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 Wu=d(()=>{j();Fn();s(Dz,"toStringArray");s($w,"continueCommandRulePath");s(Gw,"serializeCommandRule");s(jw,"parseCommandRuleFrontmatter");s(Uw,"serializeImportedCommand");});function Bw(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:$o,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:`${Vr}/${o}.md`,content:T(i,n.body.trim()||"")});}return e}function Kw(t){return t.commands.map(e=>({path:`${Nn}/${e.name}.md`,content:Gw(e)}))}function Ww(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:fu,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function Hw(t){return t.agents.map(e=>({path:`${Fe}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function zw(t){return rt(t,Fe)}var Vw=d(()=>{tt();mt();j();Wu();Fn();s(Bw,"generateRules");s(Kw,"generateCommands");s(Ww,"generateMcp");s(Hw,"generateAgents");s(zw,"generateSkills");});function Mz(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:ws(l.args),env:Ln(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function $z(t,e){let r=(await v(join(t,Ch))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await _(i);a&&(Object.assign(n,Mz(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Bt(t,Eh,n);for(let i of o)e.push({fromTool:hl,fromPath:i,toPath:Eh,feature:"mcp"});}}async function Yw(t){let e=[],r=await B(hl,t);return e.push(...await J(Hu,t,"project",{normalize:r})),await q(t,Fe,hl,e,r),await $z(t,e),e}var Xw=d(()=>{dt();w();tt();Et();Kr();or();Fn();xy();s(Mz,"readMcpServers");s($z,"importMcp");s(Yw,"importFromContinue");});function Gz(t){return t==="general.md"||t==="_root.md"}var Zw,Qw,qw=d(()=>{j();ut();Wu();Fn();s(Gz,"isContinueRootRulePath");Zw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=Gz(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:`${gu}/${o}`,content:await K(i,c,l)}},"continueRuleMapper"),Qw=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:i,body:a}=b(r(o)),l=jw(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 _t(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},b(Uw(l,a)).body);return {destPath:u,toPath:`${hu}/${p}`,content:f}},"continueCommandMapper");});function tb(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:hl}))}var eb=d(()=>{It();Fn();s(tb,"lintRules");});function rb(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 nb=d(()=>{Lt();s(rb,"lintCommands");});function Kz(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var ob,sb=d(()=>{w();Fn();s(Kz,"computeStatus");ob=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,ym));return [{target:"continue",path:ym,content:m,currentContent:p??void 0,status:Kz(p,m)}]},"generateContinueGlobalConfig");});function Hz(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var ib,ab=d(()=>{w();Fn();sb();s(Hz,"computeStatus");ib=s(async(t,e,r,n)=>{let o=await ob(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,yl));return [...o,{target:"continue",path:yl,content:a,currentContent:l??void 0,status:Hz(l,a)}]},"generateContinueScopeExtras");});var zz,Vz,Jz,Yz,Hu,xy=d(()=>{mt();Vw();Fn();Xw();qw();eb();nb();Wu();Ct();ab();zz={name:"continue",primaryRootInstructionPath:$o,generateRules:Bw,generateCommands:Kw,generateAgents:Hw,generateSkills:zw,generateMcp:Ww,importFrom:Yw},Vz={rootInstructionPath:$o,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Vr}/${t}.md`},commandPath(t,e){return $w(t)},agentPath(t){return `${Fe}/${U(t)}/SKILL.md`}}},Jz={rootInstructionPath:$o,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[yl]}],skillDir:Fe,managedOutputs:{dirs:[Vr,Nn,Fe,".agents/skills"],files:[fu,yl,ym]},mirrorGlobalPath(t,e){return t.startsWith(`${Fe}/`)?`.agents/skills/${t.slice(Fe.length+1)}`:null},paths:{rulePath(t,e){return `${Vr}/${t}.md`},commandPath(t,e){return `${Nn}/${t}.md`},agentPath(t){return `${Fe}/${U(t)}/SKILL.md`}}},Yz={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Hu={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:zz,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:tb,lint:{commands:rb},project:Vz,globalSupport:{capabilities:Yz,detectionPaths:[Vr,Nn,".continue/mcpServers",Fe],layout:Jz,scopeExtras:ib},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Vr],global:[Vr]},canonicalDir:gu,extensions:[".md"],map:Zw},commands:{feature:"commands",mode:"directory",source:{project:[Nn],global:[Nn]},canonicalDir:hu,extensions:[".md"],map:Qw}},buildImportPaths:Lh,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],conversionDefaults:{agentsToSkills:true}};});var ps,Sa,lb,Ca,si,ao,lo,ka,Ea,zu,Vu,cb,Ny,mb,ii,Xl,us,Zl,La,Fy,vy,wr=d(()=>{ps="copilot",Sa=".github/copilot-instructions.md",lb=".github/copilot",Ca=".github/instructions",si=".github/prompts",ao=".github/hooks",lo=".github/skills",ka=".github/agents",Ea=".agentsmesh/rules",zu=".agentsmesh/commands",Vu=".agentsmesh/agents",cb=".agentsmesh/skills",Ny=".agentsmesh/hooks.yaml",mb=".github/copilot-hooks",ii=".copilot/copilot-instructions.md",Xl=".copilot/agents",us=".copilot/skills",Zl=".copilot/prompts",La=".copilot/AGENTS.md",Fy=".claude/skills",vy=".agents/skills";});function pb(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 Ju(t){return `${si}/${t}.prompt.md`}function ub(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 db(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=pb(t["x-agentsmesh-allowed-tools"]),i=o.length>0?o:pb(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var Yu=d(()=>{j();wr();s(pb,"toStringArray");s(Ju,"commandPromptPath");s(ub,"serializeCommandPrompt");s(db,"parseCommandPromptFrontmatter");});function Xu(t){return ko(t)}var My=d(()=>{Mr();s(Xu,"hasHookCommand");});function Qz(t){let e=basename(t,".md");return e==="_root"?"root":e}function qz(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function fb(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}
|
|
104
|
+
`}function CA(t){return !/^[A-Za-z0-9_-]+$/.test(t)}var kA=d(()=>{sd();ye();s(Yy,"generateMcp");s(Uz,"serializeMcpToToml");s(CA,"needsTomlQuoting");});var EA=d(()=>{_A();RA();IA();kA();});var LA=d(()=>{EA();});function Wz(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 OA(t,e){let r=join(t,rd),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=Wz(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Ht(t,$y,a),e.push({fromTool:ke,fromPath:r,toPath:$y,feature:"mcp"}));}var wA=d(()=>{A();Vr();ye();s(Wz,"mapTomlServerToCanonical");s(OA,"importMcp");});async function AA(t,e,r){await Xl([ao,cA],{projectRoot:t,destCanonicalSkillsDir:pA,targetName:ke,normalize:r,results:e},[Hw({canonicalCommandsDir:mA}),Zl({canonicalAgentsDir:Xm})]);}var bA=d(()=>{Ql();ye();s(AA,"importSkills");});async function PA(t,e,r){let n=join(t,Ea),o=join(t,Xm);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:"",R=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",k=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(T=>typeof T=="string"):[];await O(o);let I=join(o,`${p}.md`),C=r(f,l,I),N=bs({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:R,maxTurns:0,mcpServers:k,hooks:{},skills:[],memory:""},C);await S(I,N),e.push({fromTool:ke,fromPath:l,toPath:`${Xm}/${p}.md`,feature:"agents"});}}catch{}}var TA=d(()=>{A();ut();ye();s(PA,"importCodexAgentsFromToml");});function xA(t){if(!t.includes(uA))return null;let e=t.split(`
|
|
105
|
+
`).find(c=>c.startsWith(Gy));if(!e)return null;let r;try{r=JSON.parse(e.slice(Gy.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(`
|
|
106
|
+
`)){let m=c.trimEnd();if(m===dA){l=true;continue}if(m===fA){l=false;continue}l&&m.startsWith(jy)&&a.push(m.slice(jy.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 DA=d(()=>{ye();s(xA,"tryParseEmbeddedCanonicalFromCodexRules");});async function FA(t,e,r){let n=[],o=join(t,lo);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},R=await z(u,h,g);await S(u,R),n.push({fromTool:ke,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=xA(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:ke,fromPath:c,toPath:`${us}/${p}`,feature:"rules"});}}catch{}return n}var vA=d(()=>{A();U();ft();ye();DA();s(FA,"importCodexNonRootRuleFiles");});async function $A(t,e,r,n,o){let i=join(t,aA),a=join(t,ps),l=join(t,lA),c=join(t,Ca),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),R=m??p??u??f;if(R!==null){await O(h);let k=join(h,"_root.md"),I=g===a||g===c||g===l?yA(R):R,C=await io({content:I,projectRoot:t,rulesDir:us,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...C.results);let b=r(g===a||g===c||g===l?n(C.rootContent,g,k):C.rootContent,g,k),{frontmatter:N,body:T}=P(b),B=N.root===true?N:{...N,root:true},H=await z(k,B,T);await S(k,H),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${us}/_root.md`,feature:"rules"});}await Xz(t,h,e,r),e.push(...await FA(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:I})=>{let C=relative(t,dirname(k)).replace(/\\/g,"/"),b=basename(k),N=b==="AGENTS.override.md";if(!C||C==="."||!N&&b!=="AGENTS.md")return null;let T=C.replace(/\//g,"-");if(!yu(C))return await Ln(join(h,`${T}.md`)),null;let B=join(h,`${T}.md`),{frontmatter:H,body:tt}=P(I(B));return {destPath:B,toPath:`${us}/${T}.md`,feature:"rules",content:await z(B,{...H,root:false,globs:[`${C}/**`],...N?{codex_instruction:"override"}:{}},tt)}},"mapEntry")}));}async function Xz(t,e,r,n){try{let i=(await G(join(t,ka))).filter(l=>l.endsWith(".md")),a=join(t,ka);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 S(p,h),r.push({fromTool:ke,fromPath:l,toPath:`${us}/${c}`,feature:"rules"});}}catch{}}var GA=d(()=>{A();U();ft();Jl();Me();om();ye();vA();nd();s($A,"importCodexRules");s(Xz,"importInstructionMirrors");});async function jA(t,e){let r=e?.scope??"project",n=[],o=await W(ke,t,r),i=await W("windsurf",t,r);return await $A(t,n,o,i,r),await AA(t,n,o),await PA(t,n,o),await OA(t,n),n}var UA=d(()=>{gt();ye();wA();bA();TA();GA();s(jA,"importFromCodex");});function BA(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 KA=d(()=>{ye();s(BA,"lintRules");});function WA(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 HA=d(()=>{wt();s(WA,"lintMcp");});function zA(t){return Zm(t)}var VA=d(()=>{nd();s(zA,"codexAdvisoryInstructionPath");});var Qz,qz,tV,eV,YA,XA=d(()=>{LA();ye();UA();KA();HA();Et();al();VA();Lt();Qz={name:"codex-cli",primaryRootInstructionPath:ps,generateRules:Wy,generateCommands:Vy,generateAgents:Jy,generateSkills:zy,generateMcp:Yy,importFrom:jA},qz={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 zA(e)},commandPath(t,e){return il(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ea}/${t}.toml`}}},tV={rootInstructionPath:Ca,renderPrimaryRootInstruction:Hy,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:[Ca,".codex/config.toml"]},rewriteGeneratedPath(t){return t===ps?Ca:t.startsWith(`${ka}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${lo}/${t}.rules`:Ca},commandPath(t,e){return il(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ea}/${t}.toml`}}},eV={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},YA={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:Qz,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:BA,lint:{mcp:WA},project:qz,globalSupport:{capabilities:eV,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:tV},buildImportPaths:Uh,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 nV(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 ZA(t){return `${vn}/${t}.md`}function QA(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"],x(e,t.body.trim()||"")}function qA(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:nV(t["x-agentsmesh-allowed-tools"])}}function tb(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"],x(r,e.trim()||"")}var id=d(()=>{U();Mn();s(nV,"toStringArray");s(ZA,"continueCommandRulePath");s(QA,"serializeCommandRule");s(qA,"parseCommandRuleFrontmatter");s(tb,"serializeImportedCommand");});function eb(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:x(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:x(i,n.body.trim()||"")});}return e}function rb(t){return t.commands.map(e=>({path:`${vn}/${e.name}.md`,content:QA(e)}))}function nb(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Pu,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function ob(t){return t.agents.map(e=>({path:`${je}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function sb(t){return st(t,je)}var ib=d(()=>{rt();ut();U();id();Mn();s(eb,"generateRules");s(rb,"generateCommands");s(nb,"generateMcp");s(ob,"generateAgents");s(sb,"generateSkills");});function aV(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:Ts(l.args),env:wn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function lV(t,e){let r=(await G(join(t,Bh))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await _(i);a&&(Object.assign(n,aV(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Ht(t,Wh,n);for(let i of o)e.push({fromTool:Rl,fromPath:i,toPath:Wh,feature:"mcp"});}}async function lb(t){let e=[],r=await W(Rl,t);return e.push(...await Y(ad,t,"project",{normalize:r})),await et(t,je,Rl,e,r),await lV(t,e),e}var cb=d(()=>{gt();A();rt();Ot();Vr();cr();Mn();Qy();s(aV,"readMcpServers");s(lV,"importMcp");s(lb,"importFromContinue");});function cV(t){return t==="general.md"||t==="_root.md"}var mb,pb,ub=d(()=>{U();ft();id();Mn();s(cV,"isContinueRootRulePath");mb=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=cV(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:`${Tu}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),pb=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:i,body:a}=P(r(o)),l=qA(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},P(tb(l,a)).body);return {destPath:u,toPath:`${xu}/${p}`,content:f}},"continueCommandMapper");});function db(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Rl}))}var fb=d(()=>{Ct();Mn();s(db,"lintRules");});function gb(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 hb=d(()=>{wt();s(gb,"lintCommands");});function dV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var yb,_b=d(()=>{A();Mn();s(dV,"computeStatus");yb=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,km));return [{target:"continue",path:km,content:m,currentContent:p??void 0,status:dV(p,m)}]},"generateContinueGlobalConfig");});function gV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Rb,Ib=d(()=>{A();Mn();_b();s(gV,"computeStatus");Rb=s(async(t,e,r,n)=>{let o=await yb(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,Il));return [...o,{target:"continue",path:Il,content:a,currentContent:l??void 0,status:gV(l,a)}]},"generateContinueScopeExtras");});var hV,yV,_V,RV,ad,Qy=d(()=>{ut();ib();Mn();cb();ub();fb();hb();id();Et();Ib();hV={name:"continue",primaryRootInstructionPath:jo,generateRules:eb,generateCommands:rb,generateAgents:ob,generateSkills:sb,generateMcp:nb,importFrom:lb},yV={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 ZA(t)},agentPath(t){return `${je}/${K(t)}/SKILL.md`}}},_V={rootInstructionPath:jo,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Il]}],skillDir:je,managedOutputs:{dirs:[Zr,vn,je,".agents/skills"],files:[Pu,Il,km]},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}/${K(t)}/SKILL.md`}}},RV={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ad={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:hV,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:db,lint:{commands:gb},project:yV,globalSupport:{capabilities:RV,detectionPaths:[Zr,vn,".continue/mcpServers",je],layout:_V,scopeExtras:Rb},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Zr],global:[Zr]},canonicalDir:Tu,extensions:[".md"],map:mb},commands:{feature:"commands",mode:"directory",source:{project:[vn],global:[vn]},canonicalDir:xu,extensions:[".md"],map:pb}},buildImportPaths:Hh,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],conversionDefaults:{agentsToSkills:true}};});var ds,La,Sb,Oa,li,co,mo,wa,Aa,ld,cd,Cb,t_,kb,ci,ql,fs,tc,ba,e_,r_,Dr=d(()=>{ds="copilot",La=".github/copilot-instructions.md",Sb=".github/copilot",Oa=".github/instructions",li=".github/prompts",co=".github/hooks",mo=".github/skills",wa=".github/agents",Aa=".agentsmesh/rules",ld=".agentsmesh/commands",cd=".agentsmesh/agents",Cb=".agentsmesh/skills",t_=".agentsmesh/hooks.yaml",kb=".github/copilot-hooks",ci=".copilot/copilot-instructions.md",ql=".copilot/agents",fs=".copilot/skills",tc=".copilot/prompts",ba=".copilot/AGENTS.md",e_=".claude/skills",r_=".agents/skills";});function Eb(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 md(t){return `${li}/${t}.prompt.md`}function Lb(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"],x(e,t.body.trim()||"")}function Ob(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=Eb(t["x-agentsmesh-allowed-tools"]),i=o.length>0?o:Eb(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var pd=d(()=>{U();Dr();s(Eb,"toStringArray");s(md,"commandPromptPath");s(Lb,"serializeCommandPrompt");s(Ob,"parseCommandPromptFrontmatter");});function ud(t){return Lo(t)}var n_=d(()=>{Ur();s(ud,"hasHookCommand");});function CV(t){let e=basename(t,".md");return e==="_root"?"root":e}function kV(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function wb(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}
|
|
105
107
|
|
|
106
108
|
${o}`):e.push(o);}return e.join(`
|
|
107
109
|
|
|
108
|
-
`)}function
|
|
109
|
-
`)}async function
|
|
110
|
+
`)}function Ab(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:La,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=CV(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=x(i,n.body.trim()||"");r.push({path:`${Oa}/${o}.instructions.md`,content:a});}return r}function bb(t){return t.commands.map(e=>({path:md(e.name),content:Lb(e)}))}function Pb(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=x(n,r.body.trim()||"");e.push({path:`${mo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${mo}/${r.name}/${a}`,content:i.content});}}return e}function Tb(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=x(r,e.body.trim()||"");return {path:`${wa}/${e.name}.agent.md`,content:n}})}function xb(t){if(!t.hooks)return [];let e=Object.fromEntries(Object.entries(t.hooks).flatMap(([r,n])=>{let o=kV(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&ud(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:`${co}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:e},null,2)}]}var Db=d(()=>{U();Dr();pd();n_();s(CV,"ruleSlug");s(kV,"mapHookEvent");s(wb,"renderCopilotGlobalInstructions");s(Ab,"generateRules");s(bb,"generateCommands");s(Pb,"generateSkills");s(Tb,"generateAgents");s(xb,"generateHooks");});function LV(t){switch(t){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function OV(t){return typeof t!="string"?"*":t.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function vb(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 Mb(t,e){let r=join(t,co),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 R=LV(g);if(!(!R||!Array.isArray(h)))for(let k of h){if(!k||typeof k!="object")continue;let I=k,C=typeof I.bash=="string"?I.bash:"";if(!C)continue;let b=join(r,C.replace(/^\.\//,"")),N=await _(b);if(!N)continue;let T=vb(N);T&&(i[R]||(i[R]=[]),i[R].push({matcher:OV(I.comment),command:T,type:"command"}));}}}let a=join(t,kb),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:vb(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(t,t_);await O(dirname(m)),await S(m,stringify(i)),e.push({fromTool:ds,fromPath:join(t,co),toPath:t_,feature:"hooks"});}var $b=d(()=>{A();Dr();s(LV,"mapCopilotHookEvent");s(OV,"extractMatcher");s(vb,"extractWrapperCommand");s(Mb,"importHooks");});async function Gb(t,e,r,n=mo){let o=join(t,n),i=await Jm(o),a={projectRoot:t,destCanonicalSkillsDir:Cb,targetName:ds,normalize:r,results:e};for(let[l,c]of i)await Vm(l,c,a);}var jb=d(()=>{Ql();Dr();s(Gb,"importSkills");});async function Ub(t,e={}){let r=e.scope??"project",n=[],o=await W(ds,t,r);return n.push(...await Y(dd,t,r,{normalize:o})),await Gb(t,n,o,r==="global"?fs:mo),r==="project"&&await Mb(t,n),n}var Bb=d(()=>{gt();Ot();Dr();$b();jb();o_();s(Ub,"importFromCopilot");});function Kb(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}var Wb,Hb,zb,Vb,Jb=d(()=>{U();ft();cr();pd();Dr();s(Kb,"pruneUndefined");Wb=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=Po(i.globs),c=Kb({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Aa}/${n}`,content:await z(o,c,a)}},"copilotLegacyRuleMapper"),Hb=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=Po(i.applyTo!==void 0?i.applyTo:i.globs),c=Kb({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Aa}/${n}`,content:await z(o,c,a)}},"copilotNewRuleMapper"),zb=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=Ob(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:`${ld}/${u}`,content:await It(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"),Vb=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:`${cd}/${n}`,content:await Yt(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function Yb(t,e,r,n){let i=J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:ds})),a=t.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:ds,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var Xb=d(()=>{Ct();Dr();s(Yb,"lintRules");});function Zb(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 Qb(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=>Ds(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 qb=d(()=>{wt();s(Zb,"lintCommands");s(Qb,"lintHooks");});function TV(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function xV(t,e){let r=relative(t,e).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function DV(t,e){let r=t.match(eP);if(!r?.groups)return t;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${e}"${o}`}async function NV(t,e){let n=e.match(eP)?.groups?.path;if(!n)return null;let o=join(t,n),i=await _(o);if(i===null)return null;let a=xV(t,o);return a?{assetPath:`${co}/scripts/${a}`,content:i,rewrittenCommand:DV(e,a)}:null}function FV(t,e){return `${co}/scripts/${TV(t)}-${e}.sh`}function tP(t){return t.replace(/[\r\n]+/g," ")}function vV(t,e){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${tP(e)}`,`# agentsmesh-command: ${tP(t)}`,"set -eu",t,""].join(`
|
|
111
|
+
`)}async function rP(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(!ud(c))continue;let m=FV(i,l),p=c.command,u=await NV(t,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=vV(p,c.matcher).replace(`set -eu
|
|
110
112
|
`,`set -eu
|
|
111
113
|
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
112
|
-
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var
|
|
113
|
-
`);return [{path:
|
|
114
|
-
`)}var
|
|
114
|
+
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var eP,nP=d(()=>{A();Dr();n_();eP=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(TV,"safePhaseName");s(xV,"toRepoRelative");s(DV,"rewriteWrapperCommand");s(NV,"buildAssetOutput");s(FV,"wrapperPath");s(tP,"safeShellLine");s(vV,"buildWrapper");s(rP,"addHookScriptAssets");});function $V(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var oP,sP=d(()=>{A();Dr();s($V,"computeStatus");oP=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,ba));return [{target:"copilot",path:ba,content:i,currentContent:a??void 0,status:$V(a,i)}]},"generateCopilotGlobalExtras");});var jV,UV,BV,KV,dd,o_=d(()=>{Db();Dr();Bb();Jb();Xb();Et();pd();qb();nP();sP();jV={name:"copilot",primaryRootInstructionPath:La,generateRules:Ab,generateCommands:bb,generateAgents:Tb,generateSkills:Pb,generateHooks:xb,importFrom:Ub},UV={rootInstructionPath:La,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 [`${Oa}/${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 `${Oa}/${t}.instructions.md`},commandPath(t,e){return md(t)},agentPath(t,e){return `${wa}/${t}.agent.md`}}},BV={rootInstructionPath:ci,renderPrimaryRootInstruction:wb,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[ba]}],skillDir:fs,managedOutputs:{dirs:[ql,fs,tc,r_,e_],files:[ci,ba]},rewriteGeneratedPath(t){return t===La?ci:t.startsWith(`${Oa}/`)?ci:t.startsWith(`${li}/`)?t.replace(`${li}/`,`${tc}/`):t.startsWith(`${wa}/`)?t.replace(`${wa}/`,`${ql}/`):t.startsWith(`${mo}/`)?t.replace(`${mo}/`,`${fs}/`):t.startsWith(`${co}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${fs}/`)&&!e.includes("codex-cli")){let r=t.slice(fs.length+1);return [`.agents/skills/${r}`,`${e_}/${r}`]}return null},paths:{rulePath(t,e){return ci},commandPath(t,e){return `${tc}/${t}.prompt.md`},agentPath(t,e){return `${ql}/${t}.agent.md`}}},KV={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},dd={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:jV,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:Yb,lint:{commands:Zb,hooks:Qb},postProcessHookOutputs:s(async(t,e,r)=>rP(t,e,[...r]),"postProcessHookOutputs"),project:UV,globalSupport:{capabilities:KV,detectionPaths:[ci,ba,ql,fs,tc,r_],layout:BV,scopeExtras:oP},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[La],global:[ci]},canonicalDir:Aa,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Sb]},canonicalDir:Aa,extensions:[".instructions.md"],map:Wb},{feature:"rules",mode:"directory",source:{project:[Oa]},canonicalDir:Aa,extensions:[".instructions.md",".md"],map:Hb}],commands:{feature:"commands",mode:"directory",source:{project:[li],global:[tc]},canonicalDir:ld,extensions:[".prompt.md"],map:zb},agents:{feature:"agents",mode:"directory",source:{project:[wa],global:[ql]},canonicalDir:cd,extensions:[".agent.md"],map:Vb}},buildImportPaths:zh,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};});function fd(t){return {$schema:"https://charm.land/crush.json",...t}}var iP=d(()=>{s(fd,"buildCrushConfigJson");});function aP(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(gr)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:hr,content:o}]:[]}function lP(t){return st(t,ee)}function cP(t){return t.commands.map(e=>({path:`${ee}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function mP(t){return t.agents.map(e=>({path:`${ee}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function pP(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=fd({mcp:t.mcp.mcpServers});return [{path:Ue,content:JSON.stringify(e,null,2)}]}function uP(t){if(!t.hooks)return [];let e=WV(t);if(Object.keys(e).length===0)return [];let r=fd({hooks:e});return [{path:Ue,content:JSON.stringify(r,null,2)}]}function dP(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=fd({permissions:o});return [{path:Ue,content:JSON.stringify(i,null,2)}]}function fP(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
115
|
+
`);return [{path:Uo,content:e}]}function WV(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 gP=d(()=>{rt();Wt();ut();Lt();Sl();iP();s(aP,"generateRules");s(lP,"generateSkills");s(cP,"generateCommands");s(mP,"generateAgents");s(pP,"generateMcp");s(uP,"generateHooks");s(dP,"generatePermissions");s(fP,"generateIgnore");s(WV,"buildCrushHooksFromCanonical");});async function yP(t,e={}){let r=e.scope??"project",n=[],o=await W(gr,t,r);return n.push(...await Y(gd,t,r,{normalize:o})),await et(t,r==="global"?Be:ee,gr,n,o),await HV(t,n),n}async function HV(t,e){let r=join(t,Ue),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=zV(i.mcp);if(Object.keys(a).length>0){let c=Mu,m=join(t,c);await O(dirname(m)),await S(m,JSON.stringify({mcpServers:a},null,2)),e.push({fromTool:gr,fromPath:r,toPath:c,feature:"mcp"});}let l=VV(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=JV(l);await S(m,p),e.push({fromTool:gr,fromPath:r,toPath:c,feature:"hooks"});}}function zV(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:Ts(o.args),env:wn(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:wn(o.headers),env:wn(o.env),...i!==void 0?{description:i}:{}});}return e}function VV(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 JV(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(`
|
|
116
|
+
`)}var _P=d(()=>{gt();rt();Ot();A();cr();i_();Sl();s(yP,"importFromCrush");s(HV,"importCrushConfigJson");s(zV,"parseCrushMcpServers");s(VV,"parseCrushHooks");s(JV,"serializeHooksYaml");});function RP(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:gr}))}var IP=d(()=>{Ct();Sl();s(RP,"lintRules");});function SP(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 CP=d(()=>{wt();s(SP,"lintCommands");});function a_(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}function EP(t,e){let r=a_(t),n=XV.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 LP(t,e){let r=a_(t),n=ZV.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 OP(t,e){let r=a_(t),n=YV.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 kP,YV,XV,ZV,hd=d(()=>{kP=[".claude/settings.json",".gemini/settings.json"],YV=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(),XV=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(),ZV=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(a_,"parseJsonObject");s(EP,"mergeSettingsJson");s(LP,"mergeGeminiSettingsJson");s(OP,"mergeCrushConfigJson");});var QV,qV,t1,e1,r1,gd,i_=d(()=>{Lt();ut();gP();oe();_P();IP();CP();Et();hd();Sl();QV={name:gr,primaryRootInstructionPath:hr,generateRules:aP,generateCommands:cP,generateAgents:mP,generateSkills:lP,generateMcp:pP,generateHooks:uP,generatePermissions:dP,generateIgnore:fP,importFrom:yP},qV={rootInstructionPath:hr,skillDir:ee,managedOutputs:{dirs:[ee],files:[hr,Ue,Uo]},paths:{rulePath(t){return hr},commandPath(t){return `${ee}/${V(t)}/SKILL.md`},agentPath(t){return `${ee}/${K(t)}/SKILL.md`}}},t1={rootInstructionPath:Vi,skillDir:Be,managedOutputs:{dirs:[Be],files:[Vi,Nu]},rewriteGeneratedPath(t){return t===hr?Vi:t===Ue?Nu:t===Uo?null:t.startsWith(`${ee}/`)?t.replace(`${ee}/`,`${Be}/`):t},mirrorGlobalPath(t,e){return dt(t,Be,e)},paths:{rulePath(t){return Vi},commandPath(t){return `${Be}/${V(t)}/SKILL.md`},agentPath(t){return `${Be}/${K(t)}/SKILL.md`}}},e1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},r1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},gd={id:gr,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:QV,capabilities:e1,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:RP,lint:{commands:SP},supportsConversion:{commands:true,agents:true},project:qV,globalSupport:{capabilities:r1,detectionPaths:[Vi,Nu,Be],layout:t1},mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Ue?OP(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[hr],global:[Vi]},canonicalDir:Fu,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Uo]},canonicalDir:".agentsmesh",canonicalFilename:vu}},buildImportPaths:Vh,detectionPaths:[hr,Ue,ee,Uo],sharedArtifacts:{".crush/skills/":"owner"}};});function l_(t){let e=[],r=t.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";e.push({path:Gs,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=x(a,i);e.push({path:Bo,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=x(c,i.body.trim()||"");e.push({path:`${yr}/${a}.mdc`,content:m});}let o=wP(t);return o.trim()&&e.push({path:qr,content:o}),e}function wP(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(mt(e.body,r)):r.length>0&&n.push(mt("",r)),n.filter(Boolean).join(`
|
|
115
117
|
|
|
116
|
-
`)}var
|
|
117
|
-
`);return [{path:
|
|
118
|
+
`)}var AP=d(()=>{U();Wt();zt();s(l_,"generateRules");s(wP,"renderCursorGlobalUserRules");});function c_(t){return t.commands.map(e=>({path:`${_r}/${e.name}.md`,content:e.body.trim()||""}))}var bP=d(()=>{zt();s(c_,"generateCommands");});function m_(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Ke,content:e}]}var PP=d(()=>{zt();s(m_,"generateMcp");});function p_(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=x(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 TP=d(()=>{U();zt();s(p_,"generateSkills");});function u_(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=x(r,e.body.trim()||"");return {path:`${Rr}/${e.name}.md`,content:n}})}var xP=d(()=>{U();zt();s(u_,"generateAgents");});function d_(t){return []}var DP=d(()=>{s(d_,"generatePermissions");});function o1(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!kn(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 f_(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=o1(t.hooks);if(Object.keys(e).length===0)return [];let r=JSON.stringify({version:1,hooks:e},null,2);return [{path:$n,content:r}]}var NP=d(()=>{Ur();zt();s(o1,"toCursorHooks");s(f_,"generateHooks");});function g_(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
119
|
+
`);return [{path:Qr,content:e}]}var FP=d(()=>{zt();s(g_,"generateIgnore");});var vP=d(()=>{AP();bP();PP();TP();xP();DP();NP();FP();});var MP=d(()=>{vP();});async function _d(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=s1(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${Gn}/${l?"_root.md":o}`,feature:"rules",content:await z(c,u,p)}}function s1(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 $P(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=P(r(n)),a=lr(o.allowedTools),l=a.length>0?a:lr(o["allowed-tools"]);return {destPath:n,toPath:`${js}/${t}`,feature:"commands",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)}}async function GP(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=P(r(n));return {destPath:n,toPath:`${Us}/${t}`,feature:"agents",content:await Yt(n,o,i)}}var h_=d(()=>{U();ft();cr();zt();s(_d,"mapCursorRuleFile");s(s1,"deriveCursorTrigger");s($P,"mapCursorCommandFile");s(GP,"mapCursorAgentFile");});async function ec(t){let e=join(t.projectRoot,Gn);await O(e);let r=join(e,"_root.md"),n=await io({content:t.content,projectRoot:t.projectRoot,rulesDir:Gn,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 S(r,c),t.results.push({fromTool:"cursor",fromPath:t.sourcePath,toPath:`${Gn}/_root.md`,feature:"rules"}),true}var y_=d(()=>{A();U();Jl();ft();zt();s(ec,"importCursorRootFile");});async function UP(t,e,r){let n=join(t,Gn),o=false,i=join(t,yr);if(e.push(...await St({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 _d(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(t,Gs),l=await _(a);l!==null&&(o=await ec({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(t,ME),l=await _(a);l!==null&&await ec({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r});}}var BP=d(()=>{A();U();Me();h_();y_();zt();s(UP,"importCursorRules");});function KP(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(!kn({...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 Sd(t,e){let r=false,n=join(t,$n),o=await _(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=KP(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(t,Em);await O(dirname(g)),await S(g,f),e.push({fromTool:"cursor",fromPath:n,toPath:Em,feature:"hooks"}),r=!0;}}}catch{}let i=join(t,$u),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,Yh);await O(dirname(h)),await S(h,g),e.push({fromTool:"cursor",fromPath:i,toPath:Yh,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=KP(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(t,Em);await O(dirname(f)),await S(f,u),e.push({fromTool:"cursor",fromPath:i,toPath:Em,feature:"hooks"});}}}async function Cd(t,e){let r=[{path:join(t,Qr),label:Qr},{path:join(t,Jh),label:Jh}],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,Xh);await O(dirname(i)),await S(i,n.join(`
|
|
118
120
|
`)+`
|
|
119
|
-
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:Ph,feature:"ignore"});}var qy=d(()=>{Mr();w();Kt();s(PP,"cursorHooksToCanonical");s(sd,"importSettings");s(id,"importIgnore");});async function ad(t,e,r,n=me){let o=join(t,n),i=await Bm(o),a={projectRoot:t,destCanonicalSkillsDir:LE,targetName:"cursor",normalize:r,results:e};for(let[p,u]of i)await Um(p,u,a);let l=await v(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 TA(f,p,u,a);}}var t_=d(()=>{w();Yl();Kt();s(ad,"importSkills");});async function TP(t){if(await $(join(t,ur)))return true;let e=[join(t,Yr),join(t,Rl),join(t,$e),join(t,vn),join(t,Jr),join(t,me),join(t,fr),join(t,dr)];for(let i of e){let a=await _(i);if(a!==null&&a.trim()!=="")return true}return !!((await v(join(t,me))).some(i=>i.endsWith(".md"))||(await v(join(t,fr))).some(i=>i.endsWith(".md"))||(await v(join(t,dr))).some(i=>i.endsWith(".md")))}async function xP(t,e,r){let n=join(t,Mn),o=false,i=join(t,ur),a=await Rt({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:ql,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 rd(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function DP(t,e,r){let n=join(t,Rl),o=await _(n);return o===null||o.trim()===""?false:Ql({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function NP(t,e,r){let n=join(t,Yr),o=await _(n);return o===null||o.trim()===""?false:Ql({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function FP(t,e){let r=join(t,$e),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,Il);await O(dirname(i)),await I(i,n),e.push({fromTool:ql,fromPath:r,toPath:Il,feature:"mcp"});}async function vP(t,e,r){let n=join(t,fr),o=join(t,$s);e.push(...await Rt({srcDir:n,destDir:o,extensions:[".md"],fromTool:ql,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>OP(i,o,a),"mapEntry")}));}async function MP(t,e,r){let n=join(t,dr),o=join(t,Ms);e.push(...await Rt({srcDir:n,destDir:o,extensions:[".md"],fromTool:ql,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>LP(i,o,a),"mapEntry")}));}var ql,$P=d(()=>{w();j();xe();Kt();Zy();Xy();ql="cursor";s(TP,"hasGlobalCursorArtifacts");s(xP,"importGlobalCursorRulesFromDir");s(DP,"importGlobalUserRules");s(NP,"importGlobalDotCursorAgents");s(FP,"importGlobalMcp");s(vP,"importGlobalAgents");s(MP,"importGlobalCommands");});async function GP(t){if(!await TP(t))return [];let e=[],r=await B(ql,t,"global"),n=await xP(t,e,r);return n||(n=await DP(t,e,r)),n||await NP(t,e,r),await FP(t,e),await ad(t,e,r,me),await vP(t,e,r),await MP(t,e,r),await sd(t,e),await id(t,e),e}var jP=d(()=>{dt();Kt();t_();qy();$P();s(GP,"importFromCursorGlobalExports");});async function jV(t,e){let r=join(t,$e),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 Bt(t,Il,i),e.push({fromTool:"cursor",fromPath:r,toPath:Il,feature:"mcp"});}async function UP(t,e={}){if(e.scope==="global")return GP(t);let r=[],n=await B("cursor",t);return await wP(t,r,n),r.push(...await J(ld,t,"project",{normalize:n})),await ad(t,r,n),await jV(t,r),await sd(t,r),await id(t,r),r}var BP=d(()=>{dt();w();Et();Kr();bP();qy();t_();jP();Kt();e_();s(jV,"importMcp");s(UP,"importFromCursor");});var WP,HP,zP=d(()=>{j();ut();or();Kt();WP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n)),a=nr(o.allowedTools),l=a.length>0?a:nr(o["allowed-tools"]);return {destPath:n,toPath:`${Ms}/${t}`,content:await _t(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"),HP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${$s}/${t}`,content:await Vt(n,o,i)}},"cursorAgentMapper");});function VP(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:kE}))}var JP=d(()=>{It();Kt();s(VP,"lintRules");});function YP(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 XP(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 ZP(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 QP=d(()=>{Lt();s(YP,"lintCommands");s(XP,"lintMcp");s(ZP,"lintPermissions");});var UV,BV,KV,WV,ld,e_=d(()=>{EP();Kt();ee();BP();zP();JP();Ct();QP();UV={name:"cursor",primaryRootInstructionPath:jo,generateRules:By,generateCommands:Ky,generateAgents:zy,generateSkills:Hy,generateMcp:Wy,generatePermissions:Vy,generateHooks:Jy,generateIgnore:Yy,importFrom:UP},BV={rootInstructionPath:jo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[vs,Yr]}],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`}}},KV={rootInstructionPath:jo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[vs,Yr]}],skillDir:me,managedOutputs:{dirs:[ur,dr,fr,me],files:[jo,Yr,$e,vn,Jr,Rl]},rewriteGeneratedPath(t){return t===vs?null:t===Yr||t===jo||t.startsWith(`${ur}/`)||t.startsWith(`${dr}/`)||t.startsWith(`${fr}/`)||t.startsWith(`${me}/`)||t===$e||t===vn||t===Jr?t:t===Cu?null:t},mirrorGlobalPath(t,e){return pt(t,me,e)},paths:{rulePath(t,e){return `${ur}/${t}.mdc`},commandPath(t,e){return `${dr}/${t}.md`},agentPath(t,e){return `${fr}/${t}.md`}}},WV={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},ld={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:UV,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:VP,lint:{commands:YP,mcp:XP,permissions:ZP},project:BV,globalSupport:{capabilities:WV,detectionPaths:[jo,Yr,$e,vn,Jr,me,fr,dr,Rl],layout:KV},importer:{commands:{feature:"commands",mode:"directory",source:{project:[dr]},canonicalDir:Ms,extensions:[".md"],map:WP},agents:{feature:"agents",mode:"directory",source:{project:[fr]},canonicalDir:$s,extensions:[".md"],map:HP}},buildImportPaths:Th,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function qP(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes($n)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:gr,content:o}]:[]}function tT(t){return rt(t,pe)}function eT(t){return t.commands.map(e=>({path:`${pe}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function rT(t){return t.agents.map(e=>({path:`${pe}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function nT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Uo,content:e}]}var oT=d(()=>{tt();Ut();mt();kt();Sl();s(qP,"generateRules");s(tT,"generateSkills");s(eT,"generateCommands");s(rT,"generateAgents");s(nT,"generateMcp");});async function sT(t,e={}){let r=e.scope??"project",n=[],o=await B($n,t,r);return n.push(...await J(cd,t,r,{normalize:o})),await q(t,r==="global"?Xr:pe,$n,n,o),n}var iT=d(()=>{dt();tt();Et();Sl();r_();s(sT,"importFromDeepagentsCli");});function aT(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:$n}))}var lT=d(()=>{It();Sl();s(aT,"lintRules");});function cT(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 mT(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 pT(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 uT=d(()=>{Lt();s(cT,"lintHooks");s(mT,"lintPermissions");s(pT,"lintIgnore");});var HV,zV,VV,JV,YV,cd,r_=d(()=>{kt();mt();oT();iT();lT();uT();Ct();Sl();HV={name:$n,primaryRootInstructionPath:gr,generateRules:qP,generateCommands:eT,generateAgents:rT,generateSkills:tT,generateMcp:nT,importFrom:sT},zV={rootInstructionPath:gr,skillDir:pe,managedOutputs:{dirs:[pe],files:[gr,Uo]},paths:{rulePath(t){return gr},commandPath(t){return `${pe}/${H(t)}/SKILL.md`},agentPath(t){return `${pe}/${U(t)}/SKILL.md`}}},VV={rootInstructionPath:Bo,skillDir:Xr,managedOutputs:{dirs:[Xr],files:[Bo,Wi]},rewriteGeneratedPath(t){return t===gr?Bo:t===Uo?Wi:t.startsWith(`${pe}/`)?t.replace(`${pe}/`,`${Xr}/`):t},paths:{rulePath(t){return Bo},commandPath(t){return `${Xr}/${H(t)}/SKILL.md`},agentPath(t){return `${Xr}/${U(t)}/SKILL.md`}}},JV={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},YV={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},cd={id:$n,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:HV,capabilities:JV,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:aT,lint:{hooks:cT,permissions:mT,ignore:pT},supportsConversion:{commands:true,agents:true},project:zV,globalSupport:{capabilities:YV,detectionPaths:[Bo,Wi],layout:VV},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[gr],global:[Bo]},canonicalDir:AE,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Uo],global:[Wi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:xh,detectionPaths:[gr,Uo]};});function dT(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 fT=d(()=>{j();s(dT,"serializeDroid");});function gT(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=lt(n,r);return o?[{path:yr,content:o}]:[]}function hT(t){return rt(t,Le)}function yT(t){return t.commands.map(e=>({path:`${Le}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function _T(t){return t.agents.map(e=>({path:`${Gn}/${e.name}.md`,content:dT(e)}))}function RT(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:jn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var IT=d(()=>{tt();Ut();kt();fT();zi();s(gT,"generateRules");s(hT,"generateSkills");s(yT,"generateCommands");s(_T,"generateAgents");s(RT,"generateMcp");});async function CT(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 Bt(t,ST,l),r.push({fromTool:hr,fromPath:e,toPath:ST,feature:"mcp"}));}var ST,kT=d(()=>{w();Kr();zi();ST=".agentsmesh/mcp.json";s(CT,"importFactoryDroidMcp");});async function ET(t,e={}){let r=e.scope??"project",n=[],o=await B(hr,t,r);return n.push(...await J(md,t,r,{normalize:o})),await q(t,r==="global"?Un:Le,hr,n,o),await CT(t,r==="global"?Gs:jn,n),n}var LT=d(()=>{dt();tt();Et();kT();zi();n_();s(ET,"importFromFactoryDroid");});function OT(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:hr}))}var AT=d(()=>{It();zi();s(OT,"lintRules");});function wT(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 bT(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 PT(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 TT=d(()=>{Lt();s(wT,"lintHooks");s(bT,"lintPermissions");s(PT,"lintIgnore");});var ZV,QV,qV,xT,md,n_=d(()=>{IT();zi();LT();AT();TT();Ct();kt();ZV={name:hr,primaryRootInstructionPath:yr,generateRules:gT,generateCommands:yT,generateAgents:_T,generateSkills:hT,generateMcp:RT,importFrom:ET},QV={rootInstructionPath:yr,skillDir:Le,managedOutputs:{dirs:[Le,Gn],files:[yr,jn]},paths:{rulePath(t){return yr},commandPath(t){return `${Le}/${H(t)}/SKILL.md`},agentPath(t){return `${Gn}/${t}.md`}}},qV={rootInstructionPath:Ko,skillDir:Un,managedOutputs:{dirs:[Un,Hi],files:[Ko,Gs]},rewriteGeneratedPath(t){return t===yr?Ko:t===jn?Gs:t.startsWith(`${Le}/`)?t.replace(`${Le}/`,`${Un}/`):t.startsWith(`${Gn}/`)?t.replace(`${Gn}/`,`${Hi}/`):t},paths:{rulePath(t){return Ko},commandPath(t){return `${Un}/${H(t)}/SKILL.md`},agentPath(t){return `${Hi}/${t}.md`}}},xT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},md={id:hr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:ZV,capabilities:xT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:OT,lint:{hooks:wT,permissions:bT,ignore:PT},supportsConversion:{commands:true},project:QV,globalSupport:{capabilities:xT,detectionPaths:[Ko,Gs,Hi],layout:qV},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[yr],global:[Ko]},canonicalDir:bE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:Dh,detectionPaths:[yr,jn,Gn]};});var ai,br,co,DT,NT,He,pd,Oa,ud,Jm,li,FT,vT,ci,dd,Ym,Xm,o_,s_,tc,i_,ec,rc,fd,nc,Aa,Zm,Jt=d(()=>{ai="gemini-cli",br="GEMINI.md",co="AGENTS.md",DT=".gemini/rules",NT=".gemini/GEMINI.md",He=".gemini/commands",pd=".gemini/policies",Oa=".gemini/settings.json",ud=".geminiignore",Jm=".gemini/skills",li=".gemini/agents",FT=".gemini/system.md",vT=`${pd}/permissions.toml`,ci=".agentsmesh/rules",dd=".agentsmesh/commands",Ym=".agentsmesh/agents",Xm=".agentsmesh/skills",o_=".agentsmesh/mcp.json",s_=".agentsmesh/hooks.yaml",tc=".agentsmesh/ignore",i_=".agentsmesh/permissions.yaml",ec=".gemini/GEMINI.md",rc=".gemini/AGENTS.md",fd=".gemini/settings.json",nc=".gemini/commands",Aa=".gemini/skills",Zm=".gemini/agents";});function a_(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=lt(e?.body.trim()??"",r),o=[{path:br,content:n}];return e&&o.push({path:co,content:e.body.trim()}),o}var MT=d(()=>{Ut();Jt();s(a_,"generateRules");});function $T(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var GT=d(()=>{s($T,"canonicalCommandNameToGeminiTomlPath");});function t1(t){let e=t.replace(/\r\n/g,`
|
|
121
|
+
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:Xh,feature:"ignore"});}var R_=d(()=>{Ur();A();zt();s(KP,"cursorHooksToCanonical");s(Sd,"importSettings");s(Cd,"importIgnore");});async function kd(t,e,r,n=fe){let o=join(t,n),i=await Jm(o),a={projectRoot:t,destCanonicalSkillsDir:$E,targetName:"cursor",normalize:r,results:e};for(let[p,u]of i)await Vm(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 Ww(f,p,u,a);}}var I_=d(()=>{A();Ql();zt();s(kd,"importSkills");});async function WP(t){if(await j(join(t,yr)))return true;let e=[join(t,qr),join(t,Cl),join(t,Ke),join(t,$n),join(t,Qr),join(t,fe),join(t,Rr),join(t,_r)];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,Rr))).some(i=>i.endsWith(".md"))||(await G(join(t,_r))).some(i=>i.endsWith(".md")))}async function HP(t,e,r){let n=join(t,Gn),o=false,i=join(t,yr),a=await St({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:rc,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 _d(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function zP(t,e,r){let n=join(t,Cl),o=await _(n);return o===null||o.trim()===""?false:ec({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function VP(t,e,r){let n=join(t,qr),o=await _(n);return o===null||o.trim()===""?false:ec({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function JP(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,kl);await O(dirname(i)),await S(i,n),e.push({fromTool:rc,fromPath:r,toPath:kl,feature:"mcp"});}async function YP(t,e,r){let n=join(t,Rr),o=join(t,Us);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:rc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>GP(i,o,a),"mapEntry")}));}async function XP(t,e,r){let n=join(t,_r),o=join(t,js);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:rc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>$P(i,o,a),"mapEntry")}));}var rc,ZP=d(()=>{A();U();Me();zt();y_();h_();rc="cursor";s(WP,"hasGlobalCursorArtifacts");s(HP,"importGlobalCursorRulesFromDir");s(zP,"importGlobalUserRules");s(VP,"importGlobalDotCursorAgents");s(JP,"importGlobalMcp");s(YP,"importGlobalAgents");s(XP,"importGlobalCommands");});async function QP(t){if(!await WP(t))return [];let e=[],r=await W(rc,t,"global"),n=await HP(t,e,r);return n||(n=await zP(t,e,r)),n||await VP(t,e,r),await JP(t,e),await kd(t,e,r,fe),await YP(t,e,r),await XP(t,e,r),await Sd(t,e),await Cd(t,e),e}var qP=d(()=>{gt();zt();I_();R_();ZP();s(QP,"importFromCursorGlobalExports");});async function m1(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 Ht(t,kl,i),e.push({fromTool:"cursor",fromPath:r,toPath:kl,feature:"mcp"});}async function tT(t,e={}){if(e.scope==="global")return QP(t);let r=[],n=await W("cursor",t);return await UP(t,r,n),r.push(...await Y(Ed,t,"project",{normalize:n})),await kd(t,r,n),await m1(t,r),await Sd(t,r),await Cd(t,r),r}var eT=d(()=>{gt();A();Ot();Vr();BP();R_();I_();qP();zt();S_();s(m1,"importMcp");s(tT,"importFromCursor");});var nT,oT,sT=d(()=>{U();ft();cr();zt();nT=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n)),a=lr(o.allowedTools),l=a.length>0?a:lr(o["allowed-tools"]);return {destPath:n,toPath:`${js}/${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"),oT=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Us}/${t}`,content:await Yt(n,o,i)}},"cursorAgentMapper");});function iT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:vE}))}var aT=d(()=>{Ct();zt();s(iT,"lintRules");});function lT(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 cT(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 mT(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 pT=d(()=>{wt();s(lT,"lintCommands");s(cT,"lintMcp");s(mT,"lintPermissions");});var p1,u1,d1,f1,Ed,S_=d(()=>{MP();zt();oe();eT();sT();aT();Et();pT();p1={name:"cursor",primaryRootInstructionPath:Bo,generateRules:l_,generateCommands:c_,generateAgents:u_,generateSkills:p_,generateMcp:m_,generatePermissions:d_,generateHooks:f_,generateIgnore:g_,importFrom:tT},u1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Gs,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`}}},d1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Gs,qr]}],skillDir:fe,managedOutputs:{dirs:[yr,_r,Rr,fe],files:[Bo,qr,Ke,$n,Qr,Cl]},rewriteGeneratedPath(t){return t===Gs?null:t===qr||t===Bo||t.startsWith(`${yr}/`)||t.startsWith(`${_r}/`)||t.startsWith(`${Rr}/`)||t.startsWith(`${fe}/`)||t===Ke||t===$n||t===Qr?t:t===$u?null:t},mirrorGlobalPath(t,e){return dt(t,fe,e)},paths:{rulePath(t,e){return `${yr}/${t}.mdc`},commandPath(t,e){return `${_r}/${t}.md`},agentPath(t,e){return `${Rr}/${t}.md`}}},f1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Ed={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:p1,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:iT,lint:{commands:lT,mcp:cT,permissions:mT},project:u1,globalSupport:{capabilities:f1,detectionPaths:[Bo,qr,Ke,$n,Qr,fe,Rr,_r,Cl],layout:d1},importer:{commands:{feature:"commands",mode:"directory",source:{project:[_r]},canonicalDir:js,extensions:[".md"],map:nT},agents:{feature:"agents",mode:"directory",source:{project:[Rr]},canonicalDir:Us,extensions:[".md"],map:oT}},buildImportPaths:Zh,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function uT(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 dT(t){return st(t,ge)}function fT(t){return t.commands.map(e=>({path:`${ge}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function gT(t){return t.agents.map(e=>({path:`${ge}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function hT(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 yT=d(()=>{rt();Wt();ut();Lt();El();s(uT,"generateRules");s(dT,"generateSkills");s(fT,"generateCommands");s(gT,"generateAgents");s(hT,"generateMcp");});async function _T(t,e={}){let r=e.scope??"project",n=[],o=await W(jn,t,r);return n.push(...await Y(Ld,t,r,{normalize:o})),await et(t,r==="global"?tn:ge,jn,n,o),n}var RT=d(()=>{gt();rt();Ot();El();C_();s(_T,"importFromDeepagentsCli");});function IT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jn}))}var ST=d(()=>{Ct();El();s(IT,"lintRules");});function CT(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 kT(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 ET(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 LT=d(()=>{wt();s(CT,"lintHooks");s(kT,"lintPermissions");s(ET,"lintIgnore");});var g1,h1,y1,_1,R1,Ld,C_=d(()=>{Lt();ut();yT();RT();ST();LT();Et();El();g1={name:jn,primaryRootInstructionPath:Ir,generateRules:uT,generateCommands:fT,generateAgents:gT,generateSkills:dT,generateMcp:hT,importFrom:_T},h1={rootInstructionPath:Ir,skillDir:ge,managedOutputs:{dirs:[ge],files:[Ir,Ko]},paths:{rulePath(t){return Ir},commandPath(t){return `${ge}/${V(t)}/SKILL.md`},agentPath(t){return `${ge}/${K(t)}/SKILL.md`}}},y1={rootInstructionPath:Wo,skillDir:tn,managedOutputs:{dirs:[tn],files:[Wo,Ji]},rewriteGeneratedPath(t){return t===Ir?Wo:t===Ko?Ji:t.startsWith(`${ge}/`)?t.replace(`${ge}/`,`${tn}/`):t},paths:{rulePath(t){return Wo},commandPath(t){return `${tn}/${V(t)}/SKILL.md`},agentPath(t){return `${tn}/${K(t)}/SKILL.md`}}},_1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},R1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ld={id:jn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:g1,capabilities:_1,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:IT,lint:{hooks:CT,permissions:kT,ignore:ET},supportsConversion:{commands:true,agents:true},project:h1,globalSupport:{capabilities:R1,detectionPaths:[Wo,Ji],layout:y1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ir],global:[Wo]},canonicalDir:jE,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ko],global:[Ji]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Qh,detectionPaths:[Ir,Ko]};});function OT(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),x(e,t.body.trim()||"")}var wT=d(()=>{U();s(OT,"serializeDroid");});function AT(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 bT(t){return st(t,Ae)}function PT(t){return t.commands.map(e=>({path:`${Ae}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function TT(t){return t.agents.map(e=>({path:`${Un}/${e.name}.md`,content:OT(e)}))}function xT(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Bn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var DT=d(()=>{rt();Wt();Lt();wT();Xi();s(AT,"generateRules");s(bT,"generateSkills");s(PT,"generateCommands");s(TT,"generateAgents");s(xT,"generateMcp");});async function FT(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,NT,l),r.push({fromTool:Sr,fromPath:e,toPath:NT,feature:"mcp"}));}var NT,vT=d(()=>{A();Vr();Xi();NT=".agentsmesh/mcp.json";s(FT,"importFactoryDroidMcp");});async function MT(t,e={}){let r=e.scope??"project",n=[],o=await W(Sr,t,r);return n.push(...await Y(Od,t,r,{normalize:o})),await et(t,r==="global"?Kn:Ae,Sr,n,o),await FT(t,r==="global"?Bs:Bn,n),n}var $T=d(()=>{gt();rt();Ot();vT();Xi();k_();s(MT,"importFromFactoryDroid");});function GT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sr}))}var jT=d(()=>{Ct();Xi();s(GT,"lintRules");});function UT(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 BT(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 KT(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 WT=d(()=>{wt();s(UT,"lintHooks");s(BT,"lintPermissions");s(KT,"lintIgnore");});var S1,C1,k1,HT,Od,k_=d(()=>{DT();Xi();$T();jT();WT();Et();Lt();S1={name:Sr,primaryRootInstructionPath:Cr,generateRules:AT,generateCommands:PT,generateAgents:TT,generateSkills:bT,generateMcp:xT,importFrom:MT},C1={rootInstructionPath:Cr,skillDir:Ae,managedOutputs:{dirs:[Ae,Un],files:[Cr,Bn]},paths:{rulePath(t){return Cr},commandPath(t){return `${Ae}/${V(t)}/SKILL.md`},agentPath(t){return `${Un}/${t}.md`}}},k1={rootInstructionPath:Ho,skillDir:Kn,managedOutputs:{dirs:[Kn,Yi],files:[Ho,Bs]},rewriteGeneratedPath(t){return t===Cr?Ho:t===Bn?Bs:t.startsWith(`${Ae}/`)?t.replace(`${Ae}/`,`${Kn}/`):t.startsWith(`${Un}/`)?t.replace(`${Un}/`,`${Yi}/`):t},paths:{rulePath(t){return Ho},commandPath(t){return `${Kn}/${V(t)}/SKILL.md`},agentPath(t){return `${Yi}/${t}.md`}}},HT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Od={id:Sr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:S1,capabilities:HT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:GT,lint:{hooks:UT,permissions:BT,ignore:KT},supportsConversion:{commands:true},project:C1,globalSupport:{capabilities:HT,detectionPaths:[Ho,Bs,Yi],layout:k1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Cr],global:[Ho]},canonicalDir:BE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:qh,detectionPaths:[Cr,Bn,Un]};});var mi,Nr,po,zT,VT,Xe,wd,Pa,Ad,tp,pi,JT,YT,ui,bd,ep,rp,E_,L_,nc,O_,oc,sc,Pd,ic,Ta,np,Xt=d(()=>{mi="gemini-cli",Nr="GEMINI.md",po="AGENTS.md",zT=".gemini/rules",VT=".gemini/GEMINI.md",Xe=".gemini/commands",wd=".gemini/policies",Pa=".gemini/settings.json",Ad=".geminiignore",tp=".gemini/skills",pi=".gemini/agents",JT=".gemini/system.md",YT=`${wd}/permissions.toml`,ui=".agentsmesh/rules",bd=".agentsmesh/commands",ep=".agentsmesh/agents",rp=".agentsmesh/skills",E_=".agentsmesh/mcp.json",L_=".agentsmesh/hooks.yaml",nc=".agentsmesh/ignore",O_=".agentsmesh/permissions.yaml",oc=".gemini/GEMINI.md",sc=".gemini/AGENTS.md",Pd=".gemini/settings.json",ic=".gemini/commands",Ta=".gemini/skills",np=".gemini/agents";});function w_(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 XT=d(()=>{Wt();Xt();s(w_,"generateRules");});function ZT(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var QT=d(()=>{s(ZT,"canonicalCommandNameToGeminiTomlPath");});function E1(t){let e=t.replace(/\r\n/g,`
|
|
120
122
|
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
121
123
|
${e}
|
|
122
|
-
"""`}function
|
|
124
|
+
"""`}function L1(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${E1(t.body.trim()||"")}`].join(`
|
|
123
125
|
`)+`
|
|
124
|
-
`}function
|
|
125
|
-
`)}]}var
|
|
126
|
-
`)}function
|
|
127
|
-
`)}]}var
|
|
126
|
+
`}function A_(t){return t.commands.map(e=>({path:ZT(e.name,Xe),content:L1(e)}))}var qT=d(()=>{Xt();QT();s(E1,"serializeTomlMultilineLiteral");s(L1,"serializeGeminiCommand");s(A_,"generateCommands");});function b_(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=x(r,e.body.trim()||"");return {path:`${pi}/${e.name}.md`,content:n}})}var tx=d(()=>{U();Xt();s(b_,"generateAgents");});function P_(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=x(n,r.body.trim()||"");e.push({path:`${tp}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${tp}/${r.name}/${a}`,content:i.content});}}return e}var ex=d(()=>{U();Xt();s(P_,"generateSkills");});function O1(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function T_(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=O1(o);if(!a||!Array.isArray(i))return [];let l=i.filter(c=>typeof c=="object"&&c!==null&&Lo(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:[Nr,po]}),Object.keys(e).length===0?[]:[{path:Pa,content:JSON.stringify(e,null,2)}]}var x_=d(()=>{Ur();Xt();s(O1,"mapHookEvent");s(T_,"generateGeminiSettingsFiles");});function D_(t){return !t.ignore||t.ignore.length===0?[]:[{path:Ad,content:t.ignore.join(`
|
|
127
|
+
`)}]}var rx=d(()=>{Xt();s(D_,"generateIgnore");});var nx=d(()=>{XT();qT();tx();ex();x_();rx();});var ox=d(()=>{nx();});function xa(t){return JSON.stringify(t)}function w1(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function A1(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 Td(t,e,r){return ["[[rule]]",`decision = ${xa(t)}`,`priority = ${e}`,...r,""].join(`
|
|
128
|
+
`)}function sx(t,e,r){let n=A1(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 Td(e,r,[`toolName = ${xa(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return Td(e,r,[`toolName = ${xa(o.Bash)}`,`commandPrefix = ${xa(i)}`])}return n.kind==="read"?Td(e,r,[`toolName = ${xa(o.Read)}`,`argsPattern = ${xa(w1(n.path))}`]):Td(e,r,[`toolName = ${xa(n.raw)}`])}function ix(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=sx(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=sx(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:YT,content:o.join(`
|
|
129
|
+
`)}]}var ax=d(()=>{Xt();s(xa,"escapeTomlBasicString");s(w1,"escapeRegexLiteral");s(A1,"parsePermissionExpr");s(Td,"ruleForDecision");s(sx,"permissionExprToGeminiRule");s(ix,"generateGeminiPermissionsPolicies");});function N_(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 xd(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 F_=d(()=>{U();s(N_,"mapGeminiHookEvent");s(xd,"parseFlexibleFrontmatter");});async function v_(t,e){let r=join(t,Pa),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,E_);await O(join(t,".agentsmesh")),await S(c,JSON.stringify({mcpServers:i},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:E_,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,nc);await O(join(t,".agentsmesh")),await S(c,a.join(`
|
|
128
130
|
`)+`
|
|
129
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
131
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:nc,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=N_(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"&&Lo(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"&&Lo(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,L_);await O(join(t,".agentsmesh")),await S(p,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:L_,feature:"hooks"});}}}var lx=d(()=>{Ur();A();Xt();F_();s(v_,"importGeminiSettings");});async function cx(t,e){let r=join(t,Ad),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,nc);await S(i,o.join(`
|
|
130
132
|
`)+`
|
|
131
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
132
|
-
`),e.push({fromTool:
|
|
133
|
-
`)}]}var
|
|
134
|
-
`)}]}function
|
|
135
|
-
`)}]}function
|
|
133
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:nc,feature:"ignore"});}}}var $_=d(()=>{A();Xt();F_();lx();s(cx,"importGeminiIgnore");});function D1(t){return t.replace(/\\(.)/g,"$1")}function N1(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 F1(t){return `Bash(${t}:*)`}function v1(t){return `Read(${D1(t)})`}async function mx(t){let e=[],r=join(t,wd),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 R of h){if(!R||typeof R!="object")continue;let k=R,I=typeof k.toolName=="string"?k.toolName:null,C=typeof k.decision=="string"?k.decision:null;if(!I||!C)continue;let b=N1(I);if(!b)continue;let N=null;b==="Bash"?typeof k.commandPrefix=="string"&&k.commandPrefix.trim()&&(N=F1(k.commandPrefix.trim())):b==="Read"?typeof k.argsPattern=="string"&&k.argsPattern.trim()?N=v1(k.argsPattern.trim()):N="Read":N=b,N&&(C==="allow"?l.has(N)||(l.add(N),i.push(N)):C==="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,O_),p=stringify({allow:i,deny:a});return await S(m,p.trimEnd()+`
|
|
134
|
+
`),e.push({fromTool:mi,fromPath:join(t,wd),toPath:O_,feature:"permissions"}),e}var px=d(()=>{A();Xt();s(D1,"unescapeRegexLiteral");s(N1,"toolNameToPermissionBase");s(F1,"commandPrefixToBashExpr");s(v1,"argsPatternToReadExpr");s(mx,"importGeminiPolicies");});function G_(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 dx=d(()=>{s(G_,"stripProjectRootCanonicalPrefix");});async function gx(t,e,r){let n=join(t,tp),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=ml(p.frontmatter,m);if(u){let C=join(t,ep);await O(C);let b=join(C,`${u.name}.md`);await S(b,bs(u,r(p.body,l,b))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${ep}/${u.name}.md`,feature:"agents"});continue}let f=join(t,rp,m,"SKILL.md"),g=r(c,l,f),h=join(t,rp,m);await O(h);let{frontmatter:R,body:k}=P(g);await S(f,await En(f,{...R,name:m},k)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${rp}/${m}/SKILL.md`,feature:"skills"});let I=await G(dirname(l));for(let C of I){if(C===l)continue;let b=await _(C);if(b===null)continue;let N=relative(dirname(l),C).replace(/\\/g,"/"),T=join(h,N);await O(dirname(T)),await S(T,r(b,C,T)),e.push({fromTool:"gemini-cli",fromPath:C,toPath:`${rp}/${m}/${N}`,feature:"skills"});}}let a=join(t,pi);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"),R=join(t,ep);await O(R);let k=join(R,h),I=r(f,m,k);await S(k,await Yt(k,{...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},I)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${ep}/${h}`,feature:"agents"});}}catch{}}var hx=d(()=>{A();U();ft();ut();Xt();s(gx,"importGeminiSkillsAndAgents");});async function M1(t,e,r){let n=await W("codex-cli",t),o=join(t,ui),i=join(t,po),a=join(t,VT),l=[i,a,join(t,Nr),join(t,JT)],c=null,m=l[l.length-1];for(let N of l){let T=await _(N);if(T!==null){c=T,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 io({content:u,projectRoot:t,rulesDir:ui,sourcePath:m,fromTool:mi,normalize:r});e.push(...f.results);let g=r(f.rootContent,m,p),h=G_(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:R,body:k}=P(h),C=R.root===true?R:{...R,root:true},b=G_(await z(p,C,k),t);await S(p,b),e.push({fromTool:mi,fromPath:m,toPath:`${ui}/_root.md`,feature:"rules"});}async function yx(t){let e=[],r=await W(mi,t);return await M1(t,e,r),e.push(...await Y(Nd,t,"project",{normalize:r})),await gx(t,e,r),await v_(t,e),await cx(t,e),e.push(...await mx(t)),e}var _x=d(()=>{gt();A();U();ft();Jl();Ot();Xt();B_();$_();px();dx();hx();s(M1,"importRootRule");s(yx,"importFromGemini");});async function Ix(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:i,body:a}=xd(r(o)),l=Po(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:`${ui}/${n}`,feature:"rules",content:await z(o,c,a)}}async function Sx(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")?G1(i):xd(i),c=lr(a.allowedTools),m=lr(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${bd}/${n}`,feature:"commands",content:await It(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 G1(t){try{let e=parse$1(t);return {frontmatter:e,body:typeof e.prompt=="string"?e.prompt:""}}catch{return {frontmatter:{},body:t.trim()}}}var Cx=d(()=>{ft();cr();$_();Xt();s(Ix,"mapGeminiRuleFile");s(Sx,"mapGeminiCommandFile");s(G1,"parseTomlCommand");});var kx,Ex,Lx=d(()=>{Cx();kx=s(({relativePath:t,destDir:e,normalizeTo:r})=>Ix(t,e,r),"geminiRuleMapper"),Ex=s(({relativePath:t,destDir:e,normalizeTo:r})=>Sx(t,e,r),"geminiCommandMapper");});function Ox(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:mi}))}var wx=d(()=>{Ct();Xt();s(Ox,"lintRules");});function Ax(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 bx(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=>Ds(n,"gemini-cli",e))}var Px=d(()=>{wt();s(Ax,"lintCommands");s(bx,"lintHooks");});function Tx(t,e){return e==="project"&&di("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:T_(t)}var xx=d(()=>{Tt();x_();s(Tx,"emitScopedGeminiSettings");});var j1,U1,B1,K1,Nd,B_=d(()=>{ox();xi();ax();Xt();_x();Lx();wx();Et();al();ut();Px();xx();oe();hd();j1={name:"gemini-cli",primaryRootInstructionPath:Nr,generateRules:w_,generateCommands:A_,generateAgents:b_,generateSkills:P_,generateIgnore:D_,generatePermissions:ix,importFrom:yx},U1={rootInstructionPath:Nr,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[po]}],extraRuleOutputPaths(){return [po]},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 Nr},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${Xe}/${r.join("/")}/${n}.toml`}return `${Xe}/${t}.toml`},agentPath(t,e){return or(e,"gemini-cli")?`.gemini/skills/${K(t)}/SKILL.md`:`${pi}/${t}.md`}}},B1={rootInstructionPath:oc,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[sc]}],extraRuleOutputPaths(){return [sc]},skillDir:Ta,managedOutputs:{dirs:[ic,Ta,np],files:[oc,sc,Pd]},rewriteGeneratedPath(t){return t===Nr?oc:t===po?sc:t===Pa?Pd:t.startsWith(`${Xe}/`)?t.replace(`${Xe}/`,`${ic}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${Ta}/`):t.startsWith(`${pi}/`)?t.replace(`${pi}/`,`${np}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return dt(t,Ta,e)},paths:{rulePath(t,e){return oc},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${ic}/${r.join("/")}/${n}.toml`}return `${ic}/${t}.toml`},agentPath(t,e){return or(e,"gemini-cli")?`${Ta}/${K(t)}/SKILL.md`:`${np}/${t}.md`}}},K1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},Nd={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:j1,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Kr("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:Ox,lint:{commands:Ax,hooks:bx},emitScopedSettings:Tx,mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Pa?LP(o,r):null},project:U1,globalSupport:{capabilities:K1,detectionPaths:[oc,sc,Pd,ic,Ta,np],layout:B1},importer:{rules:{feature:"rules",mode:"directory",source:{project:[zT]},canonicalDir:ui,extensions:[".md"],map:kx},commands:{feature:"commands",mode:"directory",source:{project:[Xe]},canonicalDir:bd,extensions:[".md",".toml"],map:Ex}},buildImportPaths:ty,detectionPaths:["GEMINI.md",".gemini"],conversionDefaults:{agentsToSkills:false}};});function Dx(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Wn)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:kr,content:o}]:[]}function Nx(t){return st(t,be)}function Fx(t){return t.commands.map(e=>({path:`${be}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function vx(t){return t.agents.map(e=>({path:`${be}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function Mx(t){return t.ignore.length===0?[]:[{path:zo,content:t.ignore.join(`
|
|
135
|
+
`)}]}var $x=d(()=>{rt();Wt();ut();Lt();Ll();s(Dx,"generateRules");s(Nx,"generateSkills");s(Fx,"generateCommands");s(vx,"generateAgents");s(Mx,"generateIgnore");});async function Gx(t,e={}){let r=e.scope??"project",n=[],o=await W(Wn,t,r);return n.push(...await Y(Fd,t,r,{normalize:o})),await et(t,r==="global"?Er:be,Wn,n,o),n}var jx=d(()=>{gt();rt();Ot();Ll();K_();s(Gx,"importFromGoose");});function Ux(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Wn}))}var Bx=d(()=>{Ct();Ll();s(Ux,"lintRules");});function Kx(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 Wx(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 Hx(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 zx=d(()=>{wt();s(Kx,"lintHooks");s(Wx,"lintPermissions");s(Hx,"lintMcp");});var W1,H1,z1,Vx,Fd,K_=d(()=>{Lt();ut();$x();oe();jx();Bx();zx();Et();Ll();W1={name:Wn,primaryRootInstructionPath:kr,generateRules:Dx,generateCommands:Fx,generateAgents:vx,generateSkills:Nx,generateIgnore:Mx,importFrom:Gx},H1={rootInstructionPath:kr,skillDir:be,managedOutputs:{dirs:[be],files:[kr,zo]},paths:{rulePath(t){return kr},commandPath(t){return `${be}/${V(t)}/SKILL.md`},agentPath(t){return `${be}/${K(t)}/SKILL.md`}}},z1={rootInstructionPath:Vo,skillDir:Er,managedOutputs:{dirs:[Er],files:[Vo,Zi]},rewriteGeneratedPath(t){return t===kr?Vo:t===zo?Zi:t},mirrorGlobalPath(t,e){return dt(t,Er,e)},paths:{rulePath(t){return Vo},commandPath(t){return `${Er}/${V(t)}/SKILL.md`},agentPath(t){return `${Er}/${K(t)}/SKILL.md`}}},Vx={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Fd={id:Wn,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:W1,capabilities:Vx,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:Ux,lint:{hooks:Kx,permissions:Wx,mcp:Hx},supportsConversion:{commands:true,agents:true},project:H1,globalSupport:{capabilities:Vx,detectionPaths:[Vo,Zi,Er],layout:z1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[kr],global:[Vo]},canonicalDir:zE,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[zo],global:[Zi]},canonicalDir:".agentsmesh",canonicalFilename:VE}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:ey,detectionPaths:[kr,zo],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function Jx(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Jo)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:en,content:o}]:[]}var Yx=d(()=>{Wt();Ol();s(Jx,"generateRules");});async function Xx(t,e={}){let r=e.scope??"project",n=await W(Jo,t,r);return Y(vd,t,r,{normalize:n})}var Zx=d(()=>{gt();Ot();Ol();W_();s(Xx,"importFromJules");});function Qx(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Jo}))}var qx=d(()=>{Ct();Ol();s(Qx,"lintRules");});function tD(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 eD(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 rD(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 nD(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 oD(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(tD,"lintHooks");s(eD,"lintPermissions");s(rD,"lintIgnore");s(nD,"lintMcp");s(oD,"lintCommands");});var V1,J1,Y1,vd,W_=d(()=>{Yx();Zx();qx();sD();Et();Ol();V1={name:Jo,primaryRootInstructionPath:en,generateRules:Jx,importFrom:Xx},J1={rootInstructionPath:en,managedOutputs:{dirs:[],files:[en]},paths:{rulePath(t){return en},commandPath(){return null},agentPath(){return null}}},Y1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},vd={id:Jo,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:V1,capabilities:Y1,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:Qx,lint:{hooks:tD,permissions:eD,ignore:rD,mcp:nD,commands:oD},project:J1,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[en]},canonicalDir:YE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:ry,detectionPaths:[en]};});function iD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Hn,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:`${Om}/${o}.md`,content:n.body.trim()||""});}return e}function Z1(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),od(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 aD(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,Z1(n)]));return [{path:Lm,content:JSON.stringify({mcpServers:e},null,2)}]}function lD(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${wl}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function cD(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:`${Al}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function mD(t){return t.ignore.length===0?[]:[{path:wm,content:t.ignore.join(`
|
|
136
|
+
`)}]}function pD(t){return st(t,qi)}function uD(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 mt(e?.body.trim()??"",r)}var dD=d(()=>{sd();rt();Wt();U();bl();s(iD,"generateRules");s(Z1,"toJunieMcpServer");s(aD,"generateMcp");s(lD,"generateCommands");s(cD,"generateAgents");s(mD,"generateIgnore");s(pD,"generateSkills");s(uD,"renderJunieGlobalInstructions");});async function Q1(t,e,r){let n=[Hn,Gu,ZE,QE],o=join(t,ny);for(let i of n){let a=join(t,i),l=await _(a);if(l===null)continue;let c=await io({content:l,projectRoot:t,rulesDir:Uu,sourcePath:a,fromTool:Qi,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 S(o,u),e.push({fromTool:Qi,fromPath:a,toPath:ny,feature:"rules"});return}}async function gD(t){let e=[],r=await W(Qi,t);return await Q1(t,e,r),e.push(...await Y(Md,t,"project",{normalize:r})),await et(t,qi,Qi,e,r),e}var hD=d(()=>{gt();A();U();rt();Jl();ft();Ot();bl();H_();s(Q1,"importRootRule");s(gD,"importFromJunie");});function yD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qi}))}var _D=d(()=>{Ct();bl();s(yD,"lintRules");});function RD(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))SA(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 ID=d(()=>{sd();wt();s(RD,"lintMcp");});var q1,tJ,eJ,rJ,Md,H_=d(()=>{dD();bl();oe();hD();_D();ID();Et();q1={name:"junie",primaryRootInstructionPath:Hn,generateRules:iD,generateCommands:lD,generateAgents:cD,generateSkills:pD,generateMcp:aD,generateIgnore:mD,importFrom:gD},tJ={rootInstructionPath:Hn,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 `${Om}/${t}.md`},commandPath(t,e){return `${wl}/${t}.md`},agentPath(t,e){return `${Al}/${t}.md`}}},eJ={rootInstructionPath:ta,renderPrimaryRootInstruction:uD,skillDir:bm,managedOutputs:{dirs:[bm,Pm,Tm,qE],files:[ta,ju]},rewriteGeneratedPath(t){return t===Hn?ta:t.startsWith(`${Om}/`)?ta:t.startsWith(`${qi}/`)?t.replace(`${qi}/`,`${bm}/`):t.startsWith(`${wl}/`)?t.replace(`${wl}/`,`${Tm}/`):t.startsWith(`${Al}/`)?t.replace(`${Al}/`,`${Pm}/`):t===Lm?ju:t===wm?null:t},mirrorGlobalPath(t,e){return dt(t,".junie/skills",e)},paths:{rulePath(t,e){return ta},commandPath(t,e){return `${Tm}/${t}.md`},agentPath(t,e){return `${Pm}/${t}.md`}}},rJ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Md={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:q1,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:yD,lint:{mcp:RD},project:tJ,globalSupport:{capabilities:rJ,detectionPaths:[ta,bm,Pm,Tm,ju],layout:eJ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Uu,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:tL,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:eL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Lm]},canonicalDir:".agentsmesh",canonicalFilename:rL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[wm]},canonicalDir:".agentsmesh",canonicalFilename:nL}},buildImportPaths:oy,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"]};});function CD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:zn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Se))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?x(i,n.body.trim()||""):n.body.trim()||"";e.push({path:`${Yo}/${o}.md`,content:a});}return e}function kD(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${Xo}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function ED(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:`${Zo}/${r}.md`,content:x(n,e.body.trim()||"")}})}function LD(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ws,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function OD(t){return t.ignore.length===0?[]:[{path:Pl,content:t.ignore.join(`
|
|
137
|
+
`)}]}function wD(t){return st(t,rn)}var AD=d(()=>{rt();U();aa();s(CD,"generateRules");s(kD,"generateCommands");s(ED,"generateAgents");s(LD,"generateMcp");s(OD,"generateIgnore");s(wD,"generateSkills");});var $d,Gd,bD,V_=d(()=>{U();ft();aa();$d=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Vs}/${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"),Gd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Nl}/${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)}},"kiloCommandMapper"),bD=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${ia}/${t}`,content:await Yt(n,o,i)}},"kiloAgentMapper");});async function PD(t){try{return await stat(t),!0}catch{return false}}async function sJ(t,e,r){let n=join(t,ea);if(!await PD(n))return;let o=join(t,Vs),i=join(n,Y_),l=e.some(c=>c.toPath===J_)?null:await _(i);if(l!==null){let c=join(t,J_),m=r(l,i,c),{body:p}=P(m),u=await z(c,{root:true},p);await S(c,u),e.push({feature:"rules",fromTool:Se,fromPath:`${ea}/${Y_}`,toPath:J_});}e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:Se,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await $d({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===Y_||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function iJ(t,e,r){let n=join(t,Tl);if(!await PD(n))return;let o=join(t,Nl);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:Se,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await Gd({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function aJ(t,e,r){let n=join(t,Ku),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,ia,`${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}
|
|
136
138
|
|
|
137
139
|
## When to use
|
|
138
140
|
|
|
139
|
-
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let R=await
|
|
140
|
-
`)}]}var $D=d(()=>{tt();kt();j();T_();Nl();s(V1,"steeringFrontmatter");s(TD,"generateRules");s(xD,"generateCommands");s(DD,"generateSkills");s(ND,"generateMcp");s(FD,"generateHooks");s(vD,"generateAgents");s(MD,"generateIgnore");});function Y1(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:wo(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function X1(t,e,r,n){let o=n==="global"?[rn,qr]:[qr,rn];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,jh),{frontmatter:m,body:p}=b(r(l,a,c));await I(c,await K(c,{...m,root:true},p)),e.push({fromTool:Ge,fromPath:a,toPath:jh,feature:"rules"});return}}async function Z1(t,e,r){let n=join(t,Uh);e.push(...await Rt({srcDir:join(t,tn),destDir:n,extensions:[".md"],fromTool:Ge,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:`${Uh}/${o}`,feature:"rules",content:await K(a,Y1(l),c)}},"mapEntry")}));}async function Q1(t,e){let r={};for(let o of await v(join(t,Hs))){if(!o.endsWith(".kiro.hook"))continue;let i=bD(await _(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(t,Bh);await O(join(t,".agentsmesh")),await I(n,PD(r)),e.push({fromTool:Ge,fromPath:join(t,Hs),toPath:Bh,feature:"hooks"});}async function GD(t,e={}){let r=e.scope??"project",n=[],o=await B(Ge,t,r);return await X1(t,n,o,r),await Z1(t,n,o),n.push(...await J(Ld,t,r,{normalize:o})),await q(t,Re,Ge,n,o),r==="project"&&await Q1(t,n),n}var jD=d(()=>{dt();tt();xe();Et();ut();or();w();j();T_();Nl();x_();s(Y1,"canonicalRuleMeta");s(X1,"importRoot");s(Z1,"importNonRootRules");s(Q1,"importHooks");s(GD,"importFromKiro");});function UD(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ge}))}var BD=d(()=>{It();Nl();s(UD,"lintRules");});function KD(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=>Ps(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var WD=d(()=>{Lt();s(KD,"lintHooks");});var q1,tJ,eJ,rJ,Ld,x_=d(()=>{kt();$D();ee();jD();BD();WD();Ct();Nl();q1={name:Ge,primaryRootInstructionPath:qr,generateRules:TD,generateCommands:xD,generateAgents:vD,generateSkills:DD,generateMcp:ND,generateHooks:FD,generateIgnore:MD,importFrom:GD},tJ={rootInstructionPath:qr,skillDir:Re,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${tn}/${t}.md`},commandPath(t){return `${Re}/${H(t)}/SKILL.md`},agentPath(t,e){return `${en}/${t}.md`}}},eJ={rootInstructionPath:rn,skillDir:zs,managedOutputs:{dirs:[oa,zs,sa,XE],files:[rn,bm,Pm]},rewriteGeneratedPath(t){return t===qr?rn:t.startsWith(`${tn}/`)?t.replace(`${tn}/`,`${oa}/`):t.startsWith(`${Re}/`)?t.replace(`${Re}/`,`${zs}/`):t.startsWith(`${en}/`)?t.replace(`${en}/`,`${sa}/`):t===xl?bm:t===Dl?Pm:t.startsWith(`${Hs}/`)?null:t},mirrorGlobalPath(t,e){return pt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${oa}/${t}.md`},commandPath(t){return `${Re}/${H(t)}/SKILL.md`},agentPath(t,e){return `${sa}/${t}.md`}}},rJ={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Ld={id:Ge,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:q1,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:UD,lint:{hooks:KD},project:tJ,globalSupport:{capabilities:rJ,detectionPaths:[oa,rn,zs,sa,bm,Pm],layout:eJ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[en],global:[en]},canonicalDir:ZE,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[xl],global:[bm]},canonicalDir:".agentsmesh",canonicalFilename:QE},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Dl],global:[Pm]},canonicalDir:".agentsmesh",canonicalFilename:qE}},buildImportPaths:Kh,detectionPaths:[tn,Re,en,Hs,xl,Dl],conversionDefaults:{commandsToSkills:true}};});function zD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Hn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(nn))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 VD(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 JD(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 nJ(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 YD(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]=nJ(n);return [{path:zn,content:JSON.stringify({mcp:e},null,2)}]}function XD(t){return rt(t,on)}var ZD=d(()=>{tt();j();ca();s(zD,"generateRules");s(VD,"generateCommands");s(JD,"generateAgents");s(nJ,"toOpenCodeMcpServer");s(YD,"generateMcp");s(XD,"generateSkills");});function D_(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:D_(a.headers),env:D_(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:D_(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function iJ(t,e,r){let o=join(t,e==="global"?Ys:zn),i=await _(o);if(i===null)return;let a=sJ(i);Object.keys(a).length!==0&&(await Bt(t,Wh,a),r.push({feature:"mcp",fromTool:nn,fromPath:o,toPath:Wh}));}async function QD(t,e={}){let r=e.scope??"project",n=[],o=await B(nn,t,r);return n.push(...await J(Od,t,r,{normalize:o})),await q(t,on,nn,n,o),await iJ(t,r,n),n}var qD=d(()=>{dt();tt();Et();Kr();w();ca();N_();s(D_,"toStringRecord");s(sJ,"parseOpenCodeMcp");s(iJ,"importMcp");s(QD,"importFromOpenCode");});var tN,eN,rN,nN=d(()=>{j();ut();ca();tN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Tm}/${t}`,content:await K(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),eN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Pu}/${t}`,content:await _t(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),rN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Tu}/${t}`,content:await Vt(n,o,i)}},"opencodeAgentMapper");});function oN(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:nn}))}var sN=d(()=>{It();ca();s(oN,"lintRules");});function iN(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 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","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function lN(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 cN=d(()=>{Lt();s(iN,"lintHooks");s(aN,"lintPermissions");s(lN,"lintIgnore");});var aJ,lJ,cJ,mN,Od,N_=d(()=>{ZD();ca();ee();qD();nN();sN();cN();Ct();aJ={name:nn,primaryRootInstructionPath:Hn,generateRules:zD,generateCommands:VD,generateAgents:JD,generateSkills:XD,generateMcp:YD,importFrom:QD},lJ={rootInstructionPath:Hn,skillDir:on,managedOutputs:{dirs:[Xo,Zo,Qo,on],files:[Hn,zn]},paths:{rulePath(t){return `${Xo}/${t}.md`},commandPath(t){return `${Zo}/${t}.md`},agentPath(t){return `${Qo}/${t}.md`}}},cJ={rootInstructionPath:Vs,skillDir:Js,managedOutputs:{dirs:[ia,aa,la,Js,eL],files:[Vs,Ys]},rewriteGeneratedPath(t){return t===Hn?Vs:t===zn?Ys:t},mirrorGlobalPath(t,e){return pt(t,Js,e)},paths:{rulePath(t){return `${ia}/${t}.md`},commandPath(t){return `${aa}/${t}.md`},agentPath(t){return `${la}/${t}.md`}}},mN={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Od={id:nn,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:aJ,capabilities:mN,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:oN,lint:{hooks:iN,permissions:aN,ignore:lN},project:lJ,globalSupport:{capabilities:mN,detectionPaths:[Vs,ia,aa,la,Js,Ys],layout:cJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Hn],global:[Vs]},canonicalDir:Tm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Xo],global:[ia]},canonicalDir:Tm,extensions:[".md"],map:tN}],commands:{feature:"commands",mode:"directory",source:{project:[Zo],global:[aa]},canonicalDir:Pu,extensions:[".md"],map:eN},agents:{feature:"agents",mode:"directory",source:{project:[Qo],global:[la]},canonicalDir:Tu,extensions:[".md"],map:rN}},buildImportPaths:Hh,detectionPaths:[Xo,Zo,Qo,on,zn,"opencode.jsonc"]};});function pN(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Vn)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:Ir,content:o}]:[]}function uN(t){return rt(t,qt)}function dN(t){return t.commands.map(e=>({path:`${qt}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function fN(t){return t.agents.map(e=>({path:`${qt}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}var gN=d(()=>{tt();Ut();mt();kt();vl();s(pN,"generateRules");s(uN,"generateSkills");s(dN,"generateCommands");s(fN,"generateAgents");});async function hN(t,e={}){let r=e.scope??"project",n=[],o=await B(Vn,t,r);return n.push(...await J(Ad,t,r,{normalize:o})),await q(t,r==="global"?Sr:qt,Vn,n,o),n}var yN=d(()=>{dt();tt();Et();vl();v_();s(hN,"importFromPiAgent");});function _N(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Vn}))}var RN=d(()=>{It();vl();s(_N,"lintRules");});function IN(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 SN(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 CN(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 kN(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 EN=d(()=>{Lt();s(IN,"lintHooks");s(SN,"lintPermissions");s(CN,"lintIgnore");s(kN,"lintMcp");});var mJ,pJ,uJ,LN,Ad,v_=d(()=>{kt();mt();gN();ee();yN();RN();EN();Vh();vl();mJ={name:Vn,primaryRootInstructionPath:Ir,generateRules:pN,generateCommands:dN,generateAgents:fN,generateSkills:uN,importFrom:hN},pJ={rootInstructionPath:Ir,skillDir:qt,managedOutputs:{dirs:[qt],files:[Ir]},paths:{rulePath(t){return Ir},commandPath(t){return `${qt}/${H(t)}/SKILL.md`},agentPath(t){return `${qt}/${U(t)}/SKILL.md`}}},uJ={rootInstructionPath:qo,skillDir:Sr,managedOutputs:{dirs:[Sr],files:[qo]},rewriteGeneratedPath(t){return t===Ir?qo:t.startsWith(`${qt}/`)?t.replace(`${qt}/`,`${Sr}/`):t},mirrorGlobalPath(t,e){return pt(t,Sr,e)},paths:{rulePath(t){return qo},commandPath(t){return `${Sr}/${H(t)}/SKILL.md`},agentPath(t){return `${Sr}/${U(t)}/SKILL.md`}}},LN={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Ad={id:Vn,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:mJ,capabilities:LN,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:_N,lint:{hooks:IN,permissions:SN,ignore:CN,mcp:kN},supportsConversion:{commands:true,agents:true},project:pJ,globalSupport:{capabilities:LN,detectionPaths:[qo],layout:uJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ir],global:[qo]},canonicalDir:oL,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:zh,detectionPaths:[Ir,qt]};});function ON(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Cr,content:r.body.trim()?r.body:""});let n=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(Jn)));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:`${ts}/${i}.md`,content:l});}return e}function AN(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:`${Yn}/${e.name}.md`,content:n}})}function wN(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:`${Xn}/${e.name}.md`,content:n}})}function bN(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:`${je}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${je}/${r.name}/${a}`,content:i.content});}}return e}function PN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Xs,content:e}]}function TN(t){return !t.ignore||t.ignore.length===0?[]:[{path:Zs,content:t.ignore.join(`
|
|
141
|
-
`)}]}var
|
|
142
|
-
`)}]}function
|
|
143
|
-
`)}]}var
|
|
144
|
-
`)}]}var
|
|
145
|
-
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:V_,feature:"ignore"});}}return await mv(t,n,o),await uv(t,n,o),await gv(t,n),await hv(t,n),n}var Rv=d(()=>{dt();w();j();ut();xe();Qc();Se();pv();dv();yv();s(_v,"importFromWindsurf");});function Iv(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:mo,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:mo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var Sv=d(()=>{Se();s(Iv,"lintRules");});function Cv(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 kv(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 Ev=d(()=>{Lt();s(Cv,"lintCommands");s(kv,"lintMcp");});function pY(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 uY,dY,fY,gY,Lv,Ov=d(()=>{lv();wi();Se();ee();Rv();Sv();Ev();Ct();ol();mt();s(pY,"directoryScopedRuleDir");uY={name:"windsurf",primaryRootInstructionPath:po,generateRules:X_,generateCommands:Q_,generateAgents:q_,generateSkills:rR,generateMcp:tR,generateHooks:eR,generateIgnore:Z_,importFrom:_v},dY={rootInstructionPath:po,extraRuleOutputPaths(t){if(t.root)return [po];let e=pY(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:dn,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 `${ui}/${t}.md`},commandPath(t,e){return `${di}/${t}.md`},agentPath(t,e){return qe(e,"windsurf")?`.windsurf/skills/${U(t)}/SKILL.md`:null}}},fY={rootInstructionPath:mc,skillDir:pc,managedOutputs:{dirs:[pc,Qm,qF],files:[mc,Fd,vd,Md]},rewriteGeneratedPath(t){return t===po?mc:t.startsWith(`${ui}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${dn}/`)?t.replace(`${dn}/`,`${pc}/`):t.startsWith(`${di}/`)?t.replace(`${di}/`,`${Qm}/`):t===ac?Fd:t===lc?vd:t===ic?Md:t},mirrorGlobalPath(t,e){return pt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return mc},commandPath(t,e){return `${Qm}/${t}.md`},agentPath(t,e){return qe(e,"windsurf")?`${pc}/${U(t)}/SKILL.md`:null}}},gY={rules:"native",additionalRules:"partial",commands:Gr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},Lv={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:uY,capabilities:{rules:"native",additionalRules:"native",commands:Gr("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:Iv,lint:{commands:Cv,mcp:kv},project:dY,globalSupport:{capabilities:gY,detectionPaths:[mc,pc,Qm,Fd,vd,Md],layout:fY},buildImportPaths:ny,detectionPaths:[".windsurfrules",".windsurf"],conversionDefaults:{agentsToSkills:true}};});function Av(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=lt(n,r);return o?[{path:mn,content:o}]:[]}var wv=d(()=>{Ut();ha();s(Av,"generateRules");});async function Pv(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 Bt(t,bv,l),r.push({fromTool:"zed",fromPath:e,toPath:bv,feature:"mcp"}));}var bv,Tv=d(()=>{w();Kr();ha();bv=".agentsmesh/mcp.json";s(Pv,"importZedMcp");});async function xv(t,e={}){let r=e.scope??"project",n=[],o=await B("zed",t,r);return n.push(...await J(Gd,t,r,{normalize:o})),await Pv(t,r==="global"?no:ro,n),n}var Dv=d(()=>{dt();Et();Tv();ha();oR();s(xv,"importFromZed");});function Nv(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var Fv=d(()=>{It();ha();s(Nv,"lintRules");});function vv(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 Mv(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 $v(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 Gv=d(()=>{Lt();s(vv,"lintHooks");s(Mv,"lintPermissions");s($v,"lintIgnore");});function CY(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 yY,_Y,RY,IY,SY,Gd,oR=d(()=>{wv();Dv();Fv();Gv();Ct();ha();yY={name:"zed",primaryRootInstructionPath:mn,generateRules:Av,importFrom:xv},_Y={rootInstructionPath:mn,managedOutputs:{dirs:[],files:[mn,ro]},paths:{rulePath(t){return mn},commandPath(){return null},agentPath(){return null}}},RY={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[no]},rewriteGeneratedPath(t){return t===ro?no:t},paths:{rulePath(){return no},commandPath(){return null},agentPath(){return null}}},IY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},SY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(CY,"mergeZedSettings");Gd={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:yY,capabilities:IY,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:Nv,lint:{hooks:vv,permissions:Mv,ignore:$v},project:_Y,globalSupport:{capabilities:SY,detectionPaths:[no],layout:RY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[mn],global:[]},canonicalDir:EL,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:ro,content:JSON.stringify({context_servers:r},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===ro||n===no?CY(t,r):null},buildImportPaths:oy,detectionPaths:[mn,ro]};});var tE={};og(tE,{BUILTIN_TARGETS:()=>bt,TARGET_IDS:()=>Ft,getBuiltinTargetDefinition:()=>Pr,getEffectiveTargetSupportLevel:()=>jd,getTargetCapabilities:()=>mi,getTargetDetectionPaths:()=>iR,getTargetLayout:()=>Gt,getTargetManagedOutputs:()=>aR,getTargetPrimaryRootInstructionPath:()=>EY,getTargetSkillDir:()=>qm,isBuiltinTargetId:()=>Pe,resolveTargetFeatureGenerator:()=>uc,rewriteGeneratedOutputPath:()=>lR});function kY(){return sR||(NC(bt),sR=new Map(bt.map(t=>[t.id,t]))),sR}function Pr(t){return kY().get(t)}function mi(t,e="project"){let r=Pr(t)??et(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return xC(n)}function iR(t,e="project"){let r=Pr(t)??et(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Gt(t,e="project"){let r=Pr(t)??et(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function EY(t,e="project"){return Gt(t,e)?.rootInstructionPath}function qm(t,e="project"){return Gt(t,e)?.skillDir}function aR(t,e="project"){return Gt(t,e)?.managedOutputs}function lR(t,e,r="project"){let n=Gt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function jv(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!nl(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!qe(r,t.id,true,n):false}function LY(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?nl(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?qe(r,t.id,true,n):false}function jd(t,e,r,n="project"){let o=mi(t,n)?.[e]?.level??"none",i=Pr(t)??et(t);return o==="none"&&LY(i,e,r,n)?"embedded":o!=="embedded"?o:jv(i,e,r,n)?"none":o}function uc(t,e,r,n="project"){let o=Pr(t)??et(t);if(!o?.generators||jv(o,e,r,n))return;let i=OY[e];return i===null?void 0:i(o.generators)}var bt,sR,OY,Pt=d(()=>{ol();wi();se();Ng();Rn();Qg();sy();iy();ly();DO();py();VA();Mw();xy();$y();jy();e_();r_();n_();C_();k_();E_();L_();P_();x_();N_();v_();M_();$_();U_();B_();K_();W_();Ov();oR();bt=[su,Fu,vu,Mu,xO,$u,zA,vw,Hu,Zu,qu,ld,cd,md,_d,Rd,Id,Sd,Ed,Ld,Od,Ad,wd,bd,Td,xd,Dd,Nd,Lv,Gd];s(kY,"builtinTargetsMap");s(Pr,"getBuiltinTargetDefinition");s(mi,"getTargetCapabilities");s(iR,"getTargetDetectionPaths");s(Gt,"getTargetLayout");s(EY,"getTargetPrimaryRootInstructionPath");s(qm,"getTargetSkillDir");s(aR,"getTargetManagedOutputs");s(lR,"rewriteGeneratedOutputPath");s(jv,"isFeatureSuppressedByConversion");s(LY,"isConversionUpgrading");s(jd,"getEffectiveTargetSupportLevel");OY={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(uc,"resolveTargetFeatureGenerator");});function bY(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 Ud(t){let e=[];for(let n of bt){let o=0,i=0;for(let a of n.detectionPaths){if(!await $(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(bY);let r=e[0];return r.uniqueHits===0?null:r.id}var wY,Uv,cR=d(()=>{w();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(bY,"compare");s(Ud,"detectNativeFormat");Uv=bt.map(t=>t.detectionPaths[0]).filter(t=>t!==void 0);});async function tp(t,e){let r=et(e);if(!r)throw new Error(`No importer registered for native target: ${e}`);return r.generators.importFrom(t)}var mR=d(()=>{se();s(tp,"importNativeToCanonical");});async function Pa(t){if(!await $(t))return false;if(await $(join(t,uR)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await $(join(t,r.name,uR)))return !0}catch{return false}return false}async function ep(t,e={}){if(!await $(t))return [];if(await $(join(t,uR))){let r=await Bp(t,e);return r?[r]:[]}return Ls(t,e)}var uR,Bd=d(()=>{w();el();uR="SKILL.md";s(Pa,"isSkillPackLayout");s(ep,"loadSkillsAtExtendPath");});async function Kd(t,e={}){return (await Es(t,e)).filter(n=>!In(basename(n.source)))}async function Wd(t,e={}){return (await ks(t,e)).filter(n=>!In(basename(n.source)))}async function Hd(t,e={}){return (await Cs(t,e)).filter(n=>!In(basename(n.source)))}async function Bv(t,e={}){return Ls(t,e)}var zd=d(()=>{Hc();Wc();Kc();el();Co();s(Kd,"importAgents");s(Wd,"importCommands");s(Hd,"importRules");s(Bv,"importSkills");});function fR(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 gR(t){return t.toLowerCase().endsWith(".md")}function Wv(t,e){for(let r of fR(et(t)?.importer,e))if(r.extensions.some(n=>!gR(n)))return true;return false}function MY(t,e){let r=new Set;for(let n of fR(et(t)?.importer,e))for(let o of n.extensions)gR(o)||r.add(o.toLowerCase());return r}function $Y(t){return bC().filter(e=>Wv(e,t))}async function UY(t,e,r){return GY[t](e,r)}async function BY(t,e,r){return jY[t](e,r)}async function KY(t,e,r,n={}){let o=fR(et(e)?.importer,r),i=await v(t),a=new Set;for(let p of o)for(let u of p.extensions)gR(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!In(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(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 R of o){if(!R.extensions.some(k=>u.toLowerCase().endsWith(k.toLowerCase())))continue;let S=await R.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(S){h=S;break}}h&&(await O(dirname(h.destPath)),await I(h.destPath,h.content));}return {entities:await UY(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function hR(t,e,r={}){let n=r.restrictToTarget,o=n?Wv(n,e)?[n]:[]:$Y(e),i=new Set;for(let f of o)for(let g of MY(f,e))i.add(g);let a=await BY(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 KY(t,f,e,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let R=c(h);m.has(R)||m.set(R,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function Vd(t,e={}){let r=await hR(t,"commands",e);return {commands:[...r.entities],cleanup:r.cleanup}}async function Jd(t,e={}){let r=await hR(t,"rules",e);return {rules:[...r.entities],cleanup:r.cleanup}}async function Yd(t,e={}){let r=await hR(t,"agents",e);return {agents:[...r.entities],cleanup:r.cleanup}}var GY,jY,Xd=d(()=>{Hc();Wc();Kc();w();se();Co();zd();s(fR,"directorySpecsFor");s(gR,"isMarkdownExtension");s(Wv,"hasNonMdEntityMapper");s(MY,"nonMdEntityExtensions");s($Y,"targetsWithNonMdEntityMapper");GY={rules:Cs,commands:ks,agents:Es},jY={rules:Hd,commands:Wd,agents:Kd};s(UY,"parseEntityDir");s(BY,"importEntities");s(KY,"readToolNativeEntities");s(hR,"readEntityDirWithMappers");s(Vd,"readCommandsDirWithMappers");s(Jd,"readRulesDirWithMappers");s(Yd,"readAgentsDirWithMappers");});function zY(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function VY(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 Zd(t){if(!await $(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 RR(t,e){if(basename(t)===e)return t;let r=join(t,e);return await $(r)?r:null}async function JY(t,e,r){let n=s(async()=>{},"noop"),o=await RR(t,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await Hd(o,e),cleanup:n};let i=await Jd(o,{parseOpts:e});return {rules:[...i.rules],cleanup:i.cleanup}}async function YY(t,e,r){let n=s(async()=>{},"noop"),o=await RR(t,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await Wd(o,e),cleanup:n};let i=await Vd(o,{parseOpts:e});return {commands:[...i.commands],cleanup:i.cleanup}}async function XY(t,e,r){let n=s(async()=>{},"noop"),o=await RR(t,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await Kd(o,e),cleanup:n};let i=await Yd(o,{parseOpts:e});return {agents:[...i.agents],cleanup:i.cleanup}}async function ZY(t,e){if(await Pa(t))return ep(t,e);let r=join(t,"skills");return await Pa(r)?ep(r,e):[]}async function Qd(t,e={}){let r=s(async()=>{},"noop"),n=join(t,".agentsmesh");if(await $(n))return {canonical:await Ee(t,e),cleanup:r};let o=e.enableTargetEntityMappers??false,i=zY(),a=await JY(t,e,o);i.rules=a.rules;let l=await YY(t,e,o);i.commands=l.commands;let c=await XY(t,e,o);i.agents=c.agents,i.skills=await ZY(t,e);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(VY(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 IR=d(()=>{w();zd();Xd();Ai();Bd();s(zY,"emptyCanonical");s(VY,"isCanonicalSliceEmpty");s(Zd,"normalizeSlicePath");s(RR,"resolveEntityDir");s(JY,"parseRulesAt");s(YY,"parseCommandsAt");s(XY,"parseAgentsAt");s(ZY,"loadSkillsForPartialSlice");s(Qd,"loadCanonicalSliceAtPath");});async function qd(t){let e=await _(t);if(!e)return "";let r=Fr(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 Hv(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 !(_C(o)||!n.includes("/")&&(jp(n)||RC(n)))},"filter")});}var SR=d(()=>{w();j();Co();s(qd,"readSkillFrontmatterName");s(Hv,"cpFilteredSkill");});function CR(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=CR(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=CR(e.globs).length>0?CR(e.globs):[e.glob],delete e.glob),e}function kR(t){let e=Fr(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 zv=d(()=>{j();s(CR,"toStrArray");s(tX,"normalizeCursorKeys");s(eX,"normalizeWindsurfKeys");s(kR,"normalizeMdcToCanonical");});function ER(t){return t.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function LR(t){return t.toLowerCase().endsWith(".mdc")?basename(t).replace(/\.mdc$/i,".md"):basename(t)}function Jv(t,e,r){let o=relative(t,e).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=ER(o[o.length-1]);return i?`${i}-${r}`:r}var Yv=d(()=>{s(ER,"sanitizeNameSegment");s(LR,"computeDestName");s(Jv,"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(t,{recursive:true,force:true});},"cleanup")}}function qv(t,e){let r=t.toLowerCase();return !!(r.endsWith(".md")||e&&r.endsWith(".mdc"))}async function aX(t,e,r){if(!qv(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),kR(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 v(t)).filter(l=>qv(l,r)&&!In(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=LR(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(e);for(let l of o){let c=LR(l),p=(i.get(c)??0)>1?Jv(t,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(t,l).replace(/\\/g,"/").split("/").map(ER).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),kR(f));}else await cp$1(l,join(e,p));}}async function Xv(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await v(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 Pa(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await Xv(t,e,r.preferredSkillNames??[]))return;let l=await qd(join(t,"SKILL.md"))||basename(t),c=join(e,l);await O(e),await Hv(t,c);return}if(await Xv(t,e,r.preferredSkillNames??[]))return;await O(e);let o=await v(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 ef(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 AR=d(()=>{w();Bd();SR();Co();zv();Yv();s(iX,"createStageRoot");s(qv,"isAcceptedFile");s(aX,"stageSingleFile");s(lX,"stageMarkdownCollection");s(Xv,"stagePreferredSkills");s(cX,"stageSkills");s(ef,"stageManualInstallScope");});function mX(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function tM(t){let e=t.resolvedPath;if(t.as!==void 0){let o=t.path?join(e,t.path):e;if(!await $(o))throw new Error(`Extend "${t.name}": path does not exist: ${o}`);let i=await ef(o,t.as);try{return Ee(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!t.path){let o=join(e,".agentsmesh");if(!await $(o)){if(await Pa(e)){let a=await ep(e);return {...mX(),skills:a}}let i=t.target??await Ud(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
146
|
-
Expected one of: .agentsmesh/, ${
|
|
141
|
+
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let R=await Yt(m,h,g),k=r(R,n,m);await S(m,k),e.push({feature:"agents",fromTool:Se,fromPath:n,toPath:`${ia}/${c}.md`});}}async function TD(t,e={}){let r=e.scope??"project",n=[],o=await W(Se,t,r);return n.push(...await Y(jd,t,r,{normalize:o})),await et(t,rn,Se,n,o),r==="project"&&(await sJ(t,n,o),await iJ(t,n,o),await aJ(t,n,o),await et(t,ra,Se,n,o)),n}var J_,Y_,xD=d(()=>{gt();rt();Me();Ot();A();ft();U();V_();aa();X_();J_=`${Vs}/_root.md`,Y_="00-root.md";s(PD,"pathExists");s(sJ,"importLegacyRules");s(iJ,"importLegacyWorkflows");s(aJ,"importLegacyModes");s(TD,"importFromKiloCode");});function DD(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Se}))}var ND=d(()=>{Ct();aa();s(DD,"lintRules");});function FD(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 vD(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 MD=d(()=>{wt();s(FD,"lintHooks");s(vD,"lintPermissions");});var lJ,cJ,mJ,$D,jd,X_=d(()=>{AD();aa();oe();xD();V_();ND();MD();Et();lJ={name:Se,primaryRootInstructionPath:zn,generateRules:CD,generateCommands:kD,generateAgents:ED,generateSkills:wD,generateMcp:LD,generateIgnore:OD,importFrom:TD},cJ={rootInstructionPath:zn,skillDir:rn,managedOutputs:{dirs:[Yo,Xo,Zo,rn],files:[zn,Ws,Pl]},paths:{rulePath(t,e){return `${Yo}/${t}.md`},commandPath(t,e){return `${Xo}/${t}.md`},agentPath(t,e){return `${Zo}/${t}.md`}}},mJ={rootInstructionPath:Hs,skillDir:zs,managedOutputs:{dirs:[na,oa,sa,zs,sL],files:[Hs,Dl,Wu]},rewriteGeneratedPath(t){return t===zn?Hs:t},mirrorGlobalPath(t,e){return dt(t,zs,e)},paths:{rulePath(t,e){return `${na}/${t}.md`},commandPath(t,e){return `${oa}/${t}.md`},agentPath(t,e){return `${sa}/${t}.md`}}},$D={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},jd={id:Se,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:lJ,capabilities:$D,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:DD,lint:{hooks:FD,permissions:vD},project:cJ,globalSupport:{capabilities:$D,detectionPaths:[Hs,na,oa,sa,zs,Dl,Wu],layout:mJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[zn],global:[Hs]},canonicalDir:Vs,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Yo],global:[na]},canonicalDir:Vs,extensions:[".md"],map:$d}],commands:{feature:"commands",mode:"directory",source:{project:[Xo],global:[oa]},canonicalDir:Nl,extensions:[".md"],map:Gd},agents:{feature:"agents",mode:"directory",source:{project:[Zo],global:[sa]},canonicalDir:ia,extensions:[".md"],map:bD},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ws,Dm],global:[Dl]},canonicalDir:".agentsmesh",canonicalFilename:iL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Pl],global:[Wu]},canonicalDir:".agentsmesh",canonicalFilename:aL}},buildImportPaths:sy,detectionPaths:[Yo,Xo,Zo,rn,Ws,ea,Tl,ra,Dm,Ku,Pl,"kilo.jsonc","kilo.json"]};});function GD(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function dJ(t){return t.type==="prompt"?t.prompt:t.command}function fJ(t,e){let r=jD[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}function UD(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in jD)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=dJ(a);if(!l)continue;let c={name:`${GD(r)} ${i}`,version:"1",when:fJ(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${GD(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return e}function gJ(t){let e=uJ.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 BD(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:gJ(r)}function KD(t){return stringify(t).trimEnd()}var jD,uJ,Z_=d(()=>{jD={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},uJ=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(GD,"toKebab");s(dJ,"hookText");s(fJ,"toWhen");s(UD,"generateKiroHooks");s(gJ,"toCanonicalEntry");s(BD,"parseKiroHookFile");s(KD,"serializeCanonicalHooks");});function yJ(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 WD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:nn,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(We))continue;let o=basename(n.source,".md");e.push({path:`${on}/${o}.md`,content:x(yJ(n),n.body.trim()||"")});}return e}function HD(t){return t.commands.map(e=>({path:`${Ce}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function zD(t){return st(t,Ce)}function VD(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Fl,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function JD(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:UD(t.hooks).map(e=>({path:`${Js}/${e.name}`,content:e.content}))}function YD(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=x(r,e.body.trim()||"");return {path:`${sn}/${e.name}.md`,content:n}})}function XD(t){return t.ignore.length===0?[]:[{path:vl,content:t.ignore.join(`
|
|
142
|
+
`)}]}var ZD=d(()=>{rt();Lt();U();Z_();Ml();s(yJ,"steeringFrontmatter");s(WD,"generateRules");s(HD,"generateCommands");s(zD,"generateSkills");s(VD,"generateMcp");s(JD,"generateHooks");s(YD,"generateAgents");s(XD,"generateIgnore");});function RJ(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 IJ(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,iy),{frontmatter:m,body:p}=P(r(l,a,c));await S(c,await z(c,{...m,root:true},p)),e.push({fromTool:We,fromPath:a,toPath:iy,feature:"rules"});return}}async function SJ(t,e,r){let n=join(t,ay);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}=P(i(a));return {destPath:a,toPath:`${ay}/${o}`,feature:"rules",content:await z(a,RJ(l),c)}},"mapEntry")}));}async function CJ(t,e){let r={};for(let o of await G(join(t,Js))){if(!o.endsWith(".kiro.hook"))continue;let i=BD(await _(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(t,ly);await O(join(t,".agentsmesh")),await S(n,KD(r)),e.push({fromTool:We,fromPath:join(t,Js),toPath:ly,feature:"hooks"});}async function QD(t,e={}){let r=e.scope??"project",n=[],o=await W(We,t,r);return await IJ(t,n,o,r),await SJ(t,n,o),n.push(...await Y(Ud,t,r,{normalize:o})),await et(t,Ce,We,n,o),r==="project"&&await CJ(t,n),n}var qD=d(()=>{gt();rt();Me();Ot();ft();cr();A();U();Z_();Ml();Q_();s(RJ,"canonicalRuleMeta");s(IJ,"importRoot");s(SJ,"importNonRootRules");s(CJ,"importHooks");s(QD,"importFromKiro");});function tN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:We}))}var eN=d(()=>{Ct();Ml();s(tN,"lintRules");});function rN(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=>Ds(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var nN=d(()=>{wt();s(rN,"lintHooks");});var kJ,EJ,LJ,OJ,Ud,Q_=d(()=>{Lt();ZD();oe();qD();eN();nN();Et();Ml();kJ={name:We,primaryRootInstructionPath:nn,generateRules:WD,generateCommands:HD,generateAgents:YD,generateSkills:zD,generateMcp:VD,generateHooks:JD,generateIgnore:XD,importFrom:QD},EJ={rootInstructionPath:nn,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 `${on}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${sn}/${t}.md`}}},LJ={rootInstructionPath:an,skillDir:Ys,managedOutputs:{dirs:[la,Ys,ca,cL],files:[an,Fm,vm]},rewriteGeneratedPath(t){return t===nn?an:t.startsWith(`${on}/`)?t.replace(`${on}/`,`${la}/`):t.startsWith(`${Ce}/`)?t.replace(`${Ce}/`,`${Ys}/`):t.startsWith(`${sn}/`)?t.replace(`${sn}/`,`${ca}/`):t===Fl?Fm:t===vl?vm:t.startsWith(`${Js}/`)?null:t},mirrorGlobalPath(t,e){return dt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${la}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${ca}/${t}.md`}}},OJ={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Ud={id:We,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:kJ,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:tN,lint:{hooks:rN},project:EJ,globalSupport:{capabilities:OJ,detectionPaths:[la,an,Ys,ca,Fm,vm],layout:LJ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[sn],global:[sn]},canonicalDir:mL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Fl],global:[Fm]},canonicalDir:".agentsmesh",canonicalFilename:pL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[vl],global:[vm]},canonicalDir:".agentsmesh",canonicalFilename:uL}},buildImportPaths:cy,detectionPaths:[on,Ce,sn,Js,Fl,vl],conversionDefaults:{commandsToSkills:true}};});function sN(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?x(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:`${qo}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function aN(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:x(n,e.body.trim()||"")}})}function wJ(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 lN(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]=wJ(n);return [{path:Jn,content:JSON.stringify({mcp:e},null,2)}]}function cN(t){return st(t,cn)}var mN=d(()=>{rt();U();da();s(sN,"generateRules");s(iN,"generateCommands");s(aN,"generateAgents");s(wJ,"toOpenCodeMcpServer");s(lN,"generateMcp");s(cN,"generateSkills");});function q_(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 bJ(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:q_(a.headers),env:q_(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:q_(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function PJ(t,e,r){let o=join(t,e==="global"?Qs:Jn),i=await _(o);if(i===null)return;let a=bJ(i);Object.keys(a).length!==0&&(await Ht(t,my,a),r.push({feature:"mcp",fromTool:ln,fromPath:o,toPath:my}));}async function pN(t,e={}){let r=e.scope??"project",n=[],o=await W(ln,t,r);return n.push(...await Y(Bd,t,r,{normalize:o})),await et(t,cn,ln,n,o),await PJ(t,r,n),n}var uN=d(()=>{gt();rt();Ot();Vr();A();da();tR();s(q_,"toStringRecord");s(bJ,"parseOpenCodeMcp");s(PJ,"importMcp");s(pN,"importFromOpenCode");});var dN,fN,gN,hN=d(()=>{U();ft();da();dN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Mm}/${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"),fN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${zu}/${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"),gN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Vu}/${t}`,content:await Yt(n,o,i)}},"opencodeAgentMapper");});function yN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ln}))}var _N=d(()=>{Ct();da();s(yN,"lintRules");});function RN(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 IN(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 SN(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 CN=d(()=>{wt();s(RN,"lintHooks");s(IN,"lintPermissions");s(SN,"lintIgnore");});var TJ,xJ,DJ,kN,Bd,tR=d(()=>{mN();da();oe();uN();hN();_N();CN();Et();TJ={name:ln,primaryRootInstructionPath:Vn,generateRules:sN,generateCommands:iN,generateAgents:aN,generateSkills:cN,generateMcp:lN,importFrom:pN},xJ={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`}}},DJ={rootInstructionPath:Xs,skillDir:Zs,managedOutputs:{dirs:[ma,pa,ua,Zs,fL],files:[Xs,Qs]},rewriteGeneratedPath(t){return t===Vn?Xs:t===Jn?Qs:t},mirrorGlobalPath(t,e){return dt(t,Zs,e)},paths:{rulePath(t){return `${ma}/${t}.md`},commandPath(t){return `${pa}/${t}.md`},agentPath(t){return `${ua}/${t}.md`}}},kN={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Bd={id:ln,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:TJ,capabilities:kN,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:yN,lint:{hooks:RN,permissions:IN,ignore:SN},project:xJ,globalSupport:{capabilities:kN,detectionPaths:[Xs,ma,pa,ua,Zs,Qs],layout:DJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Vn],global:[Xs]},canonicalDir:Mm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Qo],global:[ma]},canonicalDir:Mm,extensions:[".md"],map:dN}],commands:{feature:"commands",mode:"directory",source:{project:[qo],global:[pa]},canonicalDir:zu,extensions:[".md"],map:fN},agents:{feature:"agents",mode:"directory",source:{project:[ts],global:[ua]},canonicalDir:Vu,extensions:[".md"],map:gN}},buildImportPaths:py,detectionPaths:[Qo,qo,ts,cn,Jn,"opencode.jsonc"]};});function EN(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 LN(t){return st(t,re)}function ON(t){return t.commands.map(e=>({path:`${re}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function wN(t){return t.agents.map(e=>({path:`${re}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var AN=d(()=>{rt();Wt();ut();Lt();Gl();s(EN,"generateRules");s(LN,"generateSkills");s(ON,"generateCommands");s(wN,"generateAgents");});async function bN(t,e={}){let r=e.scope??"project",n=[],o=await W(Yn,t,r);return n.push(...await Y(Kd,t,r,{normalize:o})),await et(t,r==="global"?Or:re,Yn,n,o),n}var PN=d(()=>{gt();rt();Ot();Gl();rR();s(bN,"importFromPiAgent");});function TN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Yn}))}var xN=d(()=>{Ct();Gl();s(TN,"lintRules");});function DN(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 NN(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 FN(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 vN(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 MN=d(()=>{wt();s(DN,"lintHooks");s(NN,"lintPermissions");s(FN,"lintIgnore");s(vN,"lintMcp");});var NJ,FJ,vJ,$N,Kd,rR=d(()=>{Lt();ut();AN();oe();PN();xN();MN();dy();Gl();NJ={name:Yn,primaryRootInstructionPath:Lr,generateRules:EN,generateCommands:ON,generateAgents:wN,generateSkills:LN,importFrom:bN},FJ={rootInstructionPath:Lr,skillDir:re,managedOutputs:{dirs:[re],files:[Lr]},paths:{rulePath(t){return Lr},commandPath(t){return `${re}/${V(t)}/SKILL.md`},agentPath(t){return `${re}/${K(t)}/SKILL.md`}}},vJ={rootInstructionPath:es,skillDir:Or,managedOutputs:{dirs:[Or],files:[es]},rewriteGeneratedPath(t){return t===Lr?es:t.startsWith(`${re}/`)?t.replace(`${re}/`,`${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}/${K(t)}/SKILL.md`}}},$N={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Kd={id:Yn,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:NJ,capabilities:$N,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:TN,lint:{hooks:DN,permissions:NN,ignore:FN,mcp:vN},supportsConversion:{commands:true,agents:true},project:FJ,globalSupport:{capabilities:$N,detectionPaths:[es],layout:vJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Lr],global:[es]},canonicalDir:yL,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:uy,detectionPaths:[Lr,re]};});function GN(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=x(a,o.body.trim()||"");e.push({path:`${rs}/${i}.md`,content:l});}return e}function jN(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=x(r,e.body.trim()||"");return {path:`${Zn}/${e.name}.md`,content:n}})}function UN(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=x(r,e.body.trim()||"");return {path:`${Qn}/${e.name}.md`,content:n}})}function BN(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=x(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 KN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:qs,content:e}]}function WN(t){return !t.ignore||t.ignore.length===0?[]:[{path:ti,content:t.ignore.join(`
|
|
143
|
+
`)}]}var HN=d(()=>{U();jl();s(GN,"generateRules");s(jN,"generateCommands");s(UN,"generateAgents");s(BN,"generateSkills");s(KN,"generateMcp");s(WN,"generateIgnore");});async function zN(t,e={}){let r=e.scope??"project",n=[],o=await W(Xn,t,r);return n.push(...await Y(Wd,t,r,{normalize:o})),await et(t,r==="global"?qn:He,Xn,n,o),n}var VN=d(()=>{gt();Ot();rt();jl();nR();s(zN,"importFromQwenCode");});function JN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Xn}))}var YN=d(()=>{Ct();jl();s(JN,"lintRules");});var $J,GJ,jJ,UJ,BJ,Wd,nR=d(()=>{HN();VN();YN();Et();jl();$J={name:Xn,primaryRootInstructionPath:wr,generateRules:GN,generateCommands:jN,generateAgents:UN,generateSkills:BN,generateMcp:KN,generateIgnore:WN,importFrom:zN},GJ={rootInstructionPath:wr,skillDir:He,managedOutputs:{dirs:[rs,Zn,Qn,He],files:[wr,qs,ti]},paths:{rulePath(t,e){return e.root?wr:`${rs}/${t}.md`},commandPath(t){return `${Zn}/${t}.md`},agentPath(t){return `${Qn}/${t}.md`}}},jJ={rootInstructionPath:ns,skillDir:qn,managedOutputs:{dirs:[ei,ri,qn],files:[ns,fa]},rewriteGeneratedPath(t){return t===wr?ns:t===qs?fa:t===ti?null:t.startsWith(`${Zn}/`)?t.replace(`${Zn}/`,`${ei}/`):t.startsWith(`${Qn}/`)?t.replace(`${Qn}/`,`${ri}/`):t.startsWith(`${He}/`)?t.replace(`${He}/`,`${qn}/`):t.startsWith(`${rs}/`)?null:t},paths:{rulePath(t,e){return ns},commandPath(t){return `${ei}/${t}.md`},agentPath(t){return `${ri}/${t}.md`}}},UJ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},BJ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Wd={id:Xn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:$J,capabilities:UJ,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:JN,project:GJ,globalSupport:{capabilities:BJ,detectionPaths:[ns,fa,ei,ri,qn],layout:jJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[wr],global:[ns]},canonicalDir:fy,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[rs],global:[]},canonicalDir:fy,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[Zn],global:[ei]},canonicalDir:_L,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[Qn],global:[ri]},canonicalDir:RL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[qs],global:[fa]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ti],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}},buildImportPaths:gy,detectionPaths:[wr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function XN(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(to)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:mn,content:o}]:[]}function ZN(t){return st(t,Pe)}function QN(t){return t.commands.map(e=>({path:`${Pe}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function qN(t){return t.agents.map(e=>({path:`${Pe}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var tF=d(()=>{rt();Wt();ut();Lt();Ul();s(XN,"generateRules");s(ZN,"generateSkills");s(QN,"generateCommands");s(qN,"generateAgents");});async function eF(t,e={}){let r=e.scope??"project",n=[],o=await W(to,t,r);return n.push(...await Y(Hd,t,r,{normalize:o})),await et(t,Pe,to,n,o),n}var rF=d(()=>{gt();rt();Ot();Ul();oR();s(eF,"importFromReplitAgent");});function nF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:to}))}var oF=d(()=>{Ct();Ul();s(nF,"lintRules");});function sF(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 iF(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 aF(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 lF(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 cF=d(()=>{wt();s(sF,"lintHooks");s(iF,"lintPermissions");s(aF,"lintIgnore");s(lF,"lintMcp");});var KJ,WJ,HJ,Hd,oR=d(()=>{Lt();ut();tF();rF();oF();cF();yy();Ul();KJ={name:to,primaryRootInstructionPath:mn,generateRules:XN,generateCommands:QN,generateAgents:qN,generateSkills:ZN,importFrom:eF},WJ={rootInstructionPath:mn,skillDir:Pe,managedOutputs:{dirs:[Pe],files:[mn]},paths:{rulePath(t){return mn},commandPath(t){return `${Pe}/${V(t)}/SKILL.md`},agentPath(t){return `${Pe}/${K(t)}/SKILL.md`}}},HJ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Hd={id:to,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:KJ,capabilities:HJ,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:nF,lint:{hooks:sF,permissions:iF,ignore:aF,mcp:lF},supportsConversion:{commands:true,agents:true},project:WJ,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[mn]},canonicalDir:SL,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:hy,detectionPaths:[mn]};});function pF(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:pn,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(ni))continue;let o=basename(n.source,".md");e.push({path:`${os}/${o}.md`,content:n.body.trim()||""});}return e}function uF(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${ss}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function dF(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Gm,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function fF(t){return t.ignore.length===0?[]:[{path:jm,content:t.ignore.join(`
|
|
144
|
+
`)}]}function gF(t){return st(t,eo)}function hF(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:Bl,content:stringify({customModes:e})}]}var yF=d(()=>{rt();U();_a();s(pF,"generateRules");s(uF,"generateCommands");s(dF,"generateMcp");s(fF,"generateIgnore");s(gF,"generateSkills");s(hF,"generateAgents");});var zd,RF,sR=d(()=>{U();ft();_a();zd=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:`${ya}/${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"),RF=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Yu}/${t}`,content:await It(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function JJ(t,e,r){let n=join(t,ga),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,ya);for(let l of i)e.push(...await St({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:ni,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await zd({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function IF(t,e={}){let r=e.scope??"project",n=[],o=await W(ni,t,r);return n.push(...await Y(Vd,t,r,{normalize:o})),await JJ(t,n,o),await et(t,eo,ni,n,o),n}var SF=d(()=>{gt();rt();Me();Ot();sR();_a();aR();s(JJ,"importPerModeRules");s(IF,"importFromRooCode");});function CF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ni}))}var kF=d(()=>{Ct();_a();s(CF,"lintRules");});function tY(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var QJ,qJ,eY,rY,nY,Vd,aR=d(()=>{A();yF();_a();oe();SF();sR();kF();Et();QJ={name:"roo-code",primaryRootInstructionPath:pn,generateRules:pF,generateCommands:uF,generateSkills:gF,generateMcp:dF,generateIgnore:fF,generateAgents:hF,importFrom:IF},qJ={rootInstructionPath:pn,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Bl]},paths:{rulePath(t,e){return `${os}/${t}.md`},commandPath(t,e){return `${ss}/${t}.md`},agentPath(t,e){return null}}};s(tY,"computeStatus");eY=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,Um));return [{target:"roo-code",path:Um,content:i,currentContent:a??void 0,status:tY(a,i)}]},"generateRooGlobalExtras"),rY={rootInstructionPath:ii,skillDir:is,managedOutputs:{dirs:[oi,si,is,CL],files:[ii,ha,Bm,Um]},rewriteGeneratedPath(t){return t===pn?ii:t===Bl?null:t.startsWith(`${os}/`)?t.replace(`${os}/`,`${oi}/`):t.startsWith(`${ss}/`)?t.replace(`${ss}/`,`${si}/`):t.startsWith(`${eo}/`)?t.replace(`${eo}/`,`${is}/`):t===Gm?ha:t===jm?Bm:t},mirrorGlobalPath(t,e){return dt(t,is,e)},paths:{rulePath(t,e){return `${oi}/${t}.md`},commandPath(t,e){return `${si}/${t}.md`},agentPath(t,e){return null}}},nY={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Vd={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:QJ,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:CF,project:qJ,globalSupport:{capabilities:nY,detectionPaths:[oi,si,is,ha,Bm,ii,Um],layout:rY,scopeExtras:eY},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[pn,$m],global:[ii,pn,$m]},canonicalDir:ya,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:[os],global:[oi]},canonicalDir:ya,extensions:[".md"],map:zd}],commands:{feature:"commands",mode:"directory",source:{project:[ss],global:[si]},canonicalDir:Yu,extensions:[".md"],map:RF},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Gm],global:[ha]},canonicalDir:".agentsmesh",canonicalFilename:kL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[jm],global:[Bm]},canonicalDir:".agentsmesh",canonicalFilename:EL}},buildImportPaths:_y,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Bl]};});function EF(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ro)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Ar,content:o}]:[]}function LF(t){return st(t,ne)}function OF(t){return t.commands.map(e=>({path:`${ne}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function wF(t){return t.agents.map(e=>({path:`${ne}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function AF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:as,content:e}]}var bF=d(()=>{rt();Wt();ut();Lt();Wl();s(EF,"generateRules");s(LF,"generateSkills");s(OF,"generateCommands");s(wF,"generateAgents");s(AF,"generateMcp");});async function PF(t,e={}){let r=e.scope??"project",n=[],o=await W(ro,t,r);return n.push(...await Y(Jd,t,r,{normalize:o})),await et(t,r==="global"?ze:ne,ro,n,o),n}var TF=d(()=>{gt();rt();Ot();Wl();lR();s(PF,"importFromRovodev");});function xF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ro}))}var DF=d(()=>{Ct();Wl();s(xF,"lintRules");});function NF(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 FF(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 vF(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 MF=d(()=>{wt();s(NF,"lintHooks");s(FF,"lintPermissions");s(vF,"lintIgnore");});var oY,sY,iY,aY,lY,Jd,lR=d(()=>{Lt();ut();bF();oe();TF();DF();MF();Et();Wl();oY={name:ro,primaryRootInstructionPath:Ar,generateRules:EF,generateCommands:OF,generateAgents:wF,generateSkills:LF,generateMcp:AF,importFrom:PF},sY={rootInstructionPath:Ar,skillDir:ne,managedOutputs:{dirs:[ne],files:[Ar,as]},paths:{rulePath(t){return Ar},commandPath(t){return `${ne}/${V(t)}/SKILL.md`},agentPath(t){return `${ne}/${K(t)}/SKILL.md`}}},iY={rootInstructionPath:ls,skillDir:ze,managedOutputs:{dirs:[ze],files:[ls,Kl]},rewriteGeneratedPath(t){return t===Ar?ls:t.startsWith(`${ne}/`)?t.replace(`${ne}/`,`${ze}/`):t===as?Kl:t},mirrorGlobalPath(t,e){return dt(t,ze,e)},paths:{rulePath(t){return ls},commandPath(t){return `${ze}/${V(t)}/SKILL.md`},agentPath(t){return `${ze}/${K(t)}/SKILL.md`}}},aY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},lY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Jd={id:ro,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:oY,capabilities:aY,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:xF,lint:{hooks:NF,permissions:FF,ignore:vF},supportsConversion:{commands:true,agents:true},project:sY,globalSupport:{capabilities:lY,detectionPaths:[wL,ls,ze],layout:iY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ar],global:[ls]},canonicalDir:AL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[as],global:[Kl]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Ry,detectionPaths:[Ar,ne,as]};});function $F(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Je,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(br))continue;let o=basename(n.source,".md");e.push({path:`${Ve}/${o}.md`,content:n.body.trim()});}return e}function GF(t){return st(t,Pr)}function jF(t){return t.mcp===null||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ra,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function UF(t){return t.ignore.length===0?[]:[{path:Hl,content:t.ignore.join(`
|
|
145
|
+
`)}]}var BF=d(()=>{rt();zl();s($F,"generateRules");s(GF,"generateSkills");s(jF,"generateMcp");s(UF,"generateIgnore");});async function pY(t,e,r,n){let o=n==="global"?[Tr,Je]:[Je,Tr];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,KF),{frontmatter:m,body:p}=P(r(l,a,c));await O(join(t,Wm)),await S(c,await z(c,{...m,root:true},p)),e.push({fromTool:br,fromPath:a,toPath:KF,feature:"rules"});return}}async function uY(t,e,r,n){let o=join(t,n==="global"?cs:Ve),i=join(t,Wm);e.push(...await St({srcDir:o,destDir:i,extensions:[".md"],fromTool:br,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:`${Wm}/${a}`,feature:"rules",content:await z(m,{...p,root:false},u)}},"mapEntry")}));}async function WF(t,e={}){let r=e.scope??"project",n=[],o=await W(br,t,r);return await pY(t,n,o,r),await uY(t,n,o,r),n.push(...await Y(Yd,t,r,{normalize:o})),await et(t,r==="global"?un:Pr,br,n,o),n}var KF,HF=d(()=>{gt();rt();Me();Ot();ft();A();U();zl();cR();KF=`${Wm}/_root.md`;s(pY,"importRoot");s(uY,"importNonRootRules");s(WF,"importFromTrae");});function zF(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:br}))}var VF=d(()=>{Ct();zl();s(zF,"lintRules");});var dY,fY,gY,hY,Yd,cR=d(()=>{BF();oe();HF();VF();Et();zl();dY={name:br,primaryRootInstructionPath:Je,generateRules:$F,generateSkills:GF,generateMcp:jF,generateIgnore:UF,importFrom:WF},fY={rootInstructionPath:Je,skillDir:Pr,managedOutputs:{dirs:[Ve,Pr],files:[Ra,Hl]},paths:{rulePath(t,e){return `${Ve}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},gY={rootInstructionPath:Tr,skillDir:un,managedOutputs:{dirs:[cs,un,PL],files:[Tr,Km]},rewriteGeneratedPath(t){return t===Je?Tr:t.startsWith(`${Ve}/`)?t.replace(`${Ve}/`,`${cs}/`):t.startsWith(`${Pr}/`)?t.replace(`${Pr}/`,`${un}/`):t===Ra?Km:t===Hl?null:t},mirrorGlobalPath(t,e){return dt(t,un,e)},paths:{rulePath(t,e){return t==="_root"?Tr:`${cs}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},hY={rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Yd={id:br,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:dY,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:zF,project:fY,globalSupport:{capabilities:hY,detectionPaths:[Tr,cs,un,Km],layout:gY},importer:{mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ra],global:[Km]},canonicalDir:".agentsmesh",canonicalFilename:TL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Hl]},canonicalDir:".agentsmesh",canonicalFilename:xL}},buildImportPaths:Iy,detectionPaths:[Ve,Ra,Je]};});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=mt(n,r);return o?[{path:dn,content:o}]:[]}function YF(t){return st(t,he)}function XF(t){return t.commands.map(e=>({path:`${he}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function ZF(t){return t.agents.map(e=>({path:`${he}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function QF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ai,content:e}]}var qF=d(()=>{rt();Wt();ut();Lt();Vl();s(JF,"generateRules");s(YF,"generateSkills");s(XF,"generateCommands");s(ZF,"generateAgents");s(QF,"generateMcp");});async function tv(t,e={}){let r=e.scope??"project",n=[],o=await W(no,t,r);return n.push(...await Y(Xd,t,r,{normalize:o})),await et(t,r==="global"?Ye:he,no,n,o),n}var ev=d(()=>{gt();rt();Ot();Vl();mR();s(tv,"importFromWarp");});function rv(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:no}))}var nv=d(()=>{Ct();Vl();s(rv,"lintRules");});function ov(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 sv(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 iv(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 av=d(()=>{wt();s(ov,"lintHooks");s(sv,"lintPermissions");s(iv,"lintIgnore");});var yY,_Y,RY,IY,SY,Xd,mR=d(()=>{Lt();ut();qF();oe();ev();nv();av();Et();Vl();yY={name:no,primaryRootInstructionPath:dn,generateRules:JF,generateCommands:XF,generateAgents:ZF,generateSkills:YF,generateMcp:QF,importFrom:tv},_Y={rootInstructionPath:dn,skillDir:he,managedOutputs:{dirs:[he],files:[dn,ai]},paths:{rulePath(t){return dn},commandPath(t){return `${he}/${V(t)}/SKILL.md`},agentPath(t){return `${he}/${K(t)}/SKILL.md`}}},RY={rootInstructionPath:void 0,skillDir:Ye,managedOutputs:{dirs:[Ye],files:[]},rewriteGeneratedPath(t){return t.startsWith(`${he}/`)?t.replace(`${he}/`,`${Ye}/`):t},mirrorGlobalPath(t,e){return dt(t,Ye,e)},paths:{rulePath(){return null},commandPath(t){return `${Ye}/${V(t)}/SKILL.md`},agentPath(t){return `${Ye}/${K(t)}/SKILL.md`}}},IY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},SY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Xd={id:no,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:yY,capabilities:IY,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:rv,lint:{hooks:ov,permissions:sv,ignore:iv},supportsConversion:{commands:true,agents:true},project:_Y,globalSupport:{capabilities:SY,detectionPaths:[Ye],layout:RY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Sy,dn]},canonicalDir:NL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ai]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Cy,detectionPaths:[dn,Sy,ai],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var uo,pR,gi,lv,cc,fo,mc,pc,cv,hi,yn,uc,uR,mv,pv,dR,fR,gR,dc,fc,op,Zd,Qd,qd,uv,Ee=d(()=>{uo="windsurf",pR=".windsurfrules",gi=".windsurf/rules",lv=".windsurfignore",cc=".codeiumignore",fo="AGENTS.md",mc=".windsurf/hooks.json",pc=".windsurf/mcp_config.example.json",cv=".windsurf/mcp_config.json",hi=".windsurf/workflows",yn=".windsurf/skills",uc=".agentsmesh/rules",uR=".agentsmesh/commands",mv=".agentsmesh/agents",pv=".agentsmesh/skills",dR=".agentsmesh/ignore",fR=".agentsmesh/hooks.yaml",gR=".agentsmesh/mcp.json",dc=".codeium/windsurf/memories/global_rules.md",fc=".codeium/windsurf/skills",op=".codeium/windsurf/global_workflows",Zd=".codeium/windsurf/hooks.json",Qd=".codeium/windsurf/mcp_config.json",qd=".codeium/.codeiumignore",uv=".agents/skills";});function kY(t){let e=basename(t,".md");return e==="_root"?"root":e}function EY(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 hR(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:fo,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=kY(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?x(a,n.body.trim()||""):n.body.trim()||"";e.push({path:`${gi}/${o}.md`,content:l});let c=EY(n.globs);c&&(c!==o&&e.push({path:`${gi}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}var dv=d(()=>{U();Ee();s(kY,"ruleSlug");s(EY,"directoryScopedRuleDir");s(hR,"generateRules");});function yR(t){return !t.ignore||t.ignore.length===0?[]:[{path:cc,content:t.ignore.join(`
|
|
146
|
+
`)}]}var fv=d(()=>{Ee();s(yR,"generateIgnore");});function _R(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?x(r,e.body.trim()||""):e.body.trim();return {path:`${hi}/${e.name}.md`,content:n}})}var gv=d(()=>{U();Ee();s(_R,"generateCommands");});function RR(t){return t.agents.map(e=>({path:`${yn}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var hv=d(()=>{ut();Ee();s(RR,"generateAgents");});function IR(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:pc,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var yv=d(()=>{Ee();s(IR,"generateMcp");});function LY(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 OY(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!kn(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[LY(r)]=o);}return e}function SR(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=OY(t.hooks);return Object.keys(e).length===0?[]:[{path:mc,content:JSON.stringify({hooks:e},null,2)}]}var _v=d(()=>{Ur();Ee();s(LY,"windsurfEventName");s(OY,"toWindsurfHooks");s(SR,"generateHooks");});function CR(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?x(n,r.body.trim()||""):r.body.trim()||"";e.push({path:`${yn}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)e.push({path:`${yn}/${r.name}/${i.relativePath}`,content:i.content});}return e}var Rv=d(()=>{U();Ee();s(CR,"generateSkills");});var Iv=d(()=>{dv();fv();gv();hv();yv();_v();Rv();});var Sv=d(()=>{Iv();});function Cv(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 kv(t,e,r){let n=join(t,hi),i=(await G(n)).filter(l=>l.endsWith(".md")),a=join(t,uR);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 It(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let R=Cv(f.allowedTools);return R.length>0?R:Cv(f["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(f,"allowedTools")||Object.prototype.hasOwnProperty.call(f,"allowed-tools")},g);await S(p,h),e.push({fromTool:uo,fromPath:l,toPath:`${uR}/${m}`,feature:"commands"});}}var Ev=d(()=>{A();U();ft();Ee();s(Cv,"toStringArray");s(kv,"importWorkflows");});async function Lv(t,e,r,n=yn){await Xl([n],{projectRoot:t,destCanonicalSkillsDir:pv,targetName:"windsurf",normalize:r,results:e},[Zl({canonicalAgentsDir:mv})]);}var Ov=d(()=>{Ql();Ee();s(Lv,"importSkills");});async function Av(t,e){let r=join(t,mc),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=PY(o.hooks);if(Object.keys(i).length===0)return;let a=join(t,fR);await O(dirname(a)),await S(a,stringify(i)),e.push({fromTool:uo,fromPath:r,toPath:fR,feature:"hooks"});}catch{}}function bY(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 PY(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=bY(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 bv(t,e){let r=[pc,cv];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,gR);await O(dirname(l)),await S(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),e.push({fromTool:uo,fromPath:o,toPath:gR,feature:"mcp"});return}catch{}}}var Pv=d(()=>{A();Ee();s(Av,"importWindsurfHooks");s(bY,"canonicalHookEventName");s(PY,"windsurfHooksToCanonical");s(bv,"importWindsurfMcp");});async function Tv(t,e){let r=e?.scope??"project",n=[],o=await W(uo,t),i=await W("codex-cli",t),a=join(t,uc),l=join(t,pR),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 S(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${uc}/_root.md`,feature:"rules"});}if(c===null){let f=join(t,fo),g=await _(f);if(g!==null){await O(a);let h=join(a,"_root.md"),R=o(i(g,f,h),f,h).trim(),k=await z(h,{root:true},R);await S(h,k),n.push({fromTool:"windsurf",fromPath:f,toPath:`${uc}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await St({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 R=h.replace(/\//g,"-");if(!yu(h))return await Ln(join(a,`${R}.md`)),null;let k=join(a,`${R}.md`);return {destPath:k,toPath:`${uc}/${R}.md`,feature:"rules",content:await z(k,{root:false,globs:[`${h}/**`]},g(k))}},"mapEntry")}));let m=join(t,gi);n.push(...await St({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({relativePath:f,normalizeTo:g})=>{if(f==="_root.md"&&c!==null)return null;let h=join(a,f),{frontmatter:R,body:k}=P(g(h)),I={...R};return typeof I.glob=="string"&&I.glob.trim()&&(I.globs=[I.glob],delete I.glob),{destPath:h,toPath:`${uc}/${f}`,feature:"rules",content:await z(h,{...I,root:false},k)}},"mapEntry")}));let p=join(t,lv),u=await _(p);if((u===null||!u.trim())&&(p=join(t,cc),u=await _(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let R=h.trim();R&&!R.startsWith("#")&&g.push(R);}if(g.length>0){await O(join(t,".agentsmesh"));let h=join(t,dR);await S(h,g.join(`
|
|
147
|
+
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:dR,feature:"ignore"});}}return await kv(t,n,o),await Lv(t,n,o),await Av(t,n),await bv(t,n),n}var xv=d(()=>{gt();A();U();ft();Me();om();Ee();Ev();Ov();Pv();s(Tv,"importFromWindsurf");});function Dv(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 Nv=d(()=>{Ee();s(Dv,"lintRules");});function Fv(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 vv(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 Mv=d(()=>{wt();s(Fv,"lintCommands");s(vv,"lintMcp");});function FY(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 vY,MY,$Y,GY,$v,Gv=d(()=>{Sv();xi();Ee();oe();xv();Nv();Mv();Et();al();ut();s(FY,"directoryScopedRuleDir");vY={name:"windsurf",primaryRootInstructionPath:fo,generateRules:hR,generateCommands:_R,generateAgents:RR,generateSkills:CR,generateMcp:IR,generateHooks:SR,generateIgnore:yR,importFrom:Tv},MY={rootInstructionPath:fo,extraRuleOutputPaths(t){if(t.root)return [fo];let e=FY(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 `${gi}/${t}.md`},commandPath(t,e){return `${hi}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`.windsurf/skills/${K(t)}/SKILL.md`:null}}},$Y={rootInstructionPath:dc,skillDir:fc,managedOutputs:{dirs:[fc,op,uv],files:[dc,Zd,Qd,qd]},rewriteGeneratedPath(t){return t===fo?dc:t.startsWith(`${gi}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${yn}/`)?t.replace(`${yn}/`,`${fc}/`):t.startsWith(`${hi}/`)?t.replace(`${hi}/`,`${op}/`):t===mc?Zd:t===pc?Qd:t===cc?qd:t},mirrorGlobalPath(t,e){return dt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return dc},commandPath(t,e){return `${op}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`${fc}/${K(t)}/SKILL.md`:null}}},GY={rules:"native",additionalRules:"partial",commands:Kr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},$v={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:vY,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:Dv,lint:{commands:Fv,mcp:vv},project:MY,globalSupport:{capabilities:GY,detectionPaths:[dc,fc,op,Zd,Qd,qd],layout:$Y},buildImportPaths:ky,detectionPaths:[".windsurfrules",".windsurf"],conversionDefaults:{agentsToSkills:true}};});function jv(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 Uv=d(()=>{Wt();Ia();s(jv,"generateRules");});async function Kv(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,Bv,l),r.push({fromTool:"zed",fromPath:e,toPath:Bv,feature:"mcp"}));}var Bv,Wv=d(()=>{A();Vr();Ia();Bv=".agentsmesh/mcp.json";s(Kv,"importZedMcp");});async function Hv(t,e={}){let r=e.scope??"project",n=[],o=await W("zed",t,r);return n.push(...await Y(ef,t,r,{normalize:o})),await Kv(t,r==="global"?so:oo,n),n}var zv=d(()=>{gt();Ot();Wv();Ia();ER();s(Hv,"importFromZed");});function Vv(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var Jv=d(()=>{Ct();Ia();s(Vv,"lintRules");});function Yv(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 Xv(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 Zv(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 Qv=d(()=>{wt();s(Yv,"lintHooks");s(Xv,"lintPermissions");s(Zv,"lintIgnore");});function zY(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 UY,BY,KY,WY,HY,ef,ER=d(()=>{Uv();zv();Jv();Qv();Et();Ia();UY={name:"zed",primaryRootInstructionPath:fn,generateRules:jv,importFrom:Hv},BY={rootInstructionPath:fn,managedOutputs:{dirs:[],files:[fn,oo]},paths:{rulePath(t){return fn},commandPath(){return null},agentPath(){return null}}},KY={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[so]},rewriteGeneratedPath(t){return t===oo?so:t},paths:{rulePath(){return so},commandPath(){return null},agentPath(){return null}}},WY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},HY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(zY,"mergeZedSettings");ef={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:UY,capabilities:WY,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:Vv,lint:{hooks:Yv,permissions:Xv,ignore:Zv},project:BY,globalSupport:{capabilities:HY,detectionPaths:[so],layout:KY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[fn],global:[]},canonicalDir:ML,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?zY(t,r):null},buildImportPaths:Ey,detectionPaths:[fn,oo]};});var dE={};Cg(dE,{BUILTIN_TARGETS:()=>Pt,TARGET_IDS:()=>$t,getBuiltinTargetDefinition:()=>Fr,getEffectiveTargetSupportLevel:()=>rf,getTargetCapabilities:()=>di,getTargetDetectionPaths:()=>OR,getTargetLayout:()=>Kt,getTargetManagedOutputs:()=>wR,getTargetPrimaryRootInstructionPath:()=>JY,getTargetSkillDir:()=>sp,isBuiltinTargetId:()=>Fe,resolveTargetFeatureGenerator:()=>gc,rewriteGeneratedOutputPath:()=>AR});function VY(){return LR||(VC(Pt),LR=new Map(Pt.map(t=>[t.id,t]))),LR}function Fr(t){return VY().get(t)}function di(t,e="project"){let r=Fr(t)??nt(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return HC(n)}function OR(t,e="project"){let r=Fr(t)??nt(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Kt(t,e="project"){let r=Fr(t)??nt(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function JY(t,e="project"){return Kt(t,e)?.rootInstructionPath}function sp(t,e="project"){return Kt(t,e)?.skillDir}function wR(t,e="project"){return Kt(t,e)?.managedOutputs}function AR(t,e,r="project"){let n=Kt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function qv(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!il(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!or(r,t.id,true,n):false}function YY(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?il(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?or(r,t.id,true,n):false}function rf(t,e,r,n="project"){let o=di(t,n)?.[e]?.level??"none",i=Fr(t)??nt(t);return o==="none"&&YY(i,e,r,n)?"embedded":o!=="embedded"?o:qv(i,e,r,n)?"none":o}function gc(t,e,r,n="project"){let o=Fr(t)??nt(t);if(!o?.generators||qv(o,e,r,n))return;let i=XY[e];return i===null?void 0:i(o.generators)}var Pt,LR,XY,Tt=d(()=>{al();xi();ce();th();Sn();_h();Ly();Oy();Ay();zO();Ty();iA();XA();Qy();o_();i_();S_();C_();k_();B_();K_();W_();H_();X_();Q_();tR();rR();nR();oR();aR();lR();cR();mR();Gv();ER();Pt=[Su,Zu,Qu,qu,HO,td,sA,YA,ad,dd,gd,Ed,Ld,Od,Nd,Fd,vd,Md,jd,Ud,Bd,Kd,Wd,Hd,Vd,Jd,Yd,Xd,$v,ef];s(VY,"builtinTargetsMap");s(Fr,"getBuiltinTargetDefinition");s(di,"getTargetCapabilities");s(OR,"getTargetDetectionPaths");s(Kt,"getTargetLayout");s(JY,"getTargetPrimaryRootInstructionPath");s(sp,"getTargetSkillDir");s(wR,"getTargetManagedOutputs");s(AR,"rewriteGeneratedOutputPath");s(qv,"isFeatureSuppressedByConversion");s(YY,"isConversionUpgrading");s(rf,"getEffectiveTargetSupportLevel");XY={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(gc,"resolveTargetFeatureGenerator");});function qY(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 nf(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=QY.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(qY);let r=e[0];return r.uniqueHits===0?null:r.id}var QY,tM,bR=d(()=>{A();Tt();QY=(()=>{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(qY,"compare");s(nf,"detectNativeFormat");tM=Pt.map(t=>t.detectionPaths[0]).filter(t=>t!==void 0);});async function ip(t,e){let r=nt(e);if(!r)throw new Error(`No importer registered for native target: ${e}`);return r.generators.importFrom(t)}var PR=d(()=>{ce();s(ip,"importNativeToCanonical");});async function Na(t){if(!await j(t))return false;if(await j(join(t,xR)))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,xR)))return !0}catch{return false}return false}async function ap(t,e={}){if(!await j(t))return [];if(await j(join(t,xR))){let r=await ou(t,e);return r?[r]:[]}return As(t,e)}var xR,of=d(()=>{A();ol();xR="SKILL.md";s(Na,"isSkillPackLayout");s(ap,"loadSkillsAtExtendPath");});async function sf(t,e={}){return (await ws(t,e)).filter(n=>!Cn(basename(n.source)))}async function af(t,e={}){return (await Os(t,e)).filter(n=>!Cn(basename(n.source)))}async function lf(t,e={}){return (await Ls(t,e)).filter(n=>!Cn(basename(n.source)))}async function eM(t,e={}){return As(t,e)}var cf=d(()=>{Zc();Xc();Yc();ol();Eo();s(sf,"importAgents");s(af,"importCommands");s(lf,"importRules");s(eM,"importSkills");});function NR(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 FR(t){return t.toLowerCase().endsWith(".md")}function nM(t,e){for(let r of NR(nt(t)?.importer,e))if(r.extensions.some(n=>!FR(n)))return true;return false}function a2(t,e){let r=new Set;for(let n of NR(nt(t)?.importer,e))for(let o of n.extensions)FR(o)||r.add(o.toLowerCase());return r}function l2(t){return BC().filter(e=>nM(e,t))}async function p2(t,e,r){return c2[t](e,r)}async function u2(t,e,r){return m2[t](e,r)}async function d2(t,e,r,n={}){let o=NR(nt(e)?.importer,r),i=await G(t),a=new Set;for(let p of o)for(let u of p.extensions)FR(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 R of o){if(!R.extensions.some(C=>u.toLowerCase().endsWith(C.toLowerCase())))continue;let I=await R.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(I){h=I;break}}h&&(await O(dirname(h.destPath)),await S(h.destPath,h.content));}return {entities:await p2(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function vR(t,e,r={}){let n=r.restrictToTarget,o=n?nM(n,e)?[n]:[]:l2(e),i=new Set;for(let f of o)for(let g of a2(f,e))i.add(g);let a=await u2(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 d2(t,f,e,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let R=c(h);m.has(R)||m.set(R,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function mf(t,e={}){let r=await vR(t,"commands",e);return {commands:[...r.entities],cleanup:r.cleanup}}async function pf(t,e={}){let r=await vR(t,"rules",e);return {rules:[...r.entities],cleanup:r.cleanup}}async function uf(t,e={}){let r=await vR(t,"agents",e);return {agents:[...r.entities],cleanup:r.cleanup}}var c2,m2,df=d(()=>{Zc();Xc();Yc();A();ce();Eo();cf();s(NR,"directorySpecsFor");s(FR,"isMarkdownExtension");s(nM,"hasNonMdEntityMapper");s(a2,"nonMdEntityExtensions");s(l2,"targetsWithNonMdEntityMapper");c2={rules:Ls,commands:Os,agents:ws},m2={rules:lf,commands:af,agents:sf};s(p2,"parseEntityDir");s(u2,"importEntities");s(d2,"readToolNativeEntities");s(vR,"readEntityDirWithMappers");s(mf,"readCommandsDirWithMappers");s(pf,"readRulesDirWithMappers");s(uf,"readAgentsDirWithMappers");});function h2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function y2(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 ff(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 GR(t,e){if(basename(t)===e)return t;let r=join(t,e);return await j(r)?r:null}async function _2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await lf(o,e),cleanup:n};let i=await pf(o,{parseOpts:e});return {rules:[...i.rules],cleanup:i.cleanup}}async function R2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await af(o,e),cleanup:n};let i=await mf(o,{parseOpts:e});return {commands:[...i.commands],cleanup:i.cleanup}}async function I2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await sf(o,e),cleanup:n};let i=await uf(o,{parseOpts:e});return {agents:[...i.agents],cleanup:i.cleanup}}async function S2(t,e){if(await Na(t))return ap(t,e);let r=join(t,"skills");return await Na(r)?ap(r,e):[]}async function gf(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=h2(),a=await _2(t,e,o);i.rules=a.rules;let l=await R2(t,e,o);i.commands=l.commands;let c=await I2(t,e,o);i.agents=c.agents,i.skills=await S2(t,e);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(y2(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 jR=d(()=>{A();cf();df();Ti();of();s(h2,"emptyCanonical");s(y2,"isCanonicalSliceEmpty");s(ff,"normalizeSlicePath");s(GR,"resolveEntityDir");s(_2,"parseRulesAt");s(R2,"parseCommandsAt");s(I2,"parseAgentsAt");s(S2,"loadSkillsForPartialSlice");s(gf,"loadCanonicalSliceAtPath");});async function hf(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 oM(t,e){await cp(t,e,{recursive:true,filter:s(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(TC(o)||!n.includes("/")&&(ru(n)||xC(n)))},"filter")});}var UR=d(()=>{A();U();Eo();s(hf,"readSkillFrontmatterName");s(oM,"cpFilteredSkill");});function BR(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function E2(t){let e={...t},r=t.alwaysApply===true;if(e.root=r,delete e.alwaysApply,!r){let n=BR(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 L2(t){let e={...t};return e.trigger==="always"&&(e.trigger="always_on"),typeof e.glob=="string"&&(e.globs=BR(e.globs).length>0?BR(e.globs):[e.glob],delete e.glob),e}function KR(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=E2(r):"trigger"in r||"glob"in r?o=L2(r):o=r,x(o,n.trim())}var sM=d(()=>{U();s(BR,"toStrArray");s(E2,"normalizeCursorKeys");s(L2,"normalizeWindsurfKeys");s(KR,"normalizeMdcToCanonical");});function WR(t){return t.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function HR(t){return t.toLowerCase().endsWith(".mdc")?basename(t).replace(/\.mdc$/i,".md"):basename(t)}function aM(t,e,r){let o=relative(t,e).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=WR(o[o.length-1]);return i?`${i}-${r}`:r}var lM=d(()=>{s(WR,"sanitizeNameSegment");s(HR,"computeDestName");s(aM,"namespacedName");});async function P2(){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 uM(t,e){let r=t.toLowerCase();return !!(r.endsWith(".md")||e&&r.endsWith(".mdc"))}async function T2(t,e,r){if(!uM(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),KR(n));}else await cp(t,join(e,basename(t)));}async function x2(t,e,r){if((await stat(t)).isFile())return T2(t,e,r);let o=(await G(t)).filter(l=>uM(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=HR(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(e);for(let l of o){let c=HR(l),p=(i.get(c)??0)>1?aM(t,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(t,l).replace(/\\/g,"/").split("/").map(WR).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),KR(f));}else await cp(l,join(e,p));}}async function cM(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(o.get(i),join(e,i),{recursive:true});return true}async function D2(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(dirname(t),i,{recursive:true});return}if(await Na(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await cM(t,e,r.preferredSkillNames??[]))return;let l=await hf(join(t,"SKILL.md"))||basename(t),c=join(e,l);await O(e),await oM(t,c);return}if(await cM(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(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 _f(t,e,r={}){let n=await P2();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await D2(t,o,r):await x2(t,o,e==="rules"),n}catch(o){throw await n.cleanup(),o}}var VR=d(()=>{A();of();UR();Eo();sM();lM();s(P2,"createStageRoot");s(uM,"isAcceptedFile");s(T2,"stageSingleFile");s(x2,"stageMarkdownCollection");s(cM,"stagePreferredSkills");s(D2,"stageSkills");s(_f,"stageManualInstallScope");});function N2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function dM(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 _f(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 Na(e)){let a=await ap(e);return {...N2(),skills:a}}let i=t.target??await nf(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
148
|
+
Expected one of: .agentsmesh/, ${tM.join(", ")}.`);y.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await ip(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 ip(e,t.target)),we(e)}let{sliceRoot:n}=await ff(r);try{let{canonical:o}=await gf(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 fM=d(()=>{bR();A();ot();Ti();PR();of();jR();VR();s(N2,"emptyCanonical");s(dM,"loadCanonicalForExtend");});function Rf(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 JR=d(()=>{ot();s(Rf,"applyExtendPick");});var M2,hc,If=d(()=>{M2=["rules","commands","agents","skills"],hc=z$1.enum(M2);});var $2,gM,hM=d(()=>{So();If();$2=z$1.enum(["github","gitlab","git","local"]),gM=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:$2,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Qa).min(1),pick:Kc.optional(),target:nr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:hc.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function yM(t){let e=bi(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 j2(t,e){return e?t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n]):true}async function yi(t){let e=join(t,"pack.yaml"),r=await _(e);if(r===null)return null;try{let n=parse(r);return gM.parse(n)}catch{return null}}async function RM(t,e,r){if(!await j(t))return null;let n=yM(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 yi(a);if(l&&yM(l.source)===n&&l.target===r.target&&l.as===r.as&&j2(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function Sf(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 yi(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var yc=d(()=>{A();hM();zc();s(yM,"sourceIdentity");s(j2,"sameFeatures");s(yi,"readPackMetadata");s(RM,"findExistingPack");s(Sf,"listPacks");});function IM(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function U2(t){let[e,r,n,o,i,a,l,c]=await Promise.all([Ls(join(t,"rules")),Os(join(t,"commands")),ws(join(t,"agents")),As(join(t,"skills")),jr(join(t,"mcp.json")),su(join(t,"permissions.yaml")),iu(join(t,"hooks.yaml")),au(join(t,"ignore"))]);return {...IM(),rules:e,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function SM(t){let e=join(t,"packs"),r=await Sf(e),n=IM();for(let{meta:o,packDir:i}of r){let a=await U2(i),l=XR(a,o.features),c=Rf(l,o.features,o.pick,o.name);n=sl(n,c);}return n}var CM=d(()=>{Yc();Xc();Zc();ol();Qc();zg();Jg();Yg();Zg();ho();JR();yc();s(IM,"emptyCanonical");s(U2,"loadPackCanonical");s(SM,"loadPacksCanonical");});function XR(t,e){if(e.length===0)return kM();let r=new Set(e.flatMap(n=>K2[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 kM(){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 rl(t,e,{refreshCache:r.refreshRemoteCache===true}),i=kM();for(let c of o){let m=await dM(c),p=XR(m,c.features),u=Rf(p,c.features,c.pick,c.name);i=sl(i,u);}let a=await SM(n);i=sl(i,a);let l=await we(n);return i=sl(i,l),{canonical:i,resolvedExtends:o}}var K2,ho=d(()=>{Zp();Ti();Zg();fM();JR();CM();K2={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(XR,"filterCanonicalByFeatures");s(kM,"emptyCanonical");s(Oe,"loadCanonicalWithExtends");});function jX(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 UX(t){return t.startsWith("file:")||t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||/^[A-Za-z]:[/\\]/.test(t)}function r$(t){try{return realpathSync(t)}catch{return t}}function n$(t,e){let r=r$(resolve(e)),n=r$(t);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function BX(t,e){let{source:r}=t,n;if(UX(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(e,i);n$(a,e),n=pathToFileURL(a).href;}else {let i=jX(r,e);n$(i,e),n=pathToFileURL(i).href;}return await import(n)}function KX(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}async function Nf(t,e){let r;try{r=await BX(t,e);}catch(i){throw new Error(`Plugin '${t.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=KX(r),o=[];for(let i of n)try{let a=lu(i);mu(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 o$(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 Nf(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(`
|
|
147
149
|
`);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
|
|
148
|
-
${a}`)}return r}var
|
|
149
|
-
`)}var
|
|
150
|
+
${a}`)}return r}var lI=d(()=>{Qg();ce();ot();s(jX,"resolveNpmSpecifier");s(UX,"isLocalSource");s(r$,"canonicalize");s(n$,"assertSourceInsideProjectRoot");s(BX,"importPluginModule");s(KX,"extractDescriptors");s(Nf,"loadPlugin");s(o$,"loadAllPlugins");});async function Ut(t,e){t.plugins.length!==0&&await o$(t.plugins,e);}var Mr=d(()=>{lI();s(Ut,"bootstrapPlugins");});function pI(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=uZ(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]=rf(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]=rf(u,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function uZ(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}var d$=d(()=>{Tt();s(pI,"buildCompatibilityMatrix");s(uZ,"countHooks");});function f$(t){return dZ[t]??t}var dZ,g$=d(()=>{dZ={"claude-code":"Claude"};s(f$,"matrixColumnLabel");});function h$(t){return Object.fromEntries(fZ.map(e=>[e,Object.fromEntries($t.map(r=>{let o=di(r,t)?.[e];return [r,o??{level:"none"}]}))]))}function gZ(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function hZ(t,e){return gZ()?e:`${t}${e}${pp.reset}`}function _$(t){let e=uI[t];return hZ(yZ[t],e)}var fZ,y$,uI,pp,yZ,dI=d(()=>{Sn();Tt();fZ=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(h$,"buildSupportMatrix");y$=h$("project"),h$("global"),uI={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},pp={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(gZ,"noColor");s(hZ,"colorize");yZ={native:pp.green,embedded:pp.blue,partial:pp.yellow,none:pp.dim};s(_$,"coloredSymbol");});function fI(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=>f$(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)],R=u(h),k=[a(o(n.bold+n.cyan,"Feature"),p),...c.map(H=>a(o(n.bold+n.magenta,H),m))],I=o(n.dim,"\u2502")+k.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),C=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?uI[v]:_$(v);tt.push(a(` ${q} `,m));}return o(n.dim,"\u2502")+tt.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),N=g(h),T=[R,I,C,...b,N];T.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 T.push(o(n.bold,"Legend: ")+B.join(" ")),T.join(`
|
|
151
|
+
`)}var R$=d(()=>{g$();dI();s(fI,"formatMatrix");});function hI(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?"":`
|
|
150
152
|
Per-file details:
|
|
151
153
|
`+e.join(`
|
|
152
154
|
`)+`
|
|
153
|
-
`}var
|
|
155
|
+
`}var I$=d(()=>{s(hI,"formatVerboseDetails");});var yI=d(()=>{d$();R$();I$();});var _I={};Cg(_I,{runMatrix:()=>up});async function up(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=pI(a,c,n),u=hI(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var dp=d(()=>{Zt();ho();yI();Mr();s(up,"runMatrix");});var RI={};Cg(RI,{renderMatrix:()=>fp});function fp(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=fI(r,t.data.targets);process.stdout.write(n),process.stdout.write(`
|
|
154
156
|
`),e?.verbose&&t.verboseDetails&&(process.stdout.write(t.verboseDetails),process.stdout.write(`
|
|
155
|
-
`));}var
|
|
156
|
-
`)}s(
|
|
157
|
+
`));}var gp=d(()=>{ot();yI();s(fp,"renderMatrix");});function DS(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(DS,"createRouter");ot();var kg=[{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)"}],Eg=[{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:"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 jp(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
158
|
+
`)}s(jp,"formatFlags");function Lg(){let t=Eg.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
157
159
|
Usage: ${e.usage}
|
|
158
|
-
${
|
|
160
|
+
${jp(e.flags)}`).join(`
|
|
159
161
|
|
|
160
162
|
`);y.info(`agentsmesh <command> [flags]
|
|
161
163
|
|
|
162
164
|
Global flags:
|
|
163
|
-
${
|
|
165
|
+
${jp(kg)}
|
|
164
166
|
|
|
165
167
|
Commands:
|
|
166
168
|
${t}
|
|
167
169
|
|
|
168
|
-
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(
|
|
170
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(Lg,"printHelp");function Up(t){let e=Eg.find(r=>r.name===t);if(!e){Lg();return}y.info(`${e.usage}
|
|
169
171
|
|
|
170
172
|
${e.description}
|
|
171
173
|
|
|
172
174
|
Command flags:
|
|
173
|
-
${
|
|
175
|
+
${jp(e.flags)}
|
|
174
176
|
|
|
175
177
|
Global flags:
|
|
176
|
-
${
|
|
177
|
-
`);}s(
|
|
178
|
-
`);}s(
|
|
179
|
-
`):y.error(t.message),process.exit(r);}s(
|
|
178
|
+
${jp(kg)}`);}s(Up,"printCommandHelp");var Bp;function B0(){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(B0,"readPackageVersion");function K0(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let t=globalThis.__AGENTSMESH_VERSION__;return typeof t=="string"?t:"unknown"}s(K0,"getVersionFallback");function Oi(){return Bp||(Bp=B0()??K0(),Bp)}s(Oi,"getVersion");function $S(){process.stdout.write(`agentsmesh v${Oi()}
|
|
179
|
+
`);}s($S,"printVersion");ot();function Ja(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)+`
|
|
180
|
+
`);}s(Ja,"emitJson");var Rn=class extends Error{static{s(this,"CliUsageError");}constructor(e){super(e),this.name="CliUsageError";}};function GS(t,e){let r=t instanceof Rn?2:1;if(e?.json)return Ja(e.command??"unknown",{success:false,error:t.message}),process.exit(r);e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
181
|
+
`):y.error(t.message),process.exit(r);}s(GS,"handleError");ot();function le(t,e,r,n){if(r.json===true){let o=e.exitCode===0;Ja(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();ho();A();Hp();function kf(t){return createHash("sha256").update(t,"utf8").digest("hex")}s(kf,"hashContent");async function Ef(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(Ef,"hashFile");async function Lf(t){try{if(!Kp(t)){let r=await readFile(t);return createHash("sha256").update(r).digest("hex")}let e=await readFile(t,"utf-8");return e.startsWith(Za)&&(e=e.slice(Za.length)),e=Wp(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(Lf,"hashFileForManifest");yc();var qR=".lock",V2=[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 J2(t){return t.startsWith("packs/")?false:V2.some(e=>e(t))}s(J2,"isCanonical");var Y2={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 Of(t){let e=join(t,qR),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(Of,"readLock");async function wf(t,e){let r=join(t,qR),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.
|
|
180
182
|
# Tracks the state of all config files for team conflict resolution.
|
|
181
183
|
|
|
182
|
-
`+stringify(n);await
|
|
183
|
-
`),a=
|
|
184
|
+
`+stringify(n);await S(r,o);}s(wf,"writeLock");async function Rs(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===qR||!J2(o))continue;let i=await Ef(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(Rs,"buildChecksums");function Af(t,e,r){if(r.length===0)return [];let n=r.map(a=>Y2[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(Af,"detectLockedFeatureViolations");async function bf(t){let e=await Sf(t),r={};for(let{meta:n}of e)r[n.name]=n.content_hash;return r}s(bf,"buildPackChecksums");async function _c(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 Rs(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
185
|
+
`),a=kf(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}s(_c,"buildExtendChecksums");Tt();ce();function Rc(t){return t?(t.outputFamilies??[]).filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[]}s(Rc,"getAdditionalRootDecorationPaths");function EM(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(EM,"resolveRewriteFamilyId");pe();fh();function X2(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(X2,"addDirectoryMapping");function LM(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)X2(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(LM,"addSkillDirectoryMappings");Tt();function OM(t,e,r="project"){let n=Kt(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(OM,"ruleTargetPath");function wM(t,e,r,n="project"){let o=Kt(t,n);return o?o.paths.commandPath(e,r):null}s(wM,"commandTargetPath");function AM(t,e,r,n="project"){let o=Kt(t,n);return o?o.paths.agentPath(e,r):null}s(AM,"agentTargetPath");ye();Xt();Ee();Tt();function q2(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(q2,"addDirectoryMapping");function tI(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=OM(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=wM(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=AM(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=sp(t,n);if(!i)return o;for(let a of e.skills){q2(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),LM(o,m,p);}}return o}s(tI,"buildReferenceMap");pe();pe();Tt();function PM(t,e,r,n){let o=n.normalize(e),i=n.normalize(r);t.set(o,i),t.set(`${o}/`,`${i}/`);}s(PM,"addPackAbsoluteDirMapping");function tX(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(tX,"skillSupportingDirPrefixes");function TM(t,e,r,n,o){let i=sp(e,o);if(!i)return;let a=at(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));PM(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 tX(c.supportingFiles))PM(t,a.join(m,u),a.join(p,u),a);}}s(TM,"addPackSkillArtifactMappings");pe();function eX(t){return `.agentsmesh/rules/${basename(t.source)}`}s(eX,"canonicalRulePath");function rX(t){return `.github/instructions/${basename(t.source,".md")}.instructions.md`}s(rX,"copilotInstructionsPath");function DM(t,e,r,n,o){if(t!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=at(r);for(let a of o.rules)a.root||a.globs.length===0||e.set(i.normalize(i.join(r,eX(a))),i.normalize(i.join(r,rX(a))));}s(DM,"applyCopilotInstructionArtifactRefs");Tt();function eI(t,e){e!==void 0&&e.length>0&&!t.includes(e)&&t.push(e);}s(eI,"pushUnique");function NM(t,e,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(e.source)}`);eI(o,i);let a=Kt(t,n);if(e.root)for(let l of Rc(a))eI(o,l);for(let l of a?.extraRuleOutputPaths?.(e,{refs:r,scope:n})??[])eI(o,l);return o}s(NM,"extraRuleOutputPaths");Tt();function FM(t,e,r,n,o,i){let a=Kt(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(FM,"addSkillMirrorSourceEntry");function oX(t){return `.agentsmesh/commands/${t.name}.md`}s(oX,"canonicalCommandPath");function sX(t){return `.agentsmesh/agents/${t.name}.md`}s(sX,"canonicalAgentPath");function iX(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}s(iX,"canonicalSkillPath");function vM(t,e,r,n,o,i){let a=i?.scope??"project",l=at(n),c=new Map([...tI(t,e,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return DM(t,c,n,o,e),TM(c,t,e,n,a),c}s(vM,"buildArtifactPathMap");function MM(t,e,r,n="project",o){let i=tI(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of NM(t,l,i,n))a.set(c,l.source);for(let l of e.commands){let c=i.get(oX(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=i.get(sX(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=i.get(iX(l));c&&(a.set(c,l.source),FM(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),FM(t,n,u,m.absolutePath,a,o));}}return a}s(MM,"buildOutputSourceMap");Tt();ce();th();function cX(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(cX,"findSharedArtifactOwner");function $M(t,e,r){if(e==="global"){let n=cX(t.path,r);if(n)return n;let o=zC(t.path);if(o)return o}return t.target}s($M,"artifactMapTargetForResult");function mX(t,e){return `${t}\0${(e??[]).join(",")}`}s(mX,"sourceMapCacheKey");function rI(t,e){let r=at(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(rI,"collectPlannedPaths");function pX(t,e,r){let n=Kt(t.target,e),o=EM(n,t.path);if(o!=="default")return `${t.target}:${o}`;let i=$M(t,e,r);return i===t.target?t.target:`${t.target}~via~${i}`}s(pX,"artifactCacheKey");function GM(t,e,r,n,o="project",i,a){let l=rI(n,t),c=new Map,m=new Map;return t.map(p=>{if(a?.has(p.path))return p;let u=mX(p.target,i),g=(m.get(u)??(()=>{let C=MM(p.target,e,r,o,i);return m.set(u,C),C})()).get(p.path);if(!g)return p;let h=$M(p,o,i),R=pX(p,o,i),k=c.get(R)??(()=>{let C=vM(h,e,r,n,p.path,{scope:o});return c.set(R,C),C})(),I=Iu({content:p.content,projectRoot:n,sourceFile:g,destinationFile:at(n).join(n,p.path),translatePath:s(C=>k.get(C)??C,"translatePath"),pathExists:s(C=>l.has(C)||existsSync(C),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(C=>{try{return statSync(C).isDirectory()}catch{return false}},"pathIsDirectory")});return I.content===p.content?p:{...p,content:I.content}})}s(GM,"rewriteGeneratedReferences");pe();Ps();ot();var dX=/!?\[[^\]]*\]\(([^)]+)\)/g,fX=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function gX(t){return t.endsWith(".md")||t.endsWith(".mdc")}s(gX,"isMarkdownLikeOutput");function hX(t,e){return e.some(([r,n])=>t>=r&&t<n)}s(hX,"isOffsetInRanges");function yX(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(yX,"parseMarkdownLinkDestination");function _X(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(_X,"shouldSkipLocalValidation");function RX(t){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(t)}s(RX,"isSkillGeneratedOutput");var IX={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},SX={".clinerules":"rules"},CX=[".agent.md",".instructions.md",".prompt.md"];function jM(t){for(let e of CX)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(jM,"stripMarkdownExt");function kX(t){let e=/^[^/]+\/([^/]+)\/([^/]+)/.exec(t);if(e){let n=IX[e[1]??""];if(n){let o=e[2]??"";return n!=="skills"&&(o=jM(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(t);if(r){let n=SX[r[1]??""];if(n)return `${n}/${jM(r[2]??"")}`}return null}s(kX,"canonicalKeyFromOutputPath");function EX(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}s(EX,"pathExistsForGenerate");function LX(t,e,r){let o=yX(t).split("#")[0]??"",{candidate:i}=fl(o),a=i,l=gl.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(_X(c,e))return [];let m=im(c,e,r);if(m.length===0){let u=at(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 am(e,u)){let g=X(e,f);p.includes(g)||p.push(g);}return p}s(LX,"resolveMarkdownLinkTargets");function OX(t,e){let r=rI(e,t),n=[];for(let o of t){if(!gX(o.path))continue;let i=X(e,at(e).join(e,o.path)),a=Ru(o.content),l=s((c,m)=>{if(hX(m,a))return;let p=LX(c,e,i);p.length!==0&&(p.some(u=>EX(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(dX)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(fX)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(OX,"findBrokenMarkdownLinks");function UM(t,e,r={}){let n=OX(t,e);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=kX(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);RX(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):
|
|
184
186
|
${c.join(`
|
|
185
187
|
`)}`);}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:
|
|
186
188
|
${l.join(`
|
|
187
189
|
`)}
|
|
188
|
-
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(
|
|
190
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(UM,"validateGeneratedMarkdownLinks");var wX=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function Tf(t){return wX.some(e=>t.includes(e))}s(Tf,"isUnderPacks");function BM(t){let e=new Set;for(let r of t.rules)if(Tf(r.source)){let n=r.root?"_root":AX(r.source);n&&e.add(`rules/${n}`);}for(let r of t.agents)Tf(r.source)&&e.add(`agents/${r.name}`);for(let r of t.commands)Tf(r.source)&&e.add(`commands/${r.name}`);for(let r of t.skills)Tf(r.source)&&e.add(`skills/${r.name}`);return e}s(BM,"buildPackOriginatedKeys");function AX(t){let r=t.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s(AX,"ruleNameFromSource");Sn();var zM="AGENTS.md";function KM(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(KM,"statusRank");function bX(t,e){return KM(e.status)<=KM(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}s(bX,"mergeDuplicateMetadata");function xf(t){return t.trim()}s(xf,"trimmedContent");var PX=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function WM(t){let e=t;for(let r of PX)e=e.replace(r,"");return e.trim().replace(/\n{2,}/g,`
|
|
189
191
|
|
|
190
|
-
`)}s(TM,"normalizeAgentsContent");function xM(t){return /<!-- agentsmesh:embedded-rules:start -->/.test(t)}s(xM,"hasOptionalAgentsBlock");function a2(t,e){if(!t.path.endsWith(DM)||t.path!==e.path)return null;let r=hf(t.content),n=hf(e.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?t:e;if(TM(t.content)===TM(e.content)){let a=xM(t.content),l=xM(e.content);if(a!==l)return a?t:e}return null}s(a2,"richerAgentsResult");function l2(t,e){if(!t.path.endsWith(DM)||t.path!==e.path)return null;let r=t.target===pg?t:e.target===pg?e:null,n=r===t?e:t;if(!r)return null;let o=hf(r.content).length,i=hf(n.content).length;return o===i?null:o>i?r:n}s(l2,"richerCodexAgentsResult");function yf(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=a2(o,r);if(i){e[n]=i;continue}let a=l2(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]=s2(o,r);}return e}s(yf,"resolveOutputCollisions");function NM(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(NM,"refreshResultStatus");w();Pt();se();function vM(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(vM,"computeStatus");function c2(t,e,r){let n=lR(t,e,r);if(n!==null)return n;let o=et(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(c2,"resolveGeneratedOutputPath");async function op(t,e,r,n,o,i){let a=c2(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:vM(l,p)}),a}s(op,"emitGeneratedOutput");function $R(t,e,r){return {capability:mi(t,r)?.[e]??{level:"none"},scope:r}}s($R,"featureContext");async function xa(t,e,r,n,o,i,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let p=$R(c,a,i);for(let u of m(r,p)){let f=await op(t,c,u,n,i);if(f===null)continue;let g=Gt(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,e),R=h===null?[]:Array.isArray(h)?h:[h];for(let C of R){let S=await _(join(n,C));t.push({target:c,path:C,content:u.content,currentContent:S??void 0,status:vM(S,u.content)});}}}}}s(xa,"generateFeature");Gg();Pt();function m2(t){return t?.rootInstructionPath?[t.rootInstructionPath,...hc(t)]:[]}s(m2,"rootDecorationPaths");function MM(t,e,r="project"){return t.map(n=>{let o=Gt(n.target,r);if(!o)return n;let i=m2(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=BC(l);return c===n.content?n:{...n,content:c}})}s(MM,"decoratePrimaryRootInstructions");Pt();se();td();function GR(t,e,r,n,o){let a=(Pr(t)??et(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&mP.includes(o)?pP(l,n):n}s(GR,"mergeOutputContent");async function $M(t,e,r,n,o){for(let i of e){let a=uc(i,"permissions",void 0,o)??et(i)?.generators.generatePermissions;if(a)for(let l of a(r))await op(t,i,l,n,o,{mergeContent:s((c,m,p,u)=>GR(i,c,m,p,u),"mergeContent")});}}s($M,"generatePermissionsFeature");async function GM(t,e,r,n,o,i){for(let a of e){let l=uc(a,"hooks",i,o)??et(a)?.generators.generateHooks;if(!l)continue;let c=$R(a,"hooks",o),m=[...l(r,c)],u=(Pr(a)??et(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await op(t,a,f,n,o,{mergeContent:s((g,h,R,C)=>GR(a,g,h,R,C),"mergeContent")});}}s(GM,"generateHooksFeature");async function jM(t,e,r,n,o){for(let i of e){let l=(Pr(i)??et(i))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await op(t,i,m,n,o,{mergeContent:s((p,u,f,g)=>GR(i,p,u,f,g),"mergeContent")});}}s(jM,"generateScopedSettingsFeature");async function Tr(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=t,a=[...e.targets,...e.pluginTargets??[]],l=i?a.filter(W=>i.includes(W)):a;function c(W,z){return uc(W,z,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"),R=e.features.includes("hooks"),C=e.features.includes("ignore"),S=[];await xa(S,l,r,n,m,o,"rules",W=>c(W,"rules")),await xa(S,l,r,n,p,o,"commands",W=>c(W,"commands")),await xa(S,l,r,n,u,o,"agents",W=>c(W,"agents")),await xa(S,l,r,n,f,o,"skills",W=>c(W,"skills")),await xa(S,l,r,n,g,o,"mcp",W=>c(W,"mcp")),h&&await $M(S,l,r,n,o),R&&await GM(S,l,r,n,o,e),await xa(S,l,r,n,C,o,"ignore",W=>c(W,"ignore"));let k=new Set(e.features);for(let W of l){let Q=(Pr(W)??et(W))?.globalSupport?.scopeExtras;if(Q){let at=await Q(r,n,o,k);S.push(...at);}}(g||C||R||u||h)&&await jM(S,l,r,n,o);let P=MM(S,r,o),N=p2(P,o),F=OM(P,r,e,n,o,l,N);return wM(F,n,{packOriginatedKeys:bM(r)}),yf(F.map(NM))}s(Tr,"generate");function p2(t,e){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Gt(a,e),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of hc(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(p2,"computeSharedRootInstructionPaths");fn();ot();w();_o();var O2=6e4,A2=30,w2=200,b2=2e3;async function Rf(t,e={}){let r=e.retries??A2,n=e.retryDelayMs??w2,o=e.staleMs??O2;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await P2(t);if(a)return a;let l=await T2(t);if(l!=="young"&&x2(l,o)){await rm(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Va(t,N2(c))}i++,await v2(n);}}s(Rf,"acquireProcessLock");async function P2(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:YM()};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(t,{recursive:true,force:true}).catch(()=>{}));}}s(P2,"tryAcquire");async function T2(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return F2(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<b2)return "young"}catch{}return null}}s(T2,"inspectLock");function x2(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==YM()?false:!D2(t.pid)}s(x2,"isStale");function D2(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(D2,"isProcessAlive");function N2(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(N2,"describeHolder");function F2(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(F2,"isLockMetadata");function YM(){return hostname()}s(YM,"getHostname");function v2(t){return new Promise(e=>setTimeout(e,t))}s(v2,"sleep");w();Pt();async function XM(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 XM(i,e));continue}n.push(relative(e,i).replace(/\\/g,"/"));}return n}s(XM,"listFiles");async function j2(t,e,r){if(r.has(e))return;let n=join(t,e);await $(n)&&await rm(n,{recursive:true,force:true});}s(j2,"removeIfStale");async function ZM(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let i=aR(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 $(l))for(let c of await XM(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await j2(t.projectRoot,o,e);}s(ZM,"cleanupStaleGeneratedOutputs");function yc(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(yc,"ensurePathInsideRoot");Uc();w();ot();async function WR(t,e){let r=await ys(t.canonicalDir),n=e.length>0?await gc(e):{},o=await df(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await pf(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Ci(),checksums:r,extends:n,packs:o});try{await cg(Te(),join(t.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(WR,"writeLockFile");async function l$(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:If([])}};if(n||await WR(o,i),c.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(ap(),QR)),{renderMatrix:p}=await Promise.resolve().then(()=>(cp(),qR)),u=await m(a,l);p(u,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:If([])}}}s(l$,"handleEmptyResults");function c$(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:If(r)}}}s(c$,"buildCheckResult");async function m$(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 Rf(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let R=yc(i.rootBase,h.path,h.target);await I(R,h.content);}await ZM({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:n}),await WR(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(ap(),QR)),{renderMatrix:R}=await Promise.resolve().then(()=>(cp(),qR)),C=await h(c,m);R(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:If(f)}}}s(m$,"handleGenerateOrDryRun");function If(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(If,"buildSummary");async function _c(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 Wt(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let N=await mf(g.canonicalDir);if(N!==null){let F=await ys(g.canonicalDir),W=uf(N.checksums,F,h);if(W.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let z of W)y.error(` ${z}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:R,resolvedExtends:C}=await ke(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),S=[...f.targets,...f.pluginTargets??[]];if(p){let N=p.filter(F=>!S.includes(F));if(N.length>0)throw new Error(`Unknown target(s) in --targets: ${N.join(", ")}. Available: ${S.join(", ")}`)}let k=p?S.filter(N=>p.includes(N)):S,P=await Tr({config:f,canonical:R,projectRoot:g.rootBase,scope:l,targetFilter:p});return P.length===0?l$({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:C,flags:t,root:n,options:r}):o?c$(P,l):m$({results:P,dryRun:i,scope:l,mode:u,context:g,activeTargets:k,resolvedExtends:C,flags:t,root:n,options:r})}s(_c,"runGenerate");ot();function tI(t,e){return t==="global"?`~/${e}`:e}s(tI,"formatDisplayPath");function Rc(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} ${tI(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} ${tI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${tI(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(Rc,"renderGenerate");w();Pt();Pt();Rn();function p$(){return bt.filter(t=>!t.excludeFromStarterInit).map(t=>t.id).filter(Pe)}s(p$,"starterInitTargetIds");var u$=/^# yaml-language-server: \$schema=[^\n]*\n?/;function Y2(){let t=Ci();return `https://unpkg.com/agentsmesh${t&&t!=="unknown"?`@${t}`:""}/schemas`}s(Y2,"schemaBaseUrl");function d$(t){return `${Y2()}/${t}.json`}s(d$,"schemaUrl");function Ic(t){return `# yaml-language-server: $schema=${d$(t)}
|
|
191
|
-
`}s(
|
|
192
|
-
`),n=
|
|
193
|
-
`);return `${
|
|
192
|
+
`)}s(WM,"normalizeAgentsContent");function HM(t){return /<!-- agentsmesh:embedded-rules:start -->/.test(t)}s(HM,"hasOptionalAgentsBlock");function TX(t,e){if(!t.path.endsWith(zM)||t.path!==e.path)return null;let r=xf(t.content),n=xf(e.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?t:e;if(WM(t.content)===WM(e.content)){let a=HM(t.content),l=HM(e.content);if(a!==l)return a?t:e}return null}s(TX,"richerAgentsResult");function xX(t,e){if(!t.path.endsWith(zM)||t.path!==e.path)return null;let r=t.target===Pg?t:e.target===Pg?e:null,n=r===t?e:t;if(!r)return null;let o=xf(r.content).length,i=xf(n.content).length;return o===i?null:o>i?r:n}s(xX,"richerCodexAgentsResult");function Df(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=TX(o,r);if(i){e[n]=i;continue}let a=xX(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]=bX(o,r);}return e}s(Df,"resolveOutputCollisions");function VM(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(VM,"refreshResultStatus");A();Tt();ce();function YM(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(YM,"computeStatus");function DX(t,e,r){let n=AR(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(DX,"resolveGeneratedOutputPath");async function mp(t,e,r,n,o,i){let a=DX(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:YM(l,p)}),a}s(mp,"emitGeneratedOutput");function oI(t,e,r){return {capability:di(t,r)?.[e]??{level:"none"},scope:r}}s(oI,"featureContext");async function va(t,e,r,n,o,i,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let p=oI(c,a,i);for(let u of m(r,p)){let f=await mp(t,c,u,n,i);if(f===null)continue;let g=Kt(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,e),R=h===null?[]:Array.isArray(h)?h:[h];for(let k of R){let I=await _(join(n,k));t.push({target:c,path:k,content:u.content,currentContent:I??void 0,status:YM(I,u.content)});}}}}}s(va,"generateFeature");sh();Tt();function NX(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Rc(t)]:[]}s(NX,"rootDecorationPaths");function XM(t,e,r="project"){return t.map(n=>{let o=Kt(n.target,r);if(!o)return n;let i=NX(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=ek(l);return c===n.content?n:{...n,content:c}})}s(XM,"decoratePrimaryRootInstructions");Tt();ce();hd();function sI(t,e,r,n,o){let a=(Fr(t)??nt(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&kP.includes(o)?EP(l,n):n}s(sI,"mergeOutputContent");async function ZM(t,e,r,n,o){for(let i of e){let a=gc(i,"permissions",void 0,o)??nt(i)?.generators.generatePermissions;if(a)for(let l of a(r))await mp(t,i,l,n,o,{mergeContent:s((c,m,p,u)=>sI(i,c,m,p,u),"mergeContent")});}}s(ZM,"generatePermissionsFeature");async function QM(t,e,r,n,o,i){for(let a of e){let l=gc(a,"hooks",i,o)??nt(a)?.generators.generateHooks;if(!l)continue;let c=oI(a,"hooks",o),m=[...l(r,c)],u=(Fr(a)??nt(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await mp(t,a,f,n,o,{mergeContent:s((g,h,R,k)=>sI(a,g,h,R,k),"mergeContent")});}}s(QM,"generateHooksFeature");async function qM(t,e,r,n,o){for(let i of e){let l=(Fr(i)??nt(i))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await mp(t,i,m,n,o,{mergeContent:s((p,u,f,g)=>sI(i,p,u,f,g),"mergeContent")});}}s(qM,"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,H){return gc(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"),R=e.features.includes("hooks"),k=e.features.includes("ignore"),I=[];await va(I,l,r,n,m,o,"rules",B=>c(B,"rules")),await va(I,l,r,n,p,o,"commands",B=>c(B,"commands")),await va(I,l,r,n,u,o,"agents",B=>c(B,"agents")),await va(I,l,r,n,f,o,"skills",B=>c(B,"skills")),await va(I,l,r,n,g,o,"mcp",B=>c(B,"mcp")),h&&await ZM(I,l,r,n,o),R&&await QM(I,l,r,n,o,e),await va(I,l,r,n,k,o,"ignore",B=>c(B,"ignore"));let C=new Set(e.features);for(let B of l){let tt=(Fr(B)??nt(B))?.globalSupport?.scopeExtras;if(tt){let it=await tt(r,n,o,C);I.push(...it);}}(g||k||R||u||h)&&await qM(I,l,r,n,o);let b=XM(I,r,o),N=FX(b,o),T=GM(b,r,e,n,o,l,N);return UM(T,n,{packOriginatedKeys:BM(r)}),Df(T.map(VM))}s(vr,"generate");function FX(t,e){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Kt(a,e),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of Rc(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(FX,"computeSharedRootInstructionPaths");Mr();ot();A();Io();var XX=6e4,ZX=30,QX=200,qX=2e3;async function Ff(t,e={}){let r=e.retries??ZX,n=e.retryDelayMs??QX,o=e.staleMs??XX;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await tZ(t);if(a)return a;let l=await eZ(t);if(l!=="young"&&rZ(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Xa(t,oZ(c))}i++,await iZ(n);}}s(Ff,"acquireProcessLock");async function tZ(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:l$()};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(tZ,"tryAcquire");async function eZ(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return sZ(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<qX)return "young"}catch{}return null}}s(eZ,"inspectLock");function rZ(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==l$()?false:!nZ(t.pid)}s(rZ,"isStale");function nZ(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(nZ,"isProcessAlive");function oZ(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(oZ,"describeHolder");function sZ(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(sZ,"isLockMetadata");function l$(){return hostname()}s(l$,"getHostname");function iZ(t){return new Promise(e=>setTimeout(e,t))}s(iZ,"sleep");A();Tt();async function c$(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 c$(i,e));continue}n.push(relative(e,i).replace(/\\/g,"/"));}return n}s(c$,"listFiles");async function mZ(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(mZ,"removeIfStale");async function m$(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let i=wR(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 c$(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await mZ(t.projectRoot,o,e);}s(m$,"cleanupStaleGeneratedOutputs");function Ic(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(Ic,"ensurePathInsideRoot");Vc();A();ot();async function mI(t,e){let r=await Rs(t.canonicalDir),n=e.length>0?await _c(e):{},o=await bf(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await wf(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Oi(),checksums:r,extends:n,packs:o});try{await wg(ve(),join(t.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(mI,"writeLockFile");async function S$(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:vf([])}};if(n||await mI(o,i),c.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(dp(),_I)),{renderMatrix:p}=await Promise.resolve().then(()=>(gp(),RI)),u=await m(a,l);p(u,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:vf([])}}}s(S$,"handleEmptyResults");function C$(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:vf(r)}}}s(C$,"buildCheckResult");async function k$(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 Ff(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let R=Ic(i.rootBase,h.path,h.target);await S(R,h.content);}await m$({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:n}),await mI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(dp(),_I)),{renderMatrix:R}=await Promise.resolve().then(()=>(gp(),RI)),k=await h(c,m);R(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:vf(f)}}}s(k$,"handleGenerateOrDryRun");function vf(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(vf,"buildSummary");async function Sc(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 Of(g.canonicalDir);if(N!==null){let T=await Rs(g.canonicalDir),B=Af(N.checksums,T,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:R,resolvedExtends:k}=await Oe(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),I=[...f.targets,...f.pluginTargets??[]];if(p){let N=p.filter(T=>!I.includes(T));if(N.length>0)throw new Error(`Unknown target(s) in --targets: ${N.join(", ")}. Available: ${I.join(", ")}`)}let C=p?I.filter(N=>p.includes(N)):I,b=await vr({config:f,canonical:R,projectRoot:g.rootBase,scope:l,targetFilter:p});return b.length===0?S$({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:k,flags:t,root:n,options:r}):o?C$(b,l):k$({results:b,dryRun:i,scope:l,mode:u,context:g,activeTargets:C,resolvedExtends:k,flags:t,root:n,options:r})}s(Sc,"runGenerate");ot();function II(t,e){return t==="global"?`~/${e}`:e}s(II,"formatDisplayPath");function Cc(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} ${II(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} ${II(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${II(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(Cc,"renderGenerate");A();Tt();Tt();Sn();function E$(){return Pt.filter(t=>!t.excludeFromStarterInit).map(t=>t.id).filter(Fe)}s(E$,"starterInitTargetIds");var L$=/^# yaml-language-server: \$schema=[^\n]*\n?/;function RZ(){let t=Oi();return `https://unpkg.com/agentsmesh${t&&t!=="unknown"?`@${t}`:""}/schemas`}s(RZ,"schemaBaseUrl");function O$(t){return `${RZ()}/${t}.json`}s(O$,"schemaUrl");function kc(t){return `# yaml-language-server: $schema=${O$(t)}
|
|
193
|
+
`}s(kc,"yamlSchemaDirective");function Ma(t,e){let r=kc(e);return L$.test(t)?t.replace(L$,r):`${r}${t}`}s(Ma,"prependYamlSchemaDirective");function w$(t,e){let{$schema:r,...n}=t;return {$schema:O$(e),...n}}s(w$,"stampJsonSchemaField");var IZ=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],SZ=E$();function Mf(t,e=SZ){let r=(t.length>0?t:e).map(o=>` - ${o}`).join(`
|
|
194
|
+
`),n=IZ.map(o=>` - ${o}`).join(`
|
|
195
|
+
`);return `${kc("agentsmesh")}version: 1
|
|
194
196
|
targets:
|
|
195
197
|
${r}
|
|
196
198
|
features:
|
|
197
199
|
${n}
|
|
198
|
-
`}s(
|
|
200
|
+
`}s(Mf,"buildConfig");var $f=`---
|
|
199
201
|
root: true
|
|
200
202
|
description: "Project rules"
|
|
201
203
|
---
|
|
@@ -204,7 +206,7 @@ description: "Project rules"
|
|
|
204
206
|
|
|
205
207
|
Add your project-wide instructions here.
|
|
206
208
|
This file is always included in AI tool context and synced to all configured tools.
|
|
207
|
-
`,
|
|
209
|
+
`,SI=`---
|
|
208
210
|
description: "Example contextual rule \u2014 rename and customize"
|
|
209
211
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
210
212
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -213,14 +215,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
213
215
|
# Example Rule
|
|
214
216
|
|
|
215
217
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
216
|
-
`,
|
|
218
|
+
`,CI=`---
|
|
217
219
|
description: "Example command \u2014 rename and customize"
|
|
218
220
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
219
221
|
---
|
|
220
222
|
|
|
221
223
|
Describe the task for this command here.
|
|
222
224
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
223
|
-
`,
|
|
225
|
+
`,kI=`---
|
|
224
226
|
name: example-agent
|
|
225
227
|
description: "Example subagent \u2014 rename and customize"
|
|
226
228
|
# tools: [Read, Grep, Glob]
|
|
@@ -231,7 +233,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
231
233
|
|
|
232
234
|
Describe this agent's role and instructions here.
|
|
233
235
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
234
|
-
`,
|
|
236
|
+
`,EI=`---
|
|
235
237
|
name: example-skill
|
|
236
238
|
description: "Example skill \u2014 rename and customize"
|
|
237
239
|
---
|
|
@@ -240,7 +242,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
240
242
|
|
|
241
243
|
Describe the skill procedure here.
|
|
242
244
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
243
|
-
`,
|
|
245
|
+
`,LI=`{
|
|
244
246
|
"mcpServers": {
|
|
245
247
|
// agentsmesh self-serve MCP server \u2014 exposes your canonical config to AI agents.
|
|
246
248
|
// Lets agents introspect rules/commands/agents/skills and trigger generate.
|
|
@@ -267,7 +269,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
267
269
|
// }
|
|
268
270
|
}
|
|
269
271
|
}
|
|
270
|
-
`,
|
|
272
|
+
`,OI=`${kc("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
271
273
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
272
274
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
273
275
|
#
|
|
@@ -280,7 +282,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
280
282
|
# - matcher: Edit|Write
|
|
281
283
|
# type: command
|
|
282
284
|
# command: npm test --passWithNoTests
|
|
283
|
-
`,
|
|
285
|
+
`,wI=`${kc("permissions")}# Tool permission allow/deny lists
|
|
284
286
|
#
|
|
285
287
|
# allow:
|
|
286
288
|
# - Bash(npm run:*)
|
|
@@ -296,14 +298,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
296
298
|
allow: []
|
|
297
299
|
deny: []
|
|
298
300
|
ask: []
|
|
299
|
-
`,
|
|
301
|
+
`,AI=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
300
302
|
#
|
|
301
303
|
# node_modules/
|
|
302
304
|
# dist/
|
|
303
305
|
# .env*
|
|
304
306
|
# *.log
|
|
305
307
|
# coverage/
|
|
306
|
-
`,
|
|
308
|
+
`,A$=`${kc("agentsmesh")}# Personal overrides \u2014 NOT committed to git
|
|
307
309
|
# Uncomment and customize for your local setup:
|
|
308
310
|
|
|
309
311
|
# targets:
|
|
@@ -321,44 +323,47 @@ ask: []
|
|
|
321
323
|
# overrides:
|
|
322
324
|
# claude-code:
|
|
323
325
|
# model: opus
|
|
324
|
-
`;
|
|
325
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"))),o=
|
|
326
|
+
`;A();Tt();function b$(t){let e=[];for(let r of Pt)for(let n of OR(r.id,t))e.push({target:r.id,path:n});return e}s(b$,"collectDetectionPaths");function P$(t){let e=new Map;for(let{target:r,path:n}of b$(t)){let o=e.get(r)??[];o.push(n),e.set(r,o);}return [...e.entries()].map(([r,n])=>({id:r,paths:n}))}s(P$,"toolIndicators");P$("project");async function T$(t,e="project"){let r=[];for(let{id:n,paths:o}of P$(e))for(let i of o){let a=join(t,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(T$,"detectExistingConfigs");A();ot();function se(t,e){return join(t,e)}s(se,"ab");async function bI(t){return await j(t)?(await readdir(t,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(bI,"countMdFiles");async function kZ(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(kZ,"hasAnyImportedSkill");async function PI(t){let e=se(t,"rules");await O(e),await S(join(e,"_root.md"),$f),y.success("Created .agentsmesh/rules/_root.md"),await S(join(e,"_example.md"),SI),y.success("Created .agentsmesh/rules/_example.md");let r=se(t,"commands");await O(r),await S(join(r,"_example.md"),CI),y.success("Created .agentsmesh/commands/_example.md");let n=se(t,"agents");await O(n),await S(join(n,"_example.md"),kI),y.success("Created .agentsmesh/agents/_example.md");let o=se(t,join("skills","_example"));await O(o),await S(join(o,"SKILL.md"),EI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await S(se(t,"mcp.json"),LI),y.success("Created .agentsmesh/mcp.json"),await S(se(t,"hooks.yaml"),OI),y.success("Created .agentsmesh/hooks.yaml"),await S(se(t,"permissions.yaml"),wI),y.success("Created .agentsmesh/permissions.yaml"),await S(se(t,"ignore"),AI),y.success("Created .agentsmesh/ignore");}s(PI,"writeScaffoldFull");async function D$(t){let e=se(t,"rules"),r=await bI(e),n=join(e,"_root.md"),o=await j(n);await O(e),r===0?(await S(n,$f),y.success("Created .agentsmesh/rules/_root.md"),await S(join(e,"_example.md"),SI),y.success("Created .agentsmesh/rules/_example.md")):o||(await S(n,$f),y.success("Created .agentsmesh/rules/_root.md"));let i=se(t,"commands");await bI(i)===0&&(await O(i),await S(join(i,"_example.md"),CI),y.success("Created .agentsmesh/commands/_example.md"));let a=se(t,"agents");if(await bI(a)===0&&(await O(a),await S(join(a,"_example.md"),kI),y.success("Created .agentsmesh/agents/_example.md")),!await kZ(t)){let u=se(t,join("skills","_example"));await O(u),await S(join(u,"SKILL.md"),EI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=se(t,"mcp.json");await j(l)||(await S(l,LI),y.success("Created .agentsmesh/mcp.json"));let c=se(t,"hooks.yaml");await j(c)||(await S(c,OI),y.success("Created .agentsmesh/hooks.yaml"));let m=se(t,"permissions.yaml");await j(m)||(await S(m,wI),y.success("Created .agentsmesh/permissions.yaml"));let p=se(t,"ignore");await j(p)||(await S(p,AI),y.success("Created .agentsmesh/ignore"));}s(D$,"writeScaffoldGapFill");Zt();var TI="agentsmesh.yaml",N$="agentsmesh.local.yaml",LZ=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],OZ=Object.fromEntries(Pt.map(t=>[t.id,(e,r)=>t.generators.importFrom(e,{scope:r})])),F$=Pt.filter(t=>t.globalSupport!==void 0).map(t=>t.id);function wZ(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(wZ,"isCoveredByExisting");async function AZ(t){let e=join(t,".gitignore"),r=await _(e)??"",n=new Set(r.split(`
|
|
327
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"))),o=LZ.filter(a=>!wZ(a,n));if(o.length===0)return false;let i=r.endsWith(`
|
|
326
328
|
`)||r===""?"":`
|
|
327
|
-
`;return await
|
|
329
|
+
`;return await S(e,r+i+o.join(`
|
|
328
330
|
`)+`
|
|
329
|
-
`),true}s(
|
|
331
|
+
`),true}s(AZ,"appendToGitignore");async function v$(t,e={}){let r=e.global===true?"global":"project",n=Ai(t,r),o=join(n.configDir,TI);if(await j(o))throw new Error(`Already initialized. ${TI} exists. Remove it first to re-init.`);let i=await T$(n.rootBase,r),a=r==="global"?i.filter(g=>F$.includes(g)):i,l=r==="global"?F$:void 0,c=[],m,p=0;if(a.length>0)if(e.yes){for(let g of a){let h=OZ[g];if(!h)continue;let R=await h(n.rootBase,r);for(let k of R)c.push({from:relative(n.rootBase,k.fromPath).replaceAll("\\","/"),to:k.toPath.replaceAll("\\","/")});}p=a.length,await D$(n.canonicalDir),m="gap-fill",await S(o,Mf(a,l));}else await PI(n.canonicalDir),m="full",await S(o,Mf([],l));else await PI(n.canonicalDir),m="full",await S(o,Mf([],l));let u=join(n.configDir,N$);await S(u,A$);let f=false;return r==="project"&&(f=await AZ(t)),{exitCode:0,data:{scope:r,configFile:TI,localConfigFile:N$,detectedConfigs:a,imported:c,importedToolCount:p,scaffoldType:m,gitignoreUpdated:f}}}s(v$,"runInit");ot();function M$(t){let{data:e}=t;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");}s(M$,"renderInit");Zt();Tt();var bZ=Object.fromEntries(Pt.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function Gf(t){return bZ[t]}s(Gf,"getTargetCatalogEntry");ce();Mr();Qc();var FZ={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function vZ(t){return t.mcpServers.agentsmesh!==void 0?false:(t.mcpServers.agentsmesh=FZ,true)}s(vZ,"injectAgentsmeshEntry");async function DI(t){let e=resolve(t,".agentsmesh/mcp.json");try{let r;try{r=await jr(e)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!vZ(r))return !1;let n=JSON.stringify(r,null,2)+`
|
|
330
332
|
`;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)}
|
|
331
|
-
`),false}}s(dI,"seedAgentsmeshMcpEntry");function L$(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(L$,"mapResults");async function O$(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(Pe(o)){let p=Ei(r,i),f=await kf(o).importFrom(p.rootBase,{scope:i});return f.length>0&&await dI(p.rootBase),{exitCode:0,data:{scope:i,target:o,files:L$(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: ${Ft.join(", ")}.`)}await Wt(a,r);let c=et(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...Ft,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&await dI(l.rootBase),{exitCode:0,data:{scope:i,target:o,files:L$(m,l.rootBase)}}}s(O$,"runImport");Yt();fo();function Ef(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(Ef,"computeDiff");function Lf(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s(Lf,"formatDiffSummary");fn();async function w$(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 Wt(a,r);let{canonical:c}=await ke(a,l.configDir,{},l.canonicalDir),m=await Tr({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}=Ef(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(w$,"runDiff");Yt();fo();w();se();wi();Lt();var fZ=[{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 b$(t){let e=new Set(t.enabledFeatures),r=[];for(let n of fZ)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||$r(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(b$,"lintSilentFeatureDrops");Lt();var gZ=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function hZ(t){let r=t.match(gZ)?.groups?.path;return typeof r=="string"?r:null}s(hZ,"extractScriptToken");function P$(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=hZ(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(P$,"lintHookScriptReferences");Lt();function T$(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(T$,"lintRuleScopeInversion");var yZ=["node_modules",".git","dist","coverage",".agentsmesh"];async function _Z(t){return (await v(t)).filter(n=>{let o=relative(t,n);return !yZ.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(t,n))}s(_Z,"getProjectFiles");async function Of(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=[],h=i==="global"?[]:await _Z(r);for(let C of l){let S=et(C),k=Pe(C)?kf(C):S;k?.capabilities&&g.push(...b$({target:C,capabilities:k.capabilities,canonical:e,enabledFeatures:t.features})),f&&g.push(...P$({target:C,canonical:e,hasScriptProjection:S?.postProcessHookOutputs!==void 0})),c&&g.push(...T$({target:C,canonical:e,preservesManualActivation:S?.preservesManualActivation===true})),c&&k?.lintRules&&g.push(...k.lintRules(e,r,h,{scope:i})),S?.generators.lint&&g.push(...S.generators.lint(e));let P={scope:i};m&&k?.lint?.commands&&g.push(...k.lint.commands(e,P)),p&&k?.lint?.mcp&&g.push(...k.lint.mcp(e,P)),u&&k?.lint?.permissions&&g.push(...k.lint.permissions(e,P)),f&&k?.lint?.hooks&&g.push(...k.lint.hooks(e,P));}let R=g.some(C=>C.level==="error");return {diagnostics:g,hasErrors:R}}s(Of,"runLint");fn();async function D$(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 Wt(a,r);let{canonical:c}=await ke(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Of(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(D$,"runLintCmd");ot();function N$(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(N$,"renderLint");ot();function F$(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(F$,"renderCheck");ot();function v$(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(v$,"renderImport");ot();function M$(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(Lf({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(M$,"renderDiff");ot();function $$(t){if(!t.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s($$,"renderMerge");ap();cp();Yt();fo();ap();cp();ot();var SZ=300;function CZ(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(CZ,"normalizeWatchPath");function kZ(t,e){let r=CZ(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(kZ,"shouldIgnoreWatchPath");function EZ(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(EZ,"featureFingerprint");async function j$(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:S}=await yt(n,o),{canonical:k}=await ke(C,S.configDir,{},S.canonicalDir),P=k.mcp?Object.keys(k.mcp.mcpServers).length:0,N=k.permissions?k.permissions.allow.length+k.permissions.deny.length:0,F=k.hooks?Object.values(k.hooks).reduce((At,wt)=>At+(Array.isArray(wt)?wt.length:0),0):0,W=k.ignore.length,z=EZ(C.features,k.rules.length,k.commands.length,k.agents.length,k.skills.length,P,N,F,W),Q=c!==null&&c!==z;if(c=z,m)return;let at=await _c(t,n,{printMatrix:false});if(Rc(at),!m){if(Q){let At=await ip(t,n);lp(At,{verbose:t.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:Q});}},"run"),f=s(()=>{let C=u().catch(S=>{if(!m){let k=S instanceof Error?S.message:String(S);y.error(k);}}).finally(()=>{p===C&&(p=null);});p=C;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,SZ));},"schedule"),h=r.usePolling??process.platform==="win32",R=IZ.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return R.on("all",(C,S)=>{kZ(i.canonicalDir,S)||g();}),await new Promise((C,S)=>{R.once("ready",C),R.once("error",S);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await R.close(),p&&await p;},"stop")}}s(j$,"runWatch");Yt();Fp();async function Af(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await mf(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await ys(n),a=await qa(e,r),l=a.length>0?await gc(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let S of c){let k=i[S];k===void 0?f.push(S):k!==o.checksums[S]&&p.push(S);}for(let S of m)c.has(S)||u.push(S);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let S of g)l[S]!==o.extends[S]&&h.push(S);let R=uf(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:R}}s(Af,"checkLockSync");fn();async function U$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n);await Wt(o,r);let a=await Af({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(U$,"runCheck");Yt();w();Fp();var OZ=".lock",AZ="<<<<<<<";async function fI(t){let e=join(t,OZ),r=await _(e);return r===null?false:r.includes(AZ)}s(fI,"hasLockConflict");async function K$(t,e,r){if(!await fI(t))throw new Error("No conflict to resolve.");let o=await ys(t),i=dirname(t),a=r?await qa(r,i):[],l=a.length>0?await gc(a):{},c=await df(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await pf(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}s(K$,"resolveLockConflict");async function W$(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 fI(a)?(await K$(a,Ci(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(W$,"runMerge");Yt();nf();function H$(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,explicitPath:e||void 0,explicitTarget:r||void 0,explicitAs:n?dc.parse(n):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}s(H$,"readInstallFlags");var PZ=".install.lock";async function wf(t,e={}){return await mkdir(t,{recursive:true}),Rf(join(t,PZ),e)}s(wf,"acquireInstallLock");Yt();w();Uc();var DZ=promisify(execFile);function bf(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(bf,"ensureNotFlag");async function gI(t){let{stdout:e}=await DZ("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(gI,"runGit");async function z$(){try{return await gI(["--version"]),!0}catch{return false}}s(z$,"isGitAvailable");async function NZ(t,e){bf(t,"remote-url"),bf(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await gI(["ls-remote",t,o])).split(`
|
|
332
|
-
`).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(
|
|
333
|
-
`).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 NZ(e,r)}s(V$,"resolveRemoteRefForInstall");async function J$(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 V$(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await Qa(l,"install",{cacheDir:Te(),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:Te(),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:Te(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(J$,"fetchInstallSource");async function Y$(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await J$(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(Y$,"resolveInstallResolvedPath");function hI(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(hI,"parseGithubTreeUrl");function yI(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(yI,"parseGithubBlobUrl");function _I(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(_I,"parseGitlabTreeUrl");function RI(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(RI,"parseGitlabBlobUrl");var FZ=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function II(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||FZ.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(II,"parseGithubRepoUrl");function SI(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(SI,"parseGitlabRepoUrl");function CI(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(CI,"parseGitSshGithub");function kI(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(kI,"parseGitSshGitlab");w();var $Z=/^[A-Za-z]:[\\/]/,GZ=/^[A-Za-z]:\//;function X$(...t){return t.some(e=>e.includes("\\")||$Z.test(e))?win32:posix}s(X$,"pathApiFor");function pp(t){return t.replace(/\\/g,"/")}s(pp,"toPosixPath");function mp(t){return pp(t).replace(/^\/+|\/+$/g,"")}s(mp,"normalizeInstallPathField");function Pf(t){let e=pp(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||GZ.test(e)?e:`./${e}`}s(Pf,"normalizeLocalSourceForYaml");function gi(t){return {...t,source:t.source_kind==="local"?Pf(t.source):t.source,...t.path!==void 0?{path:mp(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>mp(e))}:{}}}s(gi,"normalizePersistedInstallPaths");function Z$(t,e,r){let n=X$(t,e),o=n.normalize(t),i=n.normalize(e),a=mp(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=mp(u),g=pp(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Pf(g)}}let m=pp(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Pf(m)}}s(Z$,"localParsedFromAbsPath");async function EI(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=hI(n)??yI(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=II(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=_I(n)??RI(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=SI(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=CI(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=kI(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 $(m))throw new Error(`Path does not exist: ${m}`);return Z$(m,e,o)}s(EI,"parseInstallSource");IR();function gn(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(gn,"featuresFromCanonical");async function Tf(t,e={}){let{sliceRoot:r,implicitPick:n}=await Zd(t),{canonical:o,cleanup:i}=await Qd(r,{...e,enableTargetEntityMappers:true});return {canonical:o,features:gn(o),implicitPick:n,cleanup:i}}s(Tf,"discoverFromContentRoot");function Q$(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(Q$,"validateSkill");function q$(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(q$,"validateRule");function tG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(tG,"validateCommand");function eG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(eG,"validateAgent");function ne(t){return basename(t.source).replace(/\.md$/i,"")}s(ne,"ruleSlug");function BZ(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(BZ,"featuresFromImplicitPick");function Cc(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??BZ(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(ne(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(Cc,"narrowDiscoveredForInstallScope");AR();async function rG(t,e,r,n,o={}){let i=await ef(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Tf(i.discoveryRoot,o),c=Cc(a,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:gn(c)}}s(rG,"resolveManualDiscoveredForInstall");Ro();cR();w();Pt();var KZ=(()=>{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 WZ(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(WZ,"norm");function xf(t){let e=WZ(t);if(e){for(let{prefix:r,target:n}of KZ)if(e===r||e.startsWith(`${r}/`))return n}}s(xf,"targetHintFromNativePath");function LI(t,e){return xf(t)===e}s(LI,"pathSupportsNativePick");function nG(t,e){if(!t||!e)return;let r=xf(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(nG,"validateTargetMatchesPath");function oG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(oG,"extendPickHasArrays");w();w();Jt();async function iG(t,e){let r=join(t,...He.split("/")),n=join(t,...e.split("/")),o=await v(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(iG,"inferGeminiCommandNamesFromFiles");Jt();cr();w();async function Na(t){let e=await v(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(Na,"skillNamesFromNativeSkillDir");w();wr();async function aG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(si)){let n=await v(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 v(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 v(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 Na(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await v(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(aG,"inferCopilotPickFromPath");async function Je(t,e){let r=await v(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}s(Je,"mdNames");async function cG(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===He||n.startsWith(`${He}/`)){let i=await iG(t,n);return i.length?{commands:i}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let i=await Je(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".claude/rules")){let i=await Je(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".claude/agents")){let i=await Je(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 Je(o,".mdc");return i.length?{rules:i}:{}}if(n.startsWith(".cursor/commands")){let i=await Je(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".cursor/agents")){let i=await Je(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".cursor/skills")){let i=await Na(o);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return aG(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let i=await Je(o,".md");return i.length?{rules:i}:{}}if(r==="cline"){if(n.startsWith(Zt)){let i=await Na(o);return i.length?{skills:i}:{}}if(n.startsWith(Dn)){let i=await Je(o,".md");return i.length?{commands:i}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let i=await Je(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".continue/prompts")){let i=await Je(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".continue/skills")){let i=await Na(o);return i.length?{skills:i}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let i=await Je(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".junie/rules")){let i=await Je(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".junie/agents")){let i=await Je(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".junie/skills")){let i=await Na(o);return i.length?{skills:i}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let i=await v(o),a=[...new Set(i.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}s(cG,"inferImplicitPickFromNativePath");function mG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(mG,"isImplicitPickEmpty");mR();function dp(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(dp,"normalizePath");function tQ(t,e){let r=dp(t),n=dp(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(tQ,"overlapsPath");function Df(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(Df,"addUnique");async function eQ(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=s(async()=>{await rm(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(eQ,"makeStageRoot");function rQ(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Df(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=dp(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:Df(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Df(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=dp(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:Df(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(rQ,"buildPickFromResults");function nQ(t,e,r,n){let o=join(e,...dp(t).split("/")),i=r.filter(a=>tQ(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:rQ(i,e)}}s(nQ,"scopeImportedResults");async function AI(t,e){let{stageRoot:r,cleanup:n}=await eQ(t);try{let o=await tp(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(AI,"stageImportedNativeRepo");async function wI(t,e,r){let n=await AI(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...nQ(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(wI,"stageNativeInstallScope");async function fG(t,e,r,n){let o=n.explicitTarget?.trim();o&&Qe.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");nG(o,i);let a=join(t,".agentsmesh"),l=await $(a),c=i?xf(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await Ud(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 wI(t,i,u);return {discoveryRoot:P.stageRoot,implicitPick:P.pick,scopedFeatures:P.features,yamlTarget:u,importHappened:true,cleanup:P.cleanup}}let k=await AI(t,u);return {discoveryRoot:i?join(k.stageRoot,i):k.stageRoot,yamlTarget:u,importHappened:true,cleanup:k.cleanup}}let g;l?i?u&&LI(i,u)?g=t:g=e:g=t:g=e;let h,R,C;if(f&&u){let k=await wI(t,i,u);g=k.stageRoot,h=k.pick,R=k.features,C=k.cleanup;}else if(g===t&&i&&u&&LI(i,u)&&(h=await cG(t,i,u),mG(h)))throw new Error(`No installable native resources found under "${i}" for target "${u}". Try --path "${i}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);let S;return o?S=o:u&&(h&&oG(h)||(R?.length??0)>0)&&(S=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:R,yamlTarget:S,importHappened:C!==void 0,cleanup:C}}s(fG,"prepareInstallDiscovery");async function bI(t,e,r,n,o={}){let i=await fG(t,e,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Tf(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Cc(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=gn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(bI,"resolveDiscoveredForInstall");var iQ=[".claude-plugin","marketplace.json"];async function aQ(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(aQ,"dirExists");function lQ(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(lQ,"normalizeSource");async function hG(t,e,r){let n=join(t,...iQ),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=lQ(c.source);if(!m)continue;let p=join(t,m);if(!await aQ(p))continue;let u=await e(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(hG,"detectMarketplaceSubPacks");async function fp(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(fp,"dirExists");async function hi(t){try{return (await readdir(t,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(hi,"listDirEntries");function yG(t){return t.endsWith(".instructions.md")?"copilot-instructions":t.endsWith(".md")?"md":t.endsWith(".mdc")?"mdc":t.endsWith(".toml")?"toml":null}s(yG,"classifyFileShape");var pQ=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],uQ=[".cursorrules",".windsurfrules"];async function RG(t){let e=join(t,".agentsmesh");if(!await fp(e))return null;let r=await hi(e),n=new Set(r.map(o=>o.name));for(let o of pQ)if(n.has(o))return {path:".agentsmesh"};return null}s(RG,"detectCanonical");async function IG(t){for(let e of uQ)try{if((await stat(join(t,e))).isFile())return {path:e}}catch{}return null}s(IG,"detectRootRule");async function SG(t){try{if((await stat(join(t,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(SG,"detectRootSkill");Co();var fQ={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},gQ=[".claude-plugin",".codex-plugin",".cursor-plugin"],hQ=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function CG(t){let e=join(t,"skills"),r=await hi(e);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!hQ.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(CG,"detectSkillPack");async function kG(t){let e=[];for(let[r,n]of Object.entries(fQ)){let o=join(t,r),i=await hi(o),a=new Set;for(let l of i){if(!l.isFile||In(l.name))continue;let c=yG(l.name);c&&a.add(c);}for(let l of a)e.push({path:r,suggestedAs:n,fileShape:l});}return e}s(kG,"detectFlatCollections");async function EG(t){let e=[];for(let r of gQ)await fp(join(t,r))&&e.push({path:r});return e}s(EG,"detectToolNativeManifests");async function xI(t,e){let r=await RG(t);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await CG(t),o=n?null:await SG(t),i=await kG(t),a=n||o||i.length>0?null:await IG(t),l=await EG(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(xI,"detectFlatLayout");function TI(t){return t.canonical!==null||t.skillPack!==null||t.rootSkill!==null||t.rootRule!==null||t.flatCollections.length>0}s(TI,"hasContent");async function LG(t,e){let r=await hi(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 xI(i,a);TI(l)&&n.push({path:a,layout:l});}return n}s(LG,"collectSubPackCandidates");async function yQ(t,e){if(TI(e))return [];let r=await hG(t,xI,TI);if(r&&r.length>0)return r;let n=await LG(t,"");if(n.length>=2)return n;let o=await hi(t);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await LG(join(t,i.name),i.name);if(a.length>=2)return a}return []}s(yQ,"detectSubPacks");async function AG(t){let e=await xI(t,"");if(e.canonical)return {...e,subPacks:[]};let r=await yQ(t,e);return {...e,subPacks:r}}s(AG,"detectLayout");w();j();async function bG(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=Fr(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(bG,"inferMdcTarget");zd();Xd();function kQ(t){let e=t.indexOf("#");return e<0?{path:t,anchor:""}:{path:t.slice(0,e),anchor:t.slice(e)}}s(kQ,"splitAnchor");function EQ(t){return t.split(sep).join("/")}s(EQ,"toForwardSlash");async function LQ(t){try{return await stat(t),!0}catch{return false}}s(LQ,"pathExists");async function DG(t){let{link:e,fromFile:r,contentRoot:n,includedPaths:o}=t,{path:i,anchor:a}=kQ(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=EQ(p);return await LQ(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(DG,"resolveLink");var OQ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,AQ=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,wQ=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function bQ(t){let e=[];for(let r of t.matchAll(OQ)){let n=r.index??0;e.push([n,n+r[0].length]);}return e}s(bQ,"getFencedCodeRanges");function NG(t,e){for(let[r,n]of e)if(t>=r&&t<n)return true;return false}s(NG,"isInRanges");function FG(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(FG,"normalizeDestination");function Nf(t){let e=bQ(t),r=[];for(let n of t.matchAll(AQ)){let o=n.index??0;if(NG(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:FG(a),destinationOffset:c,destinationLength:a.length});}for(let n of t.matchAll(wQ)){let o=n.index??0;if(NG(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:FG(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(Nf,"scanMarkdownLinks");function vG(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(vG,"applyRangeRewrites");function PQ(t){return !(t.length===0||t.startsWith("#")||t.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}s(PQ,"isCandidateRelativePath");function TQ(t){let e=t.replaceAll("\\","/");return e==="{baseDir}"?".":e.startsWith("{baseDir}/")?e.slice(10):e}s(TQ,"stripPath");function xQ(t){let e=t.destination;return PQ(e)?{raw:e,path:TQ(e),kind:t.kind,...t.label!==void 0?{label:t.label}:{}}:null}s(xQ,"toScannedLink");function MG(t){let e=[];for(let r of Nf(t)){let n=xQ(r);n!==null&&e.push(n);}return e}s(MG,"scanRelativeLinks");function kc(t,e){let r=t.replaceAll("\\","/"),n=e.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(kc,"toForwardSlashRelative");function $G(t,e,r,n,o){let i=new Set;for(let a of e){i.add(kc(t,a.source));for(let l of a.supportingFiles)i.add(kc(t,l.absolutePath));}for(let a of r)i.add(kc(t,a.source));for(let a of n)i.add(kc(t,a.source));for(let a of o)i.add(kc(t,a.source));return i}s($G,"buildIncludedPaths");function NQ(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(NQ,"listScannables");async function GG(t,e,r,n,o,i){let a=NQ(e,r,n,o),l=[];for(let c of a){let m=MG(c.body);if(m.length===0)continue;let p=kc(t,c.sourcePath),u=[];for(let f of m){let g=await DG({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(GG,"detectBrokenLinks");Xd();async function jG(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 Vd(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 R=o.get(g.name)??[];R.push({path:g.source,precedence:p.precedence}),o.set(g.name,R);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(jG,"mergeCommands");async function UG(t,e,r={}){let[n,o,i,a]=await Promise.all([Bv(`${t}/skills`,r),Yd(`${t}/agents`,{parseOpts:r}),Jd(`${t}/rules`,{parseOpts:r}),jG(t,e.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=$G(t,n,l,a.commands,c),p=await GG(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(UG,"aggregateAnthropicSkillPack");var BG={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};el();function MQ(t){return {rules:[...t.rules],commands:[...t.commands],agents:[...t.agents],skills:[...t.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(MQ,"aggregateToCanonical");function Ff(){return {}}s(Ff,"emptyPrep");async function $Q(t,e){let r=[];for(let n of e)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await bG(join(t,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s($Q,"enrichMdcTargets");function WG(t){return t.canonical?"canonical-agentsmesh":t.skillPack||t.rootSkill?"anthropic-skill-pack":t.rootRule||t.toolNativeManifests.length>0?"tool-native":"unknown"}s(WG,"deriveSourceType");async function GQ(t,e){let r=await Bp(t,e);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(GQ,"rootSkillToCanonical");async function jQ(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(jQ,"rootRuleToCanonical");async function HG(t){let e=t.parseOpts??{};if(t.explicitAs)return {implicitPick:void 0,...await rG(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick,e)};if(t.explicitTarget)return bI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e);let r=await AG(t.contentRoot),n=await $Q(t.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await UG(t.contentRoot,BG,e),l=MQ(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:gn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await GQ(t.contentRoot,e);return {prep:Ff(),implicitPick:void 0,narrowed:a,discoveredFeatures:gn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await jQ(t.contentRoot,o.rootRule.path);return {prep:Ff(),implicitPick:void 0,narrowed:a,discoveredFeatures:gn(a),layout:o}}return o.subPacks.length>0?{prep:Ff(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Ff(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await bI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e),layout:o}}s(HG,"resolveInstallDiscovery");function VG(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(VG,"featuresFromLayout");function UQ(t){return t.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(UQ,"subPackSlug");function zG(t,e,r){let n=VG(t.layout),o=n[0];return {name:`${e}-${UQ(t.path)}`,source:r,path:t.path,as:o,features:n}}s(zG,"targetFromSubPack");function JG(t,e,r){return {name:e,source:r,path:t.path,as:t.suggestedAs,target:t.inferredTarget,features:[t.suggestedAs]}}s(JG,"targetFromCollection");function YG(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 BQ(t);if(e.flatCollections.length===1){let l=e.flatCollections[0];return {targets:[JG(l,r,n)],isMarketplace:false}}return e.flatCollections.length>1?KQ(t):{targets:[],isMarketplace:false}}s(YG,"selectInstallCandidates");function BQ(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.all)return {targets:e.subPacks.map(a=>zG(a,r,n)),isMarketplace:true};if(t.force||!t.tty){let a=e.subPacks.map(l=>({path:l.path,features:VG(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
333
|
+
`),false}}s(DI,"seedAgentsmeshMcpEntry");function $$(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s($$,"mapResults");async function G$(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=Ai(r,i),f=await Gf(o).importFrom(p.rootBase,{scope:i});return f.length>0&&await DI(p.rootBase),{exitCode:0,data:{scope:i,target:o,files:$$(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 DI(l.rootBase),{exitCode:0,data:{scope:i,target:o,files:$$(m,l.rootBase)}}}s(G$,"runImport");Zt();ho();function jf(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(jf,"computeDiff");function Uf(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s(Uf,"formatDiffSummary");Mr();async function U$(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 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}=jf(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(U$,"runDiff");Zt();ho();A();ce();xi();wt();var $Z=[{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 B$(t){let e=new Set(t.enabledFeatures),r=[];for(let n of $Z)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||Br(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(B$,"lintSilentFeatureDrops");wt();var GZ=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function jZ(t){let r=t.match(GZ)?.groups?.path;return typeof r=="string"?r:null}s(jZ,"extractScriptToken");function K$(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=jZ(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(K$,"lintHookScriptReferences");wt();function W$(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(W$,"lintRuleScopeInversion");var UZ=["node_modules",".git","dist","coverage",".agentsmesh"];async function BZ(t){return (await G(t)).filter(n=>{let o=relative(t,n);return !UZ.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(t,n))}s(BZ,"getProjectFiles");async function Bf(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 BZ(r);for(let k of l){let I=nt(k),C=Fe(k)?Gf(k):I;C?.capabilities&&g.push(...B$({target:k,capabilities:C.capabilities,canonical:e,enabledFeatures:t.features})),f&&g.push(...K$({target:k,canonical:e,hasScriptProjection:I?.postProcessHookOutputs!==void 0})),c&&g.push(...W$({target:k,canonical:e,preservesManualActivation:I?.preservesManualActivation===true})),c&&C?.lintRules&&g.push(...C.lintRules(e,r,h,{scope:i})),I?.generators.lint&&g.push(...I.generators.lint(e));let b={scope:i};m&&C?.lint?.commands&&g.push(...C.lint.commands(e,b)),p&&C?.lint?.mcp&&g.push(...C.lint.mcp(e,b)),u&&C?.lint?.permissions&&g.push(...C.lint.permissions(e,b)),f&&C?.lint?.hooks&&g.push(...C.lint.hooks(e,b));}let R=g.some(k=>k.level==="error");return {diagnostics:g,hasErrors:R}}s(Bf,"runLint");Mr();async function z$(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 Bf(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(z$,"runLintCmd");ot();function V$(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(V$,"renderLint");ot();function J$(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(J$,"renderCheck");ot();function Y$(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(Y$,"renderImport");ot();function X$(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(Uf({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(X$,"renderDiff");ot();function Z$(t){if(!t.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(Z$,"renderMerge");dp();gp();Zt();ho();dp();gp();ot();var HZ=300;function zZ(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(zZ,"normalizeWatchPath");function VZ(t,e){let r=zZ(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(VZ,"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 q$(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:I}=await yt(n,o),{canonical:C}=await Oe(k,I.configDir,{},I.canonicalDir),b=C.mcp?Object.keys(C.mcp.mcpServers).length:0,N=C.permissions?C.permissions.allow.length+C.permissions.deny.length:0,T=C.hooks?Object.values(C.hooks).reduce((v,q)=>v+(Array.isArray(q)?q.length:0),0):0,B=C.ignore.length,H=JZ(k.features,C.rules.length,C.commands.length,C.agents.length,C.skills.length,b,N,T,B),tt=c!==null&&c!==H;if(c=H,m)return;let it=await Sc(t,n,{printMatrix:false});if(Cc(it),!m){if(tt){let v=await up(t,n);fp(v,{verbose:t.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:tt});}},"run"),f=s(()=>{let k=u().catch(I=>{if(!m){let C=I instanceof Error?I.message:String(I);y.error(C);}}).finally(()=>{p===k&&(p=null);});p=k;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,HZ));},"schedule"),h=r.usePolling??process.platform==="win32",R=WZ.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return R.on("all",(k,I)=>{VZ(i.canonicalDir,I)||g();}),await new Promise((k,I)=>{R.once("ready",k),R.once("error",I);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await R.close(),p&&await p;},"stop")}}s(q$,"runWatch");Zt();Zp();async function Kf(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await Of(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await Rs(n),a=await rl(e,r),l=a.length>0?await _c(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let I of c){let C=i[I];C===void 0?f.push(I):C!==o.checksums[I]&&p.push(I);}for(let I of m)c.has(I)||u.push(I);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let I of g)l[I]!==o.extends[I]&&h.push(I);let R=Af(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:R}}s(Kf,"checkLockSync");Mr();async function tG(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 Kf({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(tG,"runCheck");Zt();A();Zp();var XZ=".lock",ZZ="<<<<<<<";async function NI(t){let e=join(t,XZ),r=await _(e);return r===null?false:r.includes(ZZ)}s(NI,"hasLockConflict");async function rG(t,e,r){if(!await NI(t))throw new Error("No conflict to resolve.");let o=await Rs(t),i=dirname(t),a=r?await rl(r,i):[],l=a.length>0?await _c(a):{},c=await bf(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await wf(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}s(rG,"resolveLockConflict");async function nG(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 NI(a)?(await rG(a,Oi(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(nG,"runMerge");Zt();If();function oG(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?hc.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(oG,"readInstallFlags");var tQ=".install.lock";async function Ec(t,e={}){return await mkdir(t,{recursive:true}),Ff(join(t,tQ),e)}s(Ec,"acquireInstallLock");Zt();A();Vc();var nQ=promisify(execFile);function Wf(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(Wf,"ensureNotFlag");async function FI(t){let{stdout:e}=await nQ("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(FI,"runGit");async function sG(){try{return await FI(["--version"]),!0}catch{return false}}s(sG,"isGitAvailable");async function oQ(t,e){Wf(t,"remote-url"),Wf(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await FI(["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(oQ,"gitLsRemoteResolve");async function Hf(t,e){Wf(e,"remote-url");let r=t===""?"HEAD":t;if(Wf(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await FI(["ls-remote",e,"HEAD"])).split(`
|
|
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 oQ(e,r)}s(Hf,"resolveRemoteRefForInstall");async function iG(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 Hf(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await el(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 el(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 el(i,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(iG,"fetchInstallSource");async function aG(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await iG(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(aG,"resolveInstallResolvedPath");function hp(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(hp,"parseGithubTreeUrl");function yp(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(yp,"parseGithubBlobUrl");function _p(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(_p,"parseGitlabTreeUrl");function Rp(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(Rp,"parseGitlabBlobUrl");var sQ=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Ip(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||sQ.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Ip,"parseGithubRepoUrl");function Sp(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(Sp,"parseGitlabRepoUrl");function Cp(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(Cp,"parseGitSshGithub");function kp(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(kp,"parseGitSshGitlab");A();var lQ=/^[A-Za-z]:[\\/]/,cQ=/^[A-Za-z]:\//;function lG(...t){return t.some(e=>e.includes("\\")||lQ.test(e))?win32:posix}s(lG,"pathApiFor");function Lp(t){return t.replace(/\\/g,"/")}s(Lp,"toPosixPath");function Ep(t){return Lp(t).replace(/^\/+|\/+$/g,"")}s(Ep,"normalizeInstallPathField");function zf(t){let e=Lp(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||cQ.test(e)?e:`./${e}`}s(zf,"normalizeLocalSourceForYaml");function _i(t){return {...t,source:t.source_kind==="local"?zf(t.source):t.source,...t.path!==void 0?{path:Ep(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>Ep(e))}:{}}}s(_i,"normalizePersistedInstallPaths");function cG(t,e,r){let n=lG(t,e),o=n.normalize(t),i=n.normalize(e),a=Ep(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=Ep(u),g=Lp(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:zf(g)}}let m=Lp(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:zf(m)}}s(cG,"localParsedFromAbsPath");async function vI(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=hp(n)??yp(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=Ip(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=_p(n)??Rp(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=Sp(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=Cp(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=kp(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 cG(m,e,o)}s(vI,"parseInstallSource");function Op(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=hp(e)??yp(e);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Ip(e);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=_p(e)??Rp(e);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Sp(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=Cp(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=kp(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(Op,"parseSourceUrl");jR();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 Vf(t,e={}){let{sliceRoot:r,implicitPick:n}=await ff(t),{canonical:o,cleanup:i}=await gf(r,{...e,enableTargetEntityMappers:true});return {canonical:o,features:_n(o),implicitPick:n,cleanup:i}}s(Vf,"discoverFromContentRoot");function mG(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(mG,"validateSkill");function pG(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(pG,"validateRule");function uG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(uG,"validateCommand");function dG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(dG,"validateAgent");function ie(t){return basename(t.source).replace(/\.md$/i,"")}s(ie,"ruleSlug");function uQ(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(uQ,"featuresFromImplicitPick");function Oc(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??uQ(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(Oc,"narrowDiscoveredForInstallScope");VR();async function fG(t,e,r,n,o={}){let i=await _f(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Vf(i.discoveryRoot,o),c=Oc(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(fG,"resolveManualDiscoveredForInstall");So();bR();A();Tt();var dQ=(()=>{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 fQ(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(fQ,"norm");function Jf(t){let e=fQ(t);if(e){for(let{prefix:r,target:n}of dQ)if(e===r||e.startsWith(`${r}/`))return n}}s(Jf,"targetHintFromNativePath");function MI(t,e){return Jf(t)===e}s(MI,"pathSupportsNativePick");function gG(t,e){if(!t||!e)return;let r=Jf(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 hG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(hG,"extendPickHasArrays");A();A();Xt();async function _G(t,e){let r=join(t,...Xe.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(_G,"inferGeminiCommandNamesFromFiles");Xt();fr();A();async function $a(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($a,"skillNamesFromNativeSkillDir");A();Dr();async function RG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(li)){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 $a(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(RG,"inferCopilotPickFromPath");async function qe(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(qe,"mdNames");async function SG(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 _G(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 $a(o);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return RG(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(te)){let i=await $a(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 $a(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 $a(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(SG,"inferImplicitPickFromNativePath");function CG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(CG,"isImplicitPickEmpty");PR();function Ap(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(Ap,"normalizePath");function EQ(t,e){let r=Ap(t),n=Ap(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(EQ,"overlapsPath");function Yf(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(Yf,"addUnique");async function LQ(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(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(LQ,"makeStageRoot");function OQ(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Yf(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Ap(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:Yf(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Yf(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Ap(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:Yf(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(OQ,"buildPickFromResults");function wQ(t,e,r,n){let o=join(e,...Ap(t).split("/")),i=r.filter(a=>EQ(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:OQ(i,e)}}s(wQ,"scopeImportedResults");async function GI(t,e){let{stageRoot:r,cleanup:n}=await LQ(t);try{let o=await ip(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(GI,"stageImportedNativeRepo");async function jI(t,e,r){let n=await GI(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...wQ(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(jI,"stageNativeInstallScope");async function OG(t,e,r,n){let o=n.explicitTarget?.trim();o&&nr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");gG(o,i);let a=join(t,".agentsmesh"),l=await j(a),c=i?Jf(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await nf(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 jI(t,i,u);return {discoveryRoot:b.stageRoot,implicitPick:b.pick,scopedFeatures:b.features,yamlTarget:u,importHappened:true,cleanup:b.cleanup}}let C=await GI(t,u);return {discoveryRoot:i?join(C.stageRoot,i):C.stageRoot,yamlTarget:u,importHappened:true,cleanup:C.cleanup}}let g;l?i?u&&MI(i,u)?g=t:g=e:g=t:g=e;let h,R,k;if(f&&u){let C=await jI(t,i,u);g=C.stageRoot,h=C.pick,R=C.features,k=C.cleanup;}else if(g===t&&i&&u&&MI(i,u)&&(h=await SG(t,i,u),CG(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 I;return o?I=o:u&&(h&&hG(h)||(R?.length??0)>0)&&(I=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:R,yamlTarget:I,importHappened:k!==void 0,cleanup:k}}s(OG,"prepareInstallDiscovery");async function UI(t,e,r,n,o={}){let i=await OG(t,e,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Vf(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Oc(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=_n(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(UI,"resolveDiscoveredForInstall");var PQ=[".claude-plugin","marketplace.json"];async function TQ(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(TQ,"dirExists");function xQ(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(xQ,"normalizeSource");async function AG(t,e,r){let n=join(t,...PQ),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=xQ(c.source);if(!m)continue;let p=join(t,m);if(!await TQ(p))continue;let u=await e(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(AG,"detectMarketplaceSubPacks");async function bp(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(bp,"dirExists");async function Ri(t){try{return (await readdir(t,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(Ri,"listDirEntries");function bG(t){return t.endsWith(".instructions.md")?"copilot-instructions":t.endsWith(".md")?"md":t.endsWith(".mdc")?"mdc":t.endsWith(".toml")?"toml":null}s(bG,"classifyFileShape");var FQ=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],vQ=[".cursorrules",".windsurfrules"];async function TG(t){let e=join(t,".agentsmesh");if(!await bp(e))return null;let r=await Ri(e),n=new Set(r.map(o=>o.name));for(let o of FQ)if(n.has(o))return {path:".agentsmesh"};return null}s(TG,"detectCanonical");async function xG(t){for(let e of vQ)try{if((await stat(join(t,e))).isFile())return {path:e}}catch{}return null}s(xG,"detectRootRule");async function DG(t){try{if((await stat(join(t,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(DG,"detectRootSkill");Eo();var $Q={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},GQ=[".claude-plugin",".codex-plugin",".cursor-plugin"],jQ=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function NG(t){let e=join(t,"skills"),r=await Ri(e);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!jQ.test(n.name))&&await bp(join(e,n.name)))try{if((await stat(join(e,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(NG,"detectSkillPack");async function FG(t){let e=[];for(let[r,n]of Object.entries($Q)){let o=join(t,r),i=await Ri(o),a=new Set;for(let l of i){if(!l.isFile||Cn(l.name))continue;let c=bG(l.name);c&&a.add(c);}for(let l of a)e.push({path:r,suggestedAs:n,fileShape:l});}return e}s(FG,"detectFlatCollections");async function vG(t){let e=[];for(let r of GQ)await bp(join(t,r))&&e.push({path:r});return e}s(vG,"detectToolNativeManifests");async function WI(t,e){let r=await TG(t);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await NG(t),o=n?null:await DG(t),i=await FG(t),a=n||o||i.length>0?null:await xG(t),l=await vG(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(WI,"detectFlatLayout");function KI(t){return t.canonical!==null||t.skillPack!==null||t.rootSkill!==null||t.rootRule!==null||t.flatCollections.length>0}s(KI,"hasContent");async function MG(t,e){let r=await Ri(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 WI(i,a);KI(l)&&n.push({path:a,layout:l});}return n}s(MG,"collectSubPackCandidates");async function UQ(t,e){if(KI(e))return [];let r=await AG(t,WI,KI);if(r&&r.length>0)return r;let n=await MG(t,"");if(n.length>=2)return n;let o=await Ri(t);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await MG(join(t,i.name),i.name);if(a.length>=2)return a}return []}s(UQ,"detectSubPacks");async function GG(t){let e=await WI(t,"");if(e.canonical)return {...e,subPacks:[]};let r=await UQ(t,e);return {...e,subPacks:r}}s(GG,"detectLayout");A();U();async function UG(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(UG,"inferMdcTarget");cf();df();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 JQ(t){return t.split(sep).join("/")}s(JQ,"toForwardSlash");async function YQ(t){try{return await stat(t),!0}catch{return false}}s(YQ,"pathExists");async function HG(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=JQ(p);return await YQ(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(HG,"resolveLink");var XQ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,ZQ=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,QQ=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function qQ(t){let e=[];for(let r of t.matchAll(XQ)){let n=r.index??0;e.push([n,n+r[0].length]);}return e}s(qQ,"getFencedCodeRanges");function zG(t,e){for(let[r,n]of e)if(t>=r&&t<n)return true;return false}s(zG,"isInRanges");function VG(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(VG,"normalizeDestination");function Xf(t){let e=qQ(t),r=[];for(let n of t.matchAll(ZQ)){let o=n.index??0;if(zG(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:VG(a),destinationOffset:c,destinationLength:a.length});}for(let n of t.matchAll(QQ)){let o=n.index??0;if(zG(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:VG(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(Xf,"scanMarkdownLinks");function JG(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(JG,"applyRangeRewrites");function tq(t){return !(t.length===0||t.startsWith("#")||t.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}s(tq,"isCandidateRelativePath");function eq(t){let e=t.replaceAll("\\","/");return e==="{baseDir}"?".":e.startsWith("{baseDir}/")?e.slice(10):e}s(eq,"stripPath");function rq(t){let e=t.destination;return tq(e)?{raw:e,path:eq(e),kind:t.kind,...t.label!==void 0?{label:t.label}:{}}:null}s(rq,"toScannedLink");function YG(t){let e=[];for(let r of Xf(t)){let n=rq(r);n!==null&&e.push(n);}return e}s(YG,"scanRelativeLinks");function wc(t,e){let r=t.replaceAll("\\","/"),n=e.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(wc,"toForwardSlashRelative");function XG(t,e,r,n,o){let i=new Set;for(let a of e){i.add(wc(t,a.source));for(let l of a.supportingFiles)i.add(wc(t,l.absolutePath));}for(let a of r)i.add(wc(t,a.source));for(let a of n)i.add(wc(t,a.source));for(let a of o)i.add(wc(t,a.source));return i}s(XG,"buildIncludedPaths");function oq(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(oq,"listScannables");async function ZG(t,e,r,n,o,i){let a=oq(e,r,n,o),l=[];for(let c of a){let m=YG(c.body);if(m.length===0)continue;let p=wc(t,c.sourcePath),u=[];for(let f of m){let g=await HG({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(ZG,"detectBrokenLinks");df();async function QG(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 mf(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 R=o.get(g.name)??[];R.push({path:g.source,precedence:p.precedence}),o.set(g.name,R);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(QG,"mergeCommands");async function qG(t,e,r={}){let[n,o,i,a]=await Promise.all([eM(`${t}/skills`,r),uf(`${t}/agents`,{parseOpts:r}),pf(`${t}/rules`,{parseOpts:r}),QG(t,e.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=XG(t,n,l,a.commands,c),p=await ZG(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(qG,"aggregateAnthropicSkillPack");var tj={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};ol();function aq(t){return {rules:[...t.rules],commands:[...t.commands],agents:[...t.agents],skills:[...t.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(aq,"aggregateToCanonical");function Zf(){return {}}s(Zf,"emptyPrep");async function lq(t,e){let r=[];for(let n of e)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await UG(join(t,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(lq,"enrichMdcTargets");function rj(t){return t.canonical?"canonical-agentsmesh":t.skillPack||t.rootSkill?"anthropic-skill-pack":t.rootRule||t.toolNativeManifests.length>0?"tool-native":"unknown"}s(rj,"deriveSourceType");async function cq(t,e){let r=await ou(t,e);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(cq,"rootSkillToCanonical");async function mq(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(mq,"rootRuleToCanonical");async function nj(t){let e=t.parseOpts??{};if(t.explicitAs)return {implicitPick:void 0,...await fG(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick,e)};if(t.explicitTarget)return UI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e);let r=await GG(t.contentRoot),n=await lq(t.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await qG(t.contentRoot,tj,e),l=aq(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 cq(t.contentRoot,e);return {prep:Zf(),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 mq(t.contentRoot,o.rootRule.path);return {prep:Zf(),implicitPick:void 0,narrowed:a,discoveredFeatures:_n(a),layout:o}}return o.subPacks.length>0?{prep:Zf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Zf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await UI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e),layout:o}}s(nj,"resolveInstallDiscovery");function sj(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(sj,"featuresFromLayout");function pq(t){return t.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(pq,"subPackSlug");function oj(t,e,r){let n=sj(t.layout),o=n[0];return {name:`${e}-${pq(t.path)}`,source:r,path:t.path,as:o,features:n}}s(oj,"targetFromSubPack");function ij(t,e,r){return {name:e,source:r,path:t.path,as:t.suggestedAs,target:t.inferredTarget,features:[t.suggestedAs]}}s(ij,"targetFromCollection");function aj(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 uq(t);if(e.flatCollections.length===1){let l=e.flatCollections[0];return {targets:[ij(l,r,n)],isMarketplace:false}}return e.flatCollections.length>1?dq(t):{targets:[],isMarketplace:false}}s(aj,"selectInstallCandidates");function uq(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.all)return {targets:e.subPacks.map(a=>oj(a,r,n)),isMarketplace:true};if(t.force||!t.tty){let a=e.subPacks.map(l=>({path:l.path,features:sj(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
334
336
|
`);throw new Error(`Marketplace source with ${e.subPacks.length} sub-packs. Pass --all to install all, or use --path <subpath>:
|
|
335
|
-
${a}`)}return {targets:e.subPacks.map(i=>
|
|
337
|
+
${a}`)}return {targets:e.subPacks.map(i=>oj(i,r,n)),isMarketplace:true}}s(uq,"selectMarketplace");function dq(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(`
|
|
336
338
|
`);throw new Error(`Ambiguous source with ${e.flatCollections.length} resource collections. Pass --as <kind> to select, or --path <subpath>:
|
|
337
|
-
${i}`)}return {targets:e.flatCollections.map(i=>
|
|
339
|
+
${i}`)}return {targets:e.flatCollections.map(i=>ij(i,r,n)),isMarketplace:false}}s(dq,"selectMultipleCollections");Mr();UR();function Ac(t){return t==="."||t===""?void 0:t}s(Ac,"trimDot");function gq(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}s(gq,"markdownPick");async function cj(t){if(!t.as)return {pathInRepo:Ac(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:Ac(dirname(e)),pick:gq(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:Ac(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 hf(o);return {pathInRepo:Ac(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Ac(e)}}}}return {pathInRepo:Ac(e)}}s(cj,"resolveManualInstallPersistence");ho();ot();ot();async function bc(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 Sc(e==="global"?{global:!0}:{},r,{printMatrix:!1});Cc(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(bc,"runPostOperationGenerate");async function yo(t){return process.stdin.isTTY?new Promise(e=>{let r=mj.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(yo,"confirm");function hq(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}s(hq,"hasArrayResources");function pj(t){return hq(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}s(pj,"hasInstallableResources");async function uj(t,e,r,n){let o=t.skills.map(l=>mG(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 yo(`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(uj,"resolveSkillPool");async function dj(t,e,r,n){let o=t.rules.map(l=>pG(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 yo(`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(dj,"resolveRulePool");async function fj(t,e,r,n){let o=t.commands.map(l=>uG(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 yo(`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(fj,"resolveCommandPool");async function gj(t,e,r,n){let o=t.agents.map(l=>dG(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 yo(`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 hj(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 yo(`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 yo(`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 yo(`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 yo(`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(hj,"resolveInstallConflicts");function yj(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(yj,"pickForSelectedResources");function yq(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}s(yq,"pathEndsWithName");function Qf(t,e,r){return r!==1||e.length!==1?false:yq(t,e[0])}s(Qf,"inferSingleNamePick");function _j(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||Qf(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Qf(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Qf(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Qf(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(_j,"buildInstallPick");function Rj(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(Rj,"deriveInstallFeatures");function _q(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}s(_q,"isEmptyInstallSelection");function Ij(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(_q(e)&&!a)throw new Error("No resources selected to install.")}s(Ij,"ensureInstallSelection");So();function Sj(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(Sj,"assertExtendNameAvailable");function Rq(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(Rq,"mergePick");function Cj(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=Rq(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(Cj,"mergeExtendList");A();async function kj(t,e,r){let n=await _(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),i=Cj(e.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await S(t,a.endsWith(`
|
|
338
340
|
`)?a:`${a}
|
|
339
|
-
`);}s(
|
|
340
|
-
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await
|
|
341
|
-
`);return `sha256:${
|
|
342
|
-
`),t.permissions!==null&&await
|
|
341
|
+
`);}s(kj,"writeAgentsmeshWithNewExtend");ot();async function Ej(t){let{configDir:e,config:r,entryArgs:n,dryRun:o}=t,i=kq(n);if(Sj(r.extends,i),o){y.info(`[dry-run] Would add extend:
|
|
342
|
+
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await kj(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(Ej,"writeInstallAsExtend");function kq(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?nr.parse(t.yamlTarget):void 0,as:t.as}}s(kq,"toNewExtendEntry");A();A();var Lq="pack.yaml";async function qf(t){let e=await G(t),r=[];for(let i of e.sort()){let a=relative(t,i).replace(/\\/g,"/");if(a===Lq)continue;let l=await Ef(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
343
|
+
`);return `sha256:${kf(n)}`}s(qf,"hashPackContent");A();var tr=".agentsmesh-install-manifest.json",wq=["pack.yaml",tr];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 Aq(t,e){return relative(t,e).replaceAll("\\","/")}s(Aq,"toForwardSlashRelative");async function tg(t){let e=await Es(t),r=[];for(let n of e){let o=Aq(t,n);if(wq.includes(o))continue;let i=await Lf(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(tg,"hashPackFiles");A();var bq=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,Pq=[{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 Lj(t){if(t.trim().length===0)return null;let e=bq.exec(t);if(e)return e[1]??null;for(let{id:r,pattern:n}of Pq)if(n.test(t))return r;return null}s(Lj,"detectSpdxLicense");var xq=["LICENSE","COPYING","NOTICE","COPYRIGHT"],Dq=["",".md",".txt",".rst"];async function Oj(t){for(let e of xq)for(let r of Dq){let n=await _(join(t,`${e}${r}`));if(n===null)continue;let o=Lj(n);if(o!==null)return o}return null}s(Oj,"detectLicenseInPackDir");async function vq(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(vq,"writeRules");async function Mq(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(Mq,"writeCommands");async function $q(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($q,"writeAgents");async function Gq(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(Gq,"writeSkills");async function jq(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(jq,"writePreservedRootFiles");async function Uq(t,e){t.mcp!==null&&await S(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
344
|
+
`),t.permissions!==null&&await S(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await S(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await S(join(e,"ignore"),`${t.ignore.join(`
|
|
343
345
|
`)}
|
|
344
|
-
`);}s(
|
|
345
|
-
`);}s(
|
|
346
|
-
`),t.permissions!==null&&await
|
|
346
|
+
`);}s(Uq,"writeSettings");function Bq(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(Bq,"validatePackName");async function Kq(t,e,r){let n=await tg(t),o=w$({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 S(join(t,tr),`${JSON.stringify(o,null,2)}
|
|
347
|
+
`);}s(Kq,"writeInstallManifest");async function wj(t,e,r,n,o={},i=[]){Bq(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 vq(r,a),await Mq(r,a),await $q(r,a),await Gq(r,a),await Uq(r,a),await jq(i,a);let u=await qf(a),f=await Oj(a);m=_i({...n,content_hash:u,license:f}),await S(join(a,"pack.yaml"),Ma(stringify(m),"pack")),await Kq(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(wj,"materializePack");yc();A();function XI(t,e){return [...new Set([...t,...e])]}s(XI,"union");function Hq(t,e){if(t.path===void 0&&t.paths===void 0||e===void 0)return {path:void 0,paths:void 0};let n=XI(t.paths??(t.path?[t.path]:[]),[e]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(Hq,"mergePathScope");function zq(t,e,r){let n={...t};for(let i of e)r&&r[i]!==void 0?n[i]=XI(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(zq,"mergePick");async function Vq(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(Vq,"mergeRules");async function Jq(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(Jq,"mergeCommands");async function Yq(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(Yq,"mergeAgents");async function Xq(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(Xq,"mergeSkills");async function Zq(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(Zq,"mergePreservedRootFiles");async function Qq(t,e){t.mcp!==null&&await S(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
348
|
+
`),t.permissions!==null&&await S(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await S(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await S(join(e,"ignore"),`${t.ignore.join(`
|
|
347
349
|
`)}
|
|
348
|
-
`);}s(wq,"mergeSettings");async function hj(t,e,r,n,o,i,a=[]){await kq(r,t),await Eq(r,t),await Lq(r,t),await Oq(r,t),await wq(r,t),await Aq(a,t);let l=$I(e.features,n),c=Cq(e.pick,n,o),m=Sq(e,i?.path),p=await $f(t),u=new Date().toISOString(),f=gi({...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"),Da(stringify(f),"pack")),f}s(hj,"mergeIntoPack");Cg();Co();async function yj(t){let e=[];try{let r=await readdir(t,{withFileTypes:!0});for(let n of r)n.isFile()&&Gp(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(yj,"collectPreservedRootFiles");Ro();ot();Ro();w();nf();function xq(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(xq,"sanitize");function Dq(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(Dq,"gitUrlLastSegments");function _j(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=Dq(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=xq(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(_j,"suggestExtendName");function Rj(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,i=new Set(e.extends.map(a=>a.name));return o||_j(r,{featureHint:n.length===1?n[0]:void 0},i)}s(Rj,"selectInstallEntryName");function Ij(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(Ij,"canonicalRemoteIdentity");function Nq(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?Ij(t.gitRemoteUrl):null}s(Nq,"parsedSourceIdentity");function Sj(t,e){let r=Nq(e);if(r===null)return null;for(let n of t){let o=Ij(n.source);if(o!==null&&o===r)return n.name}return null}s(Sj,"findExistingInstallName");function GI(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(GI,"sameFeatureSet");function Cj(t){let{manifest:e,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=t,a=Sj(e,r);if(a===null)return null;let l=e.find(c=>c.name===a);return l.target!==o||l.as!==i||!GI(l.features,n)?null:l.name}s(Cj,"pickReuseEntryName");var Mq=s(t=>!t.includes("/")&&!t.includes("\\")&&!t.includes("\0")&&t!=="."&&t!=="..","isSafeInstallName"),Ej=z.object({name:z.string().min(1).refine(Mq,{message:'install name must not contain path separators, NUL, or "."/".." segments'}),source:z.string().min(1),version:z.string().optional(),source_kind:z.enum(["github","gitlab","git","local"]),features:z.array(Xa).min(1),pick:Mc.optional(),target:Qe.optional(),path:z.string().optional(),paths:z.array(z.string().min(1)).min(1).optional(),as:dc.optional()}),$q=z.object({version:z.literal(1),installs:z.array(Ej).default([])});function Gq(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&GI(t.features,e.features)}s(Gq,"sameInstallIdentity");function jI(t){return join(t,"installs.yaml")}s(jI,"manifestPath");async function ho(t){let e=await _(jI(t));if(e===null)return [];try{return $q.parse(parse(e)).installs.map(r=>gi(r))}catch{return []}}s(ho,"readInstallManifest");async function Lj(t,e){let r=gi(e),o=(await ho(t)).filter(i=>i.name!==r.name&&!Gq(i,r));o.push(r),await I(jI(t),Da(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(Lj,"upsertInstallManifestEntry");async function Oj(t,e){let r=await ho(t),n=r.filter(o=>o.name!==e);return n.length===r.length?false:(await I(jI(t),Da(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(Oj,"removeInstallManifestEntry");function Aj(t){return gi(Ej.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}))}s(Aj,"buildInstallManifestEntry");w();function Uq(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(Uq,"pathScope");function Bq(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(ne(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>i.has(a.name))}}s(Bq,"applySelection");async function wj(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:R}=t,C=join(e,"packs"),S=Bq(n,o),k=R?await yj(R):[],P=new Date().toISOString(),N=p!==void 0?Qe.parse(p):void 0,F=await iM(C,i,{target:N,as:f,features:c}),W=r,z=c,Q=m,at=u,At;if(F){let wt=F.packDir,oe=F.meta;if(g&&F.name!==r){let Dt=join(C,r);if(await $(Dt))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(F.packDir,Dt),wt=Dt,oe={...F.meta,name:r};}let Dr=await hj(wt,oe,S,c,m,{source:i,...a!==void 0?{version:a}:{},...N!==void 0?{target:N}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},k);W=Dr.name,z=Dr.features,Q=Dr.pick,at=Dr.path,At=Dr.paths,y.success(`Updated pack "${Dr.name}" in .agentsmesh/packs/.`);}else {if(await fi(join(C,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await gj(C,r,S,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:P,updated_at:P,features:c,...m!==void 0&&{pick:m},...N!==void 0&&{target:N},...Uq(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},k),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await Lj(e,Aj({name:W,source:i,version:a,sourceKind:l,features:z,pick:Q,target:N,path:at,paths:At,as:f})),l!=="local"&&await nC(i);}s(wj,"installAsPack");function bj(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Cc(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:gn(n)}}s(bj,"applyReplayInstallScope");function Pj(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(Pj,"buildInstalledList");function Tj(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=ne(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(Tj,"buildSkippedList");async function xj(t){let{scope:e,force:r,dryRun:n,tty:o,useExtends:i,nameOverride:a,explicitAs:l}=t,{config:c,context:m,parsed:p,sourceForYaml:u,version:f,pathInRepo:g,contentRoot:h,persisted:R}=t,{replay:C,prep:S,implicitPick:k,narrowed:P,discoveredFeatures:N,sourceType:F}=t,{narrowed:W,discoveredFeatures:z}=bj(P,N,C);if(!qG(W))throw new Error(k||S.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 Q=await tj(W,r,n,o),at=await ej(W,r,n,o),At=await rj(W,r,n,o),wt=await nj(W,r,n,o),oe={skills:Q.length,rules:at.length,commands:At.length,agents:wt.length},{canonical:Dr}=await ke(c,m.configDir,{},m.canonicalDir),Dt=!r&&!n&&o?await oj(Dr,{skills:Q,rules:at,commands:At,agents:wt}):{skillNames:Q.map(Ss=>Ss.name),ruleSlugs:at.map(Ss=>ne(Ss)),commandNames:At.map(Ss=>Ss.name),agentNames:wt.map(Ss=>Ss.name)};lj({selected:Dt,discoveredFeatures:z,preConflict:oe});let Ze=C?.features??aj(z,Dt);if(Ze.length===0)throw new Error("No features left to install after selection.");let ja=sj(C?.pick,Dt)??R.pick??ij({pathInRepo:R.pathInRepo??g,implicitPick:k,preConflictCounts:oe,selected:Dt}),Ua=await ho(m.canonicalDir),Dc=Cj({manifest:Ua,parsed:p,entryFeatures:Ze,yamlTarget:S.yamlTarget,explicitAs:l}),Nc=Rj({config:c,parsed:p,entryFeatures:Ze,nameOverride:a||Dc||""}),kp=Pj(Dt,Nc),Ba=Tj(Q,at,At,wt,Dt);if(i){if(await uj({configDir:m.configDir,config:c,entryArgs:{name:Nc,source:u,version:f,features:Ze,path:R.pathInRepo,pick:ja,yamlTarget:S.yamlTarget,as:l},dryRun:n}),n)return {installed:kp,skipped:Ba}}else {if(n)return y.info(`[dry-run] Would install pack "${Nc}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:kp,skipped:Ba};await wj({canonicalDir:m.canonicalDir,packName:Nc,narrowed:W,selected:Dt,sourceForYaml:u,version:f,sourceKind:p.kind,entryFeatures:Ze,pick:ja,yamlTarget:S.yamlTarget,pathInRepo:R.pathInRepo,manualAs:l,renameExistingPack:a===""&&Dc===null,sourceType:F,contentRoot:h});}return await vf("install",e,m.rootBase),{installed:kp,skipped:Ba}}s(xj,"executeRunInstallPoolsAndWrite");function Uf(t,e){let r=e?.input??process.stdin,n=e?.output??process.stdout;return new Promise(o=>{let i=QG.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(Uf,"readLine");function Nj(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(`
|
|
350
|
+
`);}s(Qq,"mergeSettings");async function Aj(t,e,r,n,o,i,a=[]){await Vq(r,t),await Jq(r,t),await Yq(r,t),await Xq(r,t),await Qq(r,t),await Zq(a,t);let l=XI(e.features,n),c=zq(e.pick,n,o),m=Hq(e,i?.path),p=await qf(t),u=new Date().toISOString(),f=_i({...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"),Ma(stringify(f),"pack")),f}s(Aj,"mergeIntoPack");Bg();Eo();async function bj(t){let e=[];try{let r=await readdir(t,{withFileTypes:!0});for(let n of r)n.isFile()&&eu(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(bj,"collectPreservedRootFiles");So();ot();So();A();If();function r3(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(r3,"sanitize");function n3(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(n3,"gitUrlLastSegments");function Pj(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=n3(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=r3(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(Pj,"suggestExtendName");function Tj(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,i=new Set(e.extends.map(a=>a.name));return o||Pj(r,{featureHint:n.length===1?n[0]:void 0},i)}s(Tj,"selectInstallEntryName");function xj(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(xj,"canonicalRemoteIdentity");function o3(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?xj(t.gitRemoteUrl):null}s(o3,"parsedSourceIdentity");function Dj(t,e){let r=o3(e);if(r===null)return null;for(let n of t){let o=xj(n.source);if(o!==null&&o===r)return n.name}return null}s(Dj,"findExistingInstallName");function ZI(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(ZI,"sameFeatureSet");function Nj(t){let{manifest:e,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=t,a=Dj(e,r);if(a===null)return null;let l=e.find(c=>c.name===a);return l.target!==o||l.as!==i||!ZI(l.features,n)?null:l.name}s(Nj,"pickReuseEntryName");var a3=s(t=>!t.includes("/")&&!t.includes("\\")&&!t.includes("\0")&&t!=="."&&t!=="..","isSafeInstallName"),vj=z$1.object({name:z$1.string().min(1).refine(a3,{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(Qa).min(1),pick:Kc.optional(),target:nr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:hc.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional()}),l3=z$1.object({version:z$1.literal(1),installs:z$1.array(vj).default([])});function c3(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&ZI(t.features,e.features)}s(c3,"sameInstallIdentity");function QI(t){return join(t,"installs.yaml")}s(QI,"manifestPath");async function De(t){let e=await _(QI(t));if(e===null)return [];try{return l3.parse(parse(e)).installs.map(r=>_i(r))}catch{return []}}s(De,"readInstallManifest");async function rg(t,e){let r=_i(e),o=(await De(t)).filter(i=>i.name!==r.name&&!c3(i,r));o.push(r),await S(QI(t),Ma(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(rg,"upsertInstallManifestEntry");async function Mj(t,e){let r=await De(t),n=r.filter(o=>o.name!==e);return n.length===r.length?false:(await S(QI(t),Ma(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(Mj,"removeInstallManifestEntry");function $j(t){return _i(vj.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($j,"buildInstallManifestEntry");A();function p3(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(p3,"pathScope");function u3(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(u3,"applySelection");async function Gj(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:R,forceFreshMaterialize:k,originalRef:I}=t,C=join(e,"packs"),b=u3(n,o),N=R?await bj(R):[],T=new Date().toISOString(),B=p!==void 0?nr.parse(p):void 0,H=k?null:await RM(C,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(C,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 Aj(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(!k&&await yi(join(C,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await wj(C,r,b,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:T,updated_at:T,features:c,...m!==void 0&&{pick:m},...B!==void 0&&{target:B},...p3(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},N),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await rg(e,$j({name:tt,source:i,version:a,sourceKind:l,features:it,pick:v,target:B,path:q,paths:vt,as:f,originalRef:I})),l!=="local"&&await hC(i);}s(Gj,"installAsPack");function jj(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Oc(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:_n(n)}}s(jj,"applyReplayInstallScope");function Uj(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(Uj,"buildInstalledList");function Bj(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(Bj,"buildSkippedList");function Kj(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(Kj,"stripUntrustedElevatedArtifacts");async function Wj(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:R,version:k,pathInRepo:I,contentRoot:C,persisted:b}=t,{replay:N,prep:T,implicitPick:B,narrowed:H,discoveredFeatures:tt,sourceType:it}=t,v=Kj(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.
|
|
351
|
+
These artifacts control your tool settings (shell hooks, granted permissions, MCP launch specs).
|
|
352
|
+
To accept them explicitly, re-run with: ${v.stripped.map(_o=>`--accept-${_o}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:q,discoveredFeatures:vt}=jj(v.canonical,tt,N);if(!pj(q))throw new Error(B||T.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 uj(q,r,n,o),bt=await dj(q,r,n,o),Ft=await fj(q,r,n,o),Qt=await gj(q,r,n,o),Ei={skills:ae.length,rules:bt.length,commands:Ft.length,agents:Qt.length},{canonical:Mp}=await Oe(f,g.configDir,{},g.canonicalDir),ks=!r&&!n&&o?await hj(Mp,{skills:ae,rules:bt,commands:Ft,agents:Qt}):{skillNames:ae.map(_o=>_o.name),ruleSlugs:bt.map(_o=>ie(_o)),commandNames:Ft.map(_o=>_o.name),agentNames:Qt.map(_o=>_o.name)};Ij({selected:ks,discoveredFeatures:vt,preConflict:Ei});let Ha=N?.features??Rj(vt,ks);if(Ha.length===0)throw new Error("No features left to install after selection.");let jc=yj(N?.pick,ks)??b.pick??_j({pathInRepo:b.pathInRepo??I,implicitPick:B,preConflictCounts:Ei,selected:ks}),TS=await De(g.canonicalDir),$p=Nj({manifest:TS,parsed:h,entryFeatures:Ha,yamlTarget:T.yamlTarget,explicitAs:c}),Gp=Tj({config:f,parsed:h,entryFeatures:Ha,nameOverride:l||$p||""}),Ig=Uj(ks,Gp),Sg=Bj(ae,bt,Ft,Qt,ks);if(i){if(await Ej({configDir:g.configDir,config:f,entryArgs:{name:Gp,source:R,version:k,features:Ha,path:b.pathInRepo,pick:jc,yamlTarget:T.yamlTarget,as:c},dryRun:n}),n)return {installed:Ig,skipped:Sg}}else {if(n)return y.info(`[dry-run] Would install pack "${Gp}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:Ig,skipped:Sg};await Gj({canonicalDir:g.canonicalDir,packName:Gp,narrowed:q,selected:ks,sourceForYaml:R,version:k,sourceKind:h.kind,entryFeatures:Ha,pick:jc,yamlTarget:T.yamlTarget,pathInRepo:b.pathInRepo,manualAs:c,renameExistingPack:l===""&&$p===null,sourceType:it,contentRoot:C,forceFreshMaterialize:a,originalRef:h.rawRef!==""?h.rawRef:void 0});}return await bc("install",e,g.rootBase),{installed:Ig,skipped:Sg}}s(Wj,"executeRunInstallPoolsAndWrite");function xc(t,e){let r=e?.input??process.stdin,n=e?.output??process.stdout;return new Promise(o=>{let i=mj.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(xc,"readLine");function zj(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(`
|
|
349
353
|
`)}
|
|
350
|
-
`);}s(
|
|
354
|
+
`);}s(zj,"writeBanner");async function Vj(t,e,r){let n=[];for(let o of t){if(o.resolved.length===0)continue;if(e.bypass){zj(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}zj(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(Vj,"runBrokenLinkPrompt");var tS=["skills","agents","commands","rules"],eS={skills:"skill",agents:"agent",commands:"command",rules:"rule"},Xj={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function ja(t){return {skills:[],agents:[],commands:[],rules:[],aborted:t}}s(ja,"emptySelection");function Jj(t){return {skills:[...t.skills],agents:[...t.agents],commands:[...t.commands],rules:[...t.rules],aborted:false}}s(Jj,"selectAll");function Yj(t,e,r){let n=[`Found in ${e}:`];for(let o of tS){let i=r[o];if(i.length===0)continue;let a=i.length===1?eS[o]:Xj[o];n.push(` - ${i.length} ${a}`);}n.push(""),t.write(`${n.join(`
|
|
351
355
|
`)}
|
|
352
|
-
`);}s(
|
|
356
|
+
`);}s(Yj,"writeBanner");async function d3(t,e,r){if(r.length===0)return {selected:[],aborted:false};let n=Xj[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=eS[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(d3,"walkType");function f3(t){let e=null;for(let r of tS)for(let n of t[r]){if(e!==null)return null;e={kind:r,id:n};}return e}s(f3,"findSingleEntity");async function g3(t,e){let r=eS[e.kind],n=(await t.ask(`Install ${r} "${e.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...ja(false),[e.kind]:[e.id]}:ja(!(n===""||n==="n"))}s(g3,"runSingleEntityPrompt");async function Zj(t,e,r){if(e.bypass)return Jj(t);let n=t.skills.length+t.agents.length+t.commands.length+t.rules.length;if(n===0)return ja(false);if(n===1){let a=f3(t);if(a!==null)return Yj(r,e.packName,t),g3(r,a)}Yj(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 Jj(t);if(o==="n")return ja(false);if(o!=="s")return ja(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of tS){let{selected:l,aborted:c}=await d3(r,a,t[a]);if(c)return ja(true);i[a]=l;}return {...i,aborted:false}}s(Zj,"runBulkPrompt");ot();function R3(t,e,r){let n=[];for(let o of Xf(t))o.destination===e&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(R3,"buildLinkRewrites");function qj(t,e,r){t.warn(`Broken link in ${e.entityKind} "${e.entityName}": ${r.link.path} (${r.classification})`);}s(qj,"warnLink");function I3(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(I3,"allocateSupportingFileNames");function Qj(t,e,r){return t.find(n=>n.entityKind===e&&n.entityName===r)}s(Qj,"findEntity");async function S3(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(S3,"buildSupportingFiles");async function C3(t,e,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=I3(o),a=await S3(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(...R3(e.body,p.link.raw,f));}else qj(n,r,p);let m=JG(e.body,l);return {...e,body:m,supportingFiles:a}}s(C3,"applySkillDecision");async function tU(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)?Qj(r.brokenLinks,"skill",l.name):void 0;a.push(c?await C3(e,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=Qj(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)qj(o,c,m);}return {...r,skills:a}}s(tU,"applyBrokenLinkDecisions");var Dc=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(e){super(e),this.name="InstallAbortError";}};function E3(){return {ask:s(t=>xc(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(E3,"defaultAdapter");function L3(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(L3,"bulkCandidatesFrom");function eU(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(eU,"filterCanonical");function O3(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(O3,"discoveredFeaturesOf");async function w3(t){let e=t.adapter??E3(),r=await Vj(t.aggregate.brokenLinks,{bypass:t.bypass},e);if(r.aborted)throw new Dc("User aborted at broken-link prompt.");let n=[...r.decisions],o=await tU({contentRoot:t.contentRoot,aggregate:t.aggregate,decisions:n,logger:y}),i=L3(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:eU(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await Zj(i,{packName:t.displayName,bypass:t.bypass},e);if(l.aborted)throw new Dc("User aborted at bulk-select prompt.");let c=eU(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:O3(c)}}s(w3,"runSkillPackPromptFlow");function A3(t){return basename(t)||"install source"}s(A3,"displayNameForContentRoot");async function rU(t){if(!t.discovery.aggregate)return {aborted:false};try{let e=await w3({contentRoot:t.contentRoot,aggregate:t.discovery.aggregate,narrowed:t.discovery.narrowed,bypass:t.bypass,displayName:A3(t.contentRoot)});return {aborted:!1,narrowed:e.narrowed,discoveredFeatures:e.discoveredFeatures}}catch(e){if(e instanceof Dc)return y.warn(e.message),{aborted:true};throw e}}s(rU,"runPromptFlowWithAbort");async function nU(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:R,nameOverride:k,acceptHooks:I,acceptPermissions:C,acceptMcp:b,scope:N,sourceArg:T,replay:B}=t,H=process.stdin.isTTY,{prep:tt,implicitPick:it}=e,{narrowed:v,discoveredFeatures:q}=e;try{let vt=await rU({discovery:e,contentRoot:c,bypass:f||u||!H});if(vt.aborted)return {exitCode:130,data:{source:T,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(`
|
|
353
357
|
`);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
|
|
354
|
-
${
|
|
355
|
-
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
|
|
356
|
-
`),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(
|
|
358
|
+
${bt}
|
|
359
|
+
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 Wj({scope:N,force:f,dryRun:u,tty:H,useExtends:g,forceFreshMaterialize:h,nameOverride:k,explicitAs:R,acceptHooks:I,acceptPermissions:C,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?rj(e.layout):void 0});return {exitCode:0,data:{source:T,mode:"install",installed:ae.installed,skipped:ae.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{tt.cleanup&&await tt.cleanup();}}s(nU,"runSinglePackInstall");async function oU(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(oU,"runInstallMarketplace");async function sU(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 oU(e.targets,async f=>(await p({force:!0,"dry-run":i,path:f.path??"",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}:{}}}}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(sU,"routePickerResult");Zt();A();ot();async function P3(t){let e=await De(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(P3,"syncInstalledPacks");async function iU(t){return t.sync?(await P3({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}s(iU,"maybeRunInstallSync");async function aU(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 iU({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(aU,"handleSync");function lU(){return {brokenResources:[],subPackFailures:[]}}s(lU,"createInstallReport");function D3(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(D3,"assertPathStaysInRepo");async function cU(t){let e=await aU(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:R,scope:k,sourceArg:I}=t;if(!I)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let C=process.stdin.isTTY;if(!C&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:b,context:N}=await yt(r,k);await Ut(b,r);let T=await vI(I,N.configDir,m);if(T.kind!=="local"&&!await sG())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:B,sourceForYaml:H,version:tt}=await aG(T,I),it=T.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");D3(it,T.pathInRepo);let v=it?join(B,it):B;if(!await j(v))throw new Error(`Install path does not exist: ${v}`);let q=await cj({as:u,contentRoot:v,pathInRepo:it}),vt=lU(),ae={onParseError:s((Ft,Qt)=>{vt.brokenResources.push({path:Qt,kind:"frontmatter",reason:Ft.message});},"onParseError")},bt=await nj({resolvedPath:B,contentRoot:v,pathInRepo:it,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:ae});if(bt.layout&&!u&&!p&&!m){let Ft=aj({layout:bt.layout,sourceName:f||(T.org&&T.repo?`${T.org}-${T.repo}`:"source"),sourceForYaml:H,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:C}),Qt=await sU({pickerResult:Ft,installReport:vt,sourceArg:I,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:t.recurseInstall});if(Qt!==null)return Qt}return nU({discovery:bt,installReport:vt,persisted:q,parsed:T,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:R,scope:k,sourceArg:I,replay:n})}s(cU,"runInstallLocked");async function Ua(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:R,acceptMcp:k}=oG(t),I=t.global===true?"global":"project",C=e[0]?.trim(),b;if(n===void 0){let{context:N}=await yt(r,I);b=await Ec(N.canonicalDir);}try{return await cU({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:R,acceptMcp:k,scope:I,sourceArg:C,recurseInstall:Ua})}finally{await b?.();}}s(Ua,"runInstall");async function mU(t,e,r){return Ua(t,e,r)}s(mU,"runInstall");ot();function pU(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.`);}}}s(pU,"renderInstall");Zt();Mr();ot();function uU(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(uU,"detectDuplicates");function ng(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(ng,"buildPlan");function dU(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=uU(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=>ng(m.name,m,t,e));for(let m of t.extends)r.has(m.name)||c.push(ng(m.name,null,t,e));return {removals:c,skipped:[]}}let n=uU(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(ng(a,l,t,e));continue}if(e.has(a)){o.push(ng(a,null,t,e));continue}i.push(a);}return {removals:o,skipped:i}}s(dU,"planUninstall");A();A();yc();async function fU(t,e){let r=join(t,tr);if(await j(r))return null;let n=await yi(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 tg(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 S(r,`${JSON.stringify(i,null,2)}
|
|
360
|
+
`),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(fU,"migrateLegacyManifest");A();var M3=["pack.yaml",tr];function $3(t,e){return relative(t,e).replaceAll("\\","/")}s($3,"toForwardSlashRelative");async function og(t,e){let r=await Es(t),n=new Map;for(let i of r){let a=$3(t,i);M3.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 Lf(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(og,"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(`
|
|
357
361
|
`)}
|
|
358
|
-
`);}s(
|
|
362
|
+
`);}s(gU,"writeBanner");async function hU(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(hU,"runModifiedFilesPrompt");async function G3(t){let e=await _(join(t,tr));if(e===null)return null;try{return JSON.parse(e).files??{}}catch{return null}}s(G3,"readManifestFiles");async function j3(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 fU(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await G3(n);if(a===null)return {plan:t,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await og(n,a);if(r.keepPack||l.length===0)return {plan:t,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await hU({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(j3,"decideOne");async function _U(t,e,r){let n=[];for(let o of t){let i=await j3(o,e,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(_U,"gatherUninstallDecisions");A();A();async function RU(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 S(t,l.endsWith(`
|
|
359
363
|
`)?l:`${l}
|
|
360
|
-
`),true}s(
|
|
361
|
-
|
|
364
|
+
`),true}s(RU,"removeAgentsmeshExtendByName");async function IU(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 Mj(r,e.name),l=false;e.extendsEntry!==null&&(l=await RU(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(IU,"applyUninstall");function z3(t,e){return relative(t,e).replaceAll("\\","/")}s(z3,"toForwardSlashRel");function rS(t){return t.map(e=>({name:e,reason:"not found in installs.yaml"}))}s(rS,"buildSkipped");function SU(t,e,r){return t.plan.manifestEntry===null?null:z3(e,join(r,t.plan.name))}s(SU,"packPathFor");function CU(t,e,r){return t.map(n=>({name:n.plan.name,pack_path:SU(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(CU,"previewEntries");function kU(t,e,r,n){let o=t.action==="keep-modified"||!e.packDirRemoved;return {name:e.name,pack_path:SU(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(kU,"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 J3(){return {ask:s(t=>xc(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(J3,"defaultAdapter");async function sg(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(I){return f||y.error(I),{exitCode:1,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}}}if(s(g,"validationFailure"),!i&&u.length===0)return g("Missing install name. Usage: agentsmesh uninstall <name>[,<name>...] [--all]");if(!p&&!a&&!l)return g("Non-interactive terminal: use --force or --dry-run for agentsmesh uninstall.");let{config:h,context:R}=await yt(r,o);await Ut(h,r);let k=await Ec(R.canonicalDir);try{let I=await De(R.canonicalDir),C=join(R.canonicalDir,"packs"),b=dU({names:u,all:i,keepPack:c,keepGenerated:m,installs:I,extends:h.extends,packsDir:C}),{decisions:N,aborted:T}=await _U(b.removals,C,{adapter:n.promptAdapter??J3(),warn:s(it=>y.warn(it),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(T)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let 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:CU(N,R.rootBase,C),skipped:rS(b.skipped),failed:[],dryRun:!0}}}let B=join(R.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 IU({plan:v,canonicalDir:R.canonicalDir,configPath:B,config:h});H.push(kU(it,q,R.rootBase,C));}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 bc("uninstall",o,R.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:rS(b.skipped),failed:tt,dryRun:!1}}}finally{await k();}}s(sg,"runUninstall");async function LU(t,e,r){return sg(t,e,r)}s(LU,"runUninstall");ot();function OU(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(OU,"renderUninstall");Zt();Mr();ot();function wU(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(wU,"readRefreshFlags");function AU(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(AU,"parseRefreshNames");A();function Y3(t){return t.modifications.length>0?"needs-consent":t.oldSha===t.newSha?"unchanged":"clean-update"}s(Y3,"classifyRefreshPlan");async function PU(t,e,r){let n=join(e,t.name),o=t.version??null,i=join(n,tr),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 og(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:Y3({modifications:c,oldSha:o,newSha:m})}}s(PU,"planSinglePack");function TU(){return async t=>{if(t.source_kind==="local")return t.version??"local";let e=Op(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 Hf(r,e.remoteUrl)}}s(TU,"createDefaultResolveRef");async function xU(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 De(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 rg(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(xU,"applySinglePack");async function X3(t,e,r={}){let n=r.readLine??xc,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":Z3(a)}finally{o&&clearTimeout(o);}}s(X3,"promptWithTimeout");function Z3(t){let e=t.trim().toLowerCase();return e==="y"||e==="yes"?"y":e==="per-pack"?"per-pack":"n"}s(Z3,"normalize");async function nS(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(`
|
|
365
|
+
`);switch(await X3(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(nS,"runConsentPrompt");function Q3(t,e){let r=Op(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(Q3,"buildSourceForRefresh");function DU(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=Q3(e,r),a=await Ua(n,[i],t.projectRoot,o);if(a.exitCode!==0)throw new Error(`Install for refresh "${e.name}" failed with exit code ${a.exitCode}`)}}s(DU,"createRunInstallForRefresh");var NU=300*1e3;async function ig(t,e,r){let{dryRun:n,force:o,global:i,json:a}=wU(t),l=i?"global":"project",c=AU(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 Ec(u.canonicalDir);try{let g=await De(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 R=join(u.canonicalDir,"packs"),k=TU(),I=[];for(let v of h)I.push(await PU(v,R,{resolveRef:k}));let C=I.filter(v=>v.classification==="error"),b=I.filter(v=>v.classification==="unchanged"),N=I.filter(v=>v.classification==="clean-update"),T=I.filter(v=>v.classification==="needs-consent"),B=m();if(B.unchanged=b.map(v=>({name:v.name,ref:v.newSha})),B.failed=C.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 T)B.refreshed.push({name:v.name,oldRef:v.oldSha,newRef:v.newSha,oldSha:v.oldSha,newSha:v.newSha,changedFiles:{added:[],removed:[],modified:[]}});return {exitCode:C.length>0?1:0,data:B}}let H=new Set(N.map(v=>v.name));if(T.length>0)if(o)for(let v of T)H.add(v.name);else {let v=await nS(T.map(q=>({name:q.name,modifiedCount:q.modifications.length})),{timeoutMs:NU});if(v.proceed&&!v.perPack)for(let q of T)H.add(q.name);else if(v.proceed&&v.perPack)for(let q of T)(await nS([{name:q.name,modifiedCount:q.modifications.length}],{timeoutMs:NU})).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=DU({projectRoot:r,scope:l});for(let v of [...N,...T]){if(!H.has(v.name))continue;let q=await xU(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 bc("refresh",l,u.rootBase),{exitCode:B.failed.length>0?1:0,data:B}}finally{await f();}}s(ig,"runRefresh");async function FU(t,e,r){return ig(t,e,r)}s(FU,"runRefresh");ot();function vU(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(vU,"renderRefresh");Zt();A();yc();async function e8(t){let e=await _(join(t,tr));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(e8,"readPackManifestMeta");function r8(t,e){return relative(t,e).replaceAll("\\","/")}s(r8,"toForwardSlashRel");async function ag(t,e){let r=t.global===true?"global":"project",n=Ai(e,r),o=await De(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await e8(c),p=await yi(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:r8(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(ag,"runInstallsList");var n8=["list"];function MU(t){return {scope:t,subcommand:"list",installs:[]}}s(MU,"emptyData");async function $U(t,e,r){let n=t.global===true?"global":"project",o=e[0];return o===void 0||o===""?{exitCode:0,data:MU(n),showHelp:true}:o==="list"?ag(t,r):{exitCode:2,data:MU(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${n8.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s($U,"runInstalls");ot();var lg=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function o8(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(o8,"toRow");function s8(t){let e={name:0,source:0,features:0,license:0,installed:0};for(let n of lg)e[n.key]=n.label.length;for(let n of t)for(let o of lg)e[o.key]=Math.max(e[o.key],n[o.key].length);let r=lg.map(n=>n.label.padEnd(e[n.key])).join(" ");y.info(r);for(let n of t)y.info(lg.map(o=>n[o.key].padEnd(e[o.key])).join(" "));}s(s8,"renderTable");function GU(t){if(t.error&&y.error(t.error),t.showHelp){Up("installs");return}let{data:e}=t;if(e.installs.length===0){y.info("No installed packs.");return}s8(e.installs.map(o8));}s(GU,"renderInstalls");lI();A();var aS="agentsmesh.yaml";async function lS(t){let e=join(t,aS),r=await _(e);return r===null?{}:parse(r)??{}}s(lS,"readScopedConfigRaw");async function UU(t,e){let r=join(t,aS),n=await _(r)??`version: 1
|
|
366
|
+
`,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 S(r,stringify(o));}s(UU,"writePluginEntry");async function BU(t,e){let r=join(t,aS),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 S(r,stringify(o)),a}s(BU,"removePluginEntry");async function KU(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 i8(t,e.slice(1),r);case "list":return a8(r);case "remove":return l8(e.slice(1),r);case "info":return c8(e.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(KU,"runPlugin");async function i8(t,e,r){let n=e[0];if(!n)throw new Rn("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)??m8(n);return await UU(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(i8,"runPluginAdd");async function a8(t){let r=(await lS(t)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await Nf(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(a8,"runPluginList");async function l8(t,e){let r=t[0];if(!r)throw new Rn("Usage: agentsmesh plugin remove <id>");let n=await BU(e,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(l8,"runPluginRemove");async function c8(t,e){let r=t[0];if(!r)throw new Rn("Usage: agentsmesh plugin info <id>");let o=((await lS(e)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await Nf(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(c8,"runPluginInfo");function m8(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(m8,"derivePluginId");ot();function WU(t){if(t.error&&y.error(t.error),t.showHelp){g8();return}let{data:e}=t;switch(e.subcommand){case "add":p8(e.id,e.package,e.version);break;case "list":u8(e.plugins);break;case "remove":d8(e.id,e.found);break;case "info":f8(e,t.exitCode);break}}s(WU,"renderPlugin");function p8(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(p8,"renderAdd");function u8(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(u8,"renderList");function d8(t,e){e?y.success(`Plugin '${t}' removed from agentsmesh.yaml`):y.warn(`Plugin '${t}' was not found in agentsmesh.yaml`);}s(d8,"renderRemove");function f8(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(f8,"renderInfo");function g8(){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(g8,"printPluginHelp");A();Sn();function Ii(t){return t.toUpperCase().replace(/-/g,"_")}s(Ii,"toPrefix");function Ss(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}s(Ss,"toPascal");function cS(t){let e=Ii(t.id),r=Ss(t.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
362
367
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
363
368
|
import { generateRules } from './generator.js';
|
|
364
369
|
import { importFrom${r} } from './importer.js';
|
|
@@ -461,7 +466,7 @@ export const descriptor = {
|
|
|
461
466
|
buildImportPaths: build${r}ImportPaths,
|
|
462
467
|
detectionPaths: [${e}_DIR],
|
|
463
468
|
} satisfies TargetDescriptor;
|
|
464
|
-
`}s(
|
|
469
|
+
`}s(cS,"TEMPLATE_INDEX");function mS(t){return `import { describe, it, expect } from 'vitest';
|
|
465
470
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
466
471
|
import { generateRules } from '../../../../src/targets/${t.id}/generator.js';
|
|
467
472
|
|
|
@@ -490,7 +495,7 @@ describe('generateRules (${t.id})', () => {
|
|
|
490
495
|
expect(result).toHaveLength(0);
|
|
491
496
|
});
|
|
492
497
|
});
|
|
493
|
-
`}s(
|
|
498
|
+
`}s(mS,"TEMPLATE_GENERATOR_TEST");function pS(t){let e=Ss(t.id);return `import { describe, it, expect } from 'vitest';
|
|
494
499
|
import { importFrom${e} } from '../../../../src/targets/${t.id}/importer.js';
|
|
495
500
|
|
|
496
501
|
describe('importFrom${e} (${t.id})', () => {
|
|
@@ -504,10 +509,10 @@ describe('importFrom${e} (${t.id})', () => {
|
|
|
504
509
|
expect(result).toHaveLength(0);
|
|
505
510
|
});
|
|
506
511
|
});
|
|
507
|
-
`}s(
|
|
512
|
+
`}s(pS,"TEMPLATE_IMPORTER_TEST");function uS(t){return `# ${t.displayName} Workspace
|
|
508
513
|
|
|
509
514
|
Follow the ${t.displayName} configuration files and keep changes small.
|
|
510
|
-
`}s(
|
|
515
|
+
`}s(uS,"TEMPLATE_FIXTURE_ROOT_MD");function HU(t){let e=Ii(t.id);return `export const ${e}_TARGET = '${t.id}';
|
|
511
516
|
|
|
512
517
|
// Project-level paths
|
|
513
518
|
export const ${e}_DIR = '.${t.id}';
|
|
@@ -520,21 +525,21 @@ export const ${e}_GLOBAL_RULES_DIR = '~/.${t.id}/rules';
|
|
|
520
525
|
// Canonical paths
|
|
521
526
|
export const ${e}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
522
527
|
export const ${e}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
523
|
-
`}s(
|
|
528
|
+
`}s(HU,"TEMPLATE_CONSTANTS");function zU(t){let e=Ii(t.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
524
529
|
import { ${e}_TARGET, ${e}_DIR } from './constants.js';
|
|
525
530
|
|
|
526
|
-
export interface ${
|
|
531
|
+
export interface ${Ss(t.id)}Output {
|
|
527
532
|
path: string;
|
|
528
533
|
content: string;
|
|
529
534
|
}
|
|
530
535
|
|
|
531
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
536
|
+
export function generateRules(_canonical: CanonicalFiles): ${Ss(t.id)}Output[] {
|
|
532
537
|
// TODO(agentsmesh-scaffold): implement generateRules for ${t.displayName}
|
|
533
538
|
void ${e}_TARGET;
|
|
534
539
|
void ${e}_DIR;
|
|
535
540
|
return [];
|
|
536
541
|
}
|
|
537
|
-
`}s(
|
|
542
|
+
`}s(zU,"TEMPLATE_GENERATOR");function VU(t){let e=Ss(t.id),r=Ii(t.id);return `import type { ImportResult } from '../../core/types.js';
|
|
538
543
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
539
544
|
import { ${r}_TARGET } from './constants.js';
|
|
540
545
|
|
|
@@ -546,7 +551,7 @@ export async function importFrom${e}(
|
|
|
546
551
|
void ${r}_TARGET;
|
|
547
552
|
return [];
|
|
548
553
|
}
|
|
549
|
-
`}s(
|
|
554
|
+
`}s(VU,"TEMPLATE_IMPORTER");function JU(t){let e=Ii(t.id);return `/** Lint rules for the ${t.id} target. */
|
|
550
555
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
551
556
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
552
557
|
import { ${e}_TARGET } from './constants.js';
|
|
@@ -564,7 +569,7 @@ export function lintRules(
|
|
|
564
569
|
target: ${e}_TARGET,
|
|
565
570
|
}));
|
|
566
571
|
}
|
|
567
|
-
`}s(
|
|
572
|
+
`}s(JU,"TEMPLATE_LINTER");function YU(t){return `/**
|
|
568
573
|
* ${t.displayName}-specific lint hooks.
|
|
569
574
|
*/
|
|
570
575
|
|
|
@@ -574,7 +579,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
|
574
579
|
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${t.displayName}
|
|
575
580
|
return [];
|
|
576
581
|
}
|
|
577
|
-
`}s(
|
|
582
|
+
`}s(YU,"TEMPLATE_LINT_HOOKS");function XU(t){let e=Ss(t.id),r=Ii(t.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
578
583
|
import { ${r}_DIR } from '../../../targets/${t.id}/constants.js';
|
|
579
584
|
|
|
580
585
|
export async function build${e}ImportPaths(
|
|
@@ -586,14 +591,14 @@ export async function build${e}ImportPaths(
|
|
|
586
591
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
587
592
|
void ${r}_DIR;
|
|
588
593
|
}
|
|
589
|
-
`}s(
|
|
594
|
+
`}s(XU,"TEMPLATE_IMPORT_MAP");var y8=/^[a-z][a-z0-9-]*$/;async function ZU(t){let{id:e,projectRoot:r,force:n=false}=t,o=t.displayName??e,i={id:e,displayName:o};if(!y8.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:HU(i)},{rel:`src/targets/${e}/index.ts`,content:cS(i)},{rel:`src/targets/${e}/generator.ts`,content:zU(i)},{rel:`src/targets/${e}/importer.ts`,content:VU(i)},{rel:`src/targets/${e}/linter.ts`,content:JU(i)},{rel:`src/targets/${e}/lint.ts`,content:YU(i)},{rel:`src/core/reference/import-maps/${e}.ts`,content:XU(i)},{rel:`tests/unit/targets/${e}/generator.test.ts`,content:mS(i)},{rel:`tests/unit/targets/${e}/importer.test.ts`,content:pS(i)},{rel:`tests/e2e/fixtures/${e}-project/AGENTS.md`,content:uS(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await j(u)){c.push(u);continue}await S(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(ZU,"writeTargetScaffold");async function qU(t,e,r){let n=e[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?_8(t,e.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(qU,"runTarget");async function _8(t,e,r){let n=e[0];if(!n)throw new Rn("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 ZU({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=>QU(l,r)),skipped:a.skipped.map(l=>QU(l,r)),postSteps:a.postSteps}}}s(_8,"runScaffold");function QU(t,e){return (t.startsWith(e)?t.slice(e.length+1):t).replaceAll("\\","/")}s(QU,"relativize");ot();function t0(t){if(t.error&&y.error(t.error),t.showHelp){R8();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(t0,"renderTarget");function R8(){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(R8,"printTargetHelp");ce();Ti();A();Zt();Mr();So();function w8(t,e){return t===".agentsmesh"?false:!!(t.startsWith(".")||!e)}s(w8,"shouldSymlink");function A8(t){let e=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(t,{withFileTypes:true});for(let n of r){if(!w8(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(A8,"createTempProjectRoot");async function mg(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=Fe(l),p=Fe(c);if(!m||!p)try{let{config:k}=await yt(r,"project");await Ut(k,r);}catch{let k=[];throw m||k.push(`--from "${i}"`),p||k.push(`--to "${a}"`),new Error(`Unknown ${k.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",R=A8(o);try{await u.generators.importFrom(R,{scope:n});let k=await we(R),I=wi.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),C=await vr({config:I,canonical:k,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let T of C)if(T.status==="created"||T.status==="updated"){let B=Ic(o,T.path,T.target);await S(B,T.content);}}let b=C.filter(T=>T.status!=="skipped"),N=b.map(T=>({path:T.path,target:T.target,status:T.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:N,summary:{created:b.filter(T=>T.status==="created").length,updated:b.filter(T=>T.status==="updated").length,unchanged:b.filter(T=>T.status==="unchanged").length}}}}finally{rmSync(R,{recursive:true,force:true});}}s(mg,"runConvert");ot();function e0(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(e0,"renderConvert");var b8=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,M=class extends Error{static{s(this,"McpError");}code;details;constructor(e,r,n){if(b8.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 Nc(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(Nc,"redactAbsolutePaths");async function dS(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(dS,"safeWrite");var M8=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function Ci(t){let e=M8.exec(t);if(!e)return {frontmatter:{},body:t};let[,r,n]=e;return {frontmatter:parse(r)??{},body:n}}s(Ci,"parseMd");function Fc(t,e){return Object.keys(t).length===0?e:`---
|
|
590
595
|
${stringify(t).trimEnd()}
|
|
591
596
|
---
|
|
592
597
|
|
|
593
|
-
${e}`}s(wc,"serializeMd");var d8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,f8={rules:"_root"};function Yf(t){if(!d8.test(t)||t.includes(".."))throw new G("INVALID_NAME",`invalid name: ${t}`)}s(Yf,"checkName");function Xf(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(Xf,"pathFor");function bc(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}=Ri(f);m.push(n(u,g));}return m},async get(l,{name:c}){Yf(c);let m=Xf(l.projectRoot,e,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Ri(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new G("NOT_FOUND",`${e} "${c}" not found`):new G("IO_ERROR",`failed to read ${e}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){Yf(c);let f=r.safeParse(m);if(!f.success)throw new G("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=Xf(l.projectRoot,e,c);if(await a(g))throw new G("ALREADY_EXISTS",`${e} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new G("LIMIT_EXCEEDED",`${e} dir at ${1e3} entries`);let R=wc(m,p);return u===true?{path:g,written:false}:(await tS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){Yf(c);let g=Xf(l.projectRoot,e,c),h;try{let P=await readFile(g,"utf8");h=Ri(P);}catch(P){let N=P.code;throw N==="ENOENT"?new G("NOT_FOUND",`${e} "${c}" not found`):new G("IO_ERROR",`failed to read ${e}`,{errno:N})}let R=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,C=r.safeParse(R);if(!C.success)throw new G("VALIDATION_FAILED","invalid frontmatter",C.error.issues);let S=p!==void 0?p:h.body,k=wc(R,S);return f===true?{path:g,written:false}:(await tS({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(Yf(c),f8[e]===c&&m!==true)throw new G("PROTECTED_FILE",`${e} "${c}" requires force: true`);let u=Xf(l.projectRoot,e,c);if(!await a(u))throw new G("NOT_FOUND",`${e} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm(u),{path:u,deleted:true})}}}s(bc,"createCanonicalHandlers");var g8=z.object({description:z.string().optional(),root:z.boolean().optional(),globs:z.array(z.string()).nullable().optional(),targets:z.array(z.string()).nullable().optional()}).passthrough(),MU=bc({feature:"rules",frontmatterSchema:g8,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var h8=z.object({description:z.string().optional(),"allowed-tools":z.array(z.string()).optional()}).passthrough(),$U=bc({feature:"commands",frontmatterSchema:h8,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var y8=z.object({name:z.string().optional(),description:z.string().optional(),tools:z.array(z.string()).optional(),model:z.string().optional()}).passthrough(),GU=bc({feature:"agents",frontmatterSchema:y8,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var _8=z.object({name:z.string().describe('Item name (e.g. "auth", "code-review")')}),R8=z.object({name:z.string().describe('Item name (e.g. "auth", "code-review")'),frontmatter:z.record(z.string(),z.unknown()).describe("YAML frontmatter fields (e.g. { description, globs, targets })"),body:z.string().describe("Markdown body content"),dry_run:z.boolean().optional().describe("Preview changes without writing to disk")}),I8=z.object({}).strict();function rS(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:I8,handler:s(n=>e.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:_8,handler:s((n,o)=>e.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${t}`,description:`Create a new ${t}`,inputSchema:R8,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.object({name:z.string().describe("Name of the item to update"),frontmatter:z.record(z.string(),z.unknown()).optional().describe("New frontmatter fields (replaces by default; set merge=true to shallow-merge)"),body:z.string().optional().describe("New markdown body (omit to preserve existing)"),merge:z.boolean().optional().describe("If true, shallow-merge frontmatter instead of replacing"),dry_run:z.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.object({name:z.string().describe("Name of the item to delete"),force:z.boolean().optional().describe("Required to delete protected files like _root"),dry_run:z.boolean().optional().describe("Preview without deleting")}),handler:s((n,o)=>e.delete(n,o),"handler")}]}s(rS,"canonicalTools");var jU=[...rS("rule",MU),...rS("command",$U),...rS("agent",GU)];async function BU(t){let e=resolve(t.projectRoot,".agentsmesh/skills",t.skillName),r=resolve(e,t.filePath);if(!r.startsWith(e+sep)&&r!==e)throw new G("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new G("NOT_FOUND",`skill file not found: ${t.filePath}`):new G("IO_ERROR","failed to read skill file")}}s(BU,"safeRead");var A8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,w8=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,zU=z.object({name:z.string().optional(),description:z.string().optional()}).passthrough();function Rp(t){if(!A8.test(t))throw new G("INVALID_NAME",`invalid skill name: ${t}`)}s(Rp,"checkName");function sS(t){if(!w8.test(t)||t.includes("..")||t.includes("//"))throw new G("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(sS,"checkSupportPath");async function qf(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new G("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(qf,"atomicWrite");var VU=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),Ip=s((t,e)=>resolve(VU(t),e),"skillDir"),$a={async list(t){let e;try{e=(await readdir(VU(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(Ip(t.projectRoot,n),"SKILL.md"),"utf8"),i=Ri(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(t,{name:e}){Rp(e);let r=Ip(t.projectRoot,e);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Ri(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 G("NOT_FOUND",`skill "${e}" not found`):new G("IO_ERROR","failed to read skill")}},async getFile(t,{name:e,path:r}){return Rp(e),sS(r),{content:await BU({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Rp(e.name);let r=zU.safeParse(e.frontmatter);if(!r.success)throw new G("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=Ip(t.projectRoot,e.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new G("ALREADY_EXISTS",`skill "${e.name}" exists`);let i=e.supportingFiles??{},a=Object.keys(i);if(a.forEach(sS),a.length+1>1e3)throw new G("LIMIT_EXCEEDED","supporting files exceed cap");if(e.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await qf(l,wc(e.frontmatter,e.body));for(let[c,m]of Object.entries(i))await qf(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(t,e){Rp(e.name);let r=Ip(t.projectRoot,e.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Ri(p);}catch(p){throw p.code==="ENOENT"?new G("NOT_FOUND",`skill "${e.name}" not found`):new G("IO_ERROR","failed to read skill")}let o=e.frontmatter===void 0?n.frontmatter:e.merge===true?{...n.frontmatter,...e.frontmatter}:e.frontmatter,i=zU.safeParse(o);if(!i.success)throw new G("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=e.body!==void 0?e.body:n.body,l=e.supportingFiles??{};Object.keys(l).forEach(sS);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 qf(resolve(r,"SKILL.md"),wc(o,a));for(let[p,u]of Object.entries(l)){let f=resolve(r,p);if(u===null)try{await rm(f),m.push(p);}catch{}else await qf(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(t,{name:e,dry_run:r}){Rp(e);let n=Ip(t.projectRoot,e);try{await stat(n);}catch{throw new G("NOT_FOUND",`skill "${e}" not found`)}return r===true?{path:n,deleted:false}:(await rm(n,{recursive:true}),{path:n,deleted:true})}};var b8=z.object({}).strict(),P8=z.object({name:z.string().describe("Item name")}),JU=[{name:"list_skills",description:"List skills",inputSchema:b8,handler:s(t=>$a.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:P8,handler:s((t,e)=>$a.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.object({name:z.string().describe("Skill name"),path:z.string().describe('Relative path within the skill directory (e.g. "helper.md")')}),handler:s((t,e)=>$a.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.object({name:z.string().describe("Skill name (becomes directory name)"),frontmatter:z.record(z.string(),z.unknown()).describe("YAML frontmatter for SKILL.md"),body:z.string().describe("Markdown body for SKILL.md"),supportingFiles:z.record(z.string(),z.string()).optional().describe("Map of relative-path \u2192 content for supporting files"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>$a.create(t,e),"handler")},{name:"update_skill",description:"Update a skill. supportingFiles: string value writes/replaces, null deletes, unlisted files are untouched.",inputSchema:z.object({name:z.string().describe("Skill name"),frontmatter:z.record(z.string(),z.unknown()).optional().describe("New frontmatter (replaces by default; merge=true to shallow-merge)"),body:z.string().optional().describe("New body (omit to preserve existing)"),merge:z.boolean().optional().describe("Shallow-merge frontmatter instead of replacing"),supportingFiles:z.record(z.string(),z.union([z.string(),z.null()])).optional().describe("Map of path \u2192 content (string=write, null=delete, absent=keep)"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>$a.update(t,e),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z.object({name:z.string(),dry_run:z.boolean().optional()}),handler:s((t,e)=>$a.delete(t,e),"handler")}];async function YU(t){if(t.filename!==void 0&&t.filename!=="agentsmesh.yaml")throw new G("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(t.content,"utf8")>1048576)throw new G("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(YU,"safeConfigWrite");Ro();zc();async function Sp(t){try{return parse(await readFile(t,"utf8"))}catch(e){if(e.code==="ENOENT")return null;throw new G("IO_ERROR","failed to read yaml")}}s(Sp,"readYaml");async function Tc(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new G("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(Tc,"atomicWrite");var Xe={async getConfig(t){let e=await Sp(resolve(t.projectRoot,"agentsmesh.yaml"));if(e===null)throw new G("NO_PROJECT","agentsmesh.yaml missing");return e},async listMcpServers(t){let e=resolve(t.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await vr(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Sp(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Sp(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 Sp(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=ki.safeParse(n);if(!i.success)throw new G("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 YU({projectRoot:t.projectRoot,content:a,filename:e.filename}),written:true}},async addMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await vr(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[e.name]!==void 0)throw new G("ALREADY_EXISTS",`server "${e.name}" exists`);return n.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await Tc(r,JSON.stringify(n,null,2)+`
|
|
594
|
-
`),{path:r,written:true})},async updateMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await
|
|
595
|
-
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await
|
|
596
|
-
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),n=await
|
|
598
|
+
${e}`}s(Fc,"serializeMd");var B8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,K8={rules:"_root"};function pg(t){if(!B8.test(t)||t.includes(".."))throw new M("INVALID_NAME",`invalid name: ${t}`)}s(pg,"checkName");function ug(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(ug,"pathFor");function vc(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}=Ci(f);m.push(n(u,g));}return m},async get(l,{name:c}){pg(c);let m=ug(l.projectRoot,e,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Ci(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}){pg(c);let f=r.safeParse(m);if(!f.success)throw new M("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=ug(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 R=Fc(m,p);return u===true?{path:g,written:false}:(await dS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){pg(c);let g=ug(l.projectRoot,e,c),h;try{let b=await readFile(g,"utf8");h=Ci(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 R=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,k=r.safeParse(R);if(!k.success)throw new M("VALIDATION_FAILED","invalid frontmatter",k.error.issues);let I=p!==void 0?p:h.body,C=Fc(R,I);return f===true?{path:g,written:false}:(await dS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:C}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(pg(c),K8[e]===c&&m!==true)throw new M("PROTECTED_FILE",`${e} "${c}" requires force: true`);let u=ug(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(vc,"createCanonicalHandlers");var W8=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(),o0=vc({feature:"rules",frontmatterSchema:W8,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var H8=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),s0=vc({feature:"commands",frontmatterSchema:H8,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var z8=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(),i0=vc({feature:"agents",frontmatterSchema:z8,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var V8=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")}),Y8=z$1.object({}).strict();function gS(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:Y8,handler:s(n=>e.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:V8,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(gS,"canonicalTools");var a0=[...gS("rule",o0),...gS("command",s0),...gS("agent",i0)];async function c0(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(c0,"safeRead");var r9=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,n9=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,d0=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Dp(t){if(!r9.test(t))throw new M("INVALID_NAME",`invalid skill name: ${t}`)}s(Dp,"checkName");function _S(t){if(!n9.test(t)||t.includes("..")||t.includes("//"))throw new M("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(_S,"checkSupportPath");async function gg(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(gg,"atomicWrite");var f0=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),Np=s((t,e)=>resolve(f0(t),e),"skillDir"),Ka={async list(t){let e;try{e=(await readdir(f0(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(Np(t.projectRoot,n),"SKILL.md"),"utf8"),i=Ci(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(t,{name:e}){Dp(e);let r=Np(t.projectRoot,e);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Ci(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 Dp(e),_S(r),{content:await c0({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Dp(e.name);let r=d0.safeParse(e.frontmatter);if(!r.success)throw new M("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=Np(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(_S),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 gg(l,Fc(e.frontmatter,e.body));for(let[c,m]of Object.entries(i))await gg(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(t,e){Dp(e.name);let r=Np(t.projectRoot,e.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Ci(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=d0.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(_S);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 gg(resolve(r,"SKILL.md"),Fc(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 gg(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(t,{name:e,dry_run:r}){Dp(e);let n=Np(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 o9=z$1.object({}).strict(),s9=z$1.object({name:z$1.string().describe("Item name")}),g0=[{name:"list_skills",description:"List skills",inputSchema:o9,handler:s(t=>Ka.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:s9,handler:s((t,e)=>Ka.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)=>Ka.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)=>Ka.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)=>Ka.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)=>Ka.delete(t,e),"handler")}];async function h0(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(h0,"safeConfigWrite");So();Qc();async function Fp(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(Fp,"readYaml");async function $c(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($c,"atomicWrite");var rr={async getConfig(t){let e=await Fp(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 jr(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Fp(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Fp(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 Fp(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=wi.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 h0({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 M("ALREADY_EXISTS",`server "${e.name}" exists`);return n.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await $c(r,JSON.stringify(n,null,2)+`
|
|
599
|
+
`),{path:r,written:true})},async updateMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await jr(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 $c(r,JSON.stringify(n,null,2)+`
|
|
600
|
+
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await jr(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 $c(r,JSON.stringify(n,null,2)+`
|
|
601
|
+
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),n=await Fp(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 $c(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 $c(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 $c(r,n.join(`
|
|
597
602
|
`)+`
|
|
598
|
-
`),{path:r,written:true})}};var z8=/[;&|`$<>!\\\r\n]/u,V8=/^[A-Za-z_][A-Za-z0-9_]*$/u,J8=/^[A-Za-z][A-Za-z0-9_-]*$/u,Y8=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,QU=/[\r\n]/u,qU=/[\0\r\n]/u;function X8(t){return qU.test(t)?false:!t.split(/[/\\]/u).includes("..")}s(X8,"isSafeMcpCwd");function Z8(t){return z.string().min(1).max(512).refine(e=>!z8.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(Z8,"noShellMeta");var lS=z.object({type:z.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z.string().max(1024).refine(t=>!qU.test(t),{message:"description must not contain NUL or newline characters"}).optional(),command:Z8("command").optional(),args:z.array(z.string().max(2048)).max(100).optional(),env:z.record(z.string().regex(V8,"env key must be a valid identifier"),z.string().max(8192)).optional(),url:z.string().url().max(2048).refine(t=>/^https?:\/\//u.test(t),{message:"url must use http(s) protocol"}).optional(),headers:z.record(z.string().regex(J8,"header name must be a valid identifier"),z.string().max(8192)).optional(),cwd:z.string().max(2048).refine(X8,{message:'cwd must not contain "..", NUL, or newline characters'}).optional(),disabled:z.boolean().optional(),timeout:z.number().int().nonnegative().max(36e5).optional()}).strict(),Q8=z.object({type:z.enum(["command","prompt"]).optional(),command:z.string().min(1).max(8192).optional(),prompt:z.string().min(1).max(8192).optional(),timeout:z.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"}),t0=z.string().max(256).refine(t=>!QU.test(t),{message:"hook matcher must not contain newlines"}),q8=z.object({matcher:t0,type:z.enum(["command","prompt"]).optional(),command:z.string().min(1).max(8192).optional(),prompt:z.string().min(1).max(8192).optional(),timeout:z.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"}),t9=z.object({matcher:t0,hooks:z.array(Q8).min(1).max(50)}).strict(),e9=z.union([q8,t9]),e0=z.record(z.string().min(1).max(64),z.array(e9).max(100)),r9=z.string().min(1).max(256).refine(t=>!QU.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>Y8.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),eg=z.array(r9).max(500);var Cp=z.object({}).strict(),n9=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Cp,handler:s(t=>Xe.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Cp,handler:s(t=>Xe.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Cp,handler:s(t=>Xe.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Cp,handler:s(t=>Xe.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Cp,handler:s(t=>Xe.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],o9=[{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.object({targets:z.array(z.string()).optional().describe('Target tool IDs (e.g. ["claude-code", "cursor"])'),features:z.array(z.string()).optional().describe('Feature names (e.g. ["rules", "commands", "mcp"])'),conversions:z.record(z.string(),z.unknown()).optional().describe("Conversion overrides"),merge:z.boolean().optional().describe("If true, union arrays and shallow-merge objects instead of replacing"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Xe.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.object({name:z.string().describe('Server name (e.g. "github", "filesystem")'),server:lS.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Xe.addMcpServer(t,e),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z.object({name:z.string(),server:lS,merge:z.boolean().optional(),dry_run:z.boolean().optional()}),handler:s((t,e)=>Xe.updateMcpServer(t,e),"handler")},{name:"remove_mcp_server",description:"Remove an MCP server entry",inputSchema:z.object({name:z.string(),dry_run:z.boolean().optional()}),handler:s((t,e)=>Xe.removeMcpServer(t,e),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z.object({allow:eg.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:eg.optional().describe("Denied tool patterns"),ask:eg.optional().describe("Tools requiring confirmation"),mode:z.enum(["replace","append"]).optional().describe("replace=overwrite, append=union+dedup (default: replace)"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Xe.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.object({hooks:e0.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Xe.updateHooks(t,e),"handler")},{name:"update_ignore",description:"Update .agentsmesh/ignore patterns. mode=replace (default) overwrites; mode=append adds new patterns.",inputSchema:z.object({patterns:z.array(z.string()).describe('Gitignore-syntax patterns (e.g. ["node_modules/", "dist/", ".env*"])'),mode:z.enum(["replace","append"]).optional().describe("replace=overwrite, append=add (default: replace)"),dry_run:z.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Xe.updateIgnore(t,e),"handler")}],r0=[...n9,...o9];VR();Rn();function s9(){return Object.fromEntries(Ft.map(t=>[t,Object.fromEntries(Object.entries(o$).map(([e,r])=>[e,r[t]]))]))}s(s9,"buildTargetIndex");var n0=s9(),cS={async list(){return n0},async get(t){let e=n0[t.targetId];if(e===void 0)throw new G("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};_o();_o();Dp();Yt();fo();fn();se();Rn();async function mS(t,e){let r=et(t);if(!r)throw new _n(t,{supported:[...Ft,...Yp().map(n=>n.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s(mS,"importFrom");async function xc(t,e={}){let r=e.scope??"project",{config:n,context:o}=await yt(t,r);await Wt(n,t);let{canonical:i}=await ke(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(xc,"loadProjectContext");async function pS(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return Of(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(pS,"lint");async function uS(t){let e=await Tr(t);return {...Ef(e),results:e}}s(uS,"diff");async function dS(t){return Af(t)}s(dS,"check");_o();fo();Ai();Dp();Pt();se();Et();w();function Ii(t){if(t instanceof G)throw t;if(t instanceof _n)throw new G("VALIDATION_FAILED",t.message);let e=t instanceof Error?t.message:String(t);throw /unknown.*--from|unknown.*--to|unknown target/i.test(e)?new G("VALIDATION_FAILED",e):/lock/i.test(e)?new G("LOCK_HELD","generate lock is held"):new G("IO_ERROR","engine failure",{reason:e})}s(Ii,"wrapEngineError");async function o0(t,e){if(e.dry_run===true)throw new G("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 mS(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 _n)throw new G("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 G("VALIDATION_FAILED",n);Ii(r);}}s(o0,"importFromTarget");async function s0(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},n=await Vf(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 G("VALIDATION_FAILED",n);Ii(r);}}s(s0,"convert");async function c9(t,e){try{let r=await xc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,i=(await Tr({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=yc(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){Ii(r);}}s(c9,"generate");async function m9(t,e){try{let r=await xc(t.projectRoot),n=await pS({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){Ii(r);}}s(m9,"lint");async function p9(t){try{let e=await xc(t.projectRoot),r=await dS({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){Ii(e);}}s(p9,"check");async function u9(t,e){try{let r=await xc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,o=await uS({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){Ii(r);}}s(u9,"diff");var Ga={generate:c9,lint:m9,check:p9,diff:u9,import:o0,convert:s0};var i0=z.object({}).strict(),a0=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:i0,handler:s(()=>cS.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.object({targetId:z.string().describe('Target tool ID (e.g. "claude-code", "cursor")')}),handler:s((t,e)=>cS.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.object({targets:z.array(z.string()).optional().describe("Filter to specific targets (default: all from agentsmesh.yaml)"),features:z.array(z.string()).optional().describe("Filter to specific features"),verbose:z.boolean().optional().describe("Include full file list in response"),dry_run:z.boolean().optional().describe("Preview without writing files")}),handler:s((t,e)=>Ga.generate(t,e),"handler")},{name:"lint",description:"Lint canonical .agentsmesh/ files for schema errors, missing frontmatter, and other issues",inputSchema:z.object({severity:z.enum(["error","warning","info"]).optional().describe("Filter results by minimum severity")}),handler:s((t,e)=>Ga.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:i0,handler:s(t=>Ga.check(t),"handler")},{name:"diff",description:"Preview what generate would create, modify, or delete without writing",inputSchema:z.object({targets:z.array(z.string()).optional().describe("Filter to specific targets"),features:z.array(z.string()).optional().describe("Filter to specific features")}),handler:s((t,e)=>Ga.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.object({from:z.string().describe('Source target ID to import from (e.g. "cursor", "claude-code")'),features:z.array(z.string()).optional().describe("Restrict import to specific features"),dry_run:z.boolean().optional().describe("NOT SUPPORTED \u2014 will throw VALIDATION_FAILED. Use diff instead.")}),handler:s((t,e)=>Ga.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.object({from:z.string().describe('Source target ID (e.g. "cursor")'),to:z.string().describe('Destination target ID (e.g. "claude-code")'),dry_run:z.boolean().optional().describe("Preview conversion without writing files")}),handler:s((t,e)=>Ga.convert(t,e),"handler")}];function fS(t){if(t instanceof G)throw t;let e=t instanceof Error?t.message:String(t),r=Jf(e);throw /lock|LockAcquisitionError/i.test(r)?new G("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 G("VALIDATION_FAILED",r):new G("IO_ERROR","install pipeline failure",{reason:r})}s(fS,"wrapInstallError");function d9(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(d9,"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 g9(t,e){if(typeof e.source!="string"||e.source.trim().length===0)throw new G("VALIDATION_FAILED","install: `source` is required");try{let r=await _p(d9(e),[e.source],t.projectRoot);if(r.exitCode!==0)throw new G("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){fS(r);}}s(g9,"install");async function h9(t,e){if(e.all!==true&&(!Array.isArray(e.names)||e.names.length===0))throw new G("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await Kf(f9(e),e.names??[],t.projectRoot)).data}catch(r){fS(r);}}s(h9,"uninstall");async function y9(t,e={}){try{let r={};return e.global===!0&&(r.global=!0),(await Wf(r,t.projectRoot)).data}catch(r){fS(r);}}s(y9,"installsList");var rg={install:g9,uninstall:h9,installsList:y9};var _9=z.object({source:z.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.string().optional().describe("Subdirectory within the source repo to install from. Combined with `as` for manual single-category installs."),target:z.string().optional().describe("Target tool ID hint for native-format auto-discovery (e.g. `claude-code`, `cursor`). Bypasses the multi-signal classifier."),as:z.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.string().optional().describe("Override the generated install entry name (default: derived from `org-repo` shorthand or the source path)."),extends:z.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.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.boolean().optional().describe("Reinstall missing packs from `.agentsmesh/installs.yaml` instead of from `source`."),dry_run:z.boolean().optional().describe("Preview what would be installed without writing."),global:z.boolean().optional().describe("Install into the global scope (`~/.agentsmesh/`) instead of the project scope. Regenerates user-level outputs.")}),R9=z.object({names:z.array(z.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.boolean().optional().describe("Remove every install in the current scope. `names` is ignored when `all: true`."),keep_pack:z.boolean().optional().describe("Leave `.agentsmesh/packs/<name>/` on disk; only drop yaml entries. Useful when the user has locally-modified files."),keep_generated:z.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.boolean().optional().describe("Preview the removal plan; no writes. Legacy-manifest migration runs in memory only."),global:z.boolean().optional().describe("Uninstall from the global scope (`~/.agentsmesh/`) instead of the project scope.")}),I9=z.object({global:z.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),l0=[{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:_9,handler:s((t,e)=>rg.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:R9,handler:s((t,e)=>rg.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:I9,handler:s((t,e)=>rg.installsList(t,e),"handler"),resourceUri:"agentsmesh://installs"}];function c0(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(c0,"zodToMcpSchema");var ng=[...jU,...JU,...r0,...a0,...l0],gS=ng.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")}));Ai();async function E9(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 G("NO_PROJECT","agentsmesh.yaml not found");e=r;}}s(E9,"findProjectRoot");async function hS(t){let e=await E9(t.cwd);return {projectRoot:e,loadCanonical:s(()=>Ee(e),"loadCanonical")}}s(hS,"resolveContext");async function N9(){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(N9,"pkgVersion");function F9(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(F9,"matchTemplate");function v9(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(v9,"extractTemplateParams");async function p0(){let t=new Server({name:"agentsmesh-mcp",version:await N9()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:ng.map(e=>({name:e.name,description:e.description,inputSchema:c0(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=ng.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 G("VALIDATION_FAILED","invalid input",n.error.issues);let o=await hS({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof G?n.toEnvelope():{code:"IO_ERROR",message:Jf(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:gS.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=gS.find(a=>a.uri===e.params.uri||F9(a.uri,e.params.uri));if(!r)throw new G("NOT_FOUND",`resource not found: ${e.params.uri}`);let n=await hS({cwd:process.cwd()}),o=v9(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(p0,"startServer");ot();async function u0(t,e){CS(),await p0();}s(u0,"runMcp");var d0={generate:s(async(t,e)=>{let r=await _c(t,void 0,{printMatrix:t.json!==true});ge("generate",r,t,()=>Rc(r));},"generate"),init:s(async(t,e)=>{let r=await k$(process.cwd(),{yes:t.yes===true,global:t.global===true});ge("init",r,t,()=>E$(r));},"init"),import:s(async(t,e)=>{let r=await O$(t);ge("import",r,t,()=>v$(r));},"import"),diff:s(async(t,e)=>{let r=await w$(t);ge("diff",r,t,()=>M$(r));},"diff"),lint:s(async(t,e)=>{let r=await D$(t);ge("lint",r,t,()=>N$(r));},"lint"),check:s(async(t,e)=>{let r=await U$(t);ge("check",r,t,()=>F$(r));},"check"),merge:s(async(t,e)=>{let r=await W$(t);ge("merge",r,t,()=>$$(r));},"merge"),matrix:s(async(t,e)=>{let r=await ip(t);ge("matrix",r,t,()=>lp(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){Ha("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await j$(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 Qj(t,e,process.cwd());ge("install",r,t,()=>qj(r));},"install"),uninstall:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await fU(t,e,process.cwd());ge("uninstall",r,t,()=>gU(r));},"uninstall"),installs:s(async(t,e)=>{let r=await yU(t,e,process.cwd());ge("installs",r,t,()=>_U(r));},"installs"),plugin:s(async(t,e)=>{let r=await CU(t,e,process.cwd());ge("plugin",r,t,()=>kU(r));},"plugin"),target:s(async(t,e)=>{let r=await xU(t,e,process.cwd());ge("target",r,t,()=>DU(r));},"target"),convert:s(async(t,e)=>{let r=await Vf(t);ge("convert",r,t,()=>NU(r));},"convert"),mcp:s(async(t,e)=>{await u0();},"mcp")};function G9(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(G9,"parseArgs");var j9=RS(d0);async function U9(t){let{command:e,flags:r,args:n}=t;if(e==="help"){ag();return}if(e==="version"){ES();return}if(r.help===true){Lp(e);return}r.json===true&&SS(),await j9.route(e,r,n);}s(U9,"main");function B9(){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(B9,"isMainModule");if(B9()){let t=G9(process.argv.slice(2));U9(t).catch(e=>LS(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
599
|
-
export{
|
|
603
|
+
`),{path:r,written:true})}};var S9=/[;&|`$<>!\\\r\n]/u,C9=/^[A-Za-z_][A-Za-z0-9_]*$/u,k9=/^[A-Za-z][A-Za-z0-9_-]*$/u,E9=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,R0=/[\r\n]/u,I0=/[\0\r\n]/u;function L9(t){return I0.test(t)?false:!t.split(/[/\\]/u).includes("..")}s(L9,"isSafeMcpCwd");function O9(t){return z$1.string().min(1).max(512).refine(e=>!S9.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(O9,"noShellMeta");var SS=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(t=>!I0.test(t),{message:"description must not contain NUL or newline characters"}).optional(),command:O9("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(C9,"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(k9,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(L9,{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(),w9=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"}),S0=z$1.string().max(256).refine(t=>!R0.test(t),{message:"hook matcher must not contain newlines"}),A9=z$1.object({matcher:S0,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"}),b9=z$1.object({matcher:S0,hooks:z$1.array(w9).min(1).max(50)}).strict(),P9=z$1.union([A9,b9]),C0=z$1.record(z$1.string().min(1).max(64),z$1.array(P9).max(100)),T9=z$1.string().min(1).max(256).refine(t=>!R0.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>E9.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),yg=z$1.array(T9).max(500);var vp=z$1.object({}).strict(),x9=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:vp,handler:s(t=>rr.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:vp,handler:s(t=>rr.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:vp,handler:s(t=>rr.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:vp,handler:s(t=>rr.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:vp,handler:s(t=>rr.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],D9=[{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:SS.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:SS,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:yg.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:yg.optional().describe("Denied tool patterns"),ask:yg.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:C0.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")}],k0=[...x9,...D9];dI();Sn();function N9(){return Object.fromEntries($t.map(t=>[t,Object.fromEntries(Object.entries(y$).map(([e,r])=>[e,r[t]]))]))}s(N9,"buildTargetIndex");var E0=N9(),CS={async list(){return E0},async get(t){let e=E0[t.targetId];if(e===void 0)throw new M("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};Io();Io();Yp();Zt();ho();Mr();ce();Sn();async function kS(t,e){let r=nt(t);if(!r)throw new In(t,{supported:[...$t,...pu().map(n=>n.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s(kS,"importFrom");async function Gc(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(Gc,"loadProjectContext");async function ES(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return Bf(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(ES,"lint");async function LS(t){let e=await vr(t);return {...jf(e),results:e}}s(LS,"diff");async function OS(t){return Kf(t)}s(OS,"check");Io();ho();Ti();Yp();Tt();ce();Ot();A();function ki(t){if(t instanceof M)throw t;if(t instanceof In)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(ki,"wrapEngineError");async function L0(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 kS(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 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);ki(r);}}s(L0,"importFromTarget");async function O0(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},n=await mg(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);ki(r);}}s(O0,"convert");async function $9(t,e){try{let r=await Gc(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=Ic(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){ki(r);}}s($9,"generate");async function G9(t,e){try{let r=await Gc(t.projectRoot),n=await ES({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){ki(r);}}s(G9,"lint");async function j9(t){try{let e=await Gc(t.projectRoot),r=await OS({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){ki(e);}}s(j9,"check");async function U9(t,e){try{let r=await Gc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,o=await LS({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){ki(r);}}s(U9,"diff");var Wa={generate:$9,lint:G9,check:j9,diff:U9,import:L0,convert:O0};var w0=z$1.object({}).strict(),A0=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:w0,handler:s(()=>CS.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)=>CS.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)=>Wa.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)=>Wa.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:w0,handler:s(t=>Wa.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)=>Wa.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)=>Wa.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)=>Wa.convert(t,e),"handler")}];function wS(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=Nc(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(wS,"wrapInstallError");function B9(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(B9,"toInstallFlags");function K9(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(K9,"toUninstallFlags");async function W9(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 Ua(B9(e),[e.source],t.projectRoot);if(r.exitCode!==0)throw new M("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){wS(r);}}s(W9,"install");async function H9(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 sg(K9(e),e.names??[],t.projectRoot)).data}catch(r){wS(r);}}s(H9,"uninstall");async function z9(t,e={}){try{let r={};return e.global===!0&&(r.global=!0),(await ag(r,t.projectRoot)).data}catch(r){wS(r);}}s(z9,"installsList");var _g={install:W9,uninstall:H9,installsList:z9};function V9(t){let e={force:true};return t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(V9,"toRefreshFlags");function J9(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=Nc(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(J9,"wrapRefreshError");async function Y9(t,e={}){try{let r=await ig(V9(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){J9(r);}}s(Y9,"refresh");var b0={refresh:Y9};var X9=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.")}),Z9=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.")}),Q9=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),q9=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.")}),P0=[{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:X9,handler:s((t,e)=>_g.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:Z9,handler:s((t,e)=>_g.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:Q9,handler:s((t,e)=>_g.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:q9,handler:s((t,e)=>b0.refresh(t,e),"handler")}];function T0(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(T0,"zodToMcpSchema");var Rg=[...a0,...g0,...k0,...A0,...P0],AS=Rg.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")}));Ti();async function n6(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(n6,"findProjectRoot");async function bS(t){let e=await n6(t.cwd);return {projectRoot:e,loadCanonical:s(()=>we(e),"loadCanonical")}}s(bS,"resolveContext");async function d6(){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(d6,"pkgVersion");function f6(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(f6,"matchTemplate");function g6(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(g6,"extractTemplateParams");async function D0(){let t=new Server({name:"agentsmesh-mcp",version:await d6()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:Rg.map(e=>({name:e.name,description:e.description,inputSchema:T0(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=Rg.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 bS({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:Nc(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:AS.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=AS.find(a=>a.uri===e.params.uri||f6(a.uri,e.params.uri));if(!r)throw new M("NOT_FOUND",`resource not found: ${e.params.uri}`);let n=await bS({cwd:process.cwd()}),o=g6(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(D0,"startServer");ot();async function N0(t,e){vS(),await D0();}s(N0,"runMcp");var F0={generate:s(async(t,e)=>{let r=await Sc(t,void 0,{printMatrix:t.json!==true});le("generate",r,t,()=>Cc(r));},"generate"),init:s(async(t,e)=>{let r=await v$(process.cwd(),{yes:t.yes===true,global:t.global===true});le("init",r,t,()=>M$(r));},"init"),import:s(async(t,e)=>{let r=await G$(t);le("import",r,t,()=>Y$(r));},"import"),diff:s(async(t,e)=>{let r=await U$(t);le("diff",r,t,()=>X$(r));},"diff"),lint:s(async(t,e)=>{let r=await z$(t);le("lint",r,t,()=>V$(r));},"lint"),check:s(async(t,e)=>{let r=await tG(t);le("check",r,t,()=>J$(r));},"check"),merge:s(async(t,e)=>{let r=await nG(t);le("merge",r,t,()=>Z$(r));},"merge"),matrix:s(async(t,e)=>{let r=await up(t);le("matrix",r,t,()=>fp(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){Ja("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await q$(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 mU(t,e,process.cwd());le("install",r,t,()=>pU(r));},"install"),uninstall:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await LU(t,e,process.cwd());le("uninstall",r,t,()=>OU(r));},"uninstall"),refresh:s(async(t,e)=>{let r=await FU(t,e,process.cwd());le("refresh",r,t,()=>vU(r));},"refresh"),installs:s(async(t,e)=>{let r=await $U(t,e,process.cwd());le("installs",r,t,()=>GU(r));},"installs"),plugin:s(async(t,e)=>{let r=await KU(t,e,process.cwd());le("plugin",r,t,()=>WU(r));},"plugin"),target:s(async(t,e)=>{let r=await qU(t,e,process.cwd());le("target",r,t,()=>t0(r));},"target"),convert:s(async(t,e)=>{let r=await mg(t);le("convert",r,t,()=>e0(r));},"convert"),mcp:s(async(t,e)=>{await N0();},"mcp")};function _6(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(_6,"parseArgs");var R6=DS(F0);async function I6(t){let{command:e,flags:r,args:n}=t;if(e==="help"){Lg();return}if(e==="version"){$S();return}if(r.help===true){Up(e);return}r.json===true&&FS(),await R6.route(e,r,n);}s(I6,"main");function S6(){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(S6,"isMainModule");if(S6()){let t=_6(process.argv.slice(2));I6(t).catch(e=>GS(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
604
|
+
export{_6 as parseArgs};
|