agentsmesh 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +244 -0
- package/README.md +71 -9
- package/dist/canonical.d.ts +2 -2
- package/dist/canonical.js +339 -46
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +276 -223
- package/dist/engine.d.ts +5 -2
- package/dist/engine.js +1350 -87
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2993 -439
- package/dist/index.js.map +1 -1
- package/dist/init-YKxF2zpQ.d.ts +494 -0
- package/dist/lessons.d.ts +106 -0
- package/dist/lessons.js +2764 -0
- package/dist/lessons.js.map +1 -0
- package/dist/{schema-CLmR2JOb.d.ts → schema-CzaoYJlG.d.ts} +9 -1
- package/dist/{target-descriptor-CkLWz3Xk.d.ts → target-descriptor-D6vLDI1w.d.ts} +62 -2
- package/dist/targets.d.ts +3 -3
- package/dist/targets.js +293 -32
- package/dist/targets.js.map +1 -1
- package/package.json +9 -2
- package/schemas/installs.json +12 -0
package/dist/cli.js
CHANGED
|
@@ -1,203 +1,223 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize,isAbsolute}from'path';import {rm as rm$1,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp,readlink,symlink,copyFile}from'fs/promises';import {realpathSync,rmSync,statSync,
|
|
3
|
-
`);},warn(
|
|
4
|
-
`);},error(
|
|
5
|
-
`);},success(
|
|
6
|
-
`);},debug(
|
|
7
|
-
`);},table(
|
|
8
|
-
`);for(let o=0;o<
|
|
9
|
-
`);}
|
|
10
|
-
`);}};});var
|
|
11
|
-
`)}function Og(t){return V0.has(extname(t).toLowerCase())?493:void 0}var Za,H0,z0,V0,Hp=d(()=>{Za="\uFEFF",H0=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),z0=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Kp,"shouldNormalizeLineEndings");s(Wp,"normalizeLineEndings");V0=new Set([".sh",".bash",".zsh"]);s(Og,"executableModeFor");});function HS(t){if(t.length>eB)return true;let e=new Map;for(let r of t){let n=(e.get(r)??0)+1;if(n>=rB)return true;e.set(r,n);}return false}async function G(t,e,r){let n=r??[basename(t)],o;try{o=await realpath(t);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new Ne(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=e??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(t,{withFileTypes:!0}),l=[];for(let c of a){let m=join(t,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if(HS(u))continue;l.push(...await G(m,i,u));}else l.push(m);}return l}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="EACCES")return [];throw new Ne(t,`Failed to read directory ${t}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Es(t,e){let r=e??[basename(t)];try{let n=await readdir(t,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(t,i.name);if(i.isDirectory()){let l=[...r,i.name];if(HS(l))continue;o.push(...await Es(a,l));}else i.isFile()&&o.push(a);}return o}catch(n){let o=n;if(o.code==="ENOENT"||o.code==="ENOTDIR"||o.code==="EACCES")return [];throw new Ne(t,`Failed to read directory ${t}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function wg(t,e){let r=resolve(t);try{if(!(await lstat(e)).isSymbolicLink()||resolve(dirname(e),await readlink(e))===r)return;await unlink(e);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,e,"dir");}var eB,rB,Ag=d(()=>{Io();eB=32,rB=3;s(HS,"shouldSkipRecursiveBranch");s(G,"readDirRecursive");s(Es,"readDirRecursiveNoSymlinks");s(wg,"ensureCacheSymlink");});async function _(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Za)?e.slice(Za.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new Ne(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}async function S(t,e,r){let n=dirname(t);await mkdir(n,{recursive:true});try{let l=await lstat(t);if(l.isDirectory())throw new Ne(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(t).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof Ne||l.code!=="ENOENT")throw l}let o=`${t}.tmp`,i=Kp(t)?Wp(e):e,a=r?.mode??Og(t);try{try{(await lstat(o)).isSymbolicLink()&&await unlink(o);}catch(c){if(c.code!=="ENOENT")throw c}let l={encoding:"utf-8",flag:"w"};a!==void 0&&(l.mode=a),await writeFile(o,i,l),await rename(o,t),a!==void 0&&await chmod(t,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new Ne(t,`Failed to write ${t}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function O(t){await mkdir(t,{recursive:true});}var A=d(()=>{Io();Hp();Ag();Hp();s(_,"readFileSafe");s(S,"writeFileAtomic");s(j,"exists");s(O,"mkdirp");});function Fe(t){return bg.includes(t)}var bg,YS=d(()=>{bg=["aider","amazon-q","amp","antigravity","augment-code","claude-code","cline","codex-cli","continue","copilot","crush","cursor","deepagents-cli","factory-droid","gemini-cli","goose","jules","junie","kilo-code","kiro","opencode","pi-agent","qwen-code","replit-agent","roo-code","rovodev","trae","warp","windsurf","zed"];s(Fe,"isBuiltinTargetId");});var $t,Pg,Sn=d(()=>{YS();$t=bg,Pg="codex-cli";});var XS,nr,Qa,pB,Kc,uB,dB,Bc,fB,gB,wi,So=d(()=>{Sn();XS=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],nr=z$1.enum($t),Qa=z$1.enum(XS),pB=z$1.enum(["rules","commands","agents","skills"]),Kc=z$1.object({skills:z$1.array(z$1.string()).optional(),commands:z$1.array(z$1.string()).optional(),rules:z$1.array(z$1.string()).optional(),agents:z$1.array(z$1.string()).optional()}).strict(),uB=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:nr.optional(),as:pB.optional(),features:z$1.array(Qa),path:z$1.string().optional(),pick:Kc.optional()}),dB=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Bc=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),fB=z$1.object({commands_to_skills:z$1.object({"codex-cli":Bc.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Bc.optional(),cline:Bc.optional(),"codex-cli":Bc.optional(),windsurf:Bc.optional()}).passthrough().optional()}).strict().optional(),gB=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional(),strict:z$1.boolean().optional()}).strict(),wi=z$1.object({version:z$1.literal(1),targets:z$1.array(nr).default([...$t]),features:z$1.array(Qa).default([...XS]),extends:z$1.array(uB).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:dB.default({strategy:"merge",lock_features:[]}),conversions:fB,plugins:z$1.array(gB).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function _B(t){let e=resolve(t);for(;;){let r=join(e,xg);if(await j(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}async function RB(t){let e=await _(t);if(e===null)throw new $r(t);let r=parse(e),n=wi.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new Ya(t,o,{cause:n.error})}return n.data}function Tg(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null||IB.has(n))continue;let i=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]=Tg(i,o):r[n]=o;}return r}function SB(t,e){let r={...t};return Array.isArray(e.targets)&&e.targets.length>0&&(r.targets=e.targets),Array.isArray(e.features)&&e.features.length>0&&(r.features=e.features),typeof e.overrides=="object"&&e.overrides!==null&&!Array.isArray(e.overrides)&&(r.overrides=Tg(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=Tg(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}async function Vp(t){let e=join(t,xg),r=await RB(e),n=join(t,yB),o=await _(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=SB(r,i),l=wi.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");y.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:t}}async function Jp(t){let e=await _B(t);if(e===null)throw new $r(join(t,xg));return Vp(dirname(e))}var xg,yB,IB,Yp=d(()=>{A();ot();Io();So();xg="agentsmesh.yaml",yB="agentsmesh.local.yaml";s(_B,"findConfigPath");s(RB,"loadConfig");IB=new Set(["__proto__","constructor","prototype"]);s(Tg,"deepMergeObjects");s(SB,"mergeLocalConfig");s(Vp,"loadConfigFromExactDir");s(Jp,"loadConfigFromDir");});function Ai(t,e="project"){if(e==="project")return {scope:e,rootBase:t,configDir:t,canonicalDir:join(t,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:e,rootBase:r,configDir:n,canonicalDir:n}}async function yt(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await Jp(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Ai(t,e);try{let{config:n}=await Vp(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof $r?new $r(n.path,{cause:n,message:`agentsmesh.yaml not found at ${n.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):n}}var Zt=d(()=>{Yp();Io();s(Ai,"resolveScopeContext");s(yt,"loadScopedConfig");});function qa(t){return t.replace(kB,(e,r,n,o)=>`${r}***@${o}`)}var kB,Ng=d(()=>{kB=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(qa,"redactUrlSecrets");});function eC(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}async function Xp(t,e,r,n,o){let i="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,l=t.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,qS),u=`${m}.tmp`,f=join(u,qS);if(!r.refresh&&await tC(p))return Mg(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await TB(PB(t),f),t.ref&&await xB(f,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(u,m),Mg(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await tC(p)){let R=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${qa(R)}`),Mg(p)}throw g instanceof Error?Object.assign(new Error(qa(g.message)),{cause:g.cause}):g}}async function Mg(t){return {resolvedPath:t,version:await DB(t)}}async function tC(t){return j(t)}function PB(t){if("cloneUrl"in t){let e=process.env.AGENTSMESH_GITLAB_TOKEN;if(e){let r=new URL(t.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=e,r.toString()}return t.cloneUrl}return t.url}async function TB(t,e){eC(t,"clone-url"),await $g(["clone",t,e]);}async function xB(t,e){eC(e,"ref"),await $g(["checkout",e],t);}async function DB(t){return $g(["rev-parse","HEAD"],t)}async function $g(t,e){let{stdout:r}=await bB("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var bB,qS,Gg=d(()=>{A();Ng();bB=promisify(execFile),qS="repo";s(eC,"ensureNotFlag");s(Xp,"fetchGitRemoteExtend");s(Mg,"readCachedRepo");s(tC,"hasCachedRepo");s(PB,"resolveCloneUrl");s(TB,"cloneRepo");s(xB,"checkoutRef");s(DB,"getHeadSha");s($g,"runGit");});function MB(){let t=process.env.AGENTSMESH_MAX_TARBALL_MB;if(t===void 0||t==="")return Hc*1024*1024;let e=Number(t);return !Number.isFinite(e)||!Number.isInteger(e)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${t}" is not an integer; using default ${Hc} MiB.`),Hc*1024*1024):e<nC||e>oC?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${e} is outside [${nC}, ${oC}]; using default ${Hc} MiB.`),Hc*1024*1024):e*1024*1024}async function GB(t,e){let r=typeof t.headers?.get=="function"?t.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>e)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${e}`)}let n=t.body;if(!n){let m=await t.arrayBuffer();if(m.byteLength>e)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${e}`);return new Uint8Array(m)}let o=n.getReader(),i=[],a=0;for(;;){let{done:m,value:p}=await o.read();if(m)break;if(p){if(a+=p.byteLength,a>e)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${e} bytes during streaming`);i.push(p);}}let l=new Uint8Array(a),c=0;for(let m of i)l.set(m,c),c+=m.byteLength;return l}async function aC(t,e,r){let n=`https://api.github.com/repos/${t}/${e}/releases/latest`,o={Accept:"application/vnd.github+json"};r&&(o.Authorization=`Bearer ${r}`);let i=await globalThis.fetch(n,{headers:o});if(!i.ok)throw new Error(`Failed to resolve latest release for ${t}/${e}: ${i.status} ${i.statusText}`);let a=await i.json();if(!a.tag_name||typeof a.tag_name!="string")throw new Error(`No tag_name in releases/latest response for ${t}/${e}`);return a.tag_name}async function lC(t,e,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=t.tag;if(c==="latest")try{c=await aC(t.org,t.repo,a);}catch(I){if(!i)throw I;return UB(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),p=join(n,m);if(!l&&await j(p)){let I=await jg(p);if(I)return {resolvedPath:join(p,I),version:c}}let u=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let I=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!I.ok)throw new Error(`HTTP ${I.status}: ${I.statusText}`);g=await GB(I,$B);}catch(I){if(r.allowOfflineFallback!==false&&await j(p)){let b=await jg(p);if(b){let N=I instanceof Error?I.message:String(I);return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${qa(N)}`),{resolvedPath:join(p,b),version:c}}}throw I instanceof Error?Object.assign(new Error(qa(I.message)),{cause:I.cause}):I}await rm$1(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,g);try{await iC.extract({file:h,cwd:p,strict:!0,filter:s((I,C)=>{if(jB(I))return !1;let b=C&&"type"in C?C.type:void 0;return b==="File"||b==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let R=await jg(p);if(!R)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,R),version:c}}async function jg(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function sC(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}function jB(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}async function UB(t,e,r,n,o,i){let a=i?[sC(t.org,t.repo,i)]:[sC(t.org,t.repo),`ssh://git@github.com/${t.org}/${t.repo}.git`],l;for(let c of a){let m={url:c};try{return await Xp(m,e,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Hc,nC,oC,$B,cC=d(()=>{A();Ng();Gg();Hc=500,nC=1,oC=4096;s(MB,"resolveMaxTarballBytes");$B=MB();s(GB,"readBoundedResponse");s(aC,"resolveLatestTag");s(lC,"fetchGithubRemoteExtend");s(jg,"findExtractTopDir");s(sC,"buildGithubCloneUrl");s(jB,"isZipSlipPath");s(UB,"fetchGithubDefaultBranch");});function mC(t,e,r){if(!t.startsWith(e))return null;let n=t.slice(e.length).trim();if(!n)return null;let o=n.lastIndexOf("@");if(o<0)return [n,r];let i=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !i||!a?null:[i,a]}function pC(t){let e=mC(t,"github:","latest");if(!e)return null;let[r,n]=e,o=r.indexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a||!n?null:{org:i,repo:a,tag:n}}function uC(t){let e=mC(t,"gitlab:");if(!e)return null;let[r,n]=e,o=r.lastIndexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a?null:{namespace:i,project:a,ref:n,cloneUrl:`https://gitlab.com/${i}/${a}.git`}}function dC(t){if(!t.startsWith("git+"))return null;let e=t.slice(4).trim();if(!e)return null;let r=e.lastIndexOf("#"),n=(r<0?e:e.slice(0,r)).trim(),o=r<0?void 0:e.slice(r+1).trim();if(!n||r>=0&&!o)return null;let i;try{i=new URL(n);}catch{return null}let a=process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="1"||process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="true",l=process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="1"||process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="true",c=["https:","ssh:"];return a&&c.push("http:"),l&&c.push("file:"),c.includes(i.protocol)?{url:n,ref:o}:null}function bi(t){let e=pC(t);if(e)return {kind:"github",...e};let r=uC(t);if(r)return {kind:"gitlab",...r};let n=dC(t);return n?{kind:"git",...n}:null}function Ug(t){return bi(t)!==null}var zc=d(()=>{s(mC,"splitSourceRef");s(pC,"parseGithubSource");s(uC,"parseGitlabSource");s(dC,"parseGitSource");s(bi,"parseRemoteSource");s(Ug,"isSupportedRemoteSource");});function HB(t){let e=bi(t);return e?e.kind==="github"?tl("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?tl("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):tl("git",e.url,e.ref??"HEAD"):null}async function hC(t,e){let r=HB(t);if(!r)return;let n=e??ve(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function yC(t,e){let r=t??ve(),n=e??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let i=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);i-c>n&&await rm$1(l,{recursive:!0,force:!0});}catch{}}));}var Bg=d(()=>{Vc();zc();s(HB,"cacheKeyFromSource");s(hC,"cleanInstallCache");s(yC,"sweepStaleCache");});function tl(t,e,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(t==="github"){let[i,a]=e.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(t)}__${n(e)}__${n(r)}`;}else o=`${n(t)}__${n(e)}__${n(r)}`;if(o.length>IC){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,IC-18)}--${i}`;}return o}function ve(){let t=process.env.AGENTSMESH_CACHE;if(t){let e=t.trim();if(!e)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(e))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${e}").`);if(e==="/"||/^[A-Za-z]:[\\/]?$/.test(e))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${e}").`);return e}return join(homedir(),".agentsmesh","cache")}async function el(t,e,r={}){let n=bi(t);if(!n)throw t.startsWith("github:")?new Error(`Invalid github: source: "${t}" for extend "${e}"`):t.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${t}" for extend "${e}"`):t.startsWith("git+")?new Error(`Invalid git+ source: "${t}" for extend "${e}"`):new Error(`Invalid remote source: "${t}" for extend "${e}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??ve();return yC(o).catch(()=>{}),n.kind==="github"?lC(n,e,r,o,tl,!t.includes("@")):Xp(n,e,r,o,tl)}var IC,Vc=d(()=>{Gg();cC();zc();Bg();IC=80;s(tl,"buildCacheKey");s(ve,"getCacheDir");s(el,"fetchRemoteExtend");});function XB(t){return t.startsWith("http://")||t.startsWith("https://")}async function rl(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>Ug(o.source))){let o=ve();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(XB(o.source))throw new Error(`Remote extends (http/https) not supported: "${o.source}" for extend "${o.name}". Use github:org/repo@tag, gitlab:group/project@ref, git+https://host/org/repo.git#ref, or a local path (e.g. ./shared/).`);if(Ug(o.source)){let a=await el(o.source,o.name,{cacheDir:ve(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,as:o.as,version:a.version,path:o.path,pick:o.pick});continue}let i=resolve(e,o.source);if(!await j(i))throw new Error(`Extend "${o.name}": path does not exist: ${i}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:i,features:[...o.features],target:o.target,as:o.as,path:o.path,pick:o.pick});}return n}var Zp=d(()=>{A();Vc();zc();s(XB,"isOtherRemoteSource");s(rl,"resolveExtendPaths");});function P(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let n=t.slice(3,r).trim(),o=t.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function qB(t){if(t.indexOf("---")!==0)return t.trim();let e=t.indexOf("---",3);return e===-1?t.trim():t.slice(e+3).trim()}function Gr(t,e){try{return {ok:!0,value:P(t)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${e}: ${n}`,{cause:r}),bodyFallback:qB(t)}}}function Co(t,e,r){let n=Gr(t,e);if(n.ok)return n.value;if(r)return r(n.error,e),null;throw n.error}function x(t,e){return Object.keys(t).length===0?e:`---
|
|
12
|
-
${stringify(
|
|
2
|
+
import {resolve,join,sep,dirname,extname,basename,relative,win32,posix,normalize,isAbsolute}from'path';import {rm as rm$1,readFile,readdir,stat,mkdir,writeFile,rename,lstat,unlink,chmod,access,realpath,mkdtemp,cp as cp$1,readlink,symlink,copyFile}from'fs/promises';import {setTimeout as setTimeout$1}from'timers/promises';import {realpathSync,rmSync,existsSync,statSync,mkdtempSync,readdirSync,symlinkSync,mkdirSync,readFileSync,writeFileSync,renameSync,constants,appendFileSync}from'fs';import {z as z$1}from'zod';import {stringify,parse,parseDocument,YAMLSeq,YAMLMap}from'yaml';import {homedir,tmpdir,hostname}from'os';import {execFile}from'child_process';import {fileURLToPath,URL,pathToFileURL}from'url';import {promisify}from'util';import*as BC from'tar';import {createHash}from'crypto';import {parse as parse$1}from'smol-toml';import {Buffer as Buffer$1}from'buffer';import {createRequire}from'module';import u4 from'picomatch';import {createTwoFilesPatch}from'diff';import Z5 from'chokidar';import*as uK from'readline';import {Server}from'@modelcontextprotocol/sdk/server/index.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import {ListToolsRequestSchema,CallToolRequestSchema,ListResourcesRequestSchema,ReadResourceRequestSchema}from'@modelcontextprotocol/sdk/types.js';import {toJSONSchema}from'zod/v4/core';var uC=Object.defineProperty;var s=(e,t)=>uC(e,"name",{value:t,configurable:true});var d=(e,t)=>()=>(e&&(t=e(e=0)),t);var my=(e,t)=>{for(var r in t)uC(e,r,{get:t[r],enumerable:true});};function Oz(){let e=process.env.NO_COLOR;return e!==void 0&&e!==""}function Az(){let e=process.env.FORCE_COLOR;if(e!==void 0)return e!=="0"&&e!=="false"}function Sl(e=process.stdout){let t=Az();return t!==void 0?t:Oz()?false:e.isTTY===true}var Wu=d(()=>{s(Oz,"noColorRequested");s(Az,"forceColorRequested");s(Sl,"colorEnabled");});function gC(){Vi=true;}function hC(){fC=true;}function Hu(){return fC?process.stderr:process.stdout}function kl(e){Hu().write(e);}function xm(e,t,r){return Sl(r)?`${e}${t}${Il.reset}`:t}function xz(e,t){let r=[...e].length;return e+" ".repeat(Math.max(0,t-r))}var Il,Vi,fC,y,ne=d(()=>{Wu();Il={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"},Vi=false,fC=false;s(gC,"muteLogger");s(hC,"redirectLoggerToStderr");s(Hu,"outStream");s(kl,"out");s(xm,"c");s(xz,"pad");y={info(e){Vi||kl(xm(Il.cyan,e,Hu())+`
|
|
3
|
+
`);},warn(e){Vi||process.stderr.write(xm(Il.yellow,"\u26A0 ",process.stderr)+e+`
|
|
4
|
+
`);},error(e){Vi||process.stderr.write(xm(Il.red,"\u2717 ",process.stderr)+e+`
|
|
5
|
+
`);},success(e){Vi||kl(xm(Il.green,"\u2713 ",Hu())+e+`
|
|
6
|
+
`);},debug(e){Vi||process.env.AGENTSMESH_DEBUG==="1"&&kl(xm(Il.cyan,"[debug] ",Hu())+e+`
|
|
7
|
+
`);},table(e){if(Vi||e.length===0)return;let t=e[0].length,r=[];for(let o=0;o<t;o++){let i=0;for(let a=0;a<e.length;a++){let l=[...e[a][o]].length;l>i&&(i=l);}r[o]=i;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";kl(n+`
|
|
8
|
+
`);for(let o=0;o<e.length;o++){let a="| "+e[o].map((l,c)=>xz(l,r[c])).join(" | ")+" |";kl(a+`
|
|
9
|
+
`);}kl(n+`
|
|
10
|
+
`);}};});var Do,Jr,El,Dn,wl,zt,No=d(()=>{Do=class extends Error{static{s(this,"AgentsMeshError");}code;constructor(t,r,n){super(r,n),this.name="AgentsMeshError",this.code=t;}},Jr=class extends Do{static{s(this,"ConfigNotFoundError");}path;constructor(t,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${t}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=t;}},El=class extends Do{static{s(this,"ConfigValidationError");}issues;constructor(t,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${t}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}},Dn=class extends Do{static{s(this,"TargetNotFoundError");}target;constructor(t,r){let n=r?.supported?` Supported: ${r.supported.join(", ")}.`:"";super("AM_TARGET_NOT_FOUND",`Unknown target "${t}".${n}`,r),this.name="TargetNotFoundError",this.target=t;}},wl=class extends Do{static{s(this,"LockAcquisitionError");}lockPath;holder;label;constructor(t,r,n){let o=n?.label??"lock";super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire ${o} at ${t}: currently held by ${r}. Wait for the other process to finish, or remove ${t} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=t,this.holder=r,this.label=o;}},zt=class extends Do{static{s(this,"FileSystemError");}path;errnoCode;constructor(t,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=t,this.errnoCode=n?.errnoCode;}};});function Xu(e){let t=extname(e).toLowerCase();if(t.length>0)return $z.has(t);let r=basename(e).toLowerCase();return Gz.has(r)}function qu(e){return e.replace(/\r\n?/g,`
|
|
11
|
+
`)}function dy(e){return jz.has(extname(e).toLowerCase())?493:void 0}var bl,$z,Gz,jz,Qu=d(()=>{bl="\uFEFF",$z=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),Gz=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);s(Xu,"shouldNormalizeLineEndings");s(qu,"normalizeLineEndings");jz=new Set([".sh",".bash",".zsh"]);s(dy,"executableModeFor");});function wC(e){if(e.length>Jz)return true;let t=new Map;for(let r of e){let n=(t.get(r)??0)+1;if(n>=Yz)return true;t.set(r,n);}return false}async function U(e,t,r){let n=r??[basename(e)],o;try{o=await realpath(e);}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="ELOOP")return [];throw new zt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}let i=t??new Set;if(i.has(o))return [];i.add(o);try{let a=await readdir(e,{withFileTypes:!0}),l=[];for(let c of a){let m=join(e,c.name);if(c.isDirectory()||c.isSymbolicLink()&&await stat(m).then(u=>u.isDirectory(),()=>!1)){let u=[...n,c.name];if(wC(u))continue;l.push(...await U(m,i,u));}else l.push(m);}return l}catch(a){let l=a;if(l.code==="ENOENT"||l.code==="ENOTDIR"||l.code==="EACCES")return [];throw new zt(e,`Failed to read directory ${e}: ${l.message}. Check permissions.`,{cause:a,errnoCode:l.code})}}async function Ws(e,t){let r=t??[basename(e)];try{let n=await readdir(e,{withFileTypes:!0}),o=[];for(let i of n){if(i.isSymbolicLink())continue;let a=join(e,i.name);if(i.isDirectory()){let l=[...r,i.name];if(wC(l))continue;o.push(...await Ws(a,l));}else i.isFile()&&o.push(a);}return o}catch(n){let o=n;if(o.code==="ENOENT"||o.code==="ENOTDIR"||o.code==="EACCES")return [];throw new zt(e,`Failed to read directory ${e}: ${o.message}. Check permissions.`,{cause:n,errnoCode:o.code})}}async function fy(e,t){let r=resolve(e);try{if(!(await lstat(t)).isSymbolicLink()||resolve(dirname(t),await readlink(t))===r)return;await unlink(t);}catch(n){if(n.code!=="ENOENT")throw n}await symlink(r,t,"dir");}var Jz,Yz,gy=d(()=>{No();Jz=32,Yz=3;s(wC,"shouldSkipRecursiveBranch");s(U,"readDirRecursive");s(Ws,"readDirRecursiveNoSymlinks");s(fy,"ensureCacheSymlink");});async function hy(e,t,r={}){let n=r.attempts??5,o=r.delayMs??50;for(let i=0;;i++)try{await rename(e,t);return}catch(a){let l=a.code;if(!(l!==void 0&&Qz.has(l))||i>=n-1)throw a;await setTimeout$1(o*2**i);}}var Qz,bC=d(()=>{Qz=new Set(["EPERM","EACCES","EBUSY","ENOTEMPTY","EEXIST"]);s(hy,"renameWithRetry");});async function k(e){try{let t=await readFile(e,"utf-8");return t.startsWith(bl)?t.slice(bl.length):t}catch(t){let r=t;if(r.code==="ENOENT")return null;throw new zt(e,`Failed to read ${e}: ${r.message}. Ensure the file exists and is readable.`,{cause:t,errnoCode:r.code})}}async function L(e,t,r){let n=dirname(e);await mkdir(n,{recursive:true});try{let l=await lstat(e);if(l.isDirectory())throw new zt(e,`Failed to write ${e}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"});l.isSymbolicLink()&&await unlink(e).catch(c=>{if(c.code!=="ENOENT")throw c});}catch(l){if(l instanceof zt||l.code!=="ENOENT")throw l}let o=`${e}.tmp`,i=Xu(e)?qu(t):t,a=r?.mode??dy(e);try{try{(await lstat(o)).isSymbolicLink()&&await unlink(o);}catch(c){if(c.code!=="ENOENT")throw c}let l={encoding:"utf-8",flag:"w"};a!==void 0&&(l.mode=a),await writeFile(o,i,l),await rename(o,e),a!==void 0&&await chmod(e,a);}catch(l){await rm$1(o,{force:true}).catch(()=>{});let c=l;throw new zt(e,`Failed to write ${e}: ${c.message}. Check permissions and disk space.`,{cause:l,errnoCode:c.code})}}async function j(e){try{return await access(e,constants.F_OK),!0}catch{return false}}async function w(e){await mkdir(e,{recursive:true});}var A=d(()=>{No();Qu();gy();Qu();bC();s(k,"readFileSafe");s(L,"writeFileAtomic");s(j,"exists");s(w,"mkdirp");});function Vt(e){return yy.includes(e)}var yy,TC=d(()=>{yy=["aider","amazon-q","amp","antigravity","augment-code","claude-code","cline","codex-cli","continue","copilot","crush","cursor","deepagents-cli","factory-droid","gemini-cli","goose","jules","junie","kilo-code","kiro","opencode","pi-agent","qwen-code","replit-agent","roo-code","rovodev","trae","warp","windsurf","zed"];s(Vt,"isBuiltinTargetId");});var je,Ry,Nn=d(()=>{TC();je=yy,Ry="codex-cli";});var PC,fr,Ol,a1,Pm,l1,c1,Tm,m1,p1,Yi,vo=d(()=>{Nn();PC=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],fr=z$1.enum(je),Ol=z$1.enum(PC),a1=z$1.enum(["rules","commands","agents","skills"]),Pm=z$1.object({skills:z$1.array(z$1.string()).optional(),commands:z$1.array(z$1.string()).optional(),rules:z$1.array(z$1.string()).optional(),agents:z$1.array(z$1.string()).optional()}).strict(),l1=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:fr.optional(),as:a1.optional(),features:z$1.array(Ol),path:z$1.string().optional(),pick:Pm.optional()}),c1=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Tm=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),m1=z$1.object({commands_to_skills:z$1.object({"codex-cli":Tm.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Tm.optional(),cline:Tm.optional(),"codex-cli":Tm.optional(),windsurf:Tm.optional()}).passthrough().optional()}).strict().optional(),p1=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional(),strict:z$1.boolean().optional()}).strict(),Yi=z$1.object({version:z$1.literal(1),targets:z$1.array(fr).default([...je]),features:z$1.array(Ol).default([...PC]),extends:z$1.array(l1).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:c1.default({strategy:"merge",lock_features:[]}),conversions:m1,plugins:z$1.array(p1).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});});async function f1(e){let t=resolve(e);for(;;){let r=join(t,Sy);if(await j(r))return r;let n=dirname(t);if(n===t)return null;t=n;}}async function g1(e){let t=await k(e);if(t===null)throw new Jr(e);let r=parse(t),n=Yi.safeParse(r);if(!n.success){let o=n.error.issues.map(i=>i.message);throw new El(e,o,{cause:n.error})}return n.data}function _y(e,t){let r={...e};for(let[n,o]of Object.entries(t)){if(o==null||h1.has(n))continue;let i=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]=_y(i,o):r[n]=o;}return r}function y1(e,t){let r={...e};return Array.isArray(t.targets)&&t.targets.length>0&&(r.targets=t.targets),Array.isArray(t.features)&&t.features.length>0&&(r.features=t.features),typeof t.overrides=="object"&&t.overrides!==null&&!Array.isArray(t.overrides)&&(r.overrides=_y(r.overrides??{},t.overrides)),typeof t.conversions=="object"&&t.conversions!==null&&!Array.isArray(t.conversions)&&(r.conversions=_y(r.conversions??{},t.conversions)),Array.isArray(t.extends)&&t.extends.length>0&&(r.extends=[...e.extends??[],...t.extends]),r}async function ed(e){let t=join(e,Sy),r=await g1(t),n=join(e,d1),o=await k(n);if(o!==null){let i=parse(o);if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let a=y1(r,i),l=Yi.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");y.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:e}}async function td(e){let t=await f1(e);if(t===null)throw new Jr(join(e,Sy));return ed(dirname(t))}var Sy,d1,h1,rd=d(()=>{A();ne();No();vo();Sy="agentsmesh.yaml",d1="agentsmesh.local.yaml";s(f1,"findConfigPath");s(g1,"loadConfig");h1=new Set(["__proto__","constructor","prototype"]);s(_y,"deepMergeObjects");s(y1,"mergeLocalConfig");s(ed,"loadConfigFromExactDir");s(td,"loadConfigFromDir");});function Xi(e,t="project"){if(t==="project")return {scope:t,rootBase:e,configDir:e,canonicalDir:join(e,".agentsmesh")};let r=homedir(),n=join(r,".agentsmesh");return {scope:t,rootBase:r,configDir:n,canonicalDir:n}}async function ye(e,t="project"){if(t==="project"){let{config:n,configDir:o}=await td(e);return {config:n,context:{scope:t,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Xi(e,t);try{let{config:n}=await ed(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Jr?new Jr(n.path,{cause:n,message:`agentsmesh.yaml not found at ${n.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):n}}var tt=d(()=>{rd();No();s(Xi,"resolveScopeContext");s(ye,"loadScopedConfig");});function Al(e){return e.replace(_1,(t,r,n,o)=>`${r}***@${o}`)}var _1,Iy=d(()=>{_1=/([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^/@\s"'<>]+)@([^\s"'<>]+)/g;s(Al,"redactUrlSecrets");});function MC(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}async function nd(e,t,r,n,o){let i="cloneUrl"in e?"gitlab":"git",a="cloneUrl"in e?`${e.namespace}/${e.project}`:e.url,l=e.ref??"HEAD",c=o(i,a,l),m=join(n,c),p=join(m,vC),u=`${m}.tmp`,f=join(u,vC);if(!r.refresh&&await FC(p))return Ey(p);try{return await rm$1(u,{recursive:!0,force:!0}),await mkdir(u,{recursive:!0}),await w1(E1(e),f),e.ref&&await b1(f,e.ref),await rm$1(m,{recursive:!0,force:!0}),await hy(u,m),Ey(p)}catch(g){if(await rm$1(u,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await FC(p)){let R=g instanceof Error?g.message:String(g);return console.warn(`[agentsmesh] Remote fetch failed for ${t}; using cached version. Error: ${Al(R)}`),Ey(p)}throw g instanceof Error?Object.assign(new Error(Al(g.message)),{cause:g.cause}):g}}async function Ey(e){return {resolvedPath:e,version:await O1(e)}}async function FC(e){return j(e)}function E1(e){if("cloneUrl"in e){let t=process.env.AGENTSMESH_GITLAB_TOKEN;if(t){let r=new URL(e.cloneUrl);if(r.protocol==="https:")return r.username="oauth2",r.password=t,r.toString()}return e.cloneUrl}return e.url}async function w1(e,t){MC(e,"clone-url"),await wy(["clone",e,t]);}async function b1(e,t){MC(t,"ref"),await wy(["checkout",t],e);}async function O1(e){return wy(["rev-parse","HEAD"],e)}async function wy(e,t){let{stdout:r}=await C1("git",e,{cwd:t,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}var C1,vC,by=d(()=>{A();Iy();C1=promisify(execFile),vC="repo";s(MC,"ensureNotFlag");s(nd,"fetchGitRemoteExtend");s(Ey,"readCachedRepo");s(FC,"hasCachedRepo");s(E1,"resolveCloneUrl");s(w1,"cloneRepo");s(b1,"checkoutRef");s(O1,"getHeadSha");s(wy,"runGit");});function P1(){let e=process.env.AGENTSMESH_MAX_TARBALL_MB;if(e===void 0||e==="")return Nm*1024*1024;let t=Number(e);return !Number.isFinite(t)||!Number.isInteger(t)?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB="${e}" is not an integer; using default ${Nm} MiB.`),Nm*1024*1024):t<GC||t>jC?(console.warn(`[agentsmesh] AGENTSMESH_MAX_TARBALL_MB=${t} is outside [${GC}, ${jC}]; using default ${Nm} MiB.`),Nm*1024*1024):t*1024*1024}async function N1(e,t){let r=typeof e.headers?.get=="function"?e.headers.get("content-length"):null;if(r!==null){let m=Number(r);if(Number.isFinite(m)&&m>t)throw new Error(`remote response declared ${m} bytes; exceeds cap of ${t}`)}let n=e.body;if(!n){let m=await e.arrayBuffer();if(m.byteLength>t)throw new Error(`remote response is ${m.byteLength} bytes; exceeds cap of ${t}`);return new Uint8Array(m)}let o=n.getReader(),i=[],a=0;for(;;){let{done:m,value:p}=await o.read();if(m)break;if(p){if(a+=p.byteLength,a>t)throw await o.cancel().catch(()=>{}),new Error(`remote response exceeded cap of ${t} bytes during streaming`);i.push(p);}}let l=new Uint8Array(a),c=0;for(let m of i)l.set(m,c),c+=m.byteLength;return l}async function KC(e,t,r){let n=`https://api.github.com/repos/${e}/${t}/releases/latest`,o={Accept:"application/vnd.github+json"};r&&(o.Authorization=`Bearer ${r}`);let i=await globalThis.fetch(n,{headers:o});if(!i.ok)throw new Error(`Failed to resolve latest release for ${e}/${t}: ${i.status} ${i.statusText}`);let a=await i.json();if(!a.tag_name||typeof a.tag_name!="string")throw new Error(`No tag_name in releases/latest response for ${e}/${t}`);return a.tag_name}async function WC(e,t,r,n,o,i=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=e.tag;if(c==="latest")try{c=await KC(e.org,e.repo,a);}catch(S){if(!i)throw S;return F1(e,t,r,n,o,a)}let m=o("github",`${e.org}/${e.repo}`,c),p=join(n,m);if(!l&&await j(p)){let S=await Oy(p);if(S)return {resolvedPath:join(p,S),version:c}}let u=`https://github.com/${e.org}/${e.repo}/tarball/${c}`,f={};a&&(f.Authorization=`Bearer ${a}`);let g;try{let S=await globalThis.fetch(u,{headers:f,redirect:"follow"});if(!S.ok)throw new Error(`HTTP ${S.status}: ${S.statusText}`);g=await N1(S,D1);}catch(S){if(r.allowOfflineFallback!==false&&await j(p)){let b=await Oy(p);if(b){let P=S instanceof Error?S.message:String(S);return console.warn(`[agentsmesh] Network failed for ${t}; using cached version. Error: ${Al(P)}`),{resolvedPath:join(p,b),version:c}}}throw S instanceof Error?Object.assign(new Error(Al(S.message)),{cause:S.cause}):S}await rm$1(p,{recursive:true,force:true}),await mkdir(p,{recursive:true});let h=join(p,"archive.tar.gz");await writeFile(h,g);try{await BC.extract({file:h,cwd:p,strict:!0,filter:s((S,I)=>{if(v1(S))return !1;let b=I&&"type"in I?I.type:void 0;return b==="File"||b==="Directory"},"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let R=await Oy(p);if(!R)throw new Error(`Extend "${t}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(p,R),version:c}}async function Oy(e){let r=(await readdir(e,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}function UC(e,t,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${e}/${t}.git`:`https://github.com/${e}/${t}.git`}function v1(e){let t=e.replace(/\\/g,"/");return t.startsWith("/")||t.split("/").includes("..")}async function F1(e,t,r,n,o,i){let a=i?[UC(e.org,e.repo,i)]:[UC(e.org,e.repo),`ssh://git@github.com/${e.org}/${e.repo}.git`],l;for(let c of a){let m={url:c};try{return await nd(m,t,r,n,o)}catch(p){l=p;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}var Nm,GC,jC,D1,HC=d(()=>{A();Iy();by();Nm=500,GC=1,jC=4096;s(P1,"resolveMaxTarballBytes");D1=P1();s(N1,"readBoundedResponse");s(KC,"resolveLatestTag");s(WC,"fetchGithubRemoteExtend");s(Oy,"findExtractTopDir");s(UC,"buildGithubCloneUrl");s(v1,"isZipSlipPath");s(F1,"fetchGithubDefaultBranch");});function zC(e,t,r){if(!e.startsWith(t))return null;let n=e.slice(t.length).trim();if(!n)return null;let o=n.lastIndexOf("@");if(o<0)return [n,r];let i=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !i||!a?null:[i,a]}function VC(e){let t=zC(e,"github:","latest");if(!t)return null;let[r,n]=t,o=r.indexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a||!n?null:{org:i,repo:a,tag:n}}function JC(e){let t=zC(e,"gitlab:");if(!t)return null;let[r,n]=t,o=r.lastIndexOf("/");if(o<0)return null;let i=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !i||!a?null:{namespace:i,project:a,ref:n,cloneUrl:`https://gitlab.com/${i}/${a}.git`}}function YC(e){if(!e.startsWith("git+"))return null;let t=e.slice(4).trim();if(!t)return null;let r=t.lastIndexOf("#"),n=(r<0?t:t.slice(0,r)).trim(),o=r<0?void 0:t.slice(r+1).trim();if(!n||r>=0&&!o)return null;let i;try{i=new URL(n);}catch{return null}let a=process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="1"||process.env.AGENTSMESH_ALLOW_INSECURE_GIT==="true",l=process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="1"||process.env.AGENTSMESH_ALLOW_LOCAL_GIT==="true",c=["https:","ssh:"];return a&&c.push("http:"),l&&c.push("file:"),c.includes(i.protocol)?{url:n,ref:o}:null}function qi(e){let t=VC(e);if(t)return {kind:"github",...t};let r=JC(e);if(r)return {kind:"gitlab",...r};let n=YC(e);return n?{kind:"git",...n}:null}function Ay(e){return qi(e)!==null}var vm=d(()=>{s(zC,"splitSourceRef");s(VC,"parseGithubSource");s(JC,"parseGitlabSource");s(YC,"parseGitSource");s(qi,"parseRemoteSource");s(Ay,"isSupportedRemoteSource");});function j1(e){let t=qi(e);return t?t.kind==="github"?xl("github",`${t.org}/${t.repo}`,t.tag):t.kind==="gitlab"?xl("gitlab",`${t.namespace}/${t.project}`,t.ref??"HEAD"):xl("git",t.url,t.ref??"HEAD"):null}async function QC(e,t){let r=j1(e);if(!r)return;let n=t??Jt(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}async function ZC(e,t){let r=e??Jt(),n=t??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let i=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);i-c>n&&await rm$1(l,{recursive:!0,force:!0});}catch{}}));}var xy=d(()=>{Fm();vm();s(j1,"cacheKeyFromSource");s(QC,"cleanInstallCache");s(ZC,"sweepStaleCache");});function xl(e,t,r){let n=s(i=>i.replace(/[^a-zA-Z0-9_.-]/g,"_").replace(/^\.+/,"_"),"safe"),o;if(e==="github"){let[i,a]=t.split("/",2);i&&a?o=`${n(i)}--${n(a)}--${n(r)}`:o=`${n(e)}__${n(t)}__${n(r)}`;}else o=`${n(e)}__${n(t)}__${n(r)}`;if(o.length>rE){let i=createHash("sha256").update(o).digest("hex").slice(0,16);o=`${o.slice(0,rE-18)}--${i}`;}return o}function Jt(){let e=process.env.AGENTSMESH_CACHE;if(e){let t=e.trim();if(!t)return join(homedir(),".agentsmesh","cache");if(!/^([A-Za-z]:[\\/]|\/)/.test(t))throw new Error(`AGENTSMESH_CACHE must be an absolute path (got: "${t}").`);if(t==="/"||/^[A-Za-z]:[\\/]?$/.test(t))throw new Error(`AGENTSMESH_CACHE must not be the filesystem root (got: "${t}").`);return t}return join(homedir(),".agentsmesh","cache")}async function Tl(e,t,r={}){let n=qi(e);if(!n)throw e.startsWith("github:")?new Error(`Invalid github: source: "${e}" for extend "${t}"`):e.startsWith("gitlab:")?new Error(`Invalid gitlab: source: "${e}" for extend "${t}"`):e.startsWith("git+")?new Error(`Invalid git+ source: "${e}" for extend "${t}"`):new Error(`Invalid remote source: "${e}" for extend "${t}". Use github:org/repo@tag, gitlab:group/project@ref, or git+https://host/org/repo.git#ref.`);let o=r.cacheDir??Jt();return ZC(o).catch(()=>{}),n.kind==="github"?WC(n,t,r,o,xl,!e.includes("@")):nd(n,t,r,o,xl)}var rE,Fm=d(()=>{by();HC();vm();xy();rE=80;s(xl,"buildCacheKey");s(Jt,"getCacheDir");s(Tl,"fetchRemoteExtend");});function H1(e){return e.startsWith("http://")||e.startsWith("https://")}async function Pl(e,t,r={}){if(e.extends.length===0)return [];if(r.refreshCache===true&&e.extends.some(o=>Ay(o.source))){let o=Jt();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of e.extends){if(H1(o.source))throw new Error(`Remote extends (http/https) not supported: "${o.source}" for extend "${o.name}". Use github:org/repo@tag, gitlab:group/project@ref, git+https://host/org/repo.git#ref, or a local path (e.g. ./shared/).`);if(Ay(o.source)){let a=await Tl(o.source,o.name,{cacheDir:Jt(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,as:o.as,version:a.version,path:o.path,pick:o.pick});continue}let i=resolve(t,o.source);if(!await j(i))throw new Error(`Extend "${o.name}": path does not exist: ${i}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:i,features:[...o.features],target:o.target,as:o.as,path:o.path,pick:o.pick});}return n}var od=d(()=>{A();Fm();vm();s(H1,"isOtherRemoteSource");s(Pl,"resolveExtendPaths");});function x(e){if(e.indexOf("---")!==0)return {frontmatter:{},body:e.trim()};let r=e.indexOf("---",3);if(r===-1)return {frontmatter:{},body:e.trim()};let n=e.slice(3,r).trim(),o=e.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function J1(e){if(e.indexOf("---")!==0)return e.trim();let t=e.indexOf("---",3);return t===-1?e.trim():e.slice(t+3).trim()}function Yr(e,t){try{return {ok:!0,value:x(e)}}catch(r){let n=r instanceof Error?r.message:String(r);return {ok:false,error:new Error(`Failed to parse frontmatter in ${t}: ${n}`,{cause:r}),bodyFallback:J1(e)}}}function Fo(e,t,r){let n=Yr(e,t);if(n.ok)return n.value;if(r)return r(n.error,t),null;throw n.error}function D(e,t){return Object.keys(e).length===0?t:`---
|
|
12
|
+
${stringify(e,{lineWidth:0}).trimEnd()}
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
${
|
|
16
|
-
`;)r++;continue}e+=o,r++;}return e}async function jr(t){let e=await _(t);if(!e)return null;let r;try{r=JSON.parse(RK(e));}catch{return null}if(!r||typeof r!="object")return null;let n=r.mcpServers;if(n===void 0||typeof n!="object"||n===null)return null;let o={};for(let[i,a]of Object.entries(n)){let l=_K(a);l&&(o[i]=l);}return {mcpServers:o}}var Qc=d(()=>{A();s(NC,"parseStringMap");s(_K,"parseServer");s(RK,"stripJsonComments");s(jr,"parseMcp");});function Hg(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}async function su(t){let e=await _(t);if(e===null)return null;if(!e.trim())return {allow:[],deny:[],ask:[]};let r;try{r=parse(e);}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=Hg(n.allow),i=Hg(n.deny),a=Hg(n.ask);return {allow:o,deny:i,ask:a}}var zg=d(()=>{A();s(Hg,"ensureStringArray");s(su,"parsePermissions");});function FC(t){return typeof t=="string"?t.trim():""}function Jt(t){return FC(t.command)}function Re(t){return FC(t.prompt)}function Vg(t){let e=Jt(t),r=Re(t);return t.type==="prompt"?r||e:e||r}function Lo(t){return Jt(t).length>0}function kn(t){return Vg(t).length>0}var Ur=d(()=>{s(FC,"trimString");s(Jt,"getHookCommand");s(Re,"getHookPrompt");s(Vg,"getHookText");s(Lo,"hasHookCommand");s(kn,"hasHookText");});function kK(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=Vg(e);if(!n)return null;let o=typeof e.type=="string"&&CK.includes(e.type)?e.type:void 0,i=typeof e.timeout=="number"&&Number.isFinite(e.timeout)?e.timeout:void 0,a=Re(e)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function iu(t){let e=await _(t);if(e===null)return null;if(!e.trim())return {};let r;try{r=parse(e);}catch{return null}if(!r||typeof r!="object")return null;let n={},o=r;for(let[i,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=kK(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var CK,Jg=d(()=>{A();Ur();CK=["command","prompt"];s(kK,"toHookEntry");s(iu,"parseHooks");});async function au(t){let e=await _(t);if(e===null||!e.trim())return [];let r=e.split(/\r?\n/),n=[];for(let o of r){let i=o.trim();i===""||i.startsWith("#")||n.push(i);}return n}var Yg=d(()=>{A();s(au,"parseIgnore");});async function we(t,e={}){let r=join(t,".agentsmesh"),n=await j(r)?r:t,[o,i,a,l,c,m,p,u]=await Promise.all([Ls(join(n,"rules"),e),Os(join(n,"commands"),e),ws(join(n,"agents"),e),As(join(n,"skills"),e),jr(join(n,"mcp.json")),su(join(n,"permissions.yaml")),iu(join(n,"hooks.yaml")),au(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Ti=d(()=>{Yc();Xc();Zc();ol();Qc();zg();Jg();Yg();A();s(we,"loadCanonicalFiles");});function vC(t){return basename(t.source,".md")}function sl(t,e){let r=new Map(t.rules.map(p=>[vC(p),p]));for(let p of e.rules)r.set(vC(p),p);let n=new Map(t.commands.map(p=>[p.name,p]));for(let p of e.commands)n.set(p.name,p);let o=new Map(t.agents.map(p=>[p.name,p]));for(let p of e.agents)o.set(p.name,p);let i=new Map(t.skills.map(p=>[p.name,p]));for(let p of e.skills)i.set(p.name,p);let a=LK(t.mcp,e.mcp),l=OK(t.permissions,e.permissions),c=wK(t.hooks,e.hooks),m=AK(t.ignore,e.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(i.values()),mcp:a,permissions:l,hooks:c,ignore:m}}function LK(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}function OK(t,e){if(!t&&!e)return null;let r=Xg(t?.allow??[],e?.allow??[]),n=Xg(t?.deny??[],e?.deny??[]),o=Xg(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}function Xg(t,e){let r=new Set(t),n=[...t];for(let o of e)r.has(o)||(r.add(o),n.push(o));return n}function wK(t,e){if(!t&&!e)return null;let r={},n=new Set([...Object.keys(t??{}),...Object.keys(e??{})]);for(let o of n){let i=e?.[o],a=t?.[o];r[o]=i!==void 0&&i.length>0?i:a??[];}return r}function AK(t,e){let r=new Set(t),n=[...t];for(let o of e)r.has(o)||(r.add(o),n.push(o));return n}var Zg=d(()=>{s(vC,"ruleSlug");s(sl,"mergeCanonicalFiles");s(LK,"mergeMcp");s(OK,"mergePermissions");s(Xg,"mergeUniqueStrings");s(wK,"mergeHooks");s(AK,"mergeIgnore");});function FK(t){return typeof t=="string"?t:t.level}function MC(t){return NK.includes(t)}function $C(t,e,r,n){for(let o of DK){let i=FK(e[o.feature]);if(i==="none")continue;let a=typeof t.generators[o.generator]=="function",l=MC(o.feature)&&typeof t.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${i}" but generators.${o.generator}`+(MC(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function lu(t){return GK.parse(t)}var wo,GC,bK,PK,jC,TK,xK,DK,NK,vK,MK,$K,GK,Qg=d(()=>{wo=z$1.union([z$1.enum(["native","embedded","partial","none"]),z$1.object({level:z$1.enum(["native","embedded","partial","none"]),flavor:z$1.string().optional()})]),GC=z$1.object({rules:wo,additionalRules:wo,commands:wo,agents:wo,skills:wo,mcp:wo,hooks:wo,ignore:wo,permissions:wo}),bK=z$1.object({name:z$1.string(),generateRules:z$1.function(),importFrom:z$1.function(),generateCommands:z$1.function().optional(),generateAgents:z$1.function().optional(),generateSkills:z$1.function().optional(),generateMcp:z$1.function().optional(),generatePermissions:z$1.function().optional(),generateHooks:z$1.function().optional(),generateIgnore:z$1.function().optional(),lint:z$1.function().optional()}).passthrough(),PK=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),jC=z$1.object({paths:PK}).passthrough(),TK=z$1.object({capabilities:GC,detectionPaths:z$1.array(z$1.string()),layout:jC,scopeExtras:z$1.function().optional()}).passthrough(),xK=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],DK=[{feature:"commands",generator:"generateCommands"},{feature:"agents",generator:"generateAgents"},{feature:"skills",generator:"generateSkills"},{feature:"mcp",generator:"generateMcp"},{feature:"hooks",generator:"generateHooks"},{feature:"ignore",generator:"generateIgnore"},{feature:"permissions",generator:"generatePermissions"}],NK=["mcp","hooks","ignore","permissions"];s(FK,"capabilityLevel");s(MC,"canUseScopedSettings");s($C,"validateCapabilityImplementations");vK=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),MK=z$1.object({displayName:z$1.string().min(1),category:z$1.enum(["cli","ide","agent-platform"]),officialUrl:z$1.string().min(1),shortDescription:z$1.string().min(1)}).passthrough(),$K=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:MK,generators:bK,capabilities:GC,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:jC,globalSupport:TK.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:vK.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),GK=$K.superRefine((t,e)=>{for(let r of xK)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});$C(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&$C(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});s(lu,"validateDescriptor");});function UC(){if(qg)return qg;let t=Pt.filter(r=>r!==void 0&&typeof r.id=="string"),e=new Map(t.map(r=>[r.id,r]));return t.length===Pt.length&&(qg=e),e}function mu(t){let e=lu(t);cu.set(e.id,e);}function nt(t){return cu.get(t)??UC().get(t)}function pu(){return [...cu.values()]}function BC(){return [...new Set([...UC().keys(),...cu.keys()])]}var cu,qg,ce=d(()=>{Tt();Qg();cu=new Map;s(UC,"builtinDescriptors");s(mu,"registerTargetDescriptor");s(nt,"getDescriptor");s(pu,"getAllDescriptors");s(BC,"getAllRegisteredDescriptorIds");});function KC(t,e){return nt(t)?.conversionDefaults?.[e]}function WC(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function il(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],i=WC(o,n);if(i!==void 0)return i;let a=KC(e,"commandsToSkills");return a!==void 0?a:r??false}function or(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],i=WC(o,n);if(i!==void 0)return i;let a=KC(e,"agentsToSkills");return a!==void 0?a:r??false}var al=d(()=>{ce();s(KC,"builtinDefault");s(WC,"resolveConversionValue");s(il,"shouldConvertCommandsToSkills");s(or,"shouldConvertAgentsToSkills");});function Kr(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function Br(t){return typeof t=="string"?{level:t}:t}function HC(t){return {rules:Br(t.rules),additionalRules:Br(t.additionalRules),commands:Br(t.commands),agents:Br(t.agents),skills:Br(t.skills),mcp:Br(t.mcp),hooks:Br(t.hooks),ignore:Br(t.ignore),permissions:Br(t.permissions)}}var xi=d(()=>{s(Kr,"cap");s(Br,"normalizeCapabilityValue");s(HC,"normalizeTargetCapabilities");});function zC(t){for(let e of Pt)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}function jK(t){let e=[];for(let n of t)if(n.sharedArtifacts)for(let[o,i]of Object.entries(n.sharedArtifacts))i==="owner"&&e.push({targetId:n.id,prefix:o});let r=[];for(let n=0;n<e.length;n++)for(let o=n+1;o<e.length;o++){let i=e[n],a=e[o];i===void 0||a===void 0||(i.prefix===a.prefix||i.prefix.startsWith(a.prefix)||a.prefix.startsWith(i.prefix))&&r.push({a:i,b:a});}return r}function VC(t){let e=jK(t);if(e.length===0)return;let r=e.map(({a:n,b:o})=>` - "${n.targetId}" owns "${n.prefix}" and "${o.targetId}" owns "${o.prefix}"`);throw new Error(`Shared-artifact ownership conflict: two targets claim the same or overlapping prefix.
|
|
15
|
+
${t}`}var B=d(()=>{s(x,"parseFrontmatter");s(J1,"extractBody");s(Yr,"tryParseFrontmatter");s(Fo,"parseOrSkipFrontmatter");s(D,"serializeFrontmatter");});function q1(e){let t=e.replace(/\.[^.]*$/,"").toUpperCase();return Y1.has(t)}function nE(e){let t=[],r=e.split(/[\\/]/);for(let n of r)if(!(n===""||n==="."||n==="..")){if(X1.test(n)){t.push({segment:n,reason:"illegal-character"});continue}if(/[. ]$/.test(n)){t.push({segment:n,reason:"trailing-dot-or-space"});continue}q1(n)&&t.push({segment:n,reason:"reserved-name"});}return t}var Y1,X1,oE=d(()=>{Y1=new Set(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"]),X1=new RegExp('[<>:"|?*\\u0000-\\u001F]');s(q1,"segmentReservedName");s(nE,"findWindowsPathIssues");});function Mo(e,t){let r=nE(t);if(r.length===0)return;let n=r.map(o=>`${o.segment} (${o.reason})`).join(", ");throw new sd(e,t,`canonical ${e} name "${t}" is not portable to Windows: ${n}. Rename the file.`)}function id(e,t,r){let n=new Map;for(let o of t){let i=o.lastIndexOf("/"),a=o.lastIndexOf("\\"),l=Math.max(i,a),c=l===-1?o:o.slice(l+1),m=c.endsWith(r)?c.slice(0,-r.length):c,p=n.get(m);if(p!==void 0&&p!==o)throw new sd(e,m,`canonical ${e} files collide on slug "${m}": ${p} vs ${o}. Rename one.`);n.set(m,o);}}var sd,Mm=d(()=>{oE();sd=class extends Error{static{s(this,"CanonicalNameError");}feature;name;constructor(t,r,n){super(n),this.feature=t,this.name=r;}};s(Mo,"assertCanonicalName");s(id,"assertNoBasenameCollisions");});function Dl(e,t,r,n,o={}){if(r.length===0)return;let i=new Set(n),a=o.handledByOtherReader,l=new Set,c=0;for(let p of r){if(i.has(p)||basename(p).startsWith("."))continue;let u=extname(p).toLowerCase();eV.has(u)&&(a?.has(u)||(l.add(u),c++));}if(c===0)return;let m=[...l].sort().join(", ");y.warn(`Skipped ${c} ${e} file(s) in ${t} (format${l.size===1?"":"s"}: ${m}). agentsmesh ${e} are parsed from .md files only.`);}var eV,ad=d(()=>{ne();eV=new Set([".toml",".yaml",".yml",".json"]);s(Dl,"warnIfUnrecognizedResourceFormats");});function iE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}async function Hs(e,t={}){let r=await U(e),n=r.filter(i=>{if(!i.endsWith(".md"))return false;let a=basename(i,".md");return a==="_root"||!a.startsWith("_")});Dl("rules",e,r,n,{handledByOtherReader:t.handledByOtherReader});let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("rule",p);let u=p==="_root",f=c.root===true,g=c.trigger,h=typeof g=="string"&&tV.includes(g)?g:void 0,R=c.codex_emit,_=R==="execution"?"execution":R==="advisory"?"advisory":void 0,I=c.codex_instruction==="override"?"override":void 0;o.push({source:i,root:u||f,targets:iE(c.targets),description:typeof c.description=="string"?c.description:"",globs:iE(c.globs),body:m,...h!==void 0&&{trigger:h},..._!==void 0&&{codexEmit:_},...I!==void 0&&{codexInstructionVariant:I}});}return o}var tV,$m=d(()=>{A();B();Mm();ad();tV=["always_on","model_decision","glob","manual"];s(iE,"toStrArray");s(Hs,"parseRules");});function lE(e){return e===true||e==="true"||e===1||e==="1"}function cE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function zs(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));Dl("commands",e,r,n,{handledByOtherReader:t.handledByOtherReader}),id("command",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("command",p);let u=cE(c.allowedTools),f=cE(c["allowed-tools"]),g=u.length>0?u:f;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",allowedTools:g,outputStyle:lE(c.outputStyle)||lE(c["output-style"]),body:m});}return o}var Gm=d(()=>{A();B();Mm();ad();s(lE,"toBool");s(cE,"toToolsArray");s(zs,"parseCommands");});function Qi(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function pE(e){return e===true||e==="true"||e===1||e==="1"}function uE(e){if(typeof e=="number"&&Number.isInteger(e)&&e>=0)return e;if(typeof e=="string"){let t=parseInt(e,10);return Number.isInteger(t)&&t>=0?t:0}return 0}function rV(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}async function Vs(e,t={}){let r=await U(e),n=r.filter(i=>i.endsWith(".md")&&!basename(i).startsWith("_"));Dl("agents",e,r,n,{handledByOtherReader:t.handledByOtherReader}),id("agent",n,".md");let o=[];for(let i of n){let a=await k(i);if(!a)continue;let l=Fo(a,i,t.onParseError);if(!l)continue;let{frontmatter:c,body:m}=l,p=basename(i,".md");Mo("agent",p);let u=Qi(c.tools),f=Qi(c.tools),g=u.length>0?u:f,h=Qi(c.disallowedTools),R=Qi(c["disallowed-tools"]),_=h.length>0?h:R,S=Qi(c.mcpServers),I=Qi(c["mcp-servers"]),b=S.length>0?S:I,P=Qi(c.skills),T=uE(c.maxTurns),W=uE(c["max-turns"]),$=T>0?T:W>0?W:0;o.push({source:i,name:p,description:typeof c.description=="string"?c.description:"",tools:g,disallowedTools:_,model:typeof c.model=="string"?c.model:"",permissionMode:typeof c.permissionMode=="string"?c.permissionMode:typeof c["permission-mode"]=="string"?c["permission-mode"]:"",maxTurns:$,mcpServers:b,hooks:rV(c.hooks),skills:P,memory:typeof c.memory=="string"?c.memory:"",outputStyle:pE(c.outputStyle)||pE(c["output-style"]),body:m});}return o}var jm=d(()=>{A();B();Mm();ad();s(Qi,"toStrArray");s(pE,"toBool");s(uE,"toInt");s(rV,"toHooks");s(Vs,"parseAgents");});function Ty(e){let t=e.toLowerCase(),r=t.lastIndexOf("."),n=r>0?t.slice(0,r):t;return nV.get(n)}function vn(e){return Ty(e)!==void 0}function ld(e){return Ty(e)==="preserved"}function cd(e){return Ty(e)==="noise"}function dE(e){return oV.has(e)}function fE(e){return sV.has(e)}var nV,oV,sV,$o=d(()=>{nV=new Map([["contributing","noise"],["changelog","noise"],["changes","noise"],["history","noise"],["code_of_conduct","noise"],["security","noise"],["support","noise"],["maintainers","noise"],["governance","noise"],["authors","noise"],["contributors","noise"],["codeowners","noise"],["citation","noise"],["acknowledgments","noise"],["acknowledgements","noise"],["license","preserved"],["license-mit","preserved"],["license-apache","preserved"],["license-bsd","preserved"],["license-gpl","preserved"],["notice","preserved"],["copying","preserved"],["copyright","preserved"],["readme","preserved"]]),oV=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]),sV=new Set(["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]);s(Ty,"boilerplateKind");s(vn,"isBoilerplate");s(ld,"isPreservedBoilerplate");s(cd,"isNoiseBoilerplate");s(dE,"isRepoNonContentDir");s(fE,"isRepoNonContentFile");});async function lV(e){return await k(e)??""}function mV(e){let t=e.lastIndexOf(".");return t<0?true:cV.has(e.slice(t).toLowerCase())}function uV(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function gE(e){let t=await Ws(e),r=[];for(let n of t){let i=n.slice(e.length+1).replace(/\\/g,"/");if(i===md||i.endsWith(`/${md}`))continue;let a=i.split("/")[0];if(pV.some(m=>a===m)||i===".DS_Store"||i.endsWith("/.DS_Store"))continue;let l=i.includes("/")?i.slice(i.lastIndexOf("/")+1):i;if(mV(l)&&cd(l))continue;let c=await lV(n);r.push({relativePath:i,absolutePath:n,content:c});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}async function pd(e,t={}){let r=join(e,md),n=await k(r);if(!n)return null;let o=Fo(n,r,t.onParseError);if(!o)return null;let{frontmatter:i,body:a}=o,l=await gE(e),m=(typeof i.name=="string"?uV(i.name):"")||basename(e);return Mo("skill",m),{source:r,name:m,description:typeof i.description=="string"?i.description:"",body:a,supportingFiles:l}}async function Js(e,t={}){let r;try{r=await readdir(e,{withFileTypes:!0});}catch{return []}let n=[];for(let o of r){if(!o.isDirectory()||o.name.startsWith("_"))continue;Mo("skill",o.name);let i=join(e,o.name),a=join(i,md),l=await k(a);if(!l)continue;let c=Fo(l,a,t.onParseError);if(!c)continue;let{frontmatter:m,body:p}=c,u=await gE(i);n.push({source:a,name:o.name,description:typeof m.description=="string"?m.description:"",body:p,supportingFiles:u});}return n.sort((o,i)=>o.name.localeCompare(i.name))}var md,cV,pV,Nl=d(()=>{A();gy();B();$o();Mm();s(lV,"readContent");md="SKILL.md",cV=new Set([".md",".mdx",".rst",".txt"]);s(mV,"isMarkdownLikeDoc");pV=[".git","node_modules"];s(uV,"sanitizeSkillName");s(gE,"listSupportingFiles");s(pd,"parseSkillDirectory");s(Js,"parseSkills");});function hE(e){return e===null||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}function dV(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.type=="string"?t.type:"stdio",n=hE(t.env),o=typeof t.description=="string"?t.description:void 0,i=typeof t.url=="string"?t.url:"";if(i)return {...o!==void 0&&{description:o},type:r,url:i,headers:hE(t.headers),env:n};let a=typeof t.command=="string"?t.command:"";if(!a)return null;let l=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}function fV(e){let t="",r=0,n=e.length;for(;r<n;){let o=e[r];if(o==='"'){for(t+=o,r++;r<n;){let i=e[r];if(t+=i,i==="\\")r++,r<n&&(t+=e[r]);else if(i==='"')break;r++;}r++;continue}if(o==="/"&&e[r+1]==="*"){for(r+=2;r<n;){if(e[r]==="*"&&e[r+1]==="/"){r+=2;break}r++;}continue}if(o==="/"&&e[r+1]==="/"){for(r+=2;r<n&&e[r]!==`
|
|
16
|
+
`;)r++;continue}t+=o,r++;}return t}async function Xr(e){let t=await k(e);if(!t)return null;let r;try{r=JSON.parse(fV(t));}catch{return null}if(!r||typeof r!="object")return null;let n=r.mcpServers;if(n===void 0||typeof n!="object"||n===null)return null;let o={};for(let[i,a]of Object.entries(n)){let l=dV(a);l&&(o[i]=l);}return {mcpServers:o}}var Um=d(()=>{A();s(hE,"parseStringMap");s(dV,"parseServer");s(fV,"stripJsonComments");s(Xr,"parseMcp");});function Dy(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}async function ud(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {allow:[],deny:[],ask:[]};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=Dy(n.allow),i=Dy(n.deny),a=Dy(n.ask);return {allow:o,deny:i,ask:a}}var Ny=d(()=>{A();s(Dy,"ensureStringArray");s(ud,"parsePermissions");});function yE(e){return typeof e=="string"?e.trim():""}function Ze(e){return yE(e.command)}function At(e){return yE(e.prompt)}function vy(e){let t=Ze(e),r=At(e);return e.type==="prompt"?r||t:t||r}function Go(e){return Ze(e).length>0}function Fn(e){return vy(e).length>0}var qr=d(()=>{s(yE,"trimString");s(Ze,"getHookCommand");s(At,"getHookPrompt");s(vy,"getHookText");s(Go,"hasHookCommand");s(Fn,"hasHookText");});function RV(e){if(!e||typeof e!="object")return null;let t=e,r=t.matcher;if(typeof r!="string")return null;let n=vy(t);if(!n)return null;let o=typeof t.type=="string"&&yV.includes(t.type)?t.type:void 0,i=typeof t.timeout=="number"&&Number.isFinite(t.timeout)?t.timeout:void 0,a=At(t)||void 0;return {matcher:r,command:n,...i!==void 0&&{timeout:i},...o&&{type:o},...a&&{prompt:a}}}async function dd(e){let t=await k(e);if(t===null)return null;if(!t.trim())return {};let r;try{r=parse(t);}catch{return null}if(!r||typeof r!="object")return null;let n={},o=r;for(let[i,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=RV(c);m&&l.push(m);}l.length>0&&(n[i]=l);}return n}var yV,Fy=d(()=>{A();qr();yV=["command","prompt"];s(RV,"toHookEntry");s(dd,"parseHooks");});async function fd(e){let t=await k(e);if(t===null||!t.trim())return [];let r=t.split(/\r?\n/),n=[];for(let o of r){let i=o.trim();i===""||i.startsWith("#")||n.push(i);}return n}var My=d(()=>{A();s(fd,"parseIgnore");});async function Gt(e,t={}){let r=join(e,".agentsmesh"),n=await j(r)?r:e,[o,i,a,l,c,m,p,u]=await Promise.all([Hs(join(n,"rules"),t),zs(join(n,"commands"),t),Vs(join(n,"agents"),t),Js(join(n,"skills"),t),Xr(join(n,"mcp.json")),ud(join(n,"permissions.yaml")),dd(join(n,"hooks.yaml")),fd(join(n,"ignore"))]);return {rules:o,commands:i,agents:a,skills:l,mcp:c,permissions:m,hooks:p,ignore:u}}var Zi=d(()=>{$m();Gm();jm();Nl();Um();Ny();Fy();My();A();s(Gt,"loadCanonicalFiles");});function RE(e){return basename(e.source,".md")}function vl(e,t){let r=new Map(e.rules.map(p=>[RE(p),p]));for(let p of t.rules)r.set(RE(p),p);let n=new Map(e.commands.map(p=>[p.name,p]));for(let p of t.commands)n.set(p.name,p);let o=new Map(e.agents.map(p=>[p.name,p]));for(let p of t.agents)o.set(p.name,p);let i=new Map(e.skills.map(p=>[p.name,p]));for(let p of t.skills)i.set(p.name,p);let a=SV(e.mcp,t.mcp),l=kV(e.permissions,t.permissions),c=IV(e.hooks,t.hooks),m=LV(e.ignore,t.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(i.values()),mcp:a,permissions:l,hooks:c,ignore:m}}function SV(e,t){if(!e&&!t)return null;let r=e?.mcpServers??{},n=t?.mcpServers??{};return {mcpServers:{...r,...n}}}function kV(e,t){if(!e&&!t)return null;let r=$y(e?.allow??[],t?.allow??[]),n=$y(e?.deny??[],t?.deny??[]),o=$y(e?.ask??[],t?.ask??[]);return {allow:r,deny:n,ask:o}}function $y(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}function IV(e,t){if(!e&&!t)return null;let r={},n=new Set([...Object.keys(e??{}),...Object.keys(t??{})]);for(let o of n){let i=t?.[o],a=e?.[o];r[o]=i!==void 0&&i.length>0?i:a??[];}return r}function LV(e,t){let r=new Set(e),n=[...e];for(let o of t)r.has(o)||(r.add(o),n.push(o));return n}var Gy=d(()=>{s(RE,"ruleSlug");s(vl,"mergeCanonicalFiles");s(SV,"mergeMcp");s(kV,"mergePermissions");s($y,"mergeUniqueStrings");s(IV,"mergeHooks");s(LV,"mergeIgnore");});function xV(e){return typeof e=="string"?e:e.level}function _E(e){return AV.includes(e)}function SE(e,t,r,n){for(let o of OV){let i=xV(t[o.feature]);if(i==="none")continue;let a=typeof e.generators[o.generator]=="function",l=_E(o.feature)&&typeof e.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${i}" but generators.${o.generator}`+(_E(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function gd(e){return FV.parse(e)}var Uo,kE,CV,EV,IE,wV,bV,OV,AV,TV,PV,DV,NV,vV,FV,jy=d(()=>{Uo=z$1.union([z$1.enum(["native","embedded","partial","none"]),z$1.object({level:z$1.enum(["native","embedded","partial","none"]),flavor:z$1.string().optional()})]),kE=z$1.object({rules:Uo,additionalRules:Uo,commands:Uo,agents:Uo,skills:Uo,mcp:Uo,hooks:Uo,ignore:Uo,permissions:Uo}),CV=z$1.object({name:z$1.string(),generateRules:z$1.function(),importFrom:z$1.function(),generateCommands:z$1.function().optional(),generateAgents:z$1.function().optional(),generateSkills:z$1.function().optional(),generateMcp:z$1.function().optional(),generatePermissions:z$1.function().optional(),generateHooks:z$1.function().optional(),generateIgnore:z$1.function().optional(),lint:z$1.function().optional()}).passthrough(),EV=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),IE=z$1.object({paths:EV}).passthrough(),wV=z$1.object({capabilities:kE,detectionPaths:z$1.array(z$1.string()),layout:IE,scopeExtras:z$1.function().optional()}).passthrough(),bV=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],OV=[{feature:"commands",generator:"generateCommands"},{feature:"agents",generator:"generateAgents"},{feature:"skills",generator:"generateSkills"},{feature:"mcp",generator:"generateMcp"},{feature:"hooks",generator:"generateHooks"},{feature:"ignore",generator:"generateIgnore"},{feature:"permissions",generator:"generatePermissions"}],AV=["mcp","hooks","ignore","permissions"];s(xV,"capabilityLevel");s(_E,"canUseScopedSettings");s(SE,"validateCapabilityImplementations");TV=z$1.object({commandsToSkills:z$1.boolean().optional(),agentsToSkills:z$1.boolean().optional()}).strict(),PV=z$1.object({displayName:z$1.string().min(1),category:z$1.enum(["cli","ide","agent-platform"]),officialUrl:z$1.string().min(1),shortDescription:z$1.string().min(1)}).passthrough(),DV=z$1.discriminatedUnion("kind",[z$1.object({kind:z$1.literal("basename"),suffix:z$1.string().min(1)}),z$1.object({kind:z$1.literal("skillDir")}),z$1.object({kind:z$1.literal("firstSegment")})]),NV=z$1.object({pickPaths:z$1.array(z$1.object({prefix:z$1.string().min(1),feature:z$1.enum(["commands","rules","agents","skills"]),strategy:DV})).optional(),inferPick:z$1.function().optional(),dialectHints:z$1.array(z$1.object({frontmatterKey:z$1.string().min(1)})).optional()}).strict(),vV=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),metadata:PV,generators:CV,capabilities:kE,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:IE,globalSupport:wV.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string()),nativeInstall:NV.optional(),excludeFromStarterInit:z$1.boolean().optional(),conversionDefaults:TV.optional(),emitScopedSettings:z$1.function().optional(),mergeGeneratedOutputContent:z$1.function().optional(),postProcessHookOutputs:z$1.function().optional(),preservesManualActivation:z$1.boolean().optional()}).passthrough(),FV=vV.superRefine((e,t)=>{for(let r of bV)r in e&&t.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});SE(e,e.capabilities,t,["capabilities"]),e.globalSupport!==void 0&&SE(e,e.globalSupport.capabilities,t,["globalSupport","capabilities"]);});s(gd,"validateDescriptor");});function LE(){if(Uy)return Uy;let e=Pe.filter(r=>r!==void 0&&typeof r.id=="string"),t=new Map(e.map(r=>[r.id,r]));return e.length===Pe.length&&(Uy=t),t}function yd(e){let t=gd(e);hd.set(t.id,t);}function re(e){return hd.get(e)??LE().get(e)}function Rd(){return [...hd.values()]}function _d(){return [...new Set([...LE().keys(),...hd.keys()])]}var hd,Uy,rt=d(()=>{xe();jy();hd=new Map;s(LE,"builtinDescriptors");s(yd,"registerTargetDescriptor");s(re,"getDescriptor");s(Rd,"getAllDescriptors");s(_d,"getAllRegisteredDescriptorIds");});function CE(e,t){return re(e)?.conversionDefaults?.[t]}function EE(e,t){if(e!==void 0)return typeof e=="boolean"?e:e[t]}function Fl(e,t,r,n="project"){let o=e.conversions?.commands_to_skills?.[t],i=EE(o,n);if(i!==void 0)return i;let a=CE(t,"commandsToSkills");return a!==void 0?a:r??false}function gr(e,t,r,n="project"){let o=e.conversions?.agents_to_skills?.[t],i=EE(o,n);if(i!==void 0)return i;let a=CE(t,"agentsToSkills");return a!==void 0?a:r??false}var Ml=d(()=>{rt();s(CE,"builtinDefault");s(EE,"resolveConversionValue");s(Fl,"shouldConvertCommandsToSkills");s(gr,"shouldConvertAgentsToSkills");});function Zr(e,t){return t!==void 0?{level:e,flavor:t}:{level:e}}function Qr(e){return typeof e=="string"?{level:e}:e}function By(e){return {rules:Qr(e.rules),additionalRules:Qr(e.additionalRules),commands:Qr(e.commands),agents:Qr(e.agents),skills:Qr(e.skills),mcp:Qr(e.mcp),hooks:Qr(e.hooks),ignore:Qr(e.ignore),permissions:Qr(e.permissions)}}var ea=d(()=>{s(Zr,"cap");s(Qr,"normalizeCapabilityValue");s(By,"normalizeTargetCapabilities");});function wE(e){for(let t of Pe)if(t.sharedArtifacts){for(let[r,n]of Object.entries(t.sharedArtifacts))if(n==="owner"&&e.startsWith(r))return t.id}return null}function MV(e){let t=[];for(let n of e)if(n.sharedArtifacts)for(let[o,i]of Object.entries(n.sharedArtifacts))i==="owner"&&t.push({targetId:n.id,prefix:o});let r=[];for(let n=0;n<t.length;n++)for(let o=n+1;o<t.length;o++){let i=t[n],a=t[o];i===void 0||a===void 0||(i.prefix===a.prefix||i.prefix.startsWith(a.prefix)||a.prefix.startsWith(i.prefix))&&r.push({a:i,b:a});}return r}function bE(e){let t=MV(e);if(t.length===0)return;let r=t.map(({a:n,b:o})=>` - "${n.targetId}" owns "${n.prefix}" and "${o.targetId}" owns "${o.prefix}"`);throw new Error(`Shared-artifact ownership conflict: two targets claim the same or overlapping prefix.
|
|
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 Ky=d(()=>{xe();s(wE,"ownerTargetIdForSharedPath");s(MV,"findSharedArtifactOwnershipConflicts");s(bE,"assertSharedArtifactOwnersUnique");});function $V(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function J(e){return `${$l}${e}`}function $e(e){let t={name:J(e.name),description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],D(t,e.body.trim()||"")}function Sd(e,t){if(e["x-agentsmesh-kind"]!=="command")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith($l)?t.slice($l.length):t.startsWith(Bm)?t.slice(Bm.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",allowedTools:$V(e["x-agentsmesh-allowed-tools"])}:null}function kd(e,t){return D({description:e.description,"allowed-tools":e.allowedTools},t.trim()||"")}var $l,Bm,we=d(()=>{B();$l="am-command-",Bm="ab-command-";s($V,"toStringArray");s(J,"commandSkillDirName");s($e,"serializeCommandSkill");s(Sd,"parseCommandSkillFrontmatter");s(kd,"serializeImportedCommand");});function Id(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function GV(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))Array.isArray(n)&&(t[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return t}function K(e){return `${Gl}${e}`}function De(e){let t={name:K(e.name),description:e.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":e.name,"x-agentsmesh-tools":e.tools.length>0?e.tools:void 0,"x-agentsmesh-disallowed-tools":e.disallowedTools.length>0?e.disallowedTools:void 0,"x-agentsmesh-model":e.model||void 0,"x-agentsmesh-permission-mode":e.permissionMode||void 0,"x-agentsmesh-max-turns":e.maxTurns>0?e.maxTurns:void 0,"x-agentsmesh-mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(e.hooks).length>0?e.hooks:void 0,"x-agentsmesh-skills":e.skills.length>0?e.skills:void 0,"x-agentsmesh-memory":e.memory||void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),D(t,e.body.trim()||"")}function jl(e,t){if(e["x-agentsmesh-kind"]!=="agent")return null;let r=typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"",n=t.startsWith(Gl)?t.slice(Gl.length):t.startsWith(Km)?t.slice(Km.length):"",o=(r||n).trim();return o?{name:o,description:typeof e.description=="string"?e.description:"",tools:Id(e["x-agentsmesh-tools"]),disallowedTools:Id(e["x-agentsmesh-disallowed-tools"]),model:typeof e["x-agentsmesh-model"]=="string"?e["x-agentsmesh-model"]:"",permissionMode:typeof e["x-agentsmesh-permission-mode"]=="string"?e["x-agentsmesh-permission-mode"]:"",maxTurns:typeof e["x-agentsmesh-max-turns"]=="number"?e["x-agentsmesh-max-turns"]:Number(e["x-agentsmesh-max-turns"]??0),mcpServers:Id(e["x-agentsmesh-mcp-servers"]),hooks:GV(e["x-agentsmesh-hooks"]),skills:Id(e["x-agentsmesh-skills"]),memory:typeof e["x-agentsmesh-memory"]=="string"?e["x-agentsmesh-memory"]:""}:null}function Ys(e,t){let r={name:e.name,description:e.description,tools:e.tools,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),D(r,t.trim()||"")}var Gl,Km,ue=d(()=>{B();Gl="am-agent-",Km="ab-agent-";s(Id,"toStringArray");s(GV,"toHooks");s(K,"projectedAgentSkillDirName");s(De,"serializeProjectedAgentSkill");s(jl,"parseProjectedAgentSkillFrontmatter");s(Ys,"serializeImportedAgent");});function Wm(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function PE(e,t){return new RegExp(`${Wm(e)}[\\s\\S]*?${Wm(t)}`,"g")}function zm(e,t,r){return e.replace(PE(t,r),"").trim()}function BV(e){if(e.indexOf("---")!==0)return {prefix:"",body:e.trim()};let t=e.indexOf("---",3);return t===-1?{prefix:"",body:e.trim()}:{prefix:e.slice(0,t+3),body:e.slice(t+3).trim()}}function Ed(e,t){let{prefix:r,body:n}=BV(e),o=n?`${t}
|
|
20
20
|
|
|
21
|
-
${n}`:
|
|
22
|
-
`)}function YK(t){return t.length===0?"":[gu,...t.map(JK),hu].join(`
|
|
23
|
-
`)}function mt(t,e){let r=YK(e),n=rh(t,gu,hu);return r?n?`${n}
|
|
21
|
+
${n}`:t;return r?`${r}
|
|
24
22
|
|
|
25
|
-
${
|
|
23
|
+
${o}`:o}function KV(e){let t=e.replace(/\\/g,"/"),r=t.lastIndexOf(".agentsmesh/");return r>=0?t.slice(r+12):t.startsWith("rules/")?t:join("rules",basename(t)).replace(/\\/g,"/")}function WV(e){return {source:KV(e.source),description:e.description,globs:e.globs,targets:e.targets}}function HV(e){return `${xE}${JSON.stringify(WV(e))}${TE}`}function zV(e){let t=[HV(e)];return e.description.trim()&&t.push(`## ${e.description.trim()}`,""),t.push(e.body.trim(),AE),t.filter(r=>r.length>0).join(`
|
|
24
|
+
`)}function VV(e){return e.length===0?"":[Ld,...e.map(zV),Cd].join(`
|
|
25
|
+
`)}function ae(e,t){let r=VV(t),n=zm(e,Ld,Cd);return r?n?`${n}
|
|
26
26
|
|
|
27
|
-
${
|
|
27
|
+
${r}`:r:n}function OE(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function JV(e){try{let t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return typeof r.source!="string"||!r.source.startsWith("rules/")?null:{source:r.source,description:typeof r.description=="string"?r.description:"",globs:OE(r.globs),targets:OE(r.targets)}}catch{return null}}function YV(e,t){let r=e.trim();if(!t.trim())return r;let n=`## ${t.trim()}`;return r.startsWith(n)?r.slice(n.length).trim():r}function DE(e){let t=[],r=PE(Ld,Cd);return {rootContent:e.replace(r,o=>{let i=o.replace(Ld,"").replace(Cd,"").trim(),a=new RegExp(`${Wm(xE)}([\\s\\S]*?)${Wm(TE)}([\\s\\S]*?)${Wm(AE)}`,"g");for(let l of i.matchAll(a)){let c=l[1],m=l[2];if(c===void 0||m===void 0)continue;let p=JV(c);p&&t.push({...p,body:YV(m,p.description)});}return ""}).trim(),rules:t}}var Wy,Hy,Hm,zy,Ld,Cd,AE,xE,TE,Ue=d(()=>{Wy="<!-- agentsmesh:root-generation-contract:start -->",Hy="<!-- agentsmesh:root-generation-contract:end -->",Hm="<!-- agentsmesh:lessons-contract:start -->",zy="<!-- agentsmesh:lessons-contract:end -->",Ld="<!-- agentsmesh:embedded-rules:start -->",Cd="<!-- agentsmesh:embedded-rules:end -->",AE="<!-- agentsmesh:embedded-rule:end -->",xE="<!-- agentsmesh:embedded-rule:start ",TE=" -->";s(Wm,"escapeRegExp");s(PE,"managedBlockPattern");s(zm,"stripManagedBlock");s(BV,"splitFrontmatterPrefix");s(Ed,"insertAtBodyTop");s(KV,"ruleSource");s(WV,"markerForRule");s(HV,"embeddedRuleStart");s(zV,"renderRule");s(VV,"renderEmbeddedRulesBlock");s(ae,"appendEmbeddedRulesBlock");s(OE,"toStringArray");s(JV,"parseMarker");s(YV,"stripGeneratedHeading");s(DE,"extractEmbeddedRules");});function vE(e){let t=Jy(e);return Ed(t,NE)}function Jy(e){let t=zm(e,Wy,Hy);t=t.replace(`
|
|
28
28
|
|
|
29
|
-
${
|
|
29
|
+
${NE}`,"");for(let r of RJ)t=t.replace(`
|
|
30
30
|
|
|
31
|
-
${r}`,"");return
|
|
31
|
+
${r}`,"");return t.trim()}var Vy,XV,qV,QV,ZV,eJ,tJ,rJ,nJ,oJ,sJ,iJ,aJ,lJ,cJ,mJ,pJ,uJ,dJ,fJ,gJ,hJ,yJ,NE,RJ,Yy=d(()=>{Ue();Vy="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is `.agentsmesh/`; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",XV="AgentsMesh is a config sync library for AI coding tools. The only canonical source of truth is the `.agentsmesh` directory at the project root; files emitted into target formats such as `AGENTS.md`, `.claude/`, `.cursor/`, `.junie/`, and similar directories are generated artifacts. When making changes, edit canonical config first, then regenerate and verify the target outputs. Preserve the library's bidirectional contract: import native tool config into canonical form, generate back to target-specific layouts, and keep projected or embedded features round-trippable rather than treating them as plain text exports.",qV="AgentsMesh syncs AI coding tool configuration from a single canonical `.agentsmesh` directory. All target-specific files (`.claude/`, `.cursor/`, `AGENTS.md`, etc.) are generated artifacts \u2014 edit canonical config first, then regenerate. The import/generate contract is bidirectional and lossless: embedded or projected features round-trip without data loss.",QV="Create agents, skills, commands, rules, hooks, and MCP in `.agentsmesh`, then run `agentsmesh generate` to sync each tool's native files. Edit `.agentsmesh`, not generated outputs.",ZV="Use Claude-style Markdown in `.agentsmesh`: `agents/*.md`, `commands/*.md`, and `skills/*/SKILL.md`; keep rules in `rules/*.md`, hooks in `hooks.yaml`, MCP in `mcp.json`, permissions in `permissions.yaml`, and ignore patterns in `ignore`, then run `agentsmesh generate`.",eJ="Create canonical files in `.agentsmesh`: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Then run `agentsmesh generate`.",tJ="`.agentsmesh` is the only folder you edit or add these files in: `rules/_root.md` and `rules/*.md` are Markdown rules; `commands/*.md`, `agents/*.md`, and `skills/*/SKILL.md` plus supporting files use Claude-style frontmatter Markdown; `mcp.json` is MCP JSON; `hooks.yaml` and `permissions.yaml` are YAML; `ignore` is gitignore-style text. Do not edit generated tool files; run `agentsmesh generate`.",rJ="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, and `merge` as needed; never edit generated tool files.",nJ="`agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",oJ="**MUST follow when changing any rule, agent, command, skill, hook, MCP server, permission, or ignore pattern.** `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally), and `.agentsmesh` is the only place to add or edit canonical items: `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed; never edit generated tool files.",sJ="**NEVER edit generated files** (`.claude/`, `.cursor/`, `AGENTS.md`, `.github/copilot-instructions.md`, and similar target outputs) \u2014 `agentsmesh generate` overwrites them. **All changes MUST go through `.agentsmesh` first**: edit `rules/_root.md`, `rules/*.md`, `commands/*.md`, `agents/*.md`, `skills/*/SKILL.md` plus supporting files, `mcp.json`, `hooks.yaml`, `permissions.yaml`, and `ignore`; `agentsmesh.yaml` selects targets/features (`agentsmesh.local.yaml` overrides locally); if missing run `agentsmesh init`, use `agentsmesh import --from <tool>` for native configs, `agentsmesh install <source>` or `install --sync` for reusable packs, then run `agentsmesh generate`. Use `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, and `refresh` as needed.",iJ=Vy,aJ=`## Project-Specific Rules
|
|
32
32
|
|
|
33
|
-
${
|
|
33
|
+
${Vy}`,lJ=`## AgentsMesh Generation Contract
|
|
34
34
|
|
|
35
|
-
${
|
|
35
|
+
${Vy}`,cJ=`## AgentsMesh Generation Contract
|
|
36
36
|
|
|
37
|
-
${
|
|
37
|
+
${XV}`,mJ=`## AgentsMesh Generation Contract
|
|
38
38
|
|
|
39
|
-
${
|
|
39
|
+
${qV}`,pJ=`## AgentsMesh Generation Contract
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${QV}`,uJ=`## AgentsMesh Generation Contract
|
|
42
42
|
|
|
43
|
-
${
|
|
43
|
+
${ZV}`,dJ=`## AgentsMesh Generation Contract
|
|
44
44
|
|
|
45
|
-
${
|
|
45
|
+
${eJ}`,fJ=`## AgentsMesh Generation Contract
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${tJ}`,gJ=`## AgentsMesh Generation Contract
|
|
48
48
|
|
|
49
|
-
${
|
|
49
|
+
${rJ}`,hJ=`## AgentsMesh Generation Contract
|
|
50
|
+
|
|
51
|
+
${nJ}`,yJ=`## AgentsMesh Generation Contract
|
|
52
|
+
|
|
53
|
+
${oJ}`,NE=`${Wy}
|
|
50
54
|
## AgentsMesh Generation Contract
|
|
51
55
|
|
|
52
|
-
${
|
|
53
|
-
${
|
|
54
|
-
`)}]}var
|
|
55
|
-
`)break;i+=a,o++;}return i===r}function
|
|
56
|
-
`,
|
|
57
|
-
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function
|
|
58
|
-
`);continue}if(!
|
|
59
|
-
`);continue}let{frontmatter:f,body:g}=u.value,h=
|
|
60
|
-
`),null}return R?{destPath:R.destPath,toPath:R.toPath,feature:t.feature,content:R.content}:null},"mapEntry")});l.push(...p);}return l}function Qk(t){let e=t.canonicalFilename;return e.includes("/")||e.includes("\\")?e:posix.join(t.canonicalDir,e)}async function tH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);let o=Qk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=join(r,o);return await O(dirname(c)),await S(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}]}return []}function eH(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object")return {};let r=e.mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,l=typeof a.description=="string"?a.description:void 0;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:Ts(a.args),env:wn(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:wn(a.headers),env:wn(a.env),description:l});}return n}async function rH(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);let o=Qk(t);for(let i of e){let a=join(r,i),l=await _(a);if(l===null)continue;let c=eH(l);return Object.keys(c).length===0?[]:(await Ht(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:t.feature}])}return []}function Zk(t,e,r,n,o){switch(t.mode){case "singleFile":return QW(t,e,r,n,o);case "directory":return qW(t,e,r,n,o);case "flatFile":return tH(t,e,r,n);case "mcpJson":return rH(t,e,r,n)}}async function nH(t,e,r,n,o){let i=yh(t.source,e),a=yh(t.fallbacks,e);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await Zk(t,i,r,n,o);if(l.length>0)return l}return a.length>0?Zk(t,a,r,n,o):[]}function oH(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function Y(t,e,r,n){let o=t.importer;if(!o)return [];let i=n?.normalize??await W(t.id,e,r),a=[];for(let l of Yk)for(let c of oH(o,l))a.push(...await nH(c,r,e,t.id,i));return a}var Ot=d(()=>{gt();A();Vr();U();cr();ft();Me();Jk();Eo();Xk();s(QW,"runSingleFile");s(qW,"runDirectory");s(Qk,"resolveCanonicalFilePath");s(tH,"runFlatFile");s(eH,"parseMcpJson");s(rH,"runMcpJson");s(Zk,"dispatchSpec");s(nH,"runSpec");s(oH,"specsForFeature");s(Y,"runDescriptorImport");});async function qk(t,e={}){let r=e.scope??"project",n=[],o=await W(On,t,r);return n.push(...await Y(Su,t,r,{normalize:o})),await et(t,r==="global"?ar:me,On,n,o),n}var tE=d(()=>{gt();rt();Ot();dl();_h();s(qk,"importFromAider");});function sH(t,e){return rE(e).some(n=>iH(t,n))}function eE(t,e){return t.filter(r=>sH(r,e))}function rE(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,n,o]=e;if(!n)return [t];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of rE(r+l+o))a.push(c);return a}function iH(t,e){return aH(e).test(t)}function aH(t){let e=[],r=0;for(;r<t.length;){if(t.startsWith("**",r)){let i=t.slice(r+2);if(i.length===0&&e.length===0)e.push(".*");else if(e.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(t[r]==="*"){e.push("[^/]*"),r+=1;continue}if(t[r]==="?"){e.push("[^/]"),r+=1;continue}if(t[r]==="{"){e.push("(?:"),r+=1;continue}if(t[r]==="}"){e.push(")"),r+=1;continue}if(t[r]===","){e.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(t[r])?e.push("\\"+t[r]):e.push(t[r]),r+=1;}let n="^"+e.join("")+"$";return new RegExp(n)}var nE=d(()=>{s(sH,"globMatch");s(eE,"globFilter");s(rE,"expandBraces");s(iH,"matchOne");s(aH,"globToRegex");});function J(t,e,r,n={}){let o=[],{rules:i}=t;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(e,i[0].source),message:"Rules exist but no root rule (_root.md or root: true). Add a root rule."}),n.checkGlobMatches===false)return o;for(let l of i){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(eE(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(e,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ct=d(()=>{nE();s(J,"validateRules");});function sE(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:On}))}var iE=d(()=>{Ct();dl();s(sE,"lintRules");});function D(t,e,r){return {level:"warning",file:t,target:e,message:r}}function lH(t){return t.length===0?"":t.length===1?t[0]:t.length===2?`${t[0]} and ${t[1]}`:`${t.slice(0,-1).join(", ")}, and ${t[t.length-1]}`}function Ds(t,e,r,n){let o=n?.unsupportedBy??e,i=lH(r);return D(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${i} are projected.`)}var wt=d(()=>{s(D,"createWarning");s(lH,"formatOxfordComma");s(Ds,"createUnsupportedHookWarning");});function aE(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function lE(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function cE(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var mE=d(()=>{wt();s(aE,"lintHooks");s(lE,"lintPermissions");s(cE,"lintMcp");});function E(t,e){return at(t).relative(t,e).replace(/\\/g,"/")}async function L(t,e){return G(at(t).join(t,e)).catch(()=>[])}function uE(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function fH(t,e,r,n){let o=posix.dirname(e),i=posix.dirname(r);for(;o!==n&&o!==".";)uE(t,o,i),o=posix.dirname(o),i=posix.dirname(i);}function F(t,e,r,n){t.set(e,`${r}/${basename(e,n)}.md`);}function $(t,e,r){if(!e.startsWith(`${r}/`))return;let n=e.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");t.set(e,`${pE}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith(ll)?ll:o.startsWith(qc)?qc:null;if(l&&a==="SKILL.md"){t.set(e,`${uH}/${o.slice(l.length)}.md`);return}let c=o.startsWith(cl)?cl:o.startsWith(tm)?tm:null;if(c&&a==="SKILL.md"){t.set(e,`${dH}/${o.slice(c.length)}.md`);return}let m=`${pE}/${o}`;a==="SKILL.md"&&uE(t,`${r}/${o}`,m);let p=`${m}/${a}`;t.set(e,p),a!=="SKILL.md"&&fH(t,e,p,`${r}/${o}`);}function gH(t){return t.split("/").filter(Boolean)[0]??""}async function hH(){if(Rh!==void 0)return Rh;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(Tt(),dE)),e=new Set;for(let r of t)for(let n of [r.project.rootInstructionPath,r.project.skillDir,...r.project.managedOutputs?.dirs??[],...r.project.managedOutputs?.files??[],...r.detectionPaths,r.globalSupport?.layout.rootInstructionPath,r.globalSupport?.layout.skillDir,...r.globalSupport?.layout.managedOutputs?.dirs??[],...r.globalSupport?.layout.managedOutputs?.files??[],...r.globalSupport?.detectionPaths??[]])if(n!==void 0){let o=gH(n);o.startsWith(".")&&e.add(o);}return Rh=e,e}function Sh(t){return t.split("/").some(e=>e.startsWith("."))}async function yH(t){let e=[],r=await hH(),n=at(t);async function o(i){let a=n.join(t,i),l=await readdir(a,{withFileTypes:true}).catch(()=>[]);for(let c of l){let m=i?`${i}/${c.name}`:c.name;if(c.isDirectory()){if(r.has(c.name)||Sh(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(t,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||Sh(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&e.push(n.join(t,m));}}return s(o,"walk"),await o(""),e}async function Cu(t,e){let r=await yH(e);for(let n of r){let o=E(e,n),i=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!i&&!a)continue;let l=posix.dirname(o);if(Sh(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${pH}/${c}.md`);}}var pH,uH,dH,pE,Rh,kt=d(()=>{pe();A();Lt();ut();pH=".agentsmesh/rules",uH=".agentsmesh/commands",dH=".agentsmesh/agents",pE=".agentsmesh/skills";s(E,"rel");s(L,"listFiles");s(uE,"addDirectoryMapping");s(fH,"addAncestorMappings");s(F,"addSimpleFileMapping");s($,"addSkillLikeMapping");s(gH,"firstPathSegment");s(hH,"targetRootSegments");s(Sh,"hasHiddenSegment");s(yH,"listScopedAgentsFiles");s(Cu,"addScopedAgentsMappings");});var w,lt,At,Rt=d(()=>{w=".agentsmesh/rules",lt=".agentsmesh/commands",At=".agentsmesh/agents";});async function Ch(t,e,r="project"){if(r==="global"){t.set(bo,`${w}/_root.md`);for(let n of await L(e,ar))$(t,E(e,n),ar);t.set(Di,".agentsmesh/ignore");return}t.set(ir,`${w}/_root.md`);for(let n of await L(e,me))$(t,E(e,n),me);t.set(Ao,".agentsmesh/ignore");}var fE=d(()=>{kt();dl();Rt();s(Ch,"buildAiderImportPaths");});var Ni,Jr,Fi,Ns,cm,gE,hE,mm=d(()=>{Ni="amazon-q",Jr=".amazonq/rules",Fi=".amazonq/mcp.json",Ns=".aws/amazonq/rules",cm=".aws/amazonq/mcp.json",gE=".agentsmesh/rules",hE=".agentsmesh/mcp.json";});async function kh(t,e,r="project"){let n=r==="global"?Ns:Jr;for(let o of await L(e,n)){let i=E(e,o);F(t,i,w,".md");}}var yE=d(()=>{kt();mm();Rt();s(kh,"buildAmazonQImportPaths");});var mr,ue,An,Eh,To,pr,xo,_E,vi=d(()=>{mr="AGENTS.md",ue=".agents/skills",An=".amp/settings.json",Eh=".config/amp",To=`${Eh}/AGENTS.md`,pr=`${Eh}/skills`,xo=`${Eh}/settings.json`,_E=".agentsmesh/rules";});async function Lh(t,e,r="project"){if(r==="global"){t.set(To,`${w}/_root.md`);for(let n of await L(e,pr))$(t,E(e,n),pr);t.set(xo,".agentsmesh/mcp.json");return}t.set(mr,`${w}/_root.md`);for(let n of await L(e,ue))$(t,E(e,n),ue);t.set(An,".agentsmesh/mcp.json");}var RE=d(()=>{kt();vi();Rt();s(Lh,"buildAmpImportPaths");});var Mi,ku,Yr,ur,pm,Xr,bn,um,Pn,Tn,dm,yl,Oh,$i,Eu,IE,Gi=d(()=>{Mi="antigravity",ku=".agents",Yr=`${ku}/rules`,ur=`${Yr}/general.md`,pm=`${Yr}/_root.md`,Xr=`${ku}/skills`,bn=`${ku}/workflows`,um=`${ku}/antigravity/mcp_config.json`,Pn=".gemini/antigravity/GEMINI.md",Tn=".gemini/antigravity/skills",dm=".gemini/antigravity/workflows",yl=".gemini/antigravity/mcp_config.json",Oh=".agentsmesh/rules/_root.md",$i=".agentsmesh/rules",Eu=".agentsmesh/commands",IE=".agentsmesh/mcp.json";});async function wh(t,e,r="project"){if(r==="global"){t.set(Pn,`${w}/_root.md`);for(let n of await L(e,Tn))$(t,E(e,n),Tn);t.set(yl,".agentsmesh/mcp.json");return}t.set(ur,`${w}/_root.md`),t.set(pm,`${w}/_root.md`);for(let n of await L(e,Yr)){let o=E(e,n);o===ur||o===pm||F(t,o,w,".md");}for(let n of await L(e,bn))F(t,E(e,n),lt,".md");for(let n of await L(e,Xr))$(t,E(e,n),Xr);}var SE=d(()=>{kt();Gi();Rt();s(wh,"buildAntigravityImportPaths");});var de,Lu,$e,dr,Ge,xn,Dn,Ou,Do,No,Nn,Fo,Ah,bh,Ph,Th,ji=d(()=>{de="augment-code",Lu=".augment",$e=`${Lu}/rules`,dr=`${Lu}/commands`,Ge=`${Lu}/skills`,xn=`${Lu}/settings.json`,Dn=".augmentignore",Ou=".augment",Do=`${Ou}/rules`,No=`${Ou}/commands`,Nn=`${Ou}/skills`,Fo=`${Ou}/settings.json`,Ah=".agentsmesh/rules",bh=".agentsmesh/mcp.json",Ph=".agentsmesh/hooks.yaml",Th=".agentsmesh/ignore";});async function xh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Do))F(t,E(e,n),w,".md");for(let n of await L(e,No))F(t,E(e,n),lt,".md");for(let n of await L(e,Nn))$(t,E(e,n),Nn);t.set(Fo,".agentsmesh/mcp.json");return}for(let n of await L(e,$e))F(t,E(e,n),w,".md");for(let n of await L(e,dr))F(t,E(e,n),lt,".md");for(let n of await L(e,Ge))$(t,E(e,n),Ge);t.set(xn,".agentsmesh/mcp.json"),t.set(Dn,".agentsmesh/ignore");}var CE=d(()=>{kt();ji();Rt();s(xh,"buildAugmentCodeImportPaths");});var kE,Fs,EE,fm,gm,hm,ym,_m,vo,Dh,Rm,_l,Im,Sm,wu,Au,Nh,Cm,Fh,Ui,LE,Mo=d(()=>{kE="claude-code",Fs=".claude/CLAUDE.md",EE="CLAUDE.md",fm=".claude/rules",gm=".claude/commands",hm=".claude/agents",ym=".claude/skills",_m=".claude/settings.json",vo=".claude/hooks.json",Dh=".claude/output-styles",Rm=".claudeignore",_l=".mcp.json",Im=".claude.json",Sm=".agentsmesh/rules",wu=".agentsmesh/commands",Au=".agentsmesh/agents",Nh=".agentsmesh/skills",Cm=".agentsmesh/mcp.json",Fh=".agentsmesh/permissions.yaml",Ui=".agentsmesh/hooks.yaml",LE=".agentsmesh/ignore";});async function vh(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${w}/_root.md`),t.set(vo,Ui),r==="project"&&t.set("CLAUDE.md",`${w}/_root.md`),r==="global")for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");for(let n of await L(e,".claude/rules"))F(t,E(e,n),w,".md");for(let n of await L(e,".claude/commands"))F(t,E(e,n),lt,".md");for(let n of await L(e,".claude/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".claude/skills"))$(t,E(e,n),".claude/skills");}var OE=d(()=>{kt();Mo();Rt();s(vh,"buildClaudeCodeImportPaths");});var vs,$o,Bi,Go,wE,te,Fn,Ms,Ki,Wi,Hi,zi,Mh,$s,bu,$h,Gh,AE,bE,fr=d(()=>{vs="cline",$o=".clinerules",Bi=".clineignore",Go=".cline/cline_mcp_settings.json",wE=".cline/mcp_settings.json",te=".cline/skills",Fn=".clinerules/workflows",Ms="AGENTS.md",Ki=".clinerules/hooks",Wi="Documents/Cline/Rules",Hi="Documents/Cline/Workflows",zi="Documents/Cline/Hooks",Mh=".agentsmesh/hooks.yaml",$s=".agentsmesh/rules",bu=".agentsmesh/commands",$h=".agentsmesh/ignore",Gh=".agentsmesh/mcp.json",AE=".agentsmesh/agents",bE=".agentsmesh/skills";});async function jh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Wi))F(t,E(e,n),w,".md");for(let n of await L(e,Hi))F(t,E(e,n),lt,".md");for(let n of await L(e,te))$(t,E(e,n),te);t.set(Go,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${w}/_root.md`);for(let n of await L(e,".clinerules")){let o=E(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||F(t,o,w,".md");}for(let n of await L(e,".clinerules/workflows"))F(t,E(e,n),lt,".md");for(let n of await L(e,".cline/skills"))$(t,E(e,n),".cline/skills");}var PE=d(()=>{kt();fr();Rt();s(jh,"buildClineImportPaths");});async function Uh(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${w}/_root.md`),t.set(".codex/AGENTS.override.md",`${w}/_root.md`)):(t.set("AGENTS.md",`${w}/_root.md`),t.set("codex.md",`${w}/_root.md`),await Cu(t,e)),r==="project")for(let n of await L(e,".codex/instructions"))F(t,E(e,n),w,".md");for(let n of await L(e,".codex/rules")){let o=E(e,n);o.endsWith(".rules")?F(t,o,w,".rules"):o.endsWith(".md")&&F(t,o,w,".md");}for(let n of await L(e,".codex/agents"))F(t,E(e,n),At,".toml");for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");}var TE=d(()=>{kt();Rt();s(Uh,"buildCodexCliImportPaths");});var Rl,Zr,vn,Bh,Pu,jo,Kh,je,Il,km,Tu,xu,Wh,Mn=d(()=>{Rl="continue",Zr=".continue/rules",vn=".continue/prompts",Bh=".continue/mcpServers",Pu=`${Bh}/agentsmesh.json`,jo=`${Zr}/general.md`,Kh=`${Zr}/_root.md`,je=".continue/skills",Il=".continue/AGENTS.md",km=".continue/config.yaml",Tu=".agentsmesh/rules",xu=".agentsmesh/commands",Wh=".agentsmesh/mcp.json";});async function Hh(t,e,r="project"){t.set(jo,`${w}/_root.md`),t.set(Kh,`${w}/_root.md`);for(let n of await L(e,".continue/rules")){let o=E(e,n);o===jo||o===Kh||F(t,o,w,".md");}for(let n of await L(e,".continue/prompts"))t.set(E(e,n),`${lt}/${basename(n,".md")}.md`);for(let n of await L(e,".continue/skills"))$(t,E(e,n),".continue/skills");if(r==="global")for(let n of await L(e,".agents/skills"))$(t,E(e,n),".agents/skills");}var xE=d(()=>{kt();Mn();Rt();s(Hh,"buildContinueImportPaths");});function IH(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${w}/${basename(e,".instructions.md")}.md`);return}F(t,e,w,".md");}async function zh(t,e){t.set(".github/copilot-instructions.md",`${w}/_root.md`);for(let r of await L(e,".github/copilot"))t.set(E(e,r),`${w}/${basename(r,".instructions.md")}.md`);for(let r of await L(e,".github/instructions"))IH(t,E(e,r));for(let r of await L(e,".github/prompts"))t.set(E(e,r),`${lt}/${basename(r,".prompt.md")}.md`);for(let r of await L(e,".github/agents"))t.set(E(e,r),`${At}/${basename(r,".agent.md")}.md`);for(let r of await L(e,".github/skills"))$(t,E(e,r),".github/skills");}var DE=d(()=>{kt();Rt();s(IH,"addCopilotInstructionMapping");s(zh,"buildCopilotImportPaths");});var gr,hr,ee,Ue,Uo,NE,Nu,Be,Vi,Fu,vu,Mu,Sl=d(()=>{gr="crush",hr="CRUSH.md",ee=".crush/skills",Ue="crush.json",Uo=".crushignore",NE=".config/crush",Nu=`${NE}/crush.json`,Be=".config/crush/skills",Vi=`${NE}/CRUSH.md`,Fu=".agentsmesh/rules",vu=".agentsmesh/ignore",Mu=".agentsmesh/mcp.json";});async function Vh(t,e,r="project"){if(r==="global"){for(let n of await L(e,Be))$(t,E(e,n),Be);return}t.set(hr,`${Fu}/_root.md`),t.set(Ue,Mu),t.set(Uo,vu);for(let n of await L(e,ee))$(t,E(e,n),ee);}var FE=d(()=>{kt();Sl();s(Vh,"buildCrushImportPaths");});var vE,Gs,ME,yr,Bo,_r,Rr,fe,Ke,$n,$u,Qr,Jh,SH,Cl,qr,Gn,js,Us,$E,kl,Yh,Em,Xh,zt=d(()=>{vE="cursor",Gs="AGENTS.md",ME=".cursorrules",yr=".cursor/rules",Bo=`${yr}/general.mdc`,_r=".cursor/commands",Rr=".cursor/agents",fe=".cursor/skills",Ke=".cursor/mcp.json",$n=".cursor/hooks.json",$u=".cursor/settings.json",Qr=".cursorignore",Jh=".cursorindexingignore",SH=".agentsmesh-exports/cursor",Cl=`${SH}/user-rules.md`,qr=".cursor/AGENTS.md",Gn=".agentsmesh/rules",js=".agentsmesh/commands",Us=".agentsmesh/agents",$E=".agentsmesh/skills",kl=".agentsmesh/mcp.json",Yh=".agentsmesh/permissions.yaml",Em=".agentsmesh/hooks.yaml",Xh=".agentsmesh/ignore";});async function Zh(t,e,r="project"){if(r==="global"){t.set(Ke,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))F(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))F(t,E(e,n),lt,".md");for(let n of await L(e,".cursor/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))$(t,E(e,n),".cursor/skills");return}t.set("AGENTS.md",`${w}/_root.md`);for(let n of await L(e,".cursor/rules"))F(t,E(e,n),w,".mdc");for(let n of await L(e,".cursor/commands"))F(t,E(e,n),lt,".md");for(let n of await L(e,".cursor/agents"))F(t,E(e,n),At,".md");for(let n of await L(e,".cursor/skills"))$(t,E(e,n),".cursor/skills");}var GE=d(()=>{kt();zt();Rt();s(Zh,"buildCursorImportPaths");});var jn,Ir,ge,Ko,Wo,tn,Ji,jE,El=d(()=>{jn="deepagents-cli",Ir=".deepagents/AGENTS.md",ge=".deepagents/skills",Ko=".mcp.json",Wo=".deepagents/AGENTS.md",tn=".deepagents/skills",Ji=".deepagents/.mcp.json",jE=".agentsmesh/rules";});async function Qh(t,e,r="project"){if(r==="global"){t.set(Wo,`${w}/_root.md`);for(let n of await L(e,tn))$(t,E(e,n),tn);t.set(Ji,".agentsmesh/mcp.json");return}t.set(Ir,`${w}/_root.md`);for(let n of await L(e,ge))$(t,E(e,n),ge);t.set(Ko,".agentsmesh/mcp.json");}var UE=d(()=>{kt();El();Rt();s(Qh,"buildDeepagentsCliImportPaths");});var Sr,Cr,Ae,Un,Bn,Ho,Kn,Yi,Bs,BE,Xi=d(()=>{Sr="factory-droid",Cr="AGENTS.md",Ae=".factory/skills",Un=".factory/droids",Bn=".factory/mcp.json",Ho=".factory/AGENTS.md",Kn=".factory/skills",Yi=".factory/droids",Bs=".factory/mcp.json",BE=".agentsmesh/rules";});async function qh(t,e,r="project"){if(r==="global"){t.set(Ho,`${w}/_root.md`);for(let n of await L(e,Yi))F(t,E(e,n),At,".md");for(let n of await L(e,Kn))$(t,E(e,n),Kn);t.set(Bs,".agentsmesh/mcp.json");return}t.set(Cr,`${w}/_root.md`);for(let n of await L(e,Un))F(t,E(e,n),At,".md");for(let n of await L(e,Ae))$(t,E(e,n),Ae);t.set(Bn,".agentsmesh/mcp.json");}var KE=d(()=>{kt();Xi();Rt();s(qh,"buildFactoryDroidImportPaths");});async function ty(t,e){for(let r of await L(e,".gemini/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".gemini/commands")){let n=E(e,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),i=".gemini/commands/",c=(o.startsWith(i)?o.slice(i.length):o).split("/").filter(Boolean).join(":");t.set(n,`${lt}/${c}.md`);}for(let r of await L(e,".gemini/agents"))F(t,E(e,r),At,".md");for(let r of await L(e,".gemini/skills"))$(t,E(e,r),".gemini/skills");}var WE=d(()=>{kt();Rt();s(ty,"buildGeminiCliImportPaths");});var Wn,kr,be,zo,HE,Vo,Zi,Er,zE,VE,Ll=d(()=>{Wn="goose",kr=".goosehints",be=".agents/skills",zo=".gooseignore",HE=".config/goose",Vo=`${HE}/.goosehints`,Zi=`${HE}/.gooseignore`,Er=".agents/skills",zE=".agentsmesh/rules",VE=".agentsmesh/ignore";});async function ey(t,e,r="project"){if(r==="global"){t.set(Vo,`${w}/_root.md`);for(let n of await L(e,Er))$(t,E(e,n),Er);t.set(Zi,".agentsmesh/ignore");return}t.set(kr,`${w}/_root.md`);for(let n of await L(e,be))$(t,E(e,n),be);t.set(zo,".agentsmesh/ignore");}var JE=d(()=>{kt();Ll();Rt();s(ey,"buildGooseImportPaths");});var Jo,en,YE,Ol=d(()=>{Jo="jules",en="AGENTS.md",YE=".agentsmesh/rules";});async function ry(t,e,r="project"){r!=="global"&&t.set(en,`${w}/_root.md`);}var XE=d(()=>{Ol();Rt();s(ry,"buildJulesImportPaths");});var Qi,Ks,Gu,ZE,Hn,QE,CH,Lm,qi,Om,wl,Al,wm,Am,bm,Pm,Tm,kH,ju,ta,qE,ny,Uu,tL,eL,rL,nL,bl=d(()=>{Qi="junie",Ks=".junie",Gu=`${Ks}/guidelines.md`,ZE=`${Ks}/ci-guidelines.md`,Hn=`${Ks}/AGENTS.md`,QE="AGENTS.md",CH=`${Ks}/mcp`,Lm=`${CH}/mcp.json`,qi=`${Ks}/skills`,Om=`${Ks}/rules`,wl=`${Ks}/commands`,Al=`${Ks}/agents`,wm=".aiignore",Am=".junie",bm=`${Am}/skills`,Pm=`${Am}/agents`,Tm=`${Am}/commands`,kH=`${Am}/mcp`,ju=`${kH}/mcp.json`,ta=`${Am}/AGENTS.md`,qE=".agents/skills",ny=".agentsmesh/rules/_root.md",Uu=".agentsmesh/rules",tL=".agentsmesh/commands",eL=".agentsmesh/agents",rL=".agentsmesh/mcp.json",nL=".agentsmesh/ignore";});async function oy(t,e){t.set(Gu,`${w}/_root.md`),t.set(Hn,`${w}/_root.md`),t.set("AGENTS.md",`${w}/_root.md`);for(let r of await L(e,".junie/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".junie/commands"))F(t,E(e,r),lt,".md");for(let r of await L(e,".junie/agents"))F(t,E(e,r),At,".md");for(let r of await L(e,".junie/skills"))$(t,E(e,r),".junie/skills");}var oL=d(()=>{kt();bl();Rt();s(oy,"buildJunieImportPaths");});var Se,xm,zn,Yo,Xo,Zo,rn,Ws,Pl,Bu,ea,Tl,ra,Dm,Ku,xl,Hs,na,oa,sa,zs,Dl,Wu,sL,Vs,Nl,ia,iL,aL,aa=d(()=>{Se="kilo-code",xm=".kilo",zn="AGENTS.md",Yo=`${xm}/rules`,Xo=`${xm}/commands`,Zo=`${xm}/agents`,rn=`${xm}/skills`,Ws=`${xm}/mcp.json`,Pl=".kilocodeignore",Bu=".kilocode",ea=`${Bu}/rules`,Tl=`${Bu}/workflows`,ra=`${Bu}/skills`,Dm=`${Bu}/mcp.json`,Ku=".kilocodemodes",xl=".kilo",Hs=`${xl}/AGENTS.md`,na=`${xl}/rules`,oa=`${xl}/commands`,sa=`${xl}/agents`,zs=`${xl}/skills`,Dl=`${xl}/mcp.json`,Wu=".kilocodeignore",sL=".agents/skills",Vs=".agentsmesh/rules",Nl=".agentsmesh/commands",ia=".agentsmesh/agents",iL=".agentsmesh/mcp.json",aL=".agentsmesh/ignore";});async function sy(t,e,r="project"){if(r==="global"){t.set(Hs,`${w}/_root.md`);for(let n of await L(e,na))F(t,E(e,n),w,".md");for(let n of await L(e,oa))F(t,E(e,n),lt,".md");for(let n of await L(e,sa))F(t,E(e,n),At,".md");for(let n of await L(e,zs))$(t,E(e,n),zs);t.set(Dl,".agentsmesh/mcp.json");return}t.set(zn,`${w}/_root.md`);for(let n of await L(e,Yo))F(t,E(e,n),w,".md");for(let n of await L(e,Xo))F(t,E(e,n),lt,".md");for(let n of await L(e,Zo))F(t,E(e,n),At,".md");for(let n of await L(e,rn))$(t,E(e,n),rn);t.set(Ws,".agentsmesh/mcp.json");for(let n of await L(e,ea)){let o=E(e,n);if(basename(o)==="00-root.md"){t.set(o,`${w}/_root.md`);continue}F(t,o,w,".md");}for(let n of await L(e,Tl))F(t,E(e,n),lt,".md");for(let n of await L(e,ra))$(t,E(e,n),ra);t.set(Dm,".agentsmesh/mcp.json");}var lL=d(()=>{kt();aa();Rt();s(sy,"buildKiloCodeImportPaths");});var We,nn,Nm,on,Ce,sn,Js,LH,Fl,vl,la,an,Ys,ca,Fm,vm,cL,iy,ay,mL,pL,ly,uL,Ml=d(()=>{We="kiro",nn="AGENTS.md",Nm=".kiro",on=`${Nm}/steering`,Ce=`${Nm}/skills`,sn=`${Nm}/agents`,Js=`${Nm}/hooks`,LH=`${Nm}/settings`,Fl=`${LH}/mcp.json`,vl=".kiroignore",la=".kiro/steering",an=".kiro/steering/AGENTS.md",Ys=".kiro/skills",ca=".kiro/agents",Fm=".kiro/settings/mcp.json",vm=".kiro/settings/kiroignore",cL=".agents/skills",iy=".agentsmesh/rules/_root.md",ay=".agentsmesh/rules",mL=".agentsmesh/agents",pL=".agentsmesh/mcp.json",ly=".agentsmesh/hooks.yaml",uL=".agentsmesh/ignore";});async function cy(t,e,r="project"){if(r==="global"){t.set(an,`${w}/_root.md`);for(let n of await L(e,la)){let o=E(e,n);o!==an&&F(t,o,w,".md");}for(let n of await L(e,Ys))$(t,E(e,n),Ys);for(let n of await L(e,ca))F(t,E(e,n),At,".md");return}t.set(nn,`${w}/_root.md`);for(let n of await L(e,on))F(t,E(e,n),w,".md");for(let n of await L(e,Ce))$(t,E(e,n),Ce);for(let n of await L(e,sn))F(t,E(e,n),At,".md");}var dL=d(()=>{kt();Ml();Rt();s(cy,"buildKiroImportPaths");});var ln,Hu,Vn,Qo,qo,ts,cn,Jn,$l,Xs,ma,pa,ua,Zs,Qs,fL,Mm,zu,Vu,my,da=d(()=>{ln="opencode",Hu=".opencode",Vn="AGENTS.md",Qo=`${Hu}/rules`,qo=`${Hu}/commands`,ts=`${Hu}/agents`,cn=`${Hu}/skills`,Jn="opencode.json",$l=".config/opencode",Xs=`${$l}/AGENTS.md`,ma=`${$l}/rules`,pa=`${$l}/commands`,ua=`${$l}/agents`,Zs=`${$l}/skills`,Qs=`${$l}/opencode.json`,fL=".agents/skills",Mm=".agentsmesh/rules",zu=".agentsmesh/commands",Vu=".agentsmesh/agents",my=".agentsmesh/mcp.json";});async function py(t,e,r="project"){if(r==="global"){t.set(Xs,`${w}/_root.md`);for(let n of await L(e,ma))F(t,E(e,n),w,".md");for(let n of await L(e,pa))F(t,E(e,n),lt,".md");for(let n of await L(e,ua))F(t,E(e,n),At,".md");for(let n of await L(e,Zs))$(t,E(e,n),Zs);t.set(Qs,".agentsmesh/mcp.json");return}t.set(Vn,`${w}/_root.md`);for(let n of await L(e,Qo))F(t,E(e,n),w,".md");for(let n of await L(e,qo))F(t,E(e,n),lt,".md");for(let n of await L(e,ts))F(t,E(e,n),At,".md");for(let n of await L(e,cn))$(t,E(e,n),cn);t.set(Jn,".agentsmesh/mcp.json");}var gL=d(()=>{kt();da();Rt();s(py,"buildOpencodeImportPaths");});var Yn,Lr,re,hL,es,Or,yL,Gl=d(()=>{Yn="pi-agent",Lr="AGENTS.md",re=".pi/skills",hL=".pi/agent",es=`${hL}/AGENTS.md`,Or=`${hL}/skills`,yL=".agentsmesh/rules";});async function uy(t,e,r="project"){if(r==="global"){t.set(es,`${w}/_root.md`);for(let n of await L(e,Or))$(t,E(e,n),Or);return}t.set(Lr,`${w}/_root.md`);for(let n of await L(e,re))$(t,E(e,n),re);}var dy=d(()=>{kt();Gl();Rt();s(uy,"buildPiAgentImportPaths");});var Xn,wr,rs,Zn,Qn,He,qs,ti,ns,fa,ei,qn,ri,fy,_L,RL,jl=d(()=>{Xn="qwen-code",wr="QWEN.md",rs=".qwen/rules",Zn=".qwen/commands",Qn=".qwen/agents",He=".qwen/skills",qs=".qwen/settings.json",ti=".qwenignore",ns=".qwen/QWEN.md",fa=".qwen/settings.json",ei=".qwen/commands",qn=".qwen/skills",ri=".qwen/agents",fy=".agentsmesh/rules",_L=".agentsmesh/commands",RL=".agentsmesh/agents";});async function gy(t,e,r="project"){if(r==="global"){t.set(ns,`${w}/_root.md`),t.set(fa,".agentsmesh/mcp.json");for(let n of await L(e,ei))F(t,E(e,n),lt,".md");for(let n of await L(e,ri))F(t,E(e,n),At,".md");for(let n of await L(e,qn))$(t,E(e,n),qn);return}t.set(wr,`${w}/_root.md`),t.set(qs,".agentsmesh/mcp.json"),t.set(ti,".agentsmesh/ignore");for(let n of await L(e,rs))F(t,E(e,n),w,".md");for(let n of await L(e,Zn))F(t,E(e,n),lt,".md");for(let n of await L(e,Qn))F(t,E(e,n),At,".md");for(let n of await L(e,He))$(t,E(e,n),He);}var IL=d(()=>{kt();Rt();jl();s(gy,"buildQwenCodeImportPaths");});var to,mn,Pe,SL,Ul=d(()=>{to="replit-agent",mn="replit.md",Pe=".agents/skills",SL=".agentsmesh/rules";});async function hy(t,e,r="project"){if(r!=="global"){t.set(mn,`${w}/_root.md`);for(let n of await L(e,Pe))$(t,E(e,n),Pe);}}var yy=d(()=>{kt();Ul();Rt();s(hy,"buildReplitAgentImportPaths");});var ni,ga,pn,$m,os,ss,eo,Gm,jm,Bl,Um,Ju,oi,si,is,ha,Bm,ii,CL,ya,Yu,kL,EL,_a=d(()=>{ni="roo-code",ga=".roo",pn=`${ga}/rules/00-root.md`,$m=".roorules",os=`${ga}/rules`,ss=`${ga}/commands`,eo=`${ga}/skills`,Gm=`${ga}/mcp.json`,jm=".rooignore",Bl=".roomodes",Um="settings/custom_modes.yaml",Ju=".roo",oi=`${Ju}/rules`,si=`${Ju}/commands`,is=`${Ju}/skills`,ha="mcp_settings.json",Bm=".rooignore",ii=`${Ju}/AGENTS.md`,CL=".agents/skills",ya=".agentsmesh/rules",Yu=".agentsmesh/commands",kL=".agentsmesh/mcp.json",EL=".agentsmesh/ignore";});async function _y(t,e,r="project"){if(r==="global"){t.set(ii,`${w}/_root.md`);for(let n of await L(e,oi))F(t,E(e,n),w,".md");for(let n of await L(e,si))F(t,E(e,n),lt,".md");for(let n of await L(e,is))$(t,E(e,n),is);t.set(ha,".agentsmesh/mcp.json");return}t.set(pn,`${w}/_root.md`),t.set($m,`${w}/_root.md`);for(let n of await L(e,os)){let o=E(e,n);o!==pn&&F(t,o,w,".md");}for(let n of await L(e,".roo")){let o=E(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&F(t,o,w,".md");}for(let n of await L(e,ss))F(t,E(e,n),lt,".md");for(let n of await L(e,eo))$(t,E(e,n),eo);}var LL=d(()=>{kt();_a();Rt();s(_y,"buildRooCodeImportPaths");});var ro,Ar,OL,ne,as,wL,ls,ze,Kl,AL,Wl=d(()=>{ro="rovodev",Ar="AGENTS.md",OL=".rovodev",ne=`${OL}/skills`,as=`${OL}/mcp.json`,wL=".rovodev",ls=".rovodev/AGENTS.md",ze=".rovodev/skills",Kl=".rovodev/mcp.json",AL=".agentsmesh/rules";});async function Ry(t,e,r="project"){if(r==="global"){t.set(ls,`${w}/_root.md`);for(let n of await L(e,ze))$(t,E(e,n),ze);t.set(Kl,".agentsmesh/mcp.json");return}t.set(Ar,`${w}/_root.md`);for(let n of await L(e,ne))$(t,E(e,n),ne);t.set(as,".agentsmesh/mcp.json");}var bL=d(()=>{kt();Wl();Rt();s(Ry,"buildRovodevImportPaths");});var br,Xu,Ve,Je,Pr,Ra,Hl,cs,Tr,un,Km,PL,Wm,TL,xL,zl=d(()=>{br="trae",Xu=".trae",Ve=`${Xu}/rules`,Je=`${Ve}/project_rules.md`,Pr=`${Xu}/skills`,Ra=`${Xu}/mcp.json`,Hl=`${Xu}/.ignore`,cs=".trae/user_rules",Tr=".trae/user_rules/rules.md",un=".trae/skills",Km=".trae/mcp.json",PL=".agents/skills",Wm=".agentsmesh/rules",TL=".agentsmesh/mcp.json",xL=".agentsmesh/ignore";});async function Iy(t,e,r="project"){if(r==="global"){t.set(Tr,`${w}/_root.md`);for(let n of await L(e,cs)){let o=E(e,n);o!==Tr&&F(t,o,w,".md");}for(let n of await L(e,un))$(t,E(e,n),un);return}t.set(Je,`${w}/_root.md`);for(let n of await L(e,Ve)){let o=E(e,n);o!==Je&&F(t,o,w,".md");}for(let n of await L(e,Pr))$(t,E(e,n),Pr);}var DL=d(()=>{kt();zl();Rt();s(Iy,"buildTraeImportPaths");});var no,dn,Sy,he,ai,Ye,NL,Vl=d(()=>{no="warp",dn="AGENTS.md",Sy="WARP.md",he=".warp/skills",ai=".mcp.json",Ye=".warp/skills",NL=".agentsmesh/rules";});async function Cy(t,e,r="project"){if(r==="global"){for(let n of await L(e,Ye))$(t,E(e,n),Ye);return}t.set(dn,`${w}/_root.md`);for(let n of await L(e,he))$(t,E(e,n),he);t.set(ai,".agentsmesh/mcp.json");}var FL=d(()=>{kt();Vl();Rt();s(Cy,"buildWarpImportPaths");});async function ky(t,e){t.set("AGENTS.md",`${w}/_root.md`),t.set(".windsurfrules",`${w}/_root.md`),await Cu(t,e);for(let r of await L(e,".windsurf/rules"))F(t,E(e,r),w,".md");for(let r of await L(e,".windsurf/workflows"))F(t,E(e,r),lt,".md");for(let r of await L(e,".windsurf/skills"))$(t,E(e,r),".windsurf/skills");}var vL=d(()=>{kt();Rt();s(ky,"buildWindsurfImportPaths");});var fn,oo,OH,so,ML,Ia=d(()=>{fn=".rules",oo=".zed/settings.json",OH=".config/zed",so=`${OH}/settings.json`,ML=".agentsmesh/rules";});async function Ey(t,e,r="project"){if(r==="global"){t.set(so,".agentsmesh/mcp.json");return}t.set(fn,`${w}/_root.md`),t.set(oo,".agentsmesh/mcp.json");}var $L=d(()=>{Ia();Rt();s(Ey,"buildZedImportPaths");});var GL=d(()=>{fE();yE();RE();SE();CE();OE();PE();TE();xE();DE();FE();GE();UE();KE();WE();JE();XE();oL();lL();dL();gL();dy();IL();yy();LL();bL();DL();FL();vL();$L();});var Et=d(()=>{GL();});var wH,AH,bH,jL,Su,_h=d(()=>{Lt();ut();gk();tE();iE();mE();Et();dl();wH={name:On,primaryRootInstructionPath:ir,generateRules:mk,generateCommands:uk,generateAgents:dk,generateSkills:pk,generateIgnore:fk,importFrom:qk},AH={rootInstructionPath:ir,skillDir:me,managedOutputs:{dirs:[me],files:[ir,Ao]},paths:{rulePath(t){return ir},commandPath(t){return `${me}/${V(t)}/SKILL.md`},agentPath(t){return `${me}/${K(t)}/SKILL.md`}}},bH={rootInstructionPath:bo,skillDir:ar,managedOutputs:{dirs:[ar],files:[bo,Di]},rewriteGeneratedPath(t){return t===ir?bo:t===Ao?Di:t.startsWith(`${me}/`)?t.replace(`${me}/`,`${ar}/`):t},paths:{rulePath(t){return bo},commandPath(t){return `${ar}/${V(t)}/SKILL.md`},agentPath(t){return `${ar}/${K(t)}/SKILL.md`}}},jL={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},Su={id:On,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:wH,capabilities:jL,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:sE,lint:{hooks:aE,permissions:lE,mcp:cE},supportsConversion:{commands:true,agents:true},project:AH,globalSupport:{capabilities:jL,detectionPaths:[bo,Di,ar],layout:bH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[ir],global:[bo]},canonicalDir:lk,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ao],global:[Di]},canonicalDir:".agentsmesh",canonicalFilename:ck}},buildImportPaths:Ch,detectionPaths:[ir,Ao]};});function UL(t){let e=[];for(let r of t.rules){if(r.targets.length>0&&!r.targets.includes(Ni))continue;let n=r.root?"_root":basename(r.source,".md");e.push({path:`${Jr}/${n}.md`,content:r.body.trim()});}return e}function BL(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Fi,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var KL=d(()=>{mm();s(UL,"generateRules");s(BL,"generateMcp");});async function WL(t,e){let r=e?.scope??"project";return Y(Zu,t,r)}var HL=d(()=>{Ot();Ly();s(WL,"importFromAmazonQ");});function zL(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ni}))}var VL=d(()=>{Ct();mm();s(zL,"lintRules");});var TH,xH,DH,NH,Zu,Ly=d(()=>{KL();HL();VL();Et();mm();TH={name:Ni,generateRules:UL,generateMcp:BL,importFrom:WL},xH={managedOutputs:{dirs:[Jr],files:[Fi]},paths:{rulePath(t,e){return `${Jr}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},DH={managedOutputs:{dirs:[Ns],files:[cm]},rewriteGeneratedPath(t){return t.startsWith(`${Jr}/`)?t.replace(`${Jr}/`,`${Ns}/`):t===Fi?cm:t},paths:{rulePath(t,e){return `${Ns}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return null}}},NH={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Zu={id:Ni,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:TH,capabilities:{rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Amazon Q Developer config found (.amazonq/rules/ or .amazonq/mcp.json).",lintRules:zL,project:xH,globalSupport:{capabilities:NH,detectionPaths:[Ns,cm],layout:DH},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Jr],global:[Ns]},canonicalDir:gE,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Fi],global:[cm]},canonicalDir:".agentsmesh",canonicalFilename:hE}},buildImportPaths:kh,detectionPaths:[Jr,Fi]};});function JL(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:mr,content:o}]:[]}function YL(t){return st(t,ue)}function XL(t){return t.commands.map(e=>({path:`${ue}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function ZL(t){return t.agents.map(e=>({path:`${ue}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var QL=d(()=>{rt();Wt();ut();Lt();vi();s(JL,"generateRules");s(YL,"generateSkills");s(XL,"generateCommands");s(ZL,"generateAgents");});function dt(t,e,r){let n=r.some(o=>FH.includes(o));return t.startsWith(`${e}/`)&&!n?`.agents/skills/${t.slice(e.length+1)}`:null}var FH,oe=d(()=>{FH=["amp","antigravity","codex-cli","goose","replit-agent"];s(dt,"mirrorSkillsToAgents");});async function tO(t,e,r){let n=await _(join(t,e));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let i=o,a=i["amp.mcpServers"]??i.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Ht(t,qL,l),r.push({fromTool:"amp",fromPath:e,toPath:qL,feature:"mcp"}));}var qL,eO=d(()=>{A();Vr();vi();qL=".agentsmesh/mcp.json";s(tO,"importAmpMcp");});async function rO(t,e={}){let r=e.scope??"project",n=[],o=await W("amp",t,r);return n.push(...await Y(Qu,t,r,{normalize:o})),await et(t,r==="global"?pr:ue,"amp",n,o),await tO(t,r==="global"?xo:An,n),n}var nO=d(()=>{gt();rt();Ot();eO();vi();Oy();s(rO,"importFromAmp");});function oO(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var sO=d(()=>{Ct();vi();s(oO,"lintRules");});function iO(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function aO(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function lO(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var cO=d(()=>{wt();s(iO,"lintHooks");s(aO,"lintPermissions");s(lO,"lintIgnore");});function jH(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),JSON.stringify(r,null,2)}var MH,$H,GH,mO,Qu,Oy=d(()=>{Lt();ut();QL();oe();nO();sO();cO();Et();vi();MH={name:"amp",primaryRootInstructionPath:mr,generateRules:JL,generateCommands:XL,generateAgents:ZL,generateSkills:YL,importFrom:rO},$H={rootInstructionPath:mr,skillDir:ue,managedOutputs:{dirs:[ue],files:[mr,An]},paths:{rulePath(t){return mr},commandPath(t){return `${ue}/${V(t)}/SKILL.md`},agentPath(t){return `${ue}/${K(t)}/SKILL.md`}}},GH={rootInstructionPath:To,skillDir:pr,managedOutputs:{dirs:[pr],files:[To,xo]},rewriteGeneratedPath(t){return t===mr?To:t===An?xo:t.startsWith(`${ue}/`)?t.replace(`${ue}/`,`${pr}/`):t},mirrorGlobalPath(t,e){return dt(t,pr,e)},paths:{rulePath(t){return To},commandPath(t){return `${pr}/${V(t)}/SKILL.md`},agentPath(t){return `${pr}/${K(t)}/SKILL.md`}}},mO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(jH,"mergeAmpSettings");Qu={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:MH,capabilities:mO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:oO,lint:{hooks:iO,permissions:aO,ignore:lO},supportsConversion:{commands:true,agents:true},project:$H,globalSupport:{capabilities:mO,detectionPaths:[To,xo],layout:GH},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[mr],global:[To]},canonicalDir:_E,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:An,content:JSON.stringify({"amp.mcpServers":t.mcp.mcpServers},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===An||n===xo?jH(t,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:Lh,detectionPaths:[mr,An],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function pO(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:ur,content:e.body.trim()||""}];for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${Yr}/${o}.md`,content:n.body.trim()||""});}return r}function uO(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
56
|
+
${sJ}
|
|
57
|
+
${Hy}`,RJ=[yJ,hJ,gJ,fJ,dJ,uJ,pJ,mJ,cJ,lJ,aJ,iJ];s(vE,"appendAgentsmeshRootInstructionParagraph");s(Jy,"stripAgentsmeshRootInstructionParagraph");});function xt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function Ul(e){let t=await k(e);return t?x(t).frontmatter:{}}function at(e,t){return typeof e[t]=="string"?e[t]:void 0}function Xy(e){let t=e.hooks;return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}function _J(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function SJ(e,t){let r=basename(e,".md")==="_root",n={...t};return delete n.root,{root:r,...n}}async function V(e,t,r){let n=await Ul(e),o=basename(e,".md")==="_root"?Jy(r):r.trim(),i=SJ(e,_J({...n,...t})),a={root:i.root===true,description:typeof i.description=="string"?i.description:""};a.root===false&&(a.globs=xt(i.globs));for(let[l,c]of Object.entries(i))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return D(a,o||"")}var qy=d(()=>{A();B();Yy();s(xt,"toStringArray");s(Ul,"readExistingFrontmatter");s(at,"readString");s(Xy,"readHooks");s(_J,"pruneUndefined");s(SJ,"serializeCanonicalRuleFrontmatter");s(V,"serializeImportedRuleWithFallback");});async function Se(e,t,r){let n=await Ul(e),o=(()=>{let l=xt(n.allowedTools);return l.length>0?l:xt(n["allowed-tools"])})(),i=t.hasDescription?t.description??"":typeof n.description=="string"?n.description:"",a=t.hasAllowedTools?t.allowedTools??[]:o;return D({description:i,"allowed-tools":a},r.trim()||"")}async function Mn(e,t,r){let n=await Ul(e),o=basename(dirname(e)),i=at(t,"name")??at(n,"name")??o,a=at(t,"description")??at(n,"description")??"";return D({name:i,description:a},r.trim()||"")}async function et(e,t,r){let n=await Ul(e),o=Object.prototype.hasOwnProperty.call(t,"tools")?xt(t.tools):(()=>{let R=xt(n.tools);return R.length>0?R:[]})(),i=Object.prototype.hasOwnProperty.call(t,"disallowedTools")?xt(t.disallowedTools):Object.prototype.hasOwnProperty.call(t,"disallowed-tools")?xt(t["disallowed-tools"]):xt(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(t,"mcpServers")?xt(t.mcpServers):Object.prototype.hasOwnProperty.call(t,"mcp-servers")?xt(t["mcp-servers"]):xt(n.mcpServers),l=Object.prototype.hasOwnProperty.call(t,"skills")?xt(t.skills):xt(n.skills),c=t.maxTurns??t["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),p=Xy(t)??Xy(n),u={name:at(t,"name")??at(n,"name")??basename(e,".md"),description:at(t,"description")??at(n,"description")??"",tools:o};i.length>0&&(u.disallowedTools=i);let f=at(t,"model")??at(n,"model");f&&(u.model=f);let g=at(t,"permissionMode")??at(t,"permission-mode")??at(n,"permissionMode")??at(n,"permission-mode");g&&(u.permissionMode=g),Number.isInteger(m)&&m>0&&(u.maxTurns=m),a.length>0&&(u.mcpServers=a),p&&Object.keys(p).length>0&&(u.hooks=p),l.length>0&&(u.skills=l);let h=at(t,"memory")??at(n,"memory");return h&&(u.memory=h),D(u,r.trim()||"")}var $E=d(()=>{B();qy();s(Se,"serializeImportedCommandWithFallback");s(Mn,"serializeImportedSkillWithFallback");s(et,"serializeImportedAgentWithFallback");});var fe=d(()=>{qy();$E();});function wd(e){let t=e.split("/").filter(Boolean);return t.length===0||t.some(n=>n.startsWith("."))?false:!t.join("/").startsWith("tests/e2e/fixtures/")}async function $n(e){await rm$1(e,{recursive:true,force:true});}var Vm=d(()=>{s(wd,"shouldImportScopedAgentsRule");s($n,"removePathIfExists");});function ie(e,t){let r=[];for(let n of e.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${t}/${n.name}/SKILL.md`,content:D(o,n.body.trim()||"")});for(let i of n.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");r.push({path:`${t}/${n.name}/${a}`,content:i.content});}}return r}async function oe(e,t,r,n,o){let i=await readdir(join(e,t),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(i!==null)for(let a of i){if(!a.isDirectory())continue;let l=join(e,t,a.name),c=join(l,"SKILL.md"),m=await k(c);if(m===null)continue;let p=join(e,Jm,a.name),u=join(p,"SKILL.md"),{frontmatter:f,body:g}=x(o(m,c,u)),h=Sd(f,a.name);if(h){await $n(join(e,Jm,a.name));let I=join(e,GE);await w(I);let b=join(I,`${h.name}.md`);await L(b,kd(h,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${GE}/${h.name}.md`,feature:"commands"});continue}let R=jl(f,a.name);if(R){await $n(join(e,Jm,a.name));let I=join(e,jE);await w(I);let b=join(I,`${R.name}.md`);await L(b,Ys(R,o(g,c,b))),n.push({fromTool:r,fromPath:c,toPath:`${jE}/${R.name}.md`,feature:"agents"});continue}let _=await Mn(u,{...f,name:a.name},g);await w(p),await L(u,_),n.push({fromTool:r,fromPath:c,toPath:`${Jm}/${a.name}/SKILL.md`,feature:"skills"});let S=await U(l);for(let I of S){if(I===c)continue;let b=relative(l,I).replace(/\\/g,"/"),P=await k(I);if(P===null)continue;let T=join(p,b);await w(dirname(T)),await L(T,o(P,I,T)),n.push({fromTool:r,fromPath:I,toPath:`${Jm}/${a.name}/${b}`,feature:"skills"});}}}var Jm,GE,jE,se=d(()=>{A();B();fe();ue();we();Vm();Jm=".agentsmesh/skills",GE=".agentsmesh/commands",jE=".agentsmesh/agents";s(ie,"generateEmbeddedSkills");s(oe,"importEmbeddedSkills");});var Gn,yr,ht,Bo,Ko,Rr,ta,UE,BE,Bl=d(()=>{Gn="aider",yr="CONVENTIONS.md",ht=".aider/skills",Bo=".aiderignore",Ko="CONVENTIONS.md",Rr=".aider/skills",ta=".aiderignore",UE=".agentsmesh/rules",BE=".agentsmesh/ignore";});function KE(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Gn)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:yr,content:o}]:[]}function WE(e){return ie(e,ht)}function HE(e){return e.commands.map(t=>({path:`${ht}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function zE(e){return e.agents.map(t=>({path:`${ht}/${K(t.name)}/SKILL.md`,content:De(t)}))}function VE(e){return e.ignore.length===0?[]:[{path:Bo,content:e.ignore.join(`
|
|
58
|
+
`)}]}var JE=d(()=>{se();Ue();ue();we();Bl();s(KE,"generateRules");s(WE,"generateSkills");s(HE,"generateCommands");s(zE,"generateAgents");s(VE,"generateIgnore");});function le(e){return e.includes("\\")||en.test(e)?win32:posix}function Be(e){return e.replace(/\\/g,"/")}function Q(e,t){let r=le(e),n=r.normalize(r===win32?t.replace(/\//g,"\\"):Be(t));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function XE(e,t){return le(e).isAbsolute(t)||en.test(t)}function Kl(e){let t=e,r="";for(;bJ.test(t);)r=t.at(-1)+r,t=t.slice(0,-1);return {candidate:t,suffix:r}}function qE(e,t){let r=le(t),n=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==e?Q(t,r.join(t,n)):null}var en,bJ,yt=d(()=>{en=/^[A-Za-z]:[\\/]/,bJ=/[.!?:;]+$/;s(le,"pathApi");s(Be,"normalizeSeparators");s(Q,"normalizeForProject");s(XE,"isAbsoluteForProject");s(Kl,"stripTrailingPunctuation");s(qE,"rootFallbackPath");});async function QE(e,t,r="project"){let n=new Map,o=re(e);return o&&await o.buildImportPaths(n,t,r),n}var ZE=d(()=>{rt();s(QE,"buildImportReferenceMap");});function xJ(e){let t=[e.project,e.globalSupport?.layout].filter(o=>o!==void 0),r=[...e.detectionPaths,...t.flatMap(o=>o.managedOutputs?.dirs??[]),...t.flatMap(o=>o.managedOutputs?.files??[])],n=new Set;for(let o of r){let i=o.split("/")[0];i&&i.startsWith(".")&&i.length>1&&n.add(`${i}/`);}return n}function TJ(){let e=new Set([".agentsmesh/"]);for(let t of Pe)for(let r of xJ(t))e.add(r);return Array.from(e)}function PJ(){let e=new Set([...TJ(),...Qy.rootRelativePrefixes]),t=new Set([...AJ,...Qy.meshRootSegments]);return {protectedSchemes:[...OJ,...Qy.protectedSchemes],rootRelativePrefixes:Array.from(e),meshRootSegments:t}}function bd(){return Zy||(Zy=PJ()),Zy}var OJ,AJ,Qy,Zy,ew=d(()=>{xe();OJ=[/\b[A-Za-z][A-Za-z0-9+.-]+:[^\s<>()\]]+/g,/\b[\w.-]+@[\w.-]+:[^\s<>()\]]+/g,/\b[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}\b/g,/\/\/[A-Za-z0-9][\w.-]*\.[A-Za-z]{2,}[^\s<>()\]]*/g],AJ=new Set(["skills","rules","commands","agents","packs"]),Qy={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};s(xJ,"topLevelDotfilePrefixes");s(TJ,"buildDefaultRootRelativePrefixes");s(PJ,"rebuild");s(bd,"getLinkFormatRegistry");});function tn(e){let t=Be(e);return bd().rootRelativePrefixes.some(r=>t.startsWith(r))}function NJ(e){let t=Be(e).replace(/^\.\//,"");if(t.startsWith("../")||t.startsWith("/")||en.test(t)||/^[a-zA-Z]:/.test(t)||tn(t))return false;let r=t.split("/").filter(n=>n.length>0)[0];return r!==void 0&&bd().meshRootSegments.has(r)}function Ym(e,t,r){let n=le(t),o=Q(t,t),i=Q(t,r),a=Be(e);if(en.test(e)){let l=Q(t,e);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(n.isAbsolute(e)){let l=Q(t,e);return l.startsWith(o)||existsSync(e)?[l]:[Q(t,n.join(t,e))]}if(a.startsWith("./")||a.startsWith("../")){let l=Q(t,n.join(n.dirname(i),a)),c=qE(a,o);return c&&c!==l?[l,c]:[l]}if(tn(a))return [Q(t,n.join(o,a))];if(a.includes("/")){let l=Q(t,n.join(o,".agentsmesh")),c=NJ(a)?Q(t,n.join(l,a)):null,m=Q(t,n.join(o,a)),p=Q(t,n.join(n.dirname(i),a));return c!==null?[c,m,p]:[m,p]}return vJ.has(a)?[]:a.includes(".")?[Q(t,n.join(n.dirname(i),a))]:[]}function Xm(e,t){let r=[t];if(!XE(e,t)||!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n)o!==t&&!r.includes(o)&&r.push(o);}catch{}return r}function ow(e,t,r){let n=t>0?e.at(t-1):"",o=r<e.length?e.at(r):"";return n==="*"||o==="*"}function Od(e){let t=[];for(let r of bd().protectedSchemes){let n=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let o of e.matchAll(n))t.push([o.index??0,(o.index??0)+o[0].length]);}for(let r of e.matchAll(FJ))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll(MJ))t.push([r.index??0,(r.index??0)+r[0].length]);for(let r of e.matchAll($J))t.push([r.index??0,(r.index??0)+r[0].length]);return t}var vJ,FJ,MJ,$J,nw,Wl,Xs=d(()=>{yt();ew();s(tn,"isRootRelativePathToken");s(NJ,"isMeshRootRelativePathToken");vJ=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),FJ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,MJ=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,$J=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,nw=/(?:\.\.[\\/]|\.\/|\.\\|\/[A-Za-z0-9._-]|[A-Za-z]:[\\/][A-Za-z0-9._-]|\.agentsmesh[\\/]|\.claude[\\/]|\.cursor[\\/]|\.github[\\/]|\.continue[\\/]|\.junie[\\/]|\.kiro[\\/]|\.gemini[\\/]|\.clinerules[\\/]|\.cline[\\/]|\.codex[\\/]|\.agents[\\/]|\.windsurf[\\/]|\.roo[\\/]|(?:[A-Za-z0-9._-]+[\\/])+|[A-Za-z0-9._-]+\.[A-Za-z0-9._-]+)[A-Za-z0-9._@%+~:\\/-]*/g,Wl=/(?::(\d+)){1,2}$/;s(Ym,"resolveProjectPath");s(Xm,"expandResolvedPaths");s(ow,"isGlobAdjacent");s(Od,"protectedRanges");});function GJ(e){return e===void 0||e.role==="inline-code"||e.role==="bracketed"||e.role==="quoted"||e.role==="at-prefix"||e.role==="bracket-label"||e.role==="bare-prose"}function sw(e){return GJ(e.tokenContext)}function eR(e,t){let r=le(e),n=Q(e,e),o=Q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function iw(e){let t=le(e);return Q(e,t.join(e,".agentsmesh"))}function rn(e,t){let r=le(e),n=iw(e),o=Q(e,t);if(o===n)return true;let i=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(i)}function aw(e,t,r){let n=le(e),o=iw(e),i=Q(e,t);if(!rn(e,i))return null;let a=n.relative(o,i).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function tR(e,t,r){let o=le(e).relative(Q(e,e),Q(e,t)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let i=o.length>0?o:".";return r&&!i.endsWith("/")?`${i}/`:i}function Hl(e,t,r){let n=tR(e,t,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function rR(e,t,r,n,o){let i=le(e),a=Q(e,e),l=Q(e,t),c=Q(e,r);if(!eR(e,c))return Hl(e,c,n)?.text??null;let m=Q(e,i.dirname(l));if(!eR(e,m)&&m!==a)return Hl(e,c,n)?.text??null;let p=i.relative(m,c).replace(/\\/g,"/");if(i.isAbsolute(p)||en.test(p))return tR(e,c,n);let u=Q(e,i.join(m,p));return eR(e,u)?(p===""||p==="."?p=".":o.explicitCurrentDirLinks===true&&m!==a&&!p.startsWith("../")&&!p.startsWith("./")&&(p=`./${p}`),n&&!p.endsWith("/")?`${p}/`:p):tR(e,c,n)}var nR=d(()=>{yt();s(GJ,"isReadingContext");s(sw,"isReadingContextOptions");s(eR,"isUnderProjectRoot");s(iw,"agentsMeshRoot");s(rn,"isUnderAgentsMesh");s(aw,"toAgentsMeshRootRelative");s(tR,"toProjectRootRelative");s(Hl,"toProjectRootReference");s(rR,"formatLinkPathForDestinationLegacy");});function lw(e,t,r,n,o={}){let i=o.scope??"project",a=Q(e,r);if(sw(o)&&rn(e,t)&&rn(e,a)){let m=le(e),p=Q(e,e),u=m.relative(p,a).replace(/\\/g,"/");if(!u.startsWith("..")&&u.length>0)return n&&!u.endsWith("/")?`${u}/`:u}if(o.forceRelative)return rR(e,t,r,n,o);if(i==="global"&&!rn(e,t))return Hl(e,a,n)?.text??null;let l=(()=>{if(rn(e,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&rn(e,Q(e,m))?Q(e,m):null})();if(!l)return Hl(e,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=aw(e,l,n);return m!==null?m:Hl(e,l,n)?.text??null}return rR(e,t,r,n,o)}var cw=d(()=>{Xs();yt();nR();nR();s(lw,"formatLinkPathForDestination");});function mw(e,t,r,n){let o=le(t),i=Be(e);if(!tn(i))return null;let a=i.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=Q(t,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let p=a.slice(m).join("/"),u=Q(t,o.join(c,p));if(u!==l&&n(u))return u}return null}var pw=d(()=>{yt();Xs();s(mw,"resolveByDestinationSuffixStrip");});function uw(e){let t=null,r=false,n=null,o=null,i=null;for(let c of Ym(e.candidate,e.projectRoot,e.sourceFile)){let m=null,p=null;for(let u of Xm(e.projectRoot,c)){let f=Q(e.projectRoot,u),g=Q(e.projectRoot,e.translatePath(f)),h=e.pathExists(f),R=e.pathExists(g);if(R&&g!==f){t=g,n=f,r=true;break}(h||R)&&m===null&&(m=g,p=f),t===null&&(t=g);}if(!r&&m!==null&&o===null&&(o=m,i=p),r)break}if(!r){let c=mw(e.candidate,e.projectRoot,e.destinationFile,e.pathExists);c!==null&&(t=c,r=true);}!r&&o!==null&&(t=o,i!==null&&(n=i),r=true);let a=Be(e.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&t!==null&&Be(e.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:t,resolvedBeforeTranslate:n,matchedPath:r}}var dw=d(()=>{yt();Xs();pw();s(uw,"resolveLinkTarget");});function fw(e,t,r){return t>=2&&e[t-2]==="~"&&e[t-1]==="/"?true:t>=1&&e[t-1]==="~"&&r.startsWith("/")}function gw(e,t,r){if(t<=0||e[t-1]!=="(")return false;let n=t+r.length,o=e[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:e[t-2]==="]"}function hw(e){let t=Be(e);return t.startsWith("./")||t.startsWith("../")?true:t.startsWith("/")||en.test(t)||tn(t)?false:t.includes("/")}var yw=d(()=>{yt();Xs();s(fw,"isTildeHomeRelativePathToken");s(gw,"isMarkdownLinkDestinationToken");s(hw,"isRelativePathToken");});function jJ(e,t,r){let n=t+r.length;if(e[n]!=="]"||e[n+1]!=="(")return false;let o=n+2,i="";for(;o<e.length;){let a=e[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
|
|
59
|
+
`)break;i+=a,o++;}return i===r}function Rw(e,t,r){let n=e.lastIndexOf(`
|
|
60
|
+
`,t-1)+1,o=e.slice(n,t);if(!/^\s*\[[^\]\n]+\]:\s*<?\s*$/.test(o))return false;let i=r<e.length?e[r]:"";return i===""||i===`
|
|
61
|
+
`||i==="\r"||i===">"||i===" "||i===" "||i==='"'||i==="'"||i===":"||i==="#"||i==="?"}function _w(e,t,r){let n=t>0?e[t-1]:"",o=r<e.length?e[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:Rw(e,t,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&e[t-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function Sw(e,t,r,n,o){if(t<0||r>e.length)return false;let{candidate:i}=Kl(n),a=i.replace(Wl,""),l=Be(a),c=t+a.length,m=e[t-1],p=e[r];return Rw(e,t,c)||m==="`"&&p==="`"?true:m==="'"&&p==="'"||m==='"'&&p==='"'?false:m==="<"&&p===">"?true:m==="["&&p==="]"?!(!o&&!tn(l)&&jJ(e,t,n)):m==="@"?true:m==="("&&e[t-2]==="]"?p===")"||p==="#"||p==="?"||p===" "||p===" ":o?tn(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var kw=d(()=>{yt();Xs();s(jJ,"markdownBracketLabelDuplicatesDestination");s(Rw,"isMarkdownReferenceDefinitionDestination");s(_w,"getTokenContext");s(Sw,"shouldRewritePathToken");});function Ad(e){let t=new Set,r=Od(e.content);return {content:e.content.replace(nw,(o,i,a)=>{if(r.some(([Ee,Qe])=>i>=Ee&&i<Qe)||!Sw(a,i,i+o.length,o,e.rewriteBarePathTokens===true)||fw(a,i,o)||ow(a,i,i+o.length))return o;let{candidate:l,suffix:c}=Kl(o);if(!l)return o;let m=Wl.exec(l),p=m?l.slice(0,m.index):l,u=m?m[0]:"";if(!p)return o;let f=_w(a,i,i+p.length);if(f.role!=="markdown-link-dest"&&en.test(p))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:R}=uw({candidate:p,rawToken:l,projectRoot:e.projectRoot,sourceFile:e.sourceFile,destinationFile:e.destinationFile,translatePath:e.translatePath,pathExists:e.pathExists}),_=h;if(!R||!g)return g&&t.add(g),o;let S=Be(p),I=p.endsWith("/")||e.pathIsDirectory?.(g)===true;if(I&&!S.includes("/")&&!S.includes("\\"))return o;if(_===null){let Ee=Be(l);if(Ee.startsWith("agentsmesh/")&&(Ee=`.${Ee}`),Ee.startsWith(".agentsmesh/")||Ee.includes("/.agentsmesh/")){let Qe=le(e.projectRoot),st=Q(e.projectRoot,e.projectRoot),gt=Ee.replace(/^\.\//,"");_=Q(e.projectRoot,Qe.join(st,gt));}}let b=le(e.projectRoot);if(e.scope==="global"){let Ee=Be(l),Qe=Ee.startsWith(".agentsmesh/")||Ee.includes("/.agentsmesh/"),st=tn(Ee)||hw(Ee),gt=_!==null&&rn(e.projectRoot,_),Bs=rn(e.projectRoot,g);if(_===g&&!Bs&&!gt&&!Qe){let bm=Be(b.relative(e.projectRoot,Q(e.projectRoot,e.sourceFile))).split("/").filter(Boolean)[0]??"",Am=(_!==null?Be(b.relative(e.projectRoot,_)):"").split("/").filter(Boolean)[0]??"";if(bm.length>0&&bm===Am)return o}if(!st&&!Qe&&!gt&&!Bs)return o}let P=Q(e.projectRoot,e.destinationFile),T=Q(e.projectRoot,g),W=Be(b.relative(e.projectRoot,P)),$=Be(b.relative(e.projectRoot,T)),Y=W.split("/").filter(Boolean)[0]??"",ee=$.split("/").filter(Boolean)[0]??"",Te=!Be(p).startsWith(".agentsmesh/")&&!I&&Y.length>0&&Y===ee&&Y.startsWith(".")&&Y!==".agentsmesh"||f.role==="markdown-link-dest"||gw(a,i,p),Ot=lw(e.projectRoot,e.destinationFile,g,p.endsWith("/"),{explicitCurrentDirLinks:e.explicitCurrentDirLinks===true||Te,scope:e.scope??"project",pathIsDirectory:e.pathIsDirectory,logicalMeshSourceAbsolute:I?null:_,forceRelative:Te,tokenContext:f,originalToken:p});return Ot?`${Ot}${u}${c}`:o}),missing:[...t]}}var oR=d(()=>{yt();Xs();cw();dw();yw();kw();s(Ad,"rewriteFileLinks");});function Lw(e,t){let r=[e.normalize(t)];if(!existsSync(t))return r;try{let n=[realpathSync(t),realpathSync.native(t)];for(let o of n){let i=e.normalize(o);r.includes(i)||r.push(i);}}catch{}return r}async function z(e,t,r="project"){let n=le(t),o=new Map,i=Array.from(new Set([e,...je]));for(let c of i){let m=await QE(c,t,r);for(let[p,u]of m.entries())o.set(p,u);}let a=new Map;for(let[c,m]of o.entries()){let p=n.normalize(n.join(t,m));for(let u of Lw(n,n.join(t,c)))a.set(u,p);}let l=new Set;for(let c of new Set(o.values())){let m=n.normalize(n.join(t,c));l.add(m);for(let p of Lw(n,m))l.add(n.normalize(p));}return (c,m,p)=>Ad({content:c,projectRoot:t,sourceFile:m,destinationFile:p,translatePath:s(u=>a.get(u)??u,"translatePath"),pathExists:s(u=>{let f=n.normalize(u);return a.has(u)||a.has(f)||existsSync(u)||l.has(f)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:s(u=>{try{return statSync(u).isDirectory()}catch{return false}},"pathIsDirectory")}).content}var ge=d(()=>{yt();ZE();oR();Nn();s(Lw,"pathVariants");s(z,"createImportReferenceNormalizer");});async function Je(e,t,r){let n=join(e,t),i={...await WJ(n),...r};await w(dirname(n)),await L(n,JSON.stringify({mcpServers:i},null,2));}async function WJ(e){let t=await k(e);if(t===null)return {};let r;try{r=JSON.parse(t);}catch{return {}}if(!r||typeof r!="object"||Array.isArray(r))return {};let n=r.mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n))!a||typeof a!="object"||Array.isArray(a)||(o[i]=a);return o}var nn=d(()=>{A();s(Je,"writeMcpWithMerge");s(WJ,"readExistingServers");});function Wo(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function _r(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function qs(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function jn(e){return !e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}var Sr=d(()=>{s(Wo,"toGlobsArray");s(_r,"toToolsArray");s(qs,"toStringArray");s(jn,"toStringRecord");});function VJ(e,t){return t.some(r=>e.endsWith(r))}async function ke(e){let r=(await U(e.srcDir)).filter(o=>VJ(o,e.extensions)),n=[];for(let o of r){let i=await k(o);if(!i)continue;let a=relative(e.srcDir,o).replace(/\\/g,"/"),l=await e.mapEntry({srcPath:o,relativePath:a,content:i,normalizeTo:s((c,m=i)=>e.normalize(m,o,c),"normalizeTo")});l&&(await w(dirname(l.destPath)),await L(l.destPath,l.content),n.push({fromTool:e.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var Yt=d(()=>{A();s(VJ,"matchesExtension");s(ke,"importFileDirectory");});function Ew(e){return typeof e=="string"?e:void 0}function JJ(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function iR(e,t){return t?t(e):e}function YJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap),a=JJ({root:false,description:Ew(i.description),globs:Array.isArray(i.globs)?i.globs:void 0,...i});return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await V(r,a,o)}}}function XJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap),a=await Se(r,{hasDescription:true,description:Ew(i.description),hasAllowedTools:true,allowedTools:qs(i["allowed-tools"])},o);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:a}}}function qJ(e){return async t=>{let r=join(t.destDir,t.relativePath),{frontmatter:n,body:o}=x(t.normalizeTo(r)),i=iR(n,e.frontmatterRemap);return {destPath:r,toPath:`${e.canonicalDir}/${t.relativePath}`,content:await et(r,i,o)}}}function ww(e){if(e.map)return e.map;switch(e.preset){case "rule":return YJ(e);case "command":return XJ(e);case "agent":return qJ(e);default:throw new Error(`ImportFeatureSpec for ${e.feature} (mode: ${e.mode}) needs a \`preset\` or \`map\``)}}var bw=d(()=>{B();fe();Sr();s(Ew,"pickString");s(JJ,"pruneUndefined");s(iR,"applyRemap");s(YJ,"ruleMapper");s(XJ,"commandMapper");s(qJ,"agentMapper");s(ww,"resolveMapper");});function aR(e,t){return e?e[t]??[]:[]}var Ow,Aw=d(()=>{Ow=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];s(aR,"resolveScopedSources");});async function tY(e,t,r,n,o){if(!e.canonicalRootFilename)throw new Error(`singleFile spec for ${e.feature} must set canonicalRootFilename`);let i=join(r,e.canonicalDir);for(let a of t){let l=join(r,a),c=await k(l);if(c===null)continue;await w(i);let m=join(i,e.canonicalRootFilename),p=s(S=>o(c,l,S),"normalizeTo");if(e.map){let S;try{S=await e.map({absolutePath:l,relativePath:a,content:c,destDir:i,normalizeTo:p});}catch(I){let b=I instanceof Error?I.message:String(I);process.stderr.write(`\u26A0 skipping ${l}: ${b}
|
|
62
|
+
`);continue}if(!S)continue;return await L(S.destPath,S.content),[{fromTool:n,fromPath:l,toPath:S.toPath,feature:e.feature}]}let u=Yr(p(m),l);if(!u.ok){process.stderr.write(`\u26A0 skipping ${l}: ${u.error.message}
|
|
63
|
+
`);continue}let{frontmatter:f,body:g}=u.value,h=e.frontmatterRemap?e.frontmatterRemap(f):f,R=e.markAsRoot?{...h,root:true}:h,_=await V(m,R,g);return await L(m,_),[{fromTool:n,fromPath:l,toPath:`${e.canonicalDir}/${e.canonicalRootFilename}`,feature:e.feature}]}return []}async function rY(e,t,r,n,o){let i=ww(e),a=join(r,e.canonicalDir),l=[];for(let c of t){let m=join(r,c),p=await ke({srcDir:m,destDir:a,extensions:[...e.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:s(async({srcPath:u,relativePath:f,content:g,normalizeTo:h})=>{if(ld(basename(u)))return null;let R;try{R=await i({absolutePath:u,relativePath:f,content:g,destDir:a,normalizeTo:s(_=>h(_),"normalizeTo")});}catch(_){let S=_ instanceof Error?_.message:String(_);return process.stderr.write(`\u26A0 skipping ${u}: ${S}
|
|
64
|
+
`),null}return R?{destPath:R.destPath,toPath:R.toPath,feature:e.feature,content:R.content}:null},"mapEntry")});l.push(...p);}return l}function Tw(e){let t=e.canonicalFilename;return t.includes("/")||t.includes("\\")?t:posix.join(e.canonicalDir,t)}async function nY(e,t,r,n){if(!e.canonicalFilename)throw new Error(`flatFile spec for ${e.feature} must set canonicalFilename`);let o=Tw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=join(r,o);return await w(dirname(c)),await L(c,l.trimEnd()),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}]}return []}function oY(e){let t;try{t=JSON.parse(e);}catch{return {}}if(!t||typeof t!="object")return {};let r=t.mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,l=typeof a.description=="string"?a.description:void 0;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:qs(a.args),env:jn(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:jn(a.headers),env:jn(a.env),description:l});}return n}async function sY(e,t,r,n){if(!e.canonicalFilename)throw new Error(`mcpJson spec for ${e.feature} must set canonicalFilename`);let o=Tw(e);for(let i of t){let a=join(r,i),l=await k(a);if(l===null)continue;let c=oY(l);return Object.keys(c).length===0?[]:(await Je(r,o,c),[{fromTool:n,fromPath:a,toPath:o,feature:e.feature}])}return []}function xw(e,t,r,n,o){switch(e.mode){case "singleFile":return tY(e,t,r,n,o);case "directory":return rY(e,t,r,n,o);case "flatFile":return nY(e,t,r,n);case "mcpJson":return sY(e,t,r,n)}}async function iY(e,t,r,n,o){let i=aR(e.source,t),a=aR(e.fallbacks,t);if(i.length===0&&a.length===0)return [];if(i.length>0){let l=await xw(e,i,r,n,o);if(l.length>0)return l}return a.length>0?xw(e,a,r,n,o):[]}function aY(e,t){let r=e[t];return r?Array.isArray(r)?r:[r]:[]}async function q(e,t,r,n){let o=e.importer;if(!o)return [];let i=n?.normalize??await z(e.id,t,r),a=[];for(let l of Ow)for(let c of aY(o,l))a.push(...await iY(c,r,t,e.id,i));return a}var be=d(()=>{ge();A();nn();B();Sr();fe();Yt();bw();$o();Aw();s(tY,"runSingleFile");s(rY,"runDirectory");s(Tw,"resolveCanonicalFilePath");s(nY,"runFlatFile");s(oY,"parseMcpJson");s(sY,"runMcpJson");s(xw,"dispatchSpec");s(iY,"runSpec");s(aY,"specsForFeature");s(q,"runDescriptorImport");});async function Pw(e,t={}){let r=t.scope??"project",n=[],o=await z(Gn,e,r);return n.push(...await q(xd,e,r,{normalize:o})),await oe(e,r==="global"?Rr:ht,Gn,n,o),n}var Dw=d(()=>{ge();se();be();Bl();lR();s(Pw,"importFromAider");});function lY(e,t){return vw(t).some(n=>cY(e,n))}function Nw(e,t){return e.filter(r=>lY(r,t))}function vw(e){let t=e.match(/^(.+)\{([^}]+)\}(.*)$/);if(!t)return [e];let[,r,n,o]=t;if(!n)return [e];let i=n.split(",").map(l=>l.trim()),a=[];for(let l of i)for(let c of vw(r+l+o))a.push(c);return a}function cY(e,t){return mY(t).test(e)}function mY(e){let t=[],r=0;for(;r<e.length;){if(e.startsWith("**",r)){let i=e.slice(r+2);if(i.length===0&&t.length===0)t.push(".*");else if(t.push(i.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),i.startsWith("/")){r+=3;continue}r+=2;continue}if(e[r]==="*"){t.push("[^/]*"),r+=1;continue}if(e[r]==="?"){t.push("[^/]"),r+=1;continue}if(e[r]==="{"){t.push("(?:"),r+=1;continue}if(e[r]==="}"){t.push(")"),r+=1;continue}if(e[r]===","){t.push("|"),r+=1;continue}".^$+?()[]{}|\\".includes(e[r])?t.push("\\"+e[r]):t.push(e[r]),r+=1;}let n="^"+t.join("")+"$";return new RegExp(n)}var Fw=d(()=>{s(lY,"globMatch");s(Nw,"globFilter");s(vw,"expandBraces");s(cY,"matchOne");s(mY,"globToRegex");});function X(e,t,r,n={}){let o=[],{rules:i}=e;if(i.length===0)return [];if(i.some(l=>l.root)||o.push({level:"error",file:relative(t,i[0].source),message:"Rules exist but no root rule (_root.md or root: true). Add a root rule."}),n.checkGlobMatches===false)return o;for(let l of i){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(Nw(r,m).length>0){c=true;break}c||o.push({level:"warning",file:relative(t,l.source),message:`globs "${l.globs.join(", ")}" match 0 files in project`});}return o}var Ie=d(()=>{Fw();s(X,"validateRules");});function $w(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Gn}))}var Gw=d(()=>{Ie();Bl();s($w,"lintRules");});function v(e,t,r){return {level:"warning",file:e,target:t,message:r}}function pY(e){return e.length===0?"":e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Zs(e,t,r,n){let o=n?.unsupportedBy??t,i=pY(r);return v(".agentsmesh/hooks.yaml",t,`${e} is not supported by ${o}; only ${i} are projected.`)}var Oe=d(()=>{s(v,"createWarning");s(pY,"formatOxfordComma");s(Zs,"createUnsupportedHookWarning");});function jw(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","aider","Aider has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Uw(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","aider","Aider has no permissions config; canonical permissions are not projected.")]}function Bw(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","aider","Aider has no MCP config file; canonical MCP servers are not projected.")]}var Kw=d(()=>{Oe();s(jw,"lintHooks");s(Uw,"lintPermissions");s(Bw,"lintMcp");});function C(e,t){return le(e).relative(e,t).replace(/\\/g,"/")}async function E(e,t){return U(le(e).join(e,t)).catch(()=>[])}function Hw(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}function yY(e,t,r,n){let o=posix.dirname(t),i=posix.dirname(r);for(;o!==n&&o!==".";)Hw(e,o,i),o=posix.dirname(o),i=posix.dirname(i);}function F(e,t,r,n){e.set(t,`${r}/${basename(t,n)}.md`);}function G(e,t,r){if(!t.startsWith(`${r}/`))return;let n=t.slice(r.length+1);if(!n)return;if(!n.includes("/")){if(!n.endsWith(".md")||basename(n)==="SKILL.md")return;let u=basename(n,".md");e.set(t,`${Ww}/${u}/SKILL.md`);return}let[o,...i]=n.split("/"),a=i.join("/");if(!o||!a)return;let l=o.startsWith($l)?$l:o.startsWith(Bm)?Bm:null;if(l&&a==="SKILL.md"){e.set(t,`${gY}/${o.slice(l.length)}.md`);return}let c=o.startsWith(Gl)?Gl:o.startsWith(Km)?Km:null;if(c&&a==="SKILL.md"){e.set(t,`${hY}/${o.slice(c.length)}.md`);return}let m=`${Ww}/${o}`;a==="SKILL.md"&&Hw(e,`${r}/${o}`,m);let p=`${m}/${a}`;e.set(t,p),a!=="SKILL.md"&&yY(e,t,p,`${r}/${o}`);}function RY(e){return e.split("/").filter(Boolean)[0]??""}async function _Y(){if(cR!==void 0)return cR;let{BUILTIN_TARGETS:e}=await Promise.resolve().then(()=>(xe(),zw)),t=new Set;for(let r of e)for(let n of [r.project.rootInstructionPath,r.project.skillDir,...r.project.managedOutputs?.dirs??[],...r.project.managedOutputs?.files??[],...r.detectionPaths,r.globalSupport?.layout.rootInstructionPath,r.globalSupport?.layout.skillDir,...r.globalSupport?.layout.managedOutputs?.dirs??[],...r.globalSupport?.layout.managedOutputs?.files??[],...r.globalSupport?.detectionPaths??[]])if(n!==void 0){let o=RY(n);o.startsWith(".")&&t.add(o);}return cR=t,t}function pR(e){return e.split("/").some(t=>t.startsWith("."))}async function SY(e){let t=[],r=await _Y(),n=le(e);async function o(i){let a=n.join(e,i),l=await readdir(a,{withFileTypes:true}).catch(()=>[]);for(let c of l){let m=i?`${i}/${c.name}`:c.name;if(c.isDirectory()){if(r.has(c.name)||pR(m))continue;await o(m);continue}if(c.isSymbolicLink()&&await stat(n.join(e,m)).then(p=>p.isDirectory(),()=>false)){if(r.has(c.name)||pR(m))continue;await o(m);continue}(c.name==="AGENTS.md"||c.name==="AGENTS.override.md")&&t.push(n.join(e,m));}}return s(o,"walk"),await o(""),t}async function Td(e,t){let r=await SY(t);for(let n of r){let o=C(t,n),i=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!i&&!a)continue;let l=posix.dirname(o);if(pR(l))continue;let c=l.replace(/\//g,"-");e.set(o,`${fY}/${c}.md`);}}var fY,gY,hY,Ww,cR,Le=d(()=>{yt();A();we();ue();fY=".agentsmesh/rules",gY=".agentsmesh/commands",hY=".agentsmesh/agents",Ww=".agentsmesh/skills";s(C,"rel");s(E,"listFiles");s(Hw,"addDirectoryMapping");s(yY,"addAncestorMappings");s(F,"addSimpleFileMapping");s(G,"addSkillLikeMapping");s(RY,"firstPathSegment");s(_Y,"targetRootSegments");s(pR,"hasHiddenSegment");s(SY,"listScopedAgentsFiles");s(Td,"addScopedAgentsMappings");});var O,ce,Ae,_e=d(()=>{O=".agentsmesh/rules",ce=".agentsmesh/commands",Ae=".agentsmesh/agents";});async function uR(e,t,r="project"){if(r==="global"){e.set(Ko,`${O}/_root.md`);for(let n of await E(t,Rr))G(e,C(t,n),Rr);e.set(ta,".agentsmesh/ignore");return}e.set(yr,`${O}/_root.md`);for(let n of await E(t,ht))G(e,C(t,n),ht);e.set(Bo,".agentsmesh/ignore");}var Vw=d(()=>{Le();Bl();_e();s(uR,"buildAiderImportPaths");});var ra,on,na,ei,Qm,Jw,Yw,Zm=d(()=>{ra="amazon-q",on=".amazonq/rules",na=".amazonq/mcp.json",ei=".aws/amazonq/rules",Qm=".aws/amazonq/mcp.json",Jw=".agentsmesh/rules",Yw=".agentsmesh/mcp.json";});async function dR(e,t,r="project"){let n=r==="global"?ei:on;for(let o of await E(t,n)){let i=C(t,o);F(e,i,O,".md");}}var Xw=d(()=>{Le();Zm();_e();s(dR,"buildAmazonQImportPaths");});var kr,Rt,Un,fR,Ho,Ir,zo,qw,oa=d(()=>{kr="AGENTS.md",Rt=".agents/skills",Un=".amp/settings.json",fR=".config/amp",Ho=`${fR}/AGENTS.md`,Ir=`${fR}/skills`,zo=`${fR}/settings.json`,qw=".agentsmesh/rules";});async function gR(e,t,r="project"){if(r==="global"){e.set(Ho,`${O}/_root.md`);for(let n of await E(t,Ir))G(e,C(t,n),Ir);e.set(zo,".agentsmesh/mcp.json");return}e.set(kr,`${O}/_root.md`);for(let n of await E(t,Rt))G(e,C(t,n),Rt);e.set(Un,".agentsmesh/mcp.json");}var Qw=d(()=>{Le();oa();_e();s(gR,"buildAmpImportPaths");});var sa,Pd,sn,Lr,ep,an,Bn,tp,Kn,Wn,rp,zl,hR,ia,Dd,Zw,aa=d(()=>{sa="antigravity",Pd=".agents",sn=`${Pd}/rules`,Lr=`${sn}/general.md`,ep=`${sn}/_root.md`,an=`${Pd}/skills`,Bn=`${Pd}/workflows`,tp=`${Pd}/antigravity/mcp_config.json`,Kn=".gemini/antigravity/GEMINI.md",Wn=".gemini/antigravity/skills",rp=".gemini/antigravity/workflows",zl=".gemini/antigravity/mcp_config.json",hR=".agentsmesh/rules/_root.md",ia=".agentsmesh/rules",Dd=".agentsmesh/commands",Zw=".agentsmesh/mcp.json";});async function yR(e,t,r="project"){if(r==="global"){e.set(Kn,`${O}/_root.md`);for(let n of await E(t,Wn))G(e,C(t,n),Wn);e.set(zl,".agentsmesh/mcp.json");return}e.set(Lr,`${O}/_root.md`),e.set(ep,`${O}/_root.md`);for(let n of await E(t,sn)){let o=C(t,n);o===Lr||o===ep||F(e,o,O,".md");}for(let n of await E(t,Bn))F(e,C(t,n),ce,".md");for(let n of await E(t,an))G(e,C(t,n),an);}var eb=d(()=>{Le();aa();_e();s(yR,"buildAntigravityImportPaths");});var _t,Nd,Xt,Cr,qt,Hn,zn,vd,Vo,Jo,Vn,Yo,RR,_R,SR,kR,la=d(()=>{_t="augment-code",Nd=".augment",Xt=`${Nd}/rules`,Cr=`${Nd}/commands`,qt=`${Nd}/skills`,Hn=`${Nd}/settings.json`,zn=".augmentignore",vd=".augment",Vo=`${vd}/rules`,Jo=`${vd}/commands`,Vn=`${vd}/skills`,Yo=`${vd}/settings.json`,RR=".agentsmesh/rules",_R=".agentsmesh/mcp.json",SR=".agentsmesh/hooks.yaml",kR=".agentsmesh/ignore";});async function IR(e,t,r="project"){if(r==="global"){for(let n of await E(t,Vo))F(e,C(t,n),O,".md");for(let n of await E(t,Jo))F(e,C(t,n),ce,".md");for(let n of await E(t,Vn))G(e,C(t,n),Vn);e.set(Yo,".agentsmesh/mcp.json");return}for(let n of await E(t,Xt))F(e,C(t,n),O,".md");for(let n of await E(t,Cr))F(e,C(t,n),ce,".md");for(let n of await E(t,qt))G(e,C(t,n),qt);e.set(Hn,".agentsmesh/mcp.json"),e.set(zn,".agentsmesh/ignore");}var tb=d(()=>{Le();la();_e();s(IR,"buildAugmentCodeImportPaths");});var rb,Xo,ti,np,op,sp,ip,ap,qo,LR,lp,Vl,cp,mp,Fd,Md,CR,pp,ER,ca,nb,Qo=d(()=>{rb="claude-code",Xo="CLAUDE.md",ti=".claude/CLAUDE.md",np=".claude/rules",op=".claude/commands",sp=".claude/agents",ip=".claude/skills",ap=".claude/settings.json",qo=".claude/hooks.json",LR=".claude/output-styles",lp=".claudeignore",Vl=".mcp.json",cp=".claude.json",mp=".agentsmesh/rules",Fd=".agentsmesh/commands",Md=".agentsmesh/agents",CR=".agentsmesh/skills",pp=".agentsmesh/mcp.json",ER=".agentsmesh/permissions.yaml",ca=".agentsmesh/hooks.yaml",nb=".agentsmesh/ignore";});async function wR(e,t,r="project"){if(e.set(".claude/CLAUDE.md",`${O}/_root.md`),e.set(qo,ca),r==="project"&&e.set("CLAUDE.md",`${O}/_root.md`),r==="global")for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");for(let n of await E(t,".claude/rules"))F(e,C(t,n),O,".md");for(let n of await E(t,".claude/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".claude/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".claude/skills"))G(e,C(t,n),".claude/skills");}var ob=d(()=>{Le();Qo();_e();s(wR,"buildClaudeCodeImportPaths");});var ri,Zo,ma,es,sb,St,ts,ni,pa,ua,da,fa,bR,oi,$d,OR,AR,ib,ab,ln=d(()=>{ri="cline",Zo=".clinerules",ma=".clineignore",es=".cline/cline_mcp_settings.json",sb=".cline/mcp_settings.json",St=".cline/skills",ts=".clinerules/workflows",ni="AGENTS.md",pa=".clinerules/hooks",ua="Documents/Cline/Rules",da="Documents/Cline/Workflows",fa="Documents/Cline/Hooks",bR=".agentsmesh/hooks.yaml",oi=".agentsmesh/rules",$d=".agentsmesh/commands",OR=".agentsmesh/ignore",AR=".agentsmesh/mcp.json",ib=".agentsmesh/agents",ab=".agentsmesh/skills";});async function xR(e,t,r="project"){if(r==="global"){for(let n of await E(t,ua))F(e,C(t,n),O,".md");for(let n of await E(t,da))F(e,C(t,n),ce,".md");for(let n of await E(t,St))G(e,C(t,n),St);e.set(es,".agentsmesh/mcp.json");return}e.set(".clinerules/_root.md",`${O}/_root.md`);for(let n of await E(t,".clinerules")){let o=C(t,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||F(e,o,O,".md");}for(let n of await E(t,".clinerules/workflows"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cline/skills"))G(e,C(t,n),".cline/skills");}var lb=d(()=>{Le();ln();_e();s(xR,"buildClineImportPaths");});async function TR(e,t,r="project"){if(r==="global"?(e.set(".codex/AGENTS.md",`${O}/_root.md`),e.set(".codex/AGENTS.override.md",`${O}/_root.md`)):(e.set("AGENTS.md",`${O}/_root.md`),e.set("codex.md",`${O}/_root.md`),await Td(e,t)),r==="project")for(let n of await E(t,".codex/instructions"))F(e,C(t,n),O,".md");for(let n of await E(t,".codex/rules")){let o=C(t,n);o.endsWith(".rules")?F(e,o,O,".rules"):o.endsWith(".md")&&F(e,o,O,".md");}for(let n of await E(t,".codex/agents"))F(e,C(t,n),Ae,".toml");for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");}var cb=d(()=>{Le();_e();s(TR,"buildCodexCliImportPaths");});var Jl,cn,Jn,PR,Gd,rs,DR,Qt,Yl,up,jd,Ud,NR,Yn=d(()=>{Jl="continue",cn=".continue/rules",Jn=".continue/prompts",PR=".continue/mcpServers",Gd=`${PR}/agentsmesh.json`,rs=`${cn}/general.md`,DR=`${cn}/_root.md`,Qt=".continue/skills",Yl=".continue/AGENTS.md",up=".continue/config.yaml",jd=".agentsmesh/rules",Ud=".agentsmesh/commands",NR=".agentsmesh/mcp.json";});async function vR(e,t,r="project"){e.set(rs,`${O}/_root.md`),e.set(DR,`${O}/_root.md`);for(let n of await E(t,".continue/rules")){let o=C(t,n);o===rs||o===DR||F(e,o,O,".md");}for(let n of await E(t,".continue/prompts"))e.set(C(t,n),`${ce}/${basename(n,".md")}.md`);for(let n of await E(t,".continue/skills"))G(e,C(t,n),".continue/skills");if(r==="global")for(let n of await E(t,".agents/skills"))G(e,C(t,n),".agents/skills");}var mb=d(()=>{Le();Yn();_e();s(vR,"buildContinueImportPaths");});function LY(e,t){if(t.endsWith(".instructions.md")){e.set(t,`${O}/${basename(t,".instructions.md")}.md`);return}F(e,t,O,".md");}async function FR(e,t){e.set(".github/copilot-instructions.md",`${O}/_root.md`);for(let r of await E(t,".github/copilot"))e.set(C(t,r),`${O}/${basename(r,".instructions.md")}.md`);for(let r of await E(t,".github/instructions"))LY(e,C(t,r));for(let r of await E(t,".github/prompts"))e.set(C(t,r),`${ce}/${basename(r,".prompt.md")}.md`);for(let r of await E(t,".github/agents"))e.set(C(t,r),`${Ae}/${basename(r,".agent.md")}.md`);for(let r of await E(t,".github/skills"))G(e,C(t,r),".github/skills");}var pb=d(()=>{Le();_e();s(LY,"addCopilotInstructionMapping");s(FR,"buildCopilotImportPaths");});var Er,wr,lt,Zt,ns,ub,Kd,er,ga,Wd,Hd,zd,Xl=d(()=>{Er="crush",wr="CRUSH.md",lt=".crush/skills",Zt="crush.json",ns=".crushignore",ub=".config/crush",Kd=`${ub}/crush.json`,er=".config/crush/skills",ga=`${ub}/CRUSH.md`,Wd=".agentsmesh/rules",Hd=".agentsmesh/ignore",zd=".agentsmesh/mcp.json";});async function MR(e,t,r="project"){if(r==="global"){for(let n of await E(t,er))G(e,C(t,n),er);return}e.set(wr,`${Wd}/_root.md`),e.set(Zt,zd),e.set(ns,Hd);for(let n of await E(t,lt))G(e,C(t,n),lt);}var db=d(()=>{Le();Xl();s(MR,"buildCrushImportPaths");});var fb,si,gb,br,os,Or,Ar,kt,tr,Xn,Vd,mn,$R,CY,ql,pn,qn,ii,ai,hb,Ql,GR,dp,jR,Ye=d(()=>{fb="cursor",si="AGENTS.md",gb=".cursorrules",br=".cursor/rules",os=`${br}/general.mdc`,Or=".cursor/commands",Ar=".cursor/agents",kt=".cursor/skills",tr=".cursor/mcp.json",Xn=".cursor/hooks.json",Vd=".cursor/settings.json",mn=".cursorignore",$R=".cursorindexingignore",CY=".agentsmesh-exports/cursor",ql=`${CY}/user-rules.md`,pn=".cursor/AGENTS.md",qn=".agentsmesh/rules",ii=".agentsmesh/commands",ai=".agentsmesh/agents",hb=".agentsmesh/skills",Ql=".agentsmesh/mcp.json",GR=".agentsmesh/permissions.yaml",dp=".agentsmesh/hooks.yaml",jR=".agentsmesh/ignore";});async function UR(e,t,r="project"){if(r==="global"){e.set(tr,".agentsmesh/mcp.json"),e.set(".cursor/AGENTS.md",`${O}/_root.md`);for(let n of await E(t,".cursor/rules"))F(e,C(t,n),O,".mdc");for(let n of await E(t,".cursor/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cursor/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".cursor/skills"))G(e,C(t,n),".cursor/skills");return}e.set("AGENTS.md",`${O}/_root.md`);for(let n of await E(t,".cursor/rules"))F(e,C(t,n),O,".mdc");for(let n of await E(t,".cursor/commands"))F(e,C(t,n),ce,".md");for(let n of await E(t,".cursor/agents"))F(e,C(t,n),Ae,".md");for(let n of await E(t,".cursor/skills"))G(e,C(t,n),".cursor/skills");}var yb=d(()=>{Le();Ye();_e();s(UR,"buildCursorImportPaths");});var Qn,xr,It,ss,is,un,ha,Rb,Zl=d(()=>{Qn="deepagents-cli",xr=".deepagents/AGENTS.md",It=".deepagents/skills",ss=".mcp.json",is=".deepagents/AGENTS.md",un=".deepagents/skills",ha=".deepagents/.mcp.json",Rb=".agentsmesh/rules";});async function BR(e,t,r="project"){if(r==="global"){e.set(is,`${O}/_root.md`);for(let n of await E(t,un))G(e,C(t,n),un);e.set(ha,".agentsmesh/mcp.json");return}e.set(xr,`${O}/_root.md`);for(let n of await E(t,It))G(e,C(t,n),It);e.set(ss,".agentsmesh/mcp.json");}var _b=d(()=>{Le();Zl();_e();s(BR,"buildDeepagentsCliImportPaths");});var Tr,Pr,jt,Zn,eo,as,to,ya,li,Sb,Ra=d(()=>{Tr="factory-droid",Pr="AGENTS.md",jt=".factory/skills",Zn=".factory/droids",eo=".factory/mcp.json",as=".factory/AGENTS.md",to=".factory/skills",ya=".factory/droids",li=".factory/mcp.json",Sb=".agentsmesh/rules";});async function KR(e,t,r="project"){if(r==="global"){e.set(as,`${O}/_root.md`);for(let n of await E(t,ya))F(e,C(t,n),Ae,".md");for(let n of await E(t,to))G(e,C(t,n),to);e.set(li,".agentsmesh/mcp.json");return}e.set(Pr,`${O}/_root.md`);for(let n of await E(t,Zn))F(e,C(t,n),Ae,".md");for(let n of await E(t,jt))G(e,C(t,n),jt);e.set(eo,".agentsmesh/mcp.json");}var kb=d(()=>{Le();Ra();_e();s(KR,"buildFactoryDroidImportPaths");});async function WR(e,t){for(let r of await E(t,".gemini/rules"))F(e,C(t,r),O,".md");for(let r of await E(t,".gemini/commands")){let n=C(t,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),i=".gemini/commands/",c=(o.startsWith(i)?o.slice(i.length):o).split("/").filter(Boolean).join(":");e.set(n,`${ce}/${c}.md`);}for(let r of await E(t,".gemini/agents"))F(e,C(t,r),Ae,".md");for(let r of await E(t,".gemini/skills"))G(e,C(t,r),".gemini/skills");}var Ib=d(()=>{Le();_e();s(WR,"buildGeminiCliImportPaths");});var ro,Dr,Ut,ls,Lb,cs,_a,Nr,Cb,Eb,ec=d(()=>{ro="goose",Dr=".goosehints",Ut=".agents/skills",ls=".gooseignore",Lb=".config/goose",cs=`${Lb}/.goosehints`,_a=`${Lb}/.gooseignore`,Nr=".agents/skills",Cb=".agentsmesh/rules",Eb=".agentsmesh/ignore";});async function HR(e,t,r="project"){if(r==="global"){e.set(cs,`${O}/_root.md`);for(let n of await E(t,Nr))G(e,C(t,n),Nr);e.set(_a,".agentsmesh/ignore");return}e.set(Dr,`${O}/_root.md`);for(let n of await E(t,Ut))G(e,C(t,n),Ut);e.set(ls,".agentsmesh/ignore");}var wb=d(()=>{Le();ec();_e();s(HR,"buildGooseImportPaths");});var ms,dn,bb,tc=d(()=>{ms="jules",dn="AGENTS.md",bb=".agentsmesh/rules";});async function zR(e,t,r="project"){r!=="global"&&e.set(dn,`${O}/_root.md`);}var Ob=d(()=>{tc();_e();s(zR,"buildJulesImportPaths");});var Sa,ci,Jd,Ab,no,xb,EY,fp,ka,gp,rc,nc,hp,yp,Rp,_p,Sp,wY,Yd,Ia,Tb,VR,Xd,Pb,Db,Nb,vb,oc=d(()=>{Sa="junie",ci=".junie",Jd=`${ci}/guidelines.md`,Ab=`${ci}/ci-guidelines.md`,no=`${ci}/AGENTS.md`,xb="AGENTS.md",EY=`${ci}/mcp`,fp=`${EY}/mcp.json`,ka=`${ci}/skills`,gp=`${ci}/rules`,rc=`${ci}/commands`,nc=`${ci}/agents`,hp=".aiignore",yp=".junie",Rp=`${yp}/skills`,_p=`${yp}/agents`,Sp=`${yp}/commands`,wY=`${yp}/mcp`,Yd=`${wY}/mcp.json`,Ia=`${yp}/AGENTS.md`,Tb=".agents/skills",VR=".agentsmesh/rules/_root.md",Xd=".agentsmesh/rules",Pb=".agentsmesh/commands",Db=".agentsmesh/agents",Nb=".agentsmesh/mcp.json",vb=".agentsmesh/ignore";});async function JR(e,t){e.set(Jd,`${O}/_root.md`),e.set(no,`${O}/_root.md`),e.set("AGENTS.md",`${O}/_root.md`);for(let r of await E(t,".junie/rules"))F(e,C(t,r),O,".md");for(let r of await E(t,".junie/commands"))F(e,C(t,r),ce,".md");for(let r of await E(t,".junie/agents"))F(e,C(t,r),Ae,".md");for(let r of await E(t,".junie/skills"))G(e,C(t,r),".junie/skills");}var Fb=d(()=>{Le();oc();_e();s(JR,"buildJunieImportPaths");});var Tt,kp,oo,ps,us,ds,fn,mi,sc,qd,La,ic,Ca,Ip,Qd,ac,pi,Ea,wa,ba,ui,lc,Zd,Mb,di,cc,Oa,$b,Gb,Aa=d(()=>{Tt="kilo-code",kp=".kilo",oo="AGENTS.md",ps=`${kp}/rules`,us=`${kp}/commands`,ds=`${kp}/agents`,fn=`${kp}/skills`,mi=`${kp}/mcp.json`,sc=".kilocodeignore",qd=".kilocode",La=`${qd}/rules`,ic=`${qd}/workflows`,Ca=`${qd}/skills`,Ip=`${qd}/mcp.json`,Qd=".kilocodemodes",ac=".kilo",pi=`${ac}/AGENTS.md`,Ea=`${ac}/rules`,wa=`${ac}/commands`,ba=`${ac}/agents`,ui=`${ac}/skills`,lc=`${ac}/mcp.json`,Zd=".kilocodeignore",Mb=".agents/skills",di=".agentsmesh/rules",cc=".agentsmesh/commands",Oa=".agentsmesh/agents",$b=".agentsmesh/mcp.json",Gb=".agentsmesh/ignore";});async function YR(e,t,r="project"){if(r==="global"){e.set(pi,`${O}/_root.md`);for(let n of await E(t,Ea))F(e,C(t,n),O,".md");for(let n of await E(t,wa))F(e,C(t,n),ce,".md");for(let n of await E(t,ba))F(e,C(t,n),Ae,".md");for(let n of await E(t,ui))G(e,C(t,n),ui);e.set(lc,".agentsmesh/mcp.json");return}e.set(oo,`${O}/_root.md`);for(let n of await E(t,ps))F(e,C(t,n),O,".md");for(let n of await E(t,us))F(e,C(t,n),ce,".md");for(let n of await E(t,ds))F(e,C(t,n),Ae,".md");for(let n of await E(t,fn))G(e,C(t,n),fn);e.set(mi,".agentsmesh/mcp.json");for(let n of await E(t,La)){let o=C(t,n);if(basename(o)==="00-root.md"){e.set(o,`${O}/_root.md`);continue}F(e,o,O,".md");}for(let n of await E(t,ic))F(e,C(t,n),ce,".md");for(let n of await E(t,Ca))G(e,C(t,n),Ca);e.set(Ip,".agentsmesh/mcp.json");}var jb=d(()=>{Le();Aa();_e();s(YR,"buildKiloCodeImportPaths");});var rr,gn,Lp,hn,Pt,yn,fi,OY,mc,pc,xa,Rn,gi,Ta,Cp,Ep,Ub,XR,qR,Bb,Kb,QR,Wb,uc=d(()=>{rr="kiro",gn="AGENTS.md",Lp=".kiro",hn=`${Lp}/steering`,Pt=`${Lp}/skills`,yn=`${Lp}/agents`,fi=`${Lp}/hooks`,OY=`${Lp}/settings`,mc=`${OY}/mcp.json`,pc=".kiroignore",xa=".kiro/steering",Rn=".kiro/steering/AGENTS.md",gi=".kiro/skills",Ta=".kiro/agents",Cp=".kiro/settings/mcp.json",Ep=".kiro/settings/kiroignore",Ub=".agents/skills",XR=".agentsmesh/rules/_root.md",qR=".agentsmesh/rules",Bb=".agentsmesh/agents",Kb=".agentsmesh/mcp.json",QR=".agentsmesh/hooks.yaml",Wb=".agentsmesh/ignore";});async function ZR(e,t,r="project"){if(r==="global"){e.set(Rn,`${O}/_root.md`);for(let n of await E(t,xa)){let o=C(t,n);o!==Rn&&F(e,o,O,".md");}for(let n of await E(t,gi))G(e,C(t,n),gi);for(let n of await E(t,Ta))F(e,C(t,n),Ae,".md");return}e.set(gn,`${O}/_root.md`);for(let n of await E(t,hn))F(e,C(t,n),O,".md");for(let n of await E(t,Pt))G(e,C(t,n),Pt);for(let n of await E(t,yn))F(e,C(t,n),Ae,".md");}var Hb=d(()=>{Le();uc();_e();s(ZR,"buildKiroImportPaths");});var _n,ef,so,fs,gs,hs,Sn,io,dc,hi,Pa,Da,Na,yi,Ri,zb,wp,tf,rf,e_,va=d(()=>{_n="opencode",ef=".opencode",so="AGENTS.md",fs=`${ef}/rules`,gs=`${ef}/commands`,hs=`${ef}/agents`,Sn=`${ef}/skills`,io="opencode.json",dc=".config/opencode",hi=`${dc}/AGENTS.md`,Pa=`${dc}/rules`,Da=`${dc}/commands`,Na=`${dc}/agents`,yi=`${dc}/skills`,Ri=`${dc}/opencode.json`,zb=".agents/skills",wp=".agentsmesh/rules",tf=".agentsmesh/commands",rf=".agentsmesh/agents",e_=".agentsmesh/mcp.json";});async function t_(e,t,r="project"){if(r==="global"){e.set(hi,`${O}/_root.md`);for(let n of await E(t,Pa))F(e,C(t,n),O,".md");for(let n of await E(t,Da))F(e,C(t,n),ce,".md");for(let n of await E(t,Na))F(e,C(t,n),Ae,".md");for(let n of await E(t,yi))G(e,C(t,n),yi);e.set(Ri,".agentsmesh/mcp.json");return}e.set(so,`${O}/_root.md`);for(let n of await E(t,fs))F(e,C(t,n),O,".md");for(let n of await E(t,gs))F(e,C(t,n),ce,".md");for(let n of await E(t,hs))F(e,C(t,n),Ae,".md");for(let n of await E(t,Sn))G(e,C(t,n),Sn);e.set(io,".agentsmesh/mcp.json");}var Vb=d(()=>{Le();va();_e();s(t_,"buildOpencodeImportPaths");});var ao,vr,ct,Jb,ys,Fr,Yb,fc=d(()=>{ao="pi-agent",vr="AGENTS.md",ct=".pi/skills",Jb=".pi/agent",ys=`${Jb}/AGENTS.md`,Fr=`${Jb}/skills`,Yb=".agentsmesh/rules";});async function r_(e,t,r="project"){if(r==="global"){e.set(ys,`${O}/_root.md`);for(let n of await E(t,Fr))G(e,C(t,n),Fr);return}e.set(vr,`${O}/_root.md`);for(let n of await E(t,ct))G(e,C(t,n),ct);}var n_=d(()=>{Le();fc();_e();s(r_,"buildPiAgentImportPaths");});var kn,Mr,Rs,lo,co,nr,_i,Si,_s,Fa,ki,mo,Ii,o_,Xb,qb,gc=d(()=>{kn="qwen-code",Mr="QWEN.md",Rs=".qwen/rules",lo=".qwen/commands",co=".qwen/agents",nr=".qwen/skills",_i=".qwen/settings.json",Si=".qwenignore",_s=".qwen/QWEN.md",Fa=".qwen/settings.json",ki=".qwen/commands",mo=".qwen/skills",Ii=".qwen/agents",o_=".agentsmesh/rules",Xb=".agentsmesh/commands",qb=".agentsmesh/agents";});async function s_(e,t,r="project"){if(r==="global"){e.set(_s,`${O}/_root.md`),e.set(Fa,".agentsmesh/mcp.json");for(let n of await E(t,ki))F(e,C(t,n),ce,".md");for(let n of await E(t,Ii))F(e,C(t,n),Ae,".md");for(let n of await E(t,mo))G(e,C(t,n),mo);return}e.set(Mr,`${O}/_root.md`),e.set(_i,".agentsmesh/mcp.json"),e.set(Si,".agentsmesh/ignore");for(let n of await E(t,Rs))F(e,C(t,n),O,".md");for(let n of await E(t,lo))F(e,C(t,n),ce,".md");for(let n of await E(t,co))F(e,C(t,n),Ae,".md");for(let n of await E(t,nr))G(e,C(t,n),nr);}var Qb=d(()=>{Le();_e();gc();s(s_,"buildQwenCodeImportPaths");});var po,In,Bt,Zb,hc=d(()=>{po="replit-agent",In="replit.md",Bt=".agents/skills",Zb=".agentsmesh/rules";});async function i_(e,t,r="project"){if(r!=="global"){e.set(In,`${O}/_root.md`);for(let n of await E(t,Bt))G(e,C(t,n),Bt);}}var a_=d(()=>{Le();hc();_e();s(i_,"buildReplitAgentImportPaths");});var Li,Ma,Ln,bp,Ss,ks,uo,Op,Ap,yc,xp,nf,Ci,Ei,Is,$a,Tp,wi,eO,Ga,of,tO,rO,ja=d(()=>{Li="roo-code",Ma=".roo",Ln=`${Ma}/rules/00-root.md`,bp=".roorules",Ss=`${Ma}/rules`,ks=`${Ma}/commands`,uo=`${Ma}/skills`,Op=`${Ma}/mcp.json`,Ap=".rooignore",yc=".roomodes",xp="settings/custom_modes.yaml",nf=".roo",Ci=`${nf}/rules`,Ei=`${nf}/commands`,Is=`${nf}/skills`,$a="mcp_settings.json",Tp=".rooignore",wi=`${nf}/AGENTS.md`,eO=".agents/skills",Ga=".agentsmesh/rules",of=".agentsmesh/commands",tO=".agentsmesh/mcp.json",rO=".agentsmesh/ignore";});async function l_(e,t,r="project"){if(r==="global"){e.set(wi,`${O}/_root.md`);for(let n of await E(t,Ci))F(e,C(t,n),O,".md");for(let n of await E(t,Ei))F(e,C(t,n),ce,".md");for(let n of await E(t,Is))G(e,C(t,n),Is);e.set($a,".agentsmesh/mcp.json");return}e.set(Ln,`${O}/_root.md`),e.set(bp,`${O}/_root.md`);for(let n of await E(t,Ss)){let o=C(t,n);o!==Ln&&F(e,o,O,".md");}for(let n of await E(t,".roo")){let o=C(t,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&F(e,o,O,".md");}for(let n of await E(t,ks))F(e,C(t,n),ce,".md");for(let n of await E(t,uo))G(e,C(t,n),uo);}var nO=d(()=>{Le();ja();_e();s(l_,"buildRooCodeImportPaths");});var fo,$r,oO,mt,Ls,sO,Cs,or,Rc,iO,_c=d(()=>{fo="rovodev",$r="AGENTS.md",oO=".rovodev",mt=`${oO}/skills`,Ls=`${oO}/mcp.json`,sO=".rovodev",Cs=".rovodev/AGENTS.md",or=".rovodev/skills",Rc=".rovodev/mcp.json",iO=".agentsmesh/rules";});async function c_(e,t,r="project"){if(r==="global"){e.set(Cs,`${O}/_root.md`);for(let n of await E(t,or))G(e,C(t,n),or);e.set(Rc,".agentsmesh/mcp.json");return}e.set($r,`${O}/_root.md`);for(let n of await E(t,mt))G(e,C(t,n),mt);e.set(Ls,".agentsmesh/mcp.json");}var aO=d(()=>{Le();_c();_e();s(c_,"buildRovodevImportPaths");});var Gr,sf,sr,ir,jr,Ua,Sc,Es,Ur,Cn,Pp,lO,Dp,cO,mO,kc=d(()=>{Gr="trae",sf=".trae",sr=`${sf}/rules`,ir=`${sr}/project_rules.md`,jr=`${sf}/skills`,Ua=`${sf}/mcp.json`,Sc=`${sf}/.ignore`,Es=".trae/user_rules",Ur=".trae/user_rules/rules.md",Cn=".trae/skills",Pp=".trae/mcp.json",lO=".agents/skills",Dp=".agentsmesh/rules",cO=".agentsmesh/mcp.json",mO=".agentsmesh/ignore";});async function m_(e,t,r="project"){if(r==="global"){e.set(Ur,`${O}/_root.md`);for(let n of await E(t,Es)){let o=C(t,n);o!==Ur&&F(e,o,O,".md");}for(let n of await E(t,Cn))G(e,C(t,n),Cn);return}e.set(ir,`${O}/_root.md`);for(let n of await E(t,sr)){let o=C(t,n);o!==ir&&F(e,o,O,".md");}for(let n of await E(t,jr))G(e,C(t,n),jr);}var pO=d(()=>{Le();kc();_e();s(m_,"buildTraeImportPaths");});var go,En,p_,Lt,bi,ar,uO,Ic=d(()=>{go="warp",En="AGENTS.md",p_="WARP.md",Lt=".warp/skills",bi=".mcp.json",ar=".warp/skills",uO=".agentsmesh/rules";});async function u_(e,t,r="project"){if(r==="global"){for(let n of await E(t,ar))G(e,C(t,n),ar);return}e.set(En,`${O}/_root.md`);for(let n of await E(t,Lt))G(e,C(t,n),Lt);e.set(bi,".agentsmesh/mcp.json");}var dO=d(()=>{Le();Ic();_e();s(u_,"buildWarpImportPaths");});async function d_(e,t){e.set("AGENTS.md",`${O}/_root.md`),e.set(".windsurfrules",`${O}/_root.md`),await Td(e,t);for(let r of await E(t,".windsurf/rules"))F(e,C(t,r),O,".md");for(let r of await E(t,".windsurf/workflows"))F(e,C(t,r),ce,".md");for(let r of await E(t,".windsurf/skills"))G(e,C(t,r),".windsurf/skills");}var fO=d(()=>{Le();_e();s(d_,"buildWindsurfImportPaths");});var wn,ho,AY,yo,gO,Ba=d(()=>{wn=".rules",ho=".zed/settings.json",AY=".config/zed",yo=`${AY}/settings.json`,gO=".agentsmesh/rules";});async function f_(e,t,r="project"){if(r==="global"){e.set(yo,".agentsmesh/mcp.json");return}e.set(wn,`${O}/_root.md`),e.set(ho,".agentsmesh/mcp.json");}var hO=d(()=>{Ba();_e();s(f_,"buildZedImportPaths");});var yO=d(()=>{Vw();Xw();Qw();eb();tb();ob();lb();cb();mb();pb();db();yb();_b();kb();Ib();wb();Ob();Fb();jb();Hb();Vb();n_();Qb();a_();nO();aO();pO();dO();fO();hO();});var Ce=d(()=>{yO();});var xY,TY,PY,RO,xd,lR=d(()=>{we();ue();JE();Dw();Gw();Kw();Ce();Bl();xY={name:Gn,primaryRootInstructionPath:yr,generateRules:KE,generateCommands:HE,generateAgents:zE,generateSkills:WE,generateIgnore:VE,importFrom:Pw},TY={rootInstructionPath:yr,skillDir:ht,managedOutputs:{dirs:[ht],files:[yr,Bo]},paths:{rulePath(e){return yr},commandPath(e){return `${ht}/${J(e)}/SKILL.md`},agentPath(e){return `${ht}/${K(e)}/SKILL.md`}}},PY={rootInstructionPath:Ko,skillDir:Rr,managedOutputs:{dirs:[Rr],files:[Ko,ta]},rewriteGeneratedPath(e){return e===yr?Ko:e===Bo?ta:e.startsWith(`${ht}/`)?e.replace(`${ht}/`,`${Rr}/`):e},paths:{rulePath(e){return Ko},commandPath(e){return `${Rr}/${J(e)}/SKILL.md`},agentPath(e){return `${Rr}/${K(e)}/SKILL.md`}}},RO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},xd={id:Gn,metadata:{displayName:"Aider",category:"cli",officialUrl:"https://aider.chat",shortDescription:"Open-source terminal AI pair programmer"},generators:xY,capabilities:RO,emptyImportMessage:"No Aider config found (CONVENTIONS.md, .aider/skills, or .aiderignore).",lintRules:$w,lint:{hooks:jw,permissions:Uw,mcp:Bw},supportsConversion:{commands:true,agents:true},project:TY,globalSupport:{capabilities:RO,detectionPaths:[Ko,ta,Rr],layout:PY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[yr],global:[Ko]},canonicalDir:UE,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Bo],global:[ta]},canonicalDir:".agentsmesh",canonicalFilename:BE}},buildImportPaths:uR,detectionPaths:[yr,Bo]};});function _O(e){let t=[];for(let r of e.rules){if(r.targets.length>0&&!r.targets.includes(ra))continue;let n=r.root?"_root":basename(r.source,".md");t.push({path:`${on}/${n}.md`,content:r.body.trim()});}return t}function SO(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:na,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var kO=d(()=>{Zm();s(_O,"generateRules");s(SO,"generateMcp");});async function IO(e,t){let r=t?.scope??"project";return q(af,e,r)}var LO=d(()=>{be();g_();s(IO,"importFromAmazonQ");});function CO(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ra}))}var EO=d(()=>{Ie();Zm();s(CO,"lintRules");});var NY,vY,FY,MY,af,g_=d(()=>{kO();LO();EO();Ce();Zm();NY={name:ra,generateRules:_O,generateMcp:SO,importFrom:IO},vY={managedOutputs:{dirs:[on],files:[na]},paths:{rulePath(e,t){return `${on}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},FY={managedOutputs:{dirs:[ei],files:[Qm]},rewriteGeneratedPath(e){return e.startsWith(`${on}/`)?e.replace(`${on}/`,`${ei}/`):e===na?Qm:e},paths:{rulePath(e,t){return `${ei}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},MY={rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},af={id:ra,metadata:{displayName:"Amazon Q Developer",category:"ide",officialUrl:"https://aws.amazon.com/q/developer",shortDescription:"AWS AI coding assistant"},generators:NY,capabilities:{rules:"native",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Amazon Q Developer config found (.amazonq/rules/ or .amazonq/mcp.json).",lintRules:CO,project:vY,globalSupport:{capabilities:MY,detectionPaths:[ei,Qm],layout:FY},importer:{rules:{feature:"rules",mode:"directory",source:{project:[on],global:[ei]},canonicalDir:Jw,extensions:[".md"],preset:"rule"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[na],global:[Qm]},canonicalDir:".agentsmesh",canonicalFilename:Yw}},buildImportPaths:dR,detectionPaths:[on,na]};});function wO(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("amp")),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:kr,content:o}]:[]}function bO(e){return ie(e,Rt)}function OO(e){return e.commands.map(t=>({path:`${Rt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function AO(e){return e.agents.map(t=>({path:`${Rt}/${K(t.name)}/SKILL.md`,content:De(t)}))}var xO=d(()=>{se();Ue();ue();we();oa();s(wO,"generateRules");s(bO,"generateSkills");s(OO,"generateCommands");s(AO,"generateAgents");});function de(e,t,r){let n=r.some(o=>$Y.includes(o));return e.startsWith(`${t}/`)&&!n?`.agents/skills/${e.slice(t.length+1)}`:null}var $Y,pt=d(()=>{$Y=["amp","antigravity","codex-cli","goose","replit-agent"];s(de,"mirrorSkillsToAgents");});async function PO(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let i=o,a=i["amp.mcpServers"]??i.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Je(e,TO,l),r.push({fromTool:"amp",fromPath:t,toPath:TO,feature:"mcp"}));}var TO,DO=d(()=>{A();nn();oa();TO=".agentsmesh/mcp.json";s(PO,"importAmpMcp");});async function NO(e,t={}){let r=t.scope??"project",n=[],o=await z("amp",e,r);return n.push(...await q(lf,e,r,{normalize:o})),await oe(e,r==="global"?Ir:Rt,"amp",n,o),await PO(e,r==="global"?zo:Un,n),n}var vO=d(()=>{ge();se();be();DO();oa();h_();s(NO,"importFromAmp");});function FO(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"amp"}))}var MO=d(()=>{Ie();oa();s(FO,"lintRules");});function $O(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","amp","Amp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function GO(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","amp","Amp permissions are managed via amp.permissions in settings.json; canonical permissions are not projected.")]}function jO(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","amp","Amp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var UO=d(()=>{Oe();s($O,"lintHooks");s(GO,"lintPermissions");s(jO,"lintIgnore");});function KY(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o["amp.mcpServers"]!==void 0&&(r["amp.mcpServers"]=o["amp.mcpServers"]),JSON.stringify(r,null,2)}var jY,UY,BY,BO,lf,h_=d(()=>{we();ue();xO();pt();vO();MO();UO();Ce();oa();jY={name:"amp",primaryRootInstructionPath:kr,generateRules:wO,generateCommands:OO,generateAgents:AO,generateSkills:bO,importFrom:NO},UY={rootInstructionPath:kr,skillDir:Rt,managedOutputs:{dirs:[Rt],files:[kr,Un]},paths:{rulePath(e){return kr},commandPath(e){return `${Rt}/${J(e)}/SKILL.md`},agentPath(e){return `${Rt}/${K(e)}/SKILL.md`}}},BY={rootInstructionPath:Ho,skillDir:Ir,managedOutputs:{dirs:[Ir],files:[Ho,zo]},rewriteGeneratedPath(e){return e===kr?Ho:e===Un?zo:e.startsWith(`${Rt}/`)?e.replace(`${Rt}/`,`${Ir}/`):e},mirrorGlobalPath(e,t){return de(e,Ir,t)},paths:{rulePath(e){return Ho},commandPath(e){return `${Ir}/${J(e)}/SKILL.md`},agentPath(e){return `${Ir}/${K(e)}/SKILL.md`}}},BO={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(KY,"mergeAmpSettings");lf={id:"amp",metadata:{displayName:"Amp",category:"cli",officialUrl:"https://ampcode.com",shortDescription:"Sourcegraph's coding agent"},generators:jY,capabilities:BO,emptyImportMessage:"No Amp config found (AGENTS.md, .agents/skills, or .amp/settings.json).",lintRules:FO,lint:{hooks:$O,permissions:GO,ignore:jO},supportsConversion:{commands:true,agents:true},project:UY,globalSupport:{capabilities:BO,detectionPaths:[Ho,zo],layout:BY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[kr],global:[Ho]},canonicalDir:qw,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){return r.has("mcp")?!e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Un,content:JSON.stringify({"amp.mcpServers":e.mcp.mcpServers},null,2)}]:[]},mergeGeneratedOutputContent(e,t,r,n){return n===Un||n===zo?KY(e,r):null},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:gR,detectionPaths:[kr,Un],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function KO(e){let t=e.rules.find(n=>n.root);if(!t)return [];let r=[{path:Lr,content:t.body.trim()||""}];for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("antigravity"))continue;let o=basename(n.source,".md");r.push({path:`${sn}/${o}.md`,content:n.body.trim()||""});}return r}function WO(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
61
65
|
|
|
62
|
-
${n}`:n||r;return {path:`${
|
|
63
|
-
`)}]}var
|
|
64
|
-
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(
|
|
65
|
-
`)),r.push({fromTool:
|
|
66
|
+
${n}`:n||r;return {path:`${Bn}/${t.name}.md`,content:o}})}function HO(e){return ie(e,an)}function zO(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:tp,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function VO(e){return e.agents.map(t=>({path:`${an}/${K(t.name)}/SKILL.md`,content:De(t)}))}function JO(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("antigravity"));return ae(t?.body.trim()??"",r)}var YO=d(()=>{se();Ue();ue();aa();s(KO,"generateRules");s(WO,"generateCommands");s(HO,"generateSkills");s(zO,"generateMcp");s(VO,"generateAgents");s(JO,"renderAntigravityGlobalInstructions");});function HY(e){let t=e.replace(/\\/g,"/");return !t.startsWith("rules/")||t.endsWith("/")||!t.endsWith(".md")?null:t}async function Ro(e){let t=DE(e.content),r=[];if(t.rules.length===0)return {rootContent:t.rootContent,results:r};await w(join(e.projectRoot,e.rulesDir));for(let n of t.rules){let o=HY(n.source);if(o===null||o==="rules/_root.md")continue;let i=join(e.projectRoot,".agentsmesh",o),a=e.normalize(n.body,e.sourcePath,i),{frontmatter:l,body:c}=x(a),m=await V(i,{...l,root:false,description:n.description||void 0,globs:n.globs.length>0?n.globs:void 0,targets:n.targets.length>0?n.targets:void 0},c);await L(i,m),r.push({fromTool:e.fromTool,fromPath:e.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:t.rootContent,results:r}}var Lc=d(()=>{A();B();Ue();fe();s(HY,"canonicalRulePath");s(Ro,"splitEmbeddedRulesToCanonical");});async function zY(e,t,r,n){let o=n==="global"?Kn:Lr,i=n==="project"?[o,ep]:[o];for(let a of i){let l=join(e,a),c=await k(l);if(c===null)continue;let m=join(e,hR),p=await Ro({content:c,projectRoot:e,rulesDir:ia,sourcePath:l,fromTool:sa,normalize:r});t.push(...p.results);let{body:u}=x(r(p.rootContent,l,m)),f=await V(m,{root:true},u);await w(join(e,ia)),await L(m,f),t.push({fromTool:sa,fromPath:l,toPath:hR,feature:"rules"});return}}async function qO(e,t={}){let r=t.scope??"project",n=[],o=await z(sa,e,r);return await zY(e,n,o,r),n.push(...await q(cf,e,r,{normalize:o})),await oe(e,r==="global"?Wn:an,sa,n,o),n}var QO=d(()=>{ge();A();B();se();be();fe();Lc();aa();R_();s(zY,"importRootRule");s(qO,"importFromAntigravity");});var tA,rA,nA=d(()=>{B();fe();aa();tA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(basename(e)==="general.md"||basename(e)==="_root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${ia}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"nonRootRuleMapper"),rA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Dd}/${e}`,content:await Se(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"workflowMapper");});function oA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:sa}))}var sA=d(()=>{Ie();aa();s(oA,"lintRules");});var VY,JY,YY,XY,cf,R_=d(()=>{ea();ue();YO();aa();QO();nA();sA();Ce();VY={name:"antigravity",primaryRootInstructionPath:Lr,generateRules:KO,generateCommands:WO,generateAgents:VO,generateSkills:HO,generateMcp:zO,importFrom:qO},JY={rootInstructionPath:Lr,skillDir:".agents/skills",managedOutputs:{dirs:[sn,Bn,an],files:[Lr]},rewriteGeneratedPath(e){return e===tp?null:e},paths:{rulePath(e,t){return `${sn}/${e}.md`},commandPath(e,t){return `${Bn}/${e}.md`},agentPath(e){return `${an}/${K(e)}/SKILL.md`}}},YY={rootInstructionPath:Kn,renderPrimaryRootInstruction:JO,skillDir:Wn,managedOutputs:{dirs:[Wn,rp],files:[Kn,zl]},rewriteGeneratedPath(e){return e===Lr?Kn:e.startsWith(`${sn}/`)?null:e.startsWith(".agents/skills/")?e.replace(".agents/skills",Wn):e.startsWith(`${Bn}/`)?e.replace(Bn,rp):e===tp?zl:e},paths:{rulePath(e,t){return Kn},commandPath(e,t){return `${rp}/${e}.md`},agentPath(e){return `${Wn}/${K(e)}/SKILL.md`}}},XY={rules:"native",additionalRules:"embedded",commands:Zr("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},cf={id:"antigravity",metadata:{displayName:"Antigravity",category:"ide",officialUrl:"https://antigravity.google",shortDescription:"Google's agentic IDE"},generators:VY,capabilities:{rules:"native",additionalRules:"native",commands:Zr("partial","workflows"),agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Antigravity config found (.agents/rules/, .agents/skills/, or .agents/workflows/).",supportsConversion:{agents:true},lintRules:oA,project:JY,globalSupport:{capabilities:XY,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:YY},importer:{rules:{feature:"rules",mode:"directory",source:{project:[sn]},canonicalDir:ia,extensions:[".md"],map:tA},commands:{feature:"commands",mode:"directory",source:{project:[Bn],global:[rp]},canonicalDir:Dd,extensions:[".md"],map:rA},mcp:{feature:"mcp",mode:"flatFile",source:{global:[zl]},canonicalDir:".agentsmesh",canonicalFilename:Zw}},buildImportPaths:yR,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"],conversionDefaults:{agentsToSkills:true}};});function QY(e){let t={};return e.description&&(t.description=e.description),e.globs.length>0||e.trigger==="manual"||e.trigger==="model_decision"?(t.agent_requested=true,e.globs.length>0&&(t.globs=e.globs)):t.always_apply=true,t}function ZY(e){let t={};return e.description&&(t.description=e.description),t}function iA(e){let t=[];for(let r of e.rules)if(!(r.targets.length>0&&!r.targets.includes(_t)))if(r.root){let n={always_apply:true};r.description&&(n.description=r.description),t.push({path:`${Xt}/_root.md`,content:D(n,r.body.trim())});}else {let n=basename(r.source,".md");t.push({path:`${Xt}/${n}.md`,content:D(QY(r),r.body.trim())});}return t}function aA(e){return e.commands.map(t=>({path:`${Cr}/${t.name}.md`,content:D(ZY(t),t.body.trim())}))}function lA(e){return ie(e,qt)}function cA(e){return e.ignore.length===0?[]:[{path:zn,content:e.ignore.join(`
|
|
67
|
+
`)}]}var mA=d(()=>{se();B();la();s(QY,"ruleFrontmatter");s(ZY,"commandFrontmatter");s(iA,"generateRules");s(aA,"generateCommands");s(lA,"generateSkills");s(cA,"generateIgnore");});function t2(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:".*",c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=typeof m.command=="string"?m.command:void 0;if(!p)continue;let u={matcher:l,type:"command",command:p};typeof m.timeout=="number"&&(u.timeout=m.timeout),o.push(u);}}o.length>0&&(t[r]=o);}return t}async function uA(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o.mcpServers&&typeof o.mcpServers=="object"){let a=o.mcpServers;await Je(e,_R,a),r.push({fromTool:_t,fromPath:join(e,t),toPath:_R,feature:"mcp"});}let i=o.hooks;if(i&&typeof i=="object"&&!Array.isArray(i)){let a=t2(i);if(Object.keys(a).length>0){let l=join(e,SR);await w(dirname(l)),await L(l,stringify(a)),r.push({fromTool:_t,fromPath:join(e,t),toPath:SR,feature:"hooks"});}}}async function dA(e,t,r){let n=await k(join(e,t));if(n===null)return;let o=n.split(`
|
|
68
|
+
`).map(a=>a.trim()).filter(a=>a.length>0&&!a.startsWith("#"));if(o.length===0)return;let i=join(e,kR);await w(dirname(i)),await L(i,o.join(`
|
|
69
|
+
`)),r.push({fromTool:_t,fromPath:join(e,t),toPath:kR,feature:"ignore"});}var fA=d(()=>{A();nn();la();s(t2,"augmentHooksToCanonical");s(uA,"importAugmentSettings");s(dA,"importAugmentIgnore");});function r2(e,t){let r={root:t,description:typeof e.description=="string"?e.description:void 0,globs:Array.isArray(e.globs)?e.globs:[]};return e.agent_requested===true&&(r.trigger="model_decision"),r}async function n2(e,t,r,n){let o=n==="global"?Vo:Xt,i=join(e,RR);t.push(...await ke({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:_t,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=a==="_root.md"||basename(a)==="_root.md",m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${RR}/${a}`,feature:"rules",content:await V(m,r2(p,c),u)}},"mapEntry")}));}async function o2(e,t,r,n){let o=n==="global"?Jo:Cr,i=join(e,".agentsmesh/commands");t.push(...await ke({srcDir:join(e,o),destDir:i,extensions:[".md"],fromTool:_t,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a,".md"),m=join(i,`${c}.md`),{frontmatter:p,body:u}=x(l(m)),f=typeof p.description=="string"?p.description:"";return {destPath:m,toPath:`.agentsmesh/commands/${c}.md`,feature:"commands",content:await Se(m,{description:f,hasDescription:true,hasAllowedTools:false},u)}},"mapEntry")}));}async function hA(e,t={}){let r=t.scope??"project",n=[],o=await z(_t,e,r);return await n2(e,n,o,r),await o2(e,n,o,r),await oe(e,r==="global"?Vn:qt,_t,n,o),await uA(e,r==="global"?Yo:Hn,n),r==="project"&&await dA(e,zn,n),n}var yA=d(()=>{ge();Yt();se();fe();B();fA();la();s(r2,"canonicalRuleMeta");s(n2,"importRules");s(o2,"importCommands");s(hA,"importFromAugmentCode");});function RA(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:_t}))}var _A=d(()=>{Ie();la();s(RA,"lintRules");});function kA(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=new Set(SA);return Object.keys(e.hooks).filter(r=>!t.has(r)).map(r=>Zs(r,"augment-code",SA,{unsupportedBy:"AugmentCode hooks"}))}var SA,IA=d(()=>{Oe();SA=["PreToolUse","PostToolUse","SessionStart","SessionEnd","Stop"];s(kA,"lintHooks");});function i2(e){let t={};for(let[r,n]of Object.entries(e)){if(!n||n.length===0)continue;let o=n.map(i=>({matcher:i.matcher,hooks:[{type:"command",command:i.command,...i.timeout!==void 0?{timeout:i.timeout}:{}}]}));t[r]=o;}return t}function a2(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.mcpServers!==void 0&&(r.mcpServers=o.mcpServers),o.hooks!==void 0&&(r.hooks=o.hooks),JSON.stringify(r,null,2)}function l2(e,t){let r={};return t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers),t.has("hooks")&&e.hooks&&Object.keys(e.hooks).length>0&&(r.hooks=i2(e.hooks)),Object.keys(r).length===0?null:JSON.stringify(r,null,2)}var s2,c2,m2,p2,u2,LA,CA=d(()=>{mA();yA();_A();IA();Ce();la();s2={name:_t,generateRules:iA,generateCommands:aA,generateSkills:lA,generateIgnore:cA,importFrom:hA};s(i2,"serializeHooksForSettings");s(a2,"mergeAugmentSettings");s(l2,"buildSettingsContent");c2={skillDir:qt,managedOutputs:{dirs:[Xt,Cr,qt],files:[Hn,zn]},paths:{rulePath(e){return `${Xt}/${e}.md`},commandPath(e){return `${Cr}/${e}.md`},agentPath(e){return null}}},m2={skillDir:Vn,managedOutputs:{dirs:[Vo,Jo,Vn],files:[Yo]},rewriteGeneratedPath(e){return e.startsWith(`${Xt}/`)?e.replace(`${Xt}/`,`${Vo}/`):e.startsWith(`${Cr}/`)?e.replace(`${Cr}/`,`${Jo}/`):e.startsWith(`${qt}/`)?e.replace(`${qt}/`,`${Vn}/`):e===Hn?Yo:e===zn?null:e},paths:{rulePath(e){return `${Vo}/${e}.md`},commandPath(e){return `${Jo}/${e}.md`},agentPath(e){return null}}},p2={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},u2={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},LA={id:_t,metadata:{displayName:"Augment Code",category:"ide",officialUrl:"https://www.augmentcode.com",shortDescription:"Codebase-aware AI for IDEs"},generators:s2,capabilities:p2,emptyImportMessage:"No AugmentCode config found (.augment/rules, .augment/commands, .augment/skills, .augment/settings.json, or .augmentignore).",lintRules:RA,lint:{hooks:kA},project:c2,globalSupport:{capabilities:u2,detectionPaths:[Vo,Jo,Vn,Yo],layout:m2},emitScopedSettings(e,t,r){let n=l2(e,r);return n===null?[]:[{path:Hn,content:n}]},mergeGeneratedOutputContent(e,t,r,n){return n===Hn||n===Yo?a2(e,r):null},buildImportPaths:IR,detectionPaths:[Xt,Cr,qt,Hn,zn]};});function EA(e){if(!e.hooks||Object.keys(e.hooks).length===0)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Fn(i))continue;let a=Ze(i),l=At(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}var wA=d(()=>{qr();s(EA,"buildClaudeHooksObjectFromCanonical");});function bA(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:Xo,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("claude-code")));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=D(a,o.body.trim()||"");t.push({path:`${np}/${i}.md`,content:l});}return t}function OA(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=D(r,t.body.trim()||"");return {path:`${op}/${t.name}.md`,content:n}})}function AA(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(a=>{r[a]===void 0&&delete r[a];});let n=t.body.trim()||"",o=/^##\s*Role\b/m.test(n)?n:`## Role
|
|
66
70
|
|
|
67
|
-
${n}`,i=
|
|
71
|
+
${n}`,i=D(r,o);return {path:`${sp}/${t.name}.md`,content:i}})}function xA(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Vl,content:t}]}function TA(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=r.body.trim()||"",i=!o||/^##\s*Purpose\b/m.test(o)?o:`## Purpose
|
|
68
72
|
|
|
69
|
-
${o}`,a=
|
|
70
|
-
`);return [{path:
|
|
73
|
+
${o}`,a=D(n,i);t.push({path:`${ip}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");t.push({path:`${ip}/${r.name}/${c}`,content:l.content});}}return t}function PA(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o=JSON.stringify({permissions:{allow:t,deny:r,ask:n}},null,2);return [{path:ap,content:o}]}function DA(e,t){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let r=EA(e);if(Object.keys(r).length===0)return [];if(t?.scope==="global")return [{path:qo,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:ap,content:n}]}function NA(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
|
|
74
|
+
`);return [{path:lp,content:t}]}var vA=d(()=>{B();Qo();wA();s(bA,"generateRules");s(OA,"generateCommands");s(AA,"generateAgents");s(xA,"generateMcp");s(TA,"generateSkills");s(PA,"generatePermissions");s(DA,"generateHooks");s(NA,"generateIgnore");});function g2(e){let t=e.description.trim();return t||(basename(e.source)||"rule").replace(/\.md$/i,"")||"Rule"}function FA(e){let t=e.rules.find(o=>o.root),r=(t?.body??"").trim();return r?`# Global Instructions
|
|
71
75
|
|
|
72
|
-
## ${
|
|
76
|
+
## ${t?g2(t):"Guidance"}
|
|
73
77
|
|
|
74
78
|
${r}
|
|
75
|
-
`:""}var
|
|
76
|
-
`);continue}let h=await
|
|
79
|
+
`:""}var MA=d(()=>{s(g2,"ruleSectionTitle");s(FA,"renderClaudeGlobalPrimaryInstructions");});function GA(e,t){return e===null?"created":e!==t?"updated":"unchanged"}async function jA(e,t,r,n){if(r!=="global")return [];let o=n.has("agents"),i=n.has("commands");if(!o&&!i)return [];let a=[];if(o)for(let l of e.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=D(c,l.body.trim()),p=`${LR}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:GA(u,m)});}if(i)for(let l of e.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=D(c,l.body.trim()),p=`${LR}/${l.name}.md`,u=await k(join(t,p));a.push({target:"claude-code",path:p,content:m,currentContent:u??void 0,status:GA(u,m)});}return a}var UA=d(()=>{A();B();Qo();s(GA,"computeStatus");s(jA,"generateClaudeGlobalExtras");});function BA(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Fn({...m,type:p}))continue;let u=p==="prompt"?At(m)||Ze(m):Ze(m)||At(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function KA(e,t){let r=join(e,qo),n=await k(r);if(n===null)return false;let o;try{o=JSON.parse(n);}catch{return false}if(!o||typeof o!="object"||Array.isArray(o))return false;let i=BA(o);if(Object.keys(i).length===0)return false;let a=stringify(i),l=join(e,ca);return await w(dirname(l)),await L(l,a),t.push({fromTool:"claude-code",fromPath:r,toPath:ca,feature:"hooks"}),true}async function WA(e,t){let r=t.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(qo)),n=join(e,ap),o=await k(n);if(!o)return;let i;try{i=JSON.parse(o);}catch{return}if(!t.some(m=>m.feature==="mcp")&&i.mcpServers&&typeof i.mcpServers=="object"){let m=i.mcpServers;await Je(e,pp,m),t.push({fromTool:"claude-code",fromPath:n,toPath:pp,feature:"mcp"});}let l=i.permissions;if(l&&typeof l=="object"&&!Array.isArray(l)){let m=l,p=Array.isArray(m.allow)?m.allow.filter(g=>typeof g=="string"):[],u=Array.isArray(m.deny)?m.deny.filter(g=>typeof g=="string"):[],f=Array.isArray(m.ask)?m.ask.filter(g=>typeof g=="string"):[];if(p.length>0||u.length>0||f.length>0){let g=stringify({allow:p,deny:u,ask:f}),h=join(e,ER);await w(dirname(h)),await L(h,g),t.push({fromTool:"claude-code",fromPath:n,toPath:ER,feature:"permissions"});}}let c=i.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=BA(c);if(Object.keys(m).length>0){let p=stringify(m),u=join(e,ca);await w(dirname(u)),await L(u,p),t.push({fromTool:"claude-code",fromPath:n,toPath:ca,feature:"hooks"});}}}var HA=d(()=>{qr();A();nn();Qo();s(BA,"claudeHooksToCanonical");s(KA,"importClaudeHooksJson");s(WA,"importSettings");});async function VA(e,t,r){let n=join(e,ip),o=join(e,CR),a=(await U(n)).filter(l=>l.endsWith("SKILL.md"));for(let l of a){let c=dirname(l),m=basename(c),p=join(o,m),u=await k(l);if(u===null)continue;let f=r(u,l,join(p,"SKILL.md")),g=Yr(f,l);if(!g.ok){process.stderr.write(`\u26A0 skipping ${l}: ${g.error.message}
|
|
80
|
+
`);continue}let h=await U(c);for(let R of h){let _=await k(R);if(_===null)continue;let S=relative(c,R),I=join(p,S);await w(dirname(I));let b=r(_,R,I);await L(I,S==="SKILL.md"?await Mn(I,g.value.frontmatter,g.value.body):b);let P=`${CR}/${m}/${S}`;t.push({fromTool:"claude-code",fromPath:R,toPath:P,feature:"skills"});}}}var JA=d(()=>{A();B();fe();Qo();s(VA,"importClaudeSkills");});async function YA(e,t={}){let r=t.scope??"project",n=[],o=await z("claude-code",e,r);return n.push(...await q(mf,e,r,{normalize:o})),await VA(e,n,o),await KA(e,n),await WA(e,n),n}var XA=d(()=>{ge();be();HA();JA();k_();s(YA,"importFromClaudeCode");});var qA,QA,ZA,ex=d(()=>{B();fe();Sr();Qo();qA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${mp}/${e}`,content:await V(n,{...o,root:false},i)}},"claudeRuleMapper"),QA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${Fd}/${e}`,content:await Se(n,{description:typeof o.description=="string"?o.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"claudeCommandMapper"),ZA=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Md}/${e}`,content:await et(n,o,i)}},"claudeAgentMapper");});function tx(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:rb}))}var rx=d(()=>{Ie();Qo();s(tx,"lintRules");});var R2,nx,_2,S2,mf,k_=d(()=>{vA();Qo();pt();MA();UA();XA();ex();rx();Ce();R2={name:"claude-code",primaryRootInstructionPath:Xo,generateRules:bA,generateCommands:OA,generateAgents:AA,generateSkills:TA,generateMcp:xA,generatePermissions:PA,generateHooks:DA,generateIgnore:NA,importFrom:YA},nx={rootInstructionPath:Xo,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[Xo,ti,".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(e,t){return `.claude/rules/${e}.md`},commandPath(e,t){return `.claude/commands/${e}.md`},agentPath(e,t){return `.claude/agents/${e}.md`}}},_2={rootInstructionPath:ti,skillDir:".claude/skills",renderPrimaryRootInstruction:FA,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[ti,".claude/settings.json",cp,qo,".claudeignore"]},rewriteGeneratedPath(e){return e===Xo?ti:e===Vl?cp:e},mirrorGlobalPath(e,t){return de(e,".claude/skills",t)},paths:nx.paths},S2={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},mf={id:"claude-code",metadata:{displayName:"Claude Code",category:"cli",officialUrl:"https://www.anthropic.com/claude-code",shortDescription:"Anthropic's terminal coding agent"},generators:R2,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},emptyImportMessage:"No Claude Code config found (CLAUDE.md or .claude/rules/*.md).",lintRules:tx,project:nx,globalSupport:{capabilities:S2,detectionPaths:[".claude/CLAUDE.md",".claude/rules",".claude/commands",".claude/agents",".claude/skills",".claude/settings.json",".claude/hooks.json",".claude/output-styles",".claudeignore",".claude.json",".agents/skills"],layout:_2,scopeExtras:jA},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Xo,ti],global:[ti]},canonicalDir:mp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[np],global:[np]},canonicalDir:mp,extensions:[".md"],map:qA}],commands:{feature:"commands",mode:"directory",source:{project:[op],global:[op]},canonicalDir:Fd,extensions:[".md"],map:QA},agents:{feature:"agents",mode:"directory",source:{project:[sp],global:[sp]},canonicalDir:Md,extensions:[".md"],map:ZA},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Vl],global:[cp]},canonicalDir:".agentsmesh",canonicalFilename:pp},ignore:{feature:"ignore",mode:"flatFile",source:{project:[lp],global:[lp]},canonicalDir:".agentsmesh",canonicalFilename:nb}},buildImportPaths:wR,detectionPaths:[Xo,ti,".claude/rules",".claude/commands"],nativeInstall:{pickPaths:[{prefix:".claude/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".claude/skills/",feature:"skills",strategy:{kind:"firstSegment"}}]}};});function I2(e){let t=basename(e,".md");return t==="_root"?"root":t}function ox(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";t.push({path:ni,content:n});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=I2(n.source),i={description:n.description||void 0,paths:n.globs.length>0?n.globs:void 0};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=Object.keys(i).length>0?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${Zo}/${o}.md`,content:a});}return t}function sx(e){return e.commands.map(t=>{let r=t.description.trim(),n=t.body.trim(),o=r&&n?`${r}
|
|
77
81
|
|
|
78
|
-
${n}`:r||n;return {path:`${
|
|
79
|
-
`);return [{path:
|
|
80
|
-
`)}function
|
|
82
|
+
${n}`:r||n;return {path:`${ts}/${t.name}.md`,content:o}})}function ix(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
|
|
83
|
+
`);return [{path:ma,content:t}]}function ax(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:es,content:t}]}function lx(e){return e.agents.map(t=>({path:`${St}/${K(t.name)}/SKILL.md`,content:De(t)}))}function L2(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function L_(e){return e.replace(/[\r\n]+/g," ")}function C2(e,t,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${L_(e)}`,`# agentsmesh-matcher: ${L_(r)}`,`# agentsmesh-command: ${L_(t)}`,"set -eu",t,""].join(`
|
|
84
|
+
`)}function cx(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=0;for(let i of n)Go(i)&&(t.push({path:`${pa}/${L2(r)}-${o}.sh`,content:C2(r,i.command,i.matcher)}),o++);}return t}function mx(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${St}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${St}/${r.name}/${a}`,content:i.content});}}return t}var px=d(()=>{qr();B();ue();ln();s(I2,"ruleSlug");s(ox,"generateRules");s(sx,"generateCommands");s(ix,"generateIgnore");s(ax,"generateMcp");s(lx,"generateAgents");s(L2,"safeEventName");s(L_,"safeShellLine");s(C2,"buildHookScript");s(cx,"generateHooks");s(mx,"generateSkills");});async function dx(e,t,r){if(e==="workflows"||e.startsWith("workflows/"))return null;let n=e.replace(/\\/g,"/");if(n==="_root.md")return null;let o=join(t,n),{frontmatter:i,body:a}=x(r(o)),l=Wo(i.paths??i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${oi}/${n}`,feature:"rules",content:await V(o,c,a)}}async function fx(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=Object.prototype.hasOwnProperty.call(o,"description"),l=a&&typeof o.description=="string"?o.description:"",c=a,m=i;if(!c){let p=i.indexOf(`
|
|
81
85
|
|
|
82
86
|
`);if(p>0){let u=i.slice(0,p).trim();u&&!u.includes(`
|
|
83
|
-
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${
|
|
84
|
-
`)),
|
|
87
|
+
`)&&(l=u,c=true,m=i.slice(p+2));}}return {destPath:n,toPath:`${$d}/${e}`,feature:"commands",content:await Se(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var C_=d(()=>{B();fe();Sr();ln();s(dx,"mapClineRuleFile");s(fx,"mapClineWorkflowFile");});async function gx(e,t,r){let n=join(e,oi),o=join(e,Zo),i=join(e,Zo),a=false;try{a=(await stat(i)).isFile();}catch{}if(a){let p=await k(i);if(p!==null){await w(n);let u=join(n,"_root.md"),{frontmatter:f,body:g}=x(r(p,i,u)),R=f.root===true?f:{...f,root:true},_=await V(u,R,g);await L(u,_),t.push({fromTool:"cline",fromPath:i,toPath:`${oi}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await k(c);if(m===null){let p=join(e,ni),u=await k(p);if(u!==null){l=p,await w(n);let f=join(n,"_root.md"),{frontmatter:g,body:h}=x(r(u,p,f)),_=g.root===true?g:{...g,root:true},S=await V(f,_,h);await L(f,S),t.push({fromTool:"cline",fromPath:p,toPath:`${oi}/_root.md`,feature:"rules"});}else {let h=(await U(o)).filter(R=>R.endsWith(".md")&&!R.includes("/workflows/")).sort()[0];if(h){let R=await k(h);if(R!==null){l=h,await w(n);let _=join(n,"_root.md"),{frontmatter:S,body:I}=x(r(R,h,_)),P=S.root===true?S:{...S,root:true},T=await V(_,P,I);await L(_,T),t.push({fromTool:"cline",fromPath:h,toPath:`${oi}/_root.md`,feature:"rules"});}}}}else {l=c,await w(n);let p=join(n,"_root.md"),{frontmatter:u,body:f}=x(r(m,c,p)),h=u.root===true?u:{...u,root:true},R=await V(p,h,f);await L(p,R),t.push({fromTool:"cline",fromPath:c,toPath:`${oi}/_root.md`,feature:"rules"});}return t.push(...await ke({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(async({srcPath:p,relativePath:u,normalizeTo:f})=>p===l?null:dx(u,n,f),"mapEntry")})),a}var hx=d(()=>{A();B();fe();Yt();C_();ln();s(gx,"importClineRules");});function w2(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.command=="string"?t.command:"";if(!r)return null;let n=typeof t.type=="string"?t.type:typeof t.transportType=="string"?t.transportType:"stdio",o=Array.isArray(t.args)?t.args.filter(c=>typeof c=="string"):[],i=t.env,a=i!==null&&typeof i=="object"&&!Array.isArray(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[1]=="string")):{},l=typeof t.description=="string"?t.description:void 0;return {...l!==void 0&&{description:l},type:n,command:r,args:o,env:a}}async function yx(e,t){let r=[es,sb].map(c=>join(e,c)),n=null,o=null;for(let c of r){let m=await k(c);if(m!==null){n=c,o=m;break}}if(o===null)return;let i=n??r[0],a;try{a=JSON.parse(o);}catch{}let l=a?.mcpServers;if(l!==void 0&&typeof l=="object"&&l!==null&&Object.keys(l).length>0){let c={};for(let[m,p]of Object.entries(l)){let u=w2(p);u&&(c[m]=u);}Object.keys(c).length>0&&(await w(join(e,".agentsmesh")),await L(join(e,AR),JSON.stringify({mcpServers:c},null,2)),t.push({fromTool:ri,fromPath:i,toPath:AR,feature:"mcp"}));}}var Rx=d(()=>{A();ln();s(w2,"mapClineServerToCanonical");s(yx,"importClineMcp");});function _x(e){return b2.some(t=>t.test(e))}var b2,Sx=d(()=>{b2=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];s(_x,"isReservedArtifactName");});async function A2(e){let t=await U(e).catch(()=>[]),r=[];for(let n of t){let o=relative(e,n).replace(/\\/g,"/"),i=basename(o);if(_x(i))continue;let a=await k(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Fp(e,t,r){let n=await A2(t),o=join(r.projectRoot,r.destCanonicalSkillsDir,e);for(let i of n){let a=join(o,i.relativePath);await w(dirname(a));let l=r.normalize(i.content,i.absolutePath,a);if(i.relativePath==="SKILL.md"){let{frontmatter:c,body:m}=x(l),p=await Mn(a,{...c,name:e},m);await L(a,p);}else await L(a,l);r.results.push({fromTool:r.targetName,fromPath:i.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${e}/${i.relativePath}`,feature:"skills"});}}async function Ix(e,t,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,e);await w(o);let i=join(o,"SKILL.md"),a=n.normalize(r,t,i),{frontmatter:l,body:c}=x(a),m=await Mn(i,{...l,name:e},c);await L(i,m),n.results.push({fromTool:n.targetName,fromPath:t,toPath:`${n.destCanonicalSkillsDir}/${e}/SKILL.md`,feature:"skills"});}async function Mp(e){let t=new Map;try{let n=(await U(e)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let i=dirname(o),a=basename(i);t.set(a,i);}}catch{}return t}async function Ec(e,t,r=[]){for(let n of e){let o=join(t.projectRoot,n),i=await Mp(o);if(i.size===0)continue;let a=false;for(let[l,c]of i){let m=join(c,"SKILL.md"),p=await k(m);if(p===null)continue;a=true;let{frontmatter:u,body:f}=x(p),g={skillName:l,skillDir:c,skillMdPath:m,rawContent:p,frontmatter:u,rawBody:f,options:t},h=false;for(let R of r)if(await R.recognize(g)){h=true;break}h||await Fp(l,c,t);}if(a)return}}function wc(e){return {async recognize(t){let r=jl(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await $n(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalAgentsDir);await w(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,Ys(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalAgentsDir}/${r.name}.md`,feature:"agents"}),true}}}function Lx(e){return {async recognize(t){let r=Sd(t.frontmatter,t.skillName);if(!r)return false;let{options:n}=t;await $n(join(n.projectRoot,n.destCanonicalSkillsDir,t.skillName));let o=join(n.projectRoot,e.canonicalCommandsDir);await w(o);let i=join(o,`${r.name}.md`),a=n.normalize(t.rawBody,t.skillMdPath,i);return await L(i,kd(r,a)),n.results.push({fromTool:n.targetName,fromPath:t.skillMdPath,toPath:`${e.canonicalCommandsDir}/${r.name}.md`,feature:"commands"}),true}}}var bc=d(()=>{A();B();fe();Sx();ue();we();Vm();s(A2,"readNativeSkill");s(Fp,"importDirectorySkill");s(Ix,"importFlatSkill");s(Mp,"findDirectorySkills");s(Ec,"importSkillsDirectory");s(wc,"projectedAgentRecognizer");s(Lx,"commandSkillRecognizer");});async function Cx(e,t,r,n=St){await Ec([n],{projectRoot:e,destCanonicalSkillsDir:ab,targetName:"cline",normalize:r,results:t},[wc({canonicalAgentsDir:ib})]);}var Ex=d(()=>{bc();ln();s(Cx,"importClineSkills");});function b_(e,t){return e.match(new RegExp(`^# agentsmesh-${t}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function wx(e,t){let n=(await U(e).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===e);for(let o of n){let i=await k(o);if(!i)continue;let a=b_(i,"event"),l=b_(i,"command");if(!a||!l)continue;let c=b_(i,"matcher")??"*";t[a]||(t[a]=[]),t[a].push({matcher:c,command:l});}}async function Ox(e,t){let r={};if(await wx(join(e,pa),r),await wx(join(e,fa),r),Object.keys(r).length===0)return;let n=join(e,bR);await w(dirname(n)),await L(n,stringify(r)),t.push({fromTool:ri,fromPath:join(e,fa),toPath:bR,feature:"hooks"});}var Ax=d(()=>{A();ln();s(b_,"extractMeta");s(wx,"loadHooksFromDir");s(Ox,"importClineHooks");});async function xx(e){let t=[],r=await z(ri,e),n=await gx(e,t,r),o=join(e,ma),i=await k(o);if(i!==null&&i.trim()){let l=i.split(/\r?\n/),c=[];for(let m of l){let p=m.trim();p&&!p.startsWith("#")&&c.push(p);}if(c.length>0){await w(join(e,".agentsmesh"));let m=join(e,OR);await L(m,c.join(`
|
|
88
|
+
`)),t.push({fromTool:"cline",fromPath:o,toPath:OR,feature:"ignore"});}}await yx(e,t);let a=join(e,$d);return n||t.push(...await ke({srcDir:join(e,ts),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:s(({relativePath:l,normalizeTo:c})=>fx(l,a,c),"mapEntry")})),await Cx(e,t,r),await Ox(e,t),t}var Tx=d(()=>{ge();A();Yt();C_();hx();ln();Rx();Ex();Ax();s(xx,"importFromCline");});function Px(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:ri}))}var Dx=d(()=>{Ie();ln();s(Px,"lintRules");});function Nx(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function vx(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","cline","cline hooks are emitted as .clinerules/hooks/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")]:[]:[]}var Fx=d(()=>{Oe();s(Nx,"lintCommands");s(vx,"lintHooks");});var P2,D2,N2,v2,Mx,$x=d(()=>{px();ea();ln();Tx();Dx();Fx();Ce();Ml();ue();P2={name:"cline",primaryRootInstructionPath:ni,generateRules:ox,generateCommands:sx,generateAgents:lx,generateSkills:mx,generateMcp:ax,generateHooks:cx,generateIgnore:ix,importFrom:xx},D2={rootInstructionPath:ni,skillDir:".cline/skills",managedOutputs:{dirs:[".cline/skills",".clinerules",".clinerules/hooks",".clinerules/workflows"],files:["AGENTS.md",".cline/cline_mcp_settings.json",".clineignore",".clinerules/typescript.md"]},paths:{rulePath(e,t){return `${Zo}/${e}.md`},commandPath(e,t){return `${ts}/${e}.md`},agentPath(e,t){return gr(t,"cline")?`.cline/skills/${K(e)}/SKILL.md`:null}}},N2={skillDir:St,managedOutputs:{dirs:[ua,da,fa,St,".agents/skills"],files:[es,ma]},rewriteGeneratedPath(e){return e===ni?null:e.startsWith(`${pa}/`)?`${fa}/${e.slice(pa.length+1)}`:e.startsWith(`${ts}/`)?`${da}/${e.slice(ts.length+1)}`:e.startsWith(`${Zo}/`)?`${ua}/${e.slice(Zo.length+1)}`:e},mirrorGlobalPath(e,t){return e.startsWith(`${St}/`)?`.agents/skills/${e.slice(St.length+1)}`:null},paths:{rulePath(e,t){return `${ua}/${e}.md`},commandPath(e,t){return `${da}/${e}.md`},agentPath(e,t){return gr(t,"cline")?`.cline/skills/${K(e)}/SKILL.md`:null}}},v2={rules:"native",additionalRules:"native",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Mx={id:"cline",metadata:{displayName:"Cline",category:"ide",officialUrl:"https://cline.bot",shortDescription:"Autonomous coding agent for VS Code"},generators:P2,capabilities:{rules:"native",additionalRules:"native",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Cline config found (.clinerules, .clineignore, .cline/cline_mcp_settings.json, or .cline/skills).",supportsConversion:{agents:true},lintRules:Px,lint:{commands:Nx,hooks:vx},project:D2,globalSupport:{capabilities:v2,detectionPaths:[ua,da,fa,St,es,ma],layout:N2},buildImportPaths:xR,detectionPaths:[".clinerules",".cline"],nativeInstall:{pickPaths:[{prefix:St,feature:"skills",strategy:{kind:"skillDir"}},{prefix:ts,feature:"commands",strategy:{kind:"basename",suffix:".md"}}]},conversionDefaults:{agentsToSkills:true}};});var Dt,Gx,bs,Wa,jx,_o,Ux,uf,Ha,So,za,Os,Bx,Gp,Kx,O_,Wx,A_,Hx,zx,x_,T_,P_,Ct=d(()=>{Dt="codex-cli",Gx="codex.md",bs="AGENTS.md",Wa=".codex/AGENTS.md",jx=".codex/AGENTS.override.md",_o=".agents/skills",Ux=".codex/skills",uf=".codex/config.toml",Ha=".codex/instructions",So=".codex/rules",za=".codex/agents",Os=".agentsmesh/rules",Bx=".agentsmesh/commands",Gp=".agentsmesh/agents",Kx=".agentsmesh/skills",O_=".agentsmesh/mcp.json",Wx="am-codex-rule:v1",A_="# am-json: ",Hx="# am-body-b64-begin",zx="# am-body-b64-end",x_="# am64:",T_="<!-- agentsmesh:codex-rule-index:start -->",P_="<!-- agentsmesh:codex-rule-index:end -->";});function D_(e){return basename(e,".md")}function jp(e){return `${Ha}/${D_(e.source)}.md`}function Vx(e){let t={root:e.root,description:e.description||void 0,globs:e.globs.length>0?e.globs:void 0,targets:e.targets.length>0?e.targets:void 0,codex_emit:e.codexEmit||void 0,codex_instruction:e.codexInstructionVariant&&e.codexInstructionVariant!=="default"?e.codexInstructionVariant:void 0};return Object.keys(t).forEach(r=>{t[r]===void 0&&delete t[r];}),D(t,e.body.trim()||"")}function M2(e){let t=[];return e.root?t.push("Applies to the whole project."):e.globs.length>0?t.push(`Applies to ${e.globs.map(r=>`\`${r}\``).join(", ")}.`):t.push("General guidance with no file glob restriction."),e.codexInstructionVariant==="override"&&t.push("Override guidance when this rule conflicts with broader instructions."),e.codexEmit==="execution"&&t.push(`Enforced in \`${So}/${D_(e.source)}.rules\`.`),e.targets.length>0&&t.push(`Targeted to ${e.targets.map(r=>`\`${r}\``).join(", ")}.`),t.join(" ")}function Jx(e,t){let r=e.trim(),n=t.filter(a=>!a.root);if(n.length===0)return r;let o=n.map(a=>`- [${a.description||D_(a.source)}](${jp(a)}): ${M2(a)}`),i=[T_,"## Additional Rule Files",...o,P_].join(`
|
|
85
89
|
`);return r?`${r}
|
|
86
90
|
|
|
87
|
-
${i}`:i}function
|
|
88
|
-
`).trim()}var
|
|
89
|
-
`).map(
|
|
90
|
-
`)}function
|
|
91
|
-
`:`${["# agentsmesh: canonical execution rule body is not Codex DSL","# The original body is preserved below as comments.","# Replace with Codex rules DSL (for example prefix_rule(...)) to enforce behavior.","#",...
|
|
91
|
+
${i}`:i}function Yx(e){let t=T_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=P_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`\\n?${t}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
92
|
+
`).trim()}var df=d(()=>{B();Ct();s(D_,"ruleSlug");s(jp,"codexInstructionMirrorPath");s(Vx,"serializeCodexInstructionMirror");s(M2,"summarizeRule");s(Jx,"appendCodexRuleIndex");s(Yx,"stripCodexRuleIndex");});function G2(e){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(e)}function j2(e){return e.split(`
|
|
93
|
+
`).map(t=>t.length>0?`# ${t}`:"#").join(`
|
|
94
|
+
`)}function U2(e){let t=e.trim();return t?G2(t)?`${t}
|
|
95
|
+
`:`${["# agentsmesh: canonical execution rule body is not Codex DSL","# The original body is preserved below as comments.","# Replace with Codex rules DSL (for example prefix_rule(...)) to enforce behavior.","#",...j2(t).split(`
|
|
92
96
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
93
97
|
`)}
|
|
94
|
-
`:""}function
|
|
98
|
+
`:""}function N_(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:bs,content:Jx(t.body,e.rules)});for(let n of e.rules){if(n.root)continue;let o=basename(n.source,".md");n.targets.length>0&&!n.targets.includes("codex-cli")||(n.codexEmit==="execution"&&r.push({path:`${So}/${o}.rules`,content:U2(n.body)}),r.push({path:jp(n),content:Vx(n)}));}return r}function v_(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root||n.codexEmit==="execution"?false:n.targets.length===0||n.targets.includes("codex-cli"));return ae(t?.body.trim()??"",r)}var Xx=d(()=>{Ue();Ct();df();s(G2,"looksLikeCodexRulesDsl");s(j2,"toCodexRulesComments");s(U2,"toSafeCodexRulesContent");s(N_,"generateRules");s(v_,"renderCodexGlobalInstructions");});function F_(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${_o}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${_o}/${r.name}/${a}`,content:i.content});}}return t}function B2(e){return {path:`${_o}/${J(e.name)}/SKILL.md`,content:$e(e)}}function M_(e){return e.commands.map(B2)}var qx=d(()=>{B();Ct();we();s(F_,"generateSkills");s(B2,"commandToSkillOutput");s(M_,"generateCommands");});function $_(e){return e.agents.map(t=>({path:`${za}/${t.name}.toml`,content:K2(t)}))}function K2(e){let t=[];t.push(`name = ${JSON.stringify(e.name)}`),e.description&&t.push(`description = ${JSON.stringify(e.description)}`),e.model&&t.push(`model = ${JSON.stringify(e.model)}`),e.permissionMode==="read-only"||e.permissionMode==="deny"?t.push('sandbox_mode = "read-only"'):e.permissionMode==="allow"&&t.push('sandbox_mode = "workspace-write"');let r=e.body.trim()||"";if(r.includes("'''")){let n=r.replace(/\\/g,"\\\\").replace(/"/g,'\\"');t.push(`developer_instructions = """
|
|
95
99
|
${n}
|
|
96
|
-
"""`);}else
|
|
100
|
+
"""`);}else t.push(`developer_instructions = '''
|
|
97
101
|
${r}
|
|
98
|
-
'''`);return
|
|
102
|
+
'''`);return t.join(`
|
|
99
103
|
`)+`
|
|
100
|
-
`}var
|
|
101
|
-
`));}return
|
|
104
|
+
`}var Qx=d(()=>{Ct();s($_,"generateAgents");s(K2,"serializeAgentToCodexToml");});function ff(e){return "command"in e}function Zx(e){return "url"in e}var gf=d(()=>{s(ff,"isStdioMcpServer");s(Zx,"isUrlMcpServer");});function G_(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).flatMap(([n,o])=>ff(o)?[[n,o]]:[]));if(Object.keys(t).length===0)return [];let r=W2(t);return [{path:uf,content:r}]}function W2(e){let t=[];for(let[r,n]of Object.entries(e)){let o=eT(r)?`"${r}"`:r,i=[];i.push(`[mcp_servers.${o}]`),i.push(`command = ${JSON.stringify(n.command)}`);let a="["+n.args.map(c=>JSON.stringify(c)).join(", ")+"]";i.push(`args = ${a}`);let l=Object.entries(n.env);if(l.length>0){let c=l.map(([m,p])=>`${eT(m)?JSON.stringify(m):m} = ${JSON.stringify(p)}`).join(", ");i.push(`env = { ${c} }`);}t.push(i.join(`
|
|
105
|
+
`));}return t.join(`
|
|
102
106
|
|
|
103
107
|
`)+`
|
|
104
|
-
`}function
|
|
105
|
-
`).find(c=>c.startsWith(
|
|
106
|
-
`)){let m=c.trimEnd();if(m===dA){l=true;continue}if(m===fA){l=false;continue}l&&m.startsWith(jy)&&a.push(m.slice(jy.length));}if(a.length===0)return null;try{let c=Buffer$1.from(a.join(""),"base64").toString("utf8");return {meta:{description:o,globs:i},body:c}}catch{return null}}var DA=d(()=>{ye();s(xA,"tryParseEmbeddedCanonicalFromCodexRules");});async function FA(t,e,r){let n=[],o=join(t,lo);try{let i=await G(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(e,p),{frontmatter:f,body:g}=P(r(m,c,u));await O(e);let h=f.root===!0?f:{...f,root:!1},R=await z(u,h,g);await S(u,R),n.push({fromTool:ke,fromPath:c,toPath:`${us}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await _(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(e,p);await O(e);let f=xA(m);if(f){let g=await z(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await S(u,g);}else {let g=await z(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await S(u,g);}n.push({fromTool:ke,fromPath:c,toPath:`${us}/${p}`,feature:"rules"});}}catch{}return n}var vA=d(()=>{A();U();ft();ye();DA();s(FA,"importCodexNonRootRuleFiles");});async function $A(t,e,r,n,o){let i=join(t,aA),a=join(t,ps),l=join(t,lA),c=join(t,Ca),m=o==="global"?await _(l):null,p=o==="global"?await _(c):null,u=o==="project"?await _(a):null,f=o==="project"?await _(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(t,us),R=m??p??u??f;if(R!==null){await O(h);let k=join(h,"_root.md"),I=g===a||g===c||g===l?yA(R):R,C=await io({content:I,projectRoot:t,rulesDir:us,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...C.results);let b=r(g===a||g===c||g===l?n(C.rootContent,g,k):C.rootContent,g,k),{frontmatter:N,body:T}=P(b),B=N.root===true?N:{...N,root:true},H=await z(k,B,T);await S(k,H),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${us}/_root.md`,feature:"rules"});}await Xz(t,h,e,r),e.push(...await FA(t,h,r)),o!=="global"&&e.push(...await St({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:k,normalizeTo:I})=>{let C=relative(t,dirname(k)).replace(/\\/g,"/"),b=basename(k),N=b==="AGENTS.override.md";if(!C||C==="."||!N&&b!=="AGENTS.md")return null;let T=C.replace(/\//g,"-");if(!yu(C))return await Ln(join(h,`${T}.md`)),null;let B=join(h,`${T}.md`),{frontmatter:H,body:tt}=P(I(B));return {destPath:B,toPath:`${us}/${T}.md`,feature:"rules",content:await z(B,{...H,root:false,globs:[`${C}/**`],...N?{codex_instruction:"override"}:{}},tt)}},"mapEntry")}));}async function Xz(t,e,r,n){try{let i=(await G(join(t,ka))).filter(l=>l.endsWith(".md")),a=join(t,ka);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await _(l);if(!m)continue;let p=join(e,c),{frontmatter:u,body:f}=P(n(m,l,p));await O(e);let g=u.root===!0?u:{...u,root:!1},h=await z(p,g,f);await S(p,h),r.push({fromTool:ke,fromPath:l,toPath:`${us}/${c}`,feature:"rules"});}}catch{}}var GA=d(()=>{A();U();ft();Jl();Me();om();ye();vA();nd();s($A,"importCodexRules");s(Xz,"importInstructionMirrors");});async function jA(t,e){let r=e?.scope??"project",n=[],o=await W(ke,t,r),i=await W("windsurf",t,r);return await $A(t,n,o,i,r),await AA(t,n,o),await PA(t,n,o),await OA(t,n),n}var UA=d(()=>{gt();ye();wA();bA();TA();GA();s(jA,"importFromCodex");});function BA(t,e,r){let{rules:n}=t;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(e,n[0].source),target:ke,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var KA=d(()=>{ye();s(BA,"lintRules");});function WA(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&e.push(D(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`)),"url"in n||"type"in n){let o="type"in n?n.type:"url";e.push(D(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}var HA=d(()=>{wt();s(WA,"lintMcp");});function zA(t){return Zm(t)}var VA=d(()=>{nd();s(zA,"codexAdvisoryInstructionPath");});var Qz,qz,tV,eV,YA,XA=d(()=>{LA();ye();UA();KA();HA();Et();al();VA();Lt();Qz={name:"codex-cli",primaryRootInstructionPath:ps,generateRules:Wy,generateCommands:Vy,generateAgents:Jy,generateSkills:zy,generateMcp:Yy,importFrom:jA},qz={rootInstructionPath:ps,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${lo}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return zA(e)},commandPath(t,e){return il(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ea}/${t}.toml`}}},tV={rootInstructionPath:Ca,renderPrimaryRootInstruction:Hy,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${lo}/${e}.rules`]},skillDir:ao,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Ca,".codex/config.toml"]},rewriteGeneratedPath(t){return t===ps?Ca:t.startsWith(`${ka}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${lo}/${t}.rules`:Ca},commandPath(t,e){return il(e,"codex-cli")?`${ao}/${V(t)}/SKILL.md`:null},agentPath(t,e){return `${Ea}/${t}.toml`}}},eV={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},YA={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:Qz,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Codex config found (codex.md or AGENTS.md).",supportsConversion:{commands:true},lintRules:BA,lint:{mcp:WA},project:qz,globalSupport:{capabilities:eV,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:tV},buildImportPaths:Uh,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"],excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function nV(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function ZA(t){return `${vn}/${t}.md`}function QA(t){let e={description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],x(e,t.body.trim()||"")}function qA(t,e){let r=basename(e,".md");return {name:((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||r).trim(),description:typeof t.description=="string"?t.description:"",allowedTools:nV(t["x-agentsmesh-allowed-tools"])}}function tb(t,e){let r={description:t.description||void 0,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],x(r,e.trim()||"")}var id=d(()=>{U();Mn();s(nV,"toStringArray");s(ZA,"continueCommandRulePath");s(QA,"serializeCommandRule");s(qA,"parseCommandRuleFrontmatter");s(tb,"serializeImportedCommand");});function eb(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:jo,content:x(n,r.body.trim()||"")});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("continue"))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs),e.push({path:`${Zr}/${o}.md`,content:x(i,n.body.trim()||"")});}return e}function rb(t){return t.commands.map(e=>({path:`${vn}/${e.name}.md`,content:QA(e)}))}function nb(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Pu,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function ob(t){return t.agents.map(e=>({path:`${je}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function sb(t){return st(t,je)}var ib=d(()=>{rt();ut();U();id();Mn();s(eb,"generateRules");s(rb,"generateCommands");s(nb,"generateMcp");s(ob,"generateAgents");s(sb,"generateSkills");});function aV(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a;typeof l.command=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:Ts(l.args),env:wn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function lV(t,e){let r=(await G(join(t,Bh))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await _(i);a&&(Object.assign(n,aV(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Ht(t,Wh,n);for(let i of o)e.push({fromTool:Rl,fromPath:i,toPath:Wh,feature:"mcp"});}}async function lb(t){let e=[],r=await W(Rl,t);return e.push(...await Y(ad,t,"project",{normalize:r})),await et(t,je,Rl,e,r),await lV(t,e),e}var cb=d(()=>{gt();A();rt();Ot();Vr();cr();Mn();Qy();s(aV,"readMcpServers");s(lV,"importMcp");s(lb,"importFromContinue");});function cV(t){return t==="general.md"||t==="_root.md"}var mb,pb,ub=d(()=>{U();ft();id();Mn();s(cV,"isContinueRootRulePath");mb=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=cV(t),o=n?"_root.md":t,i=join(r,o),{frontmatter:a,body:l}=P(e(i)),c={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:n};return c.description===void 0&&delete c.description,c.globs===void 0&&delete c.globs,{destPath:i,toPath:`${Tu}/${o}`,content:await z(i,c,l)}},"continueRuleMapper"),pb=s(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:i,body:a}=P(r(o)),l=qA(i,t),c=l.name||e.replace(/\.md$/,"").replace(/^.*\//,""),m=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await It(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},P(tb(l,a)).body);return {destPath:u,toPath:`${xu}/${p}`,content:f}},"continueCommandMapper");});function db(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Rl}))}var fb=d(()=>{Ct();Mn();s(db,"lintRules");});function gb(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>D(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var hb=d(()=>{wt();s(gb,"lintCommands");});function dV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var yb,_b=d(()=>{A();Mn();s(dV,"computeStatus");yb=s(async(t,e,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&t.rules.length>0||i&&t.commands.length>0||a&&t.mcp!==null&&Object.keys(t.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&t.rules.length>0&&(c.rules=t.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&t.commands.length>0&&(c.prompts=t.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&t.mcp!==null){let u=Object.entries(t.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await _(join(e,km));return [{target:"continue",path:km,content:m,currentContent:p??void 0,status:dV(p,m)}]},"generateContinueGlobalConfig");});function gV(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Rb,Ib=d(()=>{A();Mn();_b();s(gV,"computeStatus");Rb=s(async(t,e,r,n)=>{let o=await yb(t,e,r,n);if(r!=="global"||!n.has("rules"))return o;let i=t.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await _(join(e,Il));return [...o,{target:"continue",path:Il,content:a,currentContent:l??void 0,status:gV(l,a)}]},"generateContinueScopeExtras");});var hV,yV,_V,RV,ad,Qy=d(()=>{ut();ib();Mn();cb();ub();fb();hb();id();Et();Ib();hV={name:"continue",primaryRootInstructionPath:jo,generateRules:eb,generateCommands:rb,generateAgents:ob,generateSkills:sb,generateMcp:nb,importFrom:lb},yV={rootInstructionPath:jo,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Zr}/${t}.md`},commandPath(t,e){return ZA(t)},agentPath(t){return `${je}/${K(t)}/SKILL.md`}}},_V={rootInstructionPath:jo,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Il]}],skillDir:je,managedOutputs:{dirs:[Zr,vn,je,".agents/skills"],files:[Pu,Il,km]},mirrorGlobalPath(t,e){return t.startsWith(`${je}/`)?`.agents/skills/${t.slice(je.length+1)}`:null},paths:{rulePath(t,e){return `${Zr}/${t}.md`},commandPath(t,e){return `${vn}/${t}.md`},agentPath(t){return `${je}/${K(t)}/SKILL.md`}}},RV={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ad={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:hV,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"none",skills:"embedded",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Continue config found (.continue/rules/*.md, .continue/skills, or .continue/mcpServers/*).",supportsConversion:{agents:true},lintRules:db,lint:{commands:gb},project:yV,globalSupport:{capabilities:RV,detectionPaths:[Zr,vn,".continue/mcpServers",je],layout:_V,scopeExtras:Rb},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Zr],global:[Zr]},canonicalDir:Tu,extensions:[".md"],map:mb},commands:{feature:"commands",mode:"directory",source:{project:[vn],global:[vn]},canonicalDir:xu,extensions:[".md"],map:pb}},buildImportPaths:Hh,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],conversionDefaults:{agentsToSkills:true}};});var ds,La,Sb,Oa,li,co,mo,wa,Aa,ld,cd,Cb,t_,kb,ci,ql,fs,tc,ba,e_,r_,Dr=d(()=>{ds="copilot",La=".github/copilot-instructions.md",Sb=".github/copilot",Oa=".github/instructions",li=".github/prompts",co=".github/hooks",mo=".github/skills",wa=".github/agents",Aa=".agentsmesh/rules",ld=".agentsmesh/commands",cd=".agentsmesh/agents",Cb=".agentsmesh/skills",t_=".agentsmesh/hooks.yaml",kb=".github/copilot-hooks",ci=".copilot/copilot-instructions.md",ql=".copilot/agents",fs=".copilot/skills",tc=".copilot/prompts",ba=".copilot/AGENTS.md",e_=".claude/skills",r_=".agents/skills";});function Eb(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.length>0):typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function md(t){return `${li}/${t}.prompt.md`}function Lb(t){let e={agent:"agent",description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],x(e,t.body.trim()||"")}function Ob(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=Eb(t["x-agentsmesh-allowed-tools"]),i=o.length>0?o:Eb(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:i}}var pd=d(()=>{U();Dr();s(Eb,"toStringArray");s(md,"commandPromptPath");s(Lb,"serializeCommandPrompt");s(Ob,"parseCommandPromptFrontmatter");});function ud(t){return Lo(t)}var n_=d(()=>{Ur();s(ud,"hasHookCommand");});function CV(t){let e=basename(t,".md");return e==="_root"?"root":e}function kV(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function wb(t){let e=[],r=t.rules.find(n=>n.root);r?.body.trim()&&e.push(r.body.trim());for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot"))continue;let o=n.body.trim();if(!o)continue;let i=n.description?`## ${n.description}`:null;i?e.push(`${i}
|
|
108
|
+
`}function eT(e){return !/^[A-Za-z0-9_-]+$/.test(e)}var tT=d(()=>{gf();Ct();s(G_,"generateMcp");s(W2,"serializeMcpToToml");s(eT,"needsTomlQuoting");});var rT=d(()=>{Xx();qx();Qx();tT();});var nT=d(()=>{rT();});function V2(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,r=typeof t.command=="string"?t.command:"";if(!r)return null;let n=Array.isArray(t.args)?t.args.filter(a=>typeof a=="string"):[],o=t.env,i=o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.fromEntries(Object.entries(o).filter(a=>typeof a[1]=="string")):{};return {type:"stdio",command:r,args:n,env:i}}async function oT(e,t){let r=join(e,uf),n=await k(r);if(n===null)return;let o;try{o=parse$1(n);}catch{return}let i=o.mcp_servers;if(!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).length===0)return;let a={};for(let[l,c]of Object.entries(i)){let m=V2(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await Je(e,O_,a),t.push({fromTool:Dt,fromPath:r,toPath:O_,feature:"mcp"}));}var sT=d(()=>{A();nn();Ct();s(V2,"mapTomlServerToCanonical");s(oT,"importMcp");});async function iT(e,t,r){await Ec([_o,Ux],{projectRoot:e,destCanonicalSkillsDir:Kx,targetName:Dt,normalize:r,results:t},[Lx({canonicalCommandsDir:Bx}),wc({canonicalAgentsDir:Gp})]);}var aT=d(()=>{bc();Ct();s(iT,"importSkills");});async function lT(e,t,r){let n=join(e,za),o=join(e,Gp);try{let a=(await U(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await k(l);if(!c)continue;let m=parse$1(c);if(!m||typeof m!="object")continue;let p=typeof m.name=="string"?m.name:basename(l,".toml"),u=typeof m.description=="string"?m.description:"",f=typeof m.developer_instructions=="string"?m.developer_instructions.trim():"",g=typeof m.model=="string"?m.model:"",h=typeof m.sandbox_mode=="string"?m.sandbox_mode:"",R=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",_=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(T=>typeof T=="string"):[];await w(o);let S=join(o,`${p}.md`),I=r(f,l,S),P=Ys({name:p,description:u,tools:[],disallowedTools:[],model:g,permissionMode:R,maxTurns:0,mcpServers:_,hooks:{},skills:[],memory:""},I);await L(S,P),t.push({fromTool:Dt,fromPath:l,toPath:`${Gp}/${p}.md`,feature:"agents"});}}catch{}}var cT=d(()=>{A();ue();Ct();s(lT,"importCodexAgentsFromToml");});function mT(e){if(!e.includes(Wx))return null;let t=e.split(`
|
|
109
|
+
`).find(c=>c.startsWith(A_));if(!t)return null;let r;try{r=JSON.parse(t.slice(A_.length));}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=typeof n.description=="string"?n.description:"",i=Array.isArray(n.globs)?n.globs.filter(c=>typeof c=="string"):[],a=[],l=false;for(let c of e.split(`
|
|
110
|
+
`)){let m=c.trimEnd();if(m===Hx){l=true;continue}if(m===zx){l=false;continue}l&&m.startsWith(x_)&&a.push(m.slice(x_.length));}if(a.length===0)return null;try{let c=Buffer$1.from(a.join(""),"base64").toString("utf8");return {meta:{description:o,globs:i},body:c}}catch{return null}}var pT=d(()=>{Ct();s(mT,"tryParseEmbeddedCanonicalFromCodexRules");});async function dT(e,t,r){let n=[],o=join(e,So);try{let i=await U(o),a=i.filter(c=>c.endsWith(".md"));for(let c of a){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/"),u=join(t,p),{frontmatter:f,body:g}=x(r(m,c,u));await w(t);let h=f.root===!0?f:{...f,root:!1},R=await V(u,h,g);await L(u,R),n.push({fromTool:Dt,fromPath:c,toPath:`${Os}/${p}`,feature:"rules"});}let l=i.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await k(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),u=join(t,p);await w(t);let f=mT(m);if(f){let g=await V(u,{description:f.meta.description,globs:f.meta.globs,root:!1},r(f.body,c,u));await L(u,g);}else {let g=await V(u,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,u));await L(u,g);}n.push({fromTool:Dt,fromPath:c,toPath:`${Os}/${p}`,feature:"rules"});}}catch{}return n}var fT=d(()=>{A();B();fe();Ct();pT();s(dT,"importCodexNonRootRuleFiles");});async function hT(e,t,r,n,o){let i=join(e,Gx),a=join(e,bs),l=join(e,jx),c=join(e,Wa),m=o==="global"?await k(l):null,p=o==="global"?await k(c):null,u=o==="project"?await k(a):null,f=o==="project"?await k(i):null,g=m!==null?l:p!==null?c:u!==null?a:i,h=join(e,Os),R=m??p??u??f;if(R!==null){await w(h);let _=join(h,"_root.md"),S=g===a||g===c||g===l?Yx(R):R,I=await Ro({content:S,projectRoot:e,rulesDir:Os,sourcePath:g,fromTool:"codex-cli",normalize:r});t.push(...I.results);let b=r(g===a||g===c||g===l?n(I.rootContent,g,_):I.rootContent,g,_),{frontmatter:P,body:T}=x(b),W=P.root===true?P:{...P,root:true},$=await V(_,W,T);await L(_,$),t.push({fromTool:"codex-cli",fromPath:g,toPath:`${Os}/_root.md`,feature:"rules"});}await Z2(e,h,t,r),t.push(...await dT(e,h,r)),o!=="global"&&t.push(...await ke({srcDir:e,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:s(async({srcPath:_,normalizeTo:S})=>{let I=relative(e,dirname(_)).replace(/\\/g,"/"),b=basename(_),P=b==="AGENTS.override.md";if(!I||I==="."||!P&&b!=="AGENTS.md")return null;let T=I.replace(/\//g,"-");if(!wd(I))return await $n(join(h,`${T}.md`)),null;let W=join(h,`${T}.md`),{frontmatter:$,body:Y}=x(S(W));return {destPath:W,toPath:`${Os}/${T}.md`,feature:"rules",content:await V(W,{...$,root:false,globs:[`${I}/**`],...P?{codex_instruction:"override"}:{}},Y)}},"mapEntry")}));}async function Z2(e,t,r,n){try{let i=(await U(join(e,Ha))).filter(l=>l.endsWith(".md")),a=join(e,Ha);for(let l of i){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await k(l);if(!m)continue;let p=join(t,c),{frontmatter:u,body:f}=x(n(m,l,p));await w(t);let g=u.root===!0?u:{...u,root:!1},h=await V(p,g,f);await L(p,h),r.push({fromTool:Dt,fromPath:l,toPath:`${Os}/${c}`,feature:"rules"});}}catch{}}var yT=d(()=>{A();B();fe();Lc();Yt();Vm();Ct();fT();df();s(hT,"importCodexRules");s(Z2,"importInstructionMirrors");});async function RT(e,t){let r=t?.scope??"project",n=[],o=await z(Dt,e,r),i=await z("windsurf",e,r);return await hT(e,n,o,i,r),await iT(e,n,o),await lT(e,n,o),await oT(e,n),n}var _T=d(()=>{ge();Ct();sT();aT();cT();yT();s(RT,"importFromCodex");});function ST(e,t,r){let{rules:n}=e;return n.length===0?[]:n.some(i=>i.root)?[]:[{level:"warning",file:relative(t,n[0].source),target:Dt,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var kT=d(()=>{Ct();s(ST,"lintRules");});function IT(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))if(typeof n.description=="string"&&n.description&&t.push(v(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`)),"url"in n||"type"in n){let o="type"in n?n.type:"url";t.push(v(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return t}var LT=d(()=>{Oe();s(IT,"lintMcp");});function CT(e){return jp(e)}var ET=d(()=>{df();s(CT,"codexAdvisoryInstructionPath");});var tX,rX,nX,oX,bT,OT=d(()=>{nT();Ct();_T();kT();LT();Ce();Ml();ET();we();tX={name:"codex-cli",primaryRootInstructionPath:bs,generateRules:N_,generateCommands:M_,generateAgents:$_,generateSkills:F_,generateMcp:G_,importFrom:RT},rX={rootInstructionPath:bs,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${So}/${t}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(e,t){return CT(t)},commandPath(e,t){return Fl(t,"codex-cli")?`${_o}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${za}/${e}.toml`}}},nX={rootInstructionPath:Wa,renderPrimaryRootInstruction:v_,extraRuleOutputPaths(e){if(e.root||e.codexEmit!=="execution")return [];let t=basename(e.source,".md");return [`${So}/${t}.rules`]},skillDir:_o,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Wa,".codex/config.toml"]},rewriteGeneratedPath(e){return e===bs?Wa:e.startsWith(`${Ha}/`)?null:e},paths:{rulePath(e,t){return t.codexEmit==="execution"?`${So}/${e}.rules`:Wa},commandPath(e,t){return Fl(t,"codex-cli")?`${_o}/${J(e)}/SKILL.md`:null},agentPath(e,t){return `${za}/${e}.toml`}}},oX={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},bT={id:"codex-cli",metadata:{displayName:"Codex CLI",category:"cli",officialUrl:"https://github.com/openai/codex",shortDescription:"OpenAI's terminal coding agent"},generators:tX,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Codex config found (codex.md or AGENTS.md).",supportsConversion:{commands:true},lintRules:ST,lint:{mcp:IT},project:rX,globalSupport:{capabilities:oX,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:nX},buildImportPaths:TR,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"],nativeInstall:{pickPaths:[{prefix:".codex",feature:"rules",strategy:{kind:"basename",suffix:".md"}}]},excludeFromStarterInit:true,conversionDefaults:{commandsToSkills:true,agentsToSkills:false}};});function iX(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function AT(e){return `${Jn}/${e}.md`}function xT(e){let t={description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],D(t,e.body.trim()||"")}function TT(e,t){let r=basename(t,".md");return {name:((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||r).trim(),description:typeof e.description=="string"?e.description:"",allowedTools:iX(e["x-agentsmesh-allowed-tools"])}}function PT(e,t){let r={description:e.description||void 0,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return r.description===void 0&&delete r.description,r["allowed-tools"]===void 0&&delete r["allowed-tools"],D(r,t.trim()||"")}var hf=d(()=>{B();Yn();s(iX,"toStringArray");s(AT,"continueCommandRulePath");s(xT,"serializeCommandRule");s(TT,"parseCommandRuleFrontmatter");s(PT,"serializeImportedCommand");});function DT(e){let t=[],r=e.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),t.push({path:rs,content:D(n,r.body.trim()||"")});}for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("continue"))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs),t.push({path:`${cn}/${o}.md`,content:D(i,n.body.trim()||"")});}return t}function NT(e){return e.commands.map(t=>({path:`${Jn}/${t.name}.md`,content:xT(t)}))}function vT(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Gd,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function FT(e){return e.agents.map(t=>({path:`${Qt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function MT(e){return ie(e,Qt)}var $T=d(()=>{se();ue();B();hf();Yn();s(DT,"generateRules");s(NT,"generateCommands");s(vT,"generateMcp");s(FT,"generateAgents");s(MT,"generateSkills");});function mX(e,t){let n=(t===".json"?JSON.parse(e):parse(e)??{}).mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[i,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a;typeof l.command=="string"&&(o[i]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:qs(l.args),env:jn(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function pX(e,t){let r=(await U(join(e,PR))).filter(i=>[".json",".yaml",".yml"].includes(extname(i))),n={},o=[];for(let i of r){let a=await k(i);a&&(Object.assign(n,mX(a,extname(i))),o.push(i));}if(Object.keys(n).length!==0){await Je(e,NR,n);for(let i of o)t.push({fromTool:Jl,fromPath:i,toPath:NR,feature:"mcp"});}}async function jT(e){let t=[],r=await z(Jl,e);return t.push(...await q(yf,e,"project",{normalize:r})),await oe(e,Qt,Jl,t,r),await pX(e,t),t}var UT=d(()=>{ge();A();se();be();nn();Sr();Yn();B_();s(mX,"readMcpServers");s(pX,"importMcp");s(jT,"importFromContinue");});function uX(e){return e==="general.md"||e==="_root.md"}var BT,KT,WT=d(()=>{B();fe();hf();Yn();s(uX,"isContinueRootRulePath");BT=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=uX(e),o=n?"_root.md":e,i=join(r,o),{frontmatter:a,body:l}=x(t(i)),c={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:n};return c.description===void 0&&delete c.description,c.globs===void 0&&delete c.globs,{destPath:i,toPath:`${jd}/${o}`,content:await V(i,c,l)}},"continueRuleMapper"),KT=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=join(n,t),{frontmatter:i,body:a}=x(r(o)),l=TT(i,e),c=l.name||t.replace(/\.md$/,"").replace(/^.*\//,""),m=t.includes("/")?t.slice(0,t.lastIndexOf("/")):"",p=m?`${m}/${c}.md`:`${c}.md`,u=join(n,p),f=await Se(u,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},x(PT(l,a)).body);return {destPath:u,toPath:`${Ud}/${p}`,content:f}},"continueCommandMapper");});function HT(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Jl}))}var zT=d(()=>{Ie();Yn();s(HT,"lintRules");});function VT(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var JT=d(()=>{Oe();s(VT,"lintCommands");});function hX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var YT,XT=d(()=>{A();Yn();s(hX,"computeStatus");YT=s(async(e,t,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),i=n.has("commands"),a=n.has("mcp");if(!(o&&e.rules.length>0||i&&e.commands.length>0||a&&e.mcp!==null&&Object.keys(e.mcp.mcpServers).length>0))return [];let c={name:"agentsmesh",version:1,schema:"v1"};if(o&&e.rules.length>0&&(c.rules=e.rules.map(u=>({name:u.description||basename(u.source,".md"),rule:u.body.trim()}))),i&&e.commands.length>0&&(c.prompts=e.commands.map(u=>{let f={name:u.name};return u.description&&(f.description=u.description),f.prompt=u.body.trim(),f})),a&&e.mcp!==null){let u=Object.entries(e.mcp.mcpServers);u.length>0&&(c.mcpServers=u.map(([f,g])=>({name:f,...g})));}let m=stringify(c),p=await k(join(t,up));return [{target:"continue",path:up,content:m,currentContent:p??void 0,status:hX(p,m)}]},"generateContinueGlobalConfig");});function RX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var qT,QT=d(()=>{A();Yn();XT();s(RX,"computeStatus");qT=s(async(e,t,r,n)=>{let o=await YT(e,t,r,n);if(r!=="global"||!n.has("rules"))return o;let i=e.rules.find(c=>c.root);if(!i)return o;let a=i.body.trim(),l=await k(join(t,Yl));return [...o,{target:"continue",path:Yl,content:a,currentContent:l??void 0,status:RX(l,a)}]},"generateContinueScopeExtras");});var _X,SX,kX,IX,yf,B_=d(()=>{ue();$T();Yn();UT();WT();zT();JT();hf();Ce();QT();_X={name:"continue",primaryRootInstructionPath:rs,generateRules:DT,generateCommands:NT,generateAgents:FT,generateSkills:MT,generateMcp:vT,importFrom:jT},SX={rootInstructionPath:rs,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(e,t){return `${cn}/${e}.md`},commandPath(e,t){return AT(e)},agentPath(e){return `${Qt}/${K(e)}/SKILL.md`}}},kX={rootInstructionPath:rs,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Yl]}],skillDir:Qt,managedOutputs:{dirs:[cn,Jn,Qt,".agents/skills"],files:[Gd,Yl,up]},mirrorGlobalPath(e,t){return e.startsWith(`${Qt}/`)?`.agents/skills/${e.slice(Qt.length+1)}`:null},paths:{rulePath(e,t){return `${cn}/${e}.md`},commandPath(e,t){return `${Jn}/${e}.md`},agentPath(e){return `${Qt}/${K(e)}/SKILL.md`}}},IX={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},yf={id:"continue",metadata:{displayName:"Continue",category:"ide",officialUrl:"https://continue.dev",shortDescription:"Open-source AI code assistant"},generators:_X,capabilities:{rules:"native",additionalRules:"native",commands:"embedded",agents:"none",skills:"embedded",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},emptyImportMessage:"No Continue config found (.continue/rules/*.md, .continue/skills, or .continue/mcpServers/*).",supportsConversion:{agents:true},lintRules:HT,lint:{commands:VT},project:SX,globalSupport:{capabilities:IX,detectionPaths:[cn,Jn,".continue/mcpServers",Qt],layout:kX,scopeExtras:qT},importer:{rules:{feature:"rules",mode:"directory",source:{project:[cn],global:[cn]},canonicalDir:jd,extensions:[".md"],map:BT},commands:{feature:"commands",mode:"directory",source:{project:[Jn],global:[Jn]},canonicalDir:Ud,extensions:[".md"],map:KT}},buildImportPaths:vR,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"],nativeInstall:{pickPaths:[{prefix:".continue/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/prompts",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".continue/skills",feature:"skills",strategy:{kind:"skillDir"}}]},conversionDefaults:{agentsToSkills:true}};});var As,Va,ZT,Ja,Oi,ko,Io,Ya,Xa,Rf,_f,eP,W_,tP,Ai,Oc,xs,Ac,qa,H_,z_,Kr=d(()=>{As="copilot",Va=".github/copilot-instructions.md",ZT=".github/copilot",Ja=".github/instructions",Oi=".github/prompts",ko=".github/hooks",Io=".github/skills",Ya=".github/agents",Xa=".agentsmesh/rules",Rf=".agentsmesh/commands",_f=".agentsmesh/agents",eP=".agentsmesh/skills",W_=".agentsmesh/hooks.yaml",tP=".github/copilot-hooks",Ai=".copilot/copilot-instructions.md",Oc=".copilot/agents",xs=".copilot/skills",Ac=".copilot/prompts",qa=".copilot/AGENTS.md",H_=".claude/skills",z_=".agents/skills";});function rP(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):typeof e=="string"&&e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Sf(e){return `${Oi}/${e}.prompt.md`}function nP(e){let t={agent:"agent",description:e.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":e.name,"x-agentsmesh-allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};return t.description===void 0&&delete t.description,t["x-agentsmesh-allowed-tools"]===void 0&&delete t["x-agentsmesh-allowed-tools"],D(t,e.body.trim()||"")}function oP(e,t){let n=((typeof e["x-agentsmesh-name"]=="string"?e["x-agentsmesh-name"]:"")||basename(t,".prompt.md")).trim(),o=rP(e["x-agentsmesh-allowed-tools"]),i=o.length>0?o:rP(e.tools);return {name:n,description:typeof e.description=="string"?e.description:"",allowedTools:i}}var kf=d(()=>{B();Kr();s(rP,"toStringArray");s(Sf,"commandPromptPath");s(nP,"serializeCommandPrompt");s(oP,"parseCommandPromptFrontmatter");});function If(e){return Go(e)}var V_=d(()=>{qr();s(If,"hasHookCommand");});function EX(e){let t=basename(e,".md");return t==="_root"?"root":t}function wX(e){switch(e){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function sP(e){let t=[],r=e.rules.find(n=>n.root);r?.body.trim()&&t.push(r.body.trim());for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot"))continue;let o=n.body.trim();if(!o)continue;let i=n.description?`## ${n.description}`:null;i?t.push(`${i}
|
|
107
111
|
|
|
108
|
-
${o}`):
|
|
112
|
+
${o}`):t.push(o);}return t.join(`
|
|
109
113
|
|
|
110
|
-
`)}function
|
|
111
|
-
`)}async function
|
|
114
|
+
`)}function iP(e){let t=e.rules.find(n=>n.root),r=[];t&&r.push({path:Va,content:t.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot")||n.globs.length===0)continue;let o=EX(n.source),i={description:n.description||void 0,applyTo:n.globs.length===1?n.globs[0]:n.globs};Object.keys(i).forEach(l=>{i[l]===void 0&&delete i[l];});let a=D(i,n.body.trim()||"");r.push({path:`${Ja}/${o}.instructions.md`,content:a});}return r}function aP(e){return e.commands.map(t=>({path:Sf(t.name),content:nP(t)}))}function lP(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${Io}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Io}/${r.name}/${a}`,content:i.content});}}return t}function cP(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,"mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,skills:t.skills.length>0?t.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,t.body.trim()||"");return {path:`${Ya}/${t.name}.agent.md`,content:n}})}function mP(e){if(!e.hooks)return [];let t=Object.fromEntries(Object.entries(e.hooks).flatMap(([r,n])=>{let o=wX(r);if(!o||!Array.isArray(n))return [];let i=n.filter(a=>typeof a=="object"&&a!==null&&If(a)).map((a,l)=>{let m={type:"command",bash:`./scripts/${r.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}-${l}.sh`,comment:`Matcher: ${a.matcher}`};return a.timeout!==void 0&&(m.timeoutSec=Math.ceil(a.timeout/1e3)),m});return i.length>0?[[o,i]]:[]}));return Object.keys(t).length===0?[]:[{path:`${ko}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:t},null,2)}]}var pP=d(()=>{B();Kr();kf();V_();s(EX,"ruleSlug");s(wX,"mapHookEvent");s(sP,"renderCopilotGlobalInstructions");s(iP,"generateRules");s(aP,"generateCommands");s(lP,"generateSkills");s(cP,"generateAgents");s(mP,"generateHooks");});function OX(e){switch(e){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function AX(e){return typeof e!="string"?"*":e.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function fP(e){let t=e.match(/^# agentsmesh-command:\s*(.+)$/m);return t?.[1]?t[1].trim():e.replace(/^#!.*\n/,"").replace(/^#.*\n/gm,"").replace(/^HOOK_DIR=.*\n/gm,"").replace(/^set -e[u]?\n?/m,"").trim()}async function gP(e,t){let r=join(e,ko),o=(await U(r).catch(()=>[])).filter(p=>p.endsWith(".json")),i={};for(let p of o){let u=await k(p);if(!u)continue;let f;try{f=JSON.parse(u);}catch{continue}if(!(!f||typeof f.hooks!="object"||f.hooks===null))for(let[g,h]of Object.entries(f.hooks)){let R=OX(g);if(!(!R||!Array.isArray(h)))for(let _ of h){if(!_||typeof _!="object")continue;let S=_,I=typeof S.bash=="string"?S.bash:"";if(!I)continue;let b=join(r,I.replace(/^\.\//,"")),P=await k(b);if(!P)continue;let T=fP(P);T&&(i[R]||(i[R]=[]),i[R].push({matcher:AX(S.comment),command:T,type:"command"}));}}}let a=join(e,tP),c=(await U(a).catch(()=>[])).filter(p=>dirname(p)===a&&/^[^-]+-\d+\.sh$/i.test(basename(p)));for(let p of c){let u=await k(p);if(!u)continue;let f=basename(p,".sh"),g=f.lastIndexOf("-"),h=g>0?f.slice(0,g):f;i[h]||(i[h]=[]),i[h].push({matcher:"*",command:fP(u),type:"command"});}if(Object.keys(i).length===0)return;let m=join(e,W_);await w(dirname(m)),await L(m,stringify(i)),t.push({fromTool:As,fromPath:join(e,ko),toPath:W_,feature:"hooks"});}var hP=d(()=>{A();Kr();s(OX,"mapCopilotHookEvent");s(AX,"extractMatcher");s(fP,"extractWrapperCommand");s(gP,"importHooks");});async function yP(e,t,r,n=Io){let o=join(e,n),i=await Mp(o),a={projectRoot:e,destCanonicalSkillsDir:eP,targetName:As,normalize:r,results:t};for(let[l,c]of i)await Fp(l,c,a);}var RP=d(()=>{bc();Kr();s(yP,"importSkills");});async function _P(e,t={}){let r=t.scope??"project",n=[],o=await z(As,e,r);return n.push(...await q(Lf,e,r,{normalize:o})),await yP(e,n,o,r==="global"?xs:Io),r==="project"&&await gP(e,n),n}var SP=d(()=>{ge();be();Kr();hP();RP();J_();s(_P,"importFromCopilot");});async function Cf(e){let t=await U(e),r=new Set;for(let n of t){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(e,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}var X_=d(()=>{A();s(Cf,"skillNamesFromNativeSkillDir");});async function kP(e,t){let r=join(e,...t.split("/"));if(t.startsWith(Oi)){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".prompt.md")).map(i=>basename(i,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(t.startsWith(".github/copilot")&&!t.includes("copilot-instructions.md")){let n=await U(r),o=[...new Set(n.filter(i=>i.includes(".instructions.md")).map(i=>basename(i).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(t.startsWith(".github/instructions")){let n=await U(r),o=new Set;for(let a of n){let l=basename(a);l.toLowerCase().endsWith(".instructions.md")?o.add(l.replace(/\.instructions\.md$/i,"")):l.toLowerCase().endsWith(".md")&&o.add(basename(a,".md"));}let i=[...o].sort();return i.length?{rules:i}:{}}if(t.startsWith(".github/skills")){let n=await Cf(r);return n.length?{skills:n}:{}}if(t.startsWith(".github/agents")){let n=await U(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".agent.md")).map(i=>basename(i,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}var IP=d(()=>{A();Kr();X_();s(kP,"inferCopilotPickFromPath");});function LP(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var CP,EP,wP,bP,OP=d(()=>{B();fe();Sr();kf();Kr();s(LP,"pruneUndefined");CP=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=Wo(i.globs),c=LP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Xa}/${n}`,content:await V(o,c,a)}},"copilotLegacyRuleMapper"),EP=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=e.endsWith(".instructions.md")?e.replace(/\.instructions\.md$/i,".md"):e,o=join(r,n),{frontmatter:i,body:a}=x(t(o)),l=Wo(i.applyTo!==void 0?i.applyTo:i.globs),c=LP({root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Xa}/${n}`,content:await V(o,c,a)}},"copilotNewRuleMapper"),wP=s(async({absolutePath:e,relativePath:t,normalizeTo:r,destDir:n})=>{let o=t.replace(/\.prompt\.md$/i,".md"),i=join(n,o),{frontmatter:a,body:l}=x(r(i)),c=oP(a,e),m=o.includes("/")?o.slice(0,o.lastIndexOf("/")):"",p=`${c.name}.md`,u=m?`${m}/${p}`:p,f=join(n,u);return {destPath:f,toPath:`${Rf}/${u}`,content:await Se(f,{description:c.description,hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:c.allowedTools,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"tools")||Object.prototype.hasOwnProperty.call(a,"x-agentsmesh-allowed-tools")},l)}},"copilotCommandMapper"),bP=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(!e.endsWith(".agent.md"))return null;let n=e.replace(/\.agent\.md$/i,".md"),o=basename(n,".md"),i=join(r,n),{frontmatter:a,body:l}=x(t(i));return {destPath:i,toPath:`${_f}/${n}`,content:await et(i,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function AP(e,t,r,n){let i=X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:As})),a=e.rules.filter(l=>!l.root&&l.globs.length===0);return [...i,...a.map(l=>({level:"warning",file:l.source,target:As,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var xP=d(()=>{Ie();Kr();s(AP,"lintRules");});function TP(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function PP(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification","UserPromptSubmit"],r=new Set(t),n=Object.keys(e.hooks).filter(i=>!r.has(i)).map(i=>Zs(i,"copilot",t,{unsupportedBy:"Copilot hooks"}));return Object.values(e.hooks).some(i=>Array.isArray(i)&&i.length>0)&&n.push(v(".agentsmesh/hooks.yaml","copilot","copilot hooks are emitted as .github/hooks/scripts/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")),n}var DP=d(()=>{Oe();s(TP,"lintCommands");s(PP,"lintHooks");});function MX(e){return e.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function $X(e,t){let r=relative(e,t).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function GX(e,t){let r=e.match(vP);if(!r?.groups)return e;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${t}"${o}`}async function jX(e,t){let n=t.match(vP)?.groups?.path;if(!n)return null;let o=join(e,n),i=await k(o);if(i===null)return null;let a=$X(e,o);return a?{assetPath:`${ko}/scripts/${a}`,content:i,rewrittenCommand:GX(t,a)}:null}function UX(e,t){return `${ko}/scripts/${MX(e)}-${t}.sh`}function NP(e){return e.replace(/[\r\n]+/g," ")}function BX(e,t){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${NP(t)}`,`# agentsmesh-command: ${NP(e)}`,"set -eu",e,""].join(`
|
|
115
|
+
`)}async function FP(e,t,r){if(!t.hooks)return r;let n=[],o=new Map;for(let[i,a]of Object.entries(t.hooks)){if(!Array.isArray(a))continue;let l=0;for(let c of a){if(!If(c))continue;let m=UX(i,l),p=c.command,u=await jX(e,c.command);u&&(p=u.rewrittenCommand,o.has(u.assetPath)||o.set(u.assetPath,{path:u.assetPath,content:u.content}));let f=BX(p,c.matcher).replace(`set -eu
|
|
112
116
|
`,`set -eu
|
|
113
117
|
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
114
|
-
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var
|
|
115
|
-
`);return [{path:
|
|
116
|
-
`)}var
|
|
118
|
+
`);n.push({path:m,content:f}),l++;}}return [...r,...n,...o.values()]}var vP,MP=d(()=>{A();Kr();V_();vP=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;s(MX,"safePhaseName");s($X,"toRepoRelative");s(GX,"rewriteWrapperCommand");s(jX,"buildAssetOutput");s(UX,"wrapperPath");s(NP,"safeShellLine");s(BX,"buildWrapper");s(FP,"addHookScriptAssets");});function WX(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var $P,GP=d(()=>{A();Kr();s(WX,"computeStatus");$P=s(async(e,t,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=e.rules.find(l=>l.root);if(!o)return [];let i=o.body.trim(),a=await k(join(t,qa));return [{target:"copilot",path:qa,content:i,currentContent:a??void 0,status:WX(a,i)}]},"generateCopilotGlobalExtras");});var zX,VX,JX,YX,Lf,J_=d(()=>{pP();Kr();SP();IP();OP();xP();Ce();kf();DP();MP();GP();zX={name:"copilot",primaryRootInstructionPath:Va,generateRules:iP,generateCommands:aP,generateAgents:cP,generateSkills:lP,generateHooks:mP,importFrom:_P},VX={rootInstructionPath:Va,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],extraRuleOutputPaths(e){if(e.root||e.globs.length===0)return [];let t=basename(e.source,".md");return [`${Ja}/${t}.instructions.md`]},skillDir:".github/skills",managedOutputs:{dirs:[".github/agents",".github/instructions",".github/prompts",".github/skills",".github/hooks/scripts"],files:[".github/copilot-instructions.md",".github/hooks/agentsmesh.json"]},paths:{rulePath(e,t){return `${Ja}/${e}.instructions.md`},commandPath(e,t){return Sf(e)},agentPath(e,t){return `${Ya}/${e}.agent.md`}}},JX={rootInstructionPath:Ai,renderPrimaryRootInstruction:sP,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[qa]}],skillDir:xs,managedOutputs:{dirs:[Oc,xs,Ac,z_,H_],files:[Ai,qa]},rewriteGeneratedPath(e){return e===Va?Ai:e.startsWith(`${Ja}/`)?Ai:e.startsWith(`${Oi}/`)?e.replace(`${Oi}/`,`${Ac}/`):e.startsWith(`${Ya}/`)?e.replace(`${Ya}/`,`${Oc}/`):e.startsWith(`${Io}/`)?e.replace(`${Io}/`,`${xs}/`):e.startsWith(`${ko}/`)?null:e},mirrorGlobalPath(e,t){if(e.startsWith(`${xs}/`)&&!t.includes("codex-cli")){let r=e.slice(xs.length+1);return [`.agents/skills/${r}`,`${H_}/${r}`]}return null},paths:{rulePath(e,t){return Ai},commandPath(e,t){return `${Ac}/${e}.prompt.md`},agentPath(e,t){return `${Oc}/${e}.agent.md`}}},YX={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Lf={id:"copilot",metadata:{displayName:"GitHub Copilot",category:"ide",officialUrl:"https://github.com/features/copilot",shortDescription:"GitHub's AI pair programmer"},generators:zX,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"partial",ignore:"none",permissions:"none"},emptyImportMessage:"No Copilot config found (.github/copilot-instructions.md, .github/copilot or .github/instructions, .github/prompts, .github/skills, .github/agents, or .github/hooks).",lintRules:AP,lint:{commands:TP,hooks:PP},postProcessHookOutputs:s(async(e,t,r)=>FP(e,t,[...r]),"postProcessHookOutputs"),project:VX,globalSupport:{capabilities:YX,detectionPaths:[Ai,qa,Oc,xs,Ac,z_],layout:JX,scopeExtras:$P},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Va],global:[Ai]},canonicalDir:Xa,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ZT]},canonicalDir:Xa,extensions:[".instructions.md"],map:CP},{feature:"rules",mode:"directory",source:{project:[Ja]},canonicalDir:Xa,extensions:[".instructions.md",".md"],map:EP}],commands:{feature:"commands",mode:"directory",source:{project:[Oi],global:[Ac]},canonicalDir:Rf,extensions:[".prompt.md"],map:wP},agents:{feature:"agents",mode:"directory",source:{project:[Ya],global:[Oc]},canonicalDir:_f,extensions:[".agent.md"],map:bP}},buildImportPaths:FR,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"],nativeInstall:{inferPick:kP}};});function Ef(e){return {$schema:"https://charm.land/crush.json",...e}}var jP=d(()=>{s(Ef,"buildCrushConfigJson");});function UP(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Er)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:wr,content:o}]:[]}function BP(e){return ie(e,lt)}function KP(e){return e.commands.map(t=>({path:`${lt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function WP(e){return e.agents.map(t=>({path:`${lt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function HP(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Ef({mcp:e.mcp.mcpServers});return [{path:Zt,content:JSON.stringify(t,null,2)}]}function zP(e){if(!e.hooks)return [];let t=XX(e);if(Object.keys(t).length===0)return [];let r=Ef({hooks:t});return [{path:Zt,content:JSON.stringify(r,null,2)}]}function VP(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];if(t.length===0&&r.length===0&&n.length===0)return [];let o={};t.length>0&&(o.allowed_tools=t),r.length>0&&(o.denied_tools=r);let i=Ef({permissions:o});return [{path:Zt,content:JSON.stringify(i,null,2)}]}function JP(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
|
|
119
|
+
`);return [{path:ns,content:t}]}function XX(e){if(!e.hooks)return {};let t={};for(let[r,n]of Object.entries(e.hooks)){if(!Array.isArray(n))continue;let o=[];for(let i of n){let a=typeof i.command=="string"?i.command.trim():"";if(!a)continue;let l={matcher:i.matcher,command:a};i.timeout!==void 0&&(l.timeout=i.timeout),o.push(l);}o.length>0&&(t[r]=o);}return t}var YP=d(()=>{se();Ue();ue();we();Xl();jP();s(UP,"generateRules");s(BP,"generateSkills");s(KP,"generateCommands");s(WP,"generateAgents");s(HP,"generateMcp");s(zP,"generateHooks");s(VP,"generatePermissions");s(JP,"generateIgnore");s(XX,"buildCrushHooksFromCanonical");});async function qP(e,t={}){let r=t.scope??"project",n=[],o=await z(Er,e,r);return n.push(...await q(wf,e,r,{normalize:o})),await oe(e,r==="global"?er:lt,Er,n,o),await qX(e,n),n}async function qX(e,t){let r=join(e,Zt),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||Array.isArray(o))return;let i=o,a=QX(i.mcp);if(Object.keys(a).length>0){let c=zd,m=join(e,c);await w(dirname(m)),await L(m,JSON.stringify({mcpServers:a},null,2)),t.push({fromTool:Er,fromPath:r,toPath:c,feature:"mcp"});}let l=ZX(i.hooks);if(l!==null&&Object.keys(l).length>0){let c=".agentsmesh/hooks.yaml",m=join(e,c);await w(dirname(m));let p=eq(l);await L(m,p),t.push({fromTool:Er,fromPath:r,toPath:c,feature:"hooks"});}}function QX(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e)){if(!n||typeof n!="object"||Array.isArray(n))continue;let o=n,i=typeof o.description=="string"?o.description:void 0;if(typeof o.command=="string"){t[r]={type:typeof o.type=="string"?o.type:"stdio",command:o.command,args:qs(o.args),env:jn(o.env),...i!==void 0?{description:i}:{}};continue}typeof o.url=="string"&&(t[r]={type:typeof o.type=="string"?o.type:"http",url:o.url,headers:jn(o.headers),env:jn(o.env),...i!==void 0?{description:i}:{}});}return t}function ZX(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i,l=typeof a.command=="string"?a.command.trim():"";if(!l)continue;let m={matcher:typeof a.matcher=="string"?a.matcher:"",command:l};typeof a.timeout=="number"&&(m.timeout=a.timeout),o.push(m);}o.length>0&&(t[r]=o);}return Object.keys(t).length>0?t:null}function eq(e){let t=[];for(let[r,n]of Object.entries(e)){t.push(`${r}:`);for(let o of n)t.push(` - matcher: ${JSON.stringify(o.matcher)}`),t.push(` command: ${JSON.stringify(o.command)}`),o.timeout!==void 0&&t.push(` timeout: ${o.timeout}`);}return t.join(`
|
|
120
|
+
`)}var QP=d(()=>{ge();se();be();A();Sr();Q_();Xl();s(qP,"importFromCrush");s(qX,"importCrushConfigJson");s(QX,"parseCrushMcpServers");s(ZX,"parseCrushHooks");s(eq,"serializeHooksYaml");});function ZP(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Er}))}var eD=d(()=>{Ie();Xl();s(ZP,"lintRules");});function tD(e){return e.commands.length===0?[]:[v(".agentsmesh/commands","crush","Crush has no native slash-command format; commands are projected as skills via supportsConversion.")]}var rD=d(()=>{Oe();s(tD,"lintCommands");});function Z_(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return {}}}function oD(e,t){let r=Z_(e),n=rq.parse(JSON.parse(t)),o={...r};n.permissions!==void 0&&(o.permissions=n.permissions),n.hooks!==void 0&&(o.hooks=n.hooks);let i=o.permissions;return i&&typeof i=="object"&&!Array.isArray(i)&&!("ask"in i)&&(i.ask=[]),JSON.stringify(o,null,2)}function sD(e,t){let r=Z_(e),n=nq.parse(JSON.parse(t)),o={...r};return n.mcpServers!==void 0&&(o.mcpServers=n.mcpServers),n.hooks!==void 0&&(o.hooks=n.hooks),n.experimental!==void 0&&(o.experimental=n.experimental),n.context!==void 0&&(o.context=n.context),JSON.stringify(o,null,2)}function iD(e,t){let r=Z_(e),n=tq.parse(JSON.parse(t)),o={...r};return n.$schema!==void 0&&(o.$schema=n.$schema),n.mcp!==void 0&&(o.mcp=n.mcp),n.hooks!==void 0&&(o.hooks=n.hooks),n.permissions!==void 0&&(o.permissions=n.permissions),n.options!==void 0&&(o.options=n.options),JSON.stringify(o,null,2)}var nD,tq,rq,nq,bf=d(()=>{nD=[".claude/settings.json",".gemini/settings.json"],tq=z$1.object({$schema:z$1.string().optional(),mcp:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),permissions:z$1.record(z$1.string(),z$1.unknown()).optional(),options:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),rq=z$1.object({permissions:z$1.object({allow:z$1.array(z$1.string()).optional(),deny:z$1.array(z$1.string()).optional()}).passthrough().optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough(),nq=z$1.object({mcpServers:z$1.record(z$1.string(),z$1.unknown()).optional(),hooks:z$1.record(z$1.string(),z$1.unknown()).optional(),experimental:z$1.record(z$1.string(),z$1.unknown()).optional(),context:z$1.record(z$1.string(),z$1.unknown()).optional()}).passthrough();s(Z_,"parseJsonObject");s(oD,"mergeSettingsJson");s(sD,"mergeGeminiSettingsJson");s(iD,"mergeCrushConfigJson");});var oq,sq,iq,aq,lq,wf,Q_=d(()=>{we();ue();YP();pt();QP();eD();rD();Ce();bf();Xl();oq={name:Er,primaryRootInstructionPath:wr,generateRules:UP,generateCommands:KP,generateAgents:WP,generateSkills:BP,generateMcp:HP,generateHooks:zP,generatePermissions:VP,generateIgnore:JP,importFrom:qP},sq={rootInstructionPath:wr,skillDir:lt,managedOutputs:{dirs:[lt],files:[wr,Zt,ns]},paths:{rulePath(e){return wr},commandPath(e){return `${lt}/${J(e)}/SKILL.md`},agentPath(e){return `${lt}/${K(e)}/SKILL.md`}}},iq={rootInstructionPath:ga,skillDir:er,managedOutputs:{dirs:[er],files:[ga,Kd]},rewriteGeneratedPath(e){return e===wr?ga:e===Zt?Kd:e===ns?null:e.startsWith(`${lt}/`)?e.replace(`${lt}/`,`${er}/`):e},mirrorGlobalPath(e,t){return de(e,er,t)},paths:{rulePath(e){return ga},commandPath(e){return `${er}/${J(e)}/SKILL.md`},agentPath(e){return `${er}/${K(e)}/SKILL.md`}}},aq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},lq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"native",ignore:"none",permissions:"none"},wf={id:Er,metadata:{displayName:"Crush",category:"cli",officialUrl:"https://github.com/charmbracelet/crush",shortDescription:"Charm's TUI coding agent"},generators:oq,capabilities:aq,emptyImportMessage:"No Crush config found (CRUSH.md, .crush/skills/, crush.json, or .crushignore).",lintRules:ZP,lint:{commands:tD},supportsConversion:{commands:true,agents:true},project:sq,globalSupport:{capabilities:lq,detectionPaths:[ga,Kd,er],layout:iq},mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Zt?iD(o,r):null},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[wr],global:[ga]},canonicalDir:Wd,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ns]},canonicalDir:".agentsmesh",canonicalFilename:Hd}},buildImportPaths:MR,detectionPaths:[wr,Zt,lt,ns],sharedArtifacts:{".crush/skills/":"owner"}};});function eS(e){let t=[],r=e.rules.find(i=>i.root);if(r){let i=r.body.trim()?r.body:"";t.push({path:si,content:i});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=D(a,i);t.push({path:os,content:l});}let n=e.rules.filter(i=>!i.root&&(i.targets.length===0||i.targets.includes("cursor")));for(let i of n){let a=basename(i.source,".md"),c={alwaysApply:i.trigger==="always_on"};i.description&&(c.description=i.description),i.globs.length>0&&(c.globs=i.globs);let m=D(c,i.body.trim()||"");t.push({path:`${br}/${a}.mdc`,content:m});}let o=aD(e);return o.trim()&&t.push({path:pn,content:o}),t}function aD(e){let t=e.rules.find(o=>o.root),r=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("cursor"))),n=[];return t?.body.trim()?n.push(ae(t.body,r)):r.length>0&&n.push(ae("",r)),n.filter(Boolean).join(`
|
|
117
121
|
|
|
118
|
-
`)}var
|
|
119
|
-
`);return [{path:
|
|
122
|
+
`)}var lD=d(()=>{B();Ue();Ye();s(eS,"generateRules");s(aD,"renderCursorGlobalUserRules");});function tS(e){return e.commands.map(t=>({path:`${Or}/${t.name}.md`,content:t.body.trim()||""}))}var cD=d(()=>{Ye();s(tS,"generateCommands");});function rS(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:tr,content:t}]}var mD=d(()=>{Ye();s(rS,"generateMcp");});function nS(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${kt}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${kt}/${r.name}/${a}`,content:i.content});}}return t}var pD=d(()=>{B();Ye();s(nS,"generateSkills");});function oS(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,t.body.trim()||"");return {path:`${Ar}/${t.name}.md`,content:n}})}var uD=d(()=>{B();Ye();s(oS,"generateAgents");});function sS(e){return []}var dD=d(()=>{s(sS,"generatePermissions");});function mq(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Fn(i))continue;let a=Ze(i),l=At(i),c=i.type==="prompt"?l||a:a||l,m={type:i.type==="prompt"?"prompt":"command",[i.type==="prompt"?"prompt":"command"]:c};i.timeout!==void 0&&(m.timeout=i.timeout),o.push({matcher:i.matcher,hooks:[m]});}o.length>0&&(t[r]=o);}return t}function iS(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=mq(e.hooks);if(Object.keys(t).length===0)return [];let r=JSON.stringify({version:1,hooks:t},null,2);return [{path:Xn,content:r}]}var fD=d(()=>{qr();Ye();s(mq,"toCursorHooks");s(iS,"generateHooks");});function aS(e){if(!e.ignore||e.ignore.length===0)return [];let t=e.ignore.join(`
|
|
123
|
+
`);return [{path:mn,content:t}]}var gD=d(()=>{Ye();s(aS,"generateIgnore");});var hD=d(()=>{lD();cD();mD();pD();uD();dD();fD();gD();});var yD=d(()=>{hD();});async function Af(e,t,r,n){let o=e.replace(/\.mdc$/i,".md"),i=join(t,o),l=x(r(i)).frontmatter.alwaysApply===true,c=l?join(t,"_root.md"):i,{frontmatter:m,body:p}=x(r(c));l&&n();let u={...m,root:l};if(delete u.alwaysApply,!l){let f=pq(m);f!==null&&(u.trigger=f);}return {destPath:c,toPath:`${qn}/${l?"_root.md":o}`,feature:"rules",content:await V(c,u,p)}}function pq(e){return e.alwaysApply!==false?null:(Array.isArray(e.globs)?e.globs:[]).length>0?"glob":(typeof e.description=="string"?e.description:"").trim().length>0?"model_decision":"manual"}async function RD(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${ii}/${e}`,feature:"commands",content:await Se(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}}async function _D(e,t,r){let n=join(t,e),{frontmatter:o,body:i}=x(r(n));return {destPath:n,toPath:`${ai}/${e}`,feature:"agents",content:await et(n,o,i)}}var lS=d(()=>{B();fe();Sr();Ye();s(Af,"mapCursorRuleFile");s(pq,"deriveCursorTrigger");s(RD,"mapCursorCommandFile");s(_D,"mapCursorAgentFile");});async function xc(e){let t=join(e.projectRoot,qn);await w(t);let r=join(t,"_root.md"),n=await Ro({content:e.content,projectRoot:e.projectRoot,rulesDir:qn,sourcePath:e.sourcePath,fromTool:"cursor",normalize:e.normalize});e.results.push(...n.results);let o=e.normalize(n.rootContent,e.sourcePath,r);if(!o.trim()&&n.results.length>0)return true;let{frontmatter:i,body:a}=x(o),l=i.root===true?i:{...i,root:true},c=await V(r,l,a);return await L(r,c),e.results.push({fromTool:"cursor",fromPath:e.sourcePath,toPath:`${qn}/_root.md`,feature:"rules"}),true}var cS=d(()=>{A();B();Lc();fe();Ye();s(xc,"importCursorRootFile");});async function kD(e,t,r){let n=join(e,qn),o=false,i=join(e,br);if(t.push(...await ke({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:s(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await k(a);if(m!==null){let{frontmatter:p}=x(m);if(p.alwaysApply===true)return null}}return Af(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(e,si),l=await k(a);l!==null&&(o=await xc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(e,gb),l=await k(a);l!==null&&await xc({projectRoot:e,results:t,sourcePath:a,content:l,normalize:r});}}var ID=d(()=>{A();B();Yt();lS();cS();Ye();s(kD,"importCursorRules");});function LD(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!i||typeof i!="object")continue;let a=i,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let p=m.type==="prompt"?"prompt":"command";if(!Fn({...m,type:p}))continue;let u=p==="prompt"?At(m)||Ze(m):Ze(m)||At(m),f={matcher:l,type:p,command:u};typeof m.timeout=="number"&&(f.timeout=m.timeout),o.push(f);}}o.length>0&&(t[r]=o);}return t}async function Pf(e,t){let r=false,n=join(e,Xn),o=await k(n);if(o)try{let p=JSON.parse(o);if(p.hooks&&typeof p.hooks=="object"){let u=LD(p.hooks);if(Object.keys(u).length>0){let f=stringify(u),g=join(e,dp);await w(dirname(g)),await L(g,f),t.push({fromTool:"cursor",fromPath:n,toPath:dp,feature:"hooks"}),r=!0;}}}catch{}let i=join(e,Vd),a=await k(i);if(!a)return;let l;try{l=JSON.parse(a);}catch{return}let c=l.permissions;if(c&&typeof c=="object"&&!Array.isArray(c)){let p=c,u=Array.isArray(p.allow)?p.allow.filter(g=>typeof g=="string"):[],f=Array.isArray(p.deny)?p.deny.filter(g=>typeof g=="string"):[];if(u.length>0||f.length>0){let g=stringify({allow:u,deny:f}),h=join(e,GR);await w(dirname(h)),await L(h,g),t.push({fromTool:"cursor",fromPath:i,toPath:GR,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let p=LD(m);if(Object.keys(p).length>0){let u=stringify(p),f=join(e,dp);await w(dirname(f)),await L(f,u),t.push({fromTool:"cursor",fromPath:i,toPath:dp,feature:"hooks"});}}}async function Df(e,t){let r=[{path:join(e,mn),label:mn},{path:join(e,$R),label:$R}],n=[],o=[];for(let a of r){let l=await k(a.path);if(l!==null){o.push(a.label);for(let c of l.split(/\r?\n/)){let m=c.trim();m&&!n.includes(m)&&n.push(m);}}}if(n.length===0)return;let i=join(e,jR);await w(dirname(i)),await L(i,n.join(`
|
|
120
124
|
`)+`
|
|
121
|
-
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:Xh,feature:"ignore"});}var R_=d(()=>{Ur();A();zt();s(KP,"cursorHooksToCanonical");s(Sd,"importSettings");s(Cd,"importIgnore");});async function kd(t,e,r,n=fe){let o=join(t,n),i=await Jm(o),a={projectRoot:t,destCanonicalSkillsDir:$E,targetName:"cursor",normalize:r,results:e};for(let[p,u]of i)await Vm(p,u,a);let l=await G(o).catch(()=>[]),c=l.filter(p=>p.endsWith(".md")),m=new Set(Array.from(i.values()).flatMap(p=>l.filter(u=>u.startsWith(p))));for(let p of c){if(m.has(p))continue;let u=await _(p);if(!u)continue;let f=basename(p,".md");await Ww(f,p,u,a);}}var I_=d(()=>{A();Ql();zt();s(kd,"importSkills");});async function WP(t){if(await j(join(t,yr)))return true;let e=[join(t,qr),join(t,Cl),join(t,Ke),join(t,$n),join(t,Qr),join(t,fe),join(t,Rr),join(t,_r)];for(let i of e){let a=await _(i);if(a!==null&&a.trim()!=="")return true}return !!((await G(join(t,fe))).some(i=>i.endsWith(".md"))||(await G(join(t,Rr))).some(i=>i.endsWith(".md"))||(await G(join(t,_r))).some(i=>i.endsWith(".md")))}async function HP(t,e,r){let n=join(t,Gn),o=false,i=join(t,yr),a=await St({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:rc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await _(l);if(p!==null){let{frontmatter:u}=P(p);if(u.alwaysApply===true)return null}}return _d(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function zP(t,e,r){let n=join(t,Cl),o=await _(n);return o===null||o.trim()===""?false:ec({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function VP(t,e,r){let n=join(t,qr),o=await _(n);return o===null||o.trim()===""?false:ec({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function JP(t,e){let r=join(t,Ke),n=await _(r);if(n===null||n.trim()==="")return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=join(t,kl);await O(dirname(i)),await S(i,n),e.push({fromTool:rc,fromPath:r,toPath:kl,feature:"mcp"});}async function YP(t,e,r){let n=join(t,Rr),o=join(t,Us);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:rc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>GP(i,o,a),"mapEntry")}));}async function XP(t,e,r){let n=join(t,_r),o=join(t,js);e.push(...await St({srcDir:n,destDir:o,extensions:[".md"],fromTool:rc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>$P(i,o,a),"mapEntry")}));}var rc,ZP=d(()=>{A();U();Me();zt();y_();h_();rc="cursor";s(WP,"hasGlobalCursorArtifacts");s(HP,"importGlobalCursorRulesFromDir");s(zP,"importGlobalUserRules");s(VP,"importGlobalDotCursorAgents");s(JP,"importGlobalMcp");s(YP,"importGlobalAgents");s(XP,"importGlobalCommands");});async function QP(t){if(!await WP(t))return [];let e=[],r=await W(rc,t,"global"),n=await HP(t,e,r);return n||(n=await zP(t,e,r)),n||await VP(t,e,r),await JP(t,e),await kd(t,e,r,fe),await YP(t,e,r),await XP(t,e,r),await Sd(t,e),await Cd(t,e),e}var qP=d(()=>{gt();zt();I_();R_();ZP();s(QP,"importFromCursorGlobalExports");});async function m1(t,e){let r=join(t,Ke),n=await _(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=o.mcpServers;await Ht(t,kl,i),e.push({fromTool:"cursor",fromPath:r,toPath:kl,feature:"mcp"});}async function tT(t,e={}){if(e.scope==="global")return QP(t);let r=[],n=await W("cursor",t);return await UP(t,r,n),r.push(...await Y(Ed,t,"project",{normalize:n})),await kd(t,r,n),await m1(t,r),await Sd(t,r),await Cd(t,r),r}var eT=d(()=>{gt();A();Ot();Vr();BP();R_();I_();qP();zt();S_();s(m1,"importMcp");s(tT,"importFromCursor");});var nT,oT,sT=d(()=>{U();ft();cr();zt();nT=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n)),a=lr(o.allowedTools),l=a.length>0?a:lr(o["allowed-tools"]);return {destPath:n,toPath:`${js}/${t}`,content:await It(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"cursorCommandMapper"),oT=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Us}/${t}`,content:await Yt(n,o,i)}},"cursorAgentMapper");});function iT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:vE}))}var aT=d(()=>{Ct();zt();s(iT,"lintRules");});function lT(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>D(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function cT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&e.push(D(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function mT(t){if(!t.permissions)return [];let e=t.permissions.ask?.length??0;return t.permissions.allow.length>0||t.permissions.deny.length>0||e>0?[D(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var pT=d(()=>{wt();s(lT,"lintCommands");s(cT,"lintMcp");s(mT,"lintPermissions");});var p1,u1,d1,f1,Ed,S_=d(()=>{MP();zt();oe();eT();sT();aT();Et();pT();p1={name:"cursor",primaryRootInstructionPath:Bo,generateRules:l_,generateCommands:c_,generateAgents:u_,generateSkills:p_,generateMcp:m_,generatePermissions:d_,generateHooks:f_,generateIgnore:g_,importFrom:tT},u1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Gs,qr]}],skillDir:".cursor/skills",managedOutputs:{dirs:[".cursor/agents",".cursor/commands",".cursor/rules",".cursor/skills"],files:[".cursor/hooks.json",".cursor/mcp.json",".cursorignore","AGENTS.md"]},paths:{rulePath(t,e){return `.cursor/rules/${t}.mdc`},commandPath(t,e){return `.cursor/commands/${t}.md`},agentPath(t,e){return `.cursor/agents/${t}.md`}}},d1={rootInstructionPath:Bo,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Gs,qr]}],skillDir:fe,managedOutputs:{dirs:[yr,_r,Rr,fe],files:[Bo,qr,Ke,$n,Qr,Cl]},rewriteGeneratedPath(t){return t===Gs?null:t===qr||t===Bo||t.startsWith(`${yr}/`)||t.startsWith(`${_r}/`)||t.startsWith(`${Rr}/`)||t.startsWith(`${fe}/`)||t===Ke||t===$n||t===Qr?t:t===$u?null:t},mirrorGlobalPath(t,e){return dt(t,fe,e)},paths:{rulePath(t,e){return `${yr}/${t}.mdc`},commandPath(t,e){return `${_r}/${t}.md`},agentPath(t,e){return `${Rr}/${t}.md`}}},f1={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Ed={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:p1,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},emptyImportMessage:"No Cursor config found (AGENTS.md or .cursor/rules/*.mdc; with --global: ~/.cursor/{rules/*.mdc,AGENTS.md,mcp.json,hooks.json,cursorignore,skills/,agents/,commands/} and legacy ~/.agentsmesh-exports/cursor/user-rules.md).",lintRules:iT,lint:{commands:lT,mcp:cT,permissions:mT},project:u1,globalSupport:{capabilities:f1,detectionPaths:[Bo,qr,Ke,$n,Qr,fe,Rr,_r,Cl],layout:d1},importer:{commands:{feature:"commands",mode:"directory",source:{project:[_r]},canonicalDir:js,extensions:[".md"],map:nT},agents:{feature:"agents",mode:"directory",source:{project:[Rr]},canonicalDir:Us,extensions:[".md"],map:oT}},buildImportPaths:Zh,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});function uT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(jn)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Ir,content:o}]:[]}function dT(t){return st(t,ge)}function fT(t){return t.commands.map(e=>({path:`${ge}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function gT(t){return t.agents.map(e=>({path:`${ge}/${K(e.name)}/SKILL.md`,content:xt(e)}))}function hT(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Ko,content:e}]}var yT=d(()=>{rt();Wt();ut();Lt();El();s(uT,"generateRules");s(dT,"generateSkills");s(fT,"generateCommands");s(gT,"generateAgents");s(hT,"generateMcp");});async function _T(t,e={}){let r=e.scope??"project",n=[],o=await W(jn,t,r);return n.push(...await Y(Ld,t,r,{normalize:o})),await et(t,r==="global"?tn:ge,jn,n,o),n}var RT=d(()=>{gt();rt();Ot();El();C_();s(_T,"importFromDeepagentsCli");});function IT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jn}))}var ST=d(()=>{Ct();El();s(IT,"lintRules");});function CT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","deepagents-cli","Deep Agents CLI hooks are global-only (~/.deepagents/hooks.json); project-level canonical hooks are not projected.")]:[]:[]}function kT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function ET(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var LT=d(()=>{wt();s(CT,"lintHooks");s(kT,"lintPermissions");s(ET,"lintIgnore");});var g1,h1,y1,_1,R1,Ld,C_=d(()=>{Lt();ut();yT();RT();ST();LT();Et();El();g1={name:jn,primaryRootInstructionPath:Ir,generateRules:uT,generateCommands:fT,generateAgents:gT,generateSkills:dT,generateMcp:hT,importFrom:_T},h1={rootInstructionPath:Ir,skillDir:ge,managedOutputs:{dirs:[ge],files:[Ir,Ko]},paths:{rulePath(t){return Ir},commandPath(t){return `${ge}/${V(t)}/SKILL.md`},agentPath(t){return `${ge}/${K(t)}/SKILL.md`}}},y1={rootInstructionPath:Wo,skillDir:tn,managedOutputs:{dirs:[tn],files:[Wo,Ji]},rewriteGeneratedPath(t){return t===Ir?Wo:t===Ko?Ji:t.startsWith(`${ge}/`)?t.replace(`${ge}/`,`${tn}/`):t},paths:{rulePath(t){return Wo},commandPath(t){return `${tn}/${V(t)}/SKILL.md`},agentPath(t){return `${tn}/${K(t)}/SKILL.md`}}},_1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},R1={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ld={id:jn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:g1,capabilities:_1,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:IT,lint:{hooks:CT,permissions:kT,ignore:ET},supportsConversion:{commands:true,agents:true},project:h1,globalSupport:{capabilities:R1,detectionPaths:[Wo,Ji],layout:y1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Ir],global:[Wo]},canonicalDir:jE,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ko],global:[Ji]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:Qh,detectionPaths:[Ir,Ko]};});function OT(t){let e={name:t.name};return t.description&&(e.description=t.description.slice(0,500)),t.model?e.model=t.model:e.model="inherit",t.tools.length>0&&(e.tools=t.tools),x(e,t.body.trim()||"")}var wT=d(()=>{U();s(OT,"serializeDroid");});function AT(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Sr)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Cr,content:o}]:[]}function bT(t){return st(t,Ae)}function PT(t){return t.commands.map(e=>({path:`${Ae}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function TT(t){return t.agents.map(e=>({path:`${Un}/${e.name}.md`,content:OT(e)}))}function xT(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Bn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var DT=d(()=>{rt();Wt();Lt();wT();Xi();s(AT,"generateRules");s(bT,"generateSkills");s(PT,"generateCommands");s(TT,"generateAgents");s(xT,"generateMcp");});async function FT(t,e,r){let n=await _(join(t,e));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Ht(t,NT,l),r.push({fromTool:Sr,fromPath:e,toPath:NT,feature:"mcp"}));}var NT,vT=d(()=>{A();Vr();Xi();NT=".agentsmesh/mcp.json";s(FT,"importFactoryDroidMcp");});async function MT(t,e={}){let r=e.scope??"project",n=[],o=await W(Sr,t,r);return n.push(...await Y(Od,t,r,{normalize:o})),await et(t,r==="global"?Kn:Ae,Sr,n,o),await FT(t,r==="global"?Bs:Bn,n),n}var $T=d(()=>{gt();rt();Ot();vT();Xi();k_();s(MT,"importFromFactoryDroid");});function GT(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sr}))}var jT=d(()=>{Ct();Xi();s(GT,"lintRules");});function UT(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","factory-droid","Factory Droid hooks are configured via settings.json events (PreToolUse/PostToolUse), not standalone files; canonical hooks are not projected.")]:[]:[]}function BT(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function KT(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var WT=d(()=>{wt();s(UT,"lintHooks");s(BT,"lintPermissions");s(KT,"lintIgnore");});var S1,C1,k1,HT,Od,k_=d(()=>{DT();Xi();$T();jT();WT();Et();Lt();S1={name:Sr,primaryRootInstructionPath:Cr,generateRules:AT,generateCommands:PT,generateAgents:TT,generateSkills:bT,generateMcp:xT,importFrom:MT},C1={rootInstructionPath:Cr,skillDir:Ae,managedOutputs:{dirs:[Ae,Un],files:[Cr,Bn]},paths:{rulePath(t){return Cr},commandPath(t){return `${Ae}/${V(t)}/SKILL.md`},agentPath(t){return `${Un}/${t}.md`}}},k1={rootInstructionPath:Ho,skillDir:Kn,managedOutputs:{dirs:[Kn,Yi],files:[Ho,Bs]},rewriteGeneratedPath(t){return t===Cr?Ho:t===Bn?Bs:t.startsWith(`${Ae}/`)?t.replace(`${Ae}/`,`${Kn}/`):t.startsWith(`${Un}/`)?t.replace(`${Un}/`,`${Yi}/`):t},paths:{rulePath(t){return Ho},commandPath(t){return `${Kn}/${V(t)}/SKILL.md`},agentPath(t){return `${Yi}/${t}.md`}}},HT={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Od={id:Sr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:S1,capabilities:HT,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:GT,lint:{hooks:UT,permissions:BT,ignore:KT},supportsConversion:{commands:true},project:C1,globalSupport:{capabilities:HT,detectionPaths:[Ho,Bs,Yi],layout:k1},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Cr],global:[Ho]},canonicalDir:BE,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:qh,detectionPaths:[Cr,Bn,Un]};});var mi,Nr,po,zT,VT,Xe,wd,Pa,Ad,tp,pi,JT,YT,ui,bd,ep,rp,E_,L_,nc,O_,oc,sc,Pd,ic,Ta,np,Xt=d(()=>{mi="gemini-cli",Nr="GEMINI.md",po="AGENTS.md",zT=".gemini/rules",VT=".gemini/GEMINI.md",Xe=".gemini/commands",wd=".gemini/policies",Pa=".gemini/settings.json",Ad=".geminiignore",tp=".gemini/skills",pi=".gemini/agents",JT=".gemini/system.md",YT=`${wd}/permissions.toml`,ui=".agentsmesh/rules",bd=".agentsmesh/commands",ep=".agentsmesh/agents",rp=".agentsmesh/skills",E_=".agentsmesh/mcp.json",L_=".agentsmesh/hooks.yaml",nc=".agentsmesh/ignore",O_=".agentsmesh/permissions.yaml",oc=".gemini/GEMINI.md",sc=".gemini/AGENTS.md",Pd=".gemini/settings.json",ic=".gemini/commands",Ta=".gemini/skills",np=".gemini/agents";});function w_(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!e&&r.length===0)return [];let n=mt(e?.body.trim()??"",r),o=[{path:Nr,content:n}];return e&&o.push({path:po,content:e.body.trim()}),o}var XT=d(()=>{Wt();Xt();s(w_,"generateRules");});function ZT(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var QT=d(()=>{s(ZT,"canonicalCommandNameToGeminiTomlPath");});function E1(t){let e=t.replace(/\r\n/g,`
|
|
122
|
-
`);return
|
|
123
|
-
${
|
|
124
|
-
"""`}function
|
|
125
|
+
`),t.push({fromTool:"cursor",fromPath:join(e,o[0]),toPath:jR,feature:"ignore"});}var pS=d(()=>{qr();A();Ye();s(LD,"cursorHooksToCanonical");s(Pf,"importSettings");s(Df,"importIgnore");});async function Nf(e,t,r,n=kt){let o=join(e,n),i=await Mp(o),a={projectRoot:e,destCanonicalSkillsDir:hb,targetName:"cursor",normalize:r,results:t};for(let[p,u]of i)await Fp(p,u,a);let l=await U(o).catch(()=>[]),c=l.filter(p=>p.endsWith(".md")),m=new Set(Array.from(i.values()).flatMap(p=>l.filter(u=>u.startsWith(p))));for(let p of c){if(m.has(p))continue;let u=await k(p);if(!u)continue;let f=basename(p,".md");await Ix(f,p,u,a);}}var uS=d(()=>{A();bc();Ye();s(Nf,"importSkills");});async function CD(e){if(await j(join(e,br)))return true;let t=[join(e,pn),join(e,ql),join(e,tr),join(e,Xn),join(e,mn),join(e,kt),join(e,Ar),join(e,Or)];for(let i of t){let a=await k(i);if(a!==null&&a.trim()!=="")return true}return !!((await U(join(e,kt))).some(i=>i.endsWith(".md"))||(await U(join(e,Ar))).some(i=>i.endsWith(".md"))||(await U(join(e,Or))).some(i=>i.endsWith(".md")))}async function ED(e,t,r){let n=join(e,qn),o=false,i=join(e,br),a=await ke({srcDir:i,destDir:n,extensions:[".mdc"],fromTool:Tc,normalize:r,mapEntry:s(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let p=await k(l);if(p!==null){let{frontmatter:u}=x(p);if(u.alwaysApply===true)return null}}return Af(c,n,m,()=>{o=true;})},"mapEntry")});return t.push(...a),o}async function wD(e,t,r){let n=join(e,ql),o=await k(n);return o===null||o.trim()===""?false:xc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function bD(e,t,r){let n=join(e,pn),o=await k(n);return o===null||o.trim()===""?false:xc({projectRoot:e,results:t,sourcePath:n,content:o.trim(),normalize:r})}async function OD(e,t){let r=join(e,tr),n=await k(r);if(n===null||n.trim()==="")return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=join(e,Ql);await w(dirname(i)),await L(i,n),t.push({fromTool:Tc,fromPath:r,toPath:Ql,feature:"mcp"});}async function AD(e,t,r){let n=join(e,Ar),o=join(e,ai);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>_D(i,o,a),"mapEntry")}));}async function xD(e,t,r){let n=join(e,Or),o=join(e,ii);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tc,normalize:r,mapEntry:s(({relativePath:i,normalizeTo:a})=>RD(i,o,a),"mapEntry")}));}var Tc,TD=d(()=>{A();B();Yt();Ye();cS();lS();Tc="cursor";s(CD,"hasGlobalCursorArtifacts");s(ED,"importGlobalCursorRulesFromDir");s(wD,"importGlobalUserRules");s(bD,"importGlobalDotCursorAgents");s(OD,"importGlobalMcp");s(AD,"importGlobalAgents");s(xD,"importGlobalCommands");});async function PD(e){if(!await CD(e))return [];let t=[],r=await z(Tc,e,"global"),n=await ED(e,t,r);return n||(n=await wD(e,t,r)),n||await bD(e,t,r),await OD(e,t),await Nf(e,t,r,kt),await AD(e,t,r),await xD(e,t,r),await Pf(e,t),await Df(e,t),t}var DD=d(()=>{ge();Ye();uS();pS();TD();s(PD,"importFromCursorGlobalExports");});async function hq(e,t){let r=join(e,tr),n=await k(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let i=o.mcpServers;await Je(e,Ql,i),t.push({fromTool:"cursor",fromPath:r,toPath:Ql,feature:"mcp"});}async function ND(e,t={}){if(t.scope==="global")return PD(e);let r=[],n=await z("cursor",e);return await kD(e,r,n),r.push(...await q(vf,e,"project",{normalize:n})),await Nf(e,r,n),await hq(e,r),await Pf(e,r),await Df(e,r),r}var vD=d(()=>{ge();A();be();nn();ID();pS();uS();DD();Ye();dS();s(hq,"importMcp");s(ND,"importFromCursor");});var MD,$D,GD=d(()=>{B();fe();Sr();Ye();MD=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n)),a=_r(o.allowedTools),l=a.length>0?a:_r(o["allowed-tools"]);return {destPath:n,toPath:`${ii}/${e}`,content:await Se(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},i)}},"cursorCommandMapper"),$D=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${ai}/${e}`,content:await et(n,o,i)}},"cursorAgentMapper");});function jD(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:fb}))}var UD=d(()=>{Ie();Ye();s(jD,"lintRules");});function BD(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function KD(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers)){let o=n.env&&Object.keys(n.env).length>0,i="url"in n,a="headers"in n;(o||i||a)&&t.push(v(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return t}function WD(e){if(!e.permissions)return [];let t=e.permissions.ask?.length??0;return e.permissions.allow.length>0||e.permissions.deny.length>0||t>0?[v(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var HD=d(()=>{Oe();s(BD,"lintCommands");s(KD,"lintMcp");s(WD,"lintPermissions");});var yq,Rq,_q,Sq,vf,dS=d(()=>{yD();Ye();pt();vD();GD();UD();Ce();HD();yq={name:"cursor",primaryRootInstructionPath:os,generateRules:eS,generateCommands:tS,generateAgents:oS,generateSkills:nS,generateMcp:rS,generatePermissions:sS,generateHooks:iS,generateIgnore:aS,importFrom:ND},Rq={rootInstructionPath:os,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[si,pn]}],skillDir:".cursor/skills",managedOutputs:{dirs:[".cursor/agents",".cursor/commands",".cursor/rules",".cursor/skills"],files:[".cursor/hooks.json",".cursor/mcp.json",".cursorignore","AGENTS.md"]},paths:{rulePath(e,t){return `.cursor/rules/${e}.mdc`},commandPath(e,t){return `.cursor/commands/${e}.md`},agentPath(e,t){return `.cursor/agents/${e}.md`}}},_q={rootInstructionPath:os,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[si,pn]}],skillDir:kt,managedOutputs:{dirs:[br,Or,Ar,kt],files:[os,pn,tr,Xn,mn,ql]},rewriteGeneratedPath(e){return e===si?null:e===pn||e===os||e.startsWith(`${br}/`)||e.startsWith(`${Or}/`)||e.startsWith(`${Ar}/`)||e.startsWith(`${kt}/`)||e===tr||e===Xn||e===mn?e:e===Vd?null:e},mirrorGlobalPath(e,t){return de(e,kt,t)},paths:{rulePath(e,t){return `${br}/${e}.mdc`},commandPath(e,t){return `${Or}/${e}.md`},agentPath(e,t){return `${Ar}/${e}.md`}}},Sq={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},vf={id:"cursor",metadata:{displayName:"Cursor",category:"ide",officialUrl:"https://cursor.com",shortDescription:"AI-first code editor"},generators:yq,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"partial"},emptyImportMessage:"No Cursor config found (AGENTS.md or .cursor/rules/*.mdc; with --global: ~/.cursor/{rules/*.mdc,AGENTS.md,mcp.json,hooks.json,cursorignore,skills/,agents/,commands/} and legacy ~/.agentsmesh-exports/cursor/user-rules.md).",lintRules:jD,lint:{commands:BD,mcp:KD,permissions:WD},project:Rq,globalSupport:{capabilities:Sq,detectionPaths:[os,pn,tr,Xn,mn,kt,Ar,Or,ql],layout:_q},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Or]},canonicalDir:ii,extensions:[".md"],map:MD},agents:{feature:"agents",mode:"directory",source:{project:[Ar]},canonicalDir:ai,extensions:[".md"],map:$D}},buildImportPaths:UR,detectionPaths:[".cursor/rules",".cursor/mcp.json"],nativeInstall:{pickPaths:[{prefix:".cursor/rules",feature:"rules",strategy:{kind:"basename",suffix:".mdc"}},{prefix:".cursor/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".cursor/skills",feature:"skills",strategy:{kind:"skillDir"}}],dialectHints:[{frontmatterKey:"alwaysApply"}]},preservesManualActivation:true};});function zD(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Qn)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:xr,content:o}]:[]}function VD(e){return ie(e,It)}function JD(e){return e.commands.map(t=>({path:`${It}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function YD(e){return e.agents.map(t=>({path:`${It}/${K(t.name)}/SKILL.md`,content:De(t)}))}function XD(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:ss,content:t}]}var qD=d(()=>{se();Ue();ue();we();Zl();s(zD,"generateRules");s(VD,"generateSkills");s(JD,"generateCommands");s(YD,"generateAgents");s(XD,"generateMcp");});async function QD(e,t={}){let r=t.scope??"project",n=[],o=await z(Qn,e,r);return n.push(...await q(Ff,e,r,{normalize:o})),await oe(e,r==="global"?un:It,Qn,n,o),n}var ZD=d(()=>{ge();se();be();Zl();fS();s(QD,"importFromDeepagentsCli");});function eN(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qn}))}var tN=d(()=>{Ie();Zl();s(eN,"lintRules");});function rN(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","deepagents-cli","Deep Agents CLI hooks are global-only (~/.deepagents/hooks.json); project-level canonical hooks are not projected.")]:[]:[]}function nN(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","deepagents-cli","Deep Agents CLI permissions are managed via shell allow-lists (--shell-allow-list); canonical permissions are not projected.")]}function oN(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","deepagents-cli","Deep Agents CLI has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var sN=d(()=>{Oe();s(rN,"lintHooks");s(nN,"lintPermissions");s(oN,"lintIgnore");});var kq,Iq,Lq,Cq,Eq,Ff,fS=d(()=>{we();ue();qD();ZD();tN();sN();Ce();Zl();kq={name:Qn,primaryRootInstructionPath:xr,generateRules:zD,generateCommands:JD,generateAgents:YD,generateSkills:VD,generateMcp:XD,importFrom:QD},Iq={rootInstructionPath:xr,skillDir:It,managedOutputs:{dirs:[It],files:[xr,ss]},paths:{rulePath(e){return xr},commandPath(e){return `${It}/${J(e)}/SKILL.md`},agentPath(e){return `${It}/${K(e)}/SKILL.md`}}},Lq={rootInstructionPath:is,skillDir:un,managedOutputs:{dirs:[un],files:[is,ha]},rewriteGeneratedPath(e){return e===xr?is:e===ss?ha:e.startsWith(`${It}/`)?e.replace(`${It}/`,`${un}/`):e},paths:{rulePath(e){return is},commandPath(e){return `${un}/${J(e)}/SKILL.md`},agentPath(e){return `${un}/${K(e)}/SKILL.md`}}},Cq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Eq={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Ff={id:Qn,metadata:{displayName:"Deep Agents CLI",category:"cli",officialUrl:"https://github.com/langchain-ai/deepagents",shortDescription:"LangChain Deep Agents framework CLI"},generators:kq,capabilities:Cq,emptyImportMessage:"No Deep Agents CLI config found (.deepagents/AGENTS.md, .deepagents/skills, or .mcp.json).",lintRules:eN,lint:{hooks:rN,permissions:nN,ignore:oN},supportsConversion:{commands:true,agents:true},project:Iq,globalSupport:{capabilities:Eq,detectionPaths:[is,ha],layout:Lq},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[xr],global:[is]},canonicalDir:Rb,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[ss],global:[ha]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:BR,detectionPaths:[xr,ss]};});function iN(e){let t={name:e.name};return e.description&&(t.description=e.description.slice(0,500)),e.model?t.model=e.model:t.model="inherit",e.tools.length>0&&(t.tools=e.tools),D(t,e.body.trim()||"")}var aN=d(()=>{B();s(iN,"serializeDroid");});function lN(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Tr)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:Pr,content:o}]:[]}function cN(e){return ie(e,jt)}function mN(e){return e.commands.map(t=>({path:`${jt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function pN(e){return e.agents.map(t=>({path:`${Zn}/${t.name}.md`,content:iN(t)}))}function uN(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:eo,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var dN=d(()=>{se();Ue();we();aN();Ra();s(lN,"generateRules");s(cN,"generateSkills");s(mN,"generateCommands");s(pN,"generateAgents");s(uN,"generateMcp");});async function gN(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.mcpServers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a))!m||typeof m!="object"||Array.isArray(m)||(l[c]=m);Object.keys(l).length!==0&&(await Je(e,fN,l),r.push({fromTool:Tr,fromPath:t,toPath:fN,feature:"mcp"}));}var fN,hN=d(()=>{A();nn();Ra();fN=".agentsmesh/mcp.json";s(gN,"importFactoryDroidMcp");});async function yN(e,t={}){let r=t.scope??"project",n=[],o=await z(Tr,e,r);return n.push(...await q(Mf,e,r,{normalize:o})),await oe(e,r==="global"?to:jt,Tr,n,o),await gN(e,r==="global"?li:eo,n),n}var RN=d(()=>{ge();se();be();hN();Ra();gS();s(yN,"importFromFactoryDroid");});function _N(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Tr}))}var SN=d(()=>{Ie();Ra();s(_N,"lintRules");});function kN(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","factory-droid","Factory Droid hooks are configured via settings.json events (PreToolUse/PostToolUse), not standalone files; canonical hooks are not projected.")]:[]:[]}function IN(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","factory-droid","Factory Droid permissions are managed via CLI flags (--skip-permissions-unsafe); canonical permissions are not projected.")]}function LN(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","factory-droid","Factory Droid has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var CN=d(()=>{Oe();s(kN,"lintHooks");s(IN,"lintPermissions");s(LN,"lintIgnore");});var bq,Oq,Aq,EN,Mf,gS=d(()=>{dN();Ra();RN();SN();CN();Ce();we();bq={name:Tr,primaryRootInstructionPath:Pr,generateRules:lN,generateCommands:mN,generateAgents:pN,generateSkills:cN,generateMcp:uN,importFrom:yN},Oq={rootInstructionPath:Pr,skillDir:jt,managedOutputs:{dirs:[jt,Zn],files:[Pr,eo]},paths:{rulePath(e){return Pr},commandPath(e){return `${jt}/${J(e)}/SKILL.md`},agentPath(e){return `${Zn}/${e}.md`}}},Aq={rootInstructionPath:as,skillDir:to,managedOutputs:{dirs:[to,ya],files:[as,li]},rewriteGeneratedPath(e){return e===Pr?as:e===eo?li:e.startsWith(`${jt}/`)?e.replace(`${jt}/`,`${to}/`):e.startsWith(`${Zn}/`)?e.replace(`${Zn}/`,`${ya}/`):e},paths:{rulePath(e){return as},commandPath(e){return `${to}/${J(e)}/SKILL.md`},agentPath(e){return `${ya}/${e}.md`}}},EN={rules:"native",additionalRules:"embedded",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Mf={id:Tr,metadata:{displayName:"Factory Droid",category:"agent-platform",officialUrl:"https://www.factory.ai",shortDescription:"Factory.ai's coding droid"},generators:bq,capabilities:EN,emptyImportMessage:"No Factory Droid config found (AGENTS.md, .factory/skills, or .factory/mcp.json).",lintRules:_N,lint:{hooks:kN,permissions:IN,ignore:LN},supportsConversion:{commands:true},project:Oq,globalSupport:{capabilities:EN,detectionPaths:[as,li,ya],layout:Aq},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Pr],global:[as]},canonicalDir:Sb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:KR,detectionPaths:[Pr,eo,Zn]};});var xi,Wr,Lo,wN,bN,Co,$f,Qa,Gf,Wp,Ti,ON,AN,Pi,jf,Hp,zp,hS,yS,Pc,RS,Dc,Nc,Uf,vc,Za,Vp,nt=d(()=>{xi="gemini-cli",Wr="GEMINI.md",Lo="AGENTS.md",wN=".gemini/rules",bN=".gemini/GEMINI.md",Co=".gemini/commands",$f=".gemini/policies",Qa=".gemini/settings.json",Gf=".geminiignore",Wp=".gemini/skills",Ti=".gemini/agents",ON=".gemini/system.md",AN=`${$f}/permissions.toml`,Pi=".agentsmesh/rules",jf=".agentsmesh/commands",Hp=".agentsmesh/agents",zp=".agentsmesh/skills",hS=".agentsmesh/mcp.json",yS=".agentsmesh/hooks.yaml",Pc=".agentsmesh/ignore",RS=".agentsmesh/permissions.yaml",Dc=".gemini/GEMINI.md",Nc=".gemini/AGENTS.md",Uf=".gemini/settings.json",vc=".gemini/commands",Za=".gemini/skills",Vp=".gemini/agents";});function _S(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>!(i.root||i.targets.length>0&&!i.targets.includes("gemini-cli")));if(!t&&r.length===0)return [];let n=ae(t?.body.trim()??"",r),o=[{path:Wr,content:n}];return t&&o.push({path:Lo,content:t.body.trim()}),o}var xN=d(()=>{Ue();nt();s(_S,"generateRules");});function TN(e,t){let r=e.split(":").filter(Boolean),n=r.length>0?r.pop():e;return [t,...r,`${n}.toml`].join("/")}var PN=d(()=>{s(TN,"canonicalCommandNameToGeminiTomlPath");});function xq(e){let t=e.replace(/\r\n/g,`
|
|
126
|
+
`);return t.includes('"""')?JSON.stringify(t):`"""
|
|
127
|
+
${t}
|
|
128
|
+
"""`}function Tq(e){return [`description = ${JSON.stringify(e.description||e.name)}`,`prompt = ${xq(e.body.trim()||"")}`].join(`
|
|
125
129
|
`)+`
|
|
126
|
-
`}function
|
|
127
|
-
`)}]}var
|
|
128
|
-
`)}function
|
|
129
|
-
`)}]}var
|
|
130
|
+
`}function SS(e){return e.commands.map(t=>({path:TN(t.name,Co),content:Tq(t)}))}var DN=d(()=>{nt();PN();s(xq,"serializeTomlMultilineLiteral");s(Tq,"serializeGeminiCommand");s(SS,"generateCommands");});function kS(e){return e.agents.map(t=>{let r={name:t.name,kind:"local",description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,permissionMode:t.permissionMode||void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,t.body.trim()||"");return {path:`${Ti}/${t.name}.md`,content:n}})}var NN=d(()=>{B();nt();s(kS,"generateAgents");});function IS(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${Wp}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${Wp}/${r.name}/${a}`,content:i.content});}}return t}var vN=d(()=>{B();nt();s(IS,"generateSkills");});function Pq(e){switch(e){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function LS(e,t){let r={},n=false;if(t.has("mcp")&&e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&(r.mcpServers=e.mcp.mcpServers,n=true),t.has("agents")&&e.agents.length>0&&(r.experimental={enableAgents:true},n=true),t.has("hooks")&&e.hooks){let o=Object.entries(e.hooks).flatMap(([i,a])=>{let l=Pq(i);if(!l||!Array.isArray(a))return [];let c=a.filter(m=>typeof m=="object"&&m!==null&&Go(m)).map((m,p)=>({matcher:m.matcher,hooks:[{name:`${l}-${p+1}`,type:"command",command:Ze(m),timeout:m.timeout}]}));return c.length>0?[[l,c]]:[]});o.length>0&&(r.hooks=Object.fromEntries(o),n=true);}return n&&(r.context={fileName:[Wr,Lo]}),Object.keys(r).length===0?[]:[{path:Qa,content:JSON.stringify(r,null,2)}]}var CS=d(()=>{qr();nt();s(Pq,"mapHookEvent");s(LS,"generateGeminiSettingsFiles");});function ES(e){return !e.ignore||e.ignore.length===0?[]:[{path:Gf,content:e.ignore.join(`
|
|
131
|
+
`)}]}var FN=d(()=>{nt();s(ES,"generateIgnore");});var MN=d(()=>{xN();DN();NN();vN();CS();FN();});var $N=d(()=>{MN();});function el(e){return JSON.stringify(e)}function Dq(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Nq(e){let t=e.match(/^Bash\((.*)\)$/);if(t&&typeof t[1]=="string")return {kind:"bash",prefix:t[1]};let r=e.match(/^Read\((.*)\)$/);return r&&typeof r[1]=="string"?{kind:"read",path:r[1]}:e==="Read"||e==="Grep"||e==="LS"||e==="WebFetch"?{kind:"tool",tool:e}:{kind:"unknown",raw:e}}function Bf(e,t,r){return ["[[rule]]",`decision = ${el(e)}`,`priority = ${t}`,...r,""].join(`
|
|
132
|
+
`)}function GN(e,t,r){let n=Nq(e),o={Read:"read_file",Grep:"grep_search",LS:"list_directory",WebFetch:"web_fetch",Bash:"run_shell_command"};if(n.kind==="tool"){let i=o[n.tool]??n.tool;return Bf(t,r,[`toolName = ${el(i)}`])}if(n.kind==="bash"){let i=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return Bf(t,r,[`toolName = ${el(o.Bash)}`,`commandPrefix = ${el(i)}`])}return n.kind==="read"?Bf(t,r,[`toolName = ${el(o.Read)}`,`argsPattern = ${el(Dq(n.path))}`]):Bf(t,r,[`toolName = ${el(n.raw)}`])}function jN(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions;if(t.length+r.length===0)return [];let o=[];return t.forEach((i,a)=>{let l=GN(i,"allow",100+a);l&&o.push(l);}),r.forEach((i,a)=>{let l=GN(i,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:AN,content:o.join(`
|
|
133
|
+
`)}]}var UN=d(()=>{nt();s(el,"escapeTomlBasicString");s(Dq,"escapeRegexLiteral");s(Nq,"parsePermissionExpr");s(Bf,"ruleForDecision");s(GN,"permissionExprToGeminiRule");s(jN,"generateGeminiPermissionsPolicies");});function wS(e){switch(e){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}function Kf(e){let t=e.indexOf("---"),r=e.indexOf("+++");if(t===0&&(r===-1||t<=r))return x(e);if(r===0){let n=e.indexOf("+++",3);if(n!==-1)try{let o=e.slice(3,n).trim(),i=e.slice(n+3).trim();return {frontmatter:o===""?{}:parse$1(o)??{},body:i}}catch{return {frontmatter:{},body:e.trim()}}}return {frontmatter:{},body:e.trim()}}var bS=d(()=>{B();s(wS,"mapGeminiHookEvent");s(Kf,"parseFlexibleFrontmatter");});async function OS(e,t){let r=join(e,Qa),n=await k(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{}if(!o)return;let i=o.mcpServers;if(i!==void 0&&typeof i=="object"&&i!==null&&Object.keys(i).length>0){let c=join(e,hS);await w(join(e,".agentsmesh")),await L(c,JSON.stringify({mcpServers:i},null,2)),t.push({fromTool:"gemini-cli",fromPath:r,toPath:hS,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(e,Pc);await w(join(e,".agentsmesh")),await L(c,a.join(`
|
|
130
134
|
`)+`
|
|
131
|
-
`),
|
|
135
|
+
`),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Pc,feature:"ignore"});}let l=o.hooks;if(l!==void 0&&typeof l=="object"&&l!==null){let c=Object.entries(l).flatMap(([m,p])=>{let u=wS(m);if(!u||!Array.isArray(p))return [];let f=p.filter(g=>g!==null&&typeof g=="object"&&typeof g.matcher=="string"&&Array.isArray(g.hooks)).flatMap(g=>g.hooks.filter(h=>h!==null&&typeof h=="object"&&Go(h)).map(h=>({matcher:g.matcher,command:Ze(h),type:"command",timeout:typeof h.timeout=="number"?h.timeout:void 0})));if(f.length===0){let g=p.filter(h=>h!==null&&typeof h=="object"&&typeof h.matcher=="string"&&Go(h)).map(h=>({matcher:h.matcher,command:Ze(h),type:"command"}));return g.length>0?[[u,g]]:[]}return f.length>0?[[u,f]]:[]});if(c.length>0){let m=Object.fromEntries(c),p=join(e,yS);await w(join(e,".agentsmesh")),await L(p,stringify(m,{lineWidth:0}).trimEnd()),t.push({fromTool:"gemini-cli",fromPath:r,toPath:yS,feature:"hooks"});}}}var BN=d(()=>{qr();A();nt();bS();s(OS,"importGeminiSettings");});async function KN(e,t){let r=join(e,Gf),n=await k(r);if(n!==null&&n.trim()){let o=n.split(/\r?\n/).map(i=>i.trim()).filter(i=>i&&!i.startsWith("#"));if(o.length>0){await w(join(e,".agentsmesh"));let i=join(e,Pc);await L(i,o.join(`
|
|
132
136
|
`)+`
|
|
133
|
-
`),
|
|
134
|
-
`),
|
|
135
|
-
`)}]}var
|
|
136
|
-
`)}]}function
|
|
137
|
-
`)}]}function
|
|
137
|
+
`),t.push({fromTool:"gemini-cli",fromPath:r,toPath:Pc,feature:"ignore"});}}}var xS=d(()=>{A();nt();bS();BN();s(KN,"importGeminiIgnore");});function Gq(e){return e.replace(/\\(.)/g,"$1")}function jq(e){switch(e){case "read_file":return "Read";case "grep_search":return "Grep";case "list_directory":return "LS";case "web_fetch":return "WebFetch";case "run_shell_command":return "Bash";default:return null}}function Uq(e){return `Bash(${e}:*)`}function Bq(e){return `Read(${Gq(e)})`}async function WN(e){let t=[],r=join(e,$f),n;try{n=await U(r);}catch{return t}let o=n.filter(u=>u.endsWith(".toml"));if(o.length===0)return t;let i=[],a=[],l=new Set,c=new Set;for(let u of o){let f=await k(u);if(!f)continue;let g;try{g=parse$1(f);}catch{continue}let h=g&&typeof g=="object"&&"rule"in g?g.rule:void 0;if(Array.isArray(h))for(let R of h){if(!R||typeof R!="object")continue;let _=R,S=typeof _.toolName=="string"?_.toolName:null,I=typeof _.decision=="string"?_.decision:null;if(!S||!I)continue;let b=jq(S);if(!b)continue;let P=null;b==="Bash"?typeof _.commandPrefix=="string"&&_.commandPrefix.trim()&&(P=Uq(_.commandPrefix.trim())):b==="Read"?typeof _.argsPattern=="string"&&_.argsPattern.trim()?P=Bq(_.argsPattern.trim()):P="Read":P=b,P&&(I==="allow"?l.has(P)||(l.add(P),i.push(P)):I==="deny"&&(c.has(P)||(c.add(P),a.push(P))));}}if(i.length===0&&a.length===0)return t;await w(join(e,".agentsmesh"));let m=join(e,RS),p=stringify({allow:i,deny:a});return await L(m,p.trimEnd()+`
|
|
138
|
+
`),t.push({fromTool:xi,fromPath:join(e,$f),toPath:RS,feature:"permissions"}),t}var HN=d(()=>{A();nt();s(Gq,"unescapeRegexLiteral");s(jq,"toolNameToPermissionBase");s(Uq,"commandPrefixToBashExpr");s(Bq,"argsPatternToReadExpr");s(WN,"importGeminiPolicies");});function TS(e,t){let r=new Set([t,t.replace(/\\/g,"/"),t.replace(/\//g,"\\")]);try{r.add(realpathSync(t)),r.add(realpathSync.native(t));}catch{}return Array.from(r).reduce((o,i)=>{let a=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return o.replace(new RegExp(`${a}[/\\\\]\\.agentsmesh[/\\\\]`,"g"),".agentsmesh/").replaceAll(`${i}/.agentsmesh`,".agentsmesh").replaceAll(`${i}\\.agentsmesh`,".agentsmesh")},e).replace(/(?:[A-Za-z]:)?[^\s"'`()<>]+[/\\]\.agentsmesh[/\\]/g,".agentsmesh/")}var VN=d(()=>{s(TS,"stripProjectRootCanonicalPrefix");});async function YN(e,t,r){let n=join(e,Wp),i=(await U(n)).filter(l=>basename(l)==="SKILL.md");for(let l of i){let c=await k(l);if(!c)continue;let m=basename(l.slice(0,-9)),p=x(c),u=jl(p.frontmatter,m);if(u){let I=join(e,Hp);await w(I);let b=join(I,`${u.name}.md`);await L(b,Ys(u,r(p.body,l,b))),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Hp}/${u.name}.md`,feature:"agents"});continue}let f=join(e,zp,m,"SKILL.md"),g=r(c,l,f),h=join(e,zp,m);await w(h);let{frontmatter:R,body:_}=x(g);await L(f,await Mn(f,{...R,name:m},_)),t.push({fromTool:"gemini-cli",fromPath:l,toPath:`${zp}/${m}/SKILL.md`,feature:"skills"});let S=await U(dirname(l));for(let I of S){if(I===l)continue;let b=await k(I);if(b===null)continue;let P=relative(dirname(l),I).replace(/\\/g,"/"),T=join(h,P);await w(dirname(T)),await L(T,r(b,I,T)),t.push({fromTool:"gemini-cli",fromPath:I,toPath:`${zp}/${m}/${P}`,feature:"skills"});}}let a=join(e,Ti);try{let c=(await U(a)).filter(m=>m.endsWith(".md"));for(let m of c){let p=await k(m);if(!p)continue;let{frontmatter:u,body:f}=x(p),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),R=join(e,Hp);await w(R);let _=join(R,h),S=r(f,m,_);await L(_,await et(_,{...u,name:typeof u.name=="string"?u.name:basename(h,".md"),maxTurns:u.maxTurns??u["max-turns"]??u.max_turns,permissionMode:u.permissionMode??u["permission-mode"]??u.permission_mode,disallowedTools:u.disallowedTools??u["disallowed-tools"]??u.disallowed_tools},S)),t.push({fromTool:"gemini-cli",fromPath:m,toPath:`${Hp}/${h}`,feature:"agents"});}}catch{}}var XN=d(()=>{A();B();fe();ue();nt();s(YN,"importGeminiSkillsAndAgents");});async function Kq(e,t,r){let n=await z("codex-cli",e),o=join(e,Pi),i=join(e,Lo),a=join(e,bN),l=[i,a,join(e,Wr),join(e,ON)],c=null,m=l[l.length-1];for(let P of l){let T=await k(P);if(T!==null){c=T,m=P;break}}if(c===null)return;await w(o);let p=join(o,"_root.md"),u=m===i||m===a?n(c,m,p):c,f=await Ro({content:u,projectRoot:e,rulesDir:Pi,sourcePath:m,fromTool:xi,normalize:r});t.push(...f.results);let g=r(f.rootContent,m,p),h=TS(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),e),{frontmatter:R,body:_}=x(h),I=R.root===true?R:{...R,root:true},b=TS(await V(p,I,_),e);await L(p,b),t.push({fromTool:xi,fromPath:m,toPath:`${Pi}/_root.md`,feature:"rules"});}async function qN(e){let t=[],r=await z(xi,e);return await Kq(e,t,r),t.push(...await q(Hf,e,"project",{normalize:r})),await YN(e,t,r),await OS(e,t),await KN(e,t),t.push(...await WN(e)),t}var QN=d(()=>{ge();A();B();fe();Lc();be();nt();NS();xS();HN();VN();XN();s(Kq,"importRootRule");s(qN,"importFromGemini");});function Hq(e){let t=e.replace(/^\/+|\/+$/g,"");return t===".gemini/commands"||t.startsWith(".gemini/commands/")}async function zq(e,t){let r=join(e,...Co.split("/")),n=join(e,...t.split("/")),o=await U(n),i=[];for(let a of o){if(!/\.(toml|md)$/i.test(a))continue;let l=relative(r,a).replace(/\\/g,"/");if(l.startsWith("..")||l==="")continue;let m=l.replace(/\.(toml|md)$/i,"").split("/").filter(Boolean).join(":");m&&i.push(m);}return [...new Set(i)].sort()}async function ev(e,t){if(!Hq(t))return {};let r=await zq(e,t);return r.length?{commands:r}:{}}var tv=d(()=>{A();nt();s(Hq,"isUnderGeminiCommands");s(zq,"inferGeminiCommandNamesFromFiles");s(ev,"inferGeminiPick");});async function nv(e,t,r){let n=e.replace(/\\/g,"/"),o=join(t,n),{frontmatter:i,body:a}=Kf(r(o)),l=Wo(i.globs),c={root:false,description:typeof i.description=="string"?i.description:void 0,globs:l.length>0?l:void 0};return Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m];}),{destPath:o,toPath:`${Pi}/${n}`,feature:"rules",content:await V(o,c,a)}}async function ov(e,t,r){let n=e.replace(/\.(toml|md)$/i,".md").replace(/\\/g,"/"),o=join(t,n),i=r(o),{frontmatter:a,body:l}=e.endsWith(".toml")?Jq(i):Kf(i),c=_r(a.allowedTools),m=_r(a["allowed-tools"]),p=c.length>0?c:m;return {destPath:o,toPath:`${jf}/${n}`,feature:"commands",content:await Se(o,{description:typeof a.description=="string"?a.description:"",hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:p,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"allowedTools")||Object.prototype.hasOwnProperty.call(a,"allowed-tools")},l)}}function Jq(e){try{let t=parse$1(e);return {frontmatter:t,body:typeof t.prompt=="string"?t.prompt:""}}catch{return {frontmatter:{},body:e.trim()}}}var sv=d(()=>{fe();Sr();xS();nt();s(nv,"mapGeminiRuleFile");s(ov,"mapGeminiCommandFile");s(Jq,"parseTomlCommand");});var iv,av,lv=d(()=>{sv();iv=s(({relativePath:e,destDir:t,normalizeTo:r})=>nv(e,t,r),"geminiRuleMapper"),av=s(({relativePath:e,destDir:t,normalizeTo:r})=>ov(e,t,r),"geminiCommandMapper");});function cv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(i=>({...i,target:xi}))}var mv=d(()=>{Ie();nt();s(cv,"lintRules");});function pv(e){return e.commands.filter(t=>t.allowedTools.length>0).map(t=>v(t.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function uv(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","Notification"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Zs(n,"gemini-cli",t))}var dv=d(()=>{Oe();s(pv,"lintCommands");s(uv,"lintHooks");});function fv(e,t,r){return t==="project"&&Di("gemini-cli",t)?.ignore.flavor!=="settings-embedded"?[]:LS(e,r)}var gv=d(()=>{xe();CS();s(fv,"emitScopedGeminiSettings");});var Yq,Xq,qq,Qq,Hf,NS=d(()=>{$N();ea();UN();nt();QN();tv();lv();mv();Ce();Ml();ue();dv();gv();pt();bf();Yq={name:"gemini-cli",primaryRootInstructionPath:Wr,generateRules:_S,generateCommands:SS,generateAgents:kS,generateSkills:IS,generateIgnore:ES,generatePermissions:jN,importFrom:qN},Xq={rootInstructionPath:Wr,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Lo]}],extraRuleOutputPaths(){return [Lo]},skillDir:".gemini/skills",managedOutputs:{dirs:[".gemini/agents",".gemini/commands",".gemini/skills",".agents/skills"],files:["AGENTS.md","GEMINI.md",".gemini/settings.json",".gemini/policies/permissions.toml",".geminiignore"]},mirrorGlobalPath(e,t){return de(e,".gemini/skills",t)},paths:{rulePath(e,t){return Wr},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${Co}/${r.join("/")}/${n}.toml`}return `${Co}/${e}.toml`},agentPath(e,t){return gr(t,"gemini-cli")?`.gemini/skills/${K(e)}/SKILL.md`:`${Ti}/${e}.md`}}},qq={rootInstructionPath:Dc,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Nc]}],extraRuleOutputPaths(){return [Nc]},skillDir:Za,managedOutputs:{dirs:[vc,Za,Vp],files:[Dc,Nc,Uf]},rewriteGeneratedPath(e){return e===Wr?Dc:e===Lo?Nc:e===Qa?Uf:e.startsWith(`${Co}/`)?e.replace(`${Co}/`,`${vc}/`):e.startsWith(".gemini/skills/")?e.replace(".gemini/skills/",`${Za}/`):e.startsWith(`${Ti}/`)?e.replace(`${Ti}/`,`${Vp}/`):e.startsWith(".gemini/policies/")||e===".geminiignore"?null:e},mirrorGlobalPath(e,t){return de(e,Za,t)},paths:{rulePath(e,t){return Dc},commandPath(e,t){if(e.includes(":")){let r=e.split(":").filter(Boolean),n=r.pop()??e;return `${vc}/${r.join("/")}/${n}.toml`}return `${vc}/${e}.toml`},agentPath(e,t){return gr(t,"gemini-cli")?`${Za}/${K(e)}/SKILL.md`:`${Vp}/${e}.md`}}},Qq={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},Hf={id:"gemini-cli",metadata:{displayName:"Gemini CLI",category:"cli",officialUrl:"https://github.com/google-gemini/gemini-cli",shortDescription:"Google's terminal Gemini agent"},generators:Yq,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Zr("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:cv,lint:{commands:pv,hooks:uv},emitScopedSettings:fv,mergeGeneratedOutputContent(e,t,r,n){let o=t?.content??e;return o!==null&&n===Qa?sD(o,r):null},project:Xq,globalSupport:{capabilities:Qq,detectionPaths:[Dc,Nc,Uf,vc,Za,Vp],layout:qq},importer:{rules:{feature:"rules",mode:"directory",source:{project:[wN]},canonicalDir:Pi,extensions:[".md"],map:iv},commands:{feature:"commands",mode:"directory",source:{project:[Co]},canonicalDir:jf,extensions:[".md",".toml"],map:av}},buildImportPaths:WR,detectionPaths:["GEMINI.md",".gemini"],nativeInstall:{inferPick:ev},conversionDefaults:{agentsToSkills:false}};});function hv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ro)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:Dr,content:o}]:[]}function yv(e){return ie(e,Ut)}function Rv(e){return e.commands.map(t=>({path:`${Ut}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function _v(e){return e.agents.map(t=>({path:`${Ut}/${K(t.name)}/SKILL.md`,content:De(t)}))}function Sv(e){return e.ignore.length===0?[]:[{path:ls,content:e.ignore.join(`
|
|
139
|
+
`)}]}var kv=d(()=>{se();Ue();ue();we();ec();s(hv,"generateRules");s(yv,"generateSkills");s(Rv,"generateCommands");s(_v,"generateAgents");s(Sv,"generateIgnore");});async function Iv(e,t={}){let r=t.scope??"project",n=[],o=await z(ro,e,r);return n.push(...await q(zf,e,r,{normalize:o})),await oe(e,r==="global"?Nr:Ut,ro,n,o),n}var Lv=d(()=>{ge();se();be();ec();vS();s(Iv,"importFromGoose");});function Cv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ro}))}var Ev=d(()=>{Ie();ec();s(Cv,"lintRules");});function wv(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","goose","Goose has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function bv(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","goose","Goose permissions are managed at runtime via permission.yaml in ~/.config/goose/; canonical permissions are not projected.")]}function Ov(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","goose","Goose MCP extensions are configured globally in ~/.config/goose/config.yaml; project-level MCP is not projected.")]}var Av=d(()=>{Oe();s(wv,"lintHooks");s(bv,"lintPermissions");s(Ov,"lintMcp");});var Zq,eQ,tQ,xv,zf,vS=d(()=>{we();ue();kv();pt();Lv();Ev();Av();Ce();ec();Zq={name:ro,primaryRootInstructionPath:Dr,generateRules:hv,generateCommands:Rv,generateAgents:_v,generateSkills:yv,generateIgnore:Sv,importFrom:Iv},eQ={rootInstructionPath:Dr,skillDir:Ut,managedOutputs:{dirs:[Ut],files:[Dr,ls]},paths:{rulePath(e){return Dr},commandPath(e){return `${Ut}/${J(e)}/SKILL.md`},agentPath(e){return `${Ut}/${K(e)}/SKILL.md`}}},tQ={rootInstructionPath:cs,skillDir:Nr,managedOutputs:{dirs:[Nr],files:[cs,_a]},rewriteGeneratedPath(e){return e===Dr?cs:e===ls?_a:e},mirrorGlobalPath(e,t){return de(e,Nr,t)},paths:{rulePath(e){return cs},commandPath(e){return `${Nr}/${J(e)}/SKILL.md`},agentPath(e){return `${Nr}/${K(e)}/SKILL.md`}}},xv={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"native",permissions:"none"},zf={id:ro,metadata:{displayName:"Goose",category:"cli",officialUrl:"https://block.github.io/goose",shortDescription:"Block's open-source AI agent"},generators:Zq,capabilities:xv,emptyImportMessage:"No Goose config found (.goosehints, .agents/skills, or .gooseignore).",lintRules:Cv,lint:{hooks:wv,permissions:bv,mcp:Ov},supportsConversion:{commands:true,agents:true},project:eQ,globalSupport:{capabilities:xv,detectionPaths:[cs,_a,Nr],layout:tQ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Dr],global:[cs]},canonicalDir:Cb,canonicalRootFilename:"_root.md",markAsRoot:true},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ls],global:[_a]},canonicalDir:".agentsmesh",canonicalFilename:Eb}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:HR,detectionPaths:[Dr,ls],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});function Tv(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ms)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:dn,content:o}]:[]}var Pv=d(()=>{Ue();tc();s(Tv,"generateRules");});async function Dv(e,t={}){let r=t.scope??"project",n=await z(ms,e,r);return q(Vf,e,r,{normalize:n})}var Nv=d(()=>{ge();be();tc();FS();s(Dv,"importFromJules");});function vv(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ms}))}var Fv=d(()=>{Ie();tc();s(vv,"lintRules");});function Mv(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","jules","Jules has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function $v(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","jules","Jules has no permissions system; canonical permissions are not projected.")]}function Gv(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","jules","Jules is a cloud-based agent with no dedicated ignore file; canonical ignore patterns are not projected.")]}function jv(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","jules","Jules is a cloud-based agent with no MCP support; canonical MCP servers are not projected.")]}function Uv(e){return e.commands.length===0?[]:[v(".agentsmesh/commands","jules","Jules has no command system; canonical commands are not projected.")]}var Bv=d(()=>{Oe();s(Mv,"lintHooks");s($v,"lintPermissions");s(Gv,"lintIgnore");s(jv,"lintMcp");s(Uv,"lintCommands");});var rQ,nQ,oQ,Vf,FS=d(()=>{Pv();Nv();Fv();Bv();Ce();tc();rQ={name:ms,primaryRootInstructionPath:dn,generateRules:Tv,importFrom:Dv},nQ={rootInstructionPath:dn,managedOutputs:{dirs:[],files:[dn]},paths:{rulePath(e){return dn},commandPath(){return null},agentPath(){return null}}},oQ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Vf={id:ms,metadata:{displayName:"Jules",category:"agent-platform",officialUrl:"https://jules.google",shortDescription:"Google's autonomous coding agent"},generators:rQ,capabilities:oQ,emptyImportMessage:"No Jules config found (AGENTS.md).",lintRules:vv,lint:{hooks:Mv,permissions:$v,ignore:Gv,mcp:jv,commands:Uv},project:nQ,importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[dn]},canonicalDir:bb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:zR,detectionPaths:[dn]};});function Kv(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:no,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");t.push({path:`${gp}/${o}.md`,content:n.body.trim()||""});}return t}function iQ(e){let t={};return e.description&&(t.description=e.description),e.type!=="stdio"&&(t.type=e.type),ff(e)?(t.command=e.command,t.args=e.args):(t.url=e.url,Object.keys(e.headers).length>0&&(t.headers=e.headers)),Object.keys(e.env).length>0&&(t.env=e.env),t}function Wv(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=Object.fromEntries(Object.entries(e.mcp.mcpServers).map(([r,n])=>[r,iQ(n)]));return [{path:fp,content:JSON.stringify({mcpServers:t},null,2)}]}function Hv(e){return e.commands.map(t=>{let r={description:t.description||void 0};return r.description===void 0&&delete r.description,{path:`${rc}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function zv(e){return e.agents.map(t=>{let r={name:t.name,description:t.description||void 0,tools:t.tools.length>0?t.tools:void 0,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,skills:t.skills.length>0?t.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${nc}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function Vv(e){return e.ignore.length===0?[]:[{path:hp,content:e.ignore.join(`
|
|
140
|
+
`)}]}function Jv(e){return ie(e,ka)}function Yv(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("junie"));return ae(t?.body.trim()??"",r)}var Xv=d(()=>{gf();se();Ue();B();oc();s(Kv,"generateRules");s(iQ,"toJunieMcpServer");s(Wv,"generateMcp");s(Hv,"generateCommands");s(zv,"generateAgents");s(Vv,"generateIgnore");s(Jv,"generateSkills");s(Yv,"renderJunieGlobalInstructions");});async function aQ(e,t,r){let n=[no,Jd,Ab,xb],o=join(e,VR);for(let i of n){let a=join(e,i),l=await k(a);if(l===null)continue;let c=await Ro({content:l,projectRoot:e,rulesDir:Xd,sourcePath:a,fromTool:Sa,normalize:r});t.push(...c.results);let{frontmatter:m,body:p}=x(r(c.rootContent,a,o)),u=await V(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},p);await L(o,u),t.push({fromTool:Sa,fromPath:a,toPath:VR,feature:"rules"});return}}async function Qv(e){let t=[],r=await z(Sa,e);return await aQ(e,t,r),t.push(...await q(Jf,e,"project",{normalize:r})),await oe(e,ka,Sa,t,r),t}var Zv=d(()=>{ge();A();B();se();Lc();fe();be();oc();MS();s(aQ,"importRootRule");s(Qv,"importFromJunie");});function eF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Sa}))}var tF=d(()=>{Ie();oc();s(eF,"lintRules");});function rF(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=[];for(let[r,n]of Object.entries(e.mcp.mcpServers))Zx(n)&&t.push(v(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return t}var nF=d(()=>{gf();Oe();s(rF,"lintMcp");});var lQ,cQ,mQ,pQ,Jf,MS=d(()=>{Xv();oc();pt();Zv();tF();nF();Ce();lQ={name:"junie",primaryRootInstructionPath:no,generateRules:Kv,generateCommands:Hv,generateAgents:zv,generateSkills:Jv,generateMcp:Wv,generateIgnore:Vv,importFrom:Qv},cQ={rootInstructionPath:no,skillDir:".junie/skills",managedOutputs:{dirs:[".junie/agents",".junie/commands",".junie/rules",".junie/skills"],files:[".aiignore",".junie/AGENTS.md",".junie/mcp/mcp.json"]},paths:{rulePath(e,t){return `${gp}/${e}.md`},commandPath(e,t){return `${rc}/${e}.md`},agentPath(e,t){return `${nc}/${e}.md`}}},mQ={rootInstructionPath:Ia,renderPrimaryRootInstruction:Yv,skillDir:Rp,managedOutputs:{dirs:[Rp,_p,Sp,Tb],files:[Ia,Yd]},rewriteGeneratedPath(e){return e===no?Ia:e.startsWith(`${gp}/`)?Ia:e.startsWith(`${ka}/`)?e.replace(`${ka}/`,`${Rp}/`):e.startsWith(`${rc}/`)?e.replace(`${rc}/`,`${Sp}/`):e.startsWith(`${nc}/`)?e.replace(`${nc}/`,`${_p}/`):e===fp?Yd:e===hp?null:e},mirrorGlobalPath(e,t){return de(e,".junie/skills",t)},paths:{rulePath(e,t){return Ia},commandPath(e,t){return `${Sp}/${e}.md`},agentPath(e,t){return `${_p}/${e}.md`}}},pQ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Jf={id:"junie",metadata:{displayName:"Junie",category:"ide",officialUrl:"https://www.jetbrains.com/junie",shortDescription:"JetBrains AI coding agent"},generators:lQ,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Junie config found (.junie/guidelines.md, .junie/AGENTS.md, .junie/skills, .junie/mcp/mcp.json, or .aiignore).",lintRules:eF,lint:{mcp:rF},project:cQ,globalSupport:{capabilities:pQ,detectionPaths:[Ia,Rp,_p,Sp,Yd],layout:mQ},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:Xd,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:Pb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:Db,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[fp]},canonicalDir:".agentsmesh",canonicalFilename:Nb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[hp]},canonicalDir:".agentsmesh",canonicalFilename:vb}},buildImportPaths:JR,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"],nativeInstall:{pickPaths:[{prefix:".junie/commands",feature:"commands",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/agents",feature:"agents",strategy:{kind:"basename",suffix:".md"}},{prefix:".junie/skills",feature:"skills",strategy:{kind:"skillDir"}}]}};});function sF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:oo,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Tt))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${ps}/${o}.md`,content:a});}return t}function iF(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${us}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function aF(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${ds}/${r}.md`,content:D(n,t.body.trim()||"")}})}function lF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:mi,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function cF(e){return e.ignore.length===0?[]:[{path:sc,content:e.ignore.join(`
|
|
141
|
+
`)}]}function mF(e){return ie(e,fn)}var pF=d(()=>{se();B();Aa();s(sF,"generateRules");s(iF,"generateCommands");s(aF,"generateAgents");s(lF,"generateMcp");s(cF,"generateIgnore");s(mF,"generateSkills");});var Yf,Xf,uF,GS=d(()=>{B();fe();Aa();Yf=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${di}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"kiloNonRootRuleMapper"),Xf=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${cc}/${e}`,content:await Se(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"kiloCommandMapper"),uF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Oa}/${e}`,content:await et(n,o,i)}},"kiloAgentMapper");});async function dF(e){try{return await stat(e),!0}catch{return false}}async function fQ(e,t,r){let n=join(e,La);if(!await dF(n))return;let o=join(e,di),i=join(n,US),l=t.some(c=>c.toPath===jS)?null:await k(i);if(l!==null){let c=join(e,jS),m=r(l,i,c),{body:p}=x(m),u=await V(c,{root:true},p);await L(c,u),t.push({feature:"rules",fromTool:Tt,fromPath:`${La}/${US}`,toPath:jS});}t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tt,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await Yf({absolutePath:c,relativePath:m,content:p,destDir:o,normalizeTo:u});return m===US||!f?null:{...f,feature:"rules"}},"mapEntry")}));}async function gQ(e,t,r){let n=join(e,ic);if(!await dF(n))return;let o=join(e,cc);t.push(...await ke({srcDir:n,destDir:o,extensions:[".md"],fromTool:Tt,normalize:r,mapEntry:s(async({srcPath:i,relativePath:a,content:l,normalizeTo:c})=>{let m=await Xf({absolutePath:i,relativePath:a,content:l,destDir:o,normalizeTo:c});return m?{...m,feature:"commands"}:null},"mapEntry")}));}async function hQ(e,t,r){let n=join(e,Qd),o=await k(n);if(o===null)return;let i;try{i=parse(o);}catch{return}if(!(!i||!Array.isArray(i.customModes)))for(let a of i.customModes){if(!a||typeof a!="object")continue;let l=a;if(typeof l.slug!="string"||l.slug.length===0)continue;let c=l.slug,m=join(e,Oa,`${c}.md`),p=typeof l.description=="string"?l.description:"",u=typeof l.roleDefinition=="string"?l.roleDefinition.trim():"",f=typeof l.whenToUse=="string"?l.whenToUse.trim():"",g=f?`${u}
|
|
138
142
|
|
|
139
143
|
## When to use
|
|
140
144
|
|
|
141
|
-
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let R=await
|
|
142
|
-
`)}]}var ZD=d(()=>{rt();Lt();U();Z_();Ml();s(yJ,"steeringFrontmatter");s(WD,"generateRules");s(HD,"generateCommands");s(zD,"generateSkills");s(VD,"generateMcp");s(JD,"generateHooks");s(YD,"generateAgents");s(XD,"generateIgnore");});function RJ(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:Po(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function IJ(t,e,r,n){let o=n==="global"?[an,nn]:[nn,an];for(let i of o){let a=join(t,i),l=await _(a);if(l===null)continue;let c=join(t,iy),{frontmatter:m,body:p}=P(r(l,a,c));await S(c,await z(c,{...m,root:true},p)),e.push({fromTool:We,fromPath:a,toPath:iy,feature:"rules"});return}}async function SJ(t,e,r){let n=join(t,ay);e.push(...await St({srcDir:join(t,on),destDir:n,extensions:[".md"],fromTool:We,normalize:r,mapEntry:s(async({relativePath:o,normalizeTo:i})=>{if(basename(o)==="AGENTS.md")return null;let a=join(n,o),{frontmatter:l,body:c}=P(i(a));return {destPath:a,toPath:`${ay}/${o}`,feature:"rules",content:await z(a,RJ(l),c)}},"mapEntry")}));}async function CJ(t,e){let r={};for(let o of await G(join(t,Js))){if(!o.endsWith(".kiro.hook"))continue;let i=BD(await _(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(t,ly);await O(join(t,".agentsmesh")),await S(n,KD(r)),e.push({fromTool:We,fromPath:join(t,Js),toPath:ly,feature:"hooks"});}async function QD(t,e={}){let r=e.scope??"project",n=[],o=await W(We,t,r);return await IJ(t,n,o,r),await SJ(t,n,o),n.push(...await Y(Ud,t,r,{normalize:o})),await et(t,Ce,We,n,o),r==="project"&&await CJ(t,n),n}var qD=d(()=>{gt();rt();Me();Ot();ft();cr();A();U();Z_();Ml();Q_();s(RJ,"canonicalRuleMeta");s(IJ,"importRoot");s(SJ,"importNonRootRules");s(CJ,"importHooks");s(QD,"importFromKiro");});function tN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:We}))}var eN=d(()=>{Ct();Ml();s(tN,"lintRules");});function rN(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(e);return Object.keys(t.hooks).filter(n=>!r.has(n)).map(n=>Ds(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var nN=d(()=>{wt();s(rN,"lintHooks");});var kJ,EJ,LJ,OJ,Ud,Q_=d(()=>{Lt();ZD();oe();qD();eN();nN();Et();Ml();kJ={name:We,primaryRootInstructionPath:nn,generateRules:WD,generateCommands:HD,generateAgents:YD,generateSkills:zD,generateMcp:VD,generateHooks:JD,generateIgnore:XD,importFrom:QD},EJ={rootInstructionPath:nn,skillDir:Ce,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${on}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${sn}/${t}.md`}}},LJ={rootInstructionPath:an,skillDir:Ys,managedOutputs:{dirs:[la,Ys,ca,cL],files:[an,Fm,vm]},rewriteGeneratedPath(t){return t===nn?an:t.startsWith(`${on}/`)?t.replace(`${on}/`,`${la}/`):t.startsWith(`${Ce}/`)?t.replace(`${Ce}/`,`${Ys}/`):t.startsWith(`${sn}/`)?t.replace(`${sn}/`,`${ca}/`):t===Fl?Fm:t===vl?vm:t.startsWith(`${Js}/`)?null:t},mirrorGlobalPath(t,e){return dt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${la}/${t}.md`},commandPath(t){return `${Ce}/${V(t)}/SKILL.md`},agentPath(t,e){return `${ca}/${t}.md`}}},OJ={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Ud={id:We,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:kJ,capabilities:{rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Kiro config found (AGENTS.md, .kiro/steering, .kiro/skills, .kiro/agents, .kiro/hooks, .kiro/settings/mcp.json, or .kiroignore).",supportsConversion:{commands:true},lintRules:tN,lint:{hooks:rN},project:EJ,globalSupport:{capabilities:OJ,detectionPaths:[la,an,Ys,ca,Fm,vm],layout:LJ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[sn],global:[sn]},canonicalDir:mL,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Fl],global:[Fm]},canonicalDir:".agentsmesh",canonicalFilename:pL},ignore:{feature:"ignore",mode:"flatFile",source:{project:[vl],global:[vm]},canonicalDir:".agentsmesh",canonicalFilename:uL}},buildImportPaths:cy,detectionPaths:[on,Ce,sn,Js,Fl,vl],conversionDefaults:{commandsToSkills:true}};});function sN(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Vn,content:r.body.trim()?r.body:""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(ln))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?x(i,n.body.trim()||""):n.body.trim()||"";e.push({path:`${Qo}/${o}.md`,content:a});}return e}function iN(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${qo}/${e.name}.md`,content:x(r,e.body.trim()||"")}})}function aN(t){return t.agents.map(e=>{let r=basename(e.source,".md"),n={mode:"subagent"};return e.description&&(n.description=e.description),e.model&&(n.model=e.model),e.tools.length>0&&(n.tools=e.tools),e.disallowedTools.length>0&&(n.disallowedTools=e.disallowedTools),{path:`${ts}/${r}.md`,content:x(n,e.body.trim()||"")}})}function wJ(t){if("url"in t){let r={type:"remote",url:t.url};return Object.keys(t.headers).length>0&&(r.headers=t.headers),t.description&&(r.description=t.description),r}let e={type:"local",command:[t.command,...t.args]};return Object.keys(t.env).length>0&&(e.environment=t.env),t.description&&(e.description=t.description),e}function lN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e={};for(let[r,n]of Object.entries(t.mcp.mcpServers))e[r]=wJ(n);return [{path:Jn,content:JSON.stringify({mcp:e},null,2)}]}function cN(t){return st(t,cn)}var mN=d(()=>{rt();U();da();s(sN,"generateRules");s(iN,"generateCommands");s(aN,"generateAgents");s(wJ,"toOpenCodeMcpServer");s(lN,"generateMcp");s(cN,"generateSkills");});function q_(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))typeof n=="string"&&(e[r]=n);return e}function bJ(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e.mcp;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(typeof a.url=="string"){n[o]={type:"url",url:a.url,headers:q_(a.headers),env:q_(a.environment),...typeof a.description=="string"?{description:a.description}:{}};continue}if(Array.isArray(a.command)&&a.command.length>0){let l=a.command,c=l[0];if(c===void 0)continue;let m=l.slice(1);n[o]={type:"stdio",command:c,args:m,env:q_(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function PJ(t,e,r){let o=join(t,e==="global"?Qs:Jn),i=await _(o);if(i===null)return;let a=bJ(i);Object.keys(a).length!==0&&(await Ht(t,my,a),r.push({feature:"mcp",fromTool:ln,fromPath:o,toPath:my}));}async function pN(t,e={}){let r=e.scope??"project",n=[],o=await W(ln,t,r);return n.push(...await Y(Bd,t,r,{normalize:o})),await et(t,cn,ln,n,o),await PJ(t,r,n),n}var uN=d(()=>{gt();rt();Ot();Vr();A();da();tR();s(q_,"toStringRecord");s(bJ,"parseOpenCodeMcp");s(PJ,"importMcp");s(pN,"importFromOpenCode");});var dN,fN,gN,hN=d(()=>{U();ft();da();dN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Mm}/${t}`,content:await z(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),fN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${zu}/${t}`,content:await It(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),gN=s(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:i}=P(e(n));return {destPath:n,toPath:`${Vu}/${t}`,content:await Yt(n,o,i)}},"opencodeAgentMapper");});function yN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ln}))}var _N=d(()=>{Ct();da();s(yN,"lintRules");});function RN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function IN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function SN(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var CN=d(()=>{wt();s(RN,"lintHooks");s(IN,"lintPermissions");s(SN,"lintIgnore");});var TJ,xJ,DJ,kN,Bd,tR=d(()=>{mN();da();oe();uN();hN();_N();CN();Et();TJ={name:ln,primaryRootInstructionPath:Vn,generateRules:sN,generateCommands:iN,generateAgents:aN,generateSkills:cN,generateMcp:lN,importFrom:pN},xJ={rootInstructionPath:Vn,skillDir:cn,managedOutputs:{dirs:[Qo,qo,ts,cn],files:[Vn,Jn]},paths:{rulePath(t){return `${Qo}/${t}.md`},commandPath(t){return `${qo}/${t}.md`},agentPath(t){return `${ts}/${t}.md`}}},DJ={rootInstructionPath:Xs,skillDir:Zs,managedOutputs:{dirs:[ma,pa,ua,Zs,fL],files:[Xs,Qs]},rewriteGeneratedPath(t){return t===Vn?Xs:t===Jn?Qs:t},mirrorGlobalPath(t,e){return dt(t,Zs,e)},paths:{rulePath(t){return `${ma}/${t}.md`},commandPath(t){return `${pa}/${t}.md`},agentPath(t){return `${ua}/${t}.md`}}},kN={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Bd={id:ln,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:TJ,capabilities:kN,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:yN,lint:{hooks:RN,permissions:IN,ignore:SN},project:xJ,globalSupport:{capabilities:kN,detectionPaths:[Xs,ma,pa,ua,Zs,Qs],layout:DJ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Vn],global:[Xs]},canonicalDir:Mm,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Qo],global:[ma]},canonicalDir:Mm,extensions:[".md"],map:dN}],commands:{feature:"commands",mode:"directory",source:{project:[qo],global:[pa]},canonicalDir:zu,extensions:[".md"],map:fN},agents:{feature:"agents",mode:"directory",source:{project:[ts],global:[ua]},canonicalDir:Vu,extensions:[".md"],map:gN}},buildImportPaths:py,detectionPaths:[Qo,qo,ts,cn,Jn,"opencode.jsonc"]};});function EN(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(Yn)),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:Lr,content:o}]:[]}function LN(t){return st(t,re)}function ON(t){return t.commands.map(e=>({path:`${re}/${V(e.name)}/SKILL.md`,content:Mt(e)}))}function wN(t){return t.agents.map(e=>({path:`${re}/${K(e.name)}/SKILL.md`,content:xt(e)}))}var AN=d(()=>{rt();Wt();ut();Lt();Gl();s(EN,"generateRules");s(LN,"generateSkills");s(ON,"generateCommands");s(wN,"generateAgents");});async function bN(t,e={}){let r=e.scope??"project",n=[],o=await W(Yn,t,r);return n.push(...await Y(Kd,t,r,{normalize:o})),await et(t,r==="global"?Or:re,Yn,n,o),n}var PN=d(()=>{gt();rt();Ot();Gl();rR();s(bN,"importFromPiAgent");});function TN(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Yn}))}var xN=d(()=>{Ct();Gl();s(TN,"lintRules");});function DN(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function NN(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function FN(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function vN(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","pi-agent","Pi Coding Agent manages MCP servers via extensions, not a dedicated config file; canonical MCP servers are not projected.")]}var MN=d(()=>{wt();s(DN,"lintHooks");s(NN,"lintPermissions");s(FN,"lintIgnore");s(vN,"lintMcp");});var NJ,FJ,vJ,$N,Kd,rR=d(()=>{Lt();ut();AN();oe();PN();xN();MN();dy();Gl();NJ={name:Yn,primaryRootInstructionPath:Lr,generateRules:EN,generateCommands:ON,generateAgents:wN,generateSkills:LN,importFrom:bN},FJ={rootInstructionPath:Lr,skillDir:re,managedOutputs:{dirs:[re],files:[Lr]},paths:{rulePath(t){return Lr},commandPath(t){return `${re}/${V(t)}/SKILL.md`},agentPath(t){return `${re}/${K(t)}/SKILL.md`}}},vJ={rootInstructionPath:es,skillDir:Or,managedOutputs:{dirs:[Or],files:[es]},rewriteGeneratedPath(t){return t===Lr?es:t.startsWith(`${re}/`)?t.replace(`${re}/`,`${Or}/`):t},mirrorGlobalPath(t,e){return dt(t,Or,e)},paths:{rulePath(t){return es},commandPath(t){return `${Or}/${V(t)}/SKILL.md`},agentPath(t){return `${Or}/${K(t)}/SKILL.md`}}},$N={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Kd={id:Yn,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:NJ,capabilities:$N,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:TN,lint:{hooks:DN,permissions:NN,ignore:FN,mcp:vN},supportsConversion:{commands:true,agents:true},project:FJ,globalSupport:{capabilities:$N,detectionPaths:[es],layout:vJ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[Lr],global:[es]},canonicalDir:yL,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:uy,detectionPaths:[Lr,re]};});function GN(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:wr,content:r.body.trim()?r.body:""});let n=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(Xn)));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=x(a,o.body.trim()||"");e.push({path:`${rs}/${i}.md`,content:l});}return e}function jN(t){return t.commands.map(e=>{let r={description:e.description,"allowed-tools":e.allowedTools.length>0?e.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=x(r,e.body.trim()||"");return {path:`${Zn}/${e.name}.md`,content:n}})}function UN(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=x(r,e.body.trim()||"");return {path:`${Qn}/${e.name}.md`,content:n}})}function BN(t){let e=[];for(let r of t.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=x(n,r.body.trim()||"");e.push({path:`${He}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");e.push({path:`${He}/${r.name}/${a}`,content:i.content});}}return e}function KN(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:qs,content:e}]}function WN(t){return !t.ignore||t.ignore.length===0?[]:[{path:ti,content:t.ignore.join(`
|
|
143
|
-
`)}]}var
|
|
144
|
-
`)}]}function
|
|
145
|
-
`)}]}var
|
|
146
|
-
`)}]}var
|
|
147
|
-
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:dR,feature:"ignore"});}}return await kv(t,n,o),await Lv(t,n,o),await Av(t,n),await bv(t,n),n}var xv=d(()=>{gt();A();U();ft();Me();om();Ee();Ev();Ov();Pv();s(Tv,"importFromWindsurf");});function Dv(t,e,r){let n=[],{rules:o}=t;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(e,o[0].source),target:uo,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:uo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var Nv=d(()=>{Ee();s(Dv,"lintRules");});function Fv(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>D(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function vv(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[D(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var Mv=d(()=>{wt();s(Fv,"lintCommands");s(vv,"lintMcp");});function FY(t){if(t.length===0)return null;let e=t.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return e.length!==t.length?null:e.every(r=>r===e[0])?e[0]:null}var vY,MY,$Y,GY,$v,Gv=d(()=>{Sv();xi();Ee();oe();xv();Nv();Mv();Et();al();ut();s(FY,"directoryScopedRuleDir");vY={name:"windsurf",primaryRootInstructionPath:fo,generateRules:hR,generateCommands:_R,generateAgents:RR,generateSkills:CR,generateMcp:IR,generateHooks:SR,generateIgnore:yR,importFrom:Tv},MY={rootInstructionPath:fo,extraRuleOutputPaths(t){if(t.root)return [fo];let e=FY(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:yn,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(t,e){return `${gi}/${t}.md`},commandPath(t,e){return `${hi}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`.windsurf/skills/${K(t)}/SKILL.md`:null}}},$Y={rootInstructionPath:dc,skillDir:fc,managedOutputs:{dirs:[fc,op,uv],files:[dc,Zd,Qd,qd]},rewriteGeneratedPath(t){return t===fo?dc:t.startsWith(`${gi}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${yn}/`)?t.replace(`${yn}/`,`${fc}/`):t.startsWith(`${hi}/`)?t.replace(`${hi}/`,`${op}/`):t===mc?Zd:t===pc?Qd:t===cc?qd:t},mirrorGlobalPath(t,e){return dt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return dc},commandPath(t,e){return `${op}/${t}.md`},agentPath(t,e){return or(e,"windsurf")?`${fc}/${K(t)}/SKILL.md`:null}}},GY={rules:"native",additionalRules:"partial",commands:Kr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},$v={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:vY,capabilities:{rules:"native",additionalRules:"native",commands:Kr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Windsurf config found (.windsurfrules, .windsurf/rules, .windsurfignore, or .codeiumignore).",supportsConversion:{agents:true},lintRules:Dv,lint:{commands:Fv,mcp:vv},project:MY,globalSupport:{capabilities:GY,detectionPaths:[dc,fc,op,Zd,Qd,qd],layout:$Y},buildImportPaths:ky,detectionPaths:[".windsurfrules",".windsurf"],conversionDefaults:{agentsToSkills:true}};});function jv(t){let e=t.rules.find(i=>i.root),r=t.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=e?.body.trim()??"",o=mt(n,r);return o?[{path:fn,content:o}]:[]}var Uv=d(()=>{Wt();Ia();s(jv,"generateRules");});async function Kv(t,e,r){let n=await _(join(t,e));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.context_servers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a)){if(!m||typeof m!="object"||Array.isArray(m))continue;let p={...m};delete p.source,l[c]=p;}Object.keys(l).length!==0&&(await Ht(t,Bv,l),r.push({fromTool:"zed",fromPath:e,toPath:Bv,feature:"mcp"}));}var Bv,Wv=d(()=>{A();Vr();Ia();Bv=".agentsmesh/mcp.json";s(Kv,"importZedMcp");});async function Hv(t,e={}){let r=e.scope??"project",n=[],o=await W("zed",t,r);return n.push(...await Y(ef,t,r,{normalize:o})),await Kv(t,r==="global"?so:oo,n),n}var zv=d(()=>{gt();Ot();Wv();Ia();ER();s(Hv,"importFromZed");});function Vv(t,e,r,n){return J(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var Jv=d(()=>{Ct();Ia();s(Vv,"lintRules");});function Yv(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[D(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function Xv(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];return e.length===0&&r.length===0&&n.length===0?[]:[D(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function Zv(t){return t.ignore.length===0?[]:[D(".agentsmesh/ignore","zed","Zed has no dedicated ignore file and relies on file_scan_exclusions in settings.json; canonical ignore patterns are not projected.")]}var Qv=d(()=>{wt();s(Yv,"lintHooks");s(Xv,"lintPermissions");s(Zv,"lintIgnore");});function zY(t,e){if(t===null)return e;let r;try{let i=JSON.parse(t);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(e);if(n===null||typeof n!="object"||Array.isArray(n))return t;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var UY,BY,KY,WY,HY,ef,ER=d(()=>{Uv();zv();Jv();Qv();Et();Ia();UY={name:"zed",primaryRootInstructionPath:fn,generateRules:jv,importFrom:Hv},BY={rootInstructionPath:fn,managedOutputs:{dirs:[],files:[fn,oo]},paths:{rulePath(t){return fn},commandPath(){return null},agentPath(){return null}}},KY={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[so]},rewriteGeneratedPath(t){return t===oo?so:t},paths:{rulePath(){return so},commandPath(){return null},agentPath(){return null}}},WY={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},HY={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(zY,"mergeZedSettings");ef={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:UY,capabilities:WY,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:Vv,lint:{hooks:Yv,permissions:Xv,ignore:Zv},project:BY,globalSupport:{capabilities:HY,detectionPaths:[so],layout:KY},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[fn],global:[]},canonicalDir:ML,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(t,e){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let r={};for(let[n,o]of Object.entries(t.mcp.mcpServers))r[n]=o;return [{path:oo,content:JSON.stringify({context_servers:r},null,2)}]},mergeGeneratedOutputContent(t,e,r,n){return n===oo||n===so?zY(t,r):null},buildImportPaths:Ey,detectionPaths:[fn,oo]};});var dE={};Cg(dE,{BUILTIN_TARGETS:()=>Pt,TARGET_IDS:()=>$t,getBuiltinTargetDefinition:()=>Fr,getEffectiveTargetSupportLevel:()=>rf,getTargetCapabilities:()=>di,getTargetDetectionPaths:()=>OR,getTargetLayout:()=>Kt,getTargetManagedOutputs:()=>wR,getTargetPrimaryRootInstructionPath:()=>JY,getTargetSkillDir:()=>sp,isBuiltinTargetId:()=>Fe,resolveTargetFeatureGenerator:()=>gc,rewriteGeneratedOutputPath:()=>AR});function VY(){return LR||(VC(Pt),LR=new Map(Pt.map(t=>[t.id,t]))),LR}function Fr(t){return VY().get(t)}function di(t,e="project"){let r=Fr(t)??nt(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return HC(n)}function OR(t,e="project"){let r=Fr(t)??nt(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Kt(t,e="project"){let r=Fr(t)??nt(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function JY(t,e="project"){return Kt(t,e)?.rootInstructionPath}function sp(t,e="project"){return Kt(t,e)?.skillDir}function wR(t,e="project"){return Kt(t,e)?.managedOutputs}function AR(t,e,r="project"){let n=Kt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function qv(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!il(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!or(r,t.id,true,n):false}function YY(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?il(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?or(r,t.id,true,n):false}function rf(t,e,r,n="project"){let o=di(t,n)?.[e]?.level??"none",i=Fr(t)??nt(t);return o==="none"&&YY(i,e,r,n)?"embedded":o!=="embedded"?o:qv(i,e,r,n)?"none":o}function gc(t,e,r,n="project"){let o=Fr(t)??nt(t);if(!o?.generators||qv(o,e,r,n))return;let i=XY[e];return i===null?void 0:i(o.generators)}var Pt,LR,XY,Tt=d(()=>{al();xi();ce();th();Sn();_h();Ly();Oy();Ay();zO();Ty();iA();XA();Qy();o_();i_();S_();C_();k_();B_();K_();W_();H_();X_();Q_();tR();rR();nR();oR();aR();lR();cR();mR();Gv();ER();Pt=[Su,Zu,Qu,qu,HO,td,sA,YA,ad,dd,gd,Ed,Ld,Od,Nd,Fd,vd,Md,jd,Ud,Bd,Kd,Wd,Hd,Vd,Jd,Yd,Xd,$v,ef];s(VY,"builtinTargetsMap");s(Fr,"getBuiltinTargetDefinition");s(di,"getTargetCapabilities");s(OR,"getTargetDetectionPaths");s(Kt,"getTargetLayout");s(JY,"getTargetPrimaryRootInstructionPath");s(sp,"getTargetSkillDir");s(wR,"getTargetManagedOutputs");s(AR,"rewriteGeneratedOutputPath");s(qv,"isFeatureSuppressedByConversion");s(YY,"isConversionUpgrading");s(rf,"getEffectiveTargetSupportLevel");XY={rules:s(t=>t.generateRules,"rules"),additionalRules:null,commands:s(t=>t.generateCommands,"commands"),agents:s(t=>t.generateAgents,"agents"),skills:s(t=>t.generateSkills,"skills"),mcp:s(t=>t.generateMcp,"mcp"),permissions:s(t=>t.generatePermissions,"permissions"),hooks:s(t=>t.generateHooks,"hooks"),ignore:s(t=>t.generateIgnore,"ignore")};s(gc,"resolveTargetFeatureGenerator");});function qY(t,e){return t.uniqueHits!==e.uniqueHits?e.uniqueHits-t.uniqueHits:t.sharedScore!==e.sharedScore?e.sharedScore-t.sharedScore:t.id.localeCompare(e.id)}async function nf(t){let e=[];for(let n of Pt){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(t,a)))continue;let l=QY.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&e.push({id:n.id,uniqueHits:o,sharedScore:i});}if(e.length===0)return null;e.sort(qY);let r=e[0];return r.uniqueHits===0?null:r.id}var QY,tM,bR=d(()=>{A();Tt();QY=(()=>{let t=new Map;for(let e of Pt)for(let r of e.detectionPaths)t.set(r,(t.get(r)??0)+1);return t})();s(qY,"compare");s(nf,"detectNativeFormat");tM=Pt.map(t=>t.detectionPaths[0]).filter(t=>t!==void 0);});async function ip(t,e){let r=nt(e);if(!r)throw new Error(`No importer registered for native target: ${e}`);return r.generators.importFrom(t)}var PR=d(()=>{ce();s(ip,"importNativeToCanonical");});async function Na(t){if(!await j(t))return false;if(await j(join(t,xR)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(t,r.name,xR)))return !0}catch{return false}return false}async function ap(t,e={}){if(!await j(t))return [];if(await j(join(t,xR))){let r=await ou(t,e);return r?[r]:[]}return As(t,e)}var xR,of=d(()=>{A();ol();xR="SKILL.md";s(Na,"isSkillPackLayout");s(ap,"loadSkillsAtExtendPath");});async function sf(t,e={}){return (await ws(t,e)).filter(n=>!Cn(basename(n.source)))}async function af(t,e={}){return (await Os(t,e)).filter(n=>!Cn(basename(n.source)))}async function lf(t,e={}){return (await Ls(t,e)).filter(n=>!Cn(basename(n.source)))}async function eM(t,e={}){return As(t,e)}var cf=d(()=>{Zc();Xc();Yc();ol();Eo();s(sf,"importAgents");s(af,"importCommands");s(lf,"importRules");s(eM,"importSkills");});function NR(t,e){let r=t?.[e];if(!r)return [];let n=Array.isArray(r)?r:[r],o=[];for(let i of n)i.mode!=="directory"||!i.map||!i.extensions||o.push({extensions:i.extensions,map:i.map});return o}function FR(t){return t.toLowerCase().endsWith(".md")}function nM(t,e){for(let r of NR(nt(t)?.importer,e))if(r.extensions.some(n=>!FR(n)))return true;return false}function a2(t,e){let r=new Set;for(let n of NR(nt(t)?.importer,e))for(let o of n.extensions)FR(o)||r.add(o.toLowerCase());return r}function l2(t){return BC().filter(e=>nM(e,t))}async function p2(t,e,r){return c2[t](e,r)}async function u2(t,e,r){return m2[t](e,r)}async function d2(t,e,r,n={}){let o=NR(nt(e)?.importer,r),i=await G(t),a=new Set;for(let p of o)for(let u of p.extensions)FR(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!Cn(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${e}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await _(u);if(f===null)continue;let g=relative(t,u).replaceAll("\\","/"),h=null;for(let R of o){if(!R.extensions.some(C=>u.toLowerCase().endsWith(C.toLowerCase())))continue;let I=await R.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(I){h=I;break}}h&&(await O(dirname(h.destPath)),await S(h.destPath,h.content));}return {entities:await p2(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function vR(t,e,r={}){let n=r.restrictToTarget,o=n?nM(n,e)?[n]:[]:l2(e),i=new Set;for(let f of o)for(let g of a2(f,e))i.add(g);let a=await u2(e,t,{...r.parseOpts,handledByOtherReader:i.size>0?i:void 0}),l=[],c=s(f=>basename(f.source).replace(/\.[^.]+$/,""),"slugOf"),m=new Map;for(let f of a)m.set(c(f),f);for(let f of o){let g=await d2(t,f,e,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let R=c(h);m.has(R)||m.set(R,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function mf(t,e={}){let r=await vR(t,"commands",e);return {commands:[...r.entities],cleanup:r.cleanup}}async function pf(t,e={}){let r=await vR(t,"rules",e);return {rules:[...r.entities],cleanup:r.cleanup}}async function uf(t,e={}){let r=await vR(t,"agents",e);return {agents:[...r.entities],cleanup:r.cleanup}}var c2,m2,df=d(()=>{Zc();Xc();Yc();A();ce();Eo();cf();s(NR,"directorySpecsFor");s(FR,"isMarkdownExtension");s(nM,"hasNonMdEntityMapper");s(a2,"nonMdEntityExtensions");s(l2,"targetsWithNonMdEntityMapper");c2={rules:Ls,commands:Os,agents:ws},m2={rules:lf,commands:af,agents:sf};s(p2,"parseEntityDir");s(u2,"importEntities");s(d2,"readToolNativeEntities");s(vR,"readEntityDirWithMappers");s(mf,"readCommandsDirWithMappers");s(pf,"readRulesDirWithMappers");s(uf,"readAgentsDirWithMappers");});function h2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function y2(t){return t.rules.length===0&&t.commands.length===0&&t.agents.length===0&&t.skills.length===0&&t.mcp===null&&t.permissions===null&&t.hooks===null&&t.ignore.length===0}async function ff(t){if(!await j(t))throw new Error(`Path does not exist: ${t}`);let e=await stat(t);if(e.isDirectory())return {sliceRoot:t};if(!e.isFile()||!t.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${t}`);let r=dirname(t),n=basename(r),i=basename(t).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[i]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[i]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[i]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${t}`)}async function GR(t,e){if(basename(t)===e)return t;let r=join(t,e);return await j(r)?r:null}async function _2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await lf(o,e),cleanup:n};let i=await pf(o,{parseOpts:e});return {rules:[...i.rules],cleanup:i.cleanup}}async function R2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await af(o,e),cleanup:n};let i=await mf(o,{parseOpts:e});return {commands:[...i.commands],cleanup:i.cleanup}}async function I2(t,e,r){let n=s(async()=>{},"noop"),o=await GR(t,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await sf(o,e),cleanup:n};let i=await uf(o,{parseOpts:e});return {agents:[...i.agents],cleanup:i.cleanup}}async function S2(t,e){if(await Na(t))return ap(t,e);let r=join(t,"skills");return await Na(r)?ap(r,e):[]}async function gf(t,e={}){let r=s(async()=>{},"noop"),n=join(t,".agentsmesh");if(await j(n))return {canonical:await we(t,e),cleanup:r};let o=e.enableTargetEntityMappers??false,i=h2(),a=await _2(t,e,o);i.rules=a.rules;let l=await R2(t,e,o);i.commands=l.commands;let c=await I2(t,e,o);i.agents=c.agents,i.skills=await S2(t,e);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(y2(i))throw await m(),new Error(`No installable resources at ${t}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md). Hint: pass --as commands|agents|rules|skills to force a kind for flat markdown directories.`);return {canonical:i,cleanup:m}}var jR=d(()=>{A();cf();df();Ti();of();s(h2,"emptyCanonical");s(y2,"isCanonicalSliceEmpty");s(ff,"normalizeSlicePath");s(GR,"resolveEntityDir");s(_2,"parseRulesAt");s(R2,"parseCommandsAt");s(I2,"parseAgentsAt");s(S2,"loadSkillsForPartialSlice");s(gf,"loadCanonicalSliceAtPath");});async function hf(t){let e=await _(t);if(!e)return "";let r=Gr(e,t);if(!r.ok)return "";let{frontmatter:n}=r.value;return typeof n.name!="string"?"":n.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function oM(t,e){await cp(t,e,{recursive:true,filter:s(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(TC(o)||!n.includes("/")&&(ru(n)||xC(n)))},"filter")});}var UR=d(()=>{A();U();Eo();s(hf,"readSkillFrontmatterName");s(oM,"cpFilteredSkill");});function BR(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function E2(t){let e={...t},r=t.alwaysApply===true;if(e.root=r,delete e.alwaysApply,!r){let n=BR(t.globs),o=typeof t.description=="string"?t.description.trim():"";n.length>0?e.trigger="glob":o.length>0?e.trigger="model_decision":e.trigger="manual";}return e}function L2(t){let e={...t};return e.trigger==="always"&&(e.trigger="always_on"),typeof e.glob=="string"&&(e.globs=BR(e.globs).length>0?BR(e.globs):[e.glob],delete e.glob),e}function KR(t){let e=Gr(t,"<mdc>");if(!e.ok)return e.bodyFallback;let{frontmatter:r,body:n}=e.value;if(Object.keys(r).length===0&&!t.startsWith("---"))return t;let o;return "alwaysApply"in r?o=E2(r):"trigger"in r||"glob"in r?o=L2(r):o=r,x(o,n.trim())}var sM=d(()=>{U();s(BR,"toStrArray");s(E2,"normalizeCursorKeys");s(L2,"normalizeWindsurfKeys");s(KR,"normalizeMdcToCanonical");});function WR(t){return t.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function HR(t){return t.toLowerCase().endsWith(".mdc")?basename(t).replace(/\.mdc$/i,".md"):basename(t)}function aM(t,e,r){let o=relative(t,e).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=WR(o[o.length-1]);return i?`${i}-${r}`:r}var lM=d(()=>{s(WR,"sanitizeNameSegment");s(HR,"computeDestName");s(aM,"namespacedName");});async function P2(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await O(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup")}}function uM(t,e){let r=t.toLowerCase();return !!(r.endsWith(".md")||e&&r.endsWith(".mdc"))}async function T2(t,e,r){if(!uM(t,r))throw new Error(`Manual install only supports .md files for this collection: ${t}`);if(await O(e),t.toLowerCase().endsWith(".mdc")){let n=await _(t);if(!n)return;let o=basename(t).replace(/\.mdc$/i,".md");await writeFile(join(e,o),KR(n));}else await cp(t,join(e,basename(t)));}async function x2(t,e,r){if((await stat(t)).isFile())return T2(t,e,r);let o=(await G(t)).filter(l=>uM(l,r)&&!Cn(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${t} for manual install. Try a different --path to point at the directory holding *.md (or *.mdc) files, or omit --as so agentsmesh can auto-detect the layout.`);let i=new Map;for(let l of o){let c=HR(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await O(e);for(let l of o){let c=HR(l),p=(i.get(c)??0)>1?aM(t,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(t,l).replace(/\\/g,"/").split("/").map(WR).filter(Boolean),g=c.includes(".")?"."+c.split(".").pop():"";p=f.join("-").replace(/\.(md|mdc)$/i,"")+g||p;}if(a.has(p))throw new Error(`Manual install could not resolve duplicate name "${p}" under ${t} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await _(l);if(!f)continue;await writeFile(join(e,p),KR(f));}else await cp(l,join(e,p));}}async function cM(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await G(t)){if(!i.endsWith("/SKILL.md")&&!i.endsWith("\\SKILL.md"))continue;let a=dirname(i),l=basename(a);if(!n.has(l))continue;let c=o.get(l);if(c&&c!==a)throw new Error(`Manual skill replay found duplicate skill "${l}" under ${t} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await O(e);for(let i of r)await cp(o.get(i),join(e,i),{recursive:true});return true}async function D2(t,e,r={}){if((await stat(t)).isFile()){if(basename(t)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${t}`);let o=basename(dirname(t)),i=join(e,o);await O(i),await cp(dirname(t),i,{recursive:true});return}if(await Na(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await cM(t,e,r.preferredSkillNames??[]))return;let l=await hf(join(t,"SKILL.md"))||basename(t),c=join(e,l);await O(e),await oM(t,c);return}if(await cM(t,e,r.preferredSkillNames??[]))return;await O(e);let o=await G(t),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(t,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp(join(t,a),join(e,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${t}.`)}async function _f(t,e,r={}){let n=await P2();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await D2(t,o,r):await x2(t,o,e==="rules"),n}catch(o){throw await n.cleanup(),o}}var VR=d(()=>{A();of();UR();Eo();sM();lM();s(P2,"createStageRoot");s(uM,"isAcceptedFile");s(T2,"stageSingleFile");s(x2,"stageMarkdownCollection");s(cM,"stagePreferredSkills");s(D2,"stageSkills");s(_f,"stageManualInstallScope");});function N2(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function dM(t){let e=t.resolvedPath;if(t.as!==void 0){let o=t.path?join(e,t.path):e;if(!await j(o))throw new Error(`Extend "${t.name}": path does not exist: ${o}`);let i=await _f(o,t.as);try{return we(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!t.path){let o=join(e,".agentsmesh");if(!await j(o)){if(await Na(e)){let a=await ap(e);return {...N2(),skills:a}}let i=t.target??await nf(e);if(!i)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
148
|
-
Expected one of: .agentsmesh/, ${
|
|
145
|
+
${f}`:u,h={};p&&(h.description=p),typeof l.name=="string"&&l.name.length>0&&(h.name=l.name);let R=await et(m,h,g),_=r(R,n,m);await L(m,_),t.push({feature:"agents",fromTool:Tt,fromPath:n,toPath:`${Oa}/${c}.md`});}}async function fF(e,t={}){let r=t.scope??"project",n=[],o=await z(Tt,e,r);return n.push(...await q(qf,e,r,{normalize:o})),await oe(e,fn,Tt,n,o),r==="project"&&(await fQ(e,n,o),await gQ(e,n,o),await hQ(e,n,o),await oe(e,Ca,Tt,n,o)),n}var jS,US,gF=d(()=>{ge();se();Yt();be();A();fe();B();GS();Aa();BS();jS=`${di}/_root.md`,US="00-root.md";s(dF,"pathExists");s(fQ,"importLegacyRules");s(gQ,"importLegacyWorkflows");s(hQ,"importLegacyModes");s(fF,"importFromKiloCode");});function hF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Tt}))}var yF=d(()=>{Ie();Aa();s(hF,"lintRules");});function RF(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","kilo-code","kilo-code does not support user-defined lifecycle hooks; canonical hooks are not projected.")]:[]:[]}function _F(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","kilo-code","kilo-code permissions live in kilo.jsonc, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}var SF=d(()=>{Oe();s(RF,"lintHooks");s(_F,"lintPermissions");});var yQ,RQ,_Q,kF,qf,BS=d(()=>{pF();Aa();pt();gF();GS();yF();SF();Ce();yQ={name:Tt,primaryRootInstructionPath:oo,generateRules:sF,generateCommands:iF,generateAgents:aF,generateSkills:mF,generateMcp:lF,generateIgnore:cF,importFrom:fF},RQ={rootInstructionPath:oo,skillDir:fn,managedOutputs:{dirs:[ps,us,ds,fn],files:[oo,mi,sc]},paths:{rulePath(e,t){return `${ps}/${e}.md`},commandPath(e,t){return `${us}/${e}.md`},agentPath(e,t){return `${ds}/${e}.md`}}},_Q={rootInstructionPath:pi,skillDir:ui,managedOutputs:{dirs:[Ea,wa,ba,ui,Mb],files:[pi,lc,Zd]},rewriteGeneratedPath(e){return e===oo?pi:e},mirrorGlobalPath(e,t){return de(e,ui,t)},paths:{rulePath(e,t){return `${Ea}/${e}.md`},commandPath(e,t){return `${wa}/${e}.md`},agentPath(e,t){return `${ba}/${e}.md`}}},kF={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},qf={id:Tt,metadata:{displayName:"Kilo Code",category:"ide",officialUrl:"https://kilocode.ai",shortDescription:"Open-source AI coding agent for VS Code"},generators:yQ,capabilities:kF,emptyImportMessage:"No Kilo Code config found (AGENTS.md, .kilo/rules, .kilo/commands, .kilo/agents, .kilo/skills, .kilo/mcp.json, .kilocodeignore, .kilocode/, or .kilocodemodes).",lintRules:hF,lint:{hooks:RF,permissions:_F},project:RQ,globalSupport:{capabilities:kF,detectionPaths:[pi,Ea,wa,ba,ui,lc,Zd],layout:_Q},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[oo],global:[pi]},canonicalDir:di,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[ps],global:[Ea]},canonicalDir:di,extensions:[".md"],map:Yf}],commands:{feature:"commands",mode:"directory",source:{project:[us],global:[wa]},canonicalDir:cc,extensions:[".md"],map:Xf},agents:{feature:"agents",mode:"directory",source:{project:[ds],global:[ba]},canonicalDir:Oa,extensions:[".md"],map:uF},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[mi,Ip],global:[lc]},canonicalDir:".agentsmesh",canonicalFilename:$b},ignore:{feature:"ignore",mode:"flatFile",source:{project:[sc],global:[Zd]},canonicalDir:".agentsmesh",canonicalFilename:Gb}},buildImportPaths:YR,detectionPaths:[ps,us,ds,fn,mi,La,ic,Ca,Ip,Qd,sc,"kilo.jsonc","kilo.json"]};});function IF(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function IQ(e){return e.type==="prompt"?e.prompt:e.command}function LQ(e,t){let r=LF[e];return e==="PreToolUse"||e==="PostToolUse"?{type:r,tools:[t||"*"]}:{type:r}}function CF(e){let t=[];for(let[r,n]of Object.entries(e)){let o=r;if(!(o in LF)||!Array.isArray(n))continue;let i=1;for(let a of n){let l=IQ(a);if(!l)continue;let c={name:`${IF(r)} ${i}`,version:"1",when:LQ(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};t.push({name:`${IF(r)}-${i}.kiro.hook`,content:JSON.stringify(c,null,2)}),i+=1;}}return t}function CQ(e){let t=kQ.get(e.when.type);if(!t)return null;let r=e.when.tools?.[0]??e.when.patterns?.[0]??"*";return e.then.type==="askAgent"&&typeof e.then.prompt=="string"?{event:t,entry:{matcher:r,command:e.then.prompt,prompt:e.then.prompt,type:"prompt"}}:e.then.type==="shellCommand"&&typeof e.then.command=="string"?{event:t,entry:{matcher:r,command:e.then.command,type:"command"}}:null}function EF(e){let t;try{t=JSON.parse(e);}catch{return null}if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return !r.when||!r.then||typeof r.when.type!="string"?null:CQ(r)}function wF(e){return stringify(e).trimEnd()}var LF,kQ,KS=d(()=>{LF={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},kQ=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);s(IF,"toKebab");s(IQ,"hookText");s(LQ,"toWhen");s(CF,"generateKiroHooks");s(CQ,"toCanonicalEntry");s(EF,"parseKiroHookFile");s(wF,"serializeCanonicalHooks");});function wQ(e){let t={};return e.globs.length>0?(t.inclusion="fileMatch",t.fileMatchPattern=e.globs.length===1?e.globs[0]:e.globs):e.trigger==="manual"?t.inclusion="manual":e.trigger==="model_decision"?t.inclusion="auto":t.inclusion="always",e.description&&(t.description=e.description),t}function bF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:gn,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(rr))continue;let o=basename(n.source,".md");t.push({path:`${hn}/${o}.md`,content:D(wQ(n),n.body.trim()||"")});}return t}function OF(e){return e.commands.map(t=>({path:`${Pt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function AF(e){return ie(e,Pt)}function xF(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:mc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function TF(e){return !e.hooks||Object.keys(e.hooks).length===0?[]:CF(e.hooks).map(t=>({path:`${fi}/${t.name}`,content:t.content}))}function PF(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0,model:t.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,t.body.trim()||"");return {path:`${yn}/${t.name}.md`,content:n}})}function DF(e){return e.ignore.length===0?[]:[{path:pc,content:e.ignore.join(`
|
|
146
|
+
`)}]}var NF=d(()=>{se();we();B();KS();uc();s(wQ,"steeringFrontmatter");s(bF,"generateRules");s(OF,"generateCommands");s(AF,"generateSkills");s(xF,"generateMcp");s(TF,"generateHooks");s(PF,"generateAgents");s(DF,"generateIgnore");});function OQ(e){let t=typeof e.inclusion=="string"?e.inclusion:"",r={root:false,description:typeof e.description=="string"?e.description:void 0,globs:Wo(e.fileMatchPattern)};return t==="manual"&&(r.trigger="manual"),t==="auto"&&(r.trigger="model_decision"),t==="fileMatch"&&(r.trigger="glob"),r}async function AQ(e,t,r,n){let o=n==="global"?[Rn,gn]:[gn,Rn];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,XR),{frontmatter:m,body:p}=x(r(l,a,c));await L(c,await V(c,{...m,root:true},p)),t.push({fromTool:rr,fromPath:a,toPath:XR,feature:"rules"});return}}async function xQ(e,t,r){let n=join(e,qR);t.push(...await ke({srcDir:join(e,hn),destDir:n,extensions:[".md"],fromTool:rr,normalize:r,mapEntry:s(async({relativePath:o,normalizeTo:i})=>{if(basename(o)==="AGENTS.md")return null;let a=join(n,o),{frontmatter:l,body:c}=x(i(a));return {destPath:a,toPath:`${qR}/${o}`,feature:"rules",content:await V(a,OQ(l),c)}},"mapEntry")}));}async function TQ(e,t){let r={};for(let o of await U(join(e,fi))){if(!o.endsWith(".kiro.hook"))continue;let i=EF(await k(o)??"");i&&(r[i.event]??=[],r[i.event].push(i.entry));}if(Object.keys(r).length===0)return;let n=join(e,QR);await w(join(e,".agentsmesh")),await L(n,wF(r)),t.push({fromTool:rr,fromPath:join(e,fi),toPath:QR,feature:"hooks"});}async function vF(e,t={}){let r=t.scope??"project",n=[],o=await z(rr,e,r);return await AQ(e,n,o,r),await xQ(e,n,o),n.push(...await q(Qf,e,r,{normalize:o})),await oe(e,Pt,rr,n,o),r==="project"&&await TQ(e,n),n}var FF=d(()=>{ge();se();Yt();be();fe();Sr();A();B();KS();uc();WS();s(OQ,"canonicalRuleMeta");s(AQ,"importRoot");s(xQ,"importNonRootRules");s(TQ,"importHooks");s(vF,"importFromKiro");});function MF(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:rr}))}var $F=d(()=>{Ie();uc();s(MF,"lintRules");});function GF(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=["PreToolUse","PostToolUse","UserPromptSubmit","SubagentStop"],r=new Set(t);return Object.keys(e.hooks).filter(n=>!r.has(n)).map(n=>Zs(n,"kiro",t,{unsupportedBy:"Kiro hooks"}))}var jF=d(()=>{Oe();s(GF,"lintHooks");});var PQ,DQ,NQ,vQ,Qf,WS=d(()=>{we();NF();pt();FF();$F();jF();Ce();uc();PQ={name:rr,primaryRootInstructionPath:gn,generateRules:bF,generateCommands:OF,generateAgents:PF,generateSkills:AF,generateMcp:xF,generateHooks:TF,generateIgnore:DF,importFrom:vF},DQ={rootInstructionPath:gn,skillDir:Pt,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(e,t){return `${hn}/${e}.md`},commandPath(e){return `${Pt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${yn}/${e}.md`}}},NQ={rootInstructionPath:Rn,skillDir:gi,managedOutputs:{dirs:[xa,gi,Ta,Ub],files:[Rn,Cp,Ep]},rewriteGeneratedPath(e){return e===gn?Rn:e.startsWith(`${hn}/`)?e.replace(`${hn}/`,`${xa}/`):e.startsWith(`${Pt}/`)?e.replace(`${Pt}/`,`${gi}/`):e.startsWith(`${yn}/`)?e.replace(`${yn}/`,`${Ta}/`):e===mc?Cp:e===pc?Ep:e.startsWith(`${fi}/`)?null:e},mirrorGlobalPath(e,t){return de(e,".kiro/skills",t)},paths:{rulePath(e,t){return `${xa}/${e}.md`},commandPath(e){return `${Pt}/${J(e)}/SKILL.md`},agentPath(e,t){return `${Ta}/${e}.md`}}},vQ={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Qf={id:rr,metadata:{displayName:"Kiro",category:"ide",officialUrl:"https://kiro.dev",shortDescription:"AWS spec-driven AI IDE"},generators:PQ,capabilities:{rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Kiro config found (AGENTS.md, .kiro/steering, .kiro/skills, .kiro/agents, .kiro/hooks, .kiro/settings/mcp.json, or .kiroignore).",supportsConversion:{commands:true},lintRules:MF,lint:{hooks:GF},project:DQ,globalSupport:{capabilities:vQ,detectionPaths:[xa,Rn,gi,Ta,Cp,Ep],layout:NQ},importer:{agents:{feature:"agents",mode:"directory",source:{project:[yn],global:[yn]},canonicalDir:Bb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[mc],global:[Cp]},canonicalDir:".agentsmesh",canonicalFilename:Kb},ignore:{feature:"ignore",mode:"flatFile",source:{project:[pc],global:[Ep]},canonicalDir:".agentsmesh",canonicalFilename:Wb}},buildImportPaths:ZR,detectionPaths:[hn,Pt,yn,fi,mc,pc],conversionDefaults:{commandsToSkills:true}};});function BF(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:so,content:r.body.trim()?r.body:""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(_n))continue;let o=basename(n.source,".md"),i={};n.description&&(i.description=n.description),n.globs.length>0&&(i.globs=n.globs);let a=Object.keys(i).length>0?D(i,n.body.trim()||""):n.body.trim()||"";t.push({path:`${fs}/${o}.md`,content:a});}return t}function KF(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${gs}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function WF(e){return e.agents.map(t=>{let r=basename(t.source,".md"),n={mode:"subagent"};return t.description&&(n.description=t.description),t.model&&(n.model=t.model),t.tools.length>0&&(n.tools=t.tools),t.disallowedTools.length>0&&(n.disallowedTools=t.disallowedTools),{path:`${hs}/${r}.md`,content:D(n,t.body.trim()||"")}})}function FQ(e){if("url"in e){let r={type:"remote",url:e.url};return Object.keys(e.headers).length>0&&(r.headers=e.headers),e.description&&(r.description=e.description),r}let t={type:"local",command:[e.command,...e.args]};return Object.keys(e.env).length>0&&(t.environment=e.env),e.description&&(t.description=e.description),t}function HF(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t={};for(let[r,n]of Object.entries(e.mcp.mcpServers))t[r]=FQ(n);return [{path:io,content:JSON.stringify({mcp:t},null,2)}]}function zF(e){return ie(e,Sn)}var VF=d(()=>{se();B();va();s(BF,"generateRules");s(KF,"generateCommands");s(WF,"generateAgents");s(FQ,"toOpenCodeMcpServer");s(HF,"generateMcp");s(zF,"generateSkills");});function HS(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t={};for(let[r,n]of Object.entries(e))typeof n=="string"&&(t[r]=n);return t}function $Q(e){let t;try{t=JSON.parse(e);}catch{return {}}if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t.mcp;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,i]of Object.entries(r)){if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(typeof a.url=="string"){n[o]={type:"url",url:a.url,headers:HS(a.headers),env:HS(a.environment),...typeof a.description=="string"?{description:a.description}:{}};continue}if(Array.isArray(a.command)&&a.command.length>0){let l=a.command,c=l[0];if(c===void 0)continue;let m=l.slice(1);n[o]={type:"stdio",command:c,args:m,env:HS(a.environment),...typeof a.description=="string"?{description:a.description}:{}};}}return n}async function GQ(e,t,r){let o=join(e,t==="global"?Ri:io),i=await k(o);if(i===null)return;let a=$Q(i);Object.keys(a).length!==0&&(await Je(e,e_,a),r.push({feature:"mcp",fromTool:_n,fromPath:o,toPath:e_}));}async function JF(e,t={}){let r=t.scope??"project",n=[],o=await z(_n,e,r);return n.push(...await q(Zf,e,r,{normalize:o})),await oe(e,Sn,_n,n,o),await GQ(e,r,n),n}var YF=d(()=>{ge();se();be();nn();A();va();zS();s(HS,"toStringRecord");s($Q,"parseOpenCodeMcp");s(GQ,"importMcp");s(JF,"importFromOpenCode");});var XF,qF,QF,ZF=d(()=>{B();fe();va();XF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${wp}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"opencodeNonRootRuleMapper"),qF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${tf}/${e}`,content:await Se(n,{hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"opencodeCommandMapper"),QF=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${rf}/${e}`,content:await et(n,o,i)}},"opencodeAgentMapper");});function eM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:_n}))}var tM=d(()=>{Ie();va();s(eM,"lintRules");});function rM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","opencode","opencode hooks are plugin-based (TypeScript/JavaScript); canonical config hooks are not projected.")]:[]:[]}function nM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","opencode","opencode permissions live in opencode.json, which agentsmesh does not generate in v1; canonical permissions are not projected.")]}function oM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","opencode","opencode has no dedicated ignore file; canonical ignore patterns are not projected. Configure watcher.ignore in opencode.json manually.")]}var sM=d(()=>{Oe();s(rM,"lintHooks");s(nM,"lintPermissions");s(oM,"lintIgnore");});var jQ,UQ,BQ,iM,Zf,zS=d(()=>{VF();va();pt();YF();ZF();tM();sM();Ce();jQ={name:_n,primaryRootInstructionPath:so,generateRules:BF,generateCommands:KF,generateAgents:WF,generateSkills:zF,generateMcp:HF,importFrom:JF},UQ={rootInstructionPath:so,skillDir:Sn,managedOutputs:{dirs:[fs,gs,hs,Sn],files:[so,io]},paths:{rulePath(e){return `${fs}/${e}.md`},commandPath(e){return `${gs}/${e}.md`},agentPath(e){return `${hs}/${e}.md`}}},BQ={rootInstructionPath:hi,skillDir:yi,managedOutputs:{dirs:[Pa,Da,Na,yi,zb],files:[hi,Ri]},rewriteGeneratedPath(e){return e===so?hi:e===io?Ri:e},mirrorGlobalPath(e,t){return de(e,yi,t)},paths:{rulePath(e){return `${Pa}/${e}.md`},commandPath(e){return `${Da}/${e}.md`},agentPath(e){return `${Na}/${e}.md`}}},iM={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Zf={id:_n,metadata:{displayName:"OpenCode",category:"cli",officialUrl:"https://opencode.ai",shortDescription:"Open-source terminal AI agent"},generators:jQ,capabilities:iM,emptyImportMessage:"No OpenCode config found (AGENTS.md, .opencode/rules, .opencode/commands, .opencode/agents, .opencode/skills, or opencode.json).",lintRules:eM,lint:{hooks:rM,permissions:nM,ignore:oM},project:UQ,globalSupport:{capabilities:iM,detectionPaths:[hi,Pa,Da,Na,yi,Ri],layout:BQ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[so],global:[hi]},canonicalDir:wp,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[fs],global:[Pa]},canonicalDir:wp,extensions:[".md"],map:XF}],commands:{feature:"commands",mode:"directory",source:{project:[gs],global:[Da]},canonicalDir:tf,extensions:[".md"],map:qF},agents:{feature:"agents",mode:"directory",source:{project:[hs],global:[Na]},canonicalDir:rf,extensions:[".md"],map:QF}},buildImportPaths:t_,detectionPaths:[fs,gs,hs,Sn,io,"opencode.jsonc"]};});function aM(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(ao)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:vr,content:o}]:[]}function lM(e){return ie(e,ct)}function cM(e){return e.commands.map(t=>({path:`${ct}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function mM(e){return e.agents.map(t=>({path:`${ct}/${K(t.name)}/SKILL.md`,content:De(t)}))}var pM=d(()=>{se();Ue();ue();we();fc();s(aM,"generateRules");s(lM,"generateSkills");s(cM,"generateCommands");s(mM,"generateAgents");});async function uM(e,t={}){let r=t.scope??"project",n=[],o=await z(ao,e,r);return n.push(...await q(eg,e,r,{normalize:o})),await oe(e,r==="global"?Fr:ct,ao,n,o),n}var dM=d(()=>{ge();se();be();fc();JS();s(uM,"importFromPiAgent");});function fM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ao}))}var gM=d(()=>{Ie();fc();s(fM,"lintRules");});function hM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","pi-agent","Pi Coding Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function yM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","pi-agent","Pi Coding Agent has no dedicated permissions config; canonical permissions are not projected.")]}function RM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","pi-agent","Pi Coding Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function _M(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","pi-agent","Pi Coding Agent manages MCP servers via extensions, not a dedicated config file; canonical MCP servers are not projected.")]}var SM=d(()=>{Oe();s(hM,"lintHooks");s(yM,"lintPermissions");s(RM,"lintIgnore");s(_M,"lintMcp");});var KQ,WQ,HQ,kM,eg,JS=d(()=>{we();ue();pM();pt();dM();gM();SM();n_();fc();KQ={name:ao,primaryRootInstructionPath:vr,generateRules:aM,generateCommands:cM,generateAgents:mM,generateSkills:lM,importFrom:uM},WQ={rootInstructionPath:vr,skillDir:ct,managedOutputs:{dirs:[ct],files:[vr]},paths:{rulePath(e){return vr},commandPath(e){return `${ct}/${J(e)}/SKILL.md`},agentPath(e){return `${ct}/${K(e)}/SKILL.md`}}},HQ={rootInstructionPath:ys,skillDir:Fr,managedOutputs:{dirs:[Fr],files:[ys]},rewriteGeneratedPath(e){return e===vr?ys:e.startsWith(`${ct}/`)?e.replace(`${ct}/`,`${Fr}/`):e},mirrorGlobalPath(e,t){return de(e,Fr,t)},paths:{rulePath(e){return ys},commandPath(e){return `${Fr}/${J(e)}/SKILL.md`},agentPath(e){return `${Fr}/${K(e)}/SKILL.md`}}},kM={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},eg={id:ao,metadata:{displayName:"Pi Agent",category:"cli",officialUrl:"https://github.com/pi-labs/pi-agent",shortDescription:"Pi coding agent"},generators:KQ,capabilities:kM,emptyImportMessage:"No Pi Coding Agent config found (AGENTS.md or .pi/skills).",lintRules:fM,lint:{hooks:hM,permissions:yM,ignore:RM,mcp:_M},supportsConversion:{commands:true,agents:true},project:WQ,globalSupport:{capabilities:kM,detectionPaths:[ys],layout:HQ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[vr],global:[ys]},canonicalDir:Yb,canonicalRootFilename:"_root.md",markAsRoot:true}},sharedArtifacts:{".agents/skills/":"consumer"},buildImportPaths:r_,detectionPaths:[vr,ct]};});function IM(e){let t=[],r=e.rules.find(o=>o.root);r&&t.push({path:Mr,content:r.body.trim()?r.body:""});let n=e.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes(kn)));for(let o of n){let i=basename(o.source,".md"),a={};o.description&&(a.description=o.description),o.globs.length>0&&(a.globs=o.globs);let l=D(a,o.body.trim()||"");t.push({path:`${Rs}/${i}.md`,content:l});}return t}function LM(e){return e.commands.map(t=>{let r={description:t.description,"allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};r["allowed-tools"]===void 0&&delete r["allowed-tools"];let n=D(r,t.body.trim()||"");return {path:`${lo}/${t.name}.md`,content:n}})}function CM(e){return e.agents.map(t=>{let r={name:t.name,description:t.description,tools:t.tools.length>0?t.tools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,t.body.trim()||"");return {path:`${co}/${t.name}.md`,content:n}})}function EM(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=D(n,r.body.trim()||"");t.push({path:`${nr}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles){let a=i.relativePath.replace(/\\/g,"/");t.push({path:`${nr}/${r.name}/${a}`,content:i.content});}}return t}function wM(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:_i,content:t}]}function bM(e){return !e.ignore||e.ignore.length===0?[]:[{path:Si,content:e.ignore.join(`
|
|
147
|
+
`)}]}function OM(e){let t=e.rules.find(n=>n.root),r=e.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes(kn));return ae(t?.body.trim()??"",r)}var AM=d(()=>{B();Ue();gc();s(IM,"generateRules");s(LM,"generateCommands");s(CM,"generateAgents");s(EM,"generateSkills");s(wM,"generateMcp");s(bM,"generateIgnore");s(OM,"renderQwenGlobalInstructions");});async function xM(e,t={}){let r=t.scope??"project",n=[],o=await z(kn,e,r);return n.push(...await q(tg,e,r,{normalize:o})),await oe(e,r==="global"?mo:nr,kn,n,o),n}var TM=d(()=>{ge();be();se();gc();YS();s(xM,"importFromQwenCode");});function PM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:kn}))}var DM=d(()=>{Ie();gc();s(PM,"lintRules");});var VQ,JQ,YQ,XQ,qQ,tg,YS=d(()=>{AM();TM();DM();Ce();gc();VQ={name:kn,primaryRootInstructionPath:Mr,generateRules:IM,generateCommands:LM,generateAgents:CM,generateSkills:EM,generateMcp:wM,generateIgnore:bM,importFrom:xM},JQ={rootInstructionPath:Mr,skillDir:nr,managedOutputs:{dirs:[Rs,lo,co,nr],files:[Mr,_i,Si]},paths:{rulePath(e,t){return t.root?Mr:`${Rs}/${e}.md`},commandPath(e){return `${lo}/${e}.md`},agentPath(e){return `${co}/${e}.md`}}},YQ={rootInstructionPath:_s,renderPrimaryRootInstruction:OM,skillDir:mo,managedOutputs:{dirs:[ki,Ii,mo],files:[_s,Fa]},rewriteGeneratedPath(e){return e===Mr?_s:e===_i?Fa:e===Si?null:e.startsWith(`${lo}/`)?e.replace(`${lo}/`,`${ki}/`):e.startsWith(`${co}/`)?e.replace(`${co}/`,`${Ii}/`):e.startsWith(`${nr}/`)?e.replace(`${nr}/`,`${mo}/`):e.startsWith(`${Rs}/`)?null:e},paths:{rulePath(e,t){return _s},commandPath(e){return `${ki}/${e}.md`},agentPath(e){return `${Ii}/${e}.md`}}},XQ={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},qQ={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},tg={id:kn,metadata:{displayName:"Qwen Code",category:"cli",officialUrl:"https://github.com/QwenLM/qwen-code",shortDescription:"Alibaba's Qwen coding CLI"},generators:VQ,capabilities:XQ,emptyImportMessage:"No Qwen Code config found (QWEN.md or .qwen/rules, .qwen/commands, .qwen/settings.json).",lintRules:PM,project:JQ,globalSupport:{capabilities:qQ,detectionPaths:[_s,Fa,ki,Ii,mo],layout:YQ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Mr],global:[_s]},canonicalDir:o_,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Rs],global:[]},canonicalDir:o_,extensions:[".md"],preset:"rule"}],commands:{feature:"commands",mode:"directory",source:{project:[lo],global:[ki]},canonicalDir:Xb,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[co],global:[Ii]},canonicalDir:qb,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[_i],global:[Fa]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/mcp.json"},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Si],global:[]},canonicalDir:".agentsmesh",canonicalFilename:".agentsmesh/ignore"}},buildImportPaths:s_,detectionPaths:[Mr,".qwen/settings.json",".qwen/commands",".qwen/rules"]};});function NM(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(po)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:In,content:o}]:[]}function vM(e){return ie(e,Bt)}function FM(e){return e.commands.map(t=>({path:`${Bt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function MM(e){return e.agents.map(t=>({path:`${Bt}/${K(t.name)}/SKILL.md`,content:De(t)}))}var $M=d(()=>{se();Ue();ue();we();hc();s(NM,"generateRules");s(vM,"generateSkills");s(FM,"generateCommands");s(MM,"generateAgents");});async function GM(e,t={}){let r=t.scope??"project",n=[],o=await z(po,e,r);return n.push(...await q(rg,e,r,{normalize:o})),await oe(e,Bt,po,n,o),n}var jM=d(()=>{ge();se();be();hc();XS();s(GM,"importFromReplitAgent");});function UM(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:po}))}var BM=d(()=>{Ie();hc();s(UM,"lintRules");});function KM(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","replit-agent","Replit Agent has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function WM(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","replit-agent","Replit Agent permissions are managed in the cloud UI; canonical permissions are not projected.")]}function HM(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","replit-agent","Replit Agent has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}function zM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","replit-agent","Replit Agent MCP servers are configured via the Integrations UI, not file-based; canonical MCP config is not projected.")]}var VM=d(()=>{Oe();s(KM,"lintHooks");s(WM,"lintPermissions");s(HM,"lintIgnore");s(zM,"lintMcp");});var QQ,ZQ,eZ,rg,XS=d(()=>{we();ue();$M();jM();BM();VM();a_();hc();QQ={name:po,primaryRootInstructionPath:In,generateRules:NM,generateCommands:FM,generateAgents:MM,generateSkills:vM,importFrom:GM},ZQ={rootInstructionPath:In,skillDir:Bt,managedOutputs:{dirs:[Bt],files:[In]},paths:{rulePath(e){return In},commandPath(e){return `${Bt}/${J(e)}/SKILL.md`},agentPath(e){return `${Bt}/${K(e)}/SKILL.md`}}},eZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},rg={id:po,metadata:{displayName:"Replit Agent",category:"agent-platform",officialUrl:"https://replit.com",shortDescription:"Replit's autonomous coding agent"},generators:QQ,capabilities:eZ,emptyImportMessage:"No Replit Agent config found (replit.md or .agents/skills).",lintRules:UM,lint:{hooks:KM,permissions:WM,ignore:HM,mcp:zM},supportsConversion:{commands:true,agents:true},project:ZQ,sharedArtifacts:{".agents/skills/":"consumer"},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[In]},canonicalDir:Zb,canonicalRootFilename:"_root.md",markAsRoot:true}},buildImportPaths:i_,detectionPaths:[In]};});function YM(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:Ln,content:r.body.trim()||""});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Li))continue;let o=basename(n.source,".md");t.push({path:`${Ss}/${o}.md`,content:n.body.trim()||""});}return t}function XM(e){return e.commands.map(t=>{let r={};return t.description&&(r.description=t.description),{path:`${ks}/${t.name}.md`,content:D(r,t.body.trim()||"")}})}function qM(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Op,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function QM(e){return e.ignore.length===0?[]:[{path:Ap,content:e.ignore.join(`
|
|
148
|
+
`)}]}function ZM(e){return ie(e,uo)}function e$(e){if(e.agents.length===0)return [];let t=e.agents.map(r=>{let o={slug:basename(r.source,".md"),name:r.name};return r.description&&(o.description=r.description),r.body.trim()&&(o.roleDefinition=r.body.trim()),o});return [{path:yc,content:stringify({customModes:t})}]}var t$=d(()=>{se();B();ja();s(YM,"generateRules");s(XM,"generateCommands");s(qM,"generateMcp");s(QM,"generateIgnore");s(ZM,"generateSkills");s(e$,"generateAgents");});var ng,n$,qS=d(()=>{B();fe();ja();ng=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{if(e==="00-root.md")return null;let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${Ga}/${e}`,content:await V(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},i)}},"rooNonRootRuleMapper"),n$=s(async({relativePath:e,normalizeTo:t,destDir:r})=>{let n=join(r,e),{frontmatter:o,body:i}=x(t(n));return {destPath:n,toPath:`${of}/${e}`,content:await Se(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},i)}},"rooCommandMapper");});async function nZ(e,t,r){let n=join(e,Ma),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let i=o.filter(l=>l.isDirectory()&&l.name.startsWith("rules-")).map(l=>l.name),a=join(e,Ga);for(let l of i)t.push(...await ke({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:Li,normalize:r,mapEntry:s(async({srcPath:c,relativePath:m,content:p,normalizeTo:u})=>{let f=await ng({absolutePath:c,relativePath:m,content:p,destDir:a,normalizeTo:u});return f?{...f,feature:"rules"}:null},"mapEntry")}));}async function o$(e,t={}){let r=t.scope??"project",n=[],o=await z(Li,e,r);return n.push(...await q(og,e,r,{normalize:o})),await nZ(e,n,o),await oe(e,uo,Li,n,o),n}var s$=d(()=>{ge();se();Yt();be();qS();ja();ZS();s(nZ,"importPerModeRules");s(o$,"importFromRooCode");});function i$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Li}))}var a$=d(()=>{Ie();ja();s(i$,"lintRules");});function cZ(e,t){return e===null?"created":e!==t?"updated":"unchanged"}var aZ,lZ,mZ,pZ,uZ,og,ZS=d(()=>{A();t$();ja();pt();s$();qS();a$();Ce();aZ={name:"roo-code",primaryRootInstructionPath:Ln,generateRules:YM,generateCommands:XM,generateSkills:ZM,generateMcp:qM,generateIgnore:QM,generateAgents:e$,importFrom:o$},lZ={rootInstructionPath:Ln,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",yc]},paths:{rulePath(e,t){return `${Ss}/${e}.md`},commandPath(e,t){return `${ks}/${e}.md`},agentPath(e,t){return null}}};s(cZ,"computeStatus");mZ=s(async(e,t,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||e.agents.length===0)return [];let o=e.agents.map(l=>{let m={slug:basename(l.source,".md"),name:l.name};return l.description&&(m.description=l.description),l.body.trim()&&(m.roleDefinition=l.body.trim()),m}),i=stringify({customModes:o}),a=await k(join(t,xp));return [{target:"roo-code",path:xp,content:i,currentContent:a??void 0,status:cZ(a,i)}]},"generateRooGlobalExtras"),pZ={rootInstructionPath:wi,skillDir:Is,managedOutputs:{dirs:[Ci,Ei,Is,eO],files:[wi,$a,Tp,xp]},rewriteGeneratedPath(e){return e===Ln?wi:e===yc?null:e.startsWith(`${Ss}/`)?e.replace(`${Ss}/`,`${Ci}/`):e.startsWith(`${ks}/`)?e.replace(`${ks}/`,`${Ei}/`):e.startsWith(`${uo}/`)?e.replace(`${uo}/`,`${Is}/`):e===Op?$a:e===Ap?Tp:e},mirrorGlobalPath(e,t){return de(e,Is,t)},paths:{rulePath(e,t){return `${Ci}/${e}.md`},commandPath(e,t){return `${Ei}/${e}.md`},agentPath(e,t){return null}}},uZ={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},og={id:"roo-code",metadata:{displayName:"Roo Code",category:"ide",officialUrl:"https://roocode.com",shortDescription:"Open-source AI VS Code extension"},generators:aZ,capabilities:{rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Roo Code config found (.roo/rules, .roo/commands, .roo/skills, .roo/mcp.json, .rooignore, or .roorules).",lintRules:i$,project:lZ,globalSupport:{capabilities:uZ,detectionPaths:[Ci,Ei,Is,$a,Tp,wi,xp],layout:pZ,scopeExtras:mZ},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Ln,bp],global:[wi,Ln,bp]},canonicalDir:Ga,canonicalRootFilename:"_root.md",markAsRoot:true,frontmatterRemap:s(({description:e,globs:t})=>({description:typeof e=="string"?e:void 0,globs:Array.isArray(t)?t:void 0}),"frontmatterRemap")},{feature:"rules",mode:"directory",source:{project:[Ss],global:[Ci]},canonicalDir:Ga,extensions:[".md"],map:ng}],commands:{feature:"commands",mode:"directory",source:{project:[ks],global:[Ei]},canonicalDir:of,extensions:[".md"],map:n$},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Op],global:[$a]},canonicalDir:".agentsmesh",canonicalFilename:tO},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ap],global:[Tp]},canonicalDir:".agentsmesh",canonicalFilename:rO}},buildImportPaths:l_,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",yc]};});function l$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(fo)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:$r,content:o}]:[]}function c$(e){return ie(e,mt)}function m$(e){return e.commands.map(t=>({path:`${mt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function p$(e){return e.agents.map(t=>({path:`${mt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function u$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:Ls,content:t}]}var d$=d(()=>{se();Ue();ue();we();_c();s(l$,"generateRules");s(c$,"generateSkills");s(m$,"generateCommands");s(p$,"generateAgents");s(u$,"generateMcp");});async function f$(e,t={}){let r=t.scope??"project",n=[],o=await z(fo,e,r);return n.push(...await q(sg,e,r,{normalize:o})),await oe(e,r==="global"?or:mt,fo,n,o),n}var g$=d(()=>{ge();se();be();_c();ek();s(f$,"importFromRovodev");});function h$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:fo}))}var y$=d(()=>{Ie();_c();s(h$,"lintRules");});function R$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","rovodev","Rovo Dev has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function _$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","rovodev","Rovo Dev permissions are managed in config.yaml; canonical permissions are not projected.")]}function S$(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","rovodev","Rovo Dev has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var k$=d(()=>{Oe();s(R$,"lintHooks");s(_$,"lintPermissions");s(S$,"lintIgnore");});var dZ,fZ,gZ,hZ,yZ,sg,ek=d(()=>{we();ue();d$();pt();g$();y$();k$();Ce();_c();dZ={name:fo,primaryRootInstructionPath:$r,generateRules:l$,generateCommands:m$,generateAgents:p$,generateSkills:c$,generateMcp:u$,importFrom:f$},fZ={rootInstructionPath:$r,skillDir:mt,managedOutputs:{dirs:[mt],files:[$r,Ls]},paths:{rulePath(e){return $r},commandPath(e){return `${mt}/${J(e)}/SKILL.md`},agentPath(e){return `${mt}/${K(e)}/SKILL.md`}}},gZ={rootInstructionPath:Cs,skillDir:or,managedOutputs:{dirs:[or],files:[Cs,Rc]},rewriteGeneratedPath(e){return e===$r?Cs:e.startsWith(`${mt}/`)?e.replace(`${mt}/`,`${or}/`):e===Ls?Rc:e},mirrorGlobalPath(e,t){return de(e,or,t)},paths:{rulePath(e){return Cs},commandPath(e){return `${or}/${J(e)}/SKILL.md`},agentPath(e){return `${or}/${K(e)}/SKILL.md`}}},hZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},yZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},sg={id:fo,metadata:{displayName:"Rovo Dev",category:"cli",officialUrl:"https://www.atlassian.com/solutions/devops/rovo-dev",shortDescription:"Atlassian's coding agent"},generators:dZ,capabilities:hZ,emptyImportMessage:"No Rovo Dev config found (AGENTS.md, .rovodev/skills, or .rovodev/mcp.json).",lintRules:h$,lint:{hooks:R$,permissions:_$,ignore:S$},supportsConversion:{commands:true,agents:true},project:fZ,globalSupport:{capabilities:yZ,detectionPaths:[sO,Cs,or],layout:gZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[$r],global:[Cs]},canonicalDir:iO,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ls],global:[Rc]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:c_,detectionPaths:[$r,mt,Ls]};});function I$(e){let t=[],r=e.rules.find(n=>n.root);r&&t.push({path:ir,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Gr))continue;let o=basename(n.source,".md");t.push({path:`${sr}/${o}.md`,content:n.body.trim()});}return t}function L$(e){return ie(e,jr)}function C$(e){return e.mcp===null||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:Ua,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}function E$(e){return e.ignore.length===0?[]:[{path:Sc,content:e.ignore.join(`
|
|
149
|
+
`)}]}var w$=d(()=>{se();kc();s(I$,"generateRules");s(L$,"generateSkills");s(C$,"generateMcp");s(E$,"generateIgnore");});async function SZ(e,t,r,n){let o=n==="global"?[Ur,ir]:[ir,Ur];for(let i of o){let a=join(e,i),l=await k(a);if(l===null)continue;let c=join(e,b$),{frontmatter:m,body:p}=x(r(l,a,c));await w(join(e,Dp)),await L(c,await V(c,{...m,root:true},p)),t.push({fromTool:Gr,fromPath:a,toPath:b$,feature:"rules"});return}}async function kZ(e,t,r,n){let o=join(e,n==="global"?Es:sr),i=join(e,Dp);t.push(...await ke({srcDir:o,destDir:i,extensions:[".md"],fromTool:Gr,normalize:r,mapEntry:s(async({relativePath:a,normalizeTo:l})=>{let c=basename(a);if(c==="project_rules.md"||c==="rules.md")return null;let m=join(i,a),{frontmatter:p,body:u}=x(l(m));return {destPath:m,toPath:`${Dp}/${a}`,feature:"rules",content:await V(m,{...p,root:false},u)}},"mapEntry")}));}async function O$(e,t={}){let r=t.scope??"project",n=[],o=await z(Gr,e,r);return await SZ(e,n,o,r),await kZ(e,n,o,r),n.push(...await q(ig,e,r,{normalize:o})),await oe(e,r==="global"?Cn:jr,Gr,n,o),n}var b$,A$=d(()=>{ge();se();Yt();be();fe();A();B();kc();tk();b$=`${Dp}/_root.md`;s(SZ,"importRoot");s(kZ,"importNonRootRules");s(O$,"importFromTrae");});function x$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Gr}))}var T$=d(()=>{Ie();kc();s(x$,"lintRules");});var IZ,LZ,CZ,EZ,ig,tk=d(()=>{w$();pt();A$();T$();Ce();kc();IZ={name:Gr,primaryRootInstructionPath:ir,generateRules:I$,generateSkills:L$,generateMcp:C$,generateIgnore:E$,importFrom:O$},LZ={rootInstructionPath:ir,skillDir:jr,managedOutputs:{dirs:[sr,jr],files:[Ua,Sc]},paths:{rulePath(e,t){return `${sr}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},CZ={rootInstructionPath:Ur,skillDir:Cn,managedOutputs:{dirs:[Es,Cn,lO],files:[Ur,Pp]},rewriteGeneratedPath(e){return e===ir?Ur:e.startsWith(`${sr}/`)?e.replace(`${sr}/`,`${Es}/`):e.startsWith(`${jr}/`)?e.replace(`${jr}/`,`${Cn}/`):e===Ua?Pp:e===Sc?null:e},mirrorGlobalPath(e,t){return de(e,Cn,t)},paths:{rulePath(e,t){return e==="_root"?Ur:`${Es}/${e}.md`},commandPath(e,t){return null},agentPath(e,t){return null}}},EZ={rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ig={id:Gr,metadata:{displayName:"Trae",category:"ide",officialUrl:"https://www.trae.ai",shortDescription:"ByteDance's adaptive AI IDE"},generators:IZ,capabilities:{rules:"native",additionalRules:"native",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},emptyImportMessage:"No Trae config found (.trae/rules/project_rules.md, .trae/rules/*.md, .trae/skills/, .trae/mcp.json, or .trae/.ignore).",lintRules:x$,project:LZ,globalSupport:{capabilities:EZ,detectionPaths:[Ur,Es,Cn,Pp],layout:CZ},importer:{mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Ua],global:[Pp]},canonicalDir:".agentsmesh",canonicalFilename:cO},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Sc]},canonicalDir:".agentsmesh",canonicalFilename:mO}},buildImportPaths:m_,detectionPaths:[sr,Ua,ir]};});function P$(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes(go)),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:En,content:o}]:[]}function D$(e){return ie(e,Lt)}function N$(e){return e.commands.map(t=>({path:`${Lt}/${J(t.name)}/SKILL.md`,content:$e(t)}))}function v$(e){return e.agents.map(t=>({path:`${Lt}/${K(t.name)}/SKILL.md`,content:De(t)}))}function F$(e){if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let t=JSON.stringify({mcpServers:e.mcp.mcpServers},null,2);return [{path:bi,content:t}]}var M$=d(()=>{se();Ue();ue();we();Ic();s(P$,"generateRules");s(D$,"generateSkills");s(N$,"generateCommands");s(v$,"generateAgents");s(F$,"generateMcp");});async function $$(e,t={}){let r=t.scope??"project",n=[],o=await z(go,e,r);return n.push(...await q(ag,e,r,{normalize:o})),await oe(e,r==="global"?ar:Lt,go,n,o),n}var G$=d(()=>{ge();se();be();Ic();rk();s($$,"importFromWarp");});function j$(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:go}))}var U$=d(()=>{Ie();Ic();s(j$,"lintRules");});function B$(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","warp","Warp has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function K$(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","warp","Warp permissions are UI-managed; canonical permissions are not projected.")]}function W$(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","warp","Warp has no dedicated ignore file and relies on .gitignore; canonical ignore patterns are not projected.")]}var H$=d(()=>{Oe();s(B$,"lintHooks");s(K$,"lintPermissions");s(W$,"lintIgnore");});var wZ,bZ,OZ,AZ,xZ,ag,rk=d(()=>{we();ue();M$();pt();G$();U$();H$();Ce();Ic();wZ={name:go,primaryRootInstructionPath:En,generateRules:P$,generateCommands:N$,generateAgents:v$,generateSkills:D$,generateMcp:F$,importFrom:$$},bZ={rootInstructionPath:En,skillDir:Lt,managedOutputs:{dirs:[Lt],files:[En,bi]},paths:{rulePath(e){return En},commandPath(e){return `${Lt}/${J(e)}/SKILL.md`},agentPath(e){return `${Lt}/${K(e)}/SKILL.md`}}},OZ={rootInstructionPath:void 0,skillDir:ar,managedOutputs:{dirs:[ar],files:[]},rewriteGeneratedPath(e){return e.startsWith(`${Lt}/`)?e.replace(`${Lt}/`,`${ar}/`):e},mirrorGlobalPath(e,t){return de(e,ar,t)},paths:{rulePath(){return null},commandPath(e){return `${ar}/${J(e)}/SKILL.md`},agentPath(e){return `${ar}/${K(e)}/SKILL.md`}}},AZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},xZ={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},ag={id:go,metadata:{displayName:"Warp",category:"cli",officialUrl:"https://www.warp.dev",shortDescription:"AI-powered terminal"},generators:wZ,capabilities:AZ,emptyImportMessage:"No Warp config found (WARP.md, AGENTS.md, .warp/skills, or .mcp.json).",lintRules:j$,lint:{hooks:B$,permissions:K$,ignore:W$},supportsConversion:{commands:true,agents:true},project:bZ,globalSupport:{capabilities:xZ,detectionPaths:[ar],layout:OZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[p_,En]},canonicalDir:uO,canonicalRootFilename:"_root.md",markAsRoot:true},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[bi]},canonicalDir:".agentsmesh",canonicalFilename:"mcp.json"}},buildImportPaths:u_,detectionPaths:[En,p_,bi],conversionDefaults:{commandsToSkills:true,agentsToSkills:true}};});var Eo,nk,vi,z$,$c,wo,Gc,jc,V$,Fi,An,Uc,ok,J$,Y$,sk,ik,ak,Bc,Kc,Jp,lg,cg,mg,X$,Nt=d(()=>{Eo="windsurf",nk=".windsurfrules",vi=".windsurf/rules",z$=".windsurfignore",$c=".codeiumignore",wo="AGENTS.md",Gc=".windsurf/hooks.json",jc=".windsurf/mcp_config.example.json",V$=".windsurf/mcp_config.json",Fi=".windsurf/workflows",An=".windsurf/skills",Uc=".agentsmesh/rules",ok=".agentsmesh/commands",J$=".agentsmesh/agents",Y$=".agentsmesh/skills",sk=".agentsmesh/ignore",ik=".agentsmesh/hooks.yaml",ak=".agentsmesh/mcp.json",Bc=".codeium/windsurf/memories/global_rules.md",Kc=".codeium/windsurf/skills",Jp=".codeium/windsurf/global_workflows",lg=".codeium/windsurf/hooks.json",cg=".codeium/windsurf/mcp_config.json",mg=".codeium/.codeiumignore",X$=".agents/skills";});function PZ(e){let t=basename(e,".md");return t==="_root"?"root":t}function DZ(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}function lk(e){let t=[],r=e.rules.find(n=>n.root);if(!r)return [];t.push({path:wo,content:r.body.trim()});for(let n of e.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=PZ(n.source),i=n.trigger||(n.globs.length>0?"glob":void 0),a={description:n.description||void 0,trigger:i,glob:n.globs.length===1?n.globs[0]:void 0,globs:n.globs.length>1?n.globs:void 0};Object.keys(a).forEach(m=>{a[m]===void 0&&delete a[m];});let l=Object.keys(a).length>0?D(a,n.body.trim()||""):n.body.trim()||"";t.push({path:`${vi}/${o}.md`,content:l});let c=DZ(n.globs);c&&(c!==o&&t.push({path:`${vi}/${c}.md`,content:l}),t.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return t}var q$=d(()=>{B();Nt();s(PZ,"ruleSlug");s(DZ,"directoryScopedRuleDir");s(lk,"generateRules");});function ck(e){return !e.ignore||e.ignore.length===0?[]:[{path:$c,content:e.ignore.join(`
|
|
150
|
+
`)}]}var Q$=d(()=>{Nt();s(ck,"generateIgnore");});function mk(e){return e.commands.map(t=>{let r={description:t.description.trim()||void 0,allowedTools:t.allowedTools.length>0?t.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?D(r,t.body.trim()||""):t.body.trim();return {path:`${Fi}/${t.name}.md`,content:n}})}var Z$=d(()=>{B();Nt();s(mk,"generateCommands");});function pk(e){return e.agents.map(t=>({path:`${An}/${K(t.name)}/SKILL.md`,content:De(t)}))}var eG=d(()=>{ue();Nt();s(pk,"generateAgents");});function uk(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[{path:jc,content:JSON.stringify({mcpServers:e.mcp.mcpServers},null,2)}]}var tG=d(()=>{Nt();s(uk,"generateMcp");});function NZ(e){let t={PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Notification:"notification",UserPromptSubmit:"user_prompt_submit",SubagentStart:"subagent_start",SubagentStop:"subagent_stop"};return t[e]?t[e]:e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function vZ(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=[];for(let i of n){if(!Fn(i))continue;let a=Ze(i),l=At(i),c=i.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(t[NZ(r)]=o);}return t}function dk(e){if(!e.hooks||Object.keys(e.hooks).length===0)return [];let t=vZ(e.hooks);return Object.keys(t).length===0?[]:[{path:Gc,content:JSON.stringify({hooks:t},null,2)}]}var rG=d(()=>{qr();Nt();s(NZ,"windsurfEventName");s(vZ,"toWindsurfHooks");s(dk,"generateHooks");});function fk(e){let t=[];for(let r of e.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=Object.keys(n).length>0?D(n,r.body.trim()||""):r.body.trim()||"";t.push({path:`${An}/${r.name}/SKILL.md`,content:o});for(let i of r.supportingFiles)t.push({path:`${An}/${r.name}/${i.relativePath}`,content:i.content});}return t}var nG=d(()=>{B();Nt();s(fk,"generateSkills");});var oG=d(()=>{q$();Q$();Z$();eG();tG();rG();nG();});var sG=d(()=>{oG();});function iG(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean):typeof e=="string"?e.split(",").map(t=>t.trim()).filter(Boolean):[]}async function aG(e,t,r){let n=join(e,Fi),i=(await U(n)).filter(l=>l.endsWith(".md")),a=join(e,ok);for(let l of i){let c=await k(l);if(!c)continue;let m=relative(n,l).replace(/\\/g,"/");await w(a);let p=join(a,m),u=r(c,l,p),{frontmatter:f,body:g}=x(u),h=await Se(p,{description:typeof f.description=="string"?f.description:"",hasDescription:Object.prototype.hasOwnProperty.call(f,"description"),allowedTools:(()=>{let R=iG(f.allowedTools);return R.length>0?R:iG(f["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(f,"allowedTools")||Object.prototype.hasOwnProperty.call(f,"allowed-tools")},g);await L(p,h),t.push({fromTool:Eo,fromPath:l,toPath:`${ok}/${m}`,feature:"commands"});}}var lG=d(()=>{A();B();fe();Nt();s(iG,"toStringArray");s(aG,"importWorkflows");});async function cG(e,t,r,n=An){await Ec([n],{projectRoot:e,destCanonicalSkillsDir:Y$,targetName:"windsurf",normalize:r,results:t},[wc({canonicalAgentsDir:J$})]);}var mG=d(()=>{bc();Nt();s(cG,"importSkills");});async function uG(e,t){let r=join(e,Gc),n=await k(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let i=GZ(o.hooks);if(Object.keys(i).length===0)return;let a=join(e,ik);await w(dirname(a)),await L(a,stringify(i)),t.push({fromTool:Eo,fromPath:r,toPath:ik,feature:"hooks"});}catch{}}function $Z(e){return {pre_tool_use:"PreToolUse",post_tool_use:"PostToolUse",notification:"Notification",user_prompt_submit:"UserPromptSubmit",subagent_start:"SubagentStart",subagent_stop:"SubagentStop"}[e]??e}function GZ(e){let t={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let o=$Z(r),i=[];for(let a of n){if(!a||typeof a!="object")continue;let l=a;if(typeof l.command=="string"&&l.command.trim()){i.push({matcher:".*",type:"command",command:l.command});continue}let c=typeof l.matcher=="string"&&l.matcher.trim()?l.matcher:".*",m=Array.isArray(l.hooks)?l.hooks:[];for(let p of m){if(!p||typeof p!="object")continue;let u=p,f=typeof u.command=="string"?u.command:typeof u.prompt=="string"?u.prompt:"";if(!f.trim())continue;let g={matcher:c,type:u.type==="prompt"?"prompt":"command",command:f};typeof u.timeout=="number"&&(g.timeout=u.timeout),i.push(g);}}i.length>0&&(t[o]=i);}return t}async function dG(e,t){let r=[jc,V$];for(let n of r){let o=join(e,n),i=await k(o);if(i)try{let a=JSON.parse(i);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(e,ak);await w(dirname(l)),await L(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),t.push({fromTool:Eo,fromPath:o,toPath:ak,feature:"mcp"});return}catch{}}}var fG=d(()=>{A();Nt();s(uG,"importWindsurfHooks");s($Z,"canonicalHookEventName");s(GZ,"windsurfHooksToCanonical");s(dG,"importWindsurfMcp");});async function gG(e,t){let r=t?.scope??"project",n=[],o=await z(Eo,e),i=await z("codex-cli",e),a=join(e,Uc),l=join(e,nk),c=await k(l);if(c!==null){await w(a);let f=join(a,"_root.md"),g=o(c,l,f).trim(),h=await V(f,{root:true},g);await L(f,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${Uc}/_root.md`,feature:"rules"});}if(c===null){let f=join(e,wo),g=await k(f);if(g!==null){await w(a);let h=join(a,"_root.md"),R=o(i(g,f,h),f,h).trim(),_=await V(h,{root:true},R);await L(h,_),n.push({fromTool:"windsurf",fromPath:f,toPath:`${Uc}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await ke({srcDir:e,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({srcPath:f,normalizeTo:g})=>{let h=relative(e,dirname(f)).replace(/\\/g,"/");if(!h||h==="."||basename(f)!=="AGENTS.md")return null;let R=h.replace(/\//g,"-");if(!wd(h))return await $n(join(a,`${R}.md`)),null;let _=join(a,`${R}.md`);return {destPath:_,toPath:`${Uc}/${R}.md`,feature:"rules",content:await V(_,{root:false,globs:[`${h}/**`]},g(_))}},"mapEntry")}));let m=join(e,vi);n.push(...await ke({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:s(async({relativePath:f,normalizeTo:g})=>{if(f==="_root.md"&&c!==null)return null;let h=join(a,f),{frontmatter:R,body:_}=x(g(h)),S={...R};return typeof S.glob=="string"&&S.glob.trim()&&(S.globs=[S.glob],delete S.glob),{destPath:h,toPath:`${Uc}/${f}`,feature:"rules",content:await V(h,{...S,root:false},_)}},"mapEntry")}));let p=join(e,z$),u=await k(p);if((u===null||!u.trim())&&(p=join(e,$c),u=await k(p)),u!==null&&u.trim()){let f=u.split(/\r?\n/),g=[];for(let h of f){let R=h.trim();R&&!R.startsWith("#")&&g.push(R);}if(g.length>0){await w(join(e,".agentsmesh"));let h=join(e,sk);await L(h,g.join(`
|
|
151
|
+
`)),n.push({fromTool:"windsurf",fromPath:p,toPath:sk,feature:"ignore"});}}return await aG(e,n,o),await cG(e,n,o),await uG(e,n),await dG(e,n),n}var hG=d(()=>{ge();A();B();fe();Yt();Vm();Nt();lG();mG();fG();s(gG,"importFromWindsurf");});function yG(e,t,r){let n=[],{rules:o}=e;o.length>0&&(o.some(l=>l.root)||n.push({level:"warning",file:relative(t,o[0].source),target:Eo,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let i=[];return e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)&&i.push("permissions"),i.length>0&&n.push({level:"warning",file:".agentsmesh",target:Eo,message:`Windsurf cannot project these features yet: ${i.join(", ")}.`}),n}var RG=d(()=>{Nt();s(yG,"lintRules");});function _G(e){return e.commands.filter(t=>t.description.length>0||t.allowedTools.length>0).map(t=>v(t.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function SG(e){return !e.mcp||Object.keys(e.mcp.mcpServers).length===0?[]:[v(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var kG=d(()=>{Oe();s(_G,"lintCommands");s(SG,"lintMcp");});function WZ(e){if(e.length===0)return null;let t=e.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return t.length!==e.length?null:t.every(r=>r===t[0])?t[0]:null}var HZ,zZ,VZ,JZ,IG,LG=d(()=>{sG();ea();Nt();pt();hG();RG();kG();Ce();Ml();ue();s(WZ,"directoryScopedRuleDir");HZ={name:"windsurf",primaryRootInstructionPath:wo,generateRules:lk,generateCommands:mk,generateAgents:pk,generateSkills:fk,generateMcp:uk,generateHooks:dk,generateIgnore:ck,importFrom:gG},zZ={rootInstructionPath:wo,extraRuleOutputPaths(e){if(e.root)return [wo];let t=WZ(e.globs);return t!==null?[`${t}/AGENTS.md`]:[]},skillDir:An,managedOutputs:{dirs:[".windsurf/rules",".windsurf/skills",".windsurf/workflows"],files:["AGENTS.md",".codeiumignore",".windsurf/hooks.json",".windsurf/mcp_config.example.json"]},paths:{rulePath(e,t){return `${vi}/${e}.md`},commandPath(e,t){return `${Fi}/${e}.md`},agentPath(e,t){return gr(t,"windsurf")?`.windsurf/skills/${K(e)}/SKILL.md`:null}}},VZ={rootInstructionPath:Bc,skillDir:Kc,managedOutputs:{dirs:[Kc,Jp,X$],files:[Bc,lg,cg,mg]},rewriteGeneratedPath(e){return e===wo?Bc:e.startsWith(`${vi}/`)||/\/AGENTS\.md$/.test(e)?null:e.startsWith(`${An}/`)?e.replace(`${An}/`,`${Kc}/`):e.startsWith(`${Fi}/`)?e.replace(`${Fi}/`,`${Jp}/`):e===Gc?lg:e===jc?cg:e===$c?mg:e},mirrorGlobalPath(e,t){return de(e,".codeium/windsurf/skills",t)},paths:{rulePath(e,t){return Bc},commandPath(e,t){return `${Jp}/${e}.md`},agentPath(e,t){return gr(t,"windsurf")?`${Kc}/${K(e)}/SKILL.md`:null}}},JZ={rules:"native",additionalRules:"partial",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},IG={id:"windsurf",metadata:{displayName:"Windsurf",category:"ide",officialUrl:"https://windsurf.com",shortDescription:"Codeium's agentic IDE"},generators:HZ,capabilities:{rules:"native",additionalRules:"native",commands:Zr("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},emptyImportMessage:"No Windsurf config found (.windsurfrules, .windsurf/rules, .windsurfignore, or .codeiumignore).",supportsConversion:{agents:true},lintRules:yG,lint:{commands:_G,mcp:SG},project:zZ,globalSupport:{capabilities:JZ,detectionPaths:[Bc,Kc,Jp,lg,cg,mg],layout:VZ},buildImportPaths:d_,detectionPaths:[".windsurfrules",".windsurf"],nativeInstall:{pickPaths:[{prefix:".windsurf/rules",feature:"rules",strategy:{kind:"basename",suffix:".md"}}],dialectHints:[{frontmatterKey:"trigger"}]},conversionDefaults:{agentsToSkills:true}};});function CG(e){let t=e.rules.find(i=>i.root),r=e.rules.filter(i=>i.root?false:i.targets.length===0||i.targets.includes("zed")),n=t?.body.trim()??"",o=ae(n,r);return o?[{path:wn,content:o}]:[]}var EG=d(()=>{Ue();Ba();s(CG,"generateRules");});async function bG(e,t,r){let n=await k(join(e,t));if(n===null)return;let o;try{o=JSON.parse(n);}catch{return}if(o===null||typeof o!="object"||Array.isArray(o))return;let a=o.context_servers;if(a==null||typeof a!="object"||Array.isArray(a)||Object.keys(a).length===0)return;let l={};for(let[c,m]of Object.entries(a)){if(!m||typeof m!="object"||Array.isArray(m))continue;let p={...m};delete p.source,l[c]=p;}Object.keys(l).length!==0&&(await Je(e,wG,l),r.push({fromTool:"zed",fromPath:t,toPath:wG,feature:"mcp"}));}var wG,OG=d(()=>{A();nn();Ba();wG=".agentsmesh/mcp.json";s(bG,"importZedMcp");});async function AG(e,t={}){let r=t.scope??"project",n=[],o=await z("zed",e,r);return n.push(...await q(ug,e,r,{normalize:o})),await bG(e,r==="global"?yo:ho,n),n}var xG=d(()=>{ge();be();OG();Ba();hk();s(AG,"importFromZed");});function TG(e,t,r,n){return X(e,t,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:"zed"}))}var PG=d(()=>{Ie();Ba();s(TG,"lintRules");});function DG(e){return e.hooks?Object.values(e.hooks).some(r=>Array.isArray(r)&&r.length>0)?[v(".agentsmesh/hooks.yaml","zed","Zed has no lifecycle hook system; canonical hooks are not projected.")]:[]:[]}function NG(e){if(!e.permissions)return [];let{allow:t,deny:r}=e.permissions,n=e.permissions.ask??[];return t.length===0&&r.length===0&&n.length===0?[]:[v(".agentsmesh/permissions.yaml","zed","Zed permissions are managed via agent.tool_permissions in settings.json; canonical permissions are not projected.")]}function vG(e){return e.ignore.length===0?[]:[v(".agentsmesh/ignore","zed","Zed has no dedicated ignore file and relies on file_scan_exclusions in settings.json; canonical ignore patterns are not projected.")]}var FG=d(()=>{Oe();s(DG,"lintHooks");s(NG,"lintPermissions");s(vG,"lintIgnore");});function t8(e,t){if(e===null)return t;let r;try{let i=JSON.parse(e);r=i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{};}catch{r={};}let n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return e;let o=n;return o.context_servers!==void 0&&(r.context_servers=o.context_servers),JSON.stringify(r,null,2)}var XZ,qZ,QZ,ZZ,e8,ug,hk=d(()=>{EG();xG();PG();FG();Ce();Ba();XZ={name:"zed",primaryRootInstructionPath:wn,generateRules:CG,importFrom:AG},qZ={rootInstructionPath:wn,managedOutputs:{dirs:[],files:[wn,ho]},paths:{rulePath(e){return wn},commandPath(){return null},agentPath(){return null}}},QZ={rootInstructionPath:void 0,managedOutputs:{dirs:[],files:[yo]},rewriteGeneratedPath(e){return e===ho?yo:e},paths:{rulePath(){return yo},commandPath(){return null},agentPath(){return null}}},ZZ={rules:"native",additionalRules:"embedded",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},e8={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"native",hooks:"none",ignore:"none",permissions:"none"};s(t8,"mergeZedSettings");ug={id:"zed",metadata:{displayName:"Zed",category:"ide",officialUrl:"https://zed.dev",shortDescription:"Collaborative AI editor"},generators:XZ,capabilities:ZZ,emptyImportMessage:"No Zed config found (.rules or .zed/settings.json).",lintRules:TG,lint:{hooks:DG,permissions:NG,ignore:vG},project:qZ,globalSupport:{capabilities:e8,detectionPaths:[yo],layout:QZ},importer:{rules:{feature:"rules",mode:"singleFile",source:{project:[wn],global:[]},canonicalDir:gO,canonicalRootFilename:"_root.md",markAsRoot:true}},emitScopedSettings(e,t,r){if(!r.has("mcp"))return [];if(!e.mcp||Object.keys(e.mcp.mcpServers).length===0)return [];let n={};for(let[o,i]of Object.entries(e.mcp.mcpServers))n[o]=i;return [{path:ho,content:JSON.stringify({context_servers:n},null,2)}]},mergeGeneratedOutputContent(e,t,r,n){return n===ho||n===yo?t8(e,r):null},buildImportPaths:f_,detectionPaths:[wn,ho]};});var zw={};my(zw,{BUILTIN_TARGETS:()=>Pe,TARGET_IDS:()=>je,getBuiltinTargetDefinition:()=>Hr,getEffectiveTargetSupportLevel:()=>dg,getTargetCapabilities:()=>Di,getTargetDetectionPaths:()=>Rk,getTargetLayout:()=>Ke,getTargetManagedOutputs:()=>_k,getTargetPrimaryRootInstructionPath:()=>o8,getTargetSkillDir:()=>Yp,isBuiltinTargetId:()=>Vt,resolveTargetFeatureGenerator:()=>Wc,rewriteGeneratedOutputPath:()=>Sk});function n8(){return yk||(bE(Pe),yk=new Map(Pe.map(e=>[e.id,e]))),yk}function Hr(e){return n8().get(e)}function Di(e,t="project"){let r=Hr(e)??re(e);if(!r)return;if(t==="global"&&!r.globalSupport)return By(r8);let n=t==="global"?r.globalSupport.capabilities:r.capabilities;return By(n)}function Rk(e,t="project"){let r=Hr(e)??re(e);return r?t==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function Ke(e,t="project"){let r=Hr(e)??re(e);if(r)return t==="global"?r.globalSupport?.layout:r.project}function o8(e,t="project"){return Ke(e,t)?.rootInstructionPath}function Yp(e,t="project"){return Ke(e,t)?.skillDir}function _k(e,t="project"){return Ke(e,t)?.managedOutputs}function Sk(e,t,r="project"){let n=Ke(e,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(t):t:null}function MG(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?!Fl(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?!gr(r,e.id,true,n):false}function s8(e,t,r,n){return !e||!r?false:t==="commands"&&e.supportsConversion?.commands?Fl(r,e.id,true,n):t==="agents"&&e.supportsConversion?.agents?gr(r,e.id,true,n):false}function dg(e,t,r,n="project"){let o=Di(e,n)?.[t]?.level??"none",i=Hr(e)??re(e);return n==="global"&&i&&!i.globalSupport?"none":o==="none"&&s8(i,t,r,n)?"embedded":o!=="embedded"?o:MG(i,t,r,n)?"none":o}function Wc(e,t,r,n="project"){let o=Hr(e)??re(e);if(!o?.generators||MG(o,t,r,n))return;let i=i8[t];return i===null?void 0:i(o.generators)}var r8,Pe,yk,i8,xe=d(()=>{Ml();ea();rt();Ky();Nn();lR();g_();h_();R_();CA();k_();$x();OT();B_();J_();Q_();dS();fS();gS();NS();vS();FS();MS();BS();WS();zS();JS();YS();XS();ZS();ek();tk();rk();LG();hk();r8={rules:"none",additionalRules:"none",commands:"none",agents:"none",skills:"none",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Pe=[xd,af,lf,cf,LA,mf,Mx,bT,yf,Lf,wf,vf,Ff,Mf,Hf,zf,Vf,Jf,qf,Qf,Zf,eg,tg,rg,og,sg,ig,ag,IG,ug];s(n8,"builtinTargetsMap");s(Hr,"getBuiltinTargetDefinition");s(Di,"getTargetCapabilities");s(Rk,"getTargetDetectionPaths");s(Ke,"getTargetLayout");s(o8,"getTargetPrimaryRootInstructionPath");s(Yp,"getTargetSkillDir");s(_k,"getTargetManagedOutputs");s(Sk,"rewriteGeneratedOutputPath");s(MG,"isFeatureSuppressedByConversion");s(s8,"isConversionUpgrading");s(dg,"getEffectiveTargetSupportLevel");i8={rules:s(e=>e.generateRules,"rules"),additionalRules:null,commands:s(e=>e.generateCommands,"commands"),agents:s(e=>e.generateAgents,"agents"),skills:s(e=>e.generateSkills,"skills"),mcp:s(e=>e.generateMcp,"mcp"),permissions:s(e=>e.generatePermissions,"permissions"),hooks:s(e=>e.generateHooks,"hooks"),ignore:s(e=>e.generateIgnore,"ignore")};s(Wc,"resolveTargetFeatureGenerator");});function c8(e,t){return e.uniqueHits!==t.uniqueHits?t.uniqueHits-e.uniqueHits:e.sharedScore!==t.sharedScore?t.sharedScore-e.sharedScore:e.id.localeCompare(t.id)}async function fg(e){let t=[];for(let n of Pe){let o=0,i=0;for(let a of n.detectionPaths){if(!await j(join(e,a)))continue;let l=l8.get(a)??1;l===1?o+=1:i+=1/l;}(o>0||i>0)&&t.push({id:n.id,uniqueHits:o,sharedScore:i});}if(t.length===0)return null;t.sort(c8);let r=t[0];return r.uniqueHits===0?null:r.id}var l8,$G,kk=d(()=>{A();xe();l8=(()=>{let e=new Map;for(let t of Pe)for(let r of t.detectionPaths)e.set(r,(e.get(r)??0)+1);return e})();s(c8,"compare");s(fg,"detectNativeFormat");$G=Pe.map(e=>e.detectionPaths[0]).filter(e=>e!==void 0);});async function Xp(e,t){let r=re(t);if(!r)throw new Error(`No importer registered for native target: ${t}`);return r.generators.importFrom(e)}var Ik=d(()=>{rt();s(Xp,"importNativeToCanonical");});async function rl(e){if(!await j(e))return false;if(await j(join(e,Ck)))return true;try{let t=await readdir(e,{withFileTypes:!0});for(let r of t)if(!(!r.isDirectory()||r.name.startsWith("."))&&await j(join(e,r.name,Ck)))return !0}catch{return false}return false}async function qp(e,t={}){if(!await j(e))return [];if(await j(join(e,Ck))){let r=await pd(e,t);return r?[r]:[]}return Js(e,t)}var Ck,gg=d(()=>{A();Nl();Ck="SKILL.md";s(rl,"isSkillPackLayout");s(qp,"loadSkillsAtExtendPath");});async function hg(e,t={}){return (await Vs(e,t)).filter(n=>!vn(basename(n.source)))}async function yg(e,t={}){return (await zs(e,t)).filter(n=>!vn(basename(n.source)))}async function Rg(e,t={}){return (await Hs(e,t)).filter(n=>!vn(basename(n.source)))}async function GG(e,t={}){return Js(e,t)}var _g=d(()=>{jm();Gm();$m();Nl();$o();s(hg,"importAgents");s(yg,"importCommands");s(Rg,"importRules");s(GG,"importSkills");});function wk(e,t){let r=e?.[t];if(!r)return [];let n=Array.isArray(r)?r:[r],o=[];for(let i of n)i.mode!=="directory"||!i.map||!i.extensions||o.push({extensions:i.extensions,map:i.map});return o}function bk(e){return e.toLowerCase().endsWith(".md")}function UG(e,t){for(let r of wk(re(e)?.importer,t))if(r.extensions.some(n=>!bk(n)))return true;return false}function y8(e,t){let r=new Set;for(let n of wk(re(e)?.importer,t))for(let o of n.extensions)bk(o)||r.add(o.toLowerCase());return r}function R8(e){return _d().filter(t=>UG(t,e))}async function k8(e,t,r){return _8[e](t,r)}async function I8(e,t,r){return S8[e](t,r)}async function L8(e,t,r,n={}){let o=wk(re(t)?.importer,r),i=await U(e),a=new Set;for(let p of o)for(let u of p.extensions)bk(u)||a.add(u.toLowerCase());let l=i.filter(p=>[...a].some(u=>p.toLowerCase().endsWith(u))&&!vn(basename(p)));if(l.length===0)return {entities:[],cleanup:s(async()=>{},"cleanup")};let c=await mkdtemp(join(tmpdir(),`am-tool-${r}-${t}-`)),m=s(async()=>{await rm$1(c,{recursive:true,force:true});},"cleanup");try{for(let u of l){let f=await k(u);if(f===null)continue;let g=relative(e,u).replaceAll("\\","/"),h=null;for(let R of o){if(!R.extensions.some(I=>u.toLowerCase().endsWith(I.toLowerCase())))continue;let S=await R.map({absolutePath:u,relativePath:g,content:f,destDir:c,normalizeTo:s(()=>f,"normalizeTo")});if(S){h=S;break}}h&&(await w(dirname(h.destPath)),await L(h.destPath,h.content));}return {entities:await k8(r,c,n),cleanup:m}}catch(p){throw await m(),p}}async function Ok(e,t,r={}){let n=r.restrictToTarget,o=n?UG(n,t)?[n]:[]:R8(t),i=new Set;for(let f of o)for(let g of y8(f,t))i.add(g);let a=await I8(t,e,{...r.parseOpts,handledByOtherReader:i.size>0?i:void 0}),l=[],c=s(f=>basename(f.source).replace(/\.[^.]+$/,""),"slugOf"),m=new Map;for(let f of a)m.set(c(f),f);for(let f of o){let g=await L8(e,f,t,r.parseOpts??{});l.push(g.cleanup);for(let h of g.entities){let R=c(h);m.has(R)||m.set(R,h);}}return {entities:[...m.values()].sort((f,g)=>c(f).localeCompare(c(g))),cleanup:s(async()=>{await Promise.allSettled(l.map(f=>f()));},"cleanup")}}async function Sg(e,t={}){let r=await Ok(e,"commands",t);return {commands:[...r.entities],cleanup:r.cleanup}}async function kg(e,t={}){let r=await Ok(e,"rules",t);return {rules:[...r.entities],cleanup:r.cleanup}}async function Ig(e,t={}){let r=await Ok(e,"agents",t);return {agents:[...r.entities],cleanup:r.cleanup}}var _8,S8,Lg=d(()=>{jm();Gm();$m();A();rt();$o();_g();s(wk,"directorySpecsFor");s(bk,"isMarkdownExtension");s(UG,"hasNonMdEntityMapper");s(y8,"nonMdEntityExtensions");s(R8,"targetsWithNonMdEntityMapper");_8={rules:Hs,commands:zs,agents:Vs},S8={rules:Rg,commands:yg,agents:hg};s(k8,"parseEntityDir");s(I8,"importEntities");s(L8,"readToolNativeEntities");s(Ok,"readEntityDirWithMappers");s(Sg,"readCommandsDirWithMappers");s(kg,"readRulesDirWithMappers");s(Ig,"readAgentsDirWithMappers");});function w8(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}function b8(e){return e.rules.length===0&&e.commands.length===0&&e.agents.length===0&&e.skills.length===0&&e.mcp===null&&e.permissions===null&&e.hooks===null&&e.ignore.length===0}async function Cg(e){if(!await j(e))throw new Error(`Path does not exist: ${e}`);let t=await stat(e);if(t.isDirectory())return {sliceRoot:e};if(!t.isFile()||!e.toLowerCase().endsWith(".md"))throw new Error(`Install path must be a directory or a .md file inside rules/, commands/, or agents/: ${e}`);let r=dirname(e),n=basename(r),i=basename(e).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[i]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[i]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[i]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${e}`)}async function Tk(e,t){if(basename(e)===t)return e;let r=join(e,t);return await j(r)?r:null}async function O8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"rules");if(!o)return {rules:[],cleanup:n};if(!r)return {rules:await Rg(o,t),cleanup:n};let i=await kg(o,{parseOpts:t});return {rules:[...i.rules],cleanup:i.cleanup}}async function A8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"commands");if(!o)return {commands:[],cleanup:n};if(!r)return {commands:await yg(o,t),cleanup:n};let i=await Sg(o,{parseOpts:t});return {commands:[...i.commands],cleanup:i.cleanup}}async function x8(e,t,r){let n=s(async()=>{},"noop"),o=await Tk(e,"agents");if(!o)return {agents:[],cleanup:n};if(!r)return {agents:await hg(o,t),cleanup:n};let i=await Ig(o,{parseOpts:t});return {agents:[...i.agents],cleanup:i.cleanup}}async function T8(e,t){if(await rl(e))return qp(e,t);let r=join(e,"skills");return await rl(r)?qp(r,t):[]}async function Eg(e,t={}){let r=s(async()=>{},"noop"),n=join(e,".agentsmesh");if(await j(n))return {canonical:await Gt(e,t),cleanup:r};let o=t.enableTargetEntityMappers??false,i=w8(),a=await O8(e,t,o);i.rules=a.rules;let l=await A8(e,t,o);i.commands=l.commands;let c=await x8(e,t,o);i.agents=c.agents,i.skills=await T8(e,t);let m=s(async()=>{await Promise.allSettled([a.cleanup(),l.cleanup(),c.cleanup()]);},"mergedCleanup");if(b8(i))throw await m(),new Error(`No installable resources at ${e}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md). Hint: pass --as commands|agents|rules|skills to force a kind for flat markdown directories.`);return {canonical:i,cleanup:m}}var Pk=d(()=>{A();_g();Lg();Zi();gg();s(w8,"emptyCanonical");s(b8,"isCanonicalSliceEmpty");s(Cg,"normalizeSlicePath");s(Tk,"resolveEntityDir");s(O8,"parseRulesAt");s(A8,"parseCommandsAt");s(x8,"parseAgentsAt");s(T8,"loadSkillsForPartialSlice");s(Eg,"loadCanonicalSliceAtPath");});async function wg(e){let t=await k(e);if(!t)return "";let r=Yr(t,e);if(!r.ok)return "";let{frontmatter:n}=r.value;return typeof n.name!="string"?"":n.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function BG(e,t){await cp$1(e,t,{recursive:true,filter:s(r=>{let n=relative(e,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(dE(o)||!n.includes("/")&&(cd(n)||fE(n)))},"filter")});}var Dk=d(()=>{A();B();$o();s(wg,"readSkillFrontmatterName");s(BG,"cpFilteredSkill");});function Nk(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"?e?[e]:[]:[]}function N8(e){let t={...e},r=e.alwaysApply===true;if(t.root=r,delete t.alwaysApply,!r){let n=Nk(e.globs),o=typeof e.description=="string"?e.description.trim():"";n.length>0?t.trigger="glob":o.length>0?t.trigger="model_decision":t.trigger="manual";}return t}function v8(e){let t={...e};return t.trigger==="always"&&(t.trigger="always_on"),typeof t.glob=="string"&&(t.globs=Nk(t.globs).length>0?Nk(t.globs):[t.glob],delete t.glob),t}function vk(e){let t=Yr(e,"<mdc>");if(!t.ok)return t.bodyFallback;let{frontmatter:r,body:n}=t.value;if(Object.keys(r).length===0&&!e.startsWith("---"))return e;let o;return "alwaysApply"in r?o=N8(r):"trigger"in r||"glob"in r?o=v8(r):o=r,D(o,n.trim())}var KG=d(()=>{B();s(Nk,"toStrArray");s(N8,"normalizeCursorKeys");s(v8,"normalizeWindsurfKeys");s(vk,"normalizeMdcToCanonical");});function Fk(e){return e.toLowerCase().replace(/[^a-z0-9.-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function Mk(e){return e.toLowerCase().endsWith(".mdc")?basename(e).replace(/\.mdc$/i,".md"):basename(e)}function HG(e,t,r){let o=relative(e,t).replace(/\\/g,"/").split("/");if(o.pop(),o.length===0)return r;let i=Fk(o[o.length-1]);return i?`${i}-${r}`:r}var zG=d(()=>{s(Fk,"sanitizeNameSegment");s(Mk,"computeDestName");s(HG,"namespacedName");});async function j8(){let e=await mkdtemp(join(tmpdir(),"am-install-manual-")),t=join(e,"repo");return await w(join(t,".agentsmesh")),{discoveryRoot:t,cleanup:s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup")}}function XG(e,t){let r=e.toLowerCase();return !!(r.endsWith(".md")||t&&r.endsWith(".mdc"))}async function U8(e,t,r){if(!XG(e,r))throw new Error(`Manual install only supports .md files for this collection: ${e}`);if(await w(t),e.toLowerCase().endsWith(".mdc")){let n=await k(e);if(!n)return;let o=basename(e).replace(/\.mdc$/i,".md");await writeFile(join(t,o),vk(n));}else await cp$1(e,join(t,basename(e)));}async function B8(e,t,r){if((await stat(e)).isFile())return U8(e,t,r);let o=(await U(e)).filter(l=>XG(l,r)&&!vn(basename(l)));if(o.length===0)throw new Error(`No installable files found under ${e} for manual install. Try a different --path to point at the directory holding *.md (or *.mdc) files, or omit --as so agentsmesh can auto-detect the layout.`);let i=new Map;for(let l of o){let c=Mk(l);i.set(c,(i.get(c)??0)+1);}let a=new Map;await w(t);for(let l of o){let c=Mk(l),p=(i.get(c)??0)>1?HG(e,l,c):c;if(a.has(p)&&a.get(p)!==l){let f=relative(e,l).replace(/\\/g,"/").split("/").map(Fk).filter(Boolean),g=c.includes(".")?"."+c.split(".").pop():"";p=f.join("-").replace(/\.(md|mdc)$/i,"")+g||p;}if(a.has(p))throw new Error(`Manual install could not resolve duplicate name "${p}" under ${e} (${a.get(p)} and ${l}).`);if(a.set(p,l),l.toLowerCase().endsWith(".mdc")){let f=await k(l);if(!f)continue;await writeFile(join(t,p),vk(f));}else await cp$1(l,join(t,p));}}async function VG(e,t,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let i of await U(e)){if(!i.endsWith("/SKILL.md")&&!i.endsWith("\\SKILL.md"))continue;let a=dirname(i),l=basename(a);if(!n.has(l))continue;let c=o.get(l);if(c&&c!==a)throw new Error(`Manual skill replay found duplicate skill "${l}" under ${e} (${c} and ${a}).`);o.set(l,a);}if(o.size!==r.length)return false;await w(t);for(let i of r)await cp$1(o.get(i),join(t,i),{recursive:true});return true}async function K8(e,t,r={}){if((await stat(e)).isFile()){if(basename(e)!=="SKILL.md")throw new Error(`Manual skill install expects SKILL.md or a skill directory: ${e}`);let o=basename(dirname(e)),i=join(t,o);await w(i),await cp$1(dirname(e),i,{recursive:true});return}if(await rl(e)){if((await stat(join(e,"SKILL.md")).catch(()=>null))?.isFile()){if(await VG(e,t,r.preferredSkillNames??[]))return;let l=await wg(join(e,"SKILL.md"))||basename(e),c=join(t,l);await w(t),await BG(e,c);return}if(await VG(e,t,r.preferredSkillNames??[]))return;await w(t);let o=await U(e),i=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))i.add(relative(e,dirname(a)).split(/[\\/]/)[0]);for(let a of i)await cp$1(join(e,a),join(t,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${e}.`)}async function Og(e,t,r={}){let n=await j8();try{let o=join(n.discoveryRoot,".agentsmesh",t);return t==="skills"?await K8(e,o,r):await B8(e,o,t==="rules"),n}catch(o){throw await n.cleanup(),o}}var Gk=d(()=>{A();gg();Dk();$o();KG();zG();s(j8,"createStageRoot");s(XG,"isAcceptedFile");s(U8,"stageSingleFile");s(B8,"stageMarkdownCollection");s(VG,"stagePreferredSkills");s(K8,"stageSkills");s(Og,"stageManualInstallScope");});function W8(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function qG(e){let t=e.resolvedPath;if(e.as!==void 0){let o=e.path?join(t,e.path):t;if(!await j(o))throw new Error(`Extend "${e.name}": path does not exist: ${o}`);let i=await Og(o,e.as);try{return Gt(join(i.discoveryRoot,".agentsmesh"))}finally{await i.cleanup();}}if(!e.path){let o=join(t,".agentsmesh");if(!await j(o)){if(await rl(t)){let a=await qp(t);return {...W8(),skills:a}}let i=e.target??await fg(t);if(!i)throw new Error(`Extend "${e.name}": No supported agent configuration found in ${t}.
|
|
152
|
+
Expected one of: .agentsmesh/, ${$G.join(", ")}.`);y.info(`[agentsmesh] Extend "${e.name}": ${e.target?"specified":"detected"} ${i} format, importing to .agentsmesh/...`),await Xp(t,i);}return Gt(t)}let r=join(t,e.path);if(!await j(r))throw new Error(`Extend "${e.name}": path does not exist: ${r}`);if(e.target){let o=join(t,".agentsmesh");return await j(o)||(y.info(`[agentsmesh] Extend "${e.name}": path "${e.path}" with target "${e.target}" \u2014 importing at extend root, then loading canonical.`),await Xp(t,e.target)),Gt(t)}let{sliceRoot:n}=await Cg(r);try{let{canonical:o}=await Eg(n);return o}catch(o){let i=o instanceof Error?o.message:String(o),a=new Error(`Extend "${e.name}": ${i}`);throw o instanceof Error&&(a.cause=o),a}}var QG=d(()=>{kk();A();ne();Zi();Ik();gg();Pk();Gk();s(W8,"emptyCanonical");s(qG,"loadCanonicalForExtend");});function Ag(e,t,r,n){if(!r)return e;let o={...e};if(r.skills?.length&&t.includes("skills")){let i=new Set(r.skills),a=o.skills;o={...o,skills:a.filter(l=>i.has(l.name))};for(let l of r.skills)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in skills from extend "${n}".`);}if(r.commands?.length&&t.includes("commands")){let i=new Set(r.commands),a=o.commands;o={...o,commands:a.filter(l=>i.has(l.name))};for(let l of r.commands)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in commands from extend "${n}".`);}if(r.agents?.length&&t.includes("agents")){let i=new Set(r.agents),a=o.agents;o={...o,agents:a.filter(l=>i.has(l.name))};for(let l of r.agents)a.some(c=>c.name===l)||y.warn(`[agentsmesh] pick name "${l}" not found in agents from extend "${n}".`);}if(r.rules?.length&&t.includes("rules")){let i=new Set(r.rules),a=o.rules,l=s(c=>basename(c).replace(/\.md$/i,""),"stem");o={...o,rules:a.filter(c=>i.has(l(c.source)))};for(let c of r.rules)a.some(m=>l(m.source)===c)||y.warn(`[agentsmesh] pick name "${c}" not found in rules from extend "${n}".`);}return o}var jk=d(()=>{ne();s(Ag,"applyExtendPick");});var V8,Hc,xg=d(()=>{V8=["rules","commands","agents","skills"],Hc=z$1.enum(V8);});var J8,ZG,ej=d(()=>{vo();xg();J8=z$1.enum(["github","gitlab","git","local"]),ZG=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:J8,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Ol).min(1),pick:Pm.optional(),target:fr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Hc.optional(),content_hash:z$1.string(),license:z$1.string().nullable().optional()});});function tj(e){let t=qi(e);return t?t.kind==="github"?`github:${t.org}/${t.repo}`:t.kind==="gitlab"?`gitlab:${t.namespace}/${t.project}`:`git+${t.url}`:e.trim()}function X8(e,t){return t?e.length===t.length&&[...e].sort().every((r,n)=>r===[...t].sort()[n]):true}async function Mi(e){let t=join(e,"pack.yaml"),r=await k(t);if(r===null)return null;try{let n=parse(r);return ZG.parse(n)}catch{return null}}async function nj(e,t,r){if(!await j(e))return null;let n=tj(t),o;try{o=await readdir(e,{withFileTypes:!0});}catch{return null}for(let i of o){if(!i.isDirectory())continue;let a=join(e,i.name),l=await Mi(a);if(l&&tj(l.source)===n&&l.target===r.target&&l.as===r.as&&X8(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}async function Tg(e){if(!await j(e))return [];let t;try{t=await readdir(e,{withFileTypes:!0});}catch{return []}let r=[];for(let n of t){if(!n.isDirectory())continue;let o=join(e,n.name),i=await Mi(o);i&&r.push({meta:i,packDir:o,name:i.name});}return r}var zc=d(()=>{A();ej();vm();s(tj,"sourceIdentity");s(X8,"sameFeatures");s(Mi,"readPackMetadata");s(nj,"findExistingPack");s(Tg,"listPacks");});function oj(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function q8(e){let[t,r,n,o,i,a,l,c]=await Promise.all([Hs(join(e,"rules")),zs(join(e,"commands")),Vs(join(e,"agents")),Js(join(e,"skills")),Xr(join(e,"mcp.json")),ud(join(e,"permissions.yaml")),dd(join(e,"hooks.yaml")),fd(join(e,"ignore"))]);return {...oj(),rules:t,commands:r,agents:n,skills:o,mcp:i,permissions:a,hooks:l,ignore:c}}async function sj(e){let t=join(e,"packs"),r=await Tg(t),n=oj();for(let{meta:o,packDir:i}of r){let a=await q8(i),l=Bk(a,o.features),c=Ag(l,o.features,o.pick,o.name);n=vl(n,c);}return n}var ij=d(()=>{$m();Gm();jm();Nl();Um();Ny();Fy();My();Gy();Oo();jk();zc();s(oj,"emptyCanonical");s(q8,"loadPackCanonical");s(sj,"loadPacksCanonical");});function Bk(e,t){if(t.length===0)return aj();let r=new Set(t.flatMap(n=>Z8[n]??[]));return {rules:r.has("rules")?e.rules:[],commands:r.has("commands")?e.commands:[],agents:r.has("agents")?e.agents:[],skills:r.has("skills")?e.skills:[],mcp:r.has("mcp")?e.mcp:null,permissions:r.has("permissions")?e.permissions:null,hooks:r.has("hooks")?e.hooks:null,ignore:r.has("ignore")?e.ignore:[]}}function aj(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}async function Ft(e,t,r={},n=join(t,".agentsmesh")){let o=await Pl(e,t,{refreshCache:r.refreshRemoteCache===true}),i=aj();for(let c of o){let m=await qG(c),p=Bk(m,c.features),u=Ag(p,c.features,c.pick,c.name);i=vl(i,u);}let a=await sj(n);i=vl(i,a);let l=await Gt(n);return i=vl(i,l),{canonical:i,resolvedExtends:o}}var Z8,Oo=d(()=>{od();Zi();Gy();QG();jk();ij();Z8={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};s(Bk,"filterCanonicalByFeatures");s(aj,"emptyCanonical");s(Ft,"loadCanonicalWithExtends");});function X9(e,t){let r=join(t,"node_modules",e),n=join(r,"package.json");if(!existsSync(n))throw new Error(`Cannot find package '${e}' in ${join(t,"node_modules")}`);let o=JSON.parse(readFileSync(n,"utf-8")),i=(typeof o.exports=="string"?o.exports:null)??(typeof o.main=="string"?o.main:null)??"index.js",a=resolve(r,i);if(!existsSync(a))throw new Error(`Package '${e}' entry '${i}' does not exist at ${a}`);return a}function q9(e){return e.startsWith("file:")||e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^[A-Za-z]:[/\\]/.test(e)}function jj(e){try{return realpathSync(e)}catch{return e}}function Uj(e,t){let r=jj(resolve(t)),n=jj(e);if(!(n===r||n.startsWith(`${r}${sep}`)))throw new Error(`Plugin source resolves outside project root (escapes ${r}): ${n}`)}async function Q9(e,t){let{source:r}=e,n;if(q9(r)){let i=r.startsWith("file:")?fileURLToPath(r):r,a=resolve(t,i);Uj(a,t),n=pathToFileURL(a).href;}else {let i=X9(r,t);Uj(i,t),n=pathToFileURL(i).href;}return await import(n)}function Z9(e){return "descriptor"in e?[e.descriptor]:"descriptors"in e&&Array.isArray(e.descriptors)?e.descriptors:"default"in e?[e.default]:[]}async function Wg(e,t){let r;try{r=await Q9(e,t);}catch(i){throw new Error(`Plugin '${e.source}' failed to import: ${i instanceof Error?i.message:String(i)}`,{cause:i})}let n=Z9(r),o=[];for(let i of n)try{let a=gd(i);yd(a),o.push(a);}catch(a){throw new Error(`Plugin '${e.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:e,descriptors:o}}async function Bj(e,t){let r=[],n=process.env.AGENTSMESH_STRICT_PLUGINS==="1"||process.env.AGENTSMESH_STRICT_PLUGINS==="true",i=(await Promise.all(e.map(async a=>{try{let l=await Wg(a,t);return r.push(l),null}catch(l){let c=`Plugin '${a.source}' failed to load: ${l instanceof Error?l.message:String(l)}`;return a.strict===true||n?new Error(c):(y.warn(c),null)}}))).filter(a=>a!==null);if(i.length>0){let a=i.map(l=>` - ${l.message}`).join(`
|
|
149
153
|
`);throw new Error(`agentsmesh: ${i.length} plugin(s) failed strict load:
|
|
150
|
-
${a}`)}return r}var
|
|
151
|
-
`)}var
|
|
154
|
+
${a}`)}return r}var eI=d(()=>{jy();rt();ne();s(X9,"resolveNpmSpecifier");s(q9,"isLocalSource");s(jj,"canonicalize");s(Uj,"assertSourceInsideProjectRoot");s(Q9,"importPluginModule");s(Z9,"extractDescriptors");s(Wg,"loadPlugin");s(Bj,"loadAllPlugins");});async function He(e,t){e.plugins.length!==0&&await Bj(e.plugins,t);}var Vr=d(()=>{eI();s(He,"bootstrapPlugins");});function nI(e,t,r="project"){let n=[],o=[...e.targets,...e.pluginTargets??[]];for(let i of e.features){let a,l;switch(i){case "rules":l=t.rules.length,a="rules";break;case "commands":l=t.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=t.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=t.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=t.mcp?Object.keys(t.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=I3(t.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=t.ignore.length>0?1:0,a="ignore";break;case "permissions":l=t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=dg(m,i,e,r);if(n.push({feature:a,count:l,support:c}),i==="rules"){let m=t.rules.filter(p=>!p.root);if(m.length>0){let p={};for(let u of o)p[u]=dg(u,"additionalRules",e,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:p});}}}return n}function I3(e){if(!e)return 0;let t=0;for(let r of Object.values(e))Array.isArray(r)&&(t+=r.length);return t}var qj=d(()=>{xe();s(nI,"buildCompatibilityMatrix");s(I3,"countHooks");});function Qj(e){return L3[e]??e}var L3,Zj=d(()=>{L3={"claude-code":"Claude"};s(Qj,"matrixColumnLabel");});function e0(e){return Object.fromEntries(C3.map(t=>[t,Object.fromEntries(je.map(r=>{let o=Di(r,e)?.[t];return [r,o??{level:"none"}]}))]))}function E3(e,t){return Sl()?`${e}${t}${tu.reset}`:t}function r0(e){let t=oI[e];return E3(w3[e],t)}var C3,t0,oI,tu,w3,sI=d(()=>{Nn();xe();Wu();C3=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];s(e0,"buildSupportMatrix");t0=e0("project"),e0("global"),oI={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},tu={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",reset:"\x1B[0m"};s(E3,"colorize");w3={native:tu.green,embedded:tu.blue,partial:tu.yellow,none:tu.dim};s(r0,"coloredSymbol");});function iI(e,t){let r=Sl(),n={cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",dim:"\x1B[2m",green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",reset:"\x1B[0m"},o=s(($,Y)=>r?`${$}${Y}${n.reset}`:Y,"c"),i=s($=>$.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=s(($,Y)=>{let ee=i($),M=Math.max(0,Y-ee);return $+" ".repeat(M)},"padWithColor"),l=Math.max(12,...t.map($=>$.length)),c=t.map($=>Qj($)),m=Math.max(8,l),p=Math.max(12,...e.map($=>$.feature.length)),u=s($=>o(n.dim,"\u250C"+$.map(Y=>"\u2500".repeat(Y)).join("\u252C")+"\u2510"),"border"),f=s($=>o(n.dim,"\u251C"+$.map(Y=>"\u2500".repeat(Y)).join("\u253C")+"\u2524"),"sep"),g=s($=>o(n.dim,"\u2514"+$.map(Y=>"\u2500".repeat(Y)).join("\u2534")+"\u2518"),"bottom"),h=[p,...t.map(()=>m)],R=u(h),_=[a(o(n.bold+n.cyan,"Feature"),p),...c.map($=>a(o(n.bold+n.magenta,$),m))],S=o(n.dim,"\u2502")+_.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),I=f(h),b=e.map($=>{let Y=[a(o(n.cyan,$.feature),p)];for(let ee of t){let M=$.support[ee]??"none",te=r?r0(M):oI[M];Y.push(a(` ${te} `,m));}return o(n.dim,"\u2502")+Y.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),P=g(h),T=[R,S,I,...b,P];T.push("");let W=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return T.push(o(n.bold,"Legend: ")+W.join(" ")),T.join(`
|
|
155
|
+
`)}var n0=d(()=>{Zj();sI();Wu();s(iI,"formatMatrix");});function lI(e){let t=[];if(e.rules.length>0&&t.push(`rules: ${e.rules.map(r=>basename(r.source)).join(", ")}`),e.commands.length>0&&t.push(`commands: ${e.commands.map(r=>basename(r.source)).join(", ")}`),e.agents.length>0&&t.push(`agents: ${e.agents.map(r=>basename(r.source)).join(", ")}`),e.skills.length>0&&t.push(`skills: ${e.skills.map(r=>r.name).join(", ")}`),e.mcp&&Object.keys(e.mcp.mcpServers).length>0&&t.push(`mcp: ${Object.keys(e.mcp.mcpServers).join(", ")}`),e.hooks){let r=Object.values(e.hooks).reduce((n,o)=>n+(Array.isArray(o)?o.length:0),0);r>0&&t.push(`hooks: ${r} entries in hooks.yaml`);}return e.ignore.length>0&&t.push("ignore: .agentsmesh/ignore"),e.permissions&&e.permissions.allow.length+e.permissions.deny.length>0&&t.push("permissions: .agentsmesh/permissions.yaml"),t.length===0?"":`
|
|
152
156
|
Per-file details:
|
|
153
|
-
`+
|
|
157
|
+
`+t.join(`
|
|
154
158
|
`)+`
|
|
155
|
-
`}var
|
|
156
|
-
`),
|
|
157
|
-
`));}var
|
|
158
|
-
|
|
159
|
-
Usage: ${e.usage}
|
|
160
|
-
${
|
|
159
|
+
`}var o0=d(()=>{s(lI,"formatVerboseDetails");});var cI=d(()=>{qj();n0();o0();});var mI={};my(mI,{runMatrix:()=>ru});async function ru(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(f=>f.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),m=i??[...a.targets,...a.pluginTargets??[]],p=nI(a,c,n),u=lI(c);return {exitCode:0,data:{targets:m,features:p.map(f=>({name:f.feature,support:f.support}))},verboseDetails:u||void 0}}var nu=d(()=>{tt();Oo();cI();Vr();s(ru,"runMatrix");});var pI={};my(pI,{renderMatrix:()=>ou});function ou(e,t){if(e.data.features.length===0){y.info("No features enabled. Enable features in agentsmesh.yaml.");return}let r=e.data.features.map(o=>({feature:o.name,count:0,support:o.support})),n=iI(r,e.data.targets);process.stdout.write(n),process.stdout.write(`
|
|
160
|
+
`),t?.verbose&&e.verboseDetails&&(process.stdout.write(e.verboseDetails),process.stdout.write(`
|
|
161
|
+
`));}var su=d(()=>{ne();cI();s(ou,"renderMatrix");});function dC(e){let t=Object.keys(e);return {async route(r,n,o){let i=e[r];if(i){await i(n,o);return}throw new Error(`Unknown command "${r}". Available: ${t.join(", ")}`)},commands:s(()=>[...t],"commands")}}s(dC,"createRouter");ne();var Ks={query:{usage:"agentsmesh lessons query [--file <path>] [--cmd <command>] [--keyword <text>] [--format plain|md|json] [--top <n>] [--all] [--max-tokens <n>] [--session <id>] [--no-dedup] [--ids]",example:'agentsmesh lessons query --file src/app/page.tsx --cmd "git commit -m wip"'},add:{usage:'agentsmesh lessons add "<rule>" --topic <id> [--trigger-file <glob>]... [--trigger-cmd <regex>]... [--trigger-kw <text>]... [--evidence <ref>]... [--rationale <text>] [--new-topic --topic-summary "..."]',example:'agentsmesh lessons add "Run tsc --noEmit before committing type changes" --topic build --trigger-file "src/**/*.ts" --evidence commit:abc1234'},topics:{usage:"agentsmesh lessons topics"},show:{usage:"agentsmesh lessons show <topic|lesson-id>",example:"agentsmesh lessons show build",summary:"a topic, or one lesson by id with its triggers resolved"},deprecate:{usage:"agentsmesh lessons deprecate <id> [--superseded-by <id>]",example:"agentsmesh lessons deprecate build-old-rule --superseded-by build-new-rule"},merge:{usage:"agentsmesh lessons merge <loser-id> <keeper-id>",example:"agentsmesh lessons merge build-duplicate build-canonical"},untrigger:{usage:"agentsmesh lessons untrigger <lesson-id> <trigger-id>",example:"agentsmesh lessons untrigger build-old-rule t-kw-8bdcf7aa",summary:"detach a trigger; GCs it if now unused"},"strip-markers":{usage:"agentsmesh lessons strip-markers [--dry-run]",example:"agentsmesh lessons strip-markers --dry-run"},journal:{usage:"agentsmesh lessons journal"},validate:{usage:"agentsmesh lessons validate"},stats:{usage:"agentsmesh lessons stats [--json]",summary:"recall telemetry summary; needs AGENTSMESH_LESSONS_TELEMETRY=1"},prune:{usage:"agentsmesh lessons prune [--apply] [--cap <n>]",example:"agentsmesh lessons prune --apply",summary:"dry-run by default; trims over-cap lessons + dead triggers"},"import-md":{usage:"agentsmesh lessons import-md [--merge] [--force] [--migrated-at <ISO date>]",example:"agentsmesh lessons import-md --merge"}},yC=Object.keys(Ks);function zu(){let e=Ks.add;return `
|
|
162
|
+
Usage: ${e.usage}
|
|
163
|
+
Example: ${e.example}`}s(zu,"lessonsAddHint");var Vu=[{name:"--help",description:"Show this help output and exit"},{name:"--version",description:"Print CLI version and exit"},{name:"--verbose",description:"Show full error details on failure"},{name:"--json",description:"Output machine-readable JSON (single envelope to stdout)"}],py=[{name:"init",usage:"agentsmesh init [flags]",description:"Create agentsmesh.yaml, agentsmesh.local.yaml, and canonical .agentsmesh scaffold",flags:[{name:"--global",description:"Initialize canonical home config under ~/.agentsmesh/ (global targets include claude-code, antigravity, codex-cli, cursor, gemini-cli, kilo-code)"},{name:"--yes",description:"Auto-import detected tool configs, then add example scaffold only under empty canonical paths"},{name:"--lessons",description:"Scaffold the lessons recall + capture subsystem under .agentsmesh/lessons/ and append the procedural rule to .agentsmesh/rules/_root.md. Project mode only. Safe to run on an already-initialized project to retroactively add the subsystem."}]},{name:"generate",usage:"agentsmesh generate [flags]",description:"Generate target files from canonical sources",flags:[{name:"--global",description:"Generate user-level config from ~/.agentsmesh/ (e.g. claude-code, antigravity, codex-cli, gemini-cli, kilo-code; Cursor writes ~/.cursor/rules, ~/.cursor/AGENTS.md, hooks, ignore, MCP, skills, agents, commands; legacy ~/.agentsmesh-exports/cursor/user-rules.md is import-only)"},{name:"--targets <csv>",description:"Limit generation to target IDs (comma-separated)"},{name:"--check",description:"Check drift only; exit non-zero when out of sync"},{name:"--dry-run",description:"Preview file changes without writing outputs"},{name:"--force",description:"Bypass lock-strategy blocked feature violations"},{name:"--refresh-cache",description:"Refresh remote extends cache before loading"},{name:"--no-cache",description:"Alias for --refresh-cache"}]},{name:"import",usage:"agentsmesh import --from <target> [flags]",description:"Import existing tool config into canonical .agentsmesh files",flags:[{name:"--from <target>",description:"Source tool ID to import from (required)"},{name:"--global",description:"Import from user-level paths into ~/.agentsmesh/ (claude-code, antigravity, codex-cli, gemini-cli, kilo-code; cursor reads ~/.cursor/{rules,AGENTS.md,mcp.json,hooks.json,cursorignore,skills,agents,commands} and legacy ~/.agentsmesh-exports/cursor/user-rules.md)"}]},{name:"convert",usage:"agentsmesh convert --from <target> --to <target> [flags]",description:"Convert configuration directly from one tool to another",flags:[{name:"--from <target>",description:"Source tool ID to convert from (required)"},{name:"--to <target>",description:"Destination tool ID to convert to (required)"},{name:"--global",description:"Convert user-level config (use home directory paths)"},{name:"--dry-run",description:"Preview conversion without writing files"}]},{name:"install",usage:"agentsmesh install <source> [flags]",description:"Install rules/commands/agents/skills from a local path or remote repo. Auto-classifies anthropic-skill-pack / canonical-agentsmesh / tool-native sources. When auto-detection is ambiguous or refuses a non-standard layout, override with: --path <dir> to narrow scope, --as <kind> to force a flat collection (rules|commands|agents|skills), --target <id> to lock the native importer, or --all to install every sub-pack of a marketplace.",flags:[{name:"<source>",description:"GitHub/GitLab/tree/blob URL, git+ URL, SSH, or local path"},{name:"--sync",description:"Reinstall missing packs recorded in .agentsmesh/installs.yaml"},{name:"--path <dir>",description:"Subdirectory inside source repo when not embedded in URL"},{name:"--target <id>",description:"Native format used for import-at-root discovery (same as extends.target)"},{name:"--as <kind>",description:"Manual collection mode: rules, commands, agents, or skills"},{name:"--name <id>",description:"Override generated install entry/pack name"},{name:"--extends",description:"Write install as extends entry instead of materialized pack"},{name:"--dry-run",description:"Preview only (no YAML write, no pack write, no generate)"},{name:"--global",description:"Install into ~/.agentsmesh/ and regenerate user-level config"},{name:"--all",description:"Install every sub-pack from a marketplace source"},{name:"--force",description:"Non-interactive mode; include invalid resources and skip selection prompts (implied by --json)"},{name:"--accept-hooks",description:"Trust hooks.yaml from a non-local source. Stripped by default \u2014 hook commands run as shell on tool events."},{name:"--accept-permissions",description:"Trust permissions.yaml from a non-local source. Stripped by default \u2014 grants allowlist tool capabilities."},{name:"--accept-mcp",description:"Trust mcp.json from a non-local source. Stripped by default \u2014 MCP launch specs spawn child processes."},{name:"--accept-elevated",description:"Convenience for --accept-hooks --accept-permissions --accept-mcp together."}]},{name:"installs",usage:"agentsmesh installs <subcommand> [flags]",description:"Read-only inventory of installed packs (subcommands: list)",flags:[{name:"list",description:"List installed packs (NAME, SOURCE, FEATURES, INSTALLED)"},{name:"--global",description:"Read from ~/.agentsmesh/installs.yaml"}]},{name:"uninstall",usage:"agentsmesh uninstall <name>[,<name>...] [flags]",description:"Remove an installed pack; cleans installs.yaml, extends, and generated outputs",flags:[{name:"<name>",description:"Install entry name from installs.yaml (comma-separated for batch)"},{name:"--all",description:"Remove every installed pack in this scope"},{name:"--keep-pack",description:"Keep .agentsmesh/packs/<name>/ on disk; only drop yaml/extends entries"},{name:"--keep-generated",description:"Skip the post-uninstall generate pass; warn about stale target files"},{name:"--global",description:"Uninstall from ~/.agentsmesh/"},{name:"--dry-run",description:"Preview removal plan; no writes"},{name:"--force",description:"Non-interactive mode; accept all prompts (delete-anyway on modifications). Implied by --json."}]},{name:"refresh",usage:"agentsmesh refresh [<name>...] [flags]",description:"Re-fetch and re-apply installed packs from their recorded sources",flags:[{name:"<name>",description:"Pack name(s) to refresh (defaults to all installed packs)"},{name:"--dry-run",description:"Preview what would be refreshed without writing"},{name:"--force",description:"Skip drift-consent prompts; refresh even modified packs"},{name:"--global",description:"Refresh packs installed in ~/.agentsmesh/"}]},{name:"diff",usage:"agentsmesh diff [flags]",description:"Show patch-style output for what generate would change",flags:[{name:"--global",description:"Diff against outputs generated from ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit diff to target IDs (comma-separated)"}]},{name:"lint",usage:"agentsmesh lint [flags]",description:"Validate canonical files against target constraints",flags:[{name:"--global",description:"Lint canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit linting to target IDs (comma-separated)"}]},{name:"watch",usage:"agentsmesh watch [flags]",description:"Watch canonical files and regenerate on change",flags:[{name:"--global",description:"Watch ~/.agentsmesh/ and regenerate user-level config"},{name:"--targets <csv>",description:"Limit watched generate/matrix output to target IDs"}]},{name:"check",usage:"agentsmesh check",description:"Verify canonical files still match .agentsmesh/.lock",flags:[{name:"--global",description:"Check ~/.agentsmesh/.lock"}]},{name:"merge",usage:"agentsmesh merge",description:"Resolve .agentsmesh/.lock merge conflicts from current canonical state",flags:[{name:"--global",description:"Resolve ~/.agentsmesh/.lock conflicts"}]},{name:"matrix",usage:"agentsmesh matrix [flags]",description:"Print compatibility matrix for enabled features and targets",flags:[{name:"--global",description:"Show matrix for canonical home config under ~/.agentsmesh/"},{name:"--targets <csv>",description:"Limit matrix columns to target IDs"},{name:"--verbose",description:"Include expanded feature details in matrix output"}]},{name:"target",usage:"agentsmesh target scaffold <id> [--name <displayName>] [--force]",description:"Generate a new target skeleton (files, tests, fixture) under src/targets/<id>/.",flags:[{name:"--name <displayName>",description:"Human-readable name (defaults to id)"},{name:"--force",description:"Overwrite existing files"}]},{name:"plugin",usage:"agentsmesh plugin <add|list|remove|info> [args] [flags]",description:"Manage plugin-provided targets (npm packages exporting a TargetDescriptor).",flags:[{name:"--version <v>",description:"Pin plugin version (add)"},{name:"--id <id>",description:"Override derived plugin id (add)"}]},{name:"mcp",usage:"agentsmesh mcp",description:"Start the agentsmesh MCP server (stdio)",flags:[]},{name:"lessons",usage:"agentsmesh lessons <subcommand> [args] [flags]",description:`Query and capture lessons from .agentsmesh/lessons/lessons.json. Subcommands: ${yC.join(", ")}.`,flags:[{name:"--file <path>",description:"query: project-relative path of the file about to be edited"},{name:"--cmd <command>",description:"query: shell command about to run"},{name:"--keyword <text>",description:"query: free-form task description"},{name:"--format plain|md|json",description:"query: output format (default plain)"},{name:"--top <n>",description:"query: keep the top n ranked matches (default 10)"},{name:"--all",description:"query: return every match (no cap)"},{name:"--max-tokens <n>",description:"query: cap results by cumulative rule-token cost"},{name:'--rule "<text>"',description:"add: imperative rule (required)"},{name:"--topic <id>",description:"add: topic id (required; use --new-topic for new)"},{name:"--trigger-file <glob>",description:"add: file_glob trigger (repeat the flag; value is opaque)"},{name:"--trigger-cmd <regex>",description:"add: command_pattern trigger, valid regex (repeat the flag)"},{name:"--trigger-kw <text>",description:"add: keyword trigger (repeat the flag; value is opaque)"},{name:"--evidence <ref>",description:"add: evidence reference (commit:SHA, lesson:id, \u2026)"},{name:"--rationale <text>",description:"add: optional why-this-matters note stored on the lesson"},{name:'--new-topic --topic-summary "..."',description:"add: create a new topic"},{name:"--superseded-by <id>",description:"deprecate: replacement lesson id"},{name:"--dry-run",description:"strip-markers: preview changes; report the count without writing"},{name:"--json",description:"stats: emit the recall-telemetry report as JSON instead of the text summary"},{name:"--apply",description:"prune: write the curation (dry-run by default)"},{name:"--cap <n>",description:"prune: override the per-lesson trigger cap"},{name:"--merge",description:"import-md: fold legacy lessons into an existing lessons.json (recover stranded)"},{name:"--force",description:"import-md: overwrite existing lessons.json"},{name:"--migrated-at <ISO date>",description:"import-md: stamp on imported lessons"}]}];function Ll(e,t=18){if(e.length===0)return " (no command-specific flags)";let r=Math.max(t,...e.map(n=>n.name.length+2));return e.map(n=>` ${n.name.padEnd(r)}${n.description}`).join(`
|
|
164
|
+
`)}s(Ll,"formatFlags");function uy(){let e=py.map(t=>`- ${t.name.padEnd(8)} ${t.description}
|
|
165
|
+
Usage: ${t.usage}
|
|
166
|
+
${Ll(t.flags)}`).join(`
|
|
161
167
|
|
|
162
168
|
`);y.info(`agentsmesh <command> [flags]
|
|
163
169
|
|
|
164
170
|
Global flags:
|
|
165
|
-
${
|
|
171
|
+
${Ll(Vu)}
|
|
166
172
|
|
|
167
173
|
Commands:
|
|
168
|
-
${
|
|
174
|
+
${e}
|
|
175
|
+
|
|
176
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}s(uy,"printHelp");function Ju(e,t=[]){let r=py.find(o=>o.name===e);if(!r){uy();return}let n=t[0];if(e==="lessons"&&n!==void 0&&n.length>0){Tz(r,n);return}y.info(`${r.usage}
|
|
177
|
+
|
|
178
|
+
${r.description}
|
|
179
|
+
|
|
180
|
+
Command flags:
|
|
181
|
+
${Ll(r.flags)}
|
|
169
182
|
|
|
170
|
-
|
|
183
|
+
Global flags:
|
|
184
|
+
${Ll(Vu)}`);}s(Ju,"printCommandHelp");function Tz(e,t){let r=e.flags.filter(i=>i.description.startsWith(`${t}:`)).map(i=>({name:i.name,description:i.description.slice(t.length+1).trim()})),n=Ks[t],o=n?.example!==void 0?`
|
|
171
185
|
|
|
172
|
-
|
|
186
|
+
Example:
|
|
187
|
+
${n.example}`:"";y.info(`${n?.usage??`agentsmesh lessons ${t} [flags]`}
|
|
173
188
|
|
|
174
189
|
Command flags:
|
|
175
|
-
${
|
|
190
|
+
${Ll(r)}
|
|
176
191
|
|
|
177
192
|
Global flags:
|
|
178
|
-
${
|
|
179
|
-
`);}s(
|
|
180
|
-
`);}s(
|
|
181
|
-
`):y.error(
|
|
193
|
+
${Ll(Vu)}${o}`);}s(Tz,"printLessonsSubcommandHelp");var Yu;function vz(){try{let e=createRequire(import.meta.url),t=dirname(fileURLToPath(import.meta.url)),r=t.endsWith("dist")?join(t,"..","package.json"):join(t,"..","..","package.json");return e(r).version}catch{return}}s(vz,"readPackageVersion");function Fz(){if(typeof __AGENTSMESH_VERSION__<"u")return __AGENTSMESH_VERSION__;let e=globalThis.__AGENTSMESH_VERSION__;return typeof e=="string"?e:"unknown"}s(Fz,"getVersionFallback");function Ji(){return Yu||(Yu=vz()??Fz(),Yu)}s(Ji,"getVersion");function _C(){process.stdout.write(`agentsmesh v${Ji()}
|
|
194
|
+
`);}s(_C,"printVersion");ne();function Cl(e,t){let r={success:t.success,command:e};t.success?r.data=t.data:(r.error=t.error,t.data!==void 0&&(r.data=t.data)),process.stdout.write(JSON.stringify(r)+`
|
|
195
|
+
`);}s(Cl,"emitJson");var Pn=class extends Error{static{s(this,"CliUsageError");}constructor(t){super(t),this.name="CliUsageError";}};function SC(e,t){let r=e instanceof Pn?2:1;if(t?.json)return Cl(t.command??"unknown",{success:false,error:e.message}),process.exit(r);t?.verbose&&e.stack?process.stderr.write(e.stack+`
|
|
196
|
+
`):y.error(e.message),process.exit(r);}s(SC,"handleError");ne();function it(e,t,r,n){if(r.json===true){let o=t.exitCode===0,i=t.error!==void 0&&t.error.length>0?t.error:`Command '${e}' failed`;Cl(e,o?{success:true,data:t.data}:{success:false,error:i,data:t.data}),process.exit(t.exitCode);return}n(),t.exitCode!==0&&process.exit(t.exitCode);}s(it,"handleResult");tt();Oo();A();Qu();function Dg(e){return createHash("sha256").update(e,"utf8").digest("hex")}s(Dg,"hashContent");async function Ng(e){try{let t=await readFile(e);return createHash("sha256").update(t).digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(Ng,"hashFile");async function vg(e){try{if(!Xu(e)){let r=await readFile(e);return createHash("sha256").update(r).digest("hex")}let t=await readFile(e,"utf-8");return t.startsWith(bl)&&(t=t.slice(bl.length)),t=qu(t),createHash("sha256").update(t,"utf8").digest("hex")}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return null;throw t}}s(vg,"hashFileForManifest");zc();var Hk=".lock",n9=[e=>e.startsWith("rules/")&&e.endsWith(".md"),e=>e.startsWith("commands/")&&e.endsWith(".md"),e=>e.startsWith("agents/")&&e.endsWith(".md"),e=>e.match(/^skills\/[^/]+\/.+$/)!==null,e=>e==="mcp.json",e=>e==="permissions.yaml",e=>e==="hooks.yaml",e=>e==="ignore"];function o9(e){return e.startsWith("packs/")?false:n9.some(t=>t(e))}s(o9,"isCanonical");var s9={rules:s(e=>e.startsWith("rules/"),"rules"),commands:s(e=>e.startsWith("commands/"),"commands"),agents:s(e=>e.startsWith("agents/"),"agents"),skills:s(e=>/^skills\/[^/]+\/.+$/.test(e),"skills"),mcp:s(e=>e==="mcp.json","mcp"),permissions:s(e=>e==="permissions.yaml","permissions"),hooks:s(e=>e==="hooks.yaml","hooks"),ignore:s(e=>e==="ignore","ignore")};async function Fg(e){let t=join(e,Hk),r=await k(t);if(r===null)return null;try{let n=parse(r);return !n||typeof n!="object"?null:{generatedAt:String(n.generated_at??""),generatedBy:String(n.generated_by??""),libVersion:String(n.lib_version??""),checksums:n.checksums&&typeof n.checksums=="object"?n.checksums:{},extends:n.extends&&typeof n.extends=="object"?n.extends:{},packs:n.packs&&typeof n.packs=="object"?n.packs:{}}}catch{return null}}s(Fg,"readLock");async function Mg(e,t){let r=join(e,Hk),n={generated_at:t.generatedAt,generated_by:t.generatedBy,lib_version:t.libVersion,checksums:t.checksums,extends:t.extends,packs:t.packs},o=`# Auto-generated. DO NOT EDIT MANUALLY.
|
|
182
197
|
# Tracks the state of all config files for team conflict resolution.
|
|
183
198
|
|
|
184
|
-
`+stringify(n);await
|
|
185
|
-
`),a=
|
|
199
|
+
`+stringify(n);await L(r,o);}s(Mg,"writeLock");async function vs(e){if(!await j(e))return {};let t=await U(e),r={};for(let n of t){let o=relative(e,n).replace(/\\/g,"/");if(o===Hk||!o9(o))continue;let i=await Ng(n);i!==null&&(r[o]=i.startsWith("sha256:")?i:`sha256:${i}`);}return r}s(vs,"buildChecksums");function $g(e,t,r){if(r.length===0)return [];let n=r.map(a=>s9[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(e),...Object.keys(t)]),i=[];for(let a of o)n.some(l=>l(a))&&e[a]!==t[a]&&i.push(a);return i}s($g,"detectLockedFeatureViolations");async function Gg(e){let t=await Tg(e),r={};for(let{meta:n}of t)r[n.name]=n.content_hash;return r}s(Gg,"buildPackChecksums");async function Vc(e){let t={};for(let r of e){if(r.version!==void 0){t[r.name]=r.version;continue}let n=join(r.resolvedPath,".agentsmesh"),o=await vs(n),i=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
200
|
+
`),a=Dg(i),l=a.startsWith("sha256:")?a:`sha256:${a}`;t[r.name]=`local:${l}`;}return t}s(Vc,"buildExtendChecksums");xe();rt();function Jc(e){return e?(e.outputFamilies??[]).filter(t=>t.kind==="additional").flatMap(t=>[...t.explicitPaths??[]]):[]}s(Jc,"getAdditionalRootDecorationPaths");function lj(e,t){for(let r of e?.outputFamilies??[])if(r.pathPrefix!==void 0&&t.startsWith(r.pathPrefix)||r.explicitPaths?.includes(t))return r.id;return "default"}s(lj,"resolveRewriteFamilyId");yt();oR();function i9(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(i9,"addDirectoryMapping");function cj(e,t,r){let n=posix.dirname(t),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)i9(e,n,o),n=posix.dirname(n),o=posix.dirname(o);}s(cj,"addSkillDirectoryMappings");xe();function mj(e,t,r="project"){let n=Ke(e,r);if(!n)return null;if(t.root)return n.rootInstructionPath??null;if(t.targets.length>0&&!t.targets.includes(e))return null;let o=posix.basename(t.source.replace(/\\/g,"/"),".md");return n.paths.rulePath(o,t)}s(mj,"ruleTargetPath");function pj(e,t,r,n="project"){let o=Ke(e,n);return o?o.paths.commandPath(t,r):null}s(pj,"commandTargetPath");function uj(e,t,r,n="project"){let o=Ke(e,n);return o?o.paths.agentPath(t,r):null}s(uj,"agentTargetPath");Ct();nt();Nt();xe();function c9(e,t,r){e.set(t,r),e.set(`${t}/`,`${r}/`);}s(c9,"addDirectoryMapping");function zk(e,t,r,n="project"){let o=new Map;for(let a of t.rules){let l=mj(e,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of t.commands){let l=pj(e,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of t.agents){let l=uj(e,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let i=Yp(e,n);if(!i)return o;for(let a of t.skills){c9(o,`.agentsmesh/skills/${a.name}`,`${i}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${i}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,p=`${i}/${a.name}/${c}`;o.set(m,p),cj(o,m,p);}}return o}s(zk,"buildReferenceMap");yt();yt();xe();function fj(e,t,r,n){let o=n.normalize(t),i=n.normalize(r);e.set(o,i),e.set(`${o}/`,`${i}/`);}s(fj,"addPackAbsoluteDirMapping");function m9(e){let t=new Set;for(let{relativePath:r}of e){let n=r.replace(/\\/g,"/"),o=posix.dirname(n);for(;o!=="."&&o.length>0;){t.add(o);let i=posix.dirname(o);if(i===o)break;o=i;}}return [...t]}s(m9,"skillSupportingDirPrefixes");function gj(e,t,r,n,o){let i=Yp(t,o);if(!i)return;let a=le(n),l=a.join(n,".agentsmesh","packs");for(let c of r.skills){let m=a.dirname(c.source);if(!m.startsWith(l))continue;let p=a.normalize(a.join(n,i,c.name));fj(e,m,p,a),e.set(a.normalize(c.source),a.normalize(a.join(p,"SKILL.md")));for(let u of c.supportingFiles){let f=a.normalize(a.join(p,u.relativePath));e.set(a.normalize(u.absolutePath),f);}for(let u of m9(c.supportingFiles))fj(e,a.join(m,u),a.join(p,u),a);}}s(gj,"addPackSkillArtifactMappings");yt();function p9(e){return `.agentsmesh/rules/${basename(e.source)}`}s(p9,"canonicalRulePath");function u9(e){return `.github/instructions/${basename(e.source,".md")}.instructions.md`}s(u9,"copilotInstructionsPath");function yj(e,t,r,n,o){if(e!=="copilot"||!n?.startsWith(".github/instructions/"))return;let i=le(r);for(let a of o.rules)a.root||a.globs.length===0||t.set(i.normalize(i.join(r,p9(a))),i.normalize(i.join(r,u9(a))));}s(yj,"applyCopilotInstructionArtifactRefs");xe();function Vk(e,t){t!==void 0&&t.length>0&&!e.includes(t)&&e.push(t);}s(Vk,"pushUnique");function Rj(e,t,r,n){let o=[],i=r.get(`.agentsmesh/rules/${basename(t.source)}`);Vk(o,i);let a=Ke(e,n);if(t.root)for(let l of Jc(a))Vk(o,l);for(let l of a?.extraRuleOutputPaths?.(t,{refs:r,scope:n})??[])Vk(o,l);return o}s(Rj,"extraRuleOutputPaths");xe();function _j(e,t,r,n,o,i){let a=Ke(e,t);if(!a?.mirrorGlobalPath)return;let l=a.mirrorGlobalPath(r,i??[]),c=l===null?[]:Array.isArray(l)?l:[l];for(let m of c)m!==r&&o.set(m,n);}s(_j,"addSkillMirrorSourceEntry");function f9(e){return `.agentsmesh/commands/${e.name}.md`}s(f9,"canonicalCommandPath");function g9(e){return `.agentsmesh/agents/${e.name}.md`}s(g9,"canonicalAgentPath");function h9(e){return `.agentsmesh/skills/${e.name}/SKILL.md`}s(h9,"canonicalSkillPath");function Sj(e,t,r,n,o,i){let a=i?.scope??"project",l=le(n),c=new Map([...zk(e,t,r,a)].map(([m,p])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,p))]));return yj(e,c,n,o,t),gj(c,e,t,n,a),c}s(Sj,"buildArtifactPathMap");function kj(e,t,r,n="project",o){let i=zk(e,t,r,n),a=new Map;for(let l of t.rules)for(let c of Rj(e,l,i,n))a.set(c,l.source);for(let l of t.commands){let c=i.get(f9(l));c&&a.set(c,l.source);}for(let l of t.agents){let c=i.get(g9(l));c&&a.set(c,l.source);}for(let l of t.skills){let c=i.get(h9(l));c&&(a.set(c,l.source),_j(e,n,c,l.source,a,o));for(let m of l.supportingFiles){let p=`.agentsmesh/skills/${l.name}/${m.relativePath.replace(/\\/g,"/")}`,u=i.get(p);u&&(a.set(u,m.absolutePath),_j(e,n,u,m.absolutePath,a,o));}}return a}s(kj,"buildOutputSourceMap");xe();rt();Ky();function _9(e,t){if(!t)return null;for(let r of t){let n=re(r);if(n?.sharedArtifacts){for(let[o,i]of Object.entries(n.sharedArtifacts))if(i==="owner"&&e.startsWith(o))return r}}return null}s(_9,"findSharedArtifactOwner");function Ij(e,t,r){if(t==="global"){let n=_9(e.path,r);if(n)return n;let o=wE(e.path);if(o)return o}return e.target}s(Ij,"artifactMapTargetForResult");function S9(e,t){return `${e}\0${(t??[]).join(",")}`}s(S9,"sourceMapCacheKey");function Jk(e,t){let r=le(e),n=new Set;for(let o of t){let i=r.join(e,o.path);n.add(i);let a=r.dirname(i);for(;a.startsWith(e)&&!n.has(a)&&(n.add(a),a!==e);)a=r.dirname(a);}return n}s(Jk,"collectPlannedPaths");function k9(e,t,r){let n=Ke(e.target,t),o=lj(n,e.path);if(o!=="default")return `${e.target}:${o}`;let i=Ij(e,t,r);return i===e.target?e.target:`${e.target}~via~${i}`}s(k9,"artifactCacheKey");function Lj(e,t,r,n,o="project",i,a){let l=Jk(n,e),c=new Map,m=new Map;return e.map(p=>{if(a?.has(p.path))return p;let u=S9(p.target,i),g=(m.get(u)??(()=>{let I=kj(p.target,t,r,o,i);return m.set(u,I),I})()).get(p.path);if(!g)return p;let h=Ij(p,o,i),R=k9(p,o,i),_=c.get(R)??(()=>{let I=Sj(h,t,r,n,p.path,{scope:o});return c.set(R,I),I})(),S=Ad({content:p.content,projectRoot:n,sourceFile:g,destinationFile:le(n).join(n,p.path),translatePath:s(I=>_.get(I)??I,"translatePath"),pathExists:s(I=>l.has(I)||existsSync(I),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:s(I=>{try{return statSync(I).isDirectory()}catch{return false}},"pathIsDirectory")});return S.content===p.content?p:{...p,content:S.content}})}s(Lj,"rewriteGeneratedReferences");yt();Xs();ne();var L9=/!?\[[^\]]*\]\(([^)]+)\)/g,C9=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function E9(e){return e.endsWith(".md")||e.endsWith(".mdc")}s(E9,"isMarkdownLikeOutput");function w9(e,t){return t.some(([r,n])=>e>=r&&e<n)}s(w9,"isOffsetInRanges");function b9(e){let t=e.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(t);return r?.[1]!==void 0&&(t=r[1].trim()),t.startsWith("<")&&t.endsWith(">")&&(t=t.slice(1,-1).trim()),t}s(b9,"parseMarkdownLinkDestination");function O9(e,t){let r=e.trim();if(!r||r.startsWith("#")||/^https?:\/\//i.test(r)||/^mailto:/i.test(r)||/^data:/i.test(r)||/^javascript:/i.test(r)||/^ftp:/i.test(r))return true;if(/^[a-zA-Z]:[\\/]/.test(r))return false;if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(r))return true;if(r.startsWith("/")){let n=Q(t,t),o=Q(t,r);if(!o.startsWith(`${n}/`)&&o!==n)return true}return false}s(O9,"shouldSkipLocalValidation");function A9(e){return /(?:^|\/)[^/]+\/skills\/[^/]+\//.test(e)}s(A9,"isSkillGeneratedOutput");var x9={rules:"rules",steering:"rules",commands:"commands",agents:"agents",skills:"skills",droids:"agents",instructions:"rules",prompts:"commands"},T9={".clinerules":"rules"},P9=[".agent.md",".instructions.md",".prompt.md"];function Cj(e){for(let t of P9)if(e.endsWith(t))return e.slice(0,-t.length);return e.endsWith(".mdc")?e.slice(0,-4):e.endsWith(".md")?e.slice(0,-3):e}s(Cj,"stripMarkdownExt");function D9(e){let t=/^[^/]+\/([^/]+)\/([^/]+)/.exec(e);if(t){let n=x9[t[1]??""];if(n){let o=t[2]??"";return n!=="skills"&&(o=Cj(o)),`${n}/${o}`}}let r=/^([^/]+)\/([^/]+)/.exec(e);if(r){let n=T9[r[1]??""];if(n)return `${n}/${Cj(r[2]??"")}`}return null}s(D9,"canonicalKeyFromOutputPath");function N9(e,t){if(t.has(e))return true;try{let r=statSync(e);return r.isFile()||r.isDirectory()}catch{return false}}s(N9,"pathExistsForGenerate");function v9(e,t,r){let o=b9(e).split("#")[0]??"",{candidate:i}=Kl(o),a=i,l=Wl.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(O9(c,t))return [];let m=Ym(c,t,r);if(m.length===0){let u=le(t),f=Q(t,r);m=[Q(t,u.join(u.dirname(f),c)),Q(t,u.join(t,c))];}let p=[];for(let u of m)for(let f of Xm(t,u)){let g=Q(t,f);p.includes(g)||p.push(g);}return p}s(v9,"resolveMarkdownLinkTargets");function F9(e,t){let r=Jk(t,e),n=[];for(let o of e){if(!E9(o.path))continue;let i=Q(t,le(t).join(t,o.path)),a=Od(o.content),l=s((c,m)=>{if(w9(m,a))return;let p=v9(c,t,i);p.length!==0&&(p.some(u=>N9(u,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:p}));},"visitDestination");for(let c of o.content.matchAll(L9)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(C9)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}s(F9,"findBrokenMarkdownLinks");function Ej(e,t,r={}){let n=F9(e,t);if(n.length===0)return;let o=r.packOriginatedKeys,i=[],a=[];for(let c of n){let m=D9(c.generatePath),p=o!==void 0&&m!==null&&o.has(m);A9(c.generatePath)||p?a.push(c):i.push(c);}if(a.length>0){let c=a.map(m=>` ${m.generatePath} (${m.target}): "${m.rawLink}" \u2192 not found`);y.warn(`Third-party content contains ${a.length} broken local link${a.length===1?"":"s"} (warning only; outputs from installed packs and skill subtrees are treated as advisory):
|
|
186
201
|
${c.join(`
|
|
187
202
|
`)}`);}if(i.length===0)return;let l=i.map(c=>` ${c.generatePath} (${c.target}): "${c.rawLink}" \u2192 not found (tried: ${c.checkedPaths.join(", ")})`);throw new Error(`Generated markdown contains broken local links:
|
|
188
203
|
${l.join(`
|
|
189
204
|
`)}
|
|
190
|
-
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(
|
|
205
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}s(Ej,"validateGeneratedMarkdownLinks");var M9=[`${sep}.agentsmesh${sep}packs${sep}`,"/.agentsmesh/packs/"];function Ug(e){return M9.some(t=>e.includes(t))}s(Ug,"isUnderPacks");function wj(e){let t=new Set;for(let r of e.rules)if(Ug(r.source)){let n=r.root?"_root":$9(r.source);n&&t.add(`rules/${n}`);}for(let r of e.agents)Ug(r.source)&&t.add(`agents/${r.name}`);for(let r of e.commands)Ug(r.source)&&t.add(`commands/${r.name}`);for(let r of e.skills)Ug(r.source)&&t.add(`skills/${r.name}`);return t}s(wj,"buildPackOriginatedKeys");function $9(e){let r=e.replace(/\\/g,"/").split("/").pop()??"";return r.endsWith(".md")?r.slice(0,-3):r}s($9,"ruleNameFromSource");Nn();var xj="AGENTS.md";function bj(e){switch(e){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}s(bj,"statusRank");function G9(e,t){return bj(t.status)<=bj(e.status)?e:{...e,status:t.status,currentContent:t.currentContent??e.currentContent}}s(G9,"mergeDuplicateMetadata");function Bg(e){return e.trim()}s(Bg,"trimmedContent");var j9=[/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->\n*/g];function Oj(e){let t=e;for(let r of j9)t=t.replace(r,"");return t.trim().replace(/\n{2,}/g,`
|
|
191
206
|
|
|
192
|
-
`)}s(WM,"normalizeAgentsContent");function HM(t){return /<!-- agentsmesh:embedded-rules:start -->/.test(t)}s(HM,"hasOptionalAgentsBlock");function TX(t,e){if(!t.path.endsWith(zM)||t.path!==e.path)return null;let r=xf(t.content),n=xf(e.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?t:e;if(WM(t.content)===WM(e.content)){let a=HM(t.content),l=HM(e.content);if(a!==l)return a?t:e}return null}s(TX,"richerAgentsResult");function xX(t,e){if(!t.path.endsWith(zM)||t.path!==e.path)return null;let r=t.target===Pg?t:e.target===Pg?e:null,n=r===t?e:t;if(!r)return null;let o=xf(r.content).length,i=xf(n.content).length;return o===i?null:o>i?r:n}s(xX,"richerCodexAgentsResult");function Df(t){let e=[];for(let r of t){let n=e.findIndex(i=>i.path===r.path);if(n===-1){e.push(r);continue}let o=e[n];if(o.content!==r.content){let i=TX(o,r);if(i){e[n]=i;continue}let a=xX(o,r);if(a){e[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}e[n]=bX(o,r);}return e}s(Df,"resolveOutputCollisions");function VM(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}s(VM,"refreshResultStatus");A();Tt();ce();function YM(t,e){return t===null?"created":t!==e?"updated":"unchanged"}s(YM,"computeStatus");function DX(t,e,r){let n=AR(t,e,r);if(n!==null)return n;let o=nt(t);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(e):e,n):null}s(DX,"resolveGeneratedOutputPath");async function mp(t,e,r,n,o,i){let a=DX(e,r.path,o);if(a===null)return null;let l=await _(join(n,a)),c=t.findIndex(u=>u.path===a&&u.target===e),m=c>=0?t[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&t.splice(c,1),t.push({target:e,path:a,content:p,currentContent:l??void 0,status:YM(l,p)}),a}s(mp,"emitGeneratedOutput");function oI(t,e,r){return {capability:di(t,r)?.[e]??{level:"none"},scope:r}}s(oI,"featureContext");async function va(t,e,r,n,o,i,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let p=oI(c,a,i);for(let u of m(r,p)){let f=await mp(t,c,u,n,i);if(f===null)continue;let g=Kt(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,e),R=h===null?[]:Array.isArray(h)?h:[h];for(let k of R){let I=await _(join(n,k));t.push({target:c,path:k,content:u.content,currentContent:I??void 0,status:YM(I,u.content)});}}}}}s(va,"generateFeature");sh();Tt();function NX(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Rc(t)]:[]}s(NX,"rootDecorationPaths");function XM(t,e,r="project"){return t.map(n=>{let o=Kt(n.target,r);if(!o)return n;let i=NX(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(e):n.content,c=ek(l);return c===n.content?n:{...n,content:c}})}s(XM,"decoratePrimaryRootInstructions");Tt();ce();hd();function sI(t,e,r,n,o){let a=(Fr(t)??nt(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&kP.includes(o)?EP(l,n):n}s(sI,"mergeOutputContent");async function ZM(t,e,r,n,o){for(let i of e){let a=gc(i,"permissions",void 0,o)??nt(i)?.generators.generatePermissions;if(a)for(let l of a(r))await mp(t,i,l,n,o,{mergeContent:s((c,m,p,u)=>sI(i,c,m,p,u),"mergeContent")});}}s(ZM,"generatePermissionsFeature");async function QM(t,e,r,n,o,i){for(let a of e){let l=gc(a,"hooks",i,o)??nt(a)?.generators.generateHooks;if(!l)continue;let c=oI(a,"hooks",o),m=[...l(r,c)],u=(Fr(a)??nt(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await mp(t,a,f,n,o,{mergeContent:s((g,h,R,k)=>sI(a,g,h,R,k),"mergeContent")});}}s(QM,"generateHooksFeature");async function qM(t,e,r,n,o){for(let i of e){let l=(Fr(i)??nt(i))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await mp(t,i,m,n,o,{mergeContent:s((p,u,f,g)=>sI(i,p,u,f,g),"mergeContent")});}}s(qM,"generateScopedSettingsFeature");async function vr(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=t,a=[...e.targets,...e.pluginTargets??[]],l=i?a.filter(B=>i.includes(B)):a;function c(B,H){return gc(B,H,e,o)}s(c,"resolveGen");let m=e.features.includes("rules"),p=e.features.includes("commands"),u=e.features.includes("agents"),f=e.features.includes("skills"),g=e.features.includes("mcp"),h=e.features.includes("permissions"),R=e.features.includes("hooks"),k=e.features.includes("ignore"),I=[];await va(I,l,r,n,m,o,"rules",B=>c(B,"rules")),await va(I,l,r,n,p,o,"commands",B=>c(B,"commands")),await va(I,l,r,n,u,o,"agents",B=>c(B,"agents")),await va(I,l,r,n,f,o,"skills",B=>c(B,"skills")),await va(I,l,r,n,g,o,"mcp",B=>c(B,"mcp")),h&&await ZM(I,l,r,n,o),R&&await QM(I,l,r,n,o,e),await va(I,l,r,n,k,o,"ignore",B=>c(B,"ignore"));let C=new Set(e.features);for(let B of l){let tt=(Fr(B)??nt(B))?.globalSupport?.scopeExtras;if(tt){let it=await tt(r,n,o,C);I.push(...it);}}(g||k||R||u||h)&&await qM(I,l,r,n,o);let b=XM(I,r,o),N=FX(b,o),T=GM(b,r,e,n,o,l,N);return UM(T,n,{packOriginatedKeys:BM(r)}),Df(T.map(VM))}s(vr,"generate");function FX(t,e){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Kt(a,e),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of Rc(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of t){if(!n(a.target).has(a.path))continue;let l=o.get(a.path)??new Set;l.add(a.target),o.set(a.path,l);}let i=new Set;for(let[a,l]of o)l.size>1&&i.add(a);return i}s(FX,"computeSharedRootInstructionPaths");Mr();ot();A();Io();var XX=6e4,ZX=30,QX=200,qX=2e3;async function Ff(t,e={}){let r=e.retries??ZX,n=e.retryDelayMs??QX,o=e.staleMs??XX;await mkdir(dirname(t),{recursive:true});let i=0;for(;;){let a=await tZ(t);if(a)return a;let l=await eZ(t);if(l!=="young"&&rZ(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new Xa(t,oZ(c))}i++,await iZ(n);}}s(Ff,"acquireProcessLock");async function tZ(t){try{await mkdir(t,{recursive:!1});}catch(i){if(i.code==="EEXIST")return null;throw i}let e=join(t,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:l$()};await writeFile(e,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(t,{recursive:!0,force:!0});}catch{}}},"signalHandler");return process.once("SIGINT",o),process.once("SIGTERM",o),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",o),process.off("SIGTERM",o),process.off("exit",o),await rm$1(t,{recursive:true,force:true}).catch(()=>{}));}}s(tZ,"tryAcquire");async function eZ(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return sZ(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<qX)return "young"}catch{}return null}}s(eZ,"inspectLock");function rZ(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==l$()?false:!nZ(t.pid)}s(rZ,"isStale");function nZ(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}s(nZ,"isProcessAlive");function oZ(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}s(oZ,"describeHolder");function sZ(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}s(sZ,"isLockMetadata");function l$(){return hostname()}s(l$,"getHostname");function iZ(t){return new Promise(e=>setTimeout(e,t))}s(iZ,"sleep");A();Tt();async function c$(t,e=t){let r=await readdir(t,{withFileTypes:true}),n=[];for(let o of r){let i=join(t,o.name);if(o.isDirectory()){n.push(...await c$(i,e));continue}n.push(relative(e,i).replace(/\\/g,"/"));}return n}s(c$,"listFiles");async function mZ(t,e,r){if(r.has(e))return;let n=join(t,e);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(mZ,"removeIfStale");async function m$(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let i=wR(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(t.projectRoot,a);if(await j(l))for(let c of await c$(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await mZ(t.projectRoot,o,e);}s(m$,"cleanupStaleGeneratedOutputs");function Ic(t,e,r){let n=resolve(t),o=resolve(t,e);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${e}`)}s(Ic,"ensurePathInsideRoot");Vc();A();ot();async function mI(t,e){let r=await Rs(t.canonicalDir),n=e.length>0?await _c(e):{},o=await bf(join(t.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await wf(t.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Oi(),checksums:r,extends:n,packs:o});try{await wg(ve(),join(t.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(mI,"writeLockFile");async function S$(t){let{mode:e,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c}=t;if(e==="check")return {exitCode:0,data:{scope:r,mode:e,files:[],summary:vf([])}};if(n||await mI(o,i),c.printMatrix!==false){let{runMatrix:m}=await Promise.resolve().then(()=>(dp(),_I)),{renderMatrix:p}=await Promise.resolve().then(()=>(gp(),RI)),u=await m(a,l);p(u,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:e,files:[],summary:vf([])}}}s(S$,"handleEmptyResults");function C$(t,e){let r=t.filter(a=>a.status!=="skipped"),n=r.filter(a=>a.status!=="unchanged"),o=r.map(a=>({path:a.path,target:a.target,status:a.status}));return {exitCode:n.length===0?0:1,data:{scope:e,mode:"check",files:o,summary:vf(r)}}}s(C$,"buildCheckResult");async function k$(t){let{results:e,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=t,u=r?null:await Ff(join(i.canonicalDir,".generate.lock"));try{if(!r){for(let h of e)if(h.status==="created"||h.status==="updated"){let R=Ic(i.rootBase,h.path,h.target);await S(R,h.content);}await m$({projectRoot:i.rootBase,targets:a,expectedPaths:e.map(h=>h.path),scope:n}),await mI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(dp(),_I)),{renderMatrix:R}=await Promise.resolve().then(()=>(gp(),RI)),k=await h(c,m);R(k,{verbose:c.verbose===true});}let f=e.filter(h=>h.status!=="skipped"),g=f.map(h=>({path:h.path,target:h.target,status:h.status}));return {exitCode:0,data:{scope:n,mode:o,files:g,summary:vf(f)}}}s(k$,"handleGenerateOrDryRun");function vf(t){return {created:t.filter(e=>e.status==="created").length,updated:t.filter(e=>e.status==="updated").length,unchanged:t.filter(e=>e.status==="unchanged").length}}s(vf,"buildSummary");async function Sc(t,e,r={}){if(t.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=e??process.cwd(),o=t.check===true,i=t["dry-run"]===true,a=t.force===true,l=t.global===true?"global":"project",c=t["refresh-cache"]===true||t["no-cache"]===true,m=t.targets,p=typeof m=="string"&&m?m.split(",").map(N=>N.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await yt(n,l);await Ut(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let N=await Of(g.canonicalDir);if(N!==null){let T=await Rs(g.canonicalDir),B=Af(N.checksums,T,h);if(B.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let H of B)y.error(` ${H}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:R,resolvedExtends:k}=await Oe(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),I=[...f.targets,...f.pluginTargets??[]];if(p){let N=p.filter(T=>!I.includes(T));if(N.length>0)throw new Error(`Unknown target(s) in --targets: ${N.join(", ")}. Available: ${I.join(", ")}`)}let C=p?I.filter(N=>p.includes(N)):I,b=await vr({config:f,canonical:R,projectRoot:g.rootBase,scope:l,targetFilter:p});return b.length===0?S$({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:k,flags:t,root:n,options:r}):o?C$(b,l):k$({results:b,dryRun:i,scope:l,mode:u,context:g,activeTargets:C,resolvedExtends:k,flags:t,root:n,options:r})}s(Sc,"runGenerate");ot();function II(t,e){return t==="global"?`~/${e}`:e}s(II,"formatDisplayPath");function Cc(t){let{data:e}=t,{scope:r,mode:n,files:o}=e;if(o.length===0){y.info("No files to generate (no root rule or rules feature disabled)."),n==="check"&&y.success("Generated files are in sync.");return}if(n==="check"){let c=o.filter(m=>m.status!=="unchanged");if(c.length===0){y.success("Generated files are in sync.");return}for(let m of c)y.error(`[check] ${m.status} ${II(r,m.path)} (${m.target})`);y.error("Generated files are out of sync. Run 'agentsmesh generate' to update them.");return}if(n==="dry-run"){for(let c of o)y.info(`[dry-run] ${c.status} ${II(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${II(r,c.path)}`);let{created:i,updated:a,unchanged:l}=e.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(Cc,"renderGenerate");A();Tt();Tt();Sn();function E$(){return Pt.filter(t=>!t.excludeFromStarterInit).map(t=>t.id).filter(Fe)}s(E$,"starterInitTargetIds");var L$=/^# yaml-language-server: \$schema=[^\n]*\n?/;function RZ(){let t=Oi();return `https://unpkg.com/agentsmesh${t&&t!=="unknown"?`@${t}`:""}/schemas`}s(RZ,"schemaBaseUrl");function O$(t){return `${RZ()}/${t}.json`}s(O$,"schemaUrl");function kc(t){return `# yaml-language-server: $schema=${O$(t)}
|
|
193
|
-
`
|
|
194
|
-
`)
|
|
195
|
-
|
|
207
|
+
`)}s(Oj,"normalizeAgentsContent");function Aj(e){return /<!-- agentsmesh:embedded-rules:start -->/.test(e)}s(Aj,"hasOptionalAgentsBlock");function U9(e,t){if(!e.path.endsWith(xj)||e.path!==t.path)return null;let r=Bg(e.content),n=Bg(t.content);if(!r||!n)return null;let o=r.includes(n),i=n.includes(r);if(o!==i)return o?e:t;if(Oj(e.content)===Oj(t.content)){let a=Aj(e.content),l=Aj(t.content);if(a!==l)return a?e:t}return null}s(U9,"richerAgentsResult");function B9(e,t){if(!e.path.endsWith(xj)||e.path!==t.path)return null;let r=e.target===Ry?e:t.target===Ry?t:null,n=r===e?t:e;if(!r)return null;let o=Bg(r.content).length,i=Bg(n.content).length;return o===i?null:o>i?r:n}s(B9,"richerCodexAgentsResult");function Kg(e){let t=[];for(let r of e){let n=t.findIndex(i=>i.path===r.path);if(n===-1){t.push(r);continue}let o=t[n];if(o.content!==r.content){let i=U9(o,r);if(i){t[n]=i;continue}let a=B9(o,r);if(a){t[n]=a;continue}throw new Error(`Conflicting generated outputs for ${r.path}: ${o.target} and ${r.target} produce different content.`)}t[n]=G9(o,r);}return t}s(Kg,"resolveOutputCollisions");function Tj(e){let t=e.currentContent===void 0?"created":e.currentContent!==e.content?"updated":"unchanged";return e.status===t?e:{...e,status:t}}s(Tj,"refreshResultStatus");A();xe();rt();function Dj(e,t){return e===null?"created":e!==t?"updated":"unchanged"}s(Dj,"computeStatus");function K9(e,t,r){let n=Sk(e,t,r);if(n!==null)return n;let o=re(e);if(!o)return null;let i=r==="global"?o.globalSupport?.layout:o.project;return i?(n=i.rewriteGeneratedPath?i.rewriteGeneratedPath(t):t,n):null}s(K9,"resolveGeneratedOutputPath");async function eu(e,t,r,n,o,i){let a=K9(t,r.path,o);if(a===null)return null;let l=await k(join(n,a)),c=e.findIndex(u=>u.path===a&&u.target===t),m=c>=0?e[c]:void 0,p=i?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&e.splice(c,1),e.push({target:t,path:a,content:p,currentContent:l??void 0,status:Dj(l,p)}),a}s(eu,"emitGeneratedOutput");function Xk(e,t,r){return {capability:Di(e,r)?.[t]??{level:"none"},scope:r}}s(Xk,"featureContext");async function ol(e,t,r,n,o,i,a,l){if(o)for(let c of t){let m=l(c);if(!m)continue;let p=Xk(c,a,i);for(let u of m(r,p)){let f=await eu(e,c,u,n,i);if(f===null)continue;let g=Ke(c,i);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(f,t),R=h===null?[]:Array.isArray(h)?h:[h];for(let _ of R){let S=await k(join(n,_));e.push({target:c,path:_,content:u.content,currentContent:S??void 0,status:Dj(S,u.content)});}}}}}s(ol,"generateFeature");Yy();xe();function W9(e){return e?.rootInstructionPath?[e.rootInstructionPath,...Jc(e)]:[]}s(W9,"rootDecorationPaths");function Nj(e,t,r="project"){return e.map(n=>{let o=Ke(n.target,r);if(!o)return n;let i=W9(o);if(i.length===0||!i.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(t):n.content,c=vE(l);return c===n.content?n:{...n,content:c}})}s(Nj,"decoratePrimaryRootInstructions");xe();rt();bf();function qk(e,t,r,n,o){let a=(Hr(e)??re(e))?.mergeGeneratedOutputContent?.(t,r,n,o);if(a!=null)return a;let l=r?.content??t;return l!==null&&nD.includes(o)?oD(l,n):n}s(qk,"mergeOutputContent");async function vj(e,t,r,n,o){for(let i of t){let a=Wc(i,"permissions",void 0,o)??re(i)?.generators.generatePermissions;if(a)for(let l of a(r))await eu(e,i,l,n,o,{mergeContent:s((c,m,p,u)=>qk(i,c,m,p,u),"mergeContent")});}}s(vj,"generatePermissionsFeature");async function Fj(e,t,r,n,o,i){for(let a of t){let l=Wc(a,"hooks",i,o)??re(a)?.generators.generateHooks;if(!l)continue;let c=Xk(a,"hooks",o),m=[...l(r,c)],u=(Hr(a)??re(a))?.postProcessHookOutputs;u&&(m=[...await u(n,r,m)]);for(let f of m)await eu(e,a,f,n,o,{mergeContent:s((g,h,R,_)=>qk(a,g,h,R,_),"mergeContent")});}}s(Fj,"generateHooksFeature");async function Mj(e,t,r,n,o,i){for(let a of t){let c=(Hr(a)??re(a))?.emitScopedSettings;if(!c)continue;let m=c(r,o,i);if(m.length!==0)for(let p of m)await eu(e,a,p,n,o,{mergeContent:s((u,f,g,h)=>qk(a,u,f,g,h),"mergeContent")});}}s(Mj,"generateScopedSettingsFeature");async function zr(e){let{config:t,canonical:r,projectRoot:n,scope:o="project",targetFilter:i}=e,a=[...t.targets,...t.pluginTargets??[]],l=i?a.filter(W=>i.includes(W)):a;function c(W,$){return Wc(W,$,t,o)}s(c,"resolveGen");let m=t.features.includes("rules"),p=t.features.includes("commands"),u=t.features.includes("agents"),f=t.features.includes("skills"),g=t.features.includes("mcp"),h=t.features.includes("permissions"),R=t.features.includes("hooks"),_=t.features.includes("ignore"),S=[];await ol(S,l,r,n,m,o,"rules",W=>c(W,"rules")),await ol(S,l,r,n,p,o,"commands",W=>c(W,"commands")),await ol(S,l,r,n,u,o,"agents",W=>c(W,"agents")),await ol(S,l,r,n,f,o,"skills",W=>c(W,"skills")),await ol(S,l,r,n,g,o,"mcp",W=>c(W,"mcp")),h&&await vj(S,l,r,n,o),R&&await Fj(S,l,r,n,o,t),await ol(S,l,r,n,_,o,"ignore",W=>c(W,"ignore"));let I=new Set(t.features);for(let W of l){let Y=(Hr(W)??re(W))?.globalSupport?.scopeExtras;if(Y){let ee=await Y(r,n,o,I);S.push(...ee);}}(g||_||R||u||h)&&await Mj(S,l,r,n,o,I);let b=Nj(S,r,o),P=H9(b,o),T=Lj(b,r,t,n,o,l,P);return Ej(T,n,{packOriginatedKeys:wj(r)}),Kg(T.map(Tj))}s(zr,"generate");function H9(e,t){let r=new Map;function n(a){let l=r.get(a);if(l)return l;let c=Ke(a,t),m=new Set;if(c?.rootInstructionPath){m.add(c.rootInstructionPath);for(let p of Jc(c))m.add(p);}return r.set(a,m),m}s(n,"rootPathsFor");let o=new Map;for(let a of e){if(!n(a.target).has(a.path))continue;let l=o.get(a.path)??new Set;l.add(a.target),o.set(a.path,l);}let i=new Set;for(let[a,l]of o)l.size>1&&i.add(a);return i}s(H9,"computeSharedRootInstructionPaths");Vr();ne();A();No();var i3=6e4,a3=30,l3=200,c3=2e3;async function Yc(e,t={}){let r=t.retries??a3,n=t.retryDelayMs??l3,o=t.staleMs??i3;await mkdir(dirname(e),{recursive:true});let i=0;for(;;){let a=await m3(e);if(a)return a;let l=await p3(e);if(l!=="young"&&u3(l,o)){await rm$1(e,{recursive:true,force:true}).catch(()=>{});continue}if(i>=r){let c=l==="young"?null:l;throw new wl(e,f3(c),{label:t.label})}i++,await h3(n);}}s(Yc,"acquireProcessLock");async function m3(e){try{await mkdir(e,{recursive:!1});}catch(a){if(a.code==="EEXIST")return null;throw a}let t=join(e,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:zj()};await writeFile(t,JSON.stringify(r),"utf-8");let n=false,o=s(()=>{if(!n){n=true;try{rmSync(e,{recursive:!0,force:!0});}catch{}}},"cleanup"),i=s(a=>{o(),process.kill(process.pid,a);},"signalHandler");return process.once("SIGINT",i),process.once("SIGTERM",i),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",i),process.off("SIGTERM",i),process.off("exit",o),await rm$1(e,{recursive:true,force:true}).catch(()=>{}));}}s(m3,"tryAcquire");async function p3(e){try{let t=await readFile(join(e,"holder.json"),"utf-8"),r=JSON.parse(t);return g3(r)?r:null}catch{try{let t=await stat(e);if(Date.now()-t.mtimeMs<c3)return "young"}catch{}return null}}s(p3,"inspectLock");function u3(e,t){return !e||Date.now()-e.started>t?true:e.hostname&&e.hostname!==zj()?false:!d3(e.pid)}s(u3,"isStale");function d3(e){if(!Number.isInteger(e)||e<=0)return false;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}s(d3,"isProcessAlive");function f3(e){return e?`${e.hostname?`${e.hostname}:`:""}pid ${e.pid} (running ${Date.now()-e.started}ms)`:"unknown (unreadable lock metadata)"}s(f3,"describeHolder");function g3(e){if(typeof e!="object"||e===null)return false;let t=e;return typeof t.pid=="number"&&typeof t.started=="number"}s(g3,"isLockMetadata");function zj(){return hostname()}s(zj,"getHostname");function h3(e){return new Promise(t=>setTimeout(t,e))}s(h3,"sleep");A();xe();async function Vj(e,t=e){let r=await readdir(e,{withFileTypes:true}),n=[];for(let o of r){let i=join(e,o.name);if(o.isDirectory()){n.push(...await Vj(i,t));continue}n.push(relative(t,i).replace(/\\/g,"/"));}return n}s(Vj,"listFiles");async function S3(e,t,r){if(r.has(t))return;let n=join(e,t);await j(n)&&await rm$1(n,{recursive:true,force:true});}s(S3,"removeIfStale");async function Jj(e){let t=new Set(e.expectedPaths),r=new Set,n=e.scope??"project";for(let o of e.targets){let i=_k(o,n);if(i){for(let a of i.files)r.add(a);for(let a of i.dirs){let l=join(e.projectRoot,a);if(await j(l))for(let c of await Vj(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await S3(e.projectRoot,o,t);}s(Jj,"cleanupStaleGeneratedOutputs");xe();function Xc(e,t,r){let n=resolve(e),o=resolve(e,t);if(o===n||o.startsWith(`${n}${sep}`))return o;throw new Error(`Unsafe generated output path for ${r}: ${t}`)}s(Xc,"ensurePathInsideRoot");Fm();A();ne();async function rI(e,t){let r=await vs(e.canonicalDir),n=t.length>0?await Vc(t):{},o=await Gg(join(e.canonicalDir,"packs")),i=process.env.USER??process.env.USERNAME??"unknown";await Mg(e.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:i,libVersion:Ji(),checksums:r,extends:n,packs:o});try{await fy(Jt(),join(e.configDir,".agentsmeshcache"));}catch(a){y.warn(`Could not create .agentsmeshcache symlink: ${a instanceof Error?a.message:String(a)}`);}}s(rI,"writeLockFile");function O3(e,t){return e!=="global"||t.length===0?void 0:t.every(n=>Ke(n,"global")===void 0)?"no-global-support":void 0}s(O3,"resolveEmptyReason");async function s0(e){let{mode:t,scope:r,dryRun:n,context:o,resolvedExtends:i,flags:a,root:l,options:c,activeTargets:m}=e,p=O3(r,m);if(t==="check")return {exitCode:0,data:{scope:r,mode:t,files:[],summary:Hg([]),emptyReason:p}};if(n||await rI(o,i),c.printMatrix!==false){let{runMatrix:u}=await Promise.resolve().then(()=>(nu(),mI)),{renderMatrix:f}=await Promise.resolve().then(()=>(su(),pI)),g=await u(a,l);f(g,{verbose:a.verbose===true});}return {exitCode:0,data:{scope:r,mode:t,files:[],summary:Hg([]),emptyReason:p}}}s(s0,"handleEmptyResults");function i0(e,t){let r=e.filter(a=>a.status!=="skipped"),n=r.filter(a=>a.status!=="unchanged"),o=r.map(a=>({path:a.path,target:a.target,status:a.status}));return {exitCode:n.length===0?0:1,data:{scope:t,mode:"check",files:o,summary:Hg(r)}}}s(i0,"buildCheckResult");async function a0(e){let{results:t,dryRun:r,scope:n,mode:o,context:i,activeTargets:a,resolvedExtends:l,flags:c,root:m,options:p}=e,u=r?null:await Yc(join(i.canonicalDir,".generate.lock"),{label:"generate lock"});try{if(!r){for(let h of t)if(h.status==="created"||h.status==="updated"){let R=Xc(i.rootBase,h.path,h.target);await L(R,h.content);}await Jj({projectRoot:i.rootBase,targets:a,expectedPaths:t.map(h=>h.path),scope:n}),await rI(i,l);}}finally{u&&await u();}if(p.printMatrix!==false){let{runMatrix:h}=await Promise.resolve().then(()=>(nu(),mI)),{renderMatrix:R}=await Promise.resolve().then(()=>(su(),pI)),_=await h(c,m);R(_,{verbose:c.verbose===true});}let f=t.filter(h=>h.status!=="skipped"),g=f.map(h=>({path:h.path,target:h.target,status:h.status}));return {exitCode:0,data:{scope:n,mode:o,files:g,summary:Hg(f)}}}s(a0,"handleGenerateOrDryRun");function Hg(e){return {created:e.filter(t=>t.status==="created").length,updated:e.filter(t=>t.status==="updated").length,unchanged:e.filter(t=>t.status==="unchanged").length}}s(Hg,"buildSummary");async function qc(e,t,r={}){if(e.features!==void 0)throw new Error("--features is no longer supported. Configure features in agentsmesh.yaml.");let n=t??process.cwd(),o=e.check===true,i=e["dry-run"]===true,a=e.force===true,l=e.global===true?"global":"project",c=e["refresh-cache"]===true||e["no-cache"]===true,m=e.targets,p=typeof m=="string"&&m?m.split(",").map(P=>P.trim()).filter(Boolean):void 0,u=o?"check":i?"dry-run":"generate",{config:f,context:g}=await ye(n,l);await He(f,n);let h=f.collaboration?.lock_features??[];if(f.collaboration?.strategy==="lock"&&!a&&h.length>0){let P=await Fg(g.canonicalDir);if(P!==null){let T=await vs(g.canonicalDir),W=$g(P.checksums,T,h);if(W.length>0){y.error("Locked feature violation (strategy: lock). Modified files:");for(let $ of W)y.error(` ${$}`);throw y.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:R,resolvedExtends:_}=await Ft(f,g.configDir,{refreshRemoteCache:c},g.canonicalDir),S=[...f.targets,...f.pluginTargets??[]];if(p){let P=p.filter(T=>!S.includes(T));if(P.length>0)throw new Error(`Unknown target(s) in --targets: ${P.join(", ")}. Available: ${S.join(", ")}`)}let I=p?S.filter(P=>p.includes(P)):S,b=await zr({config:f,canonical:R,projectRoot:g.rootBase,scope:l,targetFilter:p});return b.length===0?s0({mode:u,scope:l,dryRun:i,context:g,resolvedExtends:_,flags:e,root:n,options:r,activeTargets:I}):o?i0(b,l):a0({results:b,dryRun:i,scope:l,mode:u,context:g,activeTargets:I,resolvedExtends:_,flags:e,root:n,options:r})}s(qc,"runGenerate");ne();function uI(e,t){return e==="global"?`~/${t}`:t}s(uI,"formatDisplayPath");function Qc(e){let{data:t}=e,{scope:r,mode:n,files:o}=t;if(o.length===0){t.emptyReason==="no-global-support"?y.info("No files to generate (target has no global mode \u2014 try without --global)."):y.info("No files to generate (no root rule or rules feature disabled)."),n==="check"&&y.success("Generated files are in sync.");return}if(n==="check"){let c=o.filter(m=>m.status!=="unchanged");if(c.length===0){y.success("Generated files are in sync.");return}for(let m of c)y.error(`[check] ${m.status} ${uI(r,m.path)} (${m.target})`);y.error("Generated files are out of sync. Run 'agentsmesh generate' to update them.");return}if(n==="dry-run"){for(let c of o)y.info(`[dry-run] ${c.status} ${uI(r,c.path)} (${c.target})`);return}for(let c of o)(c.status==="created"||c.status==="updated")&&y.success(`${c.status} ${uI(r,c.path)}`);let{created:i,updated:a,unchanged:l}=t.summary;i>0||a>0?y.info(`Generated: ${i} created, ${a} updated, ${l} unchanged`):y.info(`Nothing changed. (${l} unchanged)`);}s(Qc,"renderGenerate");A();A();async function zg(e,t){let r=join(e,".gitignore"),n=await k(r)??"",o=new Set(n.split(`
|
|
208
|
+
`).map(l=>l.trim()).filter(l=>l.length>0&&!l.startsWith("#"))),i=t.filter(l=>!x3(l,o));if(i.length===0)return false;let a=n.endsWith(`
|
|
209
|
+
`)||n===""?"":`
|
|
210
|
+
`;return await L(r,n+a+i.join(`
|
|
211
|
+
`)+`
|
|
212
|
+
`),true}s(zg,"ensureGitignoreEntries");function x3(e,t){if(t.has(e))return true;let r=e.replace(/\/$/,"");for(;r.includes("/")&&(r=r.slice(0,r.lastIndexOf("/")),r!=="");)if(t.has(r)||t.has(`${r}/`)||t.has(`${r}/**`))return true;return false}s(x3,"isCoveredByExisting");xe();xe();Nn();function l0(){return Pe.filter(e=>!e.excludeFromStarterInit).map(e=>e.id).filter(Vt)}s(l0,"starterInitTargetIds");var c0=/^# yaml-language-server: \$schema=[^\n]*\n?/;function T3(){let e=Ji();return `https://unpkg.com/agentsmesh${e&&e!=="unknown"?`@${e}`:""}/schemas`}s(T3,"schemaBaseUrl");function m0(e){return `${T3()}/${e}.json`}s(m0,"schemaUrl");function Zc(e){return `# yaml-language-server: $schema=${m0(e)}
|
|
213
|
+
`}s(Zc,"yamlSchemaDirective");function sl(e,t){let r=Zc(t);return c0.test(e)?e.replace(c0,r):`${r}${e}`}s(sl,"prependYamlSchemaDirective");function p0(e,t){let{$schema:r,...n}=e;return {$schema:m0(t),...n}}s(p0,"stampJsonSchemaField");var P3=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],D3=l0();function Vg(e,t=D3){let r=(e.length>0?e:t).map(o=>` - ${o}`).join(`
|
|
214
|
+
`),n=P3.map(o=>` - ${o}`).join(`
|
|
215
|
+
`);return `${Zc("agentsmesh")}version: 1
|
|
196
216
|
targets:
|
|
197
217
|
${r}
|
|
198
218
|
features:
|
|
199
219
|
${n}
|
|
200
|
-
`}s(
|
|
220
|
+
`}s(Vg,"buildConfig");var Jg=`---
|
|
201
221
|
root: true
|
|
202
222
|
description: "Project rules"
|
|
203
223
|
---
|
|
@@ -206,7 +226,7 @@ description: "Project rules"
|
|
|
206
226
|
|
|
207
227
|
Add your project-wide instructions here.
|
|
208
228
|
This file is always included in AI tool context and synced to all configured tools.
|
|
209
|
-
`,
|
|
229
|
+
`,dI=`---
|
|
210
230
|
description: "Example contextual rule \u2014 rename and customize"
|
|
211
231
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
212
232
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -215,14 +235,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
215
235
|
# Example Rule
|
|
216
236
|
|
|
217
237
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
218
|
-
`,
|
|
238
|
+
`,fI=`---
|
|
219
239
|
description: "Example command \u2014 rename and customize"
|
|
220
240
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
221
241
|
---
|
|
222
242
|
|
|
223
243
|
Describe the task for this command here.
|
|
224
244
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
225
|
-
`,
|
|
245
|
+
`,gI=`---
|
|
226
246
|
name: example-agent
|
|
227
247
|
description: "Example subagent \u2014 rename and customize"
|
|
228
248
|
# tools: [Read, Grep, Glob]
|
|
@@ -233,7 +253,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
233
253
|
|
|
234
254
|
Describe this agent's role and instructions here.
|
|
235
255
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
236
|
-
`,
|
|
256
|
+
`,hI=`---
|
|
237
257
|
name: example-skill
|
|
238
258
|
description: "Example skill \u2014 rename and customize"
|
|
239
259
|
---
|
|
@@ -242,7 +262,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
242
262
|
|
|
243
263
|
Describe the skill procedure here.
|
|
244
264
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
245
|
-
`,
|
|
265
|
+
`,yI=`{
|
|
246
266
|
"mcpServers": {
|
|
247
267
|
// agentsmesh self-serve MCP server \u2014 exposes your canonical config to AI agents.
|
|
248
268
|
// Lets agents introspect rules/commands/agents/skills and trigger generate.
|
|
@@ -269,7 +289,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
269
289
|
// }
|
|
270
290
|
}
|
|
271
291
|
}
|
|
272
|
-
`,
|
|
292
|
+
`,RI=`${Zc("hooks")}# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
273
293
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
274
294
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
275
295
|
#
|
|
@@ -282,7 +302,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
282
302
|
# - matcher: Edit|Write
|
|
283
303
|
# type: command
|
|
284
304
|
# command: npm test --passWithNoTests
|
|
285
|
-
`,
|
|
305
|
+
`,_I=`${Zc("permissions")}# Tool permission allow/deny lists
|
|
286
306
|
#
|
|
287
307
|
# allow:
|
|
288
308
|
# - Bash(npm run:*)
|
|
@@ -298,14 +318,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
298
318
|
allow: []
|
|
299
319
|
deny: []
|
|
300
320
|
ask: []
|
|
301
|
-
`,
|
|
321
|
+
`,SI=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
302
322
|
#
|
|
303
323
|
# node_modules/
|
|
304
324
|
# dist/
|
|
305
325
|
# .env*
|
|
306
326
|
# *.log
|
|
307
327
|
# coverage/
|
|
308
|
-
`,
|
|
328
|
+
`,u0=`${Zc("agentsmesh")}# Personal overrides \u2014 NOT committed to git
|
|
309
329
|
# Uncomment and customize for your local setup:
|
|
310
330
|
|
|
311
331
|
# targets:
|
|
@@ -323,47 +343,68 @@ ask: []
|
|
|
323
343
|
# overrides:
|
|
324
344
|
# claude-code:
|
|
325
345
|
# model: opus
|
|
326
|
-
`;A();
|
|
327
|
-
`).map(
|
|
328
|
-
|
|
329
|
-
`;return await S(e,r+i+o.join(`
|
|
346
|
+
`;A();xe();function d0(e){let t=[];for(let r of Pe)for(let n of Rk(r.id,e))t.push({target:r.id,path:n});return t}s(d0,"collectDetectionPaths");function f0(e){let t=new Map;for(let{target:r,path:n}of d0(e)){let o=t.get(r)??[];o.push(n),t.set(r,o);}return [...t.entries()].map(([r,n])=>({id:r,paths:n}))}s(f0,"toolIndicators");f0("project");async function g0(e,t="project"){let r=[];for(let{id:n,paths:o}of f0(t))for(let i of o){let a=join(e,i);if(await j(a)){r.push(n);break}}return [...new Set(r)]}s(g0,"detectExistingConfigs");A();ne();function ut(e,t){return join(e,t)}s(ut,"ab");async function kI(e){return await j(e)?(await readdir(e,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}s(kI,"countMdFiles");async function v3(e){let t=ut(e,"skills");if(!await j(t))return false;let r=await readdir(t,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await j(join(t,n.name,"SKILL.md")))return true;return false}s(v3,"hasAnyImportedSkill");async function II(e){let t=ut(e,"rules");await w(t),await L(join(t,"_root.md"),Jg),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),dI),y.success("Created .agentsmesh/rules/_example.md");let r=ut(e,"commands");await w(r),await L(join(r,"_example.md"),fI),y.success("Created .agentsmesh/commands/_example.md");let n=ut(e,"agents");await w(n),await L(join(n,"_example.md"),gI),y.success("Created .agentsmesh/agents/_example.md");let o=ut(e,join("skills","_example"));await w(o),await L(join(o,"SKILL.md"),hI),y.success("Created .agentsmesh/skills/_example/SKILL.md"),await L(ut(e,"mcp.json"),yI),y.success("Created .agentsmesh/mcp.json"),await L(ut(e,"hooks.yaml"),RI),y.success("Created .agentsmesh/hooks.yaml"),await L(ut(e,"permissions.yaml"),_I),y.success("Created .agentsmesh/permissions.yaml"),await L(ut(e,"ignore"),SI),y.success("Created .agentsmesh/ignore");}s(II,"writeScaffoldFull");async function y0(e){let t=ut(e,"rules"),r=await kI(t),n=join(t,"_root.md"),o=await j(n);await w(t),r===0?(await L(n,Jg),y.success("Created .agentsmesh/rules/_root.md"),await L(join(t,"_example.md"),dI),y.success("Created .agentsmesh/rules/_example.md")):o||(await L(n,Jg),y.success("Created .agentsmesh/rules/_root.md"));let i=ut(e,"commands");await kI(i)===0&&(await w(i),await L(join(i,"_example.md"),fI),y.success("Created .agentsmesh/commands/_example.md"));let a=ut(e,"agents");if(await kI(a)===0&&(await w(a),await L(join(a,"_example.md"),gI),y.success("Created .agentsmesh/agents/_example.md")),!await v3(e)){let u=ut(e,join("skills","_example"));await w(u),await L(join(u,"SKILL.md"),hI),y.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=ut(e,"mcp.json");await j(l)||(await L(l,yI),y.success("Created .agentsmesh/mcp.json"));let c=ut(e,"hooks.yaml");await j(c)||(await L(c,RI),y.success("Created .agentsmesh/hooks.yaml"));let m=ut(e,"permissions.yaml");await j(m)||(await L(m,_I),y.success("Created .agentsmesh/permissions.yaml"));let p=ut(e,"ignore");await j(p)||(await L(p,SI),y.success("Created .agentsmesh/ignore"));}s(y0,"writeScaffoldGapFill");tt();var iu=1,tm=2e3,em=z$1.string().regex(/^[a-z0-9-]+$/,"id must be kebab-case"),F3=z$1.string().regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z?)?$/,"createdAt must be ISO-8601 date or datetime"),M3=z$1.object({summary:z$1.string().min(1,"topic summary must not be empty")}).strict(),$3=z$1.enum(["file_glob","command_pattern","keyword"]),G3=z$1.object({kind:$3,pattern:z$1.string().min(1,"trigger pattern must not be empty")}).strict(),j3=z$1.enum(["active","deprecated","superseded"]),U3=z$1.object({rule:z$1.string().min(1,"lesson rule must not be empty"),rationale:z$1.string().min(1).optional(),topics:z$1.array(em).min(1,"lesson must reference at least one topic"),triggers:z$1.array(em),evidence:z$1.array(z$1.string().min(1)),status:j3,supersededBy:em.optional(),createdAt:F3}).strict(),il=z$1.object({version:z$1.literal(iu),lessons:z$1.record(em,U3),topics:z$1.record(em,M3),triggers:z$1.record(em,G3)}).strict();function au(e){return il.parse(e)}s(au,"parseGraph");var V3=".agentsmesh/lessons/lessons.json";function Ao(e){return resolve(e,V3)}s(Ao,"graphFilePath");function lu(e){let t=readFileSync(Ao(e),"utf8");return au(JSON.parse(t))}s(lu,"loadLessonsGraph");function Ve(e){return existsSync(Ao(e))?lu(e):null}s(Ve,"tryLoadLessonsGraph");function Xg(e){let t=Ao(e);if(!existsSync(t))return {status:"absent",graph:null};try{let r=JSON.parse(readFileSync(t,"utf8")),n=r?.version;return typeof n=="number"&&n>iu?{status:"newer-version",graph:null,version:n}:{status:"ok",graph:au(r)}}catch(r){return {status:"corrupt",graph:null,error:r instanceof Error?r:new Error(String(r))}}}s(Xg,"loadLessonsGraphResilient");function S0(e,t){let r=Ao(e);mkdirSync(dirname(r),{recursive:true});let n=`${r}.${process.pid}.tmp`;writeFileSync(n,cu(t),"utf8"),renameSync(n,r);}s(S0,"saveLessonsGraph");function cu(e){return `${JSON.stringify(Yg(e),null,2)}
|
|
347
|
+
`}s(cu,"serializeGraph");function qg(e){return JSON.stringify(Yg(e))}s(qg,"stableStringify");function Yg(e){if(e===null)return null;if(Array.isArray(e))return e.map(Yg);if(typeof e=="object"){let t=Object.entries(e).sort(([n],[o])=>n<o?-1:1),r={};for(let[n,o]of t)r[n]=Yg(o);return r}return e}s(Yg,"canonicalize");var Q3=z$1.object({file_globs:z$1.array(z$1.string()),command_patterns:z$1.array(z$1.string()),keywords:z$1.array(z$1.string())}).refine(e=>e.file_globs.length+e.command_patterns.length+e.keywords.length>0,{message:"cluster must declare at least one trigger of any type"}),Z3=z$1.object({topic:z$1.string().regex(/^[a-z0-9-]+$/),file:z$1.string().regex(/\.md$/),summary:z$1.string().min(1),triggers:Q3}),I0=z$1.object({version:z$1.literal(1),clusters:z$1.array(Z3)});function L0(e,t,r){let n=[...e.triggers.file_globs.map(i=>({kind:"file_glob",pattern:i})),...e.triggers.command_patterns.map(i=>({kind:"command_pattern",pattern:i})),...e.triggers.keywords.map(i=>({kind:"keyword",pattern:i}))],o=[];for(let i of n){let a=`${i.kind}|${i.pattern}`,l=r.get(a);l===void 0&&(l=t4(i),r.set(a,l),t.set(l,{kind:i.kind,pattern:i.pattern})),o.includes(l)||o.push(l);}return o}s(L0,"collectClusterTriggerIds");var e4={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function t4(e){let t=createHash("sha1").update(`${e.kind}|${e.pattern}`).digest("hex").slice(0,8);return `t-${e4[e.kind]}-${t}`}s(t4,"makeTriggerId");var r4=/^##\s+Rules\b.*$/i,n4=/^##\s+/,o4=/^(\d+)\.\s+(.+?)\s*$/,k0=/\s*\(Evidence:?\s+([^)]+)\)\s*$/,s4=/L\d+/g;function C0(e){let t=e.split(/\r?\n/),r=false,n=[];for(let o of t){if(!r){r4.test(o)&&(r=true);continue}if(n4.test(o))break;let i=o4.exec(o);if(i===null)continue;let a=Number(i[1]),l=i[2],c=[],m=k0.exec(l);for(;m!==null;){let u=m[1].match(s4);u!==null&&c.unshift(...u),l=l.slice(0,m.index).trimEnd(),m=k0.exec(l);}n.push({index:a,body:l,evidence:c});}return n}s(C0,"parseRulesSection");var i4=["index.yaml","journal.md","journal.legacy.md","topics","distill-ledger.yaml","distill-proposal.md"];function Qg(e){let t=[];for(let r of i4){let n=join(e,r);existsSync(n)&&(rmSync(n,{recursive:true,force:true}),t.push(n));}return t}s(Qg,"deleteLegacyArtifacts");function CI(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(CI,"normalizeRule");function mu(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(mu,"union");function w0(e,t){let r=[...(t.files??[]).map(a=>({kind:"file_glob",pattern:a.replaceAll("\\","/")})),...(t.commands??[]).map(a=>({kind:"command_pattern",pattern:a})),...(t.keywords??[]).map(a=>({kind:"keyword",pattern:a}))],n=new Map;for(let[a,l]of Object.entries(e.triggers))n.set(LI(l),a);let o=[],i=[];for(let a of r){let l=LI(a),c=n.get(l);if(c!==void 0){o.includes(c)||o.push(c);continue}let m=l4(a);e.triggers[m]={kind:a.kind,pattern:a.pattern},n.set(l,m),o.push(m),i.push(m);}return {triggerIds:o,newTriggerIds:i}}s(w0,"mergeTriggers");function LI(e){return `${e.kind}|${e.pattern}`}s(LI,"triggerKey");var a4={file_glob:"glob",command_pattern:"cmd",keyword:"kw"};function l4(e){let t=createHash("sha1").update(LI(e)).digest("hex").slice(0,8);return `t-${a4[e.kind]}-${t}`}s(l4,"makeTriggerId");function b0(e,t,r){let n=c4(r),o=n.length>0?`${t}-${n}`:`${t}-${createHash("sha1").update(r).digest("hex").slice(0,8)}`,i=o,a=2;for(;e.lessons[i]!==void 0;)i=`${o}-${a}`,a+=1;return i}s(b0,"makeLessonId");function c4(e){return e.replace(/[^a-z0-9 ]+/g," ").split(/\s+/).filter(r=>r.length>0).slice(0,5).join("-").slice(0,40).replace(/-+$/,"")}s(c4,"ruleToSlug");function O0(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(O0,"todayIso");var xn=class extends Error{constructor(r){super(`Unknown topic: ${r}. Pass allowNewTopic + topicSummary to create it.`);this.topic=r;this.name="UnknownTopicError";}static{s(this,"UnknownTopicError");}code="UNKNOWN_TOPIC"},Fs=class extends Error{constructor(r,n){super(`Lesson rule is ${r} characters (max ${n}). A rule should be one imperative sentence \u2014 trim it to the essential instruction, or split it into separate lessons.`);this.length=r;this.max=n;this.name="RuleTooLongError";}static{s(this,"RuleTooLongError");}code="OVERSIZED_RULE"},Ms=class extends Error{static{s(this,"NoTriggerError");}code="NO_TRIGGER";constructor(){super("A lesson needs at least one trigger to be recallable. Pass --trigger-file <glob> (preferred), --trigger-cmd <regex>, or --trigger-kw <text>."),this.name="NoTriggerError";}},$s=class extends Error{constructor(r){super(`This capture would create a lesson with no effective trigger \u2014 every trigger is dead on the mandatory --file/--cmd recall path, so the lesson could never be recalled there:
|
|
348
|
+
`+r.map(n=>` \u2022 ${n.kind} "${n.pattern}" \u2014 ${n.reason}`).join(`
|
|
330
349
|
`)+`
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
`),false}}s(DI,"seedAgentsmeshMcpEntry");function $$(t,e){return t.map(r=>({from:relative(e,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s($$,"mapResults");async function G$(t,e){let r=e??process.cwd(),n=t.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=t.global===true?"global":"project";if(Fe(o)){let p=Ai(r,i),f=await Gf(o).importFrom(p.rootBase,{scope:i});return f.length>0&&await DI(p.rootBase),{exitCode:0,data:{scope:i,target:o,files:$$(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await yt(r,i));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${$t.join(", ")}.`)}await Ut(a,r);let c=nt(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...$t,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&await DI(l.rootBase),{exitCode:0,data:{scope:i,target:o,files:$$(m,l.rootBase)}}}s(G$,"runImport");Zt();ho();function jf(t){let e=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of t){if(n.status==="unchanged"){r.unchanged++;continue}if(n.status==="created"){r.new++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,"",n.content,void 0,void 0,{context:3});e.push({path:n.path,patch:o});continue}if(n.status==="updated"&&n.currentContent!==void 0){r.updated++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,n.currentContent,n.content,void 0,void 0,{context:3});e.push({path:n.path,patch:o});continue}}return {diffs:e,summary:r}}s(jf,"computeDiff");function Uf(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}s(Uf,"formatDiffSummary");Mr();async function U$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Ut(a,r);let{canonical:c}=await Oe(a,l.configDir,{},l.canonicalDir),m=await vr({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:i});if(m.length===0)return {exitCode:0,data:{files:[],patches:[],summary:{created:0,updated:0,unchanged:0,deleted:0}}};let{diffs:p,summary:u}=jf(m);return {exitCode:0,data:{files:m.filter(g=>g.status!=="unchanged"&&g.status!=="skipped").map(g=>({path:g.path,target:g.target,status:g.status})),patches:p.map(g=>({path:g.path,patch:g.patch})),summary:{created:u.new,updated:u.updated,unchanged:u.unchanged,deleted:u.deleted}}}}s(U$,"runDiff");Zt();ho();A();ce();xi();wt();var $Z=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(t=>{let e=t.permissions;if(!e)return false;let r=e.ask?.length??0;return e.allow.length+e.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(t=>{let e=t.hooks;return e?Object.values(e).some(r=>Array.isArray(r)&&r.length>0):false},"hasContent")},{canonicalKey:"mcp",capabilityKey:"mcp",featureFlag:"mcp",file:".agentsmesh/mcp.json",label:"MCP servers",hasContent:s(t=>{let e=t.mcp;return e?Object.keys(e.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(t=>t.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(t=>t.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(t=>t.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(t=>t.ignore.length>0,"hasContent")}];function B$(t){let e=new Set(t.enabledFeatures),r=[];for(let n of $Z)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||Br(t.capabilities[n.capabilityKey]).level!=="none"||r.push(D(n.file,t.target,`${t.target} does not support ${n.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}s(B$,"lintSilentFeatureDrops");wt();var GZ=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function jZ(t){let r=t.match(GZ)?.groups?.path;return typeof r=="string"?r:null}s(jZ,"extractScriptToken");function K$(t){if(t.hasScriptProjection)return [];let e=t.canonical.hooks;if(!e)return [];let r=[];for(let n of Object.values(e))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=jZ(o.command);i&&r.push(D(".agentsmesh/hooks.yaml",t.target,`${t.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${t.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(K$,"lintHookScriptReferences");wt();function W$(t){if(t.preservesManualActivation)return [];let e=[];for(let r of t.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(t.target)||e.push(D(r.source,t.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${t.target} loads every rule unconditionally. The rule will become always-on for ${t.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return e}s(W$,"lintRuleScopeInversion");var UZ=["node_modules",".git","dist","coverage",".agentsmesh"];async function BZ(t){return (await G(t)).filter(n=>{let o=relative(t,n);return !UZ.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(t,n))}s(BZ,"getProjectFiles");async function Bf(t,e,r,n,o={}){let i=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(k=>n.includes(k)):a,c=t.features.includes("rules"),m=t.features.includes("commands"),p=t.features.includes("mcp"),u=t.features.includes("permissions"),f=t.features.includes("hooks"),g=[],h=i==="global"?[]:await BZ(r);for(let k of l){let I=nt(k),C=Fe(k)?Gf(k):I;C?.capabilities&&g.push(...B$({target:k,capabilities:C.capabilities,canonical:e,enabledFeatures:t.features})),f&&g.push(...K$({target:k,canonical:e,hasScriptProjection:I?.postProcessHookOutputs!==void 0})),c&&g.push(...W$({target:k,canonical:e,preservesManualActivation:I?.preservesManualActivation===true})),c&&C?.lintRules&&g.push(...C.lintRules(e,r,h,{scope:i})),I?.generators.lint&&g.push(...I.generators.lint(e));let b={scope:i};m&&C?.lint?.commands&&g.push(...C.lint.commands(e,b)),p&&C?.lint?.mcp&&g.push(...C.lint.mcp(e,b)),u&&C?.lint?.permissions&&g.push(...C.lint.permissions(e,b)),f&&C?.lint?.hooks&&g.push(...C.lint.hooks(e,b));}let R=g.some(k=>k.level==="error");return {diagnostics:g,hasErrors:R}}s(Bf,"runLint");Mr();async function z$(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await yt(r,n);await Ut(a,r);let{canonical:c}=await Oe(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Bf(a,c,l.configDir,i,{scope:n});return {exitCode:p?1:0,data:{diagnostics:m.map(u=>({level:u.level,file:u.file,target:u.target,message:u.message})),summary:{errors:m.filter(u=>u.level==="error").length,warnings:m.filter(u=>u.level==="warning").length}}}}s(z$,"runLintCmd");ot();function V$(t){let{data:e}=t;if(e.diagnostics.length===0){y.success("All checks passed.");return}let r=e.diagnostics.filter(a=>a.level==="error"),n=e.diagnostics.filter(a=>a.level==="warning");for(let a of r)y.error(`${a.file} (${a.target}): ${a.message}`);for(let a of n)y.warn(`${a.file} (${a.target}): ${a.message}`);let o=e.summary.errors,i=e.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(V$,"renderLint");ot();function J$(t){let{data:e}=t;if(!e.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(e.inSync){y.success("Lock file is in sync.");return}let r=new Set(e.lockedViolations);y.error("Conflict detected:");for(let n of e.extendsModified)y.error(` extend "${n}" was modified`);for(let n of e.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of e.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of e.removed){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was removed${o}`);}y.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state.");}s(J$,"renderCheck");ot();function Y$(t){let{data:e}=t;if(e.files.length===0){y.info(`Nothing to import from ${e.target}.`);return}for(let n of e.files)y.success(`${n.from} \u2192 ${n.to}`);let r=e.scope==="global"?" --global":"";y.info(`Imported ${e.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(Y$,"renderImport");ot();function X$(t){let{summary:e}=t.data;if(e.created+e.updated+e.unchanged+e.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of t.data.patches)process.stdout.write(n.patch);y.info(Uf({new:e.created,updated:e.updated,unchanged:e.unchanged,deleted:e.deleted}));}s(X$,"renderDiff");ot();function Z$(t){if(!t.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(Z$,"renderMerge");dp();gp();Zt();ho();dp();gp();ot();var HZ=300;function zZ(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(zZ,"normalizeWatchPath");function VZ(t,e){let r=zZ(relative(t,e));return r===""?true:r===".lock"||r===".lock.tmp"||r===".generate.lock"||r.endsWith("/.lock")||r.endsWith("/.lock.tmp")||r.endsWith("/.generate.lock")||r.includes("/.generate.lock/")||r.startsWith(".generate.lock/")}s(VZ,"shouldIgnoreWatchPath");function JZ(t,e,r,n,o,i,a,l,c){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(JZ,"featureFingerprint");async function q$(t,e,r={}){let n=e??process.cwd(),o=t.global===true?"global":"project",{context:i}=await yt(n,o),a=[i.canonicalDir,join(i.configDir,"agentsmesh.yaml"),join(i.configDir,"agentsmesh.local.yaml")],l=null,c=null,m=false,p=null,u=s(async()=>{if(m)return;l=null;let{config:k,context:I}=await yt(n,o),{canonical:C}=await Oe(k,I.configDir,{},I.canonicalDir),b=C.mcp?Object.keys(C.mcp.mcpServers).length:0,N=C.permissions?C.permissions.allow.length+C.permissions.deny.length:0,T=C.hooks?Object.values(C.hooks).reduce((v,q)=>v+(Array.isArray(q)?q.length:0),0):0,B=C.ignore.length,H=JZ(k.features,C.rules.length,C.commands.length,C.agents.length,C.skills.length,b,N,T,B),tt=c!==null&&c!==H;if(c=H,m)return;let it=await Sc(t,n,{printMatrix:false});if(Cc(it),!m){if(tt){let v=await up(t,n);fp(v,{verbose:t.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:tt});}},"run"),f=s(()=>{let k=u().catch(I=>{if(!m){let C=I instanceof Error?I.message:String(I);y.error(C);}}).finally(()=>{p===k&&(p=null);});p=k;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,HZ));},"schedule"),h=r.usePolling??process.platform==="win32",R=WZ.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return R.on("all",(k,I)=>{VZ(i.canonicalDir,I)||g();}),await new Promise((k,I)=>{R.once("ready",k),R.once("error",I);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await R.close(),p&&await p;},"stop")}}s(q$,"runWatch");Zt();Zp();async function Kf(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await Of(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await Rs(n),a=await rl(e,r),l=a.length>0?await _c(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let I of c){let C=i[I];C===void 0?f.push(I):C!==o.checksums[I]&&p.push(I);}for(let I of m)c.has(I)||u.push(I);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let I of g)l[I]!==o.extends[I]&&h.push(I);let R=Af(o.checksums,i,e.collaboration?.lock_features??[]);return {inSync:p.length===0&&u.length===0&&f.length===0&&h.length===0,hasLock:true,modified:p,added:u,removed:f,extendsModified:h,lockedViolations:R}}s(Kf,"checkLockSync");Mr();async function tG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n);await Ut(o,r);let a=await Kf({config:o,configDir:i.configDir,canonicalDir:i.canonicalDir});return a.hasLock?{exitCode:a.inSync?0:1,data:{hasLock:true,inSync:a.inSync,modified:[...a.modified],added:[...a.added],removed:[...a.removed],extendsModified:[...a.extendsModified],lockedViolations:[...a.lockedViolations]}}:{exitCode:1,data:{hasLock:false,inSync:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]}}}s(tG,"runCheck");Zt();A();Zp();var XZ=".lock",ZZ="<<<<<<<";async function NI(t){let e=join(t,XZ),r=await _(e);return r===null?false:r.includes(ZZ)}s(NI,"hasLockConflict");async function rG(t,e,r){if(!await NI(t))throw new Error("No conflict to resolve.");let o=await Rs(t),i=dirname(t),a=r?await rl(r,i):[],l=a.length>0?await _c(a):{},c=await bf(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await wf(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}s(rG,"resolveLockConflict");async function nG(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:i}=await yt(r,n),a=i.canonicalDir;return await NI(a)?(await rG(a,Oi(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(nG,"runMerge");Zt();If();function oG(t){let e=typeof t.path=="string"?t.path.trim():void 0,r=typeof t.target=="string"?t.target.trim():void 0,n=typeof t.as=="string"?t.as.trim():void 0,o=t["accept-elevated"]===true;return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,all:t.all===true,forceFreshMaterialize:t.forceFreshMaterialize===true,explicitPath:e||void 0,explicitTarget:r||void 0,explicitAs:n?hc.parse(n):void 0,nameOverride:typeof t.name=="string"?t.name.trim():"",acceptHooks:o||t["accept-hooks"]===true,acceptPermissions:o||t["accept-permissions"]===true,acceptMcp:o||t["accept-mcp"]===true}}s(oG,"readInstallFlags");var tQ=".install.lock";async function Ec(t,e={}){return await mkdir(t,{recursive:true}),Ff(join(t,tQ),e)}s(Ec,"acquireInstallLock");Zt();A();Vc();var nQ=promisify(execFile);function Wf(t,e){if(t.startsWith("-"))throw new Error(`agentsmesh refuses ${e} starting with "-" (option-injection guard): ${t}`)}s(Wf,"ensureNotFlag");async function FI(t){let{stdout:e}=await nQ("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}s(FI,"runGit");async function sG(){try{return await FI(["--version"]),!0}catch{return false}}s(sG,"isGitAvailable");async function oQ(t,e){Wf(t,"remote-url"),Wf(e,"ref");let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await FI(["ls-remote",t,o])).split(`
|
|
334
|
-
|
|
335
|
-
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${e}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${e}`);return i.toLowerCase()}return oQ(e,r)}s(Hf,"resolveRemoteRefForInstall");async function iG(t){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};let e=t.gitRemoteUrl;if(!e)throw new Error("Internal error: missing git remote URL");let r=await Hf(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await el(l,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await el(l,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await el(i,"install",{cacheDir:ve(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(iG,"fetchInstallSource");async function aG(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await iG(t);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let n=r instanceof Error?r.message:String(r),o=new Error(`Failed to fetch from ${e}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(aG,"resolveInstallResolvedPath");function hp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean),n=r.indexOf("tree");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a?null:{org:o,repo:i,ref:a,path:l||""}}catch{return null}}s(hp,"parseGithubTreeUrl");function yp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean),n=r.indexOf("blob");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a||!l?null:{org:o,repo:i,ref:a,path:l}}catch{return null}}s(yp,"parseGithubBlobUrl");function _p(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="tree")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i?null:{namespace:m,project:c,ref:i,path:a||""}}catch{return null}}s(_p,"parseGitlabTreeUrl");function Rp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="blob")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i||!a?null:{namespace:m,project:c,ref:i,path:a}}catch{return null}}s(Rp,"parseGitlabBlobUrl");var sQ=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Ip(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||sQ.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Ip,"parseGithubRepoUrl");function Sp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.includes("-"))return null;let n=r[r.length-1],o=r.slice(0,-1).join("/");return !o||!n?null:{namespace:o,project:n}}catch{return null}}s(Sp,"parseGitlabRepoUrl");function Cp(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}s(Cp,"parseGitSshGithub");function kp(t){let e=t.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!e)return null;let n=e[1].replace(/\.git$/i,"").split("/").filter(Boolean);if(n.length<2)return null;let o=n[n.length-1];return {namespace:n.slice(0,-1).join("/"),project:o}}s(kp,"parseGitSshGitlab");A();var lQ=/^[A-Za-z]:[\\/]/,cQ=/^[A-Za-z]:\//;function lG(...t){return t.some(e=>e.includes("\\")||lQ.test(e))?win32:posix}s(lG,"pathApiFor");function Lp(t){return t.replace(/\\/g,"/")}s(Lp,"toPosixPath");function Ep(t){return Lp(t).replace(/^\/+|\/+$/g,"")}s(Ep,"normalizeInstallPathField");function zf(t){let e=Lp(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||cQ.test(e)?e:`./${e}`}s(zf,"normalizeLocalSourceForYaml");function _i(t){return {...t,source:t.source_kind==="local"?zf(t.source):t.source,...t.path!==void 0?{path:Ep(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>Ep(e))}:{}}}s(_i,"normalizePersistedInstallPaths");function cG(t,e,r){let n=lG(t,e),o=n.normalize(t),i=n.normalize(e),a=Ep(r),l=`${n.sep}.agentsmesh${n.sep}`,c=o.indexOf(l);if(c>=0){let p=o.slice(0,c),u=o.slice(c+l.length),f=Ep(u),g=Lp(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:zf(g)}}let m=Lp(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:zf(m)}}s(cG,"localParsedFromAbsPath");async function vI(t,e,r){let n=t.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let p=n.lastIndexOf("#"),u=p<0?n:n.slice(0,p),f=p<0?"HEAD":n.slice(p+1),g=u.slice(4);return {kind:"git",rawRef:f,gitPlusBase:g,gitRemoteUrl:g,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let p=hp(n)??yp(n);if(p)return {kind:"github",rawRef:p.ref,org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o||p.path};let u=Ip(n);if(u)return {kind:"github",rawRef:"HEAD",org:u.org,repo:u.repo,gitRemoteUrl:`https://github.com/${u.org}/${u.repo}.git`,pathInRepo:o};let f=_p(n)??Rp(n);if(f)return {kind:"gitlab",rawRef:f.ref,org:f.namespace,repo:f.project,gitRemoteUrl:`https://gitlab.com/${f.namespace}/${f.project}.git`,pathInRepo:o||f.path};let g=Sp(n);if(g)return {kind:"gitlab",rawRef:"HEAD",org:g.namespace,repo:g.project,gitRemoteUrl:`https://gitlab.com/${g.namespace}/${g.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let p=Cp(n);if(!p)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let p=kp(n);if(!p)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let p=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!p)throw new Error(`Invalid SSH git URL: ${n}`);let u=p[1],f=p[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${u}/${f}.git`,pathInRepo:o}}let i=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(i){let p=i[1],u=i[2];return {kind:"github",rawRef:i[3],org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let a=n.match(/^github:([^/]+)\/([^/@]+)$/);if(a){let p=a[1],u=a[2];return {kind:"github",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let l=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(l){let p=l[1],u=l[2];return {kind:"gitlab",rawRef:l[3],org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let c=n.match(/^gitlab:(.+)\/([^/@]+)$/);if(c){let p=c[1],u=c[2];return {kind:"gitlab",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let m=resolve(e,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return cG(m,e,o)}s(vI,"parseInstallSource");function Op(t){let e=t.trim();if(e.startsWith("local:"))return {kind:"local"};if(e.startsWith("git+")){let a=e.lastIndexOf("#"),l=a<0?e:e.slice(0,a),c=a<0?"HEAD":e.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=e.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(r!==null){let a=r[1],l=r[2],c=r[3];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:c}}let n=e.match(/^github:([^/]+)\/([^/@]+)$/);if(n!==null){let a=n[1],l=n[2];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:"HEAD"}}let o=e.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(o!==null){let a=o[1],l=o[2],c=o[3];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:c}}let i=e.match(/^gitlab:(.+)\/([^/@]+)$/);if(i!==null){let a=i[1],l=i[2];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:"HEAD"}}if(e.startsWith("https://")||e.startsWith("http://")){let a=hp(e)??yp(e);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Ip(e);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=_p(e)??Rp(e);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Sp(e);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:e,ref:"HEAD"}}if(e.startsWith("git@github.com:")){let a=Cp(e);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(e.startsWith("git@gitlab.com:")){let a=kp(e);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(e.startsWith("git@")){let a=e.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(a===null)return null;let l=a[1],c=a[2].replace(/\.git$/i,"");return {kind:"git",remoteUrl:`ssh://git@${l}/${c}.git`,ref:"HEAD"}}return null}s(Op,"parseSourceUrl");jR();function _n(t){let e=[];return t.skills.length&&e.push("skills"),t.rules.length&&e.push("rules"),t.commands.length&&e.push("commands"),t.agents.length&&e.push("agents"),t.mcp!==null&&e.push("mcp"),t.permissions!==null&&e.push("permissions"),t.hooks!==null&&e.push("hooks"),t.ignore.length&&e.push("ignore"),e}s(_n,"featuresFromCanonical");async function Vf(t,e={}){let{sliceRoot:r,implicitPick:n}=await ff(t),{canonical:o,cleanup:i}=await gf(r,{...e,enableTargetEntityMappers:true});return {canonical:o,features:_n(o),implicitPick:n,cleanup:i}}s(Vf,"discoverFromContentRoot");function mG(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}s(mG,"validateSkill");function pG(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}s(pG,"validateRule");function uG(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}s(uG,"validateCommand");function dG(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}s(dG,"validateAgent");function ie(t){return basename(t.source).replace(/\.md$/i,"")}s(ie,"ruleSlug");function uQ(t){if(!t)return;let e=[];return t.skills!==void 0&&e.push("skills"),t.rules!==void 0&&e.push("rules"),t.commands!==void 0&&e.push("commands"),t.agents!==void 0&&e.push("agents"),e.length>0?e:void 0}s(uQ,"featuresFromImplicitPick");function Oc(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??uQ(r);if(!r&&!n)return t;let o=new Set(n??[]),i={...t,mcp:!n||o.has("mcp")?t.mcp:null,permissions:!n||o.has("permissions")?t.permissions:null,hooks:!n||o.has("hooks")?t.hooks:null,ignore:!n||o.has("ignore")?t.ignore:[]};if(r?.skills!==void 0){let a=new Set(r.skills);i={...i,skills:r.skills.length===0?[]:i.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(i={...i,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);i={...i,rules:r.rules.length===0?[]:i.rules.filter(l=>a.has(ie(l)))};}else n&&!o.has("rules")&&(i={...i,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);i={...i,commands:r.commands.length===0?[]:i.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(i={...i,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);i={...i,agents:r.agents.length===0?[]:i.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(i={...i,agents:[]});return i}s(Oc,"narrowDiscoveredForInstallScope");VR();async function fG(t,e,r,n,o={}){let i=await _f(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Vf(i.discoveryRoot,o),c=Oc(a,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:_n(c)}}s(fG,"resolveManualDiscoveredForInstall");So();bR();A();Tt();var dQ=(()=>{let t=new Map;for(let r of Pt){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=t.get(a)??new Set;l.add(r.id),t.set(a,l);}}let e=[];for(let[r,n]of t){if(n.size!==1)continue;let[o]=[...n];e.push({prefix:r,target:o});}return e.sort((r,n)=>n.prefix.length-r.prefix.length)})();function fQ(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(fQ,"norm");function Jf(t){let e=fQ(t);if(e){for(let{prefix:r,target:n}of dQ)if(e===r||e.startsWith(`${r}/`))return n}}s(Jf,"targetHintFromNativePath");function MI(t,e){return Jf(t)===e}s(MI,"pathSupportsNativePick");function gG(t,e){if(!t||!e)return;let r=Jf(e);if(r&&r!==t)throw new Error(`--target "${t}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(gG,"validateTargetMatchesPath");function hG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}s(hG,"extendPickHasArrays");A();A();Xt();async function _G(t,e){let r=join(t,...Xe.split("/")),n=join(t,...e.split("/")),o=await G(n),i=[];for(let a of o){if(!/\.(toml|md)$/i.test(a))continue;let l=relative(r,a).replace(/\\/g,"/");if(l.startsWith("..")||l==="")continue;let m=l.replace(/\.(toml|md)$/i,"").split("/").filter(Boolean).join(":");m&&i.push(m);}return [...new Set(i)].sort()}s(_G,"inferGeminiCommandNamesFromFiles");Xt();fr();A();async function $a(t){let e=await G(t),r=new Set;for(let n of e){if(basename(n)==="SKILL.md"){r.add(basename(dirname(n)));continue}!relative(t,n).replace(/\\/g,"/").includes("/")&&n.toLowerCase().endsWith(".md")&&r.add(basename(n,".md"));}return [...r].filter(Boolean).sort()}s($a,"skillNamesFromNativeSkillDir");A();Dr();async function RG(t,e){let r=join(t,...e.split("/"));if(e.startsWith(li)){let n=await G(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".prompt.md")).map(i=>basename(i,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let n=await G(r),o=[...new Set(n.filter(i=>i.includes(".instructions.md")).map(i=>basename(i).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(e.startsWith(".github/instructions")){let n=await G(r),o=new Set;for(let a of n){let l=basename(a);l.toLowerCase().endsWith(".instructions.md")?o.add(l.replace(/\.instructions\.md$/i,"")):l.toLowerCase().endsWith(".md")&&o.add(basename(a,".md"));}let i=[...o].sort();return i.length?{rules:i}:{}}if(e.startsWith(".github/skills")){let n=await $a(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await G(r),o=[...new Set(n.filter(i=>i.toLowerCase().endsWith(".agent.md")).map(i=>basename(i,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}s(RG,"inferCopilotPickFromPath");async function qe(t,e){let r=await G(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}s(qe,"mdNames");async function SG(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===Xe||n.startsWith(`${Xe}/`)){let i=await _G(t,n);return i.length?{commands:i}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".claude/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".claude/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".claude/skills/")){let a=n.replace(/^\.claude\/skills\/?/,"").split("/").filter(Boolean)[0];return a?{skills:[a]}:{}}return {}}if(r==="cursor"){if(n.startsWith(".cursor/rules")){let i=await qe(o,".mdc");return i.length?{rules:i}:{}}if(n.startsWith(".cursor/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".cursor/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".cursor/skills")){let i=await $a(o);return i.length?{skills:i}:{}}return {}}if(r==="copilot")return RG(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(r==="cline"){if(n.startsWith(te)){let i=await $a(o);return i.length?{skills:i}:{}}if(n.startsWith(Fn)){let i=await qe(o,".md");return i.length?{commands:i}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".continue/prompts")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".continue/skills")){let i=await $a(o);return i.length?{skills:i}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let i=await qe(o,".md");return i.length?{commands:i}:{}}if(n.startsWith(".junie/rules")){let i=await qe(o,".md");return i.length?{rules:i}:{}}if(n.startsWith(".junie/agents")){let i=await qe(o,".md");return i.length?{agents:i}:{}}if(n.startsWith(".junie/skills")){let i=await $a(o);return i.length?{skills:i}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let i=await G(o),a=[...new Set(i.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}s(SG,"inferImplicitPickFromNativePath");function CG(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}s(CG,"isImplicitPickEmpty");PR();function Ap(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}s(Ap,"normalizePath");function EQ(t,e){let r=Ap(t),n=Ap(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(EQ,"overlapsPath");function Yf(t,e){let r=t??[];return r.includes(e)||r.push(e),r}s(Yf,"addUnique");async function LQ(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=s(async()=>{await rm$1(e,{recursive:true,force:true});},"cleanup");try{return await cp(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(LQ,"makeStageRoot");function OQ(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Yf(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Ap(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:Yf(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Yf(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Ap(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:Yf(r?.skills,a)});}}return r&&(r.rules?.length??0)+(r.commands?.length??0)+(r.agents?.length??0)+(r.skills?.length??0)>0?r:void 0}s(OQ,"buildPickFromResults");function wQ(t,e,r,n){let o=join(e,...Ap(t).split("/")),i=r.filter(a=>EQ(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${t}" for target "${n}". Try --path "${t}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);return {features:[...new Set(i.map(a=>a.feature))],pick:OQ(i,e)}}s(wQ,"scopeImportedResults");async function GI(t,e){let{stageRoot:r,cleanup:n}=await LQ(t);try{let o=await ip(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(GI,"stageImportedNativeRepo");async function jI(t,e,r){let n=await GI(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...wQ(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(jI,"stageNativeInstallScope");async function OG(t,e,r,n){let o=n.explicitTarget?.trim();o&&nr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");gG(o,i);let a=join(t,".agentsmesh"),l=await j(a),c=i?Jf(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await nf(t)??void 0:void 0;if(!o&&c&&p&&c!==p)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${p}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??p,f=!!i&&!!u&&!i.startsWith(".agentsmesh");if(!l&&u){if(f){let b=await jI(t,i,u);return {discoveryRoot:b.stageRoot,implicitPick:b.pick,scopedFeatures:b.features,yamlTarget:u,importHappened:true,cleanup:b.cleanup}}let C=await GI(t,u);return {discoveryRoot:i?join(C.stageRoot,i):C.stageRoot,yamlTarget:u,importHappened:true,cleanup:C.cleanup}}let g;l?i?u&&MI(i,u)?g=t:g=e:g=t:g=e;let h,R,k;if(f&&u){let C=await jI(t,i,u);g=C.stageRoot,h=C.pick,R=C.features,k=C.cleanup;}else if(g===t&&i&&u&&MI(i,u)&&(h=await SG(t,i,u),CG(h)))throw new Error(`No installable native resources found under "${i}" for target "${u}". Try --path "${i}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);let I;return o?I=o:u&&(h&&hG(h)||(R?.length??0)>0)&&(I=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:R,yamlTarget:I,importHappened:k!==void 0,cleanup:k}}s(OG,"prepareInstallDiscovery");async function UI(t,e,r,n,o={}){let i=await OG(t,e,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Vf(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=Oc(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=_n(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(UI,"resolveDiscoveredForInstall");var PQ=[".claude-plugin","marketplace.json"];async function TQ(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(TQ,"dirExists");function xQ(t){if(typeof t!="string"||t.length===0||t.startsWith("/"))return null;let e=t.replace(/^\.\/+/,"").replace(/\/+$/,"");return e.split("/").some(r=>r==="..")?null:e}s(xQ,"normalizeSource");async function AG(t,e,r){let n=join(t,...PQ),o;try{o=await readFile(n,"utf-8");}catch{return null}let i;try{i=JSON.parse(o);}catch{return null}if(typeof i!="object"||i===null||!Array.isArray(i.plugins))return null;let a=i.plugins,l=[];for(let c of a){if(typeof c!="object"||c===null)continue;let m=xQ(c.source);if(!m)continue;let p=join(t,m);if(!await TQ(p))continue;let u=await e(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(AG,"detectMarketplaceSubPacks");async function bp(t){try{return (await stat(t)).isDirectory()}catch{return false}}s(bp,"dirExists");async function Ri(t){try{return (await readdir(t,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(Ri,"listDirEntries");function bG(t){return t.endsWith(".instructions.md")?"copilot-instructions":t.endsWith(".md")?"md":t.endsWith(".mdc")?"mdc":t.endsWith(".toml")?"toml":null}s(bG,"classifyFileShape");var FQ=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],vQ=[".cursorrules",".windsurfrules"];async function TG(t){let e=join(t,".agentsmesh");if(!await bp(e))return null;let r=await Ri(e),n=new Set(r.map(o=>o.name));for(let o of FQ)if(n.has(o))return {path:".agentsmesh"};return null}s(TG,"detectCanonical");async function xG(t){for(let e of vQ)try{if((await stat(join(t,e))).isFile())return {path:e}}catch{}return null}s(xG,"detectRootRule");async function DG(t){try{if((await stat(join(t,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(DG,"detectRootSkill");Eo();var $Q={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},GQ=[".claude-plugin",".codex-plugin",".cursor-plugin"],jQ=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function NG(t){let e=join(t,"skills"),r=await Ri(e);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!jQ.test(n.name))&&await bp(join(e,n.name)))try{if((await stat(join(e,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(NG,"detectSkillPack");async function FG(t){let e=[];for(let[r,n]of Object.entries($Q)){let o=join(t,r),i=await Ri(o),a=new Set;for(let l of i){if(!l.isFile||Cn(l.name))continue;let c=bG(l.name);c&&a.add(c);}for(let l of a)e.push({path:r,suggestedAs:n,fileShape:l});}return e}s(FG,"detectFlatCollections");async function vG(t){let e=[];for(let r of GQ)await bp(join(t,r))&&e.push({path:r});return e}s(vG,"detectToolNativeManifests");async function WI(t,e){let r=await TG(t);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await NG(t),o=n?null:await DG(t),i=await FG(t),a=n||o||i.length>0?null:await xG(t),l=await vG(t);return {canonical:r,skillPack:n?{path:e?`${e}/skills`:"skills"}:null,rootSkill:o?{path:e?`${e}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:e?`${e}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:e?`${e}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:e?`${e}/${c.path}`:c.path}))}}s(WI,"detectFlatLayout");function KI(t){return t.canonical!==null||t.skillPack!==null||t.rootSkill!==null||t.rootRule!==null||t.flatCollections.length>0}s(KI,"hasContent");async function MG(t,e){let r=await Ri(t),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(t,o.name),a=e?`${e}/${o.name}`:o.name,l=await WI(i,a);KI(l)&&n.push({path:a,layout:l});}return n}s(MG,"collectSubPackCandidates");async function UQ(t,e){if(KI(e))return [];let r=await AG(t,WI,KI);if(r&&r.length>0)return r;let n=await MG(t,"");if(n.length>=2)return n;let o=await Ri(t);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await MG(join(t,i.name),i.name);if(a.length>=2)return a}return []}s(UQ,"detectSubPacks");async function GG(t){let e=await WI(t,"");if(e.canonical)return {...e,subPacks:[]};let r=await UQ(t,e);return {...e,subPacks:r}}s(GG,"detectLayout");A();U();async function UG(t){let e;try{e=await readdir(t);}catch{return null}let r=e.sort().find(c=>c.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await _(join(t,r));if(!n)return null;let o=Gr(n,join(t,r));if(!o.ok)return null;let{frontmatter:i}=o.value,a="alwaysApply"in i,l="trigger"in i;return a&&l?null:a?"cursor":l?"windsurf":null}s(UG,"inferMdcTarget");cf();df();function VQ(t){let e=t.indexOf("#");return e<0?{path:t,anchor:""}:{path:t.slice(0,e),anchor:t.slice(e)}}s(VQ,"splitAnchor");function JQ(t){return t.split(sep).join("/")}s(JQ,"toForwardSlash");async function YQ(t){try{return await stat(t),!0}catch{return false}}s(YQ,"pathExists");async function HG(t){let{link:e,fromFile:r,contentRoot:n,includedPaths:o}=t,{path:i,anchor:a}=VQ(e.path);if(i===""||isAbsolute(i))return {link:e,classification:"unresolvable",resolvedRelative:null,anchor:a};let l=join(n,r,".."),c=normalize(resolve(l,i)),m=normalize(resolve(n)),p=relative(m,c);if(p.startsWith("..")||isAbsolute(p))return {link:e,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=JQ(p);return await YQ(c)?o.has(u)?{link:e,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:e,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:e,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(HG,"resolveLink");var XQ=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,ZQ=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,QQ=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function qQ(t){let e=[];for(let r of t.matchAll(XQ)){let n=r.index??0;e.push([n,n+r[0].length]);}return e}s(qQ,"getFencedCodeRanges");function zG(t,e){for(let[r,n]of e)if(t>=r&&t<n)return true;return false}s(zG,"isInRanges");function VG(t){let e=t.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(e);return r?.[1]!==void 0&&(e=r[1].trim()),e.startsWith("<")&&e.endsWith(">")&&(e=e.slice(1,-1).trim()),e}s(VG,"normalizeDestination");function Xf(t){let e=qQ(t),r=[];for(let n of t.matchAll(ZQ)){let o=n.index??0;if(zG(o,e))continue;let i=n[1]==="!",a=n[2];if(a===void 0)continue;let l=t.indexOf("(",o);if(l<0)continue;let c=l+1;r.push({kind:i?"image":"inline",destination:VG(a),destinationOffset:c,destinationLength:a.length});}for(let n of t.matchAll(QQ)){let o=n.index??0;if(zG(o,e))continue;let i=(n[1]??"").trim(),a=n[2]??"";if(i===""||a.trim()==="")continue;let l=o,c=t.indexOf("]:",l);if(c<0)continue;let m=c+2;for(;m<t.length&&(t[m]===" "||t[m]===" ");)m+=1;r.push({kind:"reference-def",destination:VG(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(Xf,"scanMarkdownLinks");function JG(t,e){if(e.length===0)return t;let r=[...e].sort((o,i)=>i.offset-o.offset),n=t;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(JG,"applyRangeRewrites");function tq(t){return !(t.length===0||t.startsWith("#")||t.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}s(tq,"isCandidateRelativePath");function eq(t){let e=t.replaceAll("\\","/");return e==="{baseDir}"?".":e.startsWith("{baseDir}/")?e.slice(10):e}s(eq,"stripPath");function rq(t){let e=t.destination;return tq(e)?{raw:e,path:eq(e),kind:t.kind,...t.label!==void 0?{label:t.label}:{}}:null}s(rq,"toScannedLink");function YG(t){let e=[];for(let r of Xf(t)){let n=rq(r);n!==null&&e.push(n);}return e}s(YG,"scanRelativeLinks");function wc(t,e){let r=t.replaceAll("\\","/"),n=e.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(wc,"toForwardSlashRelative");function XG(t,e,r,n,o){let i=new Set;for(let a of e){i.add(wc(t,a.source));for(let l of a.supportingFiles)i.add(wc(t,l.absolutePath));}for(let a of r)i.add(wc(t,a.source));for(let a of n)i.add(wc(t,a.source));for(let a of o)i.add(wc(t,a.source));return i}s(XG,"buildIncludedPaths");function oq(t,e,r,n){let o=[];for(let i of t)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of e)o.push({kind:"agent",name:i.name,body:i.body,sourcePath:i.source});for(let i of r)o.push({kind:"command",name:i.name,body:i.body,sourcePath:i.source});for(let i of n)o.push({kind:"rule",name:basename(i.source,".md"),body:i.body,sourcePath:i.source});return o}s(oq,"listScannables");async function ZG(t,e,r,n,o,i){let a=oq(e,r,n,o),l=[];for(let c of a){let m=YG(c.body);if(m.length===0)continue;let p=wc(t,c.sourcePath),u=[];for(let f of m){let g=await HG({link:f,fromFile:p,contentRoot:t,includedPaths:i});g.classification!=="in-tree-included"&&u.push(g);}u.length>0&&l.push({entityKind:c.kind,entityName:c.name,resolved:u});}return l}s(ZG,"detectBrokenLinks");df();async function QG(t,e,r={}){let n=new Map,o=new Map,i=[],a=[...e].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await mf(join(t,p.dir),{restrictToTarget:p.target,parseOpts:r});i.push(f);for(let g of u){if(n.get(g.name)===void 0){n.set(g.name,{command:g,precedence:p.precedence});continue}let R=o.get(g.name)??[];R.push({path:g.source,precedence:p.precedence}),o.set(g.name,R);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(QG,"mergeCommands");async function qG(t,e,r={}){let[n,o,i,a]=await Promise.all([eM(`${t}/skills`,r),uf(`${t}/agents`,{parseOpts:r}),pf(`${t}/rules`,{parseOpts:r}),QG(t,e.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=XG(t,n,l,a.commands,c),p=await ZG(t,n,l,a.commands,c,m),u=s(async()=>{await Promise.allSettled([i.cleanup(),o.cleanup(),a.cleanup()]);},"cleanup");return {skills:n,agents:l,commands:a.commands,rules:c,dedups:a.dedups,brokenLinks:p,cleanup:u}}s(qG,"aggregateAnthropicSkillPack");var tj={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};ol();function aq(t){return {rules:[...t.rules],commands:[...t.commands],agents:[...t.agents],skills:[...t.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(aq,"aggregateToCanonical");function Zf(){return {}}s(Zf,"emptyPrep");async function lq(t,e){let r=[];for(let n of e)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await UG(join(t,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(lq,"enrichMdcTargets");function rj(t){return t.canonical?"canonical-agentsmesh":t.skillPack||t.rootSkill?"anthropic-skill-pack":t.rootRule||t.toolNativeManifests.length>0?"tool-native":"unknown"}s(rj,"deriveSourceType");async function cq(t,e){let r=await ou(t,e);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(cq,"rootSkillToCanonical");async function mq(t,e){let r=join(t,e),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${e}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(mq,"rootRuleToCanonical");async function nj(t){let e=t.parseOpts??{};if(t.explicitAs)return {implicitPick:void 0,...await fG(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick,e)};if(t.explicitTarget)return UI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e);let r=await GG(t.contentRoot),n=await lq(t.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await qG(t.contentRoot,tj,e),l=aq(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:_n(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await cq(t.contentRoot,e);return {prep:Zf(),implicitPick:void 0,narrowed:a,discoveredFeatures:_n(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await mq(t.contentRoot,o.rootRule.path);return {prep:Zf(),implicitPick:void 0,narrowed:a,discoveredFeatures:_n(a),layout:o}}return o.subPacks.length>0?{prep:Zf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:Zf(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await UI(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget,e),layout:o}}s(nj,"resolveInstallDiscovery");function sj(t){let e=new Set;t.skillPack&&e.add("skills"),t.rootSkill&&e.add("skills");for(let r of t.flatCollections)e.add(r.suggestedAs);return [...e]}s(sj,"featuresFromLayout");function pq(t){return t.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(pq,"subPackSlug");function oj(t,e,r){let n=sj(t.layout),o=n[0];return {name:`${e}-${pq(t.path)}`,source:r,path:t.path,as:o,features:n}}s(oj,"targetFromSubPack");function ij(t,e,r){return {name:e,source:r,path:t.path,as:t.suggestedAs,target:t.inferredTarget,features:[t.suggestedAs]}}s(ij,"targetFromCollection");function aj(t){let{layout:e,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=t;if(o||i||a)return {targets:[],isMarketplace:false};if(e.canonical||e.skillPack)return {targets:[],isMarketplace:false};if(e.subPacks.length>=1)return uq(t);if(e.flatCollections.length===1){let l=e.flatCollections[0];return {targets:[ij(l,r,n)],isMarketplace:false}}return e.flatCollections.length>1?dq(t):{targets:[],isMarketplace:false}}s(aj,"selectInstallCandidates");function uq(t){let{layout:e,sourceName:r,sourceForYaml:n}=t;if(t.all)return {targets:e.subPacks.map(a=>oj(a,r,n)),isMarketplace:true};if(t.force||!t.tty){let a=e.subPacks.map(l=>({path:l.path,features:sj(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
336
|
-
`)
|
|
337
|
-
|
|
338
|
-
`);
|
|
339
|
-
${
|
|
350
|
+
Fix: add a precise --trigger-file <glob> (preferred) or a valid --trigger-cmd <regex>; for a keyword, drop the stopwords (e.g. "state art" not "state of the art").`);this.deadTriggers=r;this.name="UnrecallableLessonError";}static{s(this,"UnrecallableLessonError");}code="UNRECALLABLE_LESSON"};var m4=new Set(["the","a","an","to","of","in","and","or","for","is","on","at","with","be","as","it","that","this","its","must"]);function Mt(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>=2&&!m4.has(t))}s(Mt,"tokenize");function A0(e){let t=[];return e.keyword!==void 0&&t.push(e.keyword),e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),Mt(t.join(" "))}s(A0,"queryTerms");function x0(e){let t=[],r=new Map,n=0,o=0;for(let l of Object.values(e.lessons)){if(l.status!=="active")continue;let c=Mt(l.rule);o+=1,n+=c.length,t.push(c.length);for(let m of new Set(c))r.set(m,(r.get(m)??0)+1);}let i=Math.max(o,1),a=new Map;for(let[l,c]of r)a.set(l,Math.log(1+(i-c+.5)/(c+.5)));return {idf:a,avgdl:n/i||1}}s(x0,"buildCorpus");function T0(e,t,r){let n=Mt(t),o=n.length||1,i=new Map;for(let l of n)i.set(l,(i.get(l)??0)+1);let a=0;for(let l of new Set(e)){let c=i.get(l)??0;if(c===0)continue;let m=r.idf.get(l);a+=m*(c*(1.5+1))/(c+1.5*(1-.75+.75*o/r.avgdl));}return a}s(T0,"bm25");var pu=5;function Zg(e){return Mt(e).length>pu}s(Zg,"isLowSignalKeyword");function p4(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(p4,"splitRawTokens");function rm(e){let t=p4(e);return t.length<2?false:Mt(e).length!==t.length}s(rm,"keywordNeedleLosesTokens");function P0(e){let t=new Set;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.add(n);return t}s(P0,"activeTriggerIds");function uu(e,t){let r=P0(e),n=[...t],o=new Set;for(let[i,a]of Object.entries(e.triggers)){if(a.kind!=="file_glob"||!r.has(i))continue;let l=u4(a.pattern,{dot:true});n.some(c=>l(c))||o.add(i);}return o}s(uu,"deadFileGlobIds");function D0(e,t,r){for(let n of uu(e,r))t.push({level:"warning",code:"DEAD_FILE_GLOB",message:`file_glob trigger "${n}" (${e.triggers[n]?.pattern??""}) matches no file in the working tree \u2014 the lesson is unreachable via this trigger (a rename likely moved the path). Re-point it at the current path, or detach it with \`lessons untrigger\`, or run \`lessons prune --apply\`.`,triggerId:n});}s(D0,"collectDeadFileGlobs");var d4=/^\^(pnpm|npm|npx|yarn|bun)\b/;function N0(e,t){let r=P0(e);for(let[n,o]of Object.entries(e.triggers))o.kind==="command_pattern"&&r.has(n)&&d4.test(o.pattern)&&t.push({level:"warning",code:"RUNNER_ANCHORED_PATTERN",message:`command_pattern trigger "${n}" (${o.pattern}) is anchored to one runner \u2014 it won't fire for the same task via another runner (e.g. \`npx\` vs \`pnpm\`). Drop the \`^<runner>\` anchor and key on the task (e.g. \`\\bvitest\\b\`).`,triggerId:n});}s(N0,"collectRunnerAnchoredPatterns");var f4=.6,eh=8;function g4(e){let t=e.trim();return t==="*"||t==="**"?true:t.includes("**")?t.slice(t.lastIndexOf("/")+1).startsWith("*"):false}s(g4,"isBroadGlob");function EI(e,t,r){let n=e.lessons[t];if(n===void 0)return [];let o=[];n.triggers.length>eh&&o.push({code:"OVERSIZED_LESSON_TRIGGERS",message:`Lesson "${t}" has ${n.triggers.length} triggers (recommended \u2264 ${eh}); broad trigger sets fire on too many edits and dilute recall \u2014 prefer a few specific triggers.`});let i=n.triggers.map(m=>e.triggers[m]).filter(m=>m!==void 0),a=i.filter(m=>m.kind==="file_glob"&&g4(m.pattern)).map(m=>m.pattern);a.length>0&&o.push({code:"BROAD_GLOB_TRIGGER",message:`Lesson "${t}" has broad file glob(s) (${a.join(", ")}) that match large swaths of the tree; prefer a path specific to the lesson.`}),i.length>0&&i.every(m=>m.kind==="keyword")&&o.push({code:"KEYWORD_ONLY_LESSON",message:`Lesson "${t}" has only keyword triggers; mandatory --file/--cmd recall surfaces these only when the keyword appears as a path/command token, so it fires less reliably \u2014 add a file_glob or command_pattern trigger for precise recall.`});let l=i.filter(m=>m.kind==="keyword"&&Zg(m.pattern)).map(m=>m.pattern);l.length>0&&o.push({code:"LOW_SIGNAL_KEYWORD",message:`Lesson "${t}" has long keyword trigger(s) (${l.join(", ")}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so a pattern past ${pu} tokens rarely fires \u2014 use a short distinctive phrase.`});let c=i.filter(m=>m.kind==="keyword"&&rm(m.pattern)).map(m=>m.pattern);if(c.length>0&&o.push({code:"STOPWORD_KEYWORD",message:`Lesson "${t}" has keyword trigger(s) containing stopwords/short words (${c.join(", ")}); recall filters them from the pattern but NOT from the file/command text, so the phrase can never match contiguously on the --file/--cmd path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art").`}),r!==void 0){let m=uu(e,r),p=n.triggers.filter(u=>m.has(u)).map(u=>e.triggers[u]?.pattern).filter(u=>u!==void 0);p.length>0&&o.push({code:"DEAD_GLOB",message:`Lesson "${t}" has file_glob trigger(s) (${p.join(", ")}) that match no file in the working tree \u2014 likely a rename. Re-point them at the current path, or the lesson is unreachable via those globs.`});}return o}s(EI,"inspectCapturedLesson");function v0(e,t){let r=e.lessons[t];if(r===void 0)return null;let n=new Set(Mt(r.rule));if(n.size===0)return null;let o=null;for(let[i,a]of Object.entries(e.lessons)){if(i===t||a.status!=="active")continue;let l=new Set(Mt(a.rule));if(l.size===0)continue;let c=h4(n,l);c>=f4&&(o===null||c>o.score)&&(o={id:i,score:c});}return o===null?null:{code:"NEAR_DUPLICATE_LESSON",message:`Lesson "${t}" closely resembles active lesson "${o.id}" (~${Math.round(o.score*100)}% token overlap); consider updating "${o.id}" instead of adding a paraphrase (recall would surface both).`}}s(v0,"nearDuplicateWarning");function h4(e,t){let r=0;for(let n of e)t.has(n)&&(r+=1);return r/(e.size+t.size-r)}s(h4,"jaccard");var F0=".lessons.lock";function M0(e){return resolve(e,".agentsmesh/lessons",F0)}s(M0,"lessonsLockPath");async function th(e,t={}){let r=M0(e);return await mkdir(dirname(r),{recursive:true}),Yc(r,{...t,label:"lessons lock"})}s(th,"acquireLessonsLock");function G0(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of n.topics)e.topics[o]===void 0&&t.push({level:"error",code:"DANGLING_TOPIC",message:`Lesson "${r}" references unknown topic "${o}".`,lessonId:r,topicId:o});for(let o of n.triggers)e.triggers[o]===void 0&&t.push({level:"error",code:"DANGLING_TRIGGER",message:`Lesson "${r}" references unknown trigger "${o}".`,lessonId:r,triggerId:o});n.supersededBy!==void 0&&e.lessons[n.supersededBy]===void 0&&t.push({level:"error",code:"DANGLING_SUPERSEDER",message:`Lesson "${r}" supersededBy unknown lesson "${n.supersededBy}".`,lessonId:r});}}s(G0,"collectDanglingRefs");function j0(e,t){for(let[r,n]of Object.entries(e.lessons)){for(let o of $0(n.topics))t.push({level:"error",code:"DUPLICATE_TOPIC_REF",message:`Lesson "${r}" references topic "${o}" more than once.`,lessonId:r,topicId:o});for(let o of $0(n.triggers))t.push({level:"error",code:"DUPLICATE_TRIGGER_REF",message:`Lesson "${r}" references trigger "${o}" more than once.`,lessonId:r,triggerId:o});}}s(j0,"collectDuplicateRefs");function $0(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s($0,"firstDuplicates");function U0(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="superseded"&&n.supersededBy===void 0&&t.push({level:"error",code:"SUPERSEDED_WITHOUT_TARGET",message:`Lesson "${r}" has status "superseded" but no supersededBy target.`,lessonId:r}),n.status==="active"&&n.supersededBy!==void 0&&t.push({level:"error",code:"ACTIVE_WITH_SUPERSEDER",message:`Lesson "${r}" has status "active" but declares supersededBy.`,lessonId:r});}s(U0,"collectStatusInvariants");function B0(e,t){for(let[r,n]of Object.entries(e.lessons)){if(n.supersededBy===void 0)continue;if(n.supersededBy===r){t.push({level:"error",code:"SELF_SUPERSEDED",message:`Lesson "${r}" is superseded by itself.`,lessonId:r});continue}let o=e.lessons[n.supersededBy];o!==void 0&&o.status!=="active"&&t.push({level:"error",code:"INACTIVE_SUPERSEDER",message:`Lesson "${r}" is superseded by "${n.supersededBy}", which is itself ${o.status} \u2014 the chain dead-ends with no live replacement.`,lessonId:r});}S4(e,t);}s(B0,"collectLifecycleInvariants");function S4(e,t){let r=new Set;for(let n of Object.keys(e.lessons)){let o=new Set,i=n;for(;i!==void 0;){if(o.has(i)){if(i!==n||r.has(i))break;r.add(i),t.push({level:"error",code:"SUPERSEDE_CYCLE",message:`Lesson "${n}" is part of a supersededBy cycle.`,lessonId:n});break}o.add(i);let a=e.lessons[i]?.supersededBy;if(a===i)break;i=a;}}}s(S4,"collectSupersedeCycles");function K0(e,t){for(let[r,n]of Object.entries(e.lessons))n.status==="active"&&n.triggers.length===0&&t.push({level:"warning",code:"UNREACHABLE_LESSON",message:`Active lesson "${r}" has no triggers and can never be recalled.`,lessonId:r});}s(K0,"collectReachability");function W0(e,t){let r=new Set,n=new Set;for(let o of Object.values(e.lessons)){for(let i of o.topics)r.add(i);for(let i of o.triggers)n.add(i);}for(let o of Object.keys(e.topics))r.has(o)||t.push({level:"warning",code:"ORPHAN_TOPIC",message:`Topic "${o}" is not referenced by any lesson.`,topicId:o});for(let o of Object.keys(e.triggers))n.has(o)||t.push({level:"warning",code:"ORPHAN_TRIGGER",message:`Trigger "${o}" is not referenced by any lesson.`,triggerId:o});}s(W0,"collectOrphans");var wI=class{static{s(this,"Builder");}states=[];alloc(){if(this.states.length>=2e3)throw new Error("NFA state limit exceeded (2000); pattern expands too large");return this.states.push({eps:[],asserts:[],chars:[]}),this.states.length-1}};function k4(e){return e!==`
|
|
351
|
+
`&&e!=="\r"&&e!=="\u2028"&&e!=="\u2029"}s(k4,"isNonLineTerminator");function al(e,t){switch(t.k){case "empty":case "assert":{let r=e.alloc(),n=e.alloc();return t.k==="assert"?e.states[r].asserts.push({kind:t.kind,target:n}):e.states[r].eps.push(n),{start:r,end:n}}case "char":case "any":case "class":{let r=e.alloc(),n=e.alloc(),o=t.k==="char"?i=>i===t.ch:t.k==="any"?k4:t.test;return e.states[r].chars.push({test:o,target:n}),{start:r,end:n}}case "concat":{if(t.items.length===0)return al(e,{k:"empty"});let r=null,n=-1;for(let o of t.items){let i=al(e,o);r===null?r=i:e.states[n].eps.push(i.start),n=i.end;}return {start:r.start,end:n}}case "alt":{let r=e.alloc(),n=e.alloc();for(let o of t.opts){let i=al(e,o);e.states[r].eps.push(i.start),e.states[i.end].eps.push(n);}return {start:r,end:n}}case "opt":{let r=e.alloc(),n=e.alloc(),o=al(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(n),{start:r,end:n}}case "star":{let r=e.alloc(),n=e.alloc(),o=al(e,t.node);return e.states[r].eps.push(o.start,n),e.states[o.end].eps.push(o.start,n),{start:r,end:n}}case "plus":{let r=e.alloc(),n=al(e,t.node);return e.states[n.end].eps.push(n.start,r),{start:n.start,end:r}}}}s(al,"compileNode");function H0(e){let t=new wI,{start:r,end:n}=al(t,e);return {states:t.states,start:r,accept:n}}s(H0,"compileNfa");function z0(e,t){let r=t>0&&/[A-Za-z0-9_]/.test(e[t-1]),n=t<e.length&&/[A-Za-z0-9_]/.test(e[t]);return r!==n}s(z0,"wordBoundary");function I4(e,t,r){switch(e){case "start":return r===0;case "end":return r===t.length;case "wordB":return z0(t,r);case "nonWordB":return !z0(t,r)}}s(I4,"assertHolds");function V0(e){let{states:t,start:r,accept:n}=H0(e),o=s((i,a,l,c,m)=>{let p=[a];for(;p.length>0;){if(m.remaining<=0)return;let u=p.pop();if(!i.has(u)){i.add(u),m.remaining-=1;for(let f of t[u].eps)i.has(f)||p.push(f);for(let f of t[u].asserts)I4(f.kind,l,c)&&!i.has(f.target)&&p.push(f.target);}}},"closure");return {test(i,a){let l=a??{remaining:Number.POSITIVE_INFINITY};if(l.remaining<=0)return false;let c=new Set;for(let m=0;m<=i.length;m+=1){if(o(c,r,i,m,l),c.has(n))return true;if(l.remaining<=0)return false;if(m===i.length)break;let p=i[m],u=new Set;for(let f of c){l.remaining-=1;for(let g of t[f].chars)g.test(p)&&o(u,g.target,i,m+1,l);}c=u;}return c.has(n)}}}s(V0,"buildMatcher");var mr=class extends Error{static{s(this,"UnsupportedRegexError");}constructor(t){super(t),this.name="UnsupportedRegexError";}};var rh=1e3,J0=s(e=>/[A-Za-z0-9_]/.test(e),"isWord");function Y0(e,t,r){let n=[];for(let o=0;o<t;o+=1)n.push(e);if(r===1/0)n.push({k:"star",node:e});else for(let o=t;o<r;o+=1)n.push({k:"opt",node:e});return n.length===0?{k:"empty"}:n.length===1?n[0]:{k:"concat",items:n}}s(Y0,"expandRepeat");function bI(e){switch(e){case "d":return t=>t>="0"&&t<="9";case "D":return t=>!(t>="0"&&t<="9");case "w":return J0;case "W":return t=>!J0(t);case "s":return t=>/\s/.test(t);case "S":return t=>!/\s/.test(t);default:return null}}s(bI,"escapeClass");var L4=/^[0-9a-fA-F]{2}$/,C4=/^[0-9a-fA-F]{4}$/;function OI(e,t,r){if(r==="x"){let o=e.slice(t,t+2);return L4.test(o)?{ch:String.fromCharCode(parseInt(o,16)),len:2}:{ch:"x",len:0}}let n=e.slice(t,t+4);return C4.test(n)?{ch:String.fromCharCode(parseInt(n,16)),len:4}:{ch:"u",len:0}}s(OI,"readUnicodeEscape");function AI(e,t){let r=e[t];if(r===void 0||!/[A-Za-z]/.test(r))throw new mr("\\c must be followed by a letter");return {ch:String.fromCharCode(r.charCodeAt(0)&31),len:1}}s(AI,"readControlEscape");function xI(e,t,r){return r==="b"?{ch:"\b",len:0}:r==="c"?AI(e,t):r==="x"||r==="u"?OI(e,t,r):{ch:TI(r),len:0}}s(xI,"classEscapeChar");function TI(e){switch(e){case "t":return " ";case "n":return `
|
|
352
|
+
`;case "r":return "\r";case "f":return "\f";case "v":return "\v";case "0":return "\0";default:return e}}s(TI,"escapeLiteral");function X0(e){let t=0,r=s(()=>e[t],"peek"),n=s(()=>e[t++],"eat");function o(){let h=[i()];for(;r()==="|";)t+=1,h.push(i());return h.length===1?h[0]:{k:"alt",opts:h}}s(o,"parseAlt");function i(){let h=[];for(;t<e.length&&r()!=="|"&&r()!==")";)h.push(a());return h.length===0?{k:"empty"}:h.length===1?h[0]:{k:"concat",items:h}}s(i,"parseConcat");function a(){let h=c(),R=r();if(R==="*"||R==="+"||R==="?")return t+=1,r()==="?"&&(t+=1),R==="*"?{k:"star",node:h}:R==="+"?{k:"plus",node:h}:{k:"opt",node:h};if(R==="{"){let _=l();if(_!==null)return Y0(h,_.min,_.max)}return h}s(a,"parseQuantified");function l(){let h=/^\{(\d+)(,(\d*)?)?\}/.exec(e.slice(t));if(h===null)return null;t+=h[0].length,r()==="?"&&(t+=1);let R=Number(h[1]),_=h[2]===void 0?R:h[3]===""||h[3]===void 0?1/0:Number(h[3]);if(R>rh||_!==1/0&&_>rh)throw new mr(`Repeat count over ${rh} not supported: {${h[1]}\u2026}`);return {min:R,max:_}}s(l,"tryParseBrace");function c(){let h=r();if(h==="(")return m();if(h==="[")return u();if(h==="\\")return p();if(h===".")return t+=1,{k:"any"};if(h==="^")return t+=1,{k:"assert",kind:"start"};if(h==="$")return t+=1,{k:"assert",kind:"end"};if(h===void 0||h==="*"||h==="+"||h==="?"||h===")")throw new mr(`Unexpected '${h??"<end>"}' in pattern`);return t+=1,{k:"char",ch:h}}s(c,"parseAtom");function m(){if(t+=1,r()==="?"){let R=e[t+1];if((R==="="||R==="!"||R==="<")&&!(R==="<"&&/[A-Za-z]/.test(e[t+2]??"")))throw new mr("Lookaround assertions are not supported");if(R===":")t+=2;else if(R==="<"){for(t+=2;t<e.length&&e[t]!==">";)t+=1;t+=1;}}let h=o();if(r()!==")")throw new mr("Unbalanced group");return t+=1,h}s(m,"parseGroup");function p(){t+=1;let h=r();if(h===void 0)throw new mr("Trailing backslash");if(/[1-9]/.test(h)||h==="k")throw new mr("Backreferences are not supported");if(t+=1,h==="b")return {k:"assert",kind:"wordB"};if(h==="B")return {k:"assert",kind:"nonWordB"};let R=bI(h);if(R!==null)return {k:"class",test:R};if(h==="x"||h==="u"||h==="c"){let{ch:_,len:S}=h==="c"?AI(e,t):OI(e,t,h);return t+=S,{k:"char",ch:_}}return {k:"char",ch:TI(h)}}s(p,"parseEscape");function u(){t+=1;let h=r()==="^";h&&(t+=1);let R=[];for(;t<e.length&&r()!=="]";)R.push(f());if(r()!=="]")throw new mr("Unterminated character class");t+=1;let _=s(S=>R.some(I=>I(S)),"base");return {k:"class",test:h?S=>!_(S):_}}s(u,"parseClass");function f(){let h;if(r()==="\\"){t+=1;let R=n(),_=bI(R);if(_!==null)return _;let S=xI(e,t,R);t+=S.len,h=S.ch;}else h=n();if(r()==="-"&&e[t+1]!==void 0&&e[t+1]!=="]"){t+=1;let R;if(r()==="\\"){t+=1;let I=n(),b=xI(e,t,I);t+=b.len,R=b.ch;}else R=n();let _=h.codePointAt(0),S=R.codePointAt(0);return I=>{let b=I.codePointAt(0);return b>=_&&b<=S}}return R=>R===h}s(f,"parseClassMember");let g=o();if(t!==e.length)throw new mr(`Unexpected '${r()}' at ${t}`);return g}s(X0,"parseRegex");var PI=new Map;function DI(e){let t=PI.get(e);if(t!==void 0||PI.has(e))return t??null;let r;try{r=V0(X0(e));}catch{r=null;}return PI.set(e,r),r}s(DI,"compileLinearMatcher");var q0=1e3;function du(e){return e.length>q0?false:DI(e)!==null}s(du,"isSafeRegexPattern");function Q0(e){return e.length>q0?null:DI(e)}s(Q0,"getCommandMatcher");function eU(e,t){let r=new Map;for(let[n,o]of Object.entries(e.lessons)){if(o.status!=="active")continue;let i=E4(o.rule),a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_RULE",message:`Lesson "${a}" duplicates rule text of: ${l.join(", ")} (normalized key: "${n.slice(0,60)}").`,lessonId:a});}}}s(eU,"collectDuplicateRules");function tU(e,t){for(let[r,n]of Object.entries(e.triggers))if(n.kind==="command_pattern"){try{new RegExp(n.pattern);}catch(o){t.push({level:"error",code:"INVALID_TRIGGER_PATTERN",message:`Trigger "${r}" has an invalid command_pattern regex (${n.pattern}): ${o instanceof Error?o.message:String(o)}.`,triggerId:r});continue}du(n.pattern)||t.push({level:"error",code:"UNSAFE_TRIGGER_PATTERN",message:`Trigger "${r}" has a command_pattern regex outside the provably-linear subset (${n.pattern}): it can backtrack catastrophically (e.g. a quantified group like (a+)+ or (a|aa)+, adjacent repetition like a+a+, or a backreference/lookaround). Rewrite using a linear pattern.`,triggerId:r});}}s(tU,"collectInvalidTriggerPatterns");function rU(e,t){for(let[r,n]of Object.entries(e.triggers))n.kind==="file_glob"&&n.pattern.includes("\\")&&t.push({level:"error",code:"BACKSLASH_GLOB_PATTERN",message:`Trigger "${r}" has a file_glob pattern with a backslash (${n.pattern}); recall normalizes paths to forward slashes, so it never fires. Replace \\ with /.`,triggerId:r});}s(rU,"collectBackslashGlobPatterns");function nU(e,t){let r=new Map;for(let[n,o]of Object.entries(e.triggers)){let i=`${o.kind}|${o.pattern}`,a=r.get(i)??[];a.push(n),r.set(i,a);}for(let[n,o]of r){if(o.length<2)continue;let i=[...o].sort();for(let a of i){let l=i.filter(c=>c!==a);t.push({level:"error",code:"DUPLICATE_TRIGGER",message:`Trigger "${a}" duplicates (kind, pattern) of: ${l.join(", ")} (key: "${n}").`,triggerId:a});}}}s(nU,"collectDuplicateTriggers");var Z0=10;function oU(e,t){let r=new Map;for(let i of Object.values(e.lessons))if(i.status==="active")for(let a of i.triggers)r.set(a,(r.get(a)??0)+1);let n=0,o=0;for(let i of r.values())i>Z0&&(n+=1),i>o&&(o=i);n>0&&t.push({level:"warning",code:"HIGH_FANOUT_TRIGGERS",message:`${n} trigger(s) each match more than ${Z0} active lessons (max ${o}); recall returns the ranked top by default \u2014 consider per-lesson trigger refinement to improve precision.`});}s(oU,"collectFanout");function sU(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&Zg(o.pattern)&&t.push({level:"warning",code:"LOW_SIGNAL_KEYWORD",message:`Keyword trigger "${n}" carries more than ${pu} tokens (${o.pattern}); recall matches a keyword only as a substring of --keyword or a contiguous token-run in the file/command, so it rarely fires \u2014 use a short distinctive phrase.`,triggerId:n});}s(sU,"collectLowSignalKeywords");function iU(e,t){let r=new Set;for(let n of Object.values(e.lessons))if(n.status==="active")for(let o of n.triggers)r.add(o);for(let[n,o]of Object.entries(e.triggers))o.kind==="keyword"&&r.has(n)&&(Mt(o.pattern).length!==0&&!rm(o.pattern)||t.push({level:"warning",code:"STOPWORD_KEYWORD",message:`Keyword trigger "${n}" (${o.pattern}) loses tokens to stopword filtering, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path \u2014 drop the stopwords (e.g. "state art" instead of "state of the art"), or detach it with \`lessons untrigger\`.`,triggerId:n}));}s(iU,"collectStopwordKeywords");function E4(e){return e.trim().replace(/\s+/g," ").toLowerCase()}s(E4,"normalizeRule");function xo(e,t={}){let r=[],n=il.safeParse(e);return n.success?(G0(e,r),j0(e,r),U0(e,r),B0(e,r),eU(e,r),K0(e,r),tU(e,r),rU(e,r),nU(e,r),W0(e,r),oU(e,r),sU(e,r),iU(e,r),N0(e,r),t.knownPaths!==void 0&&D0(e,r,t.knownPaths),{ok:r.every(i=>i.level!=="error"),findings:r}):(r.push({level:"error",code:"SCHEMA_INVALID",message:n.error.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join("; ")}),{ok:false,findings:r})}s(xo,"validateLessonsGraph");function w4(){return {version:1,lessons:{},topics:{},triggers:{}}}s(w4,"emptyGraph");async function ll(e,t,r={}){let n=await th(e,{retries:r.retries});try{let o=Ve(e)??w4(),i=await t(o),a=xo(o);if(!a.ok){let l=a.findings.filter(c=>c.level==="error").map(c=>`${c.code}: ${c.message}`).join("; ");throw new Error(`mutateLessonsGraph: refusing to write an invalid graph \u2014 ${l}`)}return S0(e,o),i}finally{await n();}}s(ll,"mutateLessonsGraphLocked");async function Et(e,t,r={}){return await dt(e),ll(e,t,r)}s(Et,"mutateLessonsGraph");function b4(e,t){let r=[];for(let n of t){let o=e.triggers[n];if(o===void 0)continue;let i=O4(o.kind,o.pattern);i!==null&&r.push({id:n,kind:o.kind,pattern:o.pattern,reason:i});}return r}s(b4,"ineffectiveTriggers");function O4(e,t){if(e==="keyword")return Mt(t).length===0?"keyword has no matchable token after stopword filtering \u2014 it cannot fire on the mandatory --file/--cmd recall path":rm(t)?"keyword contains stopwords/short words, so its needle can never appear as a contiguous run on the mandatory --file/--cmd recall path":null;if(e==="command_pattern"){let r=true;try{new RegExp(t);}catch{r=false;}return r?du(t)?null:"regex is outside the provably-linear engine \u2014 recall skips it (ReDoS guard), so it never fires":"invalid regex \u2014 recall compiles it with new RegExp and swallows the throw as a non-match, so it never fires"}return null}s(O4,"ineffectiveReason");function aU(e,t){return b4(e,t).filter(r=>r.kind!=="command_pattern")}s(aU,"blockingDeadTriggers");function A4(e){return (e.files?.length??0)+(e.commands?.length??0)+(e.keywords?.length??0)}s(A4,"countInputTriggers");async function nh(e,t,r={}){return Et(e,n=>NI(n,t,r),{retries:r.retries})}s(nh,"addLesson");function NI(e,t,r){let n=CI(t.rule),o=t.rule.trim();if(o.length>tm)throw new Fs(o.length,tm);let i=x4(e,n),a=e.topics[t.topic]===void 0;if(a){if(r.allowNewTopic!==true)throw new xn(t.topic);if(r.topicSummary===void 0||r.topicSummary.length===0)throw new Error(`addLesson: new topic "${t.topic}" requires topicSummary.`);e.topics[t.topic]={summary:r.topicSummary};}if(r.allowNoTrigger!==true){let f=i!==null?e.lessons[i]?.triggers.length??0:0;if(A4(t.triggers)===0&&f===0)throw new Ms}let{triggerIds:l,newTriggerIds:c}=w0(e,t.triggers);if(r.allowNoTrigger!==true){let f=i!==null?mu(e.lessons[i].triggers,l):l,g=aU(e,f);if(f.length>0&&g.length===f.length)throw new $s(g)}if(i!==null){let f=e.lessons[i];return e.lessons[i]={...f,topics:mu(f.topics,[t.topic]),triggers:mu(f.triggers,l),evidence:mu(f.evidence,t.evidence??[]),...f.rationale===void 0&&t.rationale!==void 0?{rationale:t.rationale}:{}},{id:i,isNewLesson:false,isNewTopic:a,newTriggerIds:c,warnings:EI(e,i,r.knownPaths)}}let m=b0(e,t.topic,n);e.lessons[m]={rule:o,topics:[t.topic],triggers:l,evidence:t.evidence===void 0?[]:[...t.evidence],status:"active",createdAt:t.createdAt??O0(),...t.rationale===void 0?{}:{rationale:t.rationale}};let p=EI(e,m,r.knownPaths),u=v0(e,m);return {id:m,isNewLesson:true,isNewTopic:a,newTriggerIds:c,warnings:u===null?p:[...p,u]}}s(NI,"addLessonInto");function x4(e,t){for(let[r,n]of Object.entries(e.lessons))if(n.status==="active"&&CI(n.rule)===t)return r;return null}s(x4,"findExistingLessonByRule");async function lU(e,t,r,n,o){let i=0,a=new Set,l=new Set;await ll(e,m=>{i=0,a.clear(),l.clear();for(let p of r){let u=NI(m,p,{allowNewTopic:!0,topicSummary:n.get(p.topic),allowNoTrigger:!0});u.isNewLesson&&(i+=1);for(let f of u.newTriggerIds)a.add(f);l.add(p.topic);}});let c=o.deleteLegacy===false?[]:Qg(t.base);return {wroteGraphPath:t.graph,deletedPaths:c,topicCount:l.size,lessonCount:i,triggerCount:a.size}}s(lU,"mergeLegacy");var N4=".agentsmesh/lessons";function Ge(e){let t=join(e,N4);return {base:t,graph:join(t,"lessons.json"),config:join(t,"config.json"),journal:join(t,"journal.md"),index:join(t,"index.yaml"),topicsDir:join(t,"topics")}}s(Ge,"lessonsPaths");function fu(e){return existsSync(Ge(e).config)}s(fu,"lessonsActivated");function gu(){return "lessons is not fully set up here \u2014 run `agentsmesh init --lessons`, then `agentsmesh generate`, to wire recall + capture into your AI tools."}s(gu,"lessonsSetupHint");function oh(e){let t=dirname(resolve(e)),r="";for(;t!==r;){if(existsSync(Ge(t).graph))return t;r=t,t=dirname(t);}return null}s(oh,"ancestorLessonsProjectDir");function cl(e,t){return relative(e,t).split(sep).join("/")}s(cl,"toRelPath");var om='## Lessons (BLOCKING REQUIREMENT \u2014 MUST run both, no exceptions; the user will check)\n\nGraph `.agentsmesh/lessons/lessons.json` is canonical \u2014 never hand-edit. Manual: the `lessons` skill.\n\n**Recall \u2014 MUST run before every file edit and every state-changing command** (build/test/install/migrate/git-write): `agentsmesh lessons query --file <path> --cmd <command>`, then apply every rule. Pure-read commands (cat/ls/grep/git-log) and the recall query itself are exempt.\n\n**Capture \u2014 MUST run immediately after any failure** (a failing test/CI/lint/typecheck, a code review, a user correction, a regression, or a wrong assumption \u2014 yours or anyone\'s): `agentsmesh lessons add "<rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`.\n\nNo shell? Use the `lessons_query` / `lessons_add` MCP tools. Skip either and the system does not exist.';var sm=class extends Error{static{s(this,"LessonsGraphExistsError");}code="LESSONS_GRAPH_EXISTS";constructor(){super("importLegacyLessons: a non-empty lessons.json already exists; pass force to overwrite."),this.name="LessonsGraphExistsError";}};async function im(e,t){let r=Ge(e),n=readFileSync(r.index,"utf8"),o=I0.parse(parse(n)),i={},a=new Map,l=new Map,c={},m=[],p=new Map;for(let g of o.clusters){i[g.topic]={summary:g.summary},p.set(g.topic,g.summary);let h=L0(g,a,l),R=join(e,g.file);if(!existsSync(R))throw new Error(`importLegacyLessons: declared topic file is missing: ${g.file}. Refusing to migrate (legacy artifacts left intact).`);let _=readFileSync(R,"utf8");for(let{index:S,body:I,evidence:b}of C0(_)){let P=[`legacy:${g.file}#rule-${S}`,...b.map(T=>`legacy:${T}`)];c[`${g.topic}-rule-${S}`]={rule:I,topics:[g.topic],triggers:h,evidence:P,status:"active",createdAt:t.migratedAt},m.push({rule:I,topic:g.topic,triggers:{files:g.triggers.file_globs,commands:g.triggers.command_patterns,keywords:g.triggers.keywords},evidence:P,createdAt:t.migratedAt});}}if(t.merge===true)return lU(e,r,m,p,t);let u=Object.fromEntries(a.entries());await ll(e,g=>{let h=Object.keys(g.lessons).length>0||Object.keys(g.topics).length>0||Object.keys(g.triggers).length>0;if(t.force!==!0&&h)throw new sm;g.version=1,g.lessons=c,g.topics=i,g.triggers=u;});let f=t.deleteLegacy===false?[]:Qg(r.base);return {wroteGraphPath:r.graph,deletedPaths:f,topicCount:Object.keys(i).length,lessonCount:Object.keys(c).length,triggerCount:a.size}}s(im,"importLegacyLessons");function $4(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s($4,"todayIso");async function dt(e){if(existsSync(Ao(e)))return false;let t=Ge(e);if(!existsSync(t.index))return false;try{return await im(e,{migratedAt:$4()}),!0}catch(r){if(r instanceof sm)return false;throw r}}s(dt,"maybeAutoMigrateLessons");function sh(e){return existsSync(e)}s(sh,"logExists");function ih(e,t,r){mkdirSync(dirname(e),{recursive:true}),appendFileSync(e,`${JSON.stringify(t)}
|
|
353
|
+
`,"utf8"),statSync(e).size>r.trimTriggerBytes&&fU(e,r.maxRecords);}s(ih,"appendJsonl");function fU(e,t){if(!existsSync(e))return;let r=readFileSync(e,"utf8").split(`
|
|
354
|
+
`).filter(i=>i.trim().length>0);if(r.length<=t)return;let n=r.slice(r.length-t),o=`${e}.${process.pid}.tmp`;writeFileSync(o,`${n.join(`
|
|
355
|
+
`)}
|
|
356
|
+
`,"utf8"),renameSync(o,e);}s(fU,"capJsonl");function ah(e){if(!existsSync(e))return [];let t=[];for(let r of readFileSync(e,"utf8").split(`
|
|
357
|
+
`))if(r.trim().length!==0)try{t.push(JSON.parse(r));}catch{}return t}s(ah,"readJsonl");var z4=5e3,V4=2e6,J4="AGENTSMESH_LESSONS_TELEMETRY",Y4="AGENTSMESH_SESSION_ID";function am(e=process.env){let t=e[Y4];return t!==void 0&&t.trim().length>0?t:void 0}s(am,"sessionId");function hu(e){return join(Ge(e).base,"recall-log.jsonl")}s(hu,"recallLogPath");function $i(e=process.env){return e[J4]==="1"}s($i,"isTelemetryEnabled");function gU(e,t,r=process.env){$i(r)&&ih(hu(e),t,{maxRecords:z4,trimTriggerBytes:V4});}s(gU,"appendRecallRecord");function hU(e){return sh(hu(e))}s(hU,"recallLogExists");function yU(e){return ah(hu(e))}s(yU,"readRecallLog");var q4=5e3,Q4=2e6;function yu(e){return join(Ge(e).base,"capture-log.jsonl")}s(yu,"captureLogPath");function Z4(e,t,r=process.env){$i(r)&&ih(yu(e),t,{maxRecords:q4,trimTriggerBytes:Q4});}s(Z4,"appendCaptureRecord");function RU(e){return sh(yu(e))}s(RU,"captureLogExists");function _U(e){return ah(yu(e))}s(_U,"readCaptureLog");function FI(e,t,r,n=process.env){if(!$i(n))return;let o=am(n);Z4(e,{ts:new Date().toISOString(),isNewLesson:r?.isNewLesson??false,isNewTopic:r?.isNewTopic??false,newTriggerCount:r?.newTriggerIds.length??0,triggerKinds:t,blocked:r===null,warningCodes:r?.warnings.map(i=>i.code)??[],...o!==void 0?{session:o}:{},...r!==null?{lessonId:r.id}:{}},n);}s(FI,"recordCapture");function e5(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>0)}s(e5,"splitTokens");function t5(e){let t=[];return e.file!==void 0&&t.push(e.file),e.command!==void 0&&t.push(e.command),t.length===0?[]:e5(t.join(" "))}s(t5,"deriveHaystackTokens");function r5(e,t){if(e.length===0)return false;for(let r=0;r+e.length<=t.length;r+=1){let n=true;for(let o=0;o<e.length;o+=1)if(t[r+o]!==e[o]){n=false;break}if(n)return true}return false}s(r5,"containsRun");function SU(e,t){return t.keyword!==void 0&&t.keyword.toLowerCase().includes(e.toLowerCase())?true:r5(Mt(e),t5(t))}s(SU,"keywordMatches");var o5=5e6;function lm(e,t){if(t.file===void 0&&t.command===void 0&&t.keyword===void 0)return [];let r=$I(e,t),n=[];for(let[o,i]of Object.entries(e.lessons))i.status==="active"&&i.triggers.some(a=>r.has(a))&&n.push({id:o,lesson:i});return n.sort((o,i)=>o.id<i.id?-1:1),n}s(lm,"queryLessons");function MI(e,t){let r={file_glob:new Set,command_pattern:new Set,keyword:new Set},n={remaining:o5};for(let[o,i]of Object.entries(e.triggers))s5(i,t,n)&&r[i.kind].add(o);return r}s(MI,"collectMatchedTriggersByKind");function $I(e,t){let{file_glob:r,command_pattern:n,keyword:o}=MI(e,t);return new Set([...r,...n,...o])}s($I,"collectMatchedTriggerIds");function s5(e,t,r){switch(e.kind){case "file_glob":return t.file===void 0?false:u4(e.pattern,{dot:true})(t.file);case "command_pattern":{if(t.command===void 0)return false;let n=Q0(e.pattern);return n!==null&&n.test(t.command,r)}case "keyword":return SU(e.pattern,t)}}s(s5,"triggerMatches");function lh(e){let t=new Map;for(let r of Object.values(e.lessons))if(r.status==="active")for(let n of r.triggers)t.set(n,(t.get(n)??0)+1);return t}s(lh,"buildFanout");function kU(e){let t=new Map;for(let{lesson:n}of e)for(let o of n.topics)t.set(o,(t.get(o)??0)+1);let r=new Map;for(let{id:n,lesson:o}of e){let i=0;for(let a of o.topics)i=Math.max(i,t.get(a));r.set(n,i);}return r}s(kU,"buildTopicCoherence");var Ru=10,ch=400,GI=60,i5=3,a5=2,l5=1;function jI(e){let t=[...e].sort((i,a)=>a.value!==i.value?a.value-i.value:i.id<a.id?-1:1),r=new Map,n=null,o=0;return t.forEach((i,a)=>{let l=n!==null&&i.value===n?o:a+1;r.set(i.id,l),n=i.value,o=l;}),r}s(jI,"rankMap");function ml(e){return Math.ceil(e.length/4)}s(ml,"estTokens");function cm(e,t,r,n={}){if(r.length===0)return [];let o=A0(t),i=x0(e),a=lh(e),l=kU(r),c=$I(e,t),m=r.map(({id:h,lesson:R})=>{let _=R.triggers.filter(I=>c.has(I)),S=0;for(let I of _)S=Math.max(S,1/a.get(I));return {id:h,lesson:R,bm25:T0(o,R.rule,i),specificity:S,topicCoherence:l.get(h),matchedTriggers:_}}),p=jI(m.map(h=>({id:h.id,value:h.bm25}))),u=jI(m.map(h=>({id:h.id,value:h.specificity}))),f=jI(m.map(h=>({id:h.id,value:h.topicCoherence}))),g=m.map(h=>({id:h.id,lesson:h.lesson,score:i5/(GI+u.get(h.id))+a5/(GI+f.get(h.id))+l5/(GI+p.get(h.id)),reason:{matchedTriggers:h.matchedTriggers,bm25:h.bm25,specificity:h.specificity,topicCoherence:h.topicCoherence}})).sort((h,R)=>{if(R.score!==h.score)return R.score-h.score;let _=h.lesson.createdAt,S=R.lesson.createdAt;return _!==S?_<S?1:-1:h.id<R.id?-1:1});return c5(g,n)}s(cm,"rankLessons");function c5(e,t){let r=e;if(t.limit!==void 0&&t.limit>=0&&(r=r.slice(0,t.limit)),t.maxTokens!==void 0&&r.length>0){let n=[r[0]],o=ml(r[0].lesson.rule);for(let i of r.slice(1)){let a=ml(i.lesson.rule);if(o+a>t.maxTokens)break;o+=a,n.push(i);}r=n;}return r}s(c5,"applyCaps");function CU(){return {recallLimit:Ru,recallMaxTokens:ch,autoPrune:false}}s(CU,"defaultLessonsConfig");function mh(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}s(mh,"positiveInt");function EU(e){let t=Ge(e).config;if(!existsSync(t))return null;let r;try{r=JSON.parse(readFileSync(t,"utf8"));}catch{return "lessons config.json is not valid JSON \u2014 using built-in recall defaults. Fix or delete .agentsmesh/lessons/config.json."}if(typeof r!="object"||r===null)return "lessons config.json is not a JSON object \u2014 using built-in recall defaults.";let n=r,o=[];return "recallLimit"in n&&mh(n.recallLimit)===null&&o.push("recallLimit"),"recallMaxTokens"in n&&mh(n.recallMaxTokens)===null&&o.push("recallMaxTokens"),o.length>0?`lessons config.json has invalid ${o.join(" and ")} (expected a positive integer) \u2014 using the default for ${o.length===1?"it":"them"}.`:null}s(EU,"lessonsConfigWarning");function ph(e){let t={limit:Ru,maxTokens:ch},r=Ge(e).config;if(!existsSync(r))return t;try{let n=JSON.parse(readFileSync(r,"utf8"));if(typeof n!="object"||n===null)return t;let o=n;return {limit:mh(o.recallLimit)??t.limit,maxTokens:mh(o.recallMaxTokens)??t.maxTokens}}catch{return t}}s(ph,"loadRecallConfig");var bU="agentsmesh lessons hook",h5="Edit|Write|Bash";function OU(e){let t=join(e,".agentsmesh","hooks.yaml");if(!existsSync(t))return false;let r=parseDocument(readFileSync(t,"utf8")),n=r.get("PostToolUse"),o=n instanceof YAMLSeq?n:new YAMLSeq;return o.items.some(a=>a instanceof YAMLMap&&a.get("command")===bU)?false:(o.add(r.createNode({matcher:h5,type:"command",command:bU})),r.set("PostToolUse",o),writeFileSync(t,String(r),"utf8"),true)}s(OU,"injectRecallHook");Ue();var UI=`${Hm}
|
|
358
|
+
${om}
|
|
359
|
+
${zy}`;function AU(e){let t=y5(e);return Ed(t,UI)}s(AU,"appendLessonsParagraph");function y5(e){let t=zm(e,Hm,zy);return R5(t).trim()}s(y5,"stripLessonsParagraph");function R5(e){return e.replace(`
|
|
360
|
+
|
|
361
|
+
${om}`,"").replace(om,"")}s(R5,"stripRawProceduralRule");B();var BI="lessons",_5="Full operating manual for the agentsmesh lessons system (recall + capture). Consult when running any `agentsmesh lessons` subcommand (query, add, topics, show, deprecate, merge, untrigger, strip-markers, journal, validate, stats, prune, import-md), choosing a topic or trigger flags, using the lessons MCP tools, or when unsure how to phrase or capture a lesson.",S5='# Lessons \u2014 operating manual\n\nTwo commands: **Recall** before you act, **Capture** after any failure. The graph\n`.agentsmesh/lessons/lessons.json` is canonical \u2014 never hand-edit.\n\n## Recall \u2014 before each file edit and each state-changing command\n\n`agentsmesh lessons query --file <path> --cmd <command>` (add `--keyword <text>` to\nmatch by task), then apply every rule returned. Scope is MUTATING actions: file edits\nand state-changing commands (build/test/install/migrate/git-write). Pure-read commands\n(cat/ls/grep/git-log; read-only) and the recall query itself are **exempt** \u2014 no\ninfinite regress. A predicate-less query is rejected; **keyword-only recall is the\nanti-pattern** \u2014 most lessons are keyed to a `file_glob`/`command_pattern` and won\'t\nsurface (the CLI warns). Excuses ("small edit", "I already know this", "later") all\nmean: query first \u2014 skipping recall on a mutating action is a process violation, and\nthe user will check.\n\n## Capture \u2014 immediately after any failure\n\nAny failure counts, not just red tests: a failing test/CI/lint/typecheck, a code\nreview, a user correction, a regression, or a wrong assumption \u2014 yours or anyone\'s.\n\n`agentsmesh lessons add "<imperative rule>" --topic <id> --trigger-file <glob> --evidence <sha|lesson-id>`\n\n- **At least one _effective_ trigger is required.** A capture is rejected\n (`UNRECALLABLE_LESSON`) when EVERY trigger is dead on the mandatory `--file`/`--cmd`\n recall path \u2014 a stopword-only keyword ("state of the art"), or an invalid/ReDoS\n command regex \u2014 because the lesson could never be recalled there. Prefer\n `--trigger-file`: the most reliable trigger, it fires on `--file` recall. A keyword\n alone is discouraged (`KEYWORD_ONLY_LESSON`); paraphrasing an existing rule warns\n (`NEAR_DUPLICATE_LESSON` \u2014 update that lesson instead).\n- **One imperative sentence.** A rule over 2000 chars is rejected (`OVERSIZED_RULE`) \u2014\n trim it or split into separate lessons; don\'t paste a log/diff.\n- Widen with `--trigger-cmd <regex>` / `--trigger-kw <text>`. New area:\n `--new-topic --topic-summary "<line>"` (list ids with `agentsmesh lessons topics`).\n\n## No shell? \u2014 MCP tools\n\n`lessons_query`, `lessons_add`, `lessons_topics`, `lessons_show` (inspect a topic),\n`lessons_deprecate` (retire). validate / prune / merge / import-md are CLI-only.\n\n## Other subcommands\n\n`agentsmesh lessons <cmd>`: `show` \xB7 `deprecate` (`--superseded-by`) \xB7 `merge` \xB7\n`untrigger` \xB7 `strip-markers` \xB7 `prune` (`--apply`; trims over-cap triggers, GCs\norphan triggers/topics) \xB7 `journal` \xB7 `validate` \xB7 `stats` \xB7 `import-md`. Full\nhelp: `agentsmesh lessons --help`.\n\n## Config (`.agentsmesh/lessons/config.json`)\n\n`recallLimit` / `recallMaxTokens` (canonical recall caps; per-call overrides\n`--top` / `--max-tokens`). `recallMaxTokens` is approximate \u2014 `rule.length / 4`,\nnot a real tokenizer. `autoPrune: true` (default off) auto-GCs structural cruft\nafter each capture \u2014 orphan triggers/topics + non-stranding dead globs, the safe\nhalf of `prune`; never trims/strands an active lesson, git-reversible.\n\n## Dedup (opt-in)\n\nSet `--session <id>` (or `AGENTSMESH_SESSION_ID`) and lessons already delivered this\nsession are suppressed, so each recall carries only what is new (`--no-dedup` opts\nout). With no session id, recall is fully stateless \u2014 unchanged.',xU=D({name:BI,description:_5},S5);async function pl(e){let t=Ge(e),r=[],n=[],o=[];mkdirSync(t.base,{recursive:true}),await dt(e),existsSync(t.graph)?o.push(t.graph):(await ll(e,()=>{}),r.push(t.graph)),I5(e,r,o),k5(e,r,n,o);let i=L5(e),a=OU(e),l=await zg(e,[cl(e,hu(e)),cl(e,yu(e))]);return {created:r,updated:n,skipped:o,rootRuleUpdated:i,gitignoreUpdated:l,recallHookInjected:a}}s(pl,"scaffoldLessons");function k5(e,t,r,n){let o=join(e,".agentsmesh/skills",BI,"SKILL.md"),i=`${xU}
|
|
362
|
+
`;if(!existsSync(o)){mkdirSync(dirname(o),{recursive:true}),writeFileSync(o,i,"utf8"),t.push(o);return}if(readFileSync(o,"utf8")===i){n.push(o);return}writeFileSync(o,i,"utf8"),r.push(o);}s(k5,"seedLessonsSkill");function I5(e,t,r){let n=Ge(e).config;if(existsSync(n)){r.push(n);return}mkdirSync(dirname(n),{recursive:true}),writeFileSync(n,`${JSON.stringify(CU(),null,2)}
|
|
363
|
+
`,"utf8"),t.push(n);}s(I5,"seedLessonsConfig");function L5(e){let t=join(e,".agentsmesh/rules/_root.md");if(!existsSync(t)){mkdirSync(dirname(t),{recursive:true});let o=`---
|
|
364
|
+
root: true
|
|
365
|
+
description: ""
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
${UI}
|
|
369
|
+
|
|
370
|
+
# Operational Guidelines
|
|
371
|
+
`;return writeFileSync(t,o,"utf8"),true}let r=readFileSync(t,"utf8"),n=`${AU(r)}
|
|
372
|
+
`;return n===r?false:(writeFileSync(t,n,"utf8"),true)}s(L5,"injectProceduralBlock");var fh="agentsmesh.yaml",WI="agentsmesh.local.yaml",E5=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],w5=Object.fromEntries(Pe.map(e=>[e.id,(t,r)=>e.generators.importFrom(t,{scope:r})])),NU=Pe.filter(e=>e.globalSupport!==void 0).map(e=>e.id);async function vU(e,t={}){let r=t.global===true?"global":"project",n=t.lessons===true;if(n&&r==="global")throw new Error("--lessons is project-mode only. Lessons live in the project tree.");let o=Xi(e,r),i=join(o.configDir,fh),a=await j(i);if(a&&n){let _=await pl(e);return {exitCode:0,data:{scope:r,configFile:fh,localConfigFile:WI,detectedConfigs:[],imported:[],importedToolCount:0,scaffoldType:"none",gitignoreUpdated:false,lessons:_,lessonsOnly:true}}}if(a)throw new Error(`Already initialized. ${fh} exists. Remove it first to re-init.`);let l=await g0(o.rootBase,r),c=r==="global"?l.filter(_=>NU.includes(_)):l,m=r==="global"?NU:void 0,p=[],u,f=0;if(c.length>0)if(t.yes){for(let _ of c){let S=w5[_];if(!S)continue;let I=await S(o.rootBase,r);for(let b of I)p.push({from:relative(o.rootBase,b.fromPath).replaceAll("\\","/"),to:b.toPath.replaceAll("\\","/")});}f=c.length,await y0(o.canonicalDir),u="gap-fill",await L(i,Vg(c,m));}else await II(o.canonicalDir),u="full",await L(i,Vg([],m));else await II(o.canonicalDir),u="full",await L(i,Vg([],m));let g=join(o.configDir,WI);await L(g,u0);let h=false;r==="project"&&(h=await zg(e,E5));let R=n?await pl(e):void 0;return {exitCode:0,data:{scope:r,configFile:fh,localConfigFile:WI,detectedConfigs:c,imported:p,importedToolCount:f,scaffoldType:u,gitignoreUpdated:h,lessons:R}}}s(vU,"runInit");ne();function MU(e){let{data:t}=e;if(t.lessonsOnly===true&&t.lessons!==void 0){FU(t.lessons),y.info("Run 'agentsmesh generate' to project the new lessons rule to every target.");return}if(t.detectedConfigs.length>0&&y.info(`Found existing configurations: ${t.detectedConfigs.join(", ")}`),t.detectedConfigs.length>0&&t.imported.length===0&&y.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),t.imported.length>0){y.info("Auto-importing existing configurations (--yes)...");for(let n of t.imported)y.success(` ${n.from} \u2192 ${n.to}`);y.info(`Imported ${t.imported.length} file(s) from ${t.importedToolCount} tool(s).`);}let r=t.imported.length>0&&t.detectedConfigs.length>0?` (targets: ${t.detectedConfigs.join(", ")})`:"";y.success(`Created ${t.configFile}${r}`),y.success(`Created ${t.localConfigFile}`),t.gitignoreUpdated&&y.success("Updated .gitignore"),t.lessons!==void 0&&FU(t.lessons);}s(MU,"renderInit");function FU(e){let t=process.cwd(),r=s(o=>relative(t,o).replaceAll("\\","/"),"rel");for(let o of e.created)y.success(` Created ${r(o)}`);for(let o of e.updated)y.success(` Refreshed ${r(o)} (managed \u2014 synced to the current manual)`);for(let o of e.skipped)y.info(` Kept ${r(o)} (already current)`);e.rootRuleUpdated?y.success(" Injected the Lessons ritual block into .agentsmesh/rules/_root.md"):y.info(" .agentsmesh/rules/_root.md already carries the current Lessons block"),e.gitignoreUpdated&&y.success(" Added .agentsmesh/lessons/recall-log.jsonl to .gitignore (opt-in telemetry stays out of git)"),e.recallHookInjected&&y.success(" Wired the PostToolUse recall hook into .agentsmesh/hooks.yaml (deterministic recall on hook-capable targets)"),y.success("Lessons subsystem ready (.agentsmesh/lessons/)."),y.info(" Run 'agentsmesh generate' to sync the ritual into every target."),y.info("");let n=e.created.some(o=>o.replaceAll("\\","/").endsWith("lessons.json"));y.info(n?" The graph starts empty and grows as agents capture failures. Try the loop:":" Recall + capture loop:"),y.info(' capture: agentsmesh lessons add "<rule>" --topic <id> --new-topic --topic-summary "<line>" --trigger-file "<glob>"'),y.info(" recall: agentsmesh lessons query --file <path> --cmd <command>"),y.info(" inspect: agentsmesh lessons journal | lessons show <id> | lessons validate"),y.info(" Optional: export AGENTSMESH_LESSONS_TELEMETRY=1 to measure recall cost via `lessons stats`.");}s(FU,"renderLessons");tt();xe();var O5=Object.fromEntries(Pe.map(e=>[e.id,{importFrom:e.generators.importFrom,emptyImportMessage:e.emptyImportMessage,lintRules:e.lintRules,lint:e.lint,capabilities:e.capabilities}]));function gh(e){return O5[e]}s(gh,"getTargetCatalogEntry");rt();Vr();Um();var N5={type:"stdio",command:"npx",args:["-y","agentsmesh","mcp"]};function v5(e){return e.mcpServers.agentsmesh!==void 0?false:(e.mcpServers.agentsmesh=N5,true)}s(v5,"injectAgentsmeshEntry");async function HI(e){let t=resolve(e,".agentsmesh/mcp.json");try{let r;try{r=await Xr(t)??{mcpServers:{}};}catch{r={mcpServers:{}};}if(!v5(r))return !1;let n=JSON.stringify(r,null,2)+`
|
|
373
|
+
`;await mkdir(dirname(t),{recursive:!0});let o=`${t}.tmp.${process.pid}.${Date.now()}`;return await writeFile(o,n,"utf8"),await rename(o,t),!0}catch(r){return process.stderr.write(`[agentsmesh] warning: could not seed agentsmesh MCP server entry into mcp.json: ${r instanceof Error?r.message:String(r)}
|
|
374
|
+
`),false}}s(HI,"seedAgentsmeshMcpEntry");Ue();function $U(e,t){return e.map(r=>({from:relative(t,r.fromPath).replaceAll("\\","/"),to:r.toPath}))}s($U,"mapResults");async function GU(e,t){if(t!=="project")return;let r=join(e,".agentsmesh/rules/_root.md");if(!existsSync(r))return;let n=readFileSync(r,"utf8");(n.includes(Hm)||/^## Lessons \(/m.test(n))&&await pl(e);}s(GU,"ensureImportedLessonsSubsystem");async function jU(e,t){let r=t??process.cwd(),n=e.from;if(typeof n!="string"||!n)throw new Error("--from is required. Example: agentsmesh import --from claude-code");let o=n.toLowerCase().trim(),i=e.global===true?"global":"project";if(Vt(o)){let p=Xi(r,i),f=await gh(o).importFrom(p.rootBase,{scope:i});return f.length>0&&(await HI(p.rootBase),await GU(p.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:$U(f,p.rootBase)}}}let a,l;try{({config:a,context:l}=await ye(r,i));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${je.join(", ")}.`)}await He(a,r);let c=re(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...je,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:i});return m.length>0&&(await HI(l.rootBase),await GU(l.rootBase,i)),{exitCode:0,data:{scope:i,target:o,files:$U(m,l.rootBase)}}}s(jU,"runImport");tt();Oo();function hh(e){let t=[],r={new:0,updated:0,unchanged:0,deleted:0};for(let n of e){if(n.status==="unchanged"){r.unchanged++;continue}if(n.status==="created"){r.new++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,"",n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}if(n.status==="updated"&&n.currentContent!==void 0){r.updated++;let o=createTwoFilesPatch(`${n.path} (current)`,`${n.path} (generated)`,n.currentContent,n.content,void 0,void 0,{context:3});t.push({path:n.path,patch:o});continue}}return {diffs:t,summary:r}}s(hh,"computeDiff");function yh(e){return `${e.new} files would be created, ${e.updated} updated, ${e.unchanged} unchanged, ${e.deleted} deleted`}s(yh,"formatDiffSummary");Vr();async function BU(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(g=>g.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),m=await zr({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:i});if(m.length===0)return {exitCode:0,data:{files:[],patches:[],summary:{created:0,updated:0,unchanged:0,deleted:0}}};let{diffs:p,summary:u}=hh(m);return {exitCode:0,data:{files:m.filter(g=>g.status!=="unchanged"&&g.status!=="skipped").map(g=>({path:g.path,target:g.target,status:g.status})),patches:p.map(g=>({path:g.path,patch:g.patch})),summary:{created:u.new,updated:u.updated,unchanged:u.unchanged,deleted:u.deleted}}}}s(BU,"runDiff");tt();Oo();A();rt();ea();Oe();var j5=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:s(e=>{let t=e.permissions;if(!t)return false;let r=t.ask?.length??0;return t.allow.length+t.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:s(e=>{let t=e.hooks;return t?Object.values(t).some(r=>Array.isArray(r)&&r.length>0):false},"hasContent")},{canonicalKey:"mcp",capabilityKey:"mcp",featureFlag:"mcp",file:".agentsmesh/mcp.json",label:"MCP servers",hasContent:s(e=>{let t=e.mcp;return t?Object.keys(t.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:s(e=>e.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:s(e=>e.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:s(e=>e.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:s(e=>e.ignore.length>0,"hasContent")}];function KU(e){let t=new Set(e.enabledFeatures),r=[];for(let n of j5)!t.has(n.featureFlag)||!n.hasContent(e.canonical)||Qr(e.capabilities[n.capabilityKey]).level!=="none"||r.push(v(n.file,e.target,`${e.target} does not support ${n.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}s(KU,"lintSilentFeatureDrops");Oe();var U5=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function B5(e){let r=e.match(U5)?.groups?.path;return typeof r=="string"?r:null}s(B5,"extractScriptToken");function WU(e){if(e.hasScriptProjection)return [];let t=e.canonical.hooks;if(!t)return [];let r=[];for(let n of Object.values(t))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let i=B5(o.command);i&&r.push(v(".agentsmesh/hooks.yaml",e.target,`${e.target} hook command references script "${i}"; agentsmesh does not copy hook scripts into ${e.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}s(WU,"lintHookScriptReferences");Oe();function HU(e){if(e.preservesManualActivation)return [];let t=[];for(let r of e.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(e.target)||t.push(v(r.source,e.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${e.target} loads every rule unconditionally. The rule will become always-on for ${e.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return t}s(HU,"lintRuleScopeInversion");var W5=new Set([".git","node_modules"]),H5=2e5;function Gi(e){let t=new Set;try{let r=[e];for(;r.length>0;){let n=r.pop();for(let o of readdirSync(n,{withFileTypes:!0}))if(o.isDirectory())W5.has(o.name)||r.push(join(n,o.name));else if(o.isFile()&&(t.add(cl(e,join(n,o.name))),t.size>H5))return t}}catch{return null}return t}s(Gi,"listProjectFiles");var J5="lessons",JU=".agentsmesh/lessons/lessons.json",YU=".agentsmesh/rules/_root.md",Y5=/^## Lessons \(/m;function XU(e,t){if(t==="global")return [];let r=Ge(e);if(!existsSync(r.graph))return [];let n=[],o;try{o=lu(e);}catch(m){return [zI("error",JU,`lessons.json failed to load: ${m instanceof Error?m.message:String(m)}`)]}let i=Gi(e)??void 0,a=xo(o,{knownPaths:i});for(let m of a.findings)n.push(zI(m.level,JU,`[${m.code}] ${m.message}`));let l=join(e,YU),c=existsSync(l)?readFileSync(l,"utf8"):"";return Y5.test(c)||n.push(zI("warning",YU,'lessons procedural rule ("## Lessons (...)") is missing from _root.md \u2014 recall/capture enforcement will not fire.')),n}s(XU,"lintLessonsSubsystem");function zI(e,t,r){return {level:e,file:t,target:J5,message:r}}s(zI,"diag");var X5=["node_modules",".git","dist","coverage",".agentsmesh"];async function q5(e){return (await U(e)).filter(n=>{let o=relative(e,n);return !X5.some(i=>o.includes(`/${i}/`)||o.startsWith(`${i}/`))}).map(n=>relative(e,n))}s(q5,"getProjectFiles");async function Rh(e,t,r,n,o={}){let i=o.scope??"project",a=[...e.targets,...e.pluginTargets??[]],l=n?a.filter(_=>n.includes(_)):a,c=e.features.includes("rules"),m=e.features.includes("commands"),p=e.features.includes("mcp"),u=e.features.includes("permissions"),f=e.features.includes("hooks"),g=[...XU(r,i)],h=i==="global"?[]:await q5(r);for(let _ of l){let S=re(_),I=Vt(_)?gh(_):S;I?.capabilities&&g.push(...KU({target:_,capabilities:I.capabilities,canonical:t,enabledFeatures:e.features})),f&&g.push(...WU({target:_,canonical:t,hasScriptProjection:S?.postProcessHookOutputs!==void 0})),c&&g.push(...HU({target:_,canonical:t,preservesManualActivation:S?.preservesManualActivation===true})),c&&I?.lintRules&&g.push(...I.lintRules(t,r,h,{scope:i})),S?.generators.lint&&g.push(...S.generators.lint(t));let b={scope:i};m&&I?.lint?.commands&&g.push(...I.lint.commands(t,b)),p&&I?.lint?.mcp&&g.push(...I.lint.mcp(t,b)),u&&I?.lint?.permissions&&g.push(...I.lint.permissions(t,b)),f&&I?.lint?.hooks&&g.push(...I.lint.hooks(t,b));}let R=g.some(_=>_.level==="error");return {diagnostics:g,hasErrors:R}}s(Rh,"runLint");Vr();async function QU(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=e.targets,i=typeof o=="string"&&o?o.split(",").map(u=>u.trim()).filter(Boolean):void 0,{config:a,context:l}=await ye(r,n);await He(a,r);let{canonical:c}=await Ft(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:p}=await Rh(a,c,l.configDir,i,{scope:n});return {exitCode:p?1:0,data:{diagnostics:m.map(u=>({level:u.level,file:u.file,target:u.target,message:u.message})),summary:{errors:m.filter(u=>u.level==="error").length,warnings:m.filter(u=>u.level==="warning").length}}}}s(QU,"runLintCmd");ne();function ZU(e){let{data:t}=e;if(t.diagnostics.length===0){y.success("All checks passed.");return}let r=t.diagnostics.filter(a=>a.level==="error"),n=t.diagnostics.filter(a=>a.level==="warning");for(let a of r)y.error(`${a.file} (${a.target}): ${a.message}`);for(let a of n)y.warn(`${a.file} (${a.target}): ${a.message}`);let o=t.summary.errors,i=t.summary.warnings;y.info(`${o} error${o!==1?"s":""}, ${i} warning${i!==1?"s":""}`);}s(ZU,"renderLint");ne();function eB(e){let{data:t}=e;if(!t.hasLock){y.error("Not initialized for collaboration. Run 'agentsmesh generate' first.");return}if(t.inSync){y.success("Lock file is in sync.");return}let r=new Set(t.lockedViolations);y.error("Conflict detected:");for(let n of t.extendsModified)y.error(` extend "${n}" was modified`);for(let n of t.modified){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was modified${o}`);}for(let n of t.added){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was added${o}`);}for(let n of t.removed){let o=r.has(n)?" [LOCKED]":"";y.error(` ${n} was removed${o}`);}y.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state.");}s(eB,"renderCheck");ne();function tB(e){let{data:t}=e;if(t.files.length===0){y.info(`Nothing to import from ${t.target}.`);return}for(let n of t.files)y.success(`${n.from} \u2192 ${n.to}`);let r=t.scope==="global"?" --global":"";y.info(`Imported ${t.files.length} file(s). Run 'agentsmesh generate${r}' to sync to other tools.`);}s(tB,"renderImport");ne();function rB(e){let{summary:t}=e.data;if(t.created+t.updated+t.unchanged+t.deleted===0){y.info("No files to generate (no root rule or rules feature disabled).");return}for(let n of e.data.patches)process.stdout.write(n.patch);y.info(yh({new:t.created,updated:t.updated,unchanged:t.unchanged,deleted:t.deleted}));}s(rB,"renderDiff");ne();function nB(e){if(!e.data.hadConflict){y.info("No conflicts to resolve.");return}y.success("Lock file conflict resolved.");}s(nB,"renderMerge");nu();su();tt();Oo();nu();su();ne();var e6=300;function t6(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(t6,"normalizeWatchPath");function r6(e,t){let r=t6(relative(e,t));return r===""?true:r===".lock"||r===".lock.tmp"||r===".generate.lock"||r.endsWith("/.lock")||r.endsWith("/.lock.tmp")||r.endsWith("/.generate.lock")||r.includes("/.generate.lock/")||r.startsWith(".generate.lock/")}s(r6,"shouldIgnoreWatchPath");function n6(e,t,r,n,o,i,a,l,c){return JSON.stringify({features:e,rulesCount:t,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:i,permissionsCount:a,hooksCount:l,ignoreCount:c})}s(n6,"featureFingerprint");async function sB(e,t,r={}){let n=t??process.cwd(),o=e.global===true?"global":"project",{context:i}=await ye(n,o),a=[i.canonicalDir,join(i.configDir,"agentsmesh.yaml"),join(i.configDir,"agentsmesh.local.yaml")],l=null,c=null,m=false,p=null,u=s(async()=>{if(m)return;l=null;let{config:_,context:S}=await ye(n,o),{canonical:I}=await Ft(_,S.configDir,{},S.canonicalDir),b=I.mcp?Object.keys(I.mcp.mcpServers).length:0,P=I.permissions?I.permissions.allow.length+I.permissions.deny.length:0,T=I.hooks?Object.values(I.hooks).reduce((M,te)=>M+(Array.isArray(te)?te.length:0),0):0,W=I.ignore.length,$=n6(_.features,I.rules.length,I.commands.length,I.agents.length,I.skills.length,b,P,T,W),Y=c!==null&&c!==$;if(c=$,m)return;let ee=await qc(e,n,{printMatrix:false});if(Qc(ee),!m){if(Y){let M=await ru(e,n);ou(M,{verbose:e.verbose===true});}else y.info("Regenerated.");r.onCycle?.({featuresChanged:Y});}},"run"),f=s(()=>{let _=u().catch(S=>{if(!m){let I=S instanceof Error?S.message:String(S);y.error(I);}}).finally(()=>{p===_&&(p=null);});p=_;},"scheduleRun"),g=s(()=>{m||(l&&clearTimeout(l),l=setTimeout(f,e6));},"schedule"),h=r.usePolling??process.platform==="win32",R=Z5.watch(a,{ignoreInitial:true,usePolling:h,...h&&r.pollIntervalMs!==void 0?{interval:r.pollIntervalMs}:{}});return R.on("all",(_,S)=>{r6(i.canonicalDir,S)||g();}),await new Promise((_,S)=>{R.once("ready",_),R.once("error",S);}),y.info(o==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),p=u(),await p,p=null,{stop:s(async()=>{m=true,l&&(clearTimeout(l),l=null),await R.close(),p&&await p;},"stop")}}s(sB,"runWatch");tt();od();async function _h(e){let{config:t,configDir:r,canonicalDir:n}=e,o=await Fg(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let i=await vs(n),a=await Pl(t,r),l=a.length>0?await Vc(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(i)),p=[],u=[],f=[];for(let S of c){let I=i[S];I===void 0?f.push(S):I!==o.checksums[S]&&p.push(S);}for(let S of m)c.has(S)||u.push(S);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let S of g)l[S]!==o.extends[S]&&h.push(S);let R=$g(o.checksums,i,t.collaboration?.lock_features??[]);return {inSync:p.length===0&&u.length===0&&f.length===0&&h.length===0,hasLock:true,modified:p,added:u,removed:f,extendsModified:h,lockedViolations:R}}s(_h,"checkLockSync");Vr();async function iB(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n);await He(o,r);let a=await _h({config:o,configDir:i.configDir,canonicalDir:i.canonicalDir});return a.hasLock?{exitCode:a.inSync?0:1,data:{hasLock:true,inSync:a.inSync,modified:[...a.modified],added:[...a.added],removed:[...a.removed],extendsModified:[...a.extendsModified],lockedViolations:[...a.lockedViolations]}}:{exitCode:1,data:{hasLock:false,inSync:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]}}}s(iB,"runCheck");tt();A();od();var s6=".lock",i6="<<<<<<<";async function VI(e){let t=join(e,s6),r=await k(t);return r===null?false:r.includes(i6)}s(VI,"hasLockConflict");async function lB(e,t,r){if(!await VI(e))throw new Error("No conflict to resolve.");let o=await vs(e),i=dirname(e),a=r?await Pl(r,i):[],l=a.length>0?await Vc(a):{},c=await Gg(join(e,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Mg(e,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:t,checksums:o,extends:l,packs:c});}s(lB,"resolveLockConflict");async function cB(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",{config:o,context:i}=await ye(r,n),a=i.canonicalDir;return await VI(a)?(await lB(a,Ji(),o),{exitCode:0,data:{hadConflict:true,resolved:true}}):{exitCode:0,data:{hadConflict:false,resolved:false}}}s(cB,"runMerge");tt();xg();function mB(e){let t=typeof e.path=="string"?e.path.trim():void 0,r=typeof e.target=="string"?e.target.trim():void 0,n=typeof e.as=="string"?e.as.trim():void 0,o=e["accept-elevated"]===true;return {sync:e.sync===true,dryRun:e["dry-run"]===true,force:e.force===true,useExtends:e.extends===true,all:e.all===true,forceFreshMaterialize:e.forceFreshMaterialize===true,explicitPath:t||void 0,explicitTarget:r||void 0,explicitAs:n?Hc.parse(n):void 0,nameOverride:typeof e.name=="string"?e.name.trim():"",acceptHooks:o||e["accept-hooks"]===true,acceptPermissions:o||e["accept-permissions"]===true,acceptMcp:o||e["accept-mcp"]===true}}s(mB,"readInstallFlags");var c6=".install.lock";async function mm(e,t={}){return await mkdir(e,{recursive:true}),Yc(join(e,c6),{...t,label:"install lock"})}s(mm,"acquireInstallLock");tt();A();Fm();var u6=promisify(execFile);function Sh(e,t){if(e.startsWith("-"))throw new Error(`agentsmesh refuses ${t} starting with "-" (option-injection guard): ${e}`)}s(Sh,"ensureNotFlag");async function JI(e){let{stdout:t}=await u6("git",e,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return t.trim()}s(JI,"runGit");async function pB(){try{return await JI(["--version"]),!0}catch{return false}}s(pB,"isGitAvailable");async function d6(e,t){Sh(e,"remote-url"),Sh(t,"ref");let r=[t,`refs/heads/${t}`,`refs/tags/${t}`],n;for(let o of r)try{let a=(await JI(["ls-remote",e,o])).split(`
|
|
375
|
+
`).map(c=>c.trim()).find(c=>c.length>0);if(!a)continue;let l=a.split(/\s+/)[0];if(l&&/^[0-9a-f]{40}$/i.test(l))return l}catch(i){n=i;}throw new Error(`Could not resolve ref "${t}" for ${e}: ${n instanceof Error?n.message:String(n)}`)}s(d6,"gitLsRemoteResolve");async function kh(e,t){Sh(t,"remote-url");let r=e===""?"HEAD":e;if(Sh(r,"ref"),/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await JI(["ls-remote",t,"HEAD"])).split(`
|
|
376
|
+
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${t}`);let i=o.split(/\s+/)[0];if(!i||!/^[0-9a-f]{40}$/i.test(i))throw new Error(`Invalid ls-remote HEAD line for ${t}`);return i.toLowerCase()}return d6(t,r)}s(kh,"resolveRemoteRefForInstall");async function uB(e){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};let t=e.gitRemoteUrl;if(!t)throw new Error("Internal error: missing git remote URL");let r=await kh(e.rawRef||"HEAD",t);if(e.kind==="github"){let l=`github:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Tl(l,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(e.kind==="gitlab"){let l=`gitlab:${e.org}/${e.repo}@${r}`;return {resolvedPath:(await Tl(l,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,i=`git+${(e.gitPlusBase??t).split("#")[0]}#${n}`;return {resolvedPath:(await Tl(i,"install",{cacheDir:Jt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:i,version:r}}s(uB,"fetchInstallSource");async function dB(e,t){if(e.kind==="local")return {resolvedPath:e.localRoot,sourceForYaml:e.localSourceForYaml};try{let r=await uB(e);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let n=r instanceof Error?r.message:String(r),o=new Error(`Failed to fetch from ${t}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}s(dB,"resolveInstallResolvedPath");function Su(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("tree");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a?null:{org:o,repo:i,ref:a,path:l||""}}catch{return null}}s(Su,"parseGithubTreeUrl");function ku(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("blob");if(n<2||n+1>=r.length)return null;let o=r[0],i=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!i||!a||!l?null:{org:o,repo:i,ref:a,path:l}}catch{return null}}s(ku,"parseGithubBlobUrl");function Iu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="tree")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i?null:{namespace:m,project:c,ref:i,path:a||""}}catch{return null}}s(Iu,"parseGitlabTreeUrl");function Lu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean),n=r.indexOf("-");if(n<0||r[n+1]!=="blob")return null;let o=n+1;if(o+1>=r.length)return null;let i=r[o+1],a=r.slice(o+2).join("/"),l=r.slice(0,n);if(l.length<2)return null;let c=l[l.length-1],m=l.slice(0,-1).join("/");return !m||!c||!i||!a?null:{namespace:m,project:c,ref:i,path:a}}catch{return null}}s(Lu,"parseGitlabBlobUrl");var f6=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Cu(e){try{let t=new URL(e);if(t.hostname!=="github.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.length>2||f6.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}s(Cu,"parseGithubRepoUrl");function Eu(e){try{let t=new URL(e);if(t.hostname!=="gitlab.com")return null;let r=t.pathname.split("/").filter(Boolean).map(i=>i.replace(/\.git$/i,""));if(r.length<2||r.includes("-"))return null;let n=r[r.length-1],o=r.slice(0,-1).join("/");return !o||!n?null:{namespace:o,project:n}}catch{return null}}s(Eu,"parseGitlabRepoUrl");function wu(e){let t=e.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return t?{org:t[1],repo:t[2].replace(/\.git$/i,"")}:null}s(wu,"parseGitSshGithub");function bu(e){let t=e.match(/^git@gitlab\.com:(.+?)(?:\.git)?$/i);if(!t)return null;let n=t[1].replace(/\.git$/i,"").split("/").filter(Boolean);if(n.length<2)return null;let o=n[n.length-1];return {namespace:n.slice(0,-1).join("/"),project:o}}s(bu,"parseGitSshGitlab");A();var y6=/^[A-Za-z]:[\\/]/,R6=/^[A-Za-z]:\//;function fB(...e){return e.some(t=>t.includes("\\")||y6.test(t))?win32:posix}s(fB,"pathApiFor");function Au(e){return e.replace(/\\/g,"/")}s(Au,"toPosixPath");function Ou(e){return Au(e).replace(/^\/+|\/+$/g,"")}s(Ou,"normalizeInstallPathField");function Ih(e){let t=Au(e);return t===""||t==="."||t==="./."?".":t.startsWith("./")||t.startsWith("../")||t.startsWith("/")||R6.test(t)?t:`./${t}`}s(Ih,"normalizeLocalSourceForYaml");function ji(e){return {...e,source:e.source_kind==="local"?Ih(e.source):e.source,...e.path!==void 0?{path:Ou(e.path)}:{},...e.paths!==void 0?{paths:e.paths.map(t=>Ou(t))}:{}}}s(ji,"normalizePersistedInstallPaths");function gB(e,t,r){let n=fB(e,t),o=n.normalize(e),i=n.normalize(t),a=Ou(r),l=`${n.sep}.agentsmesh${n.sep}`,c=o.indexOf(l);if(c>=0){let p=o.slice(0,c),u=o.slice(c+l.length),f=Ou(u),g=Au(n.relative(i,p))||".";return {kind:"local",rawRef:"",pathInRepo:a||f.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:p,localSourceForYaml:Ih(g)}}let m=Au(n.relative(i,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Ih(m)}}s(gB,"localParsedFromAbsPath");async function YI(e,t,r){let n=e.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let p=n.lastIndexOf("#"),u=p<0?n:n.slice(0,p),f=p<0?"HEAD":n.slice(p+1),g=u.slice(4);return {kind:"git",rawRef:f,gitPlusBase:g,gitRemoteUrl:g,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let p=Su(n)??ku(n);if(p)return {kind:"github",rawRef:p.ref,org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o||p.path};let u=Cu(n);if(u)return {kind:"github",rawRef:"HEAD",org:u.org,repo:u.repo,gitRemoteUrl:`https://github.com/${u.org}/${u.repo}.git`,pathInRepo:o};let f=Iu(n)??Lu(n);if(f)return {kind:"gitlab",rawRef:f.ref,org:f.namespace,repo:f.project,gitRemoteUrl:`https://gitlab.com/${f.namespace}/${f.project}.git`,pathInRepo:o||f.path};let g=Eu(n);if(g)return {kind:"gitlab",rawRef:"HEAD",org:g.namespace,repo:g.project,gitRemoteUrl:`https://gitlab.com/${g.namespace}/${g.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let p=wu(n);if(!p)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:p.org,repo:p.repo,gitRemoteUrl:`https://github.com/${p.org}/${p.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let p=bu(n);if(!p)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let p=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!p)throw new Error(`Invalid SSH git URL: ${n}`);let u=p[1],f=p[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${u}/${f}.git`,pathInRepo:o}}let i=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(i){let p=i[1],u=i[2];return {kind:"github",rawRef:i[3],org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let a=n.match(/^github:([^/]+)\/([^/@]+)$/);if(a){let p=a[1],u=a[2];return {kind:"github",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://github.com/${p}/${u}.git`,pathInRepo:o}}let l=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(l){let p=l[1],u=l[2];return {kind:"gitlab",rawRef:l[3],org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let c=n.match(/^gitlab:(.+)\/([^/@]+)$/);if(c){let p=c[1],u=c[2];return {kind:"gitlab",rawRef:"HEAD",org:p,repo:u,gitRemoteUrl:`https://gitlab.com/${p}/${u}.git`,pathInRepo:o}}let m=resolve(t,n);if(!await j(m))throw new Error(`Path does not exist: ${m}`);return gB(m,t,o)}s(YI,"parseInstallSource");function xu(e){let t=e.trim();if(t.startsWith("local:"))return {kind:"local"};if(t.startsWith("git+")){let a=t.lastIndexOf("#"),l=a<0?t:t.slice(0,a),c=a<0?"HEAD":t.slice(a+1);return {kind:"git",remoteUrl:l.slice(4),ref:c}}let r=t.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(r!==null){let a=r[1],l=r[2],c=r[3];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:c}}let n=t.match(/^github:([^/]+)\/([^/@]+)$/);if(n!==null){let a=n[1],l=n[2];return {kind:"github",remoteUrl:`https://github.com/${a}/${l}.git`,ref:"HEAD"}}let o=t.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(o!==null){let a=o[1],l=o[2],c=o[3];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:c}}let i=t.match(/^gitlab:(.+)\/([^/@]+)$/);if(i!==null){let a=i[1],l=i[2];return {kind:"gitlab",remoteUrl:`https://gitlab.com/${a}/${l}.git`,ref:"HEAD"}}if(t.startsWith("https://")||t.startsWith("http://")){let a=Su(t)??ku(t);if(a!==null)return {kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:a.ref};let l=Cu(t);if(l!==null)return {kind:"github",remoteUrl:`https://github.com/${l.org}/${l.repo}.git`,ref:"HEAD"};let c=Iu(t)??Lu(t);if(c!==null)return {kind:"gitlab",remoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,ref:c.ref};let m=Eu(t);return m!==null?{kind:"gitlab",remoteUrl:`https://gitlab.com/${m.namespace}/${m.project}.git`,ref:"HEAD"}:{kind:"git",remoteUrl:t,ref:"HEAD"}}if(t.startsWith("git@github.com:")){let a=wu(t);return a===null?null:{kind:"github",remoteUrl:`https://github.com/${a.org}/${a.repo}.git`,ref:"HEAD"}}if(t.startsWith("git@gitlab.com:")){let a=bu(t);return a===null?null:{kind:"gitlab",remoteUrl:`https://gitlab.com/${a.namespace}/${a.project}.git`,ref:"HEAD"}}if(t.startsWith("git@")){let a=t.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(a===null)return null;let l=a[1],c=a[2].replace(/\.git$/i,"");return {kind:"git",remoteUrl:`ssh://git@${l}/${c}.git`,ref:"HEAD"}}return null}s(xu,"parseSourceUrl");Pk();function Tn(e){let t=[];return e.skills.length&&t.push("skills"),e.rules.length&&t.push("rules"),e.commands.length&&t.push("commands"),e.agents.length&&t.push("agents"),e.mcp!==null&&t.push("mcp"),e.permissions!==null&&t.push("permissions"),e.hooks!==null&&t.push("hooks"),e.ignore.length&&t.push("ignore"),t}s(Tn,"featuresFromCanonical");async function Lh(e,t={}){let{sliceRoot:r,implicitPick:n}=await Cg(e),{canonical:o,cleanup:i}=await Eg(r,{...t,enableTargetEntityMappers:true});return {canonical:o,features:Tn(o),implicitPick:n,cleanup:i}}s(Lh,"discoverFromContentRoot");function hB(e){return e.description.trim()?{skill:e,ok:true}:{skill:e,ok:false,reason:"missing description in frontmatter"}}s(hB,"validateSkill");function yB(e){return e.description.trim()?{rule:e,ok:true}:{rule:e,ok:false,reason:"missing description in frontmatter"}}s(yB,"validateRule");function RB(e){return e.description.trim()?{command:e,ok:true}:{command:e,ok:false,reason:"missing description in frontmatter"}}s(RB,"validateCommand");function _B(e){return e.description.trim()?{agent:e,ok:true}:{agent:e,ok:false,reason:"missing description in frontmatter"}}s(_B,"validateAgent");function ft(e){return basename(e.source).replace(/\.md$/i,"")}s(ft,"ruleSlug");function k6(e){if(!e)return;let t=[];return e.skills!==void 0&&t.push("skills"),e.rules!==void 0&&t.push("rules"),e.commands!==void 0&&t.push("commands"),e.agents!==void 0&&t.push("agents"),t.length>0?t:void 0}s(k6,"featuresFromImplicitPick");function um(e,t){let{implicitPick:r}=t,n=t.scopedFeatures??k6(r);if(!r&&!n)return e;let o=new Set(n??[]),i={...e,mcp:!n||o.has("mcp")?e.mcp:null,permissions:!n||o.has("permissions")?e.permissions:null,hooks:!n||o.has("hooks")?e.hooks:null,ignore:!n||o.has("ignore")?e.ignore:[]};if(r?.skills!==void 0){let a=new Set(r.skills);i={...i,skills:r.skills.length===0?[]:i.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(i={...i,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);i={...i,rules:r.rules.length===0?[]:i.rules.filter(l=>a.has(ft(l)))};}else n&&!o.has("rules")&&(i={...i,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);i={...i,commands:r.commands.length===0?[]:i.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(i={...i,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);i={...i,agents:r.agents.length===0?[]:i.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(i={...i,agents:[]});return i}s(um,"narrowDiscoveredForInstallScope");Gk();async function SB(e,t,r,n,o={}){let i=await Og(e,t,{preferredSkillNames:t==="skills"?n?.skills:void 0}),{canonical:a,cleanup:l}=await Lh(i.discoveryRoot,o),c=um(a,{scopedFeatures:[t]});return {prep:{yamlTarget:r,scopedFeatures:[t],cleanup:s(async()=>{await Promise.allSettled([l(),i.cleanup()]);},"combinedCleanup")},narrowed:c,discoveredFeatures:Tn(c)}}s(SB,"resolveManualDiscoveredForInstall");vo();kk();A();xe();var I6=(()=>{let e=new Map;for(let r of Pe){let n=r.project.managedOutputs,o=[...n?.dirs??[],...n?.files??[],...r.detectionPaths];for(let i of o){let a=i.replace(/\/$/,""),l=e.get(a)??new Set;l.add(r.id),e.set(a,l);}}let t=[];for(let[r,n]of e){if(n.size!==1)continue;let[o]=[...n];t.push({prefix:r,target:o});}return t.sort((r,n)=>n.prefix.length-r.prefix.length)})();function L6(e){return e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}s(L6,"norm");function Ch(e){let t=L6(e);if(t){for(let{prefix:r,target:n}of I6)if(t===r||t.startsWith(`${r}/`))return n}}s(Ch,"targetHintFromNativePath");function XI(e,t){return Ch(e)===t}s(XI,"pathSupportsNativePick");function kB(e,t){if(!e||!t)return;let r=Ch(t);if(r&&r!==e)throw new Error(`--target "${e}" does not match the install path (native path suggests "${r}"). Omit --target to auto-detect, or point at a subtree for that target.`)}s(kB,"validateTargetMatchesPath");function IB(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)>0}s(IB,"extendPickHasArrays");rt();A();X_();async function w6(e,t,r,n){if(n.kind==="skillDir")return Cf(e);if(n.kind==="firstSegment"){let c=t.slice(r.prefix.length).split("/").filter(Boolean)[0];return c?[c]:[]}let o=await U(e),i=n.suffix,a=i.toLowerCase();return [...new Set(o.filter(l=>l.toLowerCase().endsWith(a)).map(l=>basename(l,i)))].sort()}s(w6,"namesForStrategy");async function LB(e,t,r){let n=re(r)?.nativeInstall;if(!n)return {};let o=t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(n.inferPick)return n.inferPick(e,o);for(let i of n.pickPaths??[]){if(o!==i.prefix&&!o.startsWith(i.prefix))continue;let a=join(e,...o.split("/")),l=await w6(a,o,i,i.strategy);return l.length?{[i.feature]:l}:{}}return {}}s(LB,"inferImplicitPickFromNativePath");function CB(e){return (e.commands?.length??0)+(e.rules?.length??0)+(e.skills?.length??0)+(e.agents?.length??0)===0}s(CB,"isImplicitPickEmpty");Ik();function Tu(e){return e.replace(/\\/g,"/").replace(/\/+$/,"")}s(Tu,"normalizePath");function T6(e,t){let r=Tu(e),n=Tu(t);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}s(T6,"overlapsPath");function Eh(e,t){let r=e??[];return r.includes(t)||r.push(t),r}s(Eh,"addUnique");async function P6(e){let t=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(t,"repo"),n=s(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup");try{return await cp$1(e,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}s(P6,"makeStageRoot");function D6(e,t){let r;for(let o of e){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Eh(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let i=Tu(relative(join(t,".agentsmesh","commands"),join(t,o.toPath)));r={...r,commands:Eh(r?.commands,i.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Eh(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Tu(relative(join(t,".agentsmesh","skills"),join(t,o.toPath))).split("/")[0];a&&(r={...r,skills:Eh(r?.skills,a)});}}return r&&(r.rules?.length??0)+(r.commands?.length??0)+(r.agents?.length??0)+(r.skills?.length??0)>0?r:void 0}s(D6,"buildPickFromResults");function N6(e,t,r,n){let o=join(t,...Tu(e).split("/")),i=r.filter(a=>T6(o,a.fromPath));if(i.length===0)throw new Error(`No installable native resources found under "${e}" for target "${n}". Try --path "${e}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);return {features:[...new Set(i.map(a=>a.feature))],pick:D6(i,t)}}s(N6,"scopeImportedResults");async function qI(e,t){let{stageRoot:r,cleanup:n}=await P6(e);try{let o=await Xp(r,t);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}s(qI,"stageImportedNativeRepo");async function QI(e,t,r){let n=await qI(e,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...N6(t,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}s(QI,"stageNativeInstallScope");async function OB(e,t,r,n){let o=n.explicitTarget?.trim();o&&fr.parse(o);let i=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");kB(o,i);let a=join(e,".agentsmesh"),l=await j(a),c=i?Ch(i):void 0,p=!l&&!o&&(!i||c!==void 0)?await fg(e)??void 0:void 0;if(!o&&c&&p&&c!==p)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${p}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??p,f=!!i&&!!u&&!i.startsWith(".agentsmesh");if(!l&&u){if(f){let b=await QI(e,i,u);return {discoveryRoot:b.stageRoot,implicitPick:b.pick,scopedFeatures:b.features,yamlTarget:u,importHappened:true,cleanup:b.cleanup}}let I=await qI(e,u);return {discoveryRoot:i?join(I.stageRoot,i):I.stageRoot,yamlTarget:u,importHappened:true,cleanup:I.cleanup}}let g;l?i?u&&XI(i,u)?g=e:g=t:g=e:g=t;let h,R,_;if(f&&u){let I=await QI(e,i,u);g=I.stageRoot,h=I.pick,R=I.features,_=I.cleanup;}else if(g===e&&i&&u&&XI(i,u)&&(h=await LB(e,i,u),CB(h)))throw new Error(`No installable native resources found under "${i}" for target "${u}". Try --path "${i}" without --target so agentsmesh can auto-detect the layout, or use --as <rules|commands|agents|skills> to install the directory as a flat collection.`);let S;return o?S=o:u&&(h&&IB(h)||(R?.length??0)>0)&&(S=u),{discoveryRoot:g,implicitPick:h,scopedFeatures:R,yamlTarget:S,importHappened:_!==void 0,cleanup:_}}s(OB,"prepareInstallDiscovery");async function ZI(e,t,r,n,o={}){let i=await OB(e,t,r,{explicitTarget:n}),{canonical:a,implicitPick:l,cleanup:c}=await Lh(i.discoveryRoot,o),m=i.cleanup,u={...i,cleanup:s(async()=>{await Promise.allSettled([c(),...m?[m()]:[]]);},"mergedCleanup")},f=l??i.implicitPick,g=um(a,{implicitPick:f,scopedFeatures:i.scopedFeatures}),h=Tn(g);return {prep:u,discovered:a,implicitPick:f,narrowed:g,discoveredFeatures:h}}s(ZI,"resolveDiscoveredForInstall");var M6=[".claude-plugin","marketplace.json"];async function $6(e){try{return (await stat(e)).isDirectory()}catch{return false}}s($6,"dirExists");function G6(e){if(typeof e!="string"||e.length===0||e.startsWith("/"))return null;let t=e.replace(/^\.\/+/,"").replace(/\/+$/,"");return t.split("/").some(r=>r==="..")?null:t}s(G6,"normalizeSource");async function xB(e,t,r){let n=join(e,...M6),o;try{o=await readFile(n,"utf-8");}catch{return null}let i;try{i=JSON.parse(o);}catch{return null}if(typeof i!="object"||i===null||!Array.isArray(i.plugins))return null;let a=i.plugins,l=[];for(let c of a){if(typeof c!="object"||c===null)continue;let m=G6(c.source);if(!m)continue;let p=join(e,m);if(!await $6(p))continue;let u=await t(p,m);r(u)&&l.push({path:m,layout:u});}return l}s(xB,"detectMarketplaceSubPacks");async function Pu(e){try{return (await stat(e)).isDirectory()}catch{return false}}s(Pu,"dirExists");async function Ui(e){try{return (await readdir(e,{withFileTypes:!0})).map(r=>({name:r.name,isDir:r.isDirectory(),isFile:r.isFile()}))}catch{return []}}s(Ui,"listDirEntries");function TB(e){return e.endsWith(".instructions.md")?"copilot-instructions":e.endsWith(".md")?"md":e.endsWith(".mdc")?"mdc":e.endsWith(".toml")?"toml":null}s(TB,"classifyFileShape");var B6=["rules","commands","agents","skills","mcp.json","hooks.yaml","permissions.yaml","ignore"],K6=[".cursorrules",".windsurfrules"];async function DB(e){let t=join(e,".agentsmesh");if(!await Pu(t))return null;let r=await Ui(t),n=new Set(r.map(o=>o.name));for(let o of B6)if(n.has(o))return {path:".agentsmesh"};return null}s(DB,"detectCanonical");async function NB(e){for(let t of K6)try{if((await stat(join(e,t))).isFile())return {path:t}}catch{}return null}s(NB,"detectRootRule");async function vB(e){try{if((await stat(join(e,"SKILL.md"))).isFile())return {path:"SKILL.md"}}catch{}return null}s(vB,"detectRootSkill");$o();var H6={rules:"rules",commands:"commands",agents:"agents",skills:"skills"},z6=[".claude-plugin",".codex-plugin",".cursor-plugin"],V6=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;async function FB(e){let t=join(e,"skills"),r=await Ui(t);for(let n of r)if(!(!n.isDir||n.name.startsWith("_")||!V6.test(n.name))&&await Pu(join(t,n.name)))try{if((await stat(join(t,n.name,"SKILL.md"))).isFile())return {path:"skills"}}catch{continue}return null}s(FB,"detectSkillPack");async function MB(e){let t=[];for(let[r,n]of Object.entries(H6)){let o=join(e,r),i=await Ui(o),a=new Set;for(let l of i){if(!l.isFile||vn(l.name))continue;let c=TB(l.name);c&&a.add(c);}for(let l of a)t.push({path:r,suggestedAs:n,fileShape:l});}return t}s(MB,"detectFlatCollections");async function $B(e){let t=[];for(let r of z6)await Pu(join(e,r))&&t.push({path:r});return t}s($B,"detectToolNativeManifests");async function rL(e,t){let r=await DB(e);if(r)return {canonical:r,skillPack:null,rootSkill:null,rootRule:null,flatCollections:[],toolNativeManifests:[]};let n=await FB(e),o=n?null:await vB(e),i=await MB(e),a=n||o||i.length>0?null:await NB(e),l=await $B(e);return {canonical:r,skillPack:n?{path:t?`${t}/skills`:"skills"}:null,rootSkill:o?{path:t?`${t}/SKILL.md`:"SKILL.md"}:null,rootRule:a?{path:t?`${t}/${a.path}`:a.path}:null,flatCollections:i.map(c=>({...c,path:t?`${t}/${c.path}`:c.path})),toolNativeManifests:l.map(c=>({path:t?`${t}/${c.path}`:c.path}))}}s(rL,"detectFlatLayout");function tL(e){return e.canonical!==null||e.skillPack!==null||e.rootSkill!==null||e.rootRule!==null||e.flatCollections.length>0}s(tL,"hasContent");async function GB(e,t){let r=await Ui(e),n=[];for(let o of r){if(!o.isDir||o.name.startsWith("."))continue;let i=join(e,o.name),a=t?`${t}/${o.name}`:o.name,l=await rL(i,a);tL(l)&&n.push({path:a,layout:l});}return n}s(GB,"collectSubPackCandidates");async function J6(e,t){if(tL(t))return [];let r=await xB(e,rL,tL);if(r&&r.length>0)return r;let n=await GB(e,"");if(n.length>=2)return n;let o=await Ui(e);for(let i of o){if(!i.isDir||i.name.startsWith("."))continue;let a=await GB(join(e,i.name),i.name);if(a.length>=2)return a}return []}s(J6,"detectSubPacks");async function UB(e){let t=await rL(e,"");if(t.canonical)return {...t,subPacks:[]};let r=await J6(e,t);return {...t,subPacks:r}}s(UB,"detectLayout");rt();A();B();function X6(e){let t=[];for(let r of _d()){let n=re(r)?.nativeInstall?.dialectHints;n?.length&&n.some(o=>o.frontmatterKey in e)&&t.push(r);}return t}s(X6,"targetsMatchingFrontmatter");async function KB(e){let t;try{t=await readdir(e);}catch{return null}let r=t.sort().find(a=>a.toLowerCase().endsWith(".mdc"));if(!r)return null;let n=await k(join(e,r));if(!n)return null;let o=Yr(n,join(e,r));if(!o.ok)return null;let i=X6(o.value.frontmatter);return i.length===1?i[0]??null:null}s(KB,"inferMdcTarget");_g();Lg();function t7(e){let t=e.indexOf("#");return t<0?{path:e,anchor:""}:{path:e.slice(0,t),anchor:e.slice(t)}}s(t7,"splitAnchor");function r7(e){return e.split(sep).join("/")}s(r7,"toForwardSlash");async function n7(e){try{return await stat(e),!0}catch{return false}}s(n7,"pathExists");async function VB(e){let{link:t,fromFile:r,contentRoot:n,includedPaths:o}=e,{path:i,anchor:a}=t7(t.path);if(i===""||isAbsolute(i))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let l=join(n,r,".."),c=normalize(resolve(l,i)),m=normalize(resolve(n)),p=relative(m,c);if(p.startsWith("..")||isAbsolute(p))return {link:t,classification:"unresolvable",resolvedRelative:null,anchor:a};let u=r7(p);return await n7(c)?o.has(u)?{link:t,classification:"in-tree-included",resolvedRelative:u,anchor:a}:{link:t,classification:"resolvable-outside",resolvedRelative:u,anchor:a}:{link:t,classification:"unresolvable",resolvedRelative:u,anchor:a}}s(VB,"resolveLink");var o7=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,s7=/(!?)\[[^\]\n]*\]\(([^)\n]+)\)/g,i7=/^\s*\[([^\]\n]+)\]:\s*(.+?)\s*$/gm;function a7(e){let t=[];for(let r of e.matchAll(o7)){let n=r.index??0;t.push([n,n+r[0].length]);}return t}s(a7,"getFencedCodeRanges");function JB(e,t){for(let[r,n]of t)if(e>=r&&e<n)return true;return false}s(JB,"isInRanges");function YB(e){let t=e.trim(),r=/^(.*?)\s+(["'])([\s\S]*?)\2\s*$/.exec(t);return r?.[1]!==void 0&&(t=r[1].trim()),t.startsWith("<")&&t.endsWith(">")&&(t=t.slice(1,-1).trim()),t}s(YB,"normalizeDestination");function wh(e){let t=a7(e),r=[];for(let n of e.matchAll(s7)){let o=n.index??0;if(JB(o,t))continue;let i=n[1]==="!",a=n[2];if(a===void 0)continue;let l=e.indexOf("(",o);if(l<0)continue;let c=l+1;r.push({kind:i?"image":"inline",destination:YB(a),destinationOffset:c,destinationLength:a.length});}for(let n of e.matchAll(i7)){let o=n.index??0;if(JB(o,t))continue;let i=(n[1]??"").trim(),a=n[2]??"";if(i===""||a.trim()==="")continue;let l=o,c=e.indexOf("]:",l);if(c<0)continue;let m=c+2;for(;m<e.length&&(e[m]===" "||e[m]===" ");)m+=1;r.push({kind:"reference-def",destination:YB(a),label:i,destinationOffset:m,destinationLength:a.trimEnd().length});}return r}s(wh,"scanMarkdownLinks");function XB(e,t){if(t.length===0)return e;let r=[...t].sort((o,i)=>i.offset-o.offset),n=e;for(let o of r)n=`${n.slice(0,o.offset)}${o.replacement}${n.slice(o.offset+o.length)}`;return n}s(XB,"applyRangeRewrites");function l7(e){return !(e.length===0||e.startsWith("#")||e.startsWith("/")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))}s(l7,"isCandidateRelativePath");function c7(e){let t=e.replaceAll("\\","/");return t==="{baseDir}"?".":t.startsWith("{baseDir}/")?t.slice(10):t}s(c7,"stripPath");function m7(e){let t=e.destination;return l7(t)?{raw:t,path:c7(t),kind:e.kind,...e.label!==void 0?{label:e.label}:{}}:null}s(m7,"toScannedLink");function qB(e){let t=[];for(let r of wh(e)){let n=m7(r);n!==null&&t.push(n);}return t}s(qB,"scanRelativeLinks");function dm(e,t){let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/"),o=r.endsWith("/")?r:`${r}/`;return n.startsWith(o)?n.slice(o.length):n}s(dm,"toForwardSlashRelative");function QB(e,t,r,n,o){let i=new Set;for(let a of t){i.add(dm(e,a.source));for(let l of a.supportingFiles)i.add(dm(e,l.absolutePath));}for(let a of r)i.add(dm(e,a.source));for(let a of n)i.add(dm(e,a.source));for(let a of o)i.add(dm(e,a.source));return i}s(QB,"buildIncludedPaths");function u7(e,t,r,n){let o=[];for(let i of e)o.push({kind:"skill",name:i.name,body:i.body,sourcePath:i.source});for(let i of t)o.push({kind:"agent",name:i.name,body:i.body,sourcePath:i.source});for(let i of r)o.push({kind:"command",name:i.name,body:i.body,sourcePath:i.source});for(let i of n)o.push({kind:"rule",name:basename(i.source,".md"),body:i.body,sourcePath:i.source});return o}s(u7,"listScannables");async function ZB(e,t,r,n,o,i){let a=u7(t,r,n,o),l=[];for(let c of a){let m=qB(c.body);if(m.length===0)continue;let p=dm(e,c.sourcePath),u=[];for(let f of m){let g=await VB({link:f,fromFile:p,contentRoot:e,includedPaths:i});g.classification!=="in-tree-included"&&u.push(g);}u.length>0&&l.push({entityKind:c.kind,entityName:c.name,resolved:u});}return l}s(ZB,"detectBrokenLinks");Lg();async function eK(e,t,r={}){let n=new Map,o=new Map,i=[],a=[...t].sort((p,u)=>p.precedence-u.precedence);for(let p of a){let{commands:u,cleanup:f}=await Sg(join(e,p.dir),{restrictToTarget:p.target,parseOpts:r});i.push(f);for(let g of u){if(n.get(g.name)===void 0){n.set(g.name,{command:g,precedence:p.precedence});continue}let R=o.get(g.name)??[];R.push({path:g.source,precedence:p.precedence}),o.set(g.name,R);}}let l=[];for(let[p,u]of o){let f=n.get(p);if(f===void 0)throw new Error(`mergeCommands invariant: loser without winner for "${p}"`);l.push({basename:p,winnerPath:f.command.source,loserPaths:u.map(g=>g.path)});}return l.sort((p,u)=>p.basename.localeCompare(u.basename)),{commands:[...n.values()].map(p=>p.command).sort((p,u)=>p.name.localeCompare(u.name)),dedups:l,cleanup:s(async()=>{await Promise.allSettled(i.map(p=>p()));},"cleanup")}}s(eK,"mergeCommands");async function tK(e,t,r={}){let[n,o,i,a]=await Promise.all([GG(`${e}/skills`,r),Ig(`${e}/agents`,{parseOpts:r}),kg(`${e}/rules`,{parseOpts:r}),eK(e,t.mergeFromToolDirs,r)]),l=[...o.agents],c=[...i.rules],m=QB(e,n,l,a.commands,c),p=await ZB(e,n,l,a.commands,c,m),u=s(async()=>{await Promise.allSettled([i.cleanup(),o.cleanup(),a.cleanup()]);},"cleanup");return {skills:n,agents:l,commands:a.commands,rules:c,dedups:a.dedups,brokenLinks:p,cleanup:u}}s(tK,"aggregateAnthropicSkillPack");var rK={mergeFromToolDirs:[{dir:"commands",precedence:0},{dir:".claude/commands",target:"claude-code",precedence:1},{dir:".gemini/commands",target:"gemini-cli",precedence:2}]};Nl();function g7(e){return {rules:[...e.rules],commands:[...e.commands],agents:[...e.agents],skills:[...e.skills],mcp:null,permissions:null,hooks:null,ignore:[]}}s(g7,"aggregateToCanonical");function bh(){return {}}s(bh,"emptyPrep");async function h7(e,t){let r=[];for(let n of t)if(n.fileShape==="mdc"&&!n.inferredTarget){let o=await KB(join(e,n.path));r.push(o?{...n,inferredTarget:o}:n);}else r.push(n);return r}s(h7,"enrichMdcTargets");function oK(e){return e.canonical?"canonical-agentsmesh":e.skillPack||e.rootSkill?"anthropic-skill-pack":e.rootRule||e.toolNativeManifests.length>0?"tool-native":"unknown"}s(oK,"deriveSourceType");async function y7(e,t){let r=await pd(e,t);return {rules:[],commands:[],agents:[],skills:r?[r]:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(y7,"rootSkillToCanonical");async function R7(e,t){let r=join(e,t),n=await readFile(r,"utf-8").catch(()=>""),o=`Imported from ${t}`;return {rules:n?[{source:r,root:true,targets:[],description:o,globs:[],body:n}]:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}s(R7,"rootRuleToCanonical");async function sK(e){let t=e.parseOpts??{};if(e.explicitAs)return {implicitPick:void 0,...await SB(e.contentRoot,e.explicitAs,e.explicitTarget,e.replayPick,t)};if(e.explicitTarget)return ZI(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t);let r=await UB(e.contentRoot),n=await h7(e.contentRoot,r.flatCollections),o={...r,flatCollections:n};if(o.skillPack&&!o.canonical){let a=await tK(e.contentRoot,rK,t),l=g7(a);return {prep:{cleanup:a.cleanup},implicitPick:void 0,narrowed:l,discoveredFeatures:Tn(l),layout:o,aggregate:a}}if(o.rootSkill&&!o.canonical&&!o.skillPack){let a=await y7(e.contentRoot,t);return {prep:bh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Tn(a),layout:o}}if(o.rootRule&&!o.canonical&&!o.skillPack&&!o.rootSkill&&o.flatCollections.length===0){let a=await R7(e.contentRoot,o.rootRule.path);return {prep:bh(),implicitPick:void 0,narrowed:a,discoveredFeatures:Tn(a),layout:o}}return o.subPacks.length>0?{prep:bh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:o.flatCollections.length>0?{prep:bh(),implicitPick:void 0,narrowed:{rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]},discoveredFeatures:[],layout:o}:{...await ZI(e.resolvedPath,e.contentRoot,e.pathInRepo,e.explicitTarget,t),layout:o}}s(sK,"resolveInstallDiscovery");function aK(e){let t=new Set;e.skillPack&&t.add("skills"),e.rootSkill&&t.add("skills");for(let r of e.flatCollections)t.add(r.suggestedAs);return [...t]}s(aK,"featuresFromLayout");function _7(e){return e.replace(/[/\\]+/g,"-").replace(/[^a-z0-9-]/gi,"").toLowerCase()}s(_7,"subPackSlug");function iK(e,t,r){let n=aK(e.layout),o=!e.layout.skillPack&&!e.layout.rootSkill&&n.length>0;return {name:`${t}-${_7(e.path)}`,source:r,path:e.path,...o?{as:n[0]}:{},features:n}}s(iK,"targetFromSubPack");function lK(e,t,r){return {name:t,source:r,path:e.path,as:e.suggestedAs,target:e.inferredTarget,features:[e.suggestedAs]}}s(lK,"targetFromCollection");function cK(e){let{layout:t,sourceName:r,sourceForYaml:n,explicitPath:o,explicitAs:i,explicitTarget:a}=e;if(o||i||a)return {targets:[],isMarketplace:false};if(t.canonical||t.skillPack)return {targets:[],isMarketplace:false};if(t.subPacks.length>=1)return S7(e);if(t.flatCollections.length===1){let l=t.flatCollections[0];return {targets:[lK(l,r,n)],isMarketplace:false}}return t.flatCollections.length>1?k7(e):{targets:[],isMarketplace:false}}s(cK,"selectInstallCandidates");function S7(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.all)return {targets:t.subPacks.map(a=>iK(a,r,n)),isMarketplace:true};if(e.force||!e.tty){let a=t.subPacks.map(l=>({path:l.path,features:aK(l.layout)})).map(l=>` - ${l.path} (${l.features.join(", ")})`).join(`
|
|
377
|
+
`);throw new Error(`Marketplace source with ${t.subPacks.length} sub-packs. Pass --all to install all, or use --path <subpath>:
|
|
378
|
+
${a}`)}return {targets:t.subPacks.map(i=>iK(i,r,n)),isMarketplace:true}}s(S7,"selectMarketplace");function k7(e){let{layout:t,sourceName:r,sourceForYaml:n}=e;if(e.force||!e.tty){let i=t.flatCollections.map(a=>` - ${a.path} (${a.suggestedAs}, .${a.fileShape})`).join(`
|
|
379
|
+
`);throw new Error(`Ambiguous source with ${t.flatCollections.length} resource collections. Pass --as <kind> to select, or --path <subpath>:
|
|
380
|
+
${i}`)}return {targets:t.flatCollections.map(i=>lK(i,r,n)),isMarketplace:false}}s(k7,"selectMultipleCollections");Vr();Dk();function fm(e){return e==="."||e===""?void 0:e}s(fm,"trimDot");function L7(e,t){let r=basename(t).replace(/\.md$/i,"");return e==="agents"?{agents:[r]}:e==="commands"?{commands:[r]}:{rules:[r]}}s(L7,"markdownPick");async function pK(e){if(!e.as)return {pathInRepo:fm(e.pathInRepo)};let t=e.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(e.contentRoot);if(e.as!=="skills"&&r.isFile()&&e.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:fm(dirname(t)),pick:L7(e.as,t||e.contentRoot)};if(e.as==="skills"){if(r.isFile()&&basename(e.contentRoot)==="SKILL.md"){let n=t?dirname(t):dirname(e.contentRoot);return {pathInRepo:fm(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=t||basename(e.contentRoot),o=join(e.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await wg(o);return {pathInRepo:fm(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:fm(t)}}}}return {pathInRepo:fm(t)}}s(pK,"resolveManualInstallPersistence");Oo();ne();ne();async function gm(e,t,r){let n=e==="install"?"Pack is installed":e==="refresh"?"Refresh is committed":"Uninstall is committed",o=t==="global"?" --global":"";try{let i=await qc(t==="global"?{global:!0}:{},r,{printMatrix:!1});Qc(i),i.exitCode!==0&&y.warn(`Generate failed after ${e}. ${n}; run agentsmesh generate${o}.`);}catch(i){let a=i instanceof Error?i.message:String(i);y.warn(`Generate failed after ${e}: ${a}`),y.warn(`${n}; run agentsmesh generate${o} after resolving the issue.`);}}s(gm,"runPostOperationGenerate");async function To(e){return process.stdin.isTTY?new Promise(t=>{let r=uK.createInterface({input:process.stdin,output:process.stdout});r.question(`${e} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();t(o==="y"||o==="yes");});}):false}s(To,"confirm");function C7(e){return !!(e.skills.length||e.rules.length||e.commands.length||e.agents.length)}s(C7,"hasArrayResources");function dK(e){return C7(e)||e.mcp!==null||e.permissions!==null||e.hooks!==null||e.ignore.length>0}s(dK,"hasInstallableResources");async function fK(e,t,r,n){let o=e.skills.map(l=>hB(l)),i=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await To(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.skill);else t&&(i=o.map(l=>l.skill));return r&&(i=o.filter(l=>l.ok).map(l=>l.skill)),i}s(fK,"resolveSkillPool");async function gK(e,t,r,n){let o=e.rules.map(l=>yB(l)),i=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await To(`Include invalid rule "${ft(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.rule);else t&&(i=o.map(l=>l.rule));return r&&(i=o.filter(l=>l.ok).map(l=>l.rule)),i}s(gK,"resolveRulePool");async function hK(e,t,r,n){let o=e.commands.map(l=>RB(l)),i=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await To(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.command);else t&&(i=o.map(l=>l.command));return r&&(i=o.filter(l=>l.ok).map(l=>l.command)),i}s(hK,"resolveCommandPool");async function yK(e,t,r,n){let o=e.agents.map(l=>_B(l)),i=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!t&&!r&&n)for(let l of a)await To(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&i.push(l.agent);else t&&(i=o.map(l=>l.agent));return r&&(i=o.filter(l=>l.ok).map(l=>l.agent)),i}s(yK,"resolveAgentPool");async function RK(e,t){let r=t.skills.map(a=>a.name),n=t.rules.map(a=>ft(a)),o=t.commands.map(a=>a.name),i=t.agents.map(a=>a.name);for(let a of t.skills)e.skills.some(l=>l.name===a.name)&&(await To(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of t.rules){let l=ft(a);e.rules.some(c=>ft(c)===l)&&(await To(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of t.commands)e.commands.some(l=>l.name===a.name)&&(await To(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of t.agents)e.agents.some(l=>l.name===a.name)&&(await To(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(i=i.filter(c=>c!==a.name)));return {skillNames:r,ruleSlugs:n,commandNames:o,agentNames:i}}s(RK,"resolveInstallConflicts");function _K(e,t){if(!e)return;let r={},n=e.skills?.filter(l=>t.skillNames.includes(l)),o=e.rules?.filter(l=>t.ruleSlugs.includes(l)),i=e.commands?.filter(l=>t.commandNames.includes(l)),a=e.agents?.filter(l=>t.agentNames.includes(l));return n&&n.length>0&&(r.skills=n),o&&o.length>0&&(r.rules=o),i&&i.length>0&&(r.commands=i),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}s(_K,"pickForSelectedResources");function E7(e,t){let r=e.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===t}s(E7,"pathEndsWithName");function Oh(e,t,r){return r!==1||t.length!==1?false:E7(e,t[0])}s(Oh,"inferSingleNamePick");function SK(e){let{pathInRepo:t,implicitPick:r,preConflictCounts:n,selected:o}=e,i={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||Oh(t,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Oh(t,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Oh(t,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Oh(t,o.agentNames,n.agents));return a&&(i.skills=[...o.skillNames]),l&&(i.rules=[...o.ruleSlugs]),c&&(i.commands=[...o.commandNames]),m&&(i.agents=[...o.agentNames]),Object.keys(i).length?i:void 0}s(SK,"buildInstallPick");function kK(e,t){let r=new Set(e);return t.skillNames.length===0&&r.delete("skills"),t.ruleSlugs.length===0&&r.delete("rules"),t.commandNames.length===0&&r.delete("commands"),t.agentNames.length===0&&r.delete("agents"),[...r]}s(kK,"deriveInstallFeatures");function w7(e){return e.skillNames.length===0&&e.ruleSlugs.length===0&&e.commandNames.length===0&&e.agentNames.length===0}s(w7,"isEmptyInstallSelection");function IK(e){let{selected:t,discoveredFeatures:r,preConflict:n}=e,o=s(l=>r.includes(l),"had"),i=o("skills")&&t.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&t.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&t.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&t.agentNames.length===0&&n.agents>0&&"agents";if(i)throw new Error(`No ${i} selected to install.`);let a=r.some(l=>["mcp","permissions","hooks","ignore"].includes(l));if(w7(t)&&!a)throw new Error("No resources selected to install.")}s(IK,"ensureInstallSelection");vo();function LK(e,t){if(e.find(n=>n.name===t.name&&n.source!==t.source))throw new Error(`Extends entry "${t.name}" already exists with a different source. Use --name to provide a different name.`)}s(LK,"assertExtendNameAvailable");function b7(e,t,r){if(r===void 0){if(!e)return;let o={...e};for(let i of ["skills","commands","rules","agents"])t.includes(i)&&delete o[i];return Object.keys(o).length?o:void 0}let n={...e};for(let o of ["skills","commands","rules","agents"]){if(!(o in r))continue;let i=r[o];if(i===void 0||i.length===0){delete n[o];continue}n[o]=[...new Set([...e?.[o]??[],...i])];}return Object.keys(n).length?n:void 0}s(b7,"mergePick");function CK(e,t){let r=e.findIndex(a=>a.source===t.source);if(r<0)return [...e,{name:t.name,source:t.source,version:t.version,features:t.features,path:t.path,pick:t.pick,target:t.target,as:t.as}];let n=e[r],o=[...new Set([...n.features,...t.features])],i=b7(n.pick,t.features,t.pick);return e.map((a,l)=>l===r?{name:t.name,source:t.source,version:t.version??n.version,features:o,path:t.path!==void 0?t.path:n.path,pick:i,target:t.target??n.target,as:t.as??n.as}:a)}s(CK,"mergeExtendList");A();async function EK(e,t,r){let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=CK(t.extends,r);o.extends=i;let a=stringify(o,{indent:2,lineWidth:0});await L(e,a.endsWith(`
|
|
340
381
|
`)?a:`${a}
|
|
341
|
-
`);}s(
|
|
342
|
-
${JSON.stringify(i,null,2)}`);return}let a=join(
|
|
343
|
-
`);return `sha256:${
|
|
344
|
-
`),
|
|
382
|
+
`);}s(EK,"writeAgentsmeshWithNewExtend");ne();async function wK(e){let{configDir:t,config:r,entryArgs:n,dryRun:o}=e,i=T7(n);if(LK(r.extends,i),o){y.info(`[dry-run] Would add extend:
|
|
383
|
+
${JSON.stringify(i,null,2)}`);return}let a=join(t,"agentsmesh.yaml");await EK(a,r,i),y.success(`Wrote extends entry "${i.name}" to agentsmesh.yaml.`);}s(wK,"writeInstallAsExtend");function T7(e){return {name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.yamlTarget!==void 0?fr.parse(e.yamlTarget):void 0,as:e.as}}s(T7,"toNewExtendEntry");A();ne();A();var D7="pack.yaml";async function Ah(e){let t=await U(e),r=[];for(let i of t.sort()){let a=relative(e,i).replace(/\\/g,"/");if(a===D7)continue;let l=await Ng(i);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
384
|
+
`);return `sha256:${Dg(n)}`}s(Ah,"hashPackContent");A();var pr=".agentsmesh-install-manifest.json",v7=["pack.yaml",pr];z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),installed_at:z$1.string().min(1),extends_id:z$1.string().nullable(),source_type:z$1.enum(["anthropic-skill-pack","canonical-agentsmesh","tool-native","unknown"]).nullable(),files:z$1.record(z$1.string().min(1),z$1.string().regex(/^sha256:[0-9a-f]{64}$/))});function F7(e,t){return relative(e,t).replaceAll("\\","/")}s(F7,"toForwardSlashRelative");async function xh(e){let t=await Ws(e),r=[];for(let n of t){let o=F7(e,n);if(v7.includes(o))continue;let i=await vg(n);i!==null&&r.push([o,`sha256:${i}`]);}return r.sort(([n],[o])=>n.localeCompare(o)),Object.fromEntries(r)}s(xh,"hashPackFiles");A();var M7=/spdx-license-identifier:\s*([A-Za-z0-9.+-]+)/i,$7=[{id:"BSD-3-Clause",pattern:/redistribution and use in source and binary forms[\s\S]+?neither the name of[\s\S]+?contributors/i},{id:"BSD-2-Clause",pattern:/redistribution and use in source and binary forms/i},{id:"AGPL-3.0",pattern:/gnu affero general public license[\s\S]+?version 3/i},{id:"LGPL-3.0",pattern:/gnu lesser general public license[\s\S]+?version 3/i},{id:"LGPL-2.1",pattern:/gnu lesser general public license[\s\S]+?version 2\.1/i},{id:"GPL-3.0",pattern:/gnu general public license[\s\S]+?version 3/i},{id:"GPL-2.0",pattern:/gnu general public license[\s\S]+?version 2/i},{id:"MPL-2.0",pattern:/mozilla public license[\s\S]+?version 2\.0/i},{id:"Apache-2.0",pattern:/apache license[\s\S]+?version 2\.0/i},{id:"MIT",pattern:/permission is hereby granted, free of charge, to any person obtaining a copy/i},{id:"ISC",pattern:/permission to use, copy, modify,? and\/or distribute this software/i},{id:"Unlicense",pattern:/this is free and unencumbered software released into the public domain/i},{id:"CC0-1.0",pattern:/cc0 1\.0 universal/i}];function bK(e){if(e.trim().length===0)return null;let t=M7.exec(e);if(t)return t[1]??null;for(let{id:r,pattern:n}of $7)if(n.test(e))return r;return null}s(bK,"detectSpdxLicense");var j7=["LICENSE","COPYING","NOTICE","COPYRIGHT"],U7=["",".md",".txt",".rst"];async function OK(e){for(let t of j7)for(let r of U7){let n=await k(join(e,`${t}${r}`));if(n===null)continue;let o=bK(n);if(o!==null)return o}return null}s(OK,"detectLicenseInPackDir");async function W7(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await w(r);for(let n of e.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(W7,"writeRules");async function H7(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await w(r);for(let n of e.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(H7,"writeCommands");async function z7(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await w(r);for(let n of e.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}s(z7,"writeAgents");async function V7(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await w(r);for(let n of e.skills){let o=join(r,n.name);await w(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await w(dirname(a)),await copyFile(i.absolutePath,a);}}}s(V7,"writeSkills");async function J7(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(J7,"writePreservedRootFiles");async function Y7(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
|
|
385
|
+
`),e.permissions!==null&&await L(join(t,"permissions.yaml"),stringify(e.permissions)),e.hooks!==null&&await L(join(t,"hooks.yaml"),stringify(e.hooks)),e.ignore.length>0&&await L(join(t,"ignore"),`${e.ignore.join(`
|
|
345
386
|
`)}
|
|
346
|
-
`);}s(
|
|
347
|
-
`);}s(
|
|
348
|
-
`),
|
|
387
|
+
`);}s(Y7,"writeSettings");function X7(e){if(e.includes("/")||e.includes("\\")||e===".."||e==="."||e.includes("\0"))throw new Error(`Invalid pack name "${e}". Pack names must be a single directory segment without path separators.`)}s(X7,"validatePackName");async function q7(e,t,r){let n=await xh(e),o=p0({name:t.name,source:t.source,installed_at:t.installed_at,extends_id:r.extends_id??null,source_type:r.source_type??null,files:n},"install-manifest");await L(join(e,pr),`${JSON.stringify(o,null,2)}
|
|
388
|
+
`);}s(q7,"writeInstallManifest");async function AK(e,t,r,n,o={},i=[]){X7(t);let a=join(e,`${t}.tmp`),l=join(e,`${t}.old`),c=join(e,t);await j(a)&&await rm$1(a,{recursive:true,force:true}),await j(l)&&await rm$1(l,{recursive:true,force:true});let m,p=false;try{await w(a),await W7(r,a),await H7(r,a),await z7(r,a),await V7(r,a),await Y7(r,a),await J7(i,a);let u=await Ah(a),f=await OK(a);m=ji({...n,content_hash:u,license:f}),await L(join(a,"pack.yaml"),sl(stringify(m),"pack")),await q7(a,m,o),await mkdir(e,{recursive:!0}),await j(c)&&(await rename(c,l),p=!0);try{await rename(a,c);}catch(g){throw p&&(await rename(l,c).catch(h=>{let R=h instanceof Error?h.message:String(h);y.warn(`Failed to restore the previous pack after a failed atomic swap; the prior contents remain at "${l}". Recover them manually. (${R})`);}),p=!1),g}}catch(u){throw await rm$1(a,{recursive:true,force:true}).catch(()=>{}),u}return p&&await rm$1(l,{recursive:true,force:true}).catch(()=>{}),m}s(AK,"materializePack");zc();A();function lL(e,t){return [...new Set([...e,...t])]}s(lL,"union");function Z7(e,t){if(e.path===void 0&&e.paths===void 0||t===void 0)return {path:void 0,paths:void 0};let n=lL(e.paths??(e.path?[e.path]:[]),[t]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}s(Z7,"mergePathScope");function eee(e,t,r){let n={...e};for(let i of t)r&&r[i]!==void 0?n[i]=lL(n[i]??[],r[i]):delete n[i];return (n.skills?.length??0)>0||(n.rules?.length??0)>0||(n.commands?.length??0)>0||(n.agents?.length??0)>0?n:void 0}s(eee,"mergePick");async function tee(e,t){if(e.rules.length===0)return;let r=join(t,"rules");await w(r);for(let n of e.rules)await copyFile(n.source,join(r,basename(n.source)));}s(tee,"mergeRules");async function ree(e,t){if(e.commands.length===0)return;let r=join(t,"commands");await w(r);for(let n of e.commands)await copyFile(n.source,join(r,basename(n.source)));}s(ree,"mergeCommands");async function nee(e,t){if(e.agents.length===0)return;let r=join(t,"agents");await w(r);for(let n of e.agents)await copyFile(n.source,join(r,basename(n.source)));}s(nee,"mergeAgents");async function oee(e,t){if(e.skills.length===0)return;let r=join(t,"skills");await w(r);for(let n of e.skills){let o=join(r,n.name);await w(o),await copyFile(n.source,join(o,"SKILL.md"));for(let i of n.supportingFiles){let a=join(o,i.relativePath);await w(dirname(a)),await copyFile(i.absolutePath,a);}}}s(oee,"mergeSkills");async function see(e,t){for(let r of e)await copyFile(r.absolutePath,join(t,r.relativePath));}s(see,"mergePreservedRootFiles");async function iee(e,t){e.mcp!==null&&await L(join(t,"mcp.json"),`${JSON.stringify(e.mcp,null,2)}
|
|
389
|
+
`),e.permissions!==null&&await L(join(t,"permissions.yaml"),stringify(e.permissions)),e.hooks!==null&&await L(join(t,"hooks.yaml"),stringify(e.hooks)),e.ignore.length>0&&await L(join(t,"ignore"),`${e.ignore.join(`
|
|
349
390
|
`)}
|
|
350
|
-
`);}s(Qq,"mergeSettings");async function Aj(t,e,r,n,o,i,a=[]){await Vq(r,t),await Jq(r,t),await Yq(r,t),await Xq(r,t),await Qq(r,t),await Zq(a,t);let l=XI(e.features,n),c=zq(e.pick,n,o),m=Hq(e,i?.path),p=await qf(t),u=new Date().toISOString(),f=_i({...e,source:i?.source??e.source,...i?.version!==void 0?{version:i.version}:e.version!==void 0?{version:e.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:e.target!==void 0?{target:e.target}:{},...m,...i?.as!==void 0?{as:i.as}:e.as!==void 0?{as:e.as}:{},updated_at:u,content_hash:p});return await S(join(t,"pack.yaml"),Ma(stringify(f),"pack")),f}s(Aj,"mergeIntoPack");Bg();Eo();async function bj(t){let e=[];try{let r=await readdir(t,{withFileTypes:!0});for(let n of r)n.isFile()&&eu(n.name)&&e.push({relativePath:n.name,absolutePath:join(t,n.name)});}catch{return []}return e.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),e}s(bj,"collectPreservedRootFiles");So();ot();So();A();If();function r3(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(r3,"sanitize");function n3(t){try{let r=new URL(t.replace(/^git\+/,"https://").replace(/^ssh:\/\/git@/,"https://")).pathname.split("/").filter(Boolean);if(r.length===0)return "repo";let n=r[r.length-1].replace(/\.git$/i,"");return r.length>=2?`${r[r.length-2].replace(/\.git$/i,"")}-${n}`:n}catch{return "repo"}}s(n3,"gitUrlLastSegments");function Pj(t,e,r){let n;if(t.kind==="local"){let l=(t.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else t.kind==="github"&&t.org&&t.repo?n=`${t.org}-${t.repo}`:t.kind==="gitlab"&&t.org&&t.repo?n=`${t.org.replace(/\//g,"-")}-${t.repo}`:t.gitRemoteUrl?n=n3(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=r3(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(Pj,"suggestExtendName");function Tj(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,i=new Set(e.extends.map(a=>a.name));return o||Pj(r,{featureHint:n.length===1?n[0]:void 0},i)}s(Tj,"selectInstallEntryName");function xj(t){let e=t.trim();for(;e.startsWith("git+");){let c=e.lastIndexOf("#");e=(c<0?e.slice(4):e.slice(4,c)).trim();}let r=e.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=e.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=e.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=e.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=e.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=e.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(xj,"canonicalRemoteIdentity");function o3(t){return t.kind==="github"&&t.org&&t.repo?`github:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.kind==="gitlab"&&t.org&&t.repo?`gitlab:${t.org.toLowerCase()}/${t.repo.toLowerCase()}`:t.gitRemoteUrl?xj(t.gitRemoteUrl):null}s(o3,"parsedSourceIdentity");function Dj(t,e){let r=o3(e);if(r===null)return null;for(let n of t){let o=xj(n.source);if(o!==null&&o===r)return n.name}return null}s(Dj,"findExistingInstallName");function ZI(t,e){if(t.length!==e.length)return false;let r=[...t].sort(),n=[...e].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(ZI,"sameFeatureSet");function Nj(t){let{manifest:e,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=t,a=Dj(e,r);if(a===null)return null;let l=e.find(c=>c.name===a);return l.target!==o||l.as!==i||!ZI(l.features,n)?null:l.name}s(Nj,"pickReuseEntryName");var a3=s(t=>!t.includes("/")&&!t.includes("\\")&&!t.includes("\0")&&t!=="."&&t!=="..","isSafeInstallName"),vj=z$1.object({name:z$1.string().min(1).refine(a3,{message:'install name must not contain path separators, NUL, or "."/".." segments'}),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(Qa).min(1),pick:Kc.optional(),target:nr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:hc.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional()}),l3=z$1.object({version:z$1.literal(1),installs:z$1.array(vj).default([])});function c3(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&ZI(t.features,e.features)}s(c3,"sameInstallIdentity");function QI(t){return join(t,"installs.yaml")}s(QI,"manifestPath");async function De(t){let e=await _(QI(t));if(e===null)return [];try{return l3.parse(parse(e)).installs.map(r=>_i(r))}catch{return []}}s(De,"readInstallManifest");async function rg(t,e){let r=_i(e),o=(await De(t)).filter(i=>i.name!==r.name&&!c3(i,r));o.push(r),await S(QI(t),Ma(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(rg,"upsertInstallManifestEntry");async function Mj(t,e){let r=await De(t),n=r.filter(o=>o.name!==e);return n.length===r.length?false:(await S(QI(t),Ma(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(Mj,"removeInstallManifestEntry");function $j(t){return _i(vj.parse({name:t.name,source:t.source,version:t.version,source_kind:t.sourceKind,features:t.features,pick:t.pick,target:t.target,path:t.path,paths:t.paths,as:t.as,refreshed_at:t.refreshed_at,original_ref:t.originalRef}))}s($j,"buildInstallManifestEntry");A();function p3(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}s(p3,"pathScope");function u3(t,e){let r=new Set(e.skillNames),n=new Set(e.ruleSlugs),o=new Set(e.commandNames),i=new Set(e.agentNames);return {...t,skills:t.skills.filter(a=>r.has(a.name)),rules:t.rules.filter(a=>n.has(ie(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>i.has(a.name))}}s(u3,"applySelection");async function Gj(t){let{canonicalDir:e,packName:r,narrowed:n,selected:o,sourceForYaml:i,version:a,sourceKind:l,entryFeatures:c,pick:m,yamlTarget:p,pathInRepo:u,manualAs:f,renameExistingPack:g,sourceType:h,contentRoot:R,forceFreshMaterialize:k,originalRef:I}=t,C=join(e,"packs"),b=u3(n,o),N=R?await bj(R):[],T=new Date().toISOString(),B=p!==void 0?nr.parse(p):void 0,H=k?null:await RM(C,i,{target:B,as:f,features:c}),tt=r,it=c,v=m,q=u,vt;if(H){let ae=H.packDir,bt=H.meta;if(g&&H.name!==r){let Qt=join(C,r);if(await j(Qt))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(H.packDir,Qt),ae=Qt,bt={...H.meta,name:r};}let Ft=await Aj(ae,bt,b,c,m,{source:i,...a!==void 0?{version:a}:{},...B!==void 0?{target:B}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},N);tt=Ft.name,it=Ft.features,v=Ft.pick,q=Ft.path,vt=Ft.paths,y.success(`Updated pack "${Ft.name}" in .agentsmesh/packs/.`);}else {if(!k&&await yi(join(C,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await wj(C,r,b,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:T,updated_at:T,features:c,...m!==void 0&&{pick:m},...B!==void 0&&{target:B},...p3(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},N),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await rg(e,$j({name:tt,source:i,version:a,sourceKind:l,features:it,pick:v,target:B,path:q,paths:vt,as:f,originalRef:I})),l!=="local"&&await hC(i);}s(Gj,"installAsPack");function jj(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Oc(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:_n(n)}}s(jj,"applyReplayInstallScope");function Uj(t,e){let r=[];for(let n of t.skillNames)r.push({kind:"skill",name:n,path:e});for(let n of t.ruleSlugs)r.push({kind:"rule",name:n,path:e});for(let n of t.commandNames)r.push({kind:"command",name:n,path:e});for(let n of t.agentNames)r.push({kind:"agent",name:n,path:e});return r}s(Uj,"buildInstalledList");function Bj(t,e,r,n,o){let i=[];for(let a of t)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of e){let l=ie(a);o.ruleSlugs.includes(l)||i.push({kind:"rule",name:l,reason:"conflict"});}for(let a of r)o.commandNames.includes(a.name)||i.push({kind:"command",name:a.name,reason:"conflict"});for(let a of n)o.agentNames.includes(a.name)||i.push({kind:"agent",name:a.name,reason:"conflict"});return i}s(Bj,"buildSkippedList");function Kj(t,e){if(e.sourceKind==="local")return {canonical:t,stripped:[]};let r=[],n=t.hooks,o=t.permissions,i=t.mcp;return n!==null&&!e.acceptHooks&&(n=null,r.push("hooks")),o!==null&&!e.acceptPermissions&&(o=null,r.push("permissions")),i!==null&&!e.acceptMcp&&(i=null,r.push("mcp")),r.length===0?{canonical:t,stripped:[]}:{canonical:{...t,hooks:n,permissions:o,mcp:i},stripped:r}}s(Kj,"stripUntrustedElevatedArtifacts");async function Wj(t){let{scope:e,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=t,{acceptHooks:m,acceptPermissions:p,acceptMcp:u}=t,{config:f,context:g,parsed:h,sourceForYaml:R,version:k,pathInRepo:I,contentRoot:C,persisted:b}=t,{replay:N,prep:T,implicitPick:B,narrowed:H,discoveredFeatures:tt,sourceType:it}=t,v=Kj(H,{sourceKind:h.kind,acceptHooks:m,acceptPermissions:p,acceptMcp:u});v.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${v.stripped.join(", ")} from untrusted ${h.kind} source.
|
|
391
|
+
`);}s(iee,"mergeSettings");async function xK(e,t,r,n,o,i,a=[]){await tee(r,e),await ree(r,e),await nee(r,e),await oee(r,e),await iee(r,e),await see(a,e);let l=lL(t.features,n),c=eee(t.pick,n,o),m=Z7(t,i?.path),p=await Ah(e),u=new Date().toISOString(),f=ji({...t,source:i?.source??t.source,...i?.version!==void 0?{version:i.version}:t.version!==void 0?{version:t.version}:{},features:l,pick:c,...i?.target!==void 0?{target:i.target}:t.target!==void 0?{target:t.target}:{},...m,...i?.as!==void 0?{as:i.as}:t.as!==void 0?{as:t.as}:{},updated_at:u,content_hash:p});return await L(join(e,"pack.yaml"),sl(stringify(f),"pack")),f}s(xK,"mergeIntoPack");xy();$o();async function TK(e){let t=[];try{let r=await readdir(e,{withFileTypes:!0});for(let n of r)n.isFile()&&ld(n.name)&&t.push({relativePath:n.name,absolutePath:join(e,n.name)});}catch{return []}return t.sort((r,n)=>r.relativePath.localeCompare(n.relativePath)),t}s(TK,"collectPreservedRootFiles");vo();ne();vo();A();xg();function mee(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}s(mee,"sanitize");function pee(e){try{let r=new URL(e.replace(/^git\+/,"https://").replace(/^ssh:\/\/git@/,"https://")).pathname.split("/").filter(Boolean);if(r.length===0)return "repo";let n=r[r.length-1].replace(/\.git$/i,"");return r.length>=2?`${r[r.length-2].replace(/\.git$/i,"")}-${n}`:n}catch{return "repo"}}s(pee,"gitUrlLastSegments");function PK(e,t,r){let n;if(e.kind==="local"){let l=(e.localRoot??"local").split(/[/\\]/).filter(Boolean);n=l[l.length-1]??"local";}else e.kind==="github"&&e.org&&e.repo?n=`${e.org}-${e.repo}`:e.kind==="gitlab"&&e.org&&e.repo?n=`${e.org.replace(/\//g,"-")}-${e.repo}`:e.gitRemoteUrl?n=pee(e.gitRemoteUrl):n="extend";t.featureHint?n=`${n}-${t.featureHint}`:n=`${n}-pack`;let o=mee(n)||"extend";if(!r.has(o))return o;let i=2;for(;r.has(`${o}-${i}`);)i++;return `${o}-${i}`}s(PK,"suggestExtendName");function DK(e){let{config:t,parsed:r,entryFeatures:n,nameOverride:o}=e,i=new Set(t.extends.map(a=>a.name));return o||PK(r,{featureHint:n.length===1?n[0]:void 0},i)}s(DK,"selectInstallEntryName");function NK(e){let t=e.trim();for(;t.startsWith("git+");){let c=t.lastIndexOf("#");t=(c<0?t.slice(4):t.slice(4,c)).trim();}let r=t.match(/^github:([^/]+)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(r)return `github:${r[1].toLowerCase()}/${r[2].toLowerCase()}`;let n=t.match(/^gitlab:(.+?)\/([^/@]+?)(?:\.git)?(?:@[^/]+)?$/i);if(n)return `gitlab:${n[1].toLowerCase()}/${n[2].toLowerCase()}`;let o=t.match(/^https?:\/\/github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(o)return `github:${o[1].toLowerCase()}/${o[2].toLowerCase()}`;let i=t.match(/^https?:\/\/gitlab\.com\/(.+?)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/i);if(i)return `gitlab:${i[1].toLowerCase()}/${i[2].toLowerCase()}`;let a=t.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/i);if(a)return `github:${a[1].toLowerCase()}/${a[2].toLowerCase()}`;let l=t.match(/^git@gitlab\.com:(.+?)\/([^/]+?)(?:\.git)?$/i);return l?`gitlab:${l[1].toLowerCase()}/${l[2].toLowerCase()}`:null}s(NK,"canonicalRemoteIdentity");function uee(e){return e.kind==="github"&&e.org&&e.repo?`github:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.kind==="gitlab"&&e.org&&e.repo?`gitlab:${e.org.toLowerCase()}/${e.repo.toLowerCase()}`:e.gitRemoteUrl?NK(e.gitRemoteUrl):null}s(uee,"parsedSourceIdentity");function vK(e,t){let r=uee(t);if(r===null)return null;for(let n of e){let o=NK(n.source);if(o!==null&&o===r)return n.name}return null}s(vK,"findExistingInstallName");function cL(e,t){if(e.length!==t.length)return false;let r=[...e].sort(),n=[...t].sort();for(let o=0;o<r.length;o++)if(r[o]!==n[o])return false;return true}s(cL,"sameFeatureSet");function FK(e){let{manifest:t,parsed:r,entryFeatures:n,yamlTarget:o,explicitAs:i}=e,a=vK(t,r);if(a===null)return null;let l=t.find(c=>c.name===a);return l.target!==o||l.as!==i||!cL(l.features,n)?null:l.name}s(FK,"pickReuseEntryName");var gee=s(e=>!e.includes("/")&&!e.includes("\\")&&!e.includes("\0")&&e!=="."&&e!=="..","isSafeInstallName"),$K=z$1.object({name:z$1.string().min(1).refine(gee,{message:'install name must not contain path separators, NUL, or "."/".." segments'}),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(Ol).min(1),pick:Pm.optional(),target:fr.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Hc.optional(),refreshed_at:z$1.string().min(1).optional(),original_ref:z$1.string().optional(),accepted_elevated:z$1.array(z$1.enum(["hooks","permissions","mcp"])).min(1).optional()}),hee=z$1.object({version:z$1.literal(1),installs:z$1.array($K).default([])});function yee(e,t){return e.source===t.source&&e.target===t.target&&e.as===t.as&&cL(e.features,t.features)}s(yee,"sameInstallIdentity");function mL(e){return join(e,"installs.yaml")}s(mL,"manifestPath");async function Ht(e){let t=await k(mL(e));if(t===null)return [];try{return hee.parse(parse(t)).installs.map(r=>ji(r))}catch{return []}}s(Ht,"readInstallManifest");async function Ph(e,t){let r=ji(t),o=(await Ht(e)).filter(i=>i.name!==r.name&&!yee(i,r));o.push(r),await L(mL(e),sl(stringify({version:1,installs:o.sort((i,a)=>i.name.localeCompare(a.name))}),"installs"));}s(Ph,"upsertInstallManifestEntry");async function GK(e,t){let r=await Ht(e),n=r.filter(o=>o.name!==t);return n.length===r.length?false:(await L(mL(e),sl(stringify({version:1,installs:n.sort((o,i)=>o.name.localeCompare(i.name))}),"installs")),true)}s(GK,"removeInstallManifestEntry");function jK(e){return ji($K.parse({name:e.name,source:e.source,version:e.version,source_kind:e.sourceKind,features:e.features,pick:e.pick,target:e.target,path:e.path,paths:e.paths,as:e.as,refreshed_at:e.refreshed_at,original_ref:e.originalRef,accepted_elevated:e.acceptedElevated}))}s(jK,"buildInstallManifestEntry");A();function _ee(e){return e?{path:e,paths:void 0}:{path:void 0,paths:void 0}}s(_ee,"pathScope");function See(e,t){let r=new Set(t.skillNames),n=new Set(t.ruleSlugs),o=new Set(t.commandNames),i=new Set(t.agentNames);return {...e,skills:e.skills.filter(a=>r.has(a.name)),rules:e.rules.filter(a=>n.has(ft(a))),commands:e.commands.filter(a=>o.has(a.name)),agents:e.agents.filter(a=>i.has(a.name))}}s(See,"applySelection");async function UK(e){let{canonicalDir:t,packName:r,narrowed:n,selected:o,sourceForYaml:i,version:a,sourceKind:l,entryFeatures:c,pick:m,yamlTarget:p,pathInRepo:u,manualAs:f,renameExistingPack:g,sourceType:h,contentRoot:R,forceFreshMaterialize:_,originalRef:S,acceptedElevated:I}=e,b=join(t,"packs"),P=See(n,o),T=R?await TK(R):[],W=new Date().toISOString(),$=p!==void 0?fr.parse(p):void 0,Y=_?null:await nj(b,i,{target:$,as:f,features:c}),ee=r,M=c,te=m,Te=u,Ot;if(Y){let Ee=Y.packDir,Qe=Y.meta;if(g&&Y.name!==r){let gt=join(b,r);if(await j(gt))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(Y.packDir,gt),Ee=gt,Qe={...Y.meta,name:r};}let st=await xK(Ee,Qe,P,c,m,{source:i,...a!==void 0?{version:a}:{},...$!==void 0?{target:$}:{},...u?{path:u}:{},...f!==void 0?{as:f}:{}},T);ee=st.name,M=st.features,te=st.pick,Te=st.path,Ot=st.paths,y.success(`Updated pack "${st.name}" in .agentsmesh/packs/.`);}else {if(!_&&await Mi(join(b,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await AK(b,r,P,{name:r,source:i,...a!==void 0&&{version:a},source_kind:l,installed_at:W,updated_at:W,features:c,...m!==void 0&&{pick:m},...$!==void 0&&{target:$},..._ee(u),...f!==void 0&&{as:f}},h!==void 0?{source_type:h}:{},T),y.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await Ph(t,jK({name:ee,source:i,version:a,sourceKind:l,features:M,pick:te,target:$,path:Te,paths:Ot,as:f,originalRef:S,acceptedElevated:I})),l!=="local"&&await QC(i);}s(UK,"installAsPack");function BK(e,t,r){if(!r?.features&&!r?.pick)return {narrowed:e,discoveredFeatures:t};let n=um(e,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:Tn(n)}}s(BK,"applyReplayInstallScope");function KK(e,t){let r=[];for(let n of e.skillNames)r.push({kind:"skill",name:n,path:t});for(let n of e.ruleSlugs)r.push({kind:"rule",name:n,path:t});for(let n of e.commandNames)r.push({kind:"command",name:n,path:t});for(let n of e.agentNames)r.push({kind:"agent",name:n,path:t});return r}s(KK,"buildInstalledList");function WK(e,t,r,n,o){let i=[];for(let a of e)o.skillNames.includes(a.name)||i.push({kind:"skill",name:a.name,reason:"conflict"});for(let a of t){let l=ft(a);o.ruleSlugs.includes(l)||i.push({kind:"rule",name:l,reason:"conflict"});}for(let a of r)o.commandNames.includes(a.name)||i.push({kind:"command",name:a.name,reason:"conflict"});for(let a of n)o.agentNames.includes(a.name)||i.push({kind:"agent",name:a.name,reason:"conflict"});return i}s(WK,"buildSkippedList");function HK(e,t){if(t.sourceKind==="local")return {canonical:e,stripped:[]};let r=[],n=e.hooks,o=e.permissions,i=e.mcp;return n!==null&&!t.acceptHooks&&(n=null,r.push("hooks")),o!==null&&!t.acceptPermissions&&(o=null,r.push("permissions")),i!==null&&!t.acceptMcp&&(i=null,r.push("mcp")),r.length===0?{canonical:e,stripped:[]}:{canonical:{...e,hooks:n,permissions:o,mcp:i},stripped:r}}s(HK,"stripUntrustedElevatedArtifacts");var kee=["hooks","permissions","mcp"];function zK(e,t){let r=new Set(t?.acceptedElevated??[]);return {acceptHooks:e.acceptHooks||r.has("hooks"),acceptPermissions:e.acceptPermissions||r.has("permissions"),acceptMcp:e.acceptMcp||r.has("mcp")}}s(zK,"resolveElevatedConsent");function VK(e,t){let r={hooks:t.acceptHooks,permissions:t.acceptPermissions,mcp:t.acceptMcp},n=kee.filter(o=>e[o]!==null&&r[o]);return n.length>0?n:void 0}s(VK,"consentedArtifactsForManifest");function JK(e,t){return t?.originalRef!==void 0&&t.originalRef!==""?t.originalRef:e.rawRef!==""?e.rawRef:void 0}s(JK,"resolveOriginalRef");function YK(e,t){if(t.length===0)return e;let r=new Set(t);return e.filter(n=>!r.has(n))}s(YK,"featuresAfterStrip");async function XK(e){let{scope:t,force:r,dryRun:n,tty:o,useExtends:i,forceFreshMaterialize:a,nameOverride:l,explicitAs:c}=e,{config:m,context:p,parsed:u,sourceForYaml:f,version:g,pathInRepo:h,contentRoot:R,persisted:_}=e,{replay:S,prep:I,implicitPick:b,narrowed:P,discoveredFeatures:T,sourceType:W}=e,$=zK({acceptHooks:e.acceptHooks,acceptPermissions:e.acceptPermissions,acceptMcp:e.acceptMcp},S),Y=HK(P,{sourceKind:u.kind,...$});Y.stripped.length>0&&y.warn(`[agentsmesh] Stripped ${Y.stripped.join(", ")} from untrusted ${u.kind} source.
|
|
351
392
|
These artifacts control your tool settings (shell hooks, granted permissions, MCP launch specs).
|
|
352
|
-
To accept them explicitly, re-run with: ${
|
|
393
|
+
To accept them explicitly, re-run with: ${Y.stripped.map(Po=>`--accept-${Po}`).join(" ")} (or --accept-elevated for all three).`);let{narrowed:ee,discoveredFeatures:M}=BK(Y.canonical,YK(T,Y.stripped),S);if(!dK(ee))throw new Error(b||I.scopedFeatures?"No resources match the install path or implicit selection (check pick names exist at that path).":"No supported resources found to install (skills, rules, commands, agents).");let te=await fK(ee,r,n,o),Te=await gK(ee,r,n,o),Ot=await hK(ee,r,n,o),Ee=await yK(ee,r,n,o),Qe={skills:te.length,rules:Te.length,commands:Ot.length,agents:Ee.length},{canonical:st}=await Ft(m,p.configDir,{},p.canonicalDir),gt=!r&&!n&&o?await RK(st,{skills:te,rules:Te,commands:Ot,agents:Ee}):{skillNames:te.map(Po=>Po.name),ruleSlugs:Te.map(Po=>ft(Po)),commandNames:Ot.map(Po=>Po.name),agentNames:Ee.map(Po=>Po.name)};IK({selected:gt,discoveredFeatures:M,preConflict:Qe});let Bs=S?.features??kK(M,gt);if(Bs.length===0)throw new Error("No features left to install after selection.");let ly=_K(S?.pick,gt)??_.pick??SK({pathInRepo:_.pathInRepo??h,implicitPick:b,preConflictCounts:Qe,selected:gt}),pC=await Ht(p.canonicalDir),bm=FK({manifest:pC,parsed:u,entryFeatures:Bs,yamlTarget:I.yamlTarget,explicitAs:c}),Om=DK({config:m,parsed:u,entryFeatures:Bs,nameOverride:l||bm||""}),Am=KK(gt,Om),cy=WK(te,Te,Ot,Ee,gt),wz=JK(u,S),bz=VK(ee,$);if(i){if(await wK({configDir:p.configDir,config:m,entryArgs:{name:Om,source:f,version:g,features:Bs,path:_.pathInRepo,pick:ly,yamlTarget:I.yamlTarget,as:c},dryRun:n}),n)return {installed:Am,skipped:cy}}else {if(n)return y.info(`[dry-run] Would install pack "${Om}" to ${t==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`),{installed:Am,skipped:cy};await UK({canonicalDir:p.canonicalDir,packName:Om,narrowed:ee,selected:gt,sourceForYaml:f,version:g,sourceKind:u.kind,entryFeatures:Bs,pick:ly,yamlTarget:I.yamlTarget,pathInRepo:_.pathInRepo,manualAs:c,renameExistingPack:l===""&&bm===null,sourceType:W,contentRoot:R,forceFreshMaterialize:a,originalRef:wz,acceptedElevated:bz});}return await gm("install",t,p.rootBase),{installed:Am,skipped:cy}}s(XK,"executeRunInstallPoolsAndWrite");function Rm(e,t){let r=t?.input??process.stdin,n=t?.output??process.stdout;return new Promise(o=>{let i=uK.createInterface({input:r,output:n,terminal:false}),a=false;i.on("close",()=>{a||o("");}),i.question(e,l=>{a=true,i.close(),o(l);});})}s(Rm,"readLine");function QK(e,t){let r=t.resolved.length,n=r===1?"link":"links",o=[`Entity "${t.entityName}" (${t.entityKind}) has ${r} broken ${n}:`];for(let i of t.resolved)o.push(` - ${i.link.path} (${i.classification})`);o.push(""),e.write(`${o.join(`
|
|
353
394
|
`)}
|
|
354
|
-
`);}s(
|
|
395
|
+
`);}s(QK,"writeBanner");async function ZK(e,t,r){let n=[];for(let o of e){if(o.resolved.length===0)continue;if(t.bypass){QK(r,o),n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}QK(r,o);let i=(await r.ask("Action: [i]nclude resolvable as supporting files / [l]eave with warnings / [a]bort install ")).trim().toLowerCase();if(i==="i"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"include-resolvable"});continue}if(i==="l"){n.push({entityKind:o.entityKind,entityName:o.entityName,action:"leave-with-warnings"});continue}return {decisions:[],aborted:true}}return {decisions:n,aborted:false}}s(ZK,"runBrokenLinkPrompt");var uL=["skills","agents","commands","rules"],dL={skills:"skill",agents:"agent",commands:"command",rules:"rule"},rW={skills:"skills",agents:"agents",commands:"commands",rules:"rules"};function dl(e){return {skills:[],agents:[],commands:[],rules:[],aborted:e}}s(dl,"emptySelection");function eW(e){return {skills:[...e.skills],agents:[...e.agents],commands:[...e.commands],rules:[...e.rules],aborted:false}}s(eW,"selectAll");function tW(e,t,r){let n=[`Found in ${t}:`];for(let o of uL){let i=r[o];if(i.length===0)continue;let a=i.length===1?dL[o]:rW[o];n.push(` - ${i.length} ${a}`);}n.push(""),e.write(`${n.join(`
|
|
355
396
|
`)}
|
|
356
|
-
`);}s(
|
|
397
|
+
`);}s(tW,"writeBanner");async function Iee(e,t,r){if(r.length===0)return {selected:[],aborted:false};let n=rW[t],o=(await e.ask(`Install all ${r.length} ${n}? [y/n/c] `)).trim().toLowerCase();if(o==="y")return {selected:[...r],aborted:false};if(o==="n")return {selected:[],aborted:false};if(o!=="c")return {selected:[],aborted:true};let i=dL[t],a=[];for(let l=0;l<r.length;l++){let c=r[l],m=(await e.ask(`Install ${i} "${c}"? [y/N/a/q] `)).trim().toLowerCase();if(m==="y"){a.push(c);continue}if(!(m===""||m==="n")){if(m==="a"){for(let p=l;p<r.length;p++)a.push(r[p]);return {selected:a,aborted:false}}return m==="q"?{selected:a,aborted:false}:{selected:[],aborted:true}}}return {selected:a,aborted:false}}s(Iee,"walkType");function Lee(e){let t=null;for(let r of uL)for(let n of e[r]){if(t!==null)return null;t={kind:r,id:n};}return t}s(Lee,"findSingleEntity");async function Cee(e,t){let r=dL[t.kind],n=(await e.ask(`Install ${r} "${t.id}"? [y/N] `)).trim().toLowerCase();return n==="y"?{...dl(false),[t.kind]:[t.id]}:dl(!(n===""||n==="n"))}s(Cee,"runSingleEntityPrompt");async function nW(e,t,r){if(t.bypass)return eW(e);let n=e.skills.length+e.agents.length+e.commands.length+e.rules.length;if(n===0)return dl(false);if(n===1){let a=Lee(e);if(a!==null)return tW(r,t.packName,e),Cee(r,a)}tW(r,t.packName,e);let o=(await r.ask("Install [a]ll, [n]one, or [s]elect per type? [a/n/s] ")).trim().toLowerCase();if(o==="a")return eW(e);if(o==="n")return dl(false);if(o!=="s")return dl(true);let i={skills:[],agents:[],commands:[],rules:[]};for(let a of uL){let{selected:l,aborted:c}=await Iee(r,a,e[a]);if(c)return dl(true);i[a]=l;}return {...i,aborted:false}}s(nW,"runBulkPrompt");ne();function Oee(e,t,r){let n=[];for(let o of wh(e))o.destination===t&&n.push({offset:o.destinationOffset,length:o.destinationLength,replacement:r});return n}s(Oee,"buildLinkRewrites");function sW(e,t,r){e.warn(`Broken link in ${t.entityKind} "${t.entityName}": ${r.link.path} (${r.classification})`);}s(sW,"warnLink");function Aee(e){let t=new Map;for(let n of e){let o=basename(n.resolvedRelative),i=t.get(o)??new Set;i.add(n.resolvedRelative),t.set(o,i);}let r=new Map;for(let[n,o]of t){if(o.size===1){let i=[...o][0];r.set(i,`references/${n}`);continue}for(let i of o){let a=i.replaceAll("/","-");r.set(i,`references/${a}`);}}return r}s(Aee,"allocateSupportingFileNames");function oW(e,t,r){return e.find(n=>n.entityKind===t&&n.entityName===r)}s(oW,"findEntity");async function xee(e,t,r,n){let o=[...t],i=new Set(o.map(l=>l.relativePath)),a=new Set;for(let l of r){if(a.has(l.resolvedRelative))continue;a.add(l.resolvedRelative);let c=n.get(l.resolvedRelative);if(c===void 0||i.has(c))continue;i.add(c);let m=posix.join(e.replaceAll("\\","/"),l.resolvedRelative);o.push({relativePath:c,absolutePath:m,content:await readFile(m,"utf-8")});}return o}s(xee,"buildSupportingFiles");async function Tee(e,t,r,n){let o=r.resolved.filter(p=>p.classification==="resolvable-outside"),i=Aee(o),a=await xee(e,t.supportingFiles,o,i),l=[],c=new Set;for(let p of r.resolved)if(p.classification==="resolvable-outside"){if(c.has(p.link.raw))continue;let u=i.get(p.resolvedRelative);if(u===void 0)continue;c.add(p.link.raw);let f=`./${u}${p.anchor}`;l.push(...Oee(t.body,p.link.raw,f));}else sW(n,r,p);let m=XB(t.body,l);return {...t,body:m,supportingFiles:a}}s(Tee,"applySkillDecision");async function iW(e){let{contentRoot:t,aggregate:r,decisions:n,logger:o}=e;if(n.length===0)return r;let i=new Set;for(let l of n)l.entityKind==="skill"&&l.action==="include-resolvable"&&i.add(l.entityName);let a=[];for(let l of r.skills){let c=i.has(l.name)?oW(r.brokenLinks,"skill",l.name):void 0;a.push(c?await Tee(t,l,c,o):l);}for(let l of n){if(l.entityKind==="skill"&&l.action==="include-resolvable")continue;let c=oW(r.brokenLinks,l.entityKind,l.entityName);if(c)for(let m of c.resolved)sW(o,c,m);}return {...r,skills:a}}s(iW,"applyBrokenLinkDecisions");var _m=class extends Error{static{s(this,"InstallAbortError");}aborted=true;constructor(t){super(t),this.name="InstallAbortError";}};function Dee(){return {ask:s(e=>Rm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(Dee,"defaultAdapter");function Nee(e){return {skills:e.skills.map(t=>t.name),agents:e.agents.map(t=>t.name),commands:e.commands.map(t=>t.name),rules:e.rules.map(t=>ft(t))}}s(Nee,"bulkCandidatesFrom");function aW(e,t){let r=new Set(t.skills),n=new Set(t.agents),o=new Set(t.commands),i=new Set(t.rules);return {skills:e.skills.filter(a=>r.has(a.name)),agents:e.agents.filter(a=>n.has(a.name)),commands:e.commands.filter(a=>o.has(a.name)),rules:e.rules.filter(a=>i.has(ft(a))),mcp:null,permissions:null,hooks:null,ignore:[]}}s(aW,"filterCanonical");function vee(e){let t=[];return e.skills.length>0&&t.push("skills"),e.rules.length>0&&t.push("rules"),e.commands.length>0&&t.push("commands"),e.agents.length>0&&t.push("agents"),t}s(vee,"discoveredFeaturesOf");async function Fee(e){let t=e.adapter??Dee(),r=await ZK(e.aggregate.brokenLinks,{bypass:e.bypass},t);if(r.aborted)throw new _m("User aborted at broken-link prompt.");let n=[...r.decisions],o=await iW({contentRoot:e.contentRoot,aggregate:e.aggregate,decisions:n,logger:y}),i=Nee(o);if(i.skills.length+i.agents.length+i.commands.length+i.rules.length===0)return {aggregate:o,narrowed:aW(o,{skills:[],agents:[],commands:[],rules:[]}),discoveredFeatures:[]};let l=await nW(i,{packName:e.displayName,bypass:e.bypass},t);if(l.aborted)throw new _m("User aborted at bulk-select prompt.");let c=aW(o,l);return {aggregate:o,narrowed:c,discoveredFeatures:vee(c)}}s(Fee,"runSkillPackPromptFlow");function Mee(e){return basename(e)||"install source"}s(Mee,"displayNameForContentRoot");async function lW(e){if(!e.discovery.aggregate)return {aborted:false};try{let t=await Fee({contentRoot:e.contentRoot,aggregate:e.discovery.aggregate,narrowed:e.discovery.narrowed,bypass:e.bypass,displayName:Mee(e.contentRoot)});return {aborted:!1,narrowed:t.narrowed,discoveredFeatures:t.discoveredFeatures}}catch(t){if(t instanceof _m)return y.warn(t.message),{aborted:true};throw t}}s(lW,"runPromptFlowWithAbort");async function cW(e){let{discovery:t,installReport:r,persisted:n,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,config:m,context:p,dryRun:u,force:f,useExtends:g,forceFreshMaterialize:h,explicitAs:R,nameOverride:_,acceptHooks:S,acceptPermissions:I,acceptMcp:b,scope:P,sourceArg:T,replay:W}=e,$=process.stdin.isTTY,{prep:Y,implicitPick:ee}=t,{narrowed:M,discoveredFeatures:te}=t;try{let Te=await lW({discovery:t,contentRoot:c,bypass:f||u||!$});if(Te.aborted)return {exitCode:130,data:{source:T,mode:"install",installed:[],skipped:[],dryRun:u}};if(M=Te.narrowed??M,te=Te.discoveredFeatures??te,te.length===0&&r.brokenResources.length>0){let Ee=r.brokenResources.map(Qe=>` - ${Qe.path}: ${Qe.reason}`).join(`
|
|
357
398
|
`);throw new Error(`No installable resources after skipping invalid files (${r.brokenResources.length}):
|
|
358
|
-
${
|
|
359
|
-
Fix the frontmatter in the source files (most often: unquoted scalars containing colons or square brackets), or narrow --path to a subdirectory that excludes them.`)}let
|
|
360
|
-
`),
|
|
399
|
+
${Ee}
|
|
400
|
+
Fix the frontmatter in the source files (most often: unquoted scalars containing colons or square brackets), or narrow --path to a subdirectory that excludes them.`)}let Ot=await XK({scope:P,force:f,dryRun:u,tty:$,useExtends:g,forceFreshMaterialize:h,nameOverride:_,explicitAs:R,acceptHooks:S,acceptPermissions:I,acceptMcp:b,config:m,context:p,parsed:o,sourceForYaml:i,version:a,pathInRepo:l,contentRoot:c,persisted:n,replay:W,prep:Y,implicitPick:ee,narrowed:M,discoveredFeatures:te,sourceType:t.layout?oK(t.layout):void 0});return {exitCode:0,data:{source:T,mode:"install",installed:Ot.installed,skipped:Ot.skipped,dryRun:u,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{}}}}finally{Y.cleanup&&await Y.cleanup();}}s(cW,"runSinglePackInstall");async function mW(e,t,r){let n=[],o=[],i=0;for(let a of e)try{let l=await t(a);n.push(...l.installed),o.push(...l.skipped),i+=1;}catch(l){let c=l instanceof Error?l.message:String(l);r.subPackFailures.push({name:a.name,path:a.path??".",error:c});}return {exitCode:i>0?0:1,installed:n,skipped:o}}s(mW,"runInstallMarketplace");async function pW(e){let{pickerResult:t,installReport:r,sourceArg:n,projectRoot:o,dryRun:i,force:a,useExtends:l,nameOverride:c,replay:m,recurseInstall:p}=e;if(t.isMarketplace&&t.targets.length>0){let u=await mW(t.targets,async f=>(await p({force:!0,"dry-run":i,path:f.path??"",as:f.as??"",target:f.target??"",name:f.name,extends:l},[n],o,{})).data,r);return {exitCode:u.exitCode,data:{source:n,mode:"install",installed:u.installed,skipped:u.skipped,dryRun:i,...r.brokenResources.length>0?{brokenResources:r.brokenResources}:{},...r.subPackFailures.length>0?{subPackFailures:r.subPackFailures}:{}}}}if(!t.isMarketplace&&t.targets.length===1){let u=t.targets[0];return p({force:a,"dry-run":i,path:u.path??"",as:u.as??"",target:u.target??"",name:c,extends:l},[n],o,m??{})}return null}s(pW,"routePickerResult");tt();A();ne();async function Gee(e){let t=await Ht(e.canonicalDir);if(t.length===0){y.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of t){let o=join(e.canonicalDir,"packs",n.name);await j(o)||r.push(n);}if(r.length===0){y.info("All recorded packs are already installed.");return}for(let n of r)await e.reinstall(n);y.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}s(Gee,"syncInstalledPacks");async function uW(e){return e.sync?(await Gee({canonicalDir:e.canonicalDir,reinstall:e.reinstall}),true):false}s(uW,"maybeRunInstallSync");async function dW(e){let{projectRoot:t,sync:r,dryRun:n,force:o,scope:i,recurseInstall:a}=e;if(!r)return;let{context:l}=await ye(t,i),c=[],m=[];if(await uW({sync:r,canonicalDir:l.canonicalDir,reinstall:s(async u=>{let f=u.paths&&u.paths.length>0?u.paths:[u.path];for(let g of f){let h=await a({...o?{force:true}:{},...n?{"dry-run":true}:{},...i==="global"?{global:true}:{},name:u.name,...u.target?{target:u.target}:{},...g?{path:g}:{},...u.as?{as:u.as}:{}},[u.source],t,{features:u.features,pick:u.pick,...u.original_ref!==void 0?{originalRef:u.original_ref}:{},...u.accepted_elevated!==void 0?{acceptedElevated:u.accepted_elevated}:{}});c.push(...h.data.installed),m.push(...h.data.skipped);}},"reinstall")}))return {exitCode:0,data:{source:"",mode:"sync",installed:c,skipped:m,dryRun:n}}}s(dW,"handleSync");function fW(){return {brokenResources:[],subPackFailures:[]}}s(fW,"createInstallReport");function Bee(e,t){if(!e)return;let r=normalize(e).replace(/\\/g,"/");if(r===".."||r.startsWith("../"))throw new Error(`Install --path "${t}" escapes the source root. Path must stay within the source.`)}s(Bee,"assertPathStaysInRepo");async function gW(e){let t=await dW(e);if(t)return t;let{projectRoot:r,replay:n,dryRun:o,force:i,useExtends:a,all:l,forceFreshMaterialize:c,explicitPath:m,explicitTarget:p,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:R,scope:_,sourceArg:S}=e;if(!S)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let I=process.stdin.isTTY;if(!I&&!i&&!o)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:b,context:P}=await ye(r,_);await He(b,r);let T=await YI(S,P.configDir,m);if(T.kind!=="local"&&!await pB())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:W,sourceForYaml:$,version:Y}=await dB(T,S),ee=T.pathInRepo.replaceAll("\\","/").replace(/^\/+|\/+$/g,"");Bee(ee,T.pathInRepo);let M=ee?join(W,ee):W;if(!await j(M))throw new Error(`Install path does not exist: ${M}`);let te=await pK({as:u,contentRoot:M,pathInRepo:ee}),Te=fW(),Ot={onParseError:s((Qe,st)=>{Te.brokenResources.push({path:st,kind:"frontmatter",reason:Qe.message});},"onParseError")},Ee=await sK({resolvedPath:W,contentRoot:M,pathInRepo:ee,explicitTarget:p,explicitAs:u,replayPick:n?.pick,parseOpts:Ot});if(Ee.layout&&!u&&!p&&!m){let Qe=cK({layout:Ee.layout,sourceName:f||(T.org&&T.repo?`${T.org}-${T.repo}`:"source"),sourceForYaml:$,explicitPath:m,explicitAs:u,explicitTarget:p,all:l,force:i,tty:I}),st=await pW({pickerResult:Qe,installReport:Te,sourceArg:S,projectRoot:r,dryRun:o,force:i,useExtends:a,nameOverride:f,replay:n,recurseInstall:e.recurseInstall});if(st!==null)return st}return cW({discovery:Ee,installReport:Te,persisted:te,parsed:T,sourceForYaml:$,version:Y,pathInRepo:ee,contentRoot:M,config:b,context:P,dryRun:o,force:i,useExtends:a,forceFreshMaterialize:c,explicitAs:u,nameOverride:f,acceptHooks:g,acceptPermissions:h,acceptMcp:R,scope:_,sourceArg:S,replay:n})}s(gW,"runInstallLocked");async function fl(e,t,r,n){let{sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:R,acceptMcp:_}=mB(e),S=e.global===true?"global":"project",I=t[0]?.trim(),b;if(n===void 0){let{context:P}=await ye(r,S);b=await mm(P.canonicalDir);}try{return await gW({args:t,projectRoot:r,replay:n,sync:o,dryRun:i,force:a,useExtends:l,all:c,forceFreshMaterialize:m,explicitPath:p,explicitTarget:u,explicitAs:f,nameOverride:g,acceptHooks:h,acceptPermissions:R,acceptMcp:_,scope:S,sourceArg:I,recurseInstall:fl})}finally{await b?.();}}s(fl,"runInstall");async function hW(e,t,r){return fl(e,t,r)}s(hW,"runInstall");ne();function yW(e){let{data:t}=e;if(!(t.mode==="sync"&&t.installed.length===0&&t.skipped.length===0)){if(t.installed.length>0&&!t.dryRun){let n=[...new Set(t.installed.map(o=>o.kind))].map(o=>{let i=t.installed.filter(a=>a.kind===o).length;return `${i} ${o}${i>1?"s":""}`}).join(", ");y.success(`Installed ${n}.`);}if(t.skipped.length>0)for(let r of t.skipped)y.warn(`Skipped ${r.kind} "${r.name}": ${r.reason}`);if(t.brokenResources&&t.brokenResources.length>0){let r=t.brokenResources.length;y.warn(`Skipped ${r} file${r>1?"s":""} with invalid frontmatter; see --json for details.`);}if(t.subPackFailures&&t.subPackFailures.length>0)for(let r of t.subPackFailures)y.warn(`Sub-pack "${r.name}" (${r.path}) failed: ${r.error}`);}}s(yW,"renderInstall");tt();Vr();ne();function RW(e){let t=new Set,r=new Set;for(let n of e)t.has(n)?r.add(n):t.add(n);return [...r]}s(RW,"detectDuplicates");function Dh(e,t,r,n){let o=[];r.keepGenerated&&o.push(`--keep-generated: target trees will not be re-rendered; generated files derived from "${e}" may remain stale until the next generate.`);let i=r.keepPack||t===null?null:join(r.packsDir,e);return {name:e,packDir:i,manifestEntry:t,extendsEntry:n.get(e)??null,removeGenerated:!r.keepGenerated,warnings:o}}s(Dh,"buildPlan");function _W(e){if(!e.all&&e.names.length===0)throw new Error("uninstall: must provide at least one name or pass --all.");let t=new Map;for(let a of e.extends)t.has(a.name)||t.set(a.name,a);let r=new Map;for(let a of e.installs)r.set(a.name,a);if(e.all){let a=e.installs.map(m=>m.name),l=RW(a);if(l.length>0)throw new Error(`uninstall --all: installs.yaml has duplicate names: ${l.join(", ")}. Manifest is corrupt; remove the duplicates before retrying.`);let c=e.installs.map(m=>Dh(m.name,m,e,t));for(let m of e.extends)r.has(m.name)||c.push(Dh(m.name,null,e,t));return {removals:c,skipped:[]}}let n=RW(e.names);if(n.length>0)throw new Error(`uninstall: duplicate names requested: ${n.join(", ")}.`);let o=[],i=[];for(let a of e.names){let l=r.get(a);if(l!==void 0){o.push(Dh(a,l,e,t));continue}if(t.has(a)){o.push(Dh(a,null,e,t));continue}i.push(a);}return {removals:o,skipped:i}}s(_W,"planUninstall");A();A();zc();async function SW(e,t){let r=join(e,pr);if(await j(r))return null;let n=await Mi(e);if(n===null)throw new Error(`Cannot migrate legacy pack at ${e}: pack.yaml is missing or invalid; cannot recover install provenance.`);let o=await xh(e),i={name:n.name,source:n.source,installed_at:n.installed_at,extends_id:null,source_type:null,files:o};return t.dryRun!==true&&await L(r,`${JSON.stringify(i,null,2)}
|
|
401
|
+
`),t.warn(`Legacy pack "${n.name}" detected; generated baseline install manifest from current contents. Local modifications since install cannot be detected.`),{manifest:i,manifestPath:r}}s(SW,"migrateLegacyManifest");A();var zee=["pack.yaml",pr];function Vee(e,t){return relative(e,t).replaceAll("\\","/")}s(Vee,"toForwardSlashRelative");async function Nh(e,t){let r=await Ws(e),n=new Map;for(let i of r){let a=Vee(e,i);zee.includes(a)||n.set(a,i);}let o=[];for(let[i,a]of Object.entries(t)){let l=n.get(i);if(l===void 0){o.push({relativePath:i,status:"deleted"});continue}let c=await vg(l);if(c===null){o.push({relativePath:i,status:"deleted"});continue}`sha256:${c}`!==a&&o.push({relativePath:i,status:"modified"});}for(let i of n.keys())i in t||o.push({relativePath:i,status:"added"});return o.sort((i,a)=>i.relativePath<a.relativePath?-1:i.relativePath>a.relativePath?1:0),o}s(Nh,"detectModifiedFiles");function kW(e,t){let r=t.modifications.length,n=r===1?"file":"files",o=[`Pack "${t.packName}" has ${r} locally modified ${n}:`];for(let i of t.modifications)o.push(` - ${i.relativePath} (${i.status})`);o.push(""),e.write(`${o.join(`
|
|
361
402
|
`)}
|
|
362
|
-
`);}s(
|
|
403
|
+
`);}s(kW,"writeBanner");async function IW(e,t,r){if(e.modifications.length===0)return {action:"proceed"};if(t.bypass)return kW(r,e),{action:"delete-anyway"};kW(r,e);let n=(await r.ask("Action: [d]elete anyway / [k]eep modified files (uninstall the rest) / [a]bort ")).trim().toLowerCase();return n==="d"?{action:"delete-anyway"}:n==="k"?{action:"keep-modified"}:{action:"abort"}}s(IW,"runModifiedFilesPrompt");async function Jee(e){let t=await k(join(e,pr));if(t===null)return null;try{return JSON.parse(t).files??{}}catch{return null}}s(Jee,"readManifestFiles");async function Yee(e,t,r){if(e.manifestEntry===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:false};let n=join(t,e.name);if(!await j(n))return r.warn(`Pack "${e.name}" directory missing at ${n}; only manifest entries will be removed.`),{plan:e,modifications:[],action:"proceed",legacyMigrated:false,packDirMissing:true};let o=await SW(n,{warn:r.warn,dryRun:r.dryRun===true}),i=o!==null,a=o!==null&&r.dryRun===true?o.manifest.files:await Jee(n);if(a===null)return {plan:e,modifications:[],action:"proceed",legacyMigrated:i,packDirMissing:false};let l=await Nh(n,a);if(r.keepPack||l.length===0)return {plan:e,modifications:l,action:"proceed",legacyMigrated:i,packDirMissing:false};let c=await IW({packName:e.name,modifications:l},{bypass:r.bypassPrompts},r.adapter);return c.action==="abort"?"abort":{plan:e,modifications:l,action:c.action,legacyMigrated:i,packDirMissing:false}}s(Yee,"decideOne");async function CW(e,t,r){let n=[];for(let o of e){let i=await Yee(o,t,r);if(i==="abort")return {decisions:n,aborted:true};n.push(i);}return {decisions:n,aborted:false}}s(CW,"gatherUninstallDecisions");A();A();async function EW(e,t,r){if(!t.extends.some(c=>c.name===r))return false;let n=await k(e);if(n===null)throw new Error(`Missing config: ${e}`);let o=parse(n),i=Array.isArray(o.extends)?o.extends:[],a=i.filter(c=>typeof c!="object"||c===null?true:c.name!==r);if(a.length===i.length)return false;o.extends=a;let l=stringify(o,{indent:2,lineWidth:0});return await L(e,l.endsWith(`
|
|
363
404
|
`)?l:`${l}
|
|
364
|
-
`),true}s(
|
|
365
|
-
`);switch(await
|
|
366
|
-
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===
|
|
405
|
+
`),true}s(EW,"removeAgentsmeshExtendByName");async function wW(e){let{plan:t,canonicalDir:r,configPath:n,config:o}=e,i=false;t.packDir!==null&&await j(t.packDir)&&(await rm$1(t.packDir,{recursive:true}),i=true);let a=await GK(r,t.name),l=false;t.extendsEntry!==null&&(l=await EW(n,o,t.name));let c=t.packDir!==null,m=t.manifestEntry!==null,p=t.extendsEntry!==null,u=c&&!i||m&&!a||p&&!l;return {name:t.name,packDirRemoved:i,manifestEntryRemoved:a,extendsEntryRemoved:l,partial:u}}s(wW,"applyUninstall");function tte(e,t){return relative(e,t).replaceAll("\\","/")}s(tte,"toForwardSlashRel");function fL(e){return e.map(t=>({name:t,reason:"not found in installs.yaml"}))}s(fL,"buildSkipped");function bW(e,t,r){return e.plan.manifestEntry===null?null:tte(t,join(r,e.plan.name))}s(bW,"packPathFor");function OW(e,t,r){return e.map(n=>({name:n.plan.name,pack_path:bW(n,t,r),manifest_entry_removed:false,extends_entry_removed:false,generated_files_removed:0,modified_files_kept:n.modifications.map(o=>({relativePath:o.relativePath,status:o.status})),legacy_migrated:n.legacyMigrated,partial:n.action==="keep-modified"||n.plan.packDir===null}))}s(OW,"previewEntries");function AW(e,t,r,n){let o=e.action==="keep-modified"||!t.packDirRemoved;return {name:t.name,pack_path:bW(e,r,n),manifest_entry_removed:t.manifestEntryRemoved,extends_entry_removed:t.extendsEntryRemoved,generated_files_removed:0,modified_files_kept:o?e.modifications.map(i=>({relativePath:i.relativePath,status:i.status})):[],legacy_migrated:e.legacyMigrated,partial:t.partial}}s(AW,"appliedEntry");function rte(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(rte,"parseNames");function nte(){return {ask:s(e=>Rm(e),"ask"),write:s(e=>process.stdout.write(e),"write")}}s(nte,"defaultAdapter");async function vh(e,t,r,n={}){let o=e.global===true?"global":"project",i=e.all===true,a=e.force===true,l=e["dry-run"]===true,c=e["keep-pack"]===true,m=e["keep-generated"]===true,p=n.assumeTty===true||process.stdin.isTTY,u=rte(t),f=e.json===true;function g(S){return f||y.error(S),{exitCode:1,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}}}if(s(g,"validationFailure"),!i&&u.length===0)return g("Missing install name. Usage: agentsmesh uninstall <name>[,<name>...] [--all]");if(!p&&!a&&!l)return g("Non-interactive terminal: use --force or --dry-run for agentsmesh uninstall.");let{config:h,context:R}=await ye(r,o);await He(h,r);let _=await mm(R.canonicalDir);try{let S=await Ht(R.canonicalDir),I=join(R.canonicalDir,"packs"),b=_W({names:u,all:i,keepPack:c,keepGenerated:m,installs:S,extends:h.extends,packsDir:I}),{decisions:P,aborted:T}=await CW(b.removals,I,{adapter:n.promptAdapter??nte(),warn:s(ee=>y.warn(ee),"warn"),bypassPrompts:a||l||!p,keepPack:c,dryRun:l});if(T)return y.warn("Uninstall aborted at modification prompt."),{exitCode:130,data:{scope:o,mode:"uninstall",removed:[],skipped:[],failed:[],dryRun:l}};for(let ee of b.removals)for(let M of ee.warnings)y.warn(M);if(l){for(let ee of P)y.info(`[dry-run] Would uninstall pack "${ee.plan.name}".`);return {exitCode:0,data:{scope:o,mode:"uninstall",removed:OW(P,R.rootBase,I),skipped:fL(b.skipped),failed:[],dryRun:!0}}}let W=join(R.configDir,"agentsmesh.yaml"),$=[],Y=[];for(let ee of P){let M=ee.action==="keep-modified"?{...ee.plan,packDir:null}:ee.plan;try{let te=await wW({plan:M,canonicalDir:R.canonicalDir,configPath:W,config:h});$.push(AW(ee,te,R.rootBase,I));}catch(te){let Te=te instanceof Error?te.message:String(te);Y.push({name:ee.plan.name,reason:Te}),f||y.error(`Failed to uninstall "${ee.plan.name}": ${Te}`);}}return !m&&$.length>0?await gm("uninstall",o,R.rootBase):m&&$.length>0&&y.warn("--keep-generated: target files derived from the removed pack(s) may be stale until the next generate."),{exitCode:Y.length>0?1:0,data:{scope:o,mode:"uninstall",removed:$,skipped:fL(b.skipped),failed:Y,dryRun:!1}}}finally{await _();}}s(vh,"runUninstall");async function TW(e,t,r){return vh(e,t,r)}s(TW,"runUninstall");ne();function PW(e){let{data:t}=e;if(t.dryRun){if(t.removed.length===0){y.info("[dry-run] No installs matched.");return}y.info(`[dry-run] Would uninstall ${t.removed.length} pack(s):`);for(let r of t.removed){let n=r.pack_path===null?"extends-only":r.pack_path;y.info(` - ${r.name} (${n})`);}return}if(t.removed.length>0){let r=t.removed.map(n=>`"${n.name}"`).join(", ");y.success(`Uninstalled ${t.removed.length} pack(s): ${r}.`);}for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}": ${r.reason}`);}s(PW,"renderUninstall");tt();Vr();ne();function DW(e){let t=e.json===true;return {dryRun:e["dry-run"]===true,force:e.force===true||t,global:e.global===true,json:t,verbose:e.verbose===true}}s(DW,"readRefreshFlags");function NW(e){let t=[];for(let r of e)for(let n of r.split(",").map(o=>o.trim()).filter(Boolean))t.push(n);return t}s(NW,"parseRefreshNames");A();function ote(e){return e.modifications.length>0?"needs-consent":e.oldSha===e.newSha?"unchanged":"clean-update"}s(ote,"classifyRefreshPlan");async function FW(e,t,r){let n=join(t,e.name),o=e.version??null,i=join(n,pr),a=await k(i);if(a===null)return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest missing at ${i}`}};let l;try{l=JSON.parse(a).files??{};}catch{return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:[],classification:"error",error:{phase:"plan",message:`Pack manifest is corrupt at ${i}`}}}let c=[];await j(n)&&(c=await Nh(n,l));let m;try{m=await r.resolveRef(e);}catch(p){let u=p instanceof Error?p.message:String(p);return {name:e.name,entry:e,oldSha:o,newSha:o??"",modifications:c,classification:"error",error:{phase:"plan",message:u}}}return {name:e.name,entry:e,oldSha:o,newSha:m,modifications:c,classification:ote({modifications:c,oldSha:o,newSha:m})}}s(FW,"planSinglePack");function MW(){return async e=>{if(e.source_kind==="local")return e.version??"local";let t=xu(e.source);if(t===null||t.remoteUrl===void 0)throw new Error(`Cannot parse source for refresh: ${e.source}`);let r=e.original_ref!==void 0&&e.original_ref!==""?e.original_ref:t.ref??"HEAD";return kh(r,t.remoteUrl)}}s(MW,"createDefaultResolveRef");async function $W(e,t,r){try{await r.runInstallForRefresh(e.entry,e.newSha);}catch(n){return {success:false,phase:"apply",error:n instanceof Error?n.message:String(n)}}try{let n=(r.now??(()=>new Date().toISOString()))(),i=(await Ht(t)).find(a=>a.name===e.entry.name);if(i===void 0)return {success:!1,phase:"manifest-update",error:`Entry "${e.entry.name}" not found after install`};await Ph(t,{...i,refreshed_at:n});}catch(n){return {success:false,phase:"manifest-update",error:n instanceof Error?n.message:String(n)}}return {success:true}}s($W,"applySinglePack");async function ste(e,t,r={}){let n=r.readLine??Rm,o,i=new Promise(a=>{o=setTimeout(()=>a("timeout"),t),o.unref?.();});try{let a=await Promise.race([n(e),i]);return a==="timeout"?"timeout":ite(a)}finally{o&&clearTimeout(o);}}s(ste,"promptWithTimeout");function ite(e){let t=e.trim().toLowerCase();return t==="y"||t==="yes"?"y":t==="per-pack"?"per-pack":"n"}s(ite,"normalize");async function gL(e,t){let n=[`The following ${e.length} pack(s) have local edits that refresh will overwrite:`,...e.map(i=>` - ${i.name}: ${i.modifiedCount} modified file(s)`),"Continue? [y/N/per-pack] (5 min timeout, default N) "].join(`
|
|
406
|
+
`);switch(await ste(n,t.timeoutMs,t)){case "y":return {proceed:true,perPack:false,declined:[]};case "per-pack":return {proceed:true,perPack:true,declined:[]};case "n":case "timeout":return {proceed:false,perPack:false,declined:e.map(i=>i.name)}}}s(gL,"runConsentPrompt");function ate(e,t){let r=xu(e.source);if(r===null||r.remoteUrl===void 0)return e.source;if(e.source_kind==="github"&&e.source.startsWith("github:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source_kind==="gitlab"&&e.source.startsWith("gitlab:")){let n=e.source.indexOf(":"),o=e.source.lastIndexOf("@");return `${o>n?e.source.slice(0,o):e.source}@${t}`}if(e.source.startsWith("git+")){let n=e.source.lastIndexOf("#");return `${n<0?e.source:e.source.slice(0,n)}#${t}`}return e.source}s(ate,"buildSourceForRefresh");function GW(e){return async(t,r)=>{let n={force:true,forceFreshMaterialize:true};e.scope==="global"&&(n.global=true),t.target!==void 0&&(n.target=t.target),t.as!==void 0&&(n.as=t.as),t.path!==void 0&&(n.path=t.path),t.paths!==void 0&&t.paths.length>0&&(n.all=true),n.name=t.name;let o={features:t.features,pick:t.pick,...t.original_ref!==void 0?{originalRef:t.original_ref}:{},...t.accepted_elevated!==void 0?{acceptedElevated:t.accepted_elevated}:{}},i=ate(t,r),a=await fl(n,[i],e.projectRoot,o);if(a.exitCode!==0)throw new Error(`Install for refresh "${t.name}" failed with exit code ${a.exitCode}`)}}s(GW,"createRunInstallForRefresh");var jW=300*1e3;async function Fh(e,t,r){let{dryRun:n,force:o,global:i,json:a}=DW(e),l=i?"global":"project",c=NW(t),m=s(()=>({scope:l,mode:"refresh",refreshed:[],unchanged:[],skipped:[],failed:[],dryRun:n}),"emptyData"),{config:p,context:u}=await ye(r,l);await He(p,r);let f=await mm(u.canonicalDir);try{let g=await Ht(u.canonicalDir);if(c.length>0){let M=new Set(g.map(Te=>Te.name)),te=c.filter(Te=>!M.has(Te));if(te.length>0)return a||y.error(`Unknown pack(s): ${te.join(", ")}`),{exitCode:2,data:m()}}let h=c.length>0?g.filter(M=>c.includes(M.name)):g;if(h.length===0)return a||y.info("No packs to refresh."),{exitCode:0,data:m()};let R=join(u.canonicalDir,"packs"),_=MW(),S=[];for(let M of h)S.push(await FW(M,R,{resolveRef:_}));let I=S.filter(M=>M.classification==="error"),b=S.filter(M=>M.classification==="unchanged"),P=S.filter(M=>M.classification==="clean-update"),T=S.filter(M=>M.classification==="needs-consent"),W=m();if(W.unchanged=b.map(M=>({name:M.name,ref:M.newSha})),W.failed=I.map(M=>({name:M.name,phase:"plan",error:M.error?.message??"unknown plan error"})),n){for(let M of P)W.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});for(let M of T)W.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}});return {exitCode:I.length>0?1:0,data:W}}let $=new Set(P.map(M=>M.name));if(T.length>0)if(o)for(let M of T)$.add(M.name);else {let M=await gL(T.map(te=>({name:te.name,modifiedCount:te.modifications.length})),{timeoutMs:jW});if(M.proceed&&!M.perPack)for(let te of T)$.add(te.name);else if(M.proceed&&M.perPack)for(let te of T)(await gL([{name:te.name,modifiedCount:te.modifications.length}],{timeoutMs:jW})).proceed?$.add(te.name):W.skipped.push({name:te.name,reason:"user-declined"});else for(let te of M.declined)W.skipped.push({name:te,reason:"user-declined"});}let Y=GW({projectRoot:r,scope:l});for(let M of [...P,...T]){if(!$.has(M.name))continue;let te=await $W(M,u.canonicalDir,{runInstallForRefresh:Y});te.success?W.refreshed.push({name:M.name,oldRef:M.oldSha,newRef:M.newSha,oldSha:M.oldSha,newSha:M.newSha,changedFiles:{added:[],removed:[],modified:[]}}):W.failed.push({name:M.name,phase:te.phase??"apply",error:te.error??"unknown"});}return W.refreshed.length>0&&await gm("refresh",l,u.rootBase),{exitCode:W.failed.length>0?1:0,data:W}}finally{await f();}}s(Fh,"runRefresh");async function UW(e,t,r){return Fh(e,t,r)}s(UW,"runRefresh");ne();function BW(e){let{data:t}=e;if(t.dryRun){if(t.refreshed.length===0&&t.unchanged.length===0){y.info("[dry-run] No packs to refresh.");return}y.info(`[dry-run] Would refresh ${t.refreshed.length} pack(s); ${t.unchanged.length} unchanged.`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);for(let r of t.unchanged)y.info(` - ${r.name}: unchanged at ${r.ref}`);return}if(t.refreshed.length>0){y.success(`Refreshed ${t.refreshed.length} pack(s):`);for(let r of t.refreshed)y.info(` - ${r.name}: ${r.oldSha??"\u2014"} \u2192 ${r.newSha}`);}for(let r of t.unchanged)y.info(`Pack "${r.name}" unchanged at ${r.ref}.`);for(let r of t.skipped)y.warn(`Skipped "${r.name}": ${r.reason}`);for(let r of t.failed)y.error(`Failed "${r.name}" (${r.phase}): ${r.error}`);}s(BW,"renderRefresh");tt();A();zc();async function mte(e){let t=await k(join(e,pr));if(t===null)return {installed_at:null,source_type:null};try{let r=JSON.parse(t);return {installed_at:typeof r.installed_at=="string"?r.installed_at:null,source_type:typeof r.source_type=="string"?r.source_type:null}}catch{return {installed_at:null,source_type:null}}}s(mte,"readPackManifestMeta");function pte(e,t){return relative(e,t).replaceAll("\\","/")}s(pte,"toForwardSlashRel");async function Mh(e,t){let r=e.global===true?"global":"project",n=Xi(t,r),o=await Ht(n.canonicalDir),i=join(n.canonicalDir,"packs"),a=[];for(let l of o){let c=join(i,l.name),m=await mte(c),p=await Mi(c);a.push({name:l.name,source:l.source,source_kind:l.source_kind,source_type:m.source_type,version:l.version??null,features:[...l.features],target:l.target??null,installed_at:m.installed_at,refreshed_at:l.refreshed_at??null,pack_path:pte(n.rootBase,c),license:p?.license??null});}return {exitCode:0,data:{scope:r,subcommand:"list",installs:a}}}s(Mh,"runInstallsList");var ute=["list"];function KW(e){return {scope:e,subcommand:"list",installs:[]}}s(KW,"emptyData");async function WW(e,t,r){let n=e.global===true?"global":"project",o=t[0];return o===void 0||o===""?{exitCode:0,data:KW(n),showHelp:true}:o==="list"?Mh(e,r):{exitCode:2,data:KW(n),showHelp:true,error:`Unknown installs subcommand: "${o}". Available: ${ute.join(", ")}. Did you mean \`agentsmesh install ${o}\`?`}}s(WW,"runInstalls");ne();var $h=[{key:"name",label:"NAME"},{key:"source",label:"SOURCE"},{key:"features",label:"FEATURES"},{key:"license",label:"LICENSE"},{key:"installed",label:"LAST TOUCHED"}];function dte(e){let t=e.refreshed_at??e.installed_at??null;return {name:e.name,source:e.source,features:e.features.join(", "),license:e.license??"-",installed:t?t.slice(0,10):"-"}}s(dte,"toRow");function fte(e){let t={name:0,source:0,features:0,license:0,installed:0};for(let n of $h)t[n.key]=n.label.length;for(let n of e)for(let o of $h)t[o.key]=Math.max(t[o.key],n[o.key].length);let r=$h.map(n=>n.label.padEnd(t[n.key])).join(" ");y.info(r);for(let n of e)y.info($h.map(o=>n[o.key].padEnd(t[o.key])).join(" "));}s(fte,"renderTable");function HW(e){if(e.error&&y.error(e.error),e.showHelp){Ju("installs");return}let{data:t}=e;if(t.installs.length===0){y.info("No installed packs.");return}fte(t.installs.map(dte));}s(HW,"renderInstalls");eI();A();var _L="agentsmesh.yaml";async function SL(e){let t=join(e,_L),r=await k(t);return r===null?{}:parse(r)??{}}s(SL,"readScopedConfigRaw");async function VW(e,t){let r=join(e,_L),n=await k(r)??`version: 1
|
|
407
|
+
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===t.id))return;let i={id:t.id,source:t.source};t.version!==void 0&&(i.version=t.version),o.plugins.push(i),await L(r,stringify(o));}s(VW,"writePluginEntry");async function JW(e,t){let r=join(e,_L),n=await k(r);if(n===null)return false;let o=parse(n)??{},i=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==t),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==t));let a=o.plugins.length<i;return a&&await L(r,stringify(o)),a}s(JW,"removePluginEntry");async function YW(e,t,r){let n=t[0];if(n===void 0||n==="")return {exitCode:0,data:{subcommand:"list",plugins:[]},showHelp:true};switch(n){case "add":return gte(e,t.slice(1),r);case "list":return hte(r);case "remove":return yte(t.slice(1),r);case "info":return Rte(t.slice(1),r);default:return {exitCode:2,data:{subcommand:"list",plugins:[]},showHelp:true,error:`Unknown plugin subcommand: ${n}`}}}s(YW,"runPlugin");async function gte(e,t,r){let n=t[0];if(!n)throw new Pn("Usage: agentsmesh plugin add <source> [--version <v>] [--id <id>]");let o=typeof e.version=="string"?e.version:"latest",a=(typeof e.id=="string"?e.id:void 0)??_te(n);return await VW(r,{id:a,source:n,version:o==="latest"?void 0:o}),{exitCode:0,data:{subcommand:"add",id:a,package:n,version:o}}}s(gte,"runPluginAdd");async function hte(e){let r=(await SL(e)).plugins??[],n=[];for(let o of r){let i="\u2717",a="";try{let l=await Wg(o,e);i=l.descriptors.length>0?"\u2713":"\u2713 (0 descriptors)",a=l.descriptors.map(c=>c.id).join(", ");}catch{}n.push({id:o.id,package:o.source,version:o.version,status:i,targets:a});}return {exitCode:0,data:{subcommand:"list",plugins:n}}}s(hte,"runPluginList");async function yte(e,t){let r=e[0];if(!r)throw new Pn("Usage: agentsmesh plugin remove <id>");let n=await JW(t,r);return {exitCode:0,data:{subcommand:"remove",id:r,found:n}}}s(yte,"runPluginRemove");async function Rte(e,t){let r=e[0];if(!r)throw new Pn("Usage: agentsmesh plugin info <id>");let o=((await SL(t)).plugins??[]).find(l=>l.id===r);if(!o)return {exitCode:1,data:{subcommand:"info",id:r,package:"",descriptors:[]}};let i;try{i=await Wg(o,t);}catch{return {exitCode:1,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:[]}}}let a=i.descriptors.map(l=>({id:l.id,description:l.emptyImportMessage}));return {exitCode:0,data:{subcommand:"info",id:r,package:o.source,version:o.version,descriptors:a}}}s(Rte,"runPluginInfo");function _te(e){let t=e;if(t.startsWith("@")){let n=t.indexOf("/");n!==-1&&(t=t.slice(n+1));}t.startsWith("agentsmesh-target-")&&(t=t.slice(18)),t.startsWith("file:")&&(t=t.slice(5));let r=t.replace(/\\/g,"/").split("/");return t=r[r.length-1]??t,t=t.replace(/\.(js|ts)$/,""),t=t.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),t||"plugin"}s(_te,"derivePluginId");ne();function XW(e){if(e.error&&y.error(e.error),e.showHelp){Cte();return}let{data:t}=e;switch(t.subcommand){case "add":Ste(t.id,t.package,t.version);break;case "list":kte(t.plugins);break;case "remove":Ite(t.id,t.found);break;case "info":Lte(t,e.exitCode);break}}s(XW,"renderPlugin");function Ste(e,t,r){y.success(`Plugin '${e}' added to agentsmesh.yaml`),y.warn("Plugins load as trusted Node.js modules and run with full process privileges. Only install plugins from sources you trust.");let n=r!=="latest"?`@${r}`:"@latest";y.info(`Next: npm install ${t}${n}`),y.info(`Then add '${e}' to pluginTargets in agentsmesh.yaml to enable it.`);}s(Ste,"renderAdd");function kte(e){if(e.length===0){y.info("No plugins configured. Use: agentsmesh plugin add <source>");return}y.info("Configured plugins:");for(let t of e){let r=t.version!==void 0?`@${t.version}`:"",n=t.status??"",o=t.targets??"";y.info(` ${t.id} | ${t.package}${r} | ${n} | ${o}`);}}s(kte,"renderList");function Ite(e,t){t?y.success(`Plugin '${e}' removed from agentsmesh.yaml`):y.warn(`Plugin '${e}' was not found in agentsmesh.yaml`);}s(Ite,"renderRemove");function Lte(e,t){if(t!==0&&e.package===""){y.error(`Plugin '${e.id}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`);return}if(t!==0){y.error(`Failed to load plugin '${e.id}'`);return}y.info(`Plugin: ${e.id}`),y.info(`Source: ${e.package}${e.version!==void 0?`@${e.version}`:""}`),y.info(`Descriptors: ${e.descriptors.length}`);for(let r of e.descriptors)y.info(` - ${r.id}: ${r.description}`);}s(Lte,"renderInfo");function Cte(){y.info("Usage: agentsmesh plugin <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" add <source> Register a plugin package in agentsmesh.yaml"),y.info(" list Show all configured plugins and load status"),y.info(" remove <id> Remove a plugin from agentsmesh.yaml"),y.info(" info <id> Show descriptor details for a configured plugin"),y.info(""),y.info("Flags (add):"),y.info(" --version <v> Pin plugin version"),y.info(" --id <id> Override derived plugin id"),y.info(""),y.info("Note: plugins load as trusted Node.js modules and run with full process privileges."),y.info(" Only install plugins from sources you trust.");}s(Cte,"printPluginHelp");A();Nn();function Bi(e){return e.toUpperCase().replace(/-/g,"_")}s(Bi,"toPrefix");function js(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}s(js,"toPascal");function kL(e){let t=Bi(e.id),r=js(e.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
367
408
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
368
409
|
import { generateRules } from './generator.js';
|
|
369
410
|
import { importFrom${r} } from './importer.js';
|
|
@@ -371,25 +412,25 @@ import { lintRules } from './linter.js';
|
|
|
371
412
|
import { lintHooks } from './lint.js';
|
|
372
413
|
import { build${r}ImportPaths } from '../../core/reference/import-map-builders.js';
|
|
373
414
|
import {
|
|
374
|
-
${
|
|
375
|
-
${
|
|
376
|
-
${
|
|
415
|
+
${t}_TARGET,
|
|
416
|
+
${t}_DIR,
|
|
417
|
+
${t}_GLOBAL_DIR,
|
|
377
418
|
} from './constants.js';
|
|
378
419
|
|
|
379
420
|
export const target: TargetGenerators = {
|
|
380
|
-
name: ${
|
|
421
|
+
name: ${t}_TARGET,
|
|
381
422
|
generateRules,
|
|
382
423
|
importFrom: importFrom${r},
|
|
383
424
|
};
|
|
384
425
|
|
|
385
426
|
const project: TargetLayout = {
|
|
386
427
|
managedOutputs: {
|
|
387
|
-
dirs: [${
|
|
428
|
+
dirs: [${t}_DIR],
|
|
388
429
|
files: [],
|
|
389
430
|
},
|
|
390
431
|
paths: {
|
|
391
432
|
rulePath(slug, _rule) {
|
|
392
|
-
return ${
|
|
433
|
+
return ${t}_DIR + '/' + slug + '.md';
|
|
393
434
|
},
|
|
394
435
|
commandPath(_name, _config) {
|
|
395
436
|
return null;
|
|
@@ -403,7 +444,7 @@ const project: TargetLayout = {
|
|
|
403
444
|
const global: TargetLayout = {
|
|
404
445
|
paths: {
|
|
405
446
|
rulePath(slug, _rule) {
|
|
406
|
-
return ${
|
|
447
|
+
return ${t}_GLOBAL_DIR + '/' + slug + '.md';
|
|
407
448
|
},
|
|
408
449
|
commandPath(_name, _config) {
|
|
409
450
|
return null;
|
|
@@ -413,20 +454,20 @@ const global: TargetLayout = {
|
|
|
413
454
|
},
|
|
414
455
|
},
|
|
415
456
|
rewriteGeneratedPath(path: string) {
|
|
416
|
-
if (path.startsWith(${
|
|
417
|
-
return ${
|
|
457
|
+
if (path.startsWith(${t}_DIR + '/')) {
|
|
458
|
+
return ${t}_GLOBAL_DIR + '/' + path.slice(${t}_DIR.length + 1);
|
|
418
459
|
}
|
|
419
460
|
return path;
|
|
420
461
|
},
|
|
421
462
|
};
|
|
422
463
|
|
|
423
464
|
export const descriptor = {
|
|
424
|
-
id: ${
|
|
465
|
+
id: ${t}_TARGET,
|
|
425
466
|
metadata: {
|
|
426
|
-
displayName: '${
|
|
467
|
+
displayName: '${e.displayName}',
|
|
427
468
|
category: 'cli', // TODO(agentsmesh-scaffold): 'cli' | 'ide' | 'agent-platform'
|
|
428
469
|
officialUrl: 'https://example.com', // TODO(agentsmesh-scaffold): official tool homepage or canonical docs URL
|
|
429
|
-
shortDescription: '${
|
|
470
|
+
shortDescription: '${e.displayName} \u2014 TODO(agentsmesh-scaffold): one-line description used in tool lists',
|
|
430
471
|
},
|
|
431
472
|
generators: target,
|
|
432
473
|
capabilities: {
|
|
@@ -445,7 +486,7 @@ export const descriptor = {
|
|
|
445
486
|
hooks: lintHooks,
|
|
446
487
|
},
|
|
447
488
|
emptyImportMessage:
|
|
448
|
-
'No ${
|
|
489
|
+
'No ${e.displayName} config found (${t}_DIR).',
|
|
449
490
|
lintRules,
|
|
450
491
|
project,
|
|
451
492
|
globalSupport: {
|
|
@@ -460,15 +501,15 @@ export const descriptor = {
|
|
|
460
501
|
ignore: 'none',
|
|
461
502
|
permissions: 'none',
|
|
462
503
|
},
|
|
463
|
-
detectionPaths: [${
|
|
504
|
+
detectionPaths: [${t}_GLOBAL_DIR],
|
|
464
505
|
layout: global,
|
|
465
506
|
},
|
|
466
507
|
buildImportPaths: build${r}ImportPaths,
|
|
467
|
-
detectionPaths: [${
|
|
508
|
+
detectionPaths: [${t}_DIR],
|
|
468
509
|
} satisfies TargetDescriptor;
|
|
469
|
-
`}s(
|
|
510
|
+
`}s(kL,"TEMPLATE_INDEX");function IL(e){return `import { describe, it, expect } from 'vitest';
|
|
470
511
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
471
|
-
import { generateRules } from '../../../../src/targets/${
|
|
512
|
+
import { generateRules } from '../../../../src/targets/${e.id}/generator.js';
|
|
472
513
|
|
|
473
514
|
function makeCanonical(overrides: Partial<CanonicalFiles> = {}): CanonicalFiles {
|
|
474
515
|
return {
|
|
@@ -484,7 +525,7 @@ function makeCanonical(overrides: Partial<CanonicalFiles> = {}): CanonicalFiles
|
|
|
484
525
|
};
|
|
485
526
|
}
|
|
486
527
|
|
|
487
|
-
describe('generateRules (${
|
|
528
|
+
describe('generateRules (${e.id})', () => {
|
|
488
529
|
it('returns an array', () => {
|
|
489
530
|
const result = generateRules(makeCanonical());
|
|
490
531
|
expect(Array.isArray(result)).toBe(true);
|
|
@@ -495,66 +536,66 @@ describe('generateRules (${t.id})', () => {
|
|
|
495
536
|
expect(result).toHaveLength(0);
|
|
496
537
|
});
|
|
497
538
|
});
|
|
498
|
-
`}s(
|
|
499
|
-
import { importFrom${
|
|
539
|
+
`}s(IL,"TEMPLATE_GENERATOR_TEST");function LL(e){let t=js(e.id);return `import { describe, it, expect } from 'vitest';
|
|
540
|
+
import { importFrom${t} } from '../../../../src/targets/${e.id}/importer.js';
|
|
500
541
|
|
|
501
|
-
describe('importFrom${
|
|
542
|
+
describe('importFrom${t} (${e.id})', () => {
|
|
502
543
|
it('returns an array', async () => {
|
|
503
|
-
const result = await importFrom${
|
|
544
|
+
const result = await importFrom${t}('/tmp/stub-project');
|
|
504
545
|
expect(Array.isArray(result)).toBe(true);
|
|
505
546
|
});
|
|
506
547
|
|
|
507
548
|
it('returns empty array by default', async () => {
|
|
508
|
-
const result = await importFrom${
|
|
549
|
+
const result = await importFrom${t}('/tmp/stub-project', { scope: 'project' });
|
|
509
550
|
expect(result).toHaveLength(0);
|
|
510
551
|
});
|
|
511
552
|
});
|
|
512
|
-
`}s(
|
|
553
|
+
`}s(LL,"TEMPLATE_IMPORTER_TEST");function CL(e){return `# ${e.displayName} Workspace
|
|
513
554
|
|
|
514
|
-
Follow the ${
|
|
515
|
-
`}s(
|
|
555
|
+
Follow the ${e.displayName} configuration files and keep changes small.
|
|
556
|
+
`}s(CL,"TEMPLATE_FIXTURE_ROOT_MD");function qW(e){let t=Bi(e.id);return `export const ${t}_TARGET = '${e.id}';
|
|
516
557
|
|
|
517
558
|
// Project-level paths
|
|
518
|
-
export const ${
|
|
519
|
-
export const ${
|
|
559
|
+
export const ${t}_DIR = '.${e.id}';
|
|
560
|
+
export const ${t}_RULES_DIR = '.${e.id}/rules';
|
|
520
561
|
|
|
521
562
|
// Global-level paths
|
|
522
|
-
export const ${
|
|
523
|
-
export const ${
|
|
563
|
+
export const ${t}_GLOBAL_DIR = '~/.${e.id}';
|
|
564
|
+
export const ${t}_GLOBAL_RULES_DIR = '~/.${e.id}/rules';
|
|
524
565
|
|
|
525
566
|
// Canonical paths
|
|
526
|
-
export const ${
|
|
527
|
-
export const ${
|
|
528
|
-
`}s(
|
|
529
|
-
import { ${
|
|
567
|
+
export const ${t}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
568
|
+
export const ${t}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
569
|
+
`}s(qW,"TEMPLATE_CONSTANTS");function QW(e){let t=Bi(e.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
570
|
+
import { ${t}_TARGET, ${t}_DIR } from './constants.js';
|
|
530
571
|
|
|
531
|
-
export interface ${
|
|
572
|
+
export interface ${js(e.id)}Output {
|
|
532
573
|
path: string;
|
|
533
574
|
content: string;
|
|
534
575
|
}
|
|
535
576
|
|
|
536
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
537
|
-
// TODO(agentsmesh-scaffold): implement generateRules for ${
|
|
538
|
-
void ${
|
|
539
|
-
void ${
|
|
577
|
+
export function generateRules(_canonical: CanonicalFiles): ${js(e.id)}Output[] {
|
|
578
|
+
// TODO(agentsmesh-scaffold): implement generateRules for ${e.displayName}
|
|
579
|
+
void ${t}_TARGET;
|
|
580
|
+
void ${t}_DIR;
|
|
540
581
|
return [];
|
|
541
582
|
}
|
|
542
|
-
`}s(
|
|
583
|
+
`}s(QW,"TEMPLATE_GENERATOR");function ZW(e){let t=js(e.id),r=Bi(e.id);return `import type { ImportResult } from '../../core/types.js';
|
|
543
584
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
544
585
|
import { ${r}_TARGET } from './constants.js';
|
|
545
586
|
|
|
546
|
-
export async function importFrom${
|
|
587
|
+
export async function importFrom${t}(
|
|
547
588
|
_projectRoot: string,
|
|
548
589
|
_options?: { scope?: TargetLayoutScope },
|
|
549
590
|
): Promise<ImportResult[]> {
|
|
550
|
-
// TODO(agentsmesh-scaffold): implement importFrom${
|
|
591
|
+
// TODO(agentsmesh-scaffold): implement importFrom${t} for ${e.displayName}
|
|
551
592
|
void ${r}_TARGET;
|
|
552
593
|
return [];
|
|
553
594
|
}
|
|
554
|
-
`}s(
|
|
595
|
+
`}s(ZW,"TEMPLATE_IMPORTER");function eH(e){let t=Bi(e.id);return `/** Lint rules for the ${e.id} target. */
|
|
555
596
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
556
597
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
557
|
-
import { ${
|
|
598
|
+
import { ${t}_TARGET } from './constants.js';
|
|
558
599
|
|
|
559
600
|
export function lintRules(
|
|
560
601
|
canonical: CanonicalFiles,
|
|
@@ -566,39 +607,51 @@ export function lintRules(
|
|
|
566
607
|
checkGlobMatches: options?.scope !== 'global',
|
|
567
608
|
}).map((diagnostic) => ({
|
|
568
609
|
...diagnostic,
|
|
569
|
-
target: ${
|
|
610
|
+
target: ${t}_TARGET,
|
|
570
611
|
}));
|
|
571
612
|
}
|
|
572
|
-
`}s(
|
|
573
|
-
* ${
|
|
613
|
+
`}s(eH,"TEMPLATE_LINTER");function tH(e){return `/**
|
|
614
|
+
* ${e.displayName}-specific lint hooks.
|
|
574
615
|
*/
|
|
575
616
|
|
|
576
617
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
577
618
|
|
|
578
619
|
export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
579
|
-
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${
|
|
620
|
+
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${e.displayName}
|
|
580
621
|
return [];
|
|
581
622
|
}
|
|
582
|
-
`}s(
|
|
583
|
-
import { ${r}_DIR } from '../../../targets/${
|
|
623
|
+
`}s(tH,"TEMPLATE_LINT_HOOKS");function rH(e){let t=js(e.id),r=Bi(e.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
624
|
+
import { ${r}_DIR } from '../../../targets/${e.id}/constants.js';
|
|
584
625
|
|
|
585
|
-
export async function build${
|
|
626
|
+
export async function build${t}ImportPaths(
|
|
586
627
|
_refs: Map<string, string>,
|
|
587
628
|
_projectRoot: string,
|
|
588
629
|
_scope: TargetLayoutScope = 'project',
|
|
589
630
|
): Promise<void> {
|
|
590
|
-
// TODO(agentsmesh-scaffold): implement import path mapping for ${
|
|
631
|
+
// TODO(agentsmesh-scaffold): implement import path mapping for ${e.displayName}
|
|
591
632
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
592
633
|
void ${r}_DIR;
|
|
593
634
|
}
|
|
594
|
-
`}s(
|
|
595
|
-
${stringify(
|
|
635
|
+
`}s(rH,"TEMPLATE_IMPORT_MAP");var wte=/^[a-z][a-z0-9-]*$/;async function nH(e){let{id:t,projectRoot:r,force:n=false}=e,o=e.displayName??t,i={id:t,displayName:o};if(!wte.test(t))throw new Error(`Invalid target id "${t}". Must match /^[a-z][a-z0-9-]*$/ (lowercase letters, digits, hyphens; start with a letter).`);if(je.includes(t))throw new Error(`Target "${t}" already exists as a built-in target. Choose a different id.`);let a=[{rel:`src/targets/${t}/constants.ts`,content:qW(i)},{rel:`src/targets/${t}/index.ts`,content:kL(i)},{rel:`src/targets/${t}/generator.ts`,content:QW(i)},{rel:`src/targets/${t}/importer.ts`,content:ZW(i)},{rel:`src/targets/${t}/linter.ts`,content:eH(i)},{rel:`src/targets/${t}/lint.ts`,content:tH(i)},{rel:`src/core/reference/import-maps/${t}.ts`,content:rH(i)},{rel:`tests/unit/targets/${t}/generator.test.ts`,content:IL(i)},{rel:`tests/unit/targets/${t}/importer.test.ts`,content:LL(i)},{rel:`tests/e2e/fixtures/${t}-project/AGENTS.md`,content:CL(i)}],l=[],c=[];for(let p of a){let u=join(r,p.rel);if(!n&&await j(u)){c.push(u);continue}await L(u,p.content),l.push(u);}let m=["1. Run: pnpm catalog:generate (auto-discovers the new target \u2014 updates IDs, descriptors, and import-map barrel)",`2. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${t}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${t}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}s(nH,"writeTargetScaffold");async function sH(e,t,r){let n=t[0];return n===void 0||n===""?{exitCode:0,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true}:n==="scaffold"?bte(e,t.slice(1),r):{exitCode:2,data:{id:"",written:[],skipped:[],postSteps:[]},showHelp:true,error:`Unknown target subcommand: ${n}`}}s(sH,"runTarget");async function bte(e,t,r){let n=t[0];if(!n)throw new Pn("Usage: agentsmesh target scaffold <id> [--name <displayName>] [--force]");let o=typeof e.name=="string"?e.name:void 0,i=e.force===true,a;try{a=await nH({id:n,displayName:o,projectRoot:r,force:i});}catch(l){return {exitCode:1,data:{id:n,written:[],skipped:[],postSteps:[]},error:l instanceof Error?l.message:String(l)}}return {exitCode:0,data:{id:n,written:a.written.map(l=>oH(l,r)),skipped:a.skipped.map(l=>oH(l,r)),postSteps:a.postSteps}}}s(bte,"runScaffold");function oH(e,t){return (e.startsWith(t)?e.slice(t.length+1):e).replaceAll("\\","/")}s(oH,"relativize");ne();function iH(e){if(e.error&&y.error(e.error),e.showHelp){Ote();return}let{data:t}=e;for(let r of t.written)y.success(`created ${r}`);for(let r of t.skipped)y.warn(`skipped ${r} (already exists \u2014 use --force to overwrite)`);if(t.written.length>0){y.info(""),y.info("Next steps:");for(let r of t.postSteps)y.info(` ${r}`);}}s(iH,"renderTarget");function Ote(){y.info("Usage: agentsmesh target <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:"),y.info(" scaffold <id> Generate a new target skeleton (files, tests, fixture)"),y.info(""),y.info("Flags (scaffold):"),y.info(" --name <displayName> Human-readable name (defaults to id)"),y.info(" --force Overwrite existing files");}s(Ote,"printTargetHelp");rt();Zi();A();tt();Vr();vo();function Fte(e,t){return e===".agentsmesh"?false:!!(e.startsWith(".")||!t)}s(Fte,"shouldSymlink");function Mte(e){let t=mkdtempSync(join(tmpdir(),"am-convert-")),r=readdirSync(e,{withFileTypes:true});for(let n of r){if(!Fte(n.name,n.isDirectory()))continue;let o=join(e,n.name),i=join(t,n.name);symlinkSync(o,i,n.isDirectory()?"dir":"file");}return mkdirSync(join(t,".agentsmesh"),{recursive:true}),t}s(Mte,"createTempProjectRoot");async function jh(e,t){let r=t??process.cwd(),n=e.global===true?"global":"project",o=n==="global"?homedir():r,i=e.from,a=e.to;if(typeof i!="string"||!i)throw new Error("--from is required. Example: agentsmesh convert --from cursor --to claude-code");if(typeof a!="string"||!a)throw new Error("--to is required. Example: agentsmesh convert --from cursor --to claude-code");let l=i.toLowerCase().trim(),c=a.toLowerCase().trim();if(l===c)throw new Error("--from and --to must be different targets.");let m=Vt(l),p=Vt(c);if(!m||!p)try{let{config:_}=await ye(r,"project");await He(_,r);}catch{let _=[];throw m||_.push(`--from "${i}"`),p||_.push(`--to "${a}"`),new Error(`Unknown ${_.join(" and ")}. Supported: ${je.join(", ")}.`)}let u=re(l);if(!u)throw new Error(`Unknown --from "${i}". Supported: ${je.join(", ")}.`);if(!re(c))throw new Error(`Unknown --to "${a}". Supported: ${je.join(", ")}.`);let g=e["dry-run"]===true,h=g?"dry-run":"convert",R=Mte(o);try{await u.generators.importFrom(R,{scope:n});let _=await Gt(R),S=Yi.parse({version:1,targets:p?[c]:[],pluginTargets:p?[]:[c]}),I=await zr({config:S,canonical:_,projectRoot:o,scope:n,targetFilter:[c]});if(!g){for(let T of I)if(T.status==="created"||T.status==="updated"){let W=Xc(o,T.path,T.target);await L(W,T.content);}}let b=I.filter(T=>T.status!=="skipped"),P=b.map(T=>({path:T.path,target:T.target,status:T.status}));return {exitCode:0,data:{from:l,to:c,mode:h,files:P,summary:{created:b.filter(T=>T.status==="created").length,updated:b.filter(T=>T.status==="updated").length,unchanged:b.filter(T=>T.status==="unchanged").length}}}}finally{rmSync(R,{recursive:true,force:true});}}s(jh,"runConvert");ne();function aH(e){let{data:t}=e;if(t.files.length===0){y.info(`No files found to convert from ${t.from}.`);return}if(t.mode==="dry-run"){for(let i of t.files)y.info(`[dry-run] ${i.status} ${i.path} (${i.target})`);return}for(let i of t.files)(i.status==="created"||i.status==="updated")&&y.success(`${i.status} ${i.path}`);let{created:r,updated:n,unchanged:o}=t.summary;r>0||n>0?y.info(`Converted from ${t.from} \u2192 ${t.to}: ${r} created, ${n} updated, ${o} unchanged`):y.info(`Nothing changed. (${o} unchanged)`);}s(aH,"renderConvert");var $te=/(^|\s)\/[A-Za-z]|^[A-Z]:[\\/]/,N=class extends Error{static{s(this,"McpError");}code;details;constructor(t,r,n){if($te.test(r))throw new Error(`McpError refuses absolute fs path in message: ${r}`);super(r),this.code=t,this.details=n;}toEnvelope(){return this.details===void 0?{code:this.code,message:this.message}:{code:this.code,message:this.message,details:this.details}}};function Sm(e){return e.replace(/(['"`])\/[^'"`\s]+\1/gu,"$1<redacted>$1").replace(/(['"`])[A-Z]:[\\/][^'"`\s]+\1/gu,"$1<redacted>$1").replace(/\/[A-Za-z][^\s'"`<>()]*/gu,"<redacted>").replace(/[A-Z]:[\\/][^\s'"`<>()]*/gu,"<redacted>")}s(Sm,"redactAbsolutePaths");async function EL(e){let t=resolve(e.projectRoot,".agentsmesh",e.feature),r=resolve(t,e.relativePath);if(!r.startsWith(t+sep)&&r!==t)throw new N("PATH_TRAVERSAL",`path escapes ${e.feature} directory`);if(Buffer.byteLength(e.content,"utf8")>1048576)throw new N("LIMIT_EXCEEDED","file body exceeds 1 MiB cap",{limit:1048576,actual:Buffer.byteLength(e.content,"utf8")});await mkdir(dirname(r),{recursive:true});let n=`${r}.tmp.${process.pid}.${Date.now()}`;return await writeFile(n,e.content,"utf8"),await rename(n,r),r}s(EL,"safeWrite");var zte=/^---\r?\n([\s\S]*?)\r?\n---\r?\n\r?\n?([\s\S]*)$/;function Wi(e){let t=zte.exec(e);if(!t)return {frontmatter:{},body:e};let[,r,n]=t;return {frontmatter:parse(r)??{},body:n}}s(Wi,"parseMd");function km(e,t){return Object.keys(e).length===0?t:`---
|
|
636
|
+
${stringify(e).trimEnd()}
|
|
596
637
|
---
|
|
597
638
|
|
|
598
|
-
${e}`}s(Fc,"serializeMd");var B8=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,K8={rules:"_root"};function pg(t){if(!B8.test(t)||t.includes(".."))throw new M("INVALID_NAME",`invalid name: ${t}`)}s(pg,"checkName");function ug(t,e,r){return resolve(t,".agentsmesh",e,`${r}.md`)}s(ug,"pathFor");function vc(t){let{feature:e,frontmatterSchema:r,toSummary:n}=t,o=s(l=>resolve(l,".agentsmesh",e),"featureDir");async function i(l){try{return (await readdir(o(l),{withFileTypes:!0})).filter(m=>m.isFile()&&m.name.endsWith(".md")).map(m=>m.name)}catch{return []}}s(i,"listFiles");async function a(l){try{return await stat(l),!0}catch{return false}}return s(a,"exists"),{async list(l){let c=await i(l.projectRoot),m=[];for(let p of c){let u=p.replace(/\.md$/,""),f=await readFile(join(o(l.projectRoot),p),"utf8"),{frontmatter:g}=Ci(f);m.push(n(u,g));}return m},async get(l,{name:c}){pg(c);let m=ug(l.projectRoot,e,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Ci(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new M("NOT_FOUND",`${e} "${c}" not found`):new M("IO_ERROR",`failed to read ${e}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){pg(c);let f=r.safeParse(m);if(!f.success)throw new M("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=ug(l.projectRoot,e,c);if(await a(g))throw new M("ALREADY_EXISTS",`${e} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new M("LIMIT_EXCEEDED",`${e} dir at ${1e3} entries`);let R=Fc(m,p);return u===true?{path:g,written:false}:(await dS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){pg(c);let g=ug(l.projectRoot,e,c),h;try{let b=await readFile(g,"utf8");h=Ci(b);}catch(b){let N=b.code;throw N==="ENOENT"?new M("NOT_FOUND",`${e} "${c}" not found`):new M("IO_ERROR",`failed to read ${e}`,{errno:N})}let R=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,k=r.safeParse(R);if(!k.success)throw new M("VALIDATION_FAILED","invalid frontmatter",k.error.issues);let I=p!==void 0?p:h.body,C=Fc(R,I);return f===true?{path:g,written:false}:(await dS({projectRoot:l.projectRoot,feature:e,relativePath:`${c}.md`,content:C}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(pg(c),K8[e]===c&&m!==true)throw new M("PROTECTED_FILE",`${e} "${c}" requires force: true`);let u=ug(l.projectRoot,e,c);if(!await a(u))throw new M("NOT_FOUND",`${e} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(vc,"createCanonicalHandlers");var W8=z$1.object({description:z$1.string().optional(),root:z$1.boolean().optional(),globs:z$1.array(z$1.string()).nullable().optional(),targets:z$1.array(z$1.string()).nullable().optional()}).passthrough(),o0=vc({feature:"rules",frontmatterSchema:W8,toSummary:s((t,e)=>({name:t,description:e.description??null,root:!!e.root,globs:e.globs??null,targets:e.targets??null}),"toSummary")});var H8=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),s0=vc({feature:"commands",frontmatterSchema:H8,toSummary:s((t,e)=>({name:t,description:e.description??null,allowedTools:e["allowed-tools"]??null}),"toSummary")});var z8=z$1.object({name:z$1.string().optional(),description:z$1.string().optional(),tools:z$1.array(z$1.string()).optional(),model:z$1.string().optional()}).passthrough(),i0=vc({feature:"agents",frontmatterSchema:z8,toSummary:s((t,e)=>({name:t,description:e.description??null,tools:e.tools??null,model:e.model??null}),"toSummary")});var V8=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),J8=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")'),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter fields (e.g. { description, globs, targets })"),body:z$1.string().describe("Markdown body content"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),Y8=z$1.object({}).strict();function gS(t,e){let r=t==="rule"?"rules":t==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:Y8,handler:s(n=>e.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${t}`,description:`Get a single ${t} by name`,inputSchema:V8,handler:s((n,o)=>e.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${t}`,description:`Create a new ${t}`,inputSchema:J8,handler:s((n,o)=>e.create(n,o),"handler")},{name:`update_${t}`,description:`Update a ${t}. Default: replace frontmatter entirely. Set merge=true to shallow-merge. Omitting body preserves the existing body.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to update"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter fields (replaces by default; set merge=true to shallow-merge)"),body:z$1.string().optional().describe("New markdown body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("If true, shallow-merge frontmatter instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),handler:s((n,o)=>e.update(n,o),"handler")},{name:`delete_${t}`,description:`Delete a ${t}. For rules: deleting _root requires force=true.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to delete"),force:z$1.boolean().optional().describe("Required to delete protected files like _root"),dry_run:z$1.boolean().optional().describe("Preview without deleting")}),handler:s((n,o)=>e.delete(n,o),"handler")}]}s(gS,"canonicalTools");var a0=[...gS("rule",o0),...gS("command",s0),...gS("agent",i0)];async function c0(t){let e=resolve(t.projectRoot,".agentsmesh/skills",t.skillName),r=resolve(e,t.filePath);if(!r.startsWith(e+sep)&&r!==e)throw new M("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new M("NOT_FOUND",`skill file not found: ${t.filePath}`):new M("IO_ERROR","failed to read skill file")}}s(c0,"safeRead");var r9=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,n9=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,d0=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Dp(t){if(!r9.test(t))throw new M("INVALID_NAME",`invalid skill name: ${t}`)}s(Dp,"checkName");function _S(t){if(!n9.test(t)||t.includes("..")||t.includes("//"))throw new M("PATH_TRAVERSAL",`invalid supporting-file path: ${t}`)}s(_S,"checkSupportPath");async function gg(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(t),{recursive:true});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s(gg,"atomicWrite");var f0=s(t=>resolve(t,".agentsmesh/skills"),"skillsDir"),Np=s((t,e)=>resolve(f0(t),e),"skillDir"),Ka={async list(t){let e;try{e=(await readdir(f0(t.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of e)try{let o=await readFile(resolve(Np(t.projectRoot,n),"SKILL.md"),"utf8"),i=Ci(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(t,{name:e}){Dp(e);let r=Np(t.projectRoot,e);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Ci(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:e,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new M("NOT_FOUND",`skill "${e}" not found`):new M("IO_ERROR","failed to read skill")}},async getFile(t,{name:e,path:r}){return Dp(e),_S(r),{content:await c0({projectRoot:t.projectRoot,skillName:e,filePath:r}),encoding:"utf-8"}},async create(t,e){Dp(e.name);let r=d0.safeParse(e.frontmatter);if(!r.success)throw new M("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=Np(t.projectRoot,e.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new M("ALREADY_EXISTS",`skill "${e.name}" exists`);let i=e.supportingFiles??{},a=Object.keys(i);if(a.forEach(_S),a.length+1>1e3)throw new M("LIMIT_EXCEEDED","supporting files exceed cap");if(e.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await gg(l,Fc(e.frontmatter,e.body));for(let[c,m]of Object.entries(i))await gg(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(t,e){Dp(e.name);let r=Np(t.projectRoot,e.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Ci(p);}catch(p){throw p.code==="ENOENT"?new M("NOT_FOUND",`skill "${e.name}" not found`):new M("IO_ERROR","failed to read skill")}let o=e.frontmatter===void 0?n.frontmatter:e.merge===true?{...n.frontmatter,...e.frontmatter}:e.frontmatter,i=d0.safeParse(o);if(!i.success)throw new M("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=e.body!==void 0?e.body:n.body,l=e.supportingFiles??{};Object.keys(l).forEach(_S);let c=[],m=[];if(e.dry_run===true)return Object.entries(l).forEach(([p,u])=>(u===null?m:c).push(p)),{path:r,written:false,supportingFilesAffected:{written:c,deleted:m}};await gg(resolve(r,"SKILL.md"),Fc(o,a));for(let[p,u]of Object.entries(l)){let f=resolve(r,p);if(u===null)try{await rm$1(f),m.push(p);}catch{}else await gg(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(t,{name:e,dry_run:r}){Dp(e);let n=Np(t.projectRoot,e);try{await stat(n);}catch{throw new M("NOT_FOUND",`skill "${e}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var o9=z$1.object({}).strict(),s9=z$1.object({name:z$1.string().describe("Item name")}),g0=[{name:"list_skills",description:"List skills",inputSchema:o9,handler:s(t=>Ka.list(t),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:s9,handler:s((t,e)=>Ka.get(t,e),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}"},{name:"get_skill_file",description:"Read a skill supporting file by name and relative path",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),path:z$1.string().describe('Relative path within the skill directory (e.g. "helper.md")')}),handler:s((t,e)=>Ka.getFile(t,e),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}/files/{path}"},{name:"create_skill",description:"Create a skill directory with SKILL.md and optional supporting files",inputSchema:z$1.object({name:z$1.string().describe("Skill name (becomes directory name)"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter for SKILL.md"),body:z$1.string().describe("Markdown body for SKILL.md"),supportingFiles:z$1.record(z$1.string(),z$1.string()).optional().describe("Map of relative-path \u2192 content for supporting files"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Ka.create(t,e),"handler")},{name:"update_skill",description:"Update a skill. supportingFiles: string value writes/replaces, null deletes, unlisted files are untouched.",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter (replaces by default; merge=true to shallow-merge)"),body:z$1.string().optional().describe("New body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("Shallow-merge frontmatter instead of replacing"),supportingFiles:z$1.record(z$1.string(),z$1.union([z$1.string(),z$1.null()])).optional().describe("Map of path \u2192 content (string=write, null=delete, absent=keep)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>Ka.update(t,e),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>Ka.delete(t,e),"handler")}];async function h0(t){if(t.filename!==void 0&&t.filename!=="agentsmesh.yaml")throw new M("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(t.content,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let e=resolve(t.projectRoot,"agentsmesh.yaml"),r=`${e}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,t.content,"utf8"),await rename(r,e),e}s(h0,"safeConfigWrite");So();Qc();async function Fp(t){try{return parse(await readFile(t,"utf8"))}catch(e){if(e.code==="ENOENT")return null;throw new M("IO_ERROR","failed to read yaml")}}s(Fp,"readYaml");async function $c(t,e){if(Buffer.byteLength(e,"utf8")>1048576)throw new M("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${t}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,e,"utf8"),await rename(r,t);}s($c,"atomicWrite");var rr={async getConfig(t){let e=await Fp(resolve(t.projectRoot,"agentsmesh.yaml"));if(e===null)throw new M("NO_PROJECT","agentsmesh.yaml missing");return e},async listMcpServers(t){let e=resolve(t.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await jr(e))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(t){return await Fp(resolve(t.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(t){return await Fp(resolve(t.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(t){try{return {patterns:(await readFile(resolve(t.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(t,e){let r=await Fp(resolve(t.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=e.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",e.targets),o("features",e.features),e.conversions!==void 0&&(n.conversions=e.merge===true&&r.conversions!==void 0?{...r.conversions,...e.conversions}:e.conversions);let i=wi.safeParse(n);if(!i.success)throw new M("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return e.dry_run===true?{path:resolve(t.projectRoot,"agentsmesh.yaml"),written:false}:{path:await h0({projectRoot:t.projectRoot,content:a,filename:e.filename}),written:true}},async addMcpServer(t,e){let r=resolve(t.projectRoot,".agentsmesh/mcp.json"),n=await jr(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[e.name]!==void 0)throw new M("ALREADY_EXISTS",`server "${e.name}" exists`);return n.mcpServers[e.name]=e.server,e.dry_run===true?{path:r,written:false}:(await $c(r,JSON.stringify(n,null,2)+`
|
|
599
|
-
`),{path:r,written:true})},async updateMcpServer(t
|
|
600
|
-
`),{path:r,written:true})},async removeMcpServer(t
|
|
601
|
-
`),{path:r,removed:true})},async updatePermissions(t
|
|
639
|
+
${t}`}s(km,"serializeMd");var qte=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,Qte={rules:"_root"};function Uh(e){if(!qte.test(e)||e.includes(".."))throw new N("INVALID_NAME",`invalid name: ${e}`)}s(Uh,"checkName");function Bh(e,t,r){return resolve(e,".agentsmesh",t,`${r}.md`)}s(Bh,"pathFor");function Im(e){let{feature:t,frontmatterSchema:r,toSummary:n}=e,o=s(l=>resolve(l,".agentsmesh",t),"featureDir");async function i(l){try{return (await readdir(o(l),{withFileTypes:!0})).filter(m=>m.isFile()&&m.name.endsWith(".md")).map(m=>m.name)}catch{return []}}s(i,"listFiles");async function a(l){try{return await stat(l),!0}catch{return false}}return s(a,"exists"),{async list(l){let c=await i(l.projectRoot),m=[];for(let p of c){let u=p.replace(/\.md$/,""),f=await readFile(join(o(l.projectRoot),p),"utf8"),{frontmatter:g}=Wi(f);m.push(n(u,g));}return m},async get(l,{name:c}){Uh(c);let m=Bh(l.projectRoot,t,c);try{let p=await readFile(m,"utf8"),{frontmatter:u,body:f}=Wi(p);return {name:c,frontmatter:u,body:f}}catch(p){let u=p.code;throw u==="ENOENT"?new N("NOT_FOUND",`${t} "${c}" not found`):new N("IO_ERROR",`failed to read ${t}`,{errno:u})}},async create(l,{name:c,frontmatter:m,body:p,dry_run:u}){Uh(c);let f=r.safeParse(m);if(!f.success)throw new N("VALIDATION_FAILED","invalid frontmatter",f.error.issues);let g=Bh(l.projectRoot,t,c);if(await a(g))throw new N("ALREADY_EXISTS",`${t} "${c}" exists`);if((await i(l.projectRoot)).length>=1e3)throw new N("LIMIT_EXCEEDED",`${t} dir at ${1e3} entries`);let R=km(m,p);return u===true?{path:g,written:false}:(await EL({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:R}),{path:g,written:true})},async update(l,{name:c,frontmatter:m,body:p,merge:u,dry_run:f}){Uh(c);let g=Bh(l.projectRoot,t,c),h;try{let b=await readFile(g,"utf8");h=Wi(b);}catch(b){let P=b.code;throw P==="ENOENT"?new N("NOT_FOUND",`${t} "${c}" not found`):new N("IO_ERROR",`failed to read ${t}`,{errno:P})}let R=m===void 0?h.frontmatter:u===true?{...h.frontmatter,...m}:m,_=r.safeParse(R);if(!_.success)throw new N("VALIDATION_FAILED","invalid frontmatter",_.error.issues);let S=p!==void 0?p:h.body,I=km(R,S);return f===true?{path:g,written:false}:(await EL({projectRoot:l.projectRoot,feature:t,relativePath:`${c}.md`,content:I}),{path:g,written:true})},async delete(l,{name:c,force:m,dry_run:p}){if(Uh(c),Qte[t]===c&&m!==true)throw new N("PROTECTED_FILE",`${t} "${c}" requires force: true`);let u=Bh(l.projectRoot,t,c);if(!await a(u))throw new N("NOT_FOUND",`${t} "${c}" not found`);return p===true?{path:u,deleted:false}:(await rm$1(u),{path:u,deleted:true})}}}s(Im,"createCanonicalHandlers");var Zte=z$1.object({description:z$1.string().optional(),root:z$1.boolean().optional(),globs:z$1.array(z$1.string()).nullable().optional(),targets:z$1.array(z$1.string()).nullable().optional()}).passthrough(),mH=Im({feature:"rules",frontmatterSchema:Zte,toSummary:s((e,t)=>({name:e,description:t.description??null,root:!!t.root,globs:t.globs??null,targets:t.targets??null}),"toSummary")});var ere=z$1.object({description:z$1.string().optional(),"allowed-tools":z$1.array(z$1.string()).optional()}).passthrough(),pH=Im({feature:"commands",frontmatterSchema:ere,toSummary:s((e,t)=>({name:e,description:t.description??null,allowedTools:t["allowed-tools"]??null}),"toSummary")});var tre=z$1.object({name:z$1.string().optional(),description:z$1.string().optional(),tools:z$1.array(z$1.string()).optional(),model:z$1.string().optional()}).passthrough(),uH=Im({feature:"agents",frontmatterSchema:tre,toSummary:s((e,t)=>({name:e,description:t.description??null,tools:t.tools??null,model:t.model??null}),"toSummary")});var rre=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")')}),nre=z$1.object({name:z$1.string().describe('Item name (e.g. "auth", "code-review")'),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter fields (e.g. { description, globs, targets })"),body:z$1.string().describe("Markdown body content"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),ore=z$1.object({}).strict();function bL(e,t){let r=e==="rule"?"rules":e==="command"?"commands":"agents";return [{name:`list_${r}`,description:`List ${r} with summary metadata`,inputSchema:ore,handler:s(n=>t.list(n),"handler"),resourceUri:`agentsmesh://canonical/${r}`},{name:`get_${e}`,description:`Get a single ${e} by name`,inputSchema:rre,handler:s((n,o)=>t.get(n,o),"handler"),resourceUri:`agentsmesh://canonical/${r}/{name}`},{name:`create_${e}`,description:`Create a new ${e}`,inputSchema:nre,handler:s((n,o)=>t.create(n,o),"handler")},{name:`update_${e}`,description:`Update a ${e}. Default: replace frontmatter entirely. Set merge=true to shallow-merge. Omitting body preserves the existing body.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to update"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter fields (replaces by default; set merge=true to shallow-merge)"),body:z$1.string().optional().describe("New markdown body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("If true, shallow-merge frontmatter instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview changes without writing to disk")}),handler:s((n,o)=>t.update(n,o),"handler")},{name:`delete_${e}`,description:`Delete a ${e}. For rules: deleting _root requires force=true.`,inputSchema:z$1.object({name:z$1.string().describe("Name of the item to delete"),force:z$1.boolean().optional().describe("Required to delete protected files like _root"),dry_run:z$1.boolean().optional().describe("Preview without deleting")}),handler:s((n,o)=>t.delete(n,o),"handler")}]}s(bL,"canonicalTools");var dH=[...bL("rule",mH),...bL("command",pH),...bL("agent",uH)];async function gH(e){let t=resolve(e.projectRoot,".agentsmesh/skills",e.skillName),r=resolve(t,e.filePath);if(!r.startsWith(t+sep)&&r!==t)throw new N("PATH_TRAVERSAL","file escapes skill directory");try{return await readFile(r,"utf8")}catch(n){throw n.code==="ENOENT"?new N("NOT_FOUND",`skill file not found: ${e.filePath}`):new N("IO_ERROR","failed to read skill file")}}s(gH,"safeRead");var pre=/^[a-zA-Z0-9_][a-zA-Z0-9_-]*$/,ure=/^[a-zA-Z0-9_][a-zA-Z0-9_/-]*\.[a-zA-Z0-9]+$/,_H=z$1.object({name:z$1.string().optional(),description:z$1.string().optional()}).passthrough();function Fu(e){if(!pre.test(e))throw new N("INVALID_NAME",`invalid skill name: ${e}`)}s(Fu,"checkName");function xL(e){if(!ure.test(e)||e.includes("..")||e.includes("//"))throw new N("PATH_TRAVERSAL",`invalid supporting-file path: ${e}`)}s(xL,"checkSupportPath");async function Hh(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new N("LIMIT_EXCEEDED","file body exceeds 1 MiB cap");await mkdir(dirname(e),{recursive:true});let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(Hh,"atomicWrite");var SH=s(e=>resolve(e,".agentsmesh/skills"),"skillsDir"),Mu=s((e,t)=>resolve(SH(e),t),"skillDir"),hl={async list(e){let t;try{t=(await readdir(SH(e.projectRoot),{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>n.name);}catch{return []}let r=[];for(let n of t)try{let o=await readFile(resolve(Mu(e.projectRoot,n),"SKILL.md"),"utf8"),i=Wi(o).frontmatter;r.push({name:n,description:i.description??null});}catch{}return r},async get(e,{name:t}){Fu(t);let r=Mu(e.projectRoot,t);try{let n=await readFile(resolve(r,"SKILL.md"),"utf8"),{frontmatter:o,body:i}=Wi(n),l=(await readdir(r)).filter(c=>c!=="SKILL.md").sort();return {name:t,frontmatter:o,body:i,supportingFiles:l}}catch(n){throw n.code==="ENOENT"?new N("NOT_FOUND",`skill "${t}" not found`):new N("IO_ERROR","failed to read skill")}},async getFile(e,{name:t,path:r}){return Fu(t),xL(r),{content:await gH({projectRoot:e.projectRoot,skillName:t,filePath:r}),encoding:"utf-8"}},async create(e,t){Fu(t.name);let r=_H.safeParse(t.frontmatter);if(!r.success)throw new N("VALIDATION_FAILED","invalid frontmatter",r.error.issues);let n=Mu(e.projectRoot,t.name),o=false;try{await stat(n),o=!0;}catch{}if(o)throw new N("ALREADY_EXISTS",`skill "${t.name}" exists`);let i=t.supportingFiles??{},a=Object.keys(i);if(a.forEach(xL),a.length+1>1e3)throw new N("LIMIT_EXCEEDED","supporting files exceed cap");if(t.dry_run===true)return {path:n,written:false,supportingFilesWritten:[]};let l=resolve(n,"SKILL.md");await Hh(l,km(t.frontmatter,t.body));for(let[c,m]of Object.entries(i))await Hh(resolve(n,c),m);return {path:n,written:true,supportingFilesWritten:a}},async update(e,t){Fu(t.name);let r=Mu(e.projectRoot,t.name),n;try{let p=await readFile(resolve(r,"SKILL.md"),"utf8");n=Wi(p);}catch(p){throw p.code==="ENOENT"?new N("NOT_FOUND",`skill "${t.name}" not found`):new N("IO_ERROR","failed to read skill")}let o=t.frontmatter===void 0?n.frontmatter:t.merge===true?{...n.frontmatter,...t.frontmatter}:t.frontmatter,i=_H.safeParse(o);if(!i.success)throw new N("VALIDATION_FAILED","invalid frontmatter",i.error.issues);let a=t.body!==void 0?t.body:n.body,l=t.supportingFiles??{};Object.keys(l).forEach(xL);let c=[],m=[];if(t.dry_run===true)return Object.entries(l).forEach(([p,u])=>(u===null?m:c).push(p)),{path:r,written:false,supportingFilesAffected:{written:c,deleted:m}};await Hh(resolve(r,"SKILL.md"),km(o,a));for(let[p,u]of Object.entries(l)){let f=resolve(r,p);if(u===null)try{await rm$1(f),m.push(p);}catch{}else await Hh(f,u),c.push(p);}return {path:r,written:true,supportingFilesAffected:{written:c,deleted:m}}},async delete(e,{name:t,dry_run:r}){Fu(t);let n=Mu(e.projectRoot,t);try{await stat(n);}catch{throw new N("NOT_FOUND",`skill "${t}" not found`)}return r===true?{path:n,deleted:false}:(await rm$1(n,{recursive:true}),{path:n,deleted:true})}};var dre=z$1.object({}).strict(),fre=z$1.object({name:z$1.string().describe("Item name")}),kH=[{name:"list_skills",description:"List skills",inputSchema:dre,handler:s(e=>hl.list(e),"handler"),resourceUri:"agentsmesh://canonical/skills"},{name:"get_skill",description:"Get one skill (frontmatter + body + supporting filenames)",inputSchema:fre,handler:s((e,t)=>hl.get(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}"},{name:"get_skill_file",description:"Read a skill supporting file by name and relative path",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),path:z$1.string().describe('Relative path within the skill directory (e.g. "helper.md")')}),handler:s((e,t)=>hl.getFile(e,t),"handler"),resourceUri:"agentsmesh://canonical/skills/{name}/files/{path}"},{name:"create_skill",description:"Create a skill directory with SKILL.md and optional supporting files",inputSchema:z$1.object({name:z$1.string().describe("Skill name (becomes directory name)"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).describe("YAML frontmatter for SKILL.md"),body:z$1.string().describe("Markdown body for SKILL.md"),supportingFiles:z$1.record(z$1.string(),z$1.string()).optional().describe("Map of relative-path \u2192 content for supporting files"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>hl.create(e,t),"handler")},{name:"update_skill",description:"Update a skill. supportingFiles: string value writes/replaces, null deletes, unlisted files are untouched.",inputSchema:z$1.object({name:z$1.string().describe("Skill name"),frontmatter:z$1.record(z$1.string(),z$1.unknown()).optional().describe("New frontmatter (replaces by default; merge=true to shallow-merge)"),body:z$1.string().optional().describe("New body (omit to preserve existing)"),merge:z$1.boolean().optional().describe("Shallow-merge frontmatter instead of replacing"),supportingFiles:z$1.record(z$1.string(),z$1.union([z$1.string(),z$1.null()])).optional().describe("Map of path \u2192 content (string=write, null=delete, absent=keep)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>hl.update(e,t),"handler")},{name:"delete_skill",description:"Delete a skill",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>hl.delete(e,t),"handler")}];async function IH(e){if(e.filename!==void 0&&e.filename!=="agentsmesh.yaml")throw new N("PATH_TRAVERSAL","only agentsmesh.yaml is writable");if(Buffer.byteLength(e.content,"utf8")>1048576)throw new N("LIMIT_EXCEEDED","config exceeds 1 MiB cap");let t=resolve(e.projectRoot,"agentsmesh.yaml"),r=`${t}.tmp.${process.pid}.${Date.now()}`;return await writeFile(r,e.content,"utf8"),await rename(r,t),t}s(IH,"safeConfigWrite");vo();Um();async function $u(e){try{return parse(await readFile(e,"utf8"))}catch(t){if(t.code==="ENOENT")return null;throw new N("IO_ERROR","failed to read yaml")}}s($u,"readYaml");async function Cm(e,t){if(Buffer.byteLength(t,"utf8")>1048576)throw new N("LIMIT_EXCEEDED","file exceeds 1 MiB cap");let r=`${e}.tmp.${process.pid}.${Date.now()}`;await writeFile(r,t,"utf8"),await rename(r,e);}s(Cm,"atomicWrite");var dr={async getConfig(e){let t=await $u(resolve(e.projectRoot,"agentsmesh.yaml"));if(t===null)throw new N("NO_PROJECT","agentsmesh.yaml missing");return t},async listMcpServers(e){let t=resolve(e.projectRoot,".agentsmesh/mcp.json");try{return {servers:(await Xr(t))?.mcpServers??null}}catch{return {servers:null}}},async getPermissions(e){return await $u(resolve(e.projectRoot,".agentsmesh/permissions.yaml"))??null},async getHooks(e){return await $u(resolve(e.projectRoot,".agentsmesh/hooks.yaml"))??null},async getIgnore(e){try{return {patterns:(await readFile(resolve(e.projectRoot,".agentsmesh/ignore"),"utf8")).split(/\r?\n/).filter(r=>r!==""&&!r.startsWith("#"))}}catch{return {patterns:null}}},async updateConfig(e,t){let r=await $u(resolve(e.projectRoot,"agentsmesh.yaml"))??{},n={...r},o=s((c,m)=>{m!==void 0&&(n[c]=t.merge===true&&Array.isArray(r[c])?Array.from(new Set([...r[c],...m])):m);},"apply");o("targets",t.targets),o("features",t.features),t.conversions!==void 0&&(n.conversions=t.merge===true&&r.conversions!==void 0?{...r.conversions,...t.conversions}:t.conversions);let i=Yi.safeParse(n);if(!i.success)throw new N("VALIDATION_FAILED","invalid config",i.error.issues);let a=stringify(n);return t.dry_run===true?{path:resolve(e.projectRoot,"agentsmesh.yaml"),written:false}:{path:await IH({projectRoot:e.projectRoot,content:a,filename:t.filename}),written:true}},async addMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await Xr(r).catch(()=>null)??{mcpServers:{}};if(n.mcpServers[t.name]!==void 0)throw new N("ALREADY_EXISTS",`server "${t.name}" exists`);return n.mcpServers[t.name]=t.server,t.dry_run===true?{path:r,written:false}:(await Cm(r,JSON.stringify(n,null,2)+`
|
|
640
|
+
`),{path:r,written:true})},async updateMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await Xr(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new N("NOT_FOUND",`server "${t.name}" not found`);return n.mcpServers[t.name]=t.merge===true?{...n.mcpServers[t.name],...t.server}:t.server,t.dry_run===true?{path:r,written:false}:(await Cm(r,JSON.stringify(n,null,2)+`
|
|
641
|
+
`),{path:r,written:true})},async removeMcpServer(e,t){let r=resolve(e.projectRoot,".agentsmesh/mcp.json"),n=await Xr(r).catch(()=>null);if(n===null||n.mcpServers[t.name]===void 0)throw new N("NOT_FOUND",`server "${t.name}" not found`);return delete n.mcpServers[t.name],t.dry_run===true?{path:r,removed:false}:(await Cm(r,JSON.stringify(n,null,2)+`
|
|
642
|
+
`),{path:r,removed:true})},async updatePermissions(e,t){let r=resolve(e.projectRoot,".agentsmesh/permissions.yaml"),n=await $u(r)??{allow:[],deny:[],ask:[]},o={...n},i=s((a,l)=>{l!==void 0&&(o[a]=t.mode==="append"?Array.from(new Set([...n[a]??[],...l])):l);},"apply");return i("allow",t.allow),i("deny",t.deny),i("ask",t.ask),t.dry_run===true?{path:r,written:false}:(await Cm(r,stringify(o)),{path:r,written:true})},async updateHooks(e,t){let r=resolve(e.projectRoot,".agentsmesh/hooks.yaml");return t.dry_run===true?{path:r,written:false}:(await Cm(r,stringify(t.hooks)),{path:r,written:true})},async updateIgnore(e,t){let r=resolve(e.projectRoot,".agentsmesh/ignore"),n;if(t.mode==="append"){let o=(await readFile(r,"utf8").catch(()=>"")).split(/\r?\n/).filter(Boolean);n=Array.from(new Set([...o,...t.patterns]));}else n=t.patterns;return t.dry_run===true?{path:r,written:false}:(await Cm(r,n.join(`
|
|
602
643
|
`)+`
|
|
603
|
-
`),{path:r,written:true})}};var S9=/[;&|`$<>!\\\r\n]/u,C9=/^[A-Za-z_][A-Za-z0-9_]*$/u,k9=/^[A-Za-z][A-Za-z0-9_-]*$/u,E9=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,R0=/[\r\n]/u,I0=/[\0\r\n]/u;function L9(t){return I0.test(t)?false:!t.split(/[/\\]/u).includes("..")}s(L9,"isSafeMcpCwd");function O9(t){return z$1.string().min(1).max(512).refine(e=>!S9.test(e),{message:`${t} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(O9,"noShellMeta");var SS=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(t=>!I0.test(t),{message:"description must not contain NUL or newline characters"}).optional(),command:O9("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(C9,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(t=>/^https?:\/\//u.test(t),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(k9,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(L9,{message:'cwd must not contain "..", NUL, or newline characters'}).optional(),disabled:z$1.boolean().optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict(),w9=z$1.object({type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),S0=z$1.string().max(256).refine(t=>!R0.test(t),{message:"hook matcher must not contain newlines"}),A9=z$1.object({matcher:S0,type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(t=>(t.command??"").length>0||(t.prompt??"").length>0,{message:"hook entry must define command or prompt"}),b9=z$1.object({matcher:S0,hooks:z$1.array(w9).min(1).max(50)}).strict(),P9=z$1.union([A9,b9]),C0=z$1.record(z$1.string().min(1).max(64),z$1.array(P9).max(100)),T9=z$1.string().min(1).max(256).refine(t=>!R0.test(t),{message:"permission pattern must not contain newlines"}).refine(t=>E9.test(t),{message:"permission pattern must match Tool or Tool(matcher) form"}),yg=z$1.array(T9).max(500);var vp=z$1.object({}).strict(),x9=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:vp,handler:s(t=>rr.getConfig(t),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:vp,handler:s(t=>rr.listMcpServers(t),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:vp,handler:s(t=>rr.getPermissions(t),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:vp,handler:s(t=>rr.getHooks(t),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:vp,handler:s(t=>rr.getIgnore(t),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],D9=[{name:"update_config",description:"Update agentsmesh.yaml. Default: replace listed fields. Set merge=true to union arrays and shallow-merge objects. Only writes agentsmesh.yaml, never agentsmesh.local.yaml.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe('Target tool IDs (e.g. ["claude-code", "cursor"])'),features:z$1.array(z$1.string()).optional().describe('Feature names (e.g. ["rules", "commands", "mcp"])'),conversions:z$1.record(z$1.string(),z$1.unknown()).optional().describe("Conversion overrides"),merge:z$1.boolean().optional().describe("If true, union arrays and shallow-merge objects instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.updateConfig(t,e),"handler")},{name:"add_mcp_server",description:"Add an MCP server entry to .agentsmesh/mcp.json. Fails if name already exists.",inputSchema:z$1.object({name:z$1.string().describe('Server name (e.g. "github", "filesystem")'),server:SS.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.addMcpServer(t,e),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:SS,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>rr.updateMcpServer(t,e),"handler")},{name:"remove_mcp_server",description:"Remove an MCP server entry",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((t,e)=>rr.removeMcpServer(t,e),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:yg.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:yg.optional().describe("Denied tool patterns"),ask:yg.optional().describe("Tools requiring confirmation"),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=union+dedup (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.updatePermissions(t,e),"handler")},{name:"update_hooks",description:"Replace hooks.yaml content entirely. Read current hooks with get_hooks, modify, then write back.",inputSchema:z$1.object({hooks:C0.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.updateHooks(t,e),"handler")},{name:"update_ignore",description:"Update .agentsmesh/ignore patterns. mode=replace (default) overwrites; mode=append adds new patterns.",inputSchema:z$1.object({patterns:z$1.array(z$1.string()).describe('Gitignore-syntax patterns (e.g. ["node_modules/", "dist/", ".env*"])'),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=add (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((t,e)=>rr.updateIgnore(t,e),"handler")}],k0=[...x9,...D9];dI();Sn();function N9(){return Object.fromEntries($t.map(t=>[t,Object.fromEntries(Object.entries(y$).map(([e,r])=>[e,r[t]]))]))}s(N9,"buildTargetIndex");var E0=N9(),CS={async list(){return E0},async get(t){let e=E0[t.targetId];if(e===void 0)throw new M("NOT_FOUND",`unknown target: ${t.targetId}`);return {targetId:t.targetId,capabilities:e}}};Io();Io();Yp();Zt();ho();Mr();ce();Sn();async function kS(t,e){let r=nt(t);if(!r)throw new In(t,{supported:[...$t,...pu().map(n=>n.id)]});return r.generators.importFrom(e.root,{scope:e.scope??"project"})}s(kS,"importFrom");async function Gc(t,e={}){let r=e.scope??"project",{config:n,context:o}=await yt(t,r);await Ut(n,t);let{canonical:i}=await Oe(n,o.configDir,{refreshRemoteCache:e.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Gc,"loadProjectContext");async function ES(t){let e=t.targetFilter?[...t.targetFilter]:void 0;return Bf(t.config,t.canonical,t.projectRoot,e,{scope:t.scope})}s(ES,"lint");async function LS(t){let e=await vr(t);return {...jf(e),results:e}}s(LS,"diff");async function OS(t){return Kf(t)}s(OS,"check");Io();ho();Ti();Yp();Tt();ce();Ot();A();function ki(t){if(t instanceof M)throw t;if(t instanceof In)throw new M("VALIDATION_FAILED",t.message);let e=t instanceof Error?t.message:String(t);throw /unknown.*--from|unknown.*--to|unknown target/i.test(e)?new M("VALIDATION_FAILED",e):/lock/i.test(e)?new M("LOCK_HELD","generate lock is held"):new M("IO_ERROR","engine failure",{reason:e})}s(ki,"wrapEngineError");async function L0(t,e){if(e.dry_run===true)throw new M("VALIDATION_FAILED","dry_run is not supported for import \u2014 the engine writes files directly. Use diff to preview changes instead.");try{let r=await kS(e.from,{root:t.projectRoot,scope:"project"});return {imported:r.length,files:r.map(n=>({fromPath:n.fromPath,toPath:n.toPath,feature:n.feature})),warnings:[],errors:[]}}catch(r){if(r instanceof In)throw new M("VALIDATION_FAILED",`unknown target "${e.from}"`);let n=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(n))throw new M("VALIDATION_FAILED",n);ki(r);}}s(L0,"importFromTarget");async function O0(t,e){try{let r={from:e.from,to:e.to,"dry-run":e.dry_run===!0},n=await mg(r,t.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:e.dry_run===!0,warnings:[],errors:[]}}catch(r){let n=r instanceof Error?r.message:String(r);if(/unknown.*--from|unknown.*--to|unknown target/i.test(n))throw new M("VALIDATION_FAILED",n);ki(r);}}s(O0,"convert");async function $9(t,e){try{let r=await Gc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,i=(await vr({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n})).filter(m=>m.status!=="skipped"),a=i.filter(m=>m.status==="created"||m.status==="updated");if(!e.dry_run)for(let m of a){let p=Ic(r.projectRoot,m.path,m.target);await S(p,m.content);}let l={};for(let m of a){let p=l[m.target]??{filesWritten:0};l[m.target]={filesWritten:p.filesWritten+1};}let c={filesWritten:a.length,byTarget:l,lockfileUpdated:!e.dry_run&&a.length>=0,errors:[],warnings:[]};return e.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){ki(r);}}s($9,"generate");async function G9(t,e){try{let r=await Gc(t.projectRoot),n=await ES({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(e.severity?n.diagnostics.filter(i=>i.level===e.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){ki(r);}}s(G9,"lint");async function j9(t){try{let e=await Gc(t.projectRoot),r=await OS({config:e.config,configDir:e.configDir,canonicalDir:e.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(e){ki(e);}}s(j9,"check");async function U9(t,e){try{let r=await Gc(t.projectRoot),n=e.targets&&e.targets.length>0?e.targets:void 0,o=await LS({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n});return {willCreate:o.summary.new,willModify:o.summary.updated,willDelete:o.summary.deleted}}catch(r){ki(r);}}s(U9,"diff");var Wa={generate:$9,lint:G9,check:j9,diff:U9,import:L0,convert:O0};var w0=z$1.object({}).strict(),A0=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:w0,handler:s(()=>CS.list(),"handler"),resourceUri:"agentsmesh://capabilities"},{name:"get_target_capabilities",description:"Get feature support levels for a specific target (e.g. which features are native, mapped, or unsupported)",inputSchema:z$1.object({targetId:z$1.string().describe('Target tool ID (e.g. "claude-code", "cursor")')}),handler:s((t,e)=>CS.get(e),"handler"),resourceUri:"agentsmesh://capabilities/{targetId}"},{name:"generate",description:"Generate target-native config files from canonical .agentsmesh/ content. Propagates rules, commands, agents, skills, MCP, hooks, ignore, and permissions to all configured targets.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets (default: all from agentsmesh.yaml)"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features"),verbose:z$1.boolean().optional().describe("Include full file list in response"),dry_run:z$1.boolean().optional().describe("Preview without writing files")}),handler:s((t,e)=>Wa.generate(t,e),"handler")},{name:"lint",description:"Lint canonical .agentsmesh/ files for schema errors, missing frontmatter, and other issues",inputSchema:z$1.object({severity:z$1.enum(["error","warning","info"]).optional().describe("Filter results by minimum severity")}),handler:s((t,e)=>Wa.lint(t,e),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:w0,handler:s(t=>Wa.check(t),"handler")},{name:"diff",description:"Preview what generate would create, modify, or delete without writing",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features")}),handler:s((t,e)=>Wa.diff(t,e),"handler")},{name:"import",description:"Import another tool's native config into canonical .agentsmesh/. Note: dry_run is not supported (the engine writes directly).",inputSchema:z$1.object({from:z$1.string().describe('Source target ID to import from (e.g. "cursor", "claude-code")'),features:z$1.array(z$1.string()).optional().describe("Restrict import to specific features"),dry_run:z$1.boolean().optional().describe("NOT SUPPORTED \u2014 will throw VALIDATION_FAILED. Use diff instead.")}),handler:s((t,e)=>Wa.import(t,e),"handler")},{name:"convert",description:"Convert config directly from one tool to another (e.g. Cursor \u2192 Claude Code) without creating canonical .agentsmesh/ files",inputSchema:z$1.object({from:z$1.string().describe('Source target ID (e.g. "cursor")'),to:z$1.string().describe('Destination target ID (e.g. "claude-code")'),dry_run:z$1.boolean().optional().describe("Preview conversion without writing files")}),handler:s((t,e)=>Wa.convert(t,e),"handler")}];function wS(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=Nc(e);throw /lock|LockAcquisitionError/i.test(r)?new M("LOCK_HELD",".install.lock is held by another process"):/missing source|usage:|non-interactive|invalid|unknown|not found|escapes the source root/i.test(r)?new M("VALIDATION_FAILED",r):new M("IO_ERROR","install pipeline failure",{reason:r})}s(wS,"wrapInstallError");function B9(t){let e={force:true};return t.path!==void 0&&(e.path=t.path),t.target!==void 0&&(e.target=t.target),t.as!==void 0&&(e.as=t.as),t.name!==void 0&&(e.name=t.name),t.extends===true&&(e.extends=true),t.all===true&&(e.all=true),t.sync===true&&(e.sync=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(B9,"toInstallFlags");function K9(t){let e={force:true};return t.all===true&&(e.all=true),t.keep_pack===true&&(e["keep-pack"]=true),t.keep_generated===true&&(e["keep-generated"]=true),t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(K9,"toUninstallFlags");async function W9(t,e){if(typeof e.source!="string"||e.source.trim().length===0)throw new M("VALIDATION_FAILED","install: `source` is required");try{let r=await Ua(B9(e),[e.source],t.projectRoot);if(r.exitCode!==0)throw new M("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){wS(r);}}s(W9,"install");async function H9(t,e){if(e.all!==true&&(!Array.isArray(e.names)||e.names.length===0))throw new M("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await sg(K9(e),e.names??[],t.projectRoot)).data}catch(r){wS(r);}}s(H9,"uninstall");async function z9(t,e={}){try{let r={};return e.global===!0&&(r.global=!0),(await ag(r,t.projectRoot)).data}catch(r){wS(r);}}s(z9,"installsList");var _g={install:W9,uninstall:H9,installsList:z9};function V9(t){let e={force:true};return t.dry_run===true&&(e["dry-run"]=true),t.global===true&&(e.global=true),e}s(V9,"toRefreshFlags");function J9(t){if(t instanceof M)throw t;let e=t instanceof Error?t.message:String(t),r=Nc(e);throw /lock|LockAcquisitionError/i.test(r)?new M("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new M("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new M("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new M("REFRESH_APPLY_FAILED",r):new M("IO_ERROR","refresh pipeline failure",{reason:r})}s(J9,"wrapRefreshError");async function Y9(t,e={}){try{let r=await ig(V9(e),[...e.names??[]],t.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=e.names??[],i=n?.error??(o.length>0?`unknown pack(s): ${o.join(", ")}`:"refresh validation failed");throw new M("VALIDATION_FAILED",i)}return r.data}catch(r){J9(r);}}s(Y9,"refresh");var b0={refresh:Y9};var X9=z$1.object({source:z$1.string().min(1).describe("Pack source \u2014 GitHub/GitLab shorthand (`github:org/repo[@ref]`), git URL, SSH URL, or local path (`local:./relative/dir`)."),path:z$1.string().optional().describe("Subdirectory within the source repo to install from. Combined with `as` for manual single-category installs."),target:z$1.string().optional().describe("Target tool ID hint for native-format auto-discovery (e.g. `claude-code`, `cursor`). Bypasses the multi-signal classifier."),as:z$1.enum(["rules","commands","agents","skills"]).optional().describe("Manual install kind. When set, the source is treated as a flat collection of that category (skips the auto-classifier)."),name:z$1.string().optional().describe("Override the generated install entry name (default: derived from `org-repo` shorthand or the source path)."),extends:z$1.boolean().optional().describe("Record as an `extends:` entry in `agentsmesh.yaml` instead of materializing a pack in `.agentsmesh/packs/`. Always-on-latest semantics; resolved every `generate`."),all:z$1.boolean().optional().describe("Install every sub-pack from a marketplace source (`.claude-plugin/marketplace.json`) or every flat collection in a multi-collection layout."),sync:z$1.boolean().optional().describe("Reinstall missing packs from `.agentsmesh/installs.yaml` instead of from `source`."),dry_run:z$1.boolean().optional().describe("Preview what would be installed without writing."),global:z$1.boolean().optional().describe("Install into the global scope (`~/.agentsmesh/`) instead of the project scope. Regenerates user-level outputs.")}),Z9=z$1.object({names:z$1.array(z$1.string().min(1)).default([]).describe("Install names to remove (from `installs.yaml`). Required unless `all: true`. Each name removes the pack directory under `.agentsmesh/packs/`, the matching `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row when present."),all:z$1.boolean().optional().describe("Remove every install in the current scope. `names` is ignored when `all: true`."),keep_pack:z$1.boolean().optional().describe("Leave `.agentsmesh/packs/<name>/` on disk; only drop yaml entries. Useful when the user has locally-modified files."),keep_generated:z$1.boolean().optional().describe("Skip the post-uninstall `generate` pass. Target trees keep now-stale files until the next manual `generate`; a warning lists what will be cleaned then."),dry_run:z$1.boolean().optional().describe("Preview the removal plan; no writes. Legacy-manifest migration runs in memory only."),global:z$1.boolean().optional().describe("Uninstall from the global scope (`~/.agentsmesh/`) instead of the project scope.")}),Q9=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),q9=z$1.object({names:z$1.array(z$1.string().min(1)).optional().describe("Pack names to refresh. Omit or pass empty array to refresh every installed pack in the current scope."),dry_run:z$1.boolean().optional().describe("Preview the refresh plan (resolved refs, drift detection) without writing."),global:z$1.boolean().optional().describe("Refresh packs in the global scope (`~/.agentsmesh/`) instead of the project scope.")}),P0=[{name:"install",description:"Install a community pack from a URL or local path. Auto-classifies the source layout (anthropic-skill-pack, canonical-agentsmesh, tool-native, or unknown) and dispatches accordingly; `--target` / `--as` override the classifier. Always runs non-interactively (every prompt accepts its documented `--force` default).",inputSchema:X9,handler:s((t,e)=>_g.install(t,e),"handler")},{name:"uninstall",description:"Remove one or more installed packs. Drops the pack directory, the `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row (when present), then runs `generate` so stale target files are cleaned. Mid-batch failures are isolated; survivors still apply and the response surfaces failures in `data.failed[]`.",inputSchema:Z9,handler:s((t,e)=>_g.uninstall(t,e),"handler")},{name:"installs_list",description:"List installed packs in the current scope. Read-only. Hydrates `installed_at` and `source_type` from each pack manifest where available; both are `null` for legacy packs without `.agentsmesh-install-manifest.json`.",inputSchema:Q9,handler:s((t,e)=>_g.installsList(t,e),"handler"),resourceUri:"agentsmesh://installs"},{name:"refresh",description:"Re-fetch and re-apply installed packs against their originally-recorded source/ref. Branch pins re-resolve to the current tip; tag pins re-resolve in case the tag moved; SHA pins stay put. Per-pack atomic via `materializePack` \u2014 a failure leaves the affected pack at its prior state. Always runs non-interactively (force: true) over MCP.",inputSchema:q9,handler:s((t,e)=>b0.refresh(t,e),"handler")}];function T0(t){let e=toJSONSchema(t,{target:"draft-07"});return delete e.$schema,e}s(T0,"zodToMcpSchema");var Rg=[...a0,...g0,...k0,...A0,...P0],AS=Rg.filter(t=>t.resourceUri!==void 0).map(t=>({uri:t.resourceUri,name:t.name,description:t.description,read:s((e,r)=>t.handler(e,r),"read")}));Ti();async function n6(t){let e=resolve(t);for(;;){try{return await stat(resolve(e,"agentsmesh.yaml")),e}catch{}let r=dirname(e);if(r===e)throw new M("NO_PROJECT","agentsmesh.yaml not found");e=r;}}s(n6,"findProjectRoot");async function bS(t){let e=await n6(t.cwd);return {projectRoot:e,loadCanonical:s(()=>we(e),"loadCanonical")}}s(bS,"resolveContext");async function d6(){let t=dirname(fileURLToPath(import.meta.url));for(let e of [resolve(t,"../../package.json"),resolve(t,"../package.json"),resolve(t,"../../../package.json")])try{let r=JSON.parse(await readFile(e,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(d6,"pkgVersion");function f6(t,e){return new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(e)}s(f6,"matchTemplate");function g6(t,e){let r=[...t.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+t.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(e);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(g6,"extractTemplateParams");async function D0(){let t=new Server({name:"agentsmesh-mcp",version:await d6()},{capabilities:{tools:{},resources:{}}});t.setRequestHandler(ListToolsRequestSchema,async()=>({tools:Rg.map(e=>({name:e.name,description:e.description,inputSchema:T0(e.inputSchema)}))})),t.setRequestHandler(CallToolRequestSchema,async e=>{let r=Rg.find(n=>n.name===e.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${e.params.name}`})}]};try{let n=r.inputSchema.safeParse(e.params.arguments??{});if(!n.success)throw new M("VALIDATION_FAILED","invalid input",n.error.issues);let o=await bS({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof M?n.toEnvelope():{code:"IO_ERROR",message:Nc(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),t.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:AS.map(e=>({uri:e.uri,name:e.name,description:e.description}))})),t.setRequestHandler(ReadResourceRequestSchema,async e=>{let r=AS.find(a=>a.uri===e.params.uri||f6(a.uri,e.params.uri));if(!r)throw new M("NOT_FOUND",`resource not found: ${e.params.uri}`);let n=await bS({cwd:process.cwd()}),o=g6(r.uri,e.params.uri),i=await r.read(n,o);return {contents:[{uri:e.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await t.connect(new StdioServerTransport);}s(D0,"startServer");ot();async function N0(t,e){vS(),await D0();}s(N0,"runMcp");var F0={generate:s(async(t,e)=>{let r=await Sc(t,void 0,{printMatrix:t.json!==true});le("generate",r,t,()=>Cc(r));},"generate"),init:s(async(t,e)=>{let r=await v$(process.cwd(),{yes:t.yes===true,global:t.global===true});le("init",r,t,()=>M$(r));},"init"),import:s(async(t,e)=>{let r=await G$(t);le("import",r,t,()=>Y$(r));},"import"),diff:s(async(t,e)=>{let r=await U$(t);le("diff",r,t,()=>X$(r));},"diff"),lint:s(async(t,e)=>{let r=await z$(t);le("lint",r,t,()=>V$(r));},"lint"),check:s(async(t,e)=>{let r=await tG(t);le("check",r,t,()=>J$(r));},"check"),merge:s(async(t,e)=>{let r=await nG(t);le("merge",r,t,()=>Z$(r));},"merge"),matrix:s(async(t,e)=>{let r=await up(t);le("matrix",r,t,()=>fp(r,{verbose:t.verbose===true}));},"matrix"),watch:s(async(t,e)=>{if(t.json===true){Ja("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let r=await q$(t),n=s(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",n),process.on("SIGTERM",n);},"watch"),install:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await mU(t,e,process.cwd());le("install",r,t,()=>pU(r));},"install"),uninstall:s(async(t,e)=>{t.json===true&&(t.force=true);let r=await LU(t,e,process.cwd());le("uninstall",r,t,()=>OU(r));},"uninstall"),refresh:s(async(t,e)=>{let r=await FU(t,e,process.cwd());le("refresh",r,t,()=>vU(r));},"refresh"),installs:s(async(t,e)=>{let r=await $U(t,e,process.cwd());le("installs",r,t,()=>GU(r));},"installs"),plugin:s(async(t,e)=>{let r=await KU(t,e,process.cwd());le("plugin",r,t,()=>WU(r));},"plugin"),target:s(async(t,e)=>{let r=await qU(t,e,process.cwd());le("target",r,t,()=>t0(r));},"target"),convert:s(async(t,e)=>{let r=await mg(t);le("convert",r,t,()=>e0(r));},"convert"),mcp:s(async(t,e)=>{await N0();},"mcp")};function _6(t){let e={},r=[],n="help";for(let o=0;o<t.length;o++){let i=t[o];if(n==="help"&&i==="--version")return {command:"version",flags:{},args:[]};if(n==="help"&&i==="--help")return {command:"help",flags:{},args:[]};if(i.startsWith("--")){let a=i.slice(2),l=t[o+1];l===void 0||l.startsWith("--")?e[a]=true:(e[a]=l,o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:e,args:r}}s(_6,"parseArgs");var R6=DS(F0);async function I6(t){let{command:e,flags:r,args:n}=t;if(e==="help"){Lg();return}if(e==="version"){$S();return}if(r.help===true){Up(e);return}r.json===true&&FS(),await R6.route(e,r,n);}s(I6,"main");function S6(){let t=process.argv[1];if(!t)return false;let e=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),t);return r===e||realpathSync(r)===realpathSync(e)}catch{return t.endsWith("cli.js")||t.includes("agentsmesh")}}s(S6,"isMainModule");if(S6()){let t=_6(process.argv.slice(2));I6(t).catch(e=>GS(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true,json:t.flags.json===true,command:t.command}));}
|
|
604
|
-
|
|
644
|
+
`),{path:r,written:true})}};var xre=/[;&|`$<>!\\\r\n]/u,Tre=/^[A-Za-z_][A-Za-z0-9_]*$/u,Pre=/^[A-Za-z][A-Za-z0-9_-]*$/u,Dre=/^[A-Za-z][A-Za-z0-9_-]*(\([^)]*\))?$/u,EH=/[\r\n]/u,wH=/[\0\r\n]/u;function Nre(e){return wH.test(e)?false:!e.split(/[/\\]/u).includes("..")}s(Nre,"isSafeMcpCwd");function vre(e){return z$1.string().min(1).max(512).refine(t=>!xre.test(t),{message:`${e} must not contain shell metacharacters (;&|\`$<>!\\\\, newlines)`})}s(vre,"noShellMeta");var DL=z$1.object({type:z$1.enum(["stdio","sse","http","streamable-http","streamable_http"]).optional(),description:z$1.string().max(1024).refine(e=>!wH.test(e),{message:"description must not contain NUL or newline characters"}).optional(),command:vre("command").optional(),args:z$1.array(z$1.string().max(2048)).max(100).optional(),env:z$1.record(z$1.string().regex(Tre,"env key must be a valid identifier"),z$1.string().max(8192)).optional(),url:z$1.string().url().max(2048).refine(e=>/^https?:\/\//u.test(e),{message:"url must use http(s) protocol"}).optional(),headers:z$1.record(z$1.string().regex(Pre,"header name must be a valid identifier"),z$1.string().max(8192)).optional(),cwd:z$1.string().max(2048).refine(Nre,{message:'cwd must not contain "..", NUL, or newline characters'}).optional(),disabled:z$1.boolean().optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict(),Fre=z$1.object({type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),bH=z$1.string().max(256).refine(e=>!EH.test(e),{message:"hook matcher must not contain newlines"}),Mre=z$1.object({matcher:bH,type:z$1.enum(["command","prompt"]).optional(),command:z$1.string().min(1).max(8192).optional(),prompt:z$1.string().min(1).max(8192).optional(),timeout:z$1.number().int().nonnegative().max(36e5).optional()}).strict().refine(e=>(e.command??"").length>0||(e.prompt??"").length>0,{message:"hook entry must define command or prompt"}),$re=z$1.object({matcher:bH,hooks:z$1.array(Fre).min(1).max(50)}).strict(),Gre=z$1.union([Mre,$re]),OH=z$1.record(z$1.string().min(1).max(64),z$1.array(Gre).max(100)),jre=z$1.string().min(1).max(256).refine(e=>!EH.test(e),{message:"permission pattern must not contain newlines"}).refine(e=>Dre.test(e),{message:"permission pattern must match Tool or Tool(matcher) form"}),Vh=z$1.array(jre).max(500);var Gu=z$1.object({}).strict(),Ure=[{name:"get_config",description:"Read agentsmesh.yaml",inputSchema:Gu,handler:s(e=>dr.getConfig(e),"handler"),resourceUri:"agentsmesh://config"},{name:"list_mcp_servers",description:"List MCP servers in canonical mcp.json",inputSchema:Gu,handler:s(e=>dr.listMcpServers(e),"handler"),resourceUri:"agentsmesh://canonical/mcp"},{name:"get_permissions",description:"Read permissions.yaml",inputSchema:Gu,handler:s(e=>dr.getPermissions(e),"handler"),resourceUri:"agentsmesh://canonical/permissions"},{name:"get_hooks",description:"Read hooks.yaml",inputSchema:Gu,handler:s(e=>dr.getHooks(e),"handler"),resourceUri:"agentsmesh://canonical/hooks"},{name:"get_ignore",description:"Read ignore patterns",inputSchema:Gu,handler:s(e=>dr.getIgnore(e),"handler"),resourceUri:"agentsmesh://canonical/ignore"}],Bre=[{name:"update_config",description:"Update agentsmesh.yaml. Default: replace listed fields. Set merge=true to union arrays and shallow-merge objects. Only writes agentsmesh.yaml, never agentsmesh.local.yaml.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe('Target tool IDs (e.g. ["claude-code", "cursor"])'),features:z$1.array(z$1.string()).optional().describe('Feature names (e.g. ["rules", "commands", "mcp"])'),conversions:z$1.record(z$1.string(),z$1.unknown()).optional().describe("Conversion overrides"),merge:z$1.boolean().optional().describe("If true, union arrays and shallow-merge objects instead of replacing"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.updateConfig(e,t),"handler")},{name:"add_mcp_server",description:"Add an MCP server entry to .agentsmesh/mcp.json. Fails if name already exists.",inputSchema:z$1.object({name:z$1.string().describe('Server name (e.g. "github", "filesystem")'),server:DL.describe('Server config (e.g. { type: "stdio", command: "npx", args: [...], env: {...} })'),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.addMcpServer(e,t),"handler")},{name:"update_mcp_server",description:"Update an MCP server entry (replace or merge)",inputSchema:z$1.object({name:z$1.string(),server:DL,merge:z$1.boolean().optional(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>dr.updateMcpServer(e,t),"handler")},{name:"remove_mcp_server",description:"Remove an MCP server entry",inputSchema:z$1.object({name:z$1.string(),dry_run:z$1.boolean().optional()}),handler:s((e,t)=>dr.removeMcpServer(e,t),"handler")},{name:"update_permissions",description:"Update permissions.yaml. mode=replace (default) overwrites listed fields; mode=append unions and dedups.",inputSchema:z$1.object({allow:Vh.optional().describe('Allowed tool patterns (e.g. ["Bash(npm run:*)"])'),deny:Vh.optional().describe("Denied tool patterns"),ask:Vh.optional().describe("Tools requiring confirmation"),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=union+dedup (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.updatePermissions(e,t),"handler")},{name:"update_hooks",description:"Replace hooks.yaml content entirely. Read current hooks with get_hooks, modify, then write back.",inputSchema:z$1.object({hooks:OH.describe("Full hooks structure (e.g. { PreToolUse: [...], PostToolUse: [...] })"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.updateHooks(e,t),"handler")},{name:"update_ignore",description:"Update .agentsmesh/ignore patterns. mode=replace (default) overwrites; mode=append adds new patterns.",inputSchema:z$1.object({patterns:z$1.array(z$1.string()).describe('Gitignore-syntax patterns (e.g. ["node_modules/", "dist/", ".env*"])'),mode:z$1.enum(["replace","append"]).optional().describe("replace=overwrite, append=add (default: replace)"),dry_run:z$1.boolean().optional().describe("Preview without writing")}),handler:s((e,t)=>dr.updateIgnore(e,t),"handler")}],AH=[...Ure,...Bre];sI();Nn();function Kre(){return Object.fromEntries(je.map(e=>[e,Object.fromEntries(Object.entries(t0).map(([t,r])=>[t,r[e]]))]))}s(Kre,"buildTargetIndex");var xH=Kre(),NL={async list(){return xH},async get(e){let t=xH[e.targetId];if(t===void 0)throw new N("NOT_FOUND",`unknown target: ${e.targetId}`);return {targetId:e.targetId,capabilities:t}}};No();No();rd();tt();Oo();Vr();rt();Nn();async function vL(e,t){let r=re(e);if(!r)throw new Dn(e,{supported:[...je,...Rd().map(n=>n.id)]});return r.generators.importFrom(t.root,{scope:t.scope??"project"})}s(vL,"importFrom");async function Em(e,t={}){let r=t.scope??"project",{config:n,context:o}=await ye(e,r);await He(n,e);let{canonical:i}=await Ft(n,o.configDir,{refreshRemoteCache:t.refreshRemoteCache===true},o.canonicalDir);return {config:n,canonical:i,projectRoot:o.rootBase,scope:r,configDir:o.configDir,canonicalDir:o.canonicalDir}}s(Em,"loadProjectContext");async function FL(e){let t=e.targetFilter?[...e.targetFilter]:void 0;return Rh(e.config,e.canonical,e.projectRoot,t,{scope:e.scope})}s(FL,"lint");async function ML(e){let t=await zr(e);return {...hh(t),results:t}}s(ML,"diff");async function $L(e){return _h(e)}s($L,"check");No();Oo();Zi();rd();xe();rt();be();function yl(e,t={}){let r=Math.max(1,t.cap??eh),n=lh(e),o=[],i=new Map;for(let[f,g]of Object.entries(e.lessons)){if(g.status!=="active")continue;if(t.trimOverCap===false||g.triggers.length<=r){i.set(f,g.triggers);continue}let h=[...g.triggers].sort((S,I)=>{let b=n.get(S),P=n.get(I);return b!==P?b-P:S<I?-1:1}),R=new Set(h.slice(r)),_=g.triggers.filter(S=>!R.has(S));i.set(f,_),o.push({id:f,removedTriggers:[...R],keptCount:_.length});}let a=[],l=[];if(t.knownPaths!==void 0){let f=uu(e,t.knownPaths);if(f.size>0){for(let[g,h]of i){let R=h.filter(S=>f.has(S));if(R.length===0)continue;let _=h.filter(S=>!f.has(S));_.length>=1?(i.set(g,_),a.push({id:g,removedTriggers:R,keptCount:_.length})):l.push(g);}l.sort();}}let c=new Set;for(let f of i.values())for(let g of f)c.add(g);let m=Object.keys(e.triggers).filter(f=>!c.has(f)).sort(),p=new Set;for(let f of Object.values(e.lessons))for(let g of f.topics)p.add(g);let u=Object.keys(e.topics).filter(f=>!p.has(f)).sort();return {removedTriggerIds:m,removedTopicIds:u,trimmedLessons:o,removedDeadGlobs:a,unreachableLessons:l,cap:r}}s(yl,"planPrune");function Jh(e,t){for(let n of [...t.trimmedLessons,...t.removedDeadGlobs??[]]){let o=e.lessons[n.id];if(o===void 0)continue;let i=new Set(n.removedTriggers);e.lessons[n.id]={...o,triggers:o.triggers.filter(a=>!i.has(a))};}for(let n of t.removedTopicIds)delete e.topics[n];let r=new Set(t.removedTriggerIds);if(r.size!==0){for(let[n,o]of Object.entries(e.lessons))o.triggers.some(i=>r.has(i))&&(e.lessons[n]={...o,triggers:o.triggers.filter(i=>!r.has(i))});for(let n of r)delete e.triggers[n];}}s(Jh,"applyPruneToGraph");function ju(e){return e.removedTriggerIds.length===0&&e.removedTopicIds.length===0&&e.trimmedLessons.length===0&&e.removedDeadGlobs.length===0}s(ju,"isEmptyPrunePlan");function Yre(e){let t=Ge(e).config;if(!existsSync(t))return false;try{let r=JSON.parse(readFileSync(t,"utf8"));return typeof r!="object"||r===null?!1:r.autoPrune===!0}catch{return false}}s(Yre,"isAutoPruneEnabled");async function TH(e,t){if(!Yre(e))return null;let r=Ve(e);if(r===null||ju(yl(r,{trimOverCap:false,knownPaths:t})))return null;let n={removedTriggers:0,removedTopics:0,detachedDeadGlobs:0};return await Et(e,i=>{let a=yl(i,{trimOverCap:false,knownPaths:t});ju(a)||(Jh(i,a),n={removedTriggers:a.removedTriggerIds.length,removedTopics:a.removedTopicIds.length,detachedDeadGlobs:a.removedDeadGlobs.reduce((l,c)=>l+c.removedTriggers.length,0)});}),n.removedTriggers+n.removedTopics+n.detachedDeadGlobs>0?n:null}s(TH,"maybeAutoPrune");function Yh(e,t){let r=e.replaceAll("\\","/"),n=PH(t,r);if(!n.startsWith("../"))return n;let o=PH(GL(t),GL(resolve(t,r)));return o.startsWith("../")?n:o}s(Yh,"normalizeRecallFile");function PH(e,t){let r=relative(e,resolve(e,t)).replaceAll("\\","/");return r===""?t.replaceAll("\\","/"):r}s(PH,"relativize");function GL(e){try{return realpathSync(e)}catch{let t=dirname(e);return t===e?e:resolve(GL(t),basename(e))}}s(GL,"safeRealpath");var lne="agentsmesh-lessons-seen";function Xh(e={}){if(e.disabled===true)return null;let t=e.explicit!==void 0&&e.explicit.trim().length>0?e.explicit.trim():am(e.env);if(t===void 0)return null;let r=cne(t);return {sessionId:t,seen:mne(r),path:r}}s(Xh,"openSessionDedup");function cne(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,200);return join(tmpdir(),lne,`${t}.json`)}s(cne,"seenPath");function mne(e){if(!existsSync(e))return new Set;try{let t=JSON.parse(readFileSync(e,"utf8"));return Array.isArray(t)?new Set(t.filter(r=>typeof r=="string")):new Set}catch{return new Set}}s(mne,"loadSeen");function qh(e,t){return t.filter(r=>!e.seen.has(r.id))}s(qh,"filterUnseen");function Qh(e,t){if(t.length===0)return;let r=new Set(e.seen);for(let n of t)r.add(n);if(r.size!==e.seen.size)try{mkdirSync(dirname(e.path),{recursive:!0});let n=`${e.path}.${process.pid}.tmp`;writeFileSync(n,JSON.stringify([...r]),"utf8"),renameSync(n,e.path);}catch{}}s(Qh,"commitSeen");async function Uu(e,t,r={}){try{await dt(e);}catch{}let n=Xg(e);if(n.status==="corrupt")return {lessons:[],totalMatches:0,suppressed:0,corrupt:true};if(n.status==="newer-version")return {lessons:[],totalMatches:0,suppressed:0,newerVersion:n.version};if(n.status==="absent")return {lessons:[],totalMatches:0,suppressed:0};let o=n.graph,i=t.file===void 0?t:{...t,file:Yh(t.file,e)},a=lm(o,i),l=Xh({explicit:r.sessionId,disabled:r.noDedup}),c=l===null?a:qh(l,a),m=ph(e),p=cm(o,i,c,{limit:r.limit??m.limit,maxTokens:r.maxTokens===null?void 0:r.maxTokens??m.maxTokens});return l!==null&&Qh(l,p.map(u=>u.id)),UL(e,o,i,a,p,{bypassed:false}),{lessons:p,totalMatches:a.length,suppressed:a.length-c.length}}s(Uu,"recallLessons");function UL(e,t,r,n,o,i={}){if(!$i())return;let a=MI(t,r),l=s(m=>n.filter(({lesson:p})=>p.triggers.some(u=>m.has(u))).length,"countVia"),c=am();gU(e,{ts:new Date().toISOString(),hasFile:r.file!==void 0,hasCommand:r.command!==void 0,hasKeyword:r.keyword!==void 0,totalMatches:n.length,returnedCount:o.length,returnedTokens:o.reduce((m,p)=>m+ml(p.lesson.rule),0),truncated:n.length>o.length,matchedByKind:{file:l(a.file_glob),command:l(a.command_pattern),keyword:l(a.keyword)},lessonIds:o.map(m=>m.id),bypassed:i.bypassed===true,...c!==void 0?{session:c}:{}});}s(UL,"recordRecallTelemetry");async function Bu(e,t,r={}){await dt(e);let n={file:t.triggers.files?.length??0,command:t.triggers.commands?.length??0,keyword:t.triggers.keywords?.length??0},o=r.knownPaths??Gi(e)??void 0;try{let i=await nh(e,t,{...r,knownPaths:o});FI(e,n,i);let a=await TH(e,o);return a===null?i:{...i,autoPruned:a}}catch(i){throw FI(e,n,null),i}}s(Bu,"captureLesson");async function Zh(e,t,r,n={}){return Et(e,o=>pne(o,t,r),{retries:n.retries})}s(Zh,"mergeLessons");function pne(e,t,r){if(t===r)throw new Error(`mergeLessons: cannot merge lesson "${t}" into itself.`);let n=e.lessons[t];if(n===void 0)throw new Error(`mergeLessons: unknown lesson "${t}".`);let o=e.lessons[r];if(o===void 0)throw new Error(`mergeLessons: unknown lesson "${r}".`);if(o.status!=="active")throw new Error(`mergeLessons: keeper "${r}" is not active (status: ${o.status}).`);if(n.status!=="active")throw new Error(`mergeLessons: loser "${t}" is already ${n.status}; nothing to merge.`);return e.lessons[r]={...o,triggers:BL(o.triggers,n.triggers),topics:BL(o.topics,n.topics),evidence:BL(o.evidence,n.evidence)},e.lessons[t]={...n,status:"superseded",supersededBy:r},{loserId:t,keeperId:r}}s(pne,"mergeInto");function BL(e,t){let r=[...e];for(let n of t)r.includes(n)||r.push(n);return r}s(BL,"union");var KL=String.raw`L\d+(?:\s*,\s*L\d+)*`,une=[new RegExp(String.raw`\s*\bSee\s+${KL}\.?`,"g"),new RegExp(String.raw`\s*\((?:${KL})\)\.?`,"g"),new RegExp(String.raw`\s*\[(?:${KL})\]\.?`,"g")],dne=/\s*\(also relevant[^)]*\)\s*/g;function WL(e){let t=e;for(let r of une)t=t.replace(r,"");return t=t.replace(dne," "),t.trim()}s(WL,"stripLegacyMarkers");function DH(e){let t=[];for(let[r,n]of Object.entries(e.lessons)){let o=WL(n.rule);o===n.rule||o.length===0||(t.push(r),e.lessons[r]={...n,rule:o});}return t.sort()}s(DH,"applyStrip");async function ey(e,t={}){await dt(e);let r=Ve(e);if(r===null)return {changedIds:[],changedCount:0};if(t.dryRun===true){let o=DH(r);return {changedIds:o,changedCount:o.length}}let n=[];return await Et(e,o=>{n=DH(o);}),{changedIds:n,changedCount:n.length}}s(ey,"stripMarkersInGraph");A();function Hi(e){if(e instanceof N)throw e;if(e instanceof Dn)throw new N("VALIDATION_FAILED",e.message);let t=e instanceof Error?e.message:String(e);throw /unknown.*--from|unknown.*--to|unknown target/i.test(t)?new N("VALIDATION_FAILED",t):/lock/i.test(t)?new N("LOCK_HELD","generate lock is held"):new N("IO_ERROR","engine failure",{reason:t})}s(Hi,"wrapEngineError");async function NH(e,t){if(t.dry_run===true)throw new N("VALIDATION_FAILED","dry_run is not supported for import \u2014 the engine writes files directly. Use diff to preview changes instead.");try{let r=await vL(t.from,{root:e.projectRoot,scope:"project"});return {imported:r.length,files:r.map(n=>({fromPath:n.fromPath,toPath:n.toPath,feature:n.feature})),warnings:[],errors:[]}}catch(r){if(r instanceof Dn)throw new N("VALIDATION_FAILED",`unknown target "${t.from}"`);let n=r instanceof Error?r.message:String(r);if(/unknown target|invalid target|not found/i.test(n))throw new N("VALIDATION_FAILED",n);Hi(r);}}s(NH,"importFromTarget");async function vH(e,t){try{let r={from:t.from,to:t.to,"dry-run":t.dry_run===!0},n=await jh(r,e.projectRoot);return {filesAffected:n.data.summary.created+n.data.summary.updated,dryRun:t.dry_run===!0,warnings:[],errors:[]}}catch(r){let n=r instanceof Error?r.message:String(r);if(/unknown.*--from|unknown.*--to|unknown target/i.test(n))throw new N("VALIDATION_FAILED",n);Hi(r);}}s(vH,"convert");async function fne(e,t){try{let r=await Em(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,i=(await zr({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n})).filter(m=>m.status!=="skipped"),a=i.filter(m=>m.status==="created"||m.status==="updated");if(!t.dry_run)for(let m of a){let p=Xc(r.projectRoot,m.path,m.target);await L(p,m.content);}let l={};for(let m of a){let p=l[m.target]??{filesWritten:0};l[m.target]={filesWritten:p.filesWritten+1};}let c={filesWritten:a.length,byTarget:l,lockfileUpdated:!t.dry_run&&a.length>=0,errors:[],warnings:[]};return t.verbose===!0&&(c.files=i.map(m=>m.path)),c}catch(r){Hi(r);}}s(fne,"generate");async function gne(e,t){try{let r=await Em(e.projectRoot),n=await FL({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope});return {issues:(t.severity?n.diagnostics.filter(i=>i.level===t.severity):n.diagnostics).map(i=>({level:i.level,file:i.file,target:i.target,message:i.message}))}}catch(r){Hi(r);}}s(gne,"lint");async function hne(e){try{let t=await Em(e.projectRoot),r=await $L({config:t.config,configDir:t.configDir,canonicalDir:t.canonicalDir});return {drift:!r.inSync,missing:[...r.removed],extra:[...r.added],modified:[...r.modified]}}catch(t){Hi(t);}}s(hne,"check");async function yne(e,t){try{let r=await Em(e.projectRoot),n=t.targets&&t.targets.length>0?t.targets:void 0,o=await ML({config:r.config,canonical:r.canonical,projectRoot:r.projectRoot,scope:r.scope,targetFilter:n});return {willCreate:o.summary.new,willModify:o.summary.updated,willDelete:o.summary.deleted}}catch(r){Hi(r);}}s(yne,"diff");var Rl={generate:fne,lint:gne,check:hne,diff:yne,import:NH,convert:vH};var FH=z$1.object({}).strict(),MH=[{name:"list_target_capabilities",description:"List support matrix for all targets",inputSchema:FH,handler:s(()=>NL.list(),"handler"),resourceUri:"agentsmesh://capabilities"},{name:"get_target_capabilities",description:"Get feature support levels for a specific target (e.g. which features are native, mapped, or unsupported)",inputSchema:z$1.object({targetId:z$1.string().describe('Target tool ID (e.g. "claude-code", "cursor")')}),handler:s((e,t)=>NL.get(t),"handler"),resourceUri:"agentsmesh://capabilities/{targetId}"},{name:"generate",description:"Generate target-native config files from canonical .agentsmesh/ content. Propagates rules, commands, agents, skills, MCP, hooks, ignore, and permissions to all configured targets.",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets (default: all from agentsmesh.yaml)"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features"),verbose:z$1.boolean().optional().describe("Include full file list in response"),dry_run:z$1.boolean().optional().describe("Preview without writing files")}),handler:s((e,t)=>Rl.generate(e,t),"handler")},{name:"lint",description:"Lint canonical .agentsmesh/ files for schema errors, missing frontmatter, and other issues",inputSchema:z$1.object({severity:z$1.enum(["error","warning","info"]).optional().describe("Filter results by minimum severity")}),handler:s((e,t)=>Rl.lint(e,t),"handler")},{name:"check",description:"Detect drift between canonical and lockfile",inputSchema:FH,handler:s(e=>Rl.check(e),"handler")},{name:"diff",description:"Preview what generate would create, modify, or delete without writing",inputSchema:z$1.object({targets:z$1.array(z$1.string()).optional().describe("Filter to specific targets"),features:z$1.array(z$1.string()).optional().describe("Filter to specific features")}),handler:s((e,t)=>Rl.diff(e,t),"handler")},{name:"import",description:"Import another tool's native config into canonical .agentsmesh/. Note: dry_run is not supported (the engine writes directly).",inputSchema:z$1.object({from:z$1.string().describe('Source target ID to import from (e.g. "cursor", "claude-code")'),features:z$1.array(z$1.string()).optional().describe("Restrict import to specific features"),dry_run:z$1.boolean().optional().describe("NOT SUPPORTED \u2014 will throw VALIDATION_FAILED. Use diff instead.")}),handler:s((e,t)=>Rl.import(e,t),"handler")},{name:"convert",description:"Convert config directly from one tool to another (e.g. Cursor \u2192 Claude Code) without creating canonical .agentsmesh/ files",inputSchema:z$1.object({from:z$1.string().describe('Source target ID (e.g. "cursor")'),to:z$1.string().describe('Destination target ID (e.g. "claude-code")'),dry_run:z$1.boolean().optional().describe("Preview conversion without writing files")}),handler:s((e,t)=>Rl.convert(e,t),"handler")}];function HL(e){if(e instanceof N)throw e;let t=e instanceof Error?e.message:String(e),r=Sm(t);throw /lock|LockAcquisitionError/i.test(r)?new N("LOCK_HELD",".install.lock is held by another process"):/missing source|usage:|non-interactive|invalid|unknown|not found|escapes the source root/i.test(r)?new N("VALIDATION_FAILED",r):new N("IO_ERROR","install pipeline failure",{reason:r})}s(HL,"wrapInstallError");function Rne(e){let t={force:true};return e.path!==void 0&&(t.path=e.path),e.target!==void 0&&(t.target=e.target),e.as!==void 0&&(t.as=e.as),e.name!==void 0&&(t.name=e.name),e.extends===true&&(t.extends=true),e.all===true&&(t.all=true),e.sync===true&&(t.sync=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Rne,"toInstallFlags");function _ne(e){let t={force:true};return e.all===true&&(t.all=true),e.keep_pack===true&&(t["keep-pack"]=true),e.keep_generated===true&&(t["keep-generated"]=true),e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(_ne,"toUninstallFlags");async function Sne(e,t){if(typeof t.source!="string"||t.source.trim().length===0)throw new N("VALIDATION_FAILED","install: `source` is required");try{let r=await fl(Rne(t),[t.source],e.projectRoot);if(r.exitCode!==0)throw new N("IO_ERROR",`install exited ${r.exitCode}`);return r.data}catch(r){HL(r);}}s(Sne,"install");async function kne(e,t){if(t.all!==true&&(!Array.isArray(t.names)||t.names.length===0))throw new N("VALIDATION_FAILED","uninstall: pass `names: [...]` or set `all: true`");try{return (await vh(_ne(t),t.names??[],e.projectRoot)).data}catch(r){HL(r);}}s(kne,"uninstall");async function Ine(e,t={}){try{let r={};return t.global===!0&&(r.global=!0),(await Mh(r,e.projectRoot)).data}catch(r){HL(r);}}s(Ine,"installsList");var ty={install:Sne,uninstall:kne,installsList:Ine};function Lne(e){let t={force:true};return e.dry_run===true&&(t["dry-run"]=true),e.global===true&&(t.global=true),t}s(Lne,"toRefreshFlags");function Cne(e){if(e instanceof N)throw e;let t=e instanceof Error?e.message:String(e),r=Sm(t);throw /lock|LockAcquisitionError/i.test(r)?new N("LOCK_HELD",".install.lock is held by another process"):/unknown pack|not found|usage:/i.test(r)?new N("VALIDATION_FAILED",r):/resolve|network|fetch/i.test(r)?new N("REFRESH_RESOLVE_FAILED",r):/materialize|apply|manifest-update/i.test(r)?new N("REFRESH_APPLY_FAILED",r):new N("IO_ERROR","refresh pipeline failure",{reason:r})}s(Cne,"wrapRefreshError");async function Ene(e,t={}){try{let r=await Fh(Lne(t),[...t.names??[]],e.projectRoot);if(r.exitCode===2){let n=r.data.failed[0],o=t.names??[],i=n?.error??(o.length>0?`unknown pack(s): ${o.join(", ")}`:"refresh validation failed");throw new N("VALIDATION_FAILED",i)}return r.data}catch(r){Cne(r);}}s(Ene,"refresh");var $H={refresh:Ene};var wne=z$1.object({source:z$1.string().min(1).describe("Pack source \u2014 GitHub/GitLab shorthand (`github:org/repo[@ref]`), git URL, SSH URL, or local path (`local:./relative/dir`)."),path:z$1.string().optional().describe("Subdirectory within the source repo to install from. Combined with `as` for manual single-category installs."),target:z$1.string().optional().describe("Target tool ID hint for native-format auto-discovery (e.g. `claude-code`, `cursor`). Bypasses the multi-signal classifier."),as:z$1.enum(["rules","commands","agents","skills"]).optional().describe("Manual install kind. When set, the source is treated as a flat collection of that category (skips the auto-classifier)."),name:z$1.string().optional().describe("Override the generated install entry name (default: derived from `org-repo` shorthand or the source path)."),extends:z$1.boolean().optional().describe("Record as an `extends:` entry in `agentsmesh.yaml` instead of materializing a pack in `.agentsmesh/packs/`. Always-on-latest semantics; resolved every `generate`."),all:z$1.boolean().optional().describe("Install every sub-pack from a marketplace source (`.claude-plugin/marketplace.json`) or every flat collection in a multi-collection layout."),sync:z$1.boolean().optional().describe("Reinstall missing packs from `.agentsmesh/installs.yaml` instead of from `source`."),dry_run:z$1.boolean().optional().describe("Preview what would be installed without writing."),global:z$1.boolean().optional().describe("Install into the global scope (`~/.agentsmesh/`) instead of the project scope. Regenerates user-level outputs.")}),bne=z$1.object({names:z$1.array(z$1.string().min(1)).default([]).describe("Install names to remove (from `installs.yaml`). Required unless `all: true`. Each name removes the pack directory under `.agentsmesh/packs/`, the matching `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row when present."),all:z$1.boolean().optional().describe("Remove every install in the current scope. `names` is ignored when `all: true`."),keep_pack:z$1.boolean().optional().describe("Leave `.agentsmesh/packs/<name>/` on disk; only drop yaml entries. Useful when the user has locally-modified files."),keep_generated:z$1.boolean().optional().describe("Skip the post-uninstall `generate` pass. Target trees keep now-stale files until the next manual `generate`; a warning lists what will be cleaned then."),dry_run:z$1.boolean().optional().describe("Preview the removal plan; no writes. Legacy-manifest migration runs in memory only."),global:z$1.boolean().optional().describe("Uninstall from the global scope (`~/.agentsmesh/`) instead of the project scope.")}),One=z$1.object({global:z$1.boolean().optional().describe("Read from `~/.agentsmesh/installs.yaml` instead of the project scope.")}),Ane=z$1.object({names:z$1.array(z$1.string().min(1)).optional().describe("Pack names to refresh. Omit or pass empty array to refresh every installed pack in the current scope."),dry_run:z$1.boolean().optional().describe("Preview the refresh plan (resolved refs, drift detection) without writing."),global:z$1.boolean().optional().describe("Refresh packs in the global scope (`~/.agentsmesh/`) instead of the project scope.")}),GH=[{name:"install",description:"Install a community pack from a URL or local path. Auto-classifies the source layout (anthropic-skill-pack, canonical-agentsmesh, tool-native, or unknown) and dispatches accordingly; `--target` / `--as` override the classifier. Always runs non-interactively (every prompt accepts its documented `--force` default).",inputSchema:wne,handler:s((e,t)=>ty.install(e,t),"handler")},{name:"uninstall",description:"Remove one or more installed packs. Drops the pack directory, the `installs.yaml` row, and the matching `agentsmesh.yaml` `extends:` row (when present), then runs `generate` so stale target files are cleaned. Mid-batch failures are isolated; survivors still apply and the response surfaces failures in `data.failed[]`.",inputSchema:bne,handler:s((e,t)=>ty.uninstall(e,t),"handler")},{name:"installs_list",description:"List installed packs in the current scope. Read-only. Hydrates `installed_at` and `source_type` from each pack manifest where available; both are `null` for legacy packs without `.agentsmesh-install-manifest.json`.",inputSchema:One,handler:s((e,t)=>ty.installsList(e,t),"handler"),resourceUri:"agentsmesh://installs"},{name:"refresh",description:"Re-fetch and re-apply installed packs against their originally-recorded source/ref. Branch pins re-resolve to the current tip; tag pins re-resolve in case the tag moved; SHA pins stay put. Per-pack atomic via `materializePack` \u2014 a failure leaves the affected pack at its prior state. Always runs non-interactively (force: true) over MCP.",inputSchema:Ane,handler:s((e,t)=>$H.refresh(e,t),"handler")}];async function ry(e,t,r){return Et(e,n=>{let o=n.lessons[t];if(o===void 0)throw new Error(`Unknown lesson: ${t}`);if(r!==null&&n.lessons[r]===void 0)throw new Error(`Unknown superseder: ${r}`);let i=r===null?"deprecated":"superseded";return n.lessons[t]={...o,status:i,...r===null?{}:{supersededBy:r}},{id:t,status:i,supersededBy:r}})}s(ry,"deprecateLesson");async function jH(e,t){await dt(e.projectRoot);let r=Ve(e.projectRoot),n=r?.topics[t.topic];if(r===null||n===void 0)throw new N("NOT_FOUND",`lessons_show: unknown topic "${t.topic}".`);let o=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(t.topic)).sort(([i],[a])=>i<a?-1:1).map(([i,a])=>({id:i,rule:a.rule,status:a.status,topics:[...a.topics],triggers:[...a.triggers],evidence:[...a.evidence]}));return {topic:t.topic,summary:n.summary,lessons:o}}s(jH,"lessonsShow");async function UH(e,t){try{return await ry(e.projectRoot,t.id,t.superseded_by??null)}catch(r){let n=r instanceof Error?r.message:String(r);throw /^Unknown lesson:|^Unknown superseder:/.test(n)?new N("NOT_FOUND",`lessons_deprecate: ${n}`):r}}s(UH,"lessonsDeprecate");function zL(e){return e===void 0?[]:typeof e=="string"?e.length>0?[e]:[]:e.filter(t=>t.length>0)}s(zL,"toTriggerList");function xne(e){return e===void 0?[]:typeof e=="string"?e.split(",").map(t=>t.trim()).filter(t=>t.length>0):e.filter(t=>t.length>0)}s(xne,"toEvidenceList");var wm={async query(e,t){let r={file:t.file,command:t.command??t.cmd,keyword:t.keyword};if(r.file===void 0&&r.command===void 0&&r.keyword===void 0)throw new N("VALIDATION_FAILED","lessons_query: provide at least one of file, command, or keyword to recall against.");r.file===void 0&&r.command===void 0&&process.stderr.write(`agentsmesh: keyword-only recall misses file_glob/command_pattern lessons \u2014 pass file and/or command for complete recall.
|
|
645
|
+
`);let{lessons:n,totalMatches:o,suppressed:i,corrupt:a,newerVersion:l}=await Uu(e.projectRoot,r,{limit:t.limit,maxTokens:t.max_tokens??t["max-tokens"]});a===true?process.stderr.write("agentsmesh: lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run `agentsmesh lessons validate`.\n"):l!==void 0&&process.stderr.write(`agentsmesh: lessons.json is version ${l}, newer than this build supports \u2014 recall returned no lessons. Upgrade agentsmesh to read it.
|
|
646
|
+
`);let c=t.verbose===true;return {lessons:n.map(({id:m,lesson:p,score:u})=>c?{id:m,rule:p.rule,topics:[...p.topics],triggers:[...p.triggers],evidence:[...p.evidence],score:u}:{id:m,rule:p.rule}),totalMatches:o,...i>0?{suppressed:i}:{}}},async topics(e){await dt(e.projectRoot);let t=Ve(e.projectRoot);return t===null?{topics:[]}:{topics:Object.entries(t.topics).map(([r,n])=>({id:r,summary:n.summary})).sort((r,n)=>r.id<n.id?-1:1)}},show:jH,deprecate:UH,async add(e,t){try{return await Bu(e.projectRoot,{rule:t.rule,topic:t.topic,triggers:{files:zL(t.trigger_files??t.trigger_file),commands:zL(t.trigger_commands??t.trigger_cmd),keywords:zL(t.trigger_keywords??t.trigger_kw)},evidence:xne(t.evidence),rationale:t.rationale},{allowNewTopic:t.new_topic===!0,topicSummary:t.topic_summary})}catch(r){throw r instanceof xn?new N("NOT_FOUND",`lessons_add: unknown topic "${r.topic}". Pass new_topic=true + topic_summary to create it.`,{code:r.code}):r instanceof Ms||r instanceof $s||r instanceof Fs?new N("VALIDATION_FAILED",`lessons_add: ${r.message}`,{code:r.code}):r}}};var Tne=z$1.object({file:z$1.string().optional().describe("Project-relative path of the file about to be edited."),command:z$1.string().optional().describe("Shell command about to be executed (CLI flag: --cmd)."),cmd:z$1.string().optional().describe("Alias of `command` (matches the CLI `--cmd` flag). Use `command` if unsure."),keyword:z$1.string().optional().describe("Free-form description of the active task."),limit:z$1.number().int().positive().optional().describe("Max ranked lessons to return (default 10). Results are relevance-ranked."),max_tokens:z$1.number().int().positive().optional().describe("Cap results by cumulative estimated rule-token cost (CLI flag: --max-tokens)."),"max-tokens":z$1.number().int().positive().optional().describe("Alias of `max_tokens` (matches the CLI `--max-tokens` flag)."),verbose:z$1.boolean().optional().describe("Include topics/triggers/evidence/score. Default false (compact: id + rule only).")}).strict(),_l=z$1.union([z$1.string(),z$1.array(z$1.string())]),Pne=z$1.object({rule:z$1.string().min(1).describe("Imperative rule that prevents recurrence."),topic:z$1.string().min(1).describe("Topic id. Use new_topic + topic_summary to create one."),trigger_files:_l.optional().describe('file_glob triggers (e.g. ["src/cli/**/*.ts"] or a single "src/**").'),trigger_file:_l.optional().describe("Alias of `trigger_files` (matches the CLI `--trigger-file` flag)."),trigger_commands:_l.optional().describe("command_pattern triggers \u2014 regexes matched against shell commands."),trigger_cmd:_l.optional().describe("Alias of `trigger_commands` (matches the CLI `--trigger-cmd` flag)."),trigger_keywords:_l.optional().describe("keyword triggers \u2014 case-insensitive substrings of task descriptions."),trigger_kw:_l.optional().describe("Alias of `trigger_keywords` (matches the CLI `--trigger-kw` flag)."),evidence:_l.optional().describe("Evidence references (commit:SHA, lesson:id, \u2026). A scalar may be comma-separated."),rationale:z$1.string().optional().describe('Optional one-line "why" behind the rule.'),new_topic:z$1.boolean().optional().describe("Allow creating a new topic if missing."),topic_summary:z$1.string().optional().describe("Required when new_topic creates a topic. One-line summary.")}).strict(),BH=[{name:"lessons_query",description:"Recall primitive \u2014 return active lessons whose triggers match the supplied (file, command, keyword) predicates, relevance-ranked (trigger specificity + per-query topic coherence + BM25 over rule text) and capped to `limit` (default 10). Pass at least one predicate (a predicate-less call is rejected); always include `file` for an edit and `command` for a shell command \u2014 keyword-only recall misses file/command-scoped lessons. Returns compact `{id, rule}` by default; pass `verbose:true` for topics/triggers/evidence/score. Excludes deprecated and superseded lessons.",inputSchema:Tne,handler:s((e,t)=>wm.query(e,t),"handler")},{name:"lessons_add",description:"Capture primitive \u2014 atomically add a new lesson. At least one EFFECTIVE trigger is REQUIRED \u2014 the add is rejected (UNRECALLABLE_LESSON, exit 2) when every trigger is dead on the mandatory file/command recall path (a stopword-only keyword whose needle loses all tokens to stopword filtering, or an invalid/ReDoS command regex). A lesson with a mix of live and dead triggers is NOT rejected. Prefer a precise `trigger_files` glob, the most reliable trigger. Deduplicates triggers against the graph. Idempotent on repeat (same rule + topic \u2192 same id, no duplicate triggers). Returns non-blocking `warnings` (trigger-hygiene nudges: oversized trigger set, broad globs, keyword-only, dead glob matching no file in the working tree [DEAD_GLOB], or rule closely paraphrasing an existing active lesson [NEAR_DUPLICATE_LESSON]) \u2014 heed them by preferring a few specific triggers.",inputSchema:Pne,handler:s((e,t)=>wm.add(e,t),"handler")},{name:"lessons_topics",description:"List every topic id and summary \u2014 call before lessons_add to choose a valid --topic instead of guessing (which would create an unintended new topic).",inputSchema:z$1.object({}).strict(),handler:s(e=>wm.topics(e),"handler")},{name:"lessons_show",description:"Inspect a topic \u2014 return its summary and every lesson under it (id, rule, status, triggers, evidence), including deprecated/superseded ones. Use to find the id of a stale lesson before lessons_deprecate.",inputSchema:z$1.object({topic:z$1.string().min(1).describe("Topic id to inspect (see lessons_topics).")}).strict(),handler:s((e,t)=>wm.show(e,t),"handler")},{name:"lessons_deprecate",description:"Curation primitive \u2014 retire a lesson so recall stops returning it. With `superseded_by` the lesson is marked superseded by that replacement; without it the lesson is plainly deprecated. Throws on an unknown lesson or superseder.",inputSchema:z$1.object({id:z$1.string().min(1).describe("Lesson id to retire (see lessons_show)."),superseded_by:z$1.string().min(1).optional().describe("Replacement lesson id; omit for a plain deprecation.")}).strict(),handler:s((e,t)=>wm.deprecate(e,t),"handler")}];function KH(e){let t=toJSONSchema(e,{target:"draft-07"});return delete t.$schema,t}s(KH,"zodToMcpSchema");var ny=[...dH,...kH,...AH,...MH,...GH,...BH],VL=ny.filter(e=>e.resourceUri!==void 0).map(e=>({uri:e.resourceUri,name:e.name,description:e.description,read:s((t,r)=>e.handler(t,r),"read")}));Zi();async function Fne(e){let t=resolve(e);for(;;){try{return await stat(resolve(t,"agentsmesh.yaml")),t}catch{}let r=dirname(t);if(r===t)throw new N("NO_PROJECT","agentsmesh.yaml not found");t=r;}}s(Fne,"findProjectRoot");async function JL(e){let t=await Fne(e.cwd);return {projectRoot:t,loadCanonical:s(()=>Gt(t),"loadCanonical")}}s(JL,"resolveContext");function HH(e,t){let r=Mne(e);return t.map(n=>{let o=n.path.map(i=>typeof i=="symbol"?i.toString():i);if(n.code==="unrecognized_keys"&&r.length>0&&n.path.length===0){let i=n.keys?.[0],a=i===void 0?void 0:$ne(i,r),l=a===void 0?"":` Did you mean "${a}"?`;return {code:n.code,path:o,message:`${n.message}. Expected one of: ${r.join(", ")}.${l}`,expected:r,...a===void 0?{}:{suggestion:a}}}return {code:n.code,path:o,message:n.message}})}s(HH,"enrichValidationIssues");function Mne(e){let t=e.shape;return t!==void 0&&typeof t=="object"?Object.keys(t):[]}s(Mne,"objectShapeKeys");function $ne(e,t){let r=e.toLowerCase(),n=t.find(c=>c.toLowerCase()===r);if(n!==void 0)return n;let o,i=1/0,a=Math.max(2,Math.ceil(e.length/3));for(let c of t){let m=Gne(r,c.toLowerCase());m<i&&(i=m,o=c);}return o!==void 0&&i<=a?o:t.filter(c=>c.toLowerCase().includes(r)||r.includes(c.toLowerCase())).sort((c,m)=>c.length-m.length)[0]}s($ne,"nearestKey");function Gne(e,t){let r=Array.from({length:t.length+1},(n,o)=>o);for(let n=1;n<=e.length;n+=1){let o=r[0];r[0]=n;for(let i=1;i<=t.length;i+=1){let a=r[i],l=e[n-1]===t[i-1]?0:1;r[i]=Math.min(r[i]+1,r[i-1]+1,o+l),o=a;}}return r[t.length]}s(Gne,"editDistance");async function Yne(){let e=dirname(fileURLToPath(import.meta.url));for(let t of [resolve(e,"../../package.json"),resolve(e,"../package.json"),resolve(e,"../../../package.json")])try{let r=JSON.parse(await readFile(t,"utf8"));if(r.name==="agentsmesh")return r.version}catch{}return "0.0.0"}s(Yne,"pkgVersion");function Xne(e,t){return new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").test(t)}s(Xne,"matchTemplate");function qne(e,t){let r=[...e.matchAll(/\{([^}]+)\}/g)].map(i=>i[1]),o=new RegExp("^"+e.replace(/\{[^}]+\}/g,"([^/]+)")+"$").exec(t);return o?Object.fromEntries(r.map((i,a)=>[i,o[a+1]])):{}}s(qne,"extractTemplateParams");async function zH(){let e=new Server({name:"agentsmesh-mcp",version:await Yne()},{capabilities:{tools:{},resources:{}}});e.setRequestHandler(ListToolsRequestSchema,async()=>({tools:ny.map(t=>({name:t.name,description:t.description,inputSchema:KH(t.inputSchema)}))})),e.setRequestHandler(CallToolRequestSchema,async t=>{let r=ny.find(n=>n.name===t.params.name);if(!r)return {isError:true,content:[{type:"text",text:JSON.stringify({code:"NOT_FOUND",message:`unknown tool: ${t.params.name}`})}]};try{let n=r.inputSchema.safeParse(t.params.arguments??{});if(!n.success){let a=HH(r.inputSchema,n.error.issues);throw new N("VALIDATION_FAILED","invalid input",a)}let o=await JL({cwd:process.cwd()}),i=await r.handler(o,n.data);return {content:[{type:"text",text:JSON.stringify(i)}]}}catch(n){let o=n instanceof N?n.toEnvelope():{code:"IO_ERROR",message:Sm(n instanceof Error?n.message:"unknown error")};return {isError:true,content:[{type:"text",text:JSON.stringify(o)}]}}}),e.setRequestHandler(ListResourcesRequestSchema,async()=>({resources:VL.map(t=>({uri:t.uri,name:t.name,description:t.description}))})),e.setRequestHandler(ReadResourceRequestSchema,async t=>{let r=VL.find(a=>a.uri===t.params.uri||Xne(a.uri,t.params.uri));if(!r)throw new N("NOT_FOUND",`resource not found: ${t.params.uri}`);let n=await JL({cwd:process.cwd()}),o=qne(r.uri,t.params.uri),i=await r.read(n,o);return {contents:[{uri:t.params.uri,mimeType:"application/json",text:JSON.stringify(i)}]}}),await e.connect(new StdioServerTransport);}s(zH,"startServer");ne();async function VH(e,t){hC(),await zH();}s(VH,"runMcp");var XL={output:""},qL=s(e=>typeof e=="string"&&e.length>0?e:void 0,"str"),JH=" \u2026[truncated]";function Qne(e){return e.length<=tm?e:e.slice(0,tm-JH.length)+JH}s(Qne,"clampRule");async function YH(e,t){let r;try{r=JSON.parse(e);}catch{return XL}let n=qL(r.tool_input?.file_path),o=qL(r.tool_input?.command);if(n===void 0&&o===void 0)return XL;let i={...n!==void 0?{file:n}:{},...o!==void 0?{command:o}:{}},{lessons:a}=await Uu(t,i,{sessionId:qL(r.session_id)});if(a.length===0)return XL;let l=n??o??"",c=a.map(p=>`- ${Qne(p.lesson.rule)}`).join(`
|
|
647
|
+
`),m=`Recalled agentsmesh lessons for ${l} \u2014 apply before your next action:
|
|
648
|
+
${c}`;return {output:JSON.stringify({hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:m}})}}s(YH,"buildRecallHookOutput");function XH(e){let t=e.filter(r=>!r.blocked);return {total:e.length,blocked:e.filter(r=>r.blocked).length,newLessons:t.filter(r=>r.isNewLesson).length,upserts:t.filter(r=>!r.isNewLesson).length,newTopics:t.filter(r=>r.isNewTopic).length,withWarnings:t.filter(r=>r.warningCodes.length>0).length,byTriggerKind:{file:e.reduce((r,n)=>r+n.triggerKinds.file,0),command:e.reduce((r,n)=>r+n.triggerKinds.command,0),keyword:e.reduce((r,n)=>r+n.triggerKinds.keyword,0)}}}s(XH,"summarizeCapture");var Zne=[{label:"0",test:s(e=>e===0,"test")},{label:"1",test:s(e=>e===1,"test")},{label:"2-3",test:s(e=>e>=2&&e<=3,"test")},{label:"4-9",test:s(e=>e>=4&&e<=9,"test")},{label:"10+",test:s(e=>e>=10,"test")}],eoe=1800*1e3;function qH(e,t){if(e.length===0)return 0;let r=[...e].sort((o,i)=>o-i),n=Math.min(r.length-1,Math.floor(t/100*r.length));return r[n]}s(qH,"percentile");function toe(e,t){return t.length>0&&t.every(r=>e.triggers[r]?.kind==="keyword")}s(toe,"isKeywordOnly");function roe(e){let t=[],r=0;for(let n=0;n<e.length;n++){if(n===0){t.push(0);continue}let o=e[n],i=e[n-1];(o.session!==void 0||i.session!==void 0?o.session!==i.session:Date.parse(o.ts)-Date.parse(i.ts)>eoe)&&r++,t.push(r);}return t}s(roe,"sessionIndices");function noe(e,t,r){let n=e.filter(l=>l.lessonIds!==void 0).length,o=new Map,i=0,a=0;for(let l=0;l<e.length;l++){let c=e[l].lessonIds;if(c===void 0)continue;let m=t[l],p=o.get(m);p===void 0&&(p=new Set,o.set(m,p));for(let u of c){let f=ml(r.lessons[u]?.rule??"");a+=f,p.has(u)?i+=f:p.add(u);}}return {rate:a===0?0:i/a,coverage:e.length===0?0:n/e.length}}s(noe,"intraSessionRedundancy");function QH(e,t){let r=e.length,n=e.filter(_=>_.totalMatches===0).length,o=e.map(_=>_.returnedTokens),i=o.reduce((_,S)=>_+S,0),a=Object.values(t.lessons).filter(_=>_.status==="active"),l=a.reduce((_,S)=>_+ml(S.rule),0),c=roe(e),m=r===0?0:c[c.length-1]+1,p=e.filter(_=>_.bypassed===true).length,u=e.filter(_=>_.bypassed!==true).reduce((_,S)=>_+S.returnedTokens,0),f=l*m,g=e.filter(_=>_.totalMatches>0),h=g.filter(_=>_.matchedByKind.keyword>0&&_.matchedByKind.file===0&&_.matchedByKind.command===0).length,R=a.filter(_=>toe(t,_.triggers)).length;return {totalRecalls:r,noMatchRate:r===0?0:n/r,matchCountHistogram:Zne.map(_=>({bucket:_.label,count:e.filter(S=>_.test(S.totalMatches)).length})),returnedTokens:{p50:qH(o,50),p90:qH(o,90),max:o.length===0?0:Math.max(...o)},cumulativeRecallTokens:i,wholeActiveSetTokens:l,bypassedRecalls:p,preloadBreakEven:{sessions:m,preloadTokens:f,mandatoryRecallTokens:u,recallCheaper:u<f,ratio:u===0?0:f/u},redundancy:noe(e,c,t),reachability:{keywordOnlyRecallRate:g.length===0?0:h/g.length,keywordOnlyUnreachableLessons:R}}}s(QH,"summarizeRecall");function $t(e,t){let r=e[t];return typeof r=="string"&&r.length>0?r:null}s($t,"stringFlag");function ZH(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}s(ZH,"listFlag");function oy(e,t){let r=e[t];return r===void 0||r===false||r===true?[]:Array.isArray(r)?r.filter(n=>n.length>0):r.length>0?[r]:[]}s(oy,"repeatedFlag");function Ku(e,t){let r=e[t];if(typeof r=="string"&&r.trim().length>0){let n=Number(r);return Number.isFinite(n)?n:null}return null}s(Ku,"numberFlag");function ez(e){let t=$t(e,"format");return t==="md"||t==="json"||t==="plain"?t:"plain"}s(ez,"parseFormat");function tz(e){let t={},r=$t(e,"file"),n=$t(e,"cmd")??$t(e,"command"),o=$t(e,"keyword");return r!==null&&(t.file=r),n!==null&&(t.command=n),o!==null&&(t.keyword=o),t}s(tz,"queryFromFlags");function zi(){return {version:1,lessons:{},topics:{},triggers:{}}}s(zi,"emptyGraph");function rz(){let e=new Date,t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0");return `${t}-${r}-${n}`}s(rz,"todayIso");function nz(e,t,r){let n=[`# ${e}`,"",t,"","## Lessons",""];for(let[o,i]of r)n.push(`- **${o}** \u2014 ${i.rule}`);return `${n.join(`
|
|
649
|
+
`)}
|
|
650
|
+
`}s(nz,"renderTopicMarkdown");function oz(e,t,r){let n=[`# ${e}`,"",`**status:** ${t.status} **created:** ${t.createdAt}`,"",t.rule,"",`**topics:** ${t.topics.length>0?t.topics.join(", "):"(none)"}`,"","**triggers:**"];t.triggers.length===0&&n.push("- (none)");for(let o of t.triggers){let i=r[o];n.push(i?`- ${o} [${i.kind}] ${i.pattern}`:`- ${o} [missing trigger node]`);}return n.push("",`**evidence:** ${t.evidence.length>0?t.evidence.join(", "):"(none)"}`),t.supersededBy!==void 0&&n.push("",`**superseded by:** ${t.supersededBy}`),`${n.join(`
|
|
651
|
+
`)}
|
|
652
|
+
`}s(oz,"renderLessonMarkdown");function Me(e,t,r){switch(e){case "query":return {subcommand:e,exitCode:r,error:t,format:"plain",data:{lessons:[],query:{},autoMigrated:false,totalMatches:0}};case "add":return {subcommand:e,exitCode:r,error:t,data:{id:"",isNewLesson:false,isNewTopic:false,newTriggerIds:[],warnings:[]}};case "show":return {subcommand:e,exitCode:r,error:t,data:{subject:"",markdown:""}};case "deprecate":return {subcommand:e,exitCode:r,error:t,data:{id:"",supersededBy:null}};case "merge":return {subcommand:e,exitCode:r,error:t,data:{loserId:"",keeperId:""}};case "untrigger":return {subcommand:e,exitCode:r,error:t,data:{lessonId:"",triggerId:"",removedTriggerNode:false,remainingTriggerCount:0}};case "import-md":return {subcommand:e,exitCode:r,error:t,data:{topicCount:0,lessonCount:0,triggerCount:0,wroteGraphPath:"",deletedPaths:[]}};case "prune":return {subcommand:e,exitCode:r,error:t,data:{applied:false,cap:0,removedTriggerIds:[],removedTopicIds:[],trimmedLessons:[],removedDeadGlobs:[],unreachableLessons:[]}}}}s(Me,"errorResult");function sz(e,t){let r=e[t];if(r===void 0||r===false)return null;let n=typeof r=="string"?Number(r):NaN;return !Number.isInteger(n)||n<1?`Invalid --${t}: expected a positive integer.`:null}s(sz,"validatePositiveIntFlag");function ioe(e){let t=e.format;return t===void 0||t==="plain"||t==="md"||t==="json"?null:"Invalid --format: expected plain|md|json."}s(ioe,"validateFormatFlag");function sy(...e){let t=e.filter(r=>r!==void 0&&r.length>0);return t.length>0?t.join(`
|
|
653
|
+
`):void 0}s(sy,"mergeWarnings");function aoe(e){if(existsSync(join(e,".agentsmesh")))return;let t=oh(e);if(t!==null)return `no lessons graph here \u2014 this directory has no .agentsmesh, but a lessons project exists at ${t.replaceAll("\\","/")}. Run lessons from there (cd into it) for recall to work.`}s(aoe,"strayDirWarning");function QL(e,t,r){let n=sz(e,"top");if(n!==null)return Me("query",n,2);let o=sz(e,"max-tokens");if(o!==null)return Me("query",o,2);let i=ioe(e);if(i!==null)return Me("query",i,2);let a=ez(e),l=tz(e);if(l.file===void 0&&l.command===void 0&&l.keyword===void 0)return Me("query","Recall needs a predicate: pass at least one of --file <path-about-to-edit>, --cmd <command-about-to-run>, or --keyword <text>.",2);let c=l.keyword!==void 0&&l.file===void 0&&l.command===void 0?"keyword-only recall misses file_glob and command_pattern lessons \u2014 pass --file <path-about-to-edit> and/or --cmd <command-about-to-run> for complete recall.":void 0,m=l.file===void 0?l:{...l,file:Yh(l.file,t)},p=EU(t)??void 0,u=Xg(t);if(u.status==="corrupt"){let $={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:sy(`lessons.json is unreadable (corrupt) \u2014 recall returned no lessons. Run \`agentsmesh lessons validate\`. (${u.error.message})`,p)};return {subcommand:"query",exitCode:0,format:a,data:$}}if(u.status==="newer-version"){let $={lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:sy(`lessons.json is version ${u.version}, newer than this build supports (${iu}) \u2014 recall returned no lessons. Upgrade agentsmesh to read it.`,p)};return {subcommand:"query",exitCode:0,format:a,data:$}}if(u.status==="absent"){let $=aoe(t),Y=sy($??gu(),c,p);return {subcommand:"query",exitCode:0,format:a,data:{lessons:[],query:m,autoMigrated:r,totalMatches:0,warning:Y}}}let f=u.graph,g=lm(f,m),h=Xh({explicit:$t(e,"session")??void 0,disabled:e["no-dedup"]===true}),R=h===null?g:qh(h,g),_=ph(t),S=e.all===true?void 0:Ku(e,"top")??_.limit,I=e.all===true?void 0:Ku(e,"max-tokens")??_.maxTokens,b=cm(f,m,R,{limit:S,maxTokens:I});h!==null&&Qh(h,b.map(({id:$})=>$)),UL(t,f,m,g,b,{bypassed:e.all===true});let P=b.map(({id:$,lesson:Y,score:ee})=>({id:$,rule:Y.rule,topics:[...Y.topics],triggers:[...Y.triggers],evidence:[...Y.evidence],score:ee})),T=g.length-R.length,W={lessons:P,query:m,autoMigrated:r,totalMatches:g.length,...T>0?{suppressed:T}:{},...e.ids===true?{showIds:true}:{},...(()=>{let $=sy(c,p);return $?{warning:$}:{}})()};return {subcommand:"query",exitCode:0,format:a,data:W}}s(QL,"doQuery");function iz(e){return typeof e=="object"&&e!==null&&e.status==="deprecated"}s(iz,"isDeprecated");function loe(e,t,r){let n=qg(t),o=qg(r);if(n===o)return t;if(e!==void 0){let l=qg(e);if(n===l)return r;if(o===l)return t}let i=iz(t),a=iz(r);return i!==a?i?t:r:n>o?t:r}s(loe,"pick");function ZL(e,t,r){let n={};for(let o of new Set([...Object.keys(t),...Object.keys(r)])){let i=t[o],a=r[o];n[o]=i!==void 0&&a!==void 0?loe(e[o],i,a):i??a;}return n}s(ZL,"mergeRecord");function az(e,t,r){return {version:t.version,lessons:ZL(e.lessons,t.lessons,r.lessons),topics:ZL(e.topics,t.topics,r.topics),triggers:ZL(e.triggers,t.triggers,r.triggers)}}s(az,"mergeGraphs");function eC(e){try{let t=il.safeParse(JSON.parse(readFileSync(e,"utf8")));return t.success?t.data:null}catch{return null}}s(eC,"readGraphFile");function tC(e){let[t,r,n]=e,o={subcommand:"merge-driver",exitCode:1,data:{merged:false},error:"lessons merge-driver: could not merge \u2014 git will fall back to conflict markers."};if(t===void 0||r===void 0||n===void 0)return o;let i=eC(t),a=eC(r),l=eC(n);if(i===null||a===null||l===null)return o;let c=az(i,a,l);return xo(c).ok?(writeFileSync(r,cu(c),"utf8"),{subcommand:"merge-driver",exitCode:0,data:{merged:true}}):o}s(tC,"doMergeDriver");function lz(e,t,r){let n=e.lessons[t];if(n===void 0)throw new Error(`Unknown lesson: ${t}`);if(!n.triggers.includes(r))throw new Error(`Lesson "${t}" does not reference trigger "${r}".`);if(n.status==="active"&&n.triggers.length<=1)throw new Error(`Refusing to remove the only trigger of active lesson "${t}" \u2014 it would become unreachable. Add a replacement trigger first (lessons add "<same rule>" --topic ...), then untrigger.`);let o=n.triggers.filter(l=>l!==r);e.lessons[t]={...n,triggers:o};let i=Object.values(e.lessons).some(l=>l.triggers.includes(r)),a=false;return i||(delete e.triggers[r],a=true),{lessonId:t,triggerId:r,removedTriggerNode:a,remainingTriggerCount:o.length}}s(lz,"untriggerLesson");function iy(e){return (e instanceof Error?e.message:String(e)).replace(/^(mutateLessonsGraph|mergeLessons):\s*/,"")}s(iy,"errMessage");async function rC(e,t,r){let n=t!==void 0&&t.length>0?t:null,o=$t(e,"rule")??n,i=$t(e,"topic");if(o===null)return Me("add",`Missing rule \u2014 pass it positionally (\`add "<rule>"\`) or via --rule.${zu()}`,2);if(i===null)return Me("add",`Missing --topic \u2014 every lesson needs a topic id (run \`agentsmesh lessons topics\` to list them, or pass --new-topic --topic-summary "..." for a new area).${zu()}`,2);let a=existsSync(join(r,".agentsmesh"))?null:oh(r),l=a!==null?`Capturing into a new .agentsmesh here \u2014 a lessons project already exists at ${a.replaceAll("\\","/")}. If that was unintended, cd into it and re-run.`:void 0,c=fu(r)?void 0:"Captured \u2014 but recall is not wired into your AI tools yet (no `init --lessons`). Run `agentsmesh init --lessons`, then `agentsmesh generate`, so agents recall this automatically.";try{return {subcommand:"add",exitCode:0,data:{...await Bu(r,{rule:o,topic:i,triggers:{files:oy(e,"trigger-file"),commands:oy(e,"trigger-cmd"),keywords:oy(e,"trigger-kw")},evidence:ZH(e,"evidence"),rationale:$t(e,"rationale")??void 0},{allowNewTopic:e["new-topic"]===!0,topicSummary:$t(e,"topic-summary")??void 0}),...l?{locationNote:l}:{},...c?{activationNote:c}:{}}}}catch(m){return m instanceof xn?Me("add",`Unknown topic: ${m.topic}. Pass --new-topic --topic-summary "..." to create it.`,1):m instanceof Ms||m instanceof $s||m instanceof Fs?Me("add",`${m.message}${zu()}`,2):Me("add",iy(m),1)}}s(rC,"doAdd");async function nC(e,t,r){if(t===void 0||t==="")return Me("deprecate","Usage: agentsmesh lessons deprecate <id> [--superseded-by <id>]",2);let n=$t(e,"superseded-by");try{let{id:o,supersededBy:i}=await ry(r,t,n);return {subcommand:"deprecate",exitCode:0,data:{id:o,supersededBy:i}}}catch(o){let i=iy(o),a=i.startsWith("Unknown lesson")?" Run `agentsmesh lessons journal` to list lesson ids (or `lessons query --ids` to see what recalled).":"";return Me("deprecate",`${i}${a}`,1)}}s(nC,"doDeprecate");async function oC(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("untrigger","Usage: agentsmesh lessons untrigger <lesson-id> <trigger-id>",2);try{return {subcommand:"untrigger",exitCode:0,data:await Et(r,i=>lz(i,e,t))}}catch(n){return Me("untrigger",iy(n),1)}}s(oC,"doUntrigger");async function sC(e,t,r){if(e===void 0||e===""||t===void 0||t==="")return Me("merge","Usage: agentsmesh lessons merge <loser-id> <keeper-id>",2);try{return {subcommand:"merge",exitCode:0,data:await Zh(r,e,t)}}catch(n){return Me("merge",iy(n),1)}}s(sC,"doMerge");async function iC(e,t){let r=e["dry-run"]===true,n=await ey(t,{dryRun:r});return {subcommand:"strip-markers",exitCode:0,data:{changedIds:n.changedIds,changedCount:n.changedCount,dryRun:r}}}s(iC,"doStripMarkers");async function aC(e,t){let r=e.force===true,n=e.merge===true;if(!r&&!n&&existsSync(Ao(t)))return Me("import-md","lessons.json already exists. Pass --merge to fold legacy lessons into it (recommended \u2014 recovers stranded lessons without data loss), or --force to overwrite.",1);if(!existsSync(Ge(t).index))return Me("import-md","No legacy lessons store found (.agentsmesh/lessons/index.yaml) \u2014 nothing to migrate.",1);let o=$t(e,"migrated-at")??rz(),i=await im(t,{migratedAt:o,force:r,merge:n});return {subcommand:"import-md",exitCode:0,data:{topicCount:i.topicCount,lessonCount:i.lessonCount,triggerCount:i.triggerCount,wroteGraphPath:i.wroteGraphPath,deletedPaths:i.deletedPaths}}}s(aC,"doImportMd");function lC(e,t){return {applied:t,cap:e.cap,removedTriggerIds:e.removedTriggerIds,removedTopicIds:e.removedTopicIds,trimmedLessons:e.trimmedLessons.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),removedDeadGlobs:e.removedDeadGlobs.map(r=>({id:r.id,removedCount:r.removedTriggers.length,keptCount:r.keptCount})),unreachableLessons:e.unreachableLessons}}s(lC,"toPruneData");async function cC(e,t){let r=Ku(e,"cap");if(r!==null&&(!Number.isInteger(r)||r<1))return Me("prune","Invalid --cap: expected a positive integer.",2);let n=Gi(t)??void 0,o={...r!==null?{cap:r}:{},...n?{knownPaths:n}:{}};if(e.apply!==true){let c=Ve(t)??zi();return {subcommand:"prune",exitCode:0,data:lC(yl(c,o),false)}}let i=Ve(t)??zi(),a=yl(i,o);return ju(a)?{subcommand:"prune",exitCode:0,data:lC(a,true)}:{subcommand:"prune",exitCode:0,data:await Et(t,c=>{let m=yl(c,o);return Jh(c,m),lC(m,true)})}}s(cC,"doPrune");function mz(e){let t=Ve(e)??zi(),r=Object.entries(t.topics).map(([o,i])=>({id:o,summary:i.summary})).sort((o,i)=>o.id<i.id?-1:1),n=fu(e)?void 0:gu();return {subcommand:"topics",exitCode:0,data:{topics:r,...n?{setupHint:n}:{}}}}s(mz,"doTopics");function pz(e,t){if(e===void 0||e==="")return Me("show","Usage: agentsmesh lessons show <topic|lesson-id>",2);let r=Ve(t);if(r!==null&&r.topics[e]!==void 0){let n=Object.entries(r.lessons).filter(([,i])=>i.topics.includes(e)&&i.status==="active").sort(([i],[a])=>i<a?-1:1),o=nz(e,r.topics[e].summary,n);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:o}}}if(r!==null&&r.lessons[e]!==void 0){let n=oz(e,r.lessons[e],r.triggers);return {subcommand:"show",exitCode:0,data:{subject:e,markdown:n}}}return Me("show",`Unknown topic or lesson id: ${e}. Run \`agentsmesh lessons topics\` to list topics, or \`agentsmesh lessons journal\` to list lesson ids.`,1)}s(pz,"doShow");function uz(e){let t=Ve(e)??zi(),r=Object.entries(t.lessons).map(([i,a])=>({id:i,rule:a.rule,createdAt:a.createdAt,topics:[...a.topics]})).sort((i,a)=>i.createdAt!==a.createdAt?i.createdAt<a.createdAt?-1:1:i.id<a.id?-1:1),n=fu(e)?void 0:gu();return {subcommand:"journal",exitCode:0,data:{entries:r,...n?{setupHint:n}:{}}}}s(uz,"doJournal");function dz(e,t){let r=Ve(t)??zi(),n=QH(yU(t),r),o=XH(_U(t));return {subcommand:"stats",exitCode:0,format:e.json===true?"json":"text",data:{report:n,captureReport:o,hasLog:hU(t),hasCaptureLog:RU(t),telemetryEnabled:$i()}}}s(dz,"doStats");function fz(e){let t;try{t=Ve(e)??zi();}catch(i){return {subcommand:"validate",exitCode:1,data:{ok:false,findings:[{level:"error",code:"CORRUPT_GRAPH",message:`lessons.json could not be parsed (${i instanceof Error?i.message:String(i)}). The graph is git-tracked \u2014 restore it (e.g. \`git checkout -- .agentsmesh/lessons/lessons.json\`) or repair the JSON; recall degrades to empty until then.`}]}}}let r=Gi(e)??void 0,n=xo(t,{knownPaths:r}),o={ok:n.ok,findings:n.findings};return {subcommand:"validate",exitCode:n.ok?0:1,data:o}}s(fz,"doValidate");async function gz(e){let t=await goe(),{output:r}=await YH(t,e);return {subcommand:"hook",exitCode:0,data:{output:r}}}s(gz,"doHook");var doe=1e6;async function foe(e,t=doe){let r=[],n=0;for await(let o of e){let i=o;if(n+=i.length,n>t)return "";r.push(i);}return Buffer.concat(r).toString("utf8")}s(foe,"readBoundedStream");async function goe(){return process.stdin.isTTY===true?"":foe(process.stdin)}s(goe,"readStdin");var hoe=["json","verbose","help"],yoe={query:["file","cmd","command","keyword","format","top","all","max-tokens","session","no-dedup","ids"],add:["rule","topic","trigger-file","trigger-cmd","trigger-kw","evidence","rationale","new-topic","topic-summary"],topics:[],show:[],deprecate:["superseded-by"],merge:[],untrigger:[],"strip-markers":["dry-run"],journal:[],validate:[],stats:["json"],prune:["apply","cap"],"import-md":["merge","force","migrated-at"]};function hz(e,t){let r=yoe[e];if(r===void 0)return null;let n=new Set([...r,...hoe]);for(let o of Object.keys(t))if(!n.has(o))return `Unknown flag --${o} for \`lessons ${e}\`.
|
|
654
|
+
Usage: ${Ks[e].usage}`;return null}s(hz,"validateLessonsFlags");async function Roe(e,t){if(e==="import-md")return false;if(e==="query"||e==="hook")try{return await dt(t)}catch{return false}return dt(t)}s(Roe,"migrateForSubcommand");async function yz(e,t,r){let n=t[0];if(n===void 0||n==="")return {subcommand:"help",exitCode:0,data:null};let o=hz(n,e);if(o!==null)return {subcommand:"help",exitCode:2,error:o,data:null};let i=await Roe(n,r);switch(n){case "query":return QL(e,r,i);case "add":return rC(e,t[1],r);case "topics":return mz(r);case "show":return pz(t[1],r);case "deprecate":return nC(e,t[1],r);case "merge":return sC(t[1],t[2],r);case "untrigger":return oC(t[1],t[2],r);case "strip-markers":return iC(e,r);case "journal":return uz(r);case "validate":return fz(r);case "stats":return dz(e,r);case "prune":return cC(e,r);case "import-md":return aC(e,r);case "hook":return gz(r);case "merge-driver":return tC(t.slice(1));default:return {subcommand:"help",exitCode:2,error:`Unknown lessons subcommand: ${n}`,data:null}}}s(yz,"runLessons");ne();ne();function ay(e){return `${(e*100).toFixed(1)}%`}s(ay,"pct");function _z(e,t){if(t==="json"){process.stdout.write(`${JSON.stringify({...e.report,capture:e.captureReport},null,2)}
|
|
655
|
+
`);return}if(!e.hasLog&&!e.hasCaptureLog){_oe(e.telemetryEnabled);return}e.hasLog&&Soe(e.report),e.hasCaptureLog&&koe(e);}s(_z,"renderStats");function _oe(e){e?y.info("(telemetry is ON here, but nothing has been recorded yet \u2014 telemetry is written by `lessons query` recalls and `lessons add` captures, not by `stats`. Run some `agentsmesh lessons` calls, then re-run stats.)"):y.info("(no lessons telemetry yet \u2014 recording happens during `lessons query` recalls and `lessons add` captures, NOT during `stats`. Set AGENTSMESH_LESSONS_TELEMETRY=1 in the environment that runs them \u2014 your shell for CLI calls, and/or the MCP server process for agent calls \u2014 then re-run `stats`.)");}s(_oe,"renderEmptyStatsHint");function Soe(e){let t=e.preloadBreakEven;y.info(`recalls: ${e.totalRecalls} no-match: ${ay(e.noMatchRate)} sessions: ${t.sessions} bypassed(--all): ${e.bypassedRecalls}`),y.info(`match counts: ${e.matchCountHistogram.map(r=>`${r.bucket}=${r.count}`).join(" ")}`),y.info(`returned tokens: p50=${e.returnedTokens.p50} p90=${e.returnedTokens.p90} max=${e.returnedTokens.max}`),y.info(`break-even (per session): preload ${t.sessions}\xD7${e.wholeActiveSetTokens}=${t.preloadTokens} vs mandatory recall=${t.mandatoryRecallTokens} \u2192 ${t.recallCheaper?"recall cheaper":"preload cheaper"} (ratio ${t.ratio.toFixed(2)})`),y.info(`redundancy: ${ay(e.redundancy.rate)} of delivered rule-tokens are intra-session repeats (coverage ${ay(e.redundancy.coverage)})`),y.info(`reachability: keyword-only recalls ${ay(e.reachability.keywordOnlyRecallRate)}, keyword-only-unreachable lessons ${e.reachability.keywordOnlyUnreachableLessons}`);}s(Soe,"renderRecallStats");function koe(e){let t=e.captureReport,r=t.byTriggerKind,n=t.total===0?"\u2014":(e.report.totalRecalls/t.total).toFixed(2);y.info(`captures: ${t.total} blocked: ${t.blocked} new: ${t.newLessons} upsert: ${t.upserts} new-topics: ${t.newTopics} warned: ${t.withWarnings}`),y.info(`capture triggers by kind: file=${r.file} cmd=${r.command} kw=${r.keyword}`),y.info(`recall:capture ratio: ${n} recalls per capture`);}s(koe,"renderCaptureStats");function Sz(e){let t=e.removedTriggerIds.length,r=e.removedTopicIds.length,n=e.trimmedLessons.length,o=e.removedDeadGlobs.length;if(t===0&&r===0&&n===0&&o===0){y.success(`Lessons graph already lean (cap ${e.cap}) \u2014 nothing to prune.`),Rz(e.unreachableLessons);return}let i=e.applied?"Pruned":"Would prune";y.success(`${i}: ${o} dead glob${o===1?"":"s"} detached, ${t} dead trigger${t===1?"":"s"} removed, ${r} orphan topic${r===1?"":"s"} removed, ${n} over-cap lesson${n===1?"":"s"} trimmed (cap ${e.cap}).`);for(let a of e.trimmedLessons)y.info(` trim ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);for(let a of e.removedDeadGlobs)y.info(` dead-glob ${a.id}: -${a.removedCount} \u2192 ${a.keptCount} kept`);Rz(e.unreachableLessons),e.applied||y.warn("Dry run \u2014 pass --apply to write. lessons.json is git-tracked, so prune is reversible.");}s(Sz,"renderPrune");function Rz(e){e.length!==0&&y.warn(`${e.length} lesson${e.length===1?"":"s"} unreachable (every trigger is a dead glob) \u2014 left intact to avoid stranding; re-point a trigger or deprecate: ${e.join(", ")}`);}s(Rz,"renderUnreachable");function kz(e){for(let t of e.findings){let r=`${t.level.toUpperCase()} ${t.code}: ${t.message}`;t.level==="error"?y.error(r):y.warn(r);}e.ok&&y.success("Lessons graph: ok.");}s(kz,"renderValidate");function Lz(e){if(e.error!==void 0&&e.error.length>0){y.error(e.error);return}switch(e.subcommand){case "help":return Ooe();case "hook":e.data.output.length>0&&process.stdout.write(`${e.data.output}
|
|
656
|
+
`);return;case "merge-driver":return;case "query":return Ioe(e.data,e.format);case "add":return Loe(e.data);case "topics":return Coe(e.data);case "show":return Eoe(e.data);case "deprecate":y.success(e.data.supersededBy===null?`Deprecated ${e.data.id}.`:`Superseded ${e.data.id} \u2192 ${e.data.supersededBy}.`);return;case "merge":e.exitCode===0&&y.success(`Merged ${e.data.loserId} \u2192 ${e.data.keeperId}.`);return;case "untrigger":y.success(`Removed trigger ${e.data.triggerId} from ${e.data.lessonId} (${e.data.remainingTriggerCount} trigger${e.data.remainingTriggerCount===1?"":"s"} left)${e.data.removedTriggerNode?"; trigger node garbage-collected (no other lesson used it)":""}.`);return;case "strip-markers":y.success(`${e.data.dryRun?"Would strip":"Stripped"} legacy markers from ${e.data.changedCount} lesson${e.data.changedCount===1?"":"s"}.`);return;case "journal":return woe(e.data);case "validate":return kz(e.data);case "prune":return Sz(e.data);case "stats":return _z(e.data,e.format);case "import-md":return boe(e.data)}}s(Lz,"renderLessons");function Ioe(e,t){if(e.autoMigrated&&y.warn("lessons.json was auto-migrated from index.yaml on first invocation."),e.warning!==void 0&&e.warning.length>0&&y.warn(e.warning),t==="json"){process.stdout.write(`${JSON.stringify(e,null,2)}
|
|
657
|
+
`);return}if(e.lessons.length===0){y.info("(no matches)");return}let r=s((n,o)=>e.showIds===true?`[${n}] ${o}`:o,"withId");if(t==="md")e.lessons.forEach((n,o)=>y.info(`${o+1}. ${r(n.id,n.rule)}`));else for(let n of e.lessons)y.info(r(n.id,n.rule));e.totalMatches!==void 0&&e.totalMatches>e.lessons.length&&y.warn(`(showing ${e.lessons.length} of ${e.totalMatches} matches \u2014 raise --top <n> with --max-tokens <m>, or pass --all)`),e.suppressed!==void 0&&e.suppressed>0&&y.warn(`(${e.suppressed} already shown this session \u2014 deduped; pass --no-dedup to include)`);}s(Ioe,"renderQuery");function Loe(e){if(!e.isNewLesson){if(e.newTriggerIds.length>0){let t=e.newTriggerIds.length;y.success(`Updated lesson: ${e.id} (+${t} trigger${t===1?"":"s"})`);}else y.info(`Existing lesson: ${e.id} (no change)`);Iz(e);return}y.success(`Added lesson: ${e.id}`),e.isNewTopic&&y.info(" created new topic"),e.newTriggerIds.length>0&&y.info(` new triggers: ${e.newTriggerIds.join(", ")}`),Iz(e);}s(Loe,"renderAdd");function Iz(e){e.locationNote!==void 0&&y.warn(e.locationNote),e.activationNote!==void 0&&y.warn(e.activationNote);for(let r of e.warnings)y.warn(`${r.code}: ${r.message}`);let t=e.autoPruned;t!==void 0&&y.info(` auto-pruned: ${t.removedTriggers} orphan trigger${t.removedTriggers===1?"":"s"}, ${t.removedTopics} orphan topic${t.removedTopics===1?"":"s"}, ${t.detachedDeadGlobs} dead glob${t.detachedDeadGlobs===1?"":"s"} detached (git-reversible)`);}s(Iz,"renderGuardrails");function Coe(e){if(e.topics.length===0)y.info("(no topics)");else for(let t of e.topics)y.info(`${t.id} ${t.summary}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(Coe,"renderTopics");function Eoe(e){process.stdout.write(e.markdown);}s(Eoe,"renderShow");function woe(e){for(let t of e.entries)y.info(`${t.createdAt} ${t.id} ${t.rule}`);e.setupHint!==void 0&&y.warn(e.setupHint);}s(woe,"renderJournal");function boe(e){y.success(`Imported lessons: topics=${e.topicCount} lessons=${e.lessonCount} triggers=${e.triggerCount}`),y.info(` graph: ${e.wroteGraphPath.replaceAll("\\","/")}`),e.deletedPaths.length>0&&y.info(` removed legacy: ${e.deletedPaths.length} path${e.deletedPaths.length===1?"":"s"}`);}s(boe,"renderImportMd");function Ooe(){y.info("Usage: agentsmesh lessons <subcommand> [args] [flags]"),y.info(""),y.info("Subcommands:");for(let e of Object.values(Ks)){let t=e.usage.replace(/^agentsmesh lessons /,""),r=e.summary!==void 0?` (${e.summary})`:"";y.info(` ${t}${r}`);}}s(Ooe,"printHelp");function ot(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Array.isArray(n)?n[n.length-1]:n;return t}s(ot,"narrowFlags");var Cz={generate:s(async(e,t)=>{let r=ot(e),n=await qc(r,void 0,{printMatrix:r.json!==true});it("generate",n,r,()=>Qc(n));},"generate"),init:s(async(e,t)=>{let r=await vU(process.cwd(),{yes:e.yes===true,global:e.global===true,lessons:e.lessons===true});it("init",r,ot(e),()=>MU(r));},"init"),import:s(async(e,t)=>{let r=ot(e),n=await jU(r);it("import",n,r,()=>tB(n));},"import"),diff:s(async(e,t)=>{let r=ot(e),n=await BU(r);it("diff",n,r,()=>rB(n));},"diff"),lint:s(async(e,t)=>{let r=ot(e),n=await QU(r);it("lint",n,r,()=>ZU(n));},"lint"),check:s(async(e,t)=>{let r=ot(e),n=await iB(r);it("check",n,r,()=>eB(n));},"check"),merge:s(async(e,t)=>{let r=ot(e),n=await cB(r);it("merge",n,r,()=>nB(n));},"merge"),matrix:s(async(e,t)=>{let r=ot(e),n=await ru(r);it("matrix",n,r,()=>ou(n,{verbose:r.verbose===true}));},"matrix"),watch:s(async(e,t)=>{let r=ot(e);if(r.json===true){Cl("watch",{success:false,error:"--json is not supported with watch"}),process.exit(1);return}let n=await sB(r),o=s(()=>{n.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",o),process.on("SIGTERM",o);},"watch"),install:s(async(e,t)=>{let r=ot(e);r.json===true&&(r.force=true);let n=await hW(r,t,process.cwd());it("install",n,r,()=>yW(n));},"install"),uninstall:s(async(e,t)=>{let r=ot(e);r.json===true&&(r.force=true);let n=await TW(r,t,process.cwd());it("uninstall",n,r,()=>PW(n));},"uninstall"),refresh:s(async(e,t)=>{let r=ot(e),n=await UW(r,t,process.cwd());it("refresh",n,r,()=>BW(n));},"refresh"),installs:s(async(e,t)=>{let r=ot(e),n=await WW(r,t,process.cwd());it("installs",n,r,()=>HW(n));},"installs"),plugin:s(async(e,t)=>{let r=ot(e),n=await YW(r,t,process.cwd());it("plugin",n,r,()=>XW(n));},"plugin"),target:s(async(e,t)=>{let r=ot(e),n=await sH(r,t,process.cwd());it("target",n,r,()=>iH(n));},"target"),convert:s(async(e,t)=>{let r=ot(e),n=await jh(r);it("convert",n,r,()=>aH(n));},"convert"),mcp:s(async(e,t)=>{await VH(ot(e));},"mcp"),lessons:s(async(e,t)=>{let r=await yz(e,t,process.cwd());it("lessons",r,ot(e),()=>Lz(r)),r.exitCode!==0&&process.exit(r.exitCode);},"lessons")};var Toe=new Set(["json","verbose","help"]);function mC(e,t,r){let n=e[t];if(n===void 0||typeof r=="boolean"){e[t]=r;return}Array.isArray(n)?n.push(r):typeof n=="string"?e[t]=[n,r]:e[t]=r;}s(mC,"setFlag");function Poe(e){let t={},r=[],n="help";for(let o=0;o<e.length;o++){let i=e[o];if(n==="help"&&i==="--version")return {command:"version",flags:{},args:[]};if(n==="help"&&i==="--help")return {command:"help",flags:{},args:[]};if(i.startsWith("--")){let a=i.slice(2);if(Toe.has(a)){mC(t,a,true);continue}let l=e[o+1];l===void 0||l.startsWith("--")?mC(t,a,true):(mC(t,a,l),o++);continue}n==="help"?n=i:r.push(i);}return {command:n,flags:t,args:r}}s(Poe,"parseArgs");var Doe=dC(Cz);async function Noe(e){let{command:t,flags:r,args:n}=e;if(t==="help"){uy();return}if(t==="version"){_C();return}if(r.help===true){Ju(t,n);return}r.json===true&&gC(),await Doe.route(t,r,n);}s(Noe,"main");function voe(){let e=process.argv[1];if(!e)return false;let t=fileURLToPath(import.meta.url);try{let r=resolve(process.cwd(),e);return r===t||realpathSync(r)===realpathSync(t)}catch{return e.endsWith("cli.js")||e.includes("agentsmesh")}}s(voe,"isMainModule");if(voe()){let e=Poe(process.argv.slice(2));Noe(e).catch(t=>SC(t instanceof Error?t:new Error(String(t)),{verbose:e.flags.verbose===true,json:e.flags.json===true,command:e.command}));}export{Poe as parseArgs};
|