agentsmesh 0.18.1 → 0.19.1
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 +403 -0
- package/README.md +28 -3
- package/dist/canonical.d.ts +31 -3
- package/dist/canonical.js +15387 -14729
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +182 -150
- package/dist/engine.d.ts +2 -2
- package/dist/engine.js +1291 -488
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1291 -488
- package/dist/index.js.map +1 -1
- package/dist/{schema-B4PYQrZH.d.ts → schema-CLmR2JOb.d.ts} +17 -1
- package/dist/{target-descriptor-XZEis_Js.d.ts → target-descriptor-CkLWz3Xk.d.ts} +47 -16
- package/dist/targets.d.ts +3 -3
- package/dist/targets.js +369 -225
- package/dist/targets.js.map +1 -1
- package/package.json +6 -1
- package/schemas/agentsmesh.json +10 -12
- package/schemas/install-manifest.json +66 -0
- package/schemas/installs.json +154 -0
- package/schemas/mcp.json +3 -10
- package/schemas/pack.json +10 -0
- package/schemas/permissions.json +0 -5
package/dist/cli.js
CHANGED
|
@@ -1,185 +1,201 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize}from'path';import {rm
|
|
3
|
-
`);},warn(t){
|
|
4
|
-
`);},error(t){
|
|
5
|
-
`);},success(t){
|
|
6
|
-
`);},debug(t){
|
|
7
|
-
`);},table(t){if(
|
|
8
|
-
`);for(let
|
|
9
|
-
`);}
|
|
10
|
-
`);}};});var
|
|
11
|
-
`)}function gg(t){return g$.has(extname(t).toLowerCase())?493:void 0}var dg,u$,d$,g$,fg=u(()=>{dg="\uFEFF",u$=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),d$=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(AR,"shouldNormalizeLineEndings");s(kR,"normalizeLineEndings");g$=new Set([".sh",".bash",".zsh"]);s(gg,"executableModeFor");});async function N(t,e){let r;try{r=await realpath(t);}catch(n){let i=n;if(i.code==="ENOENT"||i.code==="ENOTDIR"||i.code==="ELOOP")return [];throw new He(t,`Failed to read directory ${t}: ${i.message}. Check permissions.`,{cause:n,errnoCode:i.code})}let o=e??new Set;if(o.has(r))return [];o.add(r);try{let n=await readdir(t,{withFileTypes:!0}),i=[];for(let a of n){let c=join(t,a.name);a.isDirectory()||a.isSymbolicLink()&&await stat(c).then(m=>m.isDirectory(),()=>!1)?i.push(...await N(c,o)):i.push(c);}return i}catch(n){let i=n;if(i.code==="ENOENT"||i.code==="ENOTDIR"||i.code==="EACCES")return [];throw new He(t,`Failed to read directory ${t}: ${i.message}. Check permissions.`,{cause:n,errnoCode:i.code})}}async function hg(t,e){let r=resolve(t);try{if(!(await lstat(e)).isSymbolicLink()||resolve(dirname(e),await readlink(e))===r)return;await unlink(e);}catch(o){if(o.code!=="ENOENT")throw o}await symlink(r,e,"dir");}var TR=u(()=>{mn();s(N,"readDirRecursive");s(hg,"ensureCacheSymlink");});async function y(t){try{let e=await readFile(t,"utf-8");return e.startsWith(dg)?e.slice(dg.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new He(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 o=dirname(t);await mkdir(o,{recursive:true});try{let c=await lstat(t);if(c.isDirectory())throw new He(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});c.isSymbolicLink()&&await unlink(t).catch(l=>{if(l.code!=="ENOENT")throw l});}catch(c){if(c instanceof He||c.code!=="ENOENT")throw c}let n=`${t}.tmp`,i=AR(t)?kR(e):e,a=r?.mode??gg(t);try{try{(await lstat(n)).isSymbolicLink()&&await unlink(n);}catch(l){if(l.code!=="ENOENT")throw l}let c={encoding:"utf-8",flag:"w"};a!==void 0&&(c.mode=a),await writeFile(n,i,c),await rename(n,t),a!==void 0&&await chmod(t,a);}catch(c){await rm$1(n,{force:true}).catch(()=>{});let l=c;throw new He(t,`Failed to write ${t}: ${l.message}. Check permissions and disk space.`,{cause:c,errnoCode:l.code})}}async function j(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function L(t){await mkdir(t,{recursive:true});}var T=u(()=>{mn();fg();TR();fg();s(y,"readFileSafe");s(I,"writeFileAtomic");s(j,"exists");s(L,"mkdirp");});function wr(t){return yg.includes(t)}var yg,DR=u(()=>{yg=["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(wr,"isBuiltinTargetId");});var kt,_g,mo=u(()=>{DR();kt=yg,_g="codex-cli";});var NR,ze,Da,gl,x$,D$,dl,N$,F$,pi,pn=u(()=>{mo();NR=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],ze=z$1.enum(kt),Da=z$1.enum(NR),gl=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(),x$=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:ze.optional(),features:z$1.array(Da),path:z$1.string().optional(),pick:gl.optional()}),D$=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),dl=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),N$=z$1.object({commands_to_skills:z$1.object({"codex-cli":dl.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":dl.optional(),cline:dl.optional(),"codex-cli":dl.optional(),windsurf:dl.optional()}).passthrough().optional()}).strict().optional(),F$=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(),pi=z$1.object({version:z$1.literal(1),targets:z$1.array(ze).default([...kt]),features:z$1.array(Da).default([...NR]),extends:z$1.array(x$).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:D$.default({strategy:"merge",lock_features:[]}),conversions:N$,plugins:z$1.array(F$).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function M$(t){let e=resolve(t);for(;;){let r=join(e,Rg);if(await j(r))return r;let o=dirname(e);if(o===e)return null;e=o;}}async function $$(t){let e=await y(t);if(e===null)throw new kr(t);let r=parse(e),o=pi.safeParse(r);if(!o.success){let n=o.error.issues.map(i=>i.message);throw new Pa(t,n,{cause:o.error})}return o.data}function Ig(t,e){let r={...t};for(let[o,n]of Object.entries(e)){if(n==null)continue;let i=r[o];typeof n=="object"&&!Array.isArray(n)&&n!==null&&typeof i=="object"&&i!==null&&!Array.isArray(i)?r[o]=Ig(i,n):r[o]=n;}return r}function j$(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=Ig(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=Ig(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,Rg),r=await $$(e),o=join(t,G$),n=await y(o);if(n!==null){let i=parse(n);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=j$(r,i),c=pi.safeParse(a);if(c.success)r=c.data;else {let l=c.error.issues.map(m=>m.message).join("; ");_.warn(`Ignoring invalid agentsmesh.local.yaml at ${o}: ${l}. Using project config instead.`);}}}return {config:r,configDir:t}}async function ep(t){let e=await M$(t);if(e===null)throw new kr(join(t,Rg));return tp(dirname(e))}var Rg,G$,rp=u(()=>{T();ft();mn();pn();Rg="agentsmesh.yaml",G$="agentsmesh.local.yaml";s(M$,"findConfigPath");s($$,"loadConfig");s(Ig,"deepMergeObjects");s(j$,"mergeLocalConfig");s(tp,"loadConfigFromExactDir");s(ep,"loadConfigFromDir");});function fl(t,e="project"){if(e==="project")return {scope:e,rootBase:t,configDir:t,canonicalDir:join(t,".agentsmesh")};let r=homedir(),o=join(r,".agentsmesh");return {scope:e,rootBase:r,configDir:o,canonicalDir:o}}async function Tt(t,e="project"){if(e==="project"){let{config:o,configDir:n}=await ep(t);return {config:o,context:{scope:e,rootBase:n,configDir:n,canonicalDir:join(n,".agentsmesh")}}}let r=fl(t,e);try{let{config:o}=await tp(r.configDir);return {config:o,context:r}}catch(o){throw o instanceof kr?new kr(o.path,{cause:o,message:`agentsmesh.yaml not found at ${o.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):o}}var Oe=u(()=>{rp();mn();s(fl,"resolveScopeContext");s(Tt,"loadScopedConfig");});function $R(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function op(t,e,r,o,n){let i="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,c=t.ref??"HEAD",l=n(i,a,c),m=join(o,l),p=join(m,GR),d=`${m}.tmp`,g=join(d,GR);if(!r.refresh&&await MR(p))return Og(p);try{return await rm$1(d,{recursive:!0,force:!0}),await mkdir(d,{recursive:!0}),await Y$(J$(t),g),t.ref&&await X$(g,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(d,m),Og(p)}catch(f){if(await rm$1(d,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await MR(p))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${f instanceof Error?f.message:String(f)}`),Og(p);throw f}}async function Og(t){return {resolvedPath:t,version:await Z$(t)}}async function MR(t){return j(t)}function J$(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 Y$(t,e){$R(t,"clone-url"),await Lg(["clone",t,e]);}async function X$(t,e){$R(e,"ref"),await Lg(["checkout",e],t);}async function Z$(t){return Lg(["rev-parse","HEAD"],t)}async function Lg(t,e){let{stdout:r}=await V$("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var V$,GR,Ag=u(()=>{T();V$=promisify(execFile),GR="repo";s($R,"ensureNotFlag");s(op,"fetchGitRemoteExtend");s(Og,"readCachedRepo");s(MR,"hasCachedRepo");s(J$,"resolveCloneUrl");s(Y$,"cloneRepo");s(X$,"checkoutRef");s(Z$,"getHeadSha");s(Lg,"runGit");});async function rj(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 o=t.body;if(!o){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 n=o.getReader(),i=[],a=0;for(;;){let{done:m,value:p}=await n.read();if(m)break;if(p){if(a+=p.byteLength,a>e)throw await n.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${e} bytes during streaming`);i.push(p);}}let c=new Uint8Array(a),l=0;for(let m of i)c.set(m,l),l+=m.byteLength;return c}async function BR(t,e,r){let o=`https://api.github.com/repos/${t}/${e}/releases/latest`,n={Accept:"application/vnd.github+json"};r&&(n.Authorization=`Bearer ${r}`);let i=await globalThis.fetch(o,{headers:n});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 WR(t,e,r,o,n,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,c=r.refresh===true,l=t.tag;if(l==="latest")try{l=await BR(t.org,t.repo,a);}catch(E){if(!i)throw E;return nj(t,e,r,o,n,a)}let m=n("github",`${t.org}/${t.repo}`,l),p=join(o,m);if(!c&&await j(p)){let E=await kg(p);if(E)return {resolvedPath:join(p,E),version:l}}let d=`https://github.com/${t.org}/${t.repo}/tarball/${l}`,g={};a&&(g.Authorization=`Bearer ${a}`);let f;try{let E=await globalThis.fetch(d,{headers:g,redirect:"follow"});if(!E.ok)throw new Error(`HTTP ${E.status}: ${E.statusText}`);f=await rj(E,ej);}catch(E){if(r.allowOfflineFallback!==false&&await j(p)){let F=await kg(p);if(F)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${E instanceof Error?E.message:String(E)}`),{resolvedPath:join(p,F),version:l}}throw E}await rm$1(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,f);try{await KR.extract({file:h,cwd:p,strict:!0,filter:s((E,A)=>!(oj(E)||A&&"type"in A&&(A.type==="Link"||A.type==="SymbolicLink")),"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let O=await kg(p);if(!O)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,O),version:l}}async function kg(t){let r=(await readdir(t,{withFileTypes:true})).filter(o=>o.isDirectory()&&!o.name.startsWith("."));return r.length===1?r[0].name:null}function UR(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}function oj(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function nj(t,e,r,o,n,i){let a=i?[UR(t.org,t.repo,i)]:[UR(t.org,t.repo),`ssh://git@github.com/${t.org}/${t.repo}.git`],c;for(let l of a){let m={url:l};try{return await op(m,e,r,o,n)}catch(p){c=p;}}throw c instanceof Error?c:new Error("Failed to clone GitHub default branch")}var ej,HR=u(()=>{T();Ag();ej=500*1024*1024;s(rj,"readBoundedResponse");s(BR,"resolveLatestTag");s(WR,"fetchGithubRemoteExtend");s(kg,"findExtractTopDir");s(UR,"buildGithubCloneUrl");s(oj,"isZipSlipPath");s(nj,"fetchGithubDefaultBranch");});function zR(t,e,r){if(!t.startsWith(e))return null;let o=t.slice(e.length).trim();if(!o)return null;let n=o.lastIndexOf("@");if(n<0)return [o,r];let i=o.slice(0,n).trim(),a=o.slice(n+1).trim();return !i||!a?null:[i,a]}function VR(t){let e=zR(t,"github:","latest");if(!e)return null;let[r,o]=e,n=r.indexOf("/");if(n<0)return null;let i=r.slice(0,n).trim(),a=r.slice(n+1).trim();return !i||!a||!o?null:{org:i,repo:a,tag:o}}function JR(t){let e=zR(t,"gitlab:");if(!e)return null;let[r,o]=e,n=r.lastIndexOf("/");if(n<0)return null;let i=r.slice(0,n).trim(),a=r.slice(n+1).trim();return !i||!a?null:{namespace:i,project:a,ref:o,cloneUrl:`https://gitlab.com/${i}/${a}.git`}}function YR(t){if(!t.startsWith("git+"))return null;let e=t.slice(4).trim();if(!e)return null;let r=e.lastIndexOf("#"),o=(r<0?e:e.slice(0,r)).trim(),n=r<0?void 0:e.slice(r+1).trim();if(!o||r>=0&&!n)return null;let i;try{i=new URL(o);}catch{return null}return ["https:","http:","ssh:","file:"].includes(i.protocol)?{url:o,ref:n}:null}function ui(t){let e=VR(t);if(e)return {kind:"github",...e};let r=JR(t);if(r)return {kind:"gitlab",...r};let o=YR(t);return o?{kind:"git",...o}:null}function wg(t){return ui(t)!==null}var yl=u(()=>{s(zR,"splitSourceRef");s(VR,"parseGithubSource");s(JR,"parseGitlabSource");s(YR,"parseGitSource");s(ui,"parseRemoteSource");s(wg,"isSupportedRemoteSource");});function cj(t){let e=ui(t);return e?e.kind==="github"?Na("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?Na("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):Na("git",e.url,e.ref??"HEAD"):null}async function QR(t,e){let r=cj(t);if(!r)return;let o=e??Le(),n=join(o,r);await rm$1(n,{recursive:true,force:true});}async function qR(t,e){let r=t??Le(),o=e??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,n;try{n=await readdir(r);}catch{return}let i=Date.now();await Promise.all(n.map(async a=>{let c=join(r,a);try{let{mtimeMs:l}=await stat(c);i-l>o&&await rm$1(c,{recursive:!0,force:!0});}catch{}}));}var Tg=u(()=>{_l();yl();s(cj,"cacheKeyFromSource");s(QR,"cleanInstallCache");s(qR,"sweepStaleCache");});function Na(t,e,r){let o=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),n;if(t==="github"){let[i,a]=e.split("/",2);i&&a?n=`${o(i)}--${o(a)}--${o(r)}`:n=`${o(t)}__${o(e)}__${o(r)}`;}else n=`${o(t)}__${o(e)}__${o(r)}`;if(n.length>rS){let i=createHash("sha256").update(n).digest("hex").slice(0,16);n=`${n.slice(0,rS-18)}--${i}`;}return n}function Le(){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 Fa(t,e,r={}){let o=ui(t);if(!o)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 n=r.cacheDir??Le();return qR(n).catch(()=>{}),o.kind==="github"?WR(o,e,r,n,Na,!t.includes("@")):op(o,e,r,n,Na)}var rS,_l=u(()=>{Ag();HR();yl();Tg();rS=80;s(Na,"buildCacheKey");s(Le,"getCacheDir");s(Fa,"fetchRemoteExtend");});function dj(t){return t.startsWith("http://")||t.startsWith("https://")}async function va(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(n=>wg(n.source))){let n=Le();await rm$1(n,{recursive:true,force:true}),await mkdir(n,{recursive:true});}let o=[];for(let n of t.extends){if(dj(n.source))throw new Error(`Remote extends (http/https) not supported: "${n.source}" for extend "${n.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(wg(n.source)){let a=await Fa(n.source,n.name,{cacheDir:Le(),refresh:r.refreshCache===true});o.push({name:n.name,resolvedPath:a.resolvedPath,features:[...n.features],target:n.target,version:a.version,path:n.path,pick:n.pick});continue}let i=resolve(e,n.source);if(!await j(i))throw new Error(`Extend "${n.name}": path does not exist: ${i}. Check extends.source in agentsmesh.yaml.`);o.push({name:n.name,resolvedPath:i,features:[...n.features],target:n.target,path:n.path,pick:n.pick});}return o}var np=u(()=>{T();_l();yl();s(dj,"isOtherRemoteSource");s(va,"resolveExtendPaths");});function w(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let o=t.slice(3,r).trim(),n=t.slice(r+3).trim();return {frontmatter:o===""?{}:parse(o)??{},body:n}}function P(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,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp as cp$1,readlink,symlink,copyFile}from'fs/promises';import {realpathSync,rmSync,statSync,existsSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,constants,readFileSync}from'fs';import {z}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 VS 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 IZ from'chokidar';import*as QG 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 _S=Object.defineProperty;var s=(t,e)=>_S(t,"name",{value:e,configurable:true});var d=(t,e)=>()=>(t&&(e=t(t=0)),e);var og=(t,e)=>{for(var r in e)_S(t,r,{get:e[r],enumerable:true});};function SS(){Si=true;}function CS(){IS=true;}function Ka(t){IS?process.stderr.write(t):process.stdout.write(t);}function h0(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function Fc(t,e){return h0()?e:`${t}${e}${Wa.reset}`}function y0(t,e){let r=[...t].length;return t+" ".repeat(Math.max(0,e-r))}var Wa,Si,IS,y,ot=d(()=>{Wa={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},Si=false,IS=false;s(SS,"muteLogger");s(CS,"redirectLoggerToStderr");s(Ka,"out");s(h0,"noColor");s(Fc,"c");s(y0,"pad");y={info(t){Si||Ka(Fc(Wa.cyan,t)+`
|
|
3
|
+
`);},warn(t){Si||process.stderr.write(Fc(Wa.yellow,"\u26A0 ")+t+`
|
|
4
|
+
`);},error(t){Si||process.stderr.write(Fc(Wa.red,"\u2717 ")+t+`
|
|
5
|
+
`);},success(t){Si||Ka(Fc(Wa.green,"\u2713 ")+t+`
|
|
6
|
+
`);},debug(t){Si||process.env.AGENTSMESH_DEBUG==="1"&&Ka(Fc(Wa.cyan,"[debug] ")+t+`
|
|
7
|
+
`);},table(t){if(Si||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("+")+"+";Ka(n+`
|
|
8
|
+
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>y0(l,r[c])).join(" | ")+" |";Ka(a+`
|
|
9
|
+
`);}Ka(n+`
|
|
10
|
+
`);}};});var yo,Nr,za,_n,Va,be,_o=d(()=>{yo=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},Nr=class extends yo{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;}},za=class extends yo{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;}},_n=class extends yo{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;}},Va=class extends yo{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;}},be=class extends yo{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 Ap(t){let e=extname(t).toLowerCase();if(e.length>0)return E0.has(e);let r=basename(t).toLowerCase();return L0.has(r)}function wp(t){return t.replace(/\r\n?/g,`
|
|
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:`---
|
|
12
12
|
${stringify(t,{lineWidth:0}).trimEnd()}
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
${e}`}var
|
|
16
|
-
`;)r++;continue}e+=
|
|
15
|
+
${e}`}var j=d(()=>{s(b,"parseFrontmatter");s(TB,"extractBody");s(Fr,"tryParseFrontmatter");s(Io,"parseOrSkipFrontmatter");s(T,"serializeFrontmatter");});function NB(t){let e=t.replace(/\.[^.]*$/,"").toUpperCase();return xB.has(e)}function lC(t){let e=[],r=t.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(DB.test(n)){e.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){e.push({segment:n,reason:"trailing-dot-or-space"});continue}NB(n)&&e.push({segment:n,reason:"reserved-name"});}return e}var xB,DB,cC=d(()=>{xB=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),DB=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(NB,"segmentReservedName");s(lC,"findWindowsPathIssues");});function So(t,e){let r=lC(e);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new vp(t,e,`canonical ${t} name "${e}" is not portable to Windows: ${n}. Rename the file.`)}function Mp(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 vp(t,m,`canonical ${t} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var vp,Bc=d(()=>{cC();vp=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(e,r,n){super(n),this.feature=e,this.name=r;}};s(So,"assertCanonicalName");s(Mp,"assertNoBasenameCollisions");});function tl(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();MB.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 MB,$p=d(()=>{ot();MB=new Set([".toml",".yaml",".yml",".json"]);s(tl,"warnIfUnrecognizedResourceFormats");});function pC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}async function Cs(t,e={}){let r=await v(t),n=r.filter(i=>{if(!i.endsWith(".md"))return false;let a=basename(i,".md");return a==="_root"||!a.startsWith("_")});tl("rules",t,r,n,{handledByOtherReader:e.handledByOtherReader});let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Io(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");So("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&$B.includes(g)?g:void 0,R=c.codex_emit,C=R==="execution"?"execution":R==="advisory"?"advisory":void 0,k=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:pC(c.targets),description:typeof c.description=="string"?c.description:"",globs:pC(c.globs),body:m,...h!==void 0&&{trigger:h},...C!==void 0&&{codexEmit:C},...k!==void 0&&{codexInstructionVariant:k}});}return o}var $B,Kc=d(()=>{w();j();Bc();$p();$B=["always_on","model_decision","glob","manual"];s(pC,"toStrArray");s(Cs,"parseRules");});function dC(t){return t===true||t==="true"||t===1||t==="1"}function fC(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 ks(t,e={}){let r=await v(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));tl("commands",t,r,n,{handledByOtherReader:e.handledByOtherReader}),Mp("command",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Io(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");So("command",p);let u=fC(c.allowedTools),f=fC(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:dC(c.outputStyle)||dC(c["output-style"]),body:m});}return o}var Wc=d(()=>{w();j();Bc();$p();s(dC,"toBool");s(fC,"toToolsArray");s(ks,"parseCommands");});function Oi(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 hC(t){return t===true||t==="true"||t===1||t==="1"}function yC(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 GB(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}async function Es(t,e={}){let r=await v(t),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));tl("agents",t,r,n,{handledByOtherReader:e.handledByOtherReader}),Mp("agent",n,".md");let o=[];for(let i of n){let a=await _(i);if(!a)continue;let l=Io(a,i,e.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");So("agent",p);let u=Oi(c.tools),f=Oi(c.tools),g=u.length>0?u:f,h=Oi(c.disallowedTools),R=Oi(c["disallowed-tools"]),C=h.length>0?h:R,S=Oi(c.mcpServers),k=Oi(c["mcp-servers"]),P=S.length>0?S:k,N=Oi(c.skills),F=yC(c.maxTurns),W=yC(c["max-turns"]),z=F>0?F:W>0?W:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:C,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:z,mcpServers:P,hooks:GB(c.hooks),skills:N,memory:typeof c.memory=="string"?c.memory:"",outputStyle:hC(c.outputStyle)||hC(c["output-style"]),body:m});}return o}var Hc=d(()=>{w();j();Bc();$p();s(Oi,"toStrArray");s(hC,"toBool");s(yC,"toInt");s(GB,"toHooks");s(Es,"parseAgents");});function kg(t){let e=t.toLowerCase(),r=e.lastIndexOf("."),n=r>0?e.slice(0,r):e;return jB.get(n)}function In(t){return kg(t)!==void 0}function Gp(t){return kg(t)==="preserved"}function jp(t){return kg(t)==="noise"}function _C(t){return UB.has(t)}function RC(t){return BB.has(t)}var jB,UB,BB,Co=d(()=>{jB=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"]]),UB=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),BB=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(kg,"boilerplateKind");s(In,"isBoilerplate");s(Gp,"isPreservedBoilerplate");s(jp,"isNoiseBoilerplate");s(_C,"isRepoNonContentDir");s(RC,"isRepoNonContentFile");});async function HB(t){return await _(t)??""}function VB(t){let e=t.lastIndexOf(".");return e<0?true:zB.has(t.slice(e).toLowerCase())}function YB(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function IC(t){let e=await v(t),r=[];for(let n of e){let i=n.slice(t.length+1).replace(/\\/g,"/");if(i===Up||i.endsWith(`/${Up}`))continue;let a=i.split("/")[0];if(JB.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(VB(l)&&jp(l))continue;let c=await HB(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function Bp(t,e={}){let r=join(t,Up),n=await _(r);if(!n)return null;let o=Io(n,r,e.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await IC(t),m=(typeof i.name=="string"?YB(i.name):"")||basename(t);return So("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Ls(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;So("skill",o.name);let i=join(t,o.name),a=join(i,Up),l=await _(a);if(!l)continue;let c=Io(l,a,e.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await IC(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 Up,zB,JB,el=d(()=>{w();j();Co();Bc();s(HB,"readContent");Up="SKILL.md",zB=new Set([".md",".mdx",".rst",".txt"]);s(VB,"isMarkdownLikeDoc");JB=[".git","node_modules"];s(YB,"sanitizeSkillName");s(IC,"listSupportingFiles");s(Bp,"parseSkillDirectory");s(Ls,"parseSkills");});function SC(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}function XB(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=SC(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:SC(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 ZB(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 vr(t){let e=await _(t);if(!e)return null;let r;try{r=JSON.parse(ZB(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=XB(a);l&&(o[i]=l);}return {mcpServers:o}}var zc=d(()=>{w();s(SC,"parseStringMap");s(XB,"parseServer");s(ZB,"stripJsonComments");s(vr,"parseMcp");});function Lg(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}async function Kp(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=Lg(n.allow),i=Lg(n.deny),a=Lg(n.ask);return {allow:o,deny:i,ask:a}}var Og=d(()=>{w();s(Lg,"ensureStringArray");s(Kp,"parsePermissions");});function CC(t){return typeof t=="string"?t.trim():""}function zt(t){return CC(t.command)}function he(t){return CC(t.prompt)}function Ag(t){let e=zt(t),r=he(t);return t.type==="prompt"?r||e:e||r}function ko(t){return zt(t).length>0}function Sn(t){return Ag(t).length>0}var Mr=d(()=>{s(CC,"trimString");s(zt,"getHookCommand");s(he,"getHookPrompt");s(Ag,"getHookText");s(ko,"hasHookCommand");s(Sn,"hasHookText");});function eK(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=Ag(e);if(!n)return null;let o=typeof e.type=="string"&&tK.includes(e.type)?e.type:void 0,i=typeof e.timeout=="number"&&Number.isFinite(e.timeout)?e.timeout:void 0,a=he(e)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function Wp(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=eK(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var tK,wg=d(()=>{w();Mr();tK=["command","prompt"];s(eK,"toHookEntry");s(Wp,"parseHooks");});async function Hp(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 bg=d(()=>{w();s(Hp,"parseIgnore");});async function Ee(t,e={}){let r=join(t,".agentsmesh"),n=await $(r)?r:t,[o,i,a,l,c,m,p,u]=await Promise.all([Cs(join(n,"rules"),e),ks(join(n,"commands"),e),Es(join(n,"agents"),e),Ls(join(n,"skills"),e),vr(join(n,"mcp.json")),Kp(join(n,"permissions.yaml")),Wp(join(n,"hooks.yaml")),Hp(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Ai=d(()=>{Kc();Wc();Hc();el();zc();Og();wg();bg();w();s(Ee,"loadCanonicalFiles");});function kC(t){return basename(t.source,".md")}function rl(t,e){let r=new Map(t.rules.map(p=>[kC(p),p]));for(let p of e.rules)r.set(kC(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=nK(t.mcp,e.mcp),l=oK(t.permissions,e.permissions),c=sK(t.hooks,e.hooks),m=iK(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 nK(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=Pg(t?.allow??[],e?.allow??[]),n=Pg(t?.deny??[],e?.deny??[]),o=Pg(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}function Pg(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 sK(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 iK(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 Tg=d(()=>{s(kC,"ruleSlug");s(rl,"mergeCanonicalFiles");s(nK,"mergeMcp");s(oK,"mergePermissions");s(Pg,"mergeUniqueStrings");s(sK,"mergeHooks");s(iK,"mergeIgnore");});function dK(t){return typeof t=="string"?t:t.level}function EC(t){return uK.includes(t)}function LC(t,e,r,n){for(let o of pK){let i=dK(e[o.feature]);if(i==="none")continue;let a=typeof t.generators[o.generator]=="function",l=EC(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}`+(EC(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function zp(t){return yK.parse(t)}var Lo,OC,aK,lK,AC,cK,mK,pK,uK,fK,gK,hK,yK,xg=d(()=>{Lo=z.union([z.enum(["native","embedded","partial","none"]),z.object({level:z.enum(["native","embedded","partial","none"]),flavor:z.string().optional()})]),OC=z.object({rules:Lo,additionalRules:Lo,commands:Lo,agents:Lo,skills:Lo,mcp:Lo,hooks:Lo,ignore:Lo,permissions:Lo}),aK=z.object({name:z.string(),generateRules:z.function(),importFrom:z.function(),generateCommands:z.function().optional(),generateAgents:z.function().optional(),generateSkills:z.function().optional(),generateMcp:z.function().optional(),generatePermissions:z.function().optional(),generateHooks:z.function().optional(),generateIgnore:z.function().optional(),lint:z.function().optional()}).passthrough(),lK=z.object({rulePath:z.function(),commandPath:z.function(),agentPath:z.function()}),AC=z.object({paths:lK}).passthrough(),cK=z.object({capabilities:OC,detectionPaths:z.array(z.string()),layout:AC,scopeExtras:z.function().optional()}).passthrough(),mK=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],pK=[{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"}],uK=["mcp","hooks","ignore","permissions"];s(dK,"capabilityLevel");s(EC,"canUseScopedSettings");s(LC,"validateCapabilityImplementations");fK=z.object({commandsToSkills:z.boolean().optional(),agentsToSkills:z.boolean().optional()}).strict(),gK=z.object({displayName:z.string().min(1),category:z.enum(["cli","ide","agent-platform"]),officialUrl:z.string().min(1),shortDescription:z.string().min(1)}).passthrough(),hK=z.object({id:z.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:gK,generators:aK,capabilities:OC,emptyImportMessage:z.string(),lintRules:z.union([z.function(),z.null()]),project:AC,globalSupport:cK.optional(),buildImportPaths:z.function(),detectionPaths:z.array(z.string()),excludeFromStarterInit:z.boolean().optional(),conversionDefaults:fK.optional(),emitScopedSettings:z.function().optional(),mergeGeneratedOutputContent:z.function().optional(),postProcessHookOutputs:z.function().optional(),preservesManualActivation:z.boolean().optional()}).passthrough(),yK=hK.superRefine((t,e)=>{for(let r of mK)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});LC(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&LC(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});s(zp,"validateDescriptor");});function wC(){if(Dg)return Dg;let t=bt.filter(r=>r!==void 0&&typeof r.id=="string"),e=new Map(t.map(r=>[r.id,r]));return t.length===bt.length&&(Dg=e),e}function Jp(t){let e=zp(t);Vp.set(e.id,e);}function et(t){return Vp.get(t)??wC().get(t)}function Yp(){return [...Vp.values()]}function bC(){return [...new Set([...wC().keys(),...Vp.keys()])]}var Vp,Dg,se=d(()=>{Pt();xg();Vp=new Map;s(wC,"builtinDescriptors");s(Jp,"registerTargetDescriptor");s(et,"getDescriptor");s(Yp,"getAllDescriptors");s(bC,"getAllRegisteredDescriptorIds");});function PC(t,e){return et(t)?.conversionDefaults?.[e]}function TC(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function nl(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],i=TC(o,n);if(i!==void 0)return i;let a=PC(e,"commandsToSkills");return a!==void 0?a:r??false}function qe(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],i=TC(o,n);if(i!==void 0)return i;let a=PC(e,"agentsToSkills");return a!==void 0?a:r??false}var ol=d(()=>{se();s(PC,"builtinDefault");s(TC,"resolveConversionValue");s(nl,"shouldConvertCommandsToSkills");s(qe,"shouldConvertAgentsToSkills");});function Gr(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function $r(t){return typeof t=="string"?{level:t}:t}function xC(t){return {rules:$r(t.rules),additionalRules:$r(t.additionalRules),commands:$r(t.commands),agents:$r(t.agents),skills:$r(t.skills),mcp:$r(t.mcp),hooks:$r(t.hooks),ignore:$r(t.ignore),permissions:$r(t.permissions)}}var wi=d(()=>{s(Gr,"cap");s($r,"normalizeCapabilityValue");s(xC,"normalizeTargetCapabilities");});function DC(t){for(let e of bt)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}function _K(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 NC(t){let e=_K(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 Ng=d(()=>{Pt();s(DC,"ownerTargetIdForSharedPath");s(_K,"findSharedArtifactOwnershipConflicts");s(NC,"assertSharedArtifactOwnersUnique");});function RK(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 H(t){return `${sl}${t}`}function Nt(t){let e={name:H(t.name),description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],T(e,t.body.trim()||"")}function Xp(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(sl)?e.slice(sl.length):e.startsWith(Vc)?e.slice(Vc.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:RK(t["x-agentsmesh-allowed-tools"])}:null}function Zp(t,e){return T({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}var sl,Vc,kt=d(()=>{j();sl="am-command-",Vc="ab-command-";s(RK,"toStringArray");s(H,"commandSkillDirName");s(Nt,"serializeCommandSkill");s(Xp,"parseCommandSkillFrontmatter");s(Zp,"serializeImportedCommand");});function Qp(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 IK(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 U(t){return `${il}${t}`}function Tt(t){let e={name:U(t.name),description:t.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":t.name,"x-agentsmesh-tools":t.tools.length>0?t.tools:void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-model":t.model||void 0,"x-agentsmesh-permission-mode":t.permissionMode||void 0,"x-agentsmesh-max-turns":t.maxTurns>0?t.maxTurns:void 0,"x-agentsmesh-mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(t.hooks).length>0?t.hooks:void 0,"x-agentsmesh-skills":t.skills.length>0?t.skills:void 0,"x-agentsmesh-memory":t.memory||void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),T(e,t.body.trim()||"")}function al(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(il)?e.slice(il.length):e.startsWith(Jc)?e.slice(Jc.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:Qp(t["x-agentsmesh-tools"]),disallowedTools:Qp(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:Qp(t["x-agentsmesh-mcp-servers"]),hooks:IK(t["x-agentsmesh-hooks"]),skills:Qp(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}function Os(t,e){let r={name:t.name,description:t.description,tools:t.tools,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),T(r,e.trim()||"")}var il,Jc,mt=d(()=>{j();il="am-agent-",Jc="ab-agent-";s(Qp,"toStringArray");s(IK,"toHooks");s(U,"projectedAgentSkillDirName");s(Tt,"serializeProjectedAgentSkill");s(al,"parseProjectedAgentSkillFrontmatter");s(Os,"serializeImportedAgent");});function Yc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Fg(t,e){return new RegExp(`${Yc(t)}[\\s\\S]*?${Yc(e)}`,"g")}function GC(t,e,r,n){let o=Fg(e,r);if(o.test(t))return t.replace(o,n).trim();let i=t.trim();return i?`${i}
|
|
20
20
|
|
|
21
|
-
${
|
|
22
|
-
`)}function
|
|
23
|
-
`)}function
|
|
21
|
+
${n}`:n}function vg(t,e,r){return t.replace(Fg(e,r),"").trim()}function kK(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 EK(t){return {source:kK(t.source),description:t.description,globs:t.globs,targets:t.targets}}function LK(t){return `${MC}${JSON.stringify(EK(t))}${$C}`}function OK(t){let e=[LK(t)];return t.description.trim()&&e.push(`## ${t.description.trim()}`,""),e.push(t.body.trim(),vC),e.filter(r=>r.length>0).join(`
|
|
22
|
+
`)}function AK(t){return t.length===0?"":[qp,...t.map(OK),tu].join(`
|
|
23
|
+
`)}function lt(t,e){let r=AK(e),n=vg(t,qp,tu);return r?n?`${n}
|
|
24
24
|
|
|
25
|
-
${r}`:r:
|
|
25
|
+
${r}`:r:n}function FC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function wK(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:FC(r.globs),targets:FC(r.targets)}}catch{return null}}function bK(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 jC(t){let e=[],r=Fg(qp,tu);return {rootContent:t.replace(r,o=>{let i=o.replace(qp,"").replace(tu,"").trim(),a=new RegExp(`${Yc(MC)}([\\s\\S]*?)${Yc($C)}([\\s\\S]*?)${Yc(vC)}`,"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=wK(c);p&&e.push({...p,body:bK(m,p.description)});}return ""}).trim(),rules:e}}var Xc,Zc,qp,tu,vC,MC,$C,Ut=d(()=>{Xc="<!-- agentsmesh:root-generation-contract:start -->",Zc="<!-- agentsmesh:root-generation-contract:end -->",qp="<!-- agentsmesh:embedded-rules:start -->",tu="<!-- agentsmesh:embedded-rules:end -->",vC="<!-- agentsmesh:embedded-rule:end -->",MC="<!-- agentsmesh:embedded-rule:start ",$C=" -->";s(Yc,"escapeRegExp");s(Fg,"managedBlockPattern");s(GC,"replaceManagedBlock");s(vg,"stripManagedBlock");s(kK,"ruleSource");s(EK,"markerForRule");s(LK,"embeddedRuleStart");s(OK,"renderRule");s(AK,"renderEmbeddedRulesBlock");s(lt,"appendEmbeddedRulesBlock");s(FC,"toStringArray");s(wK,"parseMarker");s(bK,"stripGeneratedHeading");s(jC,"extractEmbeddedRules");});function Mg(t){return t.replace(/\s+/g," ").trim()}function BC(t){let e=t.trim();if(e.includes(Xc)&&e.includes(Zc))return GC(e,Xc,Zc,ll);let r=Mg(e);if(r.includes(Mg(ll)))return e;for(let n of UC)if(r.includes(Mg(n)))return e.replace(n,ll);return e?`${e}
|
|
26
26
|
|
|
27
|
-
${
|
|
27
|
+
${ll}`:ll}function KC(t){let e=vg(t,Xc,Zc);e=e.replace(`
|
|
28
28
|
|
|
29
|
-
${
|
|
29
|
+
${ll}`,"");for(let r of UC)e=e.replace(`
|
|
30
30
|
|
|
31
|
-
${r}`,"");return e.trim()}var
|
|
31
|
+
${r}`,"");return e.trim()}var $g,PK,TK,xK,DK,NK,FK,vK,MK,$K,GK,jK,UK,BK,KK,WK,HK,ll,UC,Gg=d(()=>{Ut();$g="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.",PK="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.",TK="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.",xK="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.",DK="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`.",NK="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`.",FK="`.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`.",vK="`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.",MK=$g,$K=`## Project-Specific Rules
|
|
32
32
|
|
|
33
|
-
${
|
|
33
|
+
${$g}`,GK=`## AgentsMesh Generation Contract
|
|
34
34
|
|
|
35
|
-
${
|
|
35
|
+
${$g}`,jK=`## AgentsMesh Generation Contract
|
|
36
36
|
|
|
37
|
-
${
|
|
37
|
+
${PK}`,UK=`## AgentsMesh Generation Contract
|
|
38
38
|
|
|
39
|
-
${
|
|
39
|
+
${TK}`,BK=`## AgentsMesh Generation Contract
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${xK}`,KK=`## AgentsMesh Generation Contract
|
|
42
42
|
|
|
43
|
-
${
|
|
43
|
+
${DK}`,WK=`## AgentsMesh Generation Contract
|
|
44
44
|
|
|
45
|
-
${
|
|
45
|
+
${NK}`,HK=`## AgentsMesh Generation Contract
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${FK}`,ll=`${Xc}
|
|
48
48
|
## AgentsMesh Generation Contract
|
|
49
49
|
|
|
50
|
-
${
|
|
51
|
-
${
|
|
52
|
-
`)}]}var XS=u(()=>{Q();Mt();at();St();Va();s(HS,"generateRules");s(zS,"generateSkills");s(VS,"generateCommands");s(JS,"generateAgents");s(YS,"generateIgnore");});async function $t(t,e,r){let o=join(t,e),i={...await LU(o),...r};await L(dirname(o)),await I(o,JSON.stringify({mcpServers:i},null,2));}async function LU(t){let e=await y(t);if(e===null)return {};let r;try{r=JSON.parse(e);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let o=r.mcpServers;if(!o||typeof o!="object"||Array.isArray(o))return {};let n={};for(let[i,a]of Object.entries(o))!a||typeof a!="object"||Array.isArray(a)||(n[i]=a);return n}var Nr=u(()=>{T();s($t,"writeMcpWithMerge");s(LU,"readExistingServers");});function yn(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function Ze(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 hs(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function ho(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var Qe=u(()=>{s(yn,"toGlobsArray");s(Ze,"toToolsArray");s(hs,"toStringArray");s(ho,"toStringRecord");});function wU(t,e){return e.some(r=>t.endsWith(r))}async function yt(t){let r=(await N(t.srcDir)).filter(n=>wU(n,t.extensions)),o=[];for(let n of r){let i=await y(n);if(!i)continue;let a=relative(t.srcDir,n).replace(/\\/g,"/"),c=await t.mapEntry({srcPath:n,relativePath:a,content:i,normalizeTo:s((l,m=i)=>t.normalize(m,n,l),"normalizeTo")});c&&(await L(dirname(c.destPath)),await I(c.destPath,c.content),o.push({fromTool:t.fromTool,fromPath:n,toPath:c.toPath,feature:c.feature}));}return o}var ke=u(()=>{T();s(wU,"matchesExtension");s(yt,"importFileDirectory");});function ZS(t){return typeof t=="string"?t:void 0}function TU(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function Jg(t,e){return e?e(t):t}function bU(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:o,body:n}=w(e.normalizeTo(r)),i=Jg(o,t.frontmatterRemap),a=TU({root:false,description:ZS(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await K(r,a,n)}}}function PU(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:o,body:n}=w(e.normalizeTo(r)),i=Jg(o,t.frontmatterRemap),a=await ht(r,{hasDescription:true,description:ZS(i.description),hasAllowedTools:true,allowedTools:hs(i["allowed-tools"])},n);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:a}}}function xU(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:o,body:n}=w(e.normalizeTo(r)),i=Jg(o,t.frontmatterRemap);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await Bt(r,i,n)}}}function QS(t){if(t.map)return t.map;switch(t.preset){case "rule":return bU(t);case "command":return PU(t);case "agent":return xU(t);default:throw new Error(`ImportFeatureSpec for ${t.feature} (mode: ${t.mode}) needs a \`preset\` or \`map\``)}}var qS=u(()=>{M();lt();Qe();s(ZS,"pickString");s(TU,"pruneUndefined");s(Jg,"applyRemap");s(bU,"ruleMapper");s(PU,"commandMapper");s(xU,"agentMapper");s(QS,"resolveMapper");});function Yg(t,e){return t?t[e]??[]:[]}var tC,eC=u(()=>{tC=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(Yg,"resolveScopedSources");});async function FU(t,e,r,o,n){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 c=join(r,a),l=await y(c);if(l===null)continue;await L(i);let m=join(i,t.canonicalRootFilename),p=s(R=>n(l,c,R),"normalizeTo");if(t.map){let R=await t.map({absolutePath:c,relativePath:a,content:l,destDir:i,normalizeTo:p});if(!R)continue;return await I(R.destPath,R.content),[{fromTool:o,fromPath:c,toPath:R.toPath,feature:t.feature}]}let{frontmatter:d,body:g}=w(p(m)),f=t.frontmatterRemap?t.frontmatterRemap(d):d,h=t.markAsRoot?{...f,root:true}:f,O=await K(m,h,g);return await I(m,O),[{fromTool:o,fromPath:c,toPath:`${t.canonicalDir}/${t.canonicalRootFilename}`,feature:t.feature}]}return []}async function vU(t,e,r,o,n){let i=QS(t),a=join(r,t.canonicalDir),c=[];for(let l of e){let m=join(r,l),p=await yt({srcDir:m,destDir:a,extensions:[...t.extensions??[".md"]],fromTool:o,normalize:n,mapEntry:s(async({srcPath:d,relativePath:g,content:f,normalizeTo:h})=>{let O=await i({absolutePath:d,relativePath:g,content:f,destDir:a,normalizeTo:s(R=>h(R),"normalizeTo")});return O?{destPath:O.destPath,toPath:O.toPath,feature:t.feature,content:O.content}:null},"mapEntry")});c.push(...p);}return c}function oC(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function GU(t,e,r,o){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let n=oC(t);for(let i of e){let a=join(r,i),c=await y(a);if(c===null)continue;let l=join(r,n);return await L(dirname(l)),await I(l,c.trimEnd()),[{fromTool:o,fromPath:a,toPath:n,feature:t.feature}]}return []}function MU(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 o={};for(let[n,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,c=typeof a.description=="string"?a.description:void 0;if(typeof a.command=="string"){o[n]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:hs(a.args),env:ho(a.env),description:c};continue}typeof a.url=="string"&&(o[n]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:ho(a.headers),env:ho(a.env),description:c});}return o}async function $U(t,e,r,o){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let n=oC(t);for(let i of e){let a=join(r,i),c=await y(a);if(c===null)continue;let l=MU(c);return Object.keys(l).length===0?[]:(await $t(r,n,l),[{fromTool:o,fromPath:a,toPath:n,feature:t.feature}])}return []}function rC(t,e,r,o,n){switch(t.mode){case "singleFile":return FU(t,e,r,o,n);case "directory":return vU(t,e,r,o,n);case "flatFile":return GU(t,e,r,o);case "mcpJson":return $U(t,e,r,o)}}async function jU(t,e,r,o,n){let i=Yg(t.source,e),a=Yg(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let c=await rC(t,i,r,o,n);if(c.length>0)return c}return a.length>0?rC(t,a,r,o,n):[]}function UU(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function z(t,e,r,o){let n=t.importer;if(!n)return [];let i=o?.normalize??await U(t.id,e,r),a=[];for(let c of tC)for(let l of UU(n,c))a.push(...await jU(l,r,e,t.id,i));return a}var Ct=u(()=>{mt();T();Nr();M();Qe();lt();ke();qS();eC();s(FU,"runSingleFile");s(vU,"runDirectory");s(oC,"resolveCanonicalFilePath");s(GU,"runFlatFile");s(MU,"parseMcpJson");s($U,"runMcpJson");s(rC,"dispatchSpec");s(jU,"runSpec");s(UU,"specsForFeature");s(z,"runDescriptorImport");});async function nC(t,e={}){let r=e.scope??"project",o=[],n=await U(fo,t,r);return o.push(...await z(Cp,t,r,{normalize:n})),await Z(t,r==="global"?Xe:re,fo,o,n),o}var sC=u(()=>{mt();Q();Ct();Va();Xg();s(nC,"importFromAider");});function KU(t,e){return aC(e).some(o=>BU(t,o))}function iC(t,e){return t.filter(r=>KU(r,e))}function aC(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,o,n]=e;if(!o)return [t];let i=o.split(",").map(c=>c.trim()),a=[];for(let c of i)for(let l of aC(r+c+n))a.push(l);return a}function BU(t,e){return WU(e).test(t)}function WU(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 o="^"+e.join("")+"$";return new RegExp(o)}var cC=u(()=>{s(KU,"globMatch");s(iC,"globFilter");s(aC,"expandBraces");s(BU,"matchOne");s(WU,"globToRegex");});function H(t,e,r,o={}){let n=[],{rules:i}=t;if(i.length===0)return [];if(i.some(c=>c.root)||n.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."}),o.checkGlobMatches===false)return n;for(let c of i){if(c.globs.length===0)continue;let l=false;for(let m of c.globs)if(iC(r,m).length>0){l=true;break}l||n.push({level:"warning",file:relative(e,c.source),message:`globs "${c.globs.join(", ")}" match 0 files in project`});}return n}var _t=u(()=>{cC();s(H,"validateRules");});function mC(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:fo}))}var pC=u(()=>{_t();Va();s(mC,"lintRules");});function b(t,e,r){return {level:"warning",file:t,target:e,message:r}}function HU(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 _s(t,e,r,o){let n=o?.unsupportedBy??e,i=HU(r);return b(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${n}; only ${i} are projected.`)}var Et=u(()=>{s(b,"createWarning");s(HU,"formatOxfordComma");s(_s,"createUnsupportedHookWarning");});function uC(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function dC(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function gC(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[b(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var fC=u(()=>{Et();s(uC,"lintHooks");s(dC,"lintPermissions");s(gC,"lintMcp");});function S(t,e){return et(t).relative(t,e).replace(/\\/g,"/")}async function C(t,e){return N(et(t).join(t,e)).catch(()=>[])}function yC(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function ZU(t,e,r,o){let n=posix.dirname(e),i=posix.dirname(r);for(;n!==o&&n!==".";)yC(t,n,i),n=posix.dirname(n),i=posix.dirname(i);}function x(t,e,r,o){t.set(e,`${r}/${basename(e,o)}.md`);}function D(t,e,r){if(!e.startsWith(`${r}/`))return;let o=e.slice(r.length+1);if(!o)return;if(!o.includes("/")){if(!o.endsWith(".md")||basename(o)==="SKILL.md")return;let d=basename(o,".md");t.set(e,`${hC}/${d}/SKILL.md`);return}let[n,...i]=o.split("/"),a=i.join("/");if(!n||!a)return;let c=n.startsWith(Ka)?Ka:n.startsWith(Sl)?Sl:null;if(c&&a==="SKILL.md"){t.set(e,`${YU}/${n.slice(c.length)}.md`);return}let l=n.startsWith(Ba)?Ba:n.startsWith(Cl)?Cl:null;if(l&&a==="SKILL.md"){t.set(e,`${XU}/${n.slice(l.length)}.md`);return}let m=`${hC}/${n}`;a==="SKILL.md"&&yC(t,`${r}/${n}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&ZU(t,e,p,`${r}/${n}`);}function QU(t){return t.split("/").filter(Boolean)[0]??""}async function qU(){if(Zg!==void 0)return Zg;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(xt(),_C)),e=new Set;for(let r of t)for(let o 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(o!==void 0){let n=QU(o);n.startsWith(".")&&e.add(n);}return Zg=e,e}function qg(t){return t.split("/").some(e=>e.startsWith("."))}async function t0(t){let e=[],r=await qU(),o=et(t);async function n(i){let a=o.join(t,i),c=await readdir(a,{withFileTypes:true}).catch(()=>[]);for(let l of c){let m=i?`${i}/${l.name}`:l.name;if(l.isDirectory()){if(r.has(l.name)||qg(m))continue;await n(m);continue}if(l.isSymbolicLink()&&await stat(o.join(t,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(l.name)||qg(m))continue;await n(m);continue}(l.name==="AGENTS.md"||l.name==="AGENTS.override.md")&&e.push(o.join(t,m));}}return s(n,"walk"),await n(""),e}async function Ep(t,e){let r=await t0(e);for(let o of r){let n=S(e,o),i=n.endsWith("/AGENTS.md")&&n!=="AGENTS.md"&&!n.endsWith("/AGENTS.override.md"),a=n.endsWith("/AGENTS.override.md")&&n!=="AGENTS.override.md";if(!i&&!a)continue;let c=posix.dirname(n);if(qg(c))continue;let l=c.replace(/\//g,"-");t.set(n,`${JU}/${l}.md`);}}var JU,YU,XU,hC,Zg,It=u(()=>{ee();T();St();at();JU=".agentsmesh/rules",YU=".agentsmesh/commands",XU=".agentsmesh/agents",hC=".agentsmesh/skills";s(S,"rel");s(C,"listFiles");s(yC,"addDirectoryMapping");s(ZU,"addAncestorMappings");s(x,"addSimpleFileMapping");s(D,"addSkillLikeMapping");s(QU,"firstPathSegment");s(qU,"targetRootSegments");s(qg,"hasHiddenSegment");s(t0,"listScopedAgentsFiles");s(Ep,"addScopedAgentsMappings");});var k,rt,Ot,gt=u(()=>{k=".agentsmesh/rules",rt=".agentsmesh/commands",Ot=".agentsmesh/agents";});async function tf(t,e,r="project"){if(r==="global"){t.set(hn,`${k}/_root.md`);for(let o of await C(e,Xe))D(t,S(e,o),Xe);t.set(Ii,".agentsmesh/ignore");return}t.set(Ye,`${k}/_root.md`);for(let o of await C(e,re))D(t,S(e,o),re);t.set(fn,".agentsmesh/ignore");}var IC=u(()=>{It();Va();gt();s(tf,"buildAiderImportPaths");});var Ri,Fr,Si,Is,Tl,RC,SC,bl=u(()=>{Ri="amazon-q",Fr=".amazonq/rules",Si=".amazonq/mcp.json",Is=".aws/amazonq/rules",Tl=".aws/amazonq/mcp.json",RC=".agentsmesh/rules",SC=".agentsmesh/mcp.json";});async function ef(t,e,r="project"){let o=r==="global"?Is:Fr;for(let n of await C(e,o)){let i=S(e,n);x(t,i,k,".md");}}var CC=u(()=>{It();bl();gt();s(ef,"buildAmazonQImportPaths");});var qe,oe,yo,rf,_n,tr,In,EC,Ci=u(()=>{qe="AGENTS.md",oe=".agents/skills",yo=".amp/settings.json",rf=".config/amp",_n=`${rf}/AGENTS.md`,tr=`${rf}/skills`,In=`${rf}/settings.json`,EC=".agentsmesh/rules";});async function of(t,e,r="project"){if(r==="global"){t.set(_n,`${k}/_root.md`);for(let o of await C(e,tr))D(t,S(e,o),tr);t.set(In,".agentsmesh/mcp.json");return}t.set(qe,`${k}/_root.md`);for(let o of await C(e,oe))D(t,S(e,o),oe);t.set(yo,".agentsmesh/mcp.json");}var OC=u(()=>{It();Ci();gt();s(of,"buildAmpImportPaths");});var Ei,Op,_o,vr,Pl,Gr,Rn,xl,Io,Sn,Dl,Ja,nf,Oi,Lp,LC,Li=u(()=>{Ei="antigravity",Op=".agents",_o=`${Op}/rules`,vr=`${_o}/general.md`,Pl=`${_o}/_root.md`,Gr=`${Op}/skills`,Rn=`${Op}/workflows`,xl=`${Op}/antigravity/mcp_config.json`,Io=".gemini/antigravity/GEMINI.md",Sn=".gemini/antigravity/skills",Dl=".gemini/antigravity/workflows",Ja=".gemini/antigravity/mcp_config.json",nf=".agentsmesh/rules/_root.md",Oi=".agentsmesh/rules",Lp=".agentsmesh/commands",LC=".agentsmesh/mcp.json";});async function sf(t,e,r="project"){if(r==="global"){t.set(Io,`${k}/_root.md`);for(let o of await C(e,Sn))D(t,S(e,o),Sn);t.set(Ja,".agentsmesh/mcp.json");return}t.set(vr,`${k}/_root.md`),t.set(Pl,`${k}/_root.md`);for(let o of await C(e,_o)){let n=S(e,o);n===vr||n===Pl||x(t,n,k,".md");}for(let o of await C(e,Rn))x(t,S(e,o),rt,".md");for(let o of await C(e,Gr))D(t,S(e,o),Gr);}var AC=u(()=>{It();Li();gt();s(sf,"buildAntigravityImportPaths");});var ne,Ap,we,er,Te,Ro,So,kp,Cn,En,Co,On,af,cf,lf,mf,Ai=u(()=>{ne="augment-code",Ap=".augment",we=`${Ap}/rules`,er=`${Ap}/commands`,Te=`${Ap}/skills`,Ro=`${Ap}/settings.json`,So=".augmentignore",kp=".augment",Cn=`${kp}/rules`,En=`${kp}/commands`,Co=`${kp}/skills`,On=`${kp}/settings.json`,af=".agentsmesh/rules",cf=".agentsmesh/mcp.json",lf=".agentsmesh/hooks.yaml",mf=".agentsmesh/ignore";});async function pf(t,e,r="project"){if(r==="global"){for(let o of await C(e,Cn))x(t,S(e,o),k,".md");for(let o of await C(e,En))x(t,S(e,o),rt,".md");for(let o of await C(e,Co))D(t,S(e,o),Co);t.set(On,".agentsmesh/mcp.json");return}for(let o of await C(e,we))x(t,S(e,o),k,".md");for(let o of await C(e,er))x(t,S(e,o),rt,".md");for(let o of await C(e,Te))D(t,S(e,o),Te);t.set(Ro,".agentsmesh/mcp.json"),t.set(So,".agentsmesh/ignore");}var kC=u(()=>{It();Ai();gt();s(pf,"buildAugmentCodeImportPaths");});var wC,Rs,TC,Nl,Fl,vl,Gl,Ml,Ln,uf,$l,Ya,jl,Ul,wp,Tp,df,Kl,gf,ki,bC,An=u(()=>{wC="claude-code",Rs=".claude/CLAUDE.md",TC="CLAUDE.md",Nl=".claude/rules",Fl=".claude/commands",vl=".claude/agents",Gl=".claude/skills",Ml=".claude/settings.json",Ln=".claude/hooks.json",uf=".claude/output-styles",$l=".claudeignore",Ya=".mcp.json",jl=".claude.json",Ul=".agentsmesh/rules",wp=".agentsmesh/commands",Tp=".agentsmesh/agents",df=".agentsmesh/skills",Kl=".agentsmesh/mcp.json",gf=".agentsmesh/permissions.yaml",ki=".agentsmesh/hooks.yaml",bC=".agentsmesh/ignore";});async function ff(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${k}/_root.md`),t.set(Ln,ki),r==="project"&&t.set("CLAUDE.md",`${k}/_root.md`),r==="global")for(let o of await C(e,".agents/skills"))D(t,S(e,o),".agents/skills");for(let o of await C(e,".claude/rules"))x(t,S(e,o),k,".md");for(let o of await C(e,".claude/commands"))x(t,S(e,o),rt,".md");for(let o of await C(e,".claude/agents"))x(t,S(e,o),Ot,".md");for(let o of await C(e,".claude/skills"))D(t,S(e,o),".claude/skills");}var PC=u(()=>{It();An();gt();s(ff,"buildClaudeCodeImportPaths");});var Ss,kn,wi,wn,xC,Jt,Eo,Cs,Ti,bi,Pi,xi,hf,Es,bp,yf,_f,DC,NC,rr=u(()=>{Ss="cline",kn=".clinerules",wi=".clineignore",wn=".cline/cline_mcp_settings.json",xC=".cline/mcp_settings.json",Jt=".cline/skills",Eo=".clinerules/workflows",Cs="AGENTS.md",Ti=".clinerules/hooks",bi="Documents/Cline/Rules",Pi="Documents/Cline/Workflows",xi="Documents/Cline/Hooks",hf=".agentsmesh/hooks.yaml",Es=".agentsmesh/rules",bp=".agentsmesh/commands",yf=".agentsmesh/ignore",_f=".agentsmesh/mcp.json",DC=".agentsmesh/agents",NC=".agentsmesh/skills";});async function If(t,e,r="project"){if(r==="global"){for(let o of await C(e,bi))x(t,S(e,o),k,".md");for(let o of await C(e,Pi))x(t,S(e,o),rt,".md");for(let o of await C(e,Jt))D(t,S(e,o),Jt);t.set(wn,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${k}/_root.md`);for(let o of await C(e,".clinerules")){let n=S(e,o);!n.endsWith(".md")||n.includes("/workflows/")||basename(n)==="_root.md"||x(t,n,k,".md");}for(let o of await C(e,".clinerules/workflows"))x(t,S(e,o),rt,".md");for(let o of await C(e,".cline/skills"))D(t,S(e,o),".cline/skills");}var FC=u(()=>{It();rr();gt();s(If,"buildClineImportPaths");});async function Rf(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${k}/_root.md`),t.set(".codex/AGENTS.override.md",`${k}/_root.md`)):(t.set("AGENTS.md",`${k}/_root.md`),t.set("codex.md",`${k}/_root.md`),await Ep(t,e)),r==="project")for(let o of await C(e,".codex/instructions"))x(t,S(e,o),k,".md");for(let o of await C(e,".codex/rules")){let n=S(e,o);n.endsWith(".rules")?x(t,n,k,".rules"):n.endsWith(".md")&&x(t,n,k,".md");}for(let o of await C(e,".codex/agents"))x(t,S(e,o),Ot,".toml");for(let o of await C(e,".agents/skills"))D(t,S(e,o),".agents/skills");}var vC=u(()=>{It();gt();s(Rf,"buildCodexCliImportPaths");});var Xa,Mr,Oo,Sf,Pp,Tn,Cf,be,Za,Bl,xp,Dp,Ef,Lo=u(()=>{Xa="continue",Mr=".continue/rules",Oo=".continue/prompts",Sf=".continue/mcpServers",Pp=`${Sf}/agentsmesh.json`,Tn=`${Mr}/general.md`,Cf=`${Mr}/_root.md`,be=".continue/skills",Za=".continue/AGENTS.md",Bl=".continue/config.yaml",xp=".agentsmesh/rules",Dp=".agentsmesh/commands",Ef=".agentsmesh/mcp.json";});async function Of(t,e,r="project"){t.set(Tn,`${k}/_root.md`),t.set(Cf,`${k}/_root.md`);for(let o of await C(e,".continue/rules")){let n=S(e,o);n===Tn||n===Cf||x(t,n,k,".md");}for(let o of await C(e,".continue/prompts"))t.set(S(e,o),`${rt}/${basename(o,".md")}.md`);for(let o of await C(e,".continue/skills"))D(t,S(e,o),".continue/skills");if(r==="global")for(let o of await C(e,".agents/skills"))D(t,S(e,o),".agents/skills");}var GC=u(()=>{It();Lo();gt();s(Of,"buildContinueImportPaths");});function o0(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${k}/${basename(e,".instructions.md")}.md`);return}x(t,e,k,".md");}async function Lf(t,e){t.set(".github/copilot-instructions.md",`${k}/_root.md`);for(let r of await C(e,".github/copilot"))t.set(S(e,r),`${k}/${basename(r,".instructions.md")}.md`);for(let r of await C(e,".github/instructions"))o0(t,S(e,r));for(let r of await C(e,".github/prompts"))t.set(S(e,r),`${rt}/${basename(r,".prompt.md")}.md`);for(let r of await C(e,".github/agents"))t.set(S(e,r),`${Ot}/${basename(r,".agent.md")}.md`);for(let r of await C(e,".github/skills"))D(t,S(e,r),".github/skills");}var MC=u(()=>{It();gt();s(o0,"addCopilotInstructionMapping");s(Lf,"buildCopilotImportPaths");});var or,nr,Yt,Pe,bn,$C,Fp,xe,Di,vp,Gp,Mp,Qa=u(()=>{or="crush",nr="CRUSH.md",Yt=".crush/skills",Pe="crush.json",bn=".crushignore",$C=".config/crush",Fp=`${$C}/crush.json`,xe=".config/crush/skills",Di=`${$C}/CRUSH.md`,vp=".agentsmesh/rules",Gp=".agentsmesh/ignore",Mp=".agentsmesh/mcp.json";});async function Af(t,e,r="project"){if(r==="global"){for(let o of await C(e,xe))D(t,S(e,o),xe);return}t.set(nr,`${vp}/_root.md`),t.set(Pe,Mp),t.set(bn,Gp);for(let o of await C(e,Yt))D(t,S(e,o),Yt);}var jC=u(()=>{It();Qa();s(Af,"buildCrushImportPaths");});var UC,Os,KC,sr,Pn,ir,qa,Ao,ko,wo,$p,$r,kf,n0,tc,jr,Wl,Ls,As,To,ks,ws,BC,ec,wf,Hl,Tf,jt=u(()=>{UC="cursor",Os="AGENTS.md",KC=".cursorrules",sr=".cursor/rules",Pn=`${sr}/general.mdc`,ir=".cursor/commands",qa=".cursor/agents",Ao=".cursor/skills",ko=".cursor/mcp.json",wo=".cursor/hooks.json",$p=".cursor/settings.json",$r=".cursorignore",kf=".cursorindexingignore",n0=".agentsmesh-exports/cursor",tc=`${n0}/user-rules.md`,jr=".cursor/AGENTS.md",Wl=ko,Ls=Ao,As=qa,To=".agentsmesh/rules",ks=".agentsmesh/commands",ws=".agentsmesh/agents",BC=".agentsmesh/skills",ec=".agentsmesh/mcp.json",wf=".agentsmesh/permissions.yaml",Hl=".agentsmesh/hooks.yaml",Tf=".agentsmesh/ignore";});async function bf(t,e,r="project"){if(r==="global"){t.set(ko,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${k}/_root.md`);for(let o of await C(e,".cursor/rules"))x(t,S(e,o),k,".mdc");for(let o of await C(e,".cursor/commands"))x(t,S(e,o),rt,".md");for(let o of await C(e,".cursor/agents"))x(t,S(e,o),Ot,".md");for(let o of await C(e,".cursor/skills"))D(t,S(e,o),".cursor/skills");return}t.set("AGENTS.md",`${k}/_root.md`);for(let o of await C(e,".cursor/rules"))x(t,S(e,o),k,".mdc");for(let o of await C(e,".cursor/commands"))x(t,S(e,o),rt,".md");for(let o of await C(e,".cursor/agents"))x(t,S(e,o),Ot,".md");for(let o of await C(e,".cursor/skills"))D(t,S(e,o),".cursor/skills");}var WC=u(()=>{It();jt();gt();s(bf,"buildCursorImportPaths");});var bo,ar,se,xn,Dn,Ur,Ni,HC,rc=u(()=>{bo="deepagents-cli",ar=".deepagents/AGENTS.md",se=".deepagents/skills",xn=".mcp.json",Dn=".deepagents/AGENTS.md",Ur=".deepagents/skills",Ni=".deepagents/.mcp.json",HC=".agentsmesh/rules";});async function Pf(t,e,r="project"){if(r==="global"){t.set(Dn,`${k}/_root.md`);for(let o of await C(e,Ur))D(t,S(e,o),Ur);t.set(Ni,".agentsmesh/mcp.json");return}t.set(ar,`${k}/_root.md`);for(let o of await C(e,se))D(t,S(e,o),se);t.set(xn,".agentsmesh/mcp.json");}var zC=u(()=>{It();rc();gt();s(Pf,"buildDeepagentsCliImportPaths");});var cr,lr,_e,Po,xo,Nn,Do,Fi,Ts,VC,vi=u(()=>{cr="factory-droid",lr="AGENTS.md",_e=".factory/skills",Po=".factory/droids",xo=".factory/mcp.json",Nn=".factory/AGENTS.md",Do=".factory/skills",Fi=".factory/droids",Ts=".factory/mcp.json",VC=".agentsmesh/rules";});async function xf(t,e,r="project"){if(r==="global"){t.set(Nn,`${k}/_root.md`);for(let o of await C(e,Fi))x(t,S(e,o),Ot,".md");for(let o of await C(e,Do))D(t,S(e,o),Do);t.set(Ts,".agentsmesh/mcp.json");return}t.set(lr,`${k}/_root.md`);for(let o of await C(e,Po))x(t,S(e,o),Ot,".md");for(let o of await C(e,_e))D(t,S(e,o),_e);t.set(xo,".agentsmesh/mcp.json");}var JC=u(()=>{It();vi();gt();s(xf,"buildFactoryDroidImportPaths");});async function Df(t,e){for(let r of await C(e,".gemini/rules"))x(t,S(e,r),k,".md");for(let r of await C(e,".gemini/commands")){let o=S(e,r);if(!o.endsWith(".toml")&&!o.endsWith(".md"))continue;let n=o.replace(/\.(toml|md)$/i,""),i=".gemini/commands/",l=(n.startsWith(i)?n.slice(i.length):n).split("/").filter(Boolean).join(":");t.set(o,`${rt}/${l}.md`);}for(let r of await C(e,".gemini/agents"))x(t,S(e,r),Ot,".md");for(let r of await C(e,".gemini/skills"))D(t,S(e,r),".gemini/skills");}var YC=u(()=>{It();gt();s(Df,"buildGeminiCliImportPaths");});var No,mr,pe,Fn,XC,vn,Gi,pr,ZC,QC,oc=u(()=>{No="goose",mr=".goosehints",pe=".agents/skills",Fn=".gooseignore",XC=".config/goose",vn=`${XC}/.goosehints`,Gi=`${XC}/.gooseignore`,pr=".agents/skills",ZC=".agentsmesh/rules",QC=".agentsmesh/ignore";});async function Nf(t,e,r="project"){if(r==="global"){t.set(vn,`${k}/_root.md`);for(let o of await C(e,pr))D(t,S(e,o),pr);t.set(Gi,".agentsmesh/ignore");return}t.set(mr,`${k}/_root.md`);for(let o of await C(e,pe))D(t,S(e,o),pe);t.set(Fn,".agentsmesh/ignore");}var qC=u(()=>{It();oc();gt();s(Nf,"buildGooseImportPaths");});var Gn,Kr,tE,nc=u(()=>{Gn="jules",Kr="AGENTS.md",tE=".agentsmesh/rules";});async function Ff(t,e,r="project"){r!=="global"&&t.set(Kr,`${k}/_root.md`);}var eE=u(()=>{nc();gt();s(Ff,"buildJulesImportPaths");});var Mi,bs,jp,rE,Fo,oE,s0,zl,$i,Vl,sc,ic,Jl,Yl,Xl,Zl,Ql,i0,Up,ji,nE,vf,Kp,sE,iE,aE,cE,ac=u(()=>{Mi="junie",bs=".junie",jp=`${bs}/guidelines.md`,rE=`${bs}/ci-guidelines.md`,Fo=`${bs}/AGENTS.md`,oE="AGENTS.md",s0=`${bs}/mcp`,zl=`${s0}/mcp.json`,$i=`${bs}/skills`,Vl=`${bs}/rules`,sc=`${bs}/commands`,ic=`${bs}/agents`,Jl=".aiignore",Yl=".junie",Xl=`${Yl}/skills`,Zl=`${Yl}/agents`,Ql=`${Yl}/commands`,i0=`${Yl}/mcp`,Up=`${i0}/mcp.json`,ji=`${Yl}/AGENTS.md`,nE=".agents/skills",vf=".agentsmesh/rules/_root.md",Kp=".agentsmesh/rules",sE=".agentsmesh/commands",iE=".agentsmesh/agents",aE=".agentsmesh/mcp.json",cE=".agentsmesh/ignore";});async function Gf(t,e){t.set(jp,`${k}/_root.md`),t.set(Fo,`${k}/_root.md`),t.set("AGENTS.md",`${k}/_root.md`);for(let r of await C(e,".junie/rules"))x(t,S(e,r),k,".md");for(let r of await C(e,".junie/commands"))x(t,S(e,r),rt,".md");for(let r of await C(e,".junie/agents"))x(t,S(e,r),Ot,".md");for(let r of await C(e,".junie/skills"))D(t,S(e,r),".junie/skills");}var lE=u(()=>{It();ac();gt();s(Gf,"buildJunieImportPaths");});var ue,ql,vo,Mn,$n,jn,Br,Ps,cc,Bp,Ui,lc,Ki,tm,Wp,mc,xs,Bi,Wi,Hi,Ds,pc,Hp,mE,Ns,uc,zi,pE,uE,Vi=u(()=>{ue="kilo-code",ql=".kilo",vo="AGENTS.md",Mn=`${ql}/rules`,$n=`${ql}/commands`,jn=`${ql}/agents`,Br=`${ql}/skills`,Ps=`${ql}/mcp.json`,cc=".kilocodeignore",Bp=".kilocode",Ui=`${Bp}/rules`,lc=`${Bp}/workflows`,Ki=`${Bp}/skills`,tm=`${Bp}/mcp.json`,Wp=".kilocodemodes",mc=".kilo",xs=`${mc}/AGENTS.md`,Bi=`${mc}/rules`,Wi=`${mc}/commands`,Hi=`${mc}/agents`,Ds=`${mc}/skills`,pc=`${mc}/mcp.json`,Hp=".kilocodeignore",mE=".agents/skills",Ns=".agentsmesh/rules",uc=".agentsmesh/commands",zi=".agentsmesh/agents",pE=".agentsmesh/mcp.json",uE=".agentsmesh/ignore";});async function Mf(t,e,r="project"){if(r==="global"){t.set(xs,`${k}/_root.md`);for(let o of await C(e,Bi))x(t,S(e,o),k,".md");for(let o of await C(e,Wi))x(t,S(e,o),rt,".md");for(let o of await C(e,Hi))x(t,S(e,o),Ot,".md");for(let o of await C(e,Ds))D(t,S(e,o),Ds);t.set(pc,".agentsmesh/mcp.json");return}t.set(vo,`${k}/_root.md`);for(let o of await C(e,Mn))x(t,S(e,o),k,".md");for(let o of await C(e,$n))x(t,S(e,o),rt,".md");for(let o of await C(e,jn))x(t,S(e,o),Ot,".md");for(let o of await C(e,Br))D(t,S(e,o),Br);t.set(Ps,".agentsmesh/mcp.json");for(let o of await C(e,Ui)){let n=S(e,o);if(basename(n)==="00-root.md"){t.set(n,`${k}/_root.md`);continue}x(t,n,k,".md");}for(let o of await C(e,lc))x(t,S(e,o),rt,".md");for(let o of await C(e,Ki))D(t,S(e,o),Ki);t.set(tm,".agentsmesh/mcp.json");}var dE=u(()=>{It();Vi();gt();s(Mf,"buildKiloCodeImportPaths");});var De,Wr,em,Hr,de,zr,Fs,gE,dc,gc,Ji,Vr,vs,Yi,rm,om,fE,$f,jf,hE,yE,Uf,_E,fc=u(()=>{De="kiro",Wr="AGENTS.md",em=".kiro",Hr=`${em}/steering`,de=`${em}/skills`,zr=`${em}/agents`,Fs=`${em}/hooks`,gE=`${em}/settings`,dc=`${gE}/mcp.json`,gc=".kiroignore",Ji=".kiro/steering",Vr=".kiro/steering/AGENTS.md",vs=".kiro/skills",Yi=".kiro/agents",rm=".kiro/settings/mcp.json",om=".kiro/settings/kiroignore",fE=".agents/skills",$f=".agentsmesh/rules/_root.md",jf=".agentsmesh/rules",hE=".agentsmesh/agents",yE=".agentsmesh/mcp.json",Uf=".agentsmesh/hooks.yaml",_E=".agentsmesh/ignore";});async function Kf(t,e,r="project"){if(r==="global"){t.set(Vr,`${k}/_root.md`);for(let o of await C(e,Ji)){let n=S(e,o);n!==Vr&&x(t,n,k,".md");}for(let o of await C(e,vs))D(t,S(e,o),vs);for(let o of await C(e,Yi))x(t,S(e,o),Ot,".md");return}t.set(Wr,`${k}/_root.md`);for(let o of await C(e,Hr))x(t,S(e,o),k,".md");for(let o of await C(e,de))D(t,S(e,o),de);for(let o of await C(e,zr))x(t,S(e,o),Ot,".md");}var IE=u(()=>{It();fc();gt();s(Kf,"buildKiroImportPaths");});var Jr,zp,Go,Un,Kn,Bn,Yr,Mo,hc,Gs,Xi,Zi,Qi,Ms,$s,RE,nm,Vp,Jp,Bf,qi=u(()=>{Jr="opencode",zp=".opencode",Go="AGENTS.md",Un=`${zp}/rules`,Kn=`${zp}/commands`,Bn=`${zp}/agents`,Yr=`${zp}/skills`,Mo="opencode.json",hc=".config/opencode",Gs=`${hc}/AGENTS.md`,Xi=`${hc}/rules`,Zi=`${hc}/commands`,Qi=`${hc}/agents`,Ms=`${hc}/skills`,$s=`${hc}/opencode.json`,RE=".agents/skills",nm=".agentsmesh/rules",Vp=".agentsmesh/commands",Jp=".agentsmesh/agents",Bf=".agentsmesh/mcp.json";});async function Wf(t,e,r="project"){if(r==="global"){t.set(Gs,`${k}/_root.md`);for(let o of await C(e,Xi))x(t,S(e,o),k,".md");for(let o of await C(e,Zi))x(t,S(e,o),rt,".md");for(let o of await C(e,Qi))x(t,S(e,o),Ot,".md");for(let o of await C(e,Ms))D(t,S(e,o),Ms);t.set($s,".agentsmesh/mcp.json");return}t.set(Go,`${k}/_root.md`);for(let o of await C(e,Un))x(t,S(e,o),k,".md");for(let o of await C(e,Kn))x(t,S(e,o),rt,".md");for(let o of await C(e,Bn))x(t,S(e,o),Ot,".md");for(let o of await C(e,Yr))D(t,S(e,o),Yr);t.set(Mo,".agentsmesh/mcp.json");}var SE=u(()=>{It();qi();gt();s(Wf,"buildOpencodeImportPaths");});var $o,ur,Xt,CE,Wn,dr,EE,yc=u(()=>{$o="pi-agent",ur="AGENTS.md",Xt=".pi/skills",CE=".pi/agent",Wn=`${CE}/AGENTS.md`,dr=`${CE}/skills`,EE=".agentsmesh/rules";});async function Hf(t,e,r="project"){if(r==="global"){t.set(Wn,`${k}/_root.md`);for(let o of await C(e,dr))D(t,S(e,o),dr);return}t.set(ur,`${k}/_root.md`);for(let o of await C(e,Xt))D(t,S(e,o),Xt);}var zf=u(()=>{It();yc();gt();s(Hf,"buildPiAgentImportPaths");});var jo,gr,Hn,Uo,Ko,Ne,js,Us,zn,ta,Ks,Bo,Bs,Vf,OE,LE,_c=u(()=>{jo="qwen-code",gr="QWEN.md",Hn=".qwen/rules",Uo=".qwen/commands",Ko=".qwen/agents",Ne=".qwen/skills",js=".qwen/settings.json",Us=".qwenignore",zn=".qwen/QWEN.md",ta=".qwen/settings.json",Ks=".qwen/commands",Bo=".qwen/skills",Bs=".qwen/agents",Vf=".agentsmesh/rules",OE=".agentsmesh/commands",LE=".agentsmesh/agents";});async function Jf(t,e,r="project"){if(r==="global"){t.set(zn,`${k}/_root.md`),t.set(ta,".agentsmesh/mcp.json");for(let o of await C(e,Ks))x(t,S(e,o),rt,".md");for(let o of await C(e,Bs))x(t,S(e,o),Ot,".md");for(let o of await C(e,Bo))D(t,S(e,o),Bo);return}t.set(gr,`${k}/_root.md`),t.set(js,".agentsmesh/mcp.json"),t.set(Us,".agentsmesh/ignore");for(let o of await C(e,Hn))x(t,S(e,o),k,".md");for(let o of await C(e,Uo))x(t,S(e,o),rt,".md");for(let o of await C(e,Ko))x(t,S(e,o),Ot,".md");for(let o of await C(e,Ne))D(t,S(e,o),Ne);}var AE=u(()=>{It();gt();_c();s(Jf,"buildQwenCodeImportPaths");});var Wo,Xr,Ie,kE,Ic=u(()=>{Wo="replit-agent",Xr="replit.md",Ie=".agents/skills",kE=".agentsmesh/rules";});async function Yf(t,e,r="project"){if(r!=="global"){t.set(Xr,`${k}/_root.md`);for(let o of await C(e,Ie))D(t,S(e,o),Ie);}}var Xf=u(()=>{It();Ic();gt();s(Yf,"buildReplitAgentImportPaths");});var Ws,ea,Zr,sm,Vn,Jn,Ho,im,am,Rc,cm,Yp,Hs,zs,Yn,ra,lm,Vs,wE,oa,Xp,TE,bE,na=u(()=>{Ws="roo-code",ea=".roo",Zr=`${ea}/rules/00-root.md`,sm=".roorules",Vn=`${ea}/rules`,Jn=`${ea}/commands`,Ho=`${ea}/skills`,im=`${ea}/mcp.json`,am=".rooignore",Rc=".roomodes",cm="settings/custom_modes.yaml",Yp=".roo",Hs=`${Yp}/rules`,zs=`${Yp}/commands`,Yn=`${Yp}/skills`,ra="mcp_settings.json",lm=".rooignore",Vs=`${Yp}/AGENTS.md`,wE=".agents/skills",oa=".agentsmesh/rules",Xp=".agentsmesh/commands",TE=".agentsmesh/mcp.json",bE=".agentsmesh/ignore";});async function Zf(t,e,r="project"){if(r==="global"){t.set(Vs,`${k}/_root.md`);for(let o of await C(e,Hs))x(t,S(e,o),k,".md");for(let o of await C(e,zs))x(t,S(e,o),rt,".md");for(let o of await C(e,Yn))D(t,S(e,o),Yn);t.set(ra,".agentsmesh/mcp.json");return}t.set(Zr,`${k}/_root.md`),t.set(sm,`${k}/_root.md`);for(let o of await C(e,Vn)){let n=S(e,o);n!==Zr&&x(t,n,k,".md");}for(let o of await C(e,".roo")){let n=S(e,o);/^\.roo\/rules-[^/]+\/.+\.md$/.test(n)&&x(t,n,k,".md");}for(let o of await C(e,Jn))x(t,S(e,o),rt,".md");for(let o of await C(e,Ho))D(t,S(e,o),Ho);}var PE=u(()=>{It();na();gt();s(Zf,"buildRooCodeImportPaths");});var zo,fr,xE,Zt,Xn,DE,Zn,Fe,Sc,NE,Cc=u(()=>{zo="rovodev",fr="AGENTS.md",xE=".rovodev",Zt=`${xE}/skills`,Xn=`${xE}/mcp.json`,DE=".rovodev",Zn=".rovodev/AGENTS.md",Fe=".rovodev/skills",Sc=".rovodev/mcp.json",NE=".agentsmesh/rules";});async function Qf(t,e,r="project"){if(r==="global"){t.set(Zn,`${k}/_root.md`);for(let o of await C(e,Fe))D(t,S(e,o),Fe);t.set(Sc,".agentsmesh/mcp.json");return}t.set(fr,`${k}/_root.md`);for(let o of await C(e,Zt))D(t,S(e,o),Zt);t.set(Xn,".agentsmesh/mcp.json");}var FE=u(()=>{It();Cc();gt();s(Qf,"buildRovodevImportPaths");});var hr,Zp,ve,Ge,yr,sa,Ec,Qn,_r,Qr,mm,vE,pm,GE,ME,Oc=u(()=>{hr="trae",Zp=".trae",ve=`${Zp}/rules`,Ge=`${ve}/project_rules.md`,yr=`${Zp}/skills`,sa=`${Zp}/mcp.json`,Ec=`${Zp}/.ignore`,Qn=".trae/user_rules",_r=".trae/user_rules/rules.md",Qr=".trae/skills",mm=".trae/mcp.json",vE=".agents/skills",pm=".agentsmesh/rules",GE=".agentsmesh/mcp.json",ME=".agentsmesh/ignore";});async function qf(t,e,r="project"){if(r==="global"){t.set(_r,`${k}/_root.md`);for(let o of await C(e,Qn)){let n=S(e,o);n!==_r&&x(t,n,k,".md");}for(let o of await C(e,Qr))D(t,S(e,o),Qr);return}t.set(Ge,`${k}/_root.md`);for(let o of await C(e,ve)){let n=S(e,o);n!==Ge&&x(t,n,k,".md");}for(let o of await C(e,yr))D(t,S(e,o),yr);}var $E=u(()=>{It();Oc();gt();s(qf,"buildTraeImportPaths");});var Vo,qr,th,ie,Js,Re,jE,Lc=u(()=>{Vo="warp",qr="AGENTS.md",th="WARP.md",ie=".warp/skills",Js=".mcp.json",Re=".warp/skills",jE=".agentsmesh/rules";});async function eh(t,e,r="project"){if(r==="global"){for(let o of await C(e,Re))D(t,S(e,o),Re);return}t.set(qr,`${k}/_root.md`);for(let o of await C(e,ie))D(t,S(e,o),ie);t.set(Js,".agentsmesh/mcp.json");}var UE=u(()=>{It();Lc();gt();s(eh,"buildWarpImportPaths");});async function rh(t,e){t.set("AGENTS.md",`${k}/_root.md`),t.set(".windsurfrules",`${k}/_root.md`),await Ep(t,e);for(let r of await C(e,".windsurf/rules"))x(t,S(e,r),k,".md");for(let r of await C(e,".windsurf/workflows"))x(t,S(e,r),rt,".md");for(let r of await C(e,".windsurf/skills"))D(t,S(e,r),".windsurf/skills");}var KE=u(()=>{It();gt();s(rh,"buildWindsurfImportPaths");});var to,Jo,c0,Yo,BE,ia=u(()=>{to=".rules",Jo=".zed/settings.json",c0=".config/zed",Yo=`${c0}/settings.json`,BE=".agentsmesh/rules";});async function oh(t,e,r="project"){if(r==="global"){t.set(Yo,".agentsmesh/mcp.json");return}t.set(to,`${k}/_root.md`),t.set(Jo,".agentsmesh/mcp.json");}var WE=u(()=>{ia();gt();s(oh,"buildZedImportPaths");});var HE=u(()=>{IC();CC();OC();AC();kC();PC();FC();vC();GC();MC();jC();WC();zC();JC();YC();qC();eE();lE();dE();IE();SE();zf();AE();Xf();PE();FE();$E();UE();KE();WE();});var Rt=u(()=>{HE();});var l0,m0,p0,zE,Cp,Xg=u(()=>{St();at();XS();sC();pC();fC();Rt();Va();l0={name:fo,primaryRootInstructionPath:Ye,generateRules:HS,generateCommands:VS,generateAgents:JS,generateSkills:zS,generateIgnore:YS,importFrom:nC},m0={rootInstructionPath:Ye,skillDir:re,managedOutputs:{dirs:[re],files:[Ye,fn]},paths:{rulePath(t){return Ye},commandPath(t){return `${re}/${W(t)}/SKILL.md`},agentPath(t){return `${re}/${$(t)}/SKILL.md`}}},p0={rootInstructionPath:hn,skillDir:Xe,managedOutputs:{dirs:[Xe],files:[hn,Ii]},rewriteGeneratedPath(t){return t===Ye?hn:t===fn?Ii:t.startsWith(`${re}/`)?t.replace(`${re}/`,`${Xe}/`):t},paths:{rulePath(t){return hn},commandPath(t){return `${Xe}/${W(t)}/SKILL.md`},agentPath(t){return `${Xe}/${$(t)}/SKILL.md`}}},zE={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Cp={id:fo,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:l0,capabilities:zE,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:mC,lint:{hooks:uC,permissions:dC,mcp:gC},supportsConversion:{commands:true,agents:true},project:m0,globalSupport:{capabilities:zE,detectionPaths:[hn,Ii,Xe],layout:p0},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ye],global:[hn]},canonicalDir:BS,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[fn],global:[Ii]},canonicalDir:".agentsmesh",canonicalFilename:WS}},buildImportPaths:tf,detectionPaths:[Ye,fn]};});function VE(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(Ri))continue;let o=r.root?"_root":basename(r.source,".md");e.push({path:`${Fr}/${o}.md`,content:r.body.trim()});}return e}function JE(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Si,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var YE=u(()=>{bl();s(VE,"generateRules");s(JE,"generateMcp");});async function XE(t,e){let r=e?.scope??"project";return z(Qp,t,r)}var ZE=u(()=>{Ct();nh();s(XE,"importFromAmazonQ");});function QE(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:Ri}))}var qE=u(()=>{_t();bl();s(QE,"lintRules");});var d0,g0,f0,h0,Qp,nh=u(()=>{YE();ZE();qE();Rt();bl();d0={name:Ri,generateRules:VE,generateMcp:JE,importFrom:XE},g0={managedOutputs:{dirs:[Fr],files:[Si]},paths:{rulePath(t,e){return `${Fr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},f0={managedOutputs:{dirs:[Is],files:[Tl]},rewriteGeneratedPath(t){return t.startsWith(`${Fr}/`)?t.replace(`${Fr}/`,`${Is}/`):t===Si?Tl:t},paths:{rulePath(t,e){return `${Is}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},h0={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Qp={id:Ri,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:d0,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:QE,project:g0,globalSupport:{capabilities:h0,detectionPaths:[Is,Tl],layout:f0},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Fr],global:[Is]},canonicalDir:RC,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Si],global:[Tl]},canonicalDir:".agentsmesh",canonicalFilename:SC}},buildImportPaths:ef,detectionPaths:[Fr,Si]};});function tO(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")),o=e?.body.trim()??"",n=st(o,r);return n?[{path:qe,content:n}]:[]}function eO(t){return tt(t,oe)}function rO(t){return t.commands.map(e=>({path:`${oe}/${W(e.name)}/SKILL.md`,content:bt(e)}))}function oO(t){return t.agents.map(e=>({path:`${oe}/${$(e.name)}/SKILL.md`,content:Lt(e)}))}var nO=u(()=>{Q();Mt();at();St();Ci();s(tO,"generateRules");s(eO,"generateSkills");s(rO,"generateCommands");s(oO,"generateAgents");});function ct(t,e,r){return t.startsWith(`${e}/`)&&!r.includes("codex-cli")?`.agents/skills/${t.slice(e.length+1)}`:null}var Qt=u(()=>{s(ct,"mirrorSkillsToAgents");});async function iO(t,e,r){let o=await y(join(t,e));if(o===null)return;let n;try{n=JSON.parse(o);}catch{return}if(n===null||typeof n!="object"||Array.isArray(n))return;let i=n,a=i["amp.mcpServers"]??i.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let c={};for(let[l,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(c[l]=m);Object.keys(c).length!==0&&(await $t(t,sO,c),r.push({fromTool:"amp",fromPath:e,toPath:sO,feature:"mcp"}));}var sO,aO=u(()=>{T();Nr();Ci();sO=".agentsmesh/mcp.json";s(iO,"importAmpMcp");});async function cO(t,e={}){let r=e.scope??"project",o=[],n=await U("amp",t,r);return o.push(...await z(qp,t,r,{normalize:n})),await Z(t,r==="global"?tr:oe,"amp",o,n),await iO(t,r==="global"?In:yo,o),o}var lO=u(()=>{mt();Q();Ct();aO();Ci();sh();s(cO,"importFromAmp");});function mO(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:"amp"}))}var pO=u(()=>{_t();Ci();s(mO,"lintRules");});function uO(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function dO(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function gO(t){return t.ignore.length===0?[]:[b(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var fO=u(()=>{Et();s(uO,"lintHooks");s(dO,"lintPermissions");s(gO,"lintIgnore");});function S0(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 o=JSON.parse(e);if(o===null||typeof o!="object"||Array.isArray(o))return t;let n=o;return n["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=n["amp.mcpServers"]),JSON.stringify(r,null,2)}var _0,I0,R0,hO,qp,sh=u(()=>{St();at();nO();Qt();lO();pO();fO();Rt();Ci();_0={name:"amp",primaryRootInstructionPath:qe,generateRules:tO,generateCommands:rO,generateAgents:oO,generateSkills:eO,importFrom:cO},I0={rootInstructionPath:qe,skillDir:oe,managedOutputs:{dirs:[oe],files:[qe,yo]},paths:{rulePath(t){return qe},commandPath(t){return `${oe}/${W(t)}/SKILL.md`},agentPath(t){return `${oe}/${$(t)}/SKILL.md`}}},R0={rootInstructionPath:_n,skillDir:tr,managedOutputs:{dirs:[tr],files:[_n,In]},rewriteGeneratedPath(t){return t===qe?_n:t===yo?In:t.startsWith(`${oe}/`)?t.replace(`${oe}/`,`${tr}/`):t},mirrorGlobalPath(t,e){return ct(t,tr,e)},paths:{rulePath(t){return _n},commandPath(t){return `${tr}/${W(t)}/SKILL.md`},agentPath(t){return `${tr}/${$(t)}/SKILL.md`}}},hO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(S0,"mergeAmpSettings");qp={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:_0,capabilities:hO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:mO,lint:{hooks:uO,permissions:dO,ignore:gO},supportsConversion:{commands:true,agents:true},project:I0,globalSupport:{capabilities:hO,detectionPaths:[_n,In],layout:R0},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[qe],global:[_n]},canonicalDir:EC,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:yo,content:JSON.stringify({"amp.mcpServers":t.mcp.mcpServers},null,2)}]},mergeGeneratedOutputContent(t,e,r,o){return o===yo||o===In?S0(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:of,detectionPaths:[qe,yo]};});function yO(t){let e=t.rules.find(o=>o.root);if(!e)return [];let r=[{path:vr,content:e.body.trim()||""}];for(let o of t.rules){if(o.root||o.targets.length>0&&!o.targets.includes("antigravity"))continue;let n=basename(o.source,".md");r.push({path:`${_o}/${n}.md`,content:o.body.trim()||""});}return r}function _O(t){return t.commands.map(e=>{let r=e.description.trim(),o=e.body.trim(),n=r&&o&&!o.startsWith(r)?`${r}
|
|
50
|
+
${vK}
|
|
51
|
+
${Zc}`;s(Mg,"normalizeWhitespace");UC=[HK,WK,KK,BK,UK,jK,GK,$K,MK];s(BC,"appendAgentsmeshRootInstructionParagraph");s(KC,"stripAgentsmeshRootInstructionParagraph");});function ye(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 cl(t){let e=await _(t);return e?b(e).frontmatter:{}}function Xt(t,e){return typeof t[e]=="string"?t[e]:void 0}function jg(t){let e=t.hooks;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function zK(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function VK(t,e){let r=basename(t,".md")==="_root",n={...e};return delete n.root,{root:r,...n}}async function K(t,e,r){let n=await cl(t),o=basename(t,".md")==="_root"?KC(r):r.trim(),i=VK(t,zK({...n,...e})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=ye(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return T(a,o||"")}var Ug=d(()=>{w();j();Gg();s(ye,"toStringArray");s(cl,"readExistingFrontmatter");s(Xt,"readString");s(jg,"readHooks");s(zK,"pruneUndefined");s(VK,"serializeCanonicalRuleFrontmatter");s(K,"serializeImportedRuleWithFallback");});async function _t(t,e,r){let n=await cl(t),o=(()=>{let l=ye(n.allowedTools);return l.length>0?l:ye(n["allowed-tools"])})(),i=e.hasDescription?e.description??"":typeof n.description=="string"?n.description:"",a=e.hasAllowedTools?e.allowedTools??[]:o;return T({description:i,"allowed-tools":a},r.trim()||"")}async function Cn(t,e,r){let n=await cl(t),o=basename(dirname(t)),i=Xt(e,"name")??Xt(n,"name")??o,a=Xt(e,"description")??Xt(n,"description")??"";return T({name:i,description:a},r.trim()||"")}async function Vt(t,e,r){let n=await cl(t),o=Object.prototype.hasOwnProperty.call(e,"tools")?ye(e.tools):(()=>{let R=ye(n.tools);return R.length>0?R:[]})(),i=Object.prototype.hasOwnProperty.call(e,"disallowedTools")?ye(e.disallowedTools):Object.prototype.hasOwnProperty.call(e,"disallowed-tools")?ye(e["disallowed-tools"]):ye(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(e,"mcpServers")?ye(e.mcpServers):Object.prototype.hasOwnProperty.call(e,"mcp-servers")?ye(e["mcp-servers"]):ye(n.mcpServers),l=Object.prototype.hasOwnProperty.call(e,"skills")?ye(e.skills):ye(n.skills),c=e.maxTurns??e["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=jg(e)??jg(n),u={name:Xt(e,"name")??Xt(n,"name")??basename(t,".md"),description:Xt(e,"description")??Xt(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=Xt(e,"model")??Xt(n,"model");f&&(u.model=f);let g=Xt(e,"permissionMode")??Xt(e,"permission-mode")??Xt(n,"permissionMode")??Xt(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=Xt(e,"memory")??Xt(n,"memory");return h&&(u.memory=h),T(u,r.trim()||"")}var zC=d(()=>{j();Ug();s(_t,"serializeImportedCommandWithFallback");s(Cn,"serializeImportedSkillWithFallback");s(Vt,"serializeImportedAgentWithFallback");});var ut=d(()=>{Ug();zC();});function eu(t){let e=t.split("/").filter(Boolean);return e.length===0||e.some(n=>n.startsWith("."))?false:!e.join("/").startsWith("tests/e2e/fixtures/")}async function kn(t){await rm(t,{recursive:true,force:true});}var Qc=d(()=>{s(eu,"shouldImportScopedAgentsRule");s(kn,"removePathIfExists");});function rt(t,e){let r=[];for(let n of t.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${e}/${n.name}/SKILL.md`,content:T(o,n.body.trim()||"")});for(let i of n.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");r.push({path:`${e}/${n.name}/${a}`,content:i.content});}}return r}async function q(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,qc,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=b(o(m,c,u)),h=Xp(f,a.name);if(h){await kn(join(t,qc,a.name));let k=join(t,VC);await O(k);let P=join(k,`${h.name}.md`);await I(P,Zp(h,o(g,c,P))),n.push({fromTool:r,fromPath:c,toPath:`${VC}/${h.name}.md`,feature:"commands"});continue}let R=al(f,a.name);if(R){await kn(join(t,qc,a.name));let k=join(t,JC);await O(k);let P=join(k,`${R.name}.md`);await I(P,Os(R,o(g,c,P))),n.push({fromTool:r,fromPath:c,toPath:`${JC}/${R.name}.md`,feature:"agents"});continue}let C=await Cn(u,{...f,name:a.name},g);await O(p),await I(u,C),n.push({fromTool:r,fromPath:c,toPath:`${qc}/${a.name}/SKILL.md`,feature:"skills"});let S=await v(l);for(let k of S){if(k===c)continue;let P=relative(l,k).replace(/\\/g,"/"),N=await _(k);if(N===null)continue;let F=join(p,P);await O(dirname(F)),await I(F,o(N,k,F)),n.push({fromTool:r,fromPath:k,toPath:`${qc}/${a.name}/${P}`,feature:"skills"});}}}var qc,VC,JC,tt=d(()=>{w();j();ut();mt();kt();Qc();qc=".agentsmesh/skills",VC=".agentsmesh/commands",JC=".agentsmesh/agents";s(rt,"generateEmbeddedSkills");s(q,"importEmbeddedSkills");});var En,er,ie,Oo,Ao,rr,bi,YC,XC,ml=d(()=>{En="aider",er="CONVENTIONS.md",ie=".aider/skills",Oo=".aiderignore",Ao="CONVENTIONS.md",rr=".aider/skills",bi=".aiderignore",YC=".agentsmesh/rules",XC=".agentsmesh/ignore";});function ZC(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(En)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:er,content:o}]:[]}function QC(t){return rt(t,ie)}function qC(t){return t.commands.map(e=>({path:`${ie}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function tk(t){return t.agents.map(e=>({path:`${ie}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function ek(t){return t.ignore.length===0?[]:[{path:Oo,content:t.ignore.join(`
|
|
52
|
+
`)}]}var rk=d(()=>{tt();Ut();mt();kt();ml();s(ZC,"generateRules");s(QC,"generateSkills");s(qC,"generateCommands");s(tk,"generateAgents");s(ek,"generateIgnore");});function nt(t){return t.includes("\\")||jr.test(t)?win32:posix}function vt(t){return t.replace(/\\/g,"/")}function Y(t,e){let r=nt(t),n=r.normalize(r===win32?e.replace(/\//g,"\\"):vt(e));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function ok(t,e){return nt(t).isAbsolute(e)||jr.test(e)}function pl(t){let e=t,r="";for(;tW.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}function sk(t,e){let r=nt(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?Y(e,r.join(e,n)):null}var jr,tW,ae=d(()=>{jr=/^[A-Za-z]:[\\/]/,tW=/[.!?:;]+$/;s(nt,"pathApi");s(vt,"normalizeSeparators");s(Y,"normalizeForProject");s(ok,"isAbsoluteForProject");s(pl,"stripTrailingPunctuation");s(sk,"rootFallbackPath");});async function ik(t,e,r="project"){let n=new Map,o=et(t);return o&&await o.buildImportPaths(n,e,r),n}var ak=d(()=>{se();s(ik,"buildImportReferenceMap");});function nW(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 oW(){let t=new Set([".agentsmesh/"]);for(let e of bt)for(let r of nW(e))t.add(r);return Array.from(t)}function sW(){let t=new Set([...oW(),...Bg.rootRelativePrefixes]),e=new Set([...rW,...Bg.meshRootSegments]);return {protectedSchemes:[...eW,...Bg.protectedSchemes],rootRelativePrefixes:Array.from(t),meshRootSegments:e}}function ru(){return Kg||(Kg=sW()),Kg}var eW,rW,Bg,Kg,lk=d(()=>{Pt();eW=[/\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],rW=new Set(["skills","rules","commands","agents","packs"]),Bg={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(nW,"topLevelDotfilePrefixes");s(oW,"buildDefaultRootRelativePrefixes");s(sW,"rebuild");s(ru,"getLinkFormatRegistry");});function Ur(t){let e=vt(t);return ru().rootRelativePrefixes.some(r=>e.startsWith(r))}function aW(t){let e=vt(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||jr.test(e)||/^[a-zA-Z]:/.test(e)||Ur(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&ru().meshRootSegments.has(r)}function tm(t,e,r){let n=nt(e),o=Y(e,e),i=Y(e,r),a=vt(t);if(jr.test(t)){let l=Y(e,t);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(n.isAbsolute(t)){let l=Y(e,t);return l.startsWith(o)||existsSync(t)?[l]:[Y(e,n.join(e,t))]}if(a.startsWith("./")||a.startsWith("../")){let l=Y(e,n.join(n.dirname(i),a)),c=sk(a,o);return c&&c!==l?[l,c]:[l]}if(Ur(a))return [Y(e,n.join(o,a))];if(a.includes("/")){let l=Y(e,n.join(o,".agentsmesh")),c=aW(a)?Y(e,n.join(l,a)):null,m=Y(e,n.join(o,a)),p=Y(e,n.join(n.dirname(i),a));return c!==null?[c,m,p]:[m,p]}return lW.has(a)?[]:a.includes(".")?[Y(e,n.join(n.dirname(i),a))]:[]}function em(t,e){let r=[e];if(!ok(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 uk(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}function nu(t){let e=[];for(let r of ru().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(cW))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(mW))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(pW))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var lW,cW,mW,pW,pk,ul,As=d(()=>{ae();lk();s(Ur,"isRootRelativePathToken");s(aW,"isMeshRootRelativePathToken");lW=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),cW=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,mW=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,pW=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,pk=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,ul=/(?::(\d+)){1,2}$/;s(tm,"resolveProjectPath");s(em,"expandResolvedPaths");s(uk,"isGlobAdjacent");s(nu,"protectedRanges");});function uW(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 dk(t){return uW(t.tokenContext)}function Wg(t,e){let r=nt(t),n=Y(t,t),o=Y(t,e);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function fk(t){let e=nt(t);return Y(t,e.join(t,".agentsmesh"))}function Br(t,e){let r=nt(t),n=fk(t),o=Y(t,e);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function gk(t,e,r){let n=nt(t),o=fk(t),i=Y(t,e);if(!Br(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 Hg(t,e,r){let o=nt(t).relative(Y(t,t),Y(t,e)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let i=o.length>0?o:".";return r&&!i.endsWith("/")?`${i}/`:i}function dl(t,e,r){let n=Hg(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function zg(t,e,r,n,o){let i=nt(t),a=Y(t,t),l=Y(t,e),c=Y(t,r);if(!Wg(t,c))return dl(t,c,n)?.text??null;let m=Y(t,i.dirname(l));if(!Wg(t,m)&&m!==a)return dl(t,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||jr.test(p))return Hg(t,c,n);let u=Y(t,i.join(m,p));return Wg(t,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):Hg(t,c,n)}var Vg=d(()=>{ae();s(uW,"isReadingContext");s(dk,"isReadingContextOptions");s(Wg,"isUnderProjectRoot");s(fk,"agentsMeshRoot");s(Br,"isUnderAgentsMesh");s(gk,"toAgentsMeshRootRelative");s(Hg,"toProjectRootRelative");s(dl,"toProjectRootReference");s(zg,"formatLinkPathForDestinationLegacy");});function hk(t,e,r,n,o={}){let i=o.scope??"project",a=Y(t,r);if(dk(o)&&Br(t,e)&&Br(t,a)){let m=nt(t),p=Y(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 zg(t,e,r,n,o);if(i==="global"&&!Br(t,e))return dl(t,a,n)?.text??null;let l=(()=>{if(Br(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&Br(t,Y(t,m))?Y(t,m):null})();if(!l)return dl(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=gk(t,l,n);return m!==null?m:dl(t,l,n)?.text??null}return zg(t,e,r,n,o)}var yk=d(()=>{As();ae();Vg();Vg();s(hk,"formatLinkPathForDestination");});function _k(t,e,r,n){let o=nt(e),i=vt(t);if(!Ur(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=Y(e,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),u=Y(e,o.join(c,p));if(u!==l&&n(u))return u}return null}var Rk=d(()=>{ae();As();s(_k,"resolveByDestinationSuffixStrip");});function Ik(t){let e=null,r=false,n=null,o=null,i=null;for(let c of tm(t.candidate,t.projectRoot,t.sourceFile)){let m=null,p=null;for(let u of em(t.projectRoot,c)){let f=Y(t.projectRoot,u),g=Y(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=_k(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=vt(t.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&e!==null&&vt(t.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:e,resolvedBeforeTranslate:n,matchedPath:r}}var Sk=d(()=>{ae();As();Rk();s(Ik,"resolveLinkTarget");});function Ck(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function kk(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 Ek(t){let e=vt(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||jr.test(e)||Ur(e)?false:e.includes("/")}var Lk=d(()=>{ae();As();s(Ck,"isTildeHomeRelativePathToken");s(kk,"isMarkdownLinkDestinationToken");s(Ek,"isRelativePathToken");});function dW(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===`
|
|
53
|
+
`)break;i+=a,o++;}return i===r}function Ok(t,e,r){let n=t.lastIndexOf(`
|
|
54
|
+
`,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 Ak(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:Ok(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 wk(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:i}=pl(n),a=i.replace(ul,""),l=vt(a),c=e+a.length,m=t[e-1],p=t[r];return Ok(t,e,c)||m==="'"&&p==="'"||m==='"'&&p==='"'||m==="`"&&p==="`"||m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!Ur(l)&&dW(t,e,n)):m==="@"?true:m==="("&&t[e-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?Ur(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var bk=d(()=>{ae();As();s(dW,"markdownBracketLabelDuplicatesDestination");s(Ok,"isMarkdownReferenceDefinitionDestination");s(Ak,"getTokenContext");s(wk,"shouldRewritePathToken");});function ou(t){let e=new Set,r=nu(t.content);return {content:t.content.replace(pk,(o,i,a)=>{if(r.some(([Dt,Ze])=>i>=Dt&&i<Ze)||!wk(a,i,i+o.length,o,t.rewriteBarePathTokens===true)||Ck(a,i,o)||uk(a,i,i+o.length))return o;let{candidate:l,suffix:c}=pl(o);if(!l)return o;let m=ul.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=Ak(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&jr.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:R}=Ik({candidate:p,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),C=h;if(!R||!g)return g&&e.add(g),o;let S=vt(p),k=p.endsWith("/")||t.pathIsDirectory?.(g)===true;if(k&&!S.includes("/")&&!S.includes("\\"))return o;if(C===null){let Dt=vt(l);if(Dt.startsWith("agentsmesh/")&&(Dt=`.${Dt}`),Dt.startsWith(".agentsmesh/")||Dt.includes("/.agentsmesh/")){let Ze=nt(t.projectRoot),ja=Y(t.projectRoot,t.projectRoot),Ua=Dt.replace(/^\.\//,"");C=Y(t.projectRoot,Ze.join(ja,Ua));}}let P=nt(t.projectRoot);if(t.scope==="global"){let Dt=vt(l),Ze=Dt.startsWith(".agentsmesh/")||Dt.includes("/.agentsmesh/"),ja=Ur(Dt)||Ek(Dt),Ua=C!==null&&Br(t.projectRoot,C),Dc=Br(t.projectRoot,g);if(C===g&&!Dc&&!Ua&&!Ze){let Ba=vt(P.relative(t.projectRoot,Y(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",g0=(C!==null?vt(P.relative(t.projectRoot,C)):"").split("/").filter(Boolean)[0]??"";if(Ba.length>0&&Ba===g0)return o}if(!ja&&!Ze&&!Ua&&!Dc)return o}let N=Y(t.projectRoot,t.destinationFile),F=Y(t.projectRoot,g),W=vt(P.relative(t.projectRoot,N)),z=vt(P.relative(t.projectRoot,F)),Q=W.split("/").filter(Boolean)[0]??"",at=z.split("/").filter(Boolean)[0]??"",oe=!vt(p).startsWith(".agentsmesh/")&&!k&&Q.length>0&&Q===at&&Q.startsWith(".")&&Q!==".agentsmesh"||f.role==="markdown-link-dest"||kk(a,i,p),Dr=hk(t.projectRoot,t.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||oe,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:k?null:C,forceRelative:oe,tokenContext:f,originalToken:p});return Dr?`${Dr}${u}${c}`:o}),missing:[...e]}}var Jg=d(()=>{ae();As();yk();Sk();Lk();bk();s(ou,"rewriteFileLinks");});function Tk(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 B(t,e,r="project"){let n=nt(e),o=new Map,i=Array.from(new Set([t,...Ft]));for(let c of i){let m=await ik(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 Tk(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 Tk(n,m))l.add(n.normalize(p));}return (c,m,p)=>ou({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 dt=d(()=>{ae();ak();Jg();Rn();s(Tk,"pathVariants");s(B,"createImportReferenceNormalizer");});async function Bt(t,e,r){let n=join(t,e),i={...await yW(n),...r};await O(dirname(n)),await I(n,JSON.stringify({mcpServers:i},null,2));}async function yW(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 Kr=d(()=>{w();s(Bt,"writeMcpWithMerge");s(yW,"readExistingServers");});function wo(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function nr(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 ws(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function Ln(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var or=d(()=>{s(wo,"toGlobsArray");s(nr,"toToolsArray");s(ws,"toStringArray");s(Ln,"toStringRecord");});function IW(t,e){return e.some(r=>t.endsWith(r))}async function Rt(t){let r=(await v(t.srcDir)).filter(o=>IW(o,t.extensions)),n=[];for(let o of r){let i=await _(o);if(!i)continue;let a=relative(t.srcDir,o).replace(/\\/g,"/"),l=await t.mapEntry({srcPath:o,relativePath:a,content:i,normalizeTo:s((c,m=i)=>t.normalize(m,o,c),"normalizeTo")});l&&(await O(dirname(l.destPath)),await I(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var xe=d(()=>{w();s(IW,"matchesExtension");s(Rt,"importFileDirectory");});function Dk(t){return typeof t=="string"?t:void 0}function SW(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function Xg(t,e){return e?e(t):t}function CW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=b(e.normalizeTo(r)),i=Xg(n,t.frontmatterRemap),a=SW({root:false,description:Dk(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await K(r,a,o)}}}function kW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=b(e.normalizeTo(r)),i=Xg(n,t.frontmatterRemap),a=await _t(r,{hasDescription:true,description:Dk(i.description),hasAllowedTools:true,allowedTools:ws(i["allowed-tools"])},o);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:a}}}function EW(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=b(e.normalizeTo(r)),i=Xg(n,t.frontmatterRemap);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await Vt(r,i,o)}}}function Nk(t){if(t.map)return t.map;switch(t.preset){case "rule":return CW(t);case "command":return kW(t);case "agent":return EW(t);default:throw new Error(`ImportFeatureSpec for ${t.feature} (mode: ${t.mode}) needs a \`preset\` or \`map\``)}}var Fk=d(()=>{j();ut();or();s(Dk,"pickString");s(SW,"pruneUndefined");s(Xg,"applyRemap");s(CW,"ruleMapper");s(kW,"commandMapper");s(EW,"agentMapper");s(Nk,"resolveMapper");});function Zg(t,e){return t?t[e]??[]:[]}var vk,Mk=d(()=>{vk=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(Zg,"resolveScopedSources");});async function wW(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(S=>o(c,l,S),"normalizeTo");if(t.map){let S;try{S=await t.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(k){let P=k instanceof Error?k.message:String(k);process.stderr.write(`\u26A0 skipping ${l}: ${P}
|
|
56
|
+
`);continue}if(!S)continue;return await I(S.destPath,S.content),[{fromTool:n,fromPath:l,toPath:S.toPath,feature:t.feature}]}let u=Fr(p(m),l);if(!u.ok){process.stderr.write(`\u26A0 skipping ${l}: ${u.error.message}
|
|
57
|
+
`);continue}let{frontmatter:f,body:g}=u.value,h=t.frontmatterRemap?t.frontmatterRemap(f):f,R=t.markAsRoot?{...h,root:true}:h,C=await K(m,R,g);return await I(m,C),[{fromTool:n,fromPath:l,toPath:`${t.canonicalDir}/${t.canonicalRootFilename}`,feature:t.feature}]}return []}async function bW(t,e,r,n,o){let i=Nk(t),a=join(r,t.canonicalDir),l=[];for(let c of e){let m=join(r,c),p=await Rt({srcDir:m,destDir:a,extensions:[...t.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(Gp(basename(u)))return null;let R;try{R=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(C=>h(C),"normalizeTo")});}catch(C){let S=C instanceof Error?C.message:String(C);return process.stderr.write(`\u26A0 skipping ${u}: ${S}
|
|
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}
|
|
53
59
|
|
|
54
|
-
${
|
|
55
|
-
`)}]}var
|
|
56
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(
|
|
57
|
-
`)),r.push({fromTool:
|
|
60
|
+
${n}`:n||r;return {path:`${An}/${e.name}.md`,content:o}})}function tO(t){return rt(t,zr)}function eO(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:im,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function rO(t){return t.agents.map(e=>({path:`${zr}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function nO(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 lt(e?.body.trim()??"",r)}var oO=d(()=>{tt();Ut();mt();Fi();s(QL,"generateRules");s(qL,"generateCommands");s(tO,"generateSkills");s(eO,"generateMcp");s(rO,"generateAgents");s(nO,"renderAntigravityGlobalInstructions");});function _H(t){let e=t.replace(/\\/g,"/");return !e.startsWith("rules/")||e.endsWith("/")||!e.endsWith(".md")?null:e}async function oo(t){let e=jC(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=_H(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}=b(a),m=await K(i,{...l,root:false,description:n.description||void 0,globs:n.globs.length>0?n.globs:void 0,targets:n.targets.length>0?n.targets:void 0},c);await I(i,m),r.push({fromTool:t.fromTool,fromPath:t.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:e.rootContent,results:r}}var Hl=d(()=>{w();j();Ut();ut();s(_H,"canonicalRulePath");s(oo,"splitEmbeddedRulesToCanonical");});async function RH(t,e,r,n){let o=n==="global"?wn:ar,i=n==="project"?[o,sm]:[o];for(let a of i){let l=join(t,a),c=await _(l);if(c===null)continue;let m=join(t,ih),p=await oo({content:c,projectRoot:t,rulesDir:Ni,sourcePath:l,fromTool:Di,normalize:r});e.push(...p.results);let{body:u}=b(r(p.rootContent,l,m)),f=await K(m,{root:true},u);await O(join(t,Ni)),await I(m,f),e.push({fromTool:Di,fromPath:l,toPath:ih,feature:"rules"});return}}async function iO(t,e={}){let r=e.scope??"project",n=[],o=await B(Di,t,r);return await RH(t,n,o,r),n.push(...await J(Mu,t,r,{normalize:o})),await q(t,r==="global"?bn:zr,Di,n,o),n}var aO=d(()=>{dt();w();j();tt();Et();ut();Hl();Fi();ly();s(RH,"importRootRule");s(iO,"importFromAntigravity");});var mO,pO,uO=d(()=>{j();ut();Fi();mO=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}=b(e(n));return {destPath:n,toPath:`${Ni}/${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)}},"nonRootRuleMapper"),pO=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${lu}/${t}`,content:await _t(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function dO(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Di}))}var fO=d(()=>{It();Fi();s(dO,"lintRules");});var IH,SH,CH,kH,Mu,ly=d(()=>{wi();mt();oO();Fi();aO();uO();fO();Ct();IH={name:"antigravity",primaryRootInstructionPath:ar,generateRules:QL,generateCommands:qL,generateAgents:rO,generateSkills:tO,generateMcp:eO,importFrom:iO},SH={rootInstructionPath:ar,skillDir:".agents/skills",managedOutputs:{dirs:[Hr,An,zr],files:[ar]},rewriteGeneratedPath(t){return t===im?null:t},paths:{rulePath(t,e){return `${Hr}/${t}.md`},commandPath(t,e){return `${An}/${t}.md`},agentPath(t){return `${zr}/${U(t)}/SKILL.md`}}},CH={rootInstructionPath:wn,renderPrimaryRootInstruction:nO,skillDir:bn,managedOutputs:{dirs:[bn,am],files:[wn,fl]},rewriteGeneratedPath(t){return t===ar?wn:t.startsWith(`${Hr}/`)?null:t.startsWith(".agents/skills/")?t.replace(".agents/skills",bn):t.startsWith(`${An}/`)?t.replace(An,am):t===im?fl:t},paths:{rulePath(t,e){return wn},commandPath(t,e){return `${am}/${t}.md`},agentPath(t){return `${bn}/${U(t)}/SKILL.md`}}},kH={rules:"native",additionalRules:"embedded",commands:Gr("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Mu={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:IH,capabilities:{rules:"native",additionalRules:"native",commands:Gr("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:dO,project:SH,globalSupport:{capabilities:kH,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:CH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Hr]},canonicalDir:Ni,extensions:[".md"],map:mO},commands:{feature:"commands",mode:"directory",source:{project:[An],global:[am]},canonicalDir:lu,extensions:[".md"],map:pO},mcp:{feature:"mcp",mode:"flatFile",source:{global:[fl]},canonicalDir:".agentsmesh",canonicalFilename:aE}},buildImportPaths:ah,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function LH(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 OH(t){let e={};return t.description&&(e.description=t.description),e}function gO(t){let e=[];for(let r of t.rules)if(!(r.targets.length>0&&!r.targets.includes(ce)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),e.push({path:`${De}/_root.md`,content:T(n,r.body.trim())});}else {let n=basename(r.source,".md");e.push({path:`${De}/${n}.md`,content:T(LH(r),r.body.trim())});}return e}function hO(t){return t.commands.map(e=>({path:`${lr}/${e.name}.md`,content:T(OH(e),e.body.trim())}))}function yO(t){return rt(t,Ne)}function _O(t){return t.ignore.length===0?[]:[{path:Tn,content:t.ignore.join(`
|
|
61
|
+
`)}]}var RO=d(()=>{tt();j();vi();s(LH,"ruleFrontmatter");s(OH,"commandFrontmatter");s(gO,"generateRules");s(hO,"generateCommands");s(yO,"generateSkills");s(_O,"generateIgnore");});function wH(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 SO(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 Bt(t,ch,a),r.push({fromTool:ce,fromPath:join(t,e),toPath:ch,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=wH(i);if(Object.keys(a).length>0){let l=join(t,mh);await O(dirname(l)),await I(l,stringify(a)),r.push({fromTool:ce,fromPath:join(t,e),toPath:mh,feature:"hooks"});}}}async function CO(t,e,r){let n=await _(join(t,e));if(n===null)return;let o=n.split(`
|
|
62
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(t,ph);await O(dirname(i)),await I(i,o.join(`
|
|
63
|
+
`)),r.push({fromTool:ce,fromPath:join(t,e),toPath:ph,feature:"ignore"});}var kO=d(()=>{w();Kr();vi();s(wH,"augmentHooksToCanonical");s(SO,"importAugmentSettings");s(CO,"importAugmentIgnore");});function bH(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 PH(t,e,r,n){let o=n==="global"?To:De,i=join(t,lh);e.push(...await Rt({srcDir:join(t,o),destDir:i,extensions:[".md"],fromTool:ce,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}=b(l(m));return {destPath:m,toPath:`${lh}/${a}`,feature:"rules",content:await K(m,bH(p,c),u)}},"mapEntry")}));}async function TH(t,e,r,n){let o=n==="global"?xo:lr,i=join(t,".agentsmesh/commands");e.push(...await Rt({srcDir:join(t,o),destDir:i,extensions:[".md"],fromTool:ce,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a,".md"),m=join(i,`${c}.md`),{frontmatter:p,body:u}=b(l(m)),f=typeof p.description=="string"?p.description:"";return {destPath:m,toPath:`.agentsmesh/commands/${c}.md`,feature:"commands",content:await _t(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function LO(t,e={}){let r=e.scope??"project",n=[],o=await B(ce,t,r);return await PH(t,n,o,r),await TH(t,n,o,r),await q(t,r==="global"?xn:Ne,ce,n,o),await SO(t,r==="global"?Do:Pn,n),r==="project"&&await CO(t,Tn,n),n}var OO=d(()=>{dt();xe();tt();ut();j();kO();vi();s(bH,"canonicalRuleMeta");s(PH,"importRules");s(TH,"importCommands");s(LO,"importFromAugmentCode");});function AO(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ce}))}var wO=d(()=>{It();vi();s(AO,"lintRules");});function PO(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=>Ps(r,"augment-code",bO,{unsupportedBy:"AugmentCode hooks"}))}var bO,TO=d(()=>{Lt();bO=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(PO,"lintHooks");});function DH(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 NH(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 FH(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=DH(t.hooks)),Object.keys(e).length===0?null:JSON.stringify(e,null,2)}var xH,vH,MH,$H,GH,xO,DO=d(()=>{RO();OO();wO();TO();Ct();vi();xH={name:ce,generateRules:gO,generateCommands:hO,generateSkills:yO,generateIgnore:_O,importFrom:LO};s(DH,"serializeHooksForSettings");s(NH,"mergeAugmentSettings");s(FH,"buildSettingsContent");vH={skillDir:Ne,managedOutputs:{dirs:[De,lr,Ne],files:[Pn,Tn]},paths:{rulePath(t){return `${De}/${t}.md`},commandPath(t){return `${lr}/${t}.md`},agentPath(t){return null}}},MH={skillDir:xn,managedOutputs:{dirs:[To,xo,xn],files:[Do]},rewriteGeneratedPath(t){return t.startsWith(`${De}/`)?t.replace(`${De}/`,`${To}/`):t.startsWith(`${lr}/`)?t.replace(`${lr}/`,`${xo}/`):t.startsWith(`${Ne}/`)?t.replace(`${Ne}/`,`${xn}/`):t===Pn?Do:t===Tn?null:t},paths:{rulePath(t){return `${To}/${t}.md`},commandPath(t){return `${xo}/${t}.md`},agentPath(t){return null}}},$H={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},GH={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},xO={id:ce,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:xH,capabilities:$H,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:AO,lint:{hooks:PO},project:vH,globalSupport:{capabilities:GH,detectionPaths:[To,xo,xn,Do],layout:MH},emitScopedSettings(t){let e=FH(t);return e===null?[]:[{path:Pn,content:e}]},mergeGeneratedOutputContent(t,e,r,n){return n===Pn||n===Do?NH(t,r):null},buildImportPaths:uh,detectionPaths:[De,lr,Ne,Pn,Tn]};});function NO(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(!Sn(i))continue;let a=zt(i),l=he(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 FO=d(()=>{Mr();s(NO,"buildClaudeHooksObjectFromCanonical");});function vO(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:xs,content:r.body.trim()?r.body:""});let n=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("claude-code")));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=T(a,o.body.trim()||"");e.push({path:`${lm}/${i}.md`,content:l});}return e}function MO(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:`${cm}/${e.name}.md`,content:n}})}function $O(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
|
|
58
64
|
|
|
59
|
-
${
|
|
65
|
+
${n}`,i=T(r,o);return {path:`${mm}/${e.name}.md`,content:i}})}function GO(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:gl,content:e}]}function jO(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
|
|
60
66
|
|
|
61
|
-
${
|
|
62
|
-
`);return [{path
|
|
67
|
+
${o}`,a=T(n,i);e.push({path:`${pm}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");e.push({path:`${pm}/${r.name}/${c}`,content:l.content});}}return e}function UO(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:um,content:o}]}function BO(t,e){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let r=NO(t);if(Object.keys(r).length===0)return [];if(e?.scope==="global")return [{path:No,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:um,content:n}]}function KO(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
68
|
+
`);return [{path:dm,content:e}]}var WO=d(()=>{j();Fo();FO();s(vO,"generateRules");s(MO,"generateCommands");s($O,"generateAgents");s(GO,"generateMcp");s(jO,"generateSkills");s(UO,"generatePermissions");s(BO,"generateHooks");s(KO,"generateIgnore");});function BH(t){let e=t.description.trim();return e||(basename(t.source)||"rule").replace(/\.md$/i,"")||"Rule"}function HO(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
63
69
|
|
|
64
|
-
## ${e?
|
|
70
|
+
## ${e?BH(e):"Guidance"}
|
|
65
71
|
|
|
66
72
|
${r}
|
|
67
|
-
`:""}var
|
|
73
|
+
`:""}var zO=d(()=>{s(BH,"ruleSectionTitle");s(HO,"renderClaudeGlobalPrimaryInstructions");});function JO(t,e){return t===null?"created":t!==e?"updated":"unchanged"}async function YO(t,e,r,n){if(r!=="global")return [];let o=n.has("agents"),i=n.has("commands");if(!o&&!i)return [];let a=[];if(o)for(let l of t.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${dh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:JO(u,m)});}if(i)for(let l of t.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=T(c,l.body.trim()),p=`${dh}/${l.name}.md`,u=await _(join(e,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:JO(u,m)});}return a}var XO=d(()=>{w();j();Fo();s(JO,"computeStatus");s(YO,"generateClaudeGlobalExtras");});function ZO(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(!Sn({...m,type:p}))continue;let u=p==="prompt"?he(m)||zt(m):zt(m)||he(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 QO(t,e){let r=join(t,No),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=ZO(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(t,Mi);return await O(dirname(l)),await I(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:Mi,feature:"hooks"}),true}async function qO(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(No)),n=join(t,um),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 Bt(t,hm,m),e.push({fromTool:"claude-code",fromPath:n,toPath:hm,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,gh);await O(dirname(h)),await I(h,g),e.push({fromTool:"claude-code",fromPath:n,toPath:gh,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=ZO(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(t,Mi);await O(dirname(u)),await I(u,p),e.push({fromTool:"claude-code",fromPath:n,toPath:Mi,feature:"hooks"});}}}var tA=d(()=>{Mr();w();Kr();Fo();s(ZO,"claudeHooksToCanonical");s(QO,"importClaudeHooksJson");s(qO,"importSettings");});async function rA(t,e,r){let n=join(t,pm),o=join(t,fh),a=(await v(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=Fr(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
|
|
74
|
+
`);continue}let h=await v(c);for(let R of h){let C=await _(R);if(C===null)continue;let S=relative(c,R),k=join(p,S);await O(dirname(k));let P=r(C,R,k);await I(k,S==="SKILL.md"?await Cn(k,g.value.frontmatter,g.value.body):P);let N=`${fh}/${m}/${S}`;e.push({fromTool:"claude-code",fromPath:R,toPath:N,feature:"skills"});}}}var nA=d(()=>{w();j();ut();Fo();s(rA,"importClaudeSkills");});async function oA(t,e={}){let r=e.scope??"project",n=[],o=await B("claude-code",t,r);return n.push(...await J($u,t,r,{normalize:o})),await rA(t,n,o),await QO(t,n),await qO(t,n),n}var sA=d(()=>{dt();Et();tA();nA();py();s(oA,"importFromClaudeCode");});var iA,aA,lA,cA=d(()=>{j();ut();or();Fo();iA=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${gm}/${t}`,content:await K(n,{...o,root:false},i)}},"claudeRuleMapper"),aA=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:`${pu}/${t}`,content:await _t(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"),lA=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${uu}/${t}`,content:await Vt(n,o,i)}},"claudeAgentMapper");});function mA(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:mE}))}var pA=d(()=>{It();Fo();s(mA,"lintRules");});var HH,uA,zH,VH,$u,py=d(()=>{WO();Fo();ee();zO();XO();sA();cA();pA();Ct();HH={name:"claude-code",primaryRootInstructionPath:xs,generateRules:vO,generateCommands:MO,generateAgents:$O,generateSkills:jO,generateMcp:GO,generatePermissions:UO,generateHooks:BO,generateIgnore:KO,importFrom:oA},uA={rootInstructionPath:xs,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`}}},zH={rootInstructionPath:xs,skillDir:".claude/skills",renderPrimaryRootInstruction:HO,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",fm,No,".claudeignore"]},rewriteGeneratedPath(t){return t===gl?fm:t},mirrorGlobalPath(t,e){return pt(t,".claude/skills",e)},paths:uA.paths},VH={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},$u={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:HH,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:mA,project:uA,globalSupport:{capabilities:VH,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:zH,scopeExtras:YO},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[xs,pE],global:[xs]},canonicalDir:gm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[lm],global:[lm]},canonicalDir:gm,extensions:[".md"],map:iA}],commands:{feature:"commands",mode:"directory",source:{project:[cm],global:[cm]},canonicalDir:pu,extensions:[".md"],map:aA},agents:{feature:"agents",mode:"directory",source:{project:[mm],global:[mm]},canonicalDir:uu,extensions:[".md"],map:lA},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[gl],global:[fm]},canonicalDir:".agentsmesh",canonicalFilename:hm},ignore:{feature:"ignore",mode:"flatFile",source:{project:[dm],global:[dm]},canonicalDir:".agentsmesh",canonicalFilename:uE}},buildImportPaths:hh,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};});function YH(t){let e=basename(t,".md");return e==="_root"?"root":e}function dA(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:Ns,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=YH(n.source),i={description:n.description||void 0,paths:n.globs.length>0?n.globs:void 0};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=Object.keys(i).length>0?T(i,n.body.trim()||""):n.body.trim()||"";e.push({path:`${vo}/${o}.md`,content:a});}return e}function fA(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
68
75
|
|
|
69
|
-
${
|
|
70
|
-
`);return [{path
|
|
71
|
-
`)}function
|
|
76
|
+
${n}`:r||n;return {path:`${Dn}/${e.name}.md`,content:o}})}function gA(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
77
|
+
`);return [{path:$i,content:e}]}function hA(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Mo,content:e}]}function yA(t){return t.agents.map(e=>({path:`${Zt}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function XH(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function dy(t){return t.replace(/[\r\n]+/g," ")}function ZH(t,e,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${dy(t)}`,`# agentsmesh-matcher: ${dy(r)}`,`# agentsmesh-command: ${dy(e)}`,"set -eu",e,""].join(`
|
|
78
|
+
`)}function _A(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)ko(i)&&(e.push({path:`${Gi}/${XH(r)}-${o}.sh`,content:ZH(r,i.command,i.matcher)}),o++);}return e}function RA(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:`${Zt}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${Zt}/${r.name}/${a}`,content:i.content});}}return e}var IA=d(()=>{Mr();j();mt();cr();s(YH,"ruleSlug");s(dA,"generateRules");s(fA,"generateCommands");s(gA,"generateIgnore");s(hA,"generateMcp");s(yA,"generateAgents");s(XH,"safeEventName");s(dy,"safeShellLine");s(ZH,"buildHookScript");s(_A,"generateHooks");s(RA,"generateSkills");});async function CA(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}=b(r(o)),l=wo(i.paths??i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${Fs}/${n}`,feature:"rules",content:await K(o,c,a)}}async function kA(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=b(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(`
|
|
72
79
|
|
|
73
|
-
`);if(p>0){let
|
|
74
|
-
`)&&(
|
|
75
|
-
`)),e.push({fromTool:"cline",fromPath:
|
|
80
|
+
`);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:`${du}/${t}`,feature:"commands",content:await _t(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var fy=d(()=>{j();ut();or();cr();s(CA,"mapClineRuleFile");s(kA,"mapClineWorkflowFile");});async function EA(t,e,r){let n=join(t,Fs),o=join(t,vo),i=join(t,vo),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}=b(r(p,i,u)),R=f.root===true?f:{...f,root:true},C=await K(u,R,g);await I(u,C),e.push({fromTool:"cline",fromPath:i,toPath:`${Fs}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await _(c);if(m===null){let p=join(t,Ns),u=await _(p);if(u!==null){l=p,await O(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=b(r(u,p,f)),C=g.root===true?g:{...g,root:true},S=await K(f,C,h);await I(f,S),e.push({fromTool:"cline",fromPath:p,toPath:`${Fs}/_root.md`,feature:"rules"});}else {let h=(await v(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 C=join(n,"_root.md"),{frontmatter:S,body:k}=b(r(R,h,C)),N=S.root===true?S:{...S,root:true},F=await K(C,N,k);await I(C,F),e.push({fromTool:"cline",fromPath:h,toPath:`${Fs}/_root.md`,feature:"rules"});}}}}else {l=c,await O(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=b(r(m,c,p)),h=u.root===true?u:{...u,root:true},R=await K(p,h,f);await I(p,R),e.push({fromTool:"cline",fromPath:c,toPath:`${Fs}/_root.md`,feature:"rules"});}return e.push(...await Rt({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:CA(u,n,f),"mapEntry")})),a}var LA=d(()=>{w();j();ut();xe();fy();cr();s(EA,"importClineRules");});function qH(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 OA(t,e){let r=[Mo,fE].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=qH(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await O(join(t,".agentsmesh")),await I(join(t,Rh),JSON.stringify({mcpServers:c},null,2)),e.push({fromTool:Ds,fromPath:i,toPath:Rh,feature:"mcp"}));}}var AA=d(()=>{w();cr();s(qH,"mapClineServerToCanonical");s(OA,"importClineMcp");});function wA(t){return tz.some(e=>e.test(t))}var tz,bA=d(()=>{tz=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(wA,"isReservedArtifactName");});async function rz(t){let e=await v(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),i=basename(o);if(wA(i))continue;let a=await _(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Um(t,e,r){let n=await rz(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}=b(l),p=await Cn(a,{...c,name:t},m);await I(a,p);}else await I(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${i.relativePath}`,feature:"skills"});}}async function TA(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}=b(a),m=await Cn(i,{...l,name:t},c);await I(i,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}async function Bm(t){let e=new Map;try{let n=(await v(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 Vl(t,e,r=[]){for(let n of t){let o=join(e.projectRoot,n),i=await Bm(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}=b(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 Um(l,c,e);}if(a)return}}function Jl(t){return {async recognize(e){let r=al(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await kn(join(n.projectRoot,n.destCanonicalSkillsDir,e.skillName));let o=join(n.projectRoot,t.canonicalAgentsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(e.rawBody,e.skillMdPath,i);return await I(i,Os(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function xA(t){return {async recognize(e){let r=Xp(e.frontmatter,e.skillName);if(!r)return false;let{options:n}=e;await kn(join(n.projectRoot,n.destCanonicalSkillsDir,e.skillName));let o=join(n.projectRoot,t.canonicalCommandsDir);await O(o);let i=join(o,`${r.name}.md`),a=n.normalize(e.rawBody,e.skillMdPath,i);return await I(i,Zp(r,a)),n.results.push({fromTool:n.targetName,fromPath:e.skillMdPath,toPath:`${t.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var Yl=d(()=>{w();j();ut();bA();mt();kt();Qc();s(rz,"readNativeSkill");s(Um,"importDirectorySkill");s(TA,"importFlatSkill");s(Bm,"findDirectorySkills");s(Vl,"importSkillsDirectory");s(Jl,"projectedAgentRecognizer");s(xA,"commandSkillRecognizer");});async function DA(t,e,r,n=Zt){await Vl([n],{projectRoot:t,destCanonicalSkillsDir:hE,targetName:"cline",normalize:r,results:e},[Jl({canonicalAgentsDir:gE})]);}var NA=d(()=>{Yl();cr();s(DA,"importClineSkills");});function yy(t,e){return t.match(new RegExp(`^# agentsmesh-${e}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function FA(t,e){let n=(await v(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=yy(i,"event"),l=yy(i,"command");if(!a||!l)continue;let c=yy(i,"matcher")??"*";e[a]||(e[a]=[]),e[a].push({matcher:c,command:l});}}async function MA(t,e){let r={};if(await FA(join(t,Gi),r),await FA(join(t,Bi),r),Object.keys(r).length===0)return;let n=join(t,yh);await O(dirname(n)),await I(n,stringify(r)),e.push({fromTool:Ds,fromPath:join(t,Bi),toPath:yh,feature:"hooks"});}var $A=d(()=>{w();cr();s(yy,"extractMeta");s(FA,"loadHooksFromDir");s(MA,"importClineHooks");});async function GA(t){let e=[],r=await B(Ds,t),n=await EA(t,e,r),o=join(t,$i),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 I(m,c.join(`
|
|
82
|
+
`)),e.push({fromTool:"cline",fromPath:o,toPath:_h,feature:"ignore"});}}await OA(t,e);let a=join(t,du);return n||e.push(...await Rt({srcDir:join(t,Dn),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>kA(l,a,c),"mapEntry")})),await DA(t,e,r),await MA(t,e),e}var jA=d(()=>{dt();w();xe();fy();LA();cr();AA();NA();$A();s(GA,"importFromCline");});function UA(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:Ds}))}var BA=d(()=>{It();cr();s(UA,"lintRules");});function KA(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>x(e.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function WA(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".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 HA=d(()=>{Lt();s(KA,"lintCommands");s(WA,"lintHooks");});var sz,iz,az,lz,zA,VA=d(()=>{IA();wi();cr();jA();BA();HA();Ct();ol();mt();sz={name:"cline",primaryRootInstructionPath:Ns,generateRules:dA,generateCommands:fA,generateAgents:yA,generateSkills:RA,generateMcp:hA,generateHooks:_A,generateIgnore:gA,importFrom:GA},iz={rootInstructionPath:Ns,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 `${vo}/${t}.md`},commandPath(t,e){return `${Dn}/${t}.md`},agentPath(t,e){return qe(e,"cline")?`.cline/skills/${U(t)}/SKILL.md`:null}}},az={skillDir:Zt,managedOutputs:{dirs:[ji,Ui,Bi,Zt,".agents/skills"],files:[Mo,$i]},rewriteGeneratedPath(t){return t===Ns?null:t.startsWith(`${Gi}/`)?`${Bi}/${t.slice(Gi.length+1)}`:t.startsWith(`${Dn}/`)?`${Ui}/${t.slice(Dn.length+1)}`:t.startsWith(`${vo}/`)?`${ji}/${t.slice(vo.length+1)}`:t},mirrorGlobalPath(t,e){return t.startsWith(`${Zt}/`)?`.agents/skills/${t.slice(Zt.length+1)}`:null},paths:{rulePath(t,e){return `${ji}/${t}.md`},commandPath(t,e){return `${Ui}/${t}.md`},agentPath(t,e){return qe(e,"cline")?`.cline/skills/${U(t)}/SKILL.md`:null}}},lz={rules:"native",additionalRules:"native",commands:Gr("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},zA={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:sz,capabilities:{rules:"native",additionalRules:"native",commands:Gr("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:UA,lint:{commands:KA,hooks:WA},project:iz,globalSupport:{capabilities:lz,detectionPaths:[ji,Ui,Bi,Zt,Mo,$i],layout:az},buildImportPaths:Ih,detectionPaths:[".clinerules",".cline"],conversionDefaults:{agentsToSkills:true}};});var Ie,JA,cs,_a,YA,so,XA,ju,Ra,io,Ia,ms,ZA,Wm,QA,_y,qA,Ry,tw,ew,Iy,Sy,Cy,de=d(()=>{Ie="codex-cli",JA="codex.md",cs="AGENTS.md",_a=".codex/AGENTS.md",YA=".codex/AGENTS.override.md",so=".agents/skills",XA=".codex/skills",ju=".codex/config.toml",Ra=".codex/instructions",io=".codex/rules",Ia=".codex/agents",ms=".agentsmesh/rules",ZA=".agentsmesh/commands",Wm=".agentsmesh/agents",QA=".agentsmesh/skills",_y=".agentsmesh/mcp.json",qA="am-codex-rule:v1",Ry="# am-json: ",tw="# am-body-b64-begin",ew="# am-body-b64-end",Iy="# am64:",Sy="<!-- agentsmesh:codex-rule-index:start -->",Cy="<!-- agentsmesh:codex-rule-index:end -->";});function ky(t){return basename(t,".md")}function Hm(t){return `${Ra}/${ky(t.source)}.md`}function rw(t){let e={root:t.root,description:t.description||void 0,globs:t.globs.length>0?t.globs:void 0,targets:t.targets.length>0?t.targets:void 0,codex_emit:t.codexEmit||void 0,codex_instruction:t.codexInstructionVariant&&t.codexInstructionVariant!=="default"?t.codexInstructionVariant:void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),T(e,t.body.trim()||"")}function mz(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 \`${io}/${ky(t.source)}.rules\`.`),t.targets.length>0&&e.push(`Targeted to ${t.targets.map(r=>`\`${r}\``).join(", ")}.`),e.join(" ")}function nw(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)}](${Hm(a)}): ${mz(a)}`),i=[Sy,"## Additional Rule Files",...o,Cy].join(`
|
|
76
83
|
`);return r?`${r}
|
|
77
84
|
|
|
78
|
-
${i}`:i}function
|
|
79
|
-
`).trim()}var
|
|
85
|
+
${i}`:i}function ow(t){let e=Sy.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=Cy.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`\\n?${e}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
86
|
+
`).trim()}var Uu=d(()=>{j();de();s(ky,"ruleSlug");s(Hm,"codexInstructionMirrorPath");s(rw,"serializeCodexInstructionMirror");s(mz,"summarizeRule");s(nw,"appendCodexRuleIndex");s(ow,"stripCodexRuleIndex");});function uz(t){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(t)}function dz(t){return t.split(`
|
|
80
87
|
`).map(e=>e.length>0?`# ${e}`:"#").join(`
|
|
81
|
-
`)}function
|
|
82
|
-
`:`${["# 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.","#",...
|
|
88
|
+
`)}function fz(t){let e=t.trim();return e?uz(e)?`${e}
|
|
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.","#",...dz(e).split(`
|
|
83
90
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
84
91
|
`)}
|
|
85
|
-
`:""}function
|
|
86
|
-
${
|
|
92
|
+
`:""}function Ey(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:cs,content:nw(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:`${io}/${o}.rules`,content:fz(n.body)}),r.push({path:Hm(n),content:rw(n)}));}return r}function Ly(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 lt(e?.body.trim()??"",r)}var sw=d(()=>{Ut();de();Uu();s(uz,"looksLikeCodexRulesDsl");s(dz,"toCodexRulesComments");s(fz,"toSafeCodexRulesContent");s(Ey,"generateRules");s(Ly,"renderCodexGlobalInstructions");});function Oy(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:`${so}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${so}/${r.name}/${a}`,content:i.content});}}return e}function gz(t){return {path:`${so}/${H(t.name)}/SKILL.md`,content:Nt(t)}}function Ay(t){return t.commands.map(gz)}var iw=d(()=>{j();de();kt();s(Oy,"generateSkills");s(gz,"commandToSkillOutput");s(Ay,"generateCommands");});function wy(t){return t.agents.map(e=>({path:`${Ia}/${e.name}.toml`,content:hz(e)}))}function hz(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
|
+
${n}
|
|
87
94
|
"""`);}else e.push(`developer_instructions = '''
|
|
88
95
|
${r}
|
|
89
96
|
'''`);return e.join(`
|
|
90
97
|
`)+`
|
|
91
|
-
`}var
|
|
98
|
+
`}var aw=d(()=>{de();s(wy,"generateAgents");s(hz,"serializeAgentToCodexToml");});function Bu(t){return "command"in t}function lw(t){return "url"in t}var Ku=d(()=>{s(Bu,"isStdioMcpServer");s(lw,"isUrlMcpServer");});function by(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).flatMap(([n,o])=>Bu(o)?[[n,o]]:[]));if(Object.keys(e).length===0)return [];let r=yz(e);return [{path:ju,content:r}]}function yz(t){let e=[];for(let[r,n]of Object.entries(t)){let o=cw(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])=>`${cw(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}e.push(i.join(`
|
|
92
99
|
`));}return e.join(`
|
|
93
100
|
|
|
94
101
|
`)+`
|
|
95
|
-
`}function
|
|
96
|
-
`).find(
|
|
97
|
-
`)){let m=l.trimEnd();if(m===cA){c=true;continue}if(m===lA){c=false;continue}c&&m.startsWith(Ih)&&a.push(m.slice(Ih.length));}if(a.length===0)return null;try{let l=Buffer$1.from(a.join(""),"base64").toString("utf8");return {meta:{description:n,globs:i},body:l}}catch{return null}}var wA=u(()=>{ae();s(kA,"tryParseEmbeddedCanonicalFromCodexRules");});async function bA(t,e,r){let o=[],n=join(t,Qo);try{let i=await N(n),a=i.filter(l=>l.endsWith(".md"));for(let l of a){let m=await y(l);if(!m)continue;let p=relative(n,l).replace(/\\/g,"/"),d=join(e,p),{frontmatter:g,body:f}=w(r(m,l,d));await L(e);let h=g.root===!0?g:{...g,root:!1},O=await K(d,h,f);await I(d,O),o.push({fromTool:ge,fromPath:l,toPath:`${es}/${p}`,feature:"rules"});}let c=i.filter(l=>l.endsWith(".rules"));for(let l of c){let m=await y(l);if(!m)continue;let p=relative(n,l).replace(/\\/g,"/").replace(/\.rules$/i,".md"),d=join(e,p);await L(e);let g=kA(m);if(g){let f=await K(d,{description:g.meta.description,globs:g.meta.globs,root:!1},r(g.body,l,d));await I(d,f);}else {let f=await K(d,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),l,d));await I(d,f);}o.push({fromTool:ge,fromPath:l,toPath:`${es}/${p}`,feature:"rules"});}}catch{}return o}var PA=u(()=>{T();M();lt();ae();wA();s(bA,"importCodexNonRootRuleFiles");});async function DA(t,e,r,o,n){let i=join(t,rA),a=join(t,ts),c=join(t,oA),l=join(t,ca),m=n==="global"?await y(c):null,p=n==="global"?await y(l):null,d=n==="project"?await y(a):null,g=n==="project"?await y(i):null,f=m!==null?c:p!==null?l:d!==null?a:i,h=join(t,es),O=m??p??d??g;if(O!==null){await L(h);let R=join(h,"_root.md"),E=f===a||f===l||f===c?uA(O):O,A=await Xo({content:E,projectRoot:t,rulesDir:es,sourcePath:f,fromTool:"codex-cli",normalize:r});e.push(...A.results);let F=r(f===a||f===l||f===c?o(A.rootContent,f,R):A.rootContent,f,R),{frontmatter:v,body:G}=w(F),J=v.root===true?v:{...v,root:true},Y=await K(R,J,G);await I(R,Y),e.push({fromTool:"codex-cli",fromPath:f,toPath:`${es}/_root.md`,feature:"rules"});}await TK(t,h,e,r),e.push(...await bA(t,h,r)),n!=="global"&&e.push(...await yt({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:R,normalizeTo:E})=>{let A=relative(t,dirname(R)).replace(/\\/g,"/"),F=basename(R),v=F==="AGENTS.override.md";if(!A||A==="."||!v&&F!=="AGENTS.md")return null;let G=A.replace(/\//g,"-");if(!Sp(A))return await go(join(h,`${G}.md`)),null;let J=join(h,`${G}.md`),{frontmatter:Y,body:q}=w(E(J));return {destPath:J,toPath:`${es}/${G}.md`,feature:"rules",content:await K(J,{...Y,root:false,globs:[`${A}/**`],...v?{codex_instruction:"override"}:{}},q)}},"mapEntry")}));}async function TK(t,e,r,o){try{let i=(await N(join(t,la))).filter(c=>c.endsWith(".md")),a=join(t,la);for(let c of i){let l=relative(a,c).replace(/\\/g,"/");if(l==="_root.md")continue;let m=await y(c);if(!m)continue;let p=join(e,l),{frontmatter:d,body:g}=w(o(m,c,p));await L(e);let f=d.root===!0?d:{...d,root:!1},h=await K(p,f,g);await I(p,h),r.push({fromTool:ge,fromPath:c,toPath:`${es}/${l}`,feature:"rules"});}}catch{}}var NA=u(()=>{T();M();lt();Ac();ke();Al();ae();PA();iu();s(DA,"importCodexRules");s(TK,"importInstructionMirrors");});async function lu(t,e){let r=e?.scope??"project",o=[],n=await U(ge,t,r),i=await U("windsurf",t,r);return await DA(t,o,n,i,r),await EA(t,o,n),await LA(t,o,n),await SA(t,o),o}var Ph=u(()=>{mt();ae();CA();OA();AA();NA();s(lu,"importFromCodex");});function FA(t,e,r){let{rules:o}=t;return o.length===0?[]:o.some(i=>i.root)?[]:[{level:"warning",file:relative(e,o[0].source),target:ge,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var vA=u(()=>{ae();s(FA,"lintRules");});function GA(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,o]of Object.entries(t.mcp.mcpServers))if(typeof o.description=="string"&&o.description&&e.push(b(".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 o||"type"in o){let n="type"in o?o.type:"url";e.push(b(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${n} transport; codex-cli only generates stdio MCP servers.`));}return e}var MA=u(()=>{Et();s(GA,"lintMcp");});function $A(t){return hm(t)}var jA=u(()=>{iu();s($A,"codexAdvisoryInstructionPath");});var PK,xK,DK,NK,KA,BA=u(()=>{RA();ae();Ph();vA();MA();Rt();Ua();jA();St();PK={name:"codex-cli",primaryRootInstructionPath:ts,generateRules:Eh,generateCommands:Ah,generateAgents:kh,generateSkills:Lh,generateMcp:wh,importFrom:lu},xK={rootInstructionPath:ts,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${Qo}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return $A(e)},commandPath(t,e){return ja(e,"codex-cli")?`${Zo}/${W(t)}/SKILL.md`:null},agentPath(t,e){return `${ma}/${t}.toml`}}},DK={rootInstructionPath:ca,renderPrimaryRootInstruction:Oh,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${Qo}/${e}.rules`]},skillDir:Zo,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[ca,".codex/config.toml"]},rewriteGeneratedPath(t){return t===ts?ca:t.startsWith(`${la}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${Qo}/${t}.rules`:ca},commandPath(t,e){return ja(e,"codex-cli")?`${Zo}/${W(t)}/SKILL.md`:null},agentPath(t,e){return `${ma}/${t}.toml`}}},NK={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},KA={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:PK,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:FA,lint:{mcp:GA},project:xK,globalSupport:{capabilities:NK,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:DK},buildImportPaths:Rf,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"]};});function vK(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 WA(t){return `${Oo}/${t}.md`}function HA(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"],P(e,t.body.trim()||"")}function zA(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:vK(t["x-agentsmesh-allowed-tools"])}}function VA(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"],P(r,e.trim()||"")}var mu=u(()=>{M();Lo();s(vK,"toStringArray");s(WA,"continueCommandRulePath");s(HA,"serializeCommandRule");s(zA,"parseCommandRuleFrontmatter");s(VA,"serializeImportedCommand");});function JA(t){let e=[],r=t.rules.find(o=>o.root);if(r){let o={};r.description&&(o.description=r.description),e.push({path:Tn,content:P(o,r.body.trim()||"")});}for(let o of t.rules){if(o.root||o.targets.length>0&&!o.targets.includes("continue"))continue;let n=basename(o.source,".md"),i={};o.description&&(i.description=o.description),o.globs.length>0&&(i.globs=o.globs),e.push({path:`${Mr}/${n}.md`,content:P(i,o.body.trim()||"")});}return e}function YA(t){return t.commands.map(e=>({path:`${Oo}/${e.name}.md`,content:HA(e)}))}function XA(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Pp,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function ZA(t){return t.agents.map(e=>({path:`${be}/${$(e.name)}/SKILL.md`,content:Lt(e)}))}function QA(t){return tt(t,be)}var qA=u(()=>{Q();at();M();mu();Lo();s(JA,"generateRules");s(YA,"generateCommands");s(XA,"generateMcp");s(ZA,"generateAgents");s(QA,"generateSkills");});function jK(t,e){let o=(e===".json"?JSON.parse(t):parse(t)??{}).mcpServers;if(!o||typeof o!="object"||Array.isArray(o))return {};let n={};for(let[i,a]of Object.entries(o)){if(!a||typeof a!="object"||Array.isArray(a))continue;let c=a;typeof c.command=="string"&&(n[i]={type:typeof c.type=="string"?c.type:"stdio",command:c.command,args:hs(c.args),env:ho(c.env),description:typeof c.description=="string"?c.description:void 0});}return n}async function UK(t,e){let r=(await N(join(t,Sf))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),o={},n=[];for(let i of r){let a=await y(i);a&&(Object.assign(o,jK(a,extname(i))),n.push(i));}if(Object.keys(o).length!==0){await $t(t,Ef,o);for(let i of n)e.push({fromTool:Xa,fromPath:i,toPath:Ef,feature:"mcp"});}}async function pu(t){let e=[],r=await U(Xa,t);return e.push(...await z(uu,t,"project",{normalize:r})),await Z(t,be,Xa,e,r),await UK(t,e),e}var xh=u(()=>{mt();T();Q();Ct();Nr();Qe();Lo();Dh();s(jK,"readMcpServers");s(UK,"importMcp");s(pu,"importFromContinue");});function KK(t){return t==="general.md"||t==="_root.md"}var ek,rk,ok=u(()=>{M();lt();mu();Lo();s(KK,"isContinueRootRulePath");ek=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=KK(t),n=o?"_root.md":t,i=join(r,n),{frontmatter:a,body:c}=w(e(i)),l={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:o};return l.description===void 0&&delete l.description,l.globs===void 0&&delete l.globs,{destPath:i,toPath:`${xp}/${n}`,content:await K(i,l,c)}},"continueRuleMapper"),rk=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:o})=>{let n=join(o,e),{frontmatter:i,body:a}=w(r(n)),c=zA(i,t),l=c.name||e.replace(/\.md$/,"").replace(/^.*\//,""),m=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",p=m?`${m}/${l}.md`:`${l}.md`,d=join(o,p),g=await ht(d,{description:c.description,hasDescription:!!c.description,allowedTools:c.allowedTools,hasAllowedTools:c.allowedTools.length>0},w(VA(c,a)).body);return {destPath:d,toPath:`${Dp}/${p}`,content:g}},"continueCommandMapper");});function nk(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:Xa}))}var sk=u(()=>{_t();Lo();s(nk,"lintRules");});function ik(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>b(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var ak=u(()=>{Et();s(ik,"lintCommands");});function zK(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var ck,lk=u(()=>{T();Lo();s(zK,"computeStatus");ck=s(async(t,e,r,o)=>{if(r!=="global")return [];let n=o.has("rules"),i=o.has("commands"),a=o.has("mcp");if(!(n&&t.rules.length>0||i&&t.commands.length>0||a&&t.mcp!==null&&Object.keys(t.mcp.mcpServers).length>0))return [];let l={name:"agentsmesh",version:1,schema:"v1"};if(n&&t.rules.length>0&&(l.rules=t.rules.map(d=>({name:d.description||basename(d.source,".md"),rule:d.body.trim()}))),i&&t.commands.length>0&&(l.prompts=t.commands.map(d=>{let g={name:d.name};return d.description&&(g.description=d.description),g.prompt=d.body.trim(),g})),a&&t.mcp!==null){let d=Object.entries(t.mcp.mcpServers);d.length>0&&(l.mcpServers=d.map(([g,f])=>({name:g,...f})));}let m=stringify(l),p=await y(join(e,Bl));return [{target:"continue",path:Bl,content:m,currentContent:p??void 0,status:zK(p,m)}]},"generateContinueGlobalConfig");});function JK(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var mk,pk=u(()=>{T();Lo();lk();s(JK,"computeStatus");mk=s(async(t,e,r,o)=>{let n=await ck(t,e,r,o);if(r!=="global"||!o.has("rules"))return n;let i=t.rules.find(l=>l.root);if(!i)return n;let a=i.body.trim(),c=await y(join(e,Za));return [...n,{target:"continue",path:Za,content:a,currentContent:c??void 0,status:JK(c,a)}]},"generateContinueScopeExtras");});var YK,XK,ZK,QK,uu,Dh=u(()=>{at();qA();Lo();xh();ok();sk();ak();mu();Rt();pk();YK={name:"continue",primaryRootInstructionPath:Tn,generateRules:JA,generateCommands:YA,generateAgents:ZA,generateSkills:QA,generateMcp:XA,importFrom:pu},XK={rootInstructionPath:Tn,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Mr}/${t}.md`},commandPath(t,e){return WA(t)},agentPath(t){return `${be}/${$(t)}/SKILL.md`}}},ZK={rootInstructionPath:Tn,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Za]}],skillDir:be,managedOutputs:{dirs:[Mr,Oo,be,".agents/skills"],files:[Pp,Za,Bl]},mirrorGlobalPath(t,e){return t.startsWith(`${be}/`)?`.agents/skills/${t.slice(be.length+1)}`:null},paths:{rulePath(t,e){return `${Mr}/${t}.md`},commandPath(t,e){return `${Oo}/${t}.md`},agentPath(t){return `${be}/${$(t)}/SKILL.md`}}},QK={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},uu={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:YK,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:nk,lint:{commands:ik},project:XK,globalSupport:{capabilities:QK,detectionPaths:[Mr,Oo,".continue/mcpServers",be],layout:ZK,scopeExtras:mk},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Mr],global:[Mr]},canonicalDir:xp,extensions:[".md"],map:ek},commands:{feature:"commands",mode:"directory",source:{project:[Oo],global:[Oo]},canonicalDir:Dp,extensions:[".md"],map:rk}},buildImportPaths:Of,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"]};});var rs,pa,uk,ua,Ys,qo,tn,da,ga,du,gu,dk,Fh,gk,Xs,Pc,os,xc,fa,vh,Gh,Rr=u(()=>{rs="copilot",pa=".github/copilot-instructions.md",uk=".github/copilot",ua=".github/instructions",Ys=".github/prompts",qo=".github/hooks",tn=".github/skills",da=".github/agents",ga=".agentsmesh/rules",du=".agentsmesh/commands",gu=".agentsmesh/agents",dk=".agentsmesh/skills",Fh=".agentsmesh/hooks.yaml",gk=".github/copilot-hooks",Xs=".copilot/copilot-instructions.md",Pc=".copilot/agents",os=".copilot/skills",xc=".copilot/prompts",fa=".copilot/AGENTS.md",vh=".claude/skills",Gh=".agents/skills";});function fk(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 fu(t){return `${Ys}/${t}.prompt.md`}function hk(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"],P(e,t.body.trim()||"")}function yk(t,e){let o=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),n=fk(t["x-agentsmesh-allowed-tools"]),i=n.length>0?n:fk(t.tools);return {name:o,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var hu=u(()=>{M();Rr();s(fk,"toStringArray");s(fu,"commandPromptPath");s(hk,"serializeCommandPrompt");s(yk,"parseCommandPromptFrontmatter");});function yu(t){return dn(t)}var Mh=u(()=>{br();s(yu,"hasHookCommand");});function eB(t){let e=basename(t,".md");return e==="_root"?"root":e}function rB(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function _k(t){let e=[],r=t.rules.find(o=>o.root);r?.body.trim()&&e.push(r.body.trim());for(let o of t.rules){if(o.root||o.targets.length>0&&!o.targets.includes("copilot"))continue;let n=o.body.trim();if(!n)continue;let i=o.description?`## ${o.description}`:null;i?e.push(`${i}
|
|
102
|
+
`}function cw(t){return !/^[A-Za-z0-9_-]+$/.test(t)}var mw=d(()=>{Ku();de();s(by,"generateMcp");s(yz,"serializeMcpToToml");s(cw,"needsTomlQuoting");});var pw=d(()=>{sw();iw();aw();mw();});var uw=d(()=>{pw();});function Iz(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 dw(t,e){let r=join(t,ju),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=Iz(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Bt(t,_y,a),e.push({fromTool:Ie,fromPath:r,toPath:_y,feature:"mcp"}));}var fw=d(()=>{w();Kr();de();s(Iz,"mapTomlServerToCanonical");s(dw,"importMcp");});async function gw(t,e,r){await Vl([so,XA],{projectRoot:t,destCanonicalSkillsDir:QA,targetName:Ie,normalize:r,results:e},[xA({canonicalCommandsDir:ZA}),Jl({canonicalAgentsDir:Wm})]);}var hw=d(()=>{Yl();de();s(gw,"importSkills");});async function yw(t,e,r){let n=join(t,Ia),o=join(t,Wm);try{let a=(await v(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":"",C=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(F=>typeof F=="string"):[];await O(o);let S=join(o,`${p}.md`),k=r(f,l,S),N=Os({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:R,maxTurns:0,mcpServers:C,hooks:{},skills:[],memory:""},k);await I(S,N),e.push({fromTool:Ie,fromPath:l,toPath:`${Wm}/${p}.md`,feature:"agents"});}}catch{}}var _w=d(()=>{w();mt();de();s(yw,"importCodexAgentsFromToml");});function Rw(t){if(!t.includes(qA))return null;let e=t.split(`
|
|
103
|
+
`).find(c=>c.startsWith(Ry));if(!e)return null;let r;try{r=JSON.parse(e.slice(Ry.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(`
|
|
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}
|
|
98
105
|
|
|
99
|
-
${
|
|
106
|
+
${o}`):e.push(o);}return e.join(`
|
|
100
107
|
|
|
101
|
-
`)}function
|
|
102
|
-
`)}async function
|
|
108
|
+
`)}function gb(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:Sa,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=Qz(n.source),i={description:n.description||void 0,applyTo:n.globs.length===1?n.globs[0]:n.globs};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=T(i,n.body.trim()||"");r.push({path:`${Ca}/${o}.instructions.md`,content:a});}return r}function hb(t){return t.commands.map(e=>({path:Ju(e.name),content:ub(e)}))}function yb(t){let e=[];for(let r of t.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=T(n,r.body.trim()||"");e.push({path:`${lo}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${lo}/${r.name}/${a}`,content:i.content});}}return e}function _b(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,"mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,skills:e.skills.length>0?e.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${ka}/${e.name}.agent.md`,content:n}})}function Rb(t){if(!t.hooks)return [];let e=Object.fromEntries(Object.entries(t.hooks).flatMap(([r,n])=>{let o=qz(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&Xu(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:`${ao}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:e},null,2)}]}var Ib=d(()=>{j();wr();Yu();My();s(Qz,"ruleSlug");s(qz,"mapHookEvent");s(fb,"renderCopilotGlobalInstructions");s(gb,"generateRules");s(hb,"generateCommands");s(yb,"generateSkills");s(_b,"generateAgents");s(Rb,"generateHooks");});function eV(t){switch(t){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function rV(t){return typeof t!="string"?"*":t.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function kb(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 Eb(t,e){let r=join(t,ao),o=(await v(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=eV(g);if(!(!R||!Array.isArray(h)))for(let C of h){if(!C||typeof C!="object")continue;let S=C,k=typeof S.bash=="string"?S.bash:"";if(!k)continue;let P=join(r,k.replace(/^\.\//,"")),N=await _(P);if(!N)continue;let F=kb(N);F&&(i[R]||(i[R]=[]),i[R].push({matcher:rV(S.comment),command:F,type:"command"}));}}}let a=join(t,mb),c=(await v(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:kb(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(t,Ny);await O(dirname(m)),await I(m,stringify(i)),e.push({fromTool:ps,fromPath:join(t,ao),toPath:Ny,feature:"hooks"});}var Lb=d(()=>{w();wr();s(eV,"mapCopilotHookEvent");s(rV,"extractMatcher");s(kb,"extractWrapperCommand");s(Eb,"importHooks");});async function Ob(t,e,r,n=lo){let o=join(t,n),i=await Bm(o),a={projectRoot:t,destCanonicalSkillsDir:cb,targetName:ps,normalize:r,results:e};for(let[l,c]of i)await Um(l,c,a);}var Ab=d(()=>{Yl();wr();s(Ob,"importSkills");});async function wb(t,e={}){let r=e.scope??"project",n=[],o=await B(ps,t,r);return n.push(...await J(Zu,t,r,{normalize:o})),await Ob(t,n,o,r==="global"?us:lo),r==="project"&&await Eb(t,n),n}var bb=d(()=>{dt();Et();wr();Lb();Ab();$y();s(wb,"importFromCopilot");});function Pb(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}var Tb,xb,Db,Nb,Fb=d(()=>{j();ut();or();Yu();wr();s(Pb,"pruneUndefined");Tb=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=t.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:i,body:a}=b(e(o)),l=wo(i.globs),c=Pb({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Ea}/${n}`,content:await K(o,c,a)}},"copilotLegacyRuleMapper"),xb=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}=b(e(o)),l=wo(i.applyTo!==void 0?i.applyTo:i.globs),c=Pb({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Ea}/${n}`,content:await K(o,c,a)}},"copilotNewRuleMapper"),Db=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}=b(r(i)),c=db(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:`${zu}/${u}`,content:await _t(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"),Nb=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}=b(e(i));return {destPath:i,toPath:`${Vu}/${n}`,content:await Vt(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function vb(t,e,r,n){let i=V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:ps})),a=t.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:ps,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var Mb=d(()=>{It();wr();s(vb,"lintRules");});function $b(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>x(e.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function Gb(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=>Ps(i,"copilot",e,{unsupportedBy:"Copilot hooks"}));return Object.values(t.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(x(".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 jb=d(()=>{Lt();s($b,"lintCommands");s(Gb,"lintHooks");});function aV(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function lV(t,e){let r=relative(t,e).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function cV(t,e){let r=t.match(Bb);if(!r?.groups)return t;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${e}"${o}`}async function mV(t,e){let n=e.match(Bb)?.groups?.path;if(!n)return null;let o=join(t,n),i=await _(o);if(i===null)return null;let a=lV(t,o);return a?{assetPath:`${ao}/scripts/${a}`,content:i,rewrittenCommand:cV(e,a)}:null}function pV(t,e){return `${ao}/scripts/${aV(t)}-${e}.sh`}function Ub(t){return t.replace(/[\r\n]+/g," ")}function uV(t,e){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${Ub(e)}`,`# agentsmesh-command: ${Ub(t)}`,"set -eu",t,""].join(`
|
|
109
|
+
`)}async function Kb(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(!Xu(c))continue;let m=pV(i,l),p=c.command,u=await mV(t,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=uV(p,c.matcher).replace(`set -eu
|
|
103
110
|
`,`set -eu
|
|
104
111
|
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
105
|
-
`);
|
|
106
|
-
`);return [{path:
|
|
107
|
-
`)}var
|
|
112
|
+
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var Bb,Wb=d(()=>{w();wr();My();Bb=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(aV,"safePhaseName");s(lV,"toRepoRelative");s(cV,"rewriteWrapperCommand");s(mV,"buildAssetOutput");s(pV,"wrapperPath");s(Ub,"safeShellLine");s(uV,"buildWrapper");s(Kb,"addHookScriptAssets");});function fV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Hb,zb=d(()=>{w();wr();s(fV,"computeStatus");Hb=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,La));return [{target:"copilot",path:La,content:i,currentContent:a??void 0,status:fV(a,i)}]},"generateCopilotGlobalExtras");});var hV,yV,_V,RV,Zu,$y=d(()=>{Ib();wr();bb();Fb();Mb();Ct();Yu();jb();Wb();zb();hV={name:"copilot",primaryRootInstructionPath:Sa,generateRules:gb,generateCommands:hb,generateAgents:_b,generateSkills:yb,generateHooks:Rb,importFrom:wb},yV={rootInstructionPath:Sa,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 [`${Ca}/${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 `${Ca}/${t}.instructions.md`},commandPath(t,e){return Ju(t)},agentPath(t,e){return `${ka}/${t}.agent.md`}}},_V={rootInstructionPath:ii,renderPrimaryRootInstruction:fb,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[La]}],skillDir:us,managedOutputs:{dirs:[Xl,us,Zl,vy,Fy],files:[ii,La]},rewriteGeneratedPath(t){return t===Sa?ii:t.startsWith(`${Ca}/`)?ii:t.startsWith(`${si}/`)?t.replace(`${si}/`,`${Zl}/`):t.startsWith(`${ka}/`)?t.replace(`${ka}/`,`${Xl}/`):t.startsWith(`${lo}/`)?t.replace(`${lo}/`,`${us}/`):t.startsWith(`${ao}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${us}/`)&&!e.includes("codex-cli")){let r=t.slice(us.length+1);return [`.agents/skills/${r}`,`${Fy}/${r}`]}return null},paths:{rulePath(t,e){return ii},commandPath(t,e){return `${Zl}/${t}.prompt.md`},agentPath(t,e){return `${Xl}/${t}.agent.md`}}},RV={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Zu={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:hV,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:vb,lint:{commands:$b,hooks:Gb},postProcessHookOutputs:s(async(t,e,r)=>Kb(t,e,[...r]),"postProcessHookOutputs"),project:yV,globalSupport:{capabilities:RV,detectionPaths:[ii,La,Xl,us,Zl,vy],layout:_V,scopeExtras:Hb},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Sa],global:[ii]},canonicalDir:Ea,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[lb]},canonicalDir:Ea,extensions:[".instructions.md"],map:Tb},{feature:"rules",mode:"directory",source:{project:[Ca]},canonicalDir:Ea,extensions:[".instructions.md",".md"],map:xb}],commands:{feature:"commands",mode:"directory",source:{project:[si],global:[Zl]},canonicalDir:zu,extensions:[".prompt.md"],map:Db},agents:{feature:"agents",mode:"directory",source:{project:[ka],global:[Xl]},canonicalDir:Vu,extensions:[".agent.md"],map:Nb}},buildImportPaths:Oh,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};});function Qu(t){return {$schema:"https://charm.land/crush.json",...t}}var Vb=d(()=>{s(Qu,"buildCrushConfigJson");});function Jb(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(mr)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:pr,content:o}]:[]}function Yb(t){return rt(t,Qt)}function Xb(t){return t.commands.map(e=>({path:`${Qt}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function Zb(t){return t.agents.map(e=>({path:`${Qt}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function Qb(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Qu({mcp:t.mcp.mcpServers});return [{path:ve,content:JSON.stringify(e,null,2)}]}function qb(t){if(!t.hooks)return [];let e=IV(t);if(Object.keys(e).length===0)return [];let r=Qu({hooks:e});return [{path:ve,content:JSON.stringify(r,null,2)}]}function tP(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=Qu({permissions:o});return [{path:ve,content:JSON.stringify(i,null,2)}]}function eP(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
113
|
+
`);return [{path:Go,content:e}]}function IV(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 rP=d(()=>{tt();Ut();mt();kt();_l();Vb();s(Jb,"generateRules");s(Yb,"generateSkills");s(Xb,"generateCommands");s(Zb,"generateAgents");s(Qb,"generateMcp");s(qb,"generateHooks");s(tP,"generatePermissions");s(eP,"generateIgnore");s(IV,"buildCrushHooksFromCanonical");});async function oP(t,e={}){let r=e.scope??"project",n=[],o=await B(mr,t,r);return n.push(...await J(qu,t,r,{normalize:o})),await q(t,r==="global"?Me:Qt,mr,n,o),await SV(t,n),n}async function SV(t,e){let r=join(t,ve),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=CV(i.mcp);if(Object.keys(a).length>0){let c=Su,m=join(t,c);await O(dirname(m)),await I(m,JSON.stringify({mcpServers:a},null,2)),e.push({fromTool:mr,fromPath:r,toPath:c,feature:"mcp"});}let l=kV(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=EV(l);await I(m,p),e.push({fromTool:mr,fromPath:r,toPath:c,feature:"hooks"});}}function CV(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:ws(o.args),env:Ln(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:Ln(o.headers),env:Ln(o.env),...i!==void 0?{description:i}:{}});}return e}function kV(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 EV(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(`
|
|
114
|
+
`)}var sP=d(()=>{dt();tt();Et();w();or();jy();_l();s(oP,"importFromCrush");s(SV,"importCrushConfigJson");s(CV,"parseCrushMcpServers");s(kV,"parseCrushHooks");s(EV,"serializeHooksYaml");});function iP(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:mr}))}var aP=d(()=>{It();_l();s(iP,"lintRules");});function lP(t){return t.commands.length===0?[]:[x(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var cP=d(()=>{Lt();s(lP,"lintCommands");});function Uy(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}function pP(t,e){let r=Uy(t),n=OV.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 uP(t,e){let r=Uy(t),n=AV.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 dP(t,e){let r=Uy(t),n=LV.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 mP,LV,OV,AV,td=d(()=>{mP=[".claude/settings.json",".gemini/settings.json"],LV=z.object({$schema:z.string().optional(),mcp:z.record(z.string(),z.unknown()).optional(),hooks:z.record(z.string(),z.unknown()).optional(),permissions:z.record(z.string(),z.unknown()).optional(),options:z.record(z.string(),z.unknown()).optional()}).passthrough(),OV=z.object({permissions:z.object({allow:z.array(z.string()).optional(),deny:z.array(z.string()).optional()}).passthrough().optional(),hooks:z.record(z.string(),z.unknown()).optional()}).passthrough(),AV=z.object({mcpServers:z.record(z.string(),z.unknown()).optional(),hooks:z.record(z.string(),z.unknown()).optional(),experimental:z.record(z.string(),z.unknown()).optional(),context:z.record(z.string(),z.unknown()).optional()}).passthrough();s(Uy,"parseJsonObject");s(pP,"mergeSettingsJson");s(uP,"mergeGeminiSettingsJson");s(dP,"mergeCrushConfigJson");});var wV,bV,PV,TV,xV,qu,jy=d(()=>{kt();mt();rP();ee();sP();aP();cP();Ct();td();_l();wV={name:mr,primaryRootInstructionPath:pr,generateRules:Jb,generateCommands:Xb,generateAgents:Zb,generateSkills:Yb,generateMcp:Qb,generateHooks:qb,generatePermissions:tP,generateIgnore:eP,importFrom:oP},bV={rootInstructionPath:pr,skillDir:Qt,managedOutputs:{dirs:[Qt],files:[pr,ve,Go]},paths:{rulePath(t){return pr},commandPath(t){return `${Qt}/${H(t)}/SKILL.md`},agentPath(t){return `${Qt}/${U(t)}/SKILL.md`}}},PV={rootInstructionPath:Ki,skillDir:Me,managedOutputs:{dirs:[Me],files:[Ki,_u]},rewriteGeneratedPath(t){return t===pr?Ki:t===ve?_u:t===Go?null:t.startsWith(`${Qt}/`)?t.replace(`${Qt}/`,`${Me}/`):t},mirrorGlobalPath(t,e){return pt(t,Me,e)},paths:{rulePath(t){return Ki},commandPath(t){return `${Me}/${H(t)}/SKILL.md`},agentPath(t){return `${Me}/${U(t)}/SKILL.md`}}},TV={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},xV={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},qu={id:mr,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:wV,capabilities:TV,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:iP,lint:{commands:lP},supportsConversion:{commands:true,agents:true},project:bV,globalSupport:{capabilities:xV,detectionPaths:[Ki,_u,Me],layout:PV},mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===ve?dP(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[pr],global:[Ki]},canonicalDir:Ru,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Go]},canonicalDir:".agentsmesh",canonicalFilename:Iu}},buildImportPaths:Ah,detectionPaths:[pr,ve,Qt,Go],sharedArtifacts:{".crush/skills/":"owner"}};});function By(t){let e=[],r=t.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";e.push({path:vs,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=T(a,i);e.push({path:jo,content:l});}let n=t.rules.filter(i=>!i.root&&(i.targets.length===0||i.targets.includes("cursor")));for(let i of n){let a=basename(i.source,".md"),c={alwaysApply:i.trigger==="always_on"};i.description&&(c.description=i.description),i.globs.length>0&&(c.globs=i.globs);let m=T(c,i.body.trim()||"");e.push({path:`${ur}/${a}.mdc`,content:m});}let o=fP(t);return o.trim()&&e.push({path:Yr,content:o}),e}function fP(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(lt(e.body,r)):r.length>0&&n.push(lt("",r)),n.filter(Boolean).join(`
|
|
108
115
|
|
|
109
|
-
`)}var
|
|
110
|
-
`);return [{path
|
|
116
|
+
`)}var gP=d(()=>{j();Ut();Kt();s(By,"generateRules");s(fP,"renderCursorGlobalUserRules");});function Ky(t){return t.commands.map(e=>({path:`${dr}/${e.name}.md`,content:e.body.trim()||""}))}var hP=d(()=>{Kt();s(Ky,"generateCommands");});function Wy(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:$e,content:e}]}var yP=d(()=>{Kt();s(Wy,"generateMcp");});function Hy(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:`${me}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${me}/${r.name}/${a}`,content:i.content});}}return e}var _P=d(()=>{j();Kt();s(Hy,"generateSkills");});function zy(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${fr}/${e.name}.md`,content:n}})}var RP=d(()=>{j();Kt();s(zy,"generateAgents");});function Vy(t){return []}var IP=d(()=>{s(Vy,"generatePermissions");});function NV(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Sn(i))continue;let a=zt(i),l=he(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 Jy(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=NV(t.hooks);if(Object.keys(e).length===0)return [];let r=JSON.stringify({version:1,hooks:e},null,2);return [{path:vn,content:r}]}var SP=d(()=>{Mr();Kt();s(NV,"toCursorHooks");s(Jy,"generateHooks");});function Yy(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
117
|
+
`);return [{path:Jr,content:e}]}var CP=d(()=>{Kt();s(Yy,"generateIgnore");});var kP=d(()=>{gP();hP();yP();_P();RP();IP();SP();CP();});var EP=d(()=>{kP();});async function rd(t,e,r,n){let o=t.replace(/\.mdc$/i,".md"),i=join(e,o),l=b(r(i)).frontmatter.alwaysApply===true,c=l?join(e,"_root.md"):i,{frontmatter:m,body:p}=b(r(c));l&&n();let u={...m,root:l};if(delete u.alwaysApply,!l){let f=FV(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${Mn}/${l?"_root.md":o}`,feature:"rules",content:await K(c,u,p)}}function FV(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 LP(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=b(r(n)),a=nr(o.allowedTools),l=a.length>0?a:nr(o["allowed-tools"]);return {destPath:n,toPath:`${Ms}/${t}`,feature:"commands",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)}}async function OP(t,e,r){let n=join(e,t),{frontmatter:o,body:i}=b(r(n));return {destPath:n,toPath:`${$s}/${t}`,feature:"agents",content:await Vt(n,o,i)}}var Xy=d(()=>{j();ut();or();Kt();s(rd,"mapCursorRuleFile");s(FV,"deriveCursorTrigger");s(LP,"mapCursorCommandFile");s(OP,"mapCursorAgentFile");});async function Ql(t){let e=join(t.projectRoot,Mn);await O(e);let r=join(e,"_root.md"),n=await oo({content:t.content,projectRoot:t.projectRoot,rulesDir:Mn,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}=b(o),l=i.root===true?i:{...i,root:true},c=await K(r,l,a);return await I(r,c),t.results.push({fromTool:"cursor",fromPath:t.sourcePath,toPath:`${Mn}/_root.md`,feature:"rules"}),true}var Zy=d(()=>{w();j();Hl();ut();Kt();s(Ql,"importCursorRootFile");});async function wP(t,e,r){let n=join(t,Mn),o=false,i=join(t,ur);if(e.push(...await Rt({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}=b(m);if(p.alwaysApply===true)return null}}return rd(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(t,vs),l=await _(a);l!==null&&(o=await Ql({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(t,EE),l=await _(a);l!==null&&await Ql({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r});}}var bP=d(()=>{w();j();xe();Xy();Zy();Kt();s(wP,"importCursorRules");});function PP(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(!Sn({...m,type:p}))continue;let u=p==="prompt"?he(m)||zt(m):zt(m)||he(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,vn),o=await _(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=PP(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(t,_m);await O(dirname(g)),await I(g,f),e.push({fromTool:"cursor",fromPath:n,toPath:_m,feature:"hooks"}),r=!0;}}}catch{}let i=join(t,Cu),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,bh);await O(dirname(h)),await I(h,g),e.push({fromTool:"cursor",fromPath:i,toPath:bh,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=PP(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(t,_m);await O(dirname(f)),await I(f,u),e.push({fromTool:"cursor",fromPath:i,toPath:_m,feature:"hooks"});}}}async function id(t,e){let r=[{path:join(t,Jr),label:Jr},{path:join(t,wh),label:wh}],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,Ph);await O(dirname(i)),await I(i,n.join(`
|
|
111
118
|
`)+`
|
|
112
|
-
`),e.push({fromTool:"cursor",fromPath:join(t,n[0]),toPath:Tf,feature:"ignore"});}var ey=u(()=>{br();T();jt();s(xw,"cursorHooksToCanonical");s(ku,"importSettings");s(wu,"importIgnore");});async function Tu(t,e,r,o=Ao){let n=join(t,o),i=await dm(n),a={projectRoot:t,destCanonicalSkillsDir:BC,targetName:"cursor",normalize:r,results:e};for(let[p,d]of i)await um(p,d,a);let c=await N(n).catch(()=>[]),l=c.filter(p=>p.endsWith(".md")),m=new Set(Array.from(i.values()).flatMap(p=>c.filter(d=>d.startsWith(p))));for(let p of l){if(m.has(p))continue;let d=await y(p);if(!d)continue;let g=basename(p,".md");await UL(g,p,d,a);}}var ry=u(()=>{T();bc();jt();s(Tu,"importSkills");});async function Dw(t){if(await j(join(t,sr)))return true;let e=[join(t,jr),join(t,tc),join(t,Wl),join(t,wo),join(t,$r),join(t,Ls),join(t,As),join(t,ir)];for(let i of e){let a=await y(i);if(a!==null&&a.trim()!=="")return true}return !!((await N(join(t,Ls))).some(i=>i.endsWith(".md"))||(await N(join(t,As))).some(i=>i.endsWith(".md"))||(await N(join(t,ir))).some(i=>i.endsWith(".md")))}async function Nw(t,e,r){let o=join(t,To),n=false,i=join(t,sr),a=await yt({srcDir:i,destDir:o,extensions:[".mdc"],fromTool:Nc,normalize:r,mapEntry:s(async({srcPath:c,relativePath:l,normalizeTo:m})=>{if(n){let p=await y(c);if(p!==null){let{frontmatter:d}=w(p);if(d.alwaysApply===true)return null}}return Ou(l,o,m,()=>{n=true;})},"mapEntry")});return e.push(...a),n}async function Fw(t,e,r){let o=join(t,tc),n=await y(o);return n===null||n.trim()===""?false:Dc({projectRoot:t,results:e,sourcePath:o,content:n.trim(),normalize:r})}async function vw(t,e,r){let o=join(t,jr),n=await y(o);return n===null||n.trim()===""?false:Dc({projectRoot:t,results:e,sourcePath:o,content:n.trim(),normalize:r})}async function Gw(t,e){let r=join(t,Wl),o=await y(r);if(o===null||o.trim()==="")return;let n;try{n=JSON.parse(o);}catch{return}if(!n||typeof n!="object"||!("mcpServers"in n))return;let i=join(t,ec);await L(dirname(i)),await I(i,o),e.push({fromTool:Nc,fromPath:r,toPath:ec,feature:"mcp"});}async function Mw(t,e,r){let o=join(t,As),n=join(t,ws);e.push(...await yt({srcDir:o,destDir:n,extensions:[".md"],fromTool:Nc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>ww(i,n,a),"mapEntry")}));}async function $w(t,e,r){let o=join(t,ir),n=join(t,ks);e.push(...await yt({srcDir:o,destDir:n,extensions:[".md"],fromTool:Nc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>kw(i,n,a),"mapEntry")}));}var Nc,jw=u(()=>{T();M();ke();jt();qh();Qh();Nc="cursor";s(Dw,"hasGlobalCursorArtifacts");s(Nw,"importGlobalCursorRulesFromDir");s(Fw,"importGlobalUserRules");s(vw,"importGlobalDotCursorAgents");s(Gw,"importGlobalMcp");s(Mw,"importGlobalAgents");s($w,"importGlobalCommands");});async function Uw(t){if(!await Dw(t))return [];let e=[],r=await U(Nc,t,"global"),o=await Nw(t,e,r);return o||(o=await Fw(t,e,r)),o||await vw(t,e,r),await Gw(t,e),await Tu(t,e,r,Ls),await Mw(t,e,r),await $w(t,e,r),await ku(t,e),await wu(t,e),e}var Kw=u(()=>{mt();jt();ry();ey();jw();s(Uw,"importFromCursorGlobalExports");});async function BB(t,e){let r=join(t,ko),o=await y(r);if(!o)return;let n;try{n=JSON.parse(o);}catch{return}if(!n||typeof n!="object"||!("mcpServers"in n))return;let i=n.mcpServers;await $t(t,ec,i),e.push({fromTool:"cursor",fromPath:r,toPath:ec,feature:"mcp"});}async function bu(t,e={}){if(e.scope==="global")return Uw(t);let r=[],o=await U("cursor",t);return await bw(t,r,o),r.push(...await z(Pu,t,"project",{normalize:o})),await Tu(t,r,o),await BB(t,r),await ku(t,r),await wu(t,r),r}var oy=u(()=>{mt();T();Ct();Nr();Pw();ey();ry();Kw();jt();ny();s(BB,"importMcp");s(bu,"importFromCursor");});var Ww,Hw,zw=u(()=>{M();lt();Qe();jt();Ww=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=join(r,t),{frontmatter:n,body:i}=w(e(o)),a=Ze(n.allowedTools),c=a.length>0?a:Ze(n["allowed-tools"]);return {destPath:o,toPath:`${ks}/${t}`,content:await ht(o,{description:typeof n.description=="string"?n.description:"",hasDescription:Object.prototype.hasOwnProperty.call(n,"description"),allowedTools:c,hasAllowedTools:Object.prototype.hasOwnProperty.call(n,"allowedTools")||Object.prototype.hasOwnProperty.call(n,"allowed-tools")},i)}},"cursorCommandMapper"),Hw=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=join(r,t),{frontmatter:n,body:i}=w(e(o));return {destPath:o,toPath:`${ws}/${t}`,content:await Bt(o,n,i)}},"cursorAgentMapper");});function Vw(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(i=>({...i,target:UC}))}var Jw=u(()=>{_t();jt();s(Vw,"lintRules");});function Yw(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>b(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Xw(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,o]of Object.entries(t.mcp.mcpServers)){let n=o.env&&Object.keys(o.env).length>0,i="url"in o,a="headers"in o;(n||i||a)&&e.push(b(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function Zw(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?[b(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var Qw=u(()=>{Et();s(Yw,"lintCommands");s(Xw,"lintMcp");s(Zw,"lintPermissions");});var WB,HB,zB,VB,Pu,ny=u(()=>{Aw();jt();Qt();oy();zw();Jw();Rt();Qw();WB={name:"cursor",primaryRootInstructionPath:Pn,generateRules:Wh,generateCommands:Hh,generateAgents:Jh,generateSkills:Vh,generateMcp:zh,generatePermissions:Yh,generateHooks:Xh,generateIgnore:Zh,importFrom:bu},HB={rootInstructionPath:Pn,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Os,jr]}],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`}}},zB={rootInstructionPath:Pn,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Os,jr]}],skillDir:Ls,managedOutputs:{dirs:[sr,ir,As,Ls],files:[Pn,jr,Wl,wo,$r,tc]},rewriteGeneratedPath(t){return t===Os?null:t===jr||t===Pn||t.startsWith(`${sr}/`)||t.startsWith(`${ir}/`)||t.startsWith(`${qa}/`)||t.startsWith(`${Ao}/`)||t===ko||t===wo||t===$r?t:t===$p?null:t},mirrorGlobalPath(t,e){return ct(t,Ao,e)},paths:{rulePath(t,e){return `${sr}/${t}.mdc`},commandPath(t,e){return `${ir}/${t}.md`},agentPath(t,e){return `${As}/${t}.md`}}},VB={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Pu={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:WB,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:Vw,lint:{commands:Yw,mcp:Xw,permissions:Zw},project:HB,globalSupport:{capabilities:VB,detectionPaths:[Pn,jr,ko,wo,$r,Ao,As,ir,tc],layout:zB},importer:{commands:{feature:"commands",mode:"directory",source:{project:[ir]},canonicalDir:ks,extensions:[".md"],map:Ww},agents:{feature:"agents",mode:"directory",source:{project:[qa]},canonicalDir:ws,extensions:[".md"],map:Hw}},buildImportPaths:bf,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function qw(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(bo)),o=e?.body.trim()??"",n=st(o,r);return n?[{path:ar,content:n}]:[]}function tT(t){return tt(t,se)}function eT(t){return t.commands.map(e=>({path:`${se}/${W(e.name)}/SKILL.md`,content:bt(e)}))}function rT(t){return t.agents.map(e=>({path:`${se}/${$(e.name)}/SKILL.md`,content:Lt(e)}))}function oT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:xn,content:e}]}var nT=u(()=>{Q();Mt();at();St();rc();s(qw,"generateRules");s(tT,"generateSkills");s(eT,"generateCommands");s(rT,"generateAgents");s(oT,"generateMcp");});async function sT(t,e={}){let r=e.scope??"project",o=[],n=await U(bo,t,r);return o.push(...await z(xu,t,r,{normalize:n})),await Z(t,r==="global"?Ur:se,bo,o,n),o}var iT=u(()=>{mt();Q();Ct();rc();sy();s(sT,"importFromDeepagentsCli");});function aT(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:bo}))}var cT=u(()=>{_t();rc();s(aT,"lintRules");});function lT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".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,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".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?[]:[b(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var uT=u(()=>{Et();s(lT,"lintHooks");s(mT,"lintPermissions");s(pT,"lintIgnore");});var JB,YB,XB,ZB,QB,xu,sy=u(()=>{St();at();nT();iT();cT();uT();Rt();rc();JB={name:bo,primaryRootInstructionPath:ar,generateRules:qw,generateCommands:eT,generateAgents:rT,generateSkills:tT,generateMcp:oT,importFrom:sT},YB={rootInstructionPath:ar,skillDir:se,managedOutputs:{dirs:[se],files:[ar,xn]},paths:{rulePath(t){return ar},commandPath(t){return `${se}/${W(t)}/SKILL.md`},agentPath(t){return `${se}/${$(t)}/SKILL.md`}}},XB={rootInstructionPath:Dn,skillDir:Ur,managedOutputs:{dirs:[Ur],files:[Dn,Ni]},rewriteGeneratedPath(t){return t===ar?Dn:t===xn?Ni:t.startsWith(`${se}/`)?t.replace(`${se}/`,`${Ur}/`):t},paths:{rulePath(t){return Dn},commandPath(t){return `${Ur}/${W(t)}/SKILL.md`},agentPath(t){return `${Ur}/${$(t)}/SKILL.md`}}},ZB={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},QB={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},xu={id:bo,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:JB,capabilities:ZB,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:aT,lint:{hooks:lT,permissions:mT,ignore:pT},supportsConversion:{commands:true,agents:true},project:YB,globalSupport:{capabilities:QB,detectionPaths:[Dn,Ni],layout:XB},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ar],global:[Dn]},canonicalDir:HC,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[xn],global:[Ni]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Pf,detectionPaths:[ar,xn]};});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),P(e,t.body.trim()||"")}var gT=u(()=>{M();s(dT,"serializeDroid");});function fT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(cr)),o=e?.body.trim()??"",n=st(o,r);return n?[{path:lr,content:n}]:[]}function hT(t){return tt(t,_e)}function yT(t){return t.commands.map(e=>({path:`${_e}/${W(e.name)}/SKILL.md`,content:bt(e)}))}function _T(t){return t.agents.map(e=>({path:`${Po}/${e.name}.md`,content:dT(e)}))}function IT(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:xo,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var RT=u(()=>{Q();Mt();St();gT();vi();s(fT,"generateRules");s(hT,"generateSkills");s(yT,"generateCommands");s(_T,"generateAgents");s(IT,"generateMcp");});async function CT(t,e,r){let o=await y(join(t,e));if(o===null)return;let n;try{n=JSON.parse(o);}catch{return}if(n===null||typeof n!="object"||Array.isArray(n))return;let a=n.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let c={};for(let[l,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(c[l]=m);Object.keys(c).length!==0&&(await $t(t,ST,c),r.push({fromTool:cr,fromPath:e,toPath:ST,feature:"mcp"}));}var ST,ET=u(()=>{T();Nr();vi();ST=".agentsmesh/mcp.json";s(CT,"importFactoryDroidMcp");});async function OT(t,e={}){let r=e.scope??"project",o=[],n=await U(cr,t,r);return o.push(...await z(Du,t,r,{normalize:n})),await Z(t,r==="global"?Do:_e,cr,o,n),await CT(t,r==="global"?Ts:xo,o),o}var LT=u(()=>{mt();Q();Ct();ET();vi();iy();s(OT,"importFromFactoryDroid");});function AT(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:cr}))}var kT=u(()=>{_t();vi();s(AT,"lintRules");});function wT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".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 TT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function bT(t){return t.ignore.length===0?[]:[b(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var PT=u(()=>{Et();s(wT,"lintHooks");s(TT,"lintPermissions");s(bT,"lintIgnore");});var tW,eW,rW,xT,Du,iy=u(()=>{RT();vi();LT();kT();PT();Rt();St();tW={name:cr,primaryRootInstructionPath:lr,generateRules:fT,generateCommands:yT,generateAgents:_T,generateSkills:hT,generateMcp:IT,importFrom:OT},eW={rootInstructionPath:lr,skillDir:_e,managedOutputs:{dirs:[_e,Po],files:[lr,xo]},paths:{rulePath(t){return lr},commandPath(t){return `${_e}/${W(t)}/SKILL.md`},agentPath(t){return `${Po}/${t}.md`}}},rW={rootInstructionPath:Nn,skillDir:Do,managedOutputs:{dirs:[Do,Fi],files:[Nn,Ts]},rewriteGeneratedPath(t){return t===lr?Nn:t===xo?Ts:t.startsWith(`${_e}/`)?t.replace(`${_e}/`,`${Do}/`):t.startsWith(`${Po}/`)?t.replace(`${Po}/`,`${Fi}/`):t},paths:{rulePath(t){return Nn},commandPath(t){return `${Do}/${W(t)}/SKILL.md`},agentPath(t){return `${Fi}/${t}.md`}}},xT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Du={id:cr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:tW,capabilities:xT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:AT,lint:{hooks:wT,permissions:TT,ignore:bT},supportsConversion:{commands:true},project:eW,globalSupport:{capabilities:xT,detectionPaths:[Nn,Ts,Fi],layout:rW},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[lr],global:[Nn]},canonicalDir:VC,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:xf,detectionPaths:[lr,xo,Po]};});var Zs,Sr,en,DT,NT,Me,Nu,ha,Fu,Im,Qs,FT,vT,qs,vu,Rm,Sm,ay,cy,Fc,ly,vc,Gc,Gu,Mc,ya,Cm,Wt=u(()=>{Zs="gemini-cli",Sr="GEMINI.md",en="AGENTS.md",DT=".gemini/rules",NT=".gemini/GEMINI.md",Me=".gemini/commands",Nu=".gemini/policies",ha=".gemini/settings.json",Fu=".geminiignore",Im=".gemini/skills",Qs=".gemini/agents",FT=".gemini/system.md",vT=`${Nu}/permissions.toml`,qs=".agentsmesh/rules",vu=".agentsmesh/commands",Rm=".agentsmesh/agents",Sm=".agentsmesh/skills",ay=".agentsmesh/mcp.json",cy=".agentsmesh/hooks.yaml",Fc=".agentsmesh/ignore",ly=".agentsmesh/permissions.yaml",vc=".gemini/GEMINI.md",Gc=".gemini/AGENTS.md",Gu=".gemini/settings.json",Mc=".gemini/commands",ya=".gemini/skills",Cm=".gemini/agents";});function my(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 o=st(e?.body.trim()??"",r),n=[{path:Sr,content:o}];return e&&n.push({path:en,content:e.body.trim()}),n}var GT=u(()=>{Mt();Wt();s(my,"generateRules");});function MT(t,e){let r=t.split(":").filter(Boolean),o=r.length>0?r.pop():t;return [e,...r,`${o}.toml`].join("/")}var $T=u(()=>{s(MT,"canonicalCommandNameToGeminiTomlPath");});function oW(t){let e=t.replace(/\r\n/g,`
|
|
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,`
|
|
113
120
|
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
114
121
|
${e}
|
|
115
|
-
"""`}function
|
|
122
|
+
"""`}function e1(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${t1(t.body.trim()||"")}`].join(`
|
|
116
123
|
`)+`
|
|
117
|
-
`}function
|
|
118
|
-
`)}]}var
|
|
119
|
-
`)}function zT(t,e,r){let
|
|
120
|
-
`)}]}var JT=
|
|
124
|
+
`}function l_(t){return t.commands.map(e=>({path:$T(e.name,He),content:e1(e)}))}var jT=d(()=>{Jt();GT();s(t1,"serializeTomlMultilineLiteral");s(e1,"serializeGeminiCommand");s(l_,"generateCommands");});function c_(t){return t.agents.map(e=>{let r={name:e.name,kind:"local",description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,permissionMode:e.permissionMode||void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${li}/${e.name}.md`,content:n}})}var UT=d(()=>{j();Jt();s(c_,"generateAgents");});function m_(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:`${Jm}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${Jm}/${r.name}/${a}`,content:i.content});}}return e}var BT=d(()=>{j();Jt();s(m_,"generateSkills");});function r1(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function p_(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=r1(o);if(!a||!Array.isArray(i))return [];let l=i.filter(c=>typeof c=="object"&&c!==null&&ko(c)).map((c,m)=>({matcher:c.matcher,hooks:[{name:`${a}-${m+1}`,type:"command",command:zt(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:[br,co]}),Object.keys(e).length===0?[]:[{path:Oa,content:JSON.stringify(e,null,2)}]}var u_=d(()=>{Mr();Jt();s(r1,"mapHookEvent");s(p_,"generateGeminiSettingsFiles");});function d_(t){return !t.ignore||t.ignore.length===0?[]:[{path:ud,content:t.ignore.join(`
|
|
125
|
+
`)}]}var KT=d(()=>{Jt();s(d_,"generateIgnore");});var WT=d(()=>{MT();jT();UT();BT();u_();KT();});var HT=d(()=>{WT();});function wa(t){return JSON.stringify(t)}function n1(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function o1(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 gd(t,e,r){return ["[[rule]]",`decision = ${wa(t)}`,`priority = ${e}`,...r,""].join(`
|
|
126
|
+
`)}function zT(t,e,r){let n=o1(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 gd(e,r,[`toolName = ${wa(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return gd(e,r,[`toolName = ${wa(o.Bash)}`,`commandPrefix = ${wa(i)}`])}return n.kind==="read"?gd(e,r,[`toolName = ${wa(o.Read)}`,`argsPattern = ${wa(n1(n.path))}`]):gd(e,r,[`toolName = ${wa(n.raw)}`])}function VT(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=zT(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=zT(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:vT,content:o.join(`
|
|
127
|
+
`)}]}var JT=d(()=>{Jt();s(wa,"escapeTomlBasicString");s(n1,"escapeRegexLiteral");s(o1,"parsePermissionExpr");s(gd,"ruleForDecision");s(zT,"permissionExprToGeminiRule");s(VT,"generateGeminiPermissionsPolicies");});function f_(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 hd(t){let e=t.indexOf("---"),r=t.indexOf("+++");if(e===0&&(r===-1||e<=r))return b(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 g_=d(()=>{j();s(f_,"mapGeminiHookEvent");s(hd,"parseFlexibleFrontmatter");});async function h_(t,e){let r=join(t,Oa),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,o_);await O(join(t,".agentsmesh")),await I(c,JSON.stringify({mcpServers:i},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:o_,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,tc);await O(join(t,".agentsmesh")),await I(c,a.join(`
|
|
121
128
|
`)+`
|
|
122
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
129
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:tc,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=f_(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"&&ko(h)).map(h=>({matcher:g.matcher,command:zt(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"&&ko(h)).map(h=>({matcher:h.matcher,command:zt(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,s_);await O(join(t,".agentsmesh")),await I(p,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:s_,feature:"hooks"});}}}var YT=d(()=>{Mr();w();Jt();g_();s(h_,"importGeminiSettings");});async function XT(t,e){let r=join(t,ud),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,tc);await I(i,o.join(`
|
|
123
130
|
`)+`
|
|
124
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
125
|
-
`),e.push({fromTool:
|
|
126
|
-
`)}]}var
|
|
127
|
-
`)}]}function
|
|
128
|
-
`)}]}function
|
|
131
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:tc,feature:"ignore"});}}}var __=d(()=>{w();Jt();g_();YT();s(XT,"importGeminiIgnore");});function c1(t){return t.replace(/\\(.)/g,"$1")}function m1(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 p1(t){return `Bash(${t}:*)`}function u1(t){return `Read(${c1(t)})`}async function ZT(t){let e=[],r=join(t,pd),n;try{n=await v(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 C=R,S=typeof C.toolName=="string"?C.toolName:null,k=typeof C.decision=="string"?C.decision:null;if(!S||!k)continue;let P=m1(S);if(!P)continue;let N=null;P==="Bash"?typeof C.commandPrefix=="string"&&C.commandPrefix.trim()&&(N=p1(C.commandPrefix.trim())):P==="Read"?typeof C.argsPattern=="string"&&C.argsPattern.trim()?N=u1(C.argsPattern.trim()):N="Read":N=P,N&&(k==="allow"?l.has(N)||(l.add(N),i.push(N)):k==="deny"&&(c.has(N)||(c.add(N),a.push(N))));}}if(i.length===0&&a.length===0)return e;await O(join(t,".agentsmesh"));let m=join(t,i_),p=stringify({allow:i,deny:a});return await I(m,p.trimEnd()+`
|
|
132
|
+
`),e.push({fromTool:ai,fromPath:join(t,pd),toPath:i_,feature:"permissions"}),e}var QT=d(()=>{w();Jt();s(c1,"unescapeRegexLiteral");s(m1,"toolNameToPermissionBase");s(p1,"commandPrefixToBashExpr");s(u1,"argsPatternToReadExpr");s(ZT,"importGeminiPolicies");});function R_(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 tx=d(()=>{s(R_,"stripProjectRootCanonicalPrefix");});async function rx(t,e,r){let n=join(t,Jm),i=(await v(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=b(c),u=al(p.frontmatter,m);if(u){let k=join(t,Ym);await O(k);let P=join(k,`${u.name}.md`);await I(P,Os(u,r(p.body,l,P))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Ym}/${u.name}.md`,feature:"agents"});continue}let f=join(t,Xm,m,"SKILL.md"),g=r(c,l,f),h=join(t,Xm,m);await O(h);let{frontmatter:R,body:C}=b(g);await I(f,await Cn(f,{...R,name:m},C)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Xm}/${m}/SKILL.md`,feature:"skills"});let S=await v(dirname(l));for(let k of S){if(k===l)continue;let P=await _(k);if(P===null)continue;let N=relative(dirname(l),k).replace(/\\/g,"/"),F=join(h,N);await O(dirname(F)),await I(F,r(P,k,F)),e.push({fromTool:"gemini-cli",fromPath:k,toPath:`${Xm}/${m}/${N}`,feature:"skills"});}}let a=join(t,li);try{let c=(await v(a)).filter(m=>m.endsWith(".md"));for(let m of c){let p=await _(m);if(!p)continue;let{frontmatter:u,body:f}=b(p),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),R=join(t,Ym);await O(R);let C=join(R,h),S=r(f,m,C);await I(C,await Vt(C,{...u,name:typeof u.name=="string"?u.name:basename(h,".md"),maxTurns:u.maxTurns??u["max-turns"]??u.max_turns,permissionMode:u.permissionMode??u["permission-mode"]??u.permission_mode,disallowedTools:u.disallowedTools??u["disallowed-tools"]??u.disallowed_tools},S)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${Ym}/${h}`,feature:"agents"});}}catch{}}var nx=d(()=>{w();j();ut();mt();Jt();s(rx,"importGeminiSkillsAndAgents");});async function d1(t,e,r){let n=await B("codex-cli",t),o=join(t,ci),i=join(t,co),a=join(t,NT),l=[i,a,join(t,br),join(t,FT)],c=null,m=l[l.length-1];for(let N of l){let F=await _(N);if(F!==null){c=F,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 oo({content:u,projectRoot:t,rulesDir:ci,sourcePath:m,fromTool:ai,normalize:r});e.push(...f.results);let g=r(f.rootContent,m,p),h=R_(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:R,body:C}=b(h),k=R.root===true?R:{...R,root:true},P=R_(await K(p,k,C),t);await I(p,P),e.push({fromTool:ai,fromPath:m,toPath:`${ci}/_root.md`,feature:"rules"});}async function ox(t){let e=[],r=await B(ai,t);return await d1(t,e,r),e.push(...await J(_d,t,"project",{normalize:r})),await rx(t,e,r),await h_(t,e),await XT(t,e),e.push(...await ZT(t)),e}var sx=d(()=>{dt();w();j();ut();Hl();Et();Jt();C_();__();QT();tx();nx();s(d1,"importRootRule");s(ox,"importFromGemini");});async function ax(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:i,body:a}=hd(r(o)),l=wo(i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${ci}/${n}`,feature:"rules",content:await K(o,c,a)}}async function lx(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):hd(i),c=nr(a.allowedTools),m=nr(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${dd}/${n}`,feature:"commands",content:await _t(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(()=>{ut();or();__();Jt();s(ax,"mapGeminiRuleFile");s(lx,"mapGeminiCommandFile");s(g1,"parseTomlCommand");});var mx,px,ux=d(()=>{cx();mx=s(({relativePath:t,destDir:e,normalizeTo:r})=>ax(t,e,r),"geminiRuleMapper"),px=s(({relativePath:t,destDir:e,normalizeTo:r})=>lx(t,e,r),"geminiCommandMapper");});function dx(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ai}))}var fx=d(()=>{It();Jt();s(dx,"lintRules");});function gx(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>x(e.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function hx(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=>Ps(n,"gemini-cli",e))}var yx=d(()=>{Lt();s(gx,"lintCommands");s(hx,"lintHooks");});function _x(t,e){return e==="project"&&mi("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:p_(t)}var Rx=d(()=>{Pt();u_();s(_x,"emitScopedGeminiSettings");});var h1,y1,_1,R1,_d,C_=d(()=>{HT();wi();JT();Jt();sx();ux();fx();Ct();ol();mt();yx();Rx();ee();td();h1={name:"gemini-cli",primaryRootInstructionPath:br,generateRules:a_,generateCommands:l_,generateAgents:c_,generateSkills:m_,generateIgnore:d_,generatePermissions:VT,importFrom:ox},y1={rootInstructionPath:br,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[co]}],extraRuleOutputPaths(){return [co]},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 pt(t,".gemini/skills",e)},paths:{rulePath(t,e){return br},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${He}/${r.join("/")}/${n}.toml`}return `${He}/${t}.toml`},agentPath(t,e){return qe(e,"gemini-cli")?`.gemini/skills/${U(t)}/SKILL.md`:`${li}/${t}.md`}}},_1={rootInstructionPath:ec,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[rc]}],extraRuleOutputPaths(){return [rc]},skillDir:Aa,managedOutputs:{dirs:[nc,Aa,Zm],files:[ec,rc,fd]},rewriteGeneratedPath(t){return t===br?ec:t===co?rc:t===Oa?fd:t.startsWith(`${He}/`)?t.replace(`${He}/`,`${nc}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${Aa}/`):t.startsWith(`${li}/`)?t.replace(`${li}/`,`${Zm}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return pt(t,Aa,e)},paths:{rulePath(t,e){return ec},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${nc}/${r.join("/")}/${n}.toml`}return `${nc}/${t}.toml`},agentPath(t,e){return qe(e,"gemini-cli")?`${Aa}/${U(t)}/SKILL.md`:`${Zm}/${t}.md`}}},R1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},_d={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:h1,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Gr("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:dx,lint:{commands:gx,hooks:hx},emitScopedSettings:_x,mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Oa?uP(o,r):null},project:y1,globalSupport:{capabilities:R1,detectionPaths:[ec,rc,fd,nc,Aa,Zm],layout:_1},importer:{rules:{feature:"rules",mode:"directory",source:{project:[DT]},canonicalDir:ci,extensions:[".md"],map:mx},commands:{feature:"commands",mode:"directory",source:{project:[He]},canonicalDir:dd,extensions:[".md",".toml"],map:px}},buildImportPaths:Nh,detectionPaths:["GEMINI.md",".gemini"],conversionDefaults:{agentsToSkills:false}};});function Ix(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Bn)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:_r,content:o}]:[]}function Sx(t){return rt(t,Oe)}function Cx(t){return t.commands.map(e=>({path:`${Oe}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function kx(t){return t.agents.map(e=>({path:`${Oe}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function Ex(t){return t.ignore.length===0?[]:[{path:Wo,content:t.ignore.join(`
|
|
133
|
+
`)}]}var Lx=d(()=>{tt();Ut();mt();kt();Cl();s(Ix,"generateRules");s(Sx,"generateSkills");s(Cx,"generateCommands");s(kx,"generateAgents");s(Ex,"generateIgnore");});async function Ox(t,e={}){let r=e.scope??"project",n=[],o=await B(Bn,t,r);return n.push(...await J(Rd,t,r,{normalize:o})),await q(t,r==="global"?Rr:Oe,Bn,n,o),n}var Ax=d(()=>{dt();tt();Et();Cl();k_();s(Ox,"importFromGoose");});function wx(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Bn}))}var bx=d(()=>{It();Cl();s(wx,"lintRules");});function Px(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Tx(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","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function xx(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var Dx=d(()=>{Lt();s(Px,"lintHooks");s(Tx,"lintPermissions");s(xx,"lintMcp");});var I1,S1,C1,Nx,Rd,k_=d(()=>{kt();mt();Lx();ee();Ax();bx();Dx();Ct();Cl();I1={name:Bn,primaryRootInstructionPath:_r,generateRules:Ix,generateCommands:Cx,generateAgents:kx,generateSkills:Sx,generateIgnore:Ex,importFrom:Ox},S1={rootInstructionPath:_r,skillDir:Oe,managedOutputs:{dirs:[Oe],files:[_r,Wo]},paths:{rulePath(t){return _r},commandPath(t){return `${Oe}/${H(t)}/SKILL.md`},agentPath(t){return `${Oe}/${U(t)}/SKILL.md`}}},C1={rootInstructionPath:Ho,skillDir:Rr,managedOutputs:{dirs:[Rr],files:[Ho,Vi]},rewriteGeneratedPath(t){return t===_r?Ho:t===Wo?Vi:t},mirrorGlobalPath(t,e){return pt(t,Rr,e)},paths:{rulePath(t){return Ho},commandPath(t){return `${Rr}/${H(t)}/SKILL.md`},agentPath(t){return `${Rr}/${U(t)}/SKILL.md`}}},Nx={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Rd={id:Bn,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:I1,capabilities:Nx,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:wx,lint:{hooks:Px,permissions:Tx,mcp:xx},supportsConversion:{commands:true,agents:true},project:S1,globalSupport:{capabilities:Nx,detectionPaths:[Ho,Vi,Rr],layout:C1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[_r],global:[Ho]},canonicalDir:DE,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Wo],global:[Vi]},canonicalDir:".agentsmesh",canonicalFilename:NE}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:Fh,detectionPaths:[_r,Wo],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function Fx(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(zo)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:Zr,content:o}]:[]}var vx=d(()=>{Ut();kl();s(Fx,"generateRules");});async function Mx(t,e={}){let r=e.scope??"project",n=await B(zo,t,r);return J(Id,t,r,{normalize:n})}var $x=d(()=>{dt();Et();kl();E_();s(Mx,"importFromJules");});function Gx(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:zo}))}var jx=d(()=>{It();kl();s(Gx,"lintRules");});function Ux(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Bx(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","jules","Jules has no permissions system; canonical permissions are not projected.")]}function Kx(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function Wx(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function Hx(t){return t.commands.length===0?[]:[x(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var zx=d(()=>{Lt();s(Ux,"lintHooks");s(Bx,"lintPermissions");s(Kx,"lintIgnore");s(Wx,"lintMcp");s(Hx,"lintCommands");});var k1,E1,L1,Id,E_=d(()=>{vx();$x();jx();zx();Ct();kl();k1={name:zo,primaryRootInstructionPath:Zr,generateRules:Fx,importFrom:Mx},E1={rootInstructionPath:Zr,managedOutputs:{dirs:[],files:[Zr]},paths:{rulePath(t){return Zr},commandPath(){return null},agentPath(){return null}}},L1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Id={id:zo,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:k1,capabilities:L1,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:Gx,lint:{hooks:Ux,permissions:Bx,ignore:Kx,mcp:Wx,commands:Hx},project:E1,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Zr]},canonicalDir:vE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:vh,detectionPaths:[Zr]};});function Vx(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Kn,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:`${Im}/${o}.md`,content:n.body.trim()||""});}return e}function A1(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),Bu(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 Jx(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,A1(n)]));return [{path:Rm,content:JSON.stringify({mcpServers:e},null,2)}]}function Yx(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${El}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function Xx(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:`${Ll}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function Zx(t){return t.ignore.length===0?[]:[{path:Sm,content:t.ignore.join(`
|
|
134
|
+
`)}]}function Qx(t){return rt(t,Yi)}function qx(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 lt(e?.body.trim()??"",r)}var tD=d(()=>{Ku();tt();Ut();j();Ol();s(Vx,"generateRules");s(A1,"toJunieMcpServer");s(Jx,"generateMcp");s(Yx,"generateCommands");s(Xx,"generateAgents");s(Zx,"generateIgnore");s(Qx,"generateSkills");s(qx,"renderJunieGlobalInstructions");});async function w1(t,e,r){let n=[Kn,ku,$E,GE],o=join(t,Mh);for(let i of n){let a=join(t,i),l=await _(a);if(l===null)continue;let c=await oo({content:l,projectRoot:t,rulesDir:Lu,sourcePath:a,fromTool:Ji,normalize:r});e.push(...c.results);let{frontmatter:m,body:p}=b(r(c.rootContent,a,o)),u=await K(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},p);await I(o,u),e.push({fromTool:Ji,fromPath:a,toPath:Mh,feature:"rules"});return}}async function rD(t){let e=[],r=await B(Ji,t);return await w1(t,e,r),e.push(...await J(Sd,t,"project",{normalize:r})),await q(t,Yi,Ji,e,r),e}var nD=d(()=>{dt();w();j();tt();Hl();ut();Et();Ol();L_();s(w1,"importRootRule");s(rD,"importFromJunie");});function oD(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ji}))}var sD=d(()=>{It();Ol();s(oD,"lintRules");});function iD(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))lw(n)&&e.push(x(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return e}var aD=d(()=>{Ku();Lt();s(iD,"lintMcp");});var b1,P1,T1,x1,Sd,L_=d(()=>{tD();Ol();ee();nD();sD();aD();Ct();b1={name:"junie",primaryRootInstructionPath:Kn,generateRules:Vx,generateCommands:Yx,generateAgents:Xx,generateSkills:Qx,generateMcp:Jx,generateIgnore:Zx,importFrom:rD},P1={rootInstructionPath:Kn,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 `${Im}/${t}.md`},commandPath(t,e){return `${El}/${t}.md`},agentPath(t,e){return `${Ll}/${t}.md`}}},T1={rootInstructionPath:Xi,renderPrimaryRootInstruction:qx,skillDir:km,managedOutputs:{dirs:[km,Em,Lm,jE],files:[Xi,Eu]},rewriteGeneratedPath(t){return t===Kn?Xi:t.startsWith(`${Im}/`)?Xi:t.startsWith(`${Yi}/`)?t.replace(`${Yi}/`,`${km}/`):t.startsWith(`${El}/`)?t.replace(`${El}/`,`${Lm}/`):t.startsWith(`${Ll}/`)?t.replace(`${Ll}/`,`${Em}/`):t===Rm?Eu:t===Sm?null:t},mirrorGlobalPath(t,e){return pt(t,".junie/skills",e)},paths:{rulePath(t,e){return Xi},commandPath(t,e){return `${Lm}/${t}.md`},agentPath(t,e){return `${Em}/${t}.md`}}},x1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Sd={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:b1,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:oD,lint:{mcp:iD},project:P1,globalSupport:{capabilities:x1,detectionPaths:[Xi,km,Em,Lm,Eu],layout:T1},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Lu,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:UE,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:BE,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Rm]},canonicalDir:".agentsmesh",canonicalFilename:KE},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Sm]},canonicalDir:".agentsmesh",canonicalFilename:WE}},buildImportPaths:$h,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:Wn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(_e))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:`${Vo}/${o}.md`,content:a});}return e}function mD(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${Jo}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function pD(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:`${Yo}/${r}.md`,content:T(n,e.body.trim()||"")}})}function uD(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Us,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function dD(t){return t.ignore.length===0?[]:[{path:Al,content:t.ignore.join(`
|
|
135
|
+
`)}]}function fD(t){return rt(t,Qr)}var gD=d(()=>{tt();j();na();s(cD,"generateRules");s(mD,"generateCommands");s(pD,"generateAgents");s(uD,"generateMcp");s(dD,"generateIgnore");s(fD,"generateSkills");});var Cd,kd,hD,A_=d(()=>{j();ut();na();Cd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Ws}/${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)}},"kiloNonRootRuleMapper"),kd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Tl}/${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)}},"kiloCommandMapper"),hD=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${ra}/${t}`,content:await Vt(n,o,i)}},"kiloAgentMapper");});async function yD(t){try{return await stat(t),!0}catch{return false}}async function F1(t,e,r){let n=join(t,Zi);if(!await yD(n))return;let o=join(t,Ws),i=join(n,b_),l=e.some(c=>c.toPath===w_)?null:await _(i);if(l!==null){let c=join(t,w_),m=r(l,i,c),{body:p}=b(m),u=await K(c,{root:true},p);await I(c,u),e.push({feature:"rules",fromTool:_e,fromPath:`${Zi}/${b_}`,toPath:w_});}e.push(...await Rt({srcDir:n,destDir:o,extensions:[".md"],fromTool:_e,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Cd({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===b_||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function v1(t,e,r){let n=join(t,wl);if(!await yD(n))return;let o=join(t,Tl);e.push(...await Rt({srcDir:n,destDir:o,extensions:[".md"],fromTool:_e,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await kd({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function M1(t,e,r){let n=join(t,Au),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,ra,`${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}
|
|
129
136
|
|
|
130
137
|
## When to use
|
|
131
138
|
|
|
132
|
-
${
|
|
133
|
-
`)}]}var xP=u(()=>{Q();St();M();Gy();fc();s(XW,"steeringFrontmatter");s(LP,"generateRules");s(AP,"generateCommands");s(kP,"generateSkills");s(wP,"generateMcp");s(TP,"generateHooks");s(bP,"generateAgents");s(PP,"generateIgnore");});function QW(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:yn(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function qW(t,e,r,o){let n=o==="global"?[Vr,Wr]:[Wr,Vr];for(let i of n){let a=join(t,i),c=await y(a);if(c===null)continue;let l=join(t,$f),{frontmatter:m,body:p}=w(r(c,a,l));await I(l,await K(l,{...m,root:true},p)),e.push({fromTool:De,fromPath:a,toPath:$f,feature:"rules"});return}}async function tH(t,e,r){let o=join(t,jf);e.push(...await yt({srcDir:join(t,Hr),destDir:o,extensions:[".md"],fromTool:De,normalize:r,mapEntry:s(async({relativePath:n,normalizeTo:i})=>{if(basename(n)==="AGENTS.md")return null;let a=join(o,n),{frontmatter:c,body:l}=w(i(a));return {destPath:a,toPath:`${jf}/${n}`,feature:"rules",content:await K(a,QW(c),l)}},"mapEntry")}));}async function eH(t,e){let r={};for(let n of await N(join(t,Fs))){if(!n.endsWith(".kiro.hook"))continue;let i=EP(await y(n)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let o=join(t,Uf);await L(join(t,".agentsmesh")),await I(o,OP(r)),e.push({fromTool:De,fromPath:join(t,Fs),toPath:Uf,feature:"hooks"});}async function Zu(t,e={}){let r=e.scope??"project",o=[],n=await U(De,t,r);return await qW(t,o,n,r),await tH(t,o,n),o.push(...await z(Qu,t,r,{normalize:n})),await Z(t,de,De,o,n),r==="project"&&await eH(t,o),o}var My=u(()=>{mt();Q();ke();Ct();lt();Qe();T();M();Gy();fc();$y();s(QW,"canonicalRuleMeta");s(qW,"importRoot");s(tH,"importNonRootRules");s(eH,"importHooks");s(Zu,"importFromKiro");});function DP(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:De}))}var NP=u(()=>{_t();fc();s(DP,"lintRules");});function FP(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(o=>!r.has(o)).map(o=>_s(o,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var vP=u(()=>{Et();s(FP,"lintHooks");});var rH,oH,nH,sH,Qu,$y=u(()=>{St();xP();Qt();My();NP();vP();Rt();fc();rH={name:De,primaryRootInstructionPath:Wr,generateRules:LP,generateCommands:AP,generateAgents:bP,generateSkills:kP,generateMcp:wP,generateHooks:TP,generateIgnore:PP,importFrom:Zu},oH={rootInstructionPath:Wr,skillDir:de,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${Hr}/${t}.md`},commandPath(t){return `${de}/${W(t)}/SKILL.md`},agentPath(t,e){return `${zr}/${t}.md`}}},nH={rootInstructionPath:Vr,skillDir:vs,managedOutputs:{dirs:[Ji,vs,Yi,fE],files:[Vr,rm,om]},rewriteGeneratedPath(t){return t===Wr?Vr:t.startsWith(`${Hr}/`)?t.replace(`${Hr}/`,`${Ji}/`):t.startsWith(`${de}/`)?t.replace(`${de}/`,`${vs}/`):t.startsWith(`${zr}/`)?t.replace(`${zr}/`,`${Yi}/`):t===dc?rm:t===gc?om:t.startsWith(`${Fs}/`)?null:t},mirrorGlobalPath(t,e){return ct(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${Ji}/${t}.md`},commandPath(t){return `${de}/${W(t)}/SKILL.md`},agentPath(t,e){return `${Yi}/${t}.md`}}},sH={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Qu={id:De,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:rH,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:DP,lint:{hooks:FP},project:oH,globalSupport:{capabilities:sH,detectionPaths:[Ji,Vr,vs,Yi,rm,om],layout:nH},importer:{agents:{feature:"agents",mode:"directory",source:{project:[zr],global:[zr]},canonicalDir:hE,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[dc],global:[rm]},canonicalDir:".agentsmesh",canonicalFilename:yE},ignore:{feature:"ignore",mode:"flatFile",source:{project:[gc],global:[om]},canonicalDir:".agentsmesh",canonicalFilename:_E}},buildImportPaths:Kf,detectionPaths:[Hr,de,zr,Fs,dc,gc]};});function MP(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Go,content:r.body.trim()?r.body:""});for(let o of t.rules){if(o.root||o.targets.length>0&&!o.targets.includes(Jr))continue;let n=basename(o.source,".md"),i={};o.description&&(i.description=o.description),o.globs.length>0&&(i.globs=o.globs);let a=Object.keys(i).length>0?P(i,o.body.trim()||""):o.body.trim()||"";e.push({path:`${Un}/${n}.md`,content:a});}return e}function $P(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${Kn}/${e.name}.md`,content:P(r,e.body.trim()||"")}})}function jP(t){return t.agents.map(e=>{let r=basename(e.source,".md"),o={mode:"subagent"};return e.description&&(o.description=e.description),e.model&&(o.model=e.model),e.tools.length>0&&(o.tools=e.tools),e.disallowedTools.length>0&&(o.disallowedTools=e.disallowedTools),{path:`${Bn}/${r}.md`,content:P(o,e.body.trim()||"")}})}function iH(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 UP(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e={};for(let[r,o]of Object.entries(t.mcp.mcpServers))e[r]=iH(o);return [{path:Mo,content:JSON.stringify({mcp:e},null,2)}]}function KP(t){return tt(t,Yr)}var BP=u(()=>{Q();M();qi();s(MP,"generateRules");s($P,"generateCommands");s(jP,"generateAgents");s(iH,"toOpenCodeMcpServer");s(UP,"generateMcp");s(KP,"generateSkills");});function jy(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,o]of Object.entries(t))typeof o=="string"&&(e[r]=o);return e}function cH(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 o={};for(let[n,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(typeof a.url=="string"){o[n]={type:"url",url:a.url,headers:jy(a.headers),env:jy(a.environment),...typeof a.description=="string"?{description:a.description}:{}};continue}if(Array.isArray(a.command)&&a.command.length>0){let c=a.command,l=c[0];if(l===void 0)continue;let m=c.slice(1);o[n]={type:"stdio",command:l,args:m,env:jy(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return o}async function lH(t,e,r){let n=join(t,e==="global"?$s:Mo),i=await y(n);if(i===null)return;let a=cH(i);Object.keys(a).length!==0&&(await $t(t,Bf,a),r.push({feature:"mcp",fromTool:Jr,fromPath:n,toPath:Bf}));}async function WP(t,e={}){let r=e.scope??"project",o=[],n=await U(Jr,t,r);return o.push(...await z(qu,t,r,{normalize:n})),await Z(t,Yr,Jr,o,n),await lH(t,r,o),o}var HP=u(()=>{mt();Q();Ct();Nr();T();qi();Uy();s(jy,"toStringRecord");s(cH,"parseOpenCodeMcp");s(lH,"importMcp");s(WP,"importFromOpenCode");});var zP,VP,JP,YP=u(()=>{M();lt();qi();zP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=join(r,t),{frontmatter:n,body:i}=w(e(o));return {destPath:o,toPath:`${nm}/${t}`,content:await K(o,{root:false,description:typeof n.description=="string"?n.description:void 0,globs:Array.isArray(n.globs)?n.globs:void 0},i)}},"opencodeNonRootRuleMapper"),VP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=join(r,t),{frontmatter:n,body:i}=w(e(o));return {destPath:o,toPath:`${Vp}/${t}`,content:await ht(o,{hasDescription:Object.prototype.hasOwnProperty.call(n,"description"),description:typeof n.description=="string"?n.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),JP=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let o=join(r,t),{frontmatter:n,body:i}=w(e(o));return {destPath:o,toPath:`${Jp}/${t}`,content:await Bt(o,n,i)}},"opencodeAgentMapper");});function XP(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:Jr}))}var ZP=u(()=>{_t();qi();s(XP,"lintRules");});function QP(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function qP(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function tx(t){return t.ignore.length===0?[]:[b(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var ex=u(()=>{Et();s(QP,"lintHooks");s(qP,"lintPermissions");s(tx,"lintIgnore");});var mH,pH,uH,rx,qu,Uy=u(()=>{BP();qi();Qt();HP();YP();ZP();ex();Rt();mH={name:Jr,primaryRootInstructionPath:Go,generateRules:MP,generateCommands:$P,generateAgents:jP,generateSkills:KP,generateMcp:UP,importFrom:WP},pH={rootInstructionPath:Go,skillDir:Yr,managedOutputs:{dirs:[Un,Kn,Bn,Yr],files:[Go,Mo]},paths:{rulePath(t){return `${Un}/${t}.md`},commandPath(t){return `${Kn}/${t}.md`},agentPath(t){return `${Bn}/${t}.md`}}},uH={rootInstructionPath:Gs,skillDir:Ms,managedOutputs:{dirs:[Xi,Zi,Qi,Ms,RE],files:[Gs,$s]},rewriteGeneratedPath(t){return t===Go?Gs:t===Mo?$s:t},mirrorGlobalPath(t,e){return ct(t,Ms,e)},paths:{rulePath(t){return `${Xi}/${t}.md`},commandPath(t){return `${Zi}/${t}.md`},agentPath(t){return `${Qi}/${t}.md`}}},rx={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},qu={id:Jr,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:mH,capabilities:rx,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:XP,lint:{hooks:QP,permissions:qP,ignore:tx},project:pH,globalSupport:{capabilities:rx,detectionPaths:[Gs,Xi,Zi,Qi,Ms,$s],layout:uH},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Go],global:[Gs]},canonicalDir:nm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Un],global:[Xi]},canonicalDir:nm,extensions:[".md"],map:zP}],commands:{feature:"commands",mode:"directory",source:{project:[Kn],global:[Zi]},canonicalDir:Vp,extensions:[".md"],map:VP},agents:{feature:"agents",mode:"directory",source:{project:[Bn],global:[Qi]},canonicalDir:Jp,extensions:[".md"],map:JP}},buildImportPaths:Wf,detectionPaths:[Un,Kn,Bn,Yr,Mo,"opencode.jsonc"]};});function ox(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes($o)),o=e?.body.trim()??"",n=st(o,r);return n?[{path:ur,content:n}]:[]}function nx(t){return tt(t,Xt)}function sx(t){return t.commands.map(e=>({path:`${Xt}/${W(e.name)}/SKILL.md`,content:bt(e)}))}function ix(t){return t.agents.map(e=>({path:`${Xt}/${$(e.name)}/SKILL.md`,content:Lt(e)}))}var ax=u(()=>{Q();Mt();at();St();yc();s(ox,"generateRules");s(nx,"generateSkills");s(sx,"generateCommands");s(ix,"generateAgents");});async function cx(t,e={}){let r=e.scope??"project",o=[],n=await U($o,t,r);return o.push(...await z(td,t,r,{normalize:n})),await Z(t,r==="global"?dr:Xt,$o,o,n),o}var lx=u(()=>{mt();Q();Ct();yc();By();s(cx,"importFromPiAgent");});function mx(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:$o}))}var px=u(()=>{_t();yc();s(mx,"lintRules");});function ux(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function dx(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function gx(t){return t.ignore.length===0?[]:[b(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function fx(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[b(".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 hx=u(()=>{Et();s(ux,"lintHooks");s(dx,"lintPermissions");s(gx,"lintIgnore");s(fx,"lintMcp");});var dH,gH,fH,yx,td,By=u(()=>{St();at();ax();Qt();lx();px();hx();zf();yc();dH={name:$o,primaryRootInstructionPath:ur,generateRules:ox,generateCommands:sx,generateAgents:ix,generateSkills:nx,importFrom:cx},gH={rootInstructionPath:ur,skillDir:Xt,managedOutputs:{dirs:[Xt],files:[ur]},paths:{rulePath(t){return ur},commandPath(t){return `${Xt}/${W(t)}/SKILL.md`},agentPath(t){return `${Xt}/${$(t)}/SKILL.md`}}},fH={rootInstructionPath:Wn,skillDir:dr,managedOutputs:{dirs:[dr],files:[Wn]},rewriteGeneratedPath(t){return t===ur?Wn:t.startsWith(`${Xt}/`)?t.replace(`${Xt}/`,`${dr}/`):t},mirrorGlobalPath(t,e){return ct(t,dr,e)},paths:{rulePath(t){return Wn},commandPath(t){return `${dr}/${W(t)}/SKILL.md`},agentPath(t){return `${dr}/${$(t)}/SKILL.md`}}},yx={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},td={id:$o,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:dH,capabilities:yx,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:mx,lint:{hooks:ux,permissions:dx,ignore:gx,mcp:fx},supportsConversion:{commands:true,agents:true},project:gH,globalSupport:{capabilities:yx,detectionPaths:[Wn],layout:fH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ur],global:[Wn]},canonicalDir:EE,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:Hf,detectionPaths:[ur,Xt]};});function _x(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:gr,content:r.body.trim()?r.body:""});let o=t.rules.filter(n=>!n.root&&(n.targets.length===0||n.targets.includes(jo)));for(let n of o){let i=basename(n.source,".md"),a={};n.description&&(a.description=n.description),n.globs.length>0&&(a.globs=n.globs);let c=P(a,n.body.trim()||"");e.push({path:`${Hn}/${i}.md`,content:c});}return e}function Ix(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 o=P(r,e.body.trim()||"");return {path:`${Uo}/${e.name}.md`,content:o}})}function Rx(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(n=>{r[n]===void 0&&delete r[n];});let o=P(r,e.body.trim()||"");return {path:`${Ko}/${e.name}.md`,content:o}})}function Sx(t){let e=[];for(let r of t.skills){let o={name:r.name,description:r.description||void 0};o.description===void 0&&delete o.description;let n=P(o,r.body.trim()||"");e.push({path:`${Ne}/${r.name}/SKILL.md`,content:n});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${Ne}/${r.name}/${a}`,content:i.content});}}return e}function Cx(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:js,content:e}]}function Ex(t){return !t.ignore||t.ignore.length===0?[]:[{path:Us,content:t.ignore.join(`
|
|
134
|
-
`)}]}var
|
|
135
|
-
`)}]}function
|
|
136
|
-
`)}]}var
|
|
137
|
-
`)}]}var
|
|
138
|
-
`)),o.push({fromTool:"windsurf",fromPath:p,toPath:t_,feature:"ignore"});}}return await rN(t,o,n),await nN(t,o,n),await aN(t,o),await cN(t,o),o}var p_=u(()=>{mt();T();M();lt();ke();Al();fe();oN();sN();lN();s(ud,"importFromWindsurf");});function mN(t,e,r){let o=[],{rules:n}=t;n.length>0&&(n.some(c=>c.root)||o.push({level:"warning",file:relative(e,n[0].source),target:rn,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&&o.push({level:"warning",file:".agentsmesh",target:rn,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),o}var pN=u(()=>{fe();s(mN,"lintRules");});function uN(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>b(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function dN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[b(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var gN=u(()=>{Et();s(uN,"lintCommands");s(dN,"lintMcp");});function gz(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 fz,hz,yz,_z,fN,hN=u(()=>{tN();_i();fe();Qt();p_();pN();gN();Rt();Ua();at();s(gz,"directoryScopedRuleDir");fz={name:"windsurf",primaryRootInstructionPath:on,generateRules:o_,generateCommands:s_,generateAgents:i_,generateSkills:l_,generateMcp:a_,generateHooks:c_,generateIgnore:n_,importFrom:ud},hz={rootInstructionPath:on,extraRuleOutputPaths(t){if(t.root)return [on];let e=gz(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:oo,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 `${ri}/${t}.md`},commandPath(t,e){return `${oi}/${t}.md`},agentPath(t,e){return Ve(e,"windsurf")?`.windsurf/skills/${$(t)}/SKILL.md`:null}}},yz={rootInstructionPath:Hc,skillDir:zc,managedOutputs:{dirs:[zc,Em,HD],files:[Hc,cd,ld,md]},rewriteGeneratedPath(t){return t===on?Hc:t.startsWith(`${ri}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${oo}/`)?t.replace(`${oo}/`,`${zc}/`):t.startsWith(`${oi}/`)?t.replace(`${oi}/`,`${Em}/`):t===Kc?cd:t===Bc?ld:t===Uc?md:t},mirrorGlobalPath(t,e){return ct(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return Hc},commandPath(t,e){return `${Em}/${t}.md`},agentPath(t,e){return Ve(e,"windsurf")?`${zc}/${$(t)}/SKILL.md`:null}}},_z={rules:"native",additionalRules:"partial",commands:Dr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},fN={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:fz,capabilities:{rules:"native",additionalRules:"native",commands:Dr("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:mN,lint:{commands:uN,mcp:dN},project:hz,globalSupport:{capabilities:_z,detectionPaths:[Hc,zc,Em,cd,ld,md],layout:yz},buildImportPaths:rh,detectionPaths:[".windsurfrules",".windsurf"]};});function yN(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")),o=e?.body.trim()??"",n=st(o,r);return n?[{path:to,content:n}]:[]}var _N=u(()=>{Mt();ia();s(yN,"generateRules");});async function RN(t,e,r){let o=await y(join(t,e));if(o===null)return;let n;try{n=JSON.parse(o);}catch{return}if(n===null||typeof n!="object"||Array.isArray(n))return;let a=n.context_servers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let c={};for(let[l,m]of Object.entries(a)){if(!m||typeof m!="object"||Array.isArray(m))continue;let p={...m};delete p.source,c[l]=p;}Object.keys(c).length!==0&&(await $t(t,IN,c),r.push({fromTool:"zed",fromPath:e,toPath:IN,feature:"mcp"}));}var IN,SN=u(()=>{T();Nr();ia();IN=".agentsmesh/mcp.json";s(RN,"importZedMcp");});async function CN(t,e={}){let r=e.scope??"project",o=[],n=await U("zed",t,r);return o.push(...await z(dd,t,r,{normalize:n})),await RN(t,r==="global"?Yo:Jo,o),o}var EN=u(()=>{mt();Ct();SN();ia();u_();s(CN,"importFromZed");});function ON(t,e,r,o){return H(t,e,r,{checkGlobMatches:o?.scope!=="global"}).map(n=>({...n,target:"zed"}))}var LN=u(()=>{_t();ia();s(ON,"lintRules");});function AN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[b(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function kN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,o=t.permissions.ask??[];return e.length===0&&r.length===0&&o.length===0?[]:[b(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function wN(t){return t.ignore.length===0?[]:[b(".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 TN=u(()=>{Et();s(AN,"lintHooks");s(kN,"lintPermissions");s(wN,"lintIgnore");});function Lz(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 o=JSON.parse(e);if(o===null||typeof o!="object"||Array.isArray(o))return t;let n=o;return n.context_servers!==void 0&&(r.context_servers=n.context_servers),JSON.stringify(r,null,2)}var Rz,Sz,Cz,Ez,Oz,dd,u_=u(()=>{_N();EN();LN();TN();Rt();ia();Rz={name:"zed",primaryRootInstructionPath:to,generateRules:yN,importFrom:CN},Sz={rootInstructionPath:to,managedOutputs:{dirs:[],files:[to,Jo]},paths:{rulePath(t){return to},commandPath(){return null},agentPath(){return null}}},Cz={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[Yo]},rewriteGeneratedPath(t){return t===Jo?Yo:t},paths:{rulePath(){return Yo},commandPath(){return null},agentPath(){return null}}},Ez={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Oz={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(Lz,"mergeZedSettings");dd={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:Rz,capabilities:Ez,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:ON,lint:{hooks:AN,permissions:kN,ignore:wN},project:Sz,globalSupport:{capabilities:Oz,detectionPaths:[Yo],layout:Cz},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[to],global:[]},canonicalDir:BE,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let r={};for(let[o,n]of Object.entries(t.mcp.mcpServers))r[o]=n;return [{path:Jo,content:JSON.stringify({context_servers:r},null,2)}]},mergeGeneratedOutputContent(t,e,r,o){return o===Jo||o===Yo?Lz(t,r):null},buildImportPaths:oh,detectionPaths:[to,Jo]};});var _C={};ug(_C,{BUILTIN_TARGETS:()=>zt,TARGET_IDS:()=>kt,getBuiltinTargetDefinition:()=>Cr,getEffectiveTargetSupportLevel:()=>gd,getTargetCapabilities:()=>ti,getTargetDetectionPaths:()=>g_,getTargetLayout:()=>vt,getTargetManagedOutputs:()=>f_,getTargetPrimaryRootInstructionPath:()=>kz,getTargetSkillDir:()=>Om,isBuiltinTargetId:()=>wr,resolveTargetFeatureGenerator:()=>Vc,rewriteGeneratedOutputPath:()=>h_});function Az(){return d_||(wS(zt),d_=new Map(zt.map(t=>[t.id,t]))),d_}function Cr(t){return Az().get(t)}function ti(t,e="project"){let r=Cr(t)??ut(t);if(!r)return;let o=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return AS(o)}function g_(t,e="project"){let r=Cr(t)??ut(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function vt(t,e="project"){let r=Cr(t)??ut(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function kz(t,e="project"){return vt(t,e)?.rootInstructionPath}function Om(t,e="project"){return vt(t,e)?.skillDir}function f_(t,e="project"){return vt(t,e)?.managedOutputs}function h_(t,e,r="project"){let o=vt(t,r);return o?o.rewriteGeneratedPath?o.rewriteGeneratedPath(e):e:null}function bN(t,e,r,o){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!ja(r,t.id,true,o):e==="agents"&&t.supportsConversion?.agents?!Ve(r,t.id,true,o):false}function wz(t,e,r,o){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?ja(r,t.id,true,o):e==="agents"&&t.supportsConversion?.agents?Ve(r,t.id,true,o):false}function gd(t,e,r,o="project"){let n=ti(t,o)?.[e]?.level??"none",i=Cr(t)??ut(t);return n==="none"&&wz(i,e,r,o)?"embedded":n!=="embedded"?n:bN(i,e,r,o)?"none":n}function Vc(t,e,r,o="project"){let n=Cr(t)??ut(t);if(!n?.generators||bN(n,e,r,o))return;let i=Tz[e];return i===null?void 0:i(n.generators)}var zt,d_,Tz,xt=u(()=>{Ua();_i();je();$g();mo();Xg();nh();sh();ah();QO();lh();eA();BA();Dh();jh();Kh();ny();sy();iy();Ay();ky();wy();by();vy();$y();Uy();By();Wy();Hy();Jy();Yy();Xy();Zy();hN();u_();zt=[Cp,Qp,qp,tu,ZO,eu,tA,KA,uu,Iu,Su,Pu,xu,Du,Ku,Bu,Wu,zu,Xu,Qu,qu,td,ed,rd,nd,sd,id,ad,fN,dd];s(Az,"builtinTargetsMap");s(Cr,"getBuiltinTargetDefinition");s(ti,"getTargetCapabilities");s(g_,"getTargetDetectionPaths");s(vt,"getTargetLayout");s(kz,"getTargetPrimaryRootInstructionPath");s(Om,"getTargetSkillDir");s(f_,"getTargetManagedOutputs");s(h_,"rewriteGeneratedOutputPath");s(bN,"isFeatureSuppressedByConversion");s(wz,"isConversionUpgrading");s(gd,"getEffectiveTargetSupportLevel");Tz={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(Vc,"resolveTargetFeatureGenerator");});function vz(t){return typeof t=="string"?t:t.level}function PN(t){return Fz.includes(t)}function xN(t,e,r,o){for(let n of Nz){let i=vz(e[n.feature]);if(i==="none")continue;let a=typeof t.generators[n.generator]=="function",c=PN(n.feature)&&typeof t.emitScopedSettings=="function";a||c||r.addIssue({code:"custom",path:[...o,n.feature],message:`Capability "${n.feature}" is "${i}" but generators.${n.generator}`+(PN(n.feature)?" or emitScopedSettings":"")+" is missing."});}}function fd(t){return Mz.parse(t)}var as,DN,bz,Pz,NN,xz,Dz,Nz,Fz,Gz,Mz,y_=u(()=>{as=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()})]),DN=z$1.object({rules:as,additionalRules:as,commands:as,agents:as,skills:as,mcp:as,hooks:as,ignore:as,permissions:as}),bz=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(),Pz=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),NN=z$1.object({paths:Pz}).passthrough(),xz=z$1.object({capabilities:DN,detectionPaths:z$1.array(z$1.string()),layout:NN,scopeExtras:z$1.function().optional()}).passthrough(),Dz=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],Nz=[{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"}],Fz=["mcp","hooks","ignore","permissions"];s(vz,"capabilityLevel");s(PN,"canUseScopedSettings");s(xN,"validateCapabilityImplementations");Gz=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),generators:bz,capabilities:DN,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:NN,globalSupport:xz.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string())}).passthrough(),Mz=Gz.superRefine((t,e)=>{for(let r of Dz)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});xN(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&xN(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});s(fd,"validateDescriptor");});function $z(){return __||(__=new Map(zt.map(t=>[t.id,t]))),__}function hd(t){let e=fd(t);I_.set(e.id,e);}function ut(t){return I_.get(t)??$z().get(t)}function yd(){return [...I_.values()]}var I_,__,je=u(()=>{xt();y_();I_=new Map;s($z,"builtinDescriptors");s(hd,"registerTargetDescriptor");s(ut,"getDescriptor");s(yd,"getAllDescriptors");});async function FN(t,e,r="project"){let o=new Map,n=ut(t);return n&&await n.buildImportPaths(o,e,r),o}var vN=u(()=>{je();s(FN,"buildImportReferenceMap");});function Kz(t){let e=[t.project,t.globalSupport?.layout].filter(n=>n!==void 0),r=[...t.detectionPaths,...e.flatMap(n=>n.managedOutputs?.dirs??[]),...e.flatMap(n=>n.managedOutputs?.files??[])],o=new Set;for(let n of r){let i=n.split("/")[0];i&&i.startsWith(".")&&i.length>1&&o.add(`${i}/`);}return o}function Bz(){let t=new Set([".agentsmesh/"]);for(let e of zt)for(let r of Kz(e))t.add(r);return Array.from(t)}function Wz(){let t=new Set([...Bz(),...R_.rootRelativePrefixes]),e=new Set([...Uz,...R_.meshRootSegments]);return {protectedSchemes:[...jz,...R_.protectedSchemes],rootRelativePrefixes:Array.from(t),meshRootSegments:e}}function _d(){return S_||(S_=Wz()),S_}var jz,Uz,R_,S_,GN=u(()=>{xt();jz=[/\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],Uz=new Set(["skills","rules","commands","agents","packs"]),R_={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(Kz,"topLevelDotfilePrefixes");s(Bz,"buildDefaultRootRelativePrefixes");s(Wz,"rebuild");s(_d,"getLinkFormatRegistry");});function no(t){let e=Pt(t);return _d().rootRelativePrefixes.some(r=>e.startsWith(r))}function zz(t){let e=Pt(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||Pr.test(e)||/^[a-zA-Z]:/.test(e)||no(e))return false;let r=e.split("/").filter(o=>o.length>0)[0];return r!==void 0&&_d().meshRootSegments.has(r)}function Lm(t,e,r){let o=et(e),n=V(e,e),i=V(e,r),a=Pt(t);if(Pr.test(t)){let c=V(e,t);return o===win32||c.startsWith(`${n}${o.sep}`)?[c]:[c]}if(o.isAbsolute(t)){let c=V(e,t);return c.startsWith(n)||existsSync(t)?[c]:[V(e,o.join(e,t))]}if(a.startsWith("./")||a.startsWith("../")){let c=V(e,o.join(o.dirname(i),a)),l=CS(a,n);return l&&l!==c?[c,l]:[c]}if(no(a))return [V(e,o.join(n,a))];if(a.includes("/")){let c=V(e,o.join(n,".agentsmesh")),l=zz(a)?V(e,o.join(c,a)):null,m=V(e,o.join(n,a)),p=V(e,o.join(o.dirname(i),a));return l!==null?[l,m,p]:[m,p]}return Vz.has(a)?[]:a.includes(".")?[V(e,o.join(o.dirname(i),a))]:[]}function Am(t,e){let r=[e];if(!SS(t,e)||!existsSync(e))return r;try{let o=[realpathSync(e),realpathSync.native(e)];for(let n of o)n!==e&&!r.includes(n)&&r.push(n);}catch{}return r}function UN(t,e,r){let o=e>0?t.at(e-1):"",n=r<t.length?t.at(r):"";return o==="*"||n==="*"}function Id(t){let e=[];for(let r of _d().protectedSchemes){let o=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let n of t.matchAll(o))e.push([n.index??0,(n.index??0)+n[0].length]);}for(let r of t.matchAll(Jz))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(Yz))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(Xz))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var Vz,Jz,Yz,Xz,jN,Jc,ni=u(()=>{ee();GN();s(no,"isRootRelativePathToken");s(zz,"isMeshRootRelativePathToken");Vz=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),Jz=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,Yz=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,Xz=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,jN=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,Jc=/(?::(\d+)){1,2}$/;s(Lm,"resolveProjectPath");s(Am,"expandResolvedPaths");s(UN,"isGlobAdjacent");s(Id,"protectedRanges");});function Zz(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 KN(t){return Zz(t.tokenContext)}function C_(t,e){let r=et(t),o=V(t,t),n=V(t,e);if(n===o)return true;let i=o.endsWith(r.sep)?o:`${o}${r.sep}`;return n.startsWith(i)}function BN(t){let e=et(t);return V(t,e.join(t,".agentsmesh"))}function so(t,e){let r=et(t),o=BN(t),n=V(t,e);if(n===o)return true;let i=o.endsWith(r.sep)?o:`${o}${r.sep}`;return n.startsWith(i)}function WN(t,e,r){let o=et(t),n=BN(t),i=V(t,e);if(!so(t,i))return null;let a=o.relative(n,i).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function E_(t,e,r){let n=et(t).relative(V(t,t),V(t,e)).replace(/\\/g,"/");if(n.startsWith(".."))return null;let i=n.length>0?n:".";return r&&!i.endsWith("/")?`${i}/`:i}function Yc(t,e,r){let o=E_(t,e,r);return o===null?null:{kind:"projectRoot",rest:o,text:o}}function O_(t,e,r,o,n){let i=et(t),a=V(t,t),c=V(t,e),l=V(t,r);if(!C_(t,l))return Yc(t,l,o)?.text??null;let m=V(t,i.dirname(c));if(!C_(t,m)&&m!==a)return Yc(t,l,o)?.text??null;let p=i.relative(m,l).replace(/\\/g,"/");if(i.isAbsolute(p)||Pr.test(p))return E_(t,l,o);let d=V(t,i.join(m,p));return C_(t,d)?(p===""||p==="."?p=".":n.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),o&&!p.endsWith("/")?`${p}/`:p):E_(t,l,o)}var L_=u(()=>{ee();s(Zz,"isReadingContext");s(KN,"isReadingContextOptions");s(C_,"isUnderProjectRoot");s(BN,"agentsMeshRoot");s(so,"isUnderAgentsMesh");s(WN,"toAgentsMeshRootRelative");s(E_,"toProjectRootRelative");s(Yc,"toProjectRootReference");s(O_,"formatLinkPathForDestinationLegacy");});function HN(t,e,r,o,n={}){let i=n.scope??"project",a=V(t,r);if(KN(n)&&so(t,e)&&so(t,a)){let m=et(t),p=V(t,t),d=m.relative(p,a).replace(/\\/g,"/");if(!d.startsWith("..")&&d.length>0)return o&&!d.endsWith("/")?`${d}/`:d}if(n.forceRelative)return O_(t,e,r,o,n);if(i==="global"&&!so(t,e))return Yc(t,a,o)?.text??null;let c=(()=>{if(so(t,a))return a;let m=n.logicalMeshSourceAbsolute;return m&&so(t,V(t,m))?V(t,m):null})();if(!c)return Yc(t,a,o)?.text??null;if(o||(n.pathIsDirectory?.(a)??false)){let m=WN(t,c,o);return m!==null?m:Yc(t,c,o)?.text??null}return O_(t,e,r,o,n)}var zN=u(()=>{ni();ee();L_();L_();s(HN,"formatLinkPathForDestination");});function VN(t,e,r,o){let n=et(e),i=Pt(t);if(!no(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let c=V(e,r),l=n.dirname(c);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),d=V(e,n.join(l,p));if(d!==c&&o(d))return d}return null}var JN=u(()=>{ee();ni();s(VN,"resolveByDestinationSuffixStrip");});function YN(t){let e=null,r=false,o=null,n=null,i=null;for(let l of Lm(t.candidate,t.projectRoot,t.sourceFile)){let m=null,p=null;for(let d of Am(t.projectRoot,l)){let g=V(t.projectRoot,d),f=V(t.projectRoot,t.translatePath(g)),h=t.pathExists(g),O=t.pathExists(f);if(O&&f!==g){e=f,o=g,r=true;break}(h||O)&&m===null&&(m=f,p=g),e===null&&(e=f);}if(!r&&m!==null&&n===null&&(n=m,i=p),r)break}if(!r){let l=VN(t.candidate,t.projectRoot,t.destinationFile,t.pathExists);l!==null&&(e=l,r=true);}!r&&n!==null&&(e=n,i!==null&&(o=i),r=true);let a=Pt(t.destinationFile),c=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&e!==null&&Pt(t.rawToken).startsWith(".agentsmesh/")&&c&&(r=true),{translatedPath:e,resolvedBeforeTranslate:o,matchedPath:r}}var XN=u(()=>{ee();ni();JN();s(YN,"resolveLinkTarget");});function ZN(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function QN(t,e,r){if(e<=0||t[e-1]!=="(")return false;let o=e+r.length,n=t[o];return n!==")"&&n!=="#"&&n!=="?"&&n!==" "&&n!==" "?false:t[e-2]==="]"}function qN(t){let e=Pt(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||Pr.test(e)||no(e)?false:e.includes("/")}var tF=u(()=>{ee();ni();s(ZN,"isTildeHomeRelativePathToken");s(QN,"isMarkdownLinkDestinationToken");s(qN,"isRelativePathToken");});function Qz(t,e,r){let o=e+r.length;if(t[o]!=="]"||t[o+1]!=="(")return false;let n=o+2,i="";for(;n<t.length;){let a=t[n];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
|
|
139
|
-
`)
|
|
140
|
-
`,e-1)+1,n=t.slice(o,e);if(!/^\s*\[[^\]\n]+\]:\s*<?\s*$/.test(n))return false;let i=r<t.length?t[r]:"";return i===""||i===`
|
|
141
|
-
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function rF(t,e,r){let o=e>0?t[e-1]:"",n=r<t.length?t[r]:"";return o==="`"&&n==="`"?{role:"inline-code"}:eF(t,e,r)?{role:"markdown-link-dest"}:o==="<"&&n===">"?{role:"bracketed"}:o==="'"&&n==="'"||o==='"'&&n==='"'?{role:"quoted"}:o==="@"?{role:"at-prefix"}:o==="("&&t[e-2]==="]"?{role:"markdown-link-dest"}:o==="["&&n==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function oF(t,e,r,o,n){if(e<0||r>t.length)return false;let{candidate:i}=$a(o),a=i.replace(Jc,""),c=Pt(a),l=e+a.length,m=t[e-1],p=t[r];return eF(t,e,l)||m==="'"&&p==="'"||m==='"'&&p==='"'||m==="`"&&p==="`"||m==="<"&&p===">"?true:m==="["&&p==="]"?!(!n&&!no(c)&&Qz(t,e,o)):m==="@"?true:m==="("?p===")"||p==="#"||p==="?"||p===" "||p===" ":n?no(c)?true:c.includes("/")||c.includes("\\")?c.startsWith("./")||c.startsWith("../")?true:(c.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var nF=u(()=>{ee();ni();s(Qz,"markdownBracketLabelDuplicatesDestination");s(eF,"isMarkdownReferenceDefinitionDestination");s(rF,"getTokenContext");s(oF,"shouldRewritePathToken");});function Rd(t){let e=new Set,r=Id(t.content);return {content:t.content.replace(jN,(n,i,a)=>{if(r.some(([Ut,wt])=>i>=Ut&&i<wt)||!oF(a,i,i+n.length,n,t.rewriteBarePathTokens===true)||ZN(a,i,n)||UN(a,i,i+n.length))return n;let{candidate:c,suffix:l}=$a(n);if(!c)return n;let m=Jc.exec(c),p=m?c.slice(0,m.index):c,d=m?m[0]:"";if(!p)return n;let g=rF(a,i,i+p.length);if(g.role!=="markdown-link-dest"&&Pr.test(p))return n;let{translatedPath:f,resolvedBeforeTranslate:h,matchedPath:O}=YN({candidate:p,rawToken:c,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),R=h;if(!O||!f)return f&&e.add(f),n;let E=Pt(p),A=p.endsWith("/")||t.pathIsDirectory?.(f)===true;if(A&&!E.includes("/")&&!E.includes("\\"))return n;if(R===null){let Ut=Pt(c);if(Ut.startsWith("agentsmesh/")&&(Ut=`.${Ut}`),Ut.startsWith(".agentsmesh/")||Ut.includes("/.agentsmesh/")){let wt=et(t.projectRoot),cn=V(t.projectRoot,t.projectRoot),Ar=Ut.replace(/^\.\//,"");R=V(t.projectRoot,wt.join(cn,Ar));}}let F=et(t.projectRoot);if(t.scope==="global"){let Ut=Pt(c),wt=Ut.startsWith(".agentsmesh/")||Ut.includes("/.agentsmesh/"),cn=no(Ut)||qN(Ut),Ar=R!==null&&so(t.projectRoot,R),ds=so(t.projectRoot,f);if(R===f&&!ds&&!Ar&&!wt){let uR=Pt(F.relative(t.projectRoot,V(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",o$=(R!==null?Pt(F.relative(t.projectRoot,R)):"").split("/").filter(Boolean)[0]??"";if(uR.length>0&&uR===o$)return n}if(!cn&&!wt&&!Ar&&!ds)return n}let v=V(t.projectRoot,t.destinationFile),G=V(t.projectRoot,f),J=Pt(F.relative(t.projectRoot,v)),Y=Pt(F.relative(t.projectRoot,G)),q=J.split("/").filter(Boolean)[0]??"",Ft=Y.split("/").filter(Boolean)[0]??"",Ht=!Pt(p).startsWith(".agentsmesh/")&&!A&&q.length>0&&q===Ft&&q.startsWith(".")&&q!==".agentsmesh"||g.role==="markdown-link-dest"||QN(a,i,p),ao=HN(t.projectRoot,t.destinationFile,f,p.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||Ht,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:A?null:R,forceRelative:Ht,tokenContext:g,originalToken:p});return ao?`${ao}${d}${l}`:n}),missing:[...e]}}var A_=u(()=>{ee();ni();zN();XN();tF();nF();s(Rd,"rewriteFileLinks");});function iF(t,e){let r=[t.normalize(e)];if(!existsSync(e))return r;try{let o=[realpathSync(e),realpathSync.native(e)];for(let n of o){let i=t.normalize(n);r.includes(i)||r.push(i);}}catch{}return r}async function U(t,e,r="project"){let o=et(e),n=new Map,i=Array.from(new Set([t,...kt]));for(let l of i){let m=await FN(l,e,r);for(let[p,d]of m.entries())n.set(p,d);}let a=new Map;for(let[l,m]of n.entries()){let p=o.normalize(o.join(e,m));for(let d of iF(o,o.join(e,l)))a.set(d,p);}let c=new Set;for(let l of new Set(n.values())){let m=o.normalize(o.join(e,l));c.add(m);for(let p of iF(o,m))c.add(o.normalize(p));}return (l,m,p)=>Rd({content:l,projectRoot:e,sourceFile:m,destinationFile:p,translatePath:s(d=>a.get(d)??d,"translatePath"),pathExists:s(d=>{let g=o.normalize(d);return a.has(d)||a.has(g)||existsSync(d)||c.has(g)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:s(d=>{try{return statSync(d).isDirectory()}catch{return false}},"pathIsDirectory")}).content}var mt=u(()=>{ee();vN();A_();mo();s(iF,"pathVariants");s(U,"createImportReferenceNormalizer");});function cF(t){let e={};for(let[r,o]of Object.entries(t)){if(!Array.isArray(o))continue;let n=[];for(let i of o){if(!i||typeof i!="object")continue;let a=i,c=typeof a.matcher=="string"?a.matcher:"";if(!c)continue;let l=Array.isArray(a.hooks)?a.hooks:[];for(let m of l){let p=m.type==="prompt"?"prompt":"command";if(!po({...m,type:p}))continue;let d=p==="prompt"?le(m)||Kt(m):Kt(m)||le(m),g={matcher:c,type:p,command:d};typeof m.timeout=="number"&&(g.timeout=m.timeout),n.push(g);}}n.length>0&&(e[r]=n);}return e}async function lF(t,e){let r=join(t,Ln),o=await y(r);if(o===null)return false;let n;try{n=JSON.parse(o);}catch{return false}if(!n||typeof n!="object"||Array.isArray(n))return false;let i=cF(n);if(Object.keys(i).length===0)return false;let a=stringify(i),c=join(t,ki);return await L(dirname(c)),await I(c,a),e.push({fromTool:"claude-code",fromPath:r,toPath:ki,feature:"hooks"}),true}async function mF(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(Ln)),o=join(t,Ml),n=await y(o);if(!n)return;let i;try{i=JSON.parse(n);}catch{return}if(!e.some(m=>m.feature==="mcp")&&i.mcpServers&&typeof i.mcpServers=="object"){let m=i.mcpServers;await $t(t,Kl,m),e.push({fromTool:"claude-code",fromPath:o,toPath:Kl,feature:"mcp"});}let c=i.permissions;if(c&&typeof c=="object"&&!Array.isArray(c)){let m=c,p=Array.isArray(m.allow)?m.allow.filter(f=>typeof f=="string"):[],d=Array.isArray(m.deny)?m.deny.filter(f=>typeof f=="string"):[],g=Array.isArray(m.ask)?m.ask.filter(f=>typeof f=="string"):[];if(p.length>0||d.length>0||g.length>0){let f=stringify({allow:p,deny:d,ask:g}),h=join(t,gf);await L(dirname(h)),await I(h,f),e.push({fromTool:"claude-code",fromPath:o,toPath:gf,feature:"permissions"});}}let l=i.hooks;if(!r&&l&&typeof l=="object"&&!Array.isArray(l)){let m=cF(l);if(Object.keys(m).length>0){let p=stringify(m),d=join(t,ki);await L(dirname(d)),await I(d,p),e.push({fromTool:"claude-code",fromPath:o,toPath:ki,feature:"hooks"});}}}var pF=u(()=>{br();T();Nr();An();s(cF,"claudeHooksToCanonical");s(lF,"importClaudeHooksJson");s(mF,"importSettings");});async function dF(t,e,r){let o=join(t,Gl),n=join(t,df),a=(await N(o)).filter(c=>c.endsWith("SKILL.md"));for(let c of a){let l=dirname(c),m=basename(l),p=join(n,m),d=await N(l);for(let g of d){let f=await y(g);if(f===null)continue;let h=relative(l,g),O=join(p,h);await L(dirname(O));let R=r(f,g,O),E=h==="SKILL.md"?w(R):null;await I(O,h==="SKILL.md"?await uo(O,E?.frontmatter??{},E?.body??""):R);let A=`${df}/${m}/${h}`;e.push({fromTool:"claude-code",fromPath:g,toPath:A,feature:"skills"});}}}var gF=u(()=>{T();M();lt();An();s(dF,"importClaudeSkills");});async function ru(t,e={}){let r=e.scope??"project",o=[],n=await U("claude-code",t,r);return o.push(...await z(eu,t,r,{normalize:n})),await dF(t,o,n),await lF(t,o),await mF(t,o),o}var mh=u(()=>{mt();Ct();pF();gF();lh();s(ru,"importFromClaudeCode");});async function wm(t,e){let r=rV[e];if(!r)throw new Error(`No importer registered for native target: ${e}`);return r(t)}var rV,T_=u(()=>{mh();oy();$h();Ly();Ph();p_();hh();xh();Ty();My();Fy();rV={"claude-code":ru,cursor:bu,copilot:_u,"gemini-cli":Uu,"codex-cli":lu,windsurf:ud,cline:nu,continue:pu,junie:Hu,kiro:Zu,"kilo-code":Yu};s(wm,"importNativeToCanonical");});async function Ra(t){if(!await j(t))return false;if(await j(join(t,P_)))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,P_)))return !0}catch{return false}return false}async function Tm(t){if(!await j(t))return [];if(await j(join(t,P_))){let e=await gS(t);return e?[e]:[]}return Ga(t)}var P_,Cd=u(()=>{T();pp();P_="SKILL.md";s(Ra,"isSkillPackLayout");s(Tm,"loadSkillsAtExtendPath");});function iV(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function aV(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 Ed(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),o=basename(r),i=basename(t).replace(/\.md$/i,"");if(o==="rules")return {sliceRoot:r,implicitPick:{rules:[i]}};if(o==="commands")return {sliceRoot:r,implicitPick:{commands:[i]}};if(o==="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 cV(t){if(basename(t)==="rules")return di(t);let r=join(t,"rules");return await j(r)?di(r):[]}async function lV(t){if(basename(t)==="commands")return gi(t);let r=join(t,"commands");return await j(r)?gi(r):[]}async function mV(t){if(basename(t)==="agents")return hi(t);let r=join(t,"agents");return await j(r)?hi(r):[]}async function pV(t){if(await Ra(t))return Tm(t);let e=join(t,"skills");return await Ra(e)?Tm(e):[]}async function Od(t){let e=join(t,".agentsmesh");if(await j(e))return Ae(t);let r=iV();if(r.rules=await cV(t),r.commands=await lV(t),r.agents=await mV(t),r.skills=await pV(t),aV(r))throw new Error(`No installable resources at ${t}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md).`);return r}var x_=u(()=>{T();lp();yi();cp();ap();Cd();s(iV,"emptyCanonical");s(aV,"isCanonicalSliceEmpty");s(Ed,"normalizeSlicePath");s(cV,"parseRulesAt");s(lV,"parseCommandsAt");s(mV,"parseAgentsAt");s(pV,"loadSkillsForPartialSlice");s(Od,"loadCanonicalSliceAtPath");});function uV(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function fF(t){let e=t.resolvedPath;if(!t.path){let n=join(e,".agentsmesh");if(!await j(n)){if(await Ra(e)){let a=await Tm(e);return {...uV(),skills:a}}let i=t.target??await fp(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
142
|
-
Expected one of: .agentsmesh/, ${IS.join(", ")}.`);_.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await wm(e,i);}return Ae(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 n=join(e,".agentsmesh");return await j(n)||(_.info(`[agentsmesh] Extend "${t.name}": path "${t.path}" with target "${t.target}" \u2014 importing at extend root, then loading canonical.`),await wm(e,t.target)),Ae(e)}let{sliceRoot:o}=await Ed(r);try{return await Od(o)}catch(n){let i=n instanceof Error?n.message:String(n),a=new Error(`Extend "${t.name}": ${i}`);throw n instanceof Error&&(a.cause=n),a}}var hF=u(()=>{Mg();T();ft();yi();T_();Cd();x_();s(uV,"emptyCanonical");s(fF,"loadCanonicalForExtend");});function Ld(t,e,r,o){if(!r)return t;let n={...t};if(r.skills?.length&&e.includes("skills")){let i=new Set(r.skills),a=n.skills;n={...n,skills:a.filter(c=>i.has(c.name))};for(let c of r.skills)a.some(l=>l.name===c)||_.warn(`[agentsmesh] pick name "${c}" not found in skills from extend "${o}".`);}if(r.commands?.length&&e.includes("commands")){let i=new Set(r.commands),a=n.commands;n={...n,commands:a.filter(c=>i.has(c.name))};for(let c of r.commands)a.some(l=>l.name===c)||_.warn(`[agentsmesh] pick name "${c}" not found in commands from extend "${o}".`);}if(r.agents?.length&&e.includes("agents")){let i=new Set(r.agents),a=n.agents;n={...n,agents:a.filter(c=>i.has(c.name))};for(let c of r.agents)a.some(l=>l.name===c)||_.warn(`[agentsmesh] pick name "${c}" not found in agents from extend "${o}".`);}if(r.rules?.length&&e.includes("rules")){let i=new Set(r.rules),a=n.rules,c=s(l=>basename(l).replace(/\.md$/i,""),"stem");n={...n,rules:a.filter(l=>i.has(c(l.source)))};for(let l of r.rules)a.some(m=>c(m.source)===l)||_.warn(`[agentsmesh] pick name "${l}" not found in rules from extend "${o}".`);}return n}var N_=u(()=>{ft();s(Ld,"applyExtendPick");});var fV,Xc,Ad=u(()=>{fV=["rules","commands","agents","skills"],Xc=z$1.enum(fV);});var hV,yF,_F=u(()=>{pn();Ad();hV=z$1.enum(["github","gitlab","git","local"]),yF=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:hV,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Da).min(1),pick:gl.optional(),target:ze.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Xc.optional(),content_hash:z$1.string()});});function IF(t){let e=ui(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 _V(t,e){return e?t.length===e.length&&[...t].sort().every((r,o)=>r===[...e].sort()[o]):true}async function kd(t){let e=join(t,"pack.yaml"),r=await y(e);if(r===null)return null;try{let o=parse(r);return yF.parse(o)}catch{return null}}async function SF(t,e,r){if(!await j(t))return null;let o=IF(e),n;try{n=await readdir(t,{withFileTypes:!0});}catch{return null}for(let i of n){if(!i.isDirectory())continue;let a=join(t,i.name),c=await kd(a);if(c&&IF(c.source)===o&&c.target===r.target&&c.as===r.as&&_V(c.features,r.features))return {meta:c,packDir:a,name:c.name}}return null}async function wd(t){if(!await j(t))return [];let e;try{e=await readdir(t,{withFileTypes:!0});}catch{return []}let r=[];for(let o of e){if(!o.isDirectory())continue;let n=join(t,o.name),i=await kd(n);i&&r.push({meta:i,packDir:n,name:i.name});}return r}var Td=u(()=>{T();_F();yl();s(IF,"sourceIdentity");s(_V,"sameFeatures");s(kd,"readPackMetadata");s(SF,"findExistingPack");s(wd,"listPacks");});function CF(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function IV(t){let[e,r,o,n,i,a,c,l]=await Promise.all([di(join(t,"rules")),gi(join(t,"commands")),hi(join(t,"agents")),Ga(join(t,"skills")),Tr(join(t,"mcp.json")),up(join(t,"permissions.yaml")),dp(join(t,"hooks.yaml")),gp(join(t,"ignore"))]);return {...CF(),rules:e,commands:r,agents:o,skills:n,mcp:i,permissions:a,hooks:c,ignore:l}}async function EF(t){let e=join(t,"packs"),r=await wd(e),o=CF();for(let{meta:n,packDir:i}of r){let a=await IV(i),c=v_(a,n.features),l=Ld(c,n.features,n.pick,n.name);o=Ma(o,l);}return o}var OF=u(()=>{ap();cp();lp();pp();Rl();xg();Ng();Fg();Gg();sn();N_();Td();s(CF,"emptyCanonical");s(IV,"loadPackCanonical");s(EF,"loadPacksCanonical");});function v_(t,e){if(e.length===0)return LF();let r=new Set(e.flatMap(o=>SV[o]??[]));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 LF(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function he(t,e,r={},o=join(e,".agentsmesh")){let n=await va(t,e,{refreshCache:r.refreshRemoteCache===true}),i=LF();for(let l of n){let m=await fF(l),p=v_(m,l.features),d=Ld(p,l.features,l.pick,l.name);i=Ma(i,d);}let a=await EF(o);i=Ma(i,a);let c=await Ae(o);return i=Ma(i,c),{canonical:i,resolvedExtends:n}}var SV,sn=u(()=>{np();yi();Gg();hF();N_();OF();SV={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(v_,"filterCanonicalByFeatures");s(LF,"emptyCanonical");s(he,"loadCanonicalWithExtends");});function mJ(t,e){let r=join(e,"node_modules",t),o=join(r,"package.json");if(!existsSync(o))throw new Error(`Cannot find package '${t}' in ${join(e,"node_modules")}`);let n=JSON.parse(readFileSync(o,"utf-8")),i=(typeof n.exports=="string"?n.exports:null)??(typeof n.main=="string"?n.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 pJ(t){return t.startsWith("file:")||t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||/^[A-Za-z]:[/\\]/.test(t)}async function uJ(t,e){let{source:r}=t,o;if(pJ(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(e,i);o=pathToFileURL(a).href;}else {let i=mJ(r,e);o=pathToFileURL(i).href;}return await import(o)}function dJ(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}async function Md(t,e){let r;try{r=await uJ(t,e);}catch(i){throw new Error(`Plugin '${t.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let o=dJ(r),n=[];for(let i of o)try{let a=fd(i);hd(a),n.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:n}}async function ev(t,e){let r=[],o=process.env.AGENTSMESH_STRICT_PLUGINS==="1"||process.env.AGENTSMESH_STRICT_PLUGINS==="true",i=(await Promise.all(t.map(async a=>{try{let c=await Md(a,e);return r.push(c),null}catch(c){let l=`Plugin '${a.source}' failed to load: ${c instanceof Error?c.message:String(c)}`;return a.strict===true||o?new Error(l):(_.warn(l),null)}}))).filter(a=>a!==null);if(i.length>0){let a=i.map(c=>` - ${c.message}`).join(`
|
|
139
|
+
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let R=await Vt(m,h,g),C=r(R,n,m);await I(m,C),e.push({feature:"agents",fromTool:_e,fromPath:n,toPath:`${ra}/${c}.md`});}}async function _D(t,e={}){let r=e.scope??"project",n=[],o=await B(_e,t,r);return n.push(...await J(Ed,t,r,{normalize:o})),await q(t,Qr,_e,n,o),r==="project"&&(await F1(t,n,o),await v1(t,n,o),await M1(t,n,o),await q(t,Qi,_e,n,o)),n}var w_,b_,RD=d(()=>{dt();tt();xe();Et();w();ut();j();A_();na();P_();w_=`${Ws}/_root.md`,b_="00-root.md";s(yD,"pathExists");s(F1,"importLegacyRules");s(v1,"importLegacyWorkflows");s(M1,"importLegacyModes");s(_D,"importFromKiloCode");});function ID(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:_e}))}var SD=d(()=>{It();na();s(ID,"lintRules");});function CD(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}function kD(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","kilo-code","kilo-code permissions live in kilo.jsonc, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}var ED=d(()=>{Lt();s(CD,"lintHooks");s(kD,"lintPermissions");});var $1,G1,j1,LD,Ed,P_=d(()=>{gD();na();ee();RD();A_();SD();ED();Ct();$1={name:_e,primaryRootInstructionPath:Wn,generateRules:cD,generateCommands:mD,generateAgents:pD,generateSkills:fD,generateMcp:uD,generateIgnore:dD,importFrom:_D},G1={rootInstructionPath:Wn,skillDir:Qr,managedOutputs:{dirs:[Vo,Jo,Yo,Qr],files:[Wn,Us,Al]},paths:{rulePath(t,e){return `${Vo}/${t}.md`},commandPath(t,e){return `${Jo}/${t}.md`},agentPath(t,e){return `${Yo}/${t}.md`}}},j1={rootInstructionPath:Bs,skillDir:Ks,managedOutputs:{dirs:[qi,ta,ea,Ks,zE],files:[Bs,Pl,wu]},rewriteGeneratedPath(t){return t===Wn?Bs:t},mirrorGlobalPath(t,e){return pt(t,Ks,e)},paths:{rulePath(t,e){return `${qi}/${t}.md`},commandPath(t,e){return `${ta}/${t}.md`},agentPath(t,e){return `${ea}/${t}.md`}}},LD={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Ed={id:_e,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:$1,capabilities:LD,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:ID,lint:{hooks:CD,permissions:kD},project:G1,globalSupport:{capabilities:LD,detectionPaths:[Bs,qi,ta,ea,Ks,Pl,wu],layout:j1},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Wn],global:[Bs]},canonicalDir:Ws,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Vo],global:[qi]},canonicalDir:Ws,extensions:[".md"],map:Cd}],commands:{feature:"commands",mode:"directory",source:{project:[Jo],global:[ta]},canonicalDir:Tl,extensions:[".md"],map:kd},agents:{feature:"agents",mode:"directory",source:{project:[Yo],global:[ea]},canonicalDir:ra,extensions:[".md"],map:hD},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Us,Am],global:[Pl]},canonicalDir:".agentsmesh",canonicalFilename:VE},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Al],global:[wu]},canonicalDir:".agentsmesh",canonicalFilename:JE}},buildImportPaths:Gh,detectionPaths:[Vo,Jo,Yo,Qr,Us,Zi,wl,Qi,Am,Au,Al,"kilo.jsonc","kilo.json"]};});function OD(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function K1(t){return t.type==="prompt"?t.prompt:t.command}function W1(t,e){let r=AD[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}function wD(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in AD)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=K1(a);if(!l)continue;let c={name:`${OD(r)} ${i}`,version:"1",when:W1(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${OD(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return e}function H1(t){let e=B1.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:H1(r)}function PD(t){return stringify(t).trimEnd()}var AD,B1,T_=d(()=>{AD={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},B1=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(OD,"toKebab");s(K1,"hookText");s(W1,"toWhen");s(wD,"generateKiroHooks");s(H1,"toCanonicalEntry");s(bD,"parseKiroHookFile");s(PD,"serializeCanonicalHooks");});function V1(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 TD(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:qr,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Ge))continue;let o=basename(n.source,".md");e.push({path:`${tn}/${o}.md`,content:T(V1(n),n.body.trim()||"")});}return e}function xD(t){return t.commands.map(e=>({path:`${Re}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function DD(t){return rt(t,Re)}function ND(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:xl,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function FD(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:wD(t.hooks).map(e=>({path:`${Hs}/${e.name}`,content:e.content}))}function vD(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=T(r,e.body.trim()||"");return {path:`${en}/${e.name}.md`,content:n}})}function MD(t){return t.ignore.length===0?[]:[{path:Dl,content:t.ignore.join(`
|
|
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 xN=d(()=>{j();Ml();s(ON,"generateRules");s(AN,"generateCommands");s(wN,"generateAgents");s(bN,"generateSkills");s(PN,"generateMcp");s(TN,"generateIgnore");});async function DN(t,e={}){let r=e.scope??"project",n=[],o=await B(Jn,t,r);return n.push(...await J(wd,t,r,{normalize:o})),await q(t,r==="global"?Zn:je,Jn,n,o),n}var NN=d(()=>{dt();Et();tt();Ml();M_();s(DN,"importFromQwenCode");});function FN(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Jn}))}var vN=d(()=>{It();Ml();s(FN,"lintRules");});var fJ,gJ,hJ,yJ,_J,wd,M_=d(()=>{xN();NN();vN();Ct();Ml();fJ={name:Jn,primaryRootInstructionPath:Cr,generateRules:ON,generateCommands:AN,generateAgents:wN,generateSkills:bN,generateMcp:PN,generateIgnore:TN,importFrom:DN},gJ={rootInstructionPath:Cr,skillDir:je,managedOutputs:{dirs:[ts,Yn,Xn,je],files:[Cr,Xs,Zs]},paths:{rulePath(t,e){return e.root?Cr:`${ts}/${t}.md`},commandPath(t){return `${Yn}/${t}.md`},agentPath(t){return `${Xn}/${t}.md`}}},hJ={rootInstructionPath:es,skillDir:Zn,managedOutputs:{dirs:[Qs,qs,Zn],files:[es,ma]},rewriteGeneratedPath(t){return t===Cr?es:t===Xs?ma:t===Zs?null:t.startsWith(`${Yn}/`)?t.replace(`${Yn}/`,`${Qs}/`):t.startsWith(`${Xn}/`)?t.replace(`${Xn}/`,`${qs}/`):t.startsWith(`${je}/`)?t.replace(`${je}/`,`${Zn}/`):t.startsWith(`${ts}/`)?null:t},paths:{rulePath(t,e){return es},commandPath(t){return `${Qs}/${t}.md`},agentPath(t){return `${qs}/${t}.md`}}},yJ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},_J={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},wd={id:Jn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:fJ,capabilities:yJ,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:FN,project:gJ,globalSupport:{capabilities:_J,detectionPaths:[es,ma,Qs,qs,Zn],layout:hJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Cr],global:[es]},canonicalDir:Jh,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ts],global:[]},canonicalDir:Jh,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[Yn],global:[Qs]},canonicalDir:sL,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[Xn],global:[qs]},canonicalDir:iL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Xs],global:[ma]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Zs],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}},buildImportPaths:Yh,detectionPaths:[Cr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function MN(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Qn)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:sn,content:o}]:[]}function $N(t){return rt(t,Ae)}function GN(t){return t.commands.map(e=>({path:`${Ae}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function jN(t){return t.agents.map(e=>({path:`${Ae}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}var UN=d(()=>{tt();Ut();mt();kt();$l();s(MN,"generateRules");s($N,"generateSkills");s(GN,"generateCommands");s(jN,"generateAgents");});async function BN(t,e={}){let r=e.scope??"project",n=[],o=await B(Qn,t,r);return n.push(...await J(bd,t,r,{normalize:o})),await q(t,Ae,Qn,n,o),n}var KN=d(()=>{dt();tt();Et();$l();$_();s(BN,"importFromReplitAgent");});function WN(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qn}))}var HN=d(()=>{It();$l();s(WN,"lintRules");});function zN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function VN(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","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function JN(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function YN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[x(".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 XN=d(()=>{Lt();s(zN,"lintHooks");s(VN,"lintPermissions");s(JN,"lintIgnore");s(YN,"lintMcp");});var RJ,IJ,SJ,bd,$_=d(()=>{kt();mt();UN();KN();HN();XN();Zh();$l();RJ={name:Qn,primaryRootInstructionPath:sn,generateRules:MN,generateCommands:GN,generateAgents:jN,generateSkills:$N,importFrom:BN},IJ={rootInstructionPath:sn,skillDir:Ae,managedOutputs:{dirs:[Ae],files:[sn]},paths:{rulePath(t){return sn},commandPath(t){return `${Ae}/${H(t)}/SKILL.md`},agentPath(t){return `${Ae}/${U(t)}/SKILL.md`}}},SJ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},bd={id:Qn,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:RJ,capabilities:SJ,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:WN,lint:{hooks:zN,permissions:VN,ignore:JN,mcp:YN},supportsConversion:{commands:true,agents:true},project:IJ,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[sn]},canonicalDir:lL,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:Xh,detectionPaths:[sn]};});function QN(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:an,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(ti))continue;let o=basename(n.source,".md");e.push({path:`${rs}/${o}.md`,content:n.body.trim()||""});}return e}function qN(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${ns}/${e.name}.md`,content:T(r,e.body.trim()||"")}})}function tF(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Dm,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function eF(t){return t.ignore.length===0?[]:[{path:Nm,content:t.ignore.join(`
|
|
142
|
+
`)}]}function rF(t){return rt(t,qn)}function nF(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:Gl,content:stringify({customModes:e})}]}var oF=d(()=>{tt();j();fa();s(QN,"generateRules");s(qN,"generateCommands");s(tF,"generateMcp");s(eF,"generateIgnore");s(rF,"generateSkills");s(nF,"generateAgents");});var Pd,iF,G_=d(()=>{j();ut();fa();Pd=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(t==="00-root.md")return null;let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${da}/${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)}},"rooNonRootRuleMapper"),iF=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=b(e(n));return {destPath:n,toPath:`${Du}/${t}`,content:await _t(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function EJ(t,e,r){let n=join(t,pa),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,da);for(let l of i)e.push(...await Rt({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:ti,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Pd({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function aF(t,e={}){let r=e.scope??"project",n=[],o=await B(ti,t,r);return n.push(...await J(Td,t,r,{normalize:o})),await EJ(t,n,o),await q(t,qn,ti,n,o),n}var lF=d(()=>{dt();tt();xe();Et();G_();fa();U_();s(EJ,"importPerModeRules");s(aF,"importFromRooCode");});function cF(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ti}))}var mF=d(()=>{It();fa();s(cF,"lintRules");});function PJ(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var wJ,bJ,TJ,xJ,DJ,Td,U_=d(()=>{w();oF();fa();ee();lF();G_();mF();Ct();wJ={name:"roo-code",primaryRootInstructionPath:an,generateRules:QN,generateCommands:qN,generateSkills:rF,generateMcp:tF,generateIgnore:eF,generateAgents:nF,importFrom:aF},bJ={rootInstructionPath:an,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Gl]},paths:{rulePath(t,e){return `${rs}/${t}.md`},commandPath(t,e){return `${ns}/${t}.md`},agentPath(t,e){return null}}};s(PJ,"computeStatus");TJ=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,Fm));return [{target:"roo-code",path:Fm,content:i,currentContent:a??void 0,status:PJ(a,i)}]},"generateRooGlobalExtras"),xJ={rootInstructionPath:ni,skillDir:os,managedOutputs:{dirs:[ei,ri,os,cL],files:[ni,ua,vm,Fm]},rewriteGeneratedPath(t){return t===an?ni:t===Gl?null:t.startsWith(`${rs}/`)?t.replace(`${rs}/`,`${ei}/`):t.startsWith(`${ns}/`)?t.replace(`${ns}/`,`${ri}/`):t.startsWith(`${qn}/`)?t.replace(`${qn}/`,`${os}/`):t===Dm?ua:t===Nm?vm:t},mirrorGlobalPath(t,e){return pt(t,os,e)},paths:{rulePath(t,e){return `${ei}/${t}.md`},commandPath(t,e){return `${ri}/${t}.md`},agentPath(t,e){return null}}},DJ={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Td={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:wJ,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:bJ,globalSupport:{capabilities:DJ,detectionPaths:[ei,ri,os,ua,vm,ni,Fm],layout:xJ,scopeExtras:TJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[an,xm],global:[ni,an,xm]},canonicalDir:da,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:[rs],global:[ei]},canonicalDir:da,extensions:[".md"],map:Pd}],commands:{feature:"commands",mode:"directory",source:{project:[ns],global:[ri]},canonicalDir:Du,extensions:[".md"],map:iF},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Dm],global:[ua]},canonicalDir:".agentsmesh",canonicalFilename:mL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Nm],global:[vm]},canonicalDir:".agentsmesh",canonicalFilename:pL}},buildImportPaths:Qh,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Gl]};});function pF(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=lt(n,r);return o?[{path:kr,content:o}]:[]}function uF(t){return rt(t,te)}function dF(t){return t.commands.map(e=>({path:`${te}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function fF(t){return t.agents.map(e=>({path:`${te}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function gF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ss,content:e}]}var hF=d(()=>{tt();Ut();mt();kt();Ul();s(pF,"generateRules");s(uF,"generateSkills");s(dF,"generateCommands");s(fF,"generateAgents");s(gF,"generateMcp");});async function yF(t,e={}){let r=e.scope??"project",n=[],o=await B(to,t,r);return n.push(...await J(xd,t,r,{normalize:o})),await q(t,r==="global"?Ue:te,to,n,o),n}var _F=d(()=>{dt();tt();Et();Ul();B_();s(yF,"importFromRovodev");});function RF(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:to}))}var IF=d(()=>{It();Ul();s(RF,"lintRules");});function SF(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","rovodev","Rovo Dev has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function CF(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","rovodev","Rovo Dev permissions are managed in config.yaml; canonical permissions are not projected.")]}function kF(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var EF=d(()=>{Lt();s(SF,"lintHooks");s(CF,"lintPermissions");s(kF,"lintIgnore");});var NJ,FJ,vJ,MJ,$J,xd,B_=d(()=>{kt();mt();hF();ee();_F();IF();EF();Ct();Ul();NJ={name:to,primaryRootInstructionPath:kr,generateRules:pF,generateCommands:dF,generateAgents:fF,generateSkills:uF,generateMcp:gF,importFrom:yF},FJ={rootInstructionPath:kr,skillDir:te,managedOutputs:{dirs:[te],files:[kr,ss]},paths:{rulePath(t){return kr},commandPath(t){return `${te}/${H(t)}/SKILL.md`},agentPath(t){return `${te}/${U(t)}/SKILL.md`}}},vJ={rootInstructionPath:is,skillDir:Ue,managedOutputs:{dirs:[Ue],files:[is,jl]},rewriteGeneratedPath(t){return t===kr?is:t.startsWith(`${te}/`)?t.replace(`${te}/`,`${Ue}/`):t===ss?jl:t},mirrorGlobalPath(t,e){return pt(t,Ue,e)},paths:{rulePath(t){return is},commandPath(t){return `${Ue}/${H(t)}/SKILL.md`},agentPath(t){return `${Ue}/${U(t)}/SKILL.md`}}},MJ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},$J={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},xd={id:to,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:NJ,capabilities:MJ,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:RF,lint:{hooks:SF,permissions:CF,ignore:kF},supportsConversion:{commands:true,agents:true},project:FJ,globalSupport:{capabilities:$J,detectionPaths:[fL,is,Ue],layout:vJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[kr],global:[is]},canonicalDir:gL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ss],global:[jl]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:qh,detectionPaths:[kr,te,ss]};});function LF(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Ke,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Er))continue;let o=basename(n.source,".md");e.push({path:`${Be}/${o}.md`,content:n.body.trim()});}return e}function OF(t){return rt(t,Lr)}function AF(t){return t.mcp===null||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:ga,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function wF(t){return t.ignore.length===0?[]:[{path:Bl,content:t.ignore.join(`
|
|
143
|
+
`)}]}var bF=d(()=>{tt();Kl();s(LF,"generateRules");s(OF,"generateSkills");s(AF,"generateMcp");s(wF,"generateIgnore");});async function UJ(t,e,r,n){let o=n==="global"?[Or,Ke]:[Ke,Or];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,PF),{frontmatter:m,body:p}=b(r(l,a,c));await O(join(t,$m)),await I(c,await K(c,{...m,root:true},p)),e.push({fromTool:Er,fromPath:a,toPath:PF,feature:"rules"});return}}async function BJ(t,e,r,n){let o=join(t,n==="global"?as:Be),i=join(t,$m);e.push(...await Rt({srcDir:o,destDir:i,extensions:[".md"],fromTool:Er,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}=b(l(m));return {destPath:m,toPath:`${$m}/${a}`,feature:"rules",content:await K(m,{...p,root:false},u)}},"mapEntry")}));}async function TF(t,e={}){let r=e.scope??"project",n=[],o=await B(Er,t,r);return await UJ(t,n,o,r),await BJ(t,n,o,r),n.push(...await J(Dd,t,r,{normalize:o})),await q(t,r==="global"?ln:Lr,Er,n,o),n}var PF,xF=d(()=>{dt();tt();xe();Et();ut();w();j();Kl();K_();PF=`${$m}/_root.md`;s(UJ,"importRoot");s(BJ,"importNonRootRules");s(TF,"importFromTrae");});function DF(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Er}))}var NF=d(()=>{It();Kl();s(DF,"lintRules");});var KJ,WJ,HJ,zJ,Dd,K_=d(()=>{bF();ee();xF();NF();Ct();Kl();KJ={name:Er,primaryRootInstructionPath:Ke,generateRules:LF,generateSkills:OF,generateMcp:AF,generateIgnore:wF,importFrom:TF},WJ={rootInstructionPath:Ke,skillDir:Lr,managedOutputs:{dirs:[Be,Lr],files:[ga,Bl]},paths:{rulePath(t,e){return `${Be}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},HJ={rootInstructionPath:Or,skillDir:ln,managedOutputs:{dirs:[as,ln,yL],files:[Or,Mm]},rewriteGeneratedPath(t){return t===Ke?Or:t.startsWith(`${Be}/`)?t.replace(`${Be}/`,`${as}/`):t.startsWith(`${Lr}/`)?t.replace(`${Lr}/`,`${ln}/`):t===ga?Mm:t===Bl?null:t},mirrorGlobalPath(t,e){return pt(t,ln,e)},paths:{rulePath(t,e){return t==="_root"?Or:`${as}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},zJ={rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Dd={id:Er,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:KJ,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:DF,project:WJ,globalSupport:{capabilities:zJ,detectionPaths:[Or,as,ln,Mm],layout:HJ},importer:{mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ga],global:[Mm]},canonicalDir:".agentsmesh",canonicalFilename:_L},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Bl]},canonicalDir:".agentsmesh",canonicalFilename:RL}},buildImportPaths:ty,detectionPaths:[Be,ga,Ke]};});function FF(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(eo)),n=e?.body.trim()??"",o=lt(n,r);return o?[{path:cn,content:o}]:[]}function vF(t){return rt(t,ue)}function MF(t){return t.commands.map(e=>({path:`${ue}/${H(e.name)}/SKILL.md`,content:Nt(e)}))}function $F(t){return t.agents.map(e=>({path:`${ue}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}function GF(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:oi,content:e}]}var jF=d(()=>{tt();Ut();mt();kt();Wl();s(FF,"generateRules");s(vF,"generateSkills");s(MF,"generateCommands");s($F,"generateAgents");s(GF,"generateMcp");});async function UF(t,e={}){let r=e.scope??"project",n=[],o=await B(eo,t,r);return n.push(...await J(Nd,t,r,{normalize:o})),await q(t,r==="global"?We:ue,eo,n,o),n}var BF=d(()=>{dt();tt();Et();Wl();W_();s(UF,"importFromWarp");});function KF(t,e,r,n){return V(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:eo}))}var WF=d(()=>{It();Wl();s(KF,"lintRules");});function HF(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[x(".agentsmesh/hooks.yaml","warp","Warp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function zF(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[x(".agentsmesh/permissions.yaml","warp","Warp permissions are UI-managed; canonical permissions are not projected.")]}function VF(t){return t.ignore.length===0?[]:[x(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var JF=d(()=>{Lt();s(HF,"lintHooks");s(zF,"lintPermissions");s(VF,"lintIgnore");});var VJ,JJ,YJ,XJ,ZJ,Nd,W_=d(()=>{kt();mt();jF();ee();BF();WF();JF();Ct();Wl();VJ={name:eo,primaryRootInstructionPath:cn,generateRules:FF,generateCommands:MF,generateAgents:$F,generateSkills:vF,generateMcp:GF,importFrom:UF},JJ={rootInstructionPath:cn,skillDir:ue,managedOutputs:{dirs:[ue],files:[cn,oi]},paths:{rulePath(t){return cn},commandPath(t){return `${ue}/${H(t)}/SKILL.md`},agentPath(t){return `${ue}/${U(t)}/SKILL.md`}}},YJ={rootInstructionPath:void 0,skillDir:We,managedOutputs:{dirs:[We],files:[]},rewriteGeneratedPath(t){return t.startsWith(`${ue}/`)?t.replace(`${ue}/`,`${We}/`):t},mirrorGlobalPath(t,e){return pt(t,We,e)},paths:{rulePath(){return null},commandPath(t){return `${We}/${H(t)}/SKILL.md`},agentPath(t){return `${We}/${U(t)}/SKILL.md`}}},XJ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ZJ={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Nd={id:eo,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:VJ,capabilities:XJ,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:KF,lint:{hooks:HF,permissions:zF,ignore:VF},supportsConversion:{commands:true,agents:true},project:JJ,globalSupport:{capabilities:ZJ,detectionPaths:[We],layout:YJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ey,cn]},canonicalDir:SL,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[oi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:ry,detectionPaths:[cn,ey,oi],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var mo,H_,ui,YF,ic,po,ac,lc,XF,di,dn,cc,z_,ZF,QF,V_,J_,Y_,mc,pc,Qm,Fd,vd,Md,qF,Se=d(()=>{mo="windsurf",H_=".windsurfrules",ui=".windsurf/rules",YF=".windsurfignore",ic=".codeiumignore",po="AGENTS.md",ac=".windsurf/hooks.json",lc=".windsurf/mcp_config.example.json",XF=".windsurf/mcp_config.json",di=".windsurf/workflows",dn=".windsurf/skills",cc=".agentsmesh/rules",z_=".agentsmesh/commands",ZF=".agentsmesh/agents",QF=".agentsmesh/skills",V_=".agentsmesh/ignore",J_=".agentsmesh/hooks.yaml",Y_=".agentsmesh/mcp.json",mc=".codeium/windsurf/memories/global_rules.md",pc=".codeium/windsurf/skills",Qm=".codeium/windsurf/global_workflows",Fd=".codeium/windsurf/hooks.json",vd=".codeium/windsurf/mcp_config.json",Md=".codeium/.codeiumignore",qF=".agents/skills";});function qJ(t){let e=basename(t,".md");return e==="_root"?"root":e}function tY(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 X_(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:po,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=qJ(n.source),i=n.trigger||(n.globs.length>0?"glob":void 0),a={description:n.description||void 0,trigger:i,glob:n.globs.length===1?n.globs[0]:void 0,globs:n.globs.length>1?n.globs:void 0};Object.keys(a).forEach(m=>{a[m]===void 0&&delete a[m];});let l=Object.keys(a).length>0?T(a,n.body.trim()||""):n.body.trim()||"";e.push({path:`${ui}/${o}.md`,content:l});let c=tY(n.globs);c&&(c!==o&&e.push({path:`${ui}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}var tv=d(()=>{j();Se();s(qJ,"ruleSlug");s(tY,"directoryScopedRuleDir");s(X_,"generateRules");});function Z_(t){return !t.ignore||t.ignore.length===0?[]:[{path:ic,content:t.ignore.join(`
|
|
144
|
+
`)}]}var ev=d(()=>{Se();s(Z_,"generateIgnore");});function Q_(t){return t.commands.map(e=>{let r={description:e.description.trim()||void 0,allowedTools:e.allowedTools.length>0?e.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?T(r,e.body.trim()||""):e.body.trim();return {path:`${di}/${e.name}.md`,content:n}})}var rv=d(()=>{j();Se();s(Q_,"generateCommands");});function q_(t){return t.agents.map(e=>({path:`${dn}/${U(e.name)}/SKILL.md`,content:Tt(e)}))}var nv=d(()=>{mt();Se();s(q_,"generateAgents");});function tR(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:lc,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var ov=d(()=>{Se();s(tR,"generateMcp");});function eY(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 rY(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Sn(i))continue;let a=zt(i),l=he(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(e[eY(r)]=o);}return e}function eR(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=rY(t.hooks);return Object.keys(e).length===0?[]:[{path:ac,content:JSON.stringify({hooks:e},null,2)}]}var sv=d(()=>{Mr();Se();s(eY,"windsurfEventName");s(rY,"toWindsurfHooks");s(eR,"generateHooks");});function rR(t){let e=[];for(let r of t.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=Object.keys(n).length>0?T(n,r.body.trim()||""):r.body.trim()||"";e.push({path:`${dn}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)e.push({path:`${dn}/${r.name}/${i.relativePath}`,content:i.content});}return e}var iv=d(()=>{j();Se();s(rR,"generateSkills");});var av=d(()=>{tv();ev();rv();nv();ov();sv();iv();});var lv=d(()=>{av();});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 mv(t,e,r){let n=join(t,di),i=(await v(n)).filter(l=>l.endsWith(".md")),a=join(t,z_);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}=b(u),h=await _t(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 I(p,h),e.push({fromTool:mo,fromPath:l,toPath:`${z_}/${m}`,feature:"commands"});}}var pv=d(()=>{w();j();ut();Se();s(cv,"toStringArray");s(mv,"importWorkflows");});async function uv(t,e,r,n=dn){await Vl([n],{projectRoot:t,destCanonicalSkillsDir:QF,targetName:"windsurf",normalize:r,results:e},[Jl({canonicalAgentsDir:ZF})]);}var dv=d(()=>{Yl();Se();s(uv,"importSkills");});async function gv(t,e){let r=join(t,ac),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=iY(o.hooks);if(Object.keys(i).length===0)return;let a=join(t,J_);await O(dirname(a)),await I(a,stringify(i)),e.push({fromTool:mo,fromPath:r,toPath:J_,feature:"hooks"});}catch{}}function sY(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 iY(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=sY(r),i=[];for(let a of n){if(!a||typeof a!="object")continue;let l=a;if(typeof l.command=="string"&&l.command.trim()){i.push({matcher:".*",type:"command",command:l.command});continue}let c=typeof l.matcher=="string"&&l.matcher.trim()?l.matcher:".*",m=Array.isArray(l.hooks)?l.hooks:[];for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.command=="string"?u.command:typeof u.prompt=="string"?u.prompt:"";if(!f.trim())continue;let g={matcher:c,type:u.type==="prompt"?"prompt":"command",command:f};typeof u.timeout=="number"&&(g.timeout=u.timeout),i.push(g);}}i.length>0&&(e[o]=i);}return e}async function hv(t,e){let r=[lc,XF];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,Y_);await O(dirname(l)),await I(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),e.push({fromTool:mo,fromPath:o,toPath:Y_,feature:"mcp"});return}catch{}}}var yv=d(()=>{w();Se();s(gv,"importWindsurfHooks");s(sY,"canonicalHookEventName");s(iY,"windsurfHooksToCanonical");s(hv,"importWindsurfMcp");});async function _v(t,e){let r=e?.scope??"project",n=[],o=await B(mo,t),i=await B("codex-cli",t),a=join(t,cc),l=join(t,H_),c=await _(l);if(c!==null){await O(a);let f=join(a,"_root.md"),g=o(c,l,f).trim(),h=await K(f,{root:true},g);await I(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${cc}/_root.md`,feature:"rules"});}if(c===null){let f=join(t,po),g=await _(f);if(g!==null){await O(a);let h=join(a,"_root.md"),R=o(i(g,f,h),f,h).trim(),C=await K(h,{root:true},R);await I(h,C),n.push({fromTool:"windsurf",fromPath:f,toPath:`${cc}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await Rt({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(!eu(h))return await kn(join(a,`${R}.md`)),null;let C=join(a,`${R}.md`);return {destPath:C,toPath:`${cc}/${R}.md`,feature:"rules",content:await K(C,{root:false,globs:[`${h}/**`]},g(C))}},"mapEntry")}));let m=join(t,ui);n.push(...await Rt({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:C}=b(g(h)),S={...R};return typeof S.glob=="string"&&S.glob.trim()&&(S.globs=[S.glob],delete S.glob),{destPath:h,toPath:`${cc}/${f}`,feature:"rules",content:await K(h,{...S,root:false},C)}},"mapEntry")}));let p=join(t,YF),u=await _(p);if((u===null||!u.trim())&&(p=join(t,ic),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,V_);await I(h,g.join(`
|
|
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/, ${Uv.join(", ")}.`);y.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await tp(e,i);}return Ee(e)}let r=join(e,t.path);if(!await $(r))throw new Error(`Extend "${t.name}": path does not exist: ${r}`);if(t.target){let o=join(e,".agentsmesh");return await $(o)||(y.info(`[agentsmesh] Extend "${t.name}": path "${t.path}" with target "${t.target}" \u2014 importing at extend root, then loading canonical.`),await tp(e,t.target)),Ee(e)}let{sliceRoot:n}=await Zd(r);try{let{canonical:o}=await Qd(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 eM=d(()=>{cR();w();ot();Ai();mR();Bd();IR();AR();s(mX,"emptyCanonical");s(tM,"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 wR=d(()=>{ot();s(rf,"applyExtendPick");});var dX,dc,nf=d(()=>{dX=["rules","commands","agents","skills"],dc=z.enum(dX);});var fX,rM,nM=d(()=>{Ro();nf();fX=z.enum(["github","gitlab","git","local"]),rM=z.object({name:z.string().min(1),source:z.string().min(1),version:z.string().optional(),source_kind:fX,installed_at:z.string(),updated_at:z.string(),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(),content_hash:z.string(),license:z.string().nullable().optional()});});function oM(t){let e=Li(t);return e?e.kind==="github"?`github:${e.org}/${e.repo}`:e.kind==="gitlab"?`gitlab:${e.namespace}/${e.project}`:`git+${e.url}`:t.trim()}function hX(t,e){return e?t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n]):true}async function fi(t){let e=join(t,"pack.yaml"),r=await _(e);if(r===null)return null;try{let n=parse(r);return rM.parse(n)}catch{return null}}async function iM(t,e,r){if(!await $(t))return null;let n=oM(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 fi(a);if(l&&oM(l.source)===n&&l.target===r.target&&l.as===r.as&&hX(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function of(t){if(!await $(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 fi(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var fc=d(()=>{w();nM();jc();s(oM,"sourceIdentity");s(hX,"sameFeatures");s(fi,"readPackMetadata");s(iM,"findExistingPack");s(of,"listPacks");});function aM(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function yX(t){let[e,r,n,o,i,a,l,c]=await Promise.all([Cs(join(t,"rules")),ks(join(t,"commands")),Es(join(t,"agents")),Ls(join(t,"skills")),vr(join(t,"mcp.json")),Kp(join(t,"permissions.yaml")),Wp(join(t,"hooks.yaml")),Hp(join(t,"ignore"))]);return {...aM(),rules:e,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function lM(t){let e=join(t,"packs"),r=await of(e),n=aM();for(let{meta:o,packDir:i}of r){let a=await yX(i),l=PR(a,o.features),c=rf(l,o.features,o.pick,o.name);n=rl(n,c);}return n}var cM=d(()=>{Kc();Wc();Hc();el();zc();Og();wg();bg();Tg();fo();wR();fc();s(aM,"emptyCanonical");s(yX,"loadPackCanonical");s(lM,"loadPacksCanonical");});function PR(t,e){if(e.length===0)return mM();let r=new Set(e.flatMap(n=>RX[n]??[]));return {rules:r.has("rules")?t.rules:[],commands:r.has("commands")?t.commands:[],agents:r.has("agents")?t.agents:[],skills:r.has("skills")?t.skills:[],mcp:r.has("mcp")?t.mcp:null,permissions:r.has("permissions")?t.permissions:null,hooks:r.has("hooks")?t.hooks:null,ignore:r.has("ignore")?t.ignore:[]}}function mM(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function ke(t,e,r={},n=join(e,".agentsmesh")){let o=await qa(t,e,{refreshCache:r.refreshRemoteCache===true}),i=mM();for(let c of o){let m=await tM(c),p=PR(m,c.features),u=rf(p,c.features,c.pick,c.name);i=rl(i,u);}let a=await lM(n);i=rl(i,a);let l=await Ee(n);return i=rl(i,l),{canonical:i,resolvedExtends:o}}var RX,fo=d(()=>{Fp();Ai();Tg();eM();wR();cM();RX={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(PR,"filterCanonicalByFeatures");s(mM,"emptyCanonical");s(ke,"loadCanonicalWithExtends");});function h2(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 y2(t){return t.startsWith("file:")||t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||/^[A-Za-z]:[/\\]/.test(t)}function KM(t){try{return realpathSync(t)}catch{return t}}function WM(t,e){let r=KM(resolve(e)),n=KM(t);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function _2(t,e){let{source:r}=t,n;if(y2(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(e,i);WM(a,e),n=pathToFileURL(a).href;}else {let i=h2(r,e);WM(i,e),n=pathToFileURL(i).href;}return await import(n)}function R2(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}async function _f(t,e){let r;try{r=await _2(t,e);}catch(i){throw new Error(`Plugin '${t.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=R2(r),o=[];for(let i of n)try{let a=zp(i);Jp(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 HM(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 _f(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(`
|
|
143
147
|
`);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
|
|
144
|
-
${a}`)}return r}var
|
|
145
|
-
`)}var
|
|
148
|
+
${a}`)}return r}var BR=d(()=>{xg();se();ot();s(h2,"resolveNpmSpecifier");s(y2,"isLocalSource");s(KM,"canonicalize");s(WM,"assertSourceInsideProjectRoot");s(_2,"importPluginModule");s(R2,"extractDescriptors");s(_f,"loadPlugin");s(HM,"loadAllPlugins");});async function Wt(t,e){t.plugins.length!==0&&await HM(t.plugins,e);}var fn=d(()=>{BR();s(Wt,"bootstrapPlugins");});function HR(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=B2(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]=jd(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]=jd(u,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function B2(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}var t$=d(()=>{Pt();s(HR,"buildCompatibilityMatrix");s(B2,"countHooks");});function e$(t){return K2[t]??t}var K2,r$=d(()=>{K2={"claude-code":"Claude"};s(e$,"matrixColumnLabel");});function n$(t){return Object.fromEntries(W2.map(e=>[e,Object.fromEntries(Ft.map(r=>{let o=mi(r,t)?.[e];return [r,o??{level:"none"}]}))]))}function H2(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}function z2(t,e){return H2()?e:`${t}${e}${sp.reset}`}function s$(t){let e=zR[t];return z2(V2[t],e)}var W2,o$,zR,sp,V2,VR=d(()=>{Rn();Pt();W2=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(n$,"buildSupportMatrix");o$=n$("project"),n$("global"),zR={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},sp={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(H2,"noColor");s(z2,"colorize");V2={native:sp.green,embedded:sp.blue,partial:sp.yellow,none:sp.dim};s(s$,"coloredSymbol");});function JR(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((z,Q)=>r?Q:`${z}${Q}${n.reset}`,"c"),i=s(z=>z.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s((z,Q)=>{let at=i(z),At=Math.max(0,Q-at);return z+" ".repeat(At)},"padWithColor"),l=Math.max(12,...e.map(z=>z.length)),c=e.map(z=>e$(z)),m=Math.max(8,l),p=Math.max(12,...t.map(z=>z.feature.length)),u=s(z=>o(n.dim,"\u250C"+z.map(Q=>"\u2500".repeat(Q)).join("\u252C")+"\u2510"),"border"),f=s(z=>o(n.dim,"\u251C"+z.map(Q=>"\u2500".repeat(Q)).join("\u253C")+"\u2524"),"sep"),g=s(z=>o(n.dim,"\u2514"+z.map(Q=>"\u2500".repeat(Q)).join("\u2534")+"\u2518"),"bottom"),h=[p,...e.map(()=>m)],R=u(h),C=[a(o(n.bold+n.cyan,"Feature"),p),...c.map(z=>a(o(n.bold+n.magenta,z),m))],S=o(n.dim,"\u2502")+C.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),k=f(h),P=t.map(z=>{let Q=[a(o(n.cyan,z.feature),p)];for(let at of e){let At=z.support[at]??"none",wt=r?zR[At]:s$(At);Q.push(a(` ${wt} `,m));}return o(n.dim,"\u2502")+Q.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),N=g(h),F=[R,S,k,...P,N];F.push("");let W=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return F.push(o(n.bold,"Legend: ")+W.join(" ")),F.join(`
|
|
149
|
+
`)}var i$=d(()=>{r$();VR();s(JR,"formatMatrix");});function XR(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?"":`
|
|
146
150
|
Per-file details:
|
|
147
151
|
`+e.join(`
|
|
148
152
|
`)+`
|
|
149
|
-
`}var
|
|
153
|
+
`}var a$=d(()=>{s(XR,"formatVerboseDetails");});var ZR=d(()=>{t$();i$();a$();});var QR={};og(QR,{runMatrix:()=>ip});async function ip(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 Wt(a,r);let{canonical:c}=await ke(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=HR(a,c,n),u=XR(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var ap=d(()=>{Yt();fo();ZR();fn();s(ip,"runMatrix");});var qR={};og(qR,{renderMatrix:()=>lp});function lp(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=JR(r,t.data.targets);process.stdout.write(n),process.stdout.write(`
|
|
150
154
|
`),e?.verbose&&t.verboseDetails&&(process.stdout.write(t.verboseDetails),process.stdout.write(`
|
|
151
|
-
`));}var
|
|
152
|
-
`)}s(
|
|
155
|
+
`));}var cp=d(()=>{ot();ZR();s(lp,"renderMatrix");});function RS(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(RS,"createRouter");ot();var sg=[{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)"}],ig=[{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:"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:"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 Ep(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
156
|
+
`)}s(Ep,"formatFlags");function ag(){let t=ig.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
153
157
|
Usage: ${e.usage}
|
|
154
|
-
${
|
|
158
|
+
${Ep(e.flags)}`).join(`
|
|
155
159
|
|
|
156
|
-
`);
|
|
160
|
+
`);y.info(`agentsmesh <command> [flags]
|
|
157
161
|
|
|
158
162
|
Global flags:
|
|
159
|
-
${
|
|
163
|
+
${Ep(sg)}
|
|
160
164
|
|
|
161
165
|
Commands:
|
|
162
166
|
${t}
|
|
163
167
|
|
|
164
|
-
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(ag,"printHelp");function Lp(t){let e=ig.find(r=>r.name===t);if(!e){ag();return}y.info(`${e.usage}
|
|
169
|
+
|
|
170
|
+
${e.description}
|
|
171
|
+
|
|
172
|
+
Command flags:
|
|
173
|
+
${Ep(e.flags)}
|
|
174
|
+
|
|
175
|
+
Global flags:
|
|
176
|
+
${Ep(sg)}`);}s(Lp,"printCommandHelp");var Op;function S0(){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(S0,"readPackageVersion");function C0(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let t=globalThis.__AGENTSMESH_VERSION__;return typeof t=="string"?t:"unknown"}s(C0,"getVersionFallback");function Ci(){return Op||(Op=S0()??C0(),Op)}s(Ci,"getVersion");function ES(){process.stdout.write(`agentsmesh v${Ci()}
|
|
177
|
+
`);}s(ES,"printVersion");ot();function Ha(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)+`
|
|
178
|
+
`);}s(Ha,"emitJson");var yn=class extends Error{static{s(this,"CliUsageError");}constructor(e){super(e),this.name="CliUsageError";}};function LS(t,e){let r=t instanceof yn?2:1;if(e?.json)return Ha(e.command??"unknown",{success:false,error:t.message}),process.exit(r);e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
179
|
+
`):y.error(t.message),process.exit(r);}s(LS,"handleError");ot();function ge(t,e,r,n){if(r.json===true){let o=e.exitCode===0;Ha(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(ge,"handleResult");Yt();fo();w();bp();function af(t){return createHash("sha256").update(t,"utf8").digest("hex")}s(af,"hashContent");async function lf(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(lf,"hashFile");async function cf(t){try{if(!Ap(t)){let r=await readFile(t);return createHash("sha256").update(r).digest("hex")}let e=await readFile(t,"utf-8");return e.startsWith(Ja)&&(e=e.slice(Ja.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(cf,"hashFileForManifest");fc();var DR=".lock",kX=[t=>t.startsWith("rules/")&&t.endsWith(".md"),t=>t.startsWith("commands/")&&t.endsWith(".md"),t=>t.startsWith("agents/")&&t.endsWith(".md"),t=>t.match(/^skills\/[^/]+\/.+$/)!==null,t=>t==="mcp.json",t=>t==="permissions.yaml",t=>t==="hooks.yaml",t=>t==="ignore"];function EX(t){return t.startsWith("packs/")?false:kX.some(e=>e(t))}s(EX,"isCanonical");var LX={rules:s(t=>t.startsWith("rules/"),"rules"),commands:s(t=>t.startsWith("commands/"),"commands"),agents:s(t=>t.startsWith("agents/"),"agents"),skills:s(t=>/^skills\/[^/]+\/.+$/.test(t),"skills"),mcp:s(t=>t==="mcp.json","mcp"),permissions:s(t=>t==="permissions.yaml","permissions"),hooks:s(t=>t==="hooks.yaml","hooks"),ignore:s(t=>t==="ignore","ignore")};async function mf(t){let e=join(t,DR),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(mf,"readLock");async function pf(t,e){let r=join(t,DR),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.
|
|
168
180
|
# Tracks the state of all config files for team conflict resolution.
|
|
169
181
|
|
|
170
|
-
`+stringify(
|
|
171
|
-
`),a=
|
|
172
|
-
${
|
|
182
|
+
`+stringify(n);await I(r,o);}s(pf,"writeLock");async function ys(t){if(!await $(t))return {};let e=await v(t),r={};for(let n of e){let o=relative(t,n).replace(/\\/g,"/");if(o===DR||!EX(o))continue;let i=await lf(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(ys,"buildChecksums");function uf(t,e,r){if(r.length===0)return [];let n=r.map(a=>LX[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(t),...Object.keys(e)]),i=[];for(let a of o)n.some(l=>l(a))&&t[a]!==e[a]&&i.push(a);return i}s(uf,"detectLockedFeatureViolations");async function df(t){let e=await of(t),r={};for(let{meta:n}of e)r[n.name]=n.content_hash;return r}s(df,"buildPackChecksums");async function gc(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 ys(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
183
|
+
`),a=af(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}s(gc,"buildExtendChecksums");Pt();se();function hc(t){return t?(t.outputFamilies??[]).filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[]}s(hc,"getAdditionalRootDecorationPaths");function pM(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(pM,"resolveRewriteFamilyId");ae();Jg();function OX(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(OX,"addDirectoryMapping");function uM(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)OX(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(uM,"addSkillDirectoryMappings");Pt();function dM(t,e,r="project"){let n=Gt(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(dM,"ruleTargetPath");function fM(t,e,r,n="project"){let o=Gt(t,n);return o?o.paths.commandPath(e,r):null}s(fM,"commandTargetPath");function gM(t,e,r,n="project"){let o=Gt(t,n);return o?o.paths.agentPath(e,r):null}s(gM,"agentTargetPath");de();Jt();Se();Pt();function bX(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}s(bX,"addDirectoryMapping");function NR(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=dM(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=fM(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=gM(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=qm(t,n);if(!i)return o;for(let a of e.skills){bX(o,`.agentsmesh/skills/${a.name}`,`${i}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${i}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,p=`${i}/${a.name}/${c}`;o.set(m,p),uM(o,m,p);}}return o}s(NR,"buildReferenceMap");ae();ae();Pt();function yM(t,e,r,n){let o=n.normalize(e),i=n.normalize(r);t.set(o,i),t.set(`${o}/`,`${i}/`);}s(yM,"addPackAbsoluteDirMapping");function PX(t){let e=new Set;for(let{relativePath:r}of t){let n=r.replace(/\\/g,"/"),o=posix.dirname(n);for(;o!=="."&&o.length>0;){e.add(o);let i=posix.dirname(o);if(i===o)break;o=i;}}return [...e]}s(PX,"skillSupportingDirPrefixes");function _M(t,e,r,n,o){let i=qm(e,o);if(!i)return;let a=nt(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));yM(t,m,p,a),t.set(a.normalize(c.source),a.normalize(a.join(p,"SKILL.md")));for(let u of c.supportingFiles){let f=a.normalize(a.join(p,u.relativePath));t.set(a.normalize(u.absolutePath),f);}for(let u of PX(c.supportingFiles))yM(t,a.join(m,u),a.join(p,u),a);}}s(_M,"addPackSkillArtifactMappings");ae();function TX(t){return `.agentsmesh/rules/${basename(t.source)}`}s(TX,"canonicalRulePath");function xX(t){return `.github/instructions/${basename(t.source,".md")}.instructions.md`}s(xX,"copilotInstructionsPath");function IM(t,e,r,n,o){if(t!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=nt(r);for(let a of o.rules)a.root||a.globs.length===0||e.set(i.normalize(i.join(r,TX(a))),i.normalize(i.join(r,xX(a))));}s(IM,"applyCopilotInstructionArtifactRefs");Pt();function FR(t,e){e!==void 0&&e.length>0&&!t.includes(e)&&t.push(e);}s(FR,"pushUnique");function SM(t,e,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(e.source)}`);FR(o,i);let a=Gt(t,n);if(e.root)for(let l of hc(a))FR(o,l);for(let l of a?.extraRuleOutputPaths?.(e,{refs:r,scope:n})??[])FR(o,l);return o}s(SM,"extraRuleOutputPaths");Pt();function CM(t,e,r,n,o,i){let a=Gt(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(CM,"addSkillMirrorSourceEntry");function NX(t){return `.agentsmesh/commands/${t.name}.md`}s(NX,"canonicalCommandPath");function FX(t){return `.agentsmesh/agents/${t.name}.md`}s(FX,"canonicalAgentPath");function vX(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}s(vX,"canonicalSkillPath");function kM(t,e,r,n,o,i){let a=i?.scope??"project",l=nt(n),c=new Map([...NR(t,e,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return IM(t,c,n,o,e),_M(c,t,e,n,a),c}s(kM,"buildArtifactPathMap");function EM(t,e,r,n="project",o){let i=NR(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of SM(t,l,i,n))a.set(c,l.source);for(let l of e.commands){let c=i.get(NX(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=i.get(FX(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=i.get(vX(l));c&&(a.set(c,l.source),CM(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),CM(t,n,u,m.absolutePath,a,o));}}return a}s(EM,"buildOutputSourceMap");Pt();se();Ng();function GX(t,e){if(!e)return null;for(let r of e){let n=et(r);if(n?.sharedArtifacts){for(let[o,i]of Object.entries(n.sharedArtifacts))if(i==="owner"&&t.startsWith(o))return r}}return null}s(GX,"findSharedArtifactOwner");function LM(t,e,r){if(e==="global"){let n=GX(t.path,r);if(n)return n;let o=DC(t.path);if(o)return o}return t.target}s(LM,"artifactMapTargetForResult");function jX(t,e){return `${t}\0${(e??[]).join(",")}`}s(jX,"sourceMapCacheKey");function vR(t,e){let r=nt(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(vR,"collectPlannedPaths");function UX(t,e,r){let n=Gt(t.target,e),o=pM(n,t.path);if(o!=="default")return `${t.target}:${o}`;let i=LM(t,e,r);return i===t.target?t.target:`${t.target}~via~${i}`}s(UX,"artifactCacheKey");function OM(t,e,r,n,o="project",i,a){let l=vR(n,t),c=new Map,m=new Map;return t.map(p=>{if(a?.has(p.path))return p;let u=jX(p.target,i),g=(m.get(u)??(()=>{let k=EM(p.target,e,r,o,i);return m.set(u,k),k})()).get(p.path);if(!g)return p;let h=LM(p,o,i),R=UX(p,o,i),C=c.get(R)??(()=>{let k=kM(h,e,r,n,p.path,{scope:o});return c.set(R,k),k})(),S=ou({content:p.content,projectRoot:n,sourceFile:g,destinationFile:nt(n).join(n,p.path),translatePath:s(k=>C.get(k)??k,"translatePath"),pathExists:s(k=>l.has(k)||existsSync(k),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(k=>{try{return statSync(k).isDirectory()}catch{return false}},"pathIsDirectory")});return S.content===p.content?p:{...p,content:S.content}})}s(OM,"rewriteGeneratedReferences");ae();As();ot();var KX=/!?\[[^\]]*\]\(([^)]+)\)/g,WX=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function HX(t){return t.endsWith(".md")||t.endsWith(".mdc")}s(HX,"isMarkdownLikeOutput");function zX(t,e){return e.some(([r,n])=>t>=r&&t<n)}s(zX,"isOffsetInRanges");function VX(t){let e=t.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(e);return r?.[1]!==void 0&&(e=r[1].trim()),e.startsWith("<")&&e.endsWith(">")&&(e=e.slice(1,-1).trim()),e}s(VX,"parseMarkdownLinkDestination");function JX(t,e){let r=t.trim();if(!r||r.startsWith("#")||/^https?:\/\//i.test(r)||/^mailto:/i.test(r)||/^data:/i.test(r)||/^javascript:/i.test(r)||/^ftp:/i.test(r))return true;if(/^[a-zA-Z]:[\\/]/.test(r))return false;if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(r))return true;if(r.startsWith("/")){let n=Y(e,e),o=Y(e,r);if(!o.startsWith(`${n}/`)&&o!==n)return true}return false}s(JX,"shouldSkipLocalValidation");function YX(t){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(t)}s(YX,"isSkillGeneratedOutput");var XX={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},ZX={".clinerules":"rules"},QX=[".agent.md",".instructions.md",".prompt.md"];function AM(t){for(let e of QX)if(t.endsWith(e))return t.slice(0,-e.length);return t.endsWith(".mdc")?t.slice(0,-4):t.endsWith(".md")?t.slice(0,-3):t}s(AM,"stripMarkdownExt");function qX(t){let e=/^[^/]+\/([^/]+)\/([^/]+)/.exec(t);if(e){let n=XX[e[1]??""];if(n){let o=e[2]??"";return n!=="skills"&&(o=AM(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(t);if(r){let n=ZX[r[1]??""];if(n)return `${n}/${AM(r[2]??"")}`}return null}s(qX,"canonicalKeyFromOutputPath");function t2(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}s(t2,"pathExistsForGenerate");function e2(t,e,r){let o=VX(t).split("#")[0]??"",{candidate:i}=pl(o),a=i,l=ul.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(JX(c,e))return [];let m=tm(c,e,r);if(m.length===0){let u=nt(e),f=Y(e,r);m=[Y(e,u.join(u.dirname(f),c)),Y(e,u.join(e,c))];}let p=[];for(let u of m)for(let f of em(e,u)){let g=Y(e,f);p.includes(g)||p.push(g);}return p}s(e2,"resolveMarkdownLinkTargets");function r2(t,e){let r=vR(e,t),n=[];for(let o of t){if(!HX(o.path))continue;let i=Y(e,nt(e).join(e,o.path)),a=nu(o.content),l=s((c,m)=>{if(zX(m,a))return;let p=e2(c,e,i);p.length!==0&&(p.some(u=>t2(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(KX)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(WX)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(r2,"findBrokenMarkdownLinks");function wM(t,e,r={}){let n=r2(t,e);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=qX(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);YX(c.generatePath)||p?a.push(c):i.push(c);}if(a.length>0){let c=a.map(m=>` ${m.generatePath} (${m.target}): "${m.rawLink}" \u2192 not found`);y.warn(`Third-party content contains ${a.length} broken local link${a.length===1?"":"s"} (warning only; outputs from installed packs and skill subtrees are treated as advisory):
|
|
184
|
+
${c.join(`
|
|
185
|
+
`)}`);}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
|
+
${l.join(`
|
|
173
187
|
`)}
|
|
174
|
-
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(KF,"validateGeneratedMarkdownLinks");mo();var WF="AGENTS.md";function BF(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(BF,"statusRank");function rJ(t,e){return BF(e.status)<=BF(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}s(rJ,"mergeDuplicateMetadata");function vd(t){return t.trim()}s(vd,"trimmedContent");function oJ(t,e){if(!t.path.endsWith(WF)||t.path!==e.path)return null;let r=vd(t.content),o=vd(e.content);if(!r||!o)return null;let n=r.includes(o),i=o.includes(r);return n===i?null:n?t:e}s(oJ,"richerAgentsResult");function nJ(t,e){if(!t.path.endsWith(WF)||t.path!==e.path)return null;let r=t.target===_g?t:e.target===_g?e:null,o=r===t?e:t;if(!r)return null;let n=vd(r.content).length,i=vd(o.content).length;return n===i?null:n>i?r:o}s(nJ,"richerCodexAgentsResult");function Gd(t){let e=[];for(let r of t){let o=e.findIndex(i=>i.path===r.path);if(o===-1){e.push(r);continue}let n=e[o];if(n.content!==r.content){let i=oJ(n,r);if(i){e[o]=i;continue}let a=nJ(n,r);if(a){e[o]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${n.target} and ${r.target} produce different content.`)}e[o]=rJ(n,r);}return e}s(Gd,"resolveOutputCollisions");function HF(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(HF,"refreshResultStatus");T();xt();je();function VF(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(VF,"computeStatus");function sJ(t,e,r){let o=h_(t,e,r);if(o!==null)return o;let n=ut(t);if(!n)return null;let i=r==="global"?n.globalSupport?.layout:n.project;return i?(o=i.rewriteGeneratedPath?i.rewriteGeneratedPath(e):e,o):null}s(sJ,"resolveGeneratedOutputPath");async function Dm(t,e,r,o,n,i){let a=sJ(e,r.path,n);if(a===null)return null;let c=await y(join(o,a)),l=t.findIndex(d=>d.path===a&&d.target===e),m=l>=0?t[l]:void 0,p=i?.mergeContent?.(c,m,r.content,a)??r.content;return l>=0&&t.splice(l,1),t.push({target:e,path:a,content:p,currentContent:c??void 0,status:VF(c,p)}),a}s(Dm,"emitGeneratedOutput");function K_(t,e,r){return {capability:ti(t,r)?.[e]??{level:"none"},scope:r}}s(K_,"featureContext");async function Sa(t,e,r,o,n,i,a,c){if(n)for(let l of e){let m=c(l);if(!m)continue;let p=K_(l,a,i);for(let d of m(r,p)){let g=await Dm(t,l,d,o,i);if(g===null)continue;let f=vt(l,i);if(f?.mirrorGlobalPath){let h=f.mirrorGlobalPath(g,e),O=h===null?[]:Array.isArray(h)?h:[h];for(let R of O){let E=await y(join(o,R));t.push({target:l,path:R,content:d.content,currentContent:E??void 0,status:VF(E,d.content)});}}}}}s(Sa,"generateFeature");Wg();xt();function iJ(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Qc(t)]:[]}s(iJ,"rootDecorationPaths");function JF(t,e,r="project"){return t.map(o=>{let n=vt(o.target,r);if(!n)return o;let i=iJ(n);if(i.length===0||!i.includes(o.path))return o;let c=o.path===n.rootInstructionPath&&n.renderPrimaryRootInstruction?n.renderPrimaryRootInstruction(e):o.content,l=vS(c);return l===o.content?o:{...o,content:l}})}s(JF,"decoratePrimaryRootInstructions");xt();je();Cu();function B_(t,e,r,o,n){let a=(Cr(t)??ut(t))?.mergeGeneratedOutputContent?.(e,r,o,n);if(a!=null)return a;let c=r?.content??e;return c!==null&&uw.includes(n)?dw(c,o):o}s(B_,"mergeOutputContent");async function YF(t,e,r,o,n){for(let i of e){let a=Vc(i,"permissions",void 0,n)??ut(i)?.generators.generatePermissions;if(a)for(let c of a(r))await Dm(t,i,c,o,n,{mergeContent:s((l,m,p,d)=>B_(i,l,m,p,d),"mergeContent")});}}s(YF,"generatePermissionsFeature");async function XF(t,e,r,o,n,i){for(let a of e){let c=Vc(a,"hooks",i,n)??ut(a)?.generators.generateHooks;if(!c)continue;let l=K_(a,"hooks",n),m=[...c(r,l)],d=(Cr(a)??ut(a))?.postProcessHookOutputs;d&&(m=[...await d(o,r,m)]);for(let g of m)await Dm(t,a,g,o,n,{mergeContent:s((f,h,O,R)=>B_(a,f,h,O,R),"mergeContent")});}}s(XF,"generateHooksFeature");async function ZF(t,e,r,o,n){for(let i of e){let c=(Cr(i)??ut(i))?.emitScopedSettings;if(!c)continue;let l=c(r,n);if(l.length!==0)for(let m of l)await Dm(t,i,m,o,n,{mergeContent:s((p,d,g,f)=>B_(i,p,d,g,f),"mergeContent")});}}s(ZF,"generateScopedSettingsFeature");async function Or(t){let{config:e,canonical:r,projectRoot:o,scope:n="project",targetFilter:i}=t,a=[...e.targets,...e.pluginTargets??[]],c=i?a.filter(J=>i.includes(J)):a;function l(J,Y){return Vc(J,Y,e,n)}s(l,"resolveGen");let m=e.features.includes("rules"),p=e.features.includes("commands"),d=e.features.includes("agents"),g=e.features.includes("skills"),f=e.features.includes("mcp"),h=e.features.includes("permissions"),O=e.features.includes("hooks"),R=e.features.includes("ignore"),E=[];await Sa(E,c,r,o,m,n,"rules",J=>l(J,"rules")),await Sa(E,c,r,o,p,n,"commands",J=>l(J,"commands")),await Sa(E,c,r,o,d,n,"agents",J=>l(J,"agents")),await Sa(E,c,r,o,g,n,"skills",J=>l(J,"skills")),await Sa(E,c,r,o,f,n,"mcp",J=>l(J,"mcp")),h&&await YF(E,c,r,o,n),O&&await XF(E,c,r,o,n,e),await Sa(E,c,r,o,R,n,"ignore",J=>l(J,"ignore"));let A=new Set(e.features);for(let J of c){let q=(Cr(J)??ut(J))?.globalSupport?.scopeExtras;if(q){let Ft=await q(r,o,n,A);E.push(...Ft);}}(f||R||O||d||h)&&await ZF(E,c,r,o,n);let F=JF(E,r,n),v=aJ(F,n),G=UF(F,r,e,o,n,c,v);return KF(G,o),Gd(G.map(HF))}s(Or,"generate");function aJ(t,e){let r=new Map;function o(a){let c=r.get(a);if(c)return c;let l=vt(a,e),m=new Set;if(l?.rootInstructionPath){m.add(l.rootInstructionPath);for(let p of Qc(l))m.add(p);}return r.set(a,m),m}s(o,"rootPathsFor");let n=new Map;for(let a of t){if(!o(a.target).has(a.path))continue;let c=n.get(a.path)??new Set;c.add(a.target),n.set(a.path,c);}let i=new Set;for(let[a,c]of n)c.size>1&&i.add(a);return i}s(aJ,"computeSharedRootInstructionPaths");ms();ft();T();mn();var RJ=6e4,SJ=30,CJ=200,EJ=2e3;async function sv(t,e={}){let r=e.retries??SJ,o=e.retryDelayMs??CJ,n=e.staleMs??RJ;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await OJ(t);if(a)return a;let c=await LJ(t);if(c!=="young"&&AJ(c,n)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let l=c==="young"?null:c;throw new xa(t,wJ(l))}i++,await bJ(o);}}s(sv,"acquireProcessLock");async function OJ(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:iv()};await writeFile(e,JSON.stringify(r),"utf-8");let o=false,n=s(()=>{if(!o){o=true;try{rmSync(t,{recursive:!0,force:!0});}catch{}}},"signalHandler");return process.once("SIGINT",n),process.once("SIGTERM",n),process.once("exit",n),async()=>{o||(o=true,process.off("SIGINT",n),process.off("SIGTERM",n),process.off("exit",n),await rm$1(t,{recursive:true,force:true}).catch(()=>{}));}}s(OJ,"tryAcquire");async function LJ(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return TJ(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<EJ)return "young"}catch{}return null}}s(LJ,"inspectLock");function AJ(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==iv()?false:!kJ(t.pid)}s(AJ,"isStale");function kJ(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(kJ,"isProcessAlive");function wJ(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(wJ,"describeHolder");function TJ(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(TJ,"isLockMetadata");function iv(){return hostname()}s(iv,"getHostname");function bJ(t){return new Promise(e=>setTimeout(e,t))}s(bJ,"sleep");T();xt();async function av(t,e=t){let r=await readdir(t,{withFileTypes:true}),o=[];for(let n of r){let i=join(t,n.name);if(n.isDirectory()){o.push(...await av(i,e));continue}o.push(relative(e,i).replace(/\\/g,"/"));}return o}s(av,"listFiles");async function NJ(t,e,r){if(r.has(e))return;let o=join(t,e);await j(o)&&await rm$1(o,{recursive:true,force:true});}s(NJ,"removeIfStale");async function cv(t){let e=new Set(t.expectedPaths),r=new Set,o=t.scope??"project";for(let n of t.targets){let i=f_(n,o);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let c=join(t.projectRoot,a);if(await j(c))for(let l of await av(c))r.add(`${a}/${l}`.replace(/\/+/g,"/"));}}}for(let n of r)await NJ(t.projectRoot,n,e);}s(cv,"cleanupStaleGeneratedOutputs");function qc(t,e,r){let o=resolve(t),n=resolve(t,e);if(n===o||n.startsWith(`${o}${sep}`))return n;throw new Error(`Unsafe generated output path for ${r}: ${e}`)}s(qc,"ensurePathInsideRoot");_l();T();ft();async function V_(t,e){let r=await ls(t.canonicalDir),o=e.length>0?await Zc(e):{},n=await Nd(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await xd(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:ul(),checksums:r,extends:o,packs:n});try{await hg(Le(),join(t.configDir,".agentsmeshcache"));}catch(a){_.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(V_,"writeLockFile");async function Iv(t){let{mode:e,scope:r,dryRun:o,context:n,resolvedExtends:i,flags:a,root:c,options:l}=t;if(e==="check")return {exitCode:0,data:{scope:r,mode:e,files:[],summary:$d([])}};if(o||await V_(n,i),l.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(vm(),eI)),{renderMatrix:p}=await Promise.resolve().then(()=>(Mm(),rI)),d=await m(a,c);p(d,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:$d([])}}}s(Iv,"handleEmptyResults");function Rv(t,e){let r=t.filter(a=>a.status!=="skipped"),o=r.filter(a=>a.status!=="unchanged"),n=r.map(a=>({path:a.path,target:a.target,status:a.status}));return {exitCode:o.length===0?0:1,data:{scope:e,mode:"check",files:n,summary:$d(r)}}}s(Rv,"buildCheckResult");async function Sv(t){let{results:e,dryRun:r,scope:o,mode:n,context:i,activeTargets:a,resolvedExtends:c,flags:l,root:m,options:p}=t,d=r?null:await sv(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let O=qc(i.rootBase,h.path,h.target);await I(O,h.content);}await cv({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:o}),await V_(i,c);}}finally{d&&await d();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(vm(),eI)),{renderMatrix:O}=await Promise.resolve().then(()=>(Mm(),rI)),R=await h(l,m);O(R,{verbose:l.verbose===true});}let g=e.filter(h=>h.status!=="skipped"),f=g.map(h=>({path:h.path,target:h.target,status:h.status}));return {exitCode:0,data:{scope:o,mode:n,files:f,summary:$d(g)}}}s(Sv,"handleGenerateOrDryRun");function $d(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($d,"buildSummary");async function tl(t,e,r={}){if(t.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let o=e??process.cwd(),n=t.check===true,i=t["dry-run"]===true,a=t.force===true,c=t.global===true?"global":"project",l=t["refresh-cache"]===true||t["no-cache"]===true,m=t.targets,p=typeof m=="string"&&m?m.split(",").map(v=>v.trim()).filter(Boolean):void 0,d=n?"check":i?"dry-run":"generate",{config:g,context:f}=await Tt(o,c);await ce(g,o);let h=g.collaboration?.lock_features??[];if(g.collaboration?.strategy==="lock"&&!a&&h.length>0){let v=await Pd(f.canonicalDir);if(v!==null){let G=await ls(f.canonicalDir),J=Dd(v.checksums,G,h);if(J.length>0){_.error("Locked feature violation (strategy: lock). Modified files:");for(let Y of J)_.error(` ${Y}`);throw _.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:O,resolvedExtends:R}=await he(g,f.configDir,{refreshRemoteCache:l},f.canonicalDir),E=[...g.targets,...g.pluginTargets??[]];if(p){let v=p.filter(G=>!E.includes(G));if(v.length>0)throw new Error(`Unknown target(s) in --targets: ${v.join(", ")}. Available: ${E.join(", ")}`)}let A=p?E.filter(v=>p.includes(v)):E,F=await Or({config:g,canonical:O,projectRoot:f.rootBase,scope:c,targetFilter:p});return F.length===0?Iv({mode:d,scope:c,dryRun:i,context:f,resolvedExtends:R,flags:t,root:o,options:r}):n?Rv(F,c):Sv({results:F,dryRun:i,scope:c,mode:d,context:f,activeTargets:A,resolvedExtends:R,flags:t,root:o,options:r})}s(tl,"runGenerate");ft();function oI(t,e){return t==="global"?`~/${e}`:e}s(oI,"formatDisplayPath");function el(t){let{data:e}=t,{scope:r,mode:o,files:n}=e;if(n.length===0){_.info("No files to generate (no root rule or rules feature disabled)."),o==="check"&&_.success("Generated files are in sync.");return}if(o==="check"){let l=n.filter(m=>m.status!=="unchanged");if(l.length===0){_.success("Generated files are in sync.");return}for(let m of l)_.error(`[check] ${m.status} ${oI(r,m.path)} (${m.target})`);_.error("Generated files are out of sync. Run 'agentsmesh generate' to update them.");return}if(o==="dry-run"){for(let l of n)_.info(`[dry-run] ${l.status} ${oI(r,l.path)} (${l.target})`);return}for(let l of n)(l.status==="created"||l.status==="updated")&&_.success(`${l.status} ${oI(r,l.path)}`);let{created:i,updated:a,unchanged:c}=e.summary;i>0||a>0?_.info(`Generated: ${i} created, ${a} updated, ${c} unchanged`):_.info(`Nothing changed. (${c} unchanged)`);}s(el,"renderGenerate");T();xt();mo();var BJ=["codex-cli"];function Cv(){return kt.filter(t=>!BJ.includes(t))}s(Cv,"starterInitTargetIds");var WJ=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],HJ=Cv();function jd(t,e=HJ){let r=(t.length>0?t:e).map(n=>` - ${n}`).join(`
|
|
175
|
-
|
|
176
|
-
`);return `# yaml-language-server: $schema=https://unpkg.com/agentsmesh/schemas/agentsmesh.json
|
|
177
|
-
|
|
188
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(wM,"validateGeneratedMarkdownLinks");var n2=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function gf(t){return n2.some(e=>t.includes(e))}s(gf,"isUnderPacks");function bM(t){let e=new Set;for(let r of t.rules)if(gf(r.source)){let n=r.root?"_root":o2(r.source);n&&e.add(`rules/${n}`);}for(let r of t.agents)gf(r.source)&&e.add(`agents/${r.name}`);for(let r of t.commands)gf(r.source)&&e.add(`commands/${r.name}`);for(let r of t.skills)gf(r.source)&&e.add(`skills/${r.name}`);return e}s(bM,"buildPackOriginatedKeys");function o2(t){let r=t.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s(o2,"ruleNameFromSource");Rn();var DM="AGENTS.md";function PM(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(PM,"statusRank");function s2(t,e){return PM(e.status)<=PM(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}s(s2,"mergeDuplicateMetadata");function hf(t){return t.trim()}s(hf,"trimmedContent");var i2=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function TM(t){let e=t;for(let r of i2)e=e.replace(r,"");return e.trim().replace(/\n{2,}/g,`
|
|
189
|
+
|
|
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(Ic,"yamlSchemaDirective");function Da(t,e){let r=Ic(e);return u$.test(t)?t.replace(u$,r):`${r}${t}`}s(Da,"prependYamlSchemaDirective");function f$(t,e){let{$schema:r,...n}=t;return {$schema:d$(e),...n}}s(f$,"stampJsonSchemaField");var X2=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],Z2=p$();function Sf(t,e=Z2){let r=(t.length>0?t:e).map(o=>` - ${o}`).join(`
|
|
192
|
+
`),n=X2.map(o=>` - ${o}`).join(`
|
|
193
|
+
`);return `${Ic("agentsmesh")}version: 1
|
|
178
194
|
targets:
|
|
179
195
|
${r}
|
|
180
196
|
features:
|
|
181
|
-
${
|
|
182
|
-
`}s(
|
|
197
|
+
${n}
|
|
198
|
+
`}s(Sf,"buildConfig");var Cf=`---
|
|
183
199
|
root: true
|
|
184
200
|
description: "Project rules"
|
|
185
201
|
---
|
|
@@ -188,7 +204,7 @@ description: "Project rules"
|
|
|
188
204
|
|
|
189
205
|
Add your project-wide instructions here.
|
|
190
206
|
This file is always included in AI tool context and synced to all configured tools.
|
|
191
|
-
`,
|
|
207
|
+
`,eI=`---
|
|
192
208
|
description: "Example contextual rule \u2014 rename and customize"
|
|
193
209
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
194
210
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -197,14 +213,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
197
213
|
# Example Rule
|
|
198
214
|
|
|
199
215
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
200
|
-
`,
|
|
216
|
+
`,rI=`---
|
|
201
217
|
description: "Example command \u2014 rename and customize"
|
|
202
218
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
203
219
|
---
|
|
204
220
|
|
|
205
221
|
Describe the task for this command here.
|
|
206
222
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
207
|
-
`,
|
|
223
|
+
`,nI=`---
|
|
208
224
|
name: example-agent
|
|
209
225
|
description: "Example subagent \u2014 rename and customize"
|
|
210
226
|
# tools: [Read, Grep, Glob]
|
|
@@ -215,7 +231,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
215
231
|
|
|
216
232
|
Describe this agent's role and instructions here.
|
|
217
233
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
218
|
-
`,
|
|
234
|
+
`,oI=`---
|
|
219
235
|
name: example-skill
|
|
220
236
|
description: "Example skill \u2014 rename and customize"
|
|
221
237
|
---
|
|
@@ -224,7 +240,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
224
240
|
|
|
225
241
|
Describe the skill procedure here.
|
|
226
242
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
227
|
-
`,
|
|
243
|
+
`,sI=`{
|
|
228
244
|
"mcpServers": {
|
|
229
245
|
// agentsmesh self-serve MCP server \u2014 exposes your canonical config to AI agents.
|
|
230
246
|
// Lets agents introspect rules/commands/agents/skills and trigger generate.
|
|
@@ -251,7 +267,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
251
267
|
// }
|
|
252
268
|
}
|
|
253
269
|
}
|
|
254
|
-
`,
|
|
270
|
+
`,iI=`${Ic("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
255
271
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
256
272
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
257
273
|
#
|
|
@@ -264,7 +280,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
264
280
|
# - matcher: Edit|Write
|
|
265
281
|
# type: command
|
|
266
282
|
# command: npm test --passWithNoTests
|
|
267
|
-
`,
|
|
283
|
+
`,aI=`${Ic("permissions")}# Tool permission allow/deny lists
|
|
268
284
|
#
|
|
269
285
|
# allow:
|
|
270
286
|
# - Bash(npm run:*)
|
|
@@ -280,15 +296,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
280
296
|
allow: []
|
|
281
297
|
deny: []
|
|
282
298
|
ask: []
|
|
283
|
-
`,
|
|
299
|
+
`,lI=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
284
300
|
#
|
|
285
301
|
# node_modules/
|
|
286
302
|
# dist/
|
|
287
303
|
# .env*
|
|
288
304
|
# *.log
|
|
289
305
|
# coverage/
|
|
290
|
-
`,
|
|
291
|
-
# Personal overrides \u2014 NOT committed to git
|
|
306
|
+
`,g$=`${Ic("agentsmesh")}# Personal overrides \u2014 NOT committed to git
|
|
292
307
|
# Uncomment and customize for your local setup:
|
|
293
308
|
|
|
294
309
|
# targets:
|
|
@@ -306,27 +321,44 @@ ask: []
|
|
|
306
321
|
# overrides:
|
|
307
322
|
# claude-code:
|
|
308
323
|
# model: opus
|
|
309
|
-
`;
|
|
310
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"))),
|
|
324
|
+
`;w();Pt();function h$(t){let e=[];for(let r of bt)for(let n of iR(r.id,t))e.push({target:r.id,path:n});return e}s(h$,"collectDetectionPaths");function y$(t){let e=new Map;for(let{target:r,path:n}of h$(t)){let o=e.get(r)??[];o.push(n),e.set(r,o);}return [...e.entries()].map(([r,n])=>({id:r,paths:n}))}s(y$,"toolIndicators");y$("project");async function _$(t,e="project"){let r=[];for(let{id:n,paths:o}of y$(e))for(let i of o){let a=join(t,i);if(await $(a)){r.push(n);break}}return [...new Set(r)]}s(_$,"detectExistingConfigs");w();ot();function re(t,e){return join(t,e)}s(re,"ab");async function cI(t){return await $(t)?(await readdir(t,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(cI,"countMdFiles");async function q2(t){let e=re(t,"skills");if(!await $(e))return false;let r=await readdir(e,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await $(join(e,n.name,"SKILL.md")))return true;return false}s(q2,"hasAnyImportedSkill");async function mI(t){let e=re(t,"rules");await O(e),await I(join(e,"_root.md"),Cf),y.success("Created .agentsmesh/rules/_root.md"),await I(join(e,"_example.md"),eI),y.success("Created .agentsmesh/rules/_example.md");let r=re(t,"commands");await O(r),await I(join(r,"_example.md"),rI),y.success("Created .agentsmesh/commands/_example.md");let n=re(t,"agents");await O(n),await I(join(n,"_example.md"),nI),y.success("Created .agentsmesh/agents/_example.md");let o=re(t,join("skills","_example"));await O(o),await I(join(o,"SKILL.md"),oI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await I(re(t,"mcp.json"),sI),y.success("Created .agentsmesh/mcp.json"),await I(re(t,"hooks.yaml"),iI),y.success("Created .agentsmesh/hooks.yaml"),await I(re(t,"permissions.yaml"),aI),y.success("Created .agentsmesh/permissions.yaml"),await I(re(t,"ignore"),lI),y.success("Created .agentsmesh/ignore");}s(mI,"writeScaffoldFull");async function I$(t){let e=re(t,"rules"),r=await cI(e),n=join(e,"_root.md"),o=await $(n);await O(e),r===0?(await I(n,Cf),y.success("Created .agentsmesh/rules/_root.md"),await I(join(e,"_example.md"),eI),y.success("Created .agentsmesh/rules/_example.md")):o||(await I(n,Cf),y.success("Created .agentsmesh/rules/_root.md"));let i=re(t,"commands");await cI(i)===0&&(await O(i),await I(join(i,"_example.md"),rI),y.success("Created .agentsmesh/commands/_example.md"));let a=re(t,"agents");if(await cI(a)===0&&(await O(a),await I(join(a,"_example.md"),nI),y.success("Created .agentsmesh/agents/_example.md")),!await q2(t)){let u=re(t,join("skills","_example"));await O(u),await I(join(u,"SKILL.md"),oI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=re(t,"mcp.json");await $(l)||(await I(l,sI),y.success("Created .agentsmesh/mcp.json"));let c=re(t,"hooks.yaml");await $(c)||(await I(c,iI),y.success("Created .agentsmesh/hooks.yaml"));let m=re(t,"permissions.yaml");await $(m)||(await I(m,aI),y.success("Created .agentsmesh/permissions.yaml"));let p=re(t,"ignore");await $(p)||(await I(p,lI),y.success("Created .agentsmesh/ignore"));}s(I$,"writeScaffoldGapFill");Yt();var pI="agentsmesh.yaml",S$="agentsmesh.local.yaml",eZ=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],rZ=Object.fromEntries(bt.map(t=>[t.id,(e,r)=>t.generators.importFrom(e,{scope:r})])),C$=bt.filter(t=>t.globalSupport!==void 0).map(t=>t.id);function nZ(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(nZ,"isCoveredByExisting");async function oZ(t){let e=join(t,".gitignore"),r=await _(e)??"",n=new Set(r.split(`
|
|
325
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"))),o=eZ.filter(a=>!nZ(a,n));if(o.length===0)return false;let i=r.endsWith(`
|
|
311
326
|
`)||r===""?"":`
|
|
312
|
-
`;return await I(e,r+i+
|
|
327
|
+
`;return await I(e,r+i+o.join(`
|
|
313
328
|
`)+`
|
|
314
|
-
`),true}s(
|
|
315
|
-
`;await mkdir(dirname(e),{recursive:!0});let
|
|
316
|
-
`),false}}s(hI,"seedAgentsmeshMcpEntry");function Dv(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s(Dv,"mapResults");async function Nv(t,e){let r=e??process.cwd(),o=t.from;if(typeof o!="string"||!o)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let n=o.toLowerCase().trim(),i=t.global===true?"global":"project";if(wr(n)){let p=fl(r,i),g=await Kd(n).importFrom(p.rootBase,{scope:i});return g.length>0&&await hI(p.rootBase),{exitCode:0,data:{scope:i,target:n,files:Dv(g,p.rootBase)}}}let a,c;try{({config:a,context:c}=await Tt(r,i));}catch{throw new Error(`Unknown --from "${o}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${kt.join(", ")}.`)}await ce(a,r);let l=ut(n);if(!l)throw new Error(`Unknown --from "${o}". Supported: ${[...kt,...a.pluginTargets??[]].join(", ")}.`);let m=await l.generators.importFrom(c.rootBase,{scope:i});return m.length>0&&await hI(c.rootBase),{exitCode:0,data:{scope:i,target:n,files:Dv(m,c.rootBase)}}}s(Nv,"runImport");Oe();sn();function Bd(t){let e=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let o of t){if(o.status==="unchanged"){r.unchanged++;continue}if(o.status==="created"){r.new++;let n=createTwoFilesPatch(`${o.path} (current)`,`${o.path} (generated)`,"",o.content,void 0,void 0,{context:3});e.push({path:o.path,patch:n});continue}if(o.status==="updated"&&o.currentContent!==void 0){r.updated++;let n=createTwoFilesPatch(`${o.path} (current)`,`${o.path} (generated)`,o.currentContent,o.content,void 0,void 0,{context:3});e.push({path:o.path,patch:n});continue}}return {diffs:e,summary:r}}s(Bd,"computeDiff");function Wd(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s(Wd,"formatDiffSummary");ms();async function vv(t,e){let r=e??process.cwd(),o=t.global===true?"global":"project",n=t.targets,i=typeof n=="string"&&n?n.split(",").map(f=>f.trim()).filter(Boolean):void 0,{config:a,context:c}=await Tt(r,o);await ce(a,r);let{canonical:l}=await he(a,c.configDir,{},c.canonicalDir),m=await Or({config:a,canonical:l,projectRoot:c.rootBase,scope:o,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:d}=Bd(m);return {exitCode:0,data:{files:m.filter(f=>f.status!=="unchanged"&&f.status!=="skipped").map(f=>({path:f.path,target:f.target,status:f.status})),patches:p.map(f=>({path:f.path,patch:f.patch})),summary:{created:d.new,updated:d.updated,unchanged:d.unchanged,deleted:d.deleted}}}}s(vv,"runDiff");Oe();sn();T();je();_i();Et();var c1=[{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 Gv(t){let e=new Set(t.enabledFeatures),r=[];for(let o of c1)!e.has(o.featureFlag)||!o.hasContent(t.canonical)||xr(t.capabilities[o.capabilityKey]).level!=="none"||r.push(b(o.file,t.target,`${t.target} does not support ${o.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}s(Gv,"lintSilentFeatureDrops");Et();var l1=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function m1(t){let r=t.match(l1)?.groups?.path;return typeof r=="string"?r:null}s(m1,"extractScriptToken");function Mv(t){if(t.hasScriptProjection)return [];let e=t.canonical.hooks;if(!e)return [];let r=[];for(let o of Object.values(e))if(Array.isArray(o))for(let n of o){if(typeof n?.command!="string")continue;let i=m1(n.command);i&&r.push(b(".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(Mv,"lintHookScriptReferences");Et();function $v(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(b(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($v,"lintRuleScopeInversion");var p1=["node_modules",".git","dist","coverage",".agentsmesh"];async function u1(t){return (await N(t)).filter(o=>{let n=relative(t,o);return !p1.some(i=>n.includes(`/${i}/`)||n.startsWith(`${i}/`))}).map(o=>relative(t,o))}s(u1,"getProjectFiles");async function Hd(t,e,r,o,n={}){let i=n.scope??"project",a=[...t.targets,...t.pluginTargets??[]],c=o?a.filter(R=>o.includes(R)):a,l=t.features.includes("rules"),m=t.features.includes("commands"),p=t.features.includes("mcp"),d=t.features.includes("permissions"),g=t.features.includes("hooks"),f=[],h=i==="global"?[]:await u1(r);for(let R of c){let E=ut(R),A=wr(R)?Kd(R):E;A?.capabilities&&f.push(...Gv({target:R,capabilities:A.capabilities,canonical:e,enabledFeatures:t.features})),g&&f.push(...Mv({target:R,canonical:e,hasScriptProjection:E?.postProcessHookOutputs!==void 0})),l&&f.push(...$v({target:R,canonical:e,preservesManualActivation:E?.preservesManualActivation===true})),l&&A?.lintRules&&f.push(...A.lintRules(e,r,h,{scope:i})),E?.generators.lint&&f.push(...E.generators.lint(e));let F={scope:i};m&&A?.lint?.commands&&f.push(...A.lint.commands(e,F)),p&&A?.lint?.mcp&&f.push(...A.lint.mcp(e,F)),d&&A?.lint?.permissions&&f.push(...A.lint.permissions(e,F)),g&&A?.lint?.hooks&&f.push(...A.lint.hooks(e,F));}let O=f.some(R=>R.level==="error");return {diagnostics:f,hasErrors:O}}s(Hd,"runLint");ms();async function Uv(t,e){let r=e??process.cwd(),o=t.global===true?"global":"project",n=t.targets,i=typeof n=="string"&&n?n.split(",").map(d=>d.trim()).filter(Boolean):void 0,{config:a,context:c}=await Tt(r,o);await ce(a,r);let{canonical:l}=await he(a,c.configDir,{},c.canonicalDir),{diagnostics:m,hasErrors:p}=await Hd(a,l,c.configDir,i,{scope:o});return {exitCode:p?1:0,data:{diagnostics:m.map(d=>({level:d.level,file:d.file,target:d.target,message:d.message})),summary:{errors:m.filter(d=>d.level==="error").length,warnings:m.filter(d=>d.level==="warning").length}}}}s(Uv,"runLintCmd");ft();function Kv(t){let{data:e}=t;if(e.diagnostics.length===0){_.success("All checks passed.");return}let r=e.diagnostics.filter(a=>a.level==="error"),o=e.diagnostics.filter(a=>a.level==="warning");for(let a of r)_.error(`${a.file} (${a.target}): ${a.message}`);for(let a of o)_.warn(`${a.file} (${a.target}): ${a.message}`);let n=e.summary.errors,i=e.summary.warnings;_.info(`${n} error${n!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(Kv,"renderLint");ft();function Bv(t){let{data:e}=t;if(!e.hasLock){_.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(e.inSync){_.success("Lock file is in sync.");return}let r=new Set(e.lockedViolations);_.error("Conflict detected:");for(let o of e.extendsModified)_.error(` extend "${o}" was modified`);for(let o of e.modified){let n=r.has(o)?" [LOCKED]":"";_.error(` ${o} was modified${n}`);}for(let o of e.added){let n=r.has(o)?" [LOCKED]":"";_.error(` ${o} was added${n}`);}for(let o of e.removed){let n=r.has(o)?" [LOCKED]":"";_.error(` ${o} was removed${n}`);}_.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state.");}s(Bv,"renderCheck");ft();function Wv(t){let{data:e}=t;if(e.files.length===0){_.info(`Nothing to import from ${e.target}.`);return}for(let o of e.files)_.success(`${o.from} \u2192 ${o.to}`);let r=e.scope==="global"?" --global":"";_.info(`Imported ${e.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(Wv,"renderImport");ft();function Hv(t){let{summary:e}=t.data;if(e.created+e.updated+e.unchanged+e.deleted===0){_.info("No files to generate (no root rule or rules feature disabled).");return}for(let o of t.data.patches)process.stdout.write(o.patch);_.info(Wd({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(Hv,"renderDiff");ft();function zv(t){if(!t.data.hadConflict){_.info("No conflicts to resolve.");return}_.success("Lock file conflict resolved.");}s(zv,"renderMerge");vm();Mm();Oe();sn();vm();Mm();ft();var f1=300;function h1(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(h1,"normalizeWatchPath");function y1(t,e){let r=h1(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(y1,"shouldIgnoreWatchPath");function _1(t,e,r,o,n,i,a,c,l){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:o,skillsCount:n,mcpServerCount:i,permissionsCount:a,hooksCount:c,ignoreCount:l})}s(_1,"featureFingerprint");async function Jv(t,e,r={}){let o=e??process.cwd(),n=t.global===true?"global":"project",{context:i}=await Tt(o,n),a=[i.canonicalDir,join(i.configDir,"agentsmesh.yaml"),join(i.configDir,"agentsmesh.local.yaml")],c=null,l=null,m=false,p=null,d=s(async()=>{if(m)return;c=null;let{config:O,context:R}=await Tt(o,n),{canonical:E}=await he(O,R.configDir,{},R.canonicalDir),A=E.mcp?Object.keys(E.mcp.mcpServers).length:0,F=E.permissions?E.permissions.allow.length+E.permissions.deny.length:0,v=E.hooks?Object.values(E.hooks).reduce((Ft,Gt)=>Ft+(Array.isArray(Gt)?Gt.length:0),0):0,G=E.ignore.length,J=_1(O.features,E.rules.length,E.commands.length,E.agents.length,E.skills.length,A,F,v,G),Y=l!==null&&l!==J;if(l=J,m)return;let q=await tl(t,o,{printMatrix:false});if(el(q),!m){if(Y){let Ft=await Fm(t,o);Gm(Ft,{verbose:t.verbose===true});}else _.info("Regenerated.");r.onCycle?.({featuresChanged:Y});}},"run"),g=s(()=>{let O=d().catch(R=>{if(!m){let E=R instanceof Error?R.message:String(R);_.error(E);}}).finally(()=>{p===O&&(p=null);});p=O;},"scheduleRun"),f=s(()=>{m||(c&&clearTimeout(c),c=setTimeout(g,f1));},"schedule"),h=g1.watch(a,{ignoreInitial:true,usePolling:process.platform==="win32"});return h.on("all",(O,R)=>{y1(i.canonicalDir,R)||f();}),await new Promise((O,R)=>{h.once("ready",O),h.once("error",R);}),_.info(n==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=d(),await p,p=null,{stop:s(async()=>{m=true,c&&(clearTimeout(c),c=null),await h.close(),p&&await p;},"stop")}}s(Jv,"runWatch");Oe();np();async function zd(t){let{config:e,configDir:r,canonicalDir:o}=t,n=await Pd(o);if(n===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await ls(o),a=await va(e,r),c=a.length>0?await Zc(a):{},l=new Set(Object.keys(n.checksums)),m=new Set(Object.keys(i)),p=[],d=[],g=[];for(let E of l){let A=i[E];A===void 0?g.push(E):A!==n.checksums[E]&&p.push(E);}for(let E of m)l.has(E)||d.push(E);let f=new Set([...Object.keys(n.extends),...Object.keys(c)]),h=[];for(let E of f)c[E]!==n.extends[E]&&h.push(E);let O=Dd(n.checksums,i,e.collaboration?.lock_features??[]);return {inSync:p.length===0&&d.length===0&&g.length===0&&h.length===0,hasLock:true,modified:p,added:d,removed:g,extendsModified:h,lockedViolations:O}}s(zd,"checkLockSync");ms();async function Yv(t,e){let r=e??process.cwd(),o=t.global===true?"global":"project",{config:n,context:i}=await Tt(r,o);await ce(n,r);let a=await zd({config:n,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(Yv,"runCheck");Oe();T();np();var R1=".lock",S1="<<<<<<<";async function yI(t){let e=join(t,R1),r=await y(e);return r===null?false:r.includes(S1)}s(yI,"hasLockConflict");async function Zv(t,e,r){if(!await yI(t))throw new Error("No conflict to resolve.");let n=await ls(t),i=dirname(t),a=r?await va(r,i):[],c=a.length>0?await Zc(a):{},l=await Nd(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await xd(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:n,extends:c,packs:l});}s(Zv,"resolveLockConflict");async function Qv(t,e){let r=e??process.cwd(),o=t.global===true?"global":"project",{config:n,context:i}=await Tt(r,o),a=i.canonicalDir;return await yI(a)?(await Zv(a,ul(),n),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(Qv,"runMerge");Oe();T();_l();var O1=promisify(execFile);function Vd(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(Vd,"ensureNotFlag");async function _I(t){let{stdout:e}=await O1("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(_I,"runGit");async function qv(){try{return await _I(["--version"]),!0}catch{return false}}s(qv,"isGitAvailable");async function L1(t,e){Vd(t,"remote-url"),Vd(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],o;for(let n of r)try{let a=(await _I(["ls-remote",t,n])).split(`
|
|
317
|
-
`).map(
|
|
318
|
-
`).find(a=>a.trim().length>0);if(!n)throw new Error(`Could not resolve HEAD for ${e}`);let i=n.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 L1(e,r)}s(tG,"resolveRemoteRefForInstall");async function eG(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 tG(t.rawRef||"HEAD",e);if(t.kind==="github"){let c=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await Fa(c,"install",{cacheDir:Le(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:c,version:r}}if(t.kind==="gitlab"){let c=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await Fa(c,"install",{cacheDir:Le(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:c,version:r}}let o=r,i=`git+${(t.gitPlusBase??e).split("#")[0]}#${o}`;return {resolvedPath:(await Fa(i,"install",{cacheDir:Le(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(eG,"fetchInstallSource");async function rG(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await eG(t);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let o=r instanceof Error?r.message:String(r),n=new Error(`Failed to fetch from ${e}: ${o}. Check your network connection and try again.`);throw r instanceof Error&&(n.cause=r),n}}s(rG,"resolveInstallResolvedPath");function II(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean),o=r.indexOf("tree");if(o<2||o+1>=r.length)return null;let n=r[0],i=r[1],a=r[o+1],c=r.slice(o+2).join("/");return !n||!i||!a?null:{org:n,repo:i,ref:a,path:c||""}}catch{return null}}s(II,"parseGithubTreeUrl");function RI(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean),o=r.indexOf("blob");if(o<2||o+1>=r.length)return null;let n=r[0],i=r[1],a=r[o+1],c=r.slice(o+2).join("/");return !n||!i||!a||!c?null:{org:n,repo:i,ref:a,path:c}}catch{return null}}s(RI,"parseGithubBlobUrl");function SI(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean),o=r.indexOf("-");if(o<0||r[o+1]!=="tree")return null;let n=o+1;if(n+1>=r.length)return null;let i=r[n+1],a=r.slice(n+2).join("/"),c=r.slice(0,o);if(c.length<2)return null;let l=c[c.length-1],m=c.slice(0,-1).join("/");return !m||!l||!i?null:{namespace:m,project:l,ref:i,path:a||""}}catch{return null}}s(SI,"parseGitlabTreeUrl");function CI(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean),o=r.indexOf("-");if(o<0||r[o+1]!=="blob")return null;let n=o+1;if(n+1>=r.length)return null;let i=r[n+1],a=r.slice(n+2).join("/"),c=r.slice(0,o);if(c.length<2)return null;let l=c[c.length-1],m=c.slice(0,-1).join("/");return !m||!l||!i||!a?null:{namespace:m,project:l,ref:i,path:a}}catch{return null}}s(CI,"parseGitlabBlobUrl");var A1=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function EI(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||A1.has(r[1]))return null;let o=r[0],n=r[1];return {org:o,repo:n}}catch{return null}}s(EI,"parseGithubRepoUrl");function OI(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 o=r[r.length-1],n=r.slice(0,-1).join("/");return !n||!o?null:{namespace:n,project:o}}catch{return null}}s(OI,"parseGitlabRepoUrl");function LI(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(LI,"parseGitSshGithub");function AI(t){let e=t.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!e)return null;let o=e[1].replace(/\.git$/i,"").split("/").filter(Boolean);if(o.length<2)return null;let n=o[o.length-1];return {namespace:o.slice(0,-1).join("/"),project:n}}s(AI,"parseGitSshGitlab");T();var T1=/^[A-Za-z]:[\\/]/,b1=/^[A-Za-z]:\//;function oG(...t){return t.some(e=>e.includes("\\")||T1.test(e))?win32:posix}s(oG,"pathApiFor");function jm(t){return t.replace(/\\/g,"/")}s(jm,"toPosixPath");function $m(t){return jm(t).replace(/^\/+|\/+$/g,"")}s($m,"normalizeInstallPathField");function Jd(t){let e=jm(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||b1.test(e)?e:`./${e}`}s(Jd,"normalizeLocalSourceForYaml");function si(t){return {...t,source:t.source_kind==="local"?Jd(t.source):t.source,...t.path!==void 0?{path:$m(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>$m(e))}:{}}}s(si,"normalizePersistedInstallPaths");function nG(t,e,r){let o=oG(t,e),n=o.normalize(t),i=o.normalize(e),a=$m(r),c=`${o.sep}.agentsmesh${o.sep}`,l=n.indexOf(c);if(l>=0){let p=n.slice(0,l),d=n.slice(l+c.length),g=$m(d),f=jm(o.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||g.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Jd(f)}}let m=jm(o.relative(i,n))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:n,localSourceForYaml:Jd(m)}}s(nG,"localParsedFromAbsPath");async function kI(t,e,r){let o=t.trim(),n=r?.trim().replace(/\\/g,"/")??"";if(o.startsWith("git+")){let l=o.lastIndexOf("#"),m=l<0?o:o.slice(0,l),p=l<0?"HEAD":o.slice(l+1),d=m.slice(4);return {kind:"git",rawRef:p,gitPlusBase:d,gitRemoteUrl:d,pathInRepo:n}}if(o.startsWith("https://")||o.startsWith("http://")){let l=II(o)??RI(o);if(l)return {kind:"github",rawRef:l.ref,org:l.org,repo:l.repo,gitRemoteUrl:`https://github.com/${l.org}/${l.repo}.git`,pathInRepo:n||l.path};let m=EI(o);if(m)return {kind:"github",rawRef:"HEAD",org:m.org,repo:m.repo,gitRemoteUrl:`https://github.com/${m.org}/${m.repo}.git`,pathInRepo:n};let p=SI(o)??CI(o);if(p)return {kind:"gitlab",rawRef:p.ref,org:p.namespace,repo:p.project,gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:n||p.path};let d=OI(o);if(d)return {kind:"gitlab",rawRef:"HEAD",org:d.namespace,repo:d.project,gitRemoteUrl:`https://gitlab.com/${d.namespace}/${d.project}.git`,pathInRepo:n}}if(o.startsWith("git@github.com:")){let l=LI(o);if(!l)throw new Error(`Invalid GitHub SSH URL: ${o}`);return {kind:"github",rawRef:"HEAD",org:l.org,repo:l.repo,gitRemoteUrl:`https://github.com/${l.org}/${l.repo}.git`,pathInRepo:n}}if(o.startsWith("git@gitlab.com:")){let l=AI(o);if(!l)throw new Error(`Invalid GitLab SSH URL: ${o}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${l.namespace}/${l.project}.git`,pathInRepo:n}}if(o.startsWith("git@")){let l=o.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!l)throw new Error(`Invalid SSH git URL: ${o}`);let m=l[1],p=l[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${m}/${p}.git`,pathInRepo:n}}let i=o.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(i){let l=i[1],m=i[2];return {kind:"github",rawRef:i[3],org:l,repo:m,gitRemoteUrl:`https://github.com/${l}/${m}.git`,pathInRepo:n}}let a=o.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(a){let l=a[1],m=a[2];return {kind:"gitlab",rawRef:a[3],org:l,repo:m,gitRemoteUrl:`https://gitlab.com/${l}/${m}.git`,pathInRepo:n}}let c=resolve(e,o);if(!await j(c))throw new Error(`Path does not exist: ${c}`);return nG(c,e,n)}s(kI,"parseInstallSource");T();ft();pn();T();Ad();var sG=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(Da).min(1),pick:gl.optional(),target:ze.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Xc.optional()}),F1=z$1.object({version:z$1.literal(1),installs:z$1.array(sG).default([])});function v1(t,e){return t.length===e.length&&[...t].sort().every((r,o)=>r===[...e].sort()[o])}s(v1,"sameFeatures");function G1(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&v1(t.features,e.features)}s(G1,"sameInstallIdentity");function iG(t){return join(t,"installs.yaml")}s(iG,"manifestPath");async function wI(t){let e=await y(iG(t));if(e===null)return [];try{return F1.parse(parse(e)).installs.map(r=>si(r))}catch{return []}}s(wI,"readInstallManifest");async function aG(t,e){let r=si(e),n=(await wI(t)).filter(i=>i.name!==r.name&&!G1(i,r));n.push(r),await I(iG(t),stringify({version:1,installs:n.sort((i,a)=>i.name.localeCompare(a.name))}));}s(aG,"upsertInstallManifestEntry");function cG(t){return si(sG.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(cG,"buildInstallManifestEntry");async function $1(t){let e=await wI(t.canonicalDir);if(e.length===0){_.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let o of e){let n=join(t.canonicalDir,"packs",o.name);await j(n)||r.push(o);}if(r.length===0){_.info("All recorded packs are already installed.");return}for(let o of r)await t.reinstall(o);_.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}s($1,"syncInstalledPacks");async function lG(t){return t.sync?(await $1({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}s(lG,"maybeRunInstallSync");Ad();function mG(t){return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,explicitPath:typeof t.path=="string"?t.path:void 0,explicitTarget:typeof t.target=="string"?t.target.trim():void 0,explicitAs:typeof t.as=="string"?Xc.parse(t.as.trim()):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}s(mG,"readInstallFlags");x_();function Ca(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(Ca,"featuresFromCanonical");async function Yd(t){let{sliceRoot:e,implicitPick:r}=await Ed(t),o=await Od(e);return {canonical:o,features:Ca(o),implicitPick:r}}s(Yd,"discoverFromContentRoot");function pG(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(pG,"validateSkill");function uG(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(uG,"validateRule");function dG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(dG,"validateCommand");function gG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(gG,"validateAgent");function Ce(t){return basename(t.source).replace(/\.md$/i,"")}s(Ce,"ruleSlug");function U1(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(U1,"featuresFromImplicitPick");function ol(t,e){let{implicitPick:r}=e,o=e.scopedFeatures??U1(r);if(!r&&!o)return t;let n=new Set(o??[]),i={...t,mcp:!o||n.has("mcp")?t.mcp:null,permissions:!o||n.has("permissions")?t.permissions:null,hooks:!o||n.has("hooks")?t.hooks:null,ignore:!o||n.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(c=>a.has(c.name))};}else o&&!n.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(c=>a.has(Ce(c)))};}else o&&!n.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(c=>a.has(c.name))};}else o&&!n.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(c=>a.has(c.name))};}else o&&!n.has("agents")&&(i={...i,agents:[]});return i}s(ol,"narrowDiscoveredForInstallScope");T();Cd();T();M();var W1=new Set(["README.md","README.rst","README.txt","README","LICENSE","LICENSE.md","LICENSE.txt","LICENSE-MIT","LICENSE-APACHE","CONTRIBUTING.md","CHANGELOG.md","CODE_OF_CONDUCT.md","package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]),H1=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]);async function Xd(t){let e=await y(t);if(!e)return "";let{frontmatter:r}=w(e);return typeof r.name!="string"?"":r.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(Xd,"readSkillFrontmatterName");async function fG(t,e){await cp$1(t,e,{recursive:true,filter:s(r=>{let o=relative(t,r).replace(/\\/g,"/");if(o==="")return true;let n=o.split("/")[0];return !(H1.has(n)||!o.includes("/")&&W1.has(o))},"filter")});}s(fG,"cpFilteredSkill");async function X1(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await L(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup")}}s(X1,"createStageRoot");async function Z1(t,e){if((await stat(t)).isFile()){if(!t.toLowerCase().endsWith(".md"))throw new Error(`Manual install only supports .md files for this collection: ${t}`);await L(e),await cp$1(t,join(e,basename(t)));return}let o=(await N(t)).filter(i=>i.toLowerCase().endsWith(".md"));if(o.length===0)throw new Error(`No .md files found under ${t} for manual install.`);let n=new Map;await L(e);for(let i of o){let a=basename(i),c=n.get(a);if(c)throw new Error(`Manual install found duplicate file name "${a}" under ${t} (${c} and ${i}).`);n.set(a,i),await cp$1(i,join(e,a));}}s(Z1,"stageMarkdownCollection");async function hG(t,e,r){if(r.length===0)return false;let o=new Set(r),n=new Map;for(let i of await N(t)){if(!i.endsWith("/SKILL.md")&&!i.endsWith("\\SKILL.md"))continue;let a=dirname(i),c=basename(a);if(!o.has(c))continue;let l=n.get(c);if(l&&l!==a)throw new Error(`Manual skill replay found duplicate skill "${c}" under ${t} (${l} and ${a}).`);n.set(c,a);}if(n.size!==r.length)return false;await L(e);for(let i of r)await cp$1(n.get(i),join(e,i),{recursive:true});return true}s(hG,"stagePreferredSkills");async function Q1(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 n=basename(dirname(t)),i=join(e,n);await L(i),await cp$1(dirname(t),i,{recursive:true});return}if(await Ra(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await hG(t,e,r.preferredSkillNames??[]))return;let c=await Xd(join(t,"SKILL.md"))||basename(t),l=join(e,c);await L(e),await fG(t,l);return}if(await hG(t,e,r.preferredSkillNames??[]))return;await L(e);let n=await N(t),i=new Set;for(let a of n.filter(c=>c.endsWith("/SKILL.md")||c.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}.`)}s(Q1,"stageSkills");async function yG(t,e,r={}){let o=await X1();try{let n=join(o.discoveryRoot,".agentsmesh",e);return e==="skills"?await Q1(t,n,r):await Z1(t,n),o}catch(n){throw await o.cleanup(),n}}s(yG,"stageManualInstallScope");async function _G(t,e,r,o){let n=await yG(t,e,{preferredSkillNames:e==="skills"?o?.skills:void 0}),{canonical:i}=await Yd(n.discoveryRoot),a=ol(i,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:n.cleanup},narrowed:a,discoveredFeatures:Ca(a)}}s(_G,"resolveManualDiscoveredForInstall");pn();Mg();T();var q1=[{prefix:".gemini/commands",target:"gemini-cli"},{prefix:".github/instructions",target:"copilot"},{prefix:".github/copilot-instructions.md",target:"copilot"},{prefix:".github/copilot",target:"copilot"},{prefix:".github/prompts",target:"copilot"},{prefix:".github/skills",target:"copilot"},{prefix:".github/agents",target:"copilot"},{prefix:".github/hooks",target:"copilot"},{prefix:".claude/commands",target:"claude-code"},{prefix:".claude/rules",target:"claude-code"},{prefix:".claude/skills",target:"claude-code"},{prefix:".claude/agents",target:"claude-code"},{prefix:".cursor/commands",target:"cursor"},{prefix:".cursor/rules",target:"cursor"},{prefix:".cursor/agents",target:"cursor"},{prefix:".cursor/skills",target:"cursor"},{prefix:".continue/prompts",target:"continue"},{prefix:".continue/rules",target:"continue"},{prefix:".continue/skills",target:"continue"},{prefix:".junie/commands",target:"junie"},{prefix:".junie/rules",target:"junie"},{prefix:".junie/agents",target:"junie"},{prefix:".junie/skills",target:"junie"},{prefix:".kiro/steering",target:"kiro"},{prefix:".kiro/skills",target:"kiro"},{prefix:".kilo/commands",target:"kilo-code"},{prefix:".kilo/rules",target:"kilo-code"},{prefix:".kilo/skills",target:"kilo-code"},{prefix:".kilo/agents",target:"kilo-code"},{prefix:".kilocode/workflows",target:"kilo-code"},{prefix:".kilocode/rules",target:"kilo-code"},{prefix:".kilocode/skills",target:"kilo-code"},{prefix:".kilocodemodes",target:"kilo-code"},{prefix:".kilocodeignore",target:"kilo-code"},{prefix:".cline/skills",target:"cline"},{prefix:".clinerules/workflows",target:"cline"},{prefix:".windsurf/rules",target:"windsurf"},{prefix:".codex",target:"codex-cli"}];function tY(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(tY,"norm");function Qd(t){let e=tY(t),r=[...q1].sort((o,n)=>n.prefix.length-o.prefix.length);for(let{prefix:o,target:n}of r)if(e===o||e.startsWith(`${o}/`))return n}s(Qd,"targetHintFromNativePath");function bI(t,e){return Qd(t)===e}s(bI,"pathSupportsNativePick");function IG(t,e){if(!t||!e)return;let r=Qd(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(IG,"validateTargetMatchesPath");function RG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(RG,"extendPickHasArrays");T();T();Wt();async function CG(t,e){let r=join(t,...Me.split("/")),o=join(t,...e.split("/")),n=await N(o),i=[];for(let a of n){if(!/\.(toml|md)$/i.test(a))continue;let c=relative(r,a).replace(/\\/g,"/");if(c.startsWith("..")||c==="")continue;let m=c.replace(/\.(toml|md)$/i,"").split("/").filter(Boolean).join(":");m&&i.push(m);}return [...new Set(i)].sort()}s(CG,"inferGeminiCommandNamesFromFiles");Wt();rr();T();async function Ea(t){let e=await N(t),r=new Set;for(let o of e){if(basename(o)==="SKILL.md"){r.add(basename(dirname(o)));continue}!relative(t,o).replace(/\\/g,"/").includes("/")&&o.toLowerCase().endsWith(".md")&&r.add(basename(o,".md"));}return [...r].filter(Boolean).sort()}s(Ea,"skillNamesFromNativeSkillDir");T();Rr();async function EG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(Ys)){let o=await N(r),n=[...new Set(o.filter(i=>i.toLowerCase().endsWith(".prompt.md")).map(i=>basename(i,".prompt.md")))].sort();return n.length?{commands:n}:{}}if(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let o=await N(r),n=[...new Set(o.filter(i=>i.includes(".instructions.md")).map(i=>basename(i).replace(/\.instructions\.md$/i,"")))].sort();return n.length?{rules:n}:{}}if(e.startsWith(".github/instructions")){let o=await N(r),n=new Set;for(let a of o){let c=basename(a);c.toLowerCase().endsWith(".instructions.md")?n.add(c.replace(/\.instructions\.md$/i,"")):c.toLowerCase().endsWith(".md")&&n.add(basename(a,".md"));}let i=[...n].sort();return i.length?{rules:i}:{}}if(e.startsWith(".github/skills")){let o=await Ea(r);return o.length?{skills:o}:{}}if(e.startsWith(".github/agents")){let o=await N(r),n=[...new Set(o.filter(i=>i.toLowerCase().endsWith(".agent.md")).map(i=>basename(i,".agent.md")))].sort();return n.length?{agents:n}:{}}return {}}s(EG,"inferCopilotPickFromPath");async function Ke(t,e){let r=await N(t),o=e.toLowerCase();return [...new Set(r.filter(n=>n.toLowerCase().endsWith(o)).map(n=>basename(n,e)))].sort()}s(Ke,"mdNames");async function LG(t,e,r){let o=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),n=join(t,...o.split("/"));if(r==="gemini-cli"){if(o===Me||o.startsWith(`${Me}/`)){let i=await CG(t,o);return i.length?{commands:i}:{}}return {}}if(r==="claude-code"){if(o.startsWith(".claude/commands")){let i=await Ke(n,".md");return i.length?{commands:i}:{}}if(o.startsWith(".claude/rules")){let i=await Ke(n,".md");return i.length?{rules:i}:{}}if(o.startsWith(".claude/agents")){let i=await Ke(n,".md");return i.length?{agents:i}:{}}if(o.startsWith(".claude/skills/")){let a=o.replace(/^\.claude\/skills\/?/,"").split("/").filter(Boolean)[0];return a?{skills:[a]}:{}}return {}}if(r==="cursor"){if(o.startsWith(".cursor/rules")){let i=await Ke(n,".mdc");return i.length?{rules:i}:{}}if(o.startsWith(".cursor/commands")){let i=await Ke(n,".md");return i.length?{commands:i}:{}}if(o.startsWith(".cursor/agents")){let i=await Ke(n,".md");return i.length?{agents:i}:{}}if(o.startsWith(".cursor/skills")){let i=await Ea(n);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return EG(t,o);if(r==="windsurf"&&o.startsWith(".windsurf/rules")){let i=await Ke(n,".md");return i.length?{rules:i}:{}}if(r==="cline"){if(o.startsWith(Jt)){let i=await Ea(n);return i.length?{skills:i}:{}}if(o.startsWith(Eo)){let i=await Ke(n,".md");return i.length?{commands:i}:{}}return {}}if(r==="continue"){if(o.startsWith(".continue/rules")){let i=await Ke(n,".md");return i.length?{rules:i}:{}}if(o.startsWith(".continue/prompts")){let i=await Ke(n,".md");return i.length?{commands:i}:{}}if(o.startsWith(".continue/skills")){let i=await Ea(n);return i.length?{skills:i}:{}}return {}}if(r==="junie"){if(o.startsWith(".junie/commands")){let i=await Ke(n,".md");return i.length?{commands:i}:{}}if(o.startsWith(".junie/rules")){let i=await Ke(n,".md");return i.length?{rules:i}:{}}if(o.startsWith(".junie/agents")){let i=await Ke(n,".md");return i.length?{agents:i}:{}}if(o.startsWith(".junie/skills")){let i=await Ea(n);return i.length?{skills:i}:{}}return {}}if(r==="codex-cli"&&o.startsWith(".codex")){let i=await N(n),a=[...new Set(i.filter(c=>c.toLowerCase().endsWith(".md")).map(c=>basename(c,".md")))].sort();return a.length?{rules:a}:{}}return {}}s(LG,"inferImplicitPickFromNativePath");function AG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(AG,"isImplicitPickEmpty");T_();function Bm(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(Bm,"normalizePath");function mY(t,e){let r=Bm(t),o=Bm(e);return r===o||r.startsWith(`${o}/`)||o.startsWith(`${r}/`)}s(mY,"overlapsPath");function qd(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(qd,"addUnique");async function pY(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),o=s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup");try{return await cp$1(t,r,{recursive:!0}),{stageRoot:r,cleanup:o}}catch(n){throw await o(),n}}s(pY,"makeStageRoot");function uY(t,e){let r;for(let n of t){if(n.feature==="rules"&&n.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:qd(r?.rules,basename(n.toPath,".md"))};continue}if(n.feature==="commands"&&n.toPath.startsWith(".agentsmesh/commands/")){let i=Bm(relative(join(e,".agentsmesh","commands"),join(e,n.toPath)));r={...r,commands:qd(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(n.feature==="agents"&&n.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:qd(r?.agents,basename(n.toPath,".md"))};continue}if(n.feature==="skills"&&n.toPath.startsWith(".agentsmesh/skills/")){let a=Bm(relative(join(e,".agentsmesh","skills"),join(e,n.toPath))).split("/")[0];a&&(r={...r,skills:qd(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(uY,"buildPickFromResults");function dY(t,e,r,o){let n=join(e,...Bm(t).split("/")),i=r.filter(a=>mY(n,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${t}" for target "${o}".`);return {features:[...new Set(i.map(a=>a.feature))],pick:uY(i,e)}}s(dY,"scopeImportedResults");async function xI(t,e){let{stageRoot:r,cleanup:o}=await pY(t);try{let n=await wm(r,e);return {stageRoot:r,results:n,cleanup:o}}catch(n){throw await o(),n}}s(xI,"stageImportedNativeRepo");async function DI(t,e,r){let o=await xI(t,r);try{return {stageRoot:o.stageRoot,cleanup:o.cleanup,...dY(e,o.stageRoot,o.results,r)}}catch(n){throw await o.cleanup(),n}}s(DI,"stageNativeInstallScope");async function bG(t,e,r,o){let n=o.explicitTarget?.trim();n&&ze.parse(n);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");IG(n,i);let a=join(t,".agentsmesh"),c=await j(a),l=i?Qd(i):void 0,m=!c&&!n?await fp(t)??void 0:void 0;if(!n&&l&&m&&l!==m)throw new Error(`Install path suggests native layout "${l}" but auto-detect imported "${m}". Use --target ${l} for this path, or install from the repo root without a conflicting subtree path.`);let p=n??l??m,d=!!i&&!!p&&!i.startsWith(".agentsmesh");if(!c&&p){if(d){let A=await DI(t,i,p);return {discoveryRoot:A.stageRoot,implicitPick:A.pick,scopedFeatures:A.features,yamlTarget:p,importHappened:true,cleanup:A.cleanup}}let E=await xI(t,p);return {discoveryRoot:i?join(E.stageRoot,i):E.stageRoot,yamlTarget:p,importHappened:true,cleanup:E.cleanup}}let g;c?i?p&&bI(i,p)?g=t:g=e:g=t:g=e;let f,h,O;if(d&&p){let E=await DI(t,i,p);g=E.stageRoot,f=E.pick,h=E.features,O=E.cleanup;}else if(g===t&&i&&p&&bI(i,p)&&(f=await LG(t,i,p),AG(f)))throw new Error(`No installable native resources found under "${i}" for target "${p}".`);let R;return n?R=n:p&&(f&&RG(f)||(h?.length??0)>0)&&(R=p),{discoveryRoot:g,implicitPick:f,scopedFeatures:h,yamlTarget:R,importHappened:O!==void 0,cleanup:O}}s(bG,"prepareInstallDiscovery");async function PG(t,e,r,o){let n=await bG(t,e,r,{explicitTarget:o}),{canonical:i,implicitPick:a}=await Yd(n.discoveryRoot),c=a??n.implicitPick,l=ol(i,{implicitPick:c,scopedFeatures:n.scopedFeatures}),m=Ca(l);return {prep:n,discovered:i,implicitPick:c,narrowed:l,discoveredFeatures:m}}s(PG,"resolveDiscoveredForInstall");async function xG(t){return t.explicitAs?{implicitPick:void 0,...await _G(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick)}:PG(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget)}s(xG,"resolveInstallDiscovery");function sl(t){return t==="."||t===""?void 0:t}s(sl,"trimDot");function fY(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}s(fY,"markdownPick");async function NG(t){if(!t.as)return {pathInRepo:sl(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:sl(dirname(e)),pick:fY(t.as,e||t.contentRoot)};if(t.as==="skills"){if(r.isFile()&&basename(t.contentRoot)==="SKILL.md"){let o=e?dirname(e):dirname(t.contentRoot);return {pathInRepo:sl(dirname(o)),pick:{skills:[basename(o)]}}}if(r.isDirectory()){let o=e||basename(t.contentRoot),n=join(t.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(n)).isFile()){let a=await Xd(n);return {pathInRepo:sl(dirname(o)),pick:{skills:[a||basename(o)]}}}}catch{return {pathInRepo:sl(e)}}}}return {pathInRepo:sl(e)}}s(NG,"resolveManualInstallPersistence");sn();ft();async function an(t){return process.stdin.isTTY?new Promise(e=>{let r=FG.createInterface({input:process.stdin,output:process.stdout});r.question(`${t} (y/n) `,o=>{r.close();let n=o.trim().toLowerCase();e(n==="y"||n==="yes");});}):false}s(an,"confirm");function hY(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}s(hY,"hasArrayResources");function vG(t){return hY(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}s(vG,"hasInstallableResources");async function GG(t,e,r,o){let n=t.skills.map(c=>pG(c)),i=n.filter(c=>c.ok).map(c=>c.skill),a=n.filter(c=>!c.ok);if(!e&&!r&&o)for(let c of a)await an(`Include invalid skill "${c.skill.name}" anyway? (${c.reason}). You can fix it later.`)&&i.push(c.skill);else e&&(i=n.map(c=>c.skill));return r&&(i=n.filter(c=>c.ok).map(c=>c.skill)),i}s(GG,"resolveSkillPool");async function MG(t,e,r,o){let n=t.rules.map(c=>uG(c)),i=n.filter(c=>c.ok).map(c=>c.rule),a=n.filter(c=>!c.ok);if(!e&&!r&&o)for(let c of a)await an(`Include invalid rule "${Ce(c.rule)}" anyway? (${c.reason}). You can fix it later.`)&&i.push(c.rule);else e&&(i=n.map(c=>c.rule));return r&&(i=n.filter(c=>c.ok).map(c=>c.rule)),i}s(MG,"resolveRulePool");async function $G(t,e,r,o){let n=t.commands.map(c=>dG(c)),i=n.filter(c=>c.ok).map(c=>c.command),a=n.filter(c=>!c.ok);if(!e&&!r&&o)for(let c of a)await an(`Include invalid command "${c.command.name}" anyway? (${c.reason}). You can fix it later.`)&&i.push(c.command);else e&&(i=n.map(c=>c.command));return r&&(i=n.filter(c=>c.ok).map(c=>c.command)),i}s($G,"resolveCommandPool");async function jG(t,e,r,o){let n=t.agents.map(c=>gG(c)),i=n.filter(c=>c.ok).map(c=>c.agent),a=n.filter(c=>!c.ok);if(!e&&!r&&o)for(let c of a)await an(`Include invalid agent "${c.agent.name}" anyway? (${c.reason}). You can fix it later.`)&&i.push(c.agent);else e&&(i=n.map(c=>c.agent));return r&&(i=n.filter(c=>c.ok).map(c=>c.agent)),i}s(jG,"resolveAgentPool");async function UG(t,e){let r=e.skills.map(a=>a.name),o=e.rules.map(a=>Ce(a)),n=e.commands.map(a=>a.name),i=e.agents.map(a=>a.name);for(let a of e.skills)t.skills.some(c=>c.name===a.name)&&(await an(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(l=>l!==a.name)));for(let a of e.rules){let c=Ce(a);t.rules.some(l=>Ce(l)===c)&&(await an(`Rule "${c}" already exists in merged config. Add extend anyway?`)||(o=o.filter(m=>m!==c)));}for(let a of e.commands)t.commands.some(c=>c.name===a.name)&&(await an(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(n=n.filter(l=>l!==a.name)));for(let a of e.agents)t.agents.some(c=>c.name===a.name)&&(await an(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(i=i.filter(l=>l!==a.name)));return {skillNames:r,ruleSlugs:o,commandNames:n,agentNames:i}}s(UG,"resolveInstallConflicts");function KG(t,e){if(!t)return;let r={},o=t.skills?.filter(c=>e.skillNames.includes(c)),n=t.rules?.filter(c=>e.ruleSlugs.includes(c)),i=t.commands?.filter(c=>e.commandNames.includes(c)),a=t.agents?.filter(c=>e.agentNames.includes(c));return o&&o.length>0&&(r.skills=o),n&&n.length>0&&(r.rules=n),i&&i.length>0&&(r.commands=i),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}s(KG,"pickForSelectedResources");function yY(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}s(yY,"pathEndsWithName");function tg(t,e,r){return r!==1||e.length!==1?false:yY(t,e[0])}s(tg,"inferSingleNamePick");function BG(t){let{pathInRepo:e,implicitPick:r,preConflictCounts:o,selected:n}=t,i={},a=n.skillNames.length>0&&(!!r?.skills?.length||n.skillNames.length<o.skills||tg(e,n.skillNames,o.skills)),c=n.ruleSlugs.length>0&&(!!r?.rules?.length||n.ruleSlugs.length<o.rules||tg(e,n.ruleSlugs,o.rules)),l=n.commandNames.length>0&&(!!r?.commands?.length||n.commandNames.length<o.commands||tg(e,n.commandNames,o.commands)),m=n.agentNames.length>0&&(!!r?.agents?.length||n.agentNames.length<o.agents||tg(e,n.agentNames,o.agents));return a&&(i.skills=[...n.skillNames]),c&&(i.rules=[...n.ruleSlugs]),l&&(i.commands=[...n.commandNames]),m&&(i.agents=[...n.agentNames]),Object.keys(i).length?i:void 0}s(BG,"buildInstallPick");function WG(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(WG,"deriveInstallFeatures");function _Y(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}s(_Y,"isEmptyInstallSelection");function HG(t){let{selected:e,discoveredFeatures:r,preConflict:o}=t,n=s(c=>r.includes(c),"had"),i=n("skills")&&e.skillNames.length===0&&o.skills>0&&"skills"||n("rules")&&e.ruleSlugs.length===0&&o.rules>0&&"rules"||n("commands")&&e.commandNames.length===0&&o.commands>0&&"commands"||n("agents")&&e.agentNames.length===0&&o.agents>0&&"agents";if(i)throw new Error(`No ${i} selected to install.`);let a=r.some(c=>["mcp","permissions","hooks","ignore"].includes(c));if(_Y(e)&&!a)throw new Error("No resources selected to install.")}s(HG,"ensureInstallSelection");pn();function zG(t,e){if(t.find(o=>o.name===e.name&&o.source!==e.source))throw new Error(`Extends entry "${e.name}" already exists with a different source. Use --name to provide a different name.`)}s(zG,"assertExtendNameAvailable");function IY(t,e,r){if(r===void 0){if(!t)return;let n={...t};for(let i of ["skills","commands","rules","agents"])e.includes(i)&&delete n[i];return Object.keys(n).length?n:void 0}let o={...t};for(let n of ["skills","commands","rules","agents"]){if(!(n in r))continue;let i=r[n];if(i===void 0||i.length===0){delete o[n];continue}o[n]=[...new Set([...t?.[n]??[],...i])];}return Object.keys(o).length?o:void 0}s(IY,"mergePick");function VG(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}];let o=t[r],n=[...new Set([...o.features,...e.features])],i=IY(o.pick,e.features,e.pick);return t.map((a,c)=>c===r?{name:e.name,source:e.source,version:e.version??o.version,features:n,path:e.path!==void 0?e.path:o.path,pick:i,target:e.target??o.target}:a)}s(VG,"mergeExtendList");T();async function JG(t,e,r){let o=await y(t);if(o===null)throw new Error(`Missing config: ${t}`);let n=parse(o),i=VG(e.extends,r);n.extends=i;let a=stringify(n,{indent:2,lineWidth:0});await I(t,a.endsWith(`
|
|
329
|
+
`),true}s(oZ,"appendToGitignore");async function k$(t,e={}){let r=e.global===true?"global":"project",n=Ei(t,r),o=join(n.configDir,pI);if(await $(o))throw new Error(`Already initialized. ${pI} exists. Remove it first to re-init.`);let i=await _$(n.rootBase,r),a=r==="global"?i.filter(g=>C$.includes(g)):i,l=r==="global"?C$:void 0,c=[],m,p=0;if(a.length>0)if(e.yes){for(let g of a){let h=rZ[g];if(!h)continue;let R=await h(n.rootBase,r);for(let C of R)c.push({from:relative(n.rootBase,C.fromPath).replaceAll("\\","/"),to:C.toPath.replaceAll("\\","/")});}p=a.length,await I$(n.canonicalDir),m="gap-fill",await I(o,Sf(a,l));}else await mI(n.canonicalDir),m="full",await I(o,Sf([],l));else await mI(n.canonicalDir),m="full",await I(o,Sf([],l));let u=join(n.configDir,S$);await I(u,g$);let f=false;return r==="project"&&(f=await oZ(t)),{exitCode:0,data:{scope:r,configFile:pI,localConfigFile:S$,detectedConfigs:a,imported:c,importedToolCount:p,scaffoldType:m,gitignoreUpdated:f}}}s(k$,"runInit");ot();function E$(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(E$,"renderInit");Yt();Pt();var sZ=Object.fromEntries(bt.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function kf(t){return sZ[t]}s(kf,"getTargetCatalogEntry");se();fn();zc();var pZ={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function uZ(t){return t.mcpServers.agentsmesh!==void 0?false:(t.mcpServers.agentsmesh=pZ,true)}s(uZ,"injectAgentsmeshEntry");async function dI(t){let e=resolve(t,".agentsmesh/mcp.json");try{let r;try{r=await vr(e)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!uZ(r))return !1;let n=JSON.stringify(r,null,2)+`
|
|
330
|
+
`;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(NZ,"gitLsRemoteResolve");async function V$(t,e){bf(e,"remote-url");let r=t===""?"HEAD":t;if(bf(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await gI(["ls-remote",e,"HEAD"])).split(`
|
|
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(`
|
|
334
|
+
`);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=>zG(i,r,n)),isMarketplace:true}}s(BQ,"selectMarketplace");function KQ(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
|
+
`);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=>JG(i,r,n)),isMarketplace:false}}s(KQ,"selectMultipleCollections");fn();SR();function Ec(t){return t==="."||t===""?void 0:t}s(Ec,"trimDot");function HQ(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}s(HQ,"markdownPick");async function ZG(t){if(!t.as)return {pathInRepo:Ec(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:Ec(dirname(e)),pick:HQ(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:Ec(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 qd(o);return {pathInRepo:Ec(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Ec(e)}}}}return {pathInRepo:Ec(e)}}s(ZG,"resolveManualInstallPersistence");fo();ot();ot();async function vf(t,e,r){let n=t==="install"?"Pack is installed":"Uninstall is committed",o=e==="global"?" --global":"";try{let i=await _c(e==="global"?{global:!0}:{},r,{printMatrix:!1});Rc(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(vf,"runPostOperationGenerate");async function go(t){return process.stdin.isTTY?new Promise(e=>{let r=QG.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(go,"confirm");function zQ(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}s(zQ,"hasArrayResources");function qG(t){return zQ(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}s(qG,"hasInstallableResources");async function tj(t,e,r,n){let o=t.skills.map(l=>Q$(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 go(`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(tj,"resolveSkillPool");async function ej(t,e,r,n){let o=t.rules.map(l=>q$(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 go(`Include invalid rule "${ne(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(ej,"resolveRulePool");async function rj(t,e,r,n){let o=t.commands.map(l=>tG(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 go(`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(rj,"resolveCommandPool");async function nj(t,e,r,n){let o=t.agents.map(l=>eG(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 go(`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(nj,"resolveAgentPool");async function oj(t,e){let r=e.skills.map(a=>a.name),n=e.rules.map(a=>ne(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 go(`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=ne(a);t.rules.some(c=>ne(c)===l)&&(await go(`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 go(`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 go(`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(oj,"resolveInstallConflicts");function sj(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(sj,"pickForSelectedResources");function VQ(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}s(VQ,"pathEndsWithName");function Mf(t,e,r){return r!==1||e.length!==1?false:VQ(t,e[0])}s(Mf,"inferSingleNamePick");function ij(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||Mf(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Mf(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Mf(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Mf(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(ij,"buildInstallPick");function aj(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(aj,"deriveInstallFeatures");function JQ(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}s(JQ,"isEmptyInstallSelection");function lj(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(JQ(e)&&!a)throw new Error("No resources selected to install.")}s(lj,"ensureInstallSelection");Ro();function cj(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(cj,"assertExtendNameAvailable");function YQ(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(YQ,"mergePick");function mj(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=YQ(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(mj,"mergeExtendList");w();async function pj(t,e,r){let n=await _(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),i=mj(e.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await I(t,a.endsWith(`
|
|
319
338
|
`)?a:`${a}
|
|
320
|
-
`);}s(
|
|
321
|
-
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await
|
|
322
|
-
`);return `sha256:${
|
|
339
|
+
`);}s(pj,"writeAgentsmeshWithNewExtend");ot();async function uj(t){let{configDir:e,config:r,entryArgs:n,dryRun:o}=t,i=qQ(n);if(cj(r.extends,i),o){y.info(`[dry-run] Would add extend:
|
|
340
|
+
${JSON.stringify(i,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await pj(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(uj,"writeInstallAsExtend");function qQ(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?Qe.parse(t.yamlTarget):void 0,as:t.as}}s(qQ,"toNewExtendEntry");w();w();var eq="pack.yaml";async function $f(t){let e=await v(t),r=[];for(let i of e.sort()){let a=relative(t,i).replace(/\\/g,"/");if(a===eq)continue;let l=await lf(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
341
|
+
`);return `sha256:${af(n)}`}s($f,"hashPackContent");w();var hn=".agentsmesh-install-manifest.json",nq=["pack.yaml",hn];z.object({name:z.string().min(1),source:z.string().min(1),installed_at:z.string().min(1),extends_id:z.string().nullable(),source_type:z.enum(["anthropic-skill-pack","canonical-agentsmesh","tool-native","unknown"]).nullable(),files:z.record(z.string().min(1),z.string().regex(/^sha256:[0-9a-f]{64}$/))});function oq(t,e){return relative(t,e).replaceAll("\\","/")}s(oq,"toForwardSlashRelative");async function Gf(t){let e=await Ya(t),r=[];for(let n of e){let o=oq(t,n);if(nq.includes(o))continue;let i=await cf(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(Gf,"hashPackFiles");w();var sq=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,iq=[{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 dj(t){if(t.trim().length===0)return null;let e=sq.exec(t);if(e)return e[1]??null;for(let{id:r,pattern:n}of iq)if(n.test(t))return r;return null}s(dj,"detectSpdxLicense");var lq=["LICENSE","COPYING","NOTICE","COPYRIGHT"],cq=["",".md",".txt",".rst"];async function fj(t){for(let e of lq)for(let r of cq){let n=await _(join(t,`${e}${r}`));if(n===null)continue;let o=dj(n);if(o!==null)return o}return null}s(fj,"detectLicenseInPackDir");async function uq(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(uq,"writeRules");async function dq(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(dq,"writeCommands");async function fq(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(fq,"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 hq(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(hq,"writePreservedRootFiles");async function yq(t,e){t.mcp!==null&&await I(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
323
342
|
`),t.permissions!==null&&await I(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await I(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await I(join(e,"ignore"),`${t.ignore.join(`
|
|
324
343
|
`)}
|
|
325
|
-
`);}s(
|
|
344
|
+
`);}s(yq,"writeSettings");function _q(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(_q,"validatePackName");async function Rq(t,e,r){let n=await Gf(t),o=f$({name:e.name,source:e.source,installed_at:e.installed_at,extends_id:r.extends_id??null,source_type:r.source_type??null,files:n},"install-manifest");await I(join(t,hn),`${JSON.stringify(o,null,2)}
|
|
345
|
+
`);}s(Rq,"writeInstallManifest");async function gj(t,e,r,n,o={},i=[]){_q(e);let a=join(t,`${e}.tmp`),l=join(t,`${e}.old`),c=join(t,e);await $(a)&&await rm(a,{recursive:true,force:true}),await $(l)&&await rm(l,{recursive:true,force:true});let m,p=false;try{await O(a),await uq(r,a),await dq(r,a),await fq(r,a),await gq(r,a),await yq(r,a),await hq(i,a);let u=await $f(a),f=await fj(a);m=gi({...n,content_hash:u,license:f}),await I(join(a,"pack.yaml"),Da(stringify(m),"pack")),await Rq(a,m,o),await mkdir(t,{recursive:!0}),await $(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(a,{recursive:true,force:true}).catch(()=>{}),u}return p&&await rm(l,{recursive:true,force:true}).catch(()=>{}),m}s(gj,"materializePack");fc();w();function $I(t,e){return [...new Set([...t,...e])]}s($I,"union");function Sq(t,e){if(t.path===void 0&&t.paths===void 0||e===void 0)return {path:void 0,paths:void 0};let n=$I(t.paths??(t.path?[t.path]:[]),[e]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(Sq,"mergePathScope");function Cq(t,e,r){let n={...t};for(let i of e)r&&r[i]!==void 0?n[i]=$I(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(Cq,"mergePick");async function kq(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(kq,"mergeRules");async function Eq(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(Eq,"mergeCommands");async function Lq(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(Lq,"mergeAgents");async function Oq(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(Oq,"mergeSkills");async function Aq(t,e){for(let r of t)await copyFile(r.absolutePath,join(e,r.relativePath));}s(Aq,"mergePreservedRootFiles");async function wq(t,e){t.mcp!==null&&await I(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
326
346
|
`),t.permissions!==null&&await I(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await I(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await I(join(e,"ignore"),`${t.ignore.join(`
|
|
327
347
|
`)}
|
|
328
|
-
`);}s(KY,"mergeSettings");async function QG(t,e,r,o,n,i){await MY(r,t),await $Y(r,t),await jY(r,t),await UY(r,t),await KY(r,t);let a=MI(e.features,o),c=GY(e.pick,o,n),l=vY(e,i?.path),m=await eg(t),p=new Date().toISOString(),d=si({...e,source:i?.source??e.source,...i?.version!==void 0?{version:i.version}:e.version!==void 0?{version:e.version}:{},features:a,pick:c,...i?.target!==void 0?{target:i.target}:e.target!==void 0?{target:e.target}:{},...l,...i?.as!==void 0?{as:i.as}:e.as!==void 0?{as:e.as}:{},updated_at:p,content_hash:m});return await I(join(t,"pack.yaml"),stringify(d)),d}s(QG,"mergeIntoPack");Tg();pn();ft();T();function WY(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(WY,"pathScope");function HY(t,e){let r=new Set(e.skillNames),o=new Set(e.ruleSlugs),n=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=>o.has(Ce(a))),commands:t.commands.filter(a=>n.has(a.name)),agents:t.agents.filter(a=>i.has(a.name))}}s(HY,"applySelection");async function qG(t){let{canonicalDir:e,packName:r,narrowed:o,selected:n,sourceForYaml:i,version:a,sourceKind:c,entryFeatures:l,pick:m,yamlTarget:p,pathInRepo:d,manualAs:g,renameExistingPack:f}=t,h=join(e,"packs"),O=HY(o,n),R=new Date().toISOString(),E=p!==void 0?ze.parse(p):void 0,A=await SF(h,i,{target:E,as:g,features:l}),F=r,v=l,G=m,J=d,Y;if(A){let q=A.packDir,Ft=A.meta;if(f&&A.name!==r){let io=join(h,r);if(await j(io))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(A.packDir,io),q=io,Ft={...A.meta,name:r};}let Gt=await QG(q,Ft,O,l,m,{source:i,...a!==void 0?{version:a}:{},...E!==void 0?{target:E}:{},...d?{path:d}:{},...g!==void 0?{as:g}:{}});F=Gt.name,v=Gt.features,G=Gt.pick,J=Gt.path,Y=Gt.paths,_.success(`Updated pack "${Gt.name}" in .agentsmesh/packs/.`);}else {if(await kd(join(h,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await ZG(h,r,O,{name:r,source:i,...a!==void 0&&{version:a},source_kind:c,installed_at:R,updated_at:R,features:l,...m!==void 0&&{pick:m},...E!==void 0&&{target:E},...WY(d),...g!==void 0&&{as:g}}),_.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await aG(e,cG({name:F,source:i,version:a,sourceKind:c,features:v,pick:G,target:E,path:J,paths:Y,as:g})),c!=="local"&&await QR(i);}s(qG,"installAsPack");function VY(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(VY,"sanitize");function JY(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 o=r[r.length-1].replace(/\.git$/i,"");return r.length>=2?`${r[r.length-2].replace(/\.git$/i,"")}-${o}`:o}catch{return "repo"}}s(JY,"gitUrlLastSegments");function tM(t,e,r){let o;if(t.kind==="local"){let c=(t.localRoot??"local").split(/[/\\]/).filter(Boolean);o=c[c.length-1]??"local";}else t.kind==="github"&&t.org&&t.repo?o=`${t.org}-${t.repo}`:t.kind==="gitlab"&&t.org&&t.repo?o=`${t.org.replace(/\//g,"-")}-${t.repo}`:t.gitRemoteUrl?o=JY(t.gitRemoteUrl):o="extend";e.featureHint?o=`${o}-${e.featureHint}`:o=`${o}-pack`;let n=VY(o)||"extend";if(!r.has(n))return n;let i=2;for(;r.has(`${n}-${i}`);)i++;return `${n}-${i}`}s(tM,"suggestExtendName");function eM(t){let{config:e,parsed:r,entryFeatures:o,nameOverride:n}=t,i=new Set(e.extends.map(a=>a.name));return n||tM(r,{featureHint:o.length===1?o[0]:void 0},i)}s(eM,"selectInstallEntryName");function rM(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let o=ol(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:o,discoveredFeatures:Ca(o)}}s(rM,"applyReplayInstallScope");function oM(t,e){let r=[];for(let o of t.skillNames)r.push({kind:"skill",name:o,path:e});for(let o of t.ruleSlugs)r.push({kind:"rule",name:o,path:e});for(let o of t.commandNames)r.push({kind:"command",name:o,path:e});for(let o of t.agentNames)r.push({kind:"agent",name:o,path:e});return r}s(oM,"buildInstalledList");function nM(t,e,r,o,n){let i=[];for(let a of t)n.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of e){let c=Ce(a);n.ruleSlugs.includes(c)||i.push({kind:"rule",name:c,reason:"conflict"});}for(let a of r)n.commandNames.includes(a.name)||i.push({kind:"command",name:a.name,reason:"conflict"});for(let a of o)n.agentNames.includes(a.name)||i.push({kind:"agent",name:a.name,reason:"conflict"});return i}s(nM,"buildSkippedList");async function sM(t){let{scope:e,force:r,dryRun:o,tty:n,useExtends:i,nameOverride:a,explicitAs:c,config:l,context:m,parsed:p,sourceForYaml:d,version:g,pathInRepo:f,persisted:h,replay:O,prep:R,implicitPick:E,narrowed:A,discoveredFeatures:F}=t,{narrowed:v,discoveredFeatures:G}=rM(A,F,O);if(!vG(v))throw new Error(E||R.scopedFeatures?"No resources match the install path or implicit selection (check pick names exist at that path).":"No supported resources found to install (skills, rules, commands, agents).");let J=await GG(v,r,o,n),Y=await MG(v,r,o,n),q=await $G(v,r,o,n),Ft=await jG(v,r,o,n),Gt={skills:J.length,rules:Y.length,commands:q.length,agents:Ft.length},{canonical:io}=await he(l,m.configDir,{},m.canonicalDir),Ht=!r&&!o&&n?await UG(io,{skills:J,rules:Y,commands:q,agents:Ft}):{skillNames:J.map(gs=>gs.name),ruleSlugs:Y.map(gs=>Ce(gs)),commandNames:q.map(gs=>gs.name),agentNames:Ft.map(gs=>gs.name)};HG({selected:Ht,discoveredFeatures:G,preConflict:Gt});let ao=O?.features??WG(G,Ht);if(ao.length===0)throw new Error("No features left to install after selection.");let Ut=KG(O?.pick,Ht)??h.pick??BG({pathInRepo:h.pathInRepo??f,implicitPick:E,preConflictCounts:Gt,selected:Ht}),wt=eM({config:l,parsed:p,entryFeatures:ao,nameOverride:a}),cn=oM(Ht,wt),Ar=nM(J,Y,q,Ft,Ht);if(i){if(await YG({configDir:m.configDir,config:l,entryArgs:{name:wt,source:d,version:g,features:ao,path:h.pathInRepo,pick:Ut,yamlTarget:R.yamlTarget},dryRun:o}),o)return {installed:cn,skipped:Ar}}else {if(o)return _.info(`[dry-run] Would install pack "${wt}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:cn,skipped:Ar};await qG({canonicalDir:m.canonicalDir,packName:wt,narrowed:v,selected:Ht,sourceForYaml:d,version:g,sourceKind:p.kind,entryFeatures:ao,pick:Ut,yamlTarget:R.yamlTarget,pathInRepo:h.pathInRepo,manualAs:c,renameExistingPack:a===""});}let ds=await tl(e==="global"?{global:true}:{},m.rootBase);return el(ds),ds.exitCode!==0&&_.warn(`Generate failed after install. Fix the issue and run agentsmesh generate${e==="global"?" --global":""}.`),{installed:cn,skipped:Ar}}s(sM,"executeRunInstallPoolsAndWrite");async function jI(t,e,r,o){let{sync:n,dryRun:i,force:a,useExtends:c,explicitPath:l,explicitTarget:m,explicitAs:p,nameOverride:d}=mG(t),g=t.global===true?"global":"project",f=e[0]?.trim();if(n){let{context:Ht}=await Tt(r,g),ao=[],Ut=[];if(await lG({sync:n,canonicalDir:Ht.canonicalDir,reinstall:s(async wt=>{let cn=wt.paths&&wt.paths.length>0?wt.paths:[wt.path];for(let Ar of cn){let ds=await jI({...a?{force:true}:{},...i?{"dry-run":true}:{},...g==="global"?{global:true}:{},name:wt.name,...wt.target?{target:wt.target}:{},...Ar?{path:Ar}:{},...wt.as?{as:wt.as}:{}},[wt.source],r,{features:wt.features,pick:wt.pick});ao.push(...ds.data.installed),Ut.push(...ds.data.skipped);}},"reinstall")}))return {exitCode:0,data:{source:"",mode:"sync",installed:ao,skipped:Ut,dryRun:i}}}if(!f)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let h=process.stdin.isTTY;if(!h&&!a&&!i)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:O,context:R}=await Tt(r,g),E=await kI(f,R.configDir,l);if(E.kind!=="local"&&!await qv())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:A,sourceForYaml:F,version:v}=await rG(E,f),G=E.pathInRepo.replace(/^\/+|\/+$/g,"");if(G){let Ht=normalize(G).replace(/\\/g,"/");if(Ht===".."||Ht.startsWith("../"))throw new Error(`Install --path "${E.pathInRepo}" escapes the source root. Path must stay within the source.`)}let J=G?join(A,G):A;if(!await j(J))throw new Error(`Install path does not exist: ${J}`);let Y=await NG({as:p,contentRoot:J,pathInRepo:G}),{prep:q,implicitPick:Ft,narrowed:Gt,discoveredFeatures:io}=await xG({resolvedPath:A,contentRoot:J,pathInRepo:G,explicitTarget:m,explicitAs:p,replayPick:o?.pick});try{let Ht=await sM({scope:g,force:a,dryRun:i,tty:h,useExtends:c,nameOverride:d,explicitAs:p,config:O,context:R,parsed:E,sourceForYaml:F,version:v,pathInRepo:G,persisted:Y,replay:o,prep:q,implicitPick:Ft,narrowed:Gt,discoveredFeatures:io});return {exitCode:0,data:{source:f,mode:"install",installed:Ht.installed,skipped:Ht.skipped,dryRun:i}}}finally{q.cleanup&&await q.cleanup();}}s(jI,"runInstall");async function iM(t,e,r){return jI(t,e,r)}s(iM,"runInstall");ft();function aM(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 o=[...new Set(e.installed.map(n=>n.kind))].map(n=>{let i=e.installed.filter(a=>a.kind===n).length;return `${i} ${n}${i>1?"s":""}`}).join(", ");_.success(`Installed ${o}.`);}if(e.skipped.length>0)for(let r of e.skipped)_.warn(`Skipped ${r.kind} "${r.name}": ${r.reason}`);}}s(aM,"renderInstall");H_();T();var BI="agentsmesh.yaml";async function WI(t){let e=join(t,BI),r=await y(e);return r===null?{}:parse(r)??{}}s(WI,"readScopedConfigRaw");async function lM(t,e){let r=join(t,BI),o=await y(r)??`version: 1
|
|
329
|
-
|
|
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(`
|
|
349
|
+
`)}
|
|
350
|
+
`);}s(Nj,"writeBanner");async function Fj(t,e,r){let n=[];for(let o of t){if(o.resolved.length===0)continue;if(e.bypass){Nj(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}Nj(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(Fj,"runBrokenLinkPrompt");var BI=["skills","agents","commands","rules"],KI={skills:"skill",agents:"agent",commands:"command",rules:"rule"},$j={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function va(t){return {skills:[],agents:[],commands:[],rules:[],aborted:t}}s(va,"emptySelection");function vj(t){return {skills:[...t.skills],agents:[...t.agents],commands:[...t.commands],rules:[...t.rules],aborted:false}}s(vj,"selectAll");function Mj(t,e,r){let n=[`Found in ${e}:`];for(let o of BI){let i=r[o];if(i.length===0)continue;let a=i.length===1?KI[o]:$j[o];n.push(` - ${i.length} ${a}`);}n.push(""),t.write(`${n.join(`
|
|
351
|
+
`)}
|
|
352
|
+
`);}s(Mj,"writeBanner");async function Kq(t,e,r){if(r.length===0)return {selected:[],aborted:false};let n=$j[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=KI[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(Kq,"walkType");function Wq(t){let e=null;for(let r of BI)for(let n of t[r]){if(e!==null)return null;e={kind:r,id:n};}return e}s(Wq,"findSingleEntity");async function Hq(t,e){let r=KI[e.kind],n=(await t.ask(`Install ${r} "${e.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...va(false),[e.kind]:[e.id]}:va(!(n===""||n==="n"))}s(Hq,"runSingleEntityPrompt");async function Gj(t,e,r){if(e.bypass)return vj(t);let n=t.skills.length+t.agents.length+t.commands.length+t.rules.length;if(n===0)return va(false);if(n===1){let a=Wq(t);if(a!==null)return Mj(r,e.packName,t),Hq(r,a)}Mj(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 vj(t);if(o==="n")return va(false);if(o!=="s")return va(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of BI){let{selected:l,aborted:c}=await Kq(r,a,t[a]);if(c)return va(true);i[a]=l;}return {...i,aborted:false}}s(Gj,"runBulkPrompt");ot();function Yq(t,e,r){let n=[];for(let o of Nf(t))o.destination===e&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(Yq,"buildLinkRewrites");function Uj(t,e,r){t.warn(`Broken link in ${e.entityKind} "${e.entityName}": ${r.link.path} (${r.classification})`);}s(Uj,"warnLink");function Xq(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(Xq,"allocateSupportingFileNames");function jj(t,e,r){return t.find(n=>n.entityKind===e&&n.entityName===r)}s(jj,"findEntity");async function Zq(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(Zq,"buildSupportingFiles");async function Qq(t,e,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=Xq(o),a=await Zq(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(...Yq(e.body,p.link.raw,f));}else Uj(n,r,p);let m=vG(e.body,l);return {...e,body:m,supportingFiles:a}}s(Qq,"applySkillDecision");async function Bj(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)?jj(r.brokenLinks,"skill",l.name):void 0;a.push(c?await Qq(e,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=jj(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)Uj(o,c,m);}return {...r,skills:a}}s(Bj,"applyBrokenLinkDecisions");var Ac=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(e){super(e),this.name="InstallAbortError";}};function t3(){return {ask:s(t=>Uf(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(t3,"defaultAdapter");function e3(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=>ne(e))}}s(e3,"bulkCandidatesFrom");function Kj(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(ne(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(Kj,"filterCanonical");function r3(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(r3,"discoveredFeaturesOf");async function n3(t){let e=t.adapter??t3(),r=await Fj(t.aggregate.brokenLinks,{bypass:t.bypass},e);if(r.aborted)throw new Ac("User aborted at broken-link prompt.");let n=[...r.decisions],o=await Bj({contentRoot:t.contentRoot,aggregate:t.aggregate,decisions:n,logger:y}),i=e3(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:Kj(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await Gj(i,{packName:t.displayName,bypass:t.bypass},e);if(l.aborted)throw new Ac("User aborted at bulk-select prompt.");let c=Kj(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:r3(c)}}s(n3,"runSkillPackPromptFlow");function o3(t){return basename(t)||"install source"}s(o3,"displayNameForContentRoot");async function Wj(t){if(!t.discovery.aggregate)return {aborted:false};try{let e=await n3({contentRoot:t.contentRoot,aggregate:t.discovery.aggregate,narrowed:t.discovery.narrowed,bypass:t.bypass,displayName:o3(t.contentRoot)});return {aborted:!1,narrowed:e.narrowed,discoveredFeatures:e.discoveredFeatures}}catch(e){if(e instanceof Ac)return y.warn(e.message),{aborted:true};throw e}}s(Wj,"runPromptFlowWithAbort");async function Hj(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,explicitAs:h,nameOverride:R,scope:C,sourceArg:S,replay:k}=t,P=process.stdin.isTTY,{prep:N,implicitPick:F}=e,{narrowed:W,discoveredFeatures:z}=e;try{let Q=await Wj({discovery:e,contentRoot:c,bypass:f||u||!P});if(Q.aborted)return {exitCode:130,data:{source:S,mode:"install",installed:[],skipped:[],dryRun:u}};if(W=Q.narrowed??W,z=Q.discoveredFeatures??z,z.length===0&&r.brokenResources.length>0){let At=r.brokenResources.map(wt=>` - ${wt.path}: ${wt.reason}`).join(`
|
|
353
|
+
`);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
|
|
354
|
+
${At}
|
|
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 at=await xj({scope:C,force:f,dryRun:u,tty:P,useExtends:g,nameOverride:R,explicitAs:h,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:k,prep:N,implicitPick:F,narrowed:W,discoveredFeatures:z,sourceType:e.layout?WG(e.layout):void 0});return {exitCode:0,data:{source:S,mode:"install",installed:at.installed,skipped:at.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{N.cleanup&&await N.cleanup();}}s(Hj,"runSinglePackInstall");async function zj(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(zj,"runInstallMarketplace");async function Vj(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 zj(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(Vj,"routePickerResult");Yt();w();ot();async function i3(t){let e=await ho(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 $(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(i3,"syncInstalledPacks");async function Jj(t){return t.sync?(await i3({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}s(Jj,"maybeRunInstallSync");async function Yj(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 Jj({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(Yj,"handleSync");function Xj(){return {brokenResources:[],subPackFailures:[]}}s(Xj,"createInstallReport");function c3(t,e){if(!t)return;let r=normalize(t).replace(/\\/g,"/");if(r===".."||r.startsWith("../"))throw new Error(`Install --path "${e}" escapes the source root. Path must stay within the source.`)}s(c3,"assertPathStaysInRepo");async function Zj(t){let e=await Yj(t);if(e)return e;let{projectRoot:r,replay:n,dryRun:o,force:i,useExtends:a,all:l,explicitPath:c,explicitTarget:m,explicitAs:p,nameOverride:u,scope:f,sourceArg:g}=t;if(!g)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let h=process.stdin.isTTY;if(!h&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:R,context:C}=await yt(r,f);await Wt(R,r);let S=await EI(g,C.configDir,c);if(S.kind!=="local"&&!await z$())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:k,sourceForYaml:P,version:N}=await Y$(S,g),F=S.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");c3(F,S.pathInRepo);let W=F?join(k,F):k;if(!await $(W))throw new Error(`Install path does not exist: ${W}`);let z=await ZG({as:p,contentRoot:W,pathInRepo:F}),Q=Xj(),at={onParseError:s((wt,oe)=>{Q.brokenResources.push({path:oe,kind:"frontmatter",reason:wt.message});},"onParseError")},At=await HG({resolvedPath:k,contentRoot:W,pathInRepo:F,explicitTarget:m,explicitAs:p,replayPick:n?.pick,parseOpts:at});if(At.layout&&!p&&!m&&!c){let wt=YG({layout:At.layout,sourceName:u||(S.org&&S.repo?`${S.org}-${S.repo}`:"source"),sourceForYaml:P,explicitPath:c,explicitAs:p,explicitTarget:m,all:l,force:i,tty:h}),oe=await Vj({pickerResult:wt,installReport:Q,sourceArg:g,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:u,replay:n,recurseInstall:t.recurseInstall});if(oe!==null)return oe}return Hj({discovery:At,installReport:Q,persisted:z,parsed:S,sourceForYaml:P,version:N,pathInRepo:F,contentRoot:W,config:R,context:C,dryRun:o,force:i,useExtends:a,explicitAs:p,nameOverride:u,scope:f,sourceArg:g,replay:n})}s(Zj,"runInstallLocked");async function _p(t,e,r,n){let{sync:o,dryRun:i,force:a,useExtends:l,all:c,explicitPath:m,explicitTarget:p,explicitAs:u,nameOverride:f}=H$(t),g=t.global===true?"global":"project",h=e[0]?.trim(),R;if(n===void 0){let{context:C}=await yt(r,g);R=await wf(C.canonicalDir);}try{return await Zj({args:e,projectRoot:r,replay:n,sync:o,dryRun:i,force:a,useExtends:l,all:c,explicitPath:m,explicitTarget:p,explicitAs:u,nameOverride:f,scope:g,sourceArg:h,recurseInstall:_p})}finally{await R?.();}}s(_p,"runInstall");async function Qj(t,e,r){return _p(t,e,r)}s(Qj,"runInstall");ot();function qj(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(qj,"renderInstall");Yt();fn();ot();function tU(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(tU,"detectDuplicates");function Bf(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(Bf,"buildPlan");function eU(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=tU(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=>Bf(m.name,m,t,e));for(let m of t.extends)r.has(m.name)||c.push(Bf(m.name,null,t,e));return {removals:c,skipped:[]}}let n=tU(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(Bf(a,l,t,e));continue}if(e.has(a)){o.push(Bf(a,null,t,e));continue}i.push(a);}return {removals:o,skipped:i}}s(eU,"planUninstall");w();w();fc();async function rU(t,e){let r=join(t,hn);if(await $(r))return null;let n=await fi(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 Gf(t),i={name:n.name,source:n.source,installed_at:n.installed_at,extends_id:null,source_type:null,files:o};return e.dryRun!==true&&await I(r,`${JSON.stringify(i,null,2)}
|
|
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(rU,"migrateLegacyManifest");w();var d3=["pack.yaml",hn];function f3(t,e){return relative(t,e).replaceAll("\\","/")}s(f3,"toForwardSlashRelative");async function nU(t,e){let r=await Ya(t),n=new Map;for(let i of r){let a=f3(t,i);d3.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 cf(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(nU,"detectModifiedFiles");function oU(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
|
+
`)}
|
|
358
|
+
`);}s(oU,"writeBanner");async function sU(t,e,r){if(t.modifications.length===0)return {action:"proceed"};if(e.bypass)return oU(r,t),{action:"delete-anyway"};oU(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(sU,"runModifiedFilesPrompt");async function g3(t){let e=await _(join(t,hn));if(e===null)return null;try{return JSON.parse(e).files??{}}catch{return null}}s(g3,"readManifestFiles");async function h3(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 $(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 rU(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 nU(n,a);if(r.keepPack||l.length===0)return {plan:t,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await sU({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(h3,"decideOne");async function aU(t,e,r){let n=[];for(let o of t){let i=await h3(o,e,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(aU,"gatherUninstallDecisions");w();w();async function lU(t,e,r){if(!e.extends.some(c=>c.name===r))return false;let n=await _(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),i=Array.isArray(o.extends)?o.extends:[],a=i.filter(c=>typeof c!="object"||c===null?true:c.name!==r);if(a.length===i.length)return false;o.extends=a;let l=stringify(o,{indent:2,lineWidth:0});return await I(t,l.endsWith(`
|
|
359
|
+
`)?l:`${l}
|
|
360
|
+
`),true}s(lU,"removeAgentsmeshExtendByName");async function cU(t){let{plan:e,canonicalDir:r,configPath:n,config:o}=t,i=false;e.packDir!==null&&await $(e.packDir)&&(await rm(e.packDir,{recursive:true}),i=true);let a=await Oj(r,e.name),l=false;e.extendsEntry!==null&&(l=await lU(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(cU,"applyUninstall");function C3(t,e){return relative(t,e).replaceAll("\\","/")}s(C3,"toForwardSlashRel");function WI(t){return t.map(e=>({name:e,reason:"not found in installs.yaml"}))}s(WI,"buildSkipped");function mU(t,e,r){return t.plan.manifestEntry===null?null:C3(e,join(r,t.plan.name))}s(mU,"packPathFor");function pU(t,e,r){return t.map(n=>({name:n.plan.name,pack_path:mU(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(pU,"previewEntries");function uU(t,e,r,n){let o=t.action==="keep-modified"||!e.packDirRemoved;return {name:e.name,pack_path:mU(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(uU,"appliedEntry");function k3(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(k3,"parseNames");function E3(){return {ask:s(t=>Uf(t),"ask"),write:s(t=>process.stdout.write(t),"write")}}s(E3,"defaultAdapter");async function Kf(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=k3(e),f=t.json===true;function g(S){return f||y.error(S),{exitCode:1,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}}}if(s(g,"validationFailure"),!i&&u.length===0)return g("Missing install name. Usage: agentsmesh uninstall <name>[,<name>...] [--all]");if(!p&&!a&&!l)return g("Non-interactive terminal: use --force or --dry-run for agentsmesh uninstall.");let{config:h,context:R}=await yt(r,o);await Wt(h,r);let C=await wf(R.canonicalDir);try{let S=await ho(R.canonicalDir),k=join(R.canonicalDir,"packs"),P=eU({names:u,all:i,keepPack:c,keepGenerated:m,installs:S,extends:h.extends,packsDir:k}),{decisions:N,aborted:F}=await aU(P.removals,k,{adapter:n.promptAdapter??E3(),warn:s(at=>y.warn(at),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(F)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let at of P.removals)for(let At of at.warnings)y.warn(At);if(l){for(let at of N)y.info(`[dry-run] Would uninstall pack "${at.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:pU(N,R.rootBase,k),skipped:WI(P.skipped),failed:[],dryRun:!0}}}let W=join(R.configDir,"agentsmesh.yaml"),z=[],Q=[];for(let at of N){let At=at.action==="keep-modified"?{...at.plan,packDir:null}:at.plan;try{let wt=await cU({plan:At,canonicalDir:R.canonicalDir,configPath:W,config:h});z.push(uU(at,wt,R.rootBase,k));}catch(wt){let oe=wt instanceof Error?wt.message:String(wt);Q.push({name:at.plan.name,reason:oe}),f||y.error(`Failed to uninstall "${at.plan.name}": ${oe}`);}}return !m&&z.length>0?await vf("uninstall",o,R.rootBase):m&&z.length>0&&y.warn("--keep-generated: target files derived from the removed pack(s) may be stale until the next generate."),{exitCode:Q.length>0?1:0,data:{scope:o,mode:"uninstall",removed:z,skipped:WI(P.skipped),failed:Q,dryRun:!1}}}finally{await C();}}s(Kf,"runUninstall");async function fU(t,e,r){return Kf(t,e,r)}s(fU,"runUninstall");ot();function gU(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(gU,"renderUninstall");Yt();w();fc();async function O3(t){let e=await _(join(t,hn));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(O3,"readPackManifestMeta");function A3(t,e){return relative(t,e).replaceAll("\\","/")}s(A3,"toForwardSlashRel");async function Wf(t,e){let r=t.global===true?"global":"project",n=Ei(e,r),o=await ho(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await O3(c),p=await fi(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,pack_path:A3(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(Wf,"runInstallsList");var w3=["list"];function hU(t){return {scope:t,subcommand:"list",installs:[]}}s(hU,"emptyData");async function yU(t,e,r){let n=t.global===true?"global":"project",o=e[0];return o===void 0||o===""?{exitCode:0,data:hU(n),showHelp:true}:o==="list"?Wf(t,r):{exitCode:2,data:hU(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${w3.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(yU,"runInstalls");ot();var Hf=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"INSTALLED"}];function b3(t){return {name:t.name,source:t.source,features:t.features.join(", "),license:t.license??"-",installed:t.installed_at?t.installed_at.slice(0,10):"-"}}s(b3,"toRow");function P3(t){let e={name:0,source:0,features:0,license:0,installed:0};for(let n of Hf)e[n.key]=n.label.length;for(let n of t)for(let o of Hf)e[o.key]=Math.max(e[o.key],n[o.key].length);let r=Hf.map(n=>n.label.padEnd(e[n.key])).join(" ");y.info(r);for(let n of t)y.info(Hf.map(o=>n[o.key].padEnd(e[o.key])).join(" "));}s(P3,"renderTable");function _U(t){if(t.error&&y.error(t.error),t.showHelp){Lp("installs");return}let{data:e}=t;if(e.installs.length===0){y.info("No installed packs.");return}P3(e.installs.map(b3));}s(_U,"renderInstalls");BR();w();var JI="agentsmesh.yaml";async function YI(t){let e=join(t,JI),r=await _(e);return r===null?{}:parse(r)??{}}s(YI,"readScopedConfigRaw");async function IU(t,e){let r=join(t,JI),n=await _(r)??`version: 1
|
|
361
|
+
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===e.id))return;let i={id:e.id,source:e.source};e.version!==void 0&&(i.version=e.version),o.plugins.push(i),await I(r,stringify(o));}s(IU,"writePluginEntry");async function SU(t,e){let r=join(t,JI),n=await _(r);if(n===null)return false;let o=parse(n)??{},i=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==e),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==e));let a=o.plugins.length<i;return a&&await I(r,stringify(o)),a}s(SU,"removePluginEntry");async function CU(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 T3(t,e.slice(1),r);case "list":return x3(r);case "remove":return D3(e.slice(1),r);case "info":return N3(e.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(CU,"runPlugin");async function T3(t,e,r){let n=e[0];if(!n)throw new yn("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)??F3(n);return await IU(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(T3,"runPluginAdd");async function x3(t){let r=(await YI(t)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await _f(o,t);i=l.descriptors.length>0?"\u2713":"\u2713 (0 descriptors)",a=l.descriptors.map(c=>c.id).join(", ");}catch{}n.push({id:o.id,package:o.source,version:o.version,status:i,targets:a});}return {exitCode:0,data:{subcommand:"list",plugins:n}}}s(x3,"runPluginList");async function D3(t,e){let r=t[0];if(!r)throw new yn("Usage: agentsmesh plugin remove <id>");let n=await SU(e,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(D3,"runPluginRemove");async function N3(t,e){let r=t[0];if(!r)throw new yn("Usage: agentsmesh plugin info <id>");let o=((await YI(e)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await _f(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(N3,"runPluginInfo");function F3(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(F3,"derivePluginId");ot();function kU(t){if(t.error&&y.error(t.error),t.showHelp){j3();return}let{data:e}=t;switch(e.subcommand){case "add":v3(e.id,e.package,e.version);break;case "list":M3(e.plugins);break;case "remove":$3(e.id,e.found);break;case "info":G3(e,t.exitCode);break}}s(kU,"renderPlugin");function v3(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(v3,"renderAdd");function M3(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(M3,"renderList");function $3(t,e){e?y.success(`Plugin '${t}' removed from agentsmesh.yaml`):y.warn(`Plugin '${t}' was not found in agentsmesh.yaml`);}s($3,"renderRemove");function G3(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(G3,"renderInfo");function j3(){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(j3,"printPluginHelp");w();Rn();function yi(t){return t.toUpperCase().replace(/-/g,"_")}s(yi,"toPrefix");function Rs(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}s(Rs,"toPascal");function XI(t){let e=yi(t.id),r=Rs(t.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
330
362
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
331
363
|
import { generateRules } from './generator.js';
|
|
332
364
|
import { importFrom${r} } from './importer.js';
|
|
@@ -429,7 +461,7 @@ export const descriptor = {
|
|
|
429
461
|
buildImportPaths: build${r}ImportPaths,
|
|
430
462
|
detectionPaths: [${e}_DIR],
|
|
431
463
|
} satisfies TargetDescriptor;
|
|
432
|
-
`}s(
|
|
464
|
+
`}s(XI,"TEMPLATE_INDEX");function ZI(t){return `import { describe, it, expect } from 'vitest';
|
|
433
465
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
434
466
|
import { generateRules } from '../../../../src/targets/${t.id}/generator.js';
|
|
435
467
|
|
|
@@ -458,7 +490,7 @@ describe('generateRules (${t.id})', () => {
|
|
|
458
490
|
expect(result).toHaveLength(0);
|
|
459
491
|
});
|
|
460
492
|
});
|
|
461
|
-
`}s(
|
|
493
|
+
`}s(ZI,"TEMPLATE_GENERATOR_TEST");function QI(t){let e=Rs(t.id);return `import { describe, it, expect } from 'vitest';
|
|
462
494
|
import { importFrom${e} } from '../../../../src/targets/${t.id}/importer.js';
|
|
463
495
|
|
|
464
496
|
describe('importFrom${e} (${t.id})', () => {
|
|
@@ -472,10 +504,10 @@ describe('importFrom${e} (${t.id})', () => {
|
|
|
472
504
|
expect(result).toHaveLength(0);
|
|
473
505
|
});
|
|
474
506
|
});
|
|
475
|
-
`}s(
|
|
507
|
+
`}s(QI,"TEMPLATE_IMPORTER_TEST");function qI(t){return `# ${t.displayName} Workspace
|
|
476
508
|
|
|
477
509
|
Follow the ${t.displayName} configuration files and keep changes small.
|
|
478
|
-
`}s(
|
|
510
|
+
`}s(qI,"TEMPLATE_FIXTURE_ROOT_MD");function EU(t){let e=yi(t.id);return `export const ${e}_TARGET = '${t.id}';
|
|
479
511
|
|
|
480
512
|
// Project-level paths
|
|
481
513
|
export const ${e}_DIR = '.${t.id}';
|
|
@@ -488,21 +520,21 @@ export const ${e}_GLOBAL_RULES_DIR = '~/.${t.id}/rules';
|
|
|
488
520
|
// Canonical paths
|
|
489
521
|
export const ${e}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
490
522
|
export const ${e}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
491
|
-
`}s(
|
|
523
|
+
`}s(EU,"TEMPLATE_CONSTANTS");function LU(t){let e=yi(t.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
492
524
|
import { ${e}_TARGET, ${e}_DIR } from './constants.js';
|
|
493
525
|
|
|
494
|
-
export interface ${
|
|
526
|
+
export interface ${Rs(t.id)}Output {
|
|
495
527
|
path: string;
|
|
496
528
|
content: string;
|
|
497
529
|
}
|
|
498
530
|
|
|
499
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
531
|
+
export function generateRules(_canonical: CanonicalFiles): ${Rs(t.id)}Output[] {
|
|
500
532
|
// TODO(agentsmesh-scaffold): implement generateRules for ${t.displayName}
|
|
501
533
|
void ${e}_TARGET;
|
|
502
534
|
void ${e}_DIR;
|
|
503
535
|
return [];
|
|
504
536
|
}
|
|
505
|
-
`}s(
|
|
537
|
+
`}s(LU,"TEMPLATE_GENERATOR");function OU(t){let e=Rs(t.id),r=yi(t.id);return `import type { ImportResult } from '../../core/types.js';
|
|
506
538
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
507
539
|
import { ${r}_TARGET } from './constants.js';
|
|
508
540
|
|
|
@@ -514,7 +546,7 @@ export async function importFrom${e}(
|
|
|
514
546
|
void ${r}_TARGET;
|
|
515
547
|
return [];
|
|
516
548
|
}
|
|
517
|
-
`}s(
|
|
549
|
+
`}s(OU,"TEMPLATE_IMPORTER");function AU(t){let e=yi(t.id);return `/** Lint rules for the ${t.id} target. */
|
|
518
550
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
519
551
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
520
552
|
import { ${e}_TARGET } from './constants.js';
|
|
@@ -532,7 +564,7 @@ export function lintRules(
|
|
|
532
564
|
target: ${e}_TARGET,
|
|
533
565
|
}));
|
|
534
566
|
}
|
|
535
|
-
`}s(
|
|
567
|
+
`}s(AU,"TEMPLATE_LINTER");function wU(t){return `/**
|
|
536
568
|
* ${t.displayName}-specific lint hooks.
|
|
537
569
|
*/
|
|
538
570
|
|
|
@@ -542,7 +574,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
|
542
574
|
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${t.displayName}
|
|
543
575
|
return [];
|
|
544
576
|
}
|
|
545
|
-
`}s(
|
|
577
|
+
`}s(wU,"TEMPLATE_LINT_HOOKS");function bU(t){let e=Rs(t.id),r=yi(t.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
546
578
|
import { ${r}_DIR } from '../../../targets/${t.id}/constants.js';
|
|
547
579
|
|
|
548
580
|
export async function build${e}ImportPaths(
|
|
@@ -554,14 +586,14 @@ export async function build${e}ImportPaths(
|
|
|
554
586
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
555
587
|
void ${r}_DIR;
|
|
556
588
|
}
|
|
557
|
-
`}s(
|
|
589
|
+
`}s(bU,"TEMPLATE_IMPORT_MAP");var B3=/^[a-z][a-z0-9-]*$/;async function PU(t){let{id:e,projectRoot:r,force:n=false}=t,o=t.displayName??e,i={id:e,displayName:o};if(!B3.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(Ft.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:EU(i)},{rel:`src/targets/${e}/index.ts`,content:XI(i)},{rel:`src/targets/${e}/generator.ts`,content:LU(i)},{rel:`src/targets/${e}/importer.ts`,content:OU(i)},{rel:`src/targets/${e}/linter.ts`,content:AU(i)},{rel:`src/targets/${e}/lint.ts`,content:wU(i)},{rel:`src/core/reference/import-maps/${e}.ts`,content:bU(i)},{rel:`tests/unit/targets/${e}/generator.test.ts`,content:ZI(i)},{rel:`tests/unit/targets/${e}/importer.test.ts`,content:QI(i)},{rel:`tests/e2e/fixtures/${e}-project/AGENTS.md`,content:qI(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await $(u)){c.push(u);continue}await I(u,p.content),l.push(u);}let m=["1. Run: pnpm catalog:generate (auto-discovers the new target \u2014 updates IDs, descriptors, and import-map barrel)",`2. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${e}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${e}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}s(PU,"writeTargetScaffold");async function xU(t,e,r){let n=e[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?K3(t,e.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(xU,"runTarget");async function K3(t,e,r){let n=e[0];if(!n)throw new yn("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 PU({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=>TU(l,r)),skipped:a.skipped.map(l=>TU(l,r)),postSteps:a.postSteps}}}s(K3,"runScaffold");function TU(t,e){return (t.startsWith(e)?t.slice(e.length+1):t).replaceAll("\\","/")}s(TU,"relativize");ot();function DU(t){if(t.error&&y.error(t.error),t.showHelp){W3();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(DU,"renderTarget");function W3(){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(W3,"printTargetHelp");se();Ai();w();Yt();fn();Ro();function Q3(t,e){return t===".agentsmesh"?false:!!(t.startsWith(".")||!e)}s(Q3,"shouldSymlink");function q3(t){let e=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(t,{withFileTypes:true});for(let n of r){if(!Q3(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(q3,"createTempProjectRoot");async function Vf(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=Pe(l),p=Pe(c);if(!m||!p)try{let{config:C}=await yt(r,"project");await Wt(C,r);}catch{let C=[];throw m||C.push(`--from "${i}"`),p||C.push(`--to "${a}"`),new Error(`Unknown ${C.join(" and ")}. Supported: ${Ft.join(", ")}.`)}let u=et(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${Ft.join(", ")}.`);if(!et(c))throw new Error(`Unknown --to "${a}". Supported: ${Ft.join(", ")}.`);let g=t["dry-run"]===true,h=g?"dry-run":"convert",R=q3(o);try{await u.generators.importFrom(R,{scope:n});let C=await Ee(R),S=ki.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),k=await Tr({config:S,canonical:C,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let F of k)if(F.status==="created"||F.status==="updated"){let W=yc(o,F.path,F.target);await I(W,F.content);}}let P=k.filter(F=>F.status!=="skipped"),N=P.map(F=>({path:F.path,target:F.target,status:F.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:N,summary:{created:P.filter(F=>F.status==="created").length,updated:P.filter(F=>F.status==="updated").length,unchanged:P.filter(F=>F.status==="unchanged").length}}}}finally{rmSync(R,{recursive:true,force:true});}}s(Vf,"runConvert");ot();function NU(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(NU,"renderConvert");var t8=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,G=class extends Error{static{s(this,"McpError");}code;details;constructor(e,r,n){if(t8.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 Jf(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(Jf,"redactAbsolutePaths");async function tS(t){let e=resolve(t.projectRoot,".agentsmesh",t.feature),r=resolve(e,t.relativePath);if(!r.startsWith(e+sep)&&r!==e)throw new G("PATH_TRAVERSAL",`path escapes ${t.feature} directory`);if(Buffer.byteLength(t.content,"utf8")>1048576)throw new G("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(tS,"safeWrite");var l8=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function Ri(t){let e=l8.exec(t);if(!e)return {frontmatter:{},body:t};let[,r,n]=e;return {frontmatter:parse(r)??{},body:n}}s(Ri,"parseMd");function wc(t,e){return Object.keys(t).length===0?e:`---
|
|
558
590
|
${stringify(t).trimEnd()}
|
|
559
591
|
---
|
|
560
592
|
|
|
561
|
-
${e}`}s(il,"serializeMd");var DX=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,NX={rules:"_root"};function ng(t){if(!DX.test(t)||t.includes(".."))throw new B("INVALID_NAME",`invalid name: ${t}`)}s(ng,"checkName");function sg(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(sg,"pathFor");function al(t){let{feature:e,frontmatterSchema:r,toSummary:o}=t,n=s(c=>resolve(c,".agentsmesh",e),"featureDir");async function i(c){try{return (await readdir(n(c),{withFileTypes:!0})).filter(m=>m.isFile()&&m.name.endsWith(".md")).map(m=>m.name)}catch{return []}}s(i,"listFiles");async function a(c){try{return await stat(c),!0}catch{return false}}return s(a,"exists"),{async list(c){let l=await i(c.projectRoot),m=[];for(let p of l){let d=p.replace(/\.md$/,""),g=await readFile(join(n(c.projectRoot),p),"utf8"),{frontmatter:f}=ci(g);m.push(o(d,f));}return m},async get(c,{name:l}){ng(l);let m=sg(c.projectRoot,e,l);try{let p=await readFile(m,"utf8"),{frontmatter:d,body:g}=ci(p);return {name:l,frontmatter:d,body:g}}catch(p){let d=p.code;throw d==="ENOENT"?new B("NOT_FOUND",`${e} "${l}" not found`):new B("IO_ERROR",`failed to read ${e}`,{errno:d})}},async create(c,{name:l,frontmatter:m,body:p,dry_run:d}){ng(l);let g=r.safeParse(m);if(!g.success)throw new B("VALIDATION_FAILED","invalid frontmatter",g.error.issues);let f=sg(c.projectRoot,e,l);if(await a(f))throw new B("ALREADY_EXISTS",`${e} "${l}" exists`);if((await i(c.projectRoot)).length>=1e3)throw new B("LIMIT_EXCEEDED",`${e} dir at ${1e3} entries`);let O=il(m,p);return d===true?{path:f,written:false}:(await YI({projectRoot:c.projectRoot,feature:e,relativePath:`${l}.md`,content:O}),{path:f,written:true})},async update(c,{name:l,frontmatter:m,body:p,merge:d,dry_run:g}){ng(l);let f=sg(c.projectRoot,e,l),h;try{let F=await readFile(f,"utf8");h=ci(F);}catch(F){let v=F.code;throw v==="ENOENT"?new B("NOT_FOUND",`${e} "${l}" not found`):new B("IO_ERROR",`failed to read ${e}`,{errno:v})}let O=m===void 0?h.frontmatter:d===true?{...h.frontmatter,...m}:m,R=r.safeParse(O);if(!R.success)throw new B("VALIDATION_FAILED","invalid frontmatter",R.error.issues);let E=p!==void 0?p:h.body,A=il(O,E);return g===true?{path:f,written:false}:(await YI({projectRoot:c.projectRoot,feature:e,relativePath:`${l}.md`,content:A}),{path:f,written:true})},async delete(c,{name:l,force:m,dry_run:p}){if(ng(l),NX[e]===l&&m!==true)throw new B("PROTECTED_FILE",`${e} "${l}" requires force: true`);let d=sg(c.projectRoot,e,l);if(!await a(d))throw new B("NOT_FOUND",`${e} "${l}" not found`);return p===true?{path:d,deleted:false}:(await rm$1(d),{path:d,deleted:true})}}}s(al,"createCanonicalHandlers");var FX=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(),kM=al({feature:"rules",frontmatterSchema:FX,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var vX=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),wM=al({feature:"commands",frontmatterSchema:vX,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var GX=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(),TM=al({feature:"agents",frontmatterSchema:GX,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var MX=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),$X=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")}),jX=z$1.object({}).strict();function ZI(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:jX,handler:s(o=>e.list(o),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:MX,handler:s((o,n)=>e.get(o,n),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${t}`,description:`Create a new ${t}`,inputSchema:$X,handler:s((o,n)=>e.create(o,n),"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((o,n)=>e.update(o,n),"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((o,n)=>e.delete(o,n),"handler")}]}s(ZI,"canonicalTools");var bM=[...ZI("rule",kM),...ZI("command",wM),...ZI("agent",TM)];async function xM(t){let e=resolve(t.projectRoot,".agentsmesh/skills",t.skillName),r=resolve(e,t.filePath);if(!r.startsWith(e+sep)&&r!==e)throw new B("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(o){throw o.code==="ENOENT"?new B("NOT_FOUND",`skill file not found: ${t.filePath}`):new B("IO_ERROR","failed to read skill file")}}s(xM,"safeRead");var VX=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,JX=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,vM=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Jm(t){if(!VX.test(t))throw new B("INVALID_NAME",`invalid skill name: ${t}`)}s(Jm,"checkName");function tR(t){if(!JX.test(t)||t.includes("..")||t.includes("//"))throw new B("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(tR,"checkSupportPath");async function cg(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new B("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(cg,"atomicWrite");var GM=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),Ym=s((t,e)=>resolve(GM(t),e),"skillDir"),Aa={async list(t){let e;try{e=(await readdir(GM(t.projectRoot),{withFileTypes:!0})).filter(o=>o.isDirectory()).map(o=>o.name);}catch{return []}let r=[];for(let o of e)try{let n=await readFile(resolve(Ym(t.projectRoot,o),"SKILL.md"),"utf8"),i=ci(n).frontmatter;r.push({name:o,description:i.description??null});}catch{}return r},async get(t,{name:e}){Jm(e);let r=Ym(t.projectRoot,e);try{let o=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:n,body:i}=ci(o),c=(await readdir(r)).filter(l=>l!=="SKILL.md").sort();return {name:e,frontmatter:n,body:i,supportingFiles:c}}catch(o){throw o.code==="ENOENT"?new B("NOT_FOUND",`skill "${e}" not found`):new B("IO_ERROR","failed to read skill")}},async getFile(t,{name:e,path:r}){return Jm(e),tR(r),{content:await xM({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Jm(e.name);let r=vM.safeParse(e.frontmatter);if(!r.success)throw new B("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let o=Ym(t.projectRoot,e.name),n=false;try{await stat(o),n=!0;}catch{}if(n)throw new B("ALREADY_EXISTS",`skill "${e.name}" exists`);let i=e.supportingFiles??{},a=Object.keys(i);if(a.forEach(tR),a.length+1>1e3)throw new B("LIMIT_EXCEEDED","supporting files exceed cap");if(e.dry_run===true)return {path:o,written:false,supportingFilesWritten:[]};let c=resolve(o,"SKILL.md");await cg(c,il(e.frontmatter,e.body));for(let[l,m]of Object.entries(i))await cg(resolve(o,l),m);return {path:o,written:true,supportingFilesWritten:a}},async update(t,e){Jm(e.name);let r=Ym(t.projectRoot,e.name),o;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");o=ci(p);}catch(p){throw p.code==="ENOENT"?new B("NOT_FOUND",`skill "${e.name}" not found`):new B("IO_ERROR","failed to read skill")}let n=e.frontmatter===void 0?o.frontmatter:e.merge===true?{...o.frontmatter,...e.frontmatter}:e.frontmatter,i=vM.safeParse(n);if(!i.success)throw new B("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=e.body!==void 0?e.body:o.body,c=e.supportingFiles??{};Object.keys(c).forEach(tR);let l=[],m=[];if(e.dry_run===true)return Object.entries(c).forEach(([p,d])=>(d===null?m:l).push(p)),{path:r,written:false,supportingFilesAffected:{written:l,deleted:m}};await cg(resolve(r,"SKILL.md"),il(n,a));for(let[p,d]of Object.entries(c)){let g=resolve(r,p);if(d===null)try{await rm$1(g),m.push(p);}catch{}else await cg(g,d),l.push(p);}return {path:r,written:true,supportingFilesAffected:{written:l,deleted:m}}},async delete(t,{name:e,dry_run:r}){Jm(e);let o=Ym(t.projectRoot,e);try{await stat(o);}catch{throw new B("NOT_FOUND",`skill "${e}" not found`)}return r===true?{path:o,deleted:false}:(await rm$1(o,{recursive:true}),{path:o,deleted:true})}};var YX=z$1.object({}).strict(),XX=z$1.object({name:z$1.string().describe("Item name")}),MM=[{name:"list_skills",description:"List skills",inputSchema:YX,handler:s(t=>Aa.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:XX,handler:s((t,e)=>Aa.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)=>Aa.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)=>Aa.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)=>Aa.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)=>Aa.delete(t,e),"handler")}];async function $M(t){if(t.filename!==void 0&&t.filename!=="agentsmesh.yaml")throw new B("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(t.content,"utf8")>1048576)throw new B("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($M,"safeConfigWrite");pn();Rl();async function Xm(t){try{return parse(await readFile(t,"utf8"))}catch(e){if(e.code==="ENOENT")return null;throw new B("IO_ERROR","failed to read yaml")}}s(Xm,"readYaml");async function ll(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new B("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(ll,"atomicWrite");var We={async getConfig(t){let e=await Xm(resolve(t.projectRoot,"agentsmesh.yaml"));if(e===null)throw new B("NO_PROJECT","agentsmesh.yaml missing");return e},async listMcpServers(t){let e=resolve(t.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await Tr(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Xm(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Xm(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 Xm(resolve(t.projectRoot,"agentsmesh.yaml"))??{},o={...r},n=s((l,m)=>{m!==void 0&&(o[l]=e.merge===true&&Array.isArray(r[l])?Array.from(new Set([...r[l],...m])):m);},"apply");n("targets",e.targets),n("features",e.features),e.conversions!==void 0&&(o.conversions=e.merge===true&&r.conversions!==void 0?{...r.conversions,...e.conversions}:e.conversions);let i=pi.safeParse(o);if(!i.success)throw new B("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(o);return e.dry_run===true?{path:resolve(t.projectRoot,"agentsmesh.yaml"),written:false}:{path:await $M({projectRoot:t.projectRoot,content:a,filename:e.filename}),written:true}},async addMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),o=await Tr(r).catch(()=>null)??{mcpServers:{}};if(o.mcpServers[e.name]!==void 0)throw new B("ALREADY_EXISTS",`server "${e.name}" exists`);return o.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await ll(r,JSON.stringify(o,null,2)+`
|
|
562
|
-
`),{path:r,written:true})},async updateMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),
|
|
563
|
-
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),
|
|
564
|
-
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),
|
|
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 vr(r).catch(()=>null);if(n===null||n.mcpServers[e.name]===void 0)throw new G("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 Tc(r,JSON.stringify(n,null,2)+`
|
|
595
|
+
`),{path:r,written:true})},async removeMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await vr(r).catch(()=>null);if(n===null||n.mcpServers[e.name]===void 0)throw new G("NOT_FOUND",`server "${e.name}" not found`);return delete n.mcpServers[e.name],e.dry_run===true?{path:r,removed:false}:(await Tc(r,JSON.stringify(n,null,2)+`
|
|
596
|
+
`),{path:r,removed:true})},async updatePermissions(t,e){let r=resolve(t.projectRoot,".agentsmesh/permissions.yaml"),n=await Sp(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 Tc(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 Tc(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 Tc(r,n.join(`
|
|
565
597
|
`)+`
|
|
566
|
-
`),{path:r,written:true})}};var u2=/[;&|`$<>!\\\r\n]/u,d2=/^[A-Za-z_][A-Za-z0-9_]*$/u,g2=/^[A-Za-z][A-Za-z0-9_-]*$/u,f2=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,KM=/[\r\n]/u;function h2(t){return z$1.string().min(1).max(512).refine(e=>!u2.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(h2,"noShellMeta");var oR=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).optional(),command:h2("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(d2,"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(g2,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).optional(),disabled:z$1.boolean().optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict(),y2=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"}),BM=z$1.string().max(256).refine(t=>!KM.test(t),{message:"hook matcher must not contain newlines"}),_2=z$1.object({matcher:BM,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"}),I2=z$1.object({matcher:BM,hooks:z$1.array(y2).min(1).max(50)}).strict(),R2=z$1.union([_2,I2]),WM=z$1.record(z$1.string().min(1).max(64),z$1.array(R2).max(100)),S2=z$1.string().min(1).max(256).refine(t=>!KM.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>f2.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),mg=z$1.array(S2).max(500);var Zm=z$1.object({}).strict(),C2=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Zm,handler:s(t=>We.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Zm,handler:s(t=>We.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Zm,handler:s(t=>We.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Zm,handler:s(t=>We.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Zm,handler:s(t=>We.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],E2=[{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)=>We.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:oR.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)=>We.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:oR,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>We.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)=>We.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:mg.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:mg.optional().describe("Denied tool patterns"),ask:mg.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)=>We.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:WM.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>We.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)=>We.updateIgnore(t,e),"handler")}],HM=[...C2,...E2];X_();mo();function O2(){return Object.fromEntries(kt.map(t=>[t,Object.fromEntries(Object.entries(fv).map(([e,r])=>[e,r[t]]))]))}s(O2,"buildTargetIndex");var zM=O2(),nR={async list(){return zM},async get(t){let e=zM[t.targetId];if(e===void 0)throw new B("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};mn();mn();rp();Oe();sn();ms();je();mo();async function sR(t,e){let r=ut(t);if(!r)throw new lo(t,{supported:[...kt,...yd().map(o=>o.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s(sR,"importFrom");async function ml(t,e={}){let r=e.scope??"project",{config:o,context:n}=await Tt(t,r);await ce(o,t);let{canonical:i}=await he(o,n.configDir,{refreshRemoteCache:e.refreshRemoteCache===true},n.canonicalDir);return {config:o,canonical:i,projectRoot:n.rootBase,scope:r,configDir:n.configDir,canonicalDir:n.canonicalDir}}s(ml,"loadProjectContext");async function iR(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return Hd(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(iR,"lint");async function aR(t){let e=await Or(t);return {...Bd(e),results:e}}s(aR,"diff");async function cR(t){return zd(t)}s(cR,"check");mn();sn();yi();rp();xt();je();Ct();T();function li(t){if(t instanceof B)throw t;if(t instanceof lo)throw new B("VALIDATION_FAILED",t.message);let e=t instanceof Error?t.message:String(t);throw /unknown.*--from|unknown.*--to|unknown target/i.test(e)?new B("VALIDATION_FAILED",e):/lock/i.test(e)?new B("LOCK_HELD","generate lock is held"):new B("IO_ERROR","engine failure",{reason:e})}s(li,"wrapEngineError");async function VM(t,e){if(e.dry_run===true)throw new B("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 sR(e.from,{root:t.projectRoot,scope:"project"});return {imported:r.length,files:r.map(o=>({fromPath:o.fromPath,toPath:o.toPath,feature:o.feature})),warnings:[],errors:[]}}catch(r){if(r instanceof lo)throw new B("VALIDATION_FAILED",`unknown target "${e.from}"`);let o=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(o))throw new B("VALIDATION_FAILED",o);li(r);}}s(VM,"importFromTarget");async function JM(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},o=await og(r,t.projectRoot);return {filesAffected:o.data.summary.created+o.data.summary.updated,dryRun:e.dry_run===!0,warnings:[],errors:[]}}catch(r){let o=r instanceof Error?r.message:String(r);if(/unknown.*--from|unknown.*--to|unknown target/i.test(o))throw new B("VALIDATION_FAILED",o);li(r);}}s(JM,"convert");async function w2(t,e){try{let r=await ml(t.projectRoot),o=e.targets&&e.targets.length>0?e.targets:void 0,i=(await Or({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:o})).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=qc(r.projectRoot,m.path,m.target);await I(p,m.content);}let c={};for(let m of a){let p=c[m.target]??{filesWritten:0};c[m.target]={filesWritten:p.filesWritten+1};}let l={filesWritten:a.length,byTarget:c,lockfileUpdated:!e.dry_run&&a.length>=0,errors:[],warnings:[]};return e.verbose===!0&&(l.files=i.map(m=>m.path)),l}catch(r){li(r);}}s(w2,"generate");async function T2(t,e){try{let r=await ml(t.projectRoot),o=await iR({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(e.severity?o.diagnostics.filter(i=>i.level===e.severity):o.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){li(r);}}s(T2,"lint");async function b2(t){try{let e=await ml(t.projectRoot),r=await cR({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){li(e);}}s(b2,"check");async function P2(t,e){try{let r=await ml(t.projectRoot),o=e.targets&&e.targets.length>0?e.targets:void 0,n=await aR({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:o});return {willCreate:n.summary.new,willModify:n.summary.updated,willDelete:n.summary.deleted}}catch(r){li(r);}}s(P2,"diff");var ka={generate:w2,lint:T2,check:b2,diff:P2,import:VM,convert:JM};var YM=z$1.object({}).strict(),XM=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:YM,handler:s(()=>nR.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)=>nR.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)=>ka.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)=>ka.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:YM,handler:s(t=>ka.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)=>ka.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)=>ka.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)=>ka.convert(t,e),"handler")}];function ZM(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(ZM,"zodToMcpSchema");var pg=[...bM,...MM,...HM,...XM],lR=pg.filter(t=>t.resourceUri!==void 0).map(t=>({uri:t.resourceUri,name:t.name,description:t.description,read:s((e,r)=>t.handler(e,r),"read")}));yi();async function F2(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 B("NO_PROJECT","agentsmesh.yaml not found");e=r;}}s(F2,"findProjectRoot");async function mR(t){let e=await F2(t.cwd);return {projectRoot:e,loadCanonical:s(()=>Ae(e),"loadCanonical")}}s(mR,"resolveContext");async function H2(){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(H2,"pkgVersion");function z2(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(z2,"matchTemplate");function V2(t,e){let r=[...t.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),n=new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(e);return n?Object.fromEntries(r.map((i,a)=>[i,n[a+1]])):{}}s(V2,"extractTemplateParams");async function qM(){let t=new Server({name:"agentsmesh-mcp",version:await H2()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:pg.map(e=>({name:e.name,description:e.description,inputSchema:ZM(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=pg.find(o=>o.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 o=r.inputSchema.safeParse(e.params.arguments??{});if(!o.success)throw new B("VALIDATION_FAILED","invalid input",o.error.issues);let n=await mR({cwd:process.cwd()}),i=await r.handler(n,o.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(o){let n=o instanceof B?o.toEnvelope():{code:"IO_ERROR",message:OM(o instanceof Error?o.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(n)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:lR.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=lR.find(a=>a.uri===e.params.uri||z2(a.uri,e.params.uri));if(!r)throw new B("NOT_FOUND",`resource not found: ${e.params.uri}`);let o=await mR({cwd:process.cwd()}),n=V2(r.uri,e.params.uri),i=await r.read(o,n);return {contents:[{uri:e.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await t.connect(new StdioServerTransport);}s(qM,"startServer");ft();async function t$(t,e){yR(),await qM();}s(t$,"runMcp");var e$={generate:s(async(t,e)=>{let r=await tl(t,void 0,{printMatrix:t.json!==true});Ee("generate",r,t,()=>el(r));},"generate"),init:s(async(t,e)=>{let r=await Pv(process.cwd(),{yes:t.yes===true,global:t.global===true});Ee("init",r,t,()=>xv(r));},"init"),import:s(async(t,e)=>{let r=await Nv(t);Ee("import",r,t,()=>Wv(r));},"import"),diff:s(async(t,e)=>{let r=await vv(t);Ee("diff",r,t,()=>Hv(r));},"diff"),lint:s(async(t,e)=>{let r=await Uv(t);Ee("lint",r,t,()=>Kv(r));},"lint"),check:s(async(t,e)=>{let r=await Yv(t);Ee("check",r,t,()=>Bv(r));},"check"),merge:s(async(t,e)=>{let r=await Qv(t);Ee("merge",r,t,()=>zv(r));},"merge"),matrix:s(async(t,e)=>{let r=await Fm(t);Ee("matrix",r,t,()=>Gm(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){ba("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await Jv(t),o=s(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",o),process.on("SIGTERM",o);},"watch"),install:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await iM(t,e,process.cwd());Ee("install",r,t,()=>aM(r));},"install"),plugin:s(async(t,e)=>{let r=await pM(t,e,process.cwd());Ee("plugin",r,t,()=>uM(r));},"plugin"),target:s(async(t,e)=>{let r=await SM(t,e,process.cwd());Ee("target",r,t,()=>CM(r));},"target"),convert:s(async(t,e)=>{let r=await og(t);Ee("convert",r,t,()=>EM(r));},"convert"),mcp:s(async(t,e)=>{await t$();},"mcp")};function X2(t){let e={},r=[],o="help";for(let n=0;n<t.length;n++){let i=t[n];if(o==="help"&&i==="--version")return {command:"version",flags:{},args:[]};if(o==="help"&&i==="--help")return {command:"help",flags:{},args:[]};if(i.startsWith("--")){let a=i.slice(2),c=t[n+1];c===void 0||c.startsWith("--")?e[a]=true:(e[a]=c,n++);continue}o==="help"?o=i:r.push(i);}return {command:o,flags:e,args:r}}s(X2,"parseArgs");var Z2=gR(e$);async function Q2(t){let{command:e,flags:r,args:o}=t;if(e==="help"){SR();return}if(e==="version"){ER();return}r.json===true&&hR(),await Z2.route(e,r,o);}s(Q2,"main");function q2(){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(q2,"isMainModule");if(q2()){let t=X2(process.argv.slice(2));Q2(t).catch(e=>OR(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
567
|
-
export{
|
|
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{G9 as parseArgs};
|